@kdcloudjs/kdesign 1.7.33 → 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 (60) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/dist/kdesign-complete.less +63 -51
  3. package/dist/kdesign.css +39 -19
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +232 -217
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +3 -3
  8. package/dist/kdesign.min.js +8 -8
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/_utils/ieUtil.d.ts +2 -0
  11. package/es/_utils/ieUtil.js +20 -0
  12. package/es/color-picker/color-picker-panel.js +15 -6
  13. package/es/color-picker/color-picker.js +17 -3
  14. package/es/color-picker/interface.d.ts +5 -0
  15. package/es/color-picker/style/index.css +30 -13
  16. package/es/color-picker/style/index.less +49 -43
  17. package/es/date-picker/date-picker.d.ts +1 -0
  18. package/es/date-picker/date-picker.js +6 -15
  19. package/es/date-picker/interface.d.ts +1 -0
  20. package/es/date-picker/range/input-range.js +3 -2
  21. package/es/date-picker/range-picker.js +6 -4
  22. package/es/date-picker/single/input-date.js +3 -2
  23. package/es/date-picker/style/index.css +3 -0
  24. package/es/date-picker/style/index.less +4 -0
  25. package/es/date-picker/utils/date-fns.js +5 -11
  26. package/es/locale/locale.d.ts +2 -0
  27. package/es/locale/zh-CN.d.ts +2 -0
  28. package/es/locale/zh-CN.js +3 -1
  29. package/es/select/select.js +12 -4
  30. package/es/select/style/index.css +5 -5
  31. package/es/select/style/index.less +10 -8
  32. package/es/upload/upload.js +3 -4
  33. package/lib/_utils/ieUtil.d.ts +2 -0
  34. package/lib/_utils/ieUtil.js +28 -0
  35. package/lib/color-picker/color-picker-panel.js +16 -7
  36. package/lib/color-picker/color-picker.js +17 -3
  37. package/lib/color-picker/interface.d.ts +5 -0
  38. package/lib/color-picker/style/index.css +30 -13
  39. package/lib/color-picker/style/index.less +49 -43
  40. package/lib/date-picker/date-picker.d.ts +1 -0
  41. package/lib/date-picker/date-picker.js +5 -14
  42. package/lib/date-picker/interface.d.ts +1 -0
  43. package/lib/date-picker/range/input-range.js +3 -2
  44. package/lib/date-picker/range-picker.js +5 -3
  45. package/lib/date-picker/single/input-date.js +3 -2
  46. package/lib/date-picker/style/index.css +3 -0
  47. package/lib/date-picker/style/index.less +4 -0
  48. package/lib/date-picker/utils/date-fns.js +5 -11
  49. package/lib/locale/locale.d.ts +2 -0
  50. package/lib/locale/zh-CN.d.ts +2 -0
  51. package/lib/locale/zh-CN.js +3 -1
  52. package/lib/select/select.js +12 -4
  53. package/lib/select/style/index.css +5 -5
  54. package/lib/select/style/index.less +10 -8
  55. package/lib/upload/upload.js +3 -4
  56. package/package.json +1 -1
  57. package/es/color-picker/utils/hooks/useOnClickOutside.d.ts +0 -2
  58. package/es/color-picker/utils/hooks/useOnClickOutside.js +0 -16
  59. package/lib/color-picker/utils/hooks/useOnClickOutside.d.ts +0 -2
  60. package/lib/color-picker/utils/hooks/useOnClickOutside.js +0 -23
@@ -0,0 +1,2 @@
1
+ export declare const isIE: any;
2
+ export declare const getFileUtil: (file: any, name?: string) => any;
@@ -0,0 +1,20 @@
1
+ var _a;
2
+ export var isIE = ((_a = window) === null || _a === void 0 ? void 0 : _a.ActiveXObject) || 'ActiveXObject' in window;
3
+ export var getFileUtil = function getFileUtil(file) {
4
+ var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
5
+ if (file) {
6
+ if (isIE) {
7
+ var blob = new Blob([file], {
8
+ type: file.type
9
+ });
10
+ blob.fileName = name || file.name;
11
+ blob.lastModifiedDate = (file === null || file === void 0 ? void 0 : file.lastModifiedDate) || Date.now();
12
+ return blob;
13
+ } else {
14
+ return new File([file], name || file.name, {
15
+ type: file.type
16
+ });
17
+ }
18
+ }
19
+ return file;
20
+ };
@@ -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);
@@ -37,6 +37,7 @@ export interface PickerSharedProps extends React.AriaAttributes {
37
37
  onMouseLeave?: React.MouseEventHandler<HTMLDivElement>;
38
38
  onClick?: React.MouseEventHandler<HTMLDivElement>;
39
39
  onContextMenu?: React.MouseEventHandler<HTMLDivElement>;
40
+ status?: 'error';
40
41
  }
41
42
  declare type OmitPanelProps<Props> = Omit<Props, 'onChange' | 'hideHeader' | 'pickerValue' | 'onPickerValueChange'>;
42
43
  export interface PickerBaseProps extends PickerSharedProps, OmitPanelProps<PickerPanelBaseProps> {
@@ -12,7 +12,7 @@ import InputDate from './single/input-date';
12
12
  import { getDefaultFormat, getDataOrAriaProps, getInternalNextMode, generateUnits } from './utils';
13
13
  import useValueTexts from './hooks/use-value-texts';
14
14
  import useHoverValue from './hooks/use-hover-value';
15
- import { formatDate, getHours, getLowerBoundTime, getMinutes, getSeconds, isEqual, isValid, newDate, parseDate, setTime } from './utils/date-fns';
15
+ import { formatDate, getHours, getLowerBoundTime, getMinutes, getSeconds, isEqual, isValid, newDate, parseDate, setTime, isDate } from './utils/date-fns';
16
16
  import useTextValueMapping from './hooks/use-text-value-mapping';
17
17
  import getExtraFooter from './utils/get-extra-footer';
18
18
  import getRanges from './utils/get-ranges';
@@ -80,8 +80,8 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
80
80
  onMouseLeave = datePickerProps.onMouseLeave,
81
81
  onContextMenu = datePickerProps.onContextMenu,
82
82
  onClick = datePickerProps.onClick,
83
- _onOk = datePickerProps.onOk;
84
- // ref
83
+ _onOk = datePickerProps.onOk,
84
+ status = datePickerProps.status;
85
85
  var inputDivRefDefault = React.useRef(null);
86
86
  var inputDivRef = ref || inputDivRefDefault;
87
87
  var popperRefDefault = React.useRef(null);
@@ -90,14 +90,10 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
90
90
  var isHourStepValid = 24 % hourStep === 0;
91
91
  var isMinuteStepValid = 60 % minuteStep === 0;
92
92
  var isSecondStepValid = 60 % secondStep === 0;
93
- // const hours = generateUnits(0, 23, hourStep, disabledHours && disabledHours())
94
- // const minutes = generateUnits(0, 59, minuteStep, disabledMinutes && disabledMinutes(originHour))
95
- // const seconds = generateUnits(0, 59, secondStep, disabledSeconds && disabledSeconds(originHour, minute))
96
93
  var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';
97
94
  var datePickerLang = _extends({}, globalLocale.getCompLangMsg({
98
95
  componentName: 'DatePicker'
99
96
  }), locale || {});
100
- // 原始数据
101
97
  var _useMergedState = useMergedState(null, {
102
98
  value: value,
103
99
  defaultValue: defaultValue
@@ -105,7 +101,6 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
105
101
  _useMergedState2 = _slicedToArray(_useMergedState, 2),
106
102
  dateValue = _useMergedState2[0],
107
103
  setDateValue = _useMergedState2[1];
108
- // 选中的数据
109
104
  var _React$useState = React.useState(dateValue),
110
105
  _React$useState2 = _slicedToArray(_React$useState, 2),
111
106
  selectedValue = _React$useState2[0],
@@ -135,22 +130,19 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
135
130
  }
136
131
  }
137
132
  var _format = getDefaultFormat(format, picker, showTime && !disabledTimePanel, use12Hours);
138
- // 面板展示日期
139
133
  var _useState = useState(defaultPickerValue || dateValue || new Date()),
140
134
  _useState2 = _slicedToArray(_useState, 2),
141
135
  viewDate = _useState2[0],
142
136
  setInnerViewDate = _useState2[1];
143
137
  var setViewDate = function setViewDate(date) {
144
- setInnerViewDate(date || new Date());
138
+ setInnerViewDate(isDate(date) ? date : new Date());
145
139
  };
146
140
  useEffect(function () {
147
141
  setViewDate(dateValue);
148
142
  }, [dateValue]);
149
- // text
150
143
  var valueText = useValueTexts(selectedValue, {
151
144
  format: _format
152
145
  });
153
- // input 展示
154
146
  var _useTextValueMapping = useTextValueMapping({
155
147
  valueText: valueText,
156
148
  onTextChange: function onTextChange(newText) {
@@ -200,7 +192,6 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
200
192
  _useMergedState4 = _slicedToArray(_useMergedState3, 2),
201
193
  openValue = _useMergedState4[0],
202
194
  triggerInnerOpen = _useMergedState4[1];
203
- // Save panel is changed from which panel
204
195
  var _useMergedState5 = useMergedState(function () {
205
196
  if (picker === 'time') {
206
197
  return 'time';
@@ -323,7 +314,6 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
323
314
  format: _format,
324
315
  onChange: setSelectedValue
325
316
  });
326
- // 渲染日期选择表盘
327
317
  var renderPanel = function renderPanel() {
328
318
  var panelNode = /*#__PURE__*/React.createElement(Panel, _extends({}, panelProps));
329
319
  if (panelRender) {
@@ -393,7 +383,8 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
393
383
  triggerTextChange: triggerTextChange,
394
384
  triggerOpen: triggerOpen,
395
385
  triggerChange: triggerChange,
396
- resetText: resetText
386
+ resetText: resetText,
387
+ status: status
397
388
  };
398
389
  return usePopper( /*#__PURE__*/React.createElement(InputDate, _extends({
399
390
  ref: inputDivRef
@@ -128,6 +128,7 @@ export interface InputCommonProps {
128
128
  prefixCls: string;
129
129
  locale: InnerLocale;
130
130
  dataOrAriaProps?: Record<string, any>;
131
+ status?: 'error';
131
132
  }
132
133
  export interface OutPopperProps {
133
134
  dropdownClassName?: string;
@@ -63,7 +63,8 @@ function InputDate(props, ref) {
63
63
  triggerChange = props.triggerChange,
64
64
  triggerOpenAndFocus = props.triggerOpenAndFocus,
65
65
  setMergedActivePickerIndex = props.setMergedActivePickerIndex,
66
- setHoverRangedValue = props.setHoverRangedValue;
66
+ setHoverRangedValue = props.setHoverRangedValue,
67
+ status = props.status;
67
68
  var preventBlurRef = useRef(false);
68
69
  var _useState = useState(false),
69
70
  _useState2 = _slicedToArray(_useState, 2),
@@ -187,7 +188,7 @@ function InputDate(props, ref) {
187
188
  };
188
189
  return /*#__PURE__*/React.createElement("div", _extends({
189
190
  ref: ref,
190
- className: classnames(prefixCls, "".concat(prefixCls, "-range"), className, borderClass, (_classnames2 = {}, _defineProperty(_classnames2, _concatInstanceProperty(_context = "".concat(prefixCls, "-")).call(_context, size), size), _defineProperty(_classnames2, "".concat(prefixCls, "-disabled"), mergedDisabled[0] && mergedDisabled[1]), _defineProperty(_classnames2, "".concat(prefixCls, "-focused"), mergedActivePickerIndex === 0 ? startFocused : endFocused), _classnames2)),
191
+ className: classnames(prefixCls, "".concat(prefixCls, "-range"), className, borderClass, (_classnames2 = {}, _defineProperty(_classnames2, _concatInstanceProperty(_context = "".concat(prefixCls, "-")).call(_context, size), size), _defineProperty(_classnames2, "".concat(prefixCls, "-disabled"), mergedDisabled[0] && mergedDisabled[1]), _defineProperty(_classnames2, "".concat(prefixCls, "-focused"), mergedActivePickerIndex === 0 ? startFocused : endFocused), _defineProperty(_classnames2, "".concat(prefixCls, "-error"), status === 'error'), _classnames2)),
191
192
  style: style,
192
193
  onMouseDown: onInternalonMouseDown,
193
194
  onMouseUp: onMouseUp,
@@ -15,7 +15,7 @@ import InputDate from './range/input-range';
15
15
  import { generateUnits, getClosingViewDate, getDataOrAriaProps, getDefaultFormat, getValue, updateValues } from './utils';
16
16
  import useValueTexts from './hooks/use-value-texts';
17
17
  import useHoverValue from './hooks/use-hover-value';
18
- import { formatDate, isAfter, newDate, parseDate, isEqual, isSameQuarter, isSameDay, isValid, getHours, getMinutes, getSeconds } from './utils/date-fns';
18
+ import { formatDate, isAfter, newDate, parseDate, isEqual, isSameQuarter, isSameDay, isValid, getHours, getMinutes, getSeconds, isDate } from './utils/date-fns';
19
19
  import useTextValueMapping from './hooks/use-text-value-mapping';
20
20
  import useRangeViewDates from './hooks/use-range-view-dates';
21
21
  import useRangeDisabled from './hooks/use-range-disabled';
@@ -109,7 +109,8 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
109
109
  onFocus = datePickerProps.onFocus,
110
110
  onBlur = datePickerProps.onBlur,
111
111
  _onOk = datePickerProps.onOk,
112
- getPopupContainer = datePickerProps.getPopupContainer;
112
+ getPopupContainer = datePickerProps.getPopupContainer,
113
+ status = datePickerProps.status;
113
114
  var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';
114
115
  var datePickerLang = _extends({}, globalLocale.getCompLangMsg({
115
116
  componentName: 'DatePicker'
@@ -414,7 +415,7 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
414
415
  var onSelect = function onSelect(date, type) {
415
416
  var values = updateValues(selectedValue, date, mergedActivePickerIndex);
416
417
  if (type === 'inner') {
417
- if (values && values[mergedActivePickerIndex]) {
418
+ if (values && values[mergedActivePickerIndex] && isDate(values[mergedActivePickerIndex])) {
418
419
  setViewDate(values[mergedActivePickerIndex], mergedActivePickerIndex);
419
420
  }
420
421
  } else {
@@ -636,7 +637,8 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
636
637
  triggerOpenAndFocus: triggerOpenAndFocus,
637
638
  triggerChange: triggerChange,
638
639
  onFocus: onFocus,
639
- onBlur: onBlur
640
+ onBlur: onBlur,
641
+ status: status
640
642
  };
641
643
  var renderConfig = function renderConfig() {
642
644
  if (ranges) {
@@ -47,7 +47,8 @@ function InputDate(props, ref) {
47
47
  setSelectedValue = props.setSelectedValue,
48
48
  triggerTextChange = props.triggerTextChange,
49
49
  triggerOpen = props.triggerOpen,
50
- triggerChange = props.triggerChange;
50
+ triggerChange = props.triggerChange,
51
+ status = props.status;
51
52
  var preventBlurRef = useRef(false);
52
53
  var _useState = useState(false),
53
54
  _useState2 = _slicedToArray(_useState, 2),
@@ -143,7 +144,7 @@ function InputDate(props, ref) {
143
144
  var borderClass = classnames((_classnames = {}, _defineProperty(_classnames, "".concat(prefixCls, "-underline"), borderType === 'underline'), _defineProperty(_classnames, "".concat(prefixCls, "-borderless"), borderType === 'none'), _classnames));
144
145
  return /*#__PURE__*/React.createElement("div", _extends({
145
146
  ref: ref,
146
- className: classnames(prefixCls, className, borderClass, (_classnames2 = {}, _defineProperty(_classnames2, "".concat(prefixCls, "-disabled"), disabled), _defineProperty(_classnames2, "".concat(prefixCls, "-focused"), focused), _defineProperty(_classnames2, _concatInstanceProperty(_context = "".concat(prefixCls, "-")).call(_context, size), size), _classnames2)),
147
+ className: classnames(prefixCls, className, borderClass, (_classnames2 = {}, _defineProperty(_classnames2, "".concat(prefixCls, "-disabled"), disabled), _defineProperty(_classnames2, "".concat(prefixCls, "-focused"), focused), _defineProperty(_classnames2, _concatInstanceProperty(_context = "".concat(prefixCls, "-")).call(_context, size), size), _defineProperty(_classnames2, "".concat(prefixCls, "-error"), status === 'error'), _classnames2)),
147
148
  style: style,
148
149
  onMouseDown: onInternalonMouseDown,
149
150
  onMouseUp: onInternalMouseUp,
@@ -330,6 +330,9 @@
330
330
  .kd-date-picker-focused .kd-date-picker-suffix {
331
331
  color: var(--kd-c-date-picker-clear-color-background-focused, var(--kd-g-color-theme, #5582f3));
332
332
  }
333
+ .kd-date-picker-error {
334
+ border-color: var(--kd-g-color-error, #fb2323);
335
+ }
333
336
  .kd-date-picker-panel {
334
337
  -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
335
338
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
@@ -160,6 +160,10 @@
160
160
  color: @date-clear-background-color-focused;
161
161
  }
162
162
  }
163
+
164
+ &-error {
165
+ border-color: @color-error;
166
+ }
163
167
  }
164
168
 
165
169
  .@{datePicker-prefix-cls-panel} {
@@ -1,6 +1,5 @@
1
1
  import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
2
2
  import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/slice";
3
- import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
4
3
  import isDate from 'date-fns/isDate';
5
4
  import isValidDate from 'date-fns/isValid';
6
5
  import format from 'date-fns/format';
@@ -271,19 +270,14 @@ export function getLowerBoundTime(hour, minute, second, hourStep, minuteStep, se
271
270
  return [lowerBoundHour, lowerBoundMinute, lowerBoundSecond];
272
271
  }
273
272
  export var setYearOrMonthOfDate = function setYearOrMonthOfDate(date1, date2) {
274
- var _context, _context2, _context3, _context4, _context5;
275
273
  var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'year';
276
- var y = new Date(date1).getFullYear();
274
+ var d1 = new Date(date1 || 0);
275
+ var d2 = new Date(date2 || 0);
277
276
  if (type === 'year') {
278
- y = new Date(date2).getFullYear();
277
+ d1.setFullYear(d2.getFullYear());
279
278
  }
280
- var m = new Date(date1 || date2).getMonth() + 1;
281
279
  if (type === 'month') {
282
- m = new Date(date2).getMonth() + 1;
280
+ d1.setMonth(d2.getMonth());
283
281
  }
284
- var d = new Date(date1 || date2).getDate();
285
- var h = new Date(date1 || date2).getHours();
286
- var mi = new Date(date1 || date2).getMinutes();
287
- var s = new Date(date1 || date2).getSeconds();
288
- return new Date(_concatInstanceProperty(_context = _concatInstanceProperty(_context2 = _concatInstanceProperty(_context3 = _concatInstanceProperty(_context4 = _concatInstanceProperty(_context5 = "".concat(y, "-")).call(_context5, m, "-")).call(_context4, d, " ")).call(_context3, h, ":")).call(_context2, mi, ":")).call(_context, s));
282
+ return d1;
289
283
  };
@@ -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;