tntd 2.6.9 → 2.6.10

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 (446) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +72 -0
  3. package/es/actions/index.js +26 -0
  4. package/es/actions/index.js.map +1 -0
  5. package/es/actions/index.less +70 -0
  6. package/es/cascader/index.js +5 -1
  7. package/es/cascader/index.js.map +1 -1
  8. package/es/check-card/group.js +197 -0
  9. package/es/check-card/group.js.map +1 -0
  10. package/es/check-card/index.js +163 -0
  11. package/es/check-card/index.js.map +1 -0
  12. package/es/check-card/index.less +179 -0
  13. package/es/checkbox/checkbox-group.js +5 -0
  14. package/es/checkbox/checkbox-group.js.map +1 -0
  15. package/es/checkbox/index.js +5 -0
  16. package/es/checkbox/index.js.map +1 -1
  17. package/es/color-picker/ColorPicker.js +1 -1
  18. package/es/color-picker/ColorPicker.js.map +1 -1
  19. package/es/color-picker/index.less +1 -1
  20. package/es/config-provider/DisabledContext.js +12 -0
  21. package/es/config-provider/DisabledContext.js.map +1 -0
  22. package/es/config-provider/SizeContext.js +9 -0
  23. package/es/config-provider/SizeContext.js.map +1 -0
  24. package/es/config-provider/index.js +4 -0
  25. package/es/config-provider/index.js.map +1 -1
  26. package/es/connect/index.js +29 -0
  27. package/es/connect/index.js.map +1 -0
  28. package/es/date-picker/index.js +15 -1
  29. package/es/date-picker/index.js.map +1 -1
  30. package/es/ellipsis/index.js +1 -1
  31. package/es/ellipsis/index.js.map +1 -1
  32. package/es/ellipsis/index.less +1 -1
  33. package/es/handle/index.js +1 -1
  34. package/es/handle/index.js.map +1 -1
  35. package/es/handle/index.less +1 -1
  36. package/es/index.js +8 -1
  37. package/es/index.js.map +1 -1
  38. package/es/index.less +5 -0
  39. package/es/input/input.js +19 -10
  40. package/es/input/input.js.map +1 -1
  41. package/es/input-number/index.js +3 -1
  42. package/es/input-number/index.js.map +1 -1
  43. package/es/label/label.js +140 -0
  44. package/es/label/label.js.map +1 -0
  45. package/es/label/label.test.js +12 -0
  46. package/es/label/label.test.js.map +1 -0
  47. package/es/locale/en_US.js +4 -2
  48. package/es/locale/en_US.js.map +1 -1
  49. package/es/locale/zh_CN.js +4 -2
  50. package/es/locale/zh_CN.js.map +1 -1
  51. package/es/page/Box.js +1 -1
  52. package/es/page/Box.js.map +1 -1
  53. package/es/page/index.js +1 -1
  54. package/es/page/index.js.map +1 -1
  55. package/es/page/index.less +5 -5
  56. package/es/preview-text/index.js +265 -0
  57. package/es/preview-text/index.js.map +1 -0
  58. package/es/preview-text/index.less +3 -0
  59. package/es/radio/index.js +3 -0
  60. package/es/radio/index.js.map +1 -1
  61. package/es/radio/radio-group.js +5 -0
  62. package/es/radio/radio-group.js.map +1 -0
  63. package/es/segmented/index.js +67 -0
  64. package/es/segmented/index.js.map +1 -0
  65. package/es/segmented/index.less +138 -0
  66. package/es/select/index.js.map +1 -1
  67. package/es/select/select.js +25 -3
  68. package/es/select/select.js.map +1 -1
  69. package/es/switch/index.js +2 -3
  70. package/es/switch/index.js.map +1 -1
  71. package/es/switch/switch.js +10 -0
  72. package/es/switch/switch.js.map +1 -0
  73. package/es/table/table.js +10 -4
  74. package/es/table/table.js.map +1 -1
  75. package/es/table/total-shower.js +10 -0
  76. package/es/table/total-shower.js.map +1 -0
  77. package/es/time-picker/index.js +3 -1
  78. package/es/time-picker/index.js.map +1 -1
  79. package/es/title/index.js +9 -11
  80. package/es/title/index.js.map +1 -1
  81. package/es/title/index.less +10 -10
  82. package/es/tntd-form/ErrorList.js +87 -0
  83. package/es/tntd-form/ErrorList.js.map +1 -0
  84. package/es/tntd-form/Form.js +122 -0
  85. package/es/tntd-form/Form.js.map +1 -0
  86. package/es/tntd-form/FormItem/ItemHolder.js +144 -0
  87. package/es/tntd-form/FormItem/ItemHolder.js.map +1 -0
  88. package/es/tntd-form/FormItem/index.js +264 -0
  89. package/es/tntd-form/FormItem/index.js.map +1 -0
  90. package/es/tntd-form/FormItemInput.js +79 -0
  91. package/es/tntd-form/FormItemInput.js.map +1 -0
  92. package/es/tntd-form/FormItemLabel.js +98 -0
  93. package/es/tntd-form/FormItemLabel.js.map +1 -0
  94. package/es/tntd-form/FormList.js +40 -0
  95. package/es/tntd-form/FormList.js.map +1 -0
  96. package/es/tntd-form/_util/motion.js +47 -0
  97. package/es/tntd-form/_util/motion.js.map +1 -0
  98. package/es/tntd-form/_util/reactNode.js +16 -0
  99. package/es/tntd-form/_util/reactNode.js.map +1 -0
  100. package/es/tntd-form/_util/scrollTo.js +35 -0
  101. package/es/tntd-form/_util/scrollTo.js.map +1 -0
  102. package/es/tntd-form/_util/type.js +3 -0
  103. package/es/tntd-form/_util/type.js.map +1 -0
  104. package/es/tntd-form/_util/warning.js +5 -0
  105. package/es/tntd-form/_util/warning.js.map +1 -0
  106. package/es/tntd-form/_util/wave.js +168 -0
  107. package/es/tntd-form/_util/wave.js.map +1 -0
  108. package/es/tntd-form/context.js +40 -0
  109. package/es/tntd-form/context.js.map +1 -0
  110. package/es/tntd-form/hooks/useDebounce.js +13 -0
  111. package/es/tntd-form/hooks/useDebounce.js.map +1 -0
  112. package/es/tntd-form/hooks/useForm.js +40 -0
  113. package/es/tntd-form/hooks/useForm.js.map +1 -0
  114. package/es/tntd-form/hooks/useFormInstance.js +8 -0
  115. package/es/tntd-form/hooks/useFormInstance.js.map +1 -0
  116. package/es/tntd-form/hooks/useFormItemStatus.js +13 -0
  117. package/es/tntd-form/hooks/useFormItemStatus.js.map +1 -0
  118. package/es/tntd-form/hooks/useFrameState.js +37 -0
  119. package/es/tntd-form/hooks/useFrameState.js.map +1 -0
  120. package/es/tntd-form/hooks/useItemRef.js +20 -0
  121. package/es/tntd-form/hooks/useItemRef.js.map +1 -0
  122. package/es/tntd-form/index.js +17 -1
  123. package/es/tntd-form/index.js.map +1 -1
  124. package/es/tntd-form/interface.js +2 -0
  125. package/es/tntd-form/interface.js.map +1 -0
  126. package/es/tntd-form/style/components.less +16 -0
  127. package/es/tntd-form/style/horizontal.less +26 -0
  128. package/es/tntd-form/style/index.js +5 -0
  129. package/es/tntd-form/style/index.js.map +1 -0
  130. package/es/tntd-form/style/index.less +342 -0
  131. package/es/tntd-form/style/inline.less +40 -0
  132. package/es/tntd-form/style/mixin.less +90 -0
  133. package/es/tntd-form/style/rtl.less +204 -0
  134. package/es/tntd-form/style/status.less +45 -0
  135. package/es/tntd-form/style/vertical.less +95 -0
  136. package/es/tntd-form/tntd-form.stories.js +786 -0
  137. package/es/tntd-form/tntd-form.stories.js.map +1 -0
  138. package/es/tntd-form/util.js +18 -0
  139. package/es/tntd-form/util.js.map +1 -0
  140. package/es/tntd-form/validateMessagesContext.js +5 -0
  141. package/es/tntd-form/validateMessagesContext.js.map +1 -0
  142. package/es/tntd-modal/index.js +71 -56
  143. package/es/tntd-modal/index.js.map +1 -1
  144. package/es/tntd-modal/index.less +83 -63
  145. package/es/tree-select/index.js +4 -1
  146. package/es/tree-select/index.js.map +1 -1
  147. package/es/upload/index.js +8 -1
  148. package/es/upload/index.js.map +1 -1
  149. package/es/utils/index.js +1 -0
  150. package/es/utils/index.js.map +1 -1
  151. package/es/utils/simple-template.js +10 -0
  152. package/es/utils/simple-template.js.map +1 -0
  153. package/es/water-mark/index.js +110 -0
  154. package/es/water-mark/index.js.map +1 -0
  155. package/lib/actions/index.d.ts +15 -0
  156. package/lib/actions/index.d.ts.map +1 -0
  157. package/lib/actions/index.js +34 -0
  158. package/lib/actions/index.js.map +1 -0
  159. package/lib/actions/index.less +70 -0
  160. package/lib/cascader/index.d.ts +6 -1
  161. package/lib/cascader/index.d.ts.map +1 -1
  162. package/lib/cascader/index.js +10 -3
  163. package/lib/cascader/index.js.map +1 -1
  164. package/lib/check-card/group.d.ts +130 -0
  165. package/lib/check-card/group.d.ts.map +1 -0
  166. package/lib/check-card/group.js +236 -0
  167. package/lib/check-card/group.js.map +1 -0
  168. package/lib/check-card/index.d.ts +136 -0
  169. package/lib/check-card/index.d.ts.map +1 -0
  170. package/lib/check-card/index.js +178 -0
  171. package/lib/check-card/index.js.map +1 -0
  172. package/lib/check-card/index.less +179 -0
  173. package/lib/checkbox/checkbox-group.d.ts +8 -0
  174. package/lib/checkbox/checkbox-group.d.ts.map +1 -0
  175. package/lib/checkbox/checkbox-group.js +13 -0
  176. package/lib/checkbox/checkbox-group.js.map +1 -0
  177. package/lib/checkbox/index.d.ts +1 -0
  178. package/lib/checkbox/index.d.ts.map +1 -1
  179. package/lib/checkbox/index.js +16 -0
  180. package/lib/checkbox/index.js.map +1 -1
  181. package/lib/color-picker/ColorPicker.js +1 -1
  182. package/lib/color-picker/ColorPicker.js.map +1 -1
  183. package/lib/color-picker/index.less +1 -1
  184. package/lib/config-provider/DisabledContext.d.ts +10 -0
  185. package/lib/config-provider/DisabledContext.d.ts.map +1 -0
  186. package/lib/config-provider/DisabledContext.js +22 -0
  187. package/lib/config-provider/DisabledContext.js.map +1 -0
  188. package/lib/config-provider/SizeContext.d.ts +10 -0
  189. package/lib/config-provider/SizeContext.d.ts.map +1 -0
  190. package/lib/config-provider/SizeContext.js +23 -0
  191. package/lib/config-provider/SizeContext.js.map +1 -0
  192. package/lib/config-provider/index.d.ts +1 -0
  193. package/lib/config-provider/index.d.ts.map +1 -1
  194. package/lib/config-provider/index.js +15 -0
  195. package/lib/config-provider/index.js.map +1 -1
  196. package/lib/connect/index.d.ts +12 -0
  197. package/lib/connect/index.d.ts.map +1 -0
  198. package/lib/connect/index.js +50 -0
  199. package/lib/connect/index.js.map +1 -0
  200. package/lib/date-picker/index.d.ts +6 -1
  201. package/lib/date-picker/index.d.ts.map +1 -1
  202. package/lib/date-picker/index.js +29 -3
  203. package/lib/date-picker/index.js.map +1 -1
  204. package/lib/ellipsis/index.js +1 -1
  205. package/lib/ellipsis/index.js.map +1 -1
  206. package/lib/ellipsis/index.less +1 -1
  207. package/lib/handle/index.d.ts.map +1 -1
  208. package/lib/handle/index.js +1 -1
  209. package/lib/handle/index.js.map +1 -1
  210. package/lib/handle/index.less +1 -1
  211. package/lib/index.d.ts +7 -0
  212. package/lib/index.d.ts.map +1 -1
  213. package/lib/index.js +22 -0
  214. package/lib/index.js.map +1 -1
  215. package/lib/index.less +5 -0
  216. package/lib/input/input.d.ts +5 -0
  217. package/lib/input/input.d.ts.map +1 -1
  218. package/lib/input/input.js +18 -8
  219. package/lib/input/input.js.map +1 -1
  220. package/lib/input-number/index.d.ts +7 -2
  221. package/lib/input-number/index.d.ts.map +1 -1
  222. package/lib/input-number/index.js +4 -1
  223. package/lib/input-number/index.js.map +1 -1
  224. package/lib/label/label.d.ts +52 -0
  225. package/lib/label/label.d.ts.map +1 -0
  226. package/lib/label/label.js +150 -0
  227. package/lib/label/label.js.map +1 -0
  228. package/lib/label/label.test.d.ts +2 -0
  229. package/lib/label/label.test.d.ts.map +1 -0
  230. package/lib/label/label.test.js +14 -0
  231. package/lib/label/label.test.js.map +1 -0
  232. package/lib/locale/default.d.ts +1 -0
  233. package/lib/locale/default.d.ts.map +1 -1
  234. package/lib/locale/en_US.d.ts +1 -0
  235. package/lib/locale/en_US.d.ts.map +1 -1
  236. package/lib/locale/en_US.js +4 -2
  237. package/lib/locale/en_US.js.map +1 -1
  238. package/lib/locale/zh_CN.d.ts +1 -0
  239. package/lib/locale/zh_CN.d.ts.map +1 -1
  240. package/lib/locale/zh_CN.js +4 -2
  241. package/lib/locale/zh_CN.js.map +1 -1
  242. package/lib/page/Box.js +1 -1
  243. package/lib/page/Box.js.map +1 -1
  244. package/lib/page/index.js +1 -1
  245. package/lib/page/index.js.map +1 -1
  246. package/lib/page/index.less +5 -5
  247. package/lib/preview-text/index.d.ts +20 -0
  248. package/lib/preview-text/index.d.ts.map +1 -0
  249. package/lib/preview-text/index.js +278 -0
  250. package/lib/preview-text/index.js.map +1 -0
  251. package/lib/preview-text/index.less +3 -0
  252. package/lib/radio/index.d.ts.map +1 -1
  253. package/lib/radio/index.js +4 -0
  254. package/lib/radio/index.js.map +1 -1
  255. package/lib/radio/radio-group.d.ts +8 -0
  256. package/lib/radio/radio-group.d.ts.map +1 -0
  257. package/lib/radio/radio-group.js +13 -0
  258. package/lib/radio/radio-group.js.map +1 -0
  259. package/lib/segmented/index.d.ts +23 -0
  260. package/lib/segmented/index.d.ts.map +1 -0
  261. package/lib/segmented/index.js +80 -0
  262. package/lib/segmented/index.js.map +1 -0
  263. package/lib/segmented/index.less +138 -0
  264. package/lib/select/index.d.ts +2 -1
  265. package/lib/select/index.d.ts.map +1 -1
  266. package/lib/select/index.js.map +1 -1
  267. package/lib/select/select.d.ts +12 -0
  268. package/lib/select/select.d.ts.map +1 -1
  269. package/lib/select/select.js +25 -4
  270. package/lib/select/select.js.map +1 -1
  271. package/lib/svg-components/illustration-403.d.ts +1 -1
  272. package/lib/svg-components/illustration-404.d.ts +1 -1
  273. package/lib/svg-components/illustration-500.d.ts +1 -1
  274. package/lib/svg-components/illustration-empty.d.ts +1 -1
  275. package/lib/svg-components/illustration-failure.d.ts +1 -1
  276. package/lib/svg-components/illustration-no-access.d.ts +1 -1
  277. package/lib/svg-components/illustration-no-chart.d.ts +1 -1
  278. package/lib/svg-components/illustration-no-result.d.ts +1 -1
  279. package/lib/svg-components/illustration-offline.d.ts +1 -1
  280. package/lib/svg-components/illustration-success.d.ts +1 -1
  281. package/lib/switch/index.d.ts +2 -3
  282. package/lib/switch/index.d.ts.map +1 -1
  283. package/lib/switch/index.js +1 -2
  284. package/lib/switch/index.js.map +1 -1
  285. package/lib/switch/switch.d.ts +10 -0
  286. package/lib/switch/switch.d.ts.map +1 -0
  287. package/lib/switch/switch.js +37 -0
  288. package/lib/switch/switch.js.map +1 -0
  289. package/lib/table/assets/image-loading-background.d.ts +1 -1
  290. package/lib/table/assets/image-loading.d.ts +1 -1
  291. package/lib/table/table.d.ts.map +1 -1
  292. package/lib/table/table.js +14 -7
  293. package/lib/table/table.js.map +1 -1
  294. package/lib/table/total-shower.d.ts +9 -0
  295. package/lib/table/total-shower.d.ts.map +1 -0
  296. package/lib/table/total-shower.js +17 -0
  297. package/lib/table/total-shower.js.map +1 -0
  298. package/lib/time-picker/index.d.ts +7 -2
  299. package/lib/time-picker/index.d.ts.map +1 -1
  300. package/lib/time-picker/index.js +3 -1
  301. package/lib/time-picker/index.js.map +1 -1
  302. package/lib/title/index.d.ts +11 -1
  303. package/lib/title/index.d.ts.map +1 -1
  304. package/lib/title/index.js +8 -10
  305. package/lib/title/index.js.map +1 -1
  306. package/lib/title/index.less +10 -10
  307. package/lib/tntd-cascader/AntdCascader/config/utils.d.ts +1 -1
  308. package/lib/tntd-form/ErrorList.d.ts +13 -0
  309. package/lib/tntd-form/ErrorList.d.ts.map +1 -0
  310. package/lib/tntd-form/ErrorList.js +104 -0
  311. package/lib/tntd-form/ErrorList.js.map +1 -0
  312. package/lib/tntd-form/Form.d.ts +36 -0
  313. package/lib/tntd-form/Form.d.ts.map +1 -0
  314. package/lib/tntd-form/Form.js +160 -0
  315. package/lib/tntd-form/Form.js.map +1 -0
  316. package/lib/tntd-form/FormItem/ItemHolder.d.ts +18 -0
  317. package/lib/tntd-form/FormItem/ItemHolder.d.ts.map +1 -0
  318. package/lib/tntd-form/FormItem/ItemHolder.js +163 -0
  319. package/lib/tntd-form/FormItem/ItemHolder.js.map +1 -0
  320. package/lib/tntd-form/FormItem/index.d.ts +36 -0
  321. package/lib/tntd-form/FormItem/index.d.ts.map +1 -0
  322. package/lib/tntd-form/FormItem/index.js +301 -0
  323. package/lib/tntd-form/FormItem/index.js.map +1 -0
  324. package/lib/tntd-form/FormItemInput.d.ts +30 -0
  325. package/lib/tntd-form/FormItemInput.d.ts.map +1 -0
  326. package/lib/tntd-form/FormItemInput.js +92 -0
  327. package/lib/tntd-form/FormItemInput.js.map +1 -0
  328. package/lib/tntd-form/FormItemLabel.d.ts +24 -0
  329. package/lib/tntd-form/FormItemLabel.d.ts.map +1 -0
  330. package/lib/tntd-form/FormItemLabel.js +106 -0
  331. package/lib/tntd-form/FormItemLabel.js.map +1 -0
  332. package/lib/tntd-form/FormList.d.ts +26 -0
  333. package/lib/tntd-form/FormList.d.ts.map +1 -0
  334. package/lib/tntd-form/FormList.js +56 -0
  335. package/lib/tntd-form/FormList.js.map +1 -0
  336. package/lib/tntd-form/_util/motion.d.ts +9 -0
  337. package/lib/tntd-form/_util/motion.d.ts.map +1 -0
  338. package/lib/tntd-form/_util/motion.js +59 -0
  339. package/lib/tntd-form/_util/motion.js.map +1 -0
  340. package/lib/tntd-form/_util/reactNode.d.ts +9 -0
  341. package/lib/tntd-form/_util/reactNode.d.ts.map +1 -0
  342. package/lib/tntd-form/_util/reactNode.js +27 -0
  343. package/lib/tntd-form/_util/reactNode.js.map +1 -0
  344. package/lib/tntd-form/_util/scrollTo.d.ts +1 -0
  345. package/lib/tntd-form/_util/scrollTo.d.ts.map +1 -0
  346. package/lib/tntd-form/_util/scrollTo.js +35 -0
  347. package/lib/tntd-form/_util/scrollTo.js.map +1 -0
  348. package/lib/tntd-form/_util/type.d.ts +4 -0
  349. package/lib/tntd-form/_util/type.d.ts.map +1 -0
  350. package/lib/tntd-form/_util/type.js +21 -0
  351. package/lib/tntd-form/_util/type.js.map +1 -0
  352. package/lib/tntd-form/_util/warning.d.ts +5 -0
  353. package/lib/tntd-form/_util/warning.d.ts.map +1 -0
  354. package/lib/tntd-form/_util/warning.js +20 -0
  355. package/lib/tntd-form/_util/warning.js.map +1 -0
  356. package/lib/tntd-form/_util/wave.d.ts +1 -0
  357. package/lib/tntd-form/_util/wave.d.ts.map +1 -0
  358. package/lib/tntd-form/_util/wave.js +168 -0
  359. package/lib/tntd-form/_util/wave.js.map +1 -0
  360. package/lib/tntd-form/context.d.ts +51 -0
  361. package/lib/tntd-form/context.d.ts.map +1 -0
  362. package/lib/tntd-form/context.js +54 -0
  363. package/lib/tntd-form/context.js.map +1 -0
  364. package/lib/tntd-form/hooks/useDebounce.d.ts +2 -0
  365. package/lib/tntd-form/hooks/useDebounce.d.ts.map +1 -0
  366. package/lib/tntd-form/hooks/useDebounce.js +31 -0
  367. package/lib/tntd-form/hooks/useDebounce.js.map +1 -0
  368. package/lib/tntd-form/hooks/useForm.d.ts +16 -0
  369. package/lib/tntd-form/hooks/useForm.d.ts.map +1 -0
  370. package/lib/tntd-form/hooks/useForm.js +63 -0
  371. package/lib/tntd-form/hooks/useForm.js.map +1 -0
  372. package/lib/tntd-form/hooks/useFormInstance.d.ts +3 -0
  373. package/lib/tntd-form/hooks/useFormInstance.d.ts.map +1 -0
  374. package/lib/tntd-form/hooks/useFormInstance.js +13 -0
  375. package/lib/tntd-form/hooks/useFormInstance.js.map +1 -0
  376. package/lib/tntd-form/hooks/useFormItemStatus.d.ts +7 -0
  377. package/lib/tntd-form/hooks/useFormItemStatus.d.ts.map +1 -0
  378. package/lib/tntd-form/hooks/useFormItemStatus.js +20 -0
  379. package/lib/tntd-form/hooks/useFormItemStatus.js.map +1 -0
  380. package/lib/tntd-form/hooks/useFrameState.d.ts +4 -0
  381. package/lib/tntd-form/hooks/useFrameState.d.ts.map +1 -0
  382. package/lib/tntd-form/hooks/useFrameState.js +55 -0
  383. package/lib/tntd-form/hooks/useFrameState.js.map +1 -0
  384. package/lib/tntd-form/hooks/useItemRef.d.ts +4 -0
  385. package/lib/tntd-form/hooks/useItemRef.d.ts.map +1 -0
  386. package/lib/tntd-form/hooks/useItemRef.js +28 -0
  387. package/lib/tntd-form/hooks/useItemRef.js.map +1 -0
  388. package/lib/tntd-form/index.d.ts +23 -1
  389. package/lib/tntd-form/index.d.ts.map +1 -1
  390. package/lib/tntd-form/index.js +24 -8
  391. package/lib/tntd-form/index.js.map +1 -1
  392. package/lib/tntd-form/interface.d.ts +4 -0
  393. package/lib/tntd-form/interface.d.ts.map +1 -0
  394. package/lib/tntd-form/interface.js +7 -0
  395. package/lib/tntd-form/interface.js.map +1 -0
  396. package/lib/tntd-form/style/components.less +16 -0
  397. package/lib/tntd-form/style/horizontal.less +26 -0
  398. package/lib/tntd-form/style/index.d.ts +5 -0
  399. package/lib/tntd-form/style/index.d.ts.map +1 -0
  400. package/lib/tntd-form/style/index.js +6 -0
  401. package/lib/tntd-form/style/index.js.map +1 -0
  402. package/lib/tntd-form/style/index.less +342 -0
  403. package/lib/tntd-form/style/inline.less +40 -0
  404. package/lib/tntd-form/style/mixin.less +90 -0
  405. package/lib/tntd-form/style/rtl.less +204 -0
  406. package/lib/tntd-form/style/status.less +45 -0
  407. package/lib/tntd-form/style/vertical.less +95 -0
  408. package/lib/tntd-form/tntd-form.stories.d.ts +33 -0
  409. package/lib/tntd-form/tntd-form.stories.d.ts.map +1 -0
  410. package/lib/tntd-form/tntd-form.stories.js +888 -0
  411. package/lib/tntd-form/tntd-form.stories.js.map +1 -0
  412. package/lib/tntd-form/util.d.ts +4 -0
  413. package/lib/tntd-form/util.d.ts.map +1 -0
  414. package/lib/tntd-form/util.js +25 -0
  415. package/lib/tntd-form/util.js.map +1 -0
  416. package/lib/tntd-form/validateMessagesContext.d.ts +5 -0
  417. package/lib/tntd-form/validateMessagesContext.d.ts.map +1 -0
  418. package/lib/tntd-form/validateMessagesContext.js +12 -0
  419. package/lib/tntd-form/validateMessagesContext.js.map +1 -0
  420. package/lib/tntd-modal/index.d.ts +15 -2
  421. package/lib/tntd-modal/index.d.ts.map +1 -1
  422. package/lib/tntd-modal/index.js +76 -61
  423. package/lib/tntd-modal/index.js.map +1 -1
  424. package/lib/tntd-modal/index.less +83 -63
  425. package/lib/tree-select/index.d.ts +7 -1
  426. package/lib/tree-select/index.d.ts.map +1 -1
  427. package/lib/tree-select/index.js +9 -3
  428. package/lib/tree-select/index.js.map +1 -1
  429. package/lib/upload/index.d.ts +6 -1
  430. package/lib/upload/index.d.ts.map +1 -1
  431. package/lib/upload/index.js +11 -1
  432. package/lib/upload/index.js.map +1 -1
  433. package/lib/utils/index.d.ts +1 -0
  434. package/lib/utils/index.d.ts.map +1 -1
  435. package/lib/utils/index.js +12 -0
  436. package/lib/utils/index.js.map +1 -1
  437. package/lib/utils/simple-template.d.ts +9 -0
  438. package/lib/utils/simple-template.d.ts.map +1 -0
  439. package/lib/utils/simple-template.js +19 -0
  440. package/lib/utils/simple-template.js.map +1 -0
  441. package/lib/water-mark/index.d.ts +49 -0
  442. package/lib/water-mark/index.d.ts.map +1 -0
  443. package/lib/water-mark/index.js +142 -0
  444. package/lib/water-mark/index.js.map +1 -0
  445. package/package.json +26 -5
  446. package/themes/default/variables.less +43 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ItemHolder.js","sourceRoot":"","sources":["../../../src/tntd-form/FormItem/ItemHolder.tsx"],"names":[],"mappings":"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","sourcesContent":["import useLayoutEffect from 'rc-util/lib/hooks/useLayoutEffect'\nimport classNames from 'classnames'\nimport * as React from 'react'\nimport omit from 'rc-util/lib/omit'\nimport type { Meta } from 'rc-field-form/lib/interface'\nimport Row from '../../row'\nimport FormItemLabel from '../FormItemLabel'\nimport FormItemInput from '../FormItemInput'\nimport type { FormItemStatusContextProps, ReportMetaChange } from '../context'\nimport { FormContext, FormItemInputContext, NoStyleItemContext } from '../context'\nimport type { FormItemProps, ValidateStatus } from '.'\nimport useDebounce from '../hooks/useDebounce'\nimport Icon from '../../icon'\n\nconst iconMap = {\n success: () => <Icon type=\"check-circle\" />,\n warning: () => <Icon type=\"exclamation-circle\" />,\n error: () => <Icon type=\"close-circle\" />,\n validating: () => <Icon type=\"loading\" />,\n}\n\nexport interface ItemHolderProps extends FormItemProps {\n prefixCls: string\n className?: string\n style?: React.CSSProperties\n errors: React.ReactNode[]\n warnings: React.ReactNode[]\n meta: Meta\n children?: React.ReactNode\n fieldId?: string\n isRequired?: boolean\n onSubItemMetaChange: ReportMetaChange\n}\n\nexport default function ItemHolder(props: ItemHolderProps) {\n const {\n prefixCls,\n className,\n style,\n help,\n errors,\n warnings,\n validateStatus,\n meta,\n hasFeedback,\n hidden,\n children,\n fieldId,\n isRequired,\n onSubItemMetaChange,\n ...restProps\n } = props\n\n const itemPrefixCls = `${prefixCls}-item`\n const { requiredMark } = React.useContext(FormContext)\n\n // ======================== Margin ========================\n const itemRef = React.useRef<HTMLDivElement>(null)\n const debounceErrors = useDebounce(errors)\n const debounceWarnings = useDebounce(warnings)\n const hasHelp = help !== undefined && help !== null\n const hasError = !!(hasHelp || errors.length || warnings.length)\n const [marginBottom, setMarginBottom] = React.useState<number | null>(null)\n\n useLayoutEffect(() => {\n if (hasError && itemRef.current) {\n const itemStyle = getComputedStyle(itemRef.current)\n setMarginBottom(parseInt(itemStyle.marginBottom, 10))\n }\n }, [hasError])\n\n const onErrorVisibleChanged = (nextVisible: boolean) => {\n if (!nextVisible) {\n setMarginBottom(null)\n }\n }\n\n // ======================== Status ========================\n let mergedValidateStatus: ValidateStatus = ''\n if (validateStatus !== undefined) {\n mergedValidateStatus = validateStatus\n } else if (meta.validating) {\n mergedValidateStatus = 'validating'\n } else if (debounceErrors.length) {\n mergedValidateStatus = 'error'\n } else if (debounceWarnings.length) {\n mergedValidateStatus = 'warning'\n } else if (meta.touched) {\n mergedValidateStatus = 'success'\n }\n\n const formItemStatusContext = React.useMemo<FormItemStatusContextProps>(() => {\n let feedbackIcon: React.ReactNode\n if (hasFeedback) {\n const IconNode = mergedValidateStatus && iconMap[mergedValidateStatus]\n feedbackIcon = IconNode ? (\n <span\n className={classNames(\n `${itemPrefixCls}-feedback-icon`,\n `${itemPrefixCls}-feedback-icon-${mergedValidateStatus}`\n )}\n >\n <IconNode />\n </span>\n ) : null\n }\n\n return {\n status: mergedValidateStatus,\n hasFeedback,\n feedbackIcon,\n isFormItemInput: true,\n }\n }, [mergedValidateStatus, hasFeedback])\n\n // ======================== Render ========================\n const itemClassName = {\n [itemPrefixCls]: true,\n [`${itemPrefixCls}-with-help`]: hasHelp || debounceErrors.length || debounceWarnings.length,\n [`${className}`]: !!className,\n\n // Status\n [`${itemPrefixCls}-has-feedback has-feedback`]: mergedValidateStatus && hasFeedback,\n [`${itemPrefixCls}-has-success has-success`]: mergedValidateStatus === 'success',\n [`${itemPrefixCls}-has-warning has-warning`]: mergedValidateStatus === 'warning',\n [`${itemPrefixCls}-has-error has-error`]: mergedValidateStatus === 'error',\n [`${itemPrefixCls}-is-validating is-validating`]: mergedValidateStatus === 'validating',\n [`${itemPrefixCls}-hidden hidden`]: hidden,\n }\n\n return (\n <div className={classNames(itemClassName)} style={style} ref={itemRef}>\n <Row\n className={`${itemPrefixCls}-row`}\n {...omit(restProps, [\n '_internalItemRender' as any,\n 'colon',\n 'dependencies',\n 'extra',\n 'fieldKey',\n 'getValueFromEvent',\n 'getValueProps',\n 'htmlFor',\n 'id', // It is deprecated because `htmlFor` is its replacement.\n 'initialValue',\n 'isListField',\n 'label',\n 'labelAlign',\n 'labelCol',\n 'labelWrap',\n 'messageVariables',\n 'name',\n 'normalize',\n 'noStyle',\n 'preserve',\n 'required',\n 'requiredMark',\n 'rules',\n 'shouldUpdate',\n 'trigger',\n 'tooltip',\n 'validateFirst',\n 'validateTrigger',\n 'valuePropName',\n 'wrapperCol',\n ])}\n >\n {/* Label */}\n <FormItemLabel\n htmlFor={fieldId}\n required={isRequired}\n requiredMark={requiredMark}\n {...props}\n prefixCls={prefixCls}\n />\n {/* Input Group */}\n <FormItemInput\n {...props}\n {...meta}\n errors={debounceErrors}\n warnings={debounceWarnings}\n prefixCls={prefixCls}\n status={mergedValidateStatus}\n help={help}\n marginBottom={marginBottom}\n onErrorVisibleChanged={onErrorVisibleChanged}\n >\n <NoStyleItemContext.Provider value={onSubItemMetaChange}>\n <FormItemInputContext.Provider value={formItemStatusContext}>\n {children}\n </FormItemInputContext.Provider>\n </NoStyleItemContext.Provider>\n </FormItemInput>\n </Row>\n\n {!!marginBottom && (\n <div\n className={`${itemPrefixCls}-margin-offset`}\n style={{\n marginBottom: -marginBottom,\n }}\n />\n )}\n </div>\n )\n}\n"]}
@@ -0,0 +1,264 @@
1
+ import { Field, FieldContext, ListContext } from 'rc-field-form';
2
+ import useState from 'rc-util/lib/hooks/useState';
3
+ import { supportRef } from 'rc-util/lib/ref';
4
+ import * as React from 'react';
5
+ import { useContext } from 'react';
6
+ import useFormItemStatus from '../hooks/useFormItemStatus';
7
+ import { ConfigContext } from '../../config-provider';
8
+ import DisabledContext from '../../config-provider/DisabledContext';
9
+ import { cloneElement, isValidElement } from '../_util/reactNode';
10
+ import { tuple } from '../_util/type';
11
+ import warning from '../_util/warning';
12
+ import { FormContext, NoStyleItemContext } from '../context';
13
+ import useFrameState from '../hooks/useFrameState';
14
+ import useItemRef from '../hooks/useItemRef';
15
+ import { getFieldId, toArray } from '../util';
16
+ import ItemHolder from './ItemHolder';
17
+ const NAME_SPLIT = '__SPLIT__';
18
+ const ValidateStatuses = tuple('success', 'warning', 'error', 'validating', '');
19
+ const MemoInput = React.memo(({
20
+ children
21
+ }) => children, (prev, next) => prev.value === next.value && prev.update === next.update && prev.childProps.length === next.childProps.length && prev.childProps.every((value, index) => value === next.childProps[index]));
22
+ function hasValidName(name) {
23
+ if (name === null) {
24
+ warning(false, 'Form.Item', '`null` is passed as `name` property');
25
+ }
26
+ return !(name === undefined || name === null);
27
+ }
28
+ function genEmptyMeta() {
29
+ return {
30
+ errors: [],
31
+ warnings: [],
32
+ touched: false,
33
+ validating: false,
34
+ validated: false,
35
+ name: []
36
+ };
37
+ }
38
+ function InternalFormItem(props) {
39
+ var _a, _b, _c, _d;
40
+ const {
41
+ name,
42
+ noStyle,
43
+ dependencies,
44
+ prefixCls: customizePrefixCls,
45
+ shouldUpdate,
46
+ rules,
47
+ children,
48
+ required,
49
+ label,
50
+ messageVariables,
51
+ trigger = 'onChange',
52
+ validateTrigger,
53
+ hidden
54
+ } = props;
55
+ // TODO
56
+ // @ts-ignore
57
+ const {
58
+ getPrefixCls
59
+ } = useContext(ConfigContext);
60
+ const {
61
+ name: formName
62
+ } = useContext(FormContext);
63
+ const isRenderProps = typeof children === 'function';
64
+ const notifyParentMetaChange = useContext(NoStyleItemContext);
65
+ const contextDisabled = useContext(DisabledContext);
66
+ const {
67
+ readonly: contextReadonly
68
+ } = useContext(FormContext);
69
+ const {
70
+ validateTrigger: contextValidateTrigger
71
+ } = useContext(FieldContext);
72
+ const mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : contextValidateTrigger;
73
+ const hasName = hasValidName(name);
74
+ const prefixCls = getPrefixCls('form', customizePrefixCls);
75
+ // ========================= MISC =========================
76
+ // Get `noStyle` required info
77
+ const listContext = React.useContext(ListContext);
78
+ const fieldKeyPathRef = React.useRef();
79
+ // ======================== Errors ========================
80
+ // >>>>> Collect sub field errors
81
+ const [subFieldErrors, setSubFieldErrors] = useFrameState({});
82
+ // >>>>> Current field errors
83
+ const [meta, setMeta] = useState(() => genEmptyMeta());
84
+ const onMetaChange = nextMeta => {
85
+ // This keyInfo is not correct when field is removed
86
+ // Since origin keyManager no longer keep the origin key anymore
87
+ // Which means we need cache origin one and reuse when removed
88
+ const keyInfo = listContext === null || listContext === void 0 ? void 0 : listContext.getKey(nextMeta.name);
89
+ // Destroy will reset all the meta
90
+ setMeta(nextMeta.destroy ? genEmptyMeta() : nextMeta, true);
91
+ // Bump to parent since noStyle
92
+ if (noStyle && notifyParentMetaChange) {
93
+ let namePath = nextMeta.name;
94
+ if (!nextMeta.destroy) {
95
+ if (keyInfo !== undefined) {
96
+ const [fieldKey, restPath] = keyInfo;
97
+ namePath = [fieldKey, ...restPath];
98
+ fieldKeyPathRef.current = namePath;
99
+ }
100
+ } else {
101
+ // Use origin cache data
102
+ namePath = fieldKeyPathRef.current || namePath;
103
+ }
104
+ notifyParentMetaChange(nextMeta, namePath);
105
+ }
106
+ };
107
+ // >>>>> Collect noStyle Field error to the top FormItem
108
+ const onSubItemMetaChange = (subMeta, uniqueKeys) => {
109
+ // Only `noStyle` sub item will trigger
110
+ setSubFieldErrors(prevSubFieldErrors => {
111
+ const clone = Object.assign({}, prevSubFieldErrors);
112
+ // name: ['user', 1] + key: [4] = ['user', 4]
113
+ const mergedNamePath = [...subMeta.name.slice(0, -1), ...uniqueKeys];
114
+ const mergedNameKey = mergedNamePath.join(NAME_SPLIT);
115
+ if (subMeta.destroy) {
116
+ // Remove
117
+ delete clone[mergedNameKey];
118
+ } else {
119
+ // Update
120
+ clone[mergedNameKey] = subMeta;
121
+ }
122
+ return clone;
123
+ });
124
+ };
125
+ // >>>>> Get merged errors
126
+ const [mergedErrors, mergedWarnings] = React.useMemo(() => {
127
+ const errorList = [...meta.errors];
128
+ const warningList = [...meta.warnings];
129
+ Object.values(subFieldErrors).forEach(subFieldError => {
130
+ errorList.push(...(subFieldError.errors || []));
131
+ warningList.push(...(subFieldError.warnings || []));
132
+ });
133
+ return [errorList, warningList];
134
+ }, [subFieldErrors, meta.errors, meta.warnings]);
135
+ // ===================== Children Ref =====================
136
+ const getItemRef = useItemRef();
137
+ // ======================== Render ========================
138
+ function renderLayout(baseChildren, fieldId, isRequired) {
139
+ if (noStyle && !hidden) {
140
+ return baseChildren;
141
+ }
142
+ return React.createElement(ItemHolder, Object.assign({
143
+ key: "row"
144
+ }, props, {
145
+ prefixCls: prefixCls,
146
+ fieldId: fieldId,
147
+ isRequired: isRequired,
148
+ errors: mergedErrors,
149
+ warnings: mergedWarnings,
150
+ meta: meta,
151
+ // TODO
152
+ // @ts-ignore
153
+ onSubItemMetaChange: onSubItemMetaChange
154
+ }), baseChildren);
155
+ }
156
+ if (!hasName && !isRenderProps && !dependencies) {
157
+ if (isValidElement(children)) {
158
+ return renderLayout(cloneElement(children, Object.assign(Object.assign({}, children.props), {
159
+ disabled: (_b = (_a = children.props) === null || _a === void 0 ? void 0 : _a.disabled) !== null && _b !== void 0 ? _b : contextDisabled,
160
+ readonly: (_d = (_c = children.props) === null || _c === void 0 ? void 0 : _c.readonly) !== null && _d !== void 0 ? _d : contextReadonly
161
+ })));
162
+ }
163
+ return renderLayout(children);
164
+ }
165
+ let variables = {};
166
+ if (typeof label === 'string') {
167
+ variables.label = label;
168
+ } else if (name) {
169
+ variables.label = String(name);
170
+ }
171
+ if (messageVariables) {
172
+ variables = Object.assign(Object.assign({}, variables), messageVariables);
173
+ }
174
+ // >>>>> With Field
175
+ return React.createElement(Field, Object.assign({}, props, {
176
+ messageVariables: variables,
177
+ trigger: trigger,
178
+ validateTrigger: mergedValidateTrigger,
179
+ onMetaChange: onMetaChange
180
+ }), (control, renderMeta, context) => {
181
+ var _a, _b, _c, _d;
182
+ const mergedName = toArray(name).length && renderMeta ? renderMeta.name : [];
183
+ const fieldId = getFieldId(mergedName, formName);
184
+ const isRequired = required !== undefined ? required : !!(rules && rules.some(rule => {
185
+ if (rule && typeof rule === 'object' && rule.required && !rule.warningOnly) {
186
+ return true;
187
+ }
188
+ if (typeof rule === 'function') {
189
+ const ruleEntity = rule(context);
190
+ return ruleEntity && ruleEntity.required && !ruleEntity.warningOnly;
191
+ }
192
+ return false;
193
+ }));
194
+ // ======================= Children =======================
195
+ const mergedControl = Object.assign({}, control);
196
+ let childNode = null;
197
+ warning(!(shouldUpdate && dependencies), 'Form.Item', "`shouldUpdate` and `dependencies` shouldn't be used together. See https://u.ant.design/form-deps.");
198
+ if (Array.isArray(children) && hasName) {
199
+ warning(false, '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.');
200
+ childNode = children;
201
+ } else if (isRenderProps && (!(shouldUpdate || dependencies) || hasName)) {
202
+ warning(!!(shouldUpdate || dependencies), 'Form.Item', 'A `Form.Item` with a render function must have either `shouldUpdate` or `dependencies`.');
203
+ warning(!hasName, 'Form.Item', 'A `Form.Item` with a render function cannot be a field, and thus cannot have a `name` prop.');
204
+ } else if (dependencies && !isRenderProps && !hasName) {
205
+ warning(false, 'Form.Item', 'Must set `name` or use a render function when `dependencies` is set.');
206
+ } else if (isValidElement(children)) {
207
+ warning(children.props.defaultValue === undefined, 'Form.Item', '`defaultValue` will not work on controlled Field. You should use `initialValues` of Form instead.');
208
+ const childProps = Object.assign(Object.assign(Object.assign({}, children.props), mergedControl), {
209
+ disabled: (_b = (_a = children.props) === null || _a === void 0 ? void 0 : _a.disabled) !== null && _b !== void 0 ? _b : contextDisabled
210
+ });
211
+ if (contextReadonly !== undefined) {
212
+ childProps.readonly = (_d = (_c = children.props) === null || _c === void 0 ? void 0 : _c.readonly) !== null && _d !== void 0 ? _d : contextReadonly;
213
+ }
214
+ if (!childProps.id) {
215
+ childProps.id = fieldId;
216
+ }
217
+ if (props.help || mergedErrors.length > 0 || mergedWarnings.length > 0 || props.extra) {
218
+ const describedbyArr = [];
219
+ if (props.help || mergedErrors.length > 0) {
220
+ describedbyArr.push(`${fieldId}_help`);
221
+ }
222
+ if (props.extra) {
223
+ describedbyArr.push(`${fieldId}_extra`);
224
+ }
225
+ childProps['aria-describedby'] = describedbyArr.join(' ');
226
+ }
227
+ if (mergedErrors.length > 0) {
228
+ childProps['aria-invalid'] = 'true';
229
+ }
230
+ if (isRequired) {
231
+ childProps['aria-required'] = 'true';
232
+ }
233
+ if (supportRef(children)) {
234
+ childProps.ref = getItemRef(mergedName, children);
235
+ }
236
+ // We should keep user origin event handler
237
+ const triggers = new Set([...toArray(trigger), ...toArray(mergedValidateTrigger)]);
238
+ triggers.forEach(eventName => {
239
+ childProps[eventName] = (...args) => {
240
+ var _a, _b, _c;
241
+ (_a = mergedControl[eventName]) === null || _a === void 0 ? void 0 : _a.call(mergedControl, ...args);
242
+ // @ts-ignore
243
+ (_c = (_b = children === null || children === void 0 ? void 0 : children.props) === null || _b === void 0 ? void 0 : _b[eventName]) === null || _c === void 0 ? void 0 : _c.call(_b, ...args);
244
+ };
245
+ });
246
+ // List of props that need to be watched for changes -> if changes are detected in MemoInput -> rerender
247
+ const watchingChildProps = [childProps['aria-required'], childProps['aria-invalid'], childProps['aria-describedby'], childProps.disabled, childProps.readonly];
248
+ childNode = React.createElement(MemoInput, {
249
+ value: mergedControl[props.valuePropName || 'value'],
250
+ update: children,
251
+ childProps: watchingChildProps
252
+ }, cloneElement(children, childProps));
253
+ } else if (isRenderProps && (shouldUpdate || dependencies) && !hasName) {
254
+ childNode = children(context);
255
+ } else {
256
+ warning(!mergedName.length, 'Form.Item', '`name` is only used for validate React element. If you are using Form.Item as layout display, please remove `name` instead.');
257
+ childNode = children;
258
+ }
259
+ return renderLayout(childNode, fieldId, isRequired);
260
+ });
261
+ }
262
+ const FormItem = InternalFormItem;
263
+ FormItem.useStatus = useFormItemStatus;
264
+ export default FormItem;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tntd-form/FormItem/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { FormInstance } from 'rc-field-form'\nimport { Field, FieldContext, ListContext } from 'rc-field-form'\nimport type { FieldProps } from 'rc-field-form/lib/Field'\nimport type { Meta, NamePath } from 'rc-field-form/lib/interface'\nimport useState from 'rc-util/lib/hooks/useState'\nimport { supportRef } from 'rc-util/lib/ref'\nimport * as React from 'react'\nimport { useContext } from 'react'\nimport useFormItemStatus from '../hooks/useFormItemStatus'\nimport { ConfigContext } from '../../config-provider'\nimport DisabledContext from '../../config-provider/DisabledContext'\nimport { cloneElement, isValidElement } from '../_util/reactNode'\nimport { tuple } from '../_util/type'\nimport warning from '../_util/warning'\nimport { FormContext, NoStyleItemContext } from '../context'\nimport type { FormItemInputProps } from '../FormItemInput'\nimport type { FormItemLabelProps, LabelTooltipType } from '../FormItemLabel'\nimport useFrameState from '../hooks/useFrameState'\nimport useItemRef from '../hooks/useItemRef'\nimport { getFieldId, toArray } from '../util'\nimport ItemHolder from './ItemHolder'\n\nconst NAME_SPLIT = '__SPLIT__'\n\ninterface FieldError {\n errors: string[]\n warnings: string[]\n}\n\nconst ValidateStatuses = tuple('success', 'warning', 'error', 'validating', '')\nexport type ValidateStatus = typeof ValidateStatuses[number]\n\ntype RenderChildren<Values = any> = (form: FormInstance<Values>) => React.ReactNode\ntype RcFieldProps<Values = any> = Omit<FieldProps<Values>, 'children'>\ntype ChildrenType<Values = any> = RenderChildren<Values> | React.ReactNode\n\ninterface MemoInputProps {\n value: any\n update: any\n children: React.ReactNode\n childProps: any[]\n}\n\nconst MemoInput = React.memo(\n ({ children }: MemoInputProps) => children as JSX.Element,\n (prev, next) =>\n prev.value === next.value &&\n prev.update === next.update &&\n prev.childProps.length === next.childProps.length &&\n prev.childProps.every((value, index) => value === next.childProps[index])\n)\n\nexport interface FormItemProps<Values = any>\n extends FormItemLabelProps,\n FormItemInputProps,\n RcFieldProps<Values> {\n prefixCls?: string\n noStyle?: boolean\n style?: React.CSSProperties\n className?: string\n children?: ChildrenType<Values>\n id?: string\n hasFeedback?: boolean\n validateStatus?: ValidateStatus\n required?: boolean\n hidden?: boolean\n initialValue?: any\n messageVariables?: Record<string, string>\n tooltip?: LabelTooltipType\n /** @deprecated No need anymore */\n fieldKey?: React.Key | React.Key[]\n}\n\nfunction hasValidName(name?: NamePath): boolean {\n if (name === null) {\n warning(false, 'Form.Item', '`null` is passed as `name` property')\n }\n return !(name === undefined || name === null)\n}\n\nfunction genEmptyMeta(): Meta {\n return {\n errors: [],\n warnings: [],\n touched: false,\n validating: false,\n validated: false,\n name: [],\n }\n}\n\nfunction InternalFormItem<Values = any>(props: FormItemProps<Values>): React.ReactElement {\n const {\n name,\n noStyle,\n dependencies,\n prefixCls: customizePrefixCls,\n shouldUpdate,\n rules,\n children,\n required,\n label,\n messageVariables,\n trigger = 'onChange',\n validateTrigger,\n hidden,\n } = props\n // TODO\n // @ts-ignore\n const { getPrefixCls } = useContext(ConfigContext)\n const { name: formName } = useContext(FormContext)\n const isRenderProps = typeof children === 'function'\n const notifyParentMetaChange = useContext(NoStyleItemContext)\n const contextDisabled = useContext(DisabledContext)\n const { readonly: contextReadonly } = useContext(FormContext)\n\n const { validateTrigger: contextValidateTrigger } = useContext(FieldContext)\n const mergedValidateTrigger =\n validateTrigger !== undefined ? validateTrigger : contextValidateTrigger\n\n const hasName = hasValidName(name)\n\n const prefixCls = getPrefixCls('form', customizePrefixCls)\n\n // ========================= MISC =========================\n // Get `noStyle` required info\n const listContext = React.useContext(ListContext)\n const fieldKeyPathRef = React.useRef<React.Key[]>()\n\n // ======================== Errors ========================\n // >>>>> Collect sub field errors\n const [subFieldErrors, setSubFieldErrors] = useFrameState<Record<string, FieldError>>({})\n\n // >>>>> Current field errors\n const [meta, setMeta] = useState<Meta>(() => genEmptyMeta())\n\n const onMetaChange = (nextMeta: Meta & { destroy?: boolean }) => {\n // This keyInfo is not correct when field is removed\n // Since origin keyManager no longer keep the origin key anymore\n // Which means we need cache origin one and reuse when removed\n const keyInfo = listContext?.getKey(nextMeta.name)\n\n // Destroy will reset all the meta\n setMeta(nextMeta.destroy ? genEmptyMeta() : nextMeta, true)\n\n // Bump to parent since noStyle\n if (noStyle && notifyParentMetaChange) {\n let namePath = nextMeta.name\n\n if (!nextMeta.destroy) {\n if (keyInfo !== undefined) {\n const [fieldKey, restPath] = keyInfo\n namePath = [fieldKey, ...restPath]\n fieldKeyPathRef.current = namePath\n }\n } else {\n // Use origin cache data\n namePath = fieldKeyPathRef.current || namePath\n }\n notifyParentMetaChange(nextMeta, namePath)\n }\n }\n\n // >>>>> Collect noStyle Field error to the top FormItem\n const onSubItemMetaChange = (subMeta: Meta & { destroy: boolean }, uniqueKeys: React.Key[]) => {\n // Only `noStyle` sub item will trigger\n setSubFieldErrors((prevSubFieldErrors) => {\n const clone = {\n ...prevSubFieldErrors,\n }\n\n // name: ['user', 1] + key: [4] = ['user', 4]\n const mergedNamePath = [...subMeta.name.slice(0, -1), ...uniqueKeys]\n const mergedNameKey = mergedNamePath.join(NAME_SPLIT)\n\n if (subMeta.destroy) {\n // Remove\n delete clone[mergedNameKey]\n } else {\n // Update\n clone[mergedNameKey] = subMeta\n }\n\n return clone\n })\n }\n\n // >>>>> Get merged errors\n const [mergedErrors, mergedWarnings] = React.useMemo(() => {\n const errorList: string[] = [...meta.errors]\n const warningList: string[] = [...meta.warnings]\n\n Object.values(subFieldErrors).forEach((subFieldError) => {\n errorList.push(...(subFieldError.errors || []))\n warningList.push(...(subFieldError.warnings || []))\n })\n\n return [errorList, warningList]\n }, [subFieldErrors, meta.errors, meta.warnings])\n\n // ===================== Children Ref =====================\n const getItemRef = useItemRef()\n\n // ======================== Render ========================\n function renderLayout(\n baseChildren: React.ReactNode,\n fieldId?: string,\n isRequired?: boolean\n ): React.ReactNode {\n if (noStyle && !hidden) {\n return baseChildren\n }\n\n return (\n <ItemHolder\n key=\"row\"\n {...props}\n prefixCls={prefixCls}\n fieldId={fieldId}\n isRequired={isRequired}\n errors={mergedErrors}\n warnings={mergedWarnings}\n meta={meta}\n // TODO\n // @ts-ignore\n onSubItemMetaChange={onSubItemMetaChange}\n >\n {baseChildren}\n </ItemHolder>\n )\n }\n\n if (!hasName && !isRenderProps && !dependencies) {\n if (isValidElement(children)) {\n return renderLayout(\n cloneElement(children, {\n ...children.props,\n disabled: children.props?.disabled ?? contextDisabled,\n readonly: children.props?.readonly ?? contextReadonly,\n })\n ) as JSX.Element\n }\n return renderLayout(children) as JSX.Element\n }\n\n let variables: Record<string, string> = {}\n if (typeof label === 'string') {\n variables.label = label\n } else if (name) {\n variables.label = String(name)\n }\n if (messageVariables) {\n variables = { ...variables, ...messageVariables }\n }\n\n // >>>>> With Field\n return (\n <Field\n {...props}\n messageVariables={variables}\n trigger={trigger}\n validateTrigger={mergedValidateTrigger}\n onMetaChange={onMetaChange}\n >\n {(control, renderMeta, context) => {\n const mergedName = toArray(name).length && renderMeta ? renderMeta.name : []\n const fieldId = getFieldId(mergedName, formName)\n\n const isRequired =\n required !== undefined\n ? required\n : !!(\n rules &&\n rules.some((rule) => {\n if (rule && typeof rule === 'object' && rule.required && !rule.warningOnly) {\n return true\n }\n if (typeof rule === 'function') {\n const ruleEntity = rule(context)\n return ruleEntity && ruleEntity.required && !ruleEntity.warningOnly\n }\n return false\n })\n )\n\n // ======================= Children =======================\n const mergedControl: typeof control = {\n ...control,\n }\n\n let childNode: React.ReactNode = null\n\n warning(\n !(shouldUpdate && dependencies),\n 'Form.Item',\n \"`shouldUpdate` and `dependencies` shouldn't be used together. See https://u.ant.design/form-deps.\"\n )\n if (Array.isArray(children) && hasName) {\n warning(\n false,\n 'Form.Item',\n 'A `Form.Item` with a `name` prop must have a single child element. For information on how to render more complex form items, see https://u.ant.design/complex-form-item.'\n )\n childNode = children\n } else if (isRenderProps && (!(shouldUpdate || dependencies) || hasName)) {\n warning(\n !!(shouldUpdate || dependencies),\n 'Form.Item',\n 'A `Form.Item` with a render function must have either `shouldUpdate` or `dependencies`.'\n )\n warning(\n !hasName,\n 'Form.Item',\n 'A `Form.Item` with a render function cannot be a field, and thus cannot have a `name` prop.'\n )\n } else if (dependencies && !isRenderProps && !hasName) {\n warning(\n false,\n 'Form.Item',\n 'Must set `name` or use a render function when `dependencies` is set.'\n )\n } else if (isValidElement(children)) {\n warning(\n children.props.defaultValue === undefined,\n 'Form.Item',\n '`defaultValue` will not work on controlled Field. You should use `initialValues` of Form instead.'\n )\n\n const childProps = {\n ...children.props,\n ...mergedControl,\n disabled: children.props?.disabled ?? contextDisabled,\n }\n\n if (contextReadonly !== undefined) {\n childProps.readonly = children.props?.readonly ?? contextReadonly\n }\n\n if (!childProps.id) {\n childProps.id = fieldId\n }\n\n if (props.help || mergedErrors.length > 0 || mergedWarnings.length > 0 || props.extra) {\n const describedbyArr = []\n if (props.help || mergedErrors.length > 0) {\n describedbyArr.push(`${fieldId}_help`)\n }\n if (props.extra) {\n describedbyArr.push(`${fieldId}_extra`)\n }\n childProps['aria-describedby'] = describedbyArr.join(' ')\n }\n\n if (mergedErrors.length > 0) {\n childProps['aria-invalid'] = 'true'\n }\n\n if (isRequired) {\n childProps['aria-required'] = 'true'\n }\n\n if (supportRef(children)) {\n childProps.ref = getItemRef(mergedName, children)\n }\n\n // We should keep user origin event handler\n const triggers = new Set<string>([...toArray(trigger), ...toArray(mergedValidateTrigger)])\n\n triggers.forEach((eventName) => {\n childProps[eventName] = (...args: any[]) => {\n mergedControl[eventName]?.(...args)\n // @ts-ignore\n children?.props?.[eventName]?.(...args)\n }\n })\n\n // List of props that need to be watched for changes -> if changes are detected in MemoInput -> rerender\n const watchingChildProps = [\n childProps['aria-required'],\n childProps['aria-invalid'],\n childProps['aria-describedby'],\n childProps.disabled,\n childProps.readonly,\n ]\n\n childNode = (\n <MemoInput\n value={mergedControl[props.valuePropName || 'value']}\n update={children}\n childProps={watchingChildProps}\n >\n {cloneElement(children, childProps)}\n </MemoInput>\n )\n } else if (isRenderProps && (shouldUpdate || dependencies) && !hasName) {\n childNode = (children as RenderChildren)(context)\n } else {\n warning(\n !mergedName.length,\n 'Form.Item',\n '`name` is only used for validate React element. If you are using Form.Item as layout display, please remove `name` instead.'\n )\n childNode = children as React.ReactNode\n }\n\n return renderLayout(childNode, fieldId, isRequired)\n }}\n </Field>\n )\n}\n\ntype InternalFormItemType = typeof InternalFormItem\n\ntype CompoundedComponent = InternalFormItemType & {\n useStatus: typeof useFormItemStatus\n}\n\nconst FormItem = InternalFormItem as CompoundedComponent\nFormItem.useStatus = useFormItemStatus\n\nexport default FormItem\n"]}
@@ -0,0 +1,79 @@
1
+ import classNames from 'classnames';
2
+ import * as React from 'react';
3
+ import Col from '../col';
4
+ import { FormContext, FormItemPrefixContext } from './context';
5
+ import ErrorList from './ErrorList';
6
+ const FormItemInput = props => {
7
+ const {
8
+ prefixCls,
9
+ status,
10
+ wrapperCol,
11
+ children,
12
+ errors,
13
+ warnings,
14
+ _internalItemRender: formItemRender,
15
+ extra,
16
+ help,
17
+ fieldId,
18
+ marginBottom,
19
+ onErrorVisibleChanged
20
+ } = props;
21
+ const baseClassName = `${prefixCls}-item`;
22
+ const formContext = React.useContext(FormContext);
23
+ const mergedWrapperCol = wrapperCol || formContext.wrapperCol || {};
24
+ const className = classNames(`${baseClassName}-control`, mergedWrapperCol.className);
25
+ // Pass to sub FormItem should not with col info
26
+ const subFormContext = React.useMemo(() => Object.assign({}, formContext), [formContext]);
27
+ delete subFormContext.labelCol;
28
+ delete subFormContext.wrapperCol;
29
+ const inputDom = React.createElement("div", {
30
+ className: `${baseClassName}-control-input`
31
+ }, React.createElement("div", {
32
+ className: `${baseClassName}-control-input-content`
33
+ }, children));
34
+ const formItemContext = React.useMemo(() => ({
35
+ prefixCls,
36
+ status
37
+ }), [prefixCls, status]);
38
+ const errorListDom = marginBottom !== null || errors.length || warnings.length ? React.createElement("div", {
39
+ style: {
40
+ display: 'flex',
41
+ flexWrap: 'nowrap'
42
+ }
43
+ }, React.createElement(FormItemPrefixContext.Provider, {
44
+ value: formItemContext
45
+ }, React.createElement(ErrorList, {
46
+ fieldId: fieldId,
47
+ errors: errors,
48
+ warnings: warnings,
49
+ help: help,
50
+ helpStatus: status,
51
+ className: `${baseClassName}-explain-connected`,
52
+ onVisibleChanged: onErrorVisibleChanged
53
+ })), !!marginBottom && React.createElement("div", {
54
+ style: {
55
+ width: 0,
56
+ height: marginBottom
57
+ }
58
+ })) : null;
59
+ const extraProps = {};
60
+ if (fieldId) {
61
+ extraProps.id = `${fieldId}_extra`;
62
+ }
63
+ // If extra = 0, && will goes wrong
64
+ // 0&&error -> 0
65
+ const extraDom = extra ? React.createElement("div", Object.assign({}, extraProps, {
66
+ className: `${baseClassName}-extra`
67
+ }), extra) : null;
68
+ const dom = formItemRender && formItemRender.mark === 'pro_table_render' && formItemRender.render ? formItemRender.render(props, {
69
+ input: inputDom,
70
+ errorList: errorListDom,
71
+ extra: extraDom
72
+ }) : React.createElement(React.Fragment, null, inputDom, errorListDom, extraDom);
73
+ return React.createElement(FormContext.Provider, {
74
+ value: subFormContext
75
+ }, React.createElement(Col, Object.assign({}, mergedWrapperCol, {
76
+ className: className
77
+ }), dom));
78
+ };
79
+ export default FormItemInput;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormItemInput.js","sourceRoot":"","sources":["../../src/tntd-form/FormItemInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import classNames from 'classnames'\nimport * as React from 'react'\n// import type { ColProps } from '../grid/col';\n// import Col from '../grid/col';\nimport type { ColProps } from '../col'\nimport Col from '../col'\nimport { FormContext, FormItemPrefixContext } from './context'\nimport ErrorList from './ErrorList'\nimport type { ValidateStatus } from './FormItem'\n\ninterface FormItemInputMiscProps {\n prefixCls: string\n children: React.ReactNode\n errors: React.ReactNode[]\n warnings: React.ReactNode[]\n marginBottom?: number | null\n onErrorVisibleChanged?: (visible: boolean) => void\n /** @internal do not use in any of your production. */\n _internalItemRender?: {\n mark: string\n render: (\n props: FormItemInputProps & FormItemInputMiscProps,\n domList: {\n input: JSX.Element\n errorList: JSX.Element | null\n extra: JSX.Element | null\n }\n ) => React.ReactNode\n }\n}\n\nexport interface FormItemInputProps {\n wrapperCol?: ColProps\n extra?: React.ReactNode\n status?: ValidateStatus\n help?: React.ReactNode\n fieldId?: string\n}\n\nconst FormItemInput: React.FC<FormItemInputProps & FormItemInputMiscProps> = (props) => {\n const {\n prefixCls,\n status,\n wrapperCol,\n children,\n errors,\n warnings,\n _internalItemRender: formItemRender,\n extra,\n help,\n fieldId,\n marginBottom,\n onErrorVisibleChanged,\n } = props\n const baseClassName = `${prefixCls}-item`\n\n const formContext = React.useContext(FormContext)\n\n const mergedWrapperCol: ColProps = wrapperCol || formContext.wrapperCol || {}\n\n const className = classNames(`${baseClassName}-control`, mergedWrapperCol.className)\n\n // Pass to sub FormItem should not with col info\n const subFormContext = React.useMemo(() => ({ ...formContext }), [formContext])\n delete subFormContext.labelCol\n delete subFormContext.wrapperCol\n\n const inputDom = (\n <div className={`${baseClassName}-control-input`}>\n <div className={`${baseClassName}-control-input-content`}>{children}</div>\n </div>\n )\n const formItemContext = React.useMemo(() => ({ prefixCls, status }), [prefixCls, status])\n const errorListDom =\n marginBottom !== null || errors.length || warnings.length ? (\n <div style={{ display: 'flex', flexWrap: 'nowrap' }}>\n <FormItemPrefixContext.Provider value={formItemContext}>\n <ErrorList\n fieldId={fieldId}\n errors={errors}\n warnings={warnings}\n help={help}\n helpStatus={status}\n className={`${baseClassName}-explain-connected`}\n onVisibleChanged={onErrorVisibleChanged}\n />\n </FormItemPrefixContext.Provider>\n {!!marginBottom && <div style={{ width: 0, height: marginBottom }} />}\n </div>\n ) : null\n\n const extraProps: { id?: string } = {}\n\n if (fieldId) {\n extraProps.id = `${fieldId}_extra`\n }\n\n // If extra = 0, && will goes wrong\n // 0&&error -> 0\n const extraDom = extra ? (\n <div {...extraProps} className={`${baseClassName}-extra`}>\n {extra}\n </div>\n ) : null\n\n const dom =\n formItemRender && formItemRender.mark === 'pro_table_render' && formItemRender.render ? (\n formItemRender.render(props, { input: inputDom, errorList: errorListDom, extra: extraDom })\n ) : (\n <>\n {inputDom}\n {errorListDom}\n {extraDom}\n </>\n )\n return (\n <FormContext.Provider value={subFormContext}>\n <Col {...mergedWrapperCol} className={className}>\n {dom}\n </Col>\n </FormContext.Provider>\n )\n}\n\nexport default FormItemInput\n"]}
@@ -0,0 +1,98 @@
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) t[p] = s[p];
4
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
5
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
6
+ }
7
+ return t;
8
+ };
9
+ import Icon from '../icon';
10
+ import classNames from 'classnames';
11
+ import * as React from 'react';
12
+ import Col from '../col';
13
+ import Tooltip from '../tooltip';
14
+ import { FormContext } from './context';
15
+ function toTooltipProps(tooltip) {
16
+ if (!tooltip) {
17
+ return null;
18
+ }
19
+ if (typeof tooltip === 'object' && !React.isValidElement(tooltip)) {
20
+ return tooltip;
21
+ }
22
+ return {
23
+ title: tooltip
24
+ };
25
+ }
26
+ const FormItemLabel = ({
27
+ prefixCls,
28
+ label,
29
+ htmlFor,
30
+ labelCol,
31
+ labelAlign,
32
+ colon,
33
+ required,
34
+ requiredMark,
35
+ tooltip
36
+ }) => {
37
+ // const [formLocale] = useLocaleReceiver('Form');
38
+ if (!label) return null;
39
+ return React.createElement(FormContext.Consumer, {
40
+ key: "label"
41
+ }, ({
42
+ vertical,
43
+ labelAlign: contextLabelAlign,
44
+ labelCol: contextLabelCol,
45
+ labelWrap,
46
+ colon: contextColon
47
+ }) => {
48
+ const mergedLabelCol = labelCol || contextLabelCol || {};
49
+ const mergedLabelAlign = labelAlign || contextLabelAlign;
50
+ const labelClsBasic = `${prefixCls}-item-label`;
51
+ const labelColClassName = classNames(labelClsBasic, mergedLabelAlign === 'left' && `${labelClsBasic}-left`, mergedLabelCol.className, {
52
+ [`${labelClsBasic}-wrap`]: !!labelWrap
53
+ });
54
+ let labelChildren = label;
55
+ // Keep label is original where there should have no colon
56
+ const computedColon = colon === true || contextColon !== false && colon !== false;
57
+ const haveColon = computedColon && !vertical;
58
+ // Remove duplicated user input colon
59
+ if (haveColon && typeof label === 'string' && label.trim() !== '') {
60
+ labelChildren = label.replace(/[:|:]\s*$/, '');
61
+ }
62
+ // Tooltip
63
+ const tooltipProps = toTooltipProps(tooltip);
64
+ if (tooltipProps) {
65
+ const {
66
+ icon = React.createElement(Icon, {
67
+ type: "question-circle"
68
+ })
69
+ } = tooltipProps,
70
+ restTooltipProps = __rest(tooltipProps, ["icon"]);
71
+ const tooltipNode = React.createElement(Tooltip, Object.assign({}, restTooltipProps), React.cloneElement(icon, {
72
+ className: `${prefixCls}-item-tooltip`,
73
+ title: ''
74
+ }));
75
+ labelChildren = React.createElement(React.Fragment, null, labelChildren, tooltipNode);
76
+ }
77
+ // Add required mark if optional
78
+ if (requiredMark === 'optional' && !required) {
79
+ labelChildren = React.createElement(React.Fragment, null, labelChildren, React.createElement("span", {
80
+ className: `${prefixCls}-item-optional`,
81
+ title: ""
82
+ }));
83
+ }
84
+ const labelClassName = classNames({
85
+ [`${prefixCls}-item-required`]: required,
86
+ [`${prefixCls}-item-required-mark-optional`]: requiredMark === 'optional',
87
+ [`${prefixCls}-item-no-colon`]: !computedColon
88
+ });
89
+ return React.createElement(Col, Object.assign({}, mergedLabelCol, {
90
+ className: labelColClassName
91
+ }), React.createElement("label", {
92
+ htmlFor: htmlFor,
93
+ className: labelClassName,
94
+ title: typeof label === 'string' ? label : ''
95
+ }, labelChildren));
96
+ });
97
+ };
98
+ export default FormItemLabel;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormItemLabel.js","sourceRoot":"","sources":["../../src/tntd-form/FormItemLabel.tsx"],"names":[],"mappings":"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","sourcesContent":["import Icon from '../icon'\nimport classNames from 'classnames'\nimport * as React from 'react'\n// import type { ColProps } from '../grid/col';\n// import Col from '../grid/col';\nimport type { ColProps } from '../col'\nimport Col from '../col'\n// import { useLocaleReceiver } from '../locale-provider/LocaleReceiver';\n// import defaultLocale from '../locale/default';\nimport type { TooltipProps } from '../tooltip'\nimport Tooltip from '../tooltip'\nimport type { FormContextProps } from './context'\nimport { FormContext } from './context'\nimport type { RequiredMark } from './Form'\nimport type { FormLabelAlign } from './interface'\n\nexport type WrapperTooltipProps = TooltipProps & {\n icon?: React.ReactElement\n}\n\nexport type LabelTooltipType = WrapperTooltipProps | React.ReactNode\n\nfunction toTooltipProps(tooltip: LabelTooltipType): WrapperTooltipProps | null {\n if (!tooltip) {\n return null\n }\n\n if (typeof tooltip === 'object' && !React.isValidElement(tooltip)) {\n return tooltip as WrapperTooltipProps\n }\n\n return {\n title: tooltip,\n }\n}\n\nexport interface FormItemLabelProps {\n colon?: boolean\n htmlFor?: string\n label?: React.ReactNode\n labelAlign?: FormLabelAlign\n labelCol?: ColProps\n requiredMark?: RequiredMark\n tooltip?: LabelTooltipType\n}\n\nconst FormItemLabel: React.FC<FormItemLabelProps & { required?: boolean; prefixCls: string }> = ({\n prefixCls,\n label,\n htmlFor,\n labelCol,\n labelAlign,\n colon,\n required,\n requiredMark,\n tooltip,\n}) => {\n // const [formLocale] = useLocaleReceiver('Form');\n\n if (!label) return null\n\n return (\n <FormContext.Consumer key=\"label\">\n {({\n vertical,\n labelAlign: contextLabelAlign,\n labelCol: contextLabelCol,\n labelWrap,\n colon: contextColon,\n }: FormContextProps) => {\n const mergedLabelCol: ColProps = labelCol || contextLabelCol || {}\n\n const mergedLabelAlign: FormLabelAlign | undefined = labelAlign || contextLabelAlign\n\n const labelClsBasic = `${prefixCls}-item-label`\n const labelColClassName = classNames(\n labelClsBasic,\n mergedLabelAlign === 'left' && `${labelClsBasic}-left`,\n mergedLabelCol.className,\n {\n [`${labelClsBasic}-wrap`]: !!labelWrap,\n }\n )\n\n let labelChildren = label\n // Keep label is original where there should have no colon\n const computedColon = colon === true || (contextColon !== false && colon !== false)\n const haveColon = computedColon && !vertical\n // Remove duplicated user input colon\n if (haveColon && typeof label === 'string' && (label as string).trim() !== '') {\n labelChildren = (label as string).replace(/[:|:]\\s*$/, '')\n }\n\n // Tooltip\n const tooltipProps = toTooltipProps(tooltip)\n if (tooltipProps) {\n const { icon = <Icon type=\"question-circle\" />, ...restTooltipProps } = tooltipProps\n const tooltipNode = (\n <Tooltip {...restTooltipProps}>\n {React.cloneElement(icon, { className: `${prefixCls}-item-tooltip`, title: '' })}\n </Tooltip>\n )\n\n labelChildren = (\n <>\n {labelChildren}\n {tooltipNode}\n </>\n )\n }\n\n // Add required mark if optional\n if (requiredMark === 'optional' && !required) {\n labelChildren = (\n <>\n {labelChildren}\n <span className={`${prefixCls}-item-optional`} title=\"\">\n {/* {formLocale?.optional || defaultLocale.Form?.optional} */}\n </span>\n </>\n )\n }\n\n const labelClassName = classNames({\n [`${prefixCls}-item-required`]: required,\n [`${prefixCls}-item-required-mark-optional`]: requiredMark === 'optional',\n [`${prefixCls}-item-no-colon`]: !computedColon,\n })\n\n return (\n <Col {...mergedLabelCol} className={labelColClassName}>\n <label\n htmlFor={htmlFor}\n className={labelClassName}\n title={typeof label === 'string' ? label : ''}\n >\n {labelChildren}\n </label>\n </Col>\n )\n }}\n </FormContext.Consumer>\n )\n}\n\nexport default FormItemLabel\n"]}
@@ -0,0 +1,40 @@
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) t[p] = s[p];
4
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
5
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
6
+ }
7
+ return t;
8
+ };
9
+ import { List } from 'rc-field-form';
10
+ import * as React from 'react';
11
+ import { ConfigContext } from '../config-provider';
12
+ import warning from './_util/warning';
13
+ import { FormItemPrefixContext } from './context';
14
+ const FormList = _a => {
15
+ var {
16
+ prefixCls: customizePrefixCls,
17
+ children
18
+ } = _a,
19
+ props = __rest(_a, ["prefixCls", "children"]);
20
+ warning(!!props.name, 'Form.List', 'Miss `name` prop.');
21
+ // TODO
22
+ // @ts-ignore
23
+ const {
24
+ getPrefixCls
25
+ } = React.useContext(ConfigContext);
26
+ const prefixCls = getPrefixCls('form', customizePrefixCls);
27
+ const contextValue = React.useMemo(() => ({
28
+ prefixCls,
29
+ status: 'error'
30
+ }), [prefixCls]);
31
+ return React.createElement(List, Object.assign({}, props), (fields, operation, meta) => React.createElement(FormItemPrefixContext.Provider, {
32
+ value: contextValue
33
+ }, children(fields.map(field => Object.assign(Object.assign({}, field), {
34
+ fieldKey: field.key
35
+ })), operation, {
36
+ errors: meta.errors,
37
+ warnings: meta.warnings
38
+ })));
39
+ };
40
+ export default FormList;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormList.js","sourceRoot":"","sources":["../../src/tntd-form/FormList.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,OAAO,MAAM,iBAAiB,CAAA;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AA2BjD,MAAM,QAAQ,GAA4B,CAAC,EAI1C,EAAE,EAAE;QAJsC,EACzC,SAAS,EAAE,kBAAkB,EAC7B,QAAQ,OAET,EADI,KAAK,cAHiC,yBAI1C,CADS;IAER,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAA;IAEvD,OAAO;IACP,aAAa;IACb,MAAM,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;IACxD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAC1D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAChC,GAAG,EAAE,CAAC,CAAC;QACL,SAAS;QACT,MAAM,EAAE,OAAgB;KACzB,CAAC,EACF,CAAC,SAAS,CAAC,CACZ,CAAA;IAED,OAAO,CACL,oBAAC,IAAI,oBAAK,KAAK,GACZ,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAC5B,oBAAC,qBAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,IAChD,QAAQ,CACP,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iCAAM,KAAK,KAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,IAAG,CAAC,EAC1D,SAAS,EACT;QACE,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CACF,CAC8B,CAClC,CACI,CACR,CAAA;AACH,CAAC,CAAA;AAED,eAAe,QAAQ,CAAA","sourcesContent":["import { List } from 'rc-field-form'\nimport type { StoreValue, ValidatorRule } from 'rc-field-form/lib/interface'\nimport * as React from 'react'\nimport { ConfigContext } from '../config-provider'\nimport warning from './_util/warning'\nimport { FormItemPrefixContext } from './context'\n\nexport interface FormListFieldData {\n name: number\n key: number\n /** @deprecated No need anymore Use key instead */\n fieldKey?: number\n}\n\nexport interface FormListOperation {\n add: (defaultValue?: StoreValue, insertIndex?: number) => void\n remove: (index: number | number[]) => void\n move: (from: number, to: number) => void\n}\n\nexport interface FormListProps {\n prefixCls?: string\n name: string | number | (string | number)[]\n rules?: ValidatorRule[]\n initialValue?: any[]\n children: (\n fields: FormListFieldData[],\n operation: FormListOperation,\n meta: { errors: React.ReactNode[]; warnings: React.ReactNode[] }\n ) => React.ReactNode\n}\n\nconst FormList: React.FC<FormListProps> = ({\n prefixCls: customizePrefixCls,\n children,\n ...props\n}) => {\n warning(!!props.name, 'Form.List', 'Miss `name` prop.')\n\n // TODO\n // @ts-ignore\n const { getPrefixCls } = React.useContext(ConfigContext)\n const prefixCls = getPrefixCls('form', customizePrefixCls)\n const contextValue = React.useMemo(\n () => ({\n prefixCls,\n status: 'error' as const,\n }),\n [prefixCls]\n )\n\n return (\n <List {...props}>\n {(fields, operation, meta) => (\n <FormItemPrefixContext.Provider value={contextValue}>\n {children(\n fields.map((field) => ({ ...field, fieldKey: field.key })),\n operation,\n {\n errors: meta.errors,\n warnings: meta.warnings,\n }\n )}\n </FormItemPrefixContext.Provider>\n )}\n </List>\n )\n}\n\nexport default FormList\n"]}