tntd 2.6.6 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (816) hide show
  1. package/es/_util/colors.js +3 -0
  2. package/es/_util/colors.js.map +1 -0
  3. package/es/_util/easings.js +9 -0
  4. package/es/_util/easings.js.map +1 -0
  5. package/es/_util/getDataOrAriaProps.js +8 -0
  6. package/es/_util/getDataOrAriaProps.js.map +1 -0
  7. package/es/_util/getScroll.js +14 -0
  8. package/es/_util/getScroll.js.map +1 -0
  9. package/es/_util/interopDefault.js +5 -0
  10. package/es/_util/interopDefault.js.map +1 -0
  11. package/es/_util/isNumeric.js +4 -0
  12. package/es/_util/isNumeric.js.map +1 -0
  13. package/es/_util/motion.js +22 -0
  14. package/es/_util/motion.js.map +1 -0
  15. package/es/_util/openAnimation.js +51 -0
  16. package/es/_util/openAnimation.js.map +1 -0
  17. package/es/_util/raf.js +25 -0
  18. package/es/_util/raf.js.map +1 -0
  19. package/es/_util/reactNode.js +6 -0
  20. package/es/_util/reactNode.js.map +1 -0
  21. package/es/_util/ref.js +15 -0
  22. package/es/_util/ref.js.map +1 -0
  23. package/es/_util/responsiveObserve.js +82 -0
  24. package/es/_util/responsiveObserve.js.map +1 -0
  25. package/es/_util/scrollTo.js +29 -0
  26. package/es/_util/scrollTo.js.map +1 -0
  27. package/es/_util/styleChecker.js +12 -0
  28. package/es/_util/styleChecker.js.map +1 -0
  29. package/es/_util/throttleByAnimationFrame.js +40 -0
  30. package/es/_util/throttleByAnimationFrame.js.map +1 -0
  31. package/es/_util/transButton.js +103 -0
  32. package/es/_util/transButton.js.map +1 -0
  33. package/es/_util/triggerEvent.js +8 -0
  34. package/es/_util/triggerEvent.js.map +1 -0
  35. package/es/_util/type.js +3 -0
  36. package/es/_util/type.js.map +1 -0
  37. package/es/_util/warning.js +5 -0
  38. package/es/_util/warning.js.map +1 -0
  39. package/es/_util/wave.js +228 -0
  40. package/es/_util/wave.js.map +1 -0
  41. package/es/affix/index.js +1 -2
  42. package/es/alert/index.js +1 -2
  43. package/es/anchor/index.js +1 -2
  44. package/es/array-input/icon.js +24 -6
  45. package/es/array-input/index.js +203 -119
  46. package/es/auth-context/index.js +1 -2
  47. package/es/auto-complete/index.js +1 -2
  48. package/es/avatar/index.js +1 -2
  49. package/es/back-top/index.js +1 -2
  50. package/es/badge/index.js +1 -2
  51. package/es/breadcrumb/index.js +1 -2
  52. package/es/button/index.js +1 -2
  53. package/es/calendar/index.js +1 -2
  54. package/es/card/index.js +1 -2
  55. package/es/carousel/index.js +1 -2
  56. package/es/cascader/index.js +6 -3
  57. package/es/cascader/index.js.map +1 -1
  58. package/es/checkbox/checkbox-group.js +5 -0
  59. package/es/checkbox/checkbox-group.js.map +1 -0
  60. package/es/checkbox/index.js +6 -2
  61. package/es/checkbox/index.js.map +1 -1
  62. package/es/col/index.js +1 -2
  63. package/es/collapse/index.js +1 -2
  64. package/es/color-picker/ColorPicker.js +126 -80
  65. package/es/color-picker/index.js +8 -5
  66. package/es/columns/index.js +66 -30
  67. package/es/columns/style/index.js +1 -2
  68. package/es/comment/index.js +1 -2
  69. package/es/config-provider/DisabledContext.js +12 -0
  70. package/es/config-provider/DisabledContext.js.map +1 -0
  71. package/es/config-provider/SizeContext.js +9 -0
  72. package/es/config-provider/SizeContext.js.map +1 -0
  73. package/es/config-provider/config-provider.js +1 -2
  74. package/es/config-provider/context.js +41 -0
  75. package/es/config-provider/context.js.map +1 -0
  76. package/es/config-provider/index.js +4 -0
  77. package/es/config-provider/index.js.map +1 -1
  78. package/es/connect/index.js +26 -0
  79. package/es/connect/index.js.map +1 -0
  80. package/es/date-picker/index.js +11 -1
  81. package/es/date-picker/index.js.map +1 -1
  82. package/es/ellipsis/index.less +1 -1
  83. package/es/input/input.js +37 -25
  84. package/es/input/input.js.map +1 -1
  85. package/es/input-number/index.js +3 -1
  86. package/es/input-number/index.js.map +1 -1
  87. package/es/preview-text/index.js +195 -0
  88. package/es/preview-text/index.js.map +1 -0
  89. package/es/preview-text/index.less +3 -0
  90. package/es/query-form/index.js.map +1 -1
  91. package/es/radio/index.js +3 -0
  92. package/es/radio/index.js.map +1 -1
  93. package/es/radio/radio-group.js +6 -0
  94. package/es/radio/radio-group.js.map +1 -0
  95. package/es/select/index.js.map +1 -1
  96. package/es/select/select.js +17 -5
  97. package/es/select/select.js.map +1 -1
  98. package/es/switch/index.js +2 -3
  99. package/es/switch/index.js.map +1 -1
  100. package/es/switch/switch.js +9 -0
  101. package/es/switch/switch.js.map +1 -0
  102. package/es/table/table.less +2 -0
  103. package/es/time-picker/index.js +3 -1
  104. package/es/time-picker/index.js.map +1 -1
  105. package/es/tntd-form/ErrorList.js +53 -0
  106. package/es/tntd-form/ErrorList.js.map +1 -0
  107. package/es/tntd-form/Form.js +101 -0
  108. package/es/tntd-form/Form.js.map +1 -0
  109. package/es/tntd-form/FormItem/ItemHolder.js +135 -0
  110. package/es/tntd-form/FormItem/ItemHolder.js.map +1 -0
  111. package/es/tntd-form/FormItem/index.js +238 -0
  112. package/es/tntd-form/FormItem/index.js.map +1 -0
  113. package/es/tntd-form/FormItemInput.js +38 -0
  114. package/es/tntd-form/FormItemInput.js.map +1 -0
  115. package/es/tntd-form/FormItemLabel.js +73 -0
  116. package/es/tntd-form/FormItemLabel.js.map +1 -0
  117. package/es/tntd-form/FormList.js +34 -0
  118. package/es/tntd-form/FormList.js.map +1 -0
  119. package/es/tntd-form/TntdForm/components/ItemComp.js +2 -2
  120. package/es/tntd-form/TntdForm/components/ItemComp.js.map +1 -1
  121. package/es/tntd-form/__tests__/demo-extend.test.js +3 -0
  122. package/es/tntd-form/__tests__/demo-extend.test.js.map +1 -0
  123. package/es/tntd-form/__tests__/demo.test.js +3 -0
  124. package/es/tntd-form/__tests__/demo.test.js.map +1 -0
  125. package/es/tntd-form/__tests__/image.test.js +5 -0
  126. package/es/tntd-form/__tests__/image.test.js.map +1 -0
  127. package/es/tntd-form/__tests__/index.test.js +957 -0
  128. package/es/tntd-form/__tests__/index.test.js.map +1 -0
  129. package/es/tntd-form/__tests__/list-noStyle.test.js +41 -0
  130. package/es/tntd-form/__tests__/list-noStyle.test.js.map +1 -0
  131. package/es/tntd-form/__tests__/list.test.js +164 -0
  132. package/es/tntd-form/__tests__/list.test.js.map +1 -0
  133. package/es/tntd-form/__tests__/ref.test.js +45 -0
  134. package/es/tntd-form/__tests__/ref.test.js.map +1 -0
  135. package/es/tntd-form/__tests__/type.test.js +74 -0
  136. package/es/tntd-form/__tests__/type.test.js.map +1 -0
  137. package/es/tntd-form/_util/motion.js +38 -0
  138. package/es/tntd-form/_util/motion.js.map +1 -0
  139. package/es/tntd-form/_util/reactNode.js +15 -0
  140. package/es/tntd-form/_util/reactNode.js.map +1 -0
  141. package/es/tntd-form/_util/scrollTo.js +35 -0
  142. package/es/tntd-form/_util/scrollTo.js.map +1 -0
  143. package/es/tntd-form/_util/type.js +4 -0
  144. package/es/tntd-form/_util/type.js.map +1 -0
  145. package/es/tntd-form/_util/warning.js +6 -0
  146. package/es/tntd-form/_util/warning.js.map +1 -0
  147. package/es/tntd-form/_util/wave.js +168 -0
  148. package/es/tntd-form/_util/wave.js.map +1 -0
  149. package/es/tntd-form/context.js +35 -0
  150. package/es/tntd-form/context.js.map +1 -0
  151. package/es/tntd-form/hooks/useDebounce.js +14 -0
  152. package/es/tntd-form/hooks/useDebounce.js.map +1 -0
  153. package/es/tntd-form/hooks/useForm.js +35 -0
  154. package/es/tntd-form/hooks/useForm.js.map +1 -0
  155. package/es/tntd-form/hooks/useFormInstance.js +7 -0
  156. package/es/tntd-form/hooks/useFormInstance.js.map +1 -0
  157. package/es/tntd-form/hooks/useFormItemStatus.js +10 -0
  158. package/es/tntd-form/hooks/useFormItemStatus.js.map +1 -0
  159. package/es/tntd-form/hooks/useFrameState.js +38 -0
  160. package/es/tntd-form/hooks/useFrameState.js.map +1 -0
  161. package/es/tntd-form/hooks/useItemRef.js +19 -0
  162. package/es/tntd-form/hooks/useItemRef.js.map +1 -0
  163. package/es/tntd-form/index.js +17 -1
  164. package/es/tntd-form/index.js.map +1 -1
  165. package/es/tntd-form/interface.js +3 -0
  166. package/es/tntd-form/interface.js.map +1 -0
  167. package/es/tntd-form/style/components.less +16 -0
  168. package/es/tntd-form/style/horizontal.less +26 -0
  169. package/es/tntd-form/style/index.js +6 -0
  170. package/es/tntd-form/style/index.js.map +1 -0
  171. package/es/tntd-form/style/index.less +342 -0
  172. package/es/tntd-form/style/inline.less +40 -0
  173. package/es/tntd-form/style/mixin.less +90 -0
  174. package/es/tntd-form/style/rtl.less +204 -0
  175. package/es/tntd-form/style/status.less +45 -0
  176. package/es/tntd-form/style/vertical.less +95 -0
  177. package/es/tntd-form/tntd-form.stories.js +426 -0
  178. package/es/tntd-form/tntd-form.stories.js.map +1 -0
  179. package/es/tntd-form/util.js +21 -0
  180. package/es/tntd-form/util.js.map +1 -0
  181. package/es/tntd-form/validateMessagesContext.js +6 -0
  182. package/es/tntd-form/validateMessagesContext.js.map +1 -0
  183. package/es/tntd-select/index.js +8 -7
  184. package/es/tntd-select/index.js.map +1 -1
  185. package/es/tree-select/index.js +4 -1
  186. package/es/tree-select/index.js.map +1 -1
  187. package/es/upload/index.js +6 -1
  188. package/es/upload/index.js.map +1 -1
  189. package/lib/_util/colors.d.ts +3 -0
  190. package/lib/_util/colors.d.ts.map +1 -0
  191. package/lib/_util/colors.js +7 -0
  192. package/lib/_util/colors.js.map +1 -0
  193. package/lib/_util/easings.d.ts +2 -0
  194. package/lib/_util/easings.d.ts.map +1 -0
  195. package/lib/_util/easings.js +14 -0
  196. package/lib/_util/easings.js.map +1 -0
  197. package/lib/_util/getDataOrAriaProps.d.ts +2 -0
  198. package/lib/_util/getDataOrAriaProps.d.ts.map +1 -0
  199. package/lib/_util/getDataOrAriaProps.js +13 -0
  200. package/lib/_util/getDataOrAriaProps.js.map +1 -0
  201. package/lib/_util/getScroll.d.ts +2 -0
  202. package/lib/_util/getScroll.d.ts.map +1 -0
  203. package/lib/_util/getScroll.js +18 -0
  204. package/lib/_util/getScroll.js.map +1 -0
  205. package/lib/_util/interopDefault.d.ts +2 -0
  206. package/lib/_util/interopDefault.d.ts.map +1 -0
  207. package/lib/_util/interopDefault.js +9 -0
  208. package/lib/_util/interopDefault.js.map +1 -0
  209. package/lib/_util/isNumeric.d.ts +3 -0
  210. package/lib/_util/isNumeric.d.ts.map +1 -0
  211. package/lib/_util/isNumeric.js +7 -0
  212. package/lib/_util/isNumeric.js.map +1 -0
  213. package/lib/_util/motion.d.ts +24 -0
  214. package/lib/_util/motion.d.ts.map +1 -0
  215. package/lib/_util/motion.js +17 -0
  216. package/lib/_util/motion.js.map +1 -0
  217. package/lib/_util/openAnimation.d.ts +7 -0
  218. package/lib/_util/openAnimation.d.ts.map +1 -0
  219. package/lib/_util/openAnimation.js +58 -0
  220. package/lib/_util/openAnimation.js.map +1 -0
  221. package/lib/_util/raf.d.ts +10 -0
  222. package/lib/_util/raf.d.ts.map +1 -0
  223. package/lib/_util/raf.js +34 -0
  224. package/lib/_util/raf.js.map +1 -0
  225. package/lib/_util/reactNode.d.ts +3 -0
  226. package/lib/_util/reactNode.d.ts.map +1 -0
  227. package/lib/_util/reactNode.js +31 -0
  228. package/lib/_util/reactNode.js.map +1 -0
  229. package/lib/_util/ref.d.ts +4 -0
  230. package/lib/_util/ref.d.ts.map +1 -0
  231. package/lib/_util/ref.js +22 -0
  232. package/lib/_util/ref.js.map +1 -0
  233. package/lib/_util/responsiveObserve.d.ts +14 -0
  234. package/lib/_util/responsiveObserve.d.ts.map +1 -0
  235. package/lib/_util/responsiveObserve.js +83 -0
  236. package/lib/_util/responsiveObserve.js.map +1 -0
  237. package/lib/_util/scrollTo.d.ts +11 -0
  238. package/lib/_util/scrollTo.d.ts.map +1 -0
  239. package/lib/_util/scrollTo.js +34 -0
  240. package/lib/_util/scrollTo.js.map +1 -0
  241. package/lib/_util/styleChecker.d.ts +4 -0
  242. package/lib/_util/styleChecker.d.ts.map +1 -0
  243. package/lib/_util/styleChecker.js +14 -0
  244. package/lib/_util/styleChecker.js.map +1 -0
  245. package/lib/_util/throttleByAnimationFrame.d.ts +6 -0
  246. package/lib/_util/throttleByAnimationFrame.d.ts.map +1 -0
  247. package/lib/_util/throttleByAnimationFrame.js +49 -0
  248. package/lib/_util/throttleByAnimationFrame.js.map +1 -0
  249. package/lib/_util/transButton.d.ts +21 -0
  250. package/lib/_util/transButton.d.ts.map +1 -0
  251. package/lib/_util/transButton.js +112 -0
  252. package/lib/_util/transButton.js.map +1 -0
  253. package/lib/_util/triggerEvent.d.ts +2 -0
  254. package/lib/_util/triggerEvent.d.ts.map +1 -0
  255. package/lib/_util/triggerEvent.js +12 -0
  256. package/lib/_util/triggerEvent.js.map +1 -0
  257. package/lib/_util/type.d.ts +4 -0
  258. package/lib/_util/type.d.ts.map +1 -0
  259. package/lib/_util/type.js +9 -0
  260. package/lib/_util/type.js.map +1 -0
  261. package/lib/_util/warning.d.ts +5 -0
  262. package/lib/_util/warning.d.ts.map +1 -0
  263. package/lib/_util/warning.js +28 -0
  264. package/lib/_util/warning.js.map +1 -0
  265. package/lib/_util/wave.d.ts +26 -0
  266. package/lib/_util/wave.d.ts.map +1 -0
  267. package/lib/_util/wave.js +249 -0
  268. package/lib/_util/wave.js.map +1 -0
  269. package/lib/affix/index.js +5 -1
  270. package/lib/affix/index.js.map +1 -1
  271. package/lib/alert/index.js +5 -1
  272. package/lib/alert/index.js.map +1 -1
  273. package/lib/anchor/index.js +5 -1
  274. package/lib/anchor/index.js.map +1 -1
  275. package/lib/array-input/index.js +5 -1
  276. package/lib/array-input/index.js.map +1 -1
  277. package/lib/auto-complete/index.js +5 -1
  278. package/lib/auto-complete/index.js.map +1 -1
  279. package/lib/avatar/index.js +5 -1
  280. package/lib/avatar/index.js.map +1 -1
  281. package/lib/back-top/index.js +5 -1
  282. package/lib/back-top/index.js.map +1 -1
  283. package/lib/badge/index.js +5 -1
  284. package/lib/badge/index.js.map +1 -1
  285. package/lib/breadcrumb/index.js +5 -1
  286. package/lib/breadcrumb/index.js.map +1 -1
  287. package/lib/button/index.js +5 -1
  288. package/lib/button/index.js.map +1 -1
  289. package/lib/calendar/index.js +5 -1
  290. package/lib/calendar/index.js.map +1 -1
  291. package/lib/card/index.js +5 -1
  292. package/lib/card/index.js.map +1 -1
  293. package/lib/carousel/index.js +5 -1
  294. package/lib/carousel/index.js.map +1 -1
  295. package/lib/cascader/index.d.ts +6 -1
  296. package/lib/cascader/index.d.ts.map +1 -1
  297. package/lib/cascader/index.js +11 -2
  298. package/lib/cascader/index.js.map +1 -1
  299. package/lib/checkbox/checkbox-group.d.ts +8 -0
  300. package/lib/checkbox/checkbox-group.d.ts.map +1 -0
  301. package/lib/checkbox/checkbox-group.js +11 -0
  302. package/lib/checkbox/checkbox-group.js.map +1 -0
  303. package/lib/checkbox/index.d.ts +1 -0
  304. package/lib/checkbox/index.d.ts.map +1 -1
  305. package/lib/checkbox/index.js +10 -1
  306. package/lib/checkbox/index.js.map +1 -1
  307. package/lib/col/index.js +5 -1
  308. package/lib/col/index.js.map +1 -1
  309. package/lib/collapse/index.js +5 -1
  310. package/lib/collapse/index.js.map +1 -1
  311. package/lib/color-picker/ColorPicker.js +5 -1
  312. package/lib/color-picker/ColorPicker.js.map +1 -1
  313. package/lib/comment/index.js +5 -1
  314. package/lib/comment/index.js.map +1 -1
  315. package/lib/config-provider/DisabledContext.d.ts +10 -0
  316. package/lib/config-provider/DisabledContext.d.ts.map +1 -0
  317. package/lib/config-provider/DisabledContext.js +35 -0
  318. package/lib/config-provider/DisabledContext.js.map +1 -0
  319. package/lib/config-provider/SizeContext.d.ts +10 -0
  320. package/lib/config-provider/SizeContext.d.ts.map +1 -0
  321. package/lib/config-provider/SizeContext.js +32 -0
  322. package/lib/config-provider/SizeContext.js.map +1 -0
  323. package/lib/config-provider/context.d.ts +61 -0
  324. package/lib/config-provider/context.d.ts.map +1 -0
  325. package/lib/config-provider/context.js +64 -0
  326. package/lib/config-provider/context.js.map +1 -0
  327. package/lib/config-provider/index.d.ts +1 -0
  328. package/lib/config-provider/index.d.ts.map +1 -1
  329. package/lib/config-provider/index.js +9 -1
  330. package/lib/config-provider/index.js.map +1 -1
  331. package/lib/connect/index.d.ts +12 -0
  332. package/lib/connect/index.d.ts.map +1 -0
  333. package/lib/connect/index.js +32 -0
  334. package/lib/connect/index.js.map +1 -0
  335. package/lib/date-picker/index.d.ts +6 -1
  336. package/lib/date-picker/index.d.ts.map +1 -1
  337. package/lib/date-picker/index.js +17 -2
  338. package/lib/date-picker/index.js.map +1 -1
  339. package/lib/descriptions/descriptions.d.ts +1 -1
  340. package/lib/descriptions/descriptions.d.ts.map +1 -1
  341. package/lib/descriptions/descriptions.js +5 -1
  342. package/lib/descriptions/descriptions.js.map +1 -1
  343. package/lib/descriptions/index.js +5 -1
  344. package/lib/descriptions/index.js.map +1 -1
  345. package/lib/development-login/LoginModal.js +5 -1
  346. package/lib/development-login/LoginModal.js.map +1 -1
  347. package/lib/development-login/index.js +5 -1
  348. package/lib/development-login/index.js.map +1 -1
  349. package/lib/divider/index.js +5 -1
  350. package/lib/divider/index.js.map +1 -1
  351. package/lib/drawer/index.js +5 -1
  352. package/lib/drawer/index.js.map +1 -1
  353. package/lib/dropdown/index.js +5 -1
  354. package/lib/dropdown/index.js.map +1 -1
  355. package/lib/ellipsis/index.js +5 -1
  356. package/lib/ellipsis/index.js.map +1 -1
  357. package/lib/ellipsis/index.less +1 -1
  358. package/lib/empty/empty.js +5 -1
  359. package/lib/empty/empty.js.map +1 -1
  360. package/lib/empty/index.js +5 -1
  361. package/lib/empty/index.js.map +1 -1
  362. package/lib/exception/index.js +5 -1
  363. package/lib/exception/index.js.map +1 -1
  364. package/lib/form/index.js +5 -1
  365. package/lib/form/index.js.map +1 -1
  366. package/lib/handle/index.js +5 -1
  367. package/lib/handle/index.js.map +1 -1
  368. package/lib/icon/index.js +5 -1
  369. package/lib/icon/index.js.map +1 -1
  370. package/lib/img/index.js +5 -1
  371. package/lib/img/index.js.map +1 -1
  372. package/lib/input/index.js +5 -1
  373. package/lib/input/index.js.map +1 -1
  374. package/lib/input/input.d.ts +22 -8
  375. package/lib/input/input.d.ts.map +1 -1
  376. package/lib/input/input.js +61 -27
  377. package/lib/input/input.js.map +1 -1
  378. package/lib/input-number/index.d.ts +7 -2
  379. package/lib/input-number/index.d.ts.map +1 -1
  380. package/lib/input-number/index.js +8 -2
  381. package/lib/input-number/index.js.map +1 -1
  382. package/lib/label/index.js +5 -1
  383. package/lib/label/index.js.map +1 -1
  384. package/lib/layout/index.js +5 -1
  385. package/lib/layout/index.js.map +1 -1
  386. package/lib/list/index.js +5 -1
  387. package/lib/list/index.js.map +1 -1
  388. package/lib/loading-button/index.js +5 -1
  389. package/lib/loading-button/index.js.map +1 -1
  390. package/lib/locale/index.js +5 -1
  391. package/lib/locale/index.js.map +1 -1
  392. package/lib/locale-provider/index.js +5 -1
  393. package/lib/locale-provider/index.js.map +1 -1
  394. package/lib/mentions/index.js +5 -1
  395. package/lib/mentions/index.js.map +1 -1
  396. package/lib/menu/index.js +5 -1
  397. package/lib/menu/index.js.map +1 -1
  398. package/lib/message/index.js +5 -1
  399. package/lib/message/index.js.map +1 -1
  400. package/lib/modal/index.js +5 -1
  401. package/lib/modal/index.js.map +1 -1
  402. package/lib/modal/modal.js +5 -1
  403. package/lib/modal/modal.js.map +1 -1
  404. package/lib/notification/index.js +5 -1
  405. package/lib/notification/index.js.map +1 -1
  406. package/lib/page-header/index.js +5 -1
  407. package/lib/page-header/index.js.map +1 -1
  408. package/lib/pagination/index.js +5 -1
  409. package/lib/pagination/index.js.map +1 -1
  410. package/lib/popconfirm/index.js +5 -1
  411. package/lib/popconfirm/index.js.map +1 -1
  412. package/lib/popover/index.js +5 -1
  413. package/lib/popover/index.js.map +1 -1
  414. package/lib/preview-text/index.d.ts +20 -0
  415. package/lib/preview-text/index.d.ts.map +1 -0
  416. package/lib/preview-text/index.js +224 -0
  417. package/lib/preview-text/index.js.map +1 -0
  418. package/lib/preview-text/index.less +3 -0
  419. package/lib/progress/index.js +5 -1
  420. package/lib/progress/index.js.map +1 -1
  421. package/lib/query-form/Field/Select.js +5 -1
  422. package/lib/query-form/Field/Select.js.map +1 -1
  423. package/lib/query-form/Field/SelectInput.js +5 -1
  424. package/lib/query-form/Field/SelectInput.js.map +1 -1
  425. package/lib/query-form/Field/fieldsMap.d.ts +2 -2
  426. package/lib/query-form/Field/index.d.ts +6 -0
  427. package/lib/query-form/Field/index.d.ts.map +1 -1
  428. package/lib/query-form/Field/index.js +5 -1
  429. package/lib/query-form/Field/index.js.map +1 -1
  430. package/lib/query-form/index.d.ts +9 -0
  431. package/lib/query-form/index.d.ts.map +1 -1
  432. package/lib/query-form/index.js +5 -1
  433. package/lib/query-form/index.js.map +1 -1
  434. package/lib/query-list-scene/List.d.ts +13 -0
  435. package/lib/query-list-scene/List.d.ts.map +1 -1
  436. package/lib/query-list-scene/List.js +5 -1
  437. package/lib/query-list-scene/List.js.map +1 -1
  438. package/lib/query-list-scene/QueryForm.d.ts +3 -0
  439. package/lib/query-list-scene/QueryForm.d.ts.map +1 -1
  440. package/lib/query-list-scene/QueryListScene.d.ts +1 -0
  441. package/lib/query-list-scene/QueryListScene.d.ts.map +1 -1
  442. package/lib/radio/index.d.ts.map +1 -1
  443. package/lib/radio/index.js +8 -1
  444. package/lib/radio/index.js.map +1 -1
  445. package/lib/radio/radio-group.d.ts +8 -0
  446. package/lib/radio/radio-group.d.ts.map +1 -0
  447. package/lib/radio/radio-group.js +11 -0
  448. package/lib/radio/radio-group.js.map +1 -0
  449. package/lib/rate/index.js +5 -1
  450. package/lib/rate/index.js.map +1 -1
  451. package/lib/result/index.js +5 -1
  452. package/lib/result/index.js.map +1 -1
  453. package/lib/row/index.js +5 -1
  454. package/lib/row/index.js.map +1 -1
  455. package/lib/select/index.d.ts +2 -1
  456. package/lib/select/index.d.ts.map +1 -1
  457. package/lib/select/index.js +5 -1
  458. package/lib/select/index.js.map +1 -1
  459. package/lib/select/select.d.ts +20 -6
  460. package/lib/select/select.d.ts.map +1 -1
  461. package/lib/select/select.js +41 -7
  462. package/lib/select/select.js.map +1 -1
  463. package/lib/skeleton/index.js +5 -1
  464. package/lib/skeleton/index.js.map +1 -1
  465. package/lib/slider/index.js +5 -1
  466. package/lib/slider/index.js.map +1 -1
  467. package/lib/spin/index.js +5 -1
  468. package/lib/spin/index.js.map +1 -1
  469. package/lib/statistic/index.js +5 -1
  470. package/lib/statistic/index.js.map +1 -1
  471. package/lib/steps/index.js +5 -1
  472. package/lib/steps/index.js.map +1 -1
  473. package/lib/steps/steps.js +5 -1
  474. package/lib/steps/steps.js.map +1 -1
  475. package/lib/svg-components/illustration-403.d.ts +1 -1
  476. package/lib/svg-components/illustration-403.js +5 -1
  477. package/lib/svg-components/illustration-403.js.map +1 -1
  478. package/lib/svg-components/illustration-404.d.ts +1 -1
  479. package/lib/svg-components/illustration-404.js +5 -1
  480. package/lib/svg-components/illustration-404.js.map +1 -1
  481. package/lib/svg-components/illustration-500.d.ts +1 -1
  482. package/lib/svg-components/illustration-500.js +5 -1
  483. package/lib/svg-components/illustration-500.js.map +1 -1
  484. package/lib/svg-components/illustration-empty.d.ts +1 -1
  485. package/lib/svg-components/illustration-empty.js +5 -1
  486. package/lib/svg-components/illustration-empty.js.map +1 -1
  487. package/lib/svg-components/illustration-failure.d.ts +1 -1
  488. package/lib/svg-components/illustration-failure.js +5 -1
  489. package/lib/svg-components/illustration-failure.js.map +1 -1
  490. package/lib/svg-components/illustration-no-access.d.ts +1 -1
  491. package/lib/svg-components/illustration-no-access.js +5 -1
  492. package/lib/svg-components/illustration-no-access.js.map +1 -1
  493. package/lib/svg-components/illustration-no-chart.d.ts +1 -1
  494. package/lib/svg-components/illustration-no-chart.js +5 -1
  495. package/lib/svg-components/illustration-no-chart.js.map +1 -1
  496. package/lib/svg-components/illustration-no-result.d.ts +1 -1
  497. package/lib/svg-components/illustration-no-result.js +5 -1
  498. package/lib/svg-components/illustration-no-result.js.map +1 -1
  499. package/lib/svg-components/illustration-offline.d.ts +1 -1
  500. package/lib/svg-components/illustration-offline.js +5 -1
  501. package/lib/svg-components/illustration-offline.js.map +1 -1
  502. package/lib/svg-components/illustration-success.d.ts +1 -1
  503. package/lib/svg-components/illustration-success.js +5 -1
  504. package/lib/svg-components/illustration-success.js.map +1 -1
  505. package/lib/switch/index.d.ts +2 -3
  506. package/lib/switch/index.d.ts.map +1 -1
  507. package/lib/switch/index.js +7 -4
  508. package/lib/switch/index.js.map +1 -1
  509. package/lib/switch/switch.d.ts +10 -0
  510. package/lib/switch/switch.d.ts.map +1 -0
  511. package/lib/switch/switch.js +29 -0
  512. package/lib/switch/switch.js.map +1 -0
  513. package/lib/table/assets/image-loading-background.d.ts +1 -1
  514. package/lib/table/assets/image-loading-background.js +5 -1
  515. package/lib/table/assets/image-loading-background.js.map +1 -1
  516. package/lib/table/assets/image-loading.d.ts +1 -1
  517. package/lib/table/assets/image-loading.js +5 -1
  518. package/lib/table/assets/image-loading.js.map +1 -1
  519. package/lib/table/hooks/index.js +5 -1
  520. package/lib/table/hooks/index.js.map +1 -1
  521. package/lib/table/index.js +5 -1
  522. package/lib/table/index.js.map +1 -1
  523. package/lib/table/table.js +5 -1
  524. package/lib/table/table.js.map +1 -1
  525. package/lib/table/table.less +2 -0
  526. package/lib/tabs/index.js +5 -1
  527. package/lib/tabs/index.js.map +1 -1
  528. package/lib/tag/index.js +5 -1
  529. package/lib/tag/index.js.map +1 -1
  530. package/lib/time-picker/index.d.ts +7 -2
  531. package/lib/time-picker/index.d.ts.map +1 -1
  532. package/lib/time-picker/index.js +8 -2
  533. package/lib/time-picker/index.js.map +1 -1
  534. package/lib/timeline/index.js +5 -1
  535. package/lib/timeline/index.js.map +1 -1
  536. package/lib/tntd-cascader/AntdCascader/component/DisabledContext.js +5 -1
  537. package/lib/tntd-cascader/AntdCascader/component/DisabledContext.js.map +1 -1
  538. package/lib/tntd-cascader/AntdCascader/component/FormItemInputContext.js +5 -1
  539. package/lib/tntd-cascader/AntdCascader/component/FormItemInputContext.js.map +1 -1
  540. package/lib/tntd-cascader/AntdCascader/component/SizeContext.js +5 -1
  541. package/lib/tntd-cascader/AntdCascader/component/SizeContext.js.map +1 -1
  542. package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js +5 -1
  543. package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js.map +1 -1
  544. package/lib/tntd-cascader/AntdCascader/component/getIcons.js +5 -1
  545. package/lib/tntd-cascader/AntdCascader/component/getIcons.js.map +1 -1
  546. package/lib/tntd-cascader/AntdCascader/component/useCompactItemContext.js +5 -1
  547. package/lib/tntd-cascader/AntdCascader/component/useCompactItemContext.js.map +1 -1
  548. package/lib/tntd-cascader/AntdCascader/config/utils.d.ts +1 -1
  549. package/lib/tntd-cascader/AntdCascader/config/warning.js +5 -1
  550. package/lib/tntd-cascader/AntdCascader/config/warning.js.map +1 -1
  551. package/lib/tntd-cascader/AntdCascader/index.js +5 -1
  552. package/lib/tntd-cascader/AntdCascader/index.js.map +1 -1
  553. package/lib/tntd-cascader/rc-cascader/Cascader.js +5 -1
  554. package/lib/tntd-cascader/rc-cascader/Cascader.js.map +1 -1
  555. package/lib/tntd-cascader/rc-cascader/OptionList/Checkbox.js +5 -1
  556. package/lib/tntd-cascader/rc-cascader/OptionList/Checkbox.js.map +1 -1
  557. package/lib/tntd-cascader/rc-cascader/OptionList/Column.js +5 -1
  558. package/lib/tntd-cascader/rc-cascader/OptionList/Column.js.map +1 -1
  559. package/lib/tntd-cascader/rc-cascader/OptionList/index.js +5 -1
  560. package/lib/tntd-cascader/rc-cascader/OptionList/index.js.map +1 -1
  561. package/lib/tntd-cascader/rc-cascader/OptionList/useActive.js +5 -1
  562. package/lib/tntd-cascader/rc-cascader/OptionList/useActive.js.map +1 -1
  563. package/lib/tntd-cascader/rc-cascader/OptionList/useKeyboard.js +5 -1
  564. package/lib/tntd-cascader/rc-cascader/OptionList/useKeyboard.js.map +1 -1
  565. package/lib/tntd-cascader/rc-cascader/context.js +5 -1
  566. package/lib/tntd-cascader/rc-cascader/context.js.map +1 -1
  567. package/lib/tntd-cascader/rc-cascader/hooks/useDisplayValues.js +5 -1
  568. package/lib/tntd-cascader/rc-cascader/hooks/useDisplayValues.js.map +1 -1
  569. package/lib/tntd-cascader/rc-cascader/hooks/useEntities.js +5 -1
  570. package/lib/tntd-cascader/rc-cascader/hooks/useEntities.js.map +1 -1
  571. package/lib/tntd-cascader/rc-cascader/hooks/useMissingValues.js +5 -1
  572. package/lib/tntd-cascader/rc-cascader/hooks/useMissingValues.js.map +1 -1
  573. package/lib/tntd-cascader/rc-cascader/hooks/useRefFunc.js +5 -1
  574. package/lib/tntd-cascader/rc-cascader/hooks/useRefFunc.js.map +1 -1
  575. package/lib/tntd-cascader/rc-cascader/hooks/useSearchConfig.js +5 -1
  576. package/lib/tntd-cascader/rc-cascader/hooks/useSearchConfig.js.map +1 -1
  577. package/lib/tntd-cascader/rc-cascader/hooks/useSearchOptions.js +5 -1
  578. package/lib/tntd-cascader/rc-cascader/hooks/useSearchOptions.js.map +1 -1
  579. package/lib/tntd-form/ErrorList.d.ts +13 -0
  580. package/lib/tntd-form/ErrorList.d.ts.map +1 -0
  581. package/lib/tntd-form/ErrorList.js +82 -0
  582. package/lib/tntd-form/ErrorList.js.map +1 -0
  583. package/lib/tntd-form/Form.d.ts +36 -0
  584. package/lib/tntd-form/Form.d.ts.map +1 -0
  585. package/lib/tntd-form/Form.js +132 -0
  586. package/lib/tntd-form/Form.js.map +1 -0
  587. package/lib/tntd-form/FormItem/ItemHolder.d.ts +18 -0
  588. package/lib/tntd-form/FormItem/ItemHolder.d.ts.map +1 -0
  589. package/lib/tntd-form/FormItem/ItemHolder.js +164 -0
  590. package/lib/tntd-form/FormItem/ItemHolder.js.map +1 -0
  591. package/lib/tntd-form/FormItem/index.d.ts +36 -0
  592. package/lib/tntd-form/FormItem/index.d.ts.map +1 -0
  593. package/lib/tntd-form/FormItem/index.js +266 -0
  594. package/lib/tntd-form/FormItem/index.js.map +1 -0
  595. package/lib/tntd-form/FormItemInput.d.ts +30 -0
  596. package/lib/tntd-form/FormItemInput.d.ts.map +1 -0
  597. package/lib/tntd-form/FormItemInput.js +66 -0
  598. package/lib/tntd-form/FormItemInput.js.map +1 -0
  599. package/lib/tntd-form/FormItemLabel.d.ts +24 -0
  600. package/lib/tntd-form/FormItemLabel.d.ts.map +1 -0
  601. package/lib/tntd-form/FormItemLabel.js +101 -0
  602. package/lib/tntd-form/FormItemLabel.js.map +1 -0
  603. package/lib/tntd-form/FormList.d.ts +26 -0
  604. package/lib/tntd-form/FormList.d.ts.map +1 -0
  605. package/lib/tntd-form/FormList.js +62 -0
  606. package/lib/tntd-form/FormList.js.map +1 -0
  607. package/lib/tntd-form/TntdForm/components/Item.js +5 -1
  608. package/lib/tntd-form/TntdForm/components/Item.js.map +1 -1
  609. package/lib/tntd-form/TntdForm/components/ItemComp.js +7 -3
  610. package/lib/tntd-form/TntdForm/components/ItemComp.js.map +1 -1
  611. package/lib/tntd-form/TntdForm/components/List.js +5 -1
  612. package/lib/tntd-form/TntdForm/components/List.js.map +1 -1
  613. package/lib/tntd-form/TntdForm/index.js +5 -1
  614. package/lib/tntd-form/TntdForm/index.js.map +1 -1
  615. package/lib/tntd-form/__tests__/demo-extend.test.d.ts +2 -0
  616. package/lib/tntd-form/__tests__/demo-extend.test.d.ts.map +1 -0
  617. package/lib/tntd-form/__tests__/demo-extend.test.js +5 -0
  618. package/lib/tntd-form/__tests__/demo-extend.test.js.map +1 -0
  619. package/lib/tntd-form/__tests__/demo.test.d.ts +2 -0
  620. package/lib/tntd-form/__tests__/demo.test.d.ts.map +1 -0
  621. package/lib/tntd-form/__tests__/demo.test.js +8 -0
  622. package/lib/tntd-form/__tests__/demo.test.js.map +1 -0
  623. package/lib/tntd-form/__tests__/image.test.d.ts +2 -0
  624. package/lib/tntd-form/__tests__/image.test.d.ts.map +1 -0
  625. package/lib/tntd-form/__tests__/image.test.js +7 -0
  626. package/lib/tntd-form/__tests__/image.test.js.map +1 -0
  627. package/lib/tntd-form/__tests__/index.test.d.ts +2 -0
  628. package/lib/tntd-form/__tests__/index.test.d.ts.map +1 -0
  629. package/lib/tntd-form/__tests__/index.test.js +981 -0
  630. package/lib/tntd-form/__tests__/index.test.js.map +1 -0
  631. package/lib/tntd-form/__tests__/list-noStyle.test.d.ts +2 -0
  632. package/lib/tntd-form/__tests__/list-noStyle.test.d.ts.map +1 -0
  633. package/lib/tntd-form/__tests__/list-noStyle.test.js +46 -0
  634. package/lib/tntd-form/__tests__/list-noStyle.test.js.map +1 -0
  635. package/lib/tntd-form/__tests__/list.test.d.ts +2 -0
  636. package/lib/tntd-form/__tests__/list.test.d.ts.map +1 -0
  637. package/lib/tntd-form/__tests__/list.test.js +169 -0
  638. package/lib/tntd-form/__tests__/list.test.js.map +1 -0
  639. package/lib/tntd-form/__tests__/ref.test.d.ts +2 -0
  640. package/lib/tntd-form/__tests__/ref.test.d.ts.map +1 -0
  641. package/lib/tntd-form/__tests__/ref.test.js +50 -0
  642. package/lib/tntd-form/__tests__/ref.test.js.map +1 -0
  643. package/lib/tntd-form/__tests__/type.test.d.ts +2 -0
  644. package/lib/tntd-form/__tests__/type.test.d.ts.map +1 -0
  645. package/lib/tntd-form/__tests__/type.test.js +98 -0
  646. package/lib/tntd-form/__tests__/type.test.js.map +1 -0
  647. package/lib/tntd-form/_util/motion.d.ts +9 -0
  648. package/lib/tntd-form/_util/motion.d.ts.map +1 -0
  649. package/lib/tntd-form/_util/motion.js +42 -0
  650. package/lib/tntd-form/_util/motion.js.map +1 -0
  651. package/lib/tntd-form/_util/reactNode.d.ts +9 -0
  652. package/lib/tntd-form/_util/reactNode.d.ts.map +1 -0
  653. package/lib/tntd-form/_util/reactNode.js +44 -0
  654. package/lib/tntd-form/_util/reactNode.js.map +1 -0
  655. package/lib/tntd-form/_util/scrollTo.d.ts +1 -0
  656. package/lib/tntd-form/_util/scrollTo.d.ts.map +1 -0
  657. package/lib/tntd-form/_util/scrollTo.js +35 -0
  658. package/lib/tntd-form/_util/scrollTo.js.map +1 -0
  659. package/lib/tntd-form/_util/type.d.ts +4 -0
  660. package/lib/tntd-form/_util/type.d.ts.map +1 -0
  661. package/lib/tntd-form/_util/type.js +9 -0
  662. package/lib/tntd-form/_util/type.js.map +1 -0
  663. package/lib/tntd-form/_util/warning.d.ts +5 -0
  664. package/lib/tntd-form/_util/warning.d.ts.map +1 -0
  665. package/lib/tntd-form/_util/warning.js +32 -0
  666. package/lib/tntd-form/_util/warning.js.map +1 -0
  667. package/lib/tntd-form/_util/wave.d.ts +1 -0
  668. package/lib/tntd-form/_util/wave.d.ts.map +1 -0
  669. package/lib/tntd-form/_util/wave.js +168 -0
  670. package/lib/tntd-form/_util/wave.js.map +1 -0
  671. package/lib/tntd-form/context.d.ts +51 -0
  672. package/lib/tntd-form/context.d.ts.map +1 -0
  673. package/lib/tntd-form/context.js +66 -0
  674. package/lib/tntd-form/context.js.map +1 -0
  675. package/lib/tntd-form/hooks/useDebounce.d.ts +2 -0
  676. package/lib/tntd-form/hooks/useDebounce.d.ts.map +1 -0
  677. package/lib/tntd-form/hooks/useDebounce.js +40 -0
  678. package/lib/tntd-form/hooks/useDebounce.js.map +1 -0
  679. package/lib/tntd-form/hooks/useForm.d.ts +16 -0
  680. package/lib/tntd-form/hooks/useForm.d.ts.map +1 -0
  681. package/lib/tntd-form/hooks/useForm.js +64 -0
  682. package/lib/tntd-form/hooks/useForm.js.map +1 -0
  683. package/lib/tntd-form/hooks/useFormInstance.d.ts +3 -0
  684. package/lib/tntd-form/hooks/useFormInstance.d.ts.map +1 -0
  685. package/lib/tntd-form/hooks/useFormInstance.js +10 -0
  686. package/lib/tntd-form/hooks/useFormInstance.js.map +1 -0
  687. package/lib/tntd-form/hooks/useFormItemStatus.d.ts +7 -0
  688. package/lib/tntd-form/hooks/useFormItemStatus.d.ts.map +1 -0
  689. package/lib/tntd-form/hooks/useFormItemStatus.js +15 -0
  690. package/lib/tntd-form/hooks/useFormItemStatus.js.map +1 -0
  691. package/lib/tntd-form/hooks/useFrameState.d.ts +4 -0
  692. package/lib/tntd-form/hooks/useFrameState.d.ts.map +1 -0
  693. package/lib/tntd-form/hooks/useFrameState.js +67 -0
  694. package/lib/tntd-form/hooks/useFrameState.js.map +1 -0
  695. package/lib/tntd-form/hooks/useItemRef.d.ts +4 -0
  696. package/lib/tntd-form/hooks/useItemRef.d.ts.map +1 -0
  697. package/lib/tntd-form/hooks/useItemRef.js +45 -0
  698. package/lib/tntd-form/hooks/useItemRef.js.map +1 -0
  699. package/lib/tntd-form/index.d.ts +23 -1
  700. package/lib/tntd-form/index.d.ts.map +1 -1
  701. package/lib/tntd-form/index.js +40 -3
  702. package/lib/tntd-form/index.js.map +1 -1
  703. package/lib/tntd-form/interface.d.ts +4 -0
  704. package/lib/tntd-form/interface.d.ts.map +1 -0
  705. package/lib/tntd-form/interface.js +5 -0
  706. package/lib/tntd-form/interface.js.map +1 -0
  707. package/lib/tntd-form/style/components.less +16 -0
  708. package/lib/tntd-form/style/horizontal.less +26 -0
  709. package/lib/tntd-form/style/index.d.ts +5 -0
  710. package/lib/tntd-form/style/index.d.ts.map +1 -0
  711. package/lib/tntd-form/style/index.js +8 -0
  712. package/lib/tntd-form/style/index.js.map +1 -0
  713. package/lib/tntd-form/style/index.less +342 -0
  714. package/lib/tntd-form/style/inline.less +40 -0
  715. package/lib/tntd-form/style/mixin.less +90 -0
  716. package/lib/tntd-form/style/rtl.less +204 -0
  717. package/lib/tntd-form/style/status.less +45 -0
  718. package/lib/tntd-form/style/vertical.less +95 -0
  719. package/lib/tntd-form/tntd-form.stories.d.ts +33 -0
  720. package/lib/tntd-form/tntd-form.stories.d.ts.map +1 -0
  721. package/lib/tntd-form/tntd-form.stories.js +455 -0
  722. package/lib/tntd-form/tntd-form.stories.js.map +1 -0
  723. package/lib/tntd-form/util.d.ts +4 -0
  724. package/lib/tntd-form/util.d.ts.map +1 -0
  725. package/lib/tntd-form/util.js +26 -0
  726. package/lib/tntd-form/util.js.map +1 -0
  727. package/lib/tntd-form/validateMessagesContext.d.ts +5 -0
  728. package/lib/tntd-form/validateMessagesContext.d.ts.map +1 -0
  729. package/lib/tntd-form/validateMessagesContext.js +8 -0
  730. package/lib/tntd-form/validateMessagesContext.js.map +1 -0
  731. package/lib/tntd-layout/AppList.js +5 -1
  732. package/lib/tntd-layout/AppList.js.map +1 -1
  733. package/lib/tntd-layout/Application.js +5 -1
  734. package/lib/tntd-layout/Application.js.map +1 -1
  735. package/lib/tntd-layout/Avatar.js +5 -1
  736. package/lib/tntd-layout/Avatar.js.map +1 -1
  737. package/lib/tntd-layout/CompatibleLanguage.js +5 -1
  738. package/lib/tntd-layout/CompatibleLanguage.js.map +1 -1
  739. package/lib/tntd-layout/EnterpriseLayout/Avatar.js +5 -1
  740. package/lib/tntd-layout/EnterpriseLayout/Avatar.js.map +1 -1
  741. package/lib/tntd-layout/EnterpriseLayout/Language.js +5 -1
  742. package/lib/tntd-layout/EnterpriseLayout/Language.js.map +1 -1
  743. package/lib/tntd-layout/EnterpriseLayout/Theme.js +5 -1
  744. package/lib/tntd-layout/EnterpriseLayout/Theme.js.map +1 -1
  745. package/lib/tntd-layout/GlobalNavigation/NavigationPopup.js +5 -1
  746. package/lib/tntd-layout/GlobalNavigation/NavigationPopup.js.map +1 -1
  747. package/lib/tntd-layout/GlobalNavigation/index.js +5 -1
  748. package/lib/tntd-layout/GlobalNavigation/index.js.map +1 -1
  749. package/lib/tntd-layout/Header.js +5 -1
  750. package/lib/tntd-layout/Header.js.map +1 -1
  751. package/lib/tntd-layout/HeaderActions.js +5 -1
  752. package/lib/tntd-layout/HeaderActions.js.map +1 -1
  753. package/lib/tntd-layout/HeaderNavs.js +5 -1
  754. package/lib/tntd-layout/HeaderNavs.js.map +1 -1
  755. package/lib/tntd-layout/HeaderTabs.js +5 -1
  756. package/lib/tntd-layout/HeaderTabs.js.map +1 -1
  757. package/lib/tntd-layout/Language.js +5 -1
  758. package/lib/tntd-layout/Language.js.map +1 -1
  759. package/lib/tntd-layout/Layout.js +5 -1
  760. package/lib/tntd-layout/Layout.js.map +1 -1
  761. package/lib/tntd-layout/Logo.js +5 -1
  762. package/lib/tntd-layout/Logo.js.map +1 -1
  763. package/lib/tntd-layout/OrgAppList.js +5 -1
  764. package/lib/tntd-layout/OrgAppList.js.map +1 -1
  765. package/lib/tntd-layout/SideMenu.js +5 -1
  766. package/lib/tntd-layout/SideMenu.js.map +1 -1
  767. package/lib/tntd-layout/Theme.js +5 -1
  768. package/lib/tntd-layout/Theme.js.map +1 -1
  769. package/lib/tntd-layout/index.js +5 -1
  770. package/lib/tntd-layout/index.js.map +1 -1
  771. package/lib/tntd-layout/paaslayout/CompactSideMenu.js +5 -1
  772. package/lib/tntd-layout/paaslayout/CompactSideMenu.js.map +1 -1
  773. package/lib/tntd-layout/paaslayout/Header.js +5 -1
  774. package/lib/tntd-layout/paaslayout/Header.js.map +1 -1
  775. package/lib/tntd-layout/paaslayout/SideMenu.js +5 -1
  776. package/lib/tntd-layout/paaslayout/SideMenu.js.map +1 -1
  777. package/lib/tntd-layout/paaslayout/index.js +5 -1
  778. package/lib/tntd-layout/paaslayout/index.js.map +1 -1
  779. package/lib/tntd-modal/index.js +5 -1
  780. package/lib/tntd-modal/index.js.map +1 -1
  781. package/lib/tntd-select/DropDownWrap.d.ts +10 -0
  782. package/lib/tntd-select/DropDownWrap.d.ts.map +1 -1
  783. package/lib/tntd-select/DropDownWrap.js +5 -1
  784. package/lib/tntd-select/DropDownWrap.js.map +1 -1
  785. package/lib/tntd-select/index.d.ts +12 -1
  786. package/lib/tntd-select/index.d.ts.map +1 -1
  787. package/lib/tntd-select/index.js +13 -8
  788. package/lib/tntd-select/index.js.map +1 -1
  789. package/lib/tooltip/index.js +5 -1
  790. package/lib/tooltip/index.js.map +1 -1
  791. package/lib/transfer/index.js +5 -1
  792. package/lib/transfer/index.js.map +1 -1
  793. package/lib/tree/index.js +5 -1
  794. package/lib/tree/index.js.map +1 -1
  795. package/lib/tree-select/index.d.ts +7 -1
  796. package/lib/tree-select/index.d.ts.map +1 -1
  797. package/lib/tree-select/index.js +10 -2
  798. package/lib/tree-select/index.js.map +1 -1
  799. package/lib/typography/index.js +5 -1
  800. package/lib/typography/index.js.map +1 -1
  801. package/lib/upload/index.d.ts +6 -1
  802. package/lib/upload/index.d.ts.map +1 -1
  803. package/lib/upload/index.js +11 -2
  804. package/lib/upload/index.js.map +1 -1
  805. package/lib/utils/index.js +5 -1
  806. package/lib/utils/index.js.map +1 -1
  807. package/lib/version/index.js +5 -1
  808. package/lib/version/index.js.map +1 -1
  809. package/package.json +7 -4
  810. package/themes/default/variables.less +43 -0
  811. package/es/mention/index.js +0 -5
  812. package/es/mention/index.js.map +0 -1
  813. package/lib/mention/index.d.ts +0 -5
  814. package/lib/mention/index.d.ts.map +0 -1
  815. package/lib/mention/index.js +0 -20
  816. package/lib/mention/index.js.map +0 -1
@@ -0,0 +1,957 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import React, { useState } from 'react';
13
+ import scrollIntoView from 'scroll-into-view-if-needed';
14
+ import classNames from 'classnames';
15
+ import Form from '..';
16
+ import * as Util from '../util';
17
+ import Button from '../../button';
18
+ import Input from '../../input';
19
+ import Select from '../../select';
20
+ import Upload from '../../upload';
21
+ import Cascader from '../../cascader';
22
+ import Checkbox from '../../checkbox';
23
+ import DatePicker from '../../date-picker';
24
+ import InputNumber from '../../input-number';
25
+ import Radio from '../../radio';
26
+ import Switch from '../../switch';
27
+ import TreeSelect from '../../tree-select';
28
+ import mountTest from '../../../tests/shared/mountTest';
29
+ import rtlTest from '../../../tests/shared/rtlTest';
30
+ import { fireEvent, render, screen, pureRender, waitFakeTimer } from '../../../tests/utils';
31
+ import ConfigProvider from '../../config-provider';
32
+ import Drawer from '../../drawer';
33
+ import zhCN from '../../locale/zh_CN';
34
+ import Modal from '../../modal';
35
+ const { RangePicker } = DatePicker;
36
+ const { TextArea } = Input;
37
+ jest.mock('scroll-into-view-if-needed');
38
+ describe('Form', () => {
39
+ mountTest(Form);
40
+ mountTest(Form.Item);
41
+ rtlTest(Form);
42
+ rtlTest(Form.Item);
43
+ scrollIntoView.mockImplementation(() => { });
44
+ const errorSpy = jest.spyOn(console, 'error').mockImplementation(() => { });
45
+ const warnSpy = jest.spyOn(console, 'warn').mockImplementation(() => { });
46
+ // const change = async (
47
+ // container: ReturnType<typeof render>['container'],
48
+ // index: number,
49
+ // value: string,
50
+ // executeMockTimer: boolean,
51
+ // ) => {
52
+ // fireEvent.change(container.querySelectorAll('input')?.[index], { target: { value } });
53
+ // await sleep(200);
54
+ // if (executeMockTimer) {
55
+ // for (let i = 0; i < 10; i += 1) {
56
+ // act(() => {
57
+ // jest.runAllTimers();
58
+ // });
59
+ // }
60
+ // await sleep(1);
61
+ // }
62
+ // };
63
+ const changeValue = async (input, value, advTimer = 1000) => {
64
+ let element;
65
+ if (typeof input === 'number') {
66
+ element = document.querySelectorAll('input')[input];
67
+ }
68
+ expect(element).toBeTruthy();
69
+ fireEvent.change(element, {
70
+ target: {
71
+ value,
72
+ },
73
+ });
74
+ if (advTimer) {
75
+ await waitFakeTimer(advTimer / 20, 20);
76
+ }
77
+ };
78
+ beforeEach(() => {
79
+ document.body.innerHTML = '';
80
+ jest.useFakeTimers();
81
+ scrollIntoView.mockReset();
82
+ });
83
+ afterEach(() => {
84
+ errorSpy.mockReset();
85
+ });
86
+ afterAll(() => {
87
+ jest.clearAllTimers();
88
+ jest.useRealTimers();
89
+ errorSpy.mockRestore();
90
+ warnSpy.mockRestore();
91
+ scrollIntoView.mockRestore();
92
+ });
93
+ describe('noStyle Form.Item', () => {
94
+ it('should show alert when form field is required but empty', async () => {
95
+ const onChange = jest.fn();
96
+ const { container } = render(React.createElement(Form, null,
97
+ React.createElement(Form.Item, null,
98
+ React.createElement(Form.Item, { name: "test", label: "test", initialValue: "bamboo", rules: [{ required: true }] },
99
+ React.createElement(Input, { onChange: onChange })))));
100
+ // user type something and clear
101
+ await changeValue(0, 'test');
102
+ await changeValue(0, '');
103
+ // should show alert with correct message and show correct styles
104
+ expect(container.querySelector('.ant-form-item-explain-error')).toHaveTextContent("'test' is required");
105
+ expect(container.querySelector('.ant-input-status-error')).toBeTruthy();
106
+ expect(container.querySelector('.ant-form-item-has-error')).toBeTruthy();
107
+ expect(onChange).toHaveBeenCalled();
108
+ });
109
+ it('should clean up', async () => {
110
+ const Demo = () => {
111
+ const [form] = Form.useForm();
112
+ const onChange = async () => {
113
+ // Wait a while and then some logic to validate
114
+ await waitFakeTimer();
115
+ try {
116
+ await form.validateFields();
117
+ }
118
+ catch (err) {
119
+ // do nothing
120
+ }
121
+ };
122
+ return (React.createElement(Form, { form: form, initialValues: { aaa: '2' } },
123
+ React.createElement(Form.Item, { name: "aaa" },
124
+ React.createElement(Input, { onChange: onChange })),
125
+ React.createElement(Form.Item, { shouldUpdate: true, noStyle: true }, () => {
126
+ const aaa = form.getFieldValue('aaa');
127
+ if (aaa === '1') {
128
+ return (React.createElement(Form.Item, { name: "bbb", rules: [{ required: true, message: 'aaa' }] },
129
+ React.createElement(Input, null)));
130
+ }
131
+ return (React.createElement(Form.Item, null,
132
+ React.createElement(Form.Item, { name: "ccc", rules: [{ required: true, message: 'ccc' }], noStyle: true },
133
+ React.createElement(Input, null))));
134
+ })));
135
+ };
136
+ const { container } = render(React.createElement(Demo, null));
137
+ await changeValue(0, '1');
138
+ await waitFakeTimer(2000, 2000);
139
+ expect(container.querySelector('.ant-form-item-explain-error')).toHaveTextContent('aaa');
140
+ await changeValue(0, '2');
141
+ await waitFakeTimer(2000, 2000);
142
+ expect(container.querySelector('.ant-form-item-explain-error')).toHaveTextContent('ccc');
143
+ await changeValue(0, '1');
144
+ await waitFakeTimer(2000, 2000);
145
+ expect(container.querySelector('.ant-form-item-explain-error')).toHaveTextContent('aaa');
146
+ });
147
+ });
148
+ it('render functions require either `shouldUpdate` or `dependencies`', () => {
149
+ render(React.createElement(Form, null,
150
+ React.createElement(Form.Item, null, () => null)));
151
+ expect(errorSpy).toHaveBeenCalledWith('Warning: [antd: Form.Item] A `Form.Item` with a render function must have either `shouldUpdate` or `dependencies`.');
152
+ });
153
+ it("`shouldUpdate` shouldn't work with `dependencies`", () => {
154
+ render(React.createElement(Form, null,
155
+ React.createElement(Form.Item, { shouldUpdate: true, dependencies: [] }, () => null)));
156
+ expect(errorSpy).toHaveBeenCalledWith("Warning: [antd: Form.Item] `shouldUpdate` and `dependencies` shouldn't be used together. See https://u.ant.design/form-deps.");
157
+ });
158
+ it('`name` should not work with render props', () => {
159
+ render(React.createElement(Form, null,
160
+ React.createElement(Form.Item, { name: "test", shouldUpdate: true }, () => null)));
161
+ expect(errorSpy).toHaveBeenCalledWith("Warning: [antd: Form.Item] A `Form.Item` with a render function cannot be a field, and thus cannot have a `name` prop.");
162
+ });
163
+ it('multiple children with a name prop', () => {
164
+ render(React.createElement(Form, null,
165
+ React.createElement(Form.Item, { name: "test" },
166
+ React.createElement("div", null, "one"),
167
+ React.createElement("div", null, "two"))));
168
+ expect(errorSpy).toHaveBeenCalledWith('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.');
169
+ });
170
+ it('input element should have the prop aria-describedby pointing to the help id when there is a help message', () => {
171
+ var _a, _b;
172
+ const { container } = pureRender(React.createElement(Form, null,
173
+ React.createElement(Form.Item, { name: "test", help: "This is a help" },
174
+ React.createElement("input", null))));
175
+ expect((_a = container.querySelector('input')) === null || _a === void 0 ? void 0 : _a.getAttribute('aria-describedby')).toBe('test_help');
176
+ expect((_b = container.querySelector('.ant-form-item-explain')) === null || _b === void 0 ? void 0 : _b.id).toBe('test_help');
177
+ });
178
+ 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', () => {
179
+ var _a, _b;
180
+ const { container } = render(React.createElement(Form, null,
181
+ React.createElement(Form.Item, { help: "This is a help" },
182
+ React.createElement("input", null))));
183
+ expect((_a = container.querySelector('input')) === null || _a === void 0 ? void 0 : _a.getAttribute('aria-describedby')).toBeFalsy();
184
+ expect((_b = container.querySelector('.ant-form-item-explain')) === null || _b === void 0 ? void 0 : _b.id).toBeFalsy();
185
+ });
186
+ 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', () => {
187
+ var _a, _b;
188
+ const { container } = render(React.createElement(Form, { name: "form" },
189
+ React.createElement(Form.Item, { name: "test", help: "This is a help" },
190
+ React.createElement("input", null))));
191
+ expect((_a = container.querySelector('input')) === null || _a === void 0 ? void 0 : _a.getAttribute('aria-describedby')).toBe('form_test_help');
192
+ expect((_b = container.querySelector('.ant-form-item-explain')) === null || _b === void 0 ? void 0 : _b.id).toBe('form_test_help');
193
+ });
194
+ it('input element should have the prop aria-describedby pointing to the help id when there are errors', async () => {
195
+ var _a, _b;
196
+ const { container } = pureRender(React.createElement(Form, null,
197
+ React.createElement(Form.Item, { name: "test", rules: [{ len: 3 }, { type: 'number' }] },
198
+ React.createElement("input", null))));
199
+ await changeValue(0, 'Invalid number');
200
+ expect((_a = container.querySelector('input')) === null || _a === void 0 ? void 0 : _a.getAttribute('aria-describedby')).toBe('test_help');
201
+ expect((_b = container.querySelector('.ant-form-item-explain')) === null || _b === void 0 ? void 0 : _b.id).toBe('test_help');
202
+ });
203
+ it('input element should have the prop aria-invalid when there are errors', async () => {
204
+ var _a;
205
+ const { container } = render(React.createElement(Form, null,
206
+ React.createElement(Form.Item, { name: "test", rules: [{ len: 3 }, { type: 'number' }] },
207
+ React.createElement("input", null))));
208
+ await changeValue(0, 'Invalid number');
209
+ expect((_a = container.querySelector('input')) === null || _a === void 0 ? void 0 : _a.getAttribute('aria-invalid')).toBe('true');
210
+ });
211
+ it('input element should have the prop aria-required when the prop `required` is true', () => {
212
+ var _a;
213
+ const { container } = render(React.createElement(Form, null,
214
+ React.createElement(Form.Item, { name: "test", required: true },
215
+ React.createElement("input", null))));
216
+ expect((_a = container.querySelector('input')) === null || _a === void 0 ? void 0 : _a.getAttribute('aria-required')).toBe('true');
217
+ });
218
+ it('input element should have the prop aria-required when there is a rule with required', () => {
219
+ var _a;
220
+ const { container } = render(React.createElement(Form, null,
221
+ React.createElement(Form.Item, { name: "test", rules: [{ required: true }] },
222
+ React.createElement("input", null))));
223
+ expect((_a = container.querySelector('input')) === null || _a === void 0 ? void 0 : _a.getAttribute('aria-required')).toBe('true');
224
+ });
225
+ it('input element should have the prop aria-describedby pointing to the extra id when there is a extra message', () => {
226
+ var _a, _b;
227
+ const { container } = render(React.createElement(Form, null,
228
+ React.createElement(Form.Item, { name: "test", extra: "This is a extra message" },
229
+ React.createElement("input", null))));
230
+ expect((_a = container.querySelector('input')) === null || _a === void 0 ? void 0 : _a.getAttribute('aria-describedby')).toBe('test_extra');
231
+ expect((_b = container.querySelector('.ant-form-item-extra')) === null || _b === void 0 ? void 0 : _b.id).toBe('test_extra');
232
+ });
233
+ 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', () => {
234
+ var _a, _b;
235
+ const { container } = render(React.createElement(Form, null,
236
+ React.createElement(Form.Item, { extra: "This is a extra message" },
237
+ React.createElement("input", null))));
238
+ expect((_a = container.querySelector('input')) === null || _a === void 0 ? void 0 : _a.getAttribute('aria-describedby')).toBeFalsy();
239
+ expect((_b = container.querySelector('.ant-form-item-extra')) === null || _b === void 0 ? void 0 : _b.id).toBeFalsy();
240
+ });
241
+ it('input element should have the prop aria-describedby pointing to the help and extra id when there is a help and extra message', () => {
242
+ var _a;
243
+ const { container } = render(React.createElement(Form, null,
244
+ React.createElement(Form.Item, { name: "test", help: "This is a help", extra: "This is a extra message" },
245
+ React.createElement("input", null))));
246
+ expect((_a = container.querySelector('input')) === null || _a === void 0 ? void 0 : _a.getAttribute('aria-describedby')).toBe('test_help test_extra');
247
+ });
248
+ describe('scrollToField', () => {
249
+ const test = (name, genForm) => {
250
+ it(name, () => {
251
+ let callGetForm;
252
+ const Demo = () => {
253
+ const { props, getForm } = genForm();
254
+ callGetForm = getForm;
255
+ return (React.createElement(Form, Object.assign({ name: "scroll" }, props),
256
+ React.createElement(Form.Item, { name: "test" },
257
+ React.createElement(Input, null))));
258
+ };
259
+ render(React.createElement(Demo, null));
260
+ expect(scrollIntoView).not.toHaveBeenCalled();
261
+ const form = callGetForm();
262
+ form.scrollToField('test', {
263
+ block: 'start',
264
+ });
265
+ const inputNode = document.getElementById('scroll_test');
266
+ expect(scrollIntoView).toHaveBeenCalledWith(inputNode, {
267
+ block: 'start',
268
+ scrollMode: 'if-needed',
269
+ });
270
+ });
271
+ };
272
+ // hooks
273
+ test('useForm', () => {
274
+ const [form] = Form.useForm();
275
+ return {
276
+ props: { form },
277
+ getForm: () => form,
278
+ };
279
+ });
280
+ // ref
281
+ test('ref', () => {
282
+ let form;
283
+ return {
284
+ props: {
285
+ ref: (instance) => {
286
+ form = instance;
287
+ },
288
+ },
289
+ getForm: () => form,
290
+ };
291
+ });
292
+ });
293
+ it('scrollToFirstError', async () => {
294
+ const onFinishFailed = jest.fn();
295
+ const { container } = render(React.createElement(Form, { scrollToFirstError: { block: 'center' }, onFinishFailed: onFinishFailed },
296
+ React.createElement(Form.Item, { name: "test", rules: [{ required: true }] },
297
+ React.createElement("input", null)),
298
+ React.createElement(Form.Item, null,
299
+ React.createElement(Button, { htmlType: "submit" }, "Submit"))));
300
+ expect(scrollIntoView).not.toHaveBeenCalled();
301
+ fireEvent.submit(container.querySelector('form'));
302
+ await waitFakeTimer();
303
+ const inputNode = document.getElementById('test');
304
+ expect(scrollIntoView).toHaveBeenCalledWith(inputNode, {
305
+ block: 'center',
306
+ scrollMode: 'if-needed',
307
+ });
308
+ expect(onFinishFailed).toHaveBeenCalled();
309
+ });
310
+ it('Form.Item should support data-*、aria-* and custom attribute', () => {
311
+ const { container } = render(React.createElement(Form, null,
312
+ React.createElement(Form.Item, { "data-text": "123", "aria-hidden": "true", cccc: "bbbb" }, "text")));
313
+ expect(container.firstChild).toMatchSnapshot();
314
+ });
315
+ it('warning when use `name` but children is not validate element', () => {
316
+ render(React.createElement(Form, null,
317
+ React.createElement(Form.Item, { name: "warning" }, "text")));
318
+ expect(errorSpy).toHaveBeenCalledWith('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.');
319
+ });
320
+ it('dynamic change required', async () => {
321
+ const { container } = render(React.createElement(Form, null,
322
+ React.createElement(Form.Item, { label: "light", name: "light", valuePropName: "checked" },
323
+ React.createElement("input", { type: "checkbox" })),
324
+ React.createElement(Form.Item, { label: "bamboo", name: "bamboo", dependencies: ['light'], rules: [({ getFieldValue }) => ({ required: getFieldValue('light') })] },
325
+ React.createElement("input", null))));
326
+ // should not show alert by default
327
+ expect(container.querySelector('.ant-form-item-explain')).toBeFalsy();
328
+ // click to change the light field value to true
329
+ fireEvent.click(container.querySelector('input'));
330
+ await waitFakeTimer();
331
+ // user input something and clear
332
+ await changeValue(1, '1');
333
+ await changeValue(1, '');
334
+ // should show alert says that the field is required
335
+ expect(container.querySelector('.ant-form-item-explain-error')).toHaveTextContent("'bamboo' is required");
336
+ });
337
+ describe('should show related className when customize help', () => {
338
+ it('normal', async () => {
339
+ const { container } = render(React.createElement(Form, null,
340
+ React.createElement(Form.Item, { help: "good" },
341
+ React.createElement("input", null))));
342
+ await waitFakeTimer();
343
+ expect(container.querySelector('.ant-form-item-explain')).toHaveTextContent('good');
344
+ expect(container.querySelector('.ant-form-item-with-help')).toBeTruthy();
345
+ });
346
+ it('empty string', async () => {
347
+ const { container } = render(React.createElement(Form, null,
348
+ React.createElement(Form.Item, { help: "" },
349
+ React.createElement("input", null))));
350
+ await waitFakeTimer();
351
+ expect(container.querySelector('.ant-form-item-explain')).toHaveTextContent('');
352
+ expect(container.querySelector('.ant-form-item-with-help')).toBeTruthy();
353
+ });
354
+ });
355
+ it('warning when use v3 function', () => {
356
+ Form.create();
357
+ expect(errorSpy).toHaveBeenCalledWith('Warning: [antd: Form] antd v4 removed `Form.create`. Please remove or use `@ant-design/compatible` instead.');
358
+ });
359
+ // https://github.com/ant-design/ant-design/issues/20706
360
+ it('Error change should work', async () => {
361
+ var _a, _b;
362
+ const { container } = render(React.createElement(Form, null,
363
+ React.createElement(Form.Item, { name: "name", label: "test", rules: [
364
+ { required: true },
365
+ {
366
+ validator: (_, value) => {
367
+ if (value === 'p') {
368
+ return Promise.reject(new Error('not a p'));
369
+ }
370
+ return Promise.resolve();
371
+ },
372
+ },
373
+ ] },
374
+ React.createElement(Input, null))));
375
+ /* eslint-disable no-await-in-loop */
376
+ for (let i = 0; i < 3; i += 1) {
377
+ await changeValue(0, 'bamboo');
378
+ await changeValue(0, '');
379
+ expect((_a = container.querySelector('.ant-form-item-explain')) === null || _a === void 0 ? void 0 : _a.textContent).toEqual("'name' is required");
380
+ await changeValue(0, 'p');
381
+ expect((_b = container.querySelector('.ant-form-item-explain')) === null || _b === void 0 ? void 0 : _b.textContent).toEqual('not a p');
382
+ }
383
+ /* eslint-enable */
384
+ });
385
+ // https://github.com/ant-design/ant-design/issues/20813
386
+ it('should update help directly when provided', async () => {
387
+ const App = () => {
388
+ const [message, updateMessage] = React.useState('');
389
+ return (React.createElement(Form, null,
390
+ React.createElement(Form.Item, { label: "hello", help: message },
391
+ React.createElement(Input, null)),
392
+ React.createElement(Button, { onClick: () => updateMessage('bamboo') })));
393
+ };
394
+ const { container } = render(React.createElement(App, null));
395
+ // should show initial text
396
+ await waitFakeTimer();
397
+ expect(container.querySelector('.ant-form-item-explain')).toHaveTextContent('');
398
+ fireEvent.click(container.querySelector('button'));
399
+ // should show bamboo alert without opacity and hide first alert with opacity: 0
400
+ await waitFakeTimer();
401
+ expect(container.querySelector('.ant-form-item-explain')).toHaveTextContent('bamboo');
402
+ });
403
+ it('warning when use `dependencies` but `name` is empty & children is not a render props', () => {
404
+ render(React.createElement(Form, null,
405
+ React.createElement(Form.Item, { dependencies: [] }, "text")));
406
+ expect(errorSpy).toHaveBeenCalledWith('Warning: [antd: Form.Item] Must set `name` or use a render function when `dependencies` is set.');
407
+ });
408
+ // https://github.com/ant-design/ant-design/issues/20948
409
+ it('not repeat render when Form.Item is not a real Field', async () => {
410
+ const shouldNotRender = jest.fn();
411
+ const StaticInput = ({ id, value = '', }) => {
412
+ shouldNotRender();
413
+ return React.createElement("input", { id: id, value: value });
414
+ };
415
+ const shouldRender = jest.fn();
416
+ const DynamicInput = ({ value = '', id, }) => {
417
+ shouldRender();
418
+ return React.createElement("input", { id: id, value: value });
419
+ };
420
+ const formRef = React.createRef();
421
+ const { container } = pureRender(React.createElement(Form, { ref: formRef },
422
+ React.createElement(Form.Item, null,
423
+ React.createElement(StaticInput, null)),
424
+ React.createElement(Form.Item, { name: "light" },
425
+ React.createElement(DynamicInput, { id: "changed" }))));
426
+ await waitFakeTimer();
427
+ expect(container.querySelector('#changed').value).toEqual('');
428
+ expect(shouldNotRender).toHaveBeenCalledTimes(1);
429
+ expect(shouldRender).toHaveBeenCalledTimes(1);
430
+ formRef.current.setFieldsValue({ light: 'bamboo' });
431
+ await waitFakeTimer(100, 100);
432
+ expect(formRef.current.getFieldsValue()).toEqual({ light: 'bamboo' });
433
+ expect(container.querySelector('#changed').value).toEqual('bamboo');
434
+ expect(shouldNotRender).toHaveBeenCalledTimes(1);
435
+ expect(shouldRender).toHaveBeenCalledTimes(2);
436
+ });
437
+ it('empty help should also render', () => {
438
+ const { container } = render(React.createElement(Form.Item, { help: "" },
439
+ React.createElement("input", null)));
440
+ expect(container.querySelectorAll('.ant-form-item-explain').length).toBeTruthy();
441
+ });
442
+ it('Form.Item with `help` should display error style when validate failed', async () => {
443
+ const { container } = render(React.createElement(Form, null,
444
+ React.createElement(Form.Item, { name: "test", label: "test", help: "help", initialValue: "bamboo", rules: [{ required: true, message: 'message' }] },
445
+ React.createElement(Input, null))));
446
+ await changeValue(0, '');
447
+ expect(container.querySelector('.ant-form-item')).toHaveClass('ant-form-item-has-error');
448
+ expect(container.querySelector('.ant-form-item-explain').textContent).toEqual('help');
449
+ });
450
+ it('clear validation message when', async () => {
451
+ const { container } = render(React.createElement(Form, null,
452
+ React.createElement(Form.Item, { name: "test", label: "test", rules: [{ required: true, message: 'message' }] },
453
+ React.createElement(Input, null))));
454
+ await changeValue(0, '1');
455
+ expect(container.querySelectorAll('.ant-form-item-explain').length).toBeFalsy();
456
+ await changeValue(0, '');
457
+ expect(container.querySelectorAll('.ant-form-item-explain').length).toBeTruthy();
458
+ await changeValue(0, '123');
459
+ expect(container.querySelectorAll('.ant-form-item-explain').length).toBeFalsy();
460
+ });
461
+ // https://github.com/ant-design/ant-design/issues/21167
462
+ it('`require` without `name`', () => {
463
+ const { container } = render(React.createElement(Form.Item, { label: "test", name: "test", required: true },
464
+ React.createElement("input", null)));
465
+ // expect(screen.getByTitle('test')).toHaveClass('ant-form-item-required');
466
+ expect(container.querySelector('.ant-form-item-required')).toBeTruthy();
467
+ });
468
+ it('0 is a validate Field', () => {
469
+ render(React.createElement(Form.Item, { name: 0, label: "0" },
470
+ React.createElement("input", null)));
471
+ // if getByLabelText can get element, then it is a validate field with form control and label
472
+ expect(screen.getByLabelText('0')).toBeInTheDocument();
473
+ });
474
+ it('`null` triggers warning and is treated as `undefined`', () => {
475
+ render(React.createElement(Form.Item, { name: null, label: "test" },
476
+ React.createElement("input", null)));
477
+ // if getByLabelText can get element, then it is a validate field with form control and label
478
+ expect(screen.queryByLabelText('test')).not.toBeInTheDocument();
479
+ expect(errorSpy).toHaveBeenCalledWith('Warning: [antd: Form.Item] `null` is passed as `name` property');
480
+ });
481
+ // https://github.com/ant-design/ant-design/issues/21415
482
+ it('should not throw error when Component.props.onChange is null', async () => {
483
+ const CustomComponent = () => (React.createElement("input", { onChange: null }));
484
+ render(React.createElement(Form, null,
485
+ React.createElement(Form.Item, { name: "custom" },
486
+ React.createElement(CustomComponent, null))));
487
+ await changeValue(0, 'aaa');
488
+ });
489
+ it('change `help` should not warning', async () => {
490
+ const Demo = () => {
491
+ const [error, setError] = React.useState(false);
492
+ return (React.createElement(Form, null,
493
+ React.createElement(Form.Item, { help: error ? 'This is an error msg' : undefined, validateStatus: error ? 'error' : '', label: "Username", name: "username" },
494
+ React.createElement("input", null)),
495
+ React.createElement(Form.Item, null,
496
+ React.createElement("button", { type: "button", onClick: () => setError(!error) }, "Trigger"))));
497
+ };
498
+ const { container } = render(React.createElement(Demo, null));
499
+ fireEvent.click(container.querySelector('button'));
500
+ expect(errorSpy).not.toHaveBeenCalled();
501
+ });
502
+ it('`label` support template', async () => {
503
+ const { container } = render(
504
+ // eslint-disable-next-line no-template-curly-in-string
505
+ React.createElement(Form, { validateMessages: { required: '${label} is good!' } },
506
+ React.createElement(Form.Item, { name: "test", label: "Bamboo", rules: [{ required: true }] },
507
+ React.createElement("input", null))));
508
+ fireEvent.submit(container.querySelector('form'));
509
+ await waitFakeTimer();
510
+ expect(container.querySelector('.ant-form-item-explain-error')).toHaveTextContent('Bamboo is good!');
511
+ });
512
+ // https://github.com/ant-design/ant-design/issues/33691
513
+ it('should keep upper locale in nested ConfigProvider', async () => {
514
+ const { container } = render(React.createElement(ConfigProvider, { locale: zhCN },
515
+ React.createElement(ConfigProvider, null,
516
+ React.createElement(Form, null,
517
+ React.createElement(Form.Item, { name: "test", label: "Bamboo", rules: [{ required: true }] },
518
+ React.createElement("input", null))))));
519
+ fireEvent.submit(container.querySelector('form'));
520
+ await waitFakeTimer();
521
+ expect(container.querySelector('.ant-form-item-explain-error')).toHaveTextContent('请输入Bamboo');
522
+ });
523
+ it('`name` support template when label is not provided', async () => {
524
+ const { container } = render(
525
+ // eslint-disable-next-line no-template-curly-in-string
526
+ React.createElement(Form, { validateMessages: { required: '${label} is good!' } },
527
+ React.createElement(Form.Item, { name: "Bamboo", rules: [{ required: true }] },
528
+ React.createElement("input", null))));
529
+ fireEvent.submit(container.querySelector('form'));
530
+ await waitFakeTimer();
531
+ expect(container.querySelector('.ant-form-item-explain-error')).toHaveTextContent('Bamboo is good!');
532
+ });
533
+ it('`messageVariables` support validate', async () => {
534
+ const { container } = render(
535
+ // eslint-disable-next-line no-template-curly-in-string
536
+ React.createElement(Form, { validateMessages: { required: '${label} is good!' } },
537
+ React.createElement(Form.Item, { name: "test", messageVariables: { label: 'Bamboo' }, rules: [{ required: true }] },
538
+ React.createElement("input", null))));
539
+ fireEvent.submit(container.querySelector('form'));
540
+ await waitFakeTimer();
541
+ expect(container.querySelector('.ant-form-item-explain-error')).toHaveTextContent('Bamboo is good!');
542
+ });
543
+ it('validation message should has alert role', async () => {
544
+ // https://github.com/ant-design/ant-design/issues/25711
545
+ const { container } = render(
546
+ // eslint-disable-next-line no-template-curly-in-string
547
+ React.createElement(Form, { validateMessages: { required: 'name is good!' } },
548
+ React.createElement(Form.Item, { name: "test", rules: [{ required: true }] },
549
+ React.createElement("input", null)),
550
+ React.createElement(Form.Item, null,
551
+ React.createElement(Button, { htmlType: "submit" }, "Submit"))));
552
+ fireEvent.submit(container.querySelector('form'));
553
+ await waitFakeTimer();
554
+ expect(container.querySelector('.ant-form-item-explain-error')).toHaveTextContent('name is good!');
555
+ });
556
+ it('return same form instance', async () => {
557
+ const instances = new Set();
558
+ const App = () => {
559
+ const [form] = Form.useForm();
560
+ instances.add(form);
561
+ const [, forceUpdate] = React.useState({});
562
+ return (React.createElement("button", { type: "button", onClick: () => {
563
+ forceUpdate({});
564
+ } }, "Refresh"));
565
+ };
566
+ const { container } = pureRender(React.createElement(App, null));
567
+ for (let i = 0; i < 5; i += 1) {
568
+ fireEvent.click(container.querySelector('button'));
569
+ // eslint-disable-next-line no-await-in-loop
570
+ await waitFakeTimer();
571
+ }
572
+ expect(instances.size).toBe(1);
573
+ });
574
+ it('should avoid re-render', async () => {
575
+ let renderTimes = 0;
576
+ const MyInput = (_a) => {
577
+ var { value = '' } = _a, props = __rest(_a, ["value"]);
578
+ renderTimes += 1;
579
+ return React.createElement("input", Object.assign({ value: value }, props));
580
+ };
581
+ const Demo = () => (React.createElement(Form, null,
582
+ React.createElement(Form.Item, { name: "username", label: "username", rules: [{ required: true }] },
583
+ React.createElement(MyInput, null))));
584
+ const { container } = pureRender(React.createElement(Demo, null));
585
+ renderTimes = 0;
586
+ await changeValue(0, 'a');
587
+ expect(renderTimes).toEqual(1);
588
+ expect(container.querySelector('input')).toHaveValue('a');
589
+ });
590
+ it('should warning with `defaultValue`', () => {
591
+ render(React.createElement(Form, null,
592
+ React.createElement(Form.Item, { name: "light" },
593
+ React.createElement("input", { defaultValue: "should warning" }))));
594
+ expect(errorSpy).toHaveBeenCalledWith('Warning: [antd: Form.Item] `defaultValue` will not work on controlled Field. You should use `initialValues` of Form instead.');
595
+ });
596
+ it('should remove Field and also reset error', async () => {
597
+ const Demo = ({ showA }) => (React.createElement(Form, null, showA ? (React.createElement(Form.Item, { name: "a", help: "error" },
598
+ React.createElement("input", null))) : (React.createElement(Form.Item, { name: "b" },
599
+ React.createElement("input", null)))));
600
+ const { container, rerender } = render(React.createElement(Demo, { showA: true }));
601
+ await waitFakeTimer();
602
+ expect(container.querySelector('.ant-form-item-explain')).toBeTruthy();
603
+ rerender(React.createElement(Demo, { showA: false }));
604
+ await waitFakeTimer();
605
+ expect(container.querySelector('.ant-form-item-explain')).toBeFalsy();
606
+ });
607
+ it('no warning of initialValue & getValueProps & preserve', () => {
608
+ render(React.createElement(Form, null,
609
+ React.createElement(Form.Item, { initialValue: "bamboo", getValueProps: () => ({}), preserve: false },
610
+ React.createElement(Input, null))));
611
+ expect(errorSpy).not.toHaveBeenCalled();
612
+ });
613
+ it('should customize id when pass with id', () => {
614
+ const { container } = render(React.createElement(Form, null,
615
+ React.createElement(Form.Item, { name: "light" },
616
+ React.createElement(Input, { id: "bamboo" }))));
617
+ expect(container.querySelector('input').id).toEqual('bamboo');
618
+ });
619
+ it('should trigger validate when onBlur when pass validateTrigger onBlur', async () => {
620
+ const { container } = render(React.createElement(Form, { validateTrigger: "onBlur" },
621
+ React.createElement(Form.Item, { name: "light", label: "light", rules: [{ len: 3 }] },
622
+ React.createElement(Input, null))));
623
+ // type a invalidate value, not trigger validation
624
+ await changeValue(0, '7777');
625
+ expect(container.querySelector('.ant-form-item-explain')).toBeFalsy();
626
+ // tab(onBlur) the input field, trigger and see the alert
627
+ fireEvent.blur(container.querySelector('input'));
628
+ await waitFakeTimer();
629
+ expect(container.querySelector('.ant-form-item-explain')).toBeTruthy();
630
+ });
631
+ describe('Form item hidden', () => {
632
+ it('should work', () => {
633
+ const { container } = render(React.createElement(Form, null,
634
+ React.createElement(Form.Item, { name: "light", hidden: true },
635
+ React.createElement(Input, null))));
636
+ expect(container.firstChild).toMatchSnapshot();
637
+ });
638
+ it('noStyle should not work when hidden', () => {
639
+ const { container } = render(React.createElement(Form, null,
640
+ React.createElement(Form.Item, { name: "light", hidden: true, noStyle: true },
641
+ React.createElement(Input, null))));
642
+ expect(container.firstChild).toMatchSnapshot();
643
+ });
644
+ });
645
+ it('legacy hideRequiredMark', () => {
646
+ const { container } = render(React.createElement(Form, { hideRequiredMark: true, role: "form" },
647
+ React.createElement(Form.Item, { name: "light", label: "light", required: true },
648
+ React.createElement(Input, null))));
649
+ expect(container.querySelector('form')).toHaveClass('ant-form-hide-required-mark');
650
+ });
651
+ it('form should support disabled', () => {
652
+ const App = () => (React.createElement(Form, { labelCol: { span: 4 }, wrapperCol: { span: 14 }, layout: "horizontal", disabled: true },
653
+ React.createElement(Form.Item, { label: "Form disabled", name: "disabled", valuePropName: "checked" },
654
+ React.createElement(Checkbox, null, "disabled")),
655
+ React.createElement(Form.Item, { label: "Radio" },
656
+ React.createElement(Radio.Group, null,
657
+ React.createElement(Radio, { value: "apple" }, "Apple"),
658
+ React.createElement(Radio, { value: "pear" }, "Pear"))),
659
+ React.createElement(Form.Item, { label: "Input" },
660
+ React.createElement(Input, null)),
661
+ React.createElement(Form.Item, { label: "Select" },
662
+ React.createElement(Select, null,
663
+ React.createElement(Select.Option, { value: "demo" }, "Demo"))),
664
+ React.createElement(Form.Item, { label: "TreeSelect" },
665
+ React.createElement(TreeSelect, { treeData: [
666
+ {
667
+ title: 'Light',
668
+ value: 'light',
669
+ children: [{ title: 'Bamboo', value: 'bamboo' }],
670
+ },
671
+ ] })),
672
+ React.createElement(Form.Item, { label: "Cascader" },
673
+ React.createElement(Cascader, { options: [
674
+ {
675
+ value: 'zhejiang',
676
+ label: 'Zhejiang',
677
+ children: [{ value: 'hangzhou', label: 'Hangzhou' }],
678
+ },
679
+ ] })),
680
+ React.createElement(Form.Item, { label: "DatePicker" },
681
+ React.createElement(DatePicker, null)),
682
+ React.createElement(Form.Item, { label: "RangePicker" },
683
+ React.createElement(RangePicker, null)),
684
+ React.createElement(Form.Item, { label: "InputNumber" },
685
+ React.createElement(InputNumber, null)),
686
+ React.createElement(Form.Item, { label: "TextArea" },
687
+ React.createElement(TextArea, { rows: 4 })),
688
+ React.createElement(Form.Item, { label: "Switch", valuePropName: "checked" },
689
+ React.createElement(Switch, null)),
690
+ React.createElement(Form.Item, { label: "Upload", valuePropName: "fileList" },
691
+ React.createElement(Upload, null)),
692
+ React.createElement(Form.Item, { label: "Button" },
693
+ React.createElement(Button, null, "Button"))));
694
+ const { container } = render(React.createElement(App, null));
695
+ expect(container.firstChild).toMatchSnapshot();
696
+ });
697
+ it('_internalItemRender api test', () => {
698
+ const { container } = render(React.createElement(Form, null,
699
+ React.createElement(Form.Item, { name: "light",
700
+ // @ts-ignore
701
+ _internalItemRender: {
702
+ mark: 'pro_table_render',
703
+ render: (_, doms) => (React.createElement("div", null,
704
+ React.createElement("h1", null, "warning title"),
705
+ doms.input,
706
+ doms.errorList,
707
+ doms.extra)),
708
+ } },
709
+ React.createElement("input", { defaultValue: "should warning" }))));
710
+ expect(container.querySelector('h1')).toHaveTextContent(/warning title/i);
711
+ });
712
+ 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 () => {
713
+ const mockFn = jest.spyOn(Util, 'getFieldId');
714
+ const itemName = 'parentNode';
715
+ // mock getFieldId old logic,if form name is empty ,and item name is parentNode,will get parentNode
716
+ mockFn.mockImplementation(() => itemName);
717
+ const { Option } = Select;
718
+ const Demo = () => {
719
+ const [open, setOpen] = useState(false);
720
+ return (React.createElement(React.Fragment, null,
721
+ React.createElement(Form, null,
722
+ React.createElement(Form.Item, { name: itemName, label: itemName },
723
+ React.createElement(Select, { className: "form_item_parentNode", defaultValue: "lucy", open: open, style: { width: 120 } },
724
+ React.createElement(Option, { value: "jack" }, "Jack"),
725
+ React.createElement(Option, { value: "lucy" }, "Lucy"),
726
+ React.createElement(Option, { value: "Yiminghe" }, "yiminghe")))),
727
+ React.createElement("button", { type: "button", onClick: () => {
728
+ setOpen(true);
729
+ } }, open ? 'show' : 'hidden')));
730
+ };
731
+ const { container, rerender } = render(React.createElement(Demo, null));
732
+ expect(mockFn).toHaveBeenCalled();
733
+ expect(Util.getFieldId()).toBe(itemName);
734
+ // make sure input id is parentNode
735
+ expect(screen.getByLabelText(itemName)).toHaveAccessibleName(itemName);
736
+ fireEvent.click(container.querySelector('button'));
737
+ await waitFakeTimer();
738
+ expect(container.querySelector('button')).toHaveTextContent('show');
739
+ mockFn.mockRestore();
740
+ rerender(React.createElement(Demo, null));
741
+ expect(screen.getByLabelText(itemName)).toBeInTheDocument();
742
+ });
743
+ describe('tooltip', () => {
744
+ it('ReactNode', async () => {
745
+ const { container } = render(React.createElement(Form, null,
746
+ React.createElement(Form.Item, { label: "light", tooltip: React.createElement("span", null, "Bamboo") },
747
+ React.createElement(Input, null))));
748
+ fireEvent.mouseEnter(container.querySelector('.anticon-question-circle'));
749
+ await waitFakeTimer();
750
+ expect(container.querySelector('.ant-tooltip-inner')).toHaveTextContent('Bamboo');
751
+ });
752
+ it('config tooltip should show when hover on icon', async () => {
753
+ const { container } = render(React.createElement(Form, null,
754
+ React.createElement(Form.Item, { label: "light", tooltip: { title: 'Bamboo' } },
755
+ React.createElement(Input, null))));
756
+ fireEvent.mouseEnter(container.querySelector('.anticon-question-circle'));
757
+ await waitFakeTimer();
758
+ expect(container.querySelector('.ant-tooltip-inner')).toHaveTextContent('Bamboo');
759
+ });
760
+ });
761
+ it('warningOnly validate', async () => {
762
+ const { container } = render(React.createElement(Form, null,
763
+ React.createElement(Form.Item, null,
764
+ React.createElement(Form.Item, { name: "test", label: "test", initialValue: "bamboo", rules: [{ required: true, warningOnly: true }] },
765
+ React.createElement(Input, null)))));
766
+ await changeValue(0, 'test');
767
+ await changeValue(0, '');
768
+ expect(container.querySelector('.ant-form-item-with-help')).toBeTruthy();
769
+ expect(container.querySelector('.ant-form-item-has-warning')).toBeTruthy();
770
+ });
771
+ it('not warning when remove on validate', async () => {
772
+ let rejectFn = jest.fn();
773
+ const { unmount } = render(React.createElement(Form, null,
774
+ React.createElement(Form.Item, null,
775
+ React.createElement(Form.Item, { noStyle: true, name: "test", initialValue: "bamboo", rules: [
776
+ {
777
+ validator: () => new Promise((_, reject) => {
778
+ rejectFn = reject;
779
+ }),
780
+ },
781
+ ] },
782
+ React.createElement(Input, null)))));
783
+ await changeValue(0, '');
784
+ unmount();
785
+ // Delay validate failed
786
+ rejectFn(new Error('delay failed'));
787
+ expect(errorSpy).not.toHaveBeenCalled();
788
+ });
789
+ describe('form colon', () => {
790
+ it('default colon', () => {
791
+ render(React.createElement(Form, null,
792
+ React.createElement(Form.Item, { label: "\u59D3\u540D", name: "\u59D3\u540D" },
793
+ React.createElement("input", null))));
794
+ expect(screen.getByText('姓名')).not.toHaveClass('ant-form-item-no-colon');
795
+ });
796
+ it('set Form.Item colon false', () => {
797
+ render(React.createElement(Form, { colon: true },
798
+ React.createElement(Form.Item, { colon: false, label: "\u59D3\u540D", name: "\u59D3\u540D" },
799
+ React.createElement(Input, null))));
800
+ expect(screen.getByText('姓名')).toHaveClass('ant-form-item-no-colon');
801
+ });
802
+ it('set Form colon false', () => {
803
+ render(React.createElement(Form, { colon: false },
804
+ React.createElement(Form.Item, { label: "\u59D3\u540D", name: "\u59D3\u540D" },
805
+ React.createElement(Input, null))));
806
+ expect(screen.getByText('姓名')).toHaveClass('ant-form-item-no-colon');
807
+ });
808
+ });
809
+ it('useFormInstance', () => {
810
+ let formInstance;
811
+ let subFormInstance;
812
+ const Sub = () => {
813
+ const formSub = Form.useFormInstance();
814
+ subFormInstance = formSub;
815
+ return null;
816
+ };
817
+ const Demo = () => {
818
+ const [form] = Form.useForm();
819
+ formInstance = form;
820
+ return (React.createElement(Form, { form: form },
821
+ React.createElement(Sub, null)));
822
+ };
823
+ render(React.createElement(Demo, null));
824
+ expect(subFormInstance).toBe(formInstance);
825
+ });
826
+ it('noStyle should not affect status', () => {
827
+ var _a, _b, _c, _d, _e, _f, _g, _h;
828
+ const Demo = () => (React.createElement(Form, null,
829
+ React.createElement(Form.Item, { validateStatus: "error", noStyle: true },
830
+ React.createElement(Select, { className: "custom-select" })),
831
+ React.createElement(Form.Item, { validateStatus: "error" },
832
+ React.createElement(Form.Item, { noStyle: true },
833
+ React.createElement(Select, { className: "custom-select-b" }))),
834
+ React.createElement(Form.Item, { validateStatus: "error" },
835
+ React.createElement(Form.Item, { noStyle: true, validateStatus: "warning" },
836
+ React.createElement(Select, { className: "custom-select-c" }))),
837
+ React.createElement(Form.Item, { noStyle: true },
838
+ React.createElement(Form.Item, { validateStatus: "warning" },
839
+ React.createElement(Select, { className: "custom-select-d" })))));
840
+ const { container } = render(React.createElement(Demo, null));
841
+ expect((_a = container.querySelector('.custom-select')) === null || _a === void 0 ? void 0 : _a.className).not.toContain('status-error');
842
+ expect((_b = container.querySelector('.custom-select')) === null || _b === void 0 ? void 0 : _b.className).not.toContain('in-form-item');
843
+ expect((_c = container.querySelector('.custom-select-b')) === null || _c === void 0 ? void 0 : _c.className).toContain('status-error');
844
+ expect((_d = container.querySelector('.custom-select-b')) === null || _d === void 0 ? void 0 : _d.className).toContain('in-form-item');
845
+ expect((_e = container.querySelector('.custom-select-c')) === null || _e === void 0 ? void 0 : _e.className).toContain('status-error');
846
+ expect((_f = container.querySelector('.custom-select-c')) === null || _f === void 0 ? void 0 : _f.className).toContain('in-form-item');
847
+ expect((_g = container.querySelector('.custom-select-d')) === null || _g === void 0 ? void 0 : _g.className).toContain('status-warning');
848
+ expect((_h = container.querySelector('.custom-select-d')) === null || _h === void 0 ? void 0 : _h.className).toContain('in-form-item');
849
+ });
850
+ it('should not affect Popup children style', () => {
851
+ var _a, _b, _c, _d;
852
+ const Demo = () => (React.createElement(Form, null,
853
+ React.createElement(Form.Item, { labelCol: 4, validateStatus: "error" },
854
+ React.createElement(Modal, { visible: true },
855
+ React.createElement(Select, { className: "modal-select" }))),
856
+ React.createElement(Form.Item, { validateStatus: "error" },
857
+ React.createElement(Drawer, { visible: true },
858
+ React.createElement(Select, { className: "drawer-select" })))));
859
+ const { container } = render(React.createElement(Demo, null), { container: document.body });
860
+ expect((_a = container.querySelector('.modal-select')) === null || _a === void 0 ? void 0 : _a.className).not.toContain('in-form-item');
861
+ expect((_b = container.querySelector('.modal-select')) === null || _b === void 0 ? void 0 : _b.className).not.toContain('status-error');
862
+ expect((_c = container.querySelector('.drawer-select')) === null || _c === void 0 ? void 0 : _c.className).not.toContain('in-form-item');
863
+ expect((_d = container.querySelector('.drawer-select')) === null || _d === void 0 ? void 0 : _d.className).not.toContain('status-error');
864
+ });
865
+ it('Form.Item.useStatus should work', async () => {
866
+ var _a, _b, _c, _d, _e;
867
+ const { Item: { useStatus }, } = Form;
868
+ const CustomInput = ({ className, value, }) => {
869
+ const { status } = useStatus();
870
+ return React.createElement("div", { className: classNames(className, `custom-input-status-${status}`) }, value);
871
+ };
872
+ const Demo = () => {
873
+ const [form] = Form.useForm();
874
+ return (React.createElement(Form, { form: form, name: "my-form" },
875
+ React.createElement(Form.Item, { name: "required", rules: [{ required: true }] },
876
+ React.createElement(CustomInput, { className: "custom-input-required", value: "" })),
877
+ React.createElement(Form.Item, { name: "warning", validateStatus: "warning" },
878
+ React.createElement(CustomInput, { className: "custom-input-warning" })),
879
+ React.createElement(Form.Item, { name: "normal" },
880
+ React.createElement(CustomInput, { className: "custom-input" })),
881
+ React.createElement(CustomInput, { className: "custom-input-wrong" }),
882
+ React.createElement(Button, { onClick: () => form.submit(), className: "submit-button" }, "Submit")));
883
+ };
884
+ const { container } = render(React.createElement(Demo, null));
885
+ expect((_a = container.querySelector('.custom-input-required')) === null || _a === void 0 ? void 0 : _a.classList).toContain('custom-input-status-');
886
+ expect((_b = container.querySelector('.custom-input-warning')) === null || _b === void 0 ? void 0 : _b.classList).toContain('custom-input-status-warning');
887
+ expect((_c = container.querySelector('.custom-input')) === null || _c === void 0 ? void 0 : _c.classList).toContain('custom-input-status-');
888
+ expect((_d = container.querySelector('.custom-input-wrong')) === null || _d === void 0 ? void 0 : _d.classList).toContain('custom-input-status-undefined');
889
+ expect(errorSpy).toHaveBeenCalledWith(expect.stringContaining('Form.Item.useStatus should be used under Form.Item component.'));
890
+ fireEvent.click(container.querySelector('.submit-button'));
891
+ await waitFakeTimer();
892
+ expect((_e = container.querySelector('.custom-input-required')) === null || _e === void 0 ? void 0 : _e.classList).toContain('custom-input-status-error');
893
+ });
894
+ it('item customize margin', async () => {
895
+ const computeSpy = jest
896
+ .spyOn(window, 'getComputedStyle')
897
+ .mockImplementation(() => ({ marginBottom: 24 }));
898
+ const { container } = render(React.createElement(Form, null,
899
+ React.createElement(Form.Item, { name: "required", initialValue: "bamboo", rules: [{ required: true }] },
900
+ React.createElement(Input, null))));
901
+ await changeValue(0, '');
902
+ computeSpy.mockRestore();
903
+ expect(container.querySelector('.ant-form-item-margin-offset')).toHaveStyle({
904
+ marginBottom: -24,
905
+ });
906
+ });
907
+ it('form child components should be given priority to own disabled props when it in a disabled form', () => {
908
+ const props = {
909
+ name: 'file',
910
+ action: 'https://www.mocky.io/v2/5cc8019d300000980a055e76',
911
+ headers: {
912
+ authorization: 'authorization-text',
913
+ },
914
+ capture: true,
915
+ };
916
+ const renderComps = (disabled) => [
917
+ React.createElement(Button, { key: "Button", disabled: disabled, type: "primary", htmlType: "submit" }, "test"),
918
+ React.createElement(Cascader, { key: "Cascader", disabled: disabled, options: [] }),
919
+ React.createElement(Checkbox, { key: "Checkbox", disabled: disabled }),
920
+ React.createElement(Checkbox.Group, { key: "CheckboxGroup", disabled: disabled, options: [
921
+ { label: 'male', value: 0 },
922
+ { label: 'female', value: 1 },
923
+ ] }),
924
+ React.createElement(InputNumber, { key: "InputNumber", disabled: disabled }),
925
+ React.createElement(Input, { key: "Input", disabled: disabled }),
926
+ React.createElement(Select, { key: "Select", disabled: disabled }),
927
+ React.createElement(Switch, { key: "Switch", disabled: disabled }),
928
+ React.createElement(TreeSelect, { key: "TreeSelect", disabled: disabled }),
929
+ React.createElement(Upload, Object.assign({ key: "Upload" }, props, { disabled: disabled }),
930
+ React.createElement(Button, { disabled: disabled }, "Click to Upload")),
931
+ React.createElement(DatePicker, { key: "DatePicker", disabled: disabled }),
932
+ React.createElement(DatePicker.RangePicker, { key: "DatePicker.RangePicker", disabled: disabled }),
933
+ React.createElement(DatePicker.MonthPicker, { key: "DatePicker.MonthPicker", disabled: disabled }),
934
+ React.createElement(DatePicker.QuarterPicker, { key: "DatePicker.QuarterPicker", disabled: disabled }),
935
+ React.createElement(DatePicker.WeekPicker, { key: "DatePicker.WeekPicker", disabled: disabled }),
936
+ React.createElement(DatePicker.YearPicker, { key: "DatePicker.YearPicker", disabled: disabled }),
937
+ React.createElement(DatePicker.TimePicker, { key: "DatePicker.TimePicker", disabled: disabled }),
938
+ ];
939
+ const App = () => React.createElement(Form, { disabled: true }, renderComps(false));
940
+ const wrapper = render(React.createElement(App, null));
941
+ expect(wrapper.container.querySelectorAll('[disabled]').length).toBe(0);
942
+ const App2 = () => React.createElement(Form, { disabled: true }, renderComps());
943
+ const wrapper2 = render(React.createElement(App2, null));
944
+ // 时间范围组件中会有两个 input 框,因此虽然上述只有 18 个组件,但,实际有 19 个 带有 disabled 属性的表单组件
945
+ expect(wrapper2.container.querySelectorAll('[disabled]').length).toBe(19);
946
+ const App3 = () => React.createElement(Form, { disabled: true }, renderComps(true));
947
+ const wrapper3 = render(React.createElement(App3, null));
948
+ expect(wrapper3.container.querySelectorAll('[disabled]').length).toBe(19);
949
+ const App4 = () => React.createElement(Form, null, renderComps(true));
950
+ const wrapper4 = render(React.createElement(App4, null));
951
+ expect(wrapper4.container.querySelectorAll('[disabled]').length).toBe(19);
952
+ const App5 = () => React.createElement(Form, null, renderComps());
953
+ const wrapper5 = render(React.createElement(App5, null));
954
+ expect(wrapper5.container.querySelectorAll('[disabled]').length).toBe(0);
955
+ });
956
+ });
957
+ //# sourceMappingURL=index.test.js.map