tdesign-react 0.31.2-alpha.1 → 0.31.2-alpha.2

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 (277) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/tdesign.css +498 -0
  3. package/dist/tdesign.css.map +1 -1
  4. package/dist/tdesign.js +26543 -20076
  5. package/dist/tdesign.js.map +1 -1
  6. package/dist/tdesign.min.css +1 -1
  7. package/dist/tdesign.min.css.map +1 -1
  8. package/dist/tdesign.min.js +9 -3
  9. package/dist/tdesign.min.js.map +1 -1
  10. package/es/_chunks/{dep-5d29cc59.js → dep-7e7b26b4.js} +1 -1
  11. package/es/_chunks/{dep-5d29cc59.js.map → dep-7e7b26b4.js.map} +1 -1
  12. package/es/_common/js/color-picker/cmyk.d.ts +27 -0
  13. package/es/_common/js/color-picker/color.d.ts +154 -0
  14. package/es/_common/js/color-picker/gradient.d.ts +22 -0
  15. package/es/_util/useClickOutside.d.ts +1 -1
  16. package/es/_util/useClickOutside.js +51 -3
  17. package/es/_util/useClickOutside.js.map +1 -1
  18. package/es/_util/useDrag.d.ts +16 -0
  19. package/es/_util/useDrag.js +74 -0
  20. package/es/_util/useDrag.js.map +1 -0
  21. package/es/avatar/AvararGroup.js +1 -1
  22. package/es/avatar/Avatar.js +1 -1
  23. package/es/avatar/index.js +1 -1
  24. package/es/color-picker/ColorPicker.d.ts +4 -0
  25. package/es/color-picker/ColorPicker.js +241 -0
  26. package/es/color-picker/ColorPicker.js.map +1 -0
  27. package/es/color-picker/ColorPickerPanel.d.ts +7 -0
  28. package/es/color-picker/ColorPickerPanel.js +179 -0
  29. package/es/color-picker/ColorPickerPanel.js.map +1 -0
  30. package/es/color-picker/components/panel/alpha.d.ts +4 -0
  31. package/es/color-picker/components/panel/alpha.js +48 -0
  32. package/es/color-picker/components/panel/alpha.js.map +1 -0
  33. package/es/color-picker/components/panel/format/config.d.ts +19 -0
  34. package/es/color-picker/components/panel/format/config.js +90 -0
  35. package/es/color-picker/components/panel/format/config.js.map +1 -0
  36. package/es/color-picker/components/panel/format/index.d.ts +11 -0
  37. package/es/color-picker/components/panel/format/index.js +197 -0
  38. package/es/color-picker/components/panel/format/index.js.map +1 -0
  39. package/es/color-picker/components/panel/format/inputs.d.ts +3 -0
  40. package/es/color-picker/components/panel/format/inputs.js +223 -0
  41. package/es/color-picker/components/panel/format/inputs.js.map +1 -0
  42. package/es/color-picker/components/panel/header.d.ts +14 -0
  43. package/es/color-picker/components/panel/header.js +100 -0
  44. package/es/color-picker/components/panel/header.js.map +1 -0
  45. package/es/color-picker/components/panel/hue.d.ts +4 -0
  46. package/es/color-picker/components/panel/hue.js +32 -0
  47. package/es/color-picker/components/panel/hue.js.map +1 -0
  48. package/es/color-picker/components/panel/index.d.ts +4 -0
  49. package/es/color-picker/components/panel/index.js +456 -0
  50. package/es/color-picker/components/panel/index.js.map +1 -0
  51. package/es/color-picker/components/panel/linear-gradient.d.ts +3 -0
  52. package/es/color-picker/components/panel/linear-gradient.js +360 -0
  53. package/es/color-picker/components/panel/linear-gradient.js.map +1 -0
  54. package/es/color-picker/components/panel/saturation.d.ts +4 -0
  55. package/es/color-picker/components/panel/saturation.js +124 -0
  56. package/es/color-picker/components/panel/saturation.js.map +1 -0
  57. package/es/color-picker/components/panel/slider.d.ts +10 -0
  58. package/es/color-picker/components/panel/slider.js +106 -0
  59. package/es/color-picker/components/panel/slider.js.map +1 -0
  60. package/es/color-picker/components/panel/style/css.d.ts +1 -0
  61. package/es/color-picker/components/panel/style/css.js +1 -0
  62. package/es/color-picker/components/panel/style/index.d.ts +1 -0
  63. package/es/color-picker/components/panel/style/index.js +7 -0
  64. package/es/color-picker/components/panel/style/index.js.map +1 -0
  65. package/es/color-picker/components/panel/swatches.d.ts +11 -0
  66. package/es/color-picker/components/panel/swatches.js +134 -0
  67. package/es/color-picker/components/panel/swatches.js.map +1 -0
  68. package/es/color-picker/components/style/css.d.ts +1 -0
  69. package/es/color-picker/components/style/css.js +1 -0
  70. package/es/color-picker/components/style/index.d.ts +1 -0
  71. package/es/color-picker/components/style/index.js +7 -0
  72. package/es/color-picker/components/style/index.js.map +1 -0
  73. package/es/color-picker/components/trigger.d.ts +9 -0
  74. package/es/color-picker/components/trigger.js +125 -0
  75. package/es/color-picker/components/trigger.js.map +1 -0
  76. package/es/color-picker/const.d.ts +15 -0
  77. package/es/color-picker/const.js +22 -0
  78. package/es/color-picker/const.js.map +1 -0
  79. package/es/color-picker/hooks/useClassname.d.ts +2 -0
  80. package/es/color-picker/hooks/useClassname.js +46 -0
  81. package/es/color-picker/hooks/useClassname.js.map +1 -0
  82. package/es/color-picker/index.d.ts +10 -0
  83. package/es/color-picker/index.js +172 -0
  84. package/es/color-picker/index.js.map +1 -0
  85. package/es/color-picker/interface.d.ts +23 -0
  86. package/es/color-picker/interface.js +7 -0
  87. package/es/color-picker/interface.js.map +1 -0
  88. package/es/color-picker/style/css.d.ts +1 -0
  89. package/es/color-picker/style/css.js +1 -0
  90. package/es/color-picker/style/index.css +497 -0
  91. package/es/color-picker/style/index.d.ts +1 -0
  92. package/es/color-picker/style/index.js +7 -0
  93. package/es/color-picker/style/index.js.map +1 -0
  94. package/es/color-picker/type.d.ts +109 -0
  95. package/es/color-picker/type.js +7 -0
  96. package/es/color-picker/type.js.map +1 -0
  97. package/es/index.d.ts +1 -0
  98. package/es/index.js +24 -1
  99. package/es/index.js.map +1 -1
  100. package/es/input/Input.js +1 -1
  101. package/es/input/Input.js.map +1 -1
  102. package/es/popup/hooks/useTriggerProps.js +28 -0
  103. package/es/popup/hooks/useTriggerProps.js.map +1 -1
  104. package/esm/_chunks/{dep-5d29cc59.js → dep-7e7b26b4.js} +1 -1
  105. package/esm/_chunks/{dep-5d29cc59.js.map → dep-7e7b26b4.js.map} +1 -1
  106. package/esm/_common/js/color-picker/cmyk.d.ts +27 -0
  107. package/esm/_common/js/color-picker/color.d.ts +154 -0
  108. package/esm/_common/js/color-picker/gradient.d.ts +22 -0
  109. package/esm/_util/useClickOutside.d.ts +1 -1
  110. package/esm/_util/useClickOutside.js +51 -3
  111. package/esm/_util/useClickOutside.js.map +1 -1
  112. package/esm/_util/useDrag.d.ts +16 -0
  113. package/esm/_util/useDrag.js +74 -0
  114. package/esm/_util/useDrag.js.map +1 -0
  115. package/esm/avatar/AvararGroup.js +1 -1
  116. package/esm/avatar/Avatar.js +1 -1
  117. package/esm/avatar/index.js +1 -1
  118. package/esm/color-picker/ColorPicker.d.ts +4 -0
  119. package/esm/color-picker/ColorPicker.js +250 -0
  120. package/esm/color-picker/ColorPicker.js.map +1 -0
  121. package/esm/color-picker/ColorPickerPanel.d.ts +7 -0
  122. package/esm/color-picker/ColorPickerPanel.js +188 -0
  123. package/esm/color-picker/ColorPickerPanel.js.map +1 -0
  124. package/esm/color-picker/components/panel/alpha.d.ts +4 -0
  125. package/esm/color-picker/components/panel/alpha.js +48 -0
  126. package/esm/color-picker/components/panel/alpha.js.map +1 -0
  127. package/esm/color-picker/components/panel/format/config.d.ts +19 -0
  128. package/esm/color-picker/components/panel/format/config.js +90 -0
  129. package/esm/color-picker/components/panel/format/config.js.map +1 -0
  130. package/esm/color-picker/components/panel/format/index.d.ts +11 -0
  131. package/esm/color-picker/components/panel/format/index.js +205 -0
  132. package/esm/color-picker/components/panel/format/index.js.map +1 -0
  133. package/esm/color-picker/components/panel/format/inputs.d.ts +3 -0
  134. package/esm/color-picker/components/panel/format/inputs.js +226 -0
  135. package/esm/color-picker/components/panel/format/inputs.js.map +1 -0
  136. package/esm/color-picker/components/panel/header.d.ts +14 -0
  137. package/esm/color-picker/components/panel/header.js +100 -0
  138. package/esm/color-picker/components/panel/header.js.map +1 -0
  139. package/esm/color-picker/components/panel/hue.d.ts +4 -0
  140. package/esm/color-picker/components/panel/hue.js +32 -0
  141. package/esm/color-picker/components/panel/hue.js.map +1 -0
  142. package/esm/color-picker/components/panel/index.d.ts +4 -0
  143. package/esm/color-picker/components/panel/index.js +465 -0
  144. package/esm/color-picker/components/panel/index.js.map +1 -0
  145. package/esm/color-picker/components/panel/linear-gradient.d.ts +3 -0
  146. package/esm/color-picker/components/panel/linear-gradient.js +363 -0
  147. package/esm/color-picker/components/panel/linear-gradient.js.map +1 -0
  148. package/esm/color-picker/components/panel/saturation.d.ts +4 -0
  149. package/esm/color-picker/components/panel/saturation.js +124 -0
  150. package/esm/color-picker/components/panel/saturation.js.map +1 -0
  151. package/esm/color-picker/components/panel/slider.d.ts +10 -0
  152. package/esm/color-picker/components/panel/slider.js +106 -0
  153. package/esm/color-picker/components/panel/slider.js.map +1 -0
  154. package/esm/color-picker/components/panel/style/css.d.ts +1 -0
  155. package/esm/color-picker/components/panel/style/index.d.ts +1 -0
  156. package/esm/color-picker/components/panel/style/index.js +1 -0
  157. package/esm/color-picker/components/panel/swatches.d.ts +11 -0
  158. package/esm/color-picker/components/panel/swatches.js +134 -0
  159. package/esm/color-picker/components/panel/swatches.js.map +1 -0
  160. package/esm/color-picker/components/style/css.d.ts +1 -0
  161. package/esm/color-picker/components/style/index.d.ts +1 -0
  162. package/esm/color-picker/components/style/index.js +1 -0
  163. package/esm/color-picker/components/trigger.d.ts +9 -0
  164. package/esm/color-picker/components/trigger.js +125 -0
  165. package/esm/color-picker/components/trigger.js.map +1 -0
  166. package/esm/color-picker/const.d.ts +15 -0
  167. package/esm/color-picker/const.js +22 -0
  168. package/esm/color-picker/const.js.map +1 -0
  169. package/esm/color-picker/hooks/useClassname.d.ts +2 -0
  170. package/esm/color-picker/hooks/useClassname.js +46 -0
  171. package/esm/color-picker/hooks/useClassname.js.map +1 -0
  172. package/esm/color-picker/index.d.ts +10 -0
  173. package/esm/color-picker/index.js +182 -0
  174. package/esm/color-picker/index.js.map +1 -0
  175. package/esm/color-picker/interface.d.ts +23 -0
  176. package/esm/color-picker/interface.js +7 -0
  177. package/esm/color-picker/interface.js.map +1 -0
  178. package/esm/color-picker/style/css.d.ts +1 -0
  179. package/esm/color-picker/style/index.d.ts +1 -0
  180. package/esm/color-picker/style/index.js +1 -0
  181. package/esm/color-picker/type.d.ts +109 -0
  182. package/esm/color-picker/type.js +7 -0
  183. package/esm/color-picker/type.js.map +1 -0
  184. package/esm/index.d.ts +1 -0
  185. package/esm/index.js +25 -1
  186. package/esm/index.js.map +1 -1
  187. package/esm/input/Input.js +1 -1
  188. package/esm/input/Input.js.map +1 -1
  189. package/esm/popup/hooks/useTriggerProps.js +28 -0
  190. package/esm/popup/hooks/useTriggerProps.js.map +1 -1
  191. package/lib/_chunks/{dep-1c7ceac8.js → dep-9d6a55ed.js} +1 -1
  192. package/lib/_chunks/{dep-1c7ceac8.js.map → dep-9d6a55ed.js.map} +1 -1
  193. package/lib/_common/js/color-picker/cmyk.d.ts +27 -0
  194. package/lib/_common/js/color-picker/color.d.ts +154 -0
  195. package/lib/_common/js/color-picker/gradient.d.ts +22 -0
  196. package/lib/_util/useClickOutside.d.ts +1 -1
  197. package/lib/_util/useClickOutside.js +47 -3
  198. package/lib/_util/useClickOutside.js.map +1 -1
  199. package/lib/_util/useDrag.d.ts +16 -0
  200. package/lib/_util/useDrag.js +78 -0
  201. package/lib/_util/useDrag.js.map +1 -0
  202. package/lib/avatar/AvararGroup.js +1 -1
  203. package/lib/avatar/Avatar.js +1 -1
  204. package/lib/avatar/index.js +1 -1
  205. package/lib/color-picker/ColorPicker.d.ts +4 -0
  206. package/lib/color-picker/ColorPicker.js +232 -0
  207. package/lib/color-picker/ColorPicker.js.map +1 -0
  208. package/lib/color-picker/ColorPickerPanel.d.ts +7 -0
  209. package/lib/color-picker/ColorPickerPanel.js +170 -0
  210. package/lib/color-picker/ColorPickerPanel.js.map +1 -0
  211. package/lib/color-picker/components/panel/alpha.d.ts +4 -0
  212. package/lib/color-picker/components/panel/alpha.js +57 -0
  213. package/lib/color-picker/components/panel/alpha.js.map +1 -0
  214. package/lib/color-picker/components/panel/format/config.d.ts +19 -0
  215. package/lib/color-picker/components/panel/format/config.js +95 -0
  216. package/lib/color-picker/components/panel/format/config.js.map +1 -0
  217. package/lib/color-picker/components/panel/format/index.d.ts +11 -0
  218. package/lib/color-picker/components/panel/format/index.js +189 -0
  219. package/lib/color-picker/components/panel/format/index.js.map +1 -0
  220. package/lib/color-picker/components/panel/format/inputs.d.ts +3 -0
  221. package/lib/color-picker/components/panel/format/inputs.js +220 -0
  222. package/lib/color-picker/components/panel/format/inputs.js.map +1 -0
  223. package/lib/color-picker/components/panel/header.d.ts +14 -0
  224. package/lib/color-picker/components/panel/header.js +103 -0
  225. package/lib/color-picker/components/panel/header.js.map +1 -0
  226. package/lib/color-picker/components/panel/hue.d.ts +4 -0
  227. package/lib/color-picker/components/panel/hue.js +40 -0
  228. package/lib/color-picker/components/panel/hue.js.map +1 -0
  229. package/lib/color-picker/components/panel/index.d.ts +4 -0
  230. package/lib/color-picker/components/panel/index.js +448 -0
  231. package/lib/color-picker/components/panel/index.js.map +1 -0
  232. package/lib/color-picker/components/panel/linear-gradient.d.ts +3 -0
  233. package/lib/color-picker/components/panel/linear-gradient.js +358 -0
  234. package/lib/color-picker/components/panel/linear-gradient.js.map +1 -0
  235. package/lib/color-picker/components/panel/saturation.d.ts +4 -0
  236. package/lib/color-picker/components/panel/saturation.js +132 -0
  237. package/lib/color-picker/components/panel/saturation.js.map +1 -0
  238. package/lib/color-picker/components/panel/slider.d.ts +10 -0
  239. package/lib/color-picker/components/panel/slider.js +115 -0
  240. package/lib/color-picker/components/panel/slider.js.map +1 -0
  241. package/lib/color-picker/components/panel/style/css.d.ts +1 -0
  242. package/lib/color-picker/components/panel/style/index.d.ts +1 -0
  243. package/lib/color-picker/components/panel/swatches.d.ts +11 -0
  244. package/lib/color-picker/components/panel/swatches.js +139 -0
  245. package/lib/color-picker/components/panel/swatches.js.map +1 -0
  246. package/lib/color-picker/components/style/css.d.ts +1 -0
  247. package/lib/color-picker/components/style/index.d.ts +1 -0
  248. package/lib/color-picker/components/trigger.d.ts +9 -0
  249. package/lib/color-picker/components/trigger.js +126 -0
  250. package/lib/color-picker/components/trigger.js.map +1 -0
  251. package/lib/color-picker/const.d.ts +15 -0
  252. package/lib/color-picker/const.js +35 -0
  253. package/lib/color-picker/const.js.map +1 -0
  254. package/lib/color-picker/hooks/useClassname.d.ts +2 -0
  255. package/lib/color-picker/hooks/useClassname.js +46 -0
  256. package/lib/color-picker/hooks/useClassname.js.map +1 -0
  257. package/lib/color-picker/index.d.ts +10 -0
  258. package/lib/color-picker/index.js +160 -0
  259. package/lib/color-picker/index.js.map +1 -0
  260. package/lib/color-picker/interface.d.ts +23 -0
  261. package/lib/color-picker/interface.js +9 -0
  262. package/lib/color-picker/interface.js.map +1 -0
  263. package/lib/color-picker/style/css.d.ts +1 -0
  264. package/lib/color-picker/style/index.d.ts +1 -0
  265. package/lib/color-picker/type.d.ts +109 -0
  266. package/lib/color-picker/type.js +9 -0
  267. package/lib/color-picker/type.js.map +1 -0
  268. package/lib/index-lib.js +25 -1
  269. package/lib/index-lib.js.map +1 -1
  270. package/lib/index.d.ts +1 -0
  271. package/lib/index.js +25 -1
  272. package/lib/index.js.map +1 -1
  273. package/lib/input/Input.js +1 -1
  274. package/lib/input/Input.js.map +1 -1
  275. package/lib/popup/hooks/useTriggerProps.js +24 -0
  276. package/lib/popup/hooks/useTriggerProps.js.map +1 -1
  277. package/package.json +4 -2
@@ -0,0 +1,360 @@
1
+ /**
2
+ * tdesign v0.31.1
3
+ * (c) 2022 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import { _ as _toConsumableArray } from '../../../_chunks/dep-3cf23cb4.js';
8
+ import React, { useRef, useEffect, useCallback } from 'react';
9
+ import { c as cloneDeep_1 } from '../../../_chunks/dep-9926d76f.js';
10
+ import classNames from 'classnames';
11
+ import useClassname from '../../hooks/useClassname.js';
12
+ import { genGradientPoint, gradientColors2string } from '../../../_common/js/color-picker/color.js';
13
+ import useCommonClassName from '../../../_util/useCommonClassName.js';
14
+ import { GRADIENT_SLIDER_DEFAULT_WIDTH } from '../../const.js';
15
+ import { InputNumber } from '../../../input-number/index.js';
16
+ import '../../../_chunks/dep-85a9595a.js';
17
+ import '../../../_chunks/dep-8702aba9.js';
18
+ import '../../../_chunks/dep-cdbc448f.js';
19
+ import '../../../_chunks/dep-e9e7c24f.js';
20
+ import '../../../_chunks/dep-c47502ef.js';
21
+ import '../../../_chunks/dep-3a2f4bdf.js';
22
+ import '../../../_chunks/dep-d51fd958.js';
23
+ import '../../../_chunks/dep-db8880c0.js';
24
+ import '../../../_chunks/dep-8efaaac0.js';
25
+ import '../../../_chunks/dep-d539b435.js';
26
+ import '../../../_chunks/dep-2b0021c1.js';
27
+ import '../../../_chunks/dep-09299e3f.js';
28
+ import '../../../_chunks/dep-23b2574f.js';
29
+ import '../../../_chunks/dep-a1403158.js';
30
+ import '../../../_chunks/dep-c03c5f48.js';
31
+ import '../../../_chunks/dep-9b67144e.js';
32
+ import '../../../_chunks/dep-d038aaf3.js';
33
+ import '../../../_chunks/dep-00728537.js';
34
+ import '../../../_chunks/dep-32abd81f.js';
35
+ import '../../../_chunks/dep-f3e5eb4b.js';
36
+ import '../../../_chunks/dep-ae52f85e.js';
37
+ import '../../../_chunks/dep-63ed508e.js';
38
+ import '../../../_chunks/dep-155571ca.js';
39
+ import '../../../_chunks/dep-d17dffc0.js';
40
+ import '../../../_chunks/dep-6bf856c2.js';
41
+ import '../../../_chunks/dep-d820193b.js';
42
+ import '../../../_util/useConfig.js';
43
+ import '../../../_chunks/dep-bbad8591.js';
44
+ import '../../../_chunks/dep-1628aaec.js';
45
+ import '../../../_chunks/dep-81670ae9.js';
46
+ import '../../../locale/zh_CN.js';
47
+ import '../../../_common/js/global-config/locale/zh_CN.js';
48
+ import '../../../config-provider/zh_CN_config.js';
49
+ import '../../../_chunks/dep-aca05d9d.js';
50
+ import '../../../_chunks/dep-926c2765.js';
51
+ import 'tinycolor2';
52
+ import '../../../_common/js/color-picker/cmyk.js';
53
+ import '../../../_common/js/color-picker/gradient.js';
54
+ import '../../../input-number/InputNumber.js';
55
+ import '../../../_chunks/dep-ea842483.js';
56
+ import '../../../_util/useUpdateEffect.js';
57
+ import '../../../_util/useLayoutEffect.js';
58
+ import '../../../_util/dom.js';
59
+ import 'raf';
60
+ import '../../../_chunks/dep-c9e242b1.js';
61
+ import '../../../_util/easing.js';
62
+ import '../../../input-number/StepHandler.js';
63
+ import 'tdesign-icons-react';
64
+ import '../../../button/index.js';
65
+ import '../../../button/Button.js';
66
+ import '../../../_util/noop.js';
67
+ import '../../../_util/useRipple.js';
68
+ import '../../../_util/useAnimation.js';
69
+ import '../../../_util/setStyle.js';
70
+ import '../../../loading/index.js';
71
+ import '../../../loading/Loading.js';
72
+ import '../../../common/Portal.js';
73
+ import 'react-dom';
74
+ import '../../../loading/gradient.js';
75
+ import '../../../_common/js/loading/circle-adapter.js';
76
+ import '../../../_common/js/utils/set-style.js';
77
+ import '../../../_common/js/utils/helper.js';
78
+ import '../../../loading/plugin.js';
79
+ import './style/css.js';
80
+ import '../../../loading/type.js';
81
+ import '../../../button/type.js';
82
+ import '../../../input-number/utils/numberUtils.js';
83
+ import '../../../input/index.js';
84
+ import '../../../input/Input.js';
85
+ import '../../../_util/forwardRefWithStatics.js';
86
+ import 'hoist-non-react-statics';
87
+ import '../../../_util/helper.js';
88
+ import '../../../_chunks/dep-e0790d2e.js';
89
+ import '../../../_chunks/dep-020d9062.js';
90
+ import '../../../_chunks/dep-fd1b4e24.js';
91
+ import '../../../_chunks/dep-0d23bb2c.js';
92
+ import '../../../_chunks/dep-db65b23a.js';
93
+ import '../../../input/InputGroup.js';
94
+ import '../../../_util/useDefaultValue.js';
95
+ import '../../../_util/useDefault.js';
96
+ import '../../../locale/LocalReceiver.js';
97
+ import '../../../config-provider/index.js';
98
+ import '../../../config-provider/ConfigProvider.js';
99
+ import '../../../input/type.js';
100
+ import '../../../input-number/type.js';
101
+
102
+ var DELETE_KEYS = ["delete", "backspace"];
103
+
104
+ var LinearGradient = function LinearGradient(props) {
105
+ var onChange = props.onChange,
106
+ color = props.color,
107
+ disabled = props.disabled;
108
+ var baseClassName = useClassname();
109
+
110
+ var _useCommonClassName = useCommonClassName(),
111
+ statusClassNames = _useCommonClassName.STATUS;
112
+
113
+ var refSlider = useRef(null);
114
+ var sliderRectRef = useRef({
115
+ left: 0,
116
+ width: GRADIENT_SLIDER_DEFAULT_WIDTH
117
+ });
118
+ var isDragging = useRef(false);
119
+ var isMoved = useRef(false);
120
+ var degree = useRef(props.color.gradientDegree);
121
+ var selectedId = useRef(props.color.gradientSelectedId);
122
+ var colors = useRef(cloneDeep_1(color.gradientColors));
123
+ useEffect(function () {
124
+ degree.current = color === null || color === void 0 ? void 0 : color.gradientDegree;
125
+ selectedId.current = color.gradientSelectedId;
126
+ colors.current = cloneDeep_1(color.gradientColors);
127
+ }, [color]);
128
+
129
+ var updateSliderRect = function updateSliderRect() {
130
+ var rect = refSlider.current.getBoundingClientRect();
131
+ sliderRectRef.current = {
132
+ left: rect.left,
133
+ width: rect.width || GRADIENT_SLIDER_DEFAULT_WIDTH
134
+ };
135
+ };
136
+
137
+ var handleChange = useCallback(function (key, payload, addUsedColor) {
138
+ if (disabled) {
139
+ return;
140
+ }
141
+
142
+ onChange({
143
+ key: key,
144
+ payload: payload,
145
+ addUsedColor: addUsedColor
146
+ });
147
+ }, [onChange, disabled]);
148
+
149
+ var handleDegreeChange = function handleDegreeChange(value) {
150
+ if (props.disabled || value === props.color.gradientDegree) {
151
+ return;
152
+ }
153
+
154
+ degree.current = value;
155
+ handleChange("degree", value, true);
156
+ };
157
+
158
+ var handleSelectedIdChange = function handleSelectedIdChange(value) {
159
+ if (props.disabled) {
160
+ return;
161
+ }
162
+
163
+ selectedId.current = value;
164
+ handleChange("selectedId", value);
165
+ };
166
+
167
+ var handleColorsChange = useCallback(function (value, isEnded) {
168
+ if (props.disabled) {
169
+ return;
170
+ }
171
+
172
+ colors.current = value;
173
+ handleChange("colors", value, isEnded);
174
+ }, [props.disabled, handleChange]);
175
+ var updateActiveThumbLeft = useCallback(function (left) {
176
+ var index = colors.current.findIndex(function (c) {
177
+ return c.id === selectedId.current;
178
+ });
179
+
180
+ if (index === -1) {
181
+ return;
182
+ }
183
+
184
+ var point = colors.current[index];
185
+ var formatLeft = Math.max(0, Math.min(sliderRectRef.current.width, left));
186
+ var percentLeft = formatLeft / sliderRectRef.current.width * 100;
187
+ var newColors = colors.current.map(function (item, i) {
188
+ return index !== i ? item : {
189
+ color: point.color,
190
+ left: percentLeft,
191
+ id: point.id
192
+ };
193
+ });
194
+ handleColorsChange(newColors);
195
+ }, [handleColorsChange]);
196
+
197
+ var handleStart = function handleStart(id, e) {
198
+ if (isDragging.current || props.disabled) {
199
+ return;
200
+ }
201
+
202
+ isMoved.current = false;
203
+ isDragging.current = true;
204
+ e.preventDefault();
205
+ e.stopPropagation();
206
+ refSlider.current.focus();
207
+ };
208
+
209
+ var handleMove = useCallback(function (e) {
210
+ if (!isDragging.current || disabled) {
211
+ return;
212
+ }
213
+
214
+ var rect = refSlider.current.getBoundingClientRect();
215
+ var left = e.clientX - rect.x;
216
+ isMoved.current = true;
217
+ updateActiveThumbLeft(left);
218
+ }, [disabled, updateActiveThumbLeft]);
219
+ var handleEnd = useCallback(function () {
220
+ if (!isDragging.current) {
221
+ return;
222
+ }
223
+
224
+ setTimeout(function () {
225
+ isDragging.current = false;
226
+ }, 0);
227
+
228
+ if (isMoved.current) {
229
+ handleColorsChange(colors.current, true);
230
+ isMoved.current = false;
231
+ }
232
+ }, [handleColorsChange]);
233
+
234
+ var handleKeyup = function handleKeyup(e) {
235
+ if (props.disabled) {
236
+ return;
237
+ }
238
+
239
+ var points = _toConsumableArray(colors.current);
240
+
241
+ var pos = points.findIndex(function (c) {
242
+ return c.id === selectedId.current;
243
+ });
244
+ var length = points.length;
245
+
246
+ if (DELETE_KEYS.includes(e.key.toLocaleLowerCase()) && length > 2 && pos >= 0 && pos <= length - 1) {
247
+ points.splice(pos, 1);
248
+
249
+ if (!points[pos]) {
250
+ pos = points[pos + 1] ? pos + 1 : points[pos - 1] ? pos - 1 : 0;
251
+ }
252
+
253
+ var current = points[pos];
254
+ handleColorsChange(points, true);
255
+ handleSelectedIdChange(current === null || current === void 0 ? void 0 : current.id);
256
+ }
257
+ };
258
+
259
+ var handleThumbBarClick = function handleThumbBarClick(e) {
260
+ if (props.disabled) {
261
+ return;
262
+ }
263
+
264
+ updateSliderRect();
265
+ var left = e.clientX - sliderRectRef.current.left;
266
+ left = Math.max(0, Math.min(sliderRectRef.current.width, left));
267
+ var percentLeft = left / sliderRectRef.current.width * 100;
268
+ var newPoint = genGradientPoint(percentLeft, props.color.rgba);
269
+
270
+ var newColors = _toConsumableArray(colors.current);
271
+
272
+ newColors.push(newPoint);
273
+ handleColorsChange(newColors, true);
274
+ handleSelectedIdChange(newPoint.id);
275
+ };
276
+
277
+ useEffect(function () {
278
+ updateSliderRect();
279
+ window.addEventListener("mousemove", handleMove, false);
280
+ window.addEventListener("mouseup", handleEnd, false);
281
+ window.addEventListener("contextmenu", handleEnd, false);
282
+ return function () {
283
+ window.removeEventListener("mousemove", handleMove, false);
284
+ window.removeEventListener("mouseup", handleEnd, false);
285
+ window.removeEventListener("contextmenu", handleEnd, false);
286
+ };
287
+ }, []);
288
+ var _props$color = props.color,
289
+ linearGradient = _props$color.linearGradient,
290
+ gradientColors = _props$color.gradientColors;
291
+ var thumbBackground = gradientColors2string({
292
+ points: gradientColors,
293
+ degree: 90
294
+ });
295
+
296
+ var handleClickThumb = function handleClickThumb(e) {
297
+ return e.stopPropagation();
298
+ };
299
+
300
+ return /* @__PURE__ */React.createElement("div", {
301
+ className: "".concat(baseClassName, "__gradient")
302
+ }, /* @__PURE__ */React.createElement("div", {
303
+ className: "".concat(baseClassName, "__gradient-slider")
304
+ }, /* @__PURE__ */React.createElement("div", {
305
+ className: classNames("".concat(baseClassName, "__slider"), "".concat(baseClassName, "--bg-alpha")),
306
+ onKeyUp: handleKeyup,
307
+ tabIndex: 0,
308
+ ref: refSlider
309
+ }, /* @__PURE__ */React.createElement("ul", {
310
+ className: "gradient-thumbs",
311
+ onClick: handleThumbBarClick,
312
+ style: {
313
+ background: thumbBackground
314
+ }
315
+ }, colors.current.map(function (t) {
316
+ var left = "".concat(Math.round(t.left * 100) / 100, "%");
317
+ return /* @__PURE__ */React.createElement("li", {
318
+ className: classNames(["".concat(baseClassName, "__thumb"), "gradient-thumbs__item", selectedId.current === t.id ? statusClassNames.active : ""]),
319
+ key: t.id,
320
+ title: "".concat(t.color, " ").concat(left),
321
+ style: {
322
+ color: t.color,
323
+ left: left
324
+ },
325
+ onClick: handleClickThumb,
326
+ onMouseDown: function onMouseDown(e) {
327
+ return handleStart(t.id, e);
328
+ }
329
+ }, /* @__PURE__ */React.createElement("span", {
330
+ className: classNames(["gradient-thumbs__item-inner", "".concat(baseClassName, "--bg-alpha")])
331
+ }));
332
+ })))), /* @__PURE__ */React.createElement("div", {
333
+ className: "".concat(baseClassName, "__gradient-degree"),
334
+ title: "".concat(degree, "deg")
335
+ }, /* @__PURE__ */React.createElement(InputNumber, {
336
+ theme: "normal",
337
+ min: 0,
338
+ max: 360,
339
+ step: 1,
340
+ format: function format(value) {
341
+ return "".concat(value, "\xB0");
342
+ },
343
+ value: degree.current,
344
+ onBlur: handleDegreeChange,
345
+ onEnter: handleDegreeChange,
346
+ disabled: props.disabled
347
+ })), /* @__PURE__ */React.createElement("div", {
348
+ className: classNames(["".concat(baseClassName, "__gradient-preview"), "".concat(baseClassName, "--bg-alpha")])
349
+ }, /* @__PURE__ */React.createElement("span", {
350
+ className: "preview-inner",
351
+ style: {
352
+ background: linearGradient
353
+ }
354
+ })));
355
+ };
356
+
357
+ var LinearGradient$1 = /*#__PURE__*/React.memo(LinearGradient);
358
+
359
+ export { LinearGradient$1 as default };
360
+ //# sourceMappingURL=linear-gradient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linear-gradient.js","sources":["../../../../src/color-picker/components/panel/linear-gradient.tsx"],"sourcesContent":["import React, { KeyboardEvent, MouseEvent as ReactMouseEvent, useCallback, useEffect, useRef } from 'react';\nimport cloneDeep from 'lodash/cloneDeep';\nimport classNames from 'classnames';\nimport useClassname from '../../hooks/useClassname';\nimport { genGradientPoint, gradientColors2string } from '../../../_common/js/color-picker/color';\nimport { GradientColorPoint } from '../../../_common/js/color-picker/gradient';\nimport useCommonClassName from '../../../_util/useCommonClassName';\nimport { GRADIENT_SLIDER_DEFAULT_WIDTH } from '../../const';\nimport InputNumber from '../../../input-number';\n\nconst DELETE_KEYS: string[] = ['delete', 'backspace'];\n\ntype TSliderRect = {\n left: number;\n width: number;\n};\n\nconst LinearGradient = (props) => {\n const { onChange, color, disabled } = props;\n const baseClassName = useClassname();\n const { STATUS: statusClassNames } = useCommonClassName();\n const refSlider = useRef<HTMLDivElement>(null);\n const sliderRectRef = useRef<TSliderRect>({\n left: 0,\n width: GRADIENT_SLIDER_DEFAULT_WIDTH,\n });\n const isDragging = useRef<Boolean>(false);\n const isMoved = useRef<Boolean>(false);\n const degree = useRef(props.color.gradientDegree);\n const selectedId = useRef(props.color.gradientSelectedId);\n const colors = useRef<GradientColorPoint[]>(cloneDeep(color.gradientColors));\n\n useEffect(() => {\n degree.current = color?.gradientDegree;\n selectedId.current = color.gradientSelectedId;\n colors.current = cloneDeep(color.gradientColors);\n }, [color]);\n\n const updateSliderRect = () => {\n const rect = refSlider.current.getBoundingClientRect();\n sliderRectRef.current = {\n left: rect.left,\n width: rect.width || GRADIENT_SLIDER_DEFAULT_WIDTH,\n };\n };\n\n const handleChange = useCallback(\n (key: 'degree' | 'selectedId' | 'colors', payload: any, addUsedColor?: boolean) => {\n if (disabled) {\n return;\n }\n onChange({\n key,\n payload,\n addUsedColor,\n });\n },\n [onChange, disabled],\n );\n\n const handleDegreeChange = (value: number) => {\n if (props.disabled || value === props.color.gradientDegree) {\n return;\n }\n degree.current = value;\n handleChange('degree', value, true);\n };\n\n const handleSelectedIdChange = (value: string) => {\n if (props.disabled) {\n return;\n }\n selectedId.current = value;\n handleChange('selectedId', value);\n };\n\n const handleColorsChange = useCallback(\n (value: GradientColorPoint[], isEnded?: boolean) => {\n if (props.disabled) {\n return;\n }\n colors.current = value;\n handleChange('colors', value, isEnded);\n },\n [props.disabled, handleChange],\n );\n\n /**\n * 设置bar的位置\n * @param left\n * @returns\n */\n const updateActiveThumbLeft = useCallback(\n (left: number) => {\n const index = colors.current.findIndex((c) => c.id === selectedId.current);\n if (index === -1) {\n return;\n }\n const point = colors.current[index];\n const formatLeft = Math.max(0, Math.min(sliderRectRef.current.width, left));\n\n const percentLeft = (formatLeft / sliderRectRef.current.width) * 100;\n\n const newColors = colors.current.map((item, i) =>\n index !== i\n ? item\n : {\n color: point.color,\n left: percentLeft,\n id: point.id,\n },\n );\n\n handleColorsChange(newColors);\n },\n [handleColorsChange],\n );\n\n // 移动开始\n const handleStart = (id: string, e: ReactMouseEvent) => {\n if (isDragging.current || props.disabled) {\n return;\n }\n isMoved.current = false;\n isDragging.current = true;\n e.preventDefault();\n e.stopPropagation();\n // handleSelectedIdChange(id);\n // 让slider获取焦点,以便键盘事件生效。\n refSlider.current.focus();\n };\n\n // 移动中\n const handleMove = useCallback(\n (e: MouseEvent) => {\n if (!isDragging.current || disabled) {\n return;\n }\n\n const rect = refSlider.current.getBoundingClientRect();\n const left = e.clientX - rect.x;\n isMoved.current = true;\n updateActiveThumbLeft(left);\n },\n [disabled, updateActiveThumbLeft],\n );\n\n // 移动结束\n const handleEnd = useCallback(() => {\n if (!isDragging.current) {\n return;\n }\n setTimeout(() => {\n isDragging.current = false;\n }, 0);\n if (isMoved.current) {\n handleColorsChange(colors.current, true);\n isMoved.current = false;\n }\n }, [handleColorsChange]);\n\n const handleKeyup = (e: KeyboardEvent) => {\n if (props.disabled) {\n return;\n }\n const points = [...colors.current];\n let pos = points.findIndex((c) => c.id === selectedId.current);\n const { length } = points;\n // 必须保证有两个点\n if (DELETE_KEYS.includes(e.key.toLocaleLowerCase()) && length > 2 && pos >= 0 && pos <= length - 1) {\n points.splice(pos, 1);\n if (!points[pos]) {\n // eslint-disable-next-line no-nested-ternary\n pos = points[pos + 1] ? pos + 1 : points[pos - 1] ? pos - 1 : 0;\n }\n const current = points[pos];\n handleColorsChange(points, true);\n handleSelectedIdChange(current?.id);\n }\n };\n\n const handleThumbBarClick = (e: ReactMouseEvent) => {\n if (props.disabled) {\n return;\n }\n updateSliderRect();\n\n let left = e.clientX - sliderRectRef.current.left;\n left = Math.max(0, Math.min(sliderRectRef.current.width, left));\n const percentLeft = (left / sliderRectRef.current.width) * 100;\n\n const newPoint = genGradientPoint(percentLeft, props.color.rgba);\n const newColors = [...colors.current];\n newColors.push(newPoint);\n handleColorsChange(newColors, true);\n handleSelectedIdChange(newPoint.id);\n };\n\n useEffect(() => {\n updateSliderRect();\n\n window.addEventListener('mousemove', handleMove, false);\n window.addEventListener('mouseup', handleEnd, false);\n window.addEventListener('contextmenu', handleEnd, false);\n\n return () => {\n window.removeEventListener('mousemove', handleMove, false);\n window.removeEventListener('mouseup', handleEnd, false);\n window.removeEventListener('contextmenu', handleEnd, false);\n };\n // eslint-disable-next-line\n }, []);\n\n const { linearGradient, gradientColors } = props.color;\n\n const thumbBackground = gradientColors2string({\n points: gradientColors,\n degree: 90,\n });\n\n const handleClickThumb = (e: ReactMouseEvent) => e.stopPropagation();\n\n return (\n <div className={`${baseClassName}__gradient`}>\n <div className={`${baseClassName}__gradient-slider`}>\n <div\n className={classNames(`${baseClassName}__slider`, `${baseClassName}--bg-alpha`)}\n onKeyUp={handleKeyup}\n tabIndex={0}\n ref={refSlider}\n >\n <ul\n className=\"gradient-thumbs\"\n onClick={handleThumbBarClick}\n style={{\n background: thumbBackground,\n }}\n >\n {colors.current.map((t) => {\n const left = `${Math.round(t.left * 100) / 100}%`;\n return (\n <li\n className={classNames([\n `${baseClassName}__thumb`,\n 'gradient-thumbs__item',\n selectedId.current === t.id ? statusClassNames.active : '',\n ])}\n key={t.id}\n title={`${t.color} ${left}`}\n style={{\n color: t.color,\n left,\n }}\n onClick={handleClickThumb}\n onMouseDown={(e: ReactMouseEvent) => handleStart(t.id, e)}\n >\n <span className={classNames(['gradient-thumbs__item-inner', `${baseClassName}--bg-alpha`])}></span>\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n <div className={`${baseClassName}__gradient-degree`} title={`${degree}deg`}>\n <InputNumber\n theme=\"normal\"\n min={0}\n max={360}\n step={1}\n format={(value: number) => `${value}°`}\n value={degree.current}\n onBlur={handleDegreeChange}\n onEnter={handleDegreeChange}\n disabled={props.disabled}\n />\n </div>\n <div className={classNames([`${baseClassName}__gradient-preview`, `${baseClassName}--bg-alpha`])}>\n <span\n className=\"preview-inner\"\n style={{\n background: linearGradient,\n }}\n ></span>\n </div>\n </div>\n );\n};\n\nexport default React.memo(LinearGradient);\n"],"names":["DELETE_KEYS","LinearGradient","props","onChange","color","disabled","baseClassName","useClassname","useCommonClassName","statusClassNames","STATUS","refSlider","useRef","sliderRectRef","left","width","GRADIENT_SLIDER_DEFAULT_WIDTH","isDragging","isMoved","degree","gradientDegree","selectedId","gradientSelectedId","colors","cloneDeep","gradientColors","useEffect","current","updateSliderRect","rect","getBoundingClientRect","handleChange","useCallback","key","payload","addUsedColor","handleDegreeChange","value","handleSelectedIdChange","handleColorsChange","isEnded","updateActiveThumbLeft","index","findIndex","c","id","point","formatLeft","Math","max","min","percentLeft","newColors","map","item","i","handleStart","e","preventDefault","stopPropagation","focus","handleMove","clientX","x","handleEnd","setTimeout","handleKeyup","points","pos","length","includes","toLocaleLowerCase","splice","handleThumbBarClick","newPoint","genGradientPoint","rgba","push","window","addEventListener","removeEventListener","linearGradient","thumbBackground","gradientColors2string","handleClickThumb","React","createElement","className","classNames","onKeyUp","tabIndex","ref","onClick","style","background","t","round","active","title","onMouseDown","InputNumber","theme","step","format","onBlur","onEnter","memo"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { TdColorBaseProps } from '../../interface';
3
+ declare const _default: React.MemoExoticComponent<(props: TdColorBaseProps) => JSX.Element>;
4
+ export default _default;
@@ -0,0 +1,124 @@
1
+ /**
2
+ * tdesign v0.31.1
3
+ * (c) 2022 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import { _ as _defineProperty } from '../../../_chunks/dep-1628aaec.js';
8
+ import React, { useRef, useCallback, useEffect } from 'react';
9
+ import { SATURATION_PANEL_DEFAULT_WIDTH, SATURATION_PANEL_DEFAULT_HEIGHT } from '../../const.js';
10
+ import useDrag from '../../../_util/useDrag.js';
11
+
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
+
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
+
16
+ var Saturation = function Saturation(props) {
17
+ var color = props.color,
18
+ disabled = props.disabled,
19
+ onChange = props.onChange,
20
+ baseClassName = props.baseClassName;
21
+ var panelRef = useRef(null);
22
+ var thumbRef = useRef(null);
23
+ var panelRectRef = useRef({
24
+ width: SATURATION_PANEL_DEFAULT_WIDTH,
25
+ height: SATURATION_PANEL_DEFAULT_HEIGHT
26
+ });
27
+
28
+ var styles = function styles() {
29
+ var saturation = color.saturation,
30
+ value = color.value,
31
+ rgb = color.rgb;
32
+ var _panelRectRef$current = panelRectRef.current,
33
+ width = _panelRectRef$current.width,
34
+ height = _panelRectRef$current.height;
35
+ var top = Math.round((1 - value) * height);
36
+ var left = Math.round(saturation * width);
37
+ return {
38
+ color: rgb,
39
+ left: "".concat(left, "px"),
40
+ top: "".concat(top, "px")
41
+ };
42
+ };
43
+
44
+ var getSaturationAndValueByCoordinate = function getSaturationAndValueByCoordinate(coordinate) {
45
+ var _panelRectRef$current2 = panelRectRef.current,
46
+ width = _panelRectRef$current2.width,
47
+ height = _panelRectRef$current2.height;
48
+ var x = coordinate.x,
49
+ y = coordinate.y;
50
+ var saturation = Math.round(x / width * 100);
51
+ var value = Math.round((1 - y / height) * 100);
52
+ return {
53
+ saturation: saturation,
54
+ value: value
55
+ };
56
+ };
57
+
58
+ var isDragging = useRef(false);
59
+ var handleDrag = useCallback(function (_ref, isEnd) {
60
+ var x = _ref.x,
61
+ y = _ref.y;
62
+
63
+ if (disabled) {
64
+ return;
65
+ }
66
+
67
+ isDragging.current = true;
68
+
69
+ var _getSaturationAndValu = getSaturationAndValueByCoordinate({
70
+ x: x,
71
+ y: y
72
+ }),
73
+ saturation = _getSaturationAndValu.saturation,
74
+ value = _getSaturationAndValu.value;
75
+
76
+ onChange({
77
+ saturation: saturation / 100,
78
+ value: value / 100,
79
+ addUsedColor: isEnd
80
+ });
81
+ }, [disabled, onChange]);
82
+ var handleDragEnd = useCallback(function (coordinate) {
83
+ if (disabled) {
84
+ return;
85
+ }
86
+
87
+ isDragging.current = false;
88
+ handleDrag(coordinate, true);
89
+ }, []);
90
+ useDrag(panelRef, {
91
+ start: function start() {
92
+ panelRectRef.current.width = panelRef.current.offsetWidth;
93
+ panelRectRef.current.height = panelRef.current.offsetHeight;
94
+ },
95
+ end: function end(coordinate) {
96
+ handleDragEnd(coordinate);
97
+ },
98
+ drag: function drag(coordinate) {
99
+ handleDrag(coordinate);
100
+ }
101
+ });
102
+ useEffect(function () {
103
+ panelRectRef.current.width = panelRef.current.offsetWidth || SATURATION_PANEL_DEFAULT_WIDTH;
104
+ panelRectRef.current.height = panelRef.current.offsetHeight || SATURATION_PANEL_DEFAULT_HEIGHT;
105
+ }, [handleDrag, handleDragEnd]);
106
+ return /* @__PURE__ */React.createElement("div", {
107
+ className: "".concat(baseClassName, "__saturation"),
108
+ ref: panelRef,
109
+ style: {
110
+ background: "hsl(".concat(color.hue, ", 100%, 50%)")
111
+ }
112
+ }, /* @__PURE__ */React.createElement("span", {
113
+ className: "".concat(baseClassName, "__thumb"),
114
+ role: "slider",
115
+ tabIndex: 0,
116
+ ref: thumbRef,
117
+ style: _objectSpread({}, styles())
118
+ }));
119
+ };
120
+
121
+ var SaturationPanel = /*#__PURE__*/React.memo(Saturation);
122
+
123
+ export { SaturationPanel as default };
124
+ //# sourceMappingURL=saturation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saturation.js","sources":["../../../../src/color-picker/components/panel/saturation.tsx"],"sourcesContent":["import React, { useRef, useEffect, useCallback } from 'react';\nimport { SATURATION_PANEL_DEFAULT_HEIGHT, SATURATION_PANEL_DEFAULT_WIDTH } from '../../const';\nimport { TdColorBaseProps } from '../../interface';\nimport useDrag, { Coordinate } from '../../../_util/useDrag';\n\nconst Saturation = (props: TdColorBaseProps) => {\n const { color, disabled, onChange, baseClassName } = props;\n const panelRef = useRef<HTMLDivElement>(null);\n const thumbRef = useRef<HTMLElement>(null);\n const panelRectRef = useRef({\n width: SATURATION_PANEL_DEFAULT_WIDTH,\n height: SATURATION_PANEL_DEFAULT_HEIGHT,\n });\n\n const styles = () => {\n const { saturation, value, rgb } = color;\n const { width, height } = panelRectRef.current;\n const top = Math.round((1 - value) * height);\n const left = Math.round(saturation * width);\n return {\n color: rgb,\n left: `${left}px`,\n top: `${top}px`,\n };\n };\n\n const getSaturationAndValueByCoordinate = (coordinate: Coordinate) => {\n const { width, height } = panelRectRef.current;\n const { x, y } = coordinate;\n const saturation = Math.round((x / width) * 100);\n const value = Math.round((1 - y / height) * 100);\n return {\n saturation,\n value,\n };\n };\n\n const isDragging = useRef<Boolean>(false);\n\n const handleDrag = useCallback(\n ({ x, y }: Coordinate, isEnd?: boolean) => {\n if (disabled) {\n return;\n }\n isDragging.current = true;\n const { saturation, value } = getSaturationAndValueByCoordinate({ x, y });\n onChange({\n saturation: saturation / 100,\n value: value / 100,\n addUsedColor: isEnd,\n });\n },\n [disabled, onChange],\n );\n\n const handleDragEnd = useCallback((coordinate: Coordinate) => {\n if (disabled) {\n return;\n }\n isDragging.current = false;\n handleDrag(coordinate, true);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useDrag(panelRef, {\n start: () => {\n panelRectRef.current.width = panelRef.current.offsetWidth;\n panelRectRef.current.height = panelRef.current.offsetHeight;\n },\n end: (coordinate: Coordinate) => {\n handleDragEnd(coordinate);\n },\n drag: (coordinate: Coordinate) => {\n handleDrag(coordinate);\n },\n });\n\n useEffect(() => {\n panelRectRef.current.width = panelRef.current.offsetWidth || SATURATION_PANEL_DEFAULT_WIDTH;\n panelRectRef.current.height = panelRef.current.offsetHeight || SATURATION_PANEL_DEFAULT_HEIGHT;\n }, [handleDrag, handleDragEnd]);\n\n return (\n <div\n className={`${baseClassName}__saturation`}\n ref={panelRef}\n style={{\n background: `hsl(${color.hue}, 100%, 50%)`,\n }}\n >\n <span\n className={`${baseClassName}__thumb`}\n role=\"slider\"\n tabIndex={0}\n ref={thumbRef}\n style={{ ...styles() }}\n ></span>\n </div>\n );\n};\n\nexport default React.memo(Saturation);\n"],"names":["Saturation","props","color","disabled","onChange","baseClassName","panelRef","useRef","thumbRef","panelRectRef","width","SATURATION_PANEL_DEFAULT_WIDTH","height","SATURATION_PANEL_DEFAULT_HEIGHT","styles","saturation","value","rgb","current","top","Math","round","left","getSaturationAndValueByCoordinate","coordinate","x","y","isDragging","handleDrag","useCallback","isEnd","addUsedColor","handleDragEnd","useDrag","start","offsetWidth","offsetHeight","end","drag","useEffect","React","createElement","className","ref","style","background","hue","role","tabIndex","memo"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { TdColorBaseProps } from '../../interface';
3
+ export interface TdColorSliderProps extends TdColorBaseProps {
4
+ className?: string;
5
+ value?: Number;
6
+ maxValue?: Number;
7
+ railStyle?: Object;
8
+ }
9
+ declare const _default: React.MemoExoticComponent<(props: TdColorSliderProps) => JSX.Element>;
10
+ export default _default;