@kdcloudjs/kdesign 1.6.38 → 1.6.39
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.
- package/CHANGELOG.md +20 -0
- package/dist/kdesign.css +1 -1
- package/dist/kdesign.css.map +1 -1
- package/dist/kdesign.js +69 -66
- package/dist/kdesign.js.map +1 -1
- package/dist/kdesign.min.css +1 -1
- package/dist/kdesign.min.js +6 -6
- package/dist/kdesign.min.js.map +1 -1
- package/es/date-picker/date-panel.js +20 -16
- package/es/date-picker/range-picker.d.ts +10 -10
- package/es/date-picker/range-picker.js +48 -46
- package/lib/date-picker/date-panel.js +20 -16
- package/lib/date-picker/range-picker.d.ts +10 -10
- package/lib/date-picker/range-picker.js +46 -44
- package/package.json +2 -2
|
@@ -22,7 +22,10 @@ function Panel(props) {
|
|
|
22
22
|
locale = context.locale,
|
|
23
23
|
innerPicker = context.innerPicker,
|
|
24
24
|
setInnerPicker = context.setInnerPicker;
|
|
25
|
-
var
|
|
25
|
+
var isInnerPicker = innerPicker !== undefined;
|
|
26
|
+
var isPositionLeft = panelPosition === 'left';
|
|
27
|
+
var isPositionRight = panelPosition === 'right';
|
|
28
|
+
var isPositionUnset = typeof panelPosition === 'undefined';
|
|
26
29
|
var _props$picker = props.picker,
|
|
27
30
|
picker = _props$picker === void 0 ? 'date' : _props$picker,
|
|
28
31
|
format = props.format,
|
|
@@ -51,7 +54,7 @@ function Panel(props) {
|
|
|
51
54
|
return /*#__PURE__*/React.createElement(Quarter, _extends({}, props));
|
|
52
55
|
};
|
|
53
56
|
var renderDatePanel = function renderDatePanel() {
|
|
54
|
-
if (
|
|
57
|
+
if (isInnerPicker) {
|
|
55
58
|
if (innerPicker === 'year') {
|
|
56
59
|
return renderYearPanel();
|
|
57
60
|
} else {
|
|
@@ -192,8 +195,8 @@ function Panel(props) {
|
|
|
192
195
|
panel = renderYearPanel();
|
|
193
196
|
headerObj = renderYearHeader();
|
|
194
197
|
headerProps = {
|
|
195
|
-
onSuperPrev:
|
|
196
|
-
onSuperNext:
|
|
198
|
+
onSuperPrev: isPositionRight ? undefined : onSuperPrev,
|
|
199
|
+
onSuperNext: isPositionLeft ? undefined : onSuperNext
|
|
197
200
|
};
|
|
198
201
|
break;
|
|
199
202
|
}
|
|
@@ -202,8 +205,8 @@ function Panel(props) {
|
|
|
202
205
|
panel = renderMonthPanel();
|
|
203
206
|
headerObj = renderMonthHeader();
|
|
204
207
|
headerProps = {
|
|
205
|
-
onSuperPrev:
|
|
206
|
-
onSuperNext:
|
|
208
|
+
onSuperPrev: isPositionRight ? undefined : onSuperPrev,
|
|
209
|
+
onSuperNext: isPositionLeft ? undefined : onSuperNext
|
|
207
210
|
};
|
|
208
211
|
break;
|
|
209
212
|
}
|
|
@@ -212,19 +215,20 @@ function Panel(props) {
|
|
|
212
215
|
panel = renderQuarterPanel();
|
|
213
216
|
headerObj = renderMonthHeader();
|
|
214
217
|
headerProps = {
|
|
215
|
-
onSuperPrev:
|
|
216
|
-
onSuperNext:
|
|
218
|
+
onSuperPrev: isPositionRight ? undefined : onSuperPrev,
|
|
219
|
+
onSuperNext: isPositionLeft ? undefined : onSuperNext
|
|
217
220
|
};
|
|
218
221
|
break;
|
|
219
222
|
}
|
|
223
|
+
// 时间面板,4个箭头的显隐,在时间范围时需要判断是否在快捷选择面板下
|
|
220
224
|
case 'date':
|
|
221
225
|
{
|
|
222
226
|
headerObj = renderDateHeader();
|
|
223
227
|
headerProps = {
|
|
224
|
-
onPrev:
|
|
225
|
-
onNext:
|
|
226
|
-
onSuperPrev:
|
|
227
|
-
onSuperNext:
|
|
228
|
+
onPrev: isPositionLeft && !isInnerPicker || innerPicker === 'month' || isPositionUnset ? onPrev : undefined,
|
|
229
|
+
onNext: isPositionRight && !isInnerPicker || innerPicker === 'month' || isPositionUnset ? onNext : undefined,
|
|
230
|
+
onSuperPrev: isPositionLeft && !isInnerPicker || innerPicker === 'year' || isPositionUnset ? onSuperPrev : undefined,
|
|
231
|
+
onSuperNext: isPositionRight && !isInnerPicker || innerPicker === 'year' || isPositionUnset ? onSuperNext : undefined
|
|
228
232
|
};
|
|
229
233
|
panel = renderDatePanel();
|
|
230
234
|
break;
|
|
@@ -234,10 +238,10 @@ function Panel(props) {
|
|
|
234
238
|
panel = renderDatePanel();
|
|
235
239
|
headerObj = renderDateHeader();
|
|
236
240
|
headerProps = {
|
|
237
|
-
onPrev:
|
|
238
|
-
onNext:
|
|
239
|
-
onSuperPrev:
|
|
240
|
-
onSuperNext:
|
|
241
|
+
onPrev: isPositionRight ? undefined : onPrev,
|
|
242
|
+
onNext: isPositionLeft ? undefined : onNext,
|
|
243
|
+
onSuperPrev: isPositionRight ? undefined : onSuperPrev,
|
|
244
|
+
onSuperNext: isPositionLeft ? undefined : onSuperNext
|
|
241
245
|
};
|
|
242
246
|
break;
|
|
243
247
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { ReactNode, Ref, FocusEventHandler, CSSProperties } from 'react';
|
|
2
2
|
import { DateType, RangeValue, EventValue, DisabledTimes, PanelMode, SharedTimeProps } from './interface';
|
|
3
3
|
import { PickerBaseProps, PickerDateProps, PickerTimeProps } from './date-picker';
|
|
4
4
|
export declare type RangeType = 'start' | 'end';
|
|
5
5
|
export interface RangeInfo {
|
|
6
6
|
range: RangeType;
|
|
7
7
|
}
|
|
8
|
-
export declare type RangeDateRender = (currentDate: DateType, today: DateType, info: RangeInfo) =>
|
|
8
|
+
export declare type RangeDateRender = (currentDate: DateType, today: DateType, info: RangeInfo) => ReactNode;
|
|
9
9
|
export interface RangePickerSharedProps {
|
|
10
10
|
id?: string;
|
|
11
11
|
value?: RangeValue;
|
|
@@ -15,23 +15,23 @@ export interface RangePickerSharedProps {
|
|
|
15
15
|
disabled?: boolean | [boolean, boolean];
|
|
16
16
|
disabledTimePanel?: (date: EventValue, type: RangeType) => DisabledTimes;
|
|
17
17
|
ranges?: Record<string, DateType[] | (() => DateType[])>;
|
|
18
|
-
separator?:
|
|
18
|
+
separator?: ReactNode;
|
|
19
19
|
allowEmpty?: [boolean, boolean];
|
|
20
|
-
suffixIcon?:
|
|
21
|
-
clearIcon?:
|
|
20
|
+
suffixIcon?: ReactNode;
|
|
21
|
+
clearIcon?: ReactNode;
|
|
22
22
|
mode?: [PanelMode, PanelMode];
|
|
23
23
|
onChange?: (values: RangeValue, formatString: [string | null, string | null]) => void;
|
|
24
24
|
onCalendarChange?: (values: RangeValue, formatString: [string | null, string | null], info: RangeInfo) => void;
|
|
25
25
|
onPanelChange?: (values: RangeValue, modes: [PanelMode, PanelMode]) => void;
|
|
26
|
-
onFocus?:
|
|
27
|
-
onBlur?:
|
|
26
|
+
onFocus?: FocusEventHandler<HTMLInputElement>;
|
|
27
|
+
onBlur?: FocusEventHandler<HTMLInputElement>;
|
|
28
28
|
onOk?: (dates: RangeValue) => void;
|
|
29
29
|
activePickerIndex?: 0 | 1;
|
|
30
30
|
dateRender?: RangeDateRender;
|
|
31
|
-
panelRender?: (originPanel:
|
|
31
|
+
panelRender?: (originPanel: ReactNode) => ReactNode;
|
|
32
32
|
getPopupContainer?: (node: HTMLElement) => HTMLElement;
|
|
33
|
-
popupRef?:
|
|
34
|
-
popupStyle?:
|
|
33
|
+
popupRef?: Ref<any>;
|
|
34
|
+
popupStyle?: CSSProperties;
|
|
35
35
|
dropdownClassName?: string;
|
|
36
36
|
}
|
|
37
37
|
declare type OmitPickerProps<Props> = Omit<Props, 'value' | 'defaultValue' | 'defaultPickerValue' | 'placeholder' | 'disabled' | 'disabledTimePanel' | 'showToday' | 'showTime' | 'mode' | 'onChange' | 'onSelect' | 'onPanelChange' | 'pickerValue' | 'onPickerValueChange' | 'onOk' | 'dateRender'>;
|
|
@@ -4,10 +4,10 @@ import _extends from "@babel/runtime-corejs3/helpers/extends";
|
|
|
4
4
|
import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
|
|
5
5
|
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
|
6
6
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
7
|
-
import React, { useContext, useEffect, useState } from 'react';
|
|
7
|
+
import React, { useContext, useEffect, useState, useRef, useMemo, forwardRef } from 'react';
|
|
8
8
|
import isSameWeek from 'date-fns/isSameWeek';
|
|
9
9
|
import ConfigContext from '../config-provider/ConfigContext';
|
|
10
|
-
import { useMergedState
|
|
10
|
+
import { useMergedState } from '../_utils/hooks';
|
|
11
11
|
import { getCompProps } from '../_utils';
|
|
12
12
|
import Context from './context';
|
|
13
13
|
import Panel from './date-panel';
|
|
@@ -115,16 +115,18 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
|
|
|
115
115
|
componentName: 'DatePicker'
|
|
116
116
|
}), locale || {});
|
|
117
117
|
// ref
|
|
118
|
-
var panelDivRef =
|
|
119
|
-
var
|
|
120
|
-
var
|
|
121
|
-
var
|
|
122
|
-
var
|
|
123
|
-
var
|
|
124
|
-
var
|
|
125
|
-
var
|
|
126
|
-
var
|
|
127
|
-
var
|
|
118
|
+
var panelDivRef = useRef(null);
|
|
119
|
+
var defaultRef = useRef(null);
|
|
120
|
+
var inputDivRef = ref || defaultRef;
|
|
121
|
+
var startInputDivRef = useRef(null);
|
|
122
|
+
var endInputDivRef = useRef(null);
|
|
123
|
+
var separatorRef = useRef(null);
|
|
124
|
+
var startInputRef = useRef(null);
|
|
125
|
+
var endInputRef = useRef(null);
|
|
126
|
+
var defaultPopupRef = useRef(null);
|
|
127
|
+
var popperRef = popupRef || defaultPopupRef;
|
|
128
|
+
var openRecordsRef = useRef({});
|
|
129
|
+
var mergedDisabled = useMemo(function () {
|
|
128
130
|
if (Array.isArray(disabled)) {
|
|
129
131
|
return disabled;
|
|
130
132
|
}
|
|
@@ -268,10 +270,10 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
|
|
|
268
270
|
endText = _useTextValueMapping4[0],
|
|
269
271
|
triggerEndTextChange = _useTextValueMapping4[1],
|
|
270
272
|
resetEndText = _useTextValueMapping4[2];
|
|
271
|
-
var
|
|
272
|
-
|
|
273
|
-
hoverRangedValue =
|
|
274
|
-
setHoverRangedValue =
|
|
273
|
+
var _useState = useState([null, null]),
|
|
274
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
275
|
+
hoverRangedValue = _useState2[0],
|
|
276
|
+
setHoverRangedValue = _useState2[1];
|
|
275
277
|
var _useHoverValue = useHoverValue(startText, {
|
|
276
278
|
format: _format
|
|
277
279
|
}),
|
|
@@ -309,20 +311,13 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
|
|
|
309
311
|
_useMergedState10 = _slicedToArray(_useMergedState9, 2),
|
|
310
312
|
mergedModes = _useMergedState10[0],
|
|
311
313
|
setInnerModes = _useMergedState10[1];
|
|
312
|
-
var
|
|
313
|
-
|
|
314
|
-
innerPicker =
|
|
315
|
-
setInnerPicker =
|
|
314
|
+
var _useState3 = useState(undefined),
|
|
315
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
316
|
+
innerPicker = _useState4[0],
|
|
317
|
+
setInnerPicker = _useState4[1];
|
|
316
318
|
useEffect(function () {
|
|
317
319
|
setInnerModes([picker, picker]);
|
|
318
320
|
}, [picker]);
|
|
319
|
-
// const triggerModesChange = (modes: [PanelMode, PanelMode], values: RangeValue) => {
|
|
320
|
-
// setInnerModes(modes)
|
|
321
|
-
// if (onPanelChange) {
|
|
322
|
-
// onPanelChange(values, modes)
|
|
323
|
-
// }
|
|
324
|
-
// }
|
|
325
|
-
// ========================= Disable Date ==========================
|
|
326
321
|
var _useRangeDisabled = useRangeDisabled({
|
|
327
322
|
picker: picker,
|
|
328
323
|
selectedValue: selectedValue,
|
|
@@ -332,11 +327,7 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
|
|
|
332
327
|
_useRangeDisabled2 = _slicedToArray(_useRangeDisabled, 2),
|
|
333
328
|
disabledStartDate = _useRangeDisabled2[0],
|
|
334
329
|
disabledEndDate = _useRangeDisabled2[1];
|
|
335
|
-
|
|
336
|
-
// resetEndText()
|
|
337
|
-
// resetStartText()
|
|
338
|
-
// }
|
|
339
|
-
var triggerRef = React.useRef();
|
|
330
|
+
var triggerRef = useRef();
|
|
340
331
|
var triggerOpen = function triggerOpen(newOpen, index) {
|
|
341
332
|
if (newOpen) {
|
|
342
333
|
clearTimeout(triggerRef.current);
|
|
@@ -415,22 +406,28 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
|
|
|
415
406
|
triggerOpen(false, sourceIndex);
|
|
416
407
|
}
|
|
417
408
|
};
|
|
418
|
-
useOnClickOutside([popperRef, inputDivRef],
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
})
|
|
409
|
+
// useOnClickOutside([popperRef, inputDivRef], () => {
|
|
410
|
+
// setViewDate(null, 0)
|
|
411
|
+
// setViewDate(null, 1)
|
|
412
|
+
// setHoverRangedValue([null, null])
|
|
413
|
+
// })
|
|
423
414
|
var onSelect = function onSelect(date, type) {
|
|
424
415
|
var values = updateValues(selectedValue, date, mergedActivePickerIndex);
|
|
425
|
-
if (type === '
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
onStartLeave();
|
|
429
|
-
} else {
|
|
430
|
-
onEndLeave();
|
|
416
|
+
if (type === 'inner') {
|
|
417
|
+
if (values && values[mergedActivePickerIndex]) {
|
|
418
|
+
setViewDate(values[mergedActivePickerIndex], mergedActivePickerIndex);
|
|
431
419
|
}
|
|
432
420
|
} else {
|
|
433
|
-
|
|
421
|
+
if (type === 'submit' || type !== 'key' && !needConfirmButton) {
|
|
422
|
+
triggerChange(values, mergedActivePickerIndex);
|
|
423
|
+
if (mergedActivePickerIndex === 0) {
|
|
424
|
+
onStartLeave();
|
|
425
|
+
} else {
|
|
426
|
+
onEndLeave();
|
|
427
|
+
}
|
|
428
|
+
} else {
|
|
429
|
+
setSelectedValue(values);
|
|
430
|
+
}
|
|
434
431
|
}
|
|
435
432
|
};
|
|
436
433
|
var onDateMouseEnter = function onDateMouseEnter(date) {
|
|
@@ -460,6 +457,11 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
|
|
|
460
457
|
if (!endValueTexts.length || endValueTexts[0] === '') {
|
|
461
458
|
triggerEndTextChange('');
|
|
462
459
|
}
|
|
460
|
+
setViewDate(null, 0);
|
|
461
|
+
setViewDate(null, 1);
|
|
462
|
+
setHoverRangedValue([null, null]);
|
|
463
|
+
} else {
|
|
464
|
+
setInnerPicker(undefined);
|
|
463
465
|
}
|
|
464
466
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
465
467
|
}, [mergedOpen, startValueTexts, endValueTexts]);
|
|
@@ -539,7 +541,7 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
|
|
|
539
541
|
}, renderPanel());
|
|
540
542
|
panels = /*#__PURE__*/React.createElement("div", {
|
|
541
543
|
className: classNames("".concat(datePickerPrefixCls, "-container-date"))
|
|
542
|
-
}, leftPanel, rightPanel);
|
|
544
|
+
}, leftPanel, innerPicker === undefined ? rightPanel : null);
|
|
543
545
|
} else {
|
|
544
546
|
panels = /*#__PURE__*/React.createElement(Context.Provider, {
|
|
545
547
|
value: {
|
|
@@ -694,6 +696,6 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
|
|
|
694
696
|
getPopupContainer: getPopupContainer
|
|
695
697
|
});
|
|
696
698
|
};
|
|
697
|
-
var RangePicker = /*#__PURE__*/
|
|
699
|
+
var RangePicker = /*#__PURE__*/forwardRef(InternalRangePicker);
|
|
698
700
|
RangePicker.displayName = 'RangePicker';
|
|
699
701
|
export default RangePicker;
|
|
@@ -34,7 +34,10 @@ function Panel(props) {
|
|
|
34
34
|
locale = context.locale,
|
|
35
35
|
innerPicker = context.innerPicker,
|
|
36
36
|
setInnerPicker = context.setInnerPicker;
|
|
37
|
-
var
|
|
37
|
+
var isInnerPicker = innerPicker !== undefined;
|
|
38
|
+
var isPositionLeft = panelPosition === 'left';
|
|
39
|
+
var isPositionRight = panelPosition === 'right';
|
|
40
|
+
var isPositionUnset = typeof panelPosition === 'undefined';
|
|
38
41
|
var _props$picker = props.picker,
|
|
39
42
|
picker = _props$picker === void 0 ? 'date' : _props$picker,
|
|
40
43
|
format = props.format,
|
|
@@ -63,7 +66,7 @@ function Panel(props) {
|
|
|
63
66
|
return /*#__PURE__*/_react.default.createElement(_quarter.default, (0, _extends2.default)({}, props));
|
|
64
67
|
};
|
|
65
68
|
var renderDatePanel = function renderDatePanel() {
|
|
66
|
-
if (
|
|
69
|
+
if (isInnerPicker) {
|
|
67
70
|
if (innerPicker === 'year') {
|
|
68
71
|
return renderYearPanel();
|
|
69
72
|
} else {
|
|
@@ -204,8 +207,8 @@ function Panel(props) {
|
|
|
204
207
|
panel = renderYearPanel();
|
|
205
208
|
headerObj = renderYearHeader();
|
|
206
209
|
headerProps = {
|
|
207
|
-
onSuperPrev:
|
|
208
|
-
onSuperNext:
|
|
210
|
+
onSuperPrev: isPositionRight ? undefined : onSuperPrev,
|
|
211
|
+
onSuperNext: isPositionLeft ? undefined : onSuperNext
|
|
209
212
|
};
|
|
210
213
|
break;
|
|
211
214
|
}
|
|
@@ -214,8 +217,8 @@ function Panel(props) {
|
|
|
214
217
|
panel = renderMonthPanel();
|
|
215
218
|
headerObj = renderMonthHeader();
|
|
216
219
|
headerProps = {
|
|
217
|
-
onSuperPrev:
|
|
218
|
-
onSuperNext:
|
|
220
|
+
onSuperPrev: isPositionRight ? undefined : onSuperPrev,
|
|
221
|
+
onSuperNext: isPositionLeft ? undefined : onSuperNext
|
|
219
222
|
};
|
|
220
223
|
break;
|
|
221
224
|
}
|
|
@@ -224,19 +227,20 @@ function Panel(props) {
|
|
|
224
227
|
panel = renderQuarterPanel();
|
|
225
228
|
headerObj = renderMonthHeader();
|
|
226
229
|
headerProps = {
|
|
227
|
-
onSuperPrev:
|
|
228
|
-
onSuperNext:
|
|
230
|
+
onSuperPrev: isPositionRight ? undefined : onSuperPrev,
|
|
231
|
+
onSuperNext: isPositionLeft ? undefined : onSuperNext
|
|
229
232
|
};
|
|
230
233
|
break;
|
|
231
234
|
}
|
|
235
|
+
// 时间面板,4个箭头的显隐,在时间范围时需要判断是否在快捷选择面板下
|
|
232
236
|
case 'date':
|
|
233
237
|
{
|
|
234
238
|
headerObj = renderDateHeader();
|
|
235
239
|
headerProps = {
|
|
236
|
-
onPrev:
|
|
237
|
-
onNext:
|
|
238
|
-
onSuperPrev:
|
|
239
|
-
onSuperNext:
|
|
240
|
+
onPrev: isPositionLeft && !isInnerPicker || innerPicker === 'month' || isPositionUnset ? onPrev : undefined,
|
|
241
|
+
onNext: isPositionRight && !isInnerPicker || innerPicker === 'month' || isPositionUnset ? onNext : undefined,
|
|
242
|
+
onSuperPrev: isPositionLeft && !isInnerPicker || innerPicker === 'year' || isPositionUnset ? onSuperPrev : undefined,
|
|
243
|
+
onSuperNext: isPositionRight && !isInnerPicker || innerPicker === 'year' || isPositionUnset ? onSuperNext : undefined
|
|
240
244
|
};
|
|
241
245
|
panel = renderDatePanel();
|
|
242
246
|
break;
|
|
@@ -246,10 +250,10 @@ function Panel(props) {
|
|
|
246
250
|
panel = renderDatePanel();
|
|
247
251
|
headerObj = renderDateHeader();
|
|
248
252
|
headerProps = {
|
|
249
|
-
onPrev:
|
|
250
|
-
onNext:
|
|
251
|
-
onSuperPrev:
|
|
252
|
-
onSuperNext:
|
|
253
|
+
onPrev: isPositionRight ? undefined : onPrev,
|
|
254
|
+
onNext: isPositionLeft ? undefined : onNext,
|
|
255
|
+
onSuperPrev: isPositionRight ? undefined : onSuperPrev,
|
|
256
|
+
onSuperNext: isPositionLeft ? undefined : onSuperNext
|
|
253
257
|
};
|
|
254
258
|
break;
|
|
255
259
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { ReactNode, Ref, FocusEventHandler, CSSProperties } from 'react';
|
|
2
2
|
import { DateType, RangeValue, EventValue, DisabledTimes, PanelMode, SharedTimeProps } from './interface';
|
|
3
3
|
import { PickerBaseProps, PickerDateProps, PickerTimeProps } from './date-picker';
|
|
4
4
|
export declare type RangeType = 'start' | 'end';
|
|
5
5
|
export interface RangeInfo {
|
|
6
6
|
range: RangeType;
|
|
7
7
|
}
|
|
8
|
-
export declare type RangeDateRender = (currentDate: DateType, today: DateType, info: RangeInfo) =>
|
|
8
|
+
export declare type RangeDateRender = (currentDate: DateType, today: DateType, info: RangeInfo) => ReactNode;
|
|
9
9
|
export interface RangePickerSharedProps {
|
|
10
10
|
id?: string;
|
|
11
11
|
value?: RangeValue;
|
|
@@ -15,23 +15,23 @@ export interface RangePickerSharedProps {
|
|
|
15
15
|
disabled?: boolean | [boolean, boolean];
|
|
16
16
|
disabledTimePanel?: (date: EventValue, type: RangeType) => DisabledTimes;
|
|
17
17
|
ranges?: Record<string, DateType[] | (() => DateType[])>;
|
|
18
|
-
separator?:
|
|
18
|
+
separator?: ReactNode;
|
|
19
19
|
allowEmpty?: [boolean, boolean];
|
|
20
|
-
suffixIcon?:
|
|
21
|
-
clearIcon?:
|
|
20
|
+
suffixIcon?: ReactNode;
|
|
21
|
+
clearIcon?: ReactNode;
|
|
22
22
|
mode?: [PanelMode, PanelMode];
|
|
23
23
|
onChange?: (values: RangeValue, formatString: [string | null, string | null]) => void;
|
|
24
24
|
onCalendarChange?: (values: RangeValue, formatString: [string | null, string | null], info: RangeInfo) => void;
|
|
25
25
|
onPanelChange?: (values: RangeValue, modes: [PanelMode, PanelMode]) => void;
|
|
26
|
-
onFocus?:
|
|
27
|
-
onBlur?:
|
|
26
|
+
onFocus?: FocusEventHandler<HTMLInputElement>;
|
|
27
|
+
onBlur?: FocusEventHandler<HTMLInputElement>;
|
|
28
28
|
onOk?: (dates: RangeValue) => void;
|
|
29
29
|
activePickerIndex?: 0 | 1;
|
|
30
30
|
dateRender?: RangeDateRender;
|
|
31
|
-
panelRender?: (originPanel:
|
|
31
|
+
panelRender?: (originPanel: ReactNode) => ReactNode;
|
|
32
32
|
getPopupContainer?: (node: HTMLElement) => HTMLElement;
|
|
33
|
-
popupRef?:
|
|
34
|
-
popupStyle?:
|
|
33
|
+
popupRef?: Ref<any>;
|
|
34
|
+
popupStyle?: CSSProperties;
|
|
35
35
|
dropdownClassName?: string;
|
|
36
36
|
}
|
|
37
37
|
declare type OmitPickerProps<Props> = Omit<Props, 'value' | 'defaultValue' | 'defaultPickerValue' | 'placeholder' | 'disabled' | 'disabledTimePanel' | 'showToday' | 'showTime' | 'mode' | 'onChange' | 'onSelect' | 'onPanelChange' | 'pickerValue' | 'onPickerValueChange' | 'onOk' | 'dateRender'>;
|
|
@@ -127,16 +127,18 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
|
|
|
127
127
|
componentName: 'DatePicker'
|
|
128
128
|
}), locale || {});
|
|
129
129
|
// ref
|
|
130
|
-
var panelDivRef = _react.
|
|
131
|
-
var
|
|
132
|
-
var
|
|
133
|
-
var
|
|
134
|
-
var
|
|
135
|
-
var
|
|
136
|
-
var
|
|
137
|
-
var
|
|
138
|
-
var
|
|
139
|
-
var
|
|
130
|
+
var panelDivRef = (0, _react.useRef)(null);
|
|
131
|
+
var defaultRef = (0, _react.useRef)(null);
|
|
132
|
+
var inputDivRef = ref || defaultRef;
|
|
133
|
+
var startInputDivRef = (0, _react.useRef)(null);
|
|
134
|
+
var endInputDivRef = (0, _react.useRef)(null);
|
|
135
|
+
var separatorRef = (0, _react.useRef)(null);
|
|
136
|
+
var startInputRef = (0, _react.useRef)(null);
|
|
137
|
+
var endInputRef = (0, _react.useRef)(null);
|
|
138
|
+
var defaultPopupRef = (0, _react.useRef)(null);
|
|
139
|
+
var popperRef = popupRef || defaultPopupRef;
|
|
140
|
+
var openRecordsRef = (0, _react.useRef)({});
|
|
141
|
+
var mergedDisabled = (0, _react.useMemo)(function () {
|
|
140
142
|
if (Array.isArray(disabled)) {
|
|
141
143
|
return disabled;
|
|
142
144
|
}
|
|
@@ -280,10 +282,10 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
|
|
|
280
282
|
endText = _useTextValueMapping4[0],
|
|
281
283
|
triggerEndTextChange = _useTextValueMapping4[1],
|
|
282
284
|
resetEndText = _useTextValueMapping4[2];
|
|
283
|
-
var
|
|
284
|
-
|
|
285
|
-
hoverRangedValue =
|
|
286
|
-
setHoverRangedValue =
|
|
285
|
+
var _useState = (0, _react.useState)([null, null]),
|
|
286
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
287
|
+
hoverRangedValue = _useState2[0],
|
|
288
|
+
setHoverRangedValue = _useState2[1];
|
|
287
289
|
var _useHoverValue = (0, _useHoverValue5.default)(startText, {
|
|
288
290
|
format: _format
|
|
289
291
|
}),
|
|
@@ -321,20 +323,13 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
|
|
|
321
323
|
_useMergedState10 = (0, _slicedToArray2.default)(_useMergedState9, 2),
|
|
322
324
|
mergedModes = _useMergedState10[0],
|
|
323
325
|
setInnerModes = _useMergedState10[1];
|
|
324
|
-
var
|
|
325
|
-
|
|
326
|
-
innerPicker =
|
|
327
|
-
setInnerPicker =
|
|
326
|
+
var _useState3 = (0, _react.useState)(undefined),
|
|
327
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
328
|
+
innerPicker = _useState4[0],
|
|
329
|
+
setInnerPicker = _useState4[1];
|
|
328
330
|
(0, _react.useEffect)(function () {
|
|
329
331
|
setInnerModes([picker, picker]);
|
|
330
332
|
}, [picker]);
|
|
331
|
-
// const triggerModesChange = (modes: [PanelMode, PanelMode], values: RangeValue) => {
|
|
332
|
-
// setInnerModes(modes)
|
|
333
|
-
// if (onPanelChange) {
|
|
334
|
-
// onPanelChange(values, modes)
|
|
335
|
-
// }
|
|
336
|
-
// }
|
|
337
|
-
// ========================= Disable Date ==========================
|
|
338
333
|
var _useRangeDisabled = (0, _useRangeDisabled3.default)({
|
|
339
334
|
picker: picker,
|
|
340
335
|
selectedValue: selectedValue,
|
|
@@ -344,11 +339,7 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
|
|
|
344
339
|
_useRangeDisabled2 = (0, _slicedToArray2.default)(_useRangeDisabled, 2),
|
|
345
340
|
disabledStartDate = _useRangeDisabled2[0],
|
|
346
341
|
disabledEndDate = _useRangeDisabled2[1];
|
|
347
|
-
|
|
348
|
-
// resetEndText()
|
|
349
|
-
// resetStartText()
|
|
350
|
-
// }
|
|
351
|
-
var triggerRef = _react.default.useRef();
|
|
342
|
+
var triggerRef = (0, _react.useRef)();
|
|
352
343
|
var triggerOpen = function triggerOpen(newOpen, index) {
|
|
353
344
|
if (newOpen) {
|
|
354
345
|
clearTimeout(triggerRef.current);
|
|
@@ -427,22 +418,28 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
|
|
|
427
418
|
triggerOpen(false, sourceIndex);
|
|
428
419
|
}
|
|
429
420
|
};
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
})
|
|
421
|
+
// useOnClickOutside([popperRef, inputDivRef], () => {
|
|
422
|
+
// setViewDate(null, 0)
|
|
423
|
+
// setViewDate(null, 1)
|
|
424
|
+
// setHoverRangedValue([null, null])
|
|
425
|
+
// })
|
|
435
426
|
var onSelect = function onSelect(date, type) {
|
|
436
427
|
var values = (0, _utils2.updateValues)(selectedValue, date, mergedActivePickerIndex);
|
|
437
|
-
if (type === '
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
onStartLeave();
|
|
441
|
-
} else {
|
|
442
|
-
onEndLeave();
|
|
428
|
+
if (type === 'inner') {
|
|
429
|
+
if (values && values[mergedActivePickerIndex]) {
|
|
430
|
+
setViewDate(values[mergedActivePickerIndex], mergedActivePickerIndex);
|
|
443
431
|
}
|
|
444
432
|
} else {
|
|
445
|
-
|
|
433
|
+
if (type === 'submit' || type !== 'key' && !needConfirmButton) {
|
|
434
|
+
triggerChange(values, mergedActivePickerIndex);
|
|
435
|
+
if (mergedActivePickerIndex === 0) {
|
|
436
|
+
onStartLeave();
|
|
437
|
+
} else {
|
|
438
|
+
onEndLeave();
|
|
439
|
+
}
|
|
440
|
+
} else {
|
|
441
|
+
setSelectedValue(values);
|
|
442
|
+
}
|
|
446
443
|
}
|
|
447
444
|
};
|
|
448
445
|
var onDateMouseEnter = function onDateMouseEnter(date) {
|
|
@@ -472,6 +469,11 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
|
|
|
472
469
|
if (!endValueTexts.length || endValueTexts[0] === '') {
|
|
473
470
|
triggerEndTextChange('');
|
|
474
471
|
}
|
|
472
|
+
setViewDate(null, 0);
|
|
473
|
+
setViewDate(null, 1);
|
|
474
|
+
setHoverRangedValue([null, null]);
|
|
475
|
+
} else {
|
|
476
|
+
setInnerPicker(undefined);
|
|
475
477
|
}
|
|
476
478
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
477
479
|
}, [mergedOpen, startValueTexts, endValueTexts]);
|
|
@@ -551,7 +553,7 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
|
|
|
551
553
|
}, renderPanel());
|
|
552
554
|
panels = /*#__PURE__*/_react.default.createElement("div", {
|
|
553
555
|
className: (0, _classnames.default)("".concat(datePickerPrefixCls, "-container-date"))
|
|
554
|
-
}, leftPanel, rightPanel);
|
|
556
|
+
}, leftPanel, innerPicker === undefined ? rightPanel : null);
|
|
555
557
|
} else {
|
|
556
558
|
panels = /*#__PURE__*/_react.default.createElement(_context.default.Provider, {
|
|
557
559
|
value: {
|
|
@@ -706,7 +708,7 @@ var InternalRangePicker = function InternalRangePicker(props, ref) {
|
|
|
706
708
|
getPopupContainer: getPopupContainer
|
|
707
709
|
});
|
|
708
710
|
};
|
|
709
|
-
var RangePicker = /*#__PURE__*/_react.
|
|
711
|
+
var RangePicker = /*#__PURE__*/(0, _react.forwardRef)(InternalRangePicker);
|
|
710
712
|
RangePicker.displayName = 'RangePicker';
|
|
711
713
|
var _default = RangePicker;
|
|
712
714
|
exports.default = _default;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kdcloudjs/kdesign",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.39",
|
|
4
4
|
"description": "KDesign 金蝶前端react 组件库",
|
|
5
5
|
"title": "kdesign",
|
|
6
6
|
"keywords": [
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"@babel/runtime": "^7.10.4",
|
|
78
78
|
"@babel/runtime-corejs3": "^7.11.2",
|
|
79
79
|
"@babel/standalone": "^7.14.3",
|
|
80
|
-
"@kdcloudjs/table": "canary",
|
|
80
|
+
"@kdcloudjs/table": "1.1.5-canary.3",
|
|
81
81
|
"@popperjs/core": "^2.5.4",
|
|
82
82
|
"async-validator": "^3.5.1",
|
|
83
83
|
"axios": "^0.21.1",
|