tntd 2.7.3 → 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 (383) 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/check-card/group.js +149 -0
  7. package/es/check-card/group.js.map +1 -0
  8. package/es/check-card/index.js +120 -0
  9. package/es/check-card/index.js.map +1 -0
  10. package/es/check-card/index.less +179 -0
  11. package/es/color-picker/ColorPicker.js +1 -1
  12. package/es/color-picker/ColorPicker.js.map +1 -1
  13. package/es/color-picker/index.less +1 -1
  14. package/es/ellipsis/index.js +13 -3
  15. package/es/ellipsis/index.js.map +1 -1
  16. package/es/ellipsis/index.less +2 -2
  17. package/es/handle/index.js +20 -9
  18. package/es/handle/index.js.map +1 -1
  19. package/es/handle/index.less +1 -1
  20. package/es/index.js +7 -0
  21. package/es/index.js.map +1 -1
  22. package/es/index.less +5 -0
  23. package/es/locale/en_US.js +3 -1
  24. package/es/locale/en_US.js.map +1 -1
  25. package/es/locale/zh_CN.js +3 -1
  26. package/es/locale/zh_CN.js.map +1 -1
  27. package/es/mention/index.js +4 -0
  28. package/es/mention/index.js.map +1 -0
  29. package/es/page/Box.js +1 -1
  30. package/es/page/Box.js.map +1 -1
  31. package/es/page/index.js +1 -1
  32. package/es/page/index.js.map +1 -1
  33. package/es/page/index.less +5 -5
  34. package/es/prev-locale.js +1 -1
  35. package/es/prev-locale.js.map +1 -1
  36. package/es/query-form/Field/SelectInput.js +2 -2
  37. package/es/query-form/Field/SelectInput.js.map +1 -1
  38. package/es/query-form/Field/index.js +2 -1
  39. package/es/query-form/Field/index.js.map +1 -1
  40. package/es/query-list-scene/QueryForm.js +2 -2
  41. package/es/query-list-scene/QueryForm.js.map +1 -1
  42. package/es/segmented/index.js +50 -0
  43. package/es/segmented/index.js.map +1 -0
  44. package/es/segmented/index.less +138 -0
  45. package/es/table/constants.js +53 -0
  46. package/es/table/constants.js.map +1 -1
  47. package/es/table/context.js.map +1 -1
  48. package/es/table/hooks/use-column-setting.js.map +1 -1
  49. package/es/table/table.js +107 -6
  50. package/es/table/table.js.map +1 -1
  51. package/es/table/table.less +3 -1
  52. package/es/table/total-shower.js +6 -0
  53. package/es/table/total-shower.js.map +1 -0
  54. package/es/title/index.js +5 -5
  55. package/es/title/index.js.map +1 -1
  56. package/es/title/index.less +10 -10
  57. package/es/tntd-form/Form.js +1 -1
  58. package/es/tntd-form/Form.js.map +1 -1
  59. package/es/tntd-form/TntdForm/components/Item.js +42 -30
  60. package/es/tntd-form/TntdForm/components/ItemComp.js +167 -158
  61. package/es/tntd-form/TntdForm/components/List.js +89 -78
  62. package/es/tntd-form/TntdForm/index.js +38 -33
  63. package/es/tntd-form/TntdForm/interface.js +1 -2
  64. package/es/tntd-form/TntdForm/store.js +1 -2
  65. package/es/tntd-form/TntdForm/utils.js +158 -168
  66. package/es/tntd-modal/index.js +54 -21
  67. package/es/tntd-modal/index.js.map +1 -1
  68. package/es/tntd-modal/index.less +83 -63
  69. package/es/utils/index.js +1 -0
  70. package/es/utils/index.js.map +1 -1
  71. package/es/utils/simple-template.js +11 -0
  72. package/es/utils/simple-template.js.map +1 -0
  73. package/es/water-mark/index.js +99 -0
  74. package/es/water-mark/index.js.map +1 -0
  75. package/lib/actions/index.d.ts +15 -0
  76. package/lib/actions/index.d.ts.map +1 -0
  77. package/lib/actions/index.js +17 -0
  78. package/lib/actions/index.js.map +1 -0
  79. package/lib/actions/index.less +70 -0
  80. package/lib/check-card/group.d.ts +130 -0
  81. package/lib/check-card/group.d.ts.map +1 -0
  82. package/lib/check-card/group.js +179 -0
  83. package/lib/check-card/group.js.map +1 -0
  84. package/lib/check-card/index.d.ts +136 -0
  85. package/lib/check-card/index.d.ts.map +1 -0
  86. package/lib/check-card/index.js +148 -0
  87. package/lib/check-card/index.js.map +1 -0
  88. package/lib/check-card/index.less +179 -0
  89. package/lib/color-picker/ColorPicker.js +1 -1
  90. package/lib/color-picker/ColorPicker.js.map +1 -1
  91. package/lib/color-picker/index.less +1 -1
  92. package/lib/ellipsis/index.d.ts.map +1 -1
  93. package/lib/ellipsis/index.js +13 -3
  94. package/lib/ellipsis/index.js.map +1 -1
  95. package/lib/ellipsis/index.less +2 -2
  96. package/lib/handle/index.d.ts.map +1 -1
  97. package/lib/handle/index.js +20 -9
  98. package/lib/handle/index.js.map +1 -1
  99. package/lib/handle/index.less +1 -1
  100. package/lib/index.d.ts +7 -0
  101. package/lib/index.d.ts.map +1 -1
  102. package/lib/index.js +11 -1
  103. package/lib/index.js.map +1 -1
  104. package/lib/index.less +5 -0
  105. package/lib/locale/default.d.ts +1 -0
  106. package/lib/locale/default.d.ts.map +1 -1
  107. package/lib/locale/en_US.d.ts +1 -0
  108. package/lib/locale/en_US.d.ts.map +1 -1
  109. package/lib/locale/en_US.js +3 -1
  110. package/lib/locale/en_US.js.map +1 -1
  111. package/lib/locale/zh_CN.d.ts +1 -0
  112. package/lib/locale/zh_CN.d.ts.map +1 -1
  113. package/lib/locale/zh_CN.js +3 -1
  114. package/lib/locale/zh_CN.js.map +1 -1
  115. package/lib/mention/index.js +25 -0
  116. package/lib/page/Box.js +1 -1
  117. package/lib/page/Box.js.map +1 -1
  118. package/lib/page/index.js +1 -1
  119. package/lib/page/index.js.map +1 -1
  120. package/lib/page/index.less +5 -5
  121. package/lib/prev-locale.js +1 -1
  122. package/lib/prev-locale.js.map +1 -1
  123. package/lib/query-form/Field/SelectInput.d.ts.map +1 -1
  124. package/lib/query-form/Field/SelectInput.js +2 -2
  125. package/lib/query-form/Field/SelectInput.js.map +1 -1
  126. package/lib/query-form/Field/index.d.ts.map +1 -1
  127. package/lib/query-form/Field/index.js +2 -1
  128. package/lib/query-form/Field/index.js.map +1 -1
  129. package/lib/query-list-scene/QueryForm.d.ts +1 -1
  130. package/lib/query-list-scene/QueryForm.d.ts.map +1 -1
  131. package/lib/query-list-scene/QueryForm.js +2 -2
  132. package/lib/query-list-scene/QueryForm.js.map +1 -1
  133. package/lib/segmented/index.d.ts +23 -0
  134. package/lib/segmented/index.d.ts.map +1 -0
  135. package/lib/segmented/index.js +78 -0
  136. package/lib/segmented/index.js.map +1 -0
  137. package/lib/segmented/index.less +138 -0
  138. package/lib/table/constants.d.ts +2 -0
  139. package/lib/table/constants.d.ts.map +1 -1
  140. package/lib/table/constants.js +54 -1
  141. package/lib/table/constants.js.map +1 -1
  142. package/lib/table/context.d.ts +1 -0
  143. package/lib/table/context.d.ts.map +1 -1
  144. package/lib/table/context.js.map +1 -1
  145. package/lib/table/hooks/use-column-setting.d.ts +4 -1
  146. package/lib/table/hooks/use-column-setting.d.ts.map +1 -1
  147. package/lib/table/hooks/use-column-setting.js.map +1 -1
  148. package/lib/table/table.d.ts +2 -1
  149. package/lib/table/table.d.ts.map +1 -1
  150. package/lib/table/table.js +107 -6
  151. package/lib/table/table.js.map +1 -1
  152. package/lib/table/table.less +3 -1
  153. package/lib/table/total-shower.d.ts +9 -0
  154. package/lib/table/total-shower.d.ts.map +1 -0
  155. package/lib/table/total-shower.js +13 -0
  156. package/lib/table/total-shower.js.map +1 -0
  157. package/lib/title/index.d.ts +11 -1
  158. package/lib/title/index.d.ts.map +1 -1
  159. package/lib/title/index.js +5 -5
  160. package/lib/title/index.js.map +1 -1
  161. package/lib/title/index.less +10 -10
  162. package/lib/tntd-form/Form.js +1 -1
  163. package/lib/tntd-form/Form.js.map +1 -1
  164. package/lib/tntd-form/TntdForm/components/Item.js +55 -61
  165. package/lib/tntd-form/TntdForm/components/ItemComp.js +203 -190
  166. package/lib/tntd-form/TntdForm/components/List.js +118 -111
  167. package/lib/tntd-form/TntdForm/index.js +61 -67
  168. package/lib/tntd-form/TntdForm/interface.js +4 -2
  169. package/lib/tntd-form/TntdForm/store.js +8 -7
  170. package/lib/tntd-form/TntdForm/utils.js +182 -184
  171. package/lib/tntd-modal/index.d.ts +15 -2
  172. package/lib/tntd-modal/index.d.ts.map +1 -1
  173. package/lib/tntd-modal/index.js +58 -23
  174. package/lib/tntd-modal/index.js.map +1 -1
  175. package/lib/tntd-modal/index.less +83 -63
  176. package/lib/utils/index.d.ts +1 -0
  177. package/lib/utils/index.d.ts.map +1 -1
  178. package/lib/utils/index.js +1 -0
  179. package/lib/utils/index.js.map +1 -1
  180. package/lib/utils/simple-template.d.ts +9 -0
  181. package/lib/utils/simple-template.d.ts.map +1 -0
  182. package/lib/utils/simple-template.js +15 -0
  183. package/lib/utils/simple-template.js.map +1 -0
  184. package/lib/water-mark/index.d.ts +49 -0
  185. package/lib/water-mark/index.d.ts.map +1 -0
  186. package/lib/water-mark/index.js +129 -0
  187. package/lib/water-mark/index.js.map +1 -0
  188. package/package.json +21 -3
  189. package/es/_util/colors.js +0 -3
  190. package/es/_util/colors.js.map +0 -1
  191. package/es/_util/easings.js +0 -9
  192. package/es/_util/easings.js.map +0 -1
  193. package/es/_util/getDataOrAriaProps.js +0 -8
  194. package/es/_util/getDataOrAriaProps.js.map +0 -1
  195. package/es/_util/getScroll.js +0 -14
  196. package/es/_util/getScroll.js.map +0 -1
  197. package/es/_util/interopDefault.js +0 -5
  198. package/es/_util/interopDefault.js.map +0 -1
  199. package/es/_util/isNumeric.js +0 -4
  200. package/es/_util/isNumeric.js.map +0 -1
  201. package/es/_util/motion.js +0 -22
  202. package/es/_util/motion.js.map +0 -1
  203. package/es/_util/openAnimation.js +0 -51
  204. package/es/_util/openAnimation.js.map +0 -1
  205. package/es/_util/raf.js +0 -25
  206. package/es/_util/raf.js.map +0 -1
  207. package/es/_util/reactNode.js +0 -6
  208. package/es/_util/reactNode.js.map +0 -1
  209. package/es/_util/ref.js +0 -15
  210. package/es/_util/ref.js.map +0 -1
  211. package/es/_util/responsiveObserve.js +0 -82
  212. package/es/_util/responsiveObserve.js.map +0 -1
  213. package/es/_util/scrollTo.js +0 -29
  214. package/es/_util/scrollTo.js.map +0 -1
  215. package/es/_util/styleChecker.js +0 -12
  216. package/es/_util/styleChecker.js.map +0 -1
  217. package/es/_util/throttleByAnimationFrame.js +0 -40
  218. package/es/_util/throttleByAnimationFrame.js.map +0 -1
  219. package/es/_util/transButton.js +0 -103
  220. package/es/_util/transButton.js.map +0 -1
  221. package/es/_util/triggerEvent.js +0 -8
  222. package/es/_util/triggerEvent.js.map +0 -1
  223. package/es/_util/type.js +0 -3
  224. package/es/_util/type.js.map +0 -1
  225. package/es/_util/warning.js +0 -5
  226. package/es/_util/warning.js.map +0 -1
  227. package/es/_util/wave.js +0 -228
  228. package/es/_util/wave.js.map +0 -1
  229. package/es/config-provider/context.js +0 -41
  230. package/es/config-provider/context.js.map +0 -1
  231. package/es/tntd-form/__tests__/demo-extend.test.js +0 -3
  232. package/es/tntd-form/__tests__/demo-extend.test.js.map +0 -1
  233. package/es/tntd-form/__tests__/demo.test.js +0 -3
  234. package/es/tntd-form/__tests__/demo.test.js.map +0 -1
  235. package/es/tntd-form/__tests__/image.test.js +0 -5
  236. package/es/tntd-form/__tests__/image.test.js.map +0 -1
  237. package/es/tntd-form/__tests__/index.test.js +0 -957
  238. package/es/tntd-form/__tests__/index.test.js.map +0 -1
  239. package/es/tntd-form/__tests__/list-noStyle.test.js +0 -41
  240. package/es/tntd-form/__tests__/list-noStyle.test.js.map +0 -1
  241. package/es/tntd-form/__tests__/list.test.js +0 -164
  242. package/es/tntd-form/__tests__/list.test.js.map +0 -1
  243. package/es/tntd-form/__tests__/ref.test.js +0 -45
  244. package/es/tntd-form/__tests__/ref.test.js.map +0 -1
  245. package/es/tntd-form/__tests__/type.test.js +0 -74
  246. package/es/tntd-form/__tests__/type.test.js.map +0 -1
  247. package/lib/_util/colors.d.ts +0 -3
  248. package/lib/_util/colors.d.ts.map +0 -1
  249. package/lib/_util/colors.js +0 -7
  250. package/lib/_util/colors.js.map +0 -1
  251. package/lib/_util/easings.d.ts +0 -2
  252. package/lib/_util/easings.d.ts.map +0 -1
  253. package/lib/_util/easings.js +0 -14
  254. package/lib/_util/easings.js.map +0 -1
  255. package/lib/_util/getDataOrAriaProps.d.ts +0 -2
  256. package/lib/_util/getDataOrAriaProps.d.ts.map +0 -1
  257. package/lib/_util/getDataOrAriaProps.js +0 -13
  258. package/lib/_util/getDataOrAriaProps.js.map +0 -1
  259. package/lib/_util/getScroll.d.ts +0 -2
  260. package/lib/_util/getScroll.d.ts.map +0 -1
  261. package/lib/_util/getScroll.js +0 -18
  262. package/lib/_util/getScroll.js.map +0 -1
  263. package/lib/_util/interopDefault.d.ts +0 -2
  264. package/lib/_util/interopDefault.d.ts.map +0 -1
  265. package/lib/_util/interopDefault.js +0 -9
  266. package/lib/_util/interopDefault.js.map +0 -1
  267. package/lib/_util/isNumeric.d.ts +0 -3
  268. package/lib/_util/isNumeric.d.ts.map +0 -1
  269. package/lib/_util/isNumeric.js +0 -7
  270. package/lib/_util/isNumeric.js.map +0 -1
  271. package/lib/_util/motion.d.ts +0 -24
  272. package/lib/_util/motion.d.ts.map +0 -1
  273. package/lib/_util/motion.js +0 -17
  274. package/lib/_util/motion.js.map +0 -1
  275. package/lib/_util/openAnimation.d.ts +0 -7
  276. package/lib/_util/openAnimation.d.ts.map +0 -1
  277. package/lib/_util/openAnimation.js +0 -58
  278. package/lib/_util/openAnimation.js.map +0 -1
  279. package/lib/_util/raf.d.ts +0 -10
  280. package/lib/_util/raf.d.ts.map +0 -1
  281. package/lib/_util/raf.js +0 -34
  282. package/lib/_util/raf.js.map +0 -1
  283. package/lib/_util/reactNode.d.ts +0 -3
  284. package/lib/_util/reactNode.d.ts.map +0 -1
  285. package/lib/_util/reactNode.js +0 -31
  286. package/lib/_util/reactNode.js.map +0 -1
  287. package/lib/_util/ref.d.ts +0 -4
  288. package/lib/_util/ref.d.ts.map +0 -1
  289. package/lib/_util/ref.js +0 -22
  290. package/lib/_util/ref.js.map +0 -1
  291. package/lib/_util/responsiveObserve.d.ts +0 -14
  292. package/lib/_util/responsiveObserve.d.ts.map +0 -1
  293. package/lib/_util/responsiveObserve.js +0 -83
  294. package/lib/_util/responsiveObserve.js.map +0 -1
  295. package/lib/_util/scrollTo.d.ts +0 -11
  296. package/lib/_util/scrollTo.d.ts.map +0 -1
  297. package/lib/_util/scrollTo.js +0 -34
  298. package/lib/_util/scrollTo.js.map +0 -1
  299. package/lib/_util/styleChecker.d.ts +0 -4
  300. package/lib/_util/styleChecker.d.ts.map +0 -1
  301. package/lib/_util/styleChecker.js +0 -14
  302. package/lib/_util/styleChecker.js.map +0 -1
  303. package/lib/_util/throttleByAnimationFrame.d.ts +0 -6
  304. package/lib/_util/throttleByAnimationFrame.d.ts.map +0 -1
  305. package/lib/_util/throttleByAnimationFrame.js +0 -49
  306. package/lib/_util/throttleByAnimationFrame.js.map +0 -1
  307. package/lib/_util/transButton.d.ts +0 -21
  308. package/lib/_util/transButton.d.ts.map +0 -1
  309. package/lib/_util/transButton.js +0 -112
  310. package/lib/_util/transButton.js.map +0 -1
  311. package/lib/_util/triggerEvent.d.ts +0 -2
  312. package/lib/_util/triggerEvent.d.ts.map +0 -1
  313. package/lib/_util/triggerEvent.js +0 -12
  314. package/lib/_util/triggerEvent.js.map +0 -1
  315. package/lib/_util/type.d.ts +0 -4
  316. package/lib/_util/type.d.ts.map +0 -1
  317. package/lib/_util/type.js +0 -9
  318. package/lib/_util/type.js.map +0 -1
  319. package/lib/_util/warning.d.ts +0 -5
  320. package/lib/_util/warning.d.ts.map +0 -1
  321. package/lib/_util/warning.js +0 -28
  322. package/lib/_util/warning.js.map +0 -1
  323. package/lib/_util/wave.d.ts +0 -26
  324. package/lib/_util/wave.d.ts.map +0 -1
  325. package/lib/_util/wave.js +0 -249
  326. package/lib/_util/wave.js.map +0 -1
  327. package/lib/config-provider/context.d.ts +0 -61
  328. package/lib/config-provider/context.d.ts.map +0 -1
  329. package/lib/config-provider/context.js +0 -64
  330. package/lib/config-provider/context.js.map +0 -1
  331. package/lib/tntd-form/TntdForm/components/Item.d.ts +0 -5
  332. package/lib/tntd-form/TntdForm/components/Item.d.ts.map +0 -1
  333. package/lib/tntd-form/TntdForm/components/Item.js.map +0 -1
  334. package/lib/tntd-form/TntdForm/components/ItemComp.d.ts +0 -5
  335. package/lib/tntd-form/TntdForm/components/ItemComp.d.ts.map +0 -1
  336. package/lib/tntd-form/TntdForm/components/ItemComp.js.map +0 -1
  337. package/lib/tntd-form/TntdForm/components/List.d.ts +0 -5
  338. package/lib/tntd-form/TntdForm/components/List.d.ts.map +0 -1
  339. package/lib/tntd-form/TntdForm/components/List.js.map +0 -1
  340. package/lib/tntd-form/TntdForm/index.d.ts +0 -10
  341. package/lib/tntd-form/TntdForm/index.d.ts.map +0 -1
  342. package/lib/tntd-form/TntdForm/index.js.map +0 -1
  343. package/lib/tntd-form/TntdForm/interface.d.ts +0 -93
  344. package/lib/tntd-form/TntdForm/interface.d.ts.map +0 -1
  345. package/lib/tntd-form/TntdForm/interface.js.map +0 -1
  346. package/lib/tntd-form/TntdForm/store.d.ts +0 -4
  347. package/lib/tntd-form/TntdForm/store.d.ts.map +0 -1
  348. package/lib/tntd-form/TntdForm/store.js.map +0 -1
  349. package/lib/tntd-form/TntdForm/utils.d.ts +0 -48
  350. package/lib/tntd-form/TntdForm/utils.d.ts.map +0 -1
  351. package/lib/tntd-form/TntdForm/utils.js.map +0 -1
  352. package/lib/tntd-form/__tests__/demo-extend.test.d.ts +0 -2
  353. package/lib/tntd-form/__tests__/demo-extend.test.d.ts.map +0 -1
  354. package/lib/tntd-form/__tests__/demo-extend.test.js +0 -5
  355. package/lib/tntd-form/__tests__/demo-extend.test.js.map +0 -1
  356. package/lib/tntd-form/__tests__/demo.test.d.ts +0 -2
  357. package/lib/tntd-form/__tests__/demo.test.d.ts.map +0 -1
  358. package/lib/tntd-form/__tests__/demo.test.js +0 -8
  359. package/lib/tntd-form/__tests__/demo.test.js.map +0 -1
  360. package/lib/tntd-form/__tests__/image.test.d.ts +0 -2
  361. package/lib/tntd-form/__tests__/image.test.d.ts.map +0 -1
  362. package/lib/tntd-form/__tests__/image.test.js +0 -7
  363. package/lib/tntd-form/__tests__/image.test.js.map +0 -1
  364. package/lib/tntd-form/__tests__/index.test.d.ts +0 -2
  365. package/lib/tntd-form/__tests__/index.test.d.ts.map +0 -1
  366. package/lib/tntd-form/__tests__/index.test.js +0 -981
  367. package/lib/tntd-form/__tests__/index.test.js.map +0 -1
  368. package/lib/tntd-form/__tests__/list-noStyle.test.d.ts +0 -2
  369. package/lib/tntd-form/__tests__/list-noStyle.test.d.ts.map +0 -1
  370. package/lib/tntd-form/__tests__/list-noStyle.test.js +0 -46
  371. package/lib/tntd-form/__tests__/list-noStyle.test.js.map +0 -1
  372. package/lib/tntd-form/__tests__/list.test.d.ts +0 -2
  373. package/lib/tntd-form/__tests__/list.test.d.ts.map +0 -1
  374. package/lib/tntd-form/__tests__/list.test.js +0 -169
  375. package/lib/tntd-form/__tests__/list.test.js.map +0 -1
  376. package/lib/tntd-form/__tests__/ref.test.d.ts +0 -2
  377. package/lib/tntd-form/__tests__/ref.test.d.ts.map +0 -1
  378. package/lib/tntd-form/__tests__/ref.test.js +0 -50
  379. package/lib/tntd-form/__tests__/ref.test.js.map +0 -1
  380. package/lib/tntd-form/__tests__/type.test.d.ts +0 -2
  381. package/lib/tntd-form/__tests__/type.test.d.ts.map +0 -1
  382. package/lib/tntd-form/__tests__/type.test.js +0 -98
  383. package/lib/tntd-form/__tests__/type.test.js.map +0 -1
@@ -1,86 +1,106 @@
1
- .tnt-modal {
2
- &.ant-modal {
3
- max-width: 100vw;
4
- padding-bottom: 0;
1
+ .ant-modal {
2
+ &.fullscreen {
3
+ // color: red;
5
4
  }
6
-
7
- .ant-modal-content {
8
- height: 100%;
9
- display: flex;
10
- flex-direction: column;
11
-
12
- .ant-modal-close {
13
- display: none;
14
- }
5
+ &.support-fullscreen.no-header .ant-modal-header{
6
+ padding: 0;
7
+ border-bottom: none;
15
8
  }
9
+ &.support-fullscreen {
10
+ .ant-modal-content {
11
+ height: inherit;
12
+ display: flex;
13
+ flex-direction: column;
16
14
 
17
- .ant-modal-header {
18
- position: relative;
19
- padding: 8px 20px;
15
+ .ant-modal-close {
16
+ display: none;
17
+ }
18
+ }
20
19
 
21
- .tnt-modal-header-actions {
22
- position: absolute;
23
- top: 0;
24
- right: 0;
25
- height: 40px;
26
- line-height: 40px;
20
+ .ant-modal-header {
21
+ position: relative;
22
+ padding: 12px 20px;
27
23
 
28
- .tnt-icon {
29
- width: 40px;
24
+ .ant-modal-header-actions {
25
+ position: absolute;
26
+ top: 0;
27
+ right: 0;
30
28
  height: 40px;
31
29
  line-height: 40px;
32
- cursor: pointer;
33
- text-align: center;
34
- display: inline-block;
35
- }
36
30
 
37
- i.fullscreen:hover {
38
- color: #2e81f7;
39
- }
31
+ a {
32
+ width: 46px;
33
+ height: 46px;
34
+ line-height: 46px;
35
+ font-size: 15px;
36
+ cursor: pointer;
37
+ text-align: center;
38
+ display: inline-block;
39
+ color: inherit;
40
+ }
40
41
 
41
- i.close:hover {
42
- color: red;
42
+ .modal-fullscreen-wrap {
43
+ &:hover {
44
+ color: #2e81f7;
45
+ }
46
+ }
47
+
48
+ .modal-close-wrap {
49
+ &:hover {
50
+ color: red;
51
+ }
52
+ }
43
53
  }
44
54
  }
45
- }
46
55
 
47
- .ant-modal-title {
48
- .link {
49
- margin-left: 10px;
50
- font-size: 12px;
51
- color: #999;
56
+ .ant-modal-title {
57
+ & {
58
+ font-weight: 400;
59
+ line-height: 22px;
60
+ }
61
+ .link {
62
+ margin-left: 10px;
63
+ font-size: 12px;
64
+ color: #999;
52
65
 
53
- &:hover {
54
- color: #2e81f7;
66
+ &:hover {
67
+ color: #2e81f7;
68
+ }
69
+ }
70
+
71
+ img {
72
+ position: relative;
73
+ width: 18px;
74
+ height: 18px;
75
+ margin-right: 8px;
76
+ vertical-align: text-top;
55
77
  }
56
78
  }
57
79
 
58
- img {
59
- position: relative;
60
- width: 18px;
61
- height: 18px;
62
- margin-right: 8px;
63
- vertical-align: text-top;
80
+ .ant-modal-body {
81
+ height: 100%;
82
+ overflow: auto;
64
83
  }
65
- }
66
84
 
67
- .ant-modal-body {
68
- padding: 0;
69
- // height: calc(100% - 39px);
70
- flex: 1;
71
- overflow: auto;
85
+ // iframe {
86
+ // border: none;
87
+ // width: 100%;
88
+ // height: 100%;
89
+ // }
72
90
  }
73
-
74
- &.fullscreen {
75
- .ant-modal-body {
76
- height: calc(100vh - 39px);
77
- background: #fff;
91
+ &.support-fullscreen {
92
+ &.fullscreen {
93
+ .ant-modal-content {
94
+ height: 100vh;
95
+ }
78
96
  }
79
97
  }
80
-
81
- iframe {
82
- border: none;
83
- width: 100%;
84
- height: 100%;
98
+ .ant-modal-title {
99
+ font-weight: 400;
100
+ // .move-handle {}
101
+ }
102
+ &.ant-modal {
103
+ max-width: 100vw;
104
+ padding-bottom: 0;
85
105
  }
86
106
  }
@@ -1,5 +1,6 @@
1
1
  export * from "./checkAuth";
2
2
  export * from "./findMenuInfoByPath";
3
+ export * from "./simple-template";
3
4
  export function isGroupMenu(menu: any): any;
4
5
  export function getSelectedMenuInfo(selectedKey: any, menus?: any[]): {
5
6
  subMenu: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.js"],"names":[],"mappings":";;AAGO,4CAA2D;AAE3D;;;;EA+BN;AAEM,2CAEN;AAEM,iDAIN;AAEM,8CAEN;AAEM,4FAsBN;AAEM,8DAWN"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.js"],"names":[],"mappings":";;;AAIO,4CAA2D;AAE3D;;;;EA+BN;AAEM,2CAEN;AAEM,iDAIN;AAEM,8CAEN;AAEM,4FAsBN;AAEM,8DAWN"}
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.safeParseJSON = exports.traverseTree = exports.openInNewTab = exports.isNewTabMenu = exports.hasLevel3 = exports.getSelectedMenuInfo = exports.isGroupMenu = void 0;
18
18
  __exportStar(require("./checkAuth"), exports);
19
19
  __exportStar(require("./findMenuInfoByPath"), exports);
20
+ __exportStar(require("./simple-template"), exports);
20
21
  const isGroupMenu = (menu) => (menu === null || menu === void 0 ? void 0 : menu.children) && !(menu === null || menu === void 0 ? void 0 : menu.path);
21
22
  exports.isGroupMenu = isGroupMenu;
22
23
  const getSelectedMenuInfo = (selectedKey, menus = []) => {
@@ -1 +1 @@
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'\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,9 @@
1
+ /**
2
+ * 简单的模板替换
3
+ *
4
+ * @param template
5
+ * @param data
6
+ * @returns
7
+ */
8
+ export declare function simpleTemplate(template?: string, data?: Record<string, string | number>): string | undefined;
9
+ //# sourceMappingURL=simple-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-template.d.ts","sourceRoot":"","sources":["../../src/utils/simple-template.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAM,sBAE3F"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.simpleTemplate = void 0;
4
+ /**
5
+ * 简单的模板替换
6
+ *
7
+ * @param template
8
+ * @param data
9
+ * @returns
10
+ */
11
+ function simpleTemplate(template, data = {}) {
12
+ return template === null || template === void 0 ? void 0 : template.replace(/\${(.*?)}/g, (match, key) => data[key.trim()].toString());
13
+ }
14
+ exports.simpleTemplate = simpleTemplate;
15
+ //# 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,SAAgB,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;AAFD,wCAEC","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,49 @@
1
+ import React from 'react';
2
+ export interface WatermarkProps {
3
+ /** 类名 */
4
+ className?: string;
5
+ /** 样式 */
6
+ style?: React.CSSProperties;
7
+ /** 水印样式 */
8
+ markStyle?: React.CSSProperties;
9
+ /** 水印类名 */
10
+ markClassName?: string;
11
+ /** 水印之间的水平间距 */
12
+ gapX?: number;
13
+ /** 水印之间的垂直间距 */
14
+ gapY?: number;
15
+ /** 追加的水印元素的z-index */
16
+ zIndex?: number;
17
+ /** 水印的宽度 */
18
+ width?: number;
19
+ /** 水印的高度 */
20
+ height?: number;
21
+ /** 水印在canvas 画布上绘制的垂直偏移量,正常情况下,水印绘制在中间位置, 即 offsetTop = gapY / 2 */
22
+ offsetTop?: number;
23
+ /** 水印在canvas 画布上绘制的水平偏移量, 正常情况下,水印绘制在中间位置, 即 offsetTop = gapX / 2 */
24
+ offsetLeft?: number;
25
+ /** 水印绘制时,旋转的角度,单位 ° */
26
+ rotate?: number;
27
+ /** ClassName 前缀 */
28
+ prefixCls?: string;
29
+ /** 高清印图片源, 为了高清屏幕显示,建议使用 2倍或3倍图,优先使用图片渲染水印。 */
30
+ image?: string;
31
+ /** 水印文字内容 */
32
+ content?: string | string[];
33
+ /** 文字颜色 */
34
+ fontColor?: string;
35
+ /** 文字样式 */
36
+ fontStyle?: 'none' | 'normal' | 'italic' | 'oblique';
37
+ /** 文字对齐 */
38
+ textAlign?: 'left' | 'center' | 'right';
39
+ /** 文字族 */
40
+ fontFamily?: string;
41
+ /** 文字粗细 */
42
+ fontWeight?: 'normal' | 'light' | 'weight' | number;
43
+ /** 文字大小 */
44
+ fontSize?: number | string;
45
+ children?: React.ReactNode;
46
+ }
47
+ export declare const Watermark: React.FC<WatermarkProps>;
48
+ export default Watermark;
49
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/water-mark/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,MAAM,WAAW,cAAc;IAC7B,SAAS;IACT,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS;IACT,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,WAAW;IACX,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC/B,WAAW;IACX,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gBAAgB;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gBAAgB;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,mBAAmB;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC3B,WAAW;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW;IACX,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;IACpD,WAAW;IACX,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;IACvC,UAAU;IACV,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW;IACX,UAAU,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;IACnD,WAAW;IACX,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAE1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B;AAqBD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA6H9C,CAAA;AAED,eAAe,SAAS,CAAA"}
@@ -0,0 +1,129 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.Watermark = void 0;
30
+ const classnames_1 = __importDefault(require("classnames"));
31
+ const react_1 = __importStar(require("react"));
32
+ /**
33
+ * 返回当前显示设备的物理像素分辨率与CSS像素分辨率之比
34
+ *
35
+ * @param context
36
+ * @see api 有些废弃了,其实类型 CanvasRenderingContext2D
37
+ */
38
+ const getPixelRatio = (context) => {
39
+ if (!context) {
40
+ return 1;
41
+ }
42
+ const backingStore = context.backingStorePixelRatio ||
43
+ context.webkitBackingStorePixelRatio ||
44
+ context.mozBackingStorePixelRatio ||
45
+ context.msBackingStorePixelRatio ||
46
+ context.oBackingStorePixelRatio ||
47
+ 1;
48
+ return (window.devicePixelRatio || 1) / backingStore;
49
+ };
50
+ const Watermark = (props) => {
51
+ const { children, style, className, markStyle, markClassName,
52
+ // antd 内容层 zIndex 基本上在 10 以下 https://github.com/ant-design/ant-design/blob/6192403b2ce517c017f9e58a32d58774921c10cd/components/style/themes/default.less#L335
53
+ zIndex = 9, gapX = 212, gapY = 222, width = 120, height = 64, rotate = -22, // 默认旋转 -22 度
54
+ 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;
55
+ const wrapperCls = (0, classnames_1.default)([`${prefixCls}-wrapper`, className]);
56
+ const watermarkCls = (0, classnames_1.default)([prefixCls, markClassName]);
57
+ const [base64Url, setBase64Url] = (0, react_1.useState)('');
58
+ (0, react_1.useEffect)(() => {
59
+ const canvas = document.createElement('canvas');
60
+ const ctx = canvas.getContext('2d');
61
+ const ratio = getPixelRatio(ctx);
62
+ const canvasWidth = `${(gapX + width) * ratio}px`;
63
+ const canvasHeight = `${(gapY + height) * ratio}px`;
64
+ const canvasOffsetLeft = offsetLeft || gapX / 2;
65
+ const canvasOffsetTop = offsetTop || gapY / 2;
66
+ canvas.setAttribute('width', canvasWidth);
67
+ canvas.setAttribute('height', canvasHeight);
68
+ if (ctx) {
69
+ // 旋转字符 rotate
70
+ ctx.translate(canvasOffsetLeft * ratio, canvasOffsetTop * ratio);
71
+ ctx.rotate((Math.PI / 180) * Number(rotate));
72
+ const markWidth = width * ratio;
73
+ const markHeight = height * ratio;
74
+ if (image) {
75
+ const img = new Image();
76
+ img.crossOrigin = 'anonymous';
77
+ img.referrerPolicy = 'no-referrer';
78
+ img.src = image;
79
+ img.onload = () => {
80
+ ctx.drawImage(img, 0, 0, markWidth, markHeight);
81
+ setBase64Url(canvas.toDataURL());
82
+ };
83
+ }
84
+ else if (content) {
85
+ const markSize = Number(fontSize) * ratio;
86
+ ctx.font = `${fontStyle} normal ${fontWeight} ${markSize}px/${markHeight}px ${fontFamily}`;
87
+ ctx.fillStyle = fontColor;
88
+ ctx.textAlign = textAlign;
89
+ if (Array.isArray(content)) {
90
+ content === null || content === void 0 ? void 0 : content.forEach((item, index) => ctx.fillText(item, 0, index * markSize));
91
+ }
92
+ else {
93
+ ctx.fillText(content, 0, 0);
94
+ }
95
+ setBase64Url(canvas.toDataURL());
96
+ }
97
+ }
98
+ else {
99
+ // eslint-disable-next-line no-console
100
+ console.error('当前环境不支持Canvas');
101
+ }
102
+ }, [
103
+ gapX,
104
+ gapY,
105
+ offsetLeft,
106
+ offsetTop,
107
+ rotate,
108
+ fontStyle,
109
+ textAlign,
110
+ fontWeight,
111
+ width,
112
+ height,
113
+ fontFamily,
114
+ fontColor,
115
+ image,
116
+ content,
117
+ fontSize,
118
+ ]);
119
+ return (react_1.default.createElement("div", { style: Object.assign({ position: 'relative' }, style), className: wrapperCls },
120
+ children,
121
+ react_1.default.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
122
+ ? {
123
+ backgroundImage: `url('${base64Url}')`,
124
+ }
125
+ : {})), markStyle) })));
126
+ };
127
+ exports.Watermark = Watermark;
128
+ exports.default = exports.Watermark;
129
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/water-mark/index.tsx"],"names":[],"mappings":"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","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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tntd",
3
- "version": "2.7.3",
3
+ "version": "2.7.4",
4
4
  "license": "MIT",
5
5
  "dependencies": {
6
6
  "@icon-park/react": "^1.3.5",
@@ -21,6 +21,7 @@
21
21
  "react-color": "^2.17.2",
22
22
  "lodash": "~4.17.21",
23
23
  "color-alpha": "~1.1.3",
24
+ "rc-segmented": "~2.2.2",
24
25
  "rc-field-form": "~1.34.0",
25
26
  "scroll-into-view-if-needed": "^2.2.25"
26
27
  },
@@ -66,10 +67,26 @@
66
67
  },
67
68
  "ref": true
68
69
  },
70
+ "repository": {
71
+ "type": "git",
72
+ "url": "git@gitlab.tongdun.cn:app/tntd.git"
73
+ },
74
+ "keywords": [
75
+ "react",
76
+ "component",
77
+ "components",
78
+ "framework",
79
+ "frontend",
80
+ "react-component",
81
+ "react-ui",
82
+ "tntd"
83
+ ],
69
84
  "files": [
70
85
  "lib",
71
86
  "es",
72
- "themes"
87
+ "themes",
88
+ "LICENSE",
89
+ "README.md"
73
90
  ],
74
91
  "main": "lib/index.js",
75
92
  "module": "es/index.js",
@@ -85,5 +102,6 @@
85
102
  "svgr": "npx svgr ./svg --out-dir ./src/svg-components",
86
103
  "test": "heft test",
87
104
  "test:watch": "heft test --watch --clean"
88
- }
105
+ },
106
+ "readme": "# 组件介绍\ntntd是基于 TNT Design 设计体系的 React UI 组件库,主要用于研发企业级中后台产品。\n\n\n## 如何从 `tntd v1.0` 迁移到 `tntd v2.0` \n\n### 安装 `tntd` 最新版本\n\n```\nnpm install tntd\n```\n\n### 更改配置\n\n1. 添加 .babelrc 中的 import 插件配置,实现按需引入\n\n```diff title=\".babelrc\"\n+ [\n+ \"import\",\n+ {\n+ \"libraryName\": \"tntd\",\n+ libraryDirectory: 'es',\n+ },\n+ \"tntd\"\n+ ],\n```\n\n2. 更改 webpack.config.js 中的主题配置\n\n```diff title=\"webpack.config.js\"\n{\n loader: \"less-loader\",\n options: {\n javascriptEnabled: true,\n ...\n modifyVars: {\n- hack: \"true; @import \\\"~@tntd/antd-cover/tnt.less\\\";\"\n+ hack: \"true; @import \\\"~tntd/themes/default/variables.less\\\";\"\n }\n }\n}\n```\n\n3. 修改导入名称\n\nLayout, Icon, Select 等 tntd 1.0 组件和 antd 组件名称存在冲突,请按下方例子进行重命名:\n\n```diff\n- import { Layout, Icon, Select } from 'tntd'\n+ import { TntdLayout, TntdIcon, TntdSelect } from 'tntd'\n```\n\n4. 更改配置\n\n```jsx\n// 使用全新的空状态插画\nimport { renderEmpty } from 'tntd'\n// 使用内置语言包替换 antd\n// 英文语言包\nconst enUS = import 'tntd/es/locale/en_US'\n// 中文语言包\nconst zhCN = import 'tntd/es/locale/zh_CN'\n\nexport const App = () => {\n return (\n // 使用空状态插画及语言包\n <ConfigProvider locale={zhCN} renderEmpty={renderEmpty}>\n ...\n </ConfigProvider>\n )\n}\n```\n"
89
107
  }
@@ -1,3 +0,0 @@
1
- import { tuple } from './type';
2
- // eslint-disable-next-line import/prefer-default-export
3
- export const PresetColorTypes = tuple('pink', 'red', 'yellow', 'orange', 'cyan', 'green', 'blue', 'purple', 'geekblue', 'magenta', 'volcano', 'gold', 'lime');
@@ -1 +0,0 @@
1
- {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/_util/colors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,wDAAwD;AACxD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CACnC,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,OAAO,EACP,MAAM,EACN,QAAQ,EACR,UAAU,EACV,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,CACP,CAAC","sourcesContent":["import { tuple } from './type';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const PresetColorTypes = tuple(\n 'pink',\n 'red',\n 'yellow',\n 'orange',\n 'cyan',\n 'green',\n 'blue',\n 'purple',\n 'geekblue',\n 'magenta',\n 'volcano',\n 'gold',\n 'lime',\n);\n\nexport type PresetColorType = (typeof PresetColorTypes)[number];\n"]}
@@ -1,9 +0,0 @@
1
- // eslint-disable-next-line import/prefer-default-export
2
- export function easeInOutCubic(t, b, c, d) {
3
- const cc = c - b;
4
- t /= d / 2;
5
- if (t < 1) {
6
- return cc / 2 * t * t * t + b;
7
- }
8
- return cc / 2 * ((t -= 2) * t * t + 2) + b;
9
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"easings.js","sourceRoot":"","sources":["../../src/_util/easings.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,MAAM,UAAU,cAAc,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;IACvE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACX,IAAI,CAAC,GAAG,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACjC;IACD,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,CAAC","sourcesContent":["// eslint-disable-next-line import/prefer-default-export\nexport function easeInOutCubic(t: number, b: number, c: number, d: number) {\n const cc = c - b;\n t /= d / 2;\n if (t < 1) {\n return (cc / 2) * t * t * t + b;\n }\n return (cc / 2) * ((t -= 2) * t * t + 2) + b;\n}\n"]}
@@ -1,8 +0,0 @@
1
- export default function getDataOrAriaProps(props) {
2
- return Object.keys(props).reduce((prev, key) => {
3
- if ((key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') && key.substr(0, 7) !== 'data-__') {
4
- prev[key] = props[key];
5
- }
6
- return prev;
7
- }, {});
8
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"getDataOrAriaProps.js","sourceRoot":"","sources":["../../src/_util/getDataOrAriaProps.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,KAAU;IACnD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,GAAW,EAAE,EAAE;QAC1D,IACE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,CAAC;YAChF,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,EAC9B;YACA,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC","sourcesContent":["export default function getDataOrAriaProps(props: any) {\n return Object.keys(props).reduce((prev: any, key: string) => {\n if (\n (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') &&\n key.substr(0, 7) !== 'data-__'\n ) {\n prev[key] = props[key];\n }\n return prev;\n }, {});\n}\n"]}
@@ -1,14 +0,0 @@
1
- export default function getScroll(target, top) {
2
- if (typeof window === 'undefined') {
3
- return 0;
4
- }
5
- const prop = top ? 'pageYOffset' : 'pageXOffset';
6
- const method = top ? 'scrollTop' : 'scrollLeft';
7
- const isWindow = target === window;
8
- let ret = isWindow ? target[prop] : target[method];
9
- // ie6,7,8 standard mode
10
- if (isWindow && typeof ret !== 'number') {
11
- ret = document.documentElement[method];
12
- }
13
- return ret;
14
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"getScroll.js","sourceRoot":"","sources":["../../src/_util/getScroll.tsx"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,MAAmC,EAAE,GAAY;IACjF,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,CAAC,CAAC;KACV;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;IACjD,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,KAAK,MAAM,CAAC;IAEnC,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAE,MAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,MAAsB,CAAC,MAAM,CAAC,CAAC;IAChF,wBAAwB;IACxB,IAAI,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QACvC,GAAG,GAAI,QAAQ,CAAC,eAA+B,CAAC,MAAM,CAAC,CAAC;KACzD;IAED,OAAO,GAAG,CAAC;AACb,CAAC","sourcesContent":["export default function getScroll(target: HTMLElement | Window | null, top: boolean): number {\n if (typeof window === 'undefined') {\n return 0;\n }\n\n const prop = top ? 'pageYOffset' : 'pageXOffset';\n const method = top ? 'scrollTop' : 'scrollLeft';\n const isWindow = target === window;\n\n let ret = isWindow ? (target as Window)[prop] : (target as HTMLElement)[method];\n // ie6,7,8 standard mode\n if (isWindow && typeof ret !== 'number') {\n ret = (document.documentElement as HTMLElement)[method];\n }\n\n return ret;\n}\n"]}
@@ -1,5 +0,0 @@
1
- // https://github.com/moment/moment/issues/3650
2
- // since we are using ts 3.5.1, it should be safe to remove.
3
- export default function interopDefault(m) {
4
- return m.default || m;
5
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"interopDefault.js","sourceRoot":"","sources":["../../src/_util/interopDefault.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,4DAA4D;AAC5D,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,CAAM;IAC3C,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;AACxB,CAAC","sourcesContent":["// https://github.com/moment/moment/issues/3650\n// since we are using ts 3.5.1, it should be safe to remove.\nexport default function interopDefault(m: any) {\n return m.default || m;\n}\n"]}
@@ -1,4 +0,0 @@
1
- const isNumeric = value => {
2
- return !isNaN(parseFloat(value)) && isFinite(value);
3
- };
4
- export default isNumeric;
@@ -1 +0,0 @@
1
- {"version":3,"file":"isNumeric.js","sourceRoot":"","sources":["../../src/_util/isNumeric.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG,CAAC,KAAU,EAAW,EAAE;IACxC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC","sourcesContent":["const isNumeric = (value: any): boolean => {\n return !isNaN(parseFloat(value)) && isFinite(value);\n};\n\nexport default isNumeric;\n"]}
@@ -1,22 +0,0 @@
1
- // ================== Collapse Motion ==================
2
- const getCollapsedHeight = () => ({
3
- height: 0,
4
- opacity: 0
5
- });
6
- const getRealHeight = node => ({
7
- height: node.scrollHeight,
8
- opacity: 1
9
- });
10
- const getCurrentHeight = node => ({
11
- height: node.offsetHeight
12
- });
13
- const collapseMotion = {
14
- motionName: 'ant-motion-collapse',
15
- onAppearStart: getCollapsedHeight,
16
- onEnterStart: getCollapsedHeight,
17
- onAppearActive: getRealHeight,
18
- onEnterActive: getRealHeight,
19
- onLeaveStart: getCurrentHeight,
20
- onLeaveActive: getCollapsedHeight
21
- };
22
- export default collapseMotion;
@@ -1 +0,0 @@
1
- {"version":3,"file":"motion.js","sourceRoot":"","sources":["../../src/_util/motion.tsx"],"names":[],"mappings":"AAwBA,wDAAwD;AACxD,MAAM,kBAAkB,GAAe,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;AACxE,MAAM,aAAa,GAAe,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;AACrF,MAAM,gBAAgB,GAAe,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;AAE5E,MAAM,cAAc,GAAW;IAC7B,UAAU,EAAE,qBAAqB;IACjC,aAAa,EAAE,kBAAkB;IACjC,YAAY,EAAE,kBAAkB;IAChC,cAAc,EAAE,aAAa;IAC7B,aAAa,EAAE,aAAa;IAC5B,YAAY,EAAE,gBAAgB;IAC9B,aAAa,EAAE,kBAAkB;CAClC,CAAA;AAED,eAAe,cAAc,CAAA","sourcesContent":["import type React from 'react'\n\ntype MotionFunc = (element: HTMLElement) => React.CSSProperties\n\ninterface Motion {\n visible?: boolean\n motionName?: string // It also support object, but we only use string here.\n motionAppear?: boolean\n motionEnter?: boolean\n motionLeave?: boolean\n motionLeaveImmediately?: boolean // Trigger leave motion immediately\n removeOnLeave?: boolean\n leavedClassName?: string\n onAppearStart?: MotionFunc\n onAppearActive?: MotionFunc\n onAppearEnd?: MotionFunc\n onEnterStart?: MotionFunc\n onEnterActive?: MotionFunc\n onEnterEnd?: MotionFunc\n onLeaveStart?: MotionFunc\n onLeaveActive?: MotionFunc\n onLeaveEnd?: MotionFunc\n}\n\n// ================== Collapse Motion ==================\nconst getCollapsedHeight: MotionFunc = () => ({ height: 0, opacity: 0 })\nconst getRealHeight: MotionFunc = node => ({ height: node.scrollHeight, opacity: 1 })\nconst getCurrentHeight: MotionFunc = node => ({ height: node.offsetHeight })\n\nconst collapseMotion: Motion = {\n motionName: 'ant-motion-collapse',\n onAppearStart: getCollapsedHeight,\n onEnterStart: getCollapsedHeight,\n onAppearActive: getRealHeight,\n onEnterActive: getRealHeight,\n onLeaveStart: getCurrentHeight,\n onLeaveActive: getCollapsedHeight,\n}\n\nexport default collapseMotion\n"]}