tntd 2.7.2 → 2.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (428) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +72 -0
  3. package/es/actions/index.js +12 -0
  4. package/es/actions/index.js.map +1 -0
  5. package/es/actions/index.less +70 -0
  6. package/es/affix/index.js +2 -1
  7. package/es/alert/index.js +2 -1
  8. package/es/anchor/index.js +2 -1
  9. package/es/array-input/icon.js +6 -24
  10. package/es/array-input/index.js +119 -203
  11. package/es/auth-context/index.js +2 -1
  12. package/es/auto-complete/index.js +2 -1
  13. package/es/avatar/index.js +2 -1
  14. package/es/back-top/index.js +2 -1
  15. package/es/badge/index.js +2 -1
  16. package/es/breadcrumb/index.js +2 -1
  17. package/es/button/index.js +2 -1
  18. package/es/calendar/index.js +2 -1
  19. package/es/card/index.js +2 -1
  20. package/es/carousel/index.js +2 -1
  21. package/es/cascader/index.js +2 -1
  22. package/es/check-card/group.js +149 -0
  23. package/es/check-card/group.js.map +1 -0
  24. package/es/check-card/index.js +120 -0
  25. package/es/check-card/index.js.map +1 -0
  26. package/es/check-card/index.less +179 -0
  27. package/es/checkbox/checkbox-group.js +2 -1
  28. package/es/checkbox/index.js +2 -1
  29. package/es/col/index.js +2 -1
  30. package/es/collapse/index.js +2 -1
  31. package/es/color-picker/ColorPicker.js +81 -127
  32. package/es/color-picker/ColorPicker.js.map +1 -1
  33. package/es/color-picker/index.js +5 -8
  34. package/es/color-picker/index.less +5 -1
  35. package/es/columns/index.js +30 -66
  36. package/es/columns/style/index.js +2 -1
  37. package/es/comment/index.js +2 -1
  38. package/es/config-provider/DisabledContext.js +5 -9
  39. package/es/config-provider/SizeContext.js +3 -7
  40. package/es/config-provider/config-provider.js +2 -1
  41. package/es/ellipsis/index.js +13 -3
  42. package/es/ellipsis/index.js.map +1 -1
  43. package/es/ellipsis/index.less +2 -2
  44. package/es/handle/index.js +20 -9
  45. package/es/handle/index.js.map +1 -1
  46. package/es/handle/index.less +1 -1
  47. package/es/index.js +7 -0
  48. package/es/index.js.map +1 -1
  49. package/es/index.less +5 -0
  50. package/es/locale/en_US.js +3 -1
  51. package/es/locale/en_US.js.map +1 -1
  52. package/es/locale/zh_CN.js +3 -1
  53. package/es/locale/zh_CN.js.map +1 -1
  54. package/es/mention/index.js +4 -0
  55. package/es/mention/index.js.map +1 -0
  56. package/es/page/Box.js +1 -1
  57. package/es/page/Box.js.map +1 -1
  58. package/es/page/index.js +2 -2
  59. package/es/page/index.js.map +1 -1
  60. package/es/page/index.less +5 -5
  61. package/es/prev-locale.js +1 -1
  62. package/es/prev-locale.js.map +1 -1
  63. package/es/query-form/Field/SelectInput.js +2 -2
  64. package/es/query-form/Field/SelectInput.js.map +1 -1
  65. package/es/query-form/Field/index.js +2 -1
  66. package/es/query-form/Field/index.js.map +1 -1
  67. package/es/query-list-scene/QueryForm.js +2 -2
  68. package/es/query-list-scene/QueryForm.js.map +1 -1
  69. package/es/segmented/index.js +50 -0
  70. package/es/segmented/index.js.map +1 -0
  71. package/es/segmented/index.less +138 -0
  72. package/es/switch/switch.js.map +1 -1
  73. package/es/table/constants.js +53 -0
  74. package/es/table/constants.js.map +1 -1
  75. package/es/table/context.js.map +1 -1
  76. package/es/table/hooks/use-column-setting.js.map +1 -1
  77. package/es/table/table.js +107 -6
  78. package/es/table/table.js.map +1 -1
  79. package/es/table/table.less +3 -1
  80. package/es/table/total-shower.js +6 -0
  81. package/es/table/total-shower.js.map +1 -0
  82. package/es/title/index.js +5 -5
  83. package/es/title/index.js.map +1 -1
  84. package/es/title/index.less +10 -10
  85. package/es/tntd-form/Form.js +13 -1
  86. package/es/tntd-form/Form.js.map +1 -1
  87. package/es/tntd-form/TntdForm/components/Item.js +42 -30
  88. package/es/tntd-form/TntdForm/components/ItemComp.js +167 -158
  89. package/es/tntd-form/TntdForm/components/List.js +89 -78
  90. package/es/tntd-form/TntdForm/index.js +38 -33
  91. package/es/tntd-form/TntdForm/interface.js +1 -2
  92. package/es/tntd-form/TntdForm/store.js +1 -2
  93. package/es/tntd-form/TntdForm/utils.js +158 -168
  94. package/es/tntd-form/tntd-form.stories.js +7 -5
  95. package/es/tntd-form/tntd-form.stories.js.map +1 -1
  96. package/es/tntd-layout/HeaderActions.js +1 -1
  97. package/es/tntd-layout/HeaderActions.js.map +1 -1
  98. package/es/tntd-modal/index.js +54 -21
  99. package/es/tntd-modal/index.js.map +1 -1
  100. package/es/tntd-modal/index.less +83 -63
  101. package/es/tree-select/index.js.map +1 -1
  102. package/es/utils/index.js +1 -0
  103. package/es/utils/index.js.map +1 -1
  104. package/es/utils/simple-template.js +11 -0
  105. package/es/utils/simple-template.js.map +1 -0
  106. package/es/water-mark/index.js +99 -0
  107. package/es/water-mark/index.js.map +1 -0
  108. package/lib/actions/index.d.ts +15 -0
  109. package/lib/actions/index.d.ts.map +1 -0
  110. package/lib/actions/index.js +17 -0
  111. package/lib/actions/index.js.map +1 -0
  112. package/lib/actions/index.less +70 -0
  113. package/lib/check-card/group.d.ts +130 -0
  114. package/lib/check-card/group.d.ts.map +1 -0
  115. package/lib/check-card/group.js +179 -0
  116. package/lib/check-card/group.js.map +1 -0
  117. package/lib/check-card/index.d.ts +136 -0
  118. package/lib/check-card/index.d.ts.map +1 -0
  119. package/lib/check-card/index.js +148 -0
  120. package/lib/check-card/index.js.map +1 -0
  121. package/lib/check-card/index.less +179 -0
  122. package/lib/color-picker/ColorPicker.js +1 -1
  123. package/lib/color-picker/ColorPicker.js.map +1 -1
  124. package/lib/color-picker/index.less +5 -1
  125. package/lib/ellipsis/index.d.ts.map +1 -1
  126. package/lib/ellipsis/index.js +13 -3
  127. package/lib/ellipsis/index.js.map +1 -1
  128. package/lib/ellipsis/index.less +2 -2
  129. package/lib/handle/index.d.ts.map +1 -1
  130. package/lib/handle/index.js +20 -9
  131. package/lib/handle/index.js.map +1 -1
  132. package/lib/handle/index.less +1 -1
  133. package/lib/index.d.ts +7 -0
  134. package/lib/index.d.ts.map +1 -1
  135. package/lib/index.js +11 -1
  136. package/lib/index.js.map +1 -1
  137. package/lib/index.less +5 -0
  138. package/lib/locale/default.d.ts +1 -0
  139. package/lib/locale/default.d.ts.map +1 -1
  140. package/lib/locale/en_US.d.ts +1 -0
  141. package/lib/locale/en_US.d.ts.map +1 -1
  142. package/lib/locale/en_US.js +3 -1
  143. package/lib/locale/en_US.js.map +1 -1
  144. package/lib/locale/zh_CN.d.ts +1 -0
  145. package/lib/locale/zh_CN.d.ts.map +1 -1
  146. package/lib/locale/zh_CN.js +3 -1
  147. package/lib/locale/zh_CN.js.map +1 -1
  148. package/lib/mention/index.js +25 -0
  149. package/lib/page/Box.js +1 -1
  150. package/lib/page/Box.js.map +1 -1
  151. package/lib/page/index.js +2 -2
  152. package/lib/page/index.js.map +1 -1
  153. package/lib/page/index.less +5 -5
  154. package/lib/prev-locale.js +1 -1
  155. package/lib/prev-locale.js.map +1 -1
  156. package/lib/query-form/Field/SelectInput.d.ts.map +1 -1
  157. package/lib/query-form/Field/SelectInput.js +2 -2
  158. package/lib/query-form/Field/SelectInput.js.map +1 -1
  159. package/lib/query-form/Field/index.d.ts.map +1 -1
  160. package/lib/query-form/Field/index.js +2 -1
  161. package/lib/query-form/Field/index.js.map +1 -1
  162. package/lib/query-list-scene/QueryForm.d.ts +1 -1
  163. package/lib/query-list-scene/QueryForm.d.ts.map +1 -1
  164. package/lib/query-list-scene/QueryForm.js +2 -2
  165. package/lib/query-list-scene/QueryForm.js.map +1 -1
  166. package/lib/segmented/index.d.ts +23 -0
  167. package/lib/segmented/index.d.ts.map +1 -0
  168. package/lib/segmented/index.js +78 -0
  169. package/lib/segmented/index.js.map +1 -0
  170. package/lib/segmented/index.less +138 -0
  171. package/lib/switch/switch.d.ts +1 -1
  172. package/lib/switch/switch.d.ts.map +1 -1
  173. package/lib/switch/switch.js.map +1 -1
  174. package/lib/table/constants.d.ts +2 -0
  175. package/lib/table/constants.d.ts.map +1 -1
  176. package/lib/table/constants.js +54 -1
  177. package/lib/table/constants.js.map +1 -1
  178. package/lib/table/context.d.ts +1 -0
  179. package/lib/table/context.d.ts.map +1 -1
  180. package/lib/table/context.js.map +1 -1
  181. package/lib/table/hooks/use-column-setting.d.ts +4 -1
  182. package/lib/table/hooks/use-column-setting.d.ts.map +1 -1
  183. package/lib/table/hooks/use-column-setting.js.map +1 -1
  184. package/lib/table/table.d.ts +2 -1
  185. package/lib/table/table.d.ts.map +1 -1
  186. package/lib/table/table.js +107 -6
  187. package/lib/table/table.js.map +1 -1
  188. package/lib/table/table.less +3 -1
  189. package/lib/table/total-shower.d.ts +9 -0
  190. package/lib/table/total-shower.d.ts.map +1 -0
  191. package/lib/table/total-shower.js +13 -0
  192. package/lib/table/total-shower.js.map +1 -0
  193. package/lib/title/index.d.ts +11 -1
  194. package/lib/title/index.d.ts.map +1 -1
  195. package/lib/title/index.js +5 -5
  196. package/lib/title/index.js.map +1 -1
  197. package/lib/title/index.less +10 -10
  198. package/lib/tntd-form/Form.d.ts.map +1 -1
  199. package/lib/tntd-form/Form.js +12 -0
  200. package/lib/tntd-form/Form.js.map +1 -1
  201. package/lib/tntd-form/TntdForm/components/Item.js +55 -61
  202. package/lib/tntd-form/TntdForm/components/ItemComp.js +203 -190
  203. package/lib/tntd-form/TntdForm/components/List.js +118 -111
  204. package/lib/tntd-form/TntdForm/index.js +61 -67
  205. package/lib/tntd-form/TntdForm/interface.js +4 -2
  206. package/lib/tntd-form/TntdForm/store.js +8 -7
  207. package/lib/tntd-form/TntdForm/utils.js +182 -184
  208. package/lib/tntd-form/tntd-form.stories.d.ts.map +1 -1
  209. package/lib/tntd-form/tntd-form.stories.js +7 -5
  210. package/lib/tntd-form/tntd-form.stories.js.map +1 -1
  211. package/lib/tntd-layout/HeaderActions.js +1 -1
  212. package/lib/tntd-layout/HeaderActions.js.map +1 -1
  213. package/lib/tntd-modal/index.d.ts +15 -2
  214. package/lib/tntd-modal/index.d.ts.map +1 -1
  215. package/lib/tntd-modal/index.js +58 -23
  216. package/lib/tntd-modal/index.js.map +1 -1
  217. package/lib/tntd-modal/index.less +83 -63
  218. package/lib/tree-select/index.d.ts +7 -5
  219. package/lib/tree-select/index.d.ts.map +1 -1
  220. package/lib/tree-select/index.js.map +1 -1
  221. package/lib/utils/index.d.ts +1 -0
  222. package/lib/utils/index.d.ts.map +1 -1
  223. package/lib/utils/index.js +1 -0
  224. package/lib/utils/index.js.map +1 -1
  225. package/lib/utils/simple-template.d.ts +9 -0
  226. package/lib/utils/simple-template.d.ts.map +1 -0
  227. package/lib/utils/simple-template.js +15 -0
  228. package/lib/utils/simple-template.js.map +1 -0
  229. package/lib/water-mark/index.d.ts +49 -0
  230. package/lib/water-mark/index.d.ts.map +1 -0
  231. package/lib/water-mark/index.js +129 -0
  232. package/lib/water-mark/index.js.map +1 -0
  233. package/package.json +21 -3
  234. package/es/_util/colors.js +0 -3
  235. package/es/_util/colors.js.map +0 -1
  236. package/es/_util/easings.js +0 -9
  237. package/es/_util/easings.js.map +0 -1
  238. package/es/_util/getDataOrAriaProps.js +0 -8
  239. package/es/_util/getDataOrAriaProps.js.map +0 -1
  240. package/es/_util/getScroll.js +0 -14
  241. package/es/_util/getScroll.js.map +0 -1
  242. package/es/_util/interopDefault.js +0 -5
  243. package/es/_util/interopDefault.js.map +0 -1
  244. package/es/_util/isNumeric.js +0 -4
  245. package/es/_util/isNumeric.js.map +0 -1
  246. package/es/_util/motion.js +0 -22
  247. package/es/_util/motion.js.map +0 -1
  248. package/es/_util/openAnimation.js +0 -51
  249. package/es/_util/openAnimation.js.map +0 -1
  250. package/es/_util/raf.js +0 -25
  251. package/es/_util/raf.js.map +0 -1
  252. package/es/_util/reactNode.js +0 -6
  253. package/es/_util/reactNode.js.map +0 -1
  254. package/es/_util/ref.js +0 -15
  255. package/es/_util/ref.js.map +0 -1
  256. package/es/_util/responsiveObserve.js +0 -82
  257. package/es/_util/responsiveObserve.js.map +0 -1
  258. package/es/_util/scrollTo.js +0 -29
  259. package/es/_util/scrollTo.js.map +0 -1
  260. package/es/_util/styleChecker.js +0 -12
  261. package/es/_util/styleChecker.js.map +0 -1
  262. package/es/_util/throttleByAnimationFrame.js +0 -40
  263. package/es/_util/throttleByAnimationFrame.js.map +0 -1
  264. package/es/_util/transButton.js +0 -103
  265. package/es/_util/transButton.js.map +0 -1
  266. package/es/_util/triggerEvent.js +0 -8
  267. package/es/_util/triggerEvent.js.map +0 -1
  268. package/es/_util/type.js +0 -3
  269. package/es/_util/type.js.map +0 -1
  270. package/es/_util/warning.js +0 -5
  271. package/es/_util/warning.js.map +0 -1
  272. package/es/_util/wave.js +0 -228
  273. package/es/_util/wave.js.map +0 -1
  274. package/es/config-provider/context.js +0 -41
  275. package/es/config-provider/context.js.map +0 -1
  276. package/es/tntd-form/__tests__/demo-extend.test.js +0 -3
  277. package/es/tntd-form/__tests__/demo-extend.test.js.map +0 -1
  278. package/es/tntd-form/__tests__/demo.test.js +0 -3
  279. package/es/tntd-form/__tests__/demo.test.js.map +0 -1
  280. package/es/tntd-form/__tests__/image.test.js +0 -5
  281. package/es/tntd-form/__tests__/image.test.js.map +0 -1
  282. package/es/tntd-form/__tests__/index.test.js +0 -957
  283. package/es/tntd-form/__tests__/index.test.js.map +0 -1
  284. package/es/tntd-form/__tests__/list-noStyle.test.js +0 -41
  285. package/es/tntd-form/__tests__/list-noStyle.test.js.map +0 -1
  286. package/es/tntd-form/__tests__/list.test.js +0 -164
  287. package/es/tntd-form/__tests__/list.test.js.map +0 -1
  288. package/es/tntd-form/__tests__/ref.test.js +0 -45
  289. package/es/tntd-form/__tests__/ref.test.js.map +0 -1
  290. package/es/tntd-form/__tests__/type.test.js +0 -74
  291. package/es/tntd-form/__tests__/type.test.js.map +0 -1
  292. package/lib/_util/colors.d.ts +0 -3
  293. package/lib/_util/colors.d.ts.map +0 -1
  294. package/lib/_util/colors.js +0 -7
  295. package/lib/_util/colors.js.map +0 -1
  296. package/lib/_util/easings.d.ts +0 -2
  297. package/lib/_util/easings.d.ts.map +0 -1
  298. package/lib/_util/easings.js +0 -14
  299. package/lib/_util/easings.js.map +0 -1
  300. package/lib/_util/getDataOrAriaProps.d.ts +0 -2
  301. package/lib/_util/getDataOrAriaProps.d.ts.map +0 -1
  302. package/lib/_util/getDataOrAriaProps.js +0 -13
  303. package/lib/_util/getDataOrAriaProps.js.map +0 -1
  304. package/lib/_util/getScroll.d.ts +0 -2
  305. package/lib/_util/getScroll.d.ts.map +0 -1
  306. package/lib/_util/getScroll.js +0 -18
  307. package/lib/_util/getScroll.js.map +0 -1
  308. package/lib/_util/interopDefault.d.ts +0 -2
  309. package/lib/_util/interopDefault.d.ts.map +0 -1
  310. package/lib/_util/interopDefault.js +0 -9
  311. package/lib/_util/interopDefault.js.map +0 -1
  312. package/lib/_util/isNumeric.d.ts +0 -3
  313. package/lib/_util/isNumeric.d.ts.map +0 -1
  314. package/lib/_util/isNumeric.js +0 -7
  315. package/lib/_util/isNumeric.js.map +0 -1
  316. package/lib/_util/motion.d.ts +0 -24
  317. package/lib/_util/motion.d.ts.map +0 -1
  318. package/lib/_util/motion.js +0 -17
  319. package/lib/_util/motion.js.map +0 -1
  320. package/lib/_util/openAnimation.d.ts +0 -7
  321. package/lib/_util/openAnimation.d.ts.map +0 -1
  322. package/lib/_util/openAnimation.js +0 -58
  323. package/lib/_util/openAnimation.js.map +0 -1
  324. package/lib/_util/raf.d.ts +0 -10
  325. package/lib/_util/raf.d.ts.map +0 -1
  326. package/lib/_util/raf.js +0 -34
  327. package/lib/_util/raf.js.map +0 -1
  328. package/lib/_util/reactNode.d.ts +0 -3
  329. package/lib/_util/reactNode.d.ts.map +0 -1
  330. package/lib/_util/reactNode.js +0 -31
  331. package/lib/_util/reactNode.js.map +0 -1
  332. package/lib/_util/ref.d.ts +0 -4
  333. package/lib/_util/ref.d.ts.map +0 -1
  334. package/lib/_util/ref.js +0 -22
  335. package/lib/_util/ref.js.map +0 -1
  336. package/lib/_util/responsiveObserve.d.ts +0 -14
  337. package/lib/_util/responsiveObserve.d.ts.map +0 -1
  338. package/lib/_util/responsiveObserve.js +0 -83
  339. package/lib/_util/responsiveObserve.js.map +0 -1
  340. package/lib/_util/scrollTo.d.ts +0 -11
  341. package/lib/_util/scrollTo.d.ts.map +0 -1
  342. package/lib/_util/scrollTo.js +0 -34
  343. package/lib/_util/scrollTo.js.map +0 -1
  344. package/lib/_util/styleChecker.d.ts +0 -4
  345. package/lib/_util/styleChecker.d.ts.map +0 -1
  346. package/lib/_util/styleChecker.js +0 -14
  347. package/lib/_util/styleChecker.js.map +0 -1
  348. package/lib/_util/throttleByAnimationFrame.d.ts +0 -6
  349. package/lib/_util/throttleByAnimationFrame.d.ts.map +0 -1
  350. package/lib/_util/throttleByAnimationFrame.js +0 -49
  351. package/lib/_util/throttleByAnimationFrame.js.map +0 -1
  352. package/lib/_util/transButton.d.ts +0 -21
  353. package/lib/_util/transButton.d.ts.map +0 -1
  354. package/lib/_util/transButton.js +0 -112
  355. package/lib/_util/transButton.js.map +0 -1
  356. package/lib/_util/triggerEvent.d.ts +0 -2
  357. package/lib/_util/triggerEvent.d.ts.map +0 -1
  358. package/lib/_util/triggerEvent.js +0 -12
  359. package/lib/_util/triggerEvent.js.map +0 -1
  360. package/lib/_util/type.d.ts +0 -4
  361. package/lib/_util/type.d.ts.map +0 -1
  362. package/lib/_util/type.js +0 -9
  363. package/lib/_util/type.js.map +0 -1
  364. package/lib/_util/warning.d.ts +0 -5
  365. package/lib/_util/warning.d.ts.map +0 -1
  366. package/lib/_util/warning.js +0 -28
  367. package/lib/_util/warning.js.map +0 -1
  368. package/lib/_util/wave.d.ts +0 -26
  369. package/lib/_util/wave.d.ts.map +0 -1
  370. package/lib/_util/wave.js +0 -249
  371. package/lib/_util/wave.js.map +0 -1
  372. package/lib/config-provider/context.d.ts +0 -61
  373. package/lib/config-provider/context.d.ts.map +0 -1
  374. package/lib/config-provider/context.js +0 -64
  375. package/lib/config-provider/context.js.map +0 -1
  376. package/lib/tntd-form/TntdForm/components/Item.d.ts +0 -5
  377. package/lib/tntd-form/TntdForm/components/Item.d.ts.map +0 -1
  378. package/lib/tntd-form/TntdForm/components/Item.js.map +0 -1
  379. package/lib/tntd-form/TntdForm/components/ItemComp.d.ts +0 -5
  380. package/lib/tntd-form/TntdForm/components/ItemComp.d.ts.map +0 -1
  381. package/lib/tntd-form/TntdForm/components/ItemComp.js.map +0 -1
  382. package/lib/tntd-form/TntdForm/components/List.d.ts +0 -5
  383. package/lib/tntd-form/TntdForm/components/List.d.ts.map +0 -1
  384. package/lib/tntd-form/TntdForm/components/List.js.map +0 -1
  385. package/lib/tntd-form/TntdForm/index.d.ts +0 -10
  386. package/lib/tntd-form/TntdForm/index.d.ts.map +0 -1
  387. package/lib/tntd-form/TntdForm/index.js.map +0 -1
  388. package/lib/tntd-form/TntdForm/interface.d.ts +0 -93
  389. package/lib/tntd-form/TntdForm/interface.d.ts.map +0 -1
  390. package/lib/tntd-form/TntdForm/interface.js.map +0 -1
  391. package/lib/tntd-form/TntdForm/store.d.ts +0 -4
  392. package/lib/tntd-form/TntdForm/store.d.ts.map +0 -1
  393. package/lib/tntd-form/TntdForm/store.js.map +0 -1
  394. package/lib/tntd-form/TntdForm/utils.d.ts +0 -48
  395. package/lib/tntd-form/TntdForm/utils.d.ts.map +0 -1
  396. package/lib/tntd-form/TntdForm/utils.js.map +0 -1
  397. package/lib/tntd-form/__tests__/demo-extend.test.d.ts +0 -2
  398. package/lib/tntd-form/__tests__/demo-extend.test.d.ts.map +0 -1
  399. package/lib/tntd-form/__tests__/demo-extend.test.js +0 -5
  400. package/lib/tntd-form/__tests__/demo-extend.test.js.map +0 -1
  401. package/lib/tntd-form/__tests__/demo.test.d.ts +0 -2
  402. package/lib/tntd-form/__tests__/demo.test.d.ts.map +0 -1
  403. package/lib/tntd-form/__tests__/demo.test.js +0 -8
  404. package/lib/tntd-form/__tests__/demo.test.js.map +0 -1
  405. package/lib/tntd-form/__tests__/image.test.d.ts +0 -2
  406. package/lib/tntd-form/__tests__/image.test.d.ts.map +0 -1
  407. package/lib/tntd-form/__tests__/image.test.js +0 -7
  408. package/lib/tntd-form/__tests__/image.test.js.map +0 -1
  409. package/lib/tntd-form/__tests__/index.test.d.ts +0 -2
  410. package/lib/tntd-form/__tests__/index.test.d.ts.map +0 -1
  411. package/lib/tntd-form/__tests__/index.test.js +0 -981
  412. package/lib/tntd-form/__tests__/index.test.js.map +0 -1
  413. package/lib/tntd-form/__tests__/list-noStyle.test.d.ts +0 -2
  414. package/lib/tntd-form/__tests__/list-noStyle.test.d.ts.map +0 -1
  415. package/lib/tntd-form/__tests__/list-noStyle.test.js +0 -46
  416. package/lib/tntd-form/__tests__/list-noStyle.test.js.map +0 -1
  417. package/lib/tntd-form/__tests__/list.test.d.ts +0 -2
  418. package/lib/tntd-form/__tests__/list.test.d.ts.map +0 -1
  419. package/lib/tntd-form/__tests__/list.test.js +0 -169
  420. package/lib/tntd-form/__tests__/list.test.js.map +0 -1
  421. package/lib/tntd-form/__tests__/ref.test.d.ts +0 -2
  422. package/lib/tntd-form/__tests__/ref.test.d.ts.map +0 -1
  423. package/lib/tntd-form/__tests__/ref.test.js +0 -50
  424. package/lib/tntd-form/__tests__/ref.test.js.map +0 -1
  425. package/lib/tntd-form/__tests__/type.test.d.ts +0 -2
  426. package/lib/tntd-form/__tests__/type.test.d.ts.map +0 -1
  427. package/lib/tntd-form/__tests__/type.test.js +0 -98
  428. package/lib/tntd-form/__tests__/type.test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.js"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AAEpC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,KAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAA,CAAA;AAElE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE;IAC7D,IAAI,OAAO,CAAA;IACX,IAAI,IAAI,CAAA;IACR,IAAI,WAAW,GAAG,EAAE,CAAA;IAEpB,IAAI,WAAW,EAAE;QACf,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;gBACnD,OAAO,GAAG,IAAI,CAAA;gBACd,IAAI,GAAG,KAAK,CAAA;gBACZ,WAAW,GAAG,MAAM,CAAA;gBACpB,OAAO,KAAK,CAAA;aACb;QACH,CAAC,CAAC,CAAA;KACH;SAAM;QACL,aAAa;QACb,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;gBACtB,OAAO,GAAG,IAAI,CAAA;gBACd,IAAI,GAAG,KAAK,CAAA;gBACZ,WAAW,GAAG,MAAM,CAAA;gBACpB,OAAO,KAAK,CAAA;aACb;QACH,CAAC,CAAC,CAAA;KACH;IAED,OAAO;QACL,OAAO;QACP,IAAI;QACJ,WAAW;KACZ,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;IACjC,OAAO,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,0CAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,0CAAE,MAAM,CAAA,EAAA,CAAC,CAAA,EAAA,CAAC,CAAA;AACtF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,EAAE;IACnC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;IAEnC,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AACzF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,EAAE;IACnC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;AAC7B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE;IACrE,CAAC;IAAA,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACtC,IAAI,MAAM,CAAA;QAEV,IAAI,QAAQ,EAAE;YACZ,MAAM,GAAG,QAAQ,CACf,IAAI,EACJ,KAAK,EACL,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAC1D,KAAK,CACN,CAAA;SACF;QAED,mBAAmB;QACnB,IAAI,MAAM,KAAK,KAAK,EAAE;YACpB,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAA;SAC7E;QAED,OAAO,MAAM,KAAK,KAAK,CAAA;IACzB,CAAC,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE;IAC/C,IAAI,MAAM,CAAA;IAEV,IAAI;QACF,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;KACzB;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAA;QACtC,MAAM,GAAG,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAA;KAC9D;IAED,OAAO,MAAM,IAAI,UAAU,CAAA;AAC7B,CAAC,CAAA","sourcesContent":["export * from './checkAuth'\nexport * from './findMenuInfoByPath'\n\nexport const isGroupMenu = (menu) => menu?.children && !menu?.path\n\nexport const getSelectedMenuInfo = (selectedKey, menus = []) => {\n let subMenu\n let menu\n let parentMenus = []\n\n if (selectedKey) {\n traverseTree(menus, (node, pnode, pnodes) => {\n if (!isGroupMenu(node) && node.code === selectedKey) {\n subMenu = node\n menu = pnode\n parentMenus = pnodes\n return false\n }\n })\n } else {\n // 默认找到第一个菜单项\n traverseTree(menus, (node, pnode, pnodes) => {\n if (!isGroupMenu(node)) {\n subMenu = node\n menu = pnode\n parentMenus = pnodes\n return false\n }\n })\n }\n\n return {\n subMenu,\n menu,\n parentMenus,\n }\n}\n\nexport const hasLevel3 = (menus) => {\n return menus?.some((menu) => menu?.children?.some((item) => item?.children?.length))\n}\n\nexport const isNewTabMenu = (menu) => {\n const { target, path } = menu || {}\n\n return target === '_blank' || (/^http/i.test(path) && /blankType=newTarget/.test(path))\n}\n\nexport const openInNewTab = (path) => {\n window.open(path, '_blank')\n}\n\nexport const traverseTree = (treeData, callback, pnode, pnodes = []) => {\n ;(treeData || []).every((node, index) => {\n let result\n\n if (callback) {\n result = callback(\n node,\n pnode,\n pnodes?.length ? pnodes : [pnode].filter((item) => !!item),\n index\n )\n }\n\n // 回调函数返回false则终止遍历\n if (result !== false) {\n node && traverseTree(node.children || [], callback, node, [node, ...pnodes])\n }\n\n return result !== false\n })\n\n return treeData\n}\n\nexport const safeParseJSON = (str, defaultObj) => {\n let result\n\n try {\n result = JSON.parse(str)\n } catch (err) {\n console.warn('json parse error:', err)\n result = typeof defaultObj === 'undefined' ? str : defaultObj\n }\n\n return result || defaultObj\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.js"],"names":[],"mappings":"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","sourcesContent":["export * from './checkAuth'\nexport * from './findMenuInfoByPath'\nexport * from './simple-template'\n\nexport const isGroupMenu = (menu) => menu?.children && !menu?.path\n\nexport const getSelectedMenuInfo = (selectedKey, menus = []) => {\n let subMenu\n let menu\n let parentMenus = []\n\n if (selectedKey) {\n traverseTree(menus, (node, pnode, pnodes) => {\n if (!isGroupMenu(node) && node.code === selectedKey) {\n subMenu = node\n menu = pnode\n parentMenus = pnodes\n return false\n }\n })\n } else {\n // 默认找到第一个菜单项\n traverseTree(menus, (node, pnode, pnodes) => {\n if (!isGroupMenu(node)) {\n subMenu = node\n menu = pnode\n parentMenus = pnodes\n return false\n }\n })\n }\n\n return {\n subMenu,\n menu,\n parentMenus,\n }\n}\n\nexport const hasLevel3 = (menus) => {\n return menus?.some((menu) => menu?.children?.some((item) => item?.children?.length))\n}\n\nexport const isNewTabMenu = (menu) => {\n const { target, path } = menu || {}\n\n return target === '_blank' || (/^http/i.test(path) && /blankType=newTarget/.test(path))\n}\n\nexport const openInNewTab = (path) => {\n window.open(path, '_blank')\n}\n\nexport const traverseTree = (treeData, callback, pnode, pnodes = []) => {\n ;(treeData || []).every((node, index) => {\n let result\n\n if (callback) {\n result = callback(\n node,\n pnode,\n pnodes?.length ? pnodes : [pnode].filter((item) => !!item),\n index\n )\n }\n\n // 回调函数返回false则终止遍历\n if (result !== false) {\n node && traverseTree(node.children || [], callback, node, [node, ...pnodes])\n }\n\n return result !== false\n })\n\n return treeData\n}\n\nexport const safeParseJSON = (str, defaultObj) => {\n let result\n\n try {\n result = JSON.parse(str)\n } catch (err) {\n console.warn('json parse error:', err)\n result = typeof defaultObj === 'undefined' ? str : defaultObj\n }\n\n return result || defaultObj\n}\n"]}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * 简单的模板替换
3
+ *
4
+ * @param template
5
+ * @param data
6
+ * @returns
7
+ */
8
+ export function simpleTemplate(template, data = {}) {
9
+ return template === null || template === void 0 ? void 0 : template.replace(/\${(.*?)}/g, (match, key) => data[key.trim()].toString());
10
+ }
11
+ //# sourceMappingURL=simple-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-template.js","sourceRoot":"","sources":["../../src/utils/simple-template.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,QAAiB,EAAE,OAAwC,EAAE;IAC1F,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;AACrF,CAAC","sourcesContent":["/**\n * 简单的模板替换\n *\n * @param template\n * @param data\n * @returns\n */\nexport function simpleTemplate(template?: string, data: Record<string, string | number> = {}) {\n return template?.replace(/\\${(.*?)}/g, (match, key) => data[key.trim()].toString())\n}\n"]}
@@ -0,0 +1,99 @@
1
+ import cn from 'classnames';
2
+ import React, { useEffect, useState } from 'react';
3
+ /**
4
+ * 返回当前显示设备的物理像素分辨率与CSS像素分辨率之比
5
+ *
6
+ * @param context
7
+ * @see api 有些废弃了,其实类型 CanvasRenderingContext2D
8
+ */
9
+ const getPixelRatio = (context) => {
10
+ if (!context) {
11
+ return 1;
12
+ }
13
+ const backingStore = context.backingStorePixelRatio ||
14
+ context.webkitBackingStorePixelRatio ||
15
+ context.mozBackingStorePixelRatio ||
16
+ context.msBackingStorePixelRatio ||
17
+ context.oBackingStorePixelRatio ||
18
+ 1;
19
+ return (window.devicePixelRatio || 1) / backingStore;
20
+ };
21
+ export const Watermark = (props) => {
22
+ const { children, style, className, markStyle, markClassName,
23
+ // antd 内容层 zIndex 基本上在 10 以下 https://github.com/ant-design/ant-design/blob/6192403b2ce517c017f9e58a32d58774921c10cd/components/style/themes/default.less#L335
24
+ zIndex = 9, gapX = 212, gapY = 222, width = 120, height = 64, rotate = -22, // 默认旋转 -22 度
25
+ image, content, offsetLeft, offsetTop, fontStyle = 'normal', textAlign = 'center', fontWeight = 'normal', fontColor = 'rgba(0,0,0,.15)', fontSize = 14, fontFamily = 'sans-serif', prefixCls = 'tntd-watermark', } = props;
26
+ const wrapperCls = cn([`${prefixCls}-wrapper`, className]);
27
+ const watermarkCls = cn([prefixCls, markClassName]);
28
+ const [base64Url, setBase64Url] = useState('');
29
+ useEffect(() => {
30
+ const canvas = document.createElement('canvas');
31
+ const ctx = canvas.getContext('2d');
32
+ const ratio = getPixelRatio(ctx);
33
+ const canvasWidth = `${(gapX + width) * ratio}px`;
34
+ const canvasHeight = `${(gapY + height) * ratio}px`;
35
+ const canvasOffsetLeft = offsetLeft || gapX / 2;
36
+ const canvasOffsetTop = offsetTop || gapY / 2;
37
+ canvas.setAttribute('width', canvasWidth);
38
+ canvas.setAttribute('height', canvasHeight);
39
+ if (ctx) {
40
+ // 旋转字符 rotate
41
+ ctx.translate(canvasOffsetLeft * ratio, canvasOffsetTop * ratio);
42
+ ctx.rotate((Math.PI / 180) * Number(rotate));
43
+ const markWidth = width * ratio;
44
+ const markHeight = height * ratio;
45
+ if (image) {
46
+ const img = new Image();
47
+ img.crossOrigin = 'anonymous';
48
+ img.referrerPolicy = 'no-referrer';
49
+ img.src = image;
50
+ img.onload = () => {
51
+ ctx.drawImage(img, 0, 0, markWidth, markHeight);
52
+ setBase64Url(canvas.toDataURL());
53
+ };
54
+ }
55
+ else if (content) {
56
+ const markSize = Number(fontSize) * ratio;
57
+ ctx.font = `${fontStyle} normal ${fontWeight} ${markSize}px/${markHeight}px ${fontFamily}`;
58
+ ctx.fillStyle = fontColor;
59
+ ctx.textAlign = textAlign;
60
+ if (Array.isArray(content)) {
61
+ content === null || content === void 0 ? void 0 : content.forEach((item, index) => ctx.fillText(item, 0, index * markSize));
62
+ }
63
+ else {
64
+ ctx.fillText(content, 0, 0);
65
+ }
66
+ setBase64Url(canvas.toDataURL());
67
+ }
68
+ }
69
+ else {
70
+ // eslint-disable-next-line no-console
71
+ console.error('当前环境不支持Canvas');
72
+ }
73
+ }, [
74
+ gapX,
75
+ gapY,
76
+ offsetLeft,
77
+ offsetTop,
78
+ rotate,
79
+ fontStyle,
80
+ textAlign,
81
+ fontWeight,
82
+ width,
83
+ height,
84
+ fontFamily,
85
+ fontColor,
86
+ image,
87
+ content,
88
+ fontSize,
89
+ ]);
90
+ return (React.createElement("div", { style: Object.assign({ position: 'relative' }, style), className: wrapperCls },
91
+ children,
92
+ React.createElement("div", { className: watermarkCls, style: Object.assign(Object.assign({ zIndex, position: 'absolute', left: 0, top: 0, width: '100%', height: '100%', backgroundSize: `${gapX + width}px`, pointerEvents: 'none', backgroundRepeat: 'repeat' }, (base64Url
93
+ ? {
94
+ backgroundImage: `url('${base64Url}')`,
95
+ }
96
+ : {})), markStyle) })));
97
+ };
98
+ export default Watermark;
99
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/water-mark/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAgDlD;;;;;GAKG;AACH,MAAM,aAAa,GAAG,CAAC,OAAY,EAAE,EAAE;IACrC,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,CAAC,CAAA;KACT;IACD,MAAM,YAAY,GAChB,OAAO,CAAC,sBAAsB;QAC9B,OAAO,CAAC,4BAA4B;QACpC,OAAO,CAAC,yBAAyB;QACjC,OAAO,CAAC,wBAAwB;QAChC,OAAO,CAAC,uBAAuB;QAC/B,CAAC,CAAA;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC,GAAG,YAAY,CAAA;AACtD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAA6B,CAAC,KAAK,EAAE,EAAE;IAC3D,MAAM,EACJ,QAAQ,EACR,KAAK,EACL,SAAS,EACT,SAAS,EACT,aAAa;IACb,8JAA8J;IAC9J,MAAM,GAAG,CAAC,EACV,IAAI,GAAG,GAAG,EACV,IAAI,GAAG,GAAG,EACV,KAAK,GAAG,GAAG,EACX,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,CAAC,EAAE,EAAE,aAAa;IAC3B,KAAK,EACL,OAAO,EACP,UAAU,EACV,SAAS,EACT,SAAS,GAAG,QAAQ,EACpB,SAAS,GAAG,QAAQ,EACpB,UAAU,GAAG,QAAQ,EACrB,SAAS,GAAG,iBAAiB,EAC7B,QAAQ,GAAG,EAAE,EACb,UAAU,GAAG,YAAY,EACzB,SAAS,GAAG,gBAAgB,GAC7B,GAAG,KAAK,CAAA;IAET,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,UAAU,EAAE,SAAS,CAAC,CAAC,CAAA;IAC1D,MAAM,YAAY,GAAG,EAAE,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAA;IACnD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;QAEhC,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,IAAI,CAAA;QACjD,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,KAAK,IAAI,CAAA;QACnD,MAAM,gBAAgB,GAAG,UAAU,IAAI,IAAI,GAAG,CAAC,CAAA;QAC/C,MAAM,eAAe,GAAG,SAAS,IAAI,IAAI,GAAG,CAAC,CAAA;QAE7C,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QACzC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAE3C,IAAI,GAAG,EAAE;YACP,cAAc;YACd,GAAG,CAAC,SAAS,CAAC,gBAAgB,GAAG,KAAK,EAAE,eAAe,GAAG,KAAK,CAAC,CAAA;YAChE,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;YAC5C,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,CAAA;YAC/B,MAAM,UAAU,GAAG,MAAM,GAAG,KAAK,CAAA;YAEjC,IAAI,KAAK,EAAE;gBACT,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAA;gBACvB,GAAG,CAAC,WAAW,GAAG,WAAW,CAAA;gBAC7B,GAAG,CAAC,cAAc,GAAG,aAAa,CAAA;gBAClC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAA;gBACf,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;oBAChB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;oBAC/C,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;gBAClC,CAAC,CAAA;aACF;iBAAM,IAAI,OAAO,EAAE;gBAClB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAA;gBACzC,GAAG,CAAC,IAAI,GAAG,GAAG,SAAS,WAAW,UAAU,IAAI,QAAQ,MAAM,UAAU,MAAM,UAAU,EAAE,CAAA;gBAC1F,GAAG,CAAC,SAAS,GAAG,SAAS,CAAA;gBACzB,GAAG,CAAC,SAAS,GAAG,SAAS,CAAA;gBACzB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBAC1B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAA;iBAC3F;qBAAM;oBACL,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;iBAC5B;gBACD,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;aACjC;SACF;aAAM;YACL,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;SAC/B;IACH,CAAC,EAAE;QACD,IAAI;QACJ,IAAI;QACJ,UAAU;QACV,SAAS;QACT,MAAM;QACN,SAAS;QACT,SAAS;QACT,UAAU;QACV,KAAK;QACL,MAAM;QACN,UAAU;QACV,SAAS;QACT,KAAK;QACL,OAAO;QACP,QAAQ;KACT,CAAC,CAAA;IAEF,OAAO,CACL,6BACE,KAAK,kBACH,QAAQ,EAAE,UAAU,IACjB,KAAK,GAEV,SAAS,EAAE,UAAU;QAEpB,QAAQ;QACT,6BACE,SAAS,EAAE,YAAY,EACvB,KAAK,gCACH,MAAM,EACN,QAAQ,EAAE,UAAU,EACpB,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,GAAG,IAAI,GAAG,KAAK,IAAI,EACnC,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,QAAQ,IACvB,CAAC,SAAS;gBACX,CAAC,CAAC;oBACE,eAAe,EAAE,QAAQ,SAAS,IAAI;iBACvC;gBACH,CAAC,CAAC,EAAE,CAAC,GACJ,SAAS,IAEd,CACE,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,SAAS,CAAA","sourcesContent":["import cn from 'classnames'\nimport React, { useEffect, useState } from 'react'\n\nexport interface WatermarkProps {\n /** 类名 */\n className?: string\n /** 样式 */\n style?: React.CSSProperties\n /** 水印样式 */\n markStyle?: React.CSSProperties\n /** 水印类名 */\n markClassName?: string\n /** 水印之间的水平间距 */\n gapX?: number\n /** 水印之间的垂直间距 */\n gapY?: number\n /** 追加的水印元素的z-index */\n zIndex?: number\n /** 水印的宽度 */\n width?: number\n /** 水印的高度 */\n height?: number\n /** 水印在canvas 画布上绘制的垂直偏移量,正常情况下,水印绘制在中间位置, 即 offsetTop = gapY / 2 */\n offsetTop?: number // 水印图片距离绘制 canvas 单元的顶部距离\n /** 水印在canvas 画布上绘制的水平偏移量, 正常情况下,水印绘制在中间位置, 即 offsetTop = gapX / 2 */\n offsetLeft?: number\n /** 水印绘制时,旋转的角度,单位 ° */\n rotate?: number\n /** ClassName 前缀 */\n prefixCls?: string\n /** 高清印图片源, 为了高清屏幕显示,建议使用 2倍或3倍图,优先使用图片渲染水印。 */\n image?: string\n /** 水印文字内容 */\n content?: string | string[]\n /** 文字颜色 */\n fontColor?: string\n /** 文字样式 */\n fontStyle?: 'none' | 'normal' | 'italic' | 'oblique'\n /** 文字对齐 */\n textAlign?: 'left' | 'center' | 'right'\n /** 文字族 */\n fontFamily?: string\n /** 文字粗细 */\n fontWeight?: 'normal' | 'light' | 'weight' | number\n /** 文字大小 */\n fontSize?: number | string\n\n children?: React.ReactNode\n}\n/**\n * 返回当前显示设备的物理像素分辨率与CSS像素分辨率之比\n *\n * @param context\n * @see api 有些废弃了,其实类型 CanvasRenderingContext2D\n */\nconst getPixelRatio = (context: any) => {\n if (!context) {\n return 1\n }\n const backingStore =\n context.backingStorePixelRatio ||\n context.webkitBackingStorePixelRatio ||\n context.mozBackingStorePixelRatio ||\n context.msBackingStorePixelRatio ||\n context.oBackingStorePixelRatio ||\n 1\n return (window.devicePixelRatio || 1) / backingStore\n}\n\nexport const Watermark: React.FC<WatermarkProps> = (props) => {\n const {\n children,\n style,\n className,\n markStyle,\n markClassName,\n // antd 内容层 zIndex 基本上在 10 以下 https://github.com/ant-design/ant-design/blob/6192403b2ce517c017f9e58a32d58774921c10cd/components/style/themes/default.less#L335\n zIndex = 9,\n gapX = 212,\n gapY = 222,\n width = 120,\n height = 64,\n rotate = -22, // 默认旋转 -22 度\n image,\n content,\n offsetLeft,\n offsetTop,\n fontStyle = 'normal',\n textAlign = 'center',\n fontWeight = 'normal',\n fontColor = 'rgba(0,0,0,.15)',\n fontSize = 14,\n fontFamily = 'sans-serif',\n prefixCls = 'tntd-watermark',\n } = props\n\n const wrapperCls = cn([`${prefixCls}-wrapper`, className])\n const watermarkCls = cn([prefixCls, markClassName])\n const [base64Url, setBase64Url] = useState('')\n\n useEffect(() => {\n const canvas = document.createElement('canvas')\n const ctx = canvas.getContext('2d')\n const ratio = getPixelRatio(ctx)\n\n const canvasWidth = `${(gapX + width) * ratio}px`\n const canvasHeight = `${(gapY + height) * ratio}px`\n const canvasOffsetLeft = offsetLeft || gapX / 2\n const canvasOffsetTop = offsetTop || gapY / 2\n\n canvas.setAttribute('width', canvasWidth)\n canvas.setAttribute('height', canvasHeight)\n\n if (ctx) {\n // 旋转字符 rotate\n ctx.translate(canvasOffsetLeft * ratio, canvasOffsetTop * ratio)\n ctx.rotate((Math.PI / 180) * Number(rotate))\n const markWidth = width * ratio\n const markHeight = height * ratio\n\n if (image) {\n const img = new Image()\n img.crossOrigin = 'anonymous'\n img.referrerPolicy = 'no-referrer'\n img.src = image\n img.onload = () => {\n ctx.drawImage(img, 0, 0, markWidth, markHeight)\n setBase64Url(canvas.toDataURL())\n }\n } else if (content) {\n const markSize = Number(fontSize) * ratio\n ctx.font = `${fontStyle} normal ${fontWeight} ${markSize}px/${markHeight}px ${fontFamily}`\n ctx.fillStyle = fontColor\n ctx.textAlign = textAlign\n if (Array.isArray(content)) {\n content?.forEach((item: string, index: number) => ctx.fillText(item, 0, index * markSize))\n } else {\n ctx.fillText(content, 0, 0)\n }\n setBase64Url(canvas.toDataURL())\n }\n } else {\n // eslint-disable-next-line no-console\n console.error('当前环境不支持Canvas')\n }\n }, [\n gapX,\n gapY,\n offsetLeft,\n offsetTop,\n rotate,\n fontStyle,\n textAlign,\n fontWeight,\n width,\n height,\n fontFamily,\n fontColor,\n image,\n content,\n fontSize,\n ])\n\n return (\n <div\n style={{\n position: 'relative',\n ...style,\n }}\n className={wrapperCls}\n >\n {children}\n <div\n className={watermarkCls}\n style={{\n zIndex,\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n backgroundSize: `${gapX + width}px`,\n pointerEvents: 'none',\n backgroundRepeat: 'repeat',\n ...(base64Url\n ? {\n backgroundImage: `url('${base64Url}')`,\n }\n : {}),\n ...markStyle,\n }}\n />\n </div>\n )\n}\n\nexport default Watermark\n"]}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import './index.less';
3
+ export interface ProCardActionsProps {
4
+ /**
5
+ * 自定义前缀
6
+ *
7
+ * @ignore
8
+ */
9
+ prefixCls?: string;
10
+ /** 操作按钮 */
11
+ actions?: React.ReactNode[] | React.ReactNode;
12
+ }
13
+ declare const ProCardActions: React.FC<ProCardActionsProps>;
14
+ export default ProCardActions;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,cAAc,CAAA;AAErB,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW;IACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,SAAS,CAAA;CAC9C;AAED,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAmBjD,CAAA;AAED,eAAe,cAAc,CAAA"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const classnames_1 = __importDefault(require("classnames"));
7
+ const react_1 = __importDefault(require("react"));
8
+ require("./index.less");
9
+ const ProCardActions = (props) => {
10
+ const { actions, prefixCls } = props;
11
+ if (Array.isArray(actions) && (actions === null || actions === void 0 ? void 0 : actions.length)) {
12
+ return (react_1.default.createElement("ul", { className: (0, classnames_1.default)(`${prefixCls}-actions`) }, actions.map((action, index) => (react_1.default.createElement("li", { style: { width: `${100 / actions.length}%`, padding: 0, margin: 0 }, key: `action-${index}`, className: (0, classnames_1.default)(`${prefixCls}-actions-item`) }, action)))));
13
+ }
14
+ return react_1.default.createElement("ul", { className: (0, classnames_1.default)(`${prefixCls}-actions`) }, actions);
15
+ };
16
+ exports.default = ProCardActions;
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actions/index.tsx"],"names":[],"mappings":";;;;;AAAA,4DAAmC;AACnC,kDAAyB;AACzB,wBAAqB;AAarB,MAAM,cAAc,GAAkC,CAAC,KAAK,EAAE,EAAE;IAC9D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;IAEpC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,EAAE;QAC7C,OAAO,CACL,sCAAI,SAAS,EAAE,IAAA,oBAAU,EAAC,GAAG,SAAS,UAAU,CAAC,IAC9C,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAC9B,sCACE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EACnE,GAAG,EAAE,UAAU,KAAK,EAAE,EACtB,SAAS,EAAE,IAAA,oBAAU,EAAC,GAAG,SAAS,eAAe,CAAC,IAEjD,MAAM,CACJ,CACN,CAAC,CACC,CACN,CAAA;KACF;IACD,OAAO,sCAAI,SAAS,EAAE,IAAA,oBAAU,EAAC,GAAG,SAAS,UAAU,CAAC,IAAG,OAAO,CAAM,CAAA;AAC1E,CAAC,CAAA;AAED,kBAAe,cAAc,CAAA","sourcesContent":["import classNames from 'classnames'\nimport React from 'react'\nimport './index.less'\n\nexport interface ProCardActionsProps {\n /**\n * 自定义前缀\n *\n * @ignore\n */\n prefixCls?: string\n /** 操作按钮 */\n actions?: React.ReactNode[] | React.ReactNode\n}\n\nconst ProCardActions: React.FC<ProCardActionsProps> = (props) => {\n const { actions, prefixCls } = props\n\n if (Array.isArray(actions) && actions?.length) {\n return (\n <ul className={classNames(`${prefixCls}-actions`)}>\n {actions.map((action, index) => (\n <li\n style={{ width: `${100 / actions.length}%`, padding: 0, margin: 0 }}\n key={`action-${index}`}\n className={classNames(`${prefixCls}-actions-item`)}\n >\n {action}\n </li>\n ))}\n </ul>\n )\n }\n return <ul className={classNames(`${prefixCls}-actions`)}>{actions}</ul>\n}\n\nexport default ProCardActions\n"]}
@@ -0,0 +1,70 @@
1
+ .tntd-card-actions {
2
+ margin-block:0;
3
+ margin-inline:0;
4
+ padding-block:0;
5
+ padding-inline:0;
6
+ list-style:none;
7
+ display:flex;
8
+ gap:8px;
9
+ background:#ffffff;
10
+ border-block-start:1px solid rgba(5,5,5,0.06);
11
+ min-height:42px;
12
+ }
13
+ .tntd-card-actions>* {
14
+ align-items:center;
15
+ justify-content:center;
16
+ flex:1;
17
+ display:flex;
18
+ cursor:pointer;
19
+ color:rgba(42,46,54,0.65);
20
+ transition:color 0.3s;
21
+ }
22
+ .tntd-card-actions>*:hover {
23
+ color:#468fff;
24
+ }
25
+ .tntd-card-actions>li>div {
26
+ flex:1;
27
+ width:100%;
28
+ margin-block:12px;
29
+ margin-inline:0;
30
+ color:rgba(42,46,54,0.65);
31
+ text-align:center;
32
+ }
33
+ .tntd-card-actions>li>div a {
34
+ color:rgba(42,46,54,0.65);
35
+ transition:color 0.3s;
36
+ }
37
+ .tntd-card-actions>li>div a:hover {
38
+ color:#468fff;
39
+ }
40
+ .tntd-card-actions>li>div div {
41
+ position:relative;
42
+ display:block;
43
+ min-width:32px;
44
+ font-size:14px;
45
+ line-height:1.5714285714285714;
46
+ cursor:pointer;
47
+ }
48
+ .tntd-card-actions>li>div div:hover {
49
+ color:#468fff;
50
+ transition:color 0.3s;
51
+ }
52
+ .tntd-card-actions>li>div div a:not(.ant-btn),
53
+ .tntd-card-actions>li>div div >.anticon {
54
+ display:inline-block;
55
+ width:100%;
56
+ color:rgba(42,46,54,0.65);
57
+ line-height:22px;
58
+ transition:color 0.3s;
59
+ }
60
+ .tntd-card-actions>li>div div a:not(.ant-btn):hover,
61
+ .tntd-card-actions>li>div div >.anticon:hover {
62
+ color:#468fff;
63
+ }
64
+ .tntd-card-actions>li>div div .anticon {
65
+ font-size:16px;
66
+ line-height:22px;
67
+ }
68
+ .tntd-card-actions>li>div:not(:last-child) {
69
+ border-inline-end:1px solid rgba(5,5,5,0.06);
70
+ }
@@ -0,0 +1,130 @@
1
+ import React from 'react';
2
+ export declare type CheckCardValueType = string | number | boolean;
3
+ export declare type CheckGroupValueType = CheckCardValueType[] | CheckCardValueType | undefined;
4
+ export interface CheckCardOptionType {
5
+ /**
6
+ * 标题展示
7
+ *
8
+ * @title 标题
9
+ */
10
+ title?: React.ReactNode;
11
+ /**
12
+ * 选项值
13
+ *
14
+ * @title 值
15
+ */
16
+ value: CheckCardValueType;
17
+ /**
18
+ * 描述展示
19
+ *
20
+ * @title 描述
21
+ */
22
+ description?: React.ReactNode;
23
+ /**
24
+ * 组件尺寸,支持大,中,小三种默认尺寸,用户可以自定义宽高
25
+ *
26
+ * @default default
27
+ * @title 组件尺寸
28
+ */
29
+ size?: 'large' | 'default' | 'small';
30
+ /**
31
+ * 左侧头像展示,可以是一个链接也可以是是一个 ReactNode
32
+ *
33
+ * @title 左侧头像区域
34
+ */
35
+ avatar?: React.ReactNode;
36
+ /**
37
+ * 图片封面默认,该模式下其他展示值被忽略
38
+ *
39
+ * @title 图片封面
40
+ */
41
+ cover?: React.ReactNode;
42
+ /**
43
+ * 不可用
44
+ *
45
+ * @default false
46
+ * @title 不可用
47
+ */
48
+ disabled?: boolean;
49
+ /** Change 回调 */
50
+ onChange?: (checked: boolean) => void;
51
+ }
52
+ export interface AbstractCheckCardGroupProps {
53
+ /** @ignore */
54
+ prefixCls?: string;
55
+ /** @ignore */
56
+ className?: string;
57
+ /** 指定可选项 */
58
+ options?: (CheckCardOptionType | string)[];
59
+ /** 整组失效 */
60
+ disabled?: boolean;
61
+ /** @ignore */
62
+ style?: React.CSSProperties;
63
+ /**
64
+ * 组件尺寸,支持大,中,小三种默认尺寸,用户可以自定义宽高
65
+ *
66
+ * @default default
67
+ */
68
+ size?: 'large' | 'default' | 'small';
69
+ /**
70
+ * @acceptions CheckCard
71
+ * @ignore
72
+ */
73
+ children?: React.ReactNode;
74
+ }
75
+ export declare const CardLoading: React.FC<{
76
+ prefixCls: string;
77
+ }>;
78
+ export interface CheckCardGroupProps extends AbstractCheckCardGroupProps {
79
+ /**
80
+ * 是否多选
81
+ *
82
+ * @title 是否多选
83
+ */
84
+ multiple?: boolean;
85
+ /**
86
+ * 默认选中的选项
87
+ *
88
+ * @title 默认选中的选项
89
+ */
90
+ defaultValue?: CheckGroupValueType;
91
+ /**
92
+ * 指定选中的选项
93
+ *
94
+ * @title 指定选中的选项
95
+ */
96
+ value?: CheckGroupValueType;
97
+ /**
98
+ * 当卡片组内容还在加载中时,可以用 loading 展示一个占位
99
+ *
100
+ * @title 加载中
101
+ */
102
+ loading?: boolean;
103
+ /**
104
+ * 是否显示边框
105
+ *
106
+ * @title 显示边框
107
+ */
108
+ bordered?: boolean;
109
+ /** 变化时回调函数 */
110
+ onChange?: (checkedValue: CheckGroupValueType) => void;
111
+ }
112
+ export interface CheckCardGroupState {
113
+ value: CheckGroupValueType;
114
+ registeredValues: CheckCardValueType[];
115
+ }
116
+ export interface CheckCardGroupConnextType {
117
+ toggleOption?: (option: CheckCardOptionType) => void;
118
+ value?: any;
119
+ disabled?: boolean;
120
+ size?: 'default' | 'large' | 'small';
121
+ loading?: boolean;
122
+ bordered?: boolean;
123
+ multiple?: boolean;
124
+ registerValue?: (value: any) => void;
125
+ cancelValue?: (value: any) => void;
126
+ }
127
+ export declare const CheckCardGroupConnext: React.Context<CheckCardGroupConnextType | null>;
128
+ declare const CheckCardGroup: React.FC<CheckCardGroupProps>;
129
+ export default CheckCardGroup;
130
+ //# sourceMappingURL=group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../../src/check-card/group.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __rest = (this && this.__rest) || function (s, e) {
26
+ var t = {};
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
+ t[p] = s[p];
29
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
+ t[p[i]] = s[p[i]];
33
+ }
34
+ return t;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.CheckCardGroupConnext = exports.CardLoading = void 0;
41
+ const useMergedState_1 = __importDefault(require("rc-util/lib/hooks/useMergedState"));
42
+ const index_1 = require("../index");
43
+ const classnames_1 = __importDefault(require("classnames"));
44
+ const lodash_1 = require("lodash");
45
+ const react_1 = __importStar(require("react"));
46
+ const index_2 = __importDefault(require("./index"));
47
+ const CardLoading = ({ prefixCls }) => {
48
+ const loadingBlockClass = `${prefixCls}-loading-block`;
49
+ return (react_1.default.createElement("div", { className: `${prefixCls}-loading-content` },
50
+ react_1.default.createElement(index_1.Row, { gutter: {
51
+ xs: 8,
52
+ sm: 8,
53
+ md: 8,
54
+ lg: 12,
55
+ } },
56
+ react_1.default.createElement(index_1.Col, { span: 22 },
57
+ react_1.default.createElement("div", { className: loadingBlockClass }))),
58
+ react_1.default.createElement(index_1.Row, { gutter: 8 },
59
+ react_1.default.createElement(index_1.Col, { span: 8 },
60
+ react_1.default.createElement("div", { className: loadingBlockClass })),
61
+ react_1.default.createElement(index_1.Col, { span: 14 },
62
+ react_1.default.createElement("div", { className: loadingBlockClass }))),
63
+ react_1.default.createElement(index_1.Row, { gutter: 8 },
64
+ react_1.default.createElement(index_1.Col, { span: 6 },
65
+ react_1.default.createElement("div", { className: loadingBlockClass })),
66
+ react_1.default.createElement(index_1.Col, { span: 16 },
67
+ react_1.default.createElement("div", { className: loadingBlockClass }))),
68
+ react_1.default.createElement(index_1.Row, { gutter: 8 },
69
+ react_1.default.createElement(index_1.Col, { span: 13 },
70
+ react_1.default.createElement("div", { className: loadingBlockClass })),
71
+ react_1.default.createElement(index_1.Col, { span: 9 },
72
+ react_1.default.createElement("div", { className: loadingBlockClass }))),
73
+ react_1.default.createElement(index_1.Row, { gutter: 8 },
74
+ react_1.default.createElement(index_1.Col, { span: 4 },
75
+ react_1.default.createElement("div", { className: loadingBlockClass })),
76
+ react_1.default.createElement(index_1.Col, { span: 3 },
77
+ react_1.default.createElement("div", { className: loadingBlockClass })),
78
+ react_1.default.createElement(index_1.Col, { span: 14 },
79
+ react_1.default.createElement("div", { className: loadingBlockClass })))));
80
+ };
81
+ exports.CardLoading = CardLoading;
82
+ exports.CheckCardGroupConnext = (0, react_1.createContext)(null);
83
+ const CheckCardGroup = (props) => {
84
+ const { prefixCls: customizePrefixCls, className, style, options = [], loading = false, multiple = false, bordered = true, onChange } = props, restProps = __rest(props, ["prefixCls", "className", "style", "options", "loading", "multiple", "bordered", "onChange"]);
85
+ const getOptions = (0, react_1.useCallback)(() => {
86
+ return options === null || options === void 0 ? void 0 : options.map((option) => {
87
+ if (typeof option === 'string') {
88
+ return {
89
+ title: option,
90
+ value: option,
91
+ };
92
+ }
93
+ return option;
94
+ });
95
+ }, [options]);
96
+ const prefixCls = 'tntd-checkcard';
97
+ const groupPrefixCls = `${prefixCls}-group`;
98
+ const domProps = (0, lodash_1.omit)(restProps, ['children', 'defaultValue', 'value', 'disabled', 'size']);
99
+ const [stateValue, setStateValue] = (0, useMergedState_1.default)(props.defaultValue, {
100
+ value: props.value,
101
+ onChange: props.onChange,
102
+ });
103
+ const registerValueMap = (0, react_1.useRef)(new Map());
104
+ const registerValue = (value) => {
105
+ var _a;
106
+ (_a = registerValueMap.current) === null || _a === void 0 ? void 0 : _a.set(value, true);
107
+ };
108
+ const cancelValue = (value) => {
109
+ var _a;
110
+ (_a = registerValueMap.current) === null || _a === void 0 ? void 0 : _a.delete(value);
111
+ };
112
+ const toggleOption = (option) => {
113
+ var _a;
114
+ if (!multiple) {
115
+ let changeValue;
116
+ changeValue = stateValue;
117
+ // 单选模式
118
+ if (changeValue === option.value) {
119
+ changeValue = undefined;
120
+ }
121
+ else {
122
+ changeValue = option.value;
123
+ }
124
+ setStateValue === null || setStateValue === void 0 ? void 0 : setStateValue(changeValue);
125
+ }
126
+ if (multiple) {
127
+ let changeValue = [];
128
+ const stateValues = stateValue;
129
+ const hasOption = stateValues === null || stateValues === void 0 ? void 0 : stateValues.includes(option.value);
130
+ changeValue = [...(stateValues || [])];
131
+ if (!hasOption) {
132
+ changeValue.push(option.value);
133
+ }
134
+ if (hasOption) {
135
+ changeValue = changeValue.filter((itemValue) => itemValue !== option.value);
136
+ }
137
+ const newOptions = getOptions();
138
+ const newValue = (_a = changeValue === null || changeValue === void 0 ? void 0 : changeValue.filter((val) => registerValueMap.current.has(val))) === null || _a === void 0 ? void 0 : _a.sort((a, b) => {
139
+ const indexA = newOptions.findIndex((opt) => opt.value === a);
140
+ const indexB = newOptions.findIndex((opt) => opt.value === b);
141
+ return indexA - indexB;
142
+ });
143
+ setStateValue(newValue);
144
+ }
145
+ };
146
+ const children = (0, react_1.useMemo)(() => {
147
+ if (loading) {
148
+ return new Array(options.length || react_1.default.Children.toArray(props.children).length || 1)
149
+ .fill(0)
150
+ .map((_, index) => react_1.default.createElement(index_2.default, { key: index, loading: true }));
151
+ }
152
+ if (options && options.length > 0) {
153
+ const optionValue = stateValue;
154
+ return getOptions().map((option) => {
155
+ var _a;
156
+ return (react_1.default.createElement(index_2.default, { key: option.value.toString(), disabled: option.disabled, size: (_a = option.size) !== null && _a !== void 0 ? _a : props.size, value: option.value, checked: multiple
157
+ ? optionValue === null || optionValue === void 0 ? void 0 : optionValue.includes(option.value)
158
+ : optionValue === option.value, onChange: option.onChange, title: option.title, avatar: option.avatar, description: option.description, cover: option.cover }));
159
+ });
160
+ }
161
+ return props.children;
162
+ }, [getOptions, loading, multiple, options, props.children, props.size, stateValue]);
163
+ const classString = (0, classnames_1.default)(groupPrefixCls, className);
164
+ return (react_1.default.createElement(exports.CheckCardGroupConnext.Provider, { value: {
165
+ toggleOption,
166
+ bordered,
167
+ value: stateValue,
168
+ disabled: props.disabled,
169
+ size: props.size,
170
+ loading: props.loading,
171
+ multiple: props.multiple,
172
+ // https://github.com/ant-design/ant-design/issues/16376
173
+ registerValue,
174
+ cancelValue,
175
+ } },
176
+ react_1.default.createElement("div", Object.assign({ className: classString, style: style }, domProps), children)));
177
+ };
178
+ exports.default = CheckCardGroup;
179
+ //# sourceMappingURL=group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group.js","sourceRoot":"","sources":["../../src/check-card/group.tsx"],"names":[],"mappings":"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","sourcesContent":["import useMountMergeState from 'rc-util/lib/hooks/useMergedState'\nimport { Col, ConfigProvider, Row } from '../index'\n\nimport classNames from 'classnames'\nimport { omit } from 'lodash'\n\nimport React, { createContext, useCallback, useMemo, useRef } from 'react'\nimport CheckCard from './index'\n\nexport type CheckCardValueType = string | number | boolean\n\nexport type CheckGroupValueType = CheckCardValueType[] | CheckCardValueType | undefined\n\nexport interface CheckCardOptionType {\n /**\n * 标题展示\n *\n * @title 标题\n */\n title?: React.ReactNode\n /**\n * 选项值\n *\n * @title 值\n */\n value: CheckCardValueType\n /**\n * 描述展示\n *\n * @title 描述\n */\n description?: React.ReactNode\n /**\n * 组件尺寸,支持大,中,小三种默认尺寸,用户可以自定义宽高\n *\n * @default default\n * @title 组件尺寸\n */\n size?: 'large' | 'default' | 'small'\n /**\n * 左侧头像展示,可以是一个链接也可以是是一个 ReactNode\n *\n * @title 左侧头像区域\n */\n avatar?: React.ReactNode\n /**\n * 图片封面默认,该模式下其他展示值被忽略\n *\n * @title 图片封面\n */\n cover?: React.ReactNode\n /**\n * 不可用\n *\n * @default false\n * @title 不可用\n */\n disabled?: boolean\n /** Change 回调 */\n onChange?: (checked: boolean) => void\n}\n\nexport interface AbstractCheckCardGroupProps {\n /** @ignore */\n prefixCls?: string\n /** @ignore */\n className?: string\n /** 指定可选项 */\n options?: (CheckCardOptionType | string)[]\n /** 整组失效 */\n disabled?: boolean\n /** @ignore */\n style?: React.CSSProperties\n /**\n * 组件尺寸,支持大,中,小三种默认尺寸,用户可以自定义宽高\n *\n * @default default\n */\n size?: 'large' | 'default' | 'small'\n\n /**\n * @acceptions CheckCard\n * @ignore\n */\n children?: React.ReactNode\n}\n\nexport const CardLoading: React.FC<{\n prefixCls: string\n}> = ({ prefixCls }) => {\n const loadingBlockClass = `${prefixCls}-loading-block`\n return (\n <div className={`${prefixCls}-loading-content`}>\n <Row\n gutter={{\n xs: 8,\n sm: 8,\n md: 8,\n lg: 12,\n }}\n >\n <Col span={22}>\n <div className={loadingBlockClass} />\n </Col>\n </Row>\n <Row gutter={8}>\n <Col span={8}>\n <div className={loadingBlockClass} />\n </Col>\n <Col span={14}>\n <div className={loadingBlockClass} />\n </Col>\n </Row>\n <Row gutter={8}>\n <Col span={6}>\n <div className={loadingBlockClass} />\n </Col>\n <Col span={16}>\n <div className={loadingBlockClass} />\n </Col>\n </Row>\n <Row gutter={8}>\n <Col span={13}>\n <div className={loadingBlockClass} />\n </Col>\n <Col span={9}>\n <div className={loadingBlockClass} />\n </Col>\n </Row>\n <Row gutter={8}>\n <Col span={4}>\n <div className={loadingBlockClass} />\n </Col>\n <Col span={3}>\n <div className={loadingBlockClass} />\n </Col>\n <Col span={14}>\n <div className={loadingBlockClass} />\n </Col>\n </Row>\n </div>\n )\n}\n\nexport interface CheckCardGroupProps extends AbstractCheckCardGroupProps {\n /**\n * 是否多选\n *\n * @title 是否多选\n */\n multiple?: boolean\n /**\n * 默认选中的选项\n *\n * @title 默认选中的选项\n */\n defaultValue?: CheckGroupValueType\n /**\n * 指定选中的选项\n *\n * @title 指定选中的选项\n */\n value?: CheckGroupValueType\n /**\n * 当卡片组内容还在加载中时,可以用 loading 展示一个占位\n *\n * @title 加载中\n */\n loading?: boolean\n /**\n * 是否显示边框\n *\n * @title 显示边框\n */\n bordered?: boolean\n /** 变化时回调函数 */\n onChange?: (checkedValue: CheckGroupValueType) => void\n}\n\nexport interface CheckCardGroupState {\n value: CheckGroupValueType\n registeredValues: CheckCardValueType[]\n}\n\nexport interface CheckCardGroupConnextType {\n toggleOption?: (option: CheckCardOptionType) => void\n value?: any\n disabled?: boolean\n size?: 'default' | 'large' | 'small'\n loading?: boolean\n bordered?: boolean\n multiple?: boolean\n registerValue?: (value: any) => void\n cancelValue?: (value: any) => void\n}\n\nexport const CheckCardGroupConnext = createContext<CheckCardGroupConnextType | null>(null)\n\nconst CheckCardGroup: React.FC<CheckCardGroupProps> = (props) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n style,\n options = [],\n loading = false,\n multiple = false,\n bordered = true,\n onChange,\n ...restProps\n } = props\n\n const getOptions = useCallback(() => {\n return (options as CheckCardOptionType[])?.map((option) => {\n if (typeof option === 'string') {\n return {\n title: option,\n value: option,\n } as CheckCardOptionType\n }\n return option\n })\n }, [options])\n\n const prefixCls = 'tntd-checkcard'\n const groupPrefixCls = `${prefixCls}-group`\n const domProps = omit(restProps, ['children', 'defaultValue', 'value', 'disabled', 'size'])\n\n const [stateValue, setStateValue] = useMountMergeState<\n CheckCardValueType[] | CheckCardValueType | undefined\n >(props.defaultValue, {\n value: props.value,\n onChange: props.onChange,\n })\n\n const registerValueMap = useRef<Map<CheckCardValueType, any>>(new Map())\n\n const registerValue = (value: string) => {\n registerValueMap.current?.set(value, true)\n }\n\n const cancelValue = (value: string) => {\n registerValueMap.current?.delete(value)\n }\n\n const toggleOption = (option: CheckCardOptionType) => {\n if (!multiple) {\n let changeValue\n\n changeValue = stateValue\n // 单选模式\n if (changeValue === option.value) {\n changeValue = undefined\n } else {\n changeValue = option.value\n }\n setStateValue?.(changeValue)\n }\n\n if (multiple) {\n let changeValue = []\n const stateValues = stateValue as CheckCardValueType[]\n const hasOption = stateValues?.includes(option.value)\n changeValue = [...(stateValues || [])]\n if (!hasOption) {\n changeValue.push(option.value)\n }\n if (hasOption) {\n changeValue = changeValue.filter((itemValue) => itemValue !== option.value)\n }\n const newOptions = getOptions()\n const newValue = changeValue\n ?.filter((val) => registerValueMap.current.has(val))\n ?.sort((a, b) => {\n const indexA = newOptions.findIndex((opt) => opt.value === a)\n const indexB = newOptions.findIndex((opt) => opt.value === b)\n return indexA - indexB\n })\n\n setStateValue(newValue)\n }\n }\n\n const children = useMemo((): React.ReactNode => {\n if (loading) {\n return new Array(options.length || React.Children.toArray(props.children).length || 1)\n .fill(0)\n .map((_, index) => <CheckCard key={index} loading />) as React.ReactNode[]\n }\n\n if (options && options.length > 0) {\n const optionValue = stateValue as CheckCardValueType[] | CheckCardValueType\n return getOptions().map((option) => (\n <CheckCard\n key={option.value.toString()}\n disabled={option.disabled}\n size={option.size ?? props.size}\n value={option.value}\n checked={\n multiple\n ? (optionValue as CheckCardValueType[])?.includes(option.value)\n : (optionValue as CheckCardValueType) === option.value\n }\n onChange={option.onChange}\n title={option.title}\n avatar={option.avatar}\n description={option.description}\n cover={option.cover}\n />\n )) as React.ReactNode[]\n }\n return props.children as React.ReactNode\n }, [getOptions, loading, multiple, options, props.children, props.size, stateValue])\n\n const classString = classNames(groupPrefixCls, className)\n\n return (\n <CheckCardGroupConnext.Provider\n value={{\n toggleOption,\n bordered,\n value: stateValue,\n disabled: props.disabled,\n size: props.size,\n loading: props.loading,\n multiple: props.multiple,\n // https://github.com/ant-design/ant-design/issues/16376\n registerValue,\n cancelValue,\n }}\n >\n <div className={classString} style={style} {...domProps}>\n {children}\n </div>\n </CheckCardGroupConnext.Provider>\n )\n}\n\nexport default CheckCardGroup\n"]}