@kdcloudjs/kdesign 1.7.34 → 1.7.35

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 (36) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/kdesign-complete.less +59 -51
  3. package/dist/kdesign.css +36 -19
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +50 -50
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +3 -3
  8. package/dist/kdesign.min.js +5 -5
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/color-picker/color-picker-panel.js +15 -6
  11. package/es/color-picker/color-picker.js +17 -3
  12. package/es/color-picker/interface.d.ts +5 -0
  13. package/es/color-picker/style/index.css +30 -13
  14. package/es/color-picker/style/index.less +49 -43
  15. package/es/locale/locale.d.ts +2 -0
  16. package/es/locale/zh-CN.d.ts +2 -0
  17. package/es/locale/zh-CN.js +3 -1
  18. package/es/select/select.js +12 -4
  19. package/es/select/style/index.css +5 -5
  20. package/es/select/style/index.less +10 -8
  21. package/lib/color-picker/color-picker-panel.js +16 -7
  22. package/lib/color-picker/color-picker.js +17 -3
  23. package/lib/color-picker/interface.d.ts +5 -0
  24. package/lib/color-picker/style/index.css +30 -13
  25. package/lib/color-picker/style/index.less +49 -43
  26. package/lib/locale/locale.d.ts +2 -0
  27. package/lib/locale/zh-CN.d.ts +2 -0
  28. package/lib/locale/zh-CN.js +3 -1
  29. package/lib/select/select.js +12 -4
  30. package/lib/select/style/index.css +5 -5
  31. package/lib/select/style/index.less +10 -8
  32. package/package.json +1 -1
  33. package/es/color-picker/utils/hooks/useOnClickOutside.d.ts +0 -2
  34. package/es/color-picker/utils/hooks/useOnClickOutside.js +0 -16
  35. package/lib/color-picker/utils/hooks/useOnClickOutside.d.ts +0 -2
  36. package/lib/color-picker/utils/hooks/useOnClickOutside.js +0 -23
@@ -13,7 +13,7 @@ import { toLowerCase } from './utils/convertLetters';
13
13
  import Color from 'color';
14
14
  import { ChromePicker } from 'react-color';
15
15
  import devWarning from '../_utils/devwarning';
16
- import useOnClickOutside from './utils/hooks/useOnClickOutside';
16
+ import { useOnClickOutside } from '../_utils/hooks';
17
17
  var ColorPickerPanel = function ColorPickerPanel(props) {
18
18
  var _classNames, _context;
19
19
  var setCorrectColorValue = props.setCorrectColorValue,
@@ -26,6 +26,7 @@ var ColorPickerPanel = function ColorPickerPanel(props) {
26
26
  setColTypeArr = props.setColTypeArr,
27
27
  setCurrentColorType = props.setCurrentColorType,
28
28
  onChange = props.onChange,
29
+ onVisibleChange = props.onVisibleChange,
29
30
  alpha = props.alpha,
30
31
  alphaNoVerifyVal = props.alphaNoVerifyVal,
31
32
  clickedColorIndex = props.clickedColorIndex,
@@ -43,7 +44,9 @@ var ColorPickerPanel = function ColorPickerPanel(props) {
43
44
  showPresetColor = props.showPresetColor,
44
45
  showColorPickerBox = props.showColorPickerBox,
45
46
  showColorPickerPanel = props.showColorPickerPanel,
46
- value = props.value;
47
+ value = props.value,
48
+ visible = props.visible,
49
+ showPanel = props.showPanel;
47
50
  var panelInputRef = useRef(null);
48
51
  var panelClsRef = useRef(null);
49
52
  var Option = Select.Option;
@@ -55,8 +58,9 @@ var ColorPickerPanel = function ColorPickerPanel(props) {
55
58
  var panelCls = classNames("".concat(colorPickerPrefixCls, "-panel"));
56
59
  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));
57
60
  var panelFollowThemeCls = classNames("".concat(colorPickerPrefixCls, "-panel-switch"));
58
- var panelInputCls = classNames("".concat(colorPickerPrefixCls, "-panel-input"), _defineProperty({}, "".concat(colorPickerPrefixCls, "-panel-input-no-recommend"), !showPresetColor));
59
- var transparentCls = classNames("".concat(colorPickerPrefixCls, "-panel-transparent"));
61
+ var panelContainerCls = classNames("".concat(colorPickerPrefixCls, "-panel-container"));
62
+ var panelInputCls = classNames("".concat(colorPickerPrefixCls, "-panel-container-input"));
63
+ var transparentCls = classNames("".concat(colorPickerPrefixCls, "-panel-container-transparent"));
60
64
  var colorDivContainerCls = classNames("".concat(colorPickerPrefixCls, "-panel-colorDivContainer"), _defineProperty({}, "".concat(colorPickerPrefixCls, "-panel-colorDivContainer-unset-color"), (presetColor === null || presetColor === void 0 ? void 0 : presetColor.length) === 0));
61
65
  var colorLiClick = function colorLiClick(index, colorValue) {
62
66
  var formatArr = colorFormat(colorValue, alpha);
@@ -171,7 +175,10 @@ var ColorPickerPanel = function ColorPickerPanel(props) {
171
175
  return isTrueFormat;
172
176
  };
173
177
  useOnClickOutside([panelClsRef, inputRef], function () {
174
- setShowPanel(false);
178
+ if (typeof visible === 'undefined') {
179
+ setShowPanel(false);
180
+ }
181
+ showPanel && onVisibleChange && onVisibleChange(false);
175
182
  });
176
183
  return /*#__PURE__*/React.createElement(React.Fragment, null, showColorPickerPanel && /*#__PURE__*/React.createElement("div", {
177
184
  className: panelCls,
@@ -185,7 +192,9 @@ var ColorPickerPanel = function ColorPickerPanel(props) {
185
192
  }, /*#__PURE__*/React.createElement("span", null, (switchName === null || switchName === void 0 ? void 0 : switchName.internationalName) && locale.getLangMsg('ColorPicker', switchName.internationalName) || switchName.name), /*#__PURE__*/React.createElement(Switch, {
186
193
  checked: isFollow,
187
194
  onChange: handleSwitchChange
188
- })), showColorTransfer && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
195
+ })), showColorTransfer && /*#__PURE__*/React.createElement("div", {
196
+ className: panelContainerCls
197
+ }, /*#__PURE__*/React.createElement("div", {
189
198
  className: panelInputCls,
190
199
  ref: panelInputRef
191
200
  }, /*#__PURE__*/React.createElement(Select, {
@@ -36,8 +36,10 @@ var ColorPicker = function ColorPicker(props) {
36
36
  placeholder = colorPickerProps.placeholder,
37
37
  defaultValue = colorPickerProps.defaultValue,
38
38
  defaultOpen = colorPickerProps.defaultOpen,
39
+ visible = colorPickerProps.visible,
39
40
  suffixIcon = colorPickerProps.suffixIcon,
40
- onChange = colorPickerProps.onChange;
41
+ onChange = colorPickerProps.onChange,
42
+ onVisibleChange = colorPickerProps.onVisibleChange;
41
43
  var _useState = useState(defaultValue || ''),
42
44
  _useState2 = _slicedToArray(_useState, 2),
43
45
  inputColorValue = _useState2[0],
@@ -54,7 +56,7 @@ var ColorPicker = function ColorPicker(props) {
54
56
  _useState8 = _slicedToArray(_useState7, 2),
55
57
  colTypeArr = _useState8[0],
56
58
  setColTypeArr = _useState8[1];
57
- var _useState9 = useState(defaultOpen),
59
+ var _useState9 = useState(typeof visible === 'undefined' ? !!defaultOpen : !!visible),
58
60
  _useState10 = _slicedToArray(_useState9, 2),
59
61
  showPanel = _useState10[0],
60
62
  setShowPanel = _useState10[1];
@@ -118,8 +120,16 @@ var ColorPicker = function ColorPicker(props) {
118
120
  functionalColor && showSwitch && setIsFollow(false);
119
121
  };
120
122
  var handleClick = function handleClick() {
121
- setShowPanel(!showPanel);
123
+ if (typeof visible === 'undefined') {
124
+ setShowPanel(!showPanel);
125
+ }
126
+ onVisibleChange && onVisibleChange(!showPanel);
122
127
  };
128
+ useEffect(function () {
129
+ if (typeof visible !== 'undefined') {
130
+ setShowPanel(visible);
131
+ }
132
+ }, [visible]);
123
133
  useEffect(function () {
124
134
  if (value) {
125
135
  setIconColor(value);
@@ -169,6 +179,9 @@ var ColorPicker = function ColorPicker(props) {
169
179
  switchName: switchName,
170
180
  presetColor: presetColor,
171
181
  value: value,
182
+ visible: visible,
183
+ showPanel: showPanel,
184
+ onVisibleChange: onVisibleChange,
172
185
  // private
173
186
  setInputColorValue: setInputColorValue,
174
187
  setCorrectColorValue: setCorrectColorValue,
@@ -195,6 +208,7 @@ var ColorPicker = function ColorPicker(props) {
195
208
  placement: 'bottomLeft',
196
209
  defaultVisible: showPanel,
197
210
  visible: showPanel,
211
+ onVisibleChange: null,
198
212
  clickToClose: false
199
213
  });
200
214
  return usePopper(colorInputEle, panel, popperProps);
@@ -32,7 +32,9 @@ export interface IColorPickerProps extends PopperProps {
32
32
  showOpacity: boolean;
33
33
  };
34
34
  defaultOpen: boolean;
35
+ visible: boolean;
35
36
  onChange: (inputValue: string, formatColorArr: Array<IColorTypesObj>) => void;
37
+ onVisibleChange: (visible: boolean) => void;
36
38
  }
37
39
  export interface IColorPickerPanelProps {
38
40
  alpha: number;
@@ -60,6 +62,8 @@ export interface IColorPickerPanelProps {
60
62
  };
61
63
  showColorPickerPanel: boolean;
62
64
  value: string;
65
+ visible: boolean;
66
+ showPanel: boolean;
63
67
  setCurrentColorType: (currentColorType: IColorTypesObj['type']) => void;
64
68
  setColTypeArr: (colTypeArr: Array<IColorTypesObj>) => void;
65
69
  setClickedColorIndex: (clickedColorIndex: number) => void;
@@ -70,4 +74,5 @@ export interface IColorPickerPanelProps {
70
74
  setInputColorValue: (colorValue: string) => void;
71
75
  setShowPanel: (showPanel: boolean) => void;
72
76
  onChange?: (inputValue: string, formatColorArr: Array<IColorTypesObj>) => void;
77
+ onVisibleChange?: (visible: boolean) => void;
73
78
  }
@@ -105,6 +105,7 @@
105
105
  /* ----------- zIndex ——————---- end */
106
106
  .kd-color-picker-container {
107
107
  position: relative;
108
+ width: var(--kd-c-color-picker-input-sizing-width, 230px);
108
109
  }
109
110
  .kd-color-picker-container .kd-color-picker-input {
110
111
  width: var(--kd-c-color-picker-input-sizing-width, 230px);
@@ -146,6 +147,9 @@
146
147
  transition: transform 0.2s ease-in-out;
147
148
  transition: transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;
148
149
  }
150
+ .kd-color-picker-pop {
151
+ width: var(--kd-c-color-picker-panel-sizing-width, 304px);
152
+ }
149
153
  .kd-color-picker-pop.topLeft.hidden,
150
154
  .kd-color-picker-pop.bottomLeft.hidden,
151
155
  .kd-color-picker-pop.topRight.hidden,
@@ -255,19 +259,30 @@
255
259
  vertical-align: middle;
256
260
  margin-right: 9px;
257
261
  }
258
- .kd-color-picker-pop .kd-color-picker-panel-input {
262
+ .kd-color-picker-pop .kd-color-picker-panel-container {
263
+ display: -webkit-box;
264
+ display: -ms-flexbox;
265
+ display: flex;
266
+ -ms-flex-wrap: nowrap;
267
+ flex-wrap: nowrap;
268
+ margin-top: 10px;
269
+ }
270
+ .kd-color-picker-pop .kd-color-picker-panel-container-input {
271
+ -webkit-box-flex: 1;
272
+ -ms-flex: 1 1 auto;
273
+ flex: 1 1 auto;
259
274
  display: inline-block;
260
275
  position: relative;
261
- margin-top: 12px;
262
276
  font-size: var(--kd-c-color-picker-panel-select-font-size, var(--kd-g-font-size-middle, 14px));
263
277
  }
264
- .kd-color-picker-pop .kd-color-picker-panel-input-no-recommend {
265
- margin-bottom: 0;
278
+ .kd-color-picker-pop .kd-color-picker-panel-container-input .kd-select-dropdown-panel {
279
+ margin: 0 !important;
266
280
  }
267
- .kd-color-picker-pop .kd-color-picker-panel-input .kd-select.bottomLeft,
268
- .kd-color-picker-pop .kd-color-picker-panel-input .kd-select.topLeft {
281
+ .kd-color-picker-pop .kd-color-picker-panel-container-input .kd-select-dropdown-panel.bottomLeft,
282
+ .kd-color-picker-pop .kd-color-picker-panel-container-input .kd-select-dropdown-panel.topLeft {
269
283
  position: absolute;
270
284
  width: 60px !important;
285
+ min-width: unset !important;
271
286
  background: #FFFFFF;
272
287
  right: 0;
273
288
  left: unset !important;
@@ -275,7 +290,7 @@
275
290
  box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.2);
276
291
  border-radius: 2px;
277
292
  }
278
- .kd-color-picker-pop .kd-color-picker-panel-input .kd-select .kd-select-dropdown .kd-select-item-option {
293
+ .kd-color-picker-pop .kd-color-picker-panel-container-input .kd-select-dropdown-panel .kd-select-dropdown .kd-select-item-option {
279
294
  display: -webkit-box;
280
295
  display: -ms-flexbox;
281
296
  display: flex;
@@ -284,21 +299,23 @@
284
299
  justify-content: center;
285
300
  min-width: unset;
286
301
  }
287
- .kd-color-picker-pop .kd-color-picker-panel-input .kd-select-bordered {
302
+ .kd-color-picker-pop .kd-color-picker-panel-container-input .kd-select-bordered {
288
303
  border-radius: 2px;
289
304
  width: var(--kd-c-color-picker-panel-select-sizing-width, 212px);
290
305
  height: var(--kd-c-color-picker-panel-select-sizing-height, 28px);
291
306
  min-height: 28px;
292
- margin-top: -2px;
307
+ padding: 0 28px 0 0;
293
308
  }
294
- .kd-color-picker-pop .kd-color-picker-panel-input .kd-select-bordered .kd-select-placeholder {
309
+ .kd-color-picker-pop .kd-color-picker-panel-container-input .kd-select-bordered .kd-select-placeholder {
295
310
  left: 8px;
296
311
  }
297
- .kd-color-picker-pop .kd-color-picker-panel-input .active-option {
312
+ .kd-color-picker-pop .kd-color-picker-panel-container-input .active-option {
298
313
  background-color: var(--kd-c-color-picker-panel-option-color-background-selected, var(--kd-g-color-theme-3, #e3eeff));
299
314
  }
300
- .kd-color-picker-pop .kd-color-picker-panel-transparent {
301
- width: 60px;
315
+ .kd-color-picker-pop .kd-color-picker-panel-container-transparent {
316
+ -webkit-box-flex: 0;
317
+ -ms-flex: 0 0 60px;
318
+ flex: 0 0 60px;
302
319
  height: 28px;
303
320
  margin-left: 8px;
304
321
  text-align: center;
@@ -6,6 +6,7 @@
6
6
 
7
7
  .@{color-picker-prefix-cls}-container {
8
8
  position: relative;
9
+ width: @color-picker-input-sizing-width;
9
10
 
10
11
  .@{color-picker-prefix-cls}-input {
11
12
  width: @color-picker-input-sizing-width;
@@ -52,6 +53,7 @@
52
53
  }
53
54
 
54
55
  .@{color-picker-prefix-cls}-pop {
56
+ width: @color-picker-panel-sizing-width;
55
57
 
56
58
  &.topLeft.hidden,
57
59
  &.bottomLeft.hidden,
@@ -202,63 +204,67 @@
202
204
  }
203
205
  }
204
206
 
205
- &-input {
206
- display: inline-block;
207
- position: relative;
208
- margin-top: 12px;
209
- font-size: @color-picker-panel-select-font-size;
207
+ &-container {
208
+ display: flex;
209
+ flex-wrap: nowrap;
210
+ margin-top: 10px;
210
211
 
211
- &-no-recommend {
212
- margin-bottom: 0;
213
- }
212
+ &-input {
213
+ flex: 1 1 auto;
214
+ display: inline-block;
215
+ position: relative;
216
+ font-size: @color-picker-panel-select-font-size;
217
+
218
+ .@{kd-prefix}-select-dropdown-panel {
219
+ margin: 0 !important;
220
+
221
+ &.bottomLeft,
222
+ &.topLeft {
223
+ position: absolute;
224
+ width: 60px !important;
225
+ min-width: unset !important;
226
+ background: #FFFFFF;
227
+ right: 0;
228
+ left: unset !important;
229
+ box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.20);
230
+ border-radius: 2px;
231
+ }
214
232
 
215
- .@{kd-prefix}-select {
233
+ .@{kd-prefix}-select-dropdown {
234
+ .@{kd-prefix}-select-item-option {
235
+ display: flex;
236
+ justify-content: center;
237
+ min-width: unset;
238
+ }
239
+ }
240
+ }
216
241
 
217
- &.bottomLeft,
218
- &.topLeft {
219
- position: absolute;
220
- width: 60px !important;
221
- background: #FFFFFF;
222
- right: 0;
223
- left: unset !important;
224
- box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.20);
242
+ .@{kd-prefix}-select-bordered {
225
243
  border-radius: 2px;
226
- }
244
+ width: @color-picker-panel-select-sizing-width;
245
+ height: @color-picker-panel-select-sizing-height;
246
+ min-height: 28px;
247
+ padding: 0 28px 0 0;
227
248
 
228
- .@{kd-prefix}-select-dropdown {
229
- .@{kd-prefix}-select-item-option {
230
- display: flex;
231
- justify-content: center;
232
- min-width: unset;
249
+ .@{kd-prefix}-select-placeholder {
250
+ left: 8px;
233
251
  }
234
252
  }
235
- }
236
-
237
- .@{kd-prefix}-select-bordered {
238
- border-radius: 2px;
239
- width: @color-picker-panel-select-sizing-width;
240
- height: @color-picker-panel-select-sizing-height;
241
- min-height: 28px;
242
- margin-top: -2px;
243
253
 
244
- .@{kd-prefix}-select-placeholder {
245
- left: 8px;
254
+ .active-option {
255
+ background-color: @color-picker-panel-option-color-background;
246
256
  }
247
257
  }
248
258
 
249
- .active-option {
250
- background-color: @color-picker-panel-option-color-background;
259
+ &-transparent {
260
+ flex: 0 0 60px;
261
+ height: 28px;
262
+ margin-left: 8px;
263
+ text-align: center;
264
+ font-size: @color-picker-panel-alpha-font-size;
251
265
  }
252
266
  }
253
267
 
254
- &-transparent {
255
- width: 60px;
256
- height: 28px;
257
- margin-left: 8px;
258
- text-align: center;
259
- font-size: @color-picker-panel-alpha-font-size;
260
- }
261
-
262
268
  &-colorDivContainer {
263
269
  display: grid;
264
270
  grid-template-columns: repeat(12, 1fr);
@@ -98,6 +98,8 @@ declare class LocaleCache {
98
98
  'Table.notIsNull': string;
99
99
  'Table.resetFilter': string;
100
100
  'Table.confirmFilter': string;
101
+ 'Select.selectAll': string;
102
+ 'Select.seleted': string;
101
103
  'DatePicker.placeholder': string;
102
104
  'DatePicker.yearPlaceholder': string;
103
105
  'DatePicker.quarterPlaceholder': string;
@@ -72,6 +72,8 @@ declare const locale: {
72
72
  'Table.notIsNull': string;
73
73
  'Table.resetFilter': string;
74
74
  'Table.confirmFilter': string;
75
+ 'Select.selectAll': string;
76
+ 'Select.seleted': string;
75
77
  'DatePicker.placeholder': string;
76
78
  'DatePicker.yearPlaceholder': string;
77
79
  'DatePicker.quarterPlaceholder': string;
@@ -75,6 +75,8 @@ var locale = _extends(_extends({
75
75
  'Table.isNull': '为空',
76
76
  'Table.notIsNull': '不为空',
77
77
  'Table.resetFilter': '重置',
78
- 'Table.confirmFilter': '确定'
78
+ 'Table.confirmFilter': '确定',
79
+ 'Select.selectAll': '全选',
80
+ 'Select.seleted': '已选{size}项'
79
81
  });
80
82
  export default locale;
@@ -26,8 +26,12 @@ var InternalSelect = function InternalSelect(props, ref) {
26
26
  var _useContext = useContext(ConfigContext),
27
27
  getPrefixCls = _useContext.getPrefixCls,
28
28
  prefixCls = _useContext.prefixCls,
29
- userDefaultProps = _useContext.compDefaultProps;
29
+ userDefaultProps = _useContext.compDefaultProps,
30
+ locale = _useContext.locale;
30
31
  var selectProps = getCompProps('Select', userDefaultProps, props);
32
+ var selectLangMsg = locale.getCompLangMsg({
33
+ componentName: 'Select'
34
+ });
31
35
  var size = selectProps.size,
32
36
  value = selectProps.value,
33
37
  autoFocus = selectProps.autoFocus,
@@ -568,16 +572,20 @@ var InternalSelect = function InternalSelect(props, ref) {
568
572
  className: dropDownCls,
569
573
  style: dropdownStyle,
570
574
  ref: dropDownRef
571
- }, !dropdownRender && childrenToRender.length > 0 ? dropRender(eleOptionList, heightStyle) : null, renderNotContent(), /*#__PURE__*/React.createElement("div", null, dropdownRender ? dropdownRender(dropRender(childrenToRender, heightStyle)) : null), isMultiple && realChildren.length > 0 ? /*#__PURE__*/React.createElement("div", {
575
+ }, !dropdownRender && childrenToRender.length > 0 ? dropRender(eleOptionList, heightStyle) : null, renderNotContent(), /*#__PURE__*/React.createElement("div", null, dropdownRender ? dropdownRender(dropRender(eleOptionList, heightStyle)) : null), isMultiple && realChildren.length > 0 ? /*#__PURE__*/React.createElement("div", {
572
576
  className: multipleFooterCls
573
577
  }, /*#__PURE__*/React.createElement(Checkbox, {
574
578
  style: checkboxStyle,
575
579
  checked: checked,
576
580
  indeterminate: indeterminate,
577
581
  onChange: handleSelectAll
578
- }, "\u5168\u9009"), /*#__PURE__*/React.createElement("span", {
582
+ }, selectLangMsg === null || selectLangMsg === void 0 ? void 0 : selectLangMsg.selectAll), /*#__PURE__*/React.createElement("span", {
579
583
  className: "".concat(selectPrefixCls, "-multiple-footer-hadSelected")
580
- }, "\u5DF2\u9009", /*#__PURE__*/React.createElement("span", null, selectedVal.length), "\u9879")) : null));
584
+ }, locale.getLangMsg('Select', 'seleted', {
585
+ size: /*#__PURE__*/React.createElement("span", {
586
+ className: "".concat(selectPrefixCls, "-multiple-footer-hadSelected-number")
587
+ }, selectedVal.length)
588
+ }))) : null));
581
589
  };
582
590
  // 处理多选tag
583
591
  var handleMaxTagHolder = useCallback(function () {
@@ -698,14 +698,14 @@
698
698
  color: #999999;
699
699
  padding-left: 12px;
700
700
  }
701
- .kd-select-multiple-footer-hadSelected > span {
701
+ .kd-select-multiple-footer-hadSelected-number {
702
702
  color: var(--kd-c-select-footer-color-text-selected, #0e5fd8);
703
703
  padding: 0 2px;
704
704
  }
705
- .kd-select.topLeft.hidden,
706
- .kd-select.bottomLeft.hidden,
707
- .kd-select.topRight.hidden,
708
- .kd-select.bottomRight.hidden {
705
+ .kd-select-dropdown-panel.topLeft.hidden,
706
+ .kd-select-dropdown-panel.bottomLeft.hidden,
707
+ .kd-select-dropdown-panel.topRight.hidden,
708
+ .kd-select-dropdown-panel.bottomRight.hidden {
709
709
  opacity: 0;
710
710
  visibility: hidden;
711
711
  -webkit-transition: all calc(0.3s - 0.1s) cubic-bezier(0.4, 0, 0.6, 1);
@@ -431,7 +431,7 @@
431
431
  &-hadSelected {
432
432
  color: #999999;
433
433
  padding-left: 12px;
434
- > span {
434
+ &-number {
435
435
  color: @select-footer-g-text-color-selected;
436
436
  padding: 0 2px;
437
437
  }
@@ -439,12 +439,14 @@
439
439
  }
440
440
  }
441
441
 
442
- &.topLeft.hidden,
443
- &.bottomLeft.hidden,
444
- &.topRight.hidden,
445
- &.bottomRight.hidden {
446
- opacity: 0;
447
- visibility: hidden;
448
- transition: all calc(@transition-duration - 0.1s) @ease;
442
+ &-dropdown-panel {
443
+ &.topLeft.hidden,
444
+ &.bottomLeft.hidden,
445
+ &.topRight.hidden,
446
+ &.bottomRight.hidden {
447
+ opacity: 0;
448
+ visibility: hidden;
449
+ transition: all calc(@transition-duration - 0.1s) @ease;
450
+ }
449
451
  }
450
452
  }
@@ -22,7 +22,7 @@ var _convertLetters = require("./utils/convertLetters");
22
22
  var _color = _interopRequireDefault(require("color"));
23
23
  var _reactColor = require("react-color");
24
24
  var _devwarning = _interopRequireDefault(require("../_utils/devwarning"));
25
- var _useOnClickOutside = _interopRequireDefault(require("./utils/hooks/useOnClickOutside"));
25
+ var _hooks = require("../_utils/hooks");
26
26
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
27
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
28
28
  /* eslint-disable */
@@ -39,6 +39,7 @@ var ColorPickerPanel = function ColorPickerPanel(props) {
39
39
  setColTypeArr = props.setColTypeArr,
40
40
  setCurrentColorType = props.setCurrentColorType,
41
41
  onChange = props.onChange,
42
+ onVisibleChange = props.onVisibleChange,
42
43
  alpha = props.alpha,
43
44
  alphaNoVerifyVal = props.alphaNoVerifyVal,
44
45
  clickedColorIndex = props.clickedColorIndex,
@@ -56,7 +57,9 @@ var ColorPickerPanel = function ColorPickerPanel(props) {
56
57
  showPresetColor = props.showPresetColor,
57
58
  showColorPickerBox = props.showColorPickerBox,
58
59
  showColorPickerPanel = props.showColorPickerPanel,
59
- value = props.value;
60
+ value = props.value,
61
+ visible = props.visible,
62
+ showPanel = props.showPanel;
60
63
  var panelInputRef = (0, _react.useRef)(null);
61
64
  var panelClsRef = (0, _react.useRef)(null);
62
65
  var Option = _index.Select.Option;
@@ -68,8 +71,9 @@ var ColorPickerPanel = function ColorPickerPanel(props) {
68
71
  var panelCls = (0, _classnames.default)("".concat(colorPickerPrefixCls, "-panel"));
69
72
  var panelChromePickerCls = (0, _classnames.default)("".concat(colorPickerPrefixCls, "-panel-chrome"), (_classNames = {}, (0, _defineProperty2.default)(_classNames, "".concat(colorPickerPrefixCls, "-panel-chrome-no-box"), !(showColorPickerBox === null || showColorPickerBox === void 0 ? void 0 : showColorPickerBox.showBox)), (0, _defineProperty2.default)(_classNames, "".concat(colorPickerPrefixCls, "-panel-chrome-no-hue"), !(showColorPickerBox === null || showColorPickerBox === void 0 ? void 0 : showColorPickerBox.showHue)), (0, _defineProperty2.default)(_classNames, "".concat(colorPickerPrefixCls, "-panel-chrome-no-opacity"), !(showColorPickerBox === null || showColorPickerBox === void 0 ? void 0 : showColorPickerBox.showOpacity)), _classNames));
70
73
  var panelFollowThemeCls = (0, _classnames.default)("".concat(colorPickerPrefixCls, "-panel-switch"));
71
- var panelInputCls = (0, _classnames.default)("".concat(colorPickerPrefixCls, "-panel-input"), (0, _defineProperty2.default)({}, "".concat(colorPickerPrefixCls, "-panel-input-no-recommend"), !showPresetColor));
72
- var transparentCls = (0, _classnames.default)("".concat(colorPickerPrefixCls, "-panel-transparent"));
74
+ var panelContainerCls = (0, _classnames.default)("".concat(colorPickerPrefixCls, "-panel-container"));
75
+ var panelInputCls = (0, _classnames.default)("".concat(colorPickerPrefixCls, "-panel-container-input"));
76
+ var transparentCls = (0, _classnames.default)("".concat(colorPickerPrefixCls, "-panel-container-transparent"));
73
77
  var colorDivContainerCls = (0, _classnames.default)("".concat(colorPickerPrefixCls, "-panel-colorDivContainer"), (0, _defineProperty2.default)({}, "".concat(colorPickerPrefixCls, "-panel-colorDivContainer-unset-color"), (presetColor === null || presetColor === void 0 ? void 0 : presetColor.length) === 0));
74
78
  var colorLiClick = function colorLiClick(index, colorValue) {
75
79
  var formatArr = (0, _colorFormat.colorFormat)(colorValue, alpha);
@@ -183,8 +187,11 @@ var ColorPickerPanel = function ColorPickerPanel(props) {
183
187
  (0, _devwarning.default)(!isTrueFormat, 'color-picker', "'presetColor' must be an array of hexadecimal, RGB, HSB, HSL or English color name string type");
184
188
  return isTrueFormat;
185
189
  };
186
- (0, _useOnClickOutside.default)([panelClsRef, inputRef], function () {
187
- setShowPanel(false);
190
+ (0, _hooks.useOnClickOutside)([panelClsRef, inputRef], function () {
191
+ if (typeof visible === 'undefined') {
192
+ setShowPanel(false);
193
+ }
194
+ showPanel && onVisibleChange && onVisibleChange(false);
188
195
  });
189
196
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, showColorPickerPanel && /*#__PURE__*/_react.default.createElement("div", {
190
197
  className: panelCls,
@@ -198,7 +205,9 @@ var ColorPickerPanel = function ColorPickerPanel(props) {
198
205
  }, /*#__PURE__*/_react.default.createElement("span", null, (switchName === null || switchName === void 0 ? void 0 : switchName.internationalName) && locale.getLangMsg('ColorPicker', switchName.internationalName) || switchName.name), /*#__PURE__*/_react.default.createElement(_index.Switch, {
199
206
  checked: isFollow,
200
207
  onChange: handleSwitchChange
201
- })), showColorTransfer && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
208
+ })), showColorTransfer && /*#__PURE__*/_react.default.createElement("div", {
209
+ className: panelContainerCls
210
+ }, /*#__PURE__*/_react.default.createElement("div", {
202
211
  className: panelInputCls,
203
212
  ref: panelInputRef
204
213
  }, /*#__PURE__*/_react.default.createElement(_index.Select, {
@@ -48,8 +48,10 @@ var ColorPicker = function ColorPicker(props) {
48
48
  placeholder = colorPickerProps.placeholder,
49
49
  defaultValue = colorPickerProps.defaultValue,
50
50
  defaultOpen = colorPickerProps.defaultOpen,
51
+ visible = colorPickerProps.visible,
51
52
  suffixIcon = colorPickerProps.suffixIcon,
52
- onChange = colorPickerProps.onChange;
53
+ onChange = colorPickerProps.onChange,
54
+ onVisibleChange = colorPickerProps.onVisibleChange;
53
55
  var _useState = (0, _react.useState)(defaultValue || ''),
54
56
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
55
57
  inputColorValue = _useState2[0],
@@ -66,7 +68,7 @@ var ColorPicker = function ColorPicker(props) {
66
68
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
67
69
  colTypeArr = _useState8[0],
68
70
  setColTypeArr = _useState8[1];
69
- var _useState9 = (0, _react.useState)(defaultOpen),
71
+ var _useState9 = (0, _react.useState)(typeof visible === 'undefined' ? !!defaultOpen : !!visible),
70
72
  _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
71
73
  showPanel = _useState10[0],
72
74
  setShowPanel = _useState10[1];
@@ -130,8 +132,16 @@ var ColorPicker = function ColorPicker(props) {
130
132
  functionalColor && showSwitch && setIsFollow(false);
131
133
  };
132
134
  var handleClick = function handleClick() {
133
- setShowPanel(!showPanel);
135
+ if (typeof visible === 'undefined') {
136
+ setShowPanel(!showPanel);
137
+ }
138
+ onVisibleChange && onVisibleChange(!showPanel);
134
139
  };
140
+ (0, _react.useEffect)(function () {
141
+ if (typeof visible !== 'undefined') {
142
+ setShowPanel(visible);
143
+ }
144
+ }, [visible]);
135
145
  (0, _react.useEffect)(function () {
136
146
  if (value) {
137
147
  setIconColor(value);
@@ -181,6 +191,9 @@ var ColorPicker = function ColorPicker(props) {
181
191
  switchName: switchName,
182
192
  presetColor: presetColor,
183
193
  value: value,
194
+ visible: visible,
195
+ showPanel: showPanel,
196
+ onVisibleChange: onVisibleChange,
184
197
  // private
185
198
  setInputColorValue: setInputColorValue,
186
199
  setCorrectColorValue: setCorrectColorValue,
@@ -207,6 +220,7 @@ var ColorPicker = function ColorPicker(props) {
207
220
  placement: 'bottomLeft',
208
221
  defaultVisible: showPanel,
209
222
  visible: showPanel,
223
+ onVisibleChange: null,
210
224
  clickToClose: false
211
225
  });
212
226
  return (0, _usePopper.default)(colorInputEle, panel, popperProps);
@@ -32,7 +32,9 @@ export interface IColorPickerProps extends PopperProps {
32
32
  showOpacity: boolean;
33
33
  };
34
34
  defaultOpen: boolean;
35
+ visible: boolean;
35
36
  onChange: (inputValue: string, formatColorArr: Array<IColorTypesObj>) => void;
37
+ onVisibleChange: (visible: boolean) => void;
36
38
  }
37
39
  export interface IColorPickerPanelProps {
38
40
  alpha: number;
@@ -60,6 +62,8 @@ export interface IColorPickerPanelProps {
60
62
  };
61
63
  showColorPickerPanel: boolean;
62
64
  value: string;
65
+ visible: boolean;
66
+ showPanel: boolean;
63
67
  setCurrentColorType: (currentColorType: IColorTypesObj['type']) => void;
64
68
  setColTypeArr: (colTypeArr: Array<IColorTypesObj>) => void;
65
69
  setClickedColorIndex: (clickedColorIndex: number) => void;
@@ -70,4 +74,5 @@ export interface IColorPickerPanelProps {
70
74
  setInputColorValue: (colorValue: string) => void;
71
75
  setShowPanel: (showPanel: boolean) => void;
72
76
  onChange?: (inputValue: string, formatColorArr: Array<IColorTypesObj>) => void;
77
+ onVisibleChange?: (visible: boolean) => void;
73
78
  }