@rc-component/picker 1.3.0 → 1.4.1
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/README.md +3 -1
- package/es/PickerInput/RangePicker.js +15 -11
- package/es/PickerInput/Selector/hooks/useClearIcon.d.ts +1 -1
- package/es/PickerInput/SinglePicker.js +15 -11
- package/es/PickerInput/hooks/useDelayState.js +15 -8
- package/es/PickerInput/hooks/useFilledProps.d.ts +1 -1
- package/es/PickerInput/hooks/useFilledProps.js +3 -0
- package/es/PickerInput/hooks/useRangePickerValue.js +11 -15
- package/es/PickerInput/hooks/useRangeValue.d.ts +1 -1
- package/es/PickerInput/hooks/useRangeValue.js +5 -7
- package/es/PickerPanel/index.d.ts +1 -9
- package/es/PickerPanel/index.js +13 -22
- package/es/interface.d.ts +7 -0
- package/es/locale/te_IN.d.ts +3 -0
- package/es/locale/te_IN.js +33 -0
- package/es/utils/getClearIcon.d.ts +1 -1
- package/lib/PickerInput/RangePicker.js +14 -10
- package/lib/PickerInput/Selector/hooks/useClearIcon.d.ts +1 -1
- package/lib/PickerInput/SinglePicker.js +14 -10
- package/lib/PickerInput/hooks/useDelayState.js +14 -7
- package/lib/PickerInput/hooks/useFilledProps.d.ts +1 -1
- package/lib/PickerInput/hooks/useFilledProps.js +3 -0
- package/lib/PickerInput/hooks/useRangePickerValue.js +10 -14
- package/lib/PickerInput/hooks/useRangeValue.d.ts +1 -1
- package/lib/PickerInput/hooks/useRangeValue.js +4 -6
- package/lib/PickerPanel/index.d.ts +1 -9
- package/lib/PickerPanel/index.js +12 -21
- package/lib/interface.d.ts +7 -0
- package/lib/locale/te_IN.d.ts +3 -0
- package/lib/locale/te_IN.js +39 -0
- package/lib/utils/getClearIcon.d.ts +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -54,6 +54,7 @@ render(<Picker />, mountNode);
|
|
|
54
54
|
| autoFocus | boolean | false | whether auto focus |
|
|
55
55
|
| showTime | boolean \| Object | [showTime options](#showTime-options) | to provide an additional time selection |
|
|
56
56
|
| picker | time \| date \| week \| month \| year | | control which kind of panel should be shown |
|
|
57
|
+
| previewValue | false \| hover | hover | When the user selects the date hover option, the value of the input field undergoes a temporary change |
|
|
57
58
|
| format | String \| String[] | depends on whether you set timePicker and your locale | use to format/parse date(without time) value to/from input. When an array is provided, all values are used for parsing and first value for display |
|
|
58
59
|
| use12Hours | boolean | false | 12 hours display mode |
|
|
59
60
|
| value | moment | | current value like input's value |
|
|
@@ -102,7 +103,7 @@ render(<Picker />, mountNode);
|
|
|
102
103
|
### RangePicker
|
|
103
104
|
|
|
104
105
|
| Property | Type | Default | Description |
|
|
105
|
-
| --- | --- | --- | --- |
|
|
106
|
+
| --- | --- | --- | --- | --- |
|
|
106
107
|
| prefixCls | String | rc-picker | prefixCls of this component |
|
|
107
108
|
| className | String | '' | additional css class of root dom |
|
|
108
109
|
| style | React.CSSProperties | | additional style of root dom node |
|
|
@@ -112,6 +113,7 @@ render(<Picker />, mountNode);
|
|
|
112
113
|
| defaultPickerValue | moment | | Set default display picker view date |
|
|
113
114
|
| separator | String | '~' | set separator between inputs |
|
|
114
115
|
| picker | time \| date \| week \| month \| year | | control which kind of panel |
|
|
116
|
+
| previewValue | false \| hover | hover | When the user selects the date hover option, the value of the input field undergoes a temporary change |
|
|
115
117
|
| placeholder | [String, String] | | placeholder of date input |
|
|
116
118
|
| showTime | boolean \| Object | [showTime options](#showTime-options) | to provide an additional time selection |
|
|
117
119
|
| showTime.defaultValue | [moment, moment] | | to set default time of selected date |
|
|
@@ -15,7 +15,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
15
15
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
16
16
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
17
17
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
18
|
-
import { useEvent,
|
|
18
|
+
import { useEvent, useControlledState } from '@rc-component/util';
|
|
19
19
|
import cls from 'classnames';
|
|
20
20
|
import useLayoutEffect from "@rc-component/util/es/hooks/useLayoutEffect";
|
|
21
21
|
import omit from "@rc-component/util/es/omit";
|
|
@@ -76,6 +76,7 @@ function RangePicker(props, ref) {
|
|
|
76
76
|
rootClassName = filledProps.rootClassName,
|
|
77
77
|
propStyles = filledProps.styles,
|
|
78
78
|
propClassNames = filledProps.classNames,
|
|
79
|
+
previewValue = filledProps.previewValue,
|
|
79
80
|
defaultValue = filledProps.defaultValue,
|
|
80
81
|
value = filledProps.value,
|
|
81
82
|
needConfirm = filledProps.needConfirm,
|
|
@@ -191,12 +192,10 @@ function RangePicker(props, ref) {
|
|
|
191
192
|
}, [showTime, activeIndex, calendarValue, activeIndexList]);
|
|
192
193
|
|
|
193
194
|
// ========================= Mode =========================
|
|
194
|
-
var
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
modes = _useMergedState2[0],
|
|
199
|
-
setModes = _useMergedState2[1];
|
|
195
|
+
var _useControlledState = useControlledState([picker, picker], mode),
|
|
196
|
+
_useControlledState2 = _slicedToArray(_useControlledState, 2),
|
|
197
|
+
modes = _useControlledState2[0],
|
|
198
|
+
setModes = _useControlledState2[1];
|
|
200
199
|
var mergedMode = modes[activeIndex] || picker;
|
|
201
200
|
|
|
202
201
|
/** Extends from `mergedMode` to patch `datetime` mode */
|
|
@@ -340,12 +339,18 @@ function RangePicker(props, ref) {
|
|
|
340
339
|
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
341
340
|
activeInfo = _React$useState6[0],
|
|
342
341
|
setActiveInfo = _React$useState6[1];
|
|
342
|
+
var onSetHover = function onSetHover(date, source) {
|
|
343
|
+
if (previewValue !== 'hover') {
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
setInternalHoverValues(date);
|
|
347
|
+
setHoverSource(source);
|
|
348
|
+
};
|
|
343
349
|
|
|
344
350
|
// ======================= Presets ========================
|
|
345
351
|
var presetList = usePresets(presets, ranges);
|
|
346
352
|
var onPresetHover = function onPresetHover(nextValues) {
|
|
347
|
-
|
|
348
|
-
setHoverSource('preset');
|
|
353
|
+
onSetHover(nextValues, 'preset');
|
|
349
354
|
};
|
|
350
355
|
var onPresetSubmit = function onPresetSubmit(nextValues) {
|
|
351
356
|
var passed = triggerSubmitChange(nextValues);
|
|
@@ -361,8 +366,7 @@ function RangePicker(props, ref) {
|
|
|
361
366
|
|
|
362
367
|
// ======================== Panel =========================
|
|
363
368
|
var onPanelHover = function onPanelHover(date) {
|
|
364
|
-
|
|
365
|
-
setHoverSource('cell');
|
|
369
|
+
onSetHover(date ? fillCalendarValue(date, activeIndex) : null, 'cell');
|
|
366
370
|
};
|
|
367
371
|
|
|
368
372
|
// >>> Focus
|
|
@@ -5,4 +5,4 @@ import * as React from 'react';
|
|
|
5
5
|
*/
|
|
6
6
|
export declare function fillClearIcon(prefixCls: string, allowClear?: boolean | {
|
|
7
7
|
clearIcon?: ReactNode;
|
|
8
|
-
}, clearIcon?: ReactNode): string | number | true | React.JSX.Element
|
|
8
|
+
}, clearIcon?: ReactNode): string | number | true | Iterable<ReactNode> | React.JSX.Element;
|
|
@@ -15,7 +15,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
15
15
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
16
16
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
17
17
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
18
|
-
import { useEvent,
|
|
18
|
+
import { useEvent, useControlledState } from '@rc-component/util';
|
|
19
19
|
import cls from 'classnames';
|
|
20
20
|
import useLayoutEffect from "@rc-component/util/es/hooks/useLayoutEffect";
|
|
21
21
|
import omit from "@rc-component/util/es/omit";
|
|
@@ -59,6 +59,7 @@ function Picker(props, ref) {
|
|
|
59
59
|
rootClassName = _ref.rootClassName,
|
|
60
60
|
propStyles = _ref.styles,
|
|
61
61
|
propClassNames = _ref.classNames,
|
|
62
|
+
previewValue = _ref.previewValue,
|
|
62
63
|
order = _ref.order,
|
|
63
64
|
defaultValue = _ref.defaultValue,
|
|
64
65
|
value = _ref.value,
|
|
@@ -162,12 +163,10 @@ function Picker(props, ref) {
|
|
|
162
163
|
};
|
|
163
164
|
|
|
164
165
|
// ========================= Mode =========================
|
|
165
|
-
var
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
mergedMode = _useMergedState2[0],
|
|
170
|
-
setMode = _useMergedState2[1];
|
|
166
|
+
var _useControlledState = useControlledState(picker, mode),
|
|
167
|
+
_useControlledState2 = _slicedToArray(_useControlledState, 2),
|
|
168
|
+
mergedMode = _useControlledState2[0],
|
|
169
|
+
setMode = _useControlledState2[1];
|
|
171
170
|
|
|
172
171
|
/** Extends from `mergedMode` to patch `datetime` mode */
|
|
173
172
|
var internalMode = mergedMode === 'date' && showTime ? 'datetime' : mergedMode;
|
|
@@ -289,6 +288,13 @@ function Picker(props, ref) {
|
|
|
289
288
|
setInternalHoverValue(null);
|
|
290
289
|
}
|
|
291
290
|
}, [mergedOpen]);
|
|
291
|
+
var onSetHover = function onSetHover(date, source) {
|
|
292
|
+
if (previewValue !== 'hover') {
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
setInternalHoverValue(date);
|
|
296
|
+
setHoverSource(source);
|
|
297
|
+
};
|
|
292
298
|
|
|
293
299
|
// ========================================================
|
|
294
300
|
// == Panels ==
|
|
@@ -296,8 +302,7 @@ function Picker(props, ref) {
|
|
|
296
302
|
// ======================= Presets ========================
|
|
297
303
|
var presetList = usePresets(presets);
|
|
298
304
|
var onPresetHover = function onPresetHover(nextValue) {
|
|
299
|
-
|
|
300
|
-
setHoverSource('preset');
|
|
305
|
+
onSetHover(nextValue, 'preset');
|
|
301
306
|
};
|
|
302
307
|
|
|
303
308
|
// TODO: handle this
|
|
@@ -316,8 +321,7 @@ function Picker(props, ref) {
|
|
|
316
321
|
|
|
317
322
|
// ======================== Panel =========================
|
|
318
323
|
var onPanelHover = function onPanelHover(date) {
|
|
319
|
-
|
|
320
|
-
setHoverSource('cell');
|
|
324
|
+
onSetHover(date, 'cell');
|
|
321
325
|
};
|
|
322
326
|
|
|
323
327
|
// >>> Focus
|
|
@@ -4,7 +4,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
4
4
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
5
5
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
6
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
-
import { useEvent,
|
|
7
|
+
import { useEvent, useControlledState } from '@rc-component/util';
|
|
8
8
|
import raf from "@rc-component/util/es/raf";
|
|
9
9
|
import React from 'react';
|
|
10
10
|
|
|
@@ -13,12 +13,19 @@ import React from 'react';
|
|
|
13
13
|
* But will be `false` for a delay of effect.
|
|
14
14
|
*/
|
|
15
15
|
export default function useDelayState(value, defaultValue, onChange) {
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
var _useControlledState = useControlledState(defaultValue, value),
|
|
17
|
+
_useControlledState2 = _slicedToArray(_useControlledState, 2),
|
|
18
|
+
state = _useControlledState2[0],
|
|
19
|
+
setState = _useControlledState2[1];
|
|
20
|
+
|
|
21
|
+
// Need force update to ensure React re-render
|
|
22
|
+
var _React$useState = React.useState({}),
|
|
23
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
24
|
+
forceUpdate = _React$useState2[1];
|
|
25
|
+
var triggerUpdate = useEvent(function (nextState) {
|
|
26
|
+
setState(nextState);
|
|
27
|
+
forceUpdate({});
|
|
28
|
+
});
|
|
22
29
|
var nextValueRef = React.useRef(value);
|
|
23
30
|
|
|
24
31
|
// ============================= Update =============================
|
|
@@ -27,7 +34,7 @@ export default function useDelayState(value, defaultValue, onChange) {
|
|
|
27
34
|
raf.cancel(rafRef.current);
|
|
28
35
|
};
|
|
29
36
|
var doUpdate = useEvent(function () {
|
|
30
|
-
|
|
37
|
+
triggerUpdate(nextValueRef.current);
|
|
31
38
|
if (onChange && state !== nextValueRef.current) {
|
|
32
39
|
onChange(nextValueRef.current);
|
|
33
40
|
}
|
|
@@ -2,7 +2,7 @@ import type { FormatType, InternalMode, PickerMode } from '../../interface';
|
|
|
2
2
|
import type { RangePickerProps } from '../RangePicker';
|
|
3
3
|
import useInvalidate from './useInvalidate';
|
|
4
4
|
type UseInvalidate<DateType extends object = any> = typeof useInvalidate<DateType>;
|
|
5
|
-
type PickedProps<DateType extends object = any> = Pick<RangePickerProps<DateType>, 'generateConfig' | 'locale' | 'picker' | 'prefixCls' | 'styles' | 'classNames' | 'order' | 'components' | 'inputRender' | 'clearIcon' | 'allowClear' | 'needConfirm' | 'format' | 'inputReadOnly' | 'disabledDate' | 'minDate' | 'maxDate' | 'defaultOpenValue'> & {
|
|
5
|
+
type PickedProps<DateType extends object = any> = Pick<RangePickerProps<DateType>, 'generateConfig' | 'locale' | 'picker' | 'prefixCls' | 'styles' | 'classNames' | 'order' | 'components' | 'inputRender' | 'clearIcon' | 'allowClear' | 'needConfirm' | 'format' | 'inputReadOnly' | 'disabledDate' | 'minDate' | 'maxDate' | 'defaultOpenValue' | 'previewValue'> & {
|
|
6
6
|
multiple?: boolean;
|
|
7
7
|
showTime?: any;
|
|
8
8
|
value?: any;
|
|
@@ -45,6 +45,8 @@ export default function useFilledProps(props, updater) {
|
|
|
45
45
|
picker = _props$picker === void 0 ? 'date' : _props$picker,
|
|
46
46
|
_props$prefixCls = props.prefixCls,
|
|
47
47
|
prefixCls = _props$prefixCls === void 0 ? 'rc-picker' : _props$prefixCls,
|
|
48
|
+
_props$previewValue = props.previewValue,
|
|
49
|
+
previewValue = _props$previewValue === void 0 ? 'hover' : _props$previewValue,
|
|
48
50
|
_props$styles = props.styles,
|
|
49
51
|
styles = _props$styles === void 0 ? {} : _props$styles,
|
|
50
52
|
_props$classNames = props.classNames,
|
|
@@ -110,6 +112,7 @@ export default function useFilledProps(props, updater) {
|
|
|
110
112
|
// ======================== Props =========================
|
|
111
113
|
var filledProps = React.useMemo(function () {
|
|
112
114
|
return _objectSpread(_objectSpread({}, props), {}, {
|
|
115
|
+
previewValue: previewValue,
|
|
113
116
|
prefixCls: prefixCls,
|
|
114
117
|
locale: mergedLocale,
|
|
115
118
|
picker: picker,
|
|
@@ -4,7 +4,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
4
4
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
5
5
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
6
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
-
import {
|
|
7
|
+
import { useControlledState } from '@rc-component/util';
|
|
8
8
|
import useLayoutEffect from "@rc-component/util/es/hooks/useLayoutEffect";
|
|
9
9
|
import * as React from 'react';
|
|
10
10
|
import { fillTime, isSame } from "../../utils/dateUtil";
|
|
@@ -53,22 +53,18 @@ export default function useRangePickerValue(generateConfig, locale, calendarValu
|
|
|
53
53
|
endPickerValue = _pickerValue[1];
|
|
54
54
|
|
|
55
55
|
// PickerValue state
|
|
56
|
-
var
|
|
56
|
+
var _useControlledState = useControlledState(function () {
|
|
57
57
|
return getDefaultPickerValue(0);
|
|
58
|
-
},
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
setStartPickerValue = _useMergedState2[1];
|
|
64
|
-
var _useMergedState3 = useMergedState(function () {
|
|
58
|
+
}, startPickerValue),
|
|
59
|
+
_useControlledState2 = _slicedToArray(_useControlledState, 2),
|
|
60
|
+
mergedStartPickerValue = _useControlledState2[0],
|
|
61
|
+
setStartPickerValue = _useControlledState2[1];
|
|
62
|
+
var _useControlledState3 = useControlledState(function () {
|
|
65
63
|
return getDefaultPickerValue(1);
|
|
66
|
-
},
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
mergedEndPickerValue = _useMergedState4[0],
|
|
71
|
-
setEndPickerValue = _useMergedState4[1];
|
|
64
|
+
}, endPickerValue),
|
|
65
|
+
_useControlledState4 = _slicedToArray(_useControlledState3, 2),
|
|
66
|
+
mergedEndPickerValue = _useControlledState4[0],
|
|
67
|
+
setEndPickerValue = _useControlledState4[1];
|
|
72
68
|
|
|
73
69
|
// Current PickerValue
|
|
74
70
|
var currentPickerValue = React.useMemo(function () {
|
|
@@ -15,7 +15,7 @@ rangeValue: boolean,
|
|
|
15
15
|
* This should only used in SinglePicker with `multiple` mode.
|
|
16
16
|
* So when `rangeValue` is `true`, order will be ignored.
|
|
17
17
|
*/
|
|
18
|
-
order: boolean, defaultValue?: ValueType, value?: ValueType, onCalendarChange?: (dates: ValueType, dateStrings: ReplaceListType<Required<ValueType>, string>, info: BaseInfo) => void, onOk?: (dates: ValueType) => void): readonly [ValueType, (updater: ValueType | ((origin: ValueType) => ValueType)
|
|
18
|
+
order: boolean, defaultValue?: ValueType, value?: ValueType, onCalendarChange?: (dates: ValueType, dateStrings: ReplaceListType<Required<ValueType>, string>, info: BaseInfo) => void, onOk?: (dates: ValueType) => void): readonly [ValueType, (updater: ValueType | ((origin: ValueType) => ValueType)) => void, (useControlledValueFirst?: boolean) => ValueType, TriggerCalendarChange<ValueType>, () => void];
|
|
19
19
|
export default function useRangeValue<ValueType extends DateType[], DateType extends object = any>(info: Pick<RangePickerProps<DateType>, 'generateConfig' | 'locale' | 'allowEmpty' | 'order' | 'picker'> & ReplacedPickerProps<DateType>, mergedValue: ValueType, setInnerValue: (nextValue: ValueType) => void, getCalendarValue: () => ValueType, triggerCalendarChange: TriggerCalendarChange<ValueType>, disabled: ReplaceListType<Required<ValueType>, boolean>, formatList: FormatType[], focused: boolean, open: boolean, isInvalidateDate: (date: DateType, info?: {
|
|
20
20
|
from?: DateType;
|
|
21
21
|
activeIndex: number;
|
|
@@ -8,7 +8,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
8
8
|
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
9
9
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
10
10
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
11
|
-
import { useEvent,
|
|
11
|
+
import { useEvent, useControlledState } from '@rc-component/util';
|
|
12
12
|
import * as React from 'react';
|
|
13
13
|
import useSyncState from "../../hooks/useSyncState";
|
|
14
14
|
import { formatValue, isSame, isSameTimestamp } from "../../utils/dateUtil";
|
|
@@ -101,12 +101,10 @@ rangeValue,
|
|
|
101
101
|
*/
|
|
102
102
|
order, defaultValue, value, onCalendarChange, onOk) {
|
|
103
103
|
// This is the root value which will sync with controlled or uncontrolled value
|
|
104
|
-
var
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
innerValue = _useMergedState2[0],
|
|
109
|
-
setInnerValue = _useMergedState2[1];
|
|
104
|
+
var _useControlledState = useControlledState(defaultValue, value),
|
|
105
|
+
_useControlledState2 = _slicedToArray(_useControlledState, 2),
|
|
106
|
+
innerValue = _useControlledState2[0],
|
|
107
|
+
setInnerValue = _useControlledState2[1];
|
|
110
108
|
var mergedValue = innerValue || EMPTY_VALUE;
|
|
111
109
|
|
|
112
110
|
// ========================= Inner Values =========================
|
|
@@ -52,13 +52,5 @@ export type PickerPanelProps<DateType extends object = any> = BasePickerPanelPro
|
|
|
52
52
|
styles?: Partial<Record<PanelSemanticName, React.CSSProperties>>;
|
|
53
53
|
classNames?: Partial<Record<PanelSemanticName, string>>;
|
|
54
54
|
};
|
|
55
|
-
declare const _default: <DateType extends object = any>(props:
|
|
56
|
-
/** multiple selection. Not support time or datetime picker */
|
|
57
|
-
multiple?: boolean;
|
|
58
|
-
defaultValue?: DateType | DateType[];
|
|
59
|
-
value?: DateType | DateType[];
|
|
60
|
-
onChange?: (date: DateType | DateType[]) => void;
|
|
61
|
-
styles?: Partial<Record<PanelSemanticName, React.CSSProperties>>;
|
|
62
|
-
classNames?: Partial<Record<PanelSemanticName, string>>;
|
|
63
|
-
} & React.RefAttributes<PickerPanelRef>) => React.ReactElement;
|
|
55
|
+
declare const _default: <DateType extends object = any>(props: PickerPanelProps<DateType> & React.RefAttributes<PickerPanelRef>) => React.ReactElement;
|
|
64
56
|
export default _default;
|
package/es/PickerPanel/index.js
CHANGED
|
@@ -16,7 +16,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
16
16
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
17
17
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
18
18
|
import classNames from 'classnames';
|
|
19
|
-
import { useEvent,
|
|
19
|
+
import { useEvent, useControlledState, warning } from '@rc-component/util';
|
|
20
20
|
import * as React from 'react';
|
|
21
21
|
import useLocale from "../hooks/useLocale";
|
|
22
22
|
import { fillShowTimeConfig, getTimeProps } from "../hooks/useTimeConfig";
|
|
@@ -117,15 +117,10 @@ function PickerPanel(props, ref) {
|
|
|
117
117
|
var now = generateConfig.getNow();
|
|
118
118
|
|
|
119
119
|
// ========================== Mode ==========================
|
|
120
|
-
var
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
}
|
|
125
|
-
}),
|
|
126
|
-
_useMergedState2 = _slicedToArray(_useMergedState, 2),
|
|
127
|
-
mergedMode = _useMergedState2[0],
|
|
128
|
-
setMergedMode = _useMergedState2[1];
|
|
120
|
+
var _useControlledState = useControlledState(picker || 'date', mode),
|
|
121
|
+
_useControlledState2 = _slicedToArray(_useControlledState, 2),
|
|
122
|
+
mergedMode = _useControlledState2[0],
|
|
123
|
+
setMergedMode = _useControlledState2[1];
|
|
129
124
|
var internalMode = mergedMode === 'date' && mergedShowTime ? 'datetime' : mergedMode;
|
|
130
125
|
|
|
131
126
|
// ========================= Toggle =========================
|
|
@@ -134,12 +129,10 @@ function PickerPanel(props, ref) {
|
|
|
134
129
|
// ========================= Value ==========================
|
|
135
130
|
// >>> Real value
|
|
136
131
|
// Interactive with `onChange` event which only trigger when the `mode` is `picker`
|
|
137
|
-
var
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
innerValue = _useMergedState4[0],
|
|
142
|
-
setMergedValue = _useMergedState4[1];
|
|
132
|
+
var _useControlledState3 = useControlledState(defaultValue, value),
|
|
133
|
+
_useControlledState4 = _slicedToArray(_useControlledState3, 2),
|
|
134
|
+
innerValue = _useControlledState4[0],
|
|
135
|
+
setMergedValue = _useControlledState4[1];
|
|
143
136
|
var mergedValue = React.useMemo(function () {
|
|
144
137
|
// Clean up `[null]`
|
|
145
138
|
var values = toArray(innerValue).filter(function (val) {
|
|
@@ -171,12 +164,10 @@ function PickerPanel(props, ref) {
|
|
|
171
164
|
|
|
172
165
|
// >>> PickerValue
|
|
173
166
|
// PickerValue is used to control the current displaying panel
|
|
174
|
-
var
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
mergedPickerValue = _useMergedState6[0],
|
|
179
|
-
setInternalPickerValue = _useMergedState6[1];
|
|
167
|
+
var _useControlledState5 = useControlledState(defaultPickerValue || mergedValue[0] || now, pickerValue),
|
|
168
|
+
_useControlledState6 = _slicedToArray(_useControlledState5, 2),
|
|
169
|
+
mergedPickerValue = _useControlledState6[0],
|
|
170
|
+
setInternalPickerValue = _useControlledState6[1];
|
|
180
171
|
React.useEffect(function () {
|
|
181
172
|
if (mergedValue[0] && !pickerValue) {
|
|
182
173
|
setInternalPickerValue(mergedValue[0]);
|
package/es/interface.d.ts
CHANGED
|
@@ -207,6 +207,7 @@ export type SharedHTMLAttrs = Omit<React.InputHTMLAttributes<HTMLDivElement>, 'v
|
|
|
207
207
|
export type PickerFocusEventHandler = (e: React.FocusEvent<HTMLElement>, info: BaseInfo) => void;
|
|
208
208
|
export type LegacyOnKeyDown = (event: React.KeyboardEvent<HTMLElement>, preventDefault: VoidFunction) => void;
|
|
209
209
|
export type SemanticName = 'root' | 'prefix' | 'input' | 'suffix';
|
|
210
|
+
export type PreviewValueType = 'hover';
|
|
210
211
|
export type PanelSemanticName = 'root' | 'header' | 'body' | 'content' | 'item' | 'footer';
|
|
211
212
|
export interface SharedPickerProps<DateType extends object = any> extends SharedHTMLAttrs, Pick<SharedPanelProps<DateType>, 'prevIcon' | 'nextIcon' | 'superPrevIcon' | 'superNextIcon'> {
|
|
212
213
|
direction?: 'ltr' | 'rtl';
|
|
@@ -281,6 +282,12 @@ export interface SharedPickerProps<DateType extends object = any> extends Shared
|
|
|
281
282
|
* This is only used for strong a11y requirement which do not want modify after blur.
|
|
282
283
|
*/
|
|
283
284
|
preserveInvalidOnBlur?: boolean;
|
|
285
|
+
/**
|
|
286
|
+
* When the user selects the date hover option, the value of the input field undergoes a temporary change.
|
|
287
|
+
* `false` will not preview value.
|
|
288
|
+
* `hover` will preview value when hover.
|
|
289
|
+
*/
|
|
290
|
+
previewValue?: false | PreviewValueType;
|
|
284
291
|
transitionName?: string;
|
|
285
292
|
components?: Components<DateType>;
|
|
286
293
|
/** @deprecated Please use `components.input` instead. */
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
6
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
|
+
import { commonLocale } from "./common";
|
|
8
|
+
var locale = _objectSpread(_objectSpread({}, commonLocale), {}, {
|
|
9
|
+
locale: 'te_IN',
|
|
10
|
+
today: 'నేడు',
|
|
11
|
+
now: 'ఇప్పుడు',
|
|
12
|
+
backToToday: 'తిరిగి నేటికి',
|
|
13
|
+
ok: 'సరే',
|
|
14
|
+
clear: 'స్పష్టమైన',
|
|
15
|
+
week: 'వారం',
|
|
16
|
+
month: 'నెల',
|
|
17
|
+
year: 'సంవత్సరం',
|
|
18
|
+
timeSelect: 'సమయం ఎంపిక',
|
|
19
|
+
dateSelect: 'తేదీ ఎంపిక',
|
|
20
|
+
weekSelect: 'వారం ఎంపిక',
|
|
21
|
+
monthSelect: 'నెల ఎంపిక',
|
|
22
|
+
yearSelect: 'సంవత్సరం ఎంపిక',
|
|
23
|
+
decadeSelect: 'దశాబ్దం ఎంపిక',
|
|
24
|
+
previousMonth: 'మునుపటి నెల',
|
|
25
|
+
nextMonth: 'వచ్చే నెల',
|
|
26
|
+
previousYear: 'మునుపటి సంవత్సరం',
|
|
27
|
+
nextYear: 'తదుపరి సంవత్సరం',
|
|
28
|
+
previousDecade: 'మునుపటి దశాబ్దం',
|
|
29
|
+
nextDecade: 'తదుపరి దశాబ్దం',
|
|
30
|
+
previousCentury: 'మునుపటి శతాబ్దం',
|
|
31
|
+
nextCentury: 'తదుపరి శతాబ్దం'
|
|
32
|
+
});
|
|
33
|
+
export default locale;
|
|
@@ -2,4 +2,4 @@ import type { ReactNode } from "react";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
export declare function getClearIcon(prefixCls: string, allowClear?: boolean | {
|
|
4
4
|
clearIcon?: ReactNode;
|
|
5
|
-
}, clearIcon?: ReactNode): string | number | true | React.JSX.Element
|
|
5
|
+
}, clearIcon?: ReactNode): string | number | true | Iterable<ReactNode> | React.JSX.Element;
|
|
@@ -85,6 +85,7 @@ function RangePicker(props, ref) {
|
|
|
85
85
|
rootClassName = filledProps.rootClassName,
|
|
86
86
|
propStyles = filledProps.styles,
|
|
87
87
|
propClassNames = filledProps.classNames,
|
|
88
|
+
previewValue = filledProps.previewValue,
|
|
88
89
|
defaultValue = filledProps.defaultValue,
|
|
89
90
|
value = filledProps.value,
|
|
90
91
|
needConfirm = filledProps.needConfirm,
|
|
@@ -200,12 +201,10 @@ function RangePicker(props, ref) {
|
|
|
200
201
|
}, [showTime, activeIndex, calendarValue, activeIndexList]);
|
|
201
202
|
|
|
202
203
|
// ========================= Mode =========================
|
|
203
|
-
var
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
modes = _useMergedState2[0],
|
|
208
|
-
setModes = _useMergedState2[1];
|
|
204
|
+
var _useControlledState = (0, _util.useControlledState)([picker, picker], mode),
|
|
205
|
+
_useControlledState2 = _slicedToArray(_useControlledState, 2),
|
|
206
|
+
modes = _useControlledState2[0],
|
|
207
|
+
setModes = _useControlledState2[1];
|
|
209
208
|
var mergedMode = modes[activeIndex] || picker;
|
|
210
209
|
|
|
211
210
|
/** Extends from `mergedMode` to patch `datetime` mode */
|
|
@@ -349,12 +348,18 @@ function RangePicker(props, ref) {
|
|
|
349
348
|
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
350
349
|
activeInfo = _React$useState6[0],
|
|
351
350
|
setActiveInfo = _React$useState6[1];
|
|
351
|
+
var onSetHover = function onSetHover(date, source) {
|
|
352
|
+
if (previewValue !== 'hover') {
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
setInternalHoverValues(date);
|
|
356
|
+
setHoverSource(source);
|
|
357
|
+
};
|
|
352
358
|
|
|
353
359
|
// ======================= Presets ========================
|
|
354
360
|
var presetList = (0, _usePresets.default)(presets, ranges);
|
|
355
361
|
var onPresetHover = function onPresetHover(nextValues) {
|
|
356
|
-
|
|
357
|
-
setHoverSource('preset');
|
|
362
|
+
onSetHover(nextValues, 'preset');
|
|
358
363
|
};
|
|
359
364
|
var onPresetSubmit = function onPresetSubmit(nextValues) {
|
|
360
365
|
var passed = triggerSubmitChange(nextValues);
|
|
@@ -370,8 +375,7 @@ function RangePicker(props, ref) {
|
|
|
370
375
|
|
|
371
376
|
// ======================== Panel =========================
|
|
372
377
|
var onPanelHover = function onPanelHover(date) {
|
|
373
|
-
|
|
374
|
-
setHoverSource('cell');
|
|
378
|
+
onSetHover(date ? fillCalendarValue(date, activeIndex) : null, 'cell');
|
|
375
379
|
};
|
|
376
380
|
|
|
377
381
|
// >>> Focus
|
|
@@ -5,4 +5,4 @@ import * as React from 'react';
|
|
|
5
5
|
*/
|
|
6
6
|
export declare function fillClearIcon(prefixCls: string, allowClear?: boolean | {
|
|
7
7
|
clearIcon?: ReactNode;
|
|
8
|
-
}, clearIcon?: ReactNode): string | number | true | React.JSX.Element
|
|
8
|
+
}, clearIcon?: ReactNode): string | number | true | Iterable<ReactNode> | React.JSX.Element;
|
|
@@ -67,6 +67,7 @@ function Picker(props, ref) {
|
|
|
67
67
|
rootClassName = _ref.rootClassName,
|
|
68
68
|
propStyles = _ref.styles,
|
|
69
69
|
propClassNames = _ref.classNames,
|
|
70
|
+
previewValue = _ref.previewValue,
|
|
70
71
|
order = _ref.order,
|
|
71
72
|
defaultValue = _ref.defaultValue,
|
|
72
73
|
value = _ref.value,
|
|
@@ -170,12 +171,10 @@ function Picker(props, ref) {
|
|
|
170
171
|
};
|
|
171
172
|
|
|
172
173
|
// ========================= Mode =========================
|
|
173
|
-
var
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
mergedMode = _useMergedState2[0],
|
|
178
|
-
setMode = _useMergedState2[1];
|
|
174
|
+
var _useControlledState = (0, _util.useControlledState)(picker, mode),
|
|
175
|
+
_useControlledState2 = _slicedToArray(_useControlledState, 2),
|
|
176
|
+
mergedMode = _useControlledState2[0],
|
|
177
|
+
setMode = _useControlledState2[1];
|
|
179
178
|
|
|
180
179
|
/** Extends from `mergedMode` to patch `datetime` mode */
|
|
181
180
|
var internalMode = mergedMode === 'date' && showTime ? 'datetime' : mergedMode;
|
|
@@ -297,6 +296,13 @@ function Picker(props, ref) {
|
|
|
297
296
|
setInternalHoverValue(null);
|
|
298
297
|
}
|
|
299
298
|
}, [mergedOpen]);
|
|
299
|
+
var onSetHover = function onSetHover(date, source) {
|
|
300
|
+
if (previewValue !== 'hover') {
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
setInternalHoverValue(date);
|
|
304
|
+
setHoverSource(source);
|
|
305
|
+
};
|
|
300
306
|
|
|
301
307
|
// ========================================================
|
|
302
308
|
// == Panels ==
|
|
@@ -304,8 +310,7 @@ function Picker(props, ref) {
|
|
|
304
310
|
// ======================= Presets ========================
|
|
305
311
|
var presetList = (0, _usePresets.default)(presets);
|
|
306
312
|
var onPresetHover = function onPresetHover(nextValue) {
|
|
307
|
-
|
|
308
|
-
setHoverSource('preset');
|
|
313
|
+
onSetHover(nextValue, 'preset');
|
|
309
314
|
};
|
|
310
315
|
|
|
311
316
|
// TODO: handle this
|
|
@@ -324,8 +329,7 @@ function Picker(props, ref) {
|
|
|
324
329
|
|
|
325
330
|
// ======================== Panel =========================
|
|
326
331
|
var onPanelHover = function onPanelHover(date) {
|
|
327
|
-
|
|
328
|
-
setHoverSource('cell');
|
|
332
|
+
onSetHover(date, 'cell');
|
|
329
333
|
};
|
|
330
334
|
|
|
331
335
|
// >>> Focus
|
|
@@ -19,12 +19,19 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
19
19
|
* But will be `false` for a delay of effect.
|
|
20
20
|
*/
|
|
21
21
|
function useDelayState(value, defaultValue, onChange) {
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
var _useControlledState = (0, _util.useControlledState)(defaultValue, value),
|
|
23
|
+
_useControlledState2 = _slicedToArray(_useControlledState, 2),
|
|
24
|
+
state = _useControlledState2[0],
|
|
25
|
+
setState = _useControlledState2[1];
|
|
26
|
+
|
|
27
|
+
// Need force update to ensure React re-render
|
|
28
|
+
var _React$useState = _react.default.useState({}),
|
|
29
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
30
|
+
forceUpdate = _React$useState2[1];
|
|
31
|
+
var triggerUpdate = (0, _util.useEvent)(function (nextState) {
|
|
32
|
+
setState(nextState);
|
|
33
|
+
forceUpdate({});
|
|
34
|
+
});
|
|
28
35
|
var nextValueRef = _react.default.useRef(value);
|
|
29
36
|
|
|
30
37
|
// ============================= Update =============================
|
|
@@ -33,7 +40,7 @@ function useDelayState(value, defaultValue, onChange) {
|
|
|
33
40
|
_raf.default.cancel(rafRef.current);
|
|
34
41
|
};
|
|
35
42
|
var doUpdate = (0, _util.useEvent)(function () {
|
|
36
|
-
|
|
43
|
+
triggerUpdate(nextValueRef.current);
|
|
37
44
|
if (onChange && state !== nextValueRef.current) {
|
|
38
45
|
onChange(nextValueRef.current);
|
|
39
46
|
}
|
|
@@ -2,7 +2,7 @@ import type { FormatType, InternalMode, PickerMode } from '../../interface';
|
|
|
2
2
|
import type { RangePickerProps } from '../RangePicker';
|
|
3
3
|
import useInvalidate from './useInvalidate';
|
|
4
4
|
type UseInvalidate<DateType extends object = any> = typeof useInvalidate<DateType>;
|
|
5
|
-
type PickedProps<DateType extends object = any> = Pick<RangePickerProps<DateType>, 'generateConfig' | 'locale' | 'picker' | 'prefixCls' | 'styles' | 'classNames' | 'order' | 'components' | 'inputRender' | 'clearIcon' | 'allowClear' | 'needConfirm' | 'format' | 'inputReadOnly' | 'disabledDate' | 'minDate' | 'maxDate' | 'defaultOpenValue'> & {
|
|
5
|
+
type PickedProps<DateType extends object = any> = Pick<RangePickerProps<DateType>, 'generateConfig' | 'locale' | 'picker' | 'prefixCls' | 'styles' | 'classNames' | 'order' | 'components' | 'inputRender' | 'clearIcon' | 'allowClear' | 'needConfirm' | 'format' | 'inputReadOnly' | 'disabledDate' | 'minDate' | 'maxDate' | 'defaultOpenValue' | 'previewValue'> & {
|
|
6
6
|
multiple?: boolean;
|
|
7
7
|
showTime?: any;
|
|
8
8
|
value?: any;
|
|
@@ -54,6 +54,8 @@ function useFilledProps(props, updater) {
|
|
|
54
54
|
picker = _props$picker === void 0 ? 'date' : _props$picker,
|
|
55
55
|
_props$prefixCls = props.prefixCls,
|
|
56
56
|
prefixCls = _props$prefixCls === void 0 ? 'rc-picker' : _props$prefixCls,
|
|
57
|
+
_props$previewValue = props.previewValue,
|
|
58
|
+
previewValue = _props$previewValue === void 0 ? 'hover' : _props$previewValue,
|
|
57
59
|
_props$styles = props.styles,
|
|
58
60
|
styles = _props$styles === void 0 ? {} : _props$styles,
|
|
59
61
|
_props$classNames = props.classNames,
|
|
@@ -119,6 +121,7 @@ function useFilledProps(props, updater) {
|
|
|
119
121
|
// ======================== Props =========================
|
|
120
122
|
var filledProps = React.useMemo(function () {
|
|
121
123
|
return _objectSpread(_objectSpread({}, props), {}, {
|
|
124
|
+
previewValue: previewValue,
|
|
122
125
|
prefixCls: prefixCls,
|
|
123
126
|
locale: mergedLocale,
|
|
124
127
|
picker: picker,
|
|
@@ -64,22 +64,18 @@ function useRangePickerValue(generateConfig, locale, calendarValue, modes, open,
|
|
|
64
64
|
endPickerValue = _pickerValue[1];
|
|
65
65
|
|
|
66
66
|
// PickerValue state
|
|
67
|
-
var
|
|
67
|
+
var _useControlledState = (0, _util.useControlledState)(function () {
|
|
68
68
|
return getDefaultPickerValue(0);
|
|
69
|
-
},
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
setStartPickerValue = _useMergedState2[1];
|
|
75
|
-
var _useMergedState3 = (0, _util.useMergedState)(function () {
|
|
69
|
+
}, startPickerValue),
|
|
70
|
+
_useControlledState2 = _slicedToArray(_useControlledState, 2),
|
|
71
|
+
mergedStartPickerValue = _useControlledState2[0],
|
|
72
|
+
setStartPickerValue = _useControlledState2[1];
|
|
73
|
+
var _useControlledState3 = (0, _util.useControlledState)(function () {
|
|
76
74
|
return getDefaultPickerValue(1);
|
|
77
|
-
},
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
mergedEndPickerValue = _useMergedState4[0],
|
|
82
|
-
setEndPickerValue = _useMergedState4[1];
|
|
75
|
+
}, endPickerValue),
|
|
76
|
+
_useControlledState4 = _slicedToArray(_useControlledState3, 2),
|
|
77
|
+
mergedEndPickerValue = _useControlledState4[0],
|
|
78
|
+
setEndPickerValue = _useControlledState4[1];
|
|
83
79
|
|
|
84
80
|
// Current PickerValue
|
|
85
81
|
var currentPickerValue = React.useMemo(function () {
|
|
@@ -15,7 +15,7 @@ rangeValue: boolean,
|
|
|
15
15
|
* This should only used in SinglePicker with `multiple` mode.
|
|
16
16
|
* So when `rangeValue` is `true`, order will be ignored.
|
|
17
17
|
*/
|
|
18
|
-
order: boolean, defaultValue?: ValueType, value?: ValueType, onCalendarChange?: (dates: ValueType, dateStrings: ReplaceListType<Required<ValueType>, string>, info: BaseInfo) => void, onOk?: (dates: ValueType) => void): readonly [ValueType, (updater: ValueType | ((origin: ValueType) => ValueType)
|
|
18
|
+
order: boolean, defaultValue?: ValueType, value?: ValueType, onCalendarChange?: (dates: ValueType, dateStrings: ReplaceListType<Required<ValueType>, string>, info: BaseInfo) => void, onOk?: (dates: ValueType) => void): readonly [ValueType, (updater: ValueType | ((origin: ValueType) => ValueType)) => void, (useControlledValueFirst?: boolean) => ValueType, TriggerCalendarChange<ValueType>, () => void];
|
|
19
19
|
export default function useRangeValue<ValueType extends DateType[], DateType extends object = any>(info: Pick<RangePickerProps<DateType>, 'generateConfig' | 'locale' | 'allowEmpty' | 'order' | 'picker'> & ReplacedPickerProps<DateType>, mergedValue: ValueType, setInnerValue: (nextValue: ValueType) => void, getCalendarValue: () => ValueType, triggerCalendarChange: TriggerCalendarChange<ValueType>, disabled: ReplaceListType<Required<ValueType>, boolean>, formatList: FormatType[], focused: boolean, open: boolean, isInvalidateDate: (date: DateType, info?: {
|
|
20
20
|
from?: DateType;
|
|
21
21
|
activeIndex: number;
|
|
@@ -112,12 +112,10 @@ rangeValue,
|
|
|
112
112
|
*/
|
|
113
113
|
order, defaultValue, value, onCalendarChange, onOk) {
|
|
114
114
|
// This is the root value which will sync with controlled or uncontrolled value
|
|
115
|
-
var
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
innerValue = _useMergedState2[0],
|
|
120
|
-
setInnerValue = _useMergedState2[1];
|
|
115
|
+
var _useControlledState = (0, _util.useControlledState)(defaultValue, value),
|
|
116
|
+
_useControlledState2 = _slicedToArray(_useControlledState, 2),
|
|
117
|
+
innerValue = _useControlledState2[0],
|
|
118
|
+
setInnerValue = _useControlledState2[1];
|
|
121
119
|
var mergedValue = innerValue || EMPTY_VALUE;
|
|
122
120
|
|
|
123
121
|
// ========================= Inner Values =========================
|
|
@@ -52,13 +52,5 @@ export type PickerPanelProps<DateType extends object = any> = BasePickerPanelPro
|
|
|
52
52
|
styles?: Partial<Record<PanelSemanticName, React.CSSProperties>>;
|
|
53
53
|
classNames?: Partial<Record<PanelSemanticName, string>>;
|
|
54
54
|
};
|
|
55
|
-
declare const _default: <DateType extends object = any>(props:
|
|
56
|
-
/** multiple selection. Not support time or datetime picker */
|
|
57
|
-
multiple?: boolean;
|
|
58
|
-
defaultValue?: DateType | DateType[];
|
|
59
|
-
value?: DateType | DateType[];
|
|
60
|
-
onChange?: (date: DateType | DateType[]) => void;
|
|
61
|
-
styles?: Partial<Record<PanelSemanticName, React.CSSProperties>>;
|
|
62
|
-
classNames?: Partial<Record<PanelSemanticName, string>>;
|
|
63
|
-
} & React.RefAttributes<PickerPanelRef>) => React.ReactElement;
|
|
55
|
+
declare const _default: <DateType extends object = any>(props: PickerPanelProps<DateType> & React.RefAttributes<PickerPanelRef>) => React.ReactElement;
|
|
64
56
|
export default _default;
|
package/lib/PickerPanel/index.js
CHANGED
|
@@ -126,15 +126,10 @@ function PickerPanel(props, ref) {
|
|
|
126
126
|
var now = generateConfig.getNow();
|
|
127
127
|
|
|
128
128
|
// ========================== Mode ==========================
|
|
129
|
-
var
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
134
|
-
}),
|
|
135
|
-
_useMergedState2 = _slicedToArray(_useMergedState, 2),
|
|
136
|
-
mergedMode = _useMergedState2[0],
|
|
137
|
-
setMergedMode = _useMergedState2[1];
|
|
129
|
+
var _useControlledState = (0, _util.useControlledState)(picker || 'date', mode),
|
|
130
|
+
_useControlledState2 = _slicedToArray(_useControlledState, 2),
|
|
131
|
+
mergedMode = _useControlledState2[0],
|
|
132
|
+
setMergedMode = _useControlledState2[1];
|
|
138
133
|
var internalMode = mergedMode === 'date' && mergedShowTime ? 'datetime' : mergedMode;
|
|
139
134
|
|
|
140
135
|
// ========================= Toggle =========================
|
|
@@ -143,12 +138,10 @@ function PickerPanel(props, ref) {
|
|
|
143
138
|
// ========================= Value ==========================
|
|
144
139
|
// >>> Real value
|
|
145
140
|
// Interactive with `onChange` event which only trigger when the `mode` is `picker`
|
|
146
|
-
var
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
innerValue = _useMergedState4[0],
|
|
151
|
-
setMergedValue = _useMergedState4[1];
|
|
141
|
+
var _useControlledState3 = (0, _util.useControlledState)(defaultValue, value),
|
|
142
|
+
_useControlledState4 = _slicedToArray(_useControlledState3, 2),
|
|
143
|
+
innerValue = _useControlledState4[0],
|
|
144
|
+
setMergedValue = _useControlledState4[1];
|
|
152
145
|
var mergedValue = React.useMemo(function () {
|
|
153
146
|
// Clean up `[null]`
|
|
154
147
|
var values = (0, _miscUtil.toArray)(innerValue).filter(function (val) {
|
|
@@ -180,12 +173,10 @@ function PickerPanel(props, ref) {
|
|
|
180
173
|
|
|
181
174
|
// >>> PickerValue
|
|
182
175
|
// PickerValue is used to control the current displaying panel
|
|
183
|
-
var
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
mergedPickerValue = _useMergedState6[0],
|
|
188
|
-
setInternalPickerValue = _useMergedState6[1];
|
|
176
|
+
var _useControlledState5 = (0, _util.useControlledState)(defaultPickerValue || mergedValue[0] || now, pickerValue),
|
|
177
|
+
_useControlledState6 = _slicedToArray(_useControlledState5, 2),
|
|
178
|
+
mergedPickerValue = _useControlledState6[0],
|
|
179
|
+
setInternalPickerValue = _useControlledState6[1];
|
|
189
180
|
React.useEffect(function () {
|
|
190
181
|
if (mergedValue[0] && !pickerValue) {
|
|
191
182
|
setInternalPickerValue(mergedValue[0]);
|
package/lib/interface.d.ts
CHANGED
|
@@ -207,6 +207,7 @@ export type SharedHTMLAttrs = Omit<React.InputHTMLAttributes<HTMLDivElement>, 'v
|
|
|
207
207
|
export type PickerFocusEventHandler = (e: React.FocusEvent<HTMLElement>, info: BaseInfo) => void;
|
|
208
208
|
export type LegacyOnKeyDown = (event: React.KeyboardEvent<HTMLElement>, preventDefault: VoidFunction) => void;
|
|
209
209
|
export type SemanticName = 'root' | 'prefix' | 'input' | 'suffix';
|
|
210
|
+
export type PreviewValueType = 'hover';
|
|
210
211
|
export type PanelSemanticName = 'root' | 'header' | 'body' | 'content' | 'item' | 'footer';
|
|
211
212
|
export interface SharedPickerProps<DateType extends object = any> extends SharedHTMLAttrs, Pick<SharedPanelProps<DateType>, 'prevIcon' | 'nextIcon' | 'superPrevIcon' | 'superNextIcon'> {
|
|
212
213
|
direction?: 'ltr' | 'rtl';
|
|
@@ -281,6 +282,12 @@ export interface SharedPickerProps<DateType extends object = any> extends Shared
|
|
|
281
282
|
* This is only used for strong a11y requirement which do not want modify after blur.
|
|
282
283
|
*/
|
|
283
284
|
preserveInvalidOnBlur?: boolean;
|
|
285
|
+
/**
|
|
286
|
+
* When the user selects the date hover option, the value of the input field undergoes a temporary change.
|
|
287
|
+
* `false` will not preview value.
|
|
288
|
+
* `hover` will preview value when hover.
|
|
289
|
+
*/
|
|
290
|
+
previewValue?: false | PreviewValueType;
|
|
284
291
|
transitionName?: string;
|
|
285
292
|
components?: Components<DateType>;
|
|
286
293
|
/** @deprecated Please use `components.input` instead. */
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _common = require("./common");
|
|
8
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
9
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
10
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
12
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
13
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
14
|
+
var locale = _objectSpread(_objectSpread({}, _common.commonLocale), {}, {
|
|
15
|
+
locale: 'te_IN',
|
|
16
|
+
today: 'నేడు',
|
|
17
|
+
now: 'ఇప్పుడు',
|
|
18
|
+
backToToday: 'తిరిగి నేటికి',
|
|
19
|
+
ok: 'సరే',
|
|
20
|
+
clear: 'స్పష్టమైన',
|
|
21
|
+
week: 'వారం',
|
|
22
|
+
month: 'నెల',
|
|
23
|
+
year: 'సంవత్సరం',
|
|
24
|
+
timeSelect: 'సమయం ఎంపిక',
|
|
25
|
+
dateSelect: 'తేదీ ఎంపిక',
|
|
26
|
+
weekSelect: 'వారం ఎంపిక',
|
|
27
|
+
monthSelect: 'నెల ఎంపిక',
|
|
28
|
+
yearSelect: 'సంవత్సరం ఎంపిక',
|
|
29
|
+
decadeSelect: 'దశాబ్దం ఎంపిక',
|
|
30
|
+
previousMonth: 'మునుపటి నెల',
|
|
31
|
+
nextMonth: 'వచ్చే నెల',
|
|
32
|
+
previousYear: 'మునుపటి సంవత్సరం',
|
|
33
|
+
nextYear: 'తదుపరి సంవత్సరం',
|
|
34
|
+
previousDecade: 'మునుపటి దశాబ్దం',
|
|
35
|
+
nextDecade: 'తదుపరి దశాబ్దం',
|
|
36
|
+
previousCentury: 'మునుపటి శతాబ్దం',
|
|
37
|
+
nextCentury: 'తదుపరి శతాబ్దం'
|
|
38
|
+
});
|
|
39
|
+
var _default = exports.default = locale;
|
|
@@ -2,4 +2,4 @@ import type { ReactNode } from "react";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
export declare function getClearIcon(prefixCls: string, allowClear?: boolean | {
|
|
4
4
|
clearIcon?: ReactNode;
|
|
5
|
-
}, clearIcon?: ReactNode): string | number | true | React.JSX.Element
|
|
5
|
+
}, clearIcon?: ReactNode): string | number | true | Iterable<ReactNode> | React.JSX.Element;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rc-component/picker",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.1",
|
|
4
4
|
"description": "React date & time picker",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@rc-component/resize-observer": "^1.0.0",
|
|
43
43
|
"@rc-component/trigger": "^3.0.0",
|
|
44
|
-
"@rc-component/util": "^1.
|
|
44
|
+
"@rc-component/util": "^1.3.0",
|
|
45
45
|
"classnames": "^2.2.1",
|
|
46
46
|
"rc-overflow": "^1.3.2"
|
|
47
47
|
},
|