@kdcloudjs/kdesign 1.8.15 → 1.8.17

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 (73) hide show
  1. package/dist/kdesign-complete.less +297 -81
  2. package/dist/kdesign.css +269 -58
  3. package/dist/kdesign.css.map +1 -1
  4. package/dist/kdesign.js +842 -381
  5. package/dist/kdesign.js.map +1 -1
  6. package/dist/kdesign.min.css +3 -3
  7. package/dist/kdesign.min.js +10 -10
  8. package/dist/kdesign.min.js.map +1 -1
  9. package/es/breadcrumb/breadcrumb.js +2 -2
  10. package/es/button/group.d.ts +1 -1
  11. package/es/button/group.js +5 -3
  12. package/es/city-picker/city-picker.js +1 -0
  13. package/es/city-picker/style/index.css +8 -0
  14. package/es/city-picker/style/index.less +10 -0
  15. package/es/color-picker/color-picker-panel.js +332 -82
  16. package/es/color-picker/color-picker.js +128 -58
  17. package/es/color-picker/constant/colorTypes.js +4 -4
  18. package/es/color-picker/constant/defaultColor.d.ts +1 -1
  19. package/es/color-picker/constant/defaultColor.js +1 -1
  20. package/es/color-picker/interface.d.ts +33 -11
  21. package/es/color-picker/style/index.css +256 -53
  22. package/es/color-picker/style/index.less +277 -73
  23. package/es/color-picker/style/token.less +6 -2
  24. package/es/color-picker/utils/colorFormat.d.ts +5 -1
  25. package/es/color-picker/utils/colorFormat.js +10 -10
  26. package/es/color-picker/utils/convertLetters.d.ts +1 -0
  27. package/es/color-picker/utils/convertLetters.js +12 -0
  28. package/es/color-picker/utils/validateColor.js +12 -9
  29. package/es/config-provider/compDefaultProps.d.ts +8 -0
  30. package/es/config-provider/compDefaultProps.js +8 -0
  31. package/es/popper/index.d.ts +1 -1
  32. package/es/popper/index.js +8 -3
  33. package/es/popper/style/index.css +4 -4
  34. package/es/popper/style/index.less +4 -6
  35. package/es/signature/signature.d.ts +1 -0
  36. package/es/signature/signature.js +42 -8
  37. package/es/tree/tree.d.ts +1 -0
  38. package/es/tree/tree.js +3 -1
  39. package/es/tree/treeNode.d.ts +1 -0
  40. package/es/tree/treeNode.js +3 -2
  41. package/lib/breadcrumb/breadcrumb.js +2 -2
  42. package/lib/button/group.d.ts +1 -1
  43. package/lib/button/group.js +5 -3
  44. package/lib/city-picker/city-picker.js +1 -0
  45. package/lib/city-picker/style/index.css +8 -0
  46. package/lib/city-picker/style/index.less +10 -0
  47. package/lib/color-picker/color-picker-panel.js +329 -79
  48. package/lib/color-picker/color-picker.js +125 -55
  49. package/lib/color-picker/constant/colorTypes.js +4 -4
  50. package/lib/color-picker/constant/defaultColor.d.ts +1 -1
  51. package/lib/color-picker/constant/defaultColor.js +1 -1
  52. package/lib/color-picker/interface.d.ts +33 -11
  53. package/lib/color-picker/style/index.css +256 -53
  54. package/lib/color-picker/style/index.less +277 -73
  55. package/lib/color-picker/style/token.less +6 -2
  56. package/lib/color-picker/utils/colorFormat.d.ts +5 -1
  57. package/lib/color-picker/utils/colorFormat.js +10 -9
  58. package/lib/color-picker/utils/convertLetters.d.ts +1 -0
  59. package/lib/color-picker/utils/convertLetters.js +13 -0
  60. package/lib/color-picker/utils/validateColor.js +12 -9
  61. package/lib/config-provider/compDefaultProps.d.ts +8 -0
  62. package/lib/config-provider/compDefaultProps.js +8 -0
  63. package/lib/popper/index.d.ts +1 -1
  64. package/lib/popper/index.js +8 -3
  65. package/lib/popper/style/index.css +4 -4
  66. package/lib/popper/style/index.less +4 -6
  67. package/lib/signature/signature.d.ts +1 -0
  68. package/lib/signature/signature.js +42 -8
  69. package/lib/tree/tree.d.ts +1 -0
  70. package/lib/tree/tree.js +3 -1
  71. package/lib/tree/treeNode.d.ts +1 -0
  72. package/lib/tree/treeNode.js +3 -2
  73. package/package.json +1 -1
@@ -1,27 +1,35 @@
1
+ import _extends from "@babel/runtime-corejs3/helpers/extends";
1
2
  import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
3
+ import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
4
+ import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
5
+ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
2
6
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
3
- import React, { useContext, useRef } from 'react';
7
+ import _fillInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/fill";
8
+ import React, { useContext, useRef, useEffect, useState } from 'react';
4
9
  import { Input, Select, Switch } from '../index';
5
10
  import classNames from 'classnames';
6
11
  import { ConfigContext } from '../config-provider';
7
12
  import { systemPresetColor } from './constant/systemPresetColor';
8
- import { colorFormat, valOfCorrespondingType, strFixed, getColorObj, highlightPresetColorIndex, presetColorToHEX } from './utils/colorFormat';
13
+ import { colorFormat, valOfCorrespondingType, strFixed, getColorObj, presetColorToHEX, colorToStr } from './utils/colorFormat';
9
14
  import { defaultSystemColor } from './constant/defaultColor';
10
15
  import { validateColor } from './utils/validateColor';
11
- import { toLowerCase } from './utils/convertLetters';
16
+ import { toUpCase } from './utils/convertLetters';
12
17
  import Color from 'color';
13
18
  import { ChromePicker } from 'react-color';
14
19
  import devWarning from '../_utils/devwarning';
15
20
  import { useOnClickOutside } from '../_utils/hooks';
16
21
  import { isIE } from '../_utils/ieUtil';
17
22
  var ColorPickerPanel = function ColorPickerPanel(props) {
18
- var _classNames, _classNames2, _context;
23
+ var _classNames, _context, _context2, _context3, _context4, _context5;
19
24
  var setCorrectColorValue = props.setCorrectColorValue,
25
+ setInputCorrectColorValue = props.setInputCorrectColorValue,
20
26
  setInputColorValue = props.setInputColorValue,
21
27
  setAlpha = props.setAlpha,
22
28
  setAlphaNoVerifyVal = props.setAlphaNoVerifyVal,
23
29
  setIsFollow = props.setIsFollow,
24
- setClickedColorIndex = props.setClickedColorIndex,
30
+ setClickedPresetColorIndex = props.setClickedPresetColorIndex,
31
+ setClickedHistoricalColorIndex = props.setClickedHistoricalColorIndex,
32
+ setClickColorIndex = props.setClickColorIndex,
25
33
  setShowPanel = props.setShowPanel,
26
34
  setColTypeArr = props.setColTypeArr,
27
35
  setCurrentColorType = props.setCurrentColorType,
@@ -29,26 +37,42 @@ var ColorPickerPanel = function ColorPickerPanel(props) {
29
37
  onVisibleChange = props.onVisibleChange,
30
38
  alpha = props.alpha,
31
39
  alphaNoVerifyVal = props.alphaNoVerifyVal,
32
- clickedColorIndex = props.clickedColorIndex,
40
+ clickedPresetColorIndex = props.clickedPresetColorIndex,
41
+ clickedHistoricalColorIndex = props.clickedHistoricalColorIndex,
33
42
  colTypeArr = props.colTypeArr,
34
43
  correctColorValue = props.correctColorValue,
44
+ inputCorrectColorValue = props.inputCorrectColorValue,
35
45
  currentColorType = props.currentColorType,
36
46
  functionalColor = props.functionalColor,
37
47
  functionalColorName = props.functionalColorName,
38
48
  switchName = props.switchName,
39
49
  inputRef = props.inputRef,
40
50
  isFollow = props.isFollow,
51
+ panelFormatConfig = props.panelFormatConfig,
52
+ format = props.format,
41
53
  presetColor = props.presetColor,
54
+ historicalColor = props.historicalColor,
55
+ showClear = props.showClear,
42
56
  showSwitch = props.showSwitch,
43
57
  showColorTransfer = props.showColorTransfer,
44
58
  showPresetColor = props.showPresetColor,
45
59
  showColorPickerBox = props.showColorPickerBox,
46
60
  showColorPickerPanel = props.showColorPickerPanel,
61
+ showAlphaInput = props.showAlphaInput,
47
62
  value = props.value,
48
63
  visible = props.visible,
49
64
  showPanel = props.showPanel;
50
- var panelInputRef = useRef(null);
65
+ var panelSelectRef = useRef(null);
51
66
  var panelClsRef = useRef(null);
67
+ var _useState = useState(panelFormatConfig),
68
+ _useState2 = _slicedToArray(_useState, 2),
69
+ innerFormatConfig = _useState2[0],
70
+ setInnerFormatConfig = _useState2[1];
71
+ var _useState3 = useState(),
72
+ _useState4 = _slicedToArray(_useState3, 2),
73
+ activeGroupInptItem = _useState4[0],
74
+ setActiveGroupInptItem = _useState4[1];
75
+ var baseFormat = ['HEX', 'HSB', 'RGB', 'HSL'];
52
76
  var Option = Select.Option;
53
77
  var _useContext = useContext(ConfigContext),
54
78
  getPrefixCls = _useContext.getPrefixCls,
@@ -57,66 +81,121 @@ var ColorPickerPanel = function ColorPickerPanel(props) {
57
81
  var colorPickerPrefixCls = getPrefixCls(prefixCls, 'color-picker');
58
82
  var panelCls = classNames("".concat(colorPickerPrefixCls, "-panel"));
59
83
  var panelChromePickerCls = classNames("".concat(colorPickerPrefixCls, "-panel-chrome"), (_classNames = {}, _defineProperty(_classNames, "".concat(colorPickerPrefixCls, "-panel-chrome-no-box"), !(showColorPickerBox === null || showColorPickerBox === void 0 ? void 0 : showColorPickerBox.showBox)), _defineProperty(_classNames, "".concat(colorPickerPrefixCls, "-panel-chrome-no-hue"), !(showColorPickerBox === null || showColorPickerBox === void 0 ? void 0 : showColorPickerBox.showHue)), _defineProperty(_classNames, "".concat(colorPickerPrefixCls, "-panel-chrome-no-opacity"), !(showColorPickerBox === null || showColorPickerBox === void 0 ? void 0 : showColorPickerBox.showOpacity)), _classNames));
84
+ var panelClearColor = classNames("".concat(colorPickerPrefixCls, "-panel-clear"));
85
+ var panelClearColorBox = classNames("".concat(colorPickerPrefixCls, "-panel-clear-box"));
86
+ var panelClearColorText = classNames("".concat(colorPickerPrefixCls, "-panel-clear-text"));
60
87
  var panelFollowThemeCls = classNames("".concat(colorPickerPrefixCls, "-panel-switch"));
61
88
  var panelContainerCls = classNames("".concat(colorPickerPrefixCls, "-panel-container"));
89
+ var panelselectCls = classNames("".concat(colorPickerPrefixCls, "-panel-container-select"));
62
90
  var panelInputCls = classNames("".concat(colorPickerPrefixCls, "-panel-container-input"));
91
+ var panelInputGroupCls = classNames("".concat(colorPickerPrefixCls, "-panel-container-input-group"));
92
+ var gePanelInputGroupItemCls = function gePanelInputGroupItemCls(order) {
93
+ return classNames("".concat(colorPickerPrefixCls, "-panel-container-input-group-item"), {
94
+ active: activeGroupInptItem === order && order === 1
95
+ });
96
+ };
63
97
  var transparentCls = classNames("".concat(colorPickerPrefixCls, "-panel-container-transparent"));
64
- var colorDivContainerCls = classNames("".concat(colorPickerPrefixCls, "-panel-colorDivContainer"), (_classNames2 = {}, _defineProperty(_classNames2, "".concat(colorPickerPrefixCls, "-panel-colorDivContainer-unset-color"), (presetColor === null || presetColor === void 0 ? void 0 : presetColor.length) === 0), _defineProperty(_classNames2, "".concat(colorPickerPrefixCls, "-panel-colorDivContainer-ie11"), isIE), _classNames2));
65
- var colorLiClick = function colorLiClick(index, colorValue) {
66
- var formatArr = colorFormat(colorValue, alpha);
67
- var formatValue = toLowerCase(formatArr[valOfCorrespondingType(currentColorType)].value);
98
+ var colorBoxCls = classNames("".concat(colorPickerPrefixCls, "-panel-color-box"), _defineProperty({}, "".concat(colorPickerPrefixCls, "-panel-color-box-container-ie11"), isIE));
99
+ var colorBoxTitleCls = classNames("".concat(colorPickerPrefixCls, "-panel-color-box-title"));
100
+ var colorBoxContainerCls = classNames("".concat(colorPickerPrefixCls, "-panel-color-box-container"));
101
+ var historicalColorBoxCls = classNames("".concat(colorPickerPrefixCls, "-panel-historical-color-box"), _defineProperty({}, "".concat(colorPickerPrefixCls, "-panel-historical-color-box-container-ie11"), isIE));
102
+ var historicalColorBoxTitleCls = classNames("".concat(colorPickerPrefixCls, "-panel-historical-color-box-title"));
103
+ var historicalColorBoxContainerCls = classNames("".concat(colorPickerPrefixCls, "-panel-historical-color-box-container"));
104
+ var setPanelState = function setPanelState(formatArr, correctColorValue, inputColorValue, alpha, alphaStr) {
105
+ setColTypeArr(formatArr);
106
+ setCorrectColorValue(correctColorValue);
107
+ setInputCorrectColorValue(inputColorValue);
108
+ setInputColorValue(inputColorValue);
109
+ alpha && setAlpha(alpha);
110
+ alphaStr && setAlphaNoVerifyVal(alphaStr);
111
+ };
112
+ var handleClearClick = function handleClearClick() {
113
+ var formatArr = colorFormat(defaultSystemColor, 0);
114
+ setPanelState(formatArr, defaultSystemColor, '', 0, '0%');
115
+ setClickColorIndex(-1);
116
+ onChange === null || onChange === void 0 ? void 0 : onChange('', formatArr);
117
+ };
118
+ var presetColorClick = function presetColorClick(index, colorValue) {
119
+ var colorLiAlpha = strFixed(Color(getColorObj(colorValue)).alpha(), 2);
120
+ var formatArr = colorFormat(colorValue, colorLiAlpha);
121
+ var formatCorrectValue = removeTransparency(colorValue);
122
+ var formatInputValue = toUpCase(formatArr[valOfCorrespondingType(format)].value);
68
123
  setIsFollow(false);
69
- if (isFollow) {
70
- setAlpha(1);
71
- setAlphaNoVerifyVal(100 + '%');
72
- }
124
+ setAlpha(isFollow ? 1 : colorLiAlpha);
125
+ setAlphaNoVerifyVal(isFollow ? 100 + '%' : colorLiAlpha * 100 + '%');
73
126
  if (value === undefined) {
74
- setInputColorValue(formatValue);
75
- setCorrectColorValue(formatValue);
127
+ setInputColorValue(formatInputValue);
128
+ setCorrectColorValue(formatCorrectValue);
76
129
  setColTypeArr(formatArr);
77
130
  }
78
- setClickedColorIndex(index);
79
- onChange && onChange(formatValue, formatArr);
131
+ setClickedPresetColorIndex(index);
132
+ onChange === null || onChange === void 0 ? void 0 : onChange(formatInputValue, formatArr);
80
133
  };
81
- var handleTypeChange = function handleTypeChange(selectValue, option) {
82
- setCurrentColorType(option.label);
134
+ var historicalColorClick = function historicalColorClick(index, colorValue) {
135
+ var colorLiAlpha = strFixed(Color(getColorObj(colorValue)).alpha(), 2);
136
+ var formatArr = colorFormat(colorValue, colorLiAlpha);
137
+ var formatCorrectValue = removeTransparency(colorValue);
138
+ var formatInputValue = toUpCase(formatArr[valOfCorrespondingType(format)].value);
139
+ setIsFollow(false);
140
+ setAlpha(isFollow ? 1 : colorLiAlpha);
141
+ setAlphaNoVerifyVal(isFollow ? 100 + '%' : colorLiAlpha * 100 + '%');
83
142
  if (value === undefined) {
84
- setCorrectColorValue(selectValue);
85
- setInputColorValue(selectValue);
143
+ setInputColorValue(formatInputValue);
144
+ setCorrectColorValue(formatCorrectValue);
145
+ setColTypeArr(formatArr);
86
146
  }
87
- onChange && onChange(selectValue, colTypeArr);
147
+ setClickedHistoricalColorIndex(index);
148
+ onChange === null || onChange === void 0 ? void 0 : onChange(formatInputValue, formatArr);
88
149
  };
89
- var setPanelState = function setPanelState(formatArr, correctColorValue, inputColorValue, alpha, alphaStr) {
90
- setColTypeArr(formatArr);
91
- setCorrectColorValue(correctColorValue);
92
- setInputColorValue(inputColorValue);
93
- alpha && setAlpha(alpha);
94
- alphaStr && setAlphaNoVerifyVal(alphaStr);
150
+ var handleTypeChange = function handleTypeChange(selectValue) {
151
+ var _a, _b, _c;
152
+ setCurrentColorType(selectValue);
153
+ var colorStr = (_a = _findInstanceProperty(colTypeArr).call(colTypeArr, function (item) {
154
+ return item.type === selectValue;
155
+ })) === null || _a === void 0 ? void 0 : _a.value;
156
+ setCorrectColorValue(colorFormat(colorStr, 1, selectValue, true));
157
+ setInputColorValue((_b = _findInstanceProperty(colTypeArr).call(colTypeArr, function (item) {
158
+ return item.type === format;
159
+ })) === null || _b === void 0 ? void 0 : _b.value);
160
+ onChange === null || onChange === void 0 ? void 0 : onChange((_c = _findInstanceProperty(colTypeArr).call(colTypeArr, function (item) {
161
+ return item.type === format;
162
+ })) === null || _c === void 0 ? void 0 : _c.value, colTypeArr);
163
+ };
164
+ var removeTransparency = function removeTransparency(color) {
165
+ return colorFormat(color, 1, currentColorType, true);
95
166
  };
96
167
  var handleAlphaChange = function handleAlphaChange(e) {
97
168
  var regPercentage = /^(0|[1-9][0-9]?|100)%$/;
98
169
  var regDot = /^(0(\.\d+)?|1(\.0+)?)$/;
99
170
  var val = e.target.value;
100
- var formatArr, outValue;
171
+ var getColorFormat = function getColorFormat(alpha) {
172
+ var formatArr = colorFormat(correctColorValue, alpha, 'all', true);
173
+ var outValue = formatArr[valOfCorrespondingType(format)].value;
174
+ var innerInput = removeTransparency(outValue);
175
+ return {
176
+ formatArr: formatArr,
177
+ outValue: outValue,
178
+ innerInput: innerInput
179
+ };
180
+ };
181
+ var alphaValue;
182
+ if (regPercentage.test(val)) {
183
+ alphaValue = +val.replace('%', '') / 100;
184
+ } else if (regDot.test(val)) {
185
+ alphaValue = +val;
186
+ } else {
187
+ alphaValue = 1;
188
+ }
189
+ var _getColorFormat = getColorFormat(alphaValue),
190
+ formatArr = _getColorFormat.formatArr,
191
+ outValue = _getColorFormat.outValue,
192
+ innerInput = _getColorFormat.innerInput;
101
193
  if (value === undefined) {
102
- setAlphaNoVerifyVal(e.target.value);
103
- if (regPercentage.test(val)) {
104
- formatArr = colorFormat(correctColorValue, +val.replace('%', '') / 100, 'all', true);
105
- outValue = formatArr[valOfCorrespondingType(currentColorType)].value;
106
- setPanelState(formatArr, outValue, outValue, +val.replace('%', '') / 100);
107
- setClickedColorIndex(highlightPresetColorIndex(formatArr[0].value, presetColorToHEX(presetColor || systemPresetColor)));
108
- } else if (regDot.test(val)) {
109
- formatArr = colorFormat(correctColorValue, +val, 'all', true);
110
- outValue = formatArr[valOfCorrespondingType(currentColorType)].value;
111
- setPanelState(formatArr, outValue, outValue, strFixed(val, 2));
112
- setClickedColorIndex(highlightPresetColorIndex(formatArr[0].value, presetColorToHEX(presetColor || systemPresetColor)));
113
- } else {
114
- formatArr = colorFormat(correctColorValue, 1, 'all', true);
115
- outValue = formatArr[valOfCorrespondingType(currentColorType)].value;
116
- setPanelState(formatArr, outValue, outValue, 1);
117
- }
118
- onChange && onChange(outValue, formatArr);
194
+ setAlphaNoVerifyVal(val);
195
+ setPanelState(formatArr, innerInput, outValue, alphaValue);
196
+ setClickColorIndex(formatArr[0].value);
119
197
  }
198
+ onChange === null || onChange === void 0 ? void 0 : onChange(outValue, formatArr);
120
199
  };
121
200
  var handleAlphaBlur = function handleAlphaBlur(e) {
122
201
  var regPercentage = /^(0|[1-9][0-9]?|100)%$/;
@@ -130,6 +209,98 @@ var ColorPickerPanel = function ColorPickerPanel(props) {
130
209
  setAlphaNoVerifyVal('100%');
131
210
  }
132
211
  };
212
+ var handleHEXInputChange = function handleHEXInputChange(e) {
213
+ setCorrectColorValue(e.target.value);
214
+ };
215
+ var handleHEXInputBlur = function handleHEXInputBlur(e) {
216
+ var _a, _b, _c;
217
+ var val = e.target.value;
218
+ var correctColor = (_a = _findInstanceProperty(colTypeArr).call(colTypeArr, function (item) {
219
+ return item.type === format;
220
+ })) === null || _a === void 0 ? void 0 : _a.value;
221
+ if (validateColor(val)) {
222
+ var formatArr = colorFormat(val, inputCorrectColorValue ? alpha : 1, 'all', true);
223
+ var outValue = formatArr[valOfCorrespondingType(format)].value;
224
+ if (value === undefined) {
225
+ var innerInput = removeTransparency(val);
226
+ if (!inputCorrectColorValue) {
227
+ setPanelState(formatArr, innerInput, outValue, 1, '100%');
228
+ } else {
229
+ setPanelState(formatArr, innerInput, outValue);
230
+ }
231
+ } else if (onChange === undefined) {
232
+ setPanelState(colTypeArr, removeTransparency(correctColor), correctColor);
233
+ }
234
+ onChange === null || onChange === void 0 ? void 0 : onChange(outValue, formatArr);
235
+ } else {
236
+ if (!inputCorrectColorValue) {
237
+ var _formatArr = colorFormat(correctColor, 1, 'all', true);
238
+ setPanelState(_formatArr, removeTransparency(correctColor), correctColor, 1, '100%');
239
+ onChange === null || onChange === void 0 ? void 0 : onChange((_b = _findInstanceProperty(_formatArr).call(_formatArr, function (item) {
240
+ return item.type === format;
241
+ })) === null || _b === void 0 ? void 0 : _b.value, _formatArr);
242
+ } else {
243
+ setPanelState(colTypeArr, removeTransparency(correctColor), correctColor);
244
+ onChange === null || onChange === void 0 ? void 0 : onChange((_c = _findInstanceProperty(colTypeArr).call(colTypeArr, function (item) {
245
+ return item.type === format;
246
+ })) === null || _c === void 0 ? void 0 : _c.value, colTypeArr);
247
+ }
248
+ }
249
+ };
250
+ var handleInputGroupItemFocus = function handleInputGroupItemFocus(order) {
251
+ setActiveGroupInptItem(order);
252
+ };
253
+ var handleInputGroupItemBlur = function handleInputGroupItemBlur() {
254
+ var _a;
255
+ var formatArr = colorFormat(correctColorValue, inputCorrectColorValue ? alpha : 1, 'all', true);
256
+ var outValue = formatArr[valOfCorrespondingType(format)].value;
257
+ if (value === undefined) {
258
+ if (inputCorrectColorValue) {
259
+ setPanelState(formatArr, correctColorValue, outValue);
260
+ } else {
261
+ setPanelState(formatArr, correctColorValue, outValue, 1, '100%');
262
+ }
263
+ } else if (onChange === undefined) {
264
+ var correctColor = (_a = _findInstanceProperty(colTypeArr).call(colTypeArr, function (item) {
265
+ return item.type === format;
266
+ })) === null || _a === void 0 ? void 0 : _a.value;
267
+ setPanelState(colTypeArr, removeTransparency(correctColor), correctColor);
268
+ }
269
+ onChange === null || onChange === void 0 ? void 0 : onChange(outValue, formatArr);
270
+ };
271
+ var handleInputGroupItemChange = function handleInputGroupItemChange(e, color, i) {
272
+ var number = e.target.value;
273
+ if (!/^\d*$/.test(number)) return;
274
+ var colorArr = Color(getColorObj(color)).color;
275
+ var colorComponents = {
276
+ HSB: ['h', 's', 'v'],
277
+ HSL: ['h', 's', 'l'],
278
+ RGB: ['r', 'g', 'b']
279
+ };
280
+ var methodName = colorComponents[currentColorType].join('');
281
+ var getColorAttr = function getColorAttr() {
282
+ var selectedComponents = colorComponents[currentColorType];
283
+ if (!selectedComponents) {
284
+ return;
285
+ }
286
+ return selectedComponents.reduce(function (acc, component, index) {
287
+ acc[component] = i === index ? number : colorArr[index];
288
+ return acc;
289
+ }, {});
290
+ };
291
+ var getColorValue = function getColorValue() {
292
+ var colorObj = Color(getColorAttr())[methodName]();
293
+ if (currentColorType === 'RGB') {
294
+ return colorObj.toString();
295
+ }
296
+ return colorToStr(colorObj);
297
+ };
298
+ setCorrectColorValue(getColorValue());
299
+ };
300
+ var getColorNumberVal = function getColorNumberVal(color, i) {
301
+ var colorArr = Color(getColorObj(color)).color;
302
+ return colorArr[i];
303
+ };
133
304
  var handleSwitchChange = function handleSwitchChange(switchValue) {
134
305
  var formatArr;
135
306
  if (functionalColor) {
@@ -139,39 +310,40 @@ var ColorPickerPanel = function ColorPickerPanel(props) {
139
310
  setIsFollow(switchValue);
140
311
  if (switchValue) {
141
312
  formatArr = colorFormat(functionalColor, alpha);
142
- setPanelState(formatArr, formatArr[valOfCorrespondingType(currentColorType)].value, functionalColorName, strFixed(Color(getColorObj(functionalColor)).alpha(), 2), strFixed(Color(getColorObj(functionalColor)).alpha(), 2) * 100 + '%');
143
- setClickedColorIndex(highlightPresetColorIndex(formatArr[0].value, presetColorToHEX(presetColor || systemPresetColor)));
313
+ setPanelState(formatArr, removeTransparency(formatArr[valOfCorrespondingType(currentColorType)].value), functionalColorName, strFixed(Color(getColorObj(functionalColor)).alpha(), 2), strFixed(Color(getColorObj(functionalColor)).alpha(), 2) * 100 + '%');
314
+ setClickColorIndex(formatArr[0].value);
144
315
  } else {
145
316
  formatArr = colorFormat(defaultSystemColor, 1, 'all', true);
146
317
  setPanelState(formatArr, defaultSystemColor, '', 1, 100 + '%');
147
- setClickedColorIndex(-1);
318
+ setClickColorIndex(formatArr[0].value);
148
319
  }
149
320
  }
150
321
  }
151
322
  devWarning(!inputValType, 'color-picker', "'themeColor' must be hexadecimal, RGB, HSB, HSL or English color name");
152
323
  }
153
324
  if (switchValue) {
154
- onChange && onChange(functionalColorName, formatArr);
325
+ onChange === null || onChange === void 0 ? void 0 : onChange(functionalColorName, formatArr);
155
326
  } else {
156
- onChange && onChange(defaultSystemColor, formatArr);
327
+ onChange === null || onChange === void 0 ? void 0 : onChange(defaultSystemColor, formatArr);
157
328
  }
158
329
  };
159
330
  var handleChromeChange = function handleChromeChange(color) {
160
- var formatArr = colorFormat(color.hex, color.rgb.a);
331
+ var formatArr = colorFormat(color.hex, inputCorrectColorValue ? color.rgb.a : 1);
161
332
  var colorObj = formatArr[valOfCorrespondingType(currentColorType)];
333
+ console.log('colorObj', formatArr, colorObj);
162
334
  if (value === undefined) {
163
335
  setIsFollow(false);
164
- setPanelState(formatArr, colorObj.value, colorObj.value, color.rgb.a, (color.rgb.a * 100).toFixed() + '%');
165
- setClickedColorIndex(highlightPresetColorIndex(formatArr[0].value, presetColorToHEX(presetColor || systemPresetColor)));
336
+ setPanelState(formatArr, removeTransparency(colorObj.value), colorObj.value, inputCorrectColorValue ? color.rgb.a : 1, inputCorrectColorValue ? (color.rgb.a * 100).toFixed() + '%' : '100%');
337
+ setClickColorIndex(formatArr[0].value);
166
338
  }
167
- onChange && onChange(colorObj.value, formatArr);
339
+ onChange === null || onChange === void 0 ? void 0 : onChange(colorObj.value, formatArr);
168
340
  };
169
341
  var checkUserPresetColor = function checkUserPresetColor(colorArr) {
170
342
  if (!colorArr) return false;
171
343
  var isTrueFormat = colorArr.every(function (hexColor) {
172
- return ['HEX', 'HSB', 'RGB', 'HSL', 'colorName'].indexOf(validateColor(hexColor)) !== -1;
344
+ return ['HEX', 'HEXA', 'HSB', 'HSBA', 'RGB', 'RGBA', 'HSL', 'HSLA', 'colorName'].indexOf(validateColor(hexColor)) !== -1;
173
345
  });
174
- devWarning(!isTrueFormat, 'color-picker', "'presetColor' must be an array of hexadecimal, RGB, HSB, HSL or English color name string type");
346
+ devWarning(!isTrueFormat, 'color-picker', "'presetColor' must be an array of hexadecimal, HEXA, RGB, RGBA, HSB, HSBA, HSL, HSLA or English color name string type");
175
347
  return isTrueFormat;
176
348
  };
177
349
  useOnClickOutside([panelClsRef, inputRef], function () {
@@ -180,66 +352,144 @@ var ColorPickerPanel = function ColorPickerPanel(props) {
180
352
  }
181
353
  showPanel && onVisibleChange && onVisibleChange(false);
182
354
  });
355
+ useEffect(function () {
356
+ if (!panelFormatConfig) return;
357
+ if (!Array.isArray(panelFormatConfig.show) || panelFormatConfig.show.length === 0) {
358
+ devWarning(true, 'color-picker', "'show' property of 'panelFormatConfig' must be one or more of HEX, RGB, HSB, or HSL");
359
+ }
360
+ if (baseFormat.indexOf(panelFormatConfig === null || panelFormatConfig === void 0 ? void 0 : panelFormatConfig.default) === -1) {
361
+ setInnerFormatConfig(_extends(_extends({}, panelFormatConfig), {
362
+ default: 'HEX'
363
+ }));
364
+ devWarning(true, 'color-picker', "'default' property of 'panelFormatConfig' must be one of HEX, RGB, HSB, or HSL");
365
+ }
366
+ if (panelFormatConfig.show.every(function (item) {
367
+ return baseFormat.indexOf(item) !== -1;
368
+ })) {
369
+ var newShow = _filterInstanceProperty(baseFormat).call(baseFormat, function (ele) {
370
+ return panelFormatConfig.show.indexOf(ele) !== -1;
371
+ });
372
+ if (newShow.indexOf(panelFormatConfig.default) === -1) {
373
+ devWarning(true, 'color-picker', "'default' property of 'panelFormatConfig' must be one of 'show'");
374
+ }
375
+ } else {
376
+ devWarning(true, 'color-picker', "'show' property of 'panelFormatConfig' must be one or more of HEX, RGB, HSB, or HSL");
377
+ }
378
+ }, [panelFormatConfig]);
183
379
  return React.createElement(React.Fragment, null, showColorPickerPanel && React.createElement("div", {
184
380
  className: panelCls,
185
381
  ref: panelClsRef
186
- }, React.createElement(ChromePicker, {
187
- className: panelChromePickerCls,
188
- color: colTypeArr[2].value,
189
- onChange: handleChromeChange
190
- }), functionalColor && showSwitch && React.createElement("div", {
382
+ }, showClear && React.createElement("div", {
383
+ className: panelClearColor
384
+ }, React.createElement("span", {
385
+ className: panelClearColorBox,
386
+ onClick: handleClearClick
387
+ }), React.createElement("span", {
388
+ className: panelClearColorText
389
+ }, "\u65E0\u989C\u8272\u586B\u5145")), functionalColor && showSwitch && React.createElement("div", {
191
390
  className: panelFollowThemeCls
192
391
  }, React.createElement("span", null, (switchName === null || switchName === void 0 ? void 0 : switchName.internationalName) && locale.getLangMsg('ColorPicker', switchName.internationalName) || switchName.name), React.createElement(Switch, {
193
392
  checked: isFollow,
194
393
  onChange: handleSwitchChange
195
- })), showColorTransfer && React.createElement("div", {
394
+ })), React.createElement(ChromePicker, {
395
+ className: panelChromePickerCls,
396
+ color: colTypeArr[2].value,
397
+ onChange: handleChromeChange
398
+ }), showColorTransfer && React.createElement("div", {
196
399
  className: panelContainerCls
197
400
  }, React.createElement("div", {
198
- className: panelInputCls,
199
- ref: panelInputRef
401
+ className: panelselectCls,
402
+ ref: panelSelectRef
200
403
  }, React.createElement(Select, {
201
404
  disabled: isFollow,
202
405
  borderType: "bordered",
203
- value: correctColorValue,
204
- placeholder: "#",
406
+ value: currentColorType,
205
407
  onChange: handleTypeChange,
206
408
  optionLabelProp: "value",
207
409
  getPopupContainer: function getPopupContainer() {
208
- return panelInputRef.current;
410
+ return panelSelectRef.current;
209
411
  }
210
- }, _mapInstanceProperty(colTypeArr).call(colTypeArr, function (obj, i) {
412
+ }, _mapInstanceProperty(_context = innerFormatConfig.show).call(_context, function (name, i) {
211
413
  return React.createElement(Option, {
212
- title: obj.value,
213
- value: obj.value,
414
+ title: name,
415
+ value: name,
214
416
  className: classNames({
215
- 'active-option': obj.type === currentColorType && obj.value === correctColorValue
417
+ 'active-option': name === currentColorType
216
418
  }),
217
419
  key: i
218
- }, obj.type);
219
- }))), React.createElement(Input, {
420
+ }, name);
421
+ }))), currentColorType === 'HEX' ? React.createElement(Input, {
422
+ className: panelInputCls,
423
+ value: correctColorValue,
424
+ onChange: handleHEXInputChange,
425
+ onBlur: handleHEXInputBlur,
426
+ borderType: "bordered",
427
+ disabled: isFollow
428
+ }) : React.createElement("div", {
429
+ className: panelInputGroupCls
430
+ }, _mapInstanceProperty(_context2 = _fillInstanceProperty(_context3 = new Array(3)).call(_context3, undefined)).call(_context2, function (_, i) {
431
+ return React.createElement(Input, {
432
+ key: i,
433
+ className: gePanelInputGroupItemCls(i),
434
+ onFocus: function onFocus() {
435
+ handleInputGroupItemFocus(i);
436
+ },
437
+ onBlur: handleInputGroupItemBlur,
438
+ value: getColorNumberVal(correctColorValue, i),
439
+ onChange: function onChange(e) {
440
+ handleInputGroupItemChange(e, correctColorValue, i);
441
+ },
442
+ borderType: "bordered",
443
+ disabled: isFollow
444
+ });
445
+ })), showAlphaInput && React.createElement(Input, {
220
446
  className: transparentCls,
221
447
  onChange: handleAlphaChange,
222
448
  onBlur: handleAlphaBlur,
223
449
  borderType: "bordered",
224
450
  value: alphaNoVerifyVal,
225
451
  disabled: isFollow
226
- })), showPresetColor && React.createElement("div", {
227
- className: colorDivContainerCls
228
- }, _mapInstanceProperty(_context = checkUserPresetColor(presetColor) && presetColorToHEX(presetColor) || systemPresetColor).call(_context, function (colorValue, i) {
452
+ })), historicalColor && (historicalColor === null || historicalColor === void 0 ? void 0 : historicalColor.length) > 0 && React.createElement("div", {
453
+ className: historicalColorBoxCls
454
+ }, React.createElement("div", {
455
+ className: historicalColorBoxTitleCls
456
+ }, "\u6700\u8FD1\u4F7F\u7528\u989C\u8272"), React.createElement("div", {
457
+ className: historicalColorBoxContainerCls
458
+ }, checkUserPresetColor(historicalColor) && _mapInstanceProperty(_context4 = presetColorToHEX(historicalColor)).call(_context4, function (colorValue, i) {
459
+ return React.createElement("li", {
460
+ key: i,
461
+ style: {
462
+ backgroundColor: "".concat(colorValue)
463
+ },
464
+ onClick: function onClick() {
465
+ historicalColorClick(i, colorValue);
466
+ }
467
+ }, React.createElement("div", {
468
+ className: classNames('square', {
469
+ 'square-click': clickedHistoricalColorIndex === i
470
+ })
471
+ }));
472
+ }))), showPresetColor && (presetColor && (presetColor === null || presetColor === void 0 ? void 0 : presetColor.length) > 0 || !presetColor && systemPresetColor.length > 0) && React.createElement("div", {
473
+ className: colorBoxCls
474
+ }, historicalColor && (historicalColor === null || historicalColor === void 0 ? void 0 : historicalColor.length) > 0 && React.createElement("div", {
475
+ className: colorBoxTitleCls
476
+ }, "\u63A8\u8350\u8272"), React.createElement("div", {
477
+ className: colorBoxContainerCls
478
+ }, _mapInstanceProperty(_context5 = checkUserPresetColor(presetColor) && presetColorToHEX(presetColor) || systemPresetColor).call(_context5, function (colorValue, i) {
229
479
  return React.createElement("li", {
230
480
  key: i,
231
481
  style: {
232
482
  backgroundColor: "".concat(colorValue)
233
483
  },
234
484
  onClick: function onClick() {
235
- colorLiClick(i, colorValue);
485
+ presetColorClick(i, colorValue);
236
486
  }
237
487
  }, React.createElement("div", {
238
488
  className: classNames('square', {
239
- 'square-click': clickedColorIndex === i
489
+ 'square-click': clickedPresetColorIndex === i
240
490
  })
241
491
  }));
242
- }))));
492
+ })))));
243
493
  };
244
494
  ColorPickerPanel.displayName = 'ColorPickerPanel';
245
495
  export default ColorPickerPanel;