tntd 2.7.2 → 2.7.4

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 (428) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +72 -0
  3. package/es/actions/index.js +12 -0
  4. package/es/actions/index.js.map +1 -0
  5. package/es/actions/index.less +70 -0
  6. package/es/affix/index.js +2 -1
  7. package/es/alert/index.js +2 -1
  8. package/es/anchor/index.js +2 -1
  9. package/es/array-input/icon.js +6 -24
  10. package/es/array-input/index.js +119 -203
  11. package/es/auth-context/index.js +2 -1
  12. package/es/auto-complete/index.js +2 -1
  13. package/es/avatar/index.js +2 -1
  14. package/es/back-top/index.js +2 -1
  15. package/es/badge/index.js +2 -1
  16. package/es/breadcrumb/index.js +2 -1
  17. package/es/button/index.js +2 -1
  18. package/es/calendar/index.js +2 -1
  19. package/es/card/index.js +2 -1
  20. package/es/carousel/index.js +2 -1
  21. package/es/cascader/index.js +2 -1
  22. package/es/check-card/group.js +149 -0
  23. package/es/check-card/group.js.map +1 -0
  24. package/es/check-card/index.js +120 -0
  25. package/es/check-card/index.js.map +1 -0
  26. package/es/check-card/index.less +179 -0
  27. package/es/checkbox/checkbox-group.js +2 -1
  28. package/es/checkbox/index.js +2 -1
  29. package/es/col/index.js +2 -1
  30. package/es/collapse/index.js +2 -1
  31. package/es/color-picker/ColorPicker.js +81 -127
  32. package/es/color-picker/ColorPicker.js.map +1 -1
  33. package/es/color-picker/index.js +5 -8
  34. package/es/color-picker/index.less +5 -1
  35. package/es/columns/index.js +30 -66
  36. package/es/columns/style/index.js +2 -1
  37. package/es/comment/index.js +2 -1
  38. package/es/config-provider/DisabledContext.js +5 -9
  39. package/es/config-provider/SizeContext.js +3 -7
  40. package/es/config-provider/config-provider.js +2 -1
  41. package/es/ellipsis/index.js +13 -3
  42. package/es/ellipsis/index.js.map +1 -1
  43. package/es/ellipsis/index.less +2 -2
  44. package/es/handle/index.js +20 -9
  45. package/es/handle/index.js.map +1 -1
  46. package/es/handle/index.less +1 -1
  47. package/es/index.js +7 -0
  48. package/es/index.js.map +1 -1
  49. package/es/index.less +5 -0
  50. package/es/locale/en_US.js +3 -1
  51. package/es/locale/en_US.js.map +1 -1
  52. package/es/locale/zh_CN.js +3 -1
  53. package/es/locale/zh_CN.js.map +1 -1
  54. package/es/mention/index.js +4 -0
  55. package/es/mention/index.js.map +1 -0
  56. package/es/page/Box.js +1 -1
  57. package/es/page/Box.js.map +1 -1
  58. package/es/page/index.js +2 -2
  59. package/es/page/index.js.map +1 -1
  60. package/es/page/index.less +5 -5
  61. package/es/prev-locale.js +1 -1
  62. package/es/prev-locale.js.map +1 -1
  63. package/es/query-form/Field/SelectInput.js +2 -2
  64. package/es/query-form/Field/SelectInput.js.map +1 -1
  65. package/es/query-form/Field/index.js +2 -1
  66. package/es/query-form/Field/index.js.map +1 -1
  67. package/es/query-list-scene/QueryForm.js +2 -2
  68. package/es/query-list-scene/QueryForm.js.map +1 -1
  69. package/es/segmented/index.js +50 -0
  70. package/es/segmented/index.js.map +1 -0
  71. package/es/segmented/index.less +138 -0
  72. package/es/switch/switch.js.map +1 -1
  73. package/es/table/constants.js +53 -0
  74. package/es/table/constants.js.map +1 -1
  75. package/es/table/context.js.map +1 -1
  76. package/es/table/hooks/use-column-setting.js.map +1 -1
  77. package/es/table/table.js +107 -6
  78. package/es/table/table.js.map +1 -1
  79. package/es/table/table.less +3 -1
  80. package/es/table/total-shower.js +6 -0
  81. package/es/table/total-shower.js.map +1 -0
  82. package/es/title/index.js +5 -5
  83. package/es/title/index.js.map +1 -1
  84. package/es/title/index.less +10 -10
  85. package/es/tntd-form/Form.js +13 -1
  86. package/es/tntd-form/Form.js.map +1 -1
  87. package/es/tntd-form/TntdForm/components/Item.js +42 -30
  88. package/es/tntd-form/TntdForm/components/ItemComp.js +167 -158
  89. package/es/tntd-form/TntdForm/components/List.js +89 -78
  90. package/es/tntd-form/TntdForm/index.js +38 -33
  91. package/es/tntd-form/TntdForm/interface.js +1 -2
  92. package/es/tntd-form/TntdForm/store.js +1 -2
  93. package/es/tntd-form/TntdForm/utils.js +158 -168
  94. package/es/tntd-form/tntd-form.stories.js +7 -5
  95. package/es/tntd-form/tntd-form.stories.js.map +1 -1
  96. package/es/tntd-layout/HeaderActions.js +1 -1
  97. package/es/tntd-layout/HeaderActions.js.map +1 -1
  98. package/es/tntd-modal/index.js +54 -21
  99. package/es/tntd-modal/index.js.map +1 -1
  100. package/es/tntd-modal/index.less +83 -63
  101. package/es/tree-select/index.js.map +1 -1
  102. package/es/utils/index.js +1 -0
  103. package/es/utils/index.js.map +1 -1
  104. package/es/utils/simple-template.js +11 -0
  105. package/es/utils/simple-template.js.map +1 -0
  106. package/es/water-mark/index.js +99 -0
  107. package/es/water-mark/index.js.map +1 -0
  108. package/lib/actions/index.d.ts +15 -0
  109. package/lib/actions/index.d.ts.map +1 -0
  110. package/lib/actions/index.js +17 -0
  111. package/lib/actions/index.js.map +1 -0
  112. package/lib/actions/index.less +70 -0
  113. package/lib/check-card/group.d.ts +130 -0
  114. package/lib/check-card/group.d.ts.map +1 -0
  115. package/lib/check-card/group.js +179 -0
  116. package/lib/check-card/group.js.map +1 -0
  117. package/lib/check-card/index.d.ts +136 -0
  118. package/lib/check-card/index.d.ts.map +1 -0
  119. package/lib/check-card/index.js +148 -0
  120. package/lib/check-card/index.js.map +1 -0
  121. package/lib/check-card/index.less +179 -0
  122. package/lib/color-picker/ColorPicker.js +1 -1
  123. package/lib/color-picker/ColorPicker.js.map +1 -1
  124. package/lib/color-picker/index.less +5 -1
  125. package/lib/ellipsis/index.d.ts.map +1 -1
  126. package/lib/ellipsis/index.js +13 -3
  127. package/lib/ellipsis/index.js.map +1 -1
  128. package/lib/ellipsis/index.less +2 -2
  129. package/lib/handle/index.d.ts.map +1 -1
  130. package/lib/handle/index.js +20 -9
  131. package/lib/handle/index.js.map +1 -1
  132. package/lib/handle/index.less +1 -1
  133. package/lib/index.d.ts +7 -0
  134. package/lib/index.d.ts.map +1 -1
  135. package/lib/index.js +11 -1
  136. package/lib/index.js.map +1 -1
  137. package/lib/index.less +5 -0
  138. package/lib/locale/default.d.ts +1 -0
  139. package/lib/locale/default.d.ts.map +1 -1
  140. package/lib/locale/en_US.d.ts +1 -0
  141. package/lib/locale/en_US.d.ts.map +1 -1
  142. package/lib/locale/en_US.js +3 -1
  143. package/lib/locale/en_US.js.map +1 -1
  144. package/lib/locale/zh_CN.d.ts +1 -0
  145. package/lib/locale/zh_CN.d.ts.map +1 -1
  146. package/lib/locale/zh_CN.js +3 -1
  147. package/lib/locale/zh_CN.js.map +1 -1
  148. package/lib/mention/index.js +25 -0
  149. package/lib/page/Box.js +1 -1
  150. package/lib/page/Box.js.map +1 -1
  151. package/lib/page/index.js +2 -2
  152. package/lib/page/index.js.map +1 -1
  153. package/lib/page/index.less +5 -5
  154. package/lib/prev-locale.js +1 -1
  155. package/lib/prev-locale.js.map +1 -1
  156. package/lib/query-form/Field/SelectInput.d.ts.map +1 -1
  157. package/lib/query-form/Field/SelectInput.js +2 -2
  158. package/lib/query-form/Field/SelectInput.js.map +1 -1
  159. package/lib/query-form/Field/index.d.ts.map +1 -1
  160. package/lib/query-form/Field/index.js +2 -1
  161. package/lib/query-form/Field/index.js.map +1 -1
  162. package/lib/query-list-scene/QueryForm.d.ts +1 -1
  163. package/lib/query-list-scene/QueryForm.d.ts.map +1 -1
  164. package/lib/query-list-scene/QueryForm.js +2 -2
  165. package/lib/query-list-scene/QueryForm.js.map +1 -1
  166. package/lib/segmented/index.d.ts +23 -0
  167. package/lib/segmented/index.d.ts.map +1 -0
  168. package/lib/segmented/index.js +78 -0
  169. package/lib/segmented/index.js.map +1 -0
  170. package/lib/segmented/index.less +138 -0
  171. package/lib/switch/switch.d.ts +1 -1
  172. package/lib/switch/switch.d.ts.map +1 -1
  173. package/lib/switch/switch.js.map +1 -1
  174. package/lib/table/constants.d.ts +2 -0
  175. package/lib/table/constants.d.ts.map +1 -1
  176. package/lib/table/constants.js +54 -1
  177. package/lib/table/constants.js.map +1 -1
  178. package/lib/table/context.d.ts +1 -0
  179. package/lib/table/context.d.ts.map +1 -1
  180. package/lib/table/context.js.map +1 -1
  181. package/lib/table/hooks/use-column-setting.d.ts +4 -1
  182. package/lib/table/hooks/use-column-setting.d.ts.map +1 -1
  183. package/lib/table/hooks/use-column-setting.js.map +1 -1
  184. package/lib/table/table.d.ts +2 -1
  185. package/lib/table/table.d.ts.map +1 -1
  186. package/lib/table/table.js +107 -6
  187. package/lib/table/table.js.map +1 -1
  188. package/lib/table/table.less +3 -1
  189. package/lib/table/total-shower.d.ts +9 -0
  190. package/lib/table/total-shower.d.ts.map +1 -0
  191. package/lib/table/total-shower.js +13 -0
  192. package/lib/table/total-shower.js.map +1 -0
  193. package/lib/title/index.d.ts +11 -1
  194. package/lib/title/index.d.ts.map +1 -1
  195. package/lib/title/index.js +5 -5
  196. package/lib/title/index.js.map +1 -1
  197. package/lib/title/index.less +10 -10
  198. package/lib/tntd-form/Form.d.ts.map +1 -1
  199. package/lib/tntd-form/Form.js +12 -0
  200. package/lib/tntd-form/Form.js.map +1 -1
  201. package/lib/tntd-form/TntdForm/components/Item.js +55 -61
  202. package/lib/tntd-form/TntdForm/components/ItemComp.js +203 -190
  203. package/lib/tntd-form/TntdForm/components/List.js +118 -111
  204. package/lib/tntd-form/TntdForm/index.js +61 -67
  205. package/lib/tntd-form/TntdForm/interface.js +4 -2
  206. package/lib/tntd-form/TntdForm/store.js +8 -7
  207. package/lib/tntd-form/TntdForm/utils.js +182 -184
  208. package/lib/tntd-form/tntd-form.stories.d.ts.map +1 -1
  209. package/lib/tntd-form/tntd-form.stories.js +7 -5
  210. package/lib/tntd-form/tntd-form.stories.js.map +1 -1
  211. package/lib/tntd-layout/HeaderActions.js +1 -1
  212. package/lib/tntd-layout/HeaderActions.js.map +1 -1
  213. package/lib/tntd-modal/index.d.ts +15 -2
  214. package/lib/tntd-modal/index.d.ts.map +1 -1
  215. package/lib/tntd-modal/index.js +58 -23
  216. package/lib/tntd-modal/index.js.map +1 -1
  217. package/lib/tntd-modal/index.less +83 -63
  218. package/lib/tree-select/index.d.ts +7 -5
  219. package/lib/tree-select/index.d.ts.map +1 -1
  220. package/lib/tree-select/index.js.map +1 -1
  221. package/lib/utils/index.d.ts +1 -0
  222. package/lib/utils/index.d.ts.map +1 -1
  223. package/lib/utils/index.js +1 -0
  224. package/lib/utils/index.js.map +1 -1
  225. package/lib/utils/simple-template.d.ts +9 -0
  226. package/lib/utils/simple-template.d.ts.map +1 -0
  227. package/lib/utils/simple-template.js +15 -0
  228. package/lib/utils/simple-template.js.map +1 -0
  229. package/lib/water-mark/index.d.ts +49 -0
  230. package/lib/water-mark/index.d.ts.map +1 -0
  231. package/lib/water-mark/index.js +129 -0
  232. package/lib/water-mark/index.js.map +1 -0
  233. package/package.json +21 -3
  234. package/es/_util/colors.js +0 -3
  235. package/es/_util/colors.js.map +0 -1
  236. package/es/_util/easings.js +0 -9
  237. package/es/_util/easings.js.map +0 -1
  238. package/es/_util/getDataOrAriaProps.js +0 -8
  239. package/es/_util/getDataOrAriaProps.js.map +0 -1
  240. package/es/_util/getScroll.js +0 -14
  241. package/es/_util/getScroll.js.map +0 -1
  242. package/es/_util/interopDefault.js +0 -5
  243. package/es/_util/interopDefault.js.map +0 -1
  244. package/es/_util/isNumeric.js +0 -4
  245. package/es/_util/isNumeric.js.map +0 -1
  246. package/es/_util/motion.js +0 -22
  247. package/es/_util/motion.js.map +0 -1
  248. package/es/_util/openAnimation.js +0 -51
  249. package/es/_util/openAnimation.js.map +0 -1
  250. package/es/_util/raf.js +0 -25
  251. package/es/_util/raf.js.map +0 -1
  252. package/es/_util/reactNode.js +0 -6
  253. package/es/_util/reactNode.js.map +0 -1
  254. package/es/_util/ref.js +0 -15
  255. package/es/_util/ref.js.map +0 -1
  256. package/es/_util/responsiveObserve.js +0 -82
  257. package/es/_util/responsiveObserve.js.map +0 -1
  258. package/es/_util/scrollTo.js +0 -29
  259. package/es/_util/scrollTo.js.map +0 -1
  260. package/es/_util/styleChecker.js +0 -12
  261. package/es/_util/styleChecker.js.map +0 -1
  262. package/es/_util/throttleByAnimationFrame.js +0 -40
  263. package/es/_util/throttleByAnimationFrame.js.map +0 -1
  264. package/es/_util/transButton.js +0 -103
  265. package/es/_util/transButton.js.map +0 -1
  266. package/es/_util/triggerEvent.js +0 -8
  267. package/es/_util/triggerEvent.js.map +0 -1
  268. package/es/_util/type.js +0 -3
  269. package/es/_util/type.js.map +0 -1
  270. package/es/_util/warning.js +0 -5
  271. package/es/_util/warning.js.map +0 -1
  272. package/es/_util/wave.js +0 -228
  273. package/es/_util/wave.js.map +0 -1
  274. package/es/config-provider/context.js +0 -41
  275. package/es/config-provider/context.js.map +0 -1
  276. package/es/tntd-form/__tests__/demo-extend.test.js +0 -3
  277. package/es/tntd-form/__tests__/demo-extend.test.js.map +0 -1
  278. package/es/tntd-form/__tests__/demo.test.js +0 -3
  279. package/es/tntd-form/__tests__/demo.test.js.map +0 -1
  280. package/es/tntd-form/__tests__/image.test.js +0 -5
  281. package/es/tntd-form/__tests__/image.test.js.map +0 -1
  282. package/es/tntd-form/__tests__/index.test.js +0 -957
  283. package/es/tntd-form/__tests__/index.test.js.map +0 -1
  284. package/es/tntd-form/__tests__/list-noStyle.test.js +0 -41
  285. package/es/tntd-form/__tests__/list-noStyle.test.js.map +0 -1
  286. package/es/tntd-form/__tests__/list.test.js +0 -164
  287. package/es/tntd-form/__tests__/list.test.js.map +0 -1
  288. package/es/tntd-form/__tests__/ref.test.js +0 -45
  289. package/es/tntd-form/__tests__/ref.test.js.map +0 -1
  290. package/es/tntd-form/__tests__/type.test.js +0 -74
  291. package/es/tntd-form/__tests__/type.test.js.map +0 -1
  292. package/lib/_util/colors.d.ts +0 -3
  293. package/lib/_util/colors.d.ts.map +0 -1
  294. package/lib/_util/colors.js +0 -7
  295. package/lib/_util/colors.js.map +0 -1
  296. package/lib/_util/easings.d.ts +0 -2
  297. package/lib/_util/easings.d.ts.map +0 -1
  298. package/lib/_util/easings.js +0 -14
  299. package/lib/_util/easings.js.map +0 -1
  300. package/lib/_util/getDataOrAriaProps.d.ts +0 -2
  301. package/lib/_util/getDataOrAriaProps.d.ts.map +0 -1
  302. package/lib/_util/getDataOrAriaProps.js +0 -13
  303. package/lib/_util/getDataOrAriaProps.js.map +0 -1
  304. package/lib/_util/getScroll.d.ts +0 -2
  305. package/lib/_util/getScroll.d.ts.map +0 -1
  306. package/lib/_util/getScroll.js +0 -18
  307. package/lib/_util/getScroll.js.map +0 -1
  308. package/lib/_util/interopDefault.d.ts +0 -2
  309. package/lib/_util/interopDefault.d.ts.map +0 -1
  310. package/lib/_util/interopDefault.js +0 -9
  311. package/lib/_util/interopDefault.js.map +0 -1
  312. package/lib/_util/isNumeric.d.ts +0 -3
  313. package/lib/_util/isNumeric.d.ts.map +0 -1
  314. package/lib/_util/isNumeric.js +0 -7
  315. package/lib/_util/isNumeric.js.map +0 -1
  316. package/lib/_util/motion.d.ts +0 -24
  317. package/lib/_util/motion.d.ts.map +0 -1
  318. package/lib/_util/motion.js +0 -17
  319. package/lib/_util/motion.js.map +0 -1
  320. package/lib/_util/openAnimation.d.ts +0 -7
  321. package/lib/_util/openAnimation.d.ts.map +0 -1
  322. package/lib/_util/openAnimation.js +0 -58
  323. package/lib/_util/openAnimation.js.map +0 -1
  324. package/lib/_util/raf.d.ts +0 -10
  325. package/lib/_util/raf.d.ts.map +0 -1
  326. package/lib/_util/raf.js +0 -34
  327. package/lib/_util/raf.js.map +0 -1
  328. package/lib/_util/reactNode.d.ts +0 -3
  329. package/lib/_util/reactNode.d.ts.map +0 -1
  330. package/lib/_util/reactNode.js +0 -31
  331. package/lib/_util/reactNode.js.map +0 -1
  332. package/lib/_util/ref.d.ts +0 -4
  333. package/lib/_util/ref.d.ts.map +0 -1
  334. package/lib/_util/ref.js +0 -22
  335. package/lib/_util/ref.js.map +0 -1
  336. package/lib/_util/responsiveObserve.d.ts +0 -14
  337. package/lib/_util/responsiveObserve.d.ts.map +0 -1
  338. package/lib/_util/responsiveObserve.js +0 -83
  339. package/lib/_util/responsiveObserve.js.map +0 -1
  340. package/lib/_util/scrollTo.d.ts +0 -11
  341. package/lib/_util/scrollTo.d.ts.map +0 -1
  342. package/lib/_util/scrollTo.js +0 -34
  343. package/lib/_util/scrollTo.js.map +0 -1
  344. package/lib/_util/styleChecker.d.ts +0 -4
  345. package/lib/_util/styleChecker.d.ts.map +0 -1
  346. package/lib/_util/styleChecker.js +0 -14
  347. package/lib/_util/styleChecker.js.map +0 -1
  348. package/lib/_util/throttleByAnimationFrame.d.ts +0 -6
  349. package/lib/_util/throttleByAnimationFrame.d.ts.map +0 -1
  350. package/lib/_util/throttleByAnimationFrame.js +0 -49
  351. package/lib/_util/throttleByAnimationFrame.js.map +0 -1
  352. package/lib/_util/transButton.d.ts +0 -21
  353. package/lib/_util/transButton.d.ts.map +0 -1
  354. package/lib/_util/transButton.js +0 -112
  355. package/lib/_util/transButton.js.map +0 -1
  356. package/lib/_util/triggerEvent.d.ts +0 -2
  357. package/lib/_util/triggerEvent.d.ts.map +0 -1
  358. package/lib/_util/triggerEvent.js +0 -12
  359. package/lib/_util/triggerEvent.js.map +0 -1
  360. package/lib/_util/type.d.ts +0 -4
  361. package/lib/_util/type.d.ts.map +0 -1
  362. package/lib/_util/type.js +0 -9
  363. package/lib/_util/type.js.map +0 -1
  364. package/lib/_util/warning.d.ts +0 -5
  365. package/lib/_util/warning.d.ts.map +0 -1
  366. package/lib/_util/warning.js +0 -28
  367. package/lib/_util/warning.js.map +0 -1
  368. package/lib/_util/wave.d.ts +0 -26
  369. package/lib/_util/wave.d.ts.map +0 -1
  370. package/lib/_util/wave.js +0 -249
  371. package/lib/_util/wave.js.map +0 -1
  372. package/lib/config-provider/context.d.ts +0 -61
  373. package/lib/config-provider/context.d.ts.map +0 -1
  374. package/lib/config-provider/context.js +0 -64
  375. package/lib/config-provider/context.js.map +0 -1
  376. package/lib/tntd-form/TntdForm/components/Item.d.ts +0 -5
  377. package/lib/tntd-form/TntdForm/components/Item.d.ts.map +0 -1
  378. package/lib/tntd-form/TntdForm/components/Item.js.map +0 -1
  379. package/lib/tntd-form/TntdForm/components/ItemComp.d.ts +0 -5
  380. package/lib/tntd-form/TntdForm/components/ItemComp.d.ts.map +0 -1
  381. package/lib/tntd-form/TntdForm/components/ItemComp.js.map +0 -1
  382. package/lib/tntd-form/TntdForm/components/List.d.ts +0 -5
  383. package/lib/tntd-form/TntdForm/components/List.d.ts.map +0 -1
  384. package/lib/tntd-form/TntdForm/components/List.js.map +0 -1
  385. package/lib/tntd-form/TntdForm/index.d.ts +0 -10
  386. package/lib/tntd-form/TntdForm/index.d.ts.map +0 -1
  387. package/lib/tntd-form/TntdForm/index.js.map +0 -1
  388. package/lib/tntd-form/TntdForm/interface.d.ts +0 -93
  389. package/lib/tntd-form/TntdForm/interface.d.ts.map +0 -1
  390. package/lib/tntd-form/TntdForm/interface.js.map +0 -1
  391. package/lib/tntd-form/TntdForm/store.d.ts +0 -4
  392. package/lib/tntd-form/TntdForm/store.d.ts.map +0 -1
  393. package/lib/tntd-form/TntdForm/store.js.map +0 -1
  394. package/lib/tntd-form/TntdForm/utils.d.ts +0 -48
  395. package/lib/tntd-form/TntdForm/utils.d.ts.map +0 -1
  396. package/lib/tntd-form/TntdForm/utils.js.map +0 -1
  397. package/lib/tntd-form/__tests__/demo-extend.test.d.ts +0 -2
  398. package/lib/tntd-form/__tests__/demo-extend.test.d.ts.map +0 -1
  399. package/lib/tntd-form/__tests__/demo-extend.test.js +0 -5
  400. package/lib/tntd-form/__tests__/demo-extend.test.js.map +0 -1
  401. package/lib/tntd-form/__tests__/demo.test.d.ts +0 -2
  402. package/lib/tntd-form/__tests__/demo.test.d.ts.map +0 -1
  403. package/lib/tntd-form/__tests__/demo.test.js +0 -8
  404. package/lib/tntd-form/__tests__/demo.test.js.map +0 -1
  405. package/lib/tntd-form/__tests__/image.test.d.ts +0 -2
  406. package/lib/tntd-form/__tests__/image.test.d.ts.map +0 -1
  407. package/lib/tntd-form/__tests__/image.test.js +0 -7
  408. package/lib/tntd-form/__tests__/image.test.js.map +0 -1
  409. package/lib/tntd-form/__tests__/index.test.d.ts +0 -2
  410. package/lib/tntd-form/__tests__/index.test.d.ts.map +0 -1
  411. package/lib/tntd-form/__tests__/index.test.js +0 -981
  412. package/lib/tntd-form/__tests__/index.test.js.map +0 -1
  413. package/lib/tntd-form/__tests__/list-noStyle.test.d.ts +0 -2
  414. package/lib/tntd-form/__tests__/list-noStyle.test.d.ts.map +0 -1
  415. package/lib/tntd-form/__tests__/list-noStyle.test.js +0 -46
  416. package/lib/tntd-form/__tests__/list-noStyle.test.js.map +0 -1
  417. package/lib/tntd-form/__tests__/list.test.d.ts +0 -2
  418. package/lib/tntd-form/__tests__/list.test.d.ts.map +0 -1
  419. package/lib/tntd-form/__tests__/list.test.js +0 -169
  420. package/lib/tntd-form/__tests__/list.test.js.map +0 -1
  421. package/lib/tntd-form/__tests__/ref.test.d.ts +0 -2
  422. package/lib/tntd-form/__tests__/ref.test.d.ts.map +0 -1
  423. package/lib/tntd-form/__tests__/ref.test.js +0 -50
  424. package/lib/tntd-form/__tests__/ref.test.js.map +0 -1
  425. package/lib/tntd-form/__tests__/type.test.d.ts +0 -2
  426. package/lib/tntd-form/__tests__/type.test.d.ts.map +0 -1
  427. package/lib/tntd-form/__tests__/type.test.js +0 -98
  428. package/lib/tntd-form/__tests__/type.test.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/tntd-form/__tests__/index.test.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,cAAc,MAAM,4BAA4B,CAAC;AACxD,OAAO,UAAU,MAAM,YAAY,CAAC;AAGpC,OAAO,IAAI,MAAM,IAAI,CAAC;AACtB,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,SAAS,MAAM,iCAAiC,CAAC;AACxD,OAAO,OAAO,MAAM,+BAA+B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,KAAK,MAAM,aAAa,CAAC;AAGhC,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC;AACnC,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;AAE3B,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;AAExC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,SAAS,CAAC,IAAI,CAAC,CAAC;IAChB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAErB,OAAO,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAElB,cAAsB,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAEzE,yBAAyB;IACzB,uDAAuD;IACvD,mBAAmB;IACnB,mBAAmB;IACnB,+BAA+B;IAC/B,SAAS;IACT,2FAA2F;IAC3F,sBAAsB;IAEtB,4BAA4B;IAC5B,wCAAwC;IACxC,oBAAoB;IACpB,+BAA+B;IAC/B,YAAY;IACZ,QAAQ;IACR,sBAAsB;IACtB,MAAM;IACN,KAAK;IAEL,MAAM,WAAW,GAAG,KAAK,EACvB,KAAkC,EAClC,KAAa,EACb,QAAQ,GAAG,IAAI,EACf,EAAE;QACF,IAAI,OAAoB,CAAC;QAEzB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;SACrD;QAED,MAAM,CAAC,OAAQ,CAAC,CAAC,UAAU,EAAE,CAAC;QAE9B,SAAS,CAAC,MAAM,CAAC,OAAQ,EAAE;YACzB,MAAM,EAAE;gBACN,KAAK;aACN;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,EAAE;YACZ,MAAM,aAAa,CAAC,QAAQ,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;SACxC;IACH,CAAC,CAAC;IAEF,UAAU,CAAC,GAAG,EAAE;QACd,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;QACpB,cAAsB,CAAC,SAAS,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,SAAS,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE;QACZ,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,QAAQ,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,CAAC,WAAW,EAAE,CAAC;QACrB,cAAsB,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YAE3B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;gBACH,oBAAC,IAAI,CAAC,IAAI;oBACR,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,YAAY,EAAC,QAAQ,EAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;wBACnF,oBAAC,KAAK,IAAC,QAAQ,EAAE,QAAQ,GAAI,CACnB,CACF,CACP,CACR,CAAC;YAEF,gCAAgC;YAChC,MAAM,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7B,MAAM,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAEzB,iEAAiE;YACjE,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC,iBAAiB,CAC/E,oBAAoB,CACrB,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;YACxE,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;YAEzE,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;YAC/B,MAAM,IAAI,GAAa,GAAG,EAAE;gBAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAE9B,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;oBAC1B,+CAA+C;oBAC/C,MAAM,aAAa,EAAE,CAAC;oBAEtB,IAAI;wBACF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;qBAC7B;oBAAC,OAAO,GAAG,EAAE;wBACZ,aAAa;qBACd;gBACH,CAAC,CAAC;gBAEF,OAAO,CACL,oBAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;oBAC3C,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,KAAK;wBACnB,oBAAC,KAAK,IAAC,QAAQ,EAAE,QAAQ,GAAI,CACnB;oBACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,YAAY,QAAC,OAAO,UAC5B,GAAG,EAAE;wBACJ,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;wBAEtC,IAAI,GAAG,KAAK,GAAG,EAAE;4BACf,OAAO,CACL,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;gCAC/D,oBAAC,KAAK,OAAG,CACC,CACb,CAAC;yBACH;wBAED,OAAO,CACL,oBAAC,IAAI,CAAC,IAAI;4BACR,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO;gCACxE,oBAAC,KAAK,OAAG,CACC,CACF,CACb,CAAC;oBACJ,CAAC,CACS,CACP,CACR,CAAC;YACJ,CAAC,CAAC;YAEF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,IAAI,OAAG,CAAC,CAAC;YAEvC,MAAM,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC1B,MAAM,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAEzF,MAAM,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC1B,MAAM,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAEzF,MAAM,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC1B,MAAM,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,CACJ,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,QAAE,GAAG,EAAE,CAAC,IAAI,CAAa,CAC9B,CACR,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,oHAAoH,CACrH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CACJ,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,YAAY,QAAC,YAAY,EAAE,EAAE,IACrC,GAAG,EAAE,CAAC,IAAI,CACD,CACP,CACR,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,8HAA8H,CAC/H,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CACJ,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,YAAY,UAChC,GAAG,EAAE,CAAC,IAAI,CACD,CACP,CACR,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,wHAAwH,CACzH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CACJ,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM;gBACpB,uCAAc;gBACd,uCAAc,CACJ,CACP,CACR,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,qMAAqM,CACtM,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0GAA0G,EAAE,GAAG,EAAE;;QAClH,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAC9B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,gBAAgB;gBAC1C,kCAAS,CACC,CACP,CACR,CAAC;QACF,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,0CAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7F,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC,0CAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sIAAsI,EAAE,GAAG,EAAE;;QAC9I,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,gBAAgB;gBAC9B,kCAAS,CACC,CACP,CACR,CAAC;QACF,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,0CAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QACvF,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC,0CAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0IAA0I,EAAE,GAAG,EAAE;;QAClJ,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI,IAAC,IAAI,EAAC,MAAM;YACf,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,gBAAgB;gBAC1C,kCAAS,CACC,CACP,CACR,CAAC;QACF,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,0CAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAC7E,gBAAgB,CACjB,CAAC;QACF,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC,0CAAE,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mGAAmG,EAAE,KAAK,IAAI,EAAE;;QACjH,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAC9B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;gBAC5D,kCAAS,CACC,CACP,CACR,CAAC;QAEF,MAAM,WAAW,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAEvC,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,0CAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7F,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC,0CAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;;QACrF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;gBAC5D,kCAAS,CACC,CACP,CACR,CAAC;QAEF,MAAM,WAAW,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QACvC,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,0CAAE,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,GAAG,EAAE;;QAC3F,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,QAAQ;gBAC7B,kCAAS,CACC,CACP,CACR,CAAC;QACF,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,0CAAE,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qFAAqF,EAAE,GAAG,EAAE;;QAC7F,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAChD,kCAAS,CACC,CACP,CACR,CAAC;QACF,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,0CAAE,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4GAA4G,EAAE,GAAG,EAAE;;QACpH,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,yBAAyB;gBACpD,kCAAS,CACC,CACP,CACR,CAAC;QACF,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,0CAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9F,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,sBAAsB,CAAC,0CAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wIAAwI,EAAE,GAAG,EAAE;;QAChJ,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,yBAAyB;gBACxC,kCAAS,CACC,CACP,CACR,CAAC;QACF,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,0CAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QACvF,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,sBAAsB,CAAC,0CAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8HAA8H,EAAE,GAAG,EAAE;;QACtI,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,gBAAgB,EAAC,KAAK,EAAC,yBAAyB;gBAC1E,kCAAS,CACC,CACP,CACR,CAAC;QACF,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,0CAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAC7E,sBAAsB,CACvB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,OAAkB,EAAE,EAAE;YAChD,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE;gBACZ,IAAI,WAAgB,CAAC;gBAErB,MAAM,IAAI,GAAa,GAAG,EAAE;oBAC1B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;oBACrC,WAAW,GAAG,OAAO,CAAC;oBAEtB,OAAO,CACL,oBAAC,IAAI,kBAAC,IAAI,EAAC,QAAQ,IAAK,KAAK;wBAC3B,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM;4BACpB,oBAAC,KAAK,OAAG,CACC,CACP,CACR,CAAC;gBACJ,CAAC,CAAC;gBAEF,MAAM,CAAC,oBAAC,IAAI,OAAG,CAAC,CAAC;gBAEjB,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBAC9C,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;gBAC3B,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;oBACzB,KAAK,EAAE,OAAO;iBACf,CAAC,CAAC;gBAEH,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;gBACzD,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE;oBACrD,KAAK,EAAE,OAAO;oBACd,UAAU,EAAE,WAAW;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,QAAQ;QACR,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;YACnB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO;gBACL,KAAK,EAAE,EAAE,IAAI,EAAE;gBACf,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;aACpB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM;QACN,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;YACf,IAAI,IAAS,CAAC;YACd,OAAO;gBACL,KAAK,EAAE;oBACL,GAAG,EAAE,CAAC,QAAa,EAAE,EAAE;wBACrB,IAAI,GAAG,QAAQ,CAAC;oBAClB,CAAC;iBACF;gBACD,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;aACpB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAEjC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI,IAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,cAAc,EAAE,cAAc;YAC3E,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAChD,kCAAS,CACC;YACZ,oBAAC,IAAI,CAAC,IAAI;gBACR,oBAAC,MAAM,IAAC,QAAQ,EAAC,QAAQ,aAAgB,CAC/B,CACP,CACR,CAAC;QAEF,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC9C,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC,CAAC;QACnD,MAAM,aAAa,EAAE,CAAC;QAEtB,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE;YACrD,KAAK,EAAE,QAAQ;YACf,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC;QACH,MAAM,CAAC,cAAc,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;YAEH,oBAAC,IAAI,CAAC,IAAI,iBAAW,KAAK,iBAAa,MAAM,EAAC,IAAI,EAAC,MAAM,WAE7C,CACP,CACR,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,CACJ,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,SAAS,WAAiB,CACrC,CACR,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,wJAAwJ,CACzJ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,EAAC,aAAa,EAAC,SAAS;gBAC3D,+BAAO,IAAI,EAAC,UAAU,GAAG,CACf;YACZ,oBAAC,IAAI,CAAC,IAAI,IACR,KAAK,EAAC,QAAQ,EACd,IAAI,EAAC,QAAQ,EACb,YAAY,EAAE,CAAC,OAAO,CAAC,EACvB,KAAK,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAEtE,kCAAS,CACC,CACP,CACR,CAAC;QAEF,mCAAmC;QACnC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QAEtE,gDAAgD;QAChD,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAE,CAAC,CAAC;QACnD,MAAM,aAAa,EAAE,CAAC;QAEtB,iCAAiC;QACjC,MAAM,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1B,MAAM,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEzB,oDAAoD;QACpD,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC,iBAAiB,CAC/E,sBAAsB,CACvB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mDAAmD,EAAE,GAAG,EAAE;QACjE,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YACtB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;gBACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM;oBACpB,kCAAS,CACC,CACP,CACR,CAAC;YAEF,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACpF,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;YAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;gBACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,EAAE;oBAChB,kCAAS,CACC,CACP,CACR,CAAC;YAEF,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAChF,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QAC3E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,6GAA6G,CAC9G,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,wDAAwD;IACxD,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;;QACxC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IACR,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,MAAM,EACZ,KAAK,EAAE;oBACL,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAClB;wBACE,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;4BACtB,IAAI,KAAK,KAAK,GAAG,EAAE;gCACjB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;6BAC7C;4BACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;wBAC3B,CAAC;qBACF;iBACF;gBAED,oBAAC,KAAK,OAAG,CACC,CACP,CACR,CAAC;QAEF,qCAAqC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;YAC7B,MAAM,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC/B,MAAM,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzB,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC,0CAAE,WAAW,CAAC,CAAC,OAAO,CAC5E,oBAAoB,CACrB,CAAC;YAEF,MAAM,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC,0CAAE,WAAW,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC3F;QACD,mBAAmB;IACrB,CAAC,CAAC,CAAC;IAEH,wDAAwD;IACxD,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,GAAG,GAAa,GAAG,EAAE;YACzB,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACpD,OAAO,CACL,oBAAC,IAAI;gBACH,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAE,OAAO;oBACpC,oBAAC,KAAK,OAAG,CACC;gBACZ,oBAAC,MAAM,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAI,CAC7C,CACR,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,GAAG,OAAG,CAAC,CAAC;QAEtC,2BAA2B;QAC3B,MAAM,aAAa,EAAE,CAAC;QACtB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAEhF,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC,CAAC;QAEpD,gFAAgF;QAChF,MAAM,aAAa,EAAE,CAAC;QACtB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sFAAsF,EAAE,GAAG,EAAE;QAC9F,MAAM,CACJ,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,YAAY,EAAE,EAAE,WAAkB,CACxC,CACR,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,iGAAiG,CAClG,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,wDAAwD;IACxD,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,WAAW,GAA0D,CAAC,EAC1E,EAAE,EACF,KAAK,GAAG,EAAE,GACX,EAAE,EAAE;YACH,eAAe,EAAE,CAAC;YAClB,OAAO,+BAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,GAAI,CAAC;QACzC,CAAC,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,YAAY,GAA0D,CAAC,EAC3E,KAAK,GAAG,EAAE,EACV,EAAE,GACH,EAAE,EAAE;YACH,YAAY,EAAE,CAAC;YACf,OAAO,+BAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,GAAI,CAAC;QACzC,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,EAAgB,CAAC;QAEhD,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAC9B,oBAAC,IAAI,IAAC,GAAG,EAAE,OAAO;YAChB,oBAAC,IAAI,CAAC,IAAI;gBACR,oBAAC,WAAW,OAAG,CACL;YACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,OAAO;gBACrB,oBAAC,YAAY,IAAC,EAAE,EAAC,SAAS,GAAG,CACnB,CACP,CACR,CAAC;QAEF,MAAM,aAAa,EAAE,CAAC;QAEtB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAmB,UAAU,CAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjF,MAAM,CAAC,eAAe,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAE9C,OAAO,CAAC,OAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrD,MAAM,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAE9B,MAAM,CAAC,OAAO,CAAC,OAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEvE,MAAM,CAAC,SAAS,CAAC,aAAa,CAAmB,UAAU,CAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvF,MAAM,CAAC,eAAe,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,EAAE;YAChB,kCAAS,CACC,CACb,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IACR,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,MAAM,EACZ,IAAI,EAAC,MAAM,EACX,YAAY,EAAC,QAAQ,EACrB,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;gBAE/C,oBAAC,KAAK,OAAG,CACC,CACP,CACR,CAAC;QAEF,MAAM,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;QACzF,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAE,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;gBACjF,oBAAC,KAAK,OAAG,CACC,CACP,CACR,CAAC;QAEF,MAAM,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1B,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;QAEhF,MAAM,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzB,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QAEjF,MAAM,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5B,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,wDAAwD;IACxD,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ;YAC1C,kCAAS,CACC,CACb,CAAC;QAEF,2EAA2E;QAC3E,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,CACJ,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAC,GAAG;YAC3B,kCAAS,CACC,CACb,CAAC;QAEF,6FAA6F;QAC7F,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,CACJ,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAE,IAA2B,EAAE,KAAK,EAAC,MAAM;YACxD,kCAAS,CACC,CACb,CAAC;QAEF,6FAA6F;QAC7F,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAChE,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,gEAAgE,CACjE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,wDAAwD;IACxD,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,eAAe,GAAa,GAAG,EAAE,CAAC,CACtC,+BAAO,QAAQ,EAAE,IAAuD,GAAI,CAC7E,CAAC;QACF,MAAM,CACJ,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,QAAQ;gBACtB,oBAAC,eAAe,OAAG,CACT,CACP,CACR,CAAC;QAEF,MAAM,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,IAAI,GAAa,GAAG,EAAE;YAC1B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChD,OAAO,CACL,oBAAC,IAAI;gBACH,oBAAC,IAAI,CAAC,IAAI,IACR,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,EAChD,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EACpC,KAAK,EAAC,UAAU,EAChB,IAAI,EAAC,UAAU;oBAEf,kCAAS,CACC;gBAEZ,oBAAC,IAAI,CAAC,IAAI;oBACR,gCAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,cAE5C,CACC,CACP,CACR,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,IAAI,OAAG,CAAC,CAAC;QACvC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC,CAAC;QAEpD,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM;QAC1B,uDAAuD;QACvD,oBAAC,IAAI,IAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE;YACvD,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,QAAQ,EAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAC/D,kCAAS,CACC,CACP,CACR,CAAC;QAEF,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC,CAAC;QACnD,MAAM,aAAa,EAAE,CAAC;QAEtB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC,iBAAiB,CAC/E,iBAAiB,CAClB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,wDAAwD;IACxD,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,cAAc,IAAC,MAAM,EAAE,IAAI;YAC1B,oBAAC,cAAc;gBACb,oBAAC,IAAI;oBACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,QAAQ,EAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;wBAC/D,kCAAS,CACC,CACP,CACQ,CACF,CAClB,CAAC;QAEF,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC,CAAC;QACnD,MAAM,aAAa,EAAE,CAAC;QAEtB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC,iBAAiB,CAC/E,WAAW,CACZ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM;QAC1B,uDAAuD;QACvD,oBAAC,IAAI,IAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE;YACvD,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAClD,kCAAS,CACC,CACP,CACR,CAAC;QAEF,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC,CAAC;QACnD,MAAM,aAAa,EAAE,CAAC;QAEtB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC,iBAAiB,CAC/E,iBAAiB,CAClB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM;QAC1B,uDAAuD;QACvD,oBAAC,IAAI,IAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE;YACvD,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACvF,kCAAS,CACC,CACP,CACR,CAAC;QAEF,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC,CAAC;QACnD,MAAM,aAAa,EAAE,CAAC;QAEtB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC,iBAAiB,CAC/E,iBAAiB,CAClB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,wDAAwD;QACxD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM;QAC1B,uDAAuD;QACvD,oBAAC,IAAI,IAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE;YACnD,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAChD,kCAAS,CACC;YACZ,oBAAC,IAAI,CAAC,IAAI;gBACR,oBAAC,MAAM,IAAC,QAAQ,EAAC,QAAQ,aAAgB,CAC/B,CACP,CACR,CAAC;QAEF,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC,CAAC;QACnD,MAAM,aAAa,EAAE,CAAC;QAEtB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC,iBAAiB,CAC/E,eAAe,CAChB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAE5B,MAAM,GAAG,GAAa,GAAG,EAAE;YACzB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9B,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpB,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC3C,OAAO,CACL,gCACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE;oBACZ,WAAW,CAAC,EAAE,CAAC,CAAC;gBAClB,CAAC,cAGM,CACV,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,oBAAC,GAAG,OAAG,CAAC,CAAC;QAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;YAC7B,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC,CAAC;YACpD,4CAA4C;YAC5C,MAAM,aAAa,EAAE,CAAC;SACvB;QAED,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,MAAM,OAAO,GAAiC,CAAC,EAAwB,EAAE,EAAE;gBAA5B,EAAE,KAAK,GAAG,EAAE,OAAY,EAAP,KAAK,cAAtB,SAAwB,CAAF;YACnE,WAAW,IAAI,CAAC,CAAC;YACjB,OAAO,6CAAO,KAAK,EAAE,KAAK,IAAM,KAAK,EAAI,CAAC;QAC5C,CAAC,CAAC;QAEF,MAAM,IAAI,GAAa,GAAG,EAAE,CAAC,CAC3B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,UAAU,EAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACrE,oBAAC,OAAO,OAAG,CACD,CACP,CACR,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,oBAAC,IAAI,OAAG,CAAC,CAAC;QAC3C,WAAW,GAAG,CAAC,CAAC;QAEhB,MAAM,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAE1B,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CACJ,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,OAAO;gBACrB,+BAAO,YAAY,EAAC,gBAAgB,GAAG,CAC7B,CACP,CACR,CAAC;QAEF,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,8HAA8H,CAC/H,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,IAAI,GAAkC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACzD,oBAAC,IAAI,QACF,KAAK,CAAC,CAAC,CAAC,CACP,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,OAAO;YAC9B,kCAAS,CACC,CACb,CAAC,CAAC,CAAC,CACF,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,GAAG;YACjB,kCAAS,CACC,CACb,CACI,CACR,CAAC;QAEF,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,oBAAC,IAAI,IAAC,KAAK,SAAG,CAAC,CAAC;QAEvD,MAAM,aAAa,EAAE,CAAC;QACtB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QAEvE,QAAQ,CAAC,oBAAC,IAAI,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC;QAEjC,MAAM,aAAa,EAAE,CAAC;QACtB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,CACJ,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,YAAY,EAAC,QAAQ,EAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK;gBACzE,oBAAC,KAAK,OAAG,CACC,CACP,CACR,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,OAAO;gBACrB,oBAAC,KAAK,IAAC,EAAE,EAAC,QAAQ,GAAG,CACX,CACP,CACR,CAAC;QAEF,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI,IAAC,eAAe,EAAC,QAAQ;YAC5B,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBACvD,oBAAC,KAAK,OAAG,CACC,CACP,CACR,CAAC;QAEF,kDAAkD;QAClD,MAAM,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QAEtE,yDAAyD;QACzD,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAE,CAAC,CAAC;QAClD,MAAM,aAAa,EAAE,CAAC;QAEtB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;YACrB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;gBACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,MAAM;oBAC5B,oBAAC,KAAK,OAAG,CACC,CACP,CACR,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;gBACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,MAAM,QAAC,OAAO;oBACpC,oBAAC,KAAK,OAAG,CACC,CACP,CACR,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI,IAAC,gBAAgB,QAAC,IAAI,EAAC,MAAM;YAChC,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,QAAQ;gBAC5C,oBAAC,KAAK,OAAG,CACC,CACP,CACR,CAAC;QAEF,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,GAAG,GAAa,GAAG,EAAE,CAAC,CAC1B,oBAAC,IAAI,IAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAC,YAAY,EAAC,QAAQ;YACjF,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,UAAU,EAAC,aAAa,EAAC,SAAS;gBACtE,oBAAC,QAAQ,mBAAoB,CACnB;YACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,OAAO;gBACtB,oBAAC,KAAK,CAAC,KAAK;oBACV,oBAAC,KAAK,IAAC,KAAK,EAAC,OAAO,YAAc;oBAClC,oBAAC,KAAK,IAAC,KAAK,EAAC,MAAM,WAAa,CACpB,CACJ;YACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,OAAO;gBACtB,oBAAC,KAAK,OAAG,CACC;YACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,QAAQ;gBACvB,oBAAC,MAAM;oBACL,oBAAC,MAAM,CAAC,MAAM,IAAC,KAAK,EAAC,MAAM,WAAqB,CACzC,CACC;YACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,YAAY;gBAC3B,oBAAC,UAAU,IACT,QAAQ,EAAE;wBACR;4BACE,KAAK,EAAE,OAAO;4BACd,KAAK,EAAE,OAAO;4BACd,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;yBACjD;qBACF,GACD,CACQ;YACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,UAAU;gBACzB,oBAAC,QAAQ,IACP,OAAO,EAAE;wBACP;4BACE,KAAK,EAAE,UAAU;4BACjB,KAAK,EAAE,UAAU;4BACjB,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;yBACrD;qBACF,GACD,CACQ;YACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,YAAY;gBAC3B,oBAAC,UAAU,OAAG,CACJ;YACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,aAAa;gBAC5B,oBAAC,WAAW,OAAG,CACL;YACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,aAAa;gBAC5B,oBAAC,WAAW,OAAG,CACL;YACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,UAAU;gBACzB,oBAAC,QAAQ,IAAC,IAAI,EAAE,CAAC,GAAI,CACX;YACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,aAAa,EAAC,SAAS;gBAC/C,oBAAC,MAAM,OAAG,CACA;YACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,aAAa,EAAC,UAAU;gBAChD,oBAAC,MAAM,OAAG,CACA;YACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,QAAQ;gBACvB,oBAAC,MAAM,iBAAgB,CACb,CACP,CACR,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,GAAG,OAAG,CAAC,CAAC;QACtC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IACR,IAAI,EAAC,OAAO;gBACZ,aAAa;gBACb,mBAAmB,EAAE;oBACnB,IAAI,EAAE,kBAAkB;oBACxB,MAAM,EAAE,CAAC,CAAM,EAAE,IAAS,EAAE,EAAE,CAAC,CAC7B;wBACE,gDAAsB;wBACrB,IAAI,CAAC,KAAK;wBACV,IAAI,CAAC,SAAS;wBACd,IAAI,CAAC,KAAK,CACP,CACP;iBACF;gBAED,+BAAO,YAAY,EAAC,gBAAgB,GAAG,CAC7B,CACP,CACR,CAAC;QAEF,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAE,CAAC,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8GAA8G,EAAE,KAAK,IAAI,EAAE;QAC5H,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC;QAC9B,mGAAmG;QACnG,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC1B,MAAM,IAAI,GAAa,GAAG,EAAE;YAC1B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YACxC,OAAO,CACL;gBACE,oBAAC,IAAI;oBACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ;wBACxC,oBAAC,MAAM,IACL,SAAS,EAAC,sBAAsB,EAChC,YAAY,EAAC,MAAM,EACnB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;4BAErB,oBAAC,MAAM,IAAC,KAAK,EAAC,MAAM,WAAc;4BAClC,oBAAC,MAAM,IAAC,KAAK,EAAC,MAAM,WAAc;4BAClC,oBAAC,MAAM,IAAC,KAAK,EAAC,UAAU,eAAkB,CACnC,CACC,CACP;gBACP,gCACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE;wBACZ,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC,IAEA,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAClB,CACR,CACJ,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,oBAAC,IAAI,OAAG,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAClC,MAAM,CAAE,IAAI,CAAC,UAA2B,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE3D,mCAAmC;QACnC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAEvE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC,CAAC;QACpD,MAAM,aAAa,EAAE,CAAC;QAEtB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAErE,MAAM,CAAC,WAAW,EAAE,CAAC;QAErB,QAAQ,CAAC,oBAAC,IAAI,OAAG,CAAC,CAAC;QACnB,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;YACzB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;gBACH,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,OAAO,EAAC,OAAO,EAAE,2CAAmB;oBACnD,oBAAC,KAAK,OAAG,CACC,CACP,CACR,CAAC;YAEF,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC,0BAA0B,CAAE,CAAC,CAAC;YAC3E,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;gBACH,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,OAAO,EAAC,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;oBACnD,oBAAC,KAAK,OAAG,CACC,CACP,CACR,CAAC;YAEF,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC,0BAA0B,CAAE,CAAC,CAAC;YAC3E,MAAM,aAAa,EAAE,CAAC;YAEtB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI;gBACR,oBAAC,IAAI,CAAC,IAAI,IACR,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,MAAM,EACZ,YAAY,EAAC,QAAQ,EACrB,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;oBAE9C,oBAAC,KAAK,OAAG,CACC,CACF,CACP,CACR,CAAC;QAEF,MAAM,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEzB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QACzE,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,IAAI,QAAQ,GAA2B,IAAI,CAAC,EAAE,EAAE,CAAC;QAEjD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CACxB,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI;gBACR,oBAAC,IAAI,CAAC,IAAI,IACR,OAAO,QACP,IAAI,EAAC,MAAM,EACX,YAAY,EAAC,QAAQ,EACrB,KAAK,EAAE;wBACL;4BACE,SAAS,EAAE,GAAG,EAAE,CACd,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gCACxB,QAAQ,GAAG,MAAM,CAAC;4BACpB,CAAC,CAAC;yBACL;qBACF;oBAED,oBAAC,KAAK,OAAG,CACC,CACF,CACP,CACR,CAAC;QAEF,MAAM,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEzB,OAAO,EAAE,CAAC;QAEV,wBAAwB;QACxB,QAAQ,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QAEpC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;YACvB,MAAM,CACJ,oBAAC,IAAI;gBACH,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,cAAI,EAAC,IAAI,EAAC,cAAI;oBAC7B,kCAAS,CACC,CACP,CACR,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,CACJ,oBAAC,IAAI,IAAC,KAAK;gBACT,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAC,cAAI,EAAC,IAAI,EAAC,cAAI;oBAC3C,oBAAC,KAAK,OAAG,CACC,CACP,CACR,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,CACJ,oBAAC,IAAI,IAAC,KAAK,EAAE,KAAK;gBAChB,oBAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,cAAI,EAAC,IAAI,EAAC,cAAI;oBAC7B,oBAAC,KAAK,OAAG,CACC,CACP,CACR,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,IAAI,YAAY,CAAC;QACjB,IAAI,eAAe,CAAC;QAEpB,MAAM,GAAG,GAAG,GAAG,EAAE;YACf,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACvC,eAAe,GAAG,OAAO,CAAC;YAE1B,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,MAAM,IAAI,GAAa,GAAG,EAAE;YAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9B,YAAY,GAAG,IAAI,CAAC;YAEpB,OAAO,CACL,oBAAC,IAAI,IAAC,IAAI,EAAE,IAAI;gBACd,oBAAC,GAAG,OAAG,CACF,CACR,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,CAAC,oBAAC,IAAI,OAAG,CAAC,CAAC;QACjB,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;;QAC1C,MAAM,IAAI,GAAa,GAAG,EAAE,CAAC,CAC3B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,cAAc,EAAC,OAAO,EAAC,OAAO;gBACvC,oBAAC,MAAM,IAAC,SAAS,EAAC,eAAe,GAAG,CAC1B;YACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,cAAc,EAAC,OAAO;gBAC/B,oBAAC,IAAI,CAAC,IAAI,IAAC,OAAO;oBAChB,oBAAC,MAAM,IAAC,SAAS,EAAC,iBAAiB,GAAG,CAC5B,CACF;YACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,cAAc,EAAC,OAAO;gBAC/B,oBAAC,IAAI,CAAC,IAAI,IAAC,OAAO,QAAC,cAAc,EAAC,SAAS;oBACzC,oBAAC,MAAM,IAAC,SAAS,EAAC,iBAAiB,GAAG,CAC5B,CACF;YACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,OAAO;gBAChB,oBAAC,IAAI,CAAC,IAAI,IAAC,cAAc,EAAC,SAAS;oBACjC,oBAAC,MAAM,IAAC,SAAS,EAAC,iBAAiB,GAAG,CAC5B,CACF,CACP,CACR,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,IAAI,OAAG,CAAC,CAAC;QACvC,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,0CAAE,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC3F,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,0CAAE,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC3F,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,kBAAkB,CAAC,0CAAE,SAAS,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACzF,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,kBAAkB,CAAC,0CAAE,SAAS,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACzF,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,kBAAkB,CAAC,0CAAE,SAAS,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACzF,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,kBAAkB,CAAC,0CAAE,SAAS,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACzF,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,kBAAkB,CAAC,0CAAE,SAAS,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC3F,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,kBAAkB,CAAC,0CAAE,SAAS,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;;QAChD,MAAM,IAAI,GAAa,GAAG,EAAE,CAAC,CAC3B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,QAAQ,EAAE,CAAa,EAAE,cAAc,EAAC,OAAO;gBACxD,oBAAC,KAAK,IAAC,OAAO;oBACZ,oBAAC,MAAM,IAAC,SAAS,EAAC,cAAc,GAAG,CAC7B,CACE;YACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,cAAc,EAAC,OAAO;gBAC/B,oBAAC,MAAM,IAAC,OAAO;oBACb,oBAAC,MAAM,IAAC,SAAS,EAAC,eAAe,GAAG,CAC7B,CACC,CACP,CACR,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,IAAI,OAAG,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACrE,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,0CAAE,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC1F,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,0CAAE,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC1F,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,0CAAE,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC3F,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,0CAAE,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;;QAC/C,MAAM,EACJ,IAAI,EAAE,EAAE,SAAS,EAAE,GACpB,GAAG,IAAI,CAAC;QAET,MAAM,WAAW,GAA8D,CAAC,EAC9E,SAAS,EACT,KAAK,GACN,EAAE,EAAE;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;YAC/B,OAAO,6BAAK,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,uBAAuB,MAAM,EAAE,CAAC,IAAG,KAAK,CAAO,CAAC;QAC/F,CAAC,CAAC;QAEF,MAAM,IAAI,GAAa,GAAG,EAAE;YAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAE9B,OAAO,CACL,oBAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,SAAS;gBAC9B,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;oBACpD,oBAAC,WAAW,IAAC,SAAS,EAAC,uBAAuB,EAAC,KAAK,EAAC,EAAE,GAAG,CAChD;gBACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,SAAS,EAAC,cAAc,EAAC,SAAS;oBAChD,oBAAC,WAAW,IAAC,SAAS,EAAC,sBAAsB,GAAG,CACtC;gBACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,QAAQ;oBACtB,oBAAC,WAAW,IAAC,SAAS,EAAC,cAAc,GAAG,CAC9B;gBACZ,oBAAC,WAAW,IAAC,SAAS,EAAC,oBAAoB,GAAG;gBAC9C,oBAAC,MAAM,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAC,eAAe,aAEtD,CACJ,CACR,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,IAAI,OAAG,CAAC,CAAC;QAEvC,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC,0CAAE,SAAS,CAAC,CAAC,SAAS,CAC5E,sBAAsB,CACvB,CAAC;QACF,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,uBAAuB,CAAC,0CAAE,SAAS,CAAC,CAAC,SAAS,CAC3E,6BAA6B,CAC9B,CAAC;QACF,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,0CAAE,SAAS,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAC9F,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,qBAAqB,CAAC,0CAAE,SAAS,CAAC,CAAC,SAAS,CACzE,+BAA+B,CAChC,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,MAAM,CAAC,gBAAgB,CAAC,+DAA+D,CAAC,CACzF,CAAC;QAEF,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAE,CAAC,CAAC;QAC5D,MAAM,aAAa,EAAE,CAAC;QAEtB,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC,0CAAE,SAAS,CAAC,CAAC,SAAS,CAC5E,2BAA2B,CAC5B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;QACrC,MAAM,UAAU,GAAG,IAAI;aACpB,KAAK,CAAC,MAAM,EAAE,kBAAkB,CAAC;aACjC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAqC,CAAA,CAAC,CAAC;QAEtF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,UAAU,EAAC,YAAY,EAAC,QAAQ,EAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAC1E,oBAAC,KAAK,OAAG,CACC,CACP,CACR,CAAC;QAEF,MAAM,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEzB,UAAU,CAAC,WAAW,EAAE,CAAC;QAEzB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC,WAAW,CAAC;YAC1E,YAAY,EAAE,CAAC,EAAE;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,iGAAiG,EAAE,GAAG,EAAE;QACzG,MAAM,KAAK,GAAG;YACZ,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,kDAAkD;YAC1D,OAAO,EAAE;gBACP,aAAa,EAAE,oBAAoB;aACpC;YACD,OAAO,EAAE,IAAI;SACd,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC;YAC1C,oBAAC,MAAM,IAAC,GAAG,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,WAEhE;YACT,oBAAC,QAAQ,IAAC,GAAG,EAAC,UAAU,EAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,GAAI;YAC5D,oBAAC,QAAQ,IAAC,GAAG,EAAC,UAAU,EAAC,QAAQ,EAAE,QAAQ,GAAI;YAC/C,oBAAC,QAAQ,CAAC,KAAK,IACb,GAAG,EAAC,eAAe,EACnB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE;oBAC3B,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;iBAC9B,GACD;YACF,oBAAC,WAAW,IAAC,GAAG,EAAC,aAAa,EAAC,QAAQ,EAAE,QAAQ,GAAI;YACrD,oBAAC,KAAK,IAAC,GAAG,EAAC,OAAO,EAAC,QAAQ,EAAE,QAAQ,GAAI;YACzC,oBAAC,MAAM,IAAC,GAAG,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,GAAI;YAC3C,oBAAC,MAAM,IAAC,GAAG,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,GAAI;YAC3C,oBAAC,UAAU,IAAC,GAAG,EAAC,YAAY,EAAC,QAAQ,EAAE,QAAQ,GAAI;YACnD,oBAAC,MAAM,kBAAC,GAAG,EAAC,QAAQ,IAAK,KAAK,IAAE,QAAQ,EAAE,QAAQ;gBAChD,oBAAC,MAAM,IAAC,QAAQ,EAAE,QAAQ,sBAA0B,CAC7C;YACT,oBAAC,UAAU,IAAC,GAAG,EAAC,YAAY,EAAC,QAAQ,EAAE,QAAQ,GAAI;YACnD,oBAAC,UAAU,CAAC,WAAW,IAAC,GAAG,EAAC,wBAAwB,EAAC,QAAQ,EAAE,QAAQ,GAAI;YAC3E,oBAAC,UAAU,CAAC,WAAW,IAAC,GAAG,EAAC,wBAAwB,EAAC,QAAQ,EAAE,QAAQ,GAAI;YAC3E,oBAAC,UAAU,CAAC,aAAa,IAAC,GAAG,EAAC,0BAA0B,EAAC,QAAQ,EAAE,QAAQ,GAAI;YAC/E,oBAAC,UAAU,CAAC,UAAU,IAAC,GAAG,EAAC,uBAAuB,EAAC,QAAQ,EAAE,QAAQ,GAAI;YACzE,oBAAC,UAAU,CAAC,UAAU,IAAC,GAAG,EAAC,uBAAuB,EAAC,QAAQ,EAAE,QAAQ,GAAI;YACzE,oBAAC,UAAU,CAAC,UAAU,IAAC,GAAG,EAAC,uBAAuB,EAAC,QAAQ,EAAE,QAAQ,GAAI;SAC1E,CAAC;QACF,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,oBAAC,IAAI,IAAC,QAAQ,UAAE,WAAW,CAAC,KAAK,CAAC,CAAQ,CAAC;QAE7D,MAAM,OAAO,GAAG,MAAM,CAAC,oBAAC,GAAG,OAAG,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,oBAAC,IAAI,IAAC,QAAQ,UAAE,WAAW,EAAE,CAAQ,CAAC;QAEzD,MAAM,QAAQ,GAAG,MAAM,CAAC,oBAAC,IAAI,OAAG,CAAC,CAAC;QAClC,qEAAqE;QACrE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE1E,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,oBAAC,IAAI,IAAC,QAAQ,UAAE,WAAW,CAAC,IAAI,CAAC,CAAQ,CAAC;QAE7D,MAAM,QAAQ,GAAG,MAAM,CAAC,oBAAC,IAAI,OAAG,CAAC,CAAC;QAElC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE1E,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,oBAAC,IAAI,QAAE,WAAW,CAAC,IAAI,CAAC,CAAQ,CAAC;QAEpD,MAAM,QAAQ,GAAG,MAAM,CAAC,oBAAC,IAAI,OAAG,CAAC,CAAC;QAElC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE1E,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,oBAAC,IAAI,QAAE,WAAW,EAAE,CAAQ,CAAC;QAEhD,MAAM,QAAQ,GAAG,MAAM,CAAC,oBAAC,IAAI,OAAG,CAAC,CAAC;QAElC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import type { ChangeEventHandler } from 'react';\nimport React, { useState } from 'react';\nimport scrollIntoView from 'scroll-into-view-if-needed';\nimport classNames from 'classnames';\nimport type { ColProps } from 'antd/es/grid';\nimport type { FormInstance } from '..';\nimport Form from '..';\nimport * as Util from '../util';\nimport Button from '../../button';\nimport Input from '../../input';\nimport Select from '../../select';\nimport Upload from '../../upload';\nimport Cascader from '../../cascader';\nimport Checkbox from '../../checkbox';\nimport DatePicker from '../../date-picker';\nimport InputNumber from '../../input-number';\nimport Radio from '../../radio';\nimport Switch from '../../switch';\nimport TreeSelect from '../../tree-select';\nimport mountTest from '../../../tests/shared/mountTest';\nimport rtlTest from '../../../tests/shared/rtlTest';\nimport { fireEvent, render, screen, pureRender, waitFakeTimer } from '../../../tests/utils';\nimport ConfigProvider from '../../config-provider';\nimport Drawer from '../../drawer';\nimport zhCN from '../../locale/zh_CN';\nimport Modal from '../../modal';\nimport type { NamePath } from '../interface';\n\nconst { RangePicker } = DatePicker;\nconst { TextArea } = Input;\n\njest.mock('scroll-into-view-if-needed');\n\ndescribe('Form', () => {\n mountTest(Form);\n mountTest(Form.Item);\n\n rtlTest(Form);\n rtlTest(Form.Item);\n\n (scrollIntoView as any).mockImplementation(() => {});\n const errorSpy = jest.spyOn(console, 'error').mockImplementation(() => {});\n const warnSpy = jest.spyOn(console, 'warn').mockImplementation(() => {});\n\n // const change = async (\n // container: ReturnType<typeof render>['container'],\n // index: number,\n // value: string,\n // executeMockTimer: boolean,\n // ) => {\n // fireEvent.change(container.querySelectorAll('input')?.[index], { target: { value } });\n // await sleep(200);\n\n // if (executeMockTimer) {\n // for (let i = 0; i < 10; i += 1) {\n // act(() => {\n // jest.runAllTimers();\n // });\n // }\n // await sleep(1);\n // }\n // };\n\n const changeValue = async (\n input: HTMLElement | null | number,\n value: string,\n advTimer = 1000,\n ) => {\n let element: HTMLElement;\n\n if (typeof input === 'number') {\n element = document.querySelectorAll('input')[input];\n }\n\n expect(element!).toBeTruthy();\n\n fireEvent.change(element!, {\n target: {\n value,\n },\n });\n\n if (advTimer) {\n await waitFakeTimer(advTimer / 20, 20);\n }\n };\n\n beforeEach(() => {\n document.body.innerHTML = '';\n jest.useFakeTimers();\n (scrollIntoView as any).mockReset();\n });\n\n afterEach(() => {\n errorSpy.mockReset();\n });\n\n afterAll(() => {\n jest.clearAllTimers();\n jest.useRealTimers();\n errorSpy.mockRestore();\n warnSpy.mockRestore();\n (scrollIntoView as any).mockRestore();\n });\n\n describe('noStyle Form.Item', () => {\n it('should show alert when form field is required but empty', async () => {\n const onChange = jest.fn();\n\n const { container } = render(\n <Form>\n <Form.Item>\n <Form.Item name=\"test\" label=\"test\" initialValue=\"bamboo\" rules={[{ required: true }]}>\n <Input onChange={onChange} />\n </Form.Item>\n </Form.Item>\n </Form>,\n );\n\n // user type something and clear\n await changeValue(0, 'test');\n await changeValue(0, '');\n\n // should show alert with correct message and show correct styles\n expect(container.querySelector('.ant-form-item-explain-error')).toHaveTextContent(\n \"'test' is required\",\n );\n expect(container.querySelector('.ant-input-status-error')).toBeTruthy();\n expect(container.querySelector('.ant-form-item-has-error')).toBeTruthy();\n\n expect(onChange).toHaveBeenCalled();\n });\n\n it('should clean up', async () => {\n const Demo: React.FC = () => {\n const [form] = Form.useForm();\n\n const onChange = async () => {\n // Wait a while and then some logic to validate\n await waitFakeTimer();\n\n try {\n await form.validateFields();\n } catch (err) {\n // do nothing\n }\n };\n\n return (\n <Form form={form} initialValues={{ aaa: '2' }}>\n <Form.Item name=\"aaa\">\n <Input onChange={onChange} />\n </Form.Item>\n <Form.Item shouldUpdate noStyle>\n {() => {\n const aaa = form.getFieldValue('aaa');\n\n if (aaa === '1') {\n return (\n <Form.Item name=\"bbb\" rules={[{ required: true, message: 'aaa' }]}>\n <Input />\n </Form.Item>\n );\n }\n\n return (\n <Form.Item>\n <Form.Item name=\"ccc\" rules={[{ required: true, message: 'ccc' }]} noStyle>\n <Input />\n </Form.Item>\n </Form.Item>\n );\n }}\n </Form.Item>\n </Form>\n );\n };\n\n const { container } = render(<Demo />);\n\n await changeValue(0, '1');\n await waitFakeTimer(2000, 2000);\n expect(container.querySelector('.ant-form-item-explain-error')).toHaveTextContent('aaa');\n\n await changeValue(0, '2');\n await waitFakeTimer(2000, 2000);\n expect(container.querySelector('.ant-form-item-explain-error')).toHaveTextContent('ccc');\n\n await changeValue(0, '1');\n await waitFakeTimer(2000, 2000);\n expect(container.querySelector('.ant-form-item-explain-error')).toHaveTextContent('aaa');\n });\n });\n\n it('render functions require either `shouldUpdate` or `dependencies`', () => {\n render(\n <Form>\n <Form.Item>{() => null}</Form.Item>\n </Form>,\n );\n expect(errorSpy).toHaveBeenCalledWith(\n 'Warning: [antd: Form.Item] A `Form.Item` with a render function must have either `shouldUpdate` or `dependencies`.',\n );\n });\n\n it(\"`shouldUpdate` shouldn't work with `dependencies`\", () => {\n render(\n <Form>\n <Form.Item shouldUpdate dependencies={[]}>\n {() => null}\n </Form.Item>\n </Form>,\n );\n expect(errorSpy).toHaveBeenCalledWith(\n \"Warning: [antd: Form.Item] `shouldUpdate` and `dependencies` shouldn't be used together. See https://u.ant.design/form-deps.\",\n );\n });\n\n it('`name` should not work with render props', () => {\n render(\n <Form>\n <Form.Item name=\"test\" shouldUpdate>\n {() => null}\n </Form.Item>\n </Form>,\n );\n expect(errorSpy).toHaveBeenCalledWith(\n \"Warning: [antd: Form.Item] A `Form.Item` with a render function cannot be a field, and thus cannot have a `name` prop.\",\n );\n });\n\n it('multiple children with a name prop', () => {\n render(\n <Form>\n <Form.Item name=\"test\">\n <div>one</div>\n <div>two</div>\n </Form.Item>\n </Form>,\n );\n expect(errorSpy).toHaveBeenCalledWith(\n 'Warning: [antd: Form.Item] A `Form.Item` with a `name` prop must have a single child element. For information on how to render more complex form items, see https://u.ant.design/complex-form-item.',\n );\n });\n\n it('input element should have the prop aria-describedby pointing to the help id when there is a help message', () => {\n const { container } = pureRender(\n <Form>\n <Form.Item name=\"test\" help=\"This is a help\">\n <input />\n </Form.Item>\n </Form>,\n );\n expect(container.querySelector('input')?.getAttribute('aria-describedby')).toBe('test_help');\n expect(container.querySelector('.ant-form-item-explain')?.id).toBe('test_help');\n });\n\n it('input element should not have the prop aria-describedby pointing to the help id when there is a help message and name is not defined', () => {\n const { container } = render(\n <Form>\n <Form.Item help=\"This is a help\">\n <input />\n </Form.Item>\n </Form>,\n );\n expect(container.querySelector('input')?.getAttribute('aria-describedby')).toBeFalsy();\n expect(container.querySelector('.ant-form-item-explain')?.id).toBeFalsy();\n });\n\n it('input element should have the prop aria-describedby concatenated with the form name pointing to the help id when there is a help message', () => {\n const { container } = render(\n <Form name=\"form\">\n <Form.Item name=\"test\" help=\"This is a help\">\n <input />\n </Form.Item>\n </Form>,\n );\n expect(container.querySelector('input')?.getAttribute('aria-describedby')).toBe(\n 'form_test_help',\n );\n expect(container.querySelector('.ant-form-item-explain')?.id).toBe('form_test_help');\n });\n\n it('input element should have the prop aria-describedby pointing to the help id when there are errors', async () => {\n const { container } = pureRender(\n <Form>\n <Form.Item name=\"test\" rules={[{ len: 3 }, { type: 'number' }]}>\n <input />\n </Form.Item>\n </Form>,\n );\n\n await changeValue(0, 'Invalid number');\n\n expect(container.querySelector('input')?.getAttribute('aria-describedby')).toBe('test_help');\n expect(container.querySelector('.ant-form-item-explain')?.id).toBe('test_help');\n });\n\n it('input element should have the prop aria-invalid when there are errors', async () => {\n const { container } = render(\n <Form>\n <Form.Item name=\"test\" rules={[{ len: 3 }, { type: 'number' }]}>\n <input />\n </Form.Item>\n </Form>,\n );\n\n await changeValue(0, 'Invalid number');\n expect(container.querySelector('input')?.getAttribute('aria-invalid')).toBe('true');\n });\n\n it('input element should have the prop aria-required when the prop `required` is true', () => {\n const { container } = render(\n <Form>\n <Form.Item name=\"test\" required>\n <input />\n </Form.Item>\n </Form>,\n );\n expect(container.querySelector('input')?.getAttribute('aria-required')).toBe('true');\n });\n\n it('input element should have the prop aria-required when there is a rule with required', () => {\n const { container } = render(\n <Form>\n <Form.Item name=\"test\" rules={[{ required: true }]}>\n <input />\n </Form.Item>\n </Form>,\n );\n expect(container.querySelector('input')?.getAttribute('aria-required')).toBe('true');\n });\n\n it('input element should have the prop aria-describedby pointing to the extra id when there is a extra message', () => {\n const { container } = render(\n <Form>\n <Form.Item name=\"test\" extra=\"This is a extra message\">\n <input />\n </Form.Item>\n </Form>,\n );\n expect(container.querySelector('input')?.getAttribute('aria-describedby')).toBe('test_extra');\n expect(container.querySelector('.ant-form-item-extra')?.id).toBe('test_extra');\n });\n\n it('input element should not have the prop aria-describedby pointing to the extra id when there is a extra message and name is not defined', () => {\n const { container } = render(\n <Form>\n <Form.Item extra=\"This is a extra message\">\n <input />\n </Form.Item>\n </Form>,\n );\n expect(container.querySelector('input')?.getAttribute('aria-describedby')).toBeFalsy();\n expect(container.querySelector('.ant-form-item-extra')?.id).toBeFalsy();\n });\n\n it('input element should have the prop aria-describedby pointing to the help and extra id when there is a help and extra message', () => {\n const { container } = render(\n <Form>\n <Form.Item name=\"test\" help=\"This is a help\" extra=\"This is a extra message\">\n <input />\n </Form.Item>\n </Form>,\n );\n expect(container.querySelector('input')?.getAttribute('aria-describedby')).toBe(\n 'test_help test_extra',\n );\n });\n\n describe('scrollToField', () => {\n const test = (name: string, genForm: () => any) => {\n it(name, () => {\n let callGetForm: any;\n\n const Demo: React.FC = () => {\n const { props, getForm } = genForm();\n callGetForm = getForm;\n\n return (\n <Form name=\"scroll\" {...props}>\n <Form.Item name=\"test\">\n <Input />\n </Form.Item>\n </Form>\n );\n };\n\n render(<Demo />);\n\n expect(scrollIntoView).not.toHaveBeenCalled();\n const form = callGetForm();\n form.scrollToField('test', {\n block: 'start',\n });\n\n const inputNode = document.getElementById('scroll_test');\n expect(scrollIntoView).toHaveBeenCalledWith(inputNode, {\n block: 'start',\n scrollMode: 'if-needed',\n });\n });\n };\n\n // hooks\n test('useForm', () => {\n const [form] = Form.useForm();\n return {\n props: { form },\n getForm: () => form,\n };\n });\n\n // ref\n test('ref', () => {\n let form: any;\n return {\n props: {\n ref: (instance: any) => {\n form = instance;\n },\n },\n getForm: () => form,\n };\n });\n });\n\n it('scrollToFirstError', async () => {\n const onFinishFailed = jest.fn();\n\n const { container } = render(\n <Form scrollToFirstError={{ block: 'center' }} onFinishFailed={onFinishFailed}>\n <Form.Item name=\"test\" rules={[{ required: true }]}>\n <input />\n </Form.Item>\n <Form.Item>\n <Button htmlType=\"submit\">Submit</Button>\n </Form.Item>\n </Form>,\n );\n\n expect(scrollIntoView).not.toHaveBeenCalled();\n fireEvent.submit(container.querySelector('form')!);\n await waitFakeTimer();\n\n const inputNode = document.getElementById('test');\n expect(scrollIntoView).toHaveBeenCalledWith(inputNode, {\n block: 'center',\n scrollMode: 'if-needed',\n });\n expect(onFinishFailed).toHaveBeenCalled();\n });\n\n it('Form.Item should support data-*、aria-* and custom attribute', () => {\n const { container } = render(\n <Form>\n {/* @ts-ignore */}\n <Form.Item data-text=\"123\" aria-hidden=\"true\" cccc=\"bbbb\">\n text\n </Form.Item>\n </Form>,\n );\n expect(container.firstChild).toMatchSnapshot();\n });\n\n it('warning when use `name` but children is not validate element', () => {\n render(\n <Form>\n <Form.Item name=\"warning\">text</Form.Item>\n </Form>,\n );\n expect(errorSpy).toHaveBeenCalledWith(\n 'Warning: [antd: Form.Item] `name` is only used for validate React element. If you are using Form.Item as layout display, please remove `name` instead.',\n );\n });\n\n it('dynamic change required', async () => {\n const { container } = render(\n <Form>\n <Form.Item label=\"light\" name=\"light\" valuePropName=\"checked\">\n <input type=\"checkbox\" />\n </Form.Item>\n <Form.Item\n label=\"bamboo\"\n name=\"bamboo\"\n dependencies={['light']}\n rules={[({ getFieldValue }) => ({ required: getFieldValue('light') })]}\n >\n <input />\n </Form.Item>\n </Form>,\n );\n\n // should not show alert by default\n expect(container.querySelector('.ant-form-item-explain')).toBeFalsy();\n\n // click to change the light field value to true\n fireEvent.click(container.querySelector('input')!);\n await waitFakeTimer();\n\n // user input something and clear\n await changeValue(1, '1');\n await changeValue(1, '');\n\n // should show alert says that the field is required\n expect(container.querySelector('.ant-form-item-explain-error')).toHaveTextContent(\n \"'bamboo' is required\",\n );\n });\n\n describe('should show related className when customize help', () => {\n it('normal', async () => {\n const { container } = render(\n <Form>\n <Form.Item help=\"good\">\n <input />\n </Form.Item>\n </Form>,\n );\n\n await waitFakeTimer();\n\n expect(container.querySelector('.ant-form-item-explain')).toHaveTextContent('good');\n expect(container.querySelector('.ant-form-item-with-help')).toBeTruthy();\n });\n\n it('empty string', async () => {\n const { container } = render(\n <Form>\n <Form.Item help=\"\">\n <input />\n </Form.Item>\n </Form>,\n );\n\n await waitFakeTimer();\n\n expect(container.querySelector('.ant-form-item-explain')).toHaveTextContent('');\n expect(container.querySelector('.ant-form-item-with-help')).toBeTruthy();\n });\n });\n\n it('warning when use v3 function', () => {\n Form.create();\n expect(errorSpy).toHaveBeenCalledWith(\n 'Warning: [antd: Form] antd v4 removed `Form.create`. Please remove or use `@ant-design/compatible` instead.',\n );\n });\n\n // https://github.com/ant-design/ant-design/issues/20706\n it('Error change should work', async () => {\n const { container } = render(\n <Form>\n <Form.Item\n name=\"name\"\n label=\"test\"\n rules={[\n { required: true },\n {\n validator: (_, value) => {\n if (value === 'p') {\n return Promise.reject(new Error('not a p'));\n }\n return Promise.resolve();\n },\n },\n ]}\n >\n <Input />\n </Form.Item>\n </Form>,\n );\n\n /* eslint-disable no-await-in-loop */\n for (let i = 0; i < 3; i += 1) {\n await changeValue(0, 'bamboo');\n await changeValue(0, '');\n expect(container.querySelector('.ant-form-item-explain')?.textContent).toEqual(\n \"'name' is required\",\n );\n\n await changeValue(0, 'p');\n expect(container.querySelector('.ant-form-item-explain')?.textContent).toEqual('not a p');\n }\n /* eslint-enable */\n });\n\n // https://github.com/ant-design/ant-design/issues/20813\n it('should update help directly when provided', async () => {\n const App: React.FC = () => {\n const [message, updateMessage] = React.useState('');\n return (\n <Form>\n <Form.Item label=\"hello\" help={message}>\n <Input />\n </Form.Item>\n <Button onClick={() => updateMessage('bamboo')} />\n </Form>\n );\n };\n\n const { container } = render(<App />);\n\n // should show initial text\n await waitFakeTimer();\n expect(container.querySelector('.ant-form-item-explain')).toHaveTextContent('');\n\n fireEvent.click(container.querySelector('button')!);\n\n // should show bamboo alert without opacity and hide first alert with opacity: 0\n await waitFakeTimer();\n expect(container.querySelector('.ant-form-item-explain')).toHaveTextContent('bamboo');\n });\n\n it('warning when use `dependencies` but `name` is empty & children is not a render props', () => {\n render(\n <Form>\n <Form.Item dependencies={[]}>text</Form.Item>\n </Form>,\n );\n expect(errorSpy).toHaveBeenCalledWith(\n 'Warning: [antd: Form.Item] Must set `name` or use a render function when `dependencies` is set.',\n );\n });\n\n // https://github.com/ant-design/ant-design/issues/20948\n it('not repeat render when Form.Item is not a real Field', async () => {\n const shouldNotRender = jest.fn();\n const StaticInput: React.FC<React.InputHTMLAttributes<HTMLInputElement>> = ({\n id,\n value = '',\n }) => {\n shouldNotRender();\n return <input id={id} value={value} />;\n };\n\n const shouldRender = jest.fn();\n const DynamicInput: React.FC<React.InputHTMLAttributes<HTMLInputElement>> = ({\n value = '',\n id,\n }) => {\n shouldRender();\n return <input id={id} value={value} />;\n };\n\n const formRef = React.createRef<FormInstance>();\n\n const { container } = pureRender(\n <Form ref={formRef}>\n <Form.Item>\n <StaticInput />\n </Form.Item>\n <Form.Item name=\"light\">\n <DynamicInput id=\"changed\" />\n </Form.Item>\n </Form>,\n );\n\n await waitFakeTimer();\n\n expect(container.querySelector<HTMLInputElement>('#changed')!.value).toEqual('');\n expect(shouldNotRender).toHaveBeenCalledTimes(1);\n expect(shouldRender).toHaveBeenCalledTimes(1);\n\n formRef.current!.setFieldsValue({ light: 'bamboo' });\n await waitFakeTimer(100, 100);\n\n expect(formRef.current!.getFieldsValue()).toEqual({ light: 'bamboo' });\n\n expect(container.querySelector<HTMLInputElement>('#changed')!.value).toEqual('bamboo');\n expect(shouldNotRender).toHaveBeenCalledTimes(1);\n expect(shouldRender).toHaveBeenCalledTimes(2);\n });\n\n it('empty help should also render', () => {\n const { container } = render(\n <Form.Item help=\"\">\n <input />\n </Form.Item>,\n );\n expect(container.querySelectorAll('.ant-form-item-explain').length).toBeTruthy();\n });\n\n it('Form.Item with `help` should display error style when validate failed', async () => {\n const { container } = render(\n <Form>\n <Form.Item\n name=\"test\"\n label=\"test\"\n help=\"help\"\n initialValue=\"bamboo\"\n rules={[{ required: true, message: 'message' }]}\n >\n <Input />\n </Form.Item>\n </Form>,\n );\n\n await changeValue(0, '');\n expect(container.querySelector('.ant-form-item')).toHaveClass('ant-form-item-has-error');\n expect(container.querySelector('.ant-form-item-explain')!.textContent).toEqual('help');\n });\n\n it('clear validation message when', async () => {\n const { container } = render(\n <Form>\n <Form.Item name=\"test\" label=\"test\" rules={[{ required: true, message: 'message' }]}>\n <Input />\n </Form.Item>\n </Form>,\n );\n\n await changeValue(0, '1');\n expect(container.querySelectorAll('.ant-form-item-explain').length).toBeFalsy();\n\n await changeValue(0, '');\n expect(container.querySelectorAll('.ant-form-item-explain').length).toBeTruthy();\n\n await changeValue(0, '123');\n expect(container.querySelectorAll('.ant-form-item-explain').length).toBeFalsy();\n });\n\n // https://github.com/ant-design/ant-design/issues/21167\n it('`require` without `name`', () => {\n const { container } = render(\n <Form.Item label=\"test\" name=\"test\" required>\n <input />\n </Form.Item>,\n );\n\n // expect(screen.getByTitle('test')).toHaveClass('ant-form-item-required');\n expect(container.querySelector('.ant-form-item-required')).toBeTruthy();\n });\n\n it('0 is a validate Field', () => {\n render(\n <Form.Item name={0} label=\"0\">\n <input />\n </Form.Item>,\n );\n\n // if getByLabelText can get element, then it is a validate field with form control and label\n expect(screen.getByLabelText('0')).toBeInTheDocument();\n });\n\n it('`null` triggers warning and is treated as `undefined`', () => {\n render(\n <Form.Item name={null as unknown as NamePath} label=\"test\">\n <input />\n </Form.Item>,\n );\n\n // if getByLabelText can get element, then it is a validate field with form control and label\n expect(screen.queryByLabelText('test')).not.toBeInTheDocument();\n expect(errorSpy).toHaveBeenCalledWith(\n 'Warning: [antd: Form.Item] `null` is passed as `name` property',\n );\n });\n\n // https://github.com/ant-design/ant-design/issues/21415\n it('should not throw error when Component.props.onChange is null', async () => {\n const CustomComponent: React.FC = () => (\n <input onChange={null as unknown as ChangeEventHandler<HTMLInputElement>} />\n );\n render(\n <Form>\n <Form.Item name=\"custom\">\n <CustomComponent />\n </Form.Item>\n </Form>,\n );\n\n await changeValue(0, 'aaa');\n });\n\n it('change `help` should not warning', async () => {\n const Demo: React.FC = () => {\n const [error, setError] = React.useState(false);\n return (\n <Form>\n <Form.Item\n help={error ? 'This is an error msg' : undefined}\n validateStatus={error ? 'error' : ''}\n label=\"Username\"\n name=\"username\"\n >\n <input />\n </Form.Item>\n\n <Form.Item>\n <button type=\"button\" onClick={() => setError(!error)}>\n Trigger\n </button>\n </Form.Item>\n </Form>\n );\n };\n\n const { container } = render(<Demo />);\n fireEvent.click(container.querySelector('button')!);\n\n expect(errorSpy).not.toHaveBeenCalled();\n });\n\n it('`label` support template', async () => {\n const { container } = render(\n // eslint-disable-next-line no-template-curly-in-string\n <Form validateMessages={{ required: '${label} is good!' }}>\n <Form.Item name=\"test\" label=\"Bamboo\" rules={[{ required: true }]}>\n <input />\n </Form.Item>\n </Form>,\n );\n\n fireEvent.submit(container.querySelector('form')!);\n await waitFakeTimer();\n\n expect(container.querySelector('.ant-form-item-explain-error')).toHaveTextContent(\n 'Bamboo is good!',\n );\n });\n\n // https://github.com/ant-design/ant-design/issues/33691\n it('should keep upper locale in nested ConfigProvider', async () => {\n const { container } = render(\n <ConfigProvider locale={zhCN}>\n <ConfigProvider>\n <Form>\n <Form.Item name=\"test\" label=\"Bamboo\" rules={[{ required: true }]}>\n <input />\n </Form.Item>\n </Form>\n </ConfigProvider>\n </ConfigProvider>,\n );\n\n fireEvent.submit(container.querySelector('form')!);\n await waitFakeTimer();\n\n expect(container.querySelector('.ant-form-item-explain-error')).toHaveTextContent(\n '请输入Bamboo',\n );\n });\n\n it('`name` support template when label is not provided', async () => {\n const { container } = render(\n // eslint-disable-next-line no-template-curly-in-string\n <Form validateMessages={{ required: '${label} is good!' }}>\n <Form.Item name=\"Bamboo\" rules={[{ required: true }]}>\n <input />\n </Form.Item>\n </Form>,\n );\n\n fireEvent.submit(container.querySelector('form')!);\n await waitFakeTimer();\n\n expect(container.querySelector('.ant-form-item-explain-error')).toHaveTextContent(\n 'Bamboo is good!',\n );\n });\n\n it('`messageVariables` support validate', async () => {\n const { container } = render(\n // eslint-disable-next-line no-template-curly-in-string\n <Form validateMessages={{ required: '${label} is good!' }}>\n <Form.Item name=\"test\" messageVariables={{ label: 'Bamboo' }} rules={[{ required: true }]}>\n <input />\n </Form.Item>\n </Form>,\n );\n\n fireEvent.submit(container.querySelector('form')!);\n await waitFakeTimer();\n\n expect(container.querySelector('.ant-form-item-explain-error')).toHaveTextContent(\n 'Bamboo is good!',\n );\n });\n\n it('validation message should has alert role', async () => {\n // https://github.com/ant-design/ant-design/issues/25711\n const { container } = render(\n // eslint-disable-next-line no-template-curly-in-string\n <Form validateMessages={{ required: 'name is good!' }}>\n <Form.Item name=\"test\" rules={[{ required: true }]}>\n <input />\n </Form.Item>\n <Form.Item>\n <Button htmlType=\"submit\">Submit</Button>\n </Form.Item>\n </Form>,\n );\n\n fireEvent.submit(container.querySelector('form')!);\n await waitFakeTimer();\n\n expect(container.querySelector('.ant-form-item-explain-error')).toHaveTextContent(\n 'name is good!',\n );\n });\n\n it('return same form instance', async () => {\n const instances = new Set();\n\n const App: React.FC = () => {\n const [form] = Form.useForm();\n instances.add(form);\n const [, forceUpdate] = React.useState({});\n return (\n <button\n type=\"button\"\n onClick={() => {\n forceUpdate({});\n }}\n >\n Refresh\n </button>\n );\n };\n\n const { container } = pureRender(<App />);\n\n for (let i = 0; i < 5; i += 1) {\n fireEvent.click(container.querySelector('button')!);\n // eslint-disable-next-line no-await-in-loop\n await waitFakeTimer();\n }\n\n expect(instances.size).toBe(1);\n });\n\n it('should avoid re-render', async () => {\n let renderTimes = 0;\n\n const MyInput: React.FC<{ value?: string }> = ({ value = '', ...props }) => {\n renderTimes += 1;\n return <input value={value} {...props} />;\n };\n\n const Demo: React.FC = () => (\n <Form>\n <Form.Item name=\"username\" label=\"username\" rules={[{ required: true }]}>\n <MyInput />\n </Form.Item>\n </Form>\n );\n const { container } = pureRender(<Demo />);\n renderTimes = 0;\n\n await changeValue(0, 'a');\n\n expect(renderTimes).toEqual(1);\n expect(container.querySelector('input')).toHaveValue('a');\n });\n\n it('should warning with `defaultValue`', () => {\n render(\n <Form>\n <Form.Item name=\"light\">\n <input defaultValue=\"should warning\" />\n </Form.Item>\n </Form>,\n );\n\n expect(errorSpy).toHaveBeenCalledWith(\n 'Warning: [antd: Form.Item] `defaultValue` will not work on controlled Field. You should use `initialValues` of Form instead.',\n );\n });\n\n it('should remove Field and also reset error', async () => {\n const Demo: React.FC<{ showA?: boolean }> = ({ showA }) => (\n <Form>\n {showA ? (\n <Form.Item name=\"a\" help=\"error\">\n <input />\n </Form.Item>\n ) : (\n <Form.Item name=\"b\">\n <input />\n </Form.Item>\n )}\n </Form>\n );\n\n const { container, rerender } = render(<Demo showA />);\n\n await waitFakeTimer();\n expect(container.querySelector('.ant-form-item-explain')).toBeTruthy();\n\n rerender(<Demo showA={false} />);\n\n await waitFakeTimer();\n expect(container.querySelector('.ant-form-item-explain')).toBeFalsy();\n });\n\n it('no warning of initialValue & getValueProps & preserve', () => {\n render(\n <Form>\n <Form.Item initialValue=\"bamboo\" getValueProps={() => ({})} preserve={false}>\n <Input />\n </Form.Item>\n </Form>,\n );\n expect(errorSpy).not.toHaveBeenCalled();\n });\n\n it('should customize id when pass with id', () => {\n const { container } = render(\n <Form>\n <Form.Item name=\"light\">\n <Input id=\"bamboo\" />\n </Form.Item>\n </Form>,\n );\n\n expect(container.querySelector('input')!.id).toEqual('bamboo');\n });\n\n it('should trigger validate when onBlur when pass validateTrigger onBlur', async () => {\n const { container } = render(\n <Form validateTrigger=\"onBlur\">\n <Form.Item name=\"light\" label=\"light\" rules={[{ len: 3 }]}>\n <Input />\n </Form.Item>\n </Form>,\n );\n\n // type a invalidate value, not trigger validation\n await changeValue(0, '7777');\n expect(container.querySelector('.ant-form-item-explain')).toBeFalsy();\n\n // tab(onBlur) the input field, trigger and see the alert\n fireEvent.blur(container.querySelector('input')!);\n await waitFakeTimer();\n\n expect(container.querySelector('.ant-form-item-explain')).toBeTruthy();\n });\n\n describe('Form item hidden', () => {\n it('should work', () => {\n const { container } = render(\n <Form>\n <Form.Item name=\"light\" hidden>\n <Input />\n </Form.Item>\n </Form>,\n );\n expect(container.firstChild).toMatchSnapshot();\n });\n\n it('noStyle should not work when hidden', () => {\n const { container } = render(\n <Form>\n <Form.Item name=\"light\" hidden noStyle>\n <Input />\n </Form.Item>\n </Form>,\n );\n expect(container.firstChild).toMatchSnapshot();\n });\n });\n\n it('legacy hideRequiredMark', () => {\n const { container } = render(\n <Form hideRequiredMark role=\"form\">\n <Form.Item name=\"light\" label=\"light\" required>\n <Input />\n </Form.Item>\n </Form>,\n );\n\n expect(container.querySelector('form')!).toHaveClass('ant-form-hide-required-mark');\n });\n\n it('form should support disabled', () => {\n const App: React.FC = () => (\n <Form labelCol={{ span: 4 }} wrapperCol={{ span: 14 }} layout=\"horizontal\" disabled>\n <Form.Item label=\"Form disabled\" name=\"disabled\" valuePropName=\"checked\">\n <Checkbox>disabled</Checkbox>\n </Form.Item>\n <Form.Item label=\"Radio\">\n <Radio.Group>\n <Radio value=\"apple\">Apple</Radio>\n <Radio value=\"pear\">Pear</Radio>\n </Radio.Group>\n </Form.Item>\n <Form.Item label=\"Input\">\n <Input />\n </Form.Item>\n <Form.Item label=\"Select\">\n <Select>\n <Select.Option value=\"demo\">Demo</Select.Option>\n </Select>\n </Form.Item>\n <Form.Item label=\"TreeSelect\">\n <TreeSelect\n treeData={[\n {\n title: 'Light',\n value: 'light',\n children: [{ title: 'Bamboo', value: 'bamboo' }],\n },\n ]}\n />\n </Form.Item>\n <Form.Item label=\"Cascader\">\n <Cascader\n options={[\n {\n value: 'zhejiang',\n label: 'Zhejiang',\n children: [{ value: 'hangzhou', label: 'Hangzhou' }],\n },\n ]}\n />\n </Form.Item>\n <Form.Item label=\"DatePicker\">\n <DatePicker />\n </Form.Item>\n <Form.Item label=\"RangePicker\">\n <RangePicker />\n </Form.Item>\n <Form.Item label=\"InputNumber\">\n <InputNumber />\n </Form.Item>\n <Form.Item label=\"TextArea\">\n <TextArea rows={4} />\n </Form.Item>\n <Form.Item label=\"Switch\" valuePropName=\"checked\">\n <Switch />\n </Form.Item>\n <Form.Item label=\"Upload\" valuePropName=\"fileList\">\n <Upload />\n </Form.Item>\n <Form.Item label=\"Button\">\n <Button>Button</Button>\n </Form.Item>\n </Form>\n );\n const { container } = render(<App />);\n expect(container.firstChild).toMatchSnapshot();\n });\n\n it('_internalItemRender api test', () => {\n const { container } = render(\n <Form>\n <Form.Item\n name=\"light\"\n // @ts-ignore\n _internalItemRender={{\n mark: 'pro_table_render',\n render: (_: any, doms: any) => (\n <div>\n <h1>warning title</h1>\n {doms.input}\n {doms.errorList}\n {doms.extra}\n </div>\n ),\n }}\n >\n <input defaultValue=\"should warning\" />\n </Form.Item>\n </Form>,\n );\n\n expect(container.querySelector('h1')!).toHaveTextContent(/warning title/i);\n });\n\n it('Form Item element id will auto add form_item prefix if form name is empty and item name is in the black list', async () => {\n const mockFn = jest.spyOn(Util, 'getFieldId');\n const itemName = 'parentNode';\n // mock getFieldId old logic,if form name is empty ,and item name is parentNode,will get parentNode\n mockFn.mockImplementation(() => itemName);\n const { Option } = Select;\n const Demo: React.FC = () => {\n const [open, setOpen] = useState(false);\n return (\n <>\n <Form>\n <Form.Item name={itemName} label={itemName}>\n <Select\n className=\"form_item_parentNode\"\n defaultValue=\"lucy\"\n open={open}\n style={{ width: 120 }}\n >\n <Option value=\"jack\">Jack</Option>\n <Option value=\"lucy\">Lucy</Option>\n <Option value=\"Yiminghe\">yiminghe</Option>\n </Select>\n </Form.Item>\n </Form>\n <button\n type=\"button\"\n onClick={() => {\n setOpen(true);\n }}\n >\n {open ? 'show' : 'hidden'}\n </button>\n </>\n );\n };\n\n const { container, rerender } = render(<Demo />);\n expect(mockFn).toHaveBeenCalled();\n expect((Util.getFieldId as () => string)()).toBe(itemName);\n\n // make sure input id is parentNode\n expect(screen.getByLabelText(itemName)).toHaveAccessibleName(itemName);\n\n fireEvent.click(container.querySelector('button')!);\n await waitFakeTimer();\n\n expect(container.querySelector('button')!).toHaveTextContent('show');\n\n mockFn.mockRestore();\n\n rerender(<Demo />);\n expect(screen.getByLabelText(itemName)).toBeInTheDocument();\n });\n\n describe('tooltip', () => {\n it('ReactNode', async () => {\n const { container } = render(\n <Form>\n <Form.Item label=\"light\" tooltip={<span>Bamboo</span>}>\n <Input />\n </Form.Item>\n </Form>,\n );\n\n fireEvent.mouseEnter(container.querySelector('.anticon-question-circle')!);\n await waitFakeTimer();\n\n expect(container.querySelector('.ant-tooltip-inner')).toHaveTextContent('Bamboo');\n });\n\n it('config tooltip should show when hover on icon', async () => {\n const { container } = render(\n <Form>\n <Form.Item label=\"light\" tooltip={{ title: 'Bamboo' }}>\n <Input />\n </Form.Item>\n </Form>,\n );\n\n fireEvent.mouseEnter(container.querySelector('.anticon-question-circle')!);\n await waitFakeTimer();\n\n expect(container.querySelector('.ant-tooltip-inner')).toHaveTextContent('Bamboo');\n });\n });\n\n it('warningOnly validate', async () => {\n const { container } = render(\n <Form>\n <Form.Item>\n <Form.Item\n name=\"test\"\n label=\"test\"\n initialValue=\"bamboo\"\n rules={[{ required: true, warningOnly: true }]}\n >\n <Input />\n </Form.Item>\n </Form.Item>\n </Form>,\n );\n\n await changeValue(0, 'test');\n await changeValue(0, '');\n\n expect(container.querySelector('.ant-form-item-with-help')).toBeTruthy();\n expect(container.querySelector('.ant-form-item-has-warning')).toBeTruthy();\n });\n\n it('not warning when remove on validate', async () => {\n let rejectFn: (reason?: any) => void = jest.fn();\n\n const { unmount } = render(\n <Form>\n <Form.Item>\n <Form.Item\n noStyle\n name=\"test\"\n initialValue=\"bamboo\"\n rules={[\n {\n validator: () =>\n new Promise((_, reject) => {\n rejectFn = reject;\n }),\n },\n ]}\n >\n <Input />\n </Form.Item>\n </Form.Item>\n </Form>,\n );\n\n await changeValue(0, '');\n\n unmount();\n\n // Delay validate failed\n rejectFn(new Error('delay failed'));\n\n expect(errorSpy).not.toHaveBeenCalled();\n });\n\n describe('form colon', () => {\n it('default colon', () => {\n render(\n <Form>\n <Form.Item label=\"姓名\" name=\"姓名\">\n <input />\n </Form.Item>\n </Form>,\n );\n\n expect(screen.getByText('姓名')).not.toHaveClass('ant-form-item-no-colon');\n });\n\n it('set Form.Item colon false', () => {\n render(\n <Form colon>\n <Form.Item colon={false} label=\"姓名\" name=\"姓名\">\n <Input />\n </Form.Item>\n </Form>,\n );\n\n expect(screen.getByText('姓名')).toHaveClass('ant-form-item-no-colon');\n });\n\n it('set Form colon false', () => {\n render(\n <Form colon={false}>\n <Form.Item label=\"姓名\" name=\"姓名\">\n <Input />\n </Form.Item>\n </Form>,\n );\n\n expect(screen.getByText('姓名')).toHaveClass('ant-form-item-no-colon');\n });\n });\n\n it('useFormInstance', () => {\n let formInstance;\n let subFormInstance;\n\n const Sub = () => {\n const formSub = Form.useFormInstance();\n subFormInstance = formSub;\n\n return null;\n };\n\n const Demo: React.FC = () => {\n const [form] = Form.useForm();\n formInstance = form;\n\n return (\n <Form form={form}>\n <Sub />\n </Form>\n );\n };\n\n render(<Demo />);\n expect(subFormInstance).toBe(formInstance);\n });\n\n it('noStyle should not affect status', () => {\n const Demo: React.FC = () => (\n <Form>\n <Form.Item validateStatus=\"error\" noStyle>\n <Select className=\"custom-select\" />\n </Form.Item>\n <Form.Item validateStatus=\"error\">\n <Form.Item noStyle>\n <Select className=\"custom-select-b\" />\n </Form.Item>\n </Form.Item>\n <Form.Item validateStatus=\"error\">\n <Form.Item noStyle validateStatus=\"warning\">\n <Select className=\"custom-select-c\" />\n </Form.Item>\n </Form.Item>\n <Form.Item noStyle>\n <Form.Item validateStatus=\"warning\">\n <Select className=\"custom-select-d\" />\n </Form.Item>\n </Form.Item>\n </Form>\n );\n const { container } = render(<Demo />);\n expect(container.querySelector('.custom-select')?.className).not.toContain('status-error');\n expect(container.querySelector('.custom-select')?.className).not.toContain('in-form-item');\n expect(container.querySelector('.custom-select-b')?.className).toContain('status-error');\n expect(container.querySelector('.custom-select-b')?.className).toContain('in-form-item');\n expect(container.querySelector('.custom-select-c')?.className).toContain('status-error');\n expect(container.querySelector('.custom-select-c')?.className).toContain('in-form-item');\n expect(container.querySelector('.custom-select-d')?.className).toContain('status-warning');\n expect(container.querySelector('.custom-select-d')?.className).toContain('in-form-item');\n });\n\n it('should not affect Popup children style', () => {\n const Demo: React.FC = () => (\n <Form>\n <Form.Item labelCol={4 as ColProps} validateStatus=\"error\">\n <Modal visible>\n <Select className=\"modal-select\" />\n </Modal>\n </Form.Item>\n <Form.Item validateStatus=\"error\">\n <Drawer visible>\n <Select className=\"drawer-select\" />\n </Drawer>\n </Form.Item>\n </Form>\n );\n const { container } = render(<Demo />, { container: document.body });\n expect(container.querySelector('.modal-select')?.className).not.toContain('in-form-item');\n expect(container.querySelector('.modal-select')?.className).not.toContain('status-error');\n expect(container.querySelector('.drawer-select')?.className).not.toContain('in-form-item');\n expect(container.querySelector('.drawer-select')?.className).not.toContain('status-error');\n });\n\n it('Form.Item.useStatus should work', async () => {\n const {\n Item: { useStatus },\n } = Form;\n\n const CustomInput: React.FC<{ className?: string; value?: React.ReactNode }> = ({\n className,\n value,\n }) => {\n const { status } = useStatus();\n return <div className={classNames(className, `custom-input-status-${status}`)}>{value}</div>;\n };\n\n const Demo: React.FC = () => {\n const [form] = Form.useForm();\n\n return (\n <Form form={form} name=\"my-form\">\n <Form.Item name=\"required\" rules={[{ required: true }]}>\n <CustomInput className=\"custom-input-required\" value=\"\" />\n </Form.Item>\n <Form.Item name=\"warning\" validateStatus=\"warning\">\n <CustomInput className=\"custom-input-warning\" />\n </Form.Item>\n <Form.Item name=\"normal\">\n <CustomInput className=\"custom-input\" />\n </Form.Item>\n <CustomInput className=\"custom-input-wrong\" />\n <Button onClick={() => form.submit()} className=\"submit-button\">\n Submit\n </Button>\n </Form>\n );\n };\n\n const { container } = render(<Demo />);\n\n expect(container.querySelector('.custom-input-required')?.classList).toContain(\n 'custom-input-status-',\n );\n expect(container.querySelector('.custom-input-warning')?.classList).toContain(\n 'custom-input-status-warning',\n );\n expect(container.querySelector('.custom-input')?.classList).toContain('custom-input-status-');\n expect(container.querySelector('.custom-input-wrong')?.classList).toContain(\n 'custom-input-status-undefined',\n );\n expect(errorSpy).toHaveBeenCalledWith(\n expect.stringContaining('Form.Item.useStatus should be used under Form.Item component.'),\n );\n\n fireEvent.click(container.querySelector('.submit-button')!);\n await waitFakeTimer();\n\n expect(container.querySelector('.custom-input-required')?.classList).toContain(\n 'custom-input-status-error',\n );\n });\n\n it('item customize margin', async () => {\n const computeSpy = jest\n .spyOn(window, 'getComputedStyle')\n .mockImplementation(() => ({ marginBottom: 24 } as unknown as CSSStyleDeclaration));\n\n const { container } = render(\n <Form>\n <Form.Item name=\"required\" initialValue=\"bamboo\" rules={[{ required: true }]}>\n <Input />\n </Form.Item>\n </Form>,\n );\n\n await changeValue(0, '');\n\n computeSpy.mockRestore();\n\n expect(container.querySelector('.ant-form-item-margin-offset')).toHaveStyle({\n marginBottom: -24,\n });\n });\n it('form child components should be given priority to own disabled props when it in a disabled form', () => {\n const props = {\n name: 'file',\n action: 'https://www.mocky.io/v2/5cc8019d300000980a055e76',\n headers: {\n authorization: 'authorization-text',\n },\n capture: true,\n };\n const renderComps = (disabled?: boolean) => [\n <Button key=\"Button\" disabled={disabled} type=\"primary\" htmlType=\"submit\">\n test\n </Button>,\n <Cascader key=\"Cascader\" disabled={disabled} options={[]} />,\n <Checkbox key=\"Checkbox\" disabled={disabled} />,\n <Checkbox.Group\n key=\"CheckboxGroup\"\n disabled={disabled}\n options={[\n { label: 'male', value: 0 },\n { label: 'female', value: 1 },\n ]}\n />,\n <InputNumber key=\"InputNumber\" disabled={disabled} />,\n <Input key=\"Input\" disabled={disabled} />,\n <Select key=\"Select\" disabled={disabled} />,\n <Switch key=\"Switch\" disabled={disabled} />,\n <TreeSelect key=\"TreeSelect\" disabled={disabled} />,\n <Upload key=\"Upload\" {...props} disabled={disabled}>\n <Button disabled={disabled}>Click to Upload</Button>\n </Upload>,\n <DatePicker key=\"DatePicker\" disabled={disabled} />,\n <DatePicker.RangePicker key=\"DatePicker.RangePicker\" disabled={disabled} />,\n <DatePicker.MonthPicker key=\"DatePicker.MonthPicker\" disabled={disabled} />,\n <DatePicker.QuarterPicker key=\"DatePicker.QuarterPicker\" disabled={disabled} />,\n <DatePicker.WeekPicker key=\"DatePicker.WeekPicker\" disabled={disabled} />,\n <DatePicker.YearPicker key=\"DatePicker.YearPicker\" disabled={disabled} />,\n <DatePicker.TimePicker key=\"DatePicker.TimePicker\" disabled={disabled} />,\n ];\n const App = () => <Form disabled>{renderComps(false)}</Form>;\n\n const wrapper = render(<App />);\n expect(wrapper.container.querySelectorAll('[disabled]').length).toBe(0);\n const App2 = () => <Form disabled>{renderComps()}</Form>;\n\n const wrapper2 = render(<App2 />);\n // 时间范围组件中会有两个 input 框,因此虽然上述只有 18 个组件,但,实际有 19 个 带有 disabled 属性的表单组件\n expect(wrapper2.container.querySelectorAll('[disabled]').length).toBe(19);\n\n const App3 = () => <Form disabled>{renderComps(true)}</Form>;\n\n const wrapper3 = render(<App3 />);\n\n expect(wrapper3.container.querySelectorAll('[disabled]').length).toBe(19);\n\n const App4 = () => <Form>{renderComps(true)}</Form>;\n\n const wrapper4 = render(<App4 />);\n\n expect(wrapper4.container.querySelectorAll('[disabled]').length).toBe(19);\n\n const App5 = () => <Form>{renderComps()}</Form>;\n\n const wrapper5 = render(<App5 />);\n\n expect(wrapper5.container.querySelectorAll('[disabled]').length).toBe(0);\n });\n});\n"]}
@@ -1,41 +0,0 @@
1
- import React from 'react';
2
- import { act } from 'react-dom/test-utils';
3
- import Form from '..';
4
- import { render, fireEvent, waitFakeTimer } from '../../../tests/utils';
5
- import Input from '../../input';
6
- describe('Form.List.NoStyle', () => {
7
- it('nest error should clean up', async () => {
8
- var _a;
9
- jest.useFakeTimers();
10
- let operation;
11
- const { container } = render(React.createElement(Form, null,
12
- React.createElement(Form.List, { name: "users" }, (fields, op) => {
13
- operation = op;
14
- return fields.map(field => (React.createElement(Form.Item, { key: field.key },
15
- React.createElement(Form.Item, Object.assign({}, field, { name: [field.name, 'first'], rules: [{ required: true }], noStyle: true }),
16
- React.createElement(Input, null)))));
17
- })));
18
- // Add two
19
- const addItem = async () => {
20
- await act(async () => {
21
- operation === null || operation === void 0 ? void 0 : operation.add();
22
- });
23
- await waitFakeTimer();
24
- };
25
- await addItem();
26
- await addItem();
27
- // Submit
28
- fireEvent.submit(container.querySelector('form'));
29
- await waitFakeTimer();
30
- // Remove first field
31
- await act(async () => {
32
- operation === null || operation === void 0 ? void 0 : operation.remove(0);
33
- });
34
- await waitFakeTimer();
35
- // Match error message
36
- expect((_a = container.querySelector('.ant-form-item-explain-error')) === null || _a === void 0 ? void 0 : _a.textContent).toBe("'users.1.first' is required");
37
- jest.clearAllTimers();
38
- jest.useRealTimers();
39
- });
40
- });
41
- //# sourceMappingURL=list-noStyle.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-noStyle.test.js","sourceRoot":"","sources":["../../../src/tntd-form/__tests__/list-noStyle.test.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,IAAI,MAAM,IAAI,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,KAAK,MAAM,aAAa,CAAC;AAGhC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;;QAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,SAA4B,CAAC;QAEjC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,OAAO,IACpB,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;gBACd,SAAS,GAAG,EAAE,CAAC;gBACf,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CACzB,oBAAC,IAAI,CAAC,IAAI,IAAC,GAAG,EAAE,KAAK,CAAC,GAAG;oBACvB,oBAAC,IAAI,CAAC,IAAI,oBACJ,KAAK,IACT,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAC3B,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAC3B,OAAO;wBAEP,oBAAC,KAAK,OAAG,CACC,CACF,CACb,CAAC,CAAC;YACL,CAAC,CACS,CACP,CACR,CAAC;QAEF,UAAU;QACV,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACzB,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;gBACnB,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,EAAE,CAAC;YACnB,CAAC,CAAC,CAAC;YAEH,MAAM,aAAa,EAAE,CAAC;QACxB,CAAC,CAAC;QAEF,MAAM,OAAO,EAAE,CAAC;QAChB,MAAM,OAAO,EAAE,CAAC;QAEhB,SAAS;QACT,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC,CAAC;QACnD,MAAM,aAAa,EAAE,CAAC;QAEtB,qBAAqB;QACrB,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;YACnB,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,MAAM,aAAa,EAAE,CAAC;QAEtB,sBAAsB;QACtB,MAAM,CAAC,MAAA,SAAS,CAAC,aAAa,CAAC,8BAA8B,CAAC,0CAAE,WAAW,CAAC,CAAC,IAAI,CAC/E,6BAA6B,CAC9B,CAAC;QAEF,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport { act } from 'react-dom/test-utils';\nimport Form from '..';\nimport { render, fireEvent, waitFakeTimer } from '../../../tests/utils';\nimport Input from '../../input';\nimport type { FormListOperation } from '../FormList';\n\ndescribe('Form.List.NoStyle', () => {\n it('nest error should clean up', async () => {\n jest.useFakeTimers();\n\n let operation: FormListOperation;\n\n const { container } = render(\n <Form>\n <Form.List name=\"users\">\n {(fields, op) => {\n operation = op;\n return fields.map(field => (\n <Form.Item key={field.key}>\n <Form.Item\n {...field}\n name={[field.name, 'first']}\n rules={[{ required: true }]}\n noStyle\n >\n <Input />\n </Form.Item>\n </Form.Item>\n ));\n }}\n </Form.List>\n </Form>,\n );\n\n // Add two\n const addItem = async () => {\n await act(async () => {\n operation?.add();\n });\n\n await waitFakeTimer();\n };\n\n await addItem();\n await addItem();\n\n // Submit\n fireEvent.submit(container.querySelector('form')!);\n await waitFakeTimer();\n\n // Remove first field\n await act(async () => {\n operation?.remove(0);\n });\n await waitFakeTimer();\n\n // Match error message\n expect(container.querySelector('.ant-form-item-explain-error')?.textContent).toBe(\n \"'users.1.first' is required\",\n );\n\n jest.clearAllTimers();\n jest.useRealTimers();\n });\n});\n"]}
@@ -1,164 +0,0 @@
1
- import React from 'react';
2
- import Form from '..';
3
- import { fireEvent, render, waitFakeTimer } from '../../../tests/utils';
4
- import Button from '../../button';
5
- import Input from '../../input';
6
- describe('Form.List', () => {
7
- // const change = async (
8
- // wrapper: ReturnType<typeof render>['container'],
9
- // index: number,
10
- // value: string,
11
- // ) => {
12
- // fireEvent.change(wrapper.getElementsByClassName('ant-input')?.[index], { target: { value } });
13
- // await sleep();
14
- // };
15
- const changeValue = async (input, value, advTimer = 1000) => {
16
- let element;
17
- if (typeof input === 'number') {
18
- element = document.querySelectorAll('input')[input];
19
- }
20
- expect(element).toBeTruthy();
21
- fireEvent.change(element, {
22
- target: {
23
- value,
24
- },
25
- });
26
- if (advTimer) {
27
- await waitFakeTimer(advTimer / 20);
28
- }
29
- };
30
- beforeEach(() => {
31
- document.body.innerHTML = '';
32
- jest.useFakeTimers();
33
- });
34
- afterAll(() => {
35
- jest.clearAllTimers();
36
- jest.useRealTimers();
37
- });
38
- const testList = (name, renderField) => {
39
- it(name, async () => {
40
- const { container } = render(React.createElement(Form, null,
41
- React.createElement(Form.List, { name: "list" }, (fields, { add, remove }) => (React.createElement(React.Fragment, null,
42
- fields.map(renderField),
43
- React.createElement(Button, { className: "add", onClick: add }, "Add"),
44
- React.createElement(Button, { className: "remove-0", onClick: () => remove(0) }),
45
- React.createElement(Button, { className: "remove-1", onClick: () => remove(1) }))))));
46
- async function operate(className) {
47
- fireEvent.click(container.querySelector(className));
48
- await waitFakeTimer();
49
- }
50
- await operate('.add');
51
- expect(container.querySelectorAll('.ant-input').length).toBe(1);
52
- await operate('.add');
53
- expect(container.querySelectorAll('.ant-input').length).toBe(2);
54
- await operate('.add');
55
- expect(container.querySelectorAll('.ant-input').length).toBe(3);
56
- await changeValue(2, '');
57
- expect(container.querySelectorAll('.ant-form-item-explain').length).toBe(1);
58
- await operate('.remove-0');
59
- expect(container.querySelectorAll('.ant-input').length).toBe(2);
60
- expect(container.querySelectorAll('.ant-form-item-explain').length).toBe(1);
61
- await operate('.remove-1');
62
- expect(container.querySelectorAll('.ant-input').length).toBe(1);
63
- expect(container.querySelectorAll('.ant-form-item-explain').length).toBe(0);
64
- });
65
- };
66
- testList('operation correctly', field => (React.createElement(Form.Item, Object.assign({}, field, { rules: [{ required: true }] }),
67
- React.createElement(Input, null))));
68
- // FIXME: @zombieJ React 18 StrictMode
69
- testList('nest noStyle', field => (React.createElement(Form.Item, { key: field.key },
70
- React.createElement(Form.Item, Object.assign({ noStyle: true }, field, { rules: [{ required: true }] }),
71
- React.createElement(Input, null)))));
72
- it('correct onFinish values', async () => {
73
- async function click(wrapper, className) {
74
- fireEvent.click(wrapper.querySelector(className));
75
- }
76
- const onFinish = jest.fn().mockImplementation(() => { });
77
- const { container } = render(React.createElement(Form, { onFinish: v => {
78
- if (typeof v.list[0] === 'object') {
79
- /* old version led to SyntheticEvent be passed as an value here
80
- that led to weird infinite loop somewhere and OutOfMemory crash */
81
- v = new Error('We expect value to be a primitive here');
82
- }
83
- onFinish(v);
84
- } },
85
- React.createElement(Form.List, { name: "list" }, (fields, { add, remove }) => (React.createElement(React.Fragment, null,
86
- fields.map(field => (
87
- // key is in a field
88
- // eslint-disable-next-line react/jsx-key
89
- React.createElement(Form.Item, Object.assign({}, field),
90
- React.createElement(Input, null)))),
91
- React.createElement(Button, { className: "add", onClick: add }, "Add"),
92
- React.createElement(Button, { className: "remove", onClick: () => remove(0) }, "Remove"))))));
93
- await click(container, '.add');
94
- await changeValue(0, 'input1');
95
- fireEvent.submit(container.querySelector('form'));
96
- await waitFakeTimer();
97
- expect(onFinish).toHaveBeenLastCalledWith({ list: ['input1'] });
98
- await click(container, '.add');
99
- await changeValue(1, 'input2');
100
- await click(container, '.add');
101
- await changeValue(2, 'input3');
102
- fireEvent.submit(container.querySelector('form'));
103
- await waitFakeTimer();
104
- expect(onFinish).toHaveBeenLastCalledWith({ list: ['input1', 'input2', 'input3'] });
105
- await click(container, '.remove'); // will remove first input
106
- fireEvent.submit(container.querySelector('form'));
107
- await waitFakeTimer();
108
- expect(onFinish).toHaveBeenLastCalledWith({ list: ['input2', 'input3'] });
109
- });
110
- it('list errors', async () => {
111
- var _a;
112
- let operation;
113
- const { container } = render(React.createElement(Form, null,
114
- React.createElement(Form.List, { name: "list", rules: [
115
- {
116
- validator: async (_, value) => {
117
- if (value.length < 2) {
118
- return Promise.reject(new Error('At least 2'));
119
- }
120
- },
121
- },
122
- ] }, (_, opt, { errors }) => {
123
- operation = opt;
124
- return React.createElement(Form.ErrorList, { errors: errors });
125
- })));
126
- async function addItem() {
127
- operation.add();
128
- await waitFakeTimer();
129
- }
130
- await addItem();
131
- expect((_a = container.querySelector('.ant-form-item-explain div')) === null || _a === void 0 ? void 0 : _a.innerHTML).toEqual('At least 2');
132
- await addItem();
133
- expect(container.getElementsByClassName('ant-form-item-explain div')).toHaveLength(0);
134
- });
135
- it('should render empty without errors', () => {
136
- const { container } = render(React.createElement(Form.ErrorList, null));
137
- expect(container.firstChild).toMatchSnapshot();
138
- });
139
- it('no warning when reset in validate', async () => {
140
- const errorSpy = jest.spyOn(console, 'error').mockImplementation(() => { });
141
- const Demo = () => {
142
- const [form] = Form.useForm();
143
- React.useEffect(() => {
144
- form.setFieldsValue({
145
- list: [1],
146
- });
147
- }, []);
148
- return (React.createElement(Form, { form: form },
149
- React.createElement(Form.List, { name: "list" }, fields => fields.map(field => (React.createElement(Form.Item, Object.assign({}, field, { key: field.key }),
150
- React.createElement(Input, null))))),
151
- React.createElement("button", { id: "validate", type: "button", onClick: () => {
152
- form.validateFields().then(() => {
153
- form.resetFields();
154
- });
155
- } }, "Validate")));
156
- };
157
- const { container } = render(React.createElement(Demo, null));
158
- fireEvent.click(container.querySelector('button'));
159
- await waitFakeTimer();
160
- expect(errorSpy).not.toHaveBeenCalled();
161
- errorSpy.mockRestore();
162
- });
163
- });
164
- //# sourceMappingURL=list.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.test.js","sourceRoot":"","sources":["../../../src/tntd-form/__tests__/list.test.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport type { FormListFieldData, FormListOperation } from '..';\nimport Form from '..';\nimport { fireEvent, render, waitFakeTimer } from '../../../tests/utils';\nimport Button from '../../button';\nimport Input from '../../input';\n\ndescribe('Form.List', () => {\n // const change = async (\n // wrapper: ReturnType<typeof render>['container'],\n // index: number,\n // value: string,\n // ) => {\n // fireEvent.change(wrapper.getElementsByClassName('ant-input')?.[index], { target: { value } });\n // await sleep();\n // };\n\n const changeValue = async (\n input: HTMLElement | null | number,\n value: string,\n advTimer = 1000,\n ) => {\n let element: HTMLElement;\n\n if (typeof input === 'number') {\n element = document.querySelectorAll('input')[input];\n }\n\n expect(element!).toBeTruthy();\n\n fireEvent.change(element!, {\n target: {\n value,\n },\n });\n\n if (advTimer) {\n await waitFakeTimer(advTimer / 20);\n }\n };\n\n beforeEach(() => {\n document.body.innerHTML = '';\n jest.useFakeTimers();\n });\n\n afterAll(() => {\n jest.clearAllTimers();\n jest.useRealTimers();\n });\n\n const testList = (\n name: string,\n renderField: (value: FormListFieldData) => React.ReactNode,\n ): void => {\n it(name, async () => {\n const { container } = render(\n <Form>\n <Form.List name=\"list\">\n {(fields, { add, remove }) => (\n <>\n {fields.map(renderField)}\n <Button className=\"add\" onClick={add}>\n Add\n </Button>\n <Button className=\"remove-0\" onClick={() => remove(0)} />\n <Button className=\"remove-1\" onClick={() => remove(1)} />\n </>\n )}\n </Form.List>\n </Form>,\n );\n\n async function operate(className: string) {\n fireEvent.click(container.querySelector(className)!);\n await waitFakeTimer();\n }\n\n await operate('.add');\n expect(container.querySelectorAll('.ant-input').length).toBe(1);\n\n await operate('.add');\n expect(container.querySelectorAll('.ant-input').length).toBe(2);\n\n await operate('.add');\n expect(container.querySelectorAll('.ant-input').length).toBe(3);\n\n await changeValue(2, '');\n\n expect(container.querySelectorAll('.ant-form-item-explain').length).toBe(1);\n\n await operate('.remove-0');\n expect(container.querySelectorAll('.ant-input').length).toBe(2);\n expect(container.querySelectorAll('.ant-form-item-explain').length).toBe(1);\n\n await operate('.remove-1');\n expect(container.querySelectorAll('.ant-input').length).toBe(1);\n expect(container.querySelectorAll('.ant-form-item-explain').length).toBe(0);\n });\n };\n\n testList('operation correctly', field => (\n <Form.Item {...field} rules={[{ required: true }]}>\n <Input />\n </Form.Item>\n ));\n\n // FIXME: @zombieJ React 18 StrictMode\n testList('nest noStyle', field => (\n <Form.Item key={field.key}>\n <Form.Item noStyle {...field} rules={[{ required: true }]}>\n <Input />\n </Form.Item>\n </Form.Item>\n ));\n\n it('correct onFinish values', async () => {\n async function click(wrapper: ReturnType<typeof render>['container'], className: string) {\n fireEvent.click(wrapper.querySelector(className)!);\n }\n\n const onFinish = jest.fn().mockImplementation(() => {});\n\n const { container } = render(\n <Form\n onFinish={v => {\n if (typeof v.list[0] === 'object') {\n /* old version led to SyntheticEvent be passed as an value here\n that led to weird infinite loop somewhere and OutOfMemory crash */\n v = new Error('We expect value to be a primitive here');\n }\n onFinish(v);\n }}\n >\n <Form.List name=\"list\">\n {(fields, { add, remove }) => (\n <>\n {fields.map(field => (\n // key is in a field\n // eslint-disable-next-line react/jsx-key\n <Form.Item {...field}>\n <Input />\n </Form.Item>\n ))}\n <Button className=\"add\" onClick={add}>\n Add\n </Button>\n <Button className=\"remove\" onClick={() => remove(0)}>\n Remove\n </Button>\n </>\n )}\n </Form.List>\n </Form>,\n );\n\n await click(container, '.add');\n await changeValue(0, 'input1');\n fireEvent.submit(container.querySelector('form')!);\n await waitFakeTimer();\n expect(onFinish).toHaveBeenLastCalledWith({ list: ['input1'] });\n\n await click(container, '.add');\n await changeValue(1, 'input2');\n await click(container, '.add');\n await changeValue(2, 'input3');\n fireEvent.submit(container.querySelector('form')!);\n await waitFakeTimer();\n expect(onFinish).toHaveBeenLastCalledWith({ list: ['input1', 'input2', 'input3'] });\n\n await click(container, '.remove'); // will remove first input\n fireEvent.submit(container.querySelector('form')!);\n await waitFakeTimer();\n expect(onFinish).toHaveBeenLastCalledWith({ list: ['input2', 'input3'] });\n });\n\n it('list errors', async () => {\n let operation: FormListOperation;\n const { container } = render(\n <Form>\n <Form.List\n name=\"list\"\n rules={[\n {\n validator: async (_, value) => {\n if (value.length < 2) {\n return Promise.reject(new Error('At least 2'));\n }\n },\n },\n ]}\n >\n {(_, opt, { errors }) => {\n operation = opt;\n return <Form.ErrorList errors={errors} />;\n }}\n </Form.List>\n </Form>,\n );\n\n async function addItem() {\n operation.add();\n await waitFakeTimer();\n }\n\n await addItem();\n expect(container.querySelector('.ant-form-item-explain div')?.innerHTML).toEqual('At least 2');\n\n await addItem();\n expect(container.getElementsByClassName('ant-form-item-explain div')).toHaveLength(0);\n });\n\n it('should render empty without errors', () => {\n const { container } = render(<Form.ErrorList />);\n expect(container.firstChild).toMatchSnapshot();\n });\n\n it('no warning when reset in validate', async () => {\n const errorSpy = jest.spyOn(console, 'error').mockImplementation(() => {});\n\n const Demo = () => {\n const [form] = Form.useForm();\n\n React.useEffect(() => {\n form.setFieldsValue({\n list: [1],\n });\n }, []);\n\n return (\n <Form form={form}>\n <Form.List name=\"list\">\n {fields =>\n fields.map(field => (\n <Form.Item {...field} key={field.key}>\n <Input />\n </Form.Item>\n ))\n }\n </Form.List>\n <button\n id=\"validate\"\n type=\"button\"\n onClick={() => {\n form.validateFields().then(() => {\n form.resetFields();\n });\n }}\n >\n Validate\n </button>\n </Form>\n );\n };\n\n const { container } = render(<Demo />);\n fireEvent.click(container.querySelector('button')!);\n\n await waitFakeTimer();\n\n expect(errorSpy).not.toHaveBeenCalled();\n\n errorSpy.mockRestore();\n });\n});\n"]}
@@ -1,45 +0,0 @@
1
- import React from 'react';
2
- import { render, fireEvent } from '../../../tests/utils';
3
- import Form from '..';
4
- import Input from '../../input';
5
- import Button from '../../button';
6
- describe('Form.Ref', () => {
7
- const Test = ({ show, onRef }) => {
8
- const [form] = Form.useForm();
9
- const removeRef = React.useRef(null);
10
- const testRef = React.useRef(null);
11
- const listRef = React.useRef(null);
12
- return (React.createElement(Form, { form: form, initialValues: { list: ['light'] } },
13
- show && (React.createElement(Form.Item, { name: "remove", label: "remove" },
14
- React.createElement(Input, { ref: removeRef }))),
15
- React.createElement(Form.Item, { name: "test", label: "test" },
16
- React.createElement(Input, { ref: testRef })),
17
- React.createElement(Form.List, { name: "list" }, fields => fields.map(field => (React.createElement(Form.Item, Object.assign({}, field, { key: field.key }),
18
- React.createElement(Input, { ref: listRef }))))),
19
- React.createElement(Button, { className: "ref-item", onClick: () => {
20
- onRef(form.getFieldInstance('test'), testRef.current);
21
- } }, "Form.Item"),
22
- React.createElement(Button, { className: "ref-list", onClick: () => {
23
- onRef(form.getFieldInstance(['list', 0]), listRef.current);
24
- } }, "Form.List"),
25
- React.createElement(Button, { className: "ref-remove", onClick: () => {
26
- onRef(form.getFieldInstance('remove'), removeRef.current);
27
- } }, "Removed")));
28
- };
29
- it('should ref work', () => {
30
- const onRef = jest.fn();
31
- const { container, rerender } = render(React.createElement(Test, { onRef: onRef, show: true }));
32
- fireEvent.click(container.querySelector('.ref-item'));
33
- expect(onRef).toHaveBeenCalled();
34
- expect(onRef.mock.calls[0][0]).toBe(onRef.mock.calls[0][1]);
35
- onRef.mockReset();
36
- fireEvent.click(container.querySelector('.ref-list'));
37
- expect(onRef).toHaveBeenCalled();
38
- expect(onRef.mock.calls[0][0]).toBe(onRef.mock.calls[0][1]);
39
- onRef.mockReset();
40
- rerender(React.createElement(Test, { onRef: onRef, show: false }));
41
- fireEvent.click(container.querySelector('.ref-remove'));
42
- expect(onRef).toHaveBeenCalledWith(undefined, null);
43
- });
44
- });
45
- //# sourceMappingURL=ref.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ref.test.js","sourceRoot":"","sources":["../../../src/tntd-form/__tests__/ref.test.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,IAAI,MAAM,IAAI,CAAC;AACtB,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,MAAM,MAAM,cAAc,CAAC;AAQlC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,MAAM,IAAI,GAAwB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;QACpD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAW,IAAI,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAW,IAAI,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAW,IAAI,CAAC,CAAC;QAE7C,OAAO,CACL,oBAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE;YACjD,IAAI,IAAI,CACP,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,QAAQ;gBACrC,oBAAC,KAAK,IAAC,GAAG,EAAE,SAAS,GAAI,CACf,CACb;YAED,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM;gBACjC,oBAAC,KAAK,IAAC,GAAG,EAAE,OAAO,GAAI,CACb;YAEZ,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAC,MAAM,IACnB,MAAM,CAAC,EAAE,CACR,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAClB,oBAAC,IAAI,CAAC,IAAI,oBAAK,KAAK,IAAE,GAAG,EAAE,KAAK,CAAC,GAAG;gBAClC,oBAAC,KAAK,IAAC,GAAG,EAAE,OAAO,GAAI,CACb,CACb,CAAC,CAEM;YAEZ,oBAAC,MAAM,IACL,SAAS,EAAC,UAAU,EACpB,OAAO,EAAE,GAAG,EAAE;oBACZ,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAQ,CAAC,CAAC;gBACzD,CAAC,gBAGM;YACT,oBAAC,MAAM,IACL,SAAS,EAAC,UAAU,EACpB,OAAO,EAAE,GAAG,EAAE;oBACZ,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,OAAQ,CAAC,CAAC;gBAC9D,CAAC,gBAGM;YACT,oBAAC,MAAM,IACL,SAAS,EAAC,YAAY,EACtB,OAAO,EAAE,GAAG,EAAE;oBACZ,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,OAAQ,CAAC,CAAC;gBAC7D,CAAC,cAGM,CACJ,CACR,CAAC;IACJ,CAAC,CAAC;IAEF,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACxB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,oBAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,SAAG,CAAC,CAAC;QAEpE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,CAAE,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5D,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,CAAE,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5D,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,QAAQ,CAAC,oBAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAI,CAAC,CAAC;QAC9C,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAE,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport { render, fireEvent } from '../../../tests/utils';\nimport Form from '..';\nimport Input from '../../input';\nimport Button from '../../button';\nimport type { InputRef } from '../../input';\n\ninterface TestProps {\n show?: boolean;\n onRef: (node: React.ReactNode, originRef: InputRef) => void;\n}\n\ndescribe('Form.Ref', () => {\n const Test: React.FC<TestProps> = ({ show, onRef }) => {\n const [form] = Form.useForm();\n const removeRef = React.useRef<InputRef>(null);\n const testRef = React.useRef<InputRef>(null);\n const listRef = React.useRef<InputRef>(null);\n\n return (\n <Form form={form} initialValues={{ list: ['light'] }}>\n {show && (\n <Form.Item name=\"remove\" label=\"remove\">\n <Input ref={removeRef} />\n </Form.Item>\n )}\n\n <Form.Item name=\"test\" label=\"test\">\n <Input ref={testRef} />\n </Form.Item>\n\n <Form.List name=\"list\">\n {fields =>\n fields.map(field => (\n <Form.Item {...field} key={field.key}>\n <Input ref={listRef} />\n </Form.Item>\n ))\n }\n </Form.List>\n\n <Button\n className=\"ref-item\"\n onClick={() => {\n onRef(form.getFieldInstance('test'), testRef.current!);\n }}\n >\n Form.Item\n </Button>\n <Button\n className=\"ref-list\"\n onClick={() => {\n onRef(form.getFieldInstance(['list', 0]), listRef.current!);\n }}\n >\n Form.List\n </Button>\n <Button\n className=\"ref-remove\"\n onClick={() => {\n onRef(form.getFieldInstance('remove'), removeRef.current!);\n }}\n >\n Removed\n </Button>\n </Form>\n );\n };\n\n it('should ref work', () => {\n const onRef = jest.fn();\n const { container, rerender } = render(<Test onRef={onRef} show />);\n\n fireEvent.click(container.querySelector('.ref-item')!);\n expect(onRef).toHaveBeenCalled();\n expect(onRef.mock.calls[0][0]).toBe(onRef.mock.calls[0][1]);\n\n onRef.mockReset();\n fireEvent.click(container.querySelector('.ref-list')!);\n expect(onRef).toHaveBeenCalled();\n expect(onRef.mock.calls[0][0]).toBe(onRef.mock.calls[0][1]);\n\n onRef.mockReset();\n rerender(<Test onRef={onRef} show={false} />);\n fireEvent.click(container.querySelector('.ref-remove')!);\n expect(onRef).toHaveBeenCalledWith(undefined, null);\n });\n});\n"]}