@hi-ui/time-picker 4.0.0-alpha.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/LICENSE +21 -0
- package/README.md +11 -0
- package/lib/cjs/@types/index.js +22 -0
- package/lib/cjs/@types/index.js.map +1 -0
- package/lib/cjs/Input.js +174 -0
- package/lib/cjs/Input.js.map +1 -0
- package/lib/cjs/Panel.js +144 -0
- package/lib/cjs/Panel.js.map +1 -0
- package/lib/cjs/PopContent.js +211 -0
- package/lib/cjs/PopContent.js.map +1 -0
- package/lib/cjs/Selector.js +128 -0
- package/lib/cjs/Selector.js.map +1 -0
- package/lib/cjs/TimePicker.js +310 -0
- package/lib/cjs/TimePicker.js.map +1 -0
- package/lib/cjs/hooks/useFilter.js +39 -0
- package/lib/cjs/hooks/useFilter.js.map +1 -0
- package/lib/cjs/index.js +34 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/styles/index.scss.js +22 -0
- package/lib/cjs/styles/index.scss.js.map +1 -0
- package/lib/cjs/utils/analysisFormat.js +42 -0
- package/lib/cjs/utils/analysisFormat.js.map +1 -0
- package/lib/cjs/utils/disposeInputValue.js +57 -0
- package/lib/cjs/utils/disposeInputValue.js.map +1 -0
- package/lib/cjs/utils/generateSelectorData.js +58 -0
- package/lib/cjs/utils/generateSelectorData.js.map +1 -0
- package/lib/cjs/utils/getFormatDefault.js +21 -0
- package/lib/cjs/utils/getFormatDefault.js.map +1 -0
- package/lib/cjs/utils/getNowString.js +32 -0
- package/lib/cjs/utils/getNowString.js.map +1 -0
- package/lib/cjs/utils/getRange.js +35 -0
- package/lib/cjs/utils/getRange.js.map +1 -0
- package/lib/cjs/utils/valueChecker.js +87 -0
- package/lib/cjs/utils/valueChecker.js.map +1 -0
- package/lib/esm/@types/index.js +19 -0
- package/lib/esm/@types/index.js.map +1 -0
- package/lib/esm/Input.js +154 -0
- package/lib/esm/Input.js.map +1 -0
- package/lib/esm/Panel.js +124 -0
- package/lib/esm/Panel.js.map +1 -0
- package/lib/esm/PopContent.js +188 -0
- package/lib/esm/PopContent.js.map +1 -0
- package/lib/esm/Selector.js +110 -0
- package/lib/esm/Selector.js.map +1 -0
- package/lib/esm/TimePicker.js +281 -0
- package/lib/esm/TimePicker.js.map +1 -0
- package/lib/esm/hooks/useFilter.js +33 -0
- package/lib/esm/hooks/useFilter.js.map +1 -0
- package/lib/esm/index.js +14 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/styles/index.scss.js +17 -0
- package/lib/esm/styles/index.scss.js.map +1 -0
- package/lib/esm/utils/analysisFormat.js +36 -0
- package/lib/esm/utils/analysisFormat.js.map +1 -0
- package/lib/esm/utils/disposeInputValue.js +51 -0
- package/lib/esm/utils/disposeInputValue.js.map +1 -0
- package/lib/esm/utils/generateSelectorData.js +52 -0
- package/lib/esm/utils/generateSelectorData.js.map +1 -0
- package/lib/esm/utils/getFormatDefault.js +15 -0
- package/lib/esm/utils/getFormatDefault.js.map +1 -0
- package/lib/esm/utils/getNowString.js +25 -0
- package/lib/esm/utils/getNowString.js.map +1 -0
- package/lib/esm/utils/getRange.js +29 -0
- package/lib/esm/utils/getRange.js.map +1 -0
- package/lib/esm/utils/valueChecker.js +80 -0
- package/lib/esm/utils/valueChecker.js.map +1 -0
- package/lib/types/@types/index.d.ts +62 -0
- package/lib/types/Input.d.ts +23 -0
- package/lib/types/Panel.d.ts +14 -0
- package/lib/types/PopContent.d.ts +15 -0
- package/lib/types/Selector.d.ts +23 -0
- package/lib/types/TimePicker.d.ts +61 -0
- package/lib/types/hooks/useFilter.d.ts +2 -0
- package/lib/types/index.d.ts +6 -0
- package/lib/types/utils/analysisFormat.d.ts +2 -0
- package/lib/types/utils/disposeInputValue.d.ts +2 -0
- package/lib/types/utils/generateSelectorData.d.ts +10 -0
- package/lib/types/utils/getFormatDefault.d.ts +2 -0
- package/lib/types/utils/getNowString.d.ts +2 -0
- package/lib/types/utils/getRange.d.ts +1 -0
- package/lib/types/utils/getSelectorTitle.d.ts +2 -0
- package/lib/types/utils/valueChecker.d.ts +8 -0
- package/package.json +66 -0
@@ -0,0 +1,188 @@
|
|
1
|
+
/** @LICENSE
|
2
|
+
* @hi-ui/time-picker
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/time-picker#readme
|
4
|
+
*
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
6
|
+
*
|
7
|
+
* This source code is licensed under the MIT license found in the
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
9
|
+
*/
|
10
|
+
import React, { useMemo, useCallback } from 'react';
|
11
|
+
import { TimePickerSelectorType } from './@types/index.js';
|
12
|
+
import { getRange } from './utils/getRange.js';
|
13
|
+
import { Panel } from './Panel.js';
|
14
|
+
import { analysisFormat } from './utils/analysisFormat.js';
|
15
|
+
import { getFormatDefault } from './utils/getFormatDefault.js';
|
16
|
+
import { _prefix } from './TimePicker.js';
|
17
|
+
import { useFilter } from './hooks/useFilter.js';
|
18
|
+
|
19
|
+
var DefaultDisabledFunc = function DefaultDisabledFunc() {
|
20
|
+
return [];
|
21
|
+
};
|
22
|
+
|
23
|
+
var PopContent = function PopContent(props) {
|
24
|
+
var _props$prefix = props.prefix,
|
25
|
+
prefix = _props$prefix === void 0 ? _prefix : _props$prefix,
|
26
|
+
dangerousValue = props.value,
|
27
|
+
_onChange = props.onChange,
|
28
|
+
format = props.format,
|
29
|
+
type = props.type,
|
30
|
+
itemHeight = props.itemHeight,
|
31
|
+
fullDisplayItemNumber = props.fullDisplayItemNumber,
|
32
|
+
hourStep = props.hourStep,
|
33
|
+
minuteStep = props.minuteStep,
|
34
|
+
secondStep = props.secondStep,
|
35
|
+
_props$disabledHours = props.disabledHours,
|
36
|
+
originalDisabledHours = _props$disabledHours === void 0 ? DefaultDisabledFunc : _props$disabledHours,
|
37
|
+
_props$disabledSecond = props.disabledSeconds,
|
38
|
+
originalDisabledSeconds = _props$disabledSecond === void 0 ? DefaultDisabledFunc : _props$disabledSecond,
|
39
|
+
_props$disabledMinute = props.disabledMinutes,
|
40
|
+
originalDisabledMinutes = _props$disabledMinute === void 0 ? DefaultDisabledFunc : _props$disabledMinute,
|
41
|
+
style = props.style; // 将值统一转化为函数
|
42
|
+
// 由于 pop content 会被 date-picker 直接调用,故而在此多做一次兼容处理
|
43
|
+
|
44
|
+
var _useFilter = useFilter({
|
45
|
+
disabledHours: originalDisabledHours,
|
46
|
+
disabledMinutes: originalDisabledMinutes,
|
47
|
+
disabledSeconds: originalDisabledSeconds
|
48
|
+
}),
|
49
|
+
disabledHours = _useFilter.disabledHours,
|
50
|
+
disabledMinutes = _useFilter.disabledMinutes,
|
51
|
+
disabledSeconds = _useFilter.disabledSeconds;
|
52
|
+
|
53
|
+
var value = useMemo(function () {
|
54
|
+
return dangerousValue.map(function (item) {
|
55
|
+
return item || getFormatDefault(format);
|
56
|
+
});
|
57
|
+
}, [dangerousValue, format]);
|
58
|
+
var selectorTypes = useMemo(function () {
|
59
|
+
return analysisFormat(format);
|
60
|
+
}, [format]);
|
61
|
+
var separateValue = useMemo(function () {
|
62
|
+
return value.map(function (disposeItem) {
|
63
|
+
return disposeItem.split(':').filter(function (item) {
|
64
|
+
return item;
|
65
|
+
}).map(function (item) {
|
66
|
+
return Number(item);
|
67
|
+
});
|
68
|
+
});
|
69
|
+
}, [value]);
|
70
|
+
var getMatchTypeValue = useCallback(function (index, type) {
|
71
|
+
var matchValue = separateValue[index];
|
72
|
+
var typeIndex = selectorTypes.indexOf(type);
|
73
|
+
var result = matchValue[typeIndex];
|
74
|
+
return result !== undefined && result >= 0 ? result : -1;
|
75
|
+
}, [separateValue, selectorTypes]);
|
76
|
+
var judgeTypeIsLastOne = useCallback(function (type) {
|
77
|
+
return selectorTypes.indexOf(type) === selectorTypes.length - 1;
|
78
|
+
}, [selectorTypes]);
|
79
|
+
var customDisabledHours = useCallback(function (panel) {
|
80
|
+
var result = disabledHours(panel);
|
81
|
+
|
82
|
+
if (panel === 'range-end') {
|
83
|
+
var startHour = getMatchTypeValue(0, TimePickerSelectorType.hour);
|
84
|
+
var isLastOne = judgeTypeIsLastOne(TimePickerSelectorType.hour); // 当当前类型为最后一个类型的时候
|
85
|
+
// 不能够选择与开始一致的值
|
86
|
+
|
87
|
+
result = [].concat(result, getRange(0, isLastOne ? startHour : startHour - 1));
|
88
|
+
}
|
89
|
+
|
90
|
+
return result;
|
91
|
+
}, [getMatchTypeValue, disabledHours, judgeTypeIsLastOne]);
|
92
|
+
var customDisabledMinute = useCallback(function (hour, panel) {
|
93
|
+
var result = disabledMinutes(hour, panel);
|
94
|
+
|
95
|
+
if (panel === 'range-end') {
|
96
|
+
var startHour = getMatchTypeValue(0, TimePickerSelectorType.hour);
|
97
|
+
var startMinute = getMatchTypeValue(0, TimePickerSelectorType.minute); // 当前类型中包含了小时
|
98
|
+
// minute 有值
|
99
|
+
|
100
|
+
if (hour >= 0) {
|
101
|
+
// 开始时间等于结束时间,则直接禁用开始时间之前的时间
|
102
|
+
if (startHour === hour) {
|
103
|
+
var isLastOne = judgeTypeIsLastOne(TimePickerSelectorType.minute); // 当当前类型为最后一个类型的时候
|
104
|
+
// 不能够选择与开始一致的值
|
105
|
+
|
106
|
+
result = [].concat(result, getRange(0, isLastOne ? startMinute : startMinute - 1));
|
107
|
+
} // 开始时间大于结束时间,直接禁用所有
|
108
|
+
else if (startHour > hour) {
|
109
|
+
result = [].concat(result, getRange(0, 59));
|
110
|
+
}
|
111
|
+
}
|
112
|
+
}
|
113
|
+
|
114
|
+
return result;
|
115
|
+
}, [getMatchTypeValue, judgeTypeIsLastOne, disabledMinutes]);
|
116
|
+
var customDisabledSeconds = useCallback(function (hour, minute, panel) {
|
117
|
+
var result = disabledSeconds(hour, minute, panel);
|
118
|
+
|
119
|
+
if (panel === 'range-end') {
|
120
|
+
var startHour = getMatchTypeValue(0, TimePickerSelectorType.hour);
|
121
|
+
var startMinute = getMatchTypeValue(0, TimePickerSelectorType.minute);
|
122
|
+
var startSecond = getMatchTypeValue(0, TimePickerSelectorType.second);
|
123
|
+
var allDisabled = false; // 如果小时存在,并且开始小时大于结束,禁用所有秒
|
124
|
+
|
125
|
+
if (hour >= 0 && startHour > hour) {
|
126
|
+
allDisabled = true;
|
127
|
+
} // 如果小时存在,并且开始结束小时一样,并且开始分钟大于结束分钟,禁用所有秒
|
128
|
+
|
129
|
+
|
130
|
+
if (hour >= 0 && startHour === hour && minute >= 0 && startMinute > minute) {
|
131
|
+
allDisabled = true;
|
132
|
+
}
|
133
|
+
|
134
|
+
if (allDisabled) {
|
135
|
+
result = [].concat(result, getRange(0, 59));
|
136
|
+
} else {
|
137
|
+
// hour 不存在 或者存在并且开始与结束相同
|
138
|
+
// 则视作,小时相等
|
139
|
+
var isHourEqual = hour < 0 || startHour === hour; // minute 不存在 或者存在并且开始与结束相同
|
140
|
+
// 则视作,分钟相等
|
141
|
+
|
142
|
+
var isMinuteEqual = minute < 0 || startMinute === minute; // 分钟小时相等,则需要根据 开始 秒 做禁用处理
|
143
|
+
|
144
|
+
if (isHourEqual && isMinuteEqual) {
|
145
|
+
result = [].concat(result, getRange(0, startSecond));
|
146
|
+
}
|
147
|
+
}
|
148
|
+
}
|
149
|
+
|
150
|
+
return result;
|
151
|
+
}, [getMatchTypeValue, disabledSeconds]);
|
152
|
+
var componentClass = useMemo(function () {
|
153
|
+
return prefix + "__pop-content";
|
154
|
+
}, [prefix]);
|
155
|
+
var renderPanel = useCallback(function (index) {
|
156
|
+
return /*#__PURE__*/React.createElement("div", {
|
157
|
+
className: componentClass + "__panel-container"
|
158
|
+
}, /*#__PURE__*/React.createElement(Panel, {
|
159
|
+
itemHeight: itemHeight,
|
160
|
+
fullDisplayItemNumber: fullDisplayItemNumber,
|
161
|
+
hourStep: hourStep,
|
162
|
+
secondStep: secondStep,
|
163
|
+
minuteStep: minuteStep,
|
164
|
+
disabledHours: customDisabledHours,
|
165
|
+
disabledMinutes: customDisabledMinute,
|
166
|
+
disabledSeconds: customDisabledSeconds,
|
167
|
+
prefix: prefix,
|
168
|
+
format: format,
|
169
|
+
value: value[index],
|
170
|
+
panel: type === 'single' ? 'single' : index === 0 ? 'range-start' : 'range-end',
|
171
|
+
onChange: function onChange(e) {
|
172
|
+
var result = [].concat(value);
|
173
|
+
result[index] = e;
|
174
|
+
|
175
|
+
_onChange(result);
|
176
|
+
}
|
177
|
+
}));
|
178
|
+
}, [hourStep, minuteStep, secondStep, customDisabledHours, customDisabledMinute, customDisabledSeconds, format, prefix, type, value, _onChange, fullDisplayItemNumber, itemHeight, componentClass]);
|
179
|
+
return /*#__PURE__*/React.createElement("div", {
|
180
|
+
className: componentClass,
|
181
|
+
style: style
|
182
|
+
}, renderPanel(0), type === 'range' && /*#__PURE__*/React.createElement("div", {
|
183
|
+
className: componentClass + "__separator"
|
184
|
+
}), type === 'range' && renderPanel(1));
|
185
|
+
};
|
186
|
+
|
187
|
+
export { PopContent };
|
188
|
+
//# sourceMappingURL=PopContent.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"PopContent.js","sources":["../../src/PopContent.tsx"],"sourcesContent":[null],"names":["DefaultDisabledFunc","PopContent","props","prefix","_prefix","dangerousValue","value","onChange","format","type","itemHeight","fullDisplayItemNumber","hourStep","minuteStep","secondStep","disabledHours","originalDisabledHours","disabledSeconds","originalDisabledSeconds","disabledMinutes","originalDisabledMinutes","style","useFilter","useMemo","map","item","getFormatDefault","selectorTypes","analysisFormat","separateValue","disposeItem","split","filter","Number","getMatchTypeValue","useCallback","index","matchValue","typeIndex","indexOf","result","undefined","judgeTypeIsLastOne","length","customDisabledHours","panel","startHour","TimePickerSelectorType","hour","isLastOne","getRange","customDisabledMinute","startMinute","minute","customDisabledSeconds","startSecond","second","allDisabled","isHourEqual","isMinuteEqual","componentClass","renderPanel","React","className","Panel","e"],"mappings":"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"}
|
@@ -0,0 +1,110 @@
|
|
1
|
+
/** @LICENSE
|
2
|
+
* @hi-ui/time-picker
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/time-picker#readme
|
4
|
+
*
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
6
|
+
*
|
7
|
+
* This source code is licensed under the MIT license found in the
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
9
|
+
*/
|
10
|
+
import React, { useRef, useMemo, useCallback, useEffect } from 'react';
|
11
|
+
import { cx } from '@hi-ui/classname';
|
12
|
+
var SelectorPosition;
|
13
|
+
|
14
|
+
(function (SelectorPosition) {
|
15
|
+
SelectorPosition["left"] = "left";
|
16
|
+
SelectorPosition["right"] = "right";
|
17
|
+
SelectorPosition["middle"] = "middle";
|
18
|
+
SelectorPosition["single"] = "single";
|
19
|
+
})(SelectorPosition || (SelectorPosition = {}));
|
20
|
+
|
21
|
+
var ITEM_MARGIN_SIZE = 8;
|
22
|
+
|
23
|
+
var Selector = function Selector(props) {
|
24
|
+
var prefix = props.prefix,
|
25
|
+
value = props.value,
|
26
|
+
data = props.data,
|
27
|
+
onChange = props.onChange,
|
28
|
+
itemHeight = props.itemHeight,
|
29
|
+
fullDisplayItemNumber = props.fullDisplayItemNumber,
|
30
|
+
position = props.position;
|
31
|
+
var componentPrefix = prefix + "__selector";
|
32
|
+
var stopScrollTimeoutHandler = useRef(-1); // 滚动容器引用
|
33
|
+
|
34
|
+
var scrollContainerRef = useRef(null);
|
35
|
+
var safePadding = useMemo(function () {
|
36
|
+
return (fullDisplayItemNumber - 1) * (itemHeight + ITEM_MARGIN_SIZE) / 2;
|
37
|
+
}, [fullDisplayItemNumber, itemHeight]);
|
38
|
+
var calcCurrentIndex = useCallback(function (scrollTop) {
|
39
|
+
return Math.floor((scrollTop - safePadding + fullDisplayItemNumber * (itemHeight + ITEM_MARGIN_SIZE) / 2) / (itemHeight + ITEM_MARGIN_SIZE));
|
40
|
+
}, [safePadding, itemHeight, fullDisplayItemNumber]);
|
41
|
+
var scrollToMatchIndex = useCallback(function (index) {
|
42
|
+
if (scrollContainerRef.current) {
|
43
|
+
scrollContainerRef.current.scrollTop = index * (itemHeight + ITEM_MARGIN_SIZE);
|
44
|
+
}
|
45
|
+
}, [itemHeight]);
|
46
|
+
var onScroll = useCallback(function (e) {
|
47
|
+
e.persist();
|
48
|
+
e.stopPropagation(); // 清除用做判断是否滚动停止的定时器
|
49
|
+
|
50
|
+
clearTimeout(stopScrollTimeoutHandler.current); // 计算当前选中的 index 下标
|
51
|
+
|
52
|
+
var currentIndex = calcCurrentIndex(e.target.scrollTop);
|
53
|
+
|
54
|
+
if (currentIndex > data.length) {
|
55
|
+
currentIndex = data.length - 1;
|
56
|
+
} // 200ms 后如果事件没有再次响应,则视作滚动停止
|
57
|
+
// 不论是否禁用,我们都需要自动滚动到对应 index
|
58
|
+
|
59
|
+
|
60
|
+
stopScrollTimeoutHandler.current = setTimeout(function () {
|
61
|
+
scrollToMatchIndex(currentIndex); // 通知外部改变
|
62
|
+
// 如果当前 item 被禁用了,则无通知
|
63
|
+
|
64
|
+
if (!data[currentIndex].disabled) {
|
65
|
+
onChange(data[currentIndex]);
|
66
|
+
}
|
67
|
+
}, 200);
|
68
|
+
}, [calcCurrentIndex, data, onChange, scrollToMatchIndex]);
|
69
|
+
var onItemClick = useCallback(function (item, index) {
|
70
|
+
if (!item.disabled) {
|
71
|
+
onChange(item);
|
72
|
+
}
|
73
|
+
}, [onChange]);
|
74
|
+
useEffect(function () {
|
75
|
+
var currentIndex = data.findIndex(function (item) {
|
76
|
+
return item.id === value;
|
77
|
+
}); // 避免非法值跳转
|
78
|
+
|
79
|
+
if (currentIndex >= 0) {
|
80
|
+
scrollToMatchIndex(currentIndex);
|
81
|
+
}
|
82
|
+
}, [data, value, scrollToMatchIndex]);
|
83
|
+
return /*#__PURE__*/React.createElement("div", {
|
84
|
+
className: cx(componentPrefix, componentPrefix + "--position-" + position)
|
85
|
+
}, /*#__PURE__*/React.createElement("div", {
|
86
|
+
onScroll: onScroll,
|
87
|
+
ref: scrollContainerRef,
|
88
|
+
className: componentPrefix + "__scroll-part",
|
89
|
+
style: {
|
90
|
+
height: fullDisplayItemNumber * (itemHeight + ITEM_MARGIN_SIZE) + "px",
|
91
|
+
padding: safePadding + "px 0"
|
92
|
+
}
|
93
|
+
}, data.map(function (item, index) {
|
94
|
+
var _cx;
|
95
|
+
|
96
|
+
return /*#__PURE__*/React.createElement("div", {
|
97
|
+
className: cx(componentPrefix + "__item", (_cx = {}, _cx[componentPrefix + "__item--disabled"] = item.disabled, _cx[componentPrefix + "__item--active"] = item.id === value, _cx)),
|
98
|
+
key: item.id,
|
99
|
+
onClick: function onClick() {
|
100
|
+
return onItemClick(item, index);
|
101
|
+
},
|
102
|
+
style: {
|
103
|
+
height: itemHeight + "px"
|
104
|
+
}
|
105
|
+
}, item.title);
|
106
|
+
})));
|
107
|
+
};
|
108
|
+
|
109
|
+
export { Selector, SelectorPosition };
|
110
|
+
//# sourceMappingURL=Selector.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Selector.js","sources":["../../src/Selector.tsx"],"sourcesContent":[null],"names":["SelectorPosition","ITEM_MARGIN_SIZE","Selector","props","prefix","value","data","onChange","itemHeight","fullDisplayItemNumber","position","componentPrefix","stopScrollTimeoutHandler","useRef","scrollContainerRef","safePadding","useMemo","calcCurrentIndex","useCallback","scrollTop","Math","floor","scrollToMatchIndex","index","current","onScroll","e","persist","stopPropagation","clearTimeout","currentIndex","target","length","setTimeout","disabled","onItemClick","item","useEffect","findIndex","id","React","className","cx","ref","style","height","padding","map","key","onClick","title"],"mappings":"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"}
|
@@ -0,0 +1,281 @@
|
|
1
|
+
/** @LICENSE
|
2
|
+
* @hi-ui/time-picker
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/time-picker#readme
|
4
|
+
*
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
6
|
+
*
|
7
|
+
* This source code is licensed under the MIT license found in the
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
9
|
+
*/
|
10
|
+
import React, { forwardRef, useState, useRef, useEffect, useCallback, useMemo } from 'react';
|
11
|
+
import { getPrefixCls, cx } from '@hi-ui/classname';
|
12
|
+
import { __DEV__ } from '@hi-ui/env';
|
13
|
+
import { Input } from './Input.js';
|
14
|
+
import { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';
|
15
|
+
import { PopperPortal } from '@hi-ui/popper';
|
16
|
+
import { CloseCircleFilled, TimeOutlined } from '@hi-ui/icons';
|
17
|
+
import { PopContent } from './PopContent.js';
|
18
|
+
import { valueChecker } from './utils/valueChecker.js';
|
19
|
+
import { useFilter } from './hooks/useFilter.js';
|
20
|
+
import { Button } from '@hi-ui/button';
|
21
|
+
import { getNowString } from './utils/getNowString.js';
|
22
|
+
var _role = 'time-picker';
|
23
|
+
|
24
|
+
var _prefix = getPrefixCls(_role);
|
25
|
+
|
26
|
+
var DefaultValue = ['', ''];
|
27
|
+
|
28
|
+
var DefaultDisabledFunc = function DefaultDisabledFunc() {
|
29
|
+
return [];
|
30
|
+
};
|
31
|
+
|
32
|
+
var DefaultPlaceholder = ['', ''];
|
33
|
+
var TimePicker = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
34
|
+
var _cx;
|
35
|
+
|
36
|
+
var _ref$prefixCls = _ref.prefixCls,
|
37
|
+
prefixCls = _ref$prefixCls === void 0 ? _prefix : _ref$prefixCls,
|
38
|
+
_ref$role = _ref.role,
|
39
|
+
role = _ref$role === void 0 ? _role : _ref$role,
|
40
|
+
className = _ref.className,
|
41
|
+
controlledValue = _ref.value,
|
42
|
+
_ref$itemHeight = _ref.itemHeight,
|
43
|
+
itemHeight = _ref$itemHeight === void 0 ? 24 : _ref$itemHeight,
|
44
|
+
_ref$fullDisplayItemN = _ref.fullDisplayItemNumber,
|
45
|
+
fullDisplayItemNumber = _ref$fullDisplayItemN === void 0 ? 7 : _ref$fullDisplayItemN,
|
46
|
+
_ref$hourStep = _ref.hourStep,
|
47
|
+
hourStep = _ref$hourStep === void 0 ? 1 : _ref$hourStep,
|
48
|
+
_ref$minuteStep = _ref.minuteStep,
|
49
|
+
minuteStep = _ref$minuteStep === void 0 ? 1 : _ref$minuteStep,
|
50
|
+
_ref$secondStep = _ref.secondStep,
|
51
|
+
secondStep = _ref$secondStep === void 0 ? 1 : _ref$secondStep,
|
52
|
+
_ref$format = _ref.format,
|
53
|
+
format = _ref$format === void 0 ? 'HH:mm:ss' : _ref$format,
|
54
|
+
_ref$type = _ref.type,
|
55
|
+
type = _ref$type === void 0 ? 'single' : _ref$type,
|
56
|
+
_ref$defaultValue = _ref.defaultValue,
|
57
|
+
uncontrolledValue = _ref$defaultValue === void 0 ? DefaultValue : _ref$defaultValue,
|
58
|
+
_ref$disabled = _ref.disabled,
|
59
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
60
|
+
_ref$disabledHours = _ref.disabledHours,
|
61
|
+
originalDisabledHours = _ref$disabledHours === void 0 ? DefaultDisabledFunc : _ref$disabledHours,
|
62
|
+
_ref$disabledSeconds = _ref.disabledSeconds,
|
63
|
+
originalDisabledSeconds = _ref$disabledSeconds === void 0 ? DefaultDisabledFunc : _ref$disabledSeconds,
|
64
|
+
_ref$disabledMinutes = _ref.disabledMinutes,
|
65
|
+
originalDisabledMinutes = _ref$disabledMinutes === void 0 ? DefaultDisabledFunc : _ref$disabledMinutes,
|
66
|
+
_ref$bordered = _ref.bordered,
|
67
|
+
bordered = _ref$bordered === void 0 ? true : _ref$bordered,
|
68
|
+
notifyOutside = _ref.onChange,
|
69
|
+
_ref$placeholder = _ref.placeholder,
|
70
|
+
placeholder = _ref$placeholder === void 0 ? DefaultPlaceholder : _ref$placeholder,
|
71
|
+
_ref$inputReadonly = _ref.inputReadonly,
|
72
|
+
inputReadonly = _ref$inputReadonly === void 0 ? false : _ref$inputReadonly;
|
73
|
+
|
74
|
+
var _useState = useState(null),
|
75
|
+
attachEl = _useState[0],
|
76
|
+
setAttachEl = _useState[1];
|
77
|
+
|
78
|
+
var _useUncontrolledState = useUncontrolledState(uncontrolledValue, controlledValue, notifyOutside),
|
79
|
+
value = _useUncontrolledState[0],
|
80
|
+
onChange = _useUncontrolledState[1];
|
81
|
+
|
82
|
+
var inputRef = useRef(null);
|
83
|
+
|
84
|
+
var _useState2 = useState(true),
|
85
|
+
isInputValid = _useState2[0],
|
86
|
+
setIsInputValid = _useState2[1];
|
87
|
+
|
88
|
+
var _useState3 = useState(value),
|
89
|
+
cacheValue = _useState3[0],
|
90
|
+
setCacheValue = _useState3[1];
|
91
|
+
|
92
|
+
var cacheValueRef = useRef(cacheValue); // 将值统一转化为函数
|
93
|
+
|
94
|
+
var _useFilter = useFilter({
|
95
|
+
disabledHours: originalDisabledHours,
|
96
|
+
disabledMinutes: originalDisabledMinutes,
|
97
|
+
disabledSeconds: originalDisabledSeconds
|
98
|
+
}),
|
99
|
+
disabledHours = _useFilter.disabledHours,
|
100
|
+
disabledMinutes = _useFilter.disabledMinutes,
|
101
|
+
disabledSeconds = _useFilter.disabledSeconds;
|
102
|
+
|
103
|
+
useEffect(function () {
|
104
|
+
cacheValueRef.current = [].concat(value);
|
105
|
+
setCacheValue(function (pre) {
|
106
|
+
if (pre.join('') !== value.join('')) {
|
107
|
+
return [].concat(value);
|
108
|
+
}
|
109
|
+
|
110
|
+
return pre;
|
111
|
+
});
|
112
|
+
}, [value]);
|
113
|
+
var getPanelType = useCallback(function (index) {
|
114
|
+
if (type === 'single') {
|
115
|
+
return 'single';
|
116
|
+
} else {
|
117
|
+
return index === 0 ? 'range-start' : 'range-end';
|
118
|
+
}
|
119
|
+
}, [type]); // 检查值是否合规
|
120
|
+
|
121
|
+
var validChecker = useCallback(function (checkValue) {
|
122
|
+
// 检查 range 情况下值是否正确
|
123
|
+
// 视开始结束都为空值为正确值
|
124
|
+
var rangeValid = checkValue.join('') === '' || checkValue[1] > checkValue[0];
|
125
|
+
return checkValue.every(function (item, index) {
|
126
|
+
return valueChecker({
|
127
|
+
value: item,
|
128
|
+
format: format,
|
129
|
+
filter: {
|
130
|
+
disabledSeconds: disabledSeconds,
|
131
|
+
disabledMinutes: disabledMinutes,
|
132
|
+
disabledHours: disabledHours
|
133
|
+
},
|
134
|
+
step: {
|
135
|
+
hourStep: hourStep,
|
136
|
+
minuteStep: minuteStep,
|
137
|
+
secondStep: secondStep
|
138
|
+
},
|
139
|
+
panelType: getPanelType(index)
|
140
|
+
});
|
141
|
+
}) && ( // 单选不检查前后关系
|
142
|
+
type === 'single' || rangeValid);
|
143
|
+
}, [hourStep, getPanelType, minuteStep, secondStep, disabledHours, disabledMinutes, disabledSeconds, format, type]);
|
144
|
+
var onCacheChange = useCallback(function (newValue) {
|
145
|
+
var result = newValue.slice(0, type === 'single' ? 1 : 2);
|
146
|
+
cacheValueRef.current = [].concat(result); // 避免重复渲染
|
147
|
+
|
148
|
+
setCacheValue(function (pre) {
|
149
|
+
if (pre.join('') !== result.join('')) {
|
150
|
+
return [].concat(result);
|
151
|
+
}
|
152
|
+
|
153
|
+
return pre;
|
154
|
+
});
|
155
|
+
}, [type]);
|
156
|
+
|
157
|
+
var _useState4 = useState(false),
|
158
|
+
showPopper = _useState4[0],
|
159
|
+
setShowPopper = _useState4[1];
|
160
|
+
|
161
|
+
var showPopperRef = useRef(false);
|
162
|
+
var cls = cx(prefixCls, className, (_cx = {}, _cx[prefixCls + "--border"] = bordered, _cx[prefixCls + "--active"] = showPopper && !disabled, _cx[prefixCls + "--disabled"] = disabled, _cx[prefixCls + "--input-not-valid"] = !isInputValid, _cx));
|
163
|
+
var functionButtons = useMemo(function () {
|
164
|
+
return /*#__PURE__*/React.createElement("div", {
|
165
|
+
className: prefixCls + "__pop-function-buttons"
|
166
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
167
|
+
className: prefixCls + "__pop-confirm-button",
|
168
|
+
type: 'primary',
|
169
|
+
size: "small",
|
170
|
+
disabled: !isInputValid,
|
171
|
+
onClick: function onClick() {
|
172
|
+
// 合法,才去通知外部
|
173
|
+
if (validChecker(cacheValue)) {
|
174
|
+
if (cacheValue.join('') !== value.join('')) {
|
175
|
+
onChange([].concat(cacheValue));
|
176
|
+
}
|
177
|
+
}
|
178
|
+
|
179
|
+
setShowPopper(false);
|
180
|
+
}
|
181
|
+
}, "\u786E\u8BA4"), type === 'single' && /*#__PURE__*/React.createElement("div", {
|
182
|
+
className: prefixCls + "__pop-now-button",
|
183
|
+
onClick: function onClick() {
|
184
|
+
onCacheChange([getNowString(format)]);
|
185
|
+
setShowPopper(false);
|
186
|
+
}
|
187
|
+
}, "\u6B64\u523B"));
|
188
|
+
}, [prefixCls, isInputValid, type, format, onCacheChange, cacheValue, value, onChange, validChecker]);
|
189
|
+
return /*#__PURE__*/React.createElement("div", {
|
190
|
+
ref: ref,
|
191
|
+
role: role,
|
192
|
+
className: cls
|
193
|
+
}, /*#__PURE__*/React.createElement("div", {
|
194
|
+
ref: setAttachEl,
|
195
|
+
className: prefixCls + "__input-wrapper"
|
196
|
+
}, /*#__PURE__*/React.createElement(Input, {
|
197
|
+
ref: inputRef,
|
198
|
+
onValidChange: setIsInputValid,
|
199
|
+
disabled: inputReadonly || disabled,
|
200
|
+
type: type,
|
201
|
+
placeholders: placeholder,
|
202
|
+
prefix: prefixCls,
|
203
|
+
format: format,
|
204
|
+
hourStep: hourStep,
|
205
|
+
secondStep: secondStep,
|
206
|
+
minuteStep: minuteStep,
|
207
|
+
disabledHours: disabledHours,
|
208
|
+
disabledMinutes: disabledMinutes,
|
209
|
+
disabledSeconds: disabledSeconds,
|
210
|
+
value: cacheValue,
|
211
|
+
onChange: onCacheChange,
|
212
|
+
onFocus: function onFocus() {
|
213
|
+
showPopperRef.current = true;
|
214
|
+
setShowPopper(true);
|
215
|
+
}
|
216
|
+
}), /*#__PURE__*/React.createElement("div", {
|
217
|
+
className: prefixCls + "__function-button",
|
218
|
+
onClick: function onClick() {
|
219
|
+
// pop正打开,此时点击按钮为清除功能
|
220
|
+
if (showPopperRef.current) {
|
221
|
+
onCacheChange(type === 'single' ? [''] : ['', '']);
|
222
|
+
}
|
223
|
+
|
224
|
+
showPopperRef.current = !showPopper;
|
225
|
+
setShowPopper(function (pre) {
|
226
|
+
return !pre;
|
227
|
+
});
|
228
|
+
}
|
229
|
+
}, showPopper ? /*#__PURE__*/React.createElement(CloseCircleFilled, {
|
230
|
+
className: prefixCls + "__close-button"
|
231
|
+
}) : /*#__PURE__*/React.createElement(TimeOutlined, null))), /*#__PURE__*/React.createElement(PopperPortal, {
|
232
|
+
unmountOnClose: false,
|
233
|
+
visible: showPopper && !disabled,
|
234
|
+
attachEl: attachEl,
|
235
|
+
onClose: function onClose() {
|
236
|
+
var _a; // 关闭弹窗,视作,抛弃之前的选择行为,复位
|
237
|
+
|
238
|
+
|
239
|
+
showPopperRef.current = false;
|
240
|
+
setShowPopper(false);
|
241
|
+
onCacheChange([].concat(value)); // 强制刷新 input 内容,复位
|
242
|
+
|
243
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.refresh();
|
244
|
+
},
|
245
|
+
preload: true
|
246
|
+
}, /*#__PURE__*/React.createElement(PopContent, {
|
247
|
+
itemHeight: itemHeight,
|
248
|
+
fullDisplayItemNumber: fullDisplayItemNumber,
|
249
|
+
type: type,
|
250
|
+
prefix: prefixCls,
|
251
|
+
format: format,
|
252
|
+
hourStep: hourStep,
|
253
|
+
secondStep: secondStep,
|
254
|
+
minuteStep: minuteStep,
|
255
|
+
disabledHours: disabledHours,
|
256
|
+
disabledMinutes: disabledMinutes,
|
257
|
+
disabledSeconds: disabledSeconds,
|
258
|
+
value: cacheValue,
|
259
|
+
onChange: function onChange(e) {
|
260
|
+
var _a; // 只有弹窗展开的时候才接受 pop content 的值改变
|
261
|
+
// WARNING: 当值错误,弹窗收起,默认会滚动到 00:00:00,并且通知外部(非期望),所以我们需要这个FLAG来避免错误值获取
|
262
|
+
|
263
|
+
|
264
|
+
if (showPopperRef.current) {
|
265
|
+
// 强制刷新 input 内容,复位
|
266
|
+
// 解决此情况:
|
267
|
+
// 输入框输入错误数据,故而input不通知外部,time-picker cache-value 不变化,input接受value不变
|
268
|
+
// 此时我们再次在pop-content点击当前选中值,time-picker cache-value 依旧不变化,input接受value不变,展示的依旧是错误的cache-value
|
269
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.refresh();
|
270
|
+
onCacheChange(e);
|
271
|
+
}
|
272
|
+
}
|
273
|
+
}), functionButtons));
|
274
|
+
});
|
275
|
+
|
276
|
+
if (__DEV__) {
|
277
|
+
TimePicker.displayName = 'TimePicker';
|
278
|
+
}
|
279
|
+
|
280
|
+
export { TimePicker, _prefix };
|
281
|
+
//# sourceMappingURL=TimePicker.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"TimePicker.js","sources":["../../src/TimePicker.tsx"],"sourcesContent":[null],"names":["_role","_prefix","getPrefixCls","DefaultValue","DefaultDisabledFunc","DefaultPlaceholder","TimePicker","forwardRef","ref","prefixCls","role","className","controlledValue","value","itemHeight","fullDisplayItemNumber","hourStep","minuteStep","secondStep","format","type","defaultValue","uncontrolledValue","disabled","disabledHours","originalDisabledHours","disabledSeconds","originalDisabledSeconds","disabledMinutes","originalDisabledMinutes","bordered","notifyOutside","onChange","placeholder","inputReadonly","useState","attachEl","setAttachEl","useUncontrolledState","inputRef","useRef","isInputValid","setIsInputValid","cacheValue","setCacheValue","cacheValueRef","useFilter","useEffect","current","pre","join","getPanelType","useCallback","index","validChecker","checkValue","rangeValid","every","item","valueChecker","filter","step","panelType","onCacheChange","newValue","result","slice","showPopper","setShowPopper","showPopperRef","cls","cx","functionButtons","useMemo","React","Button","size","onClick","getNowString","Input","onValidChange","placeholders","prefix","onFocus","CloseCircleFilled","TimeOutlined","PopperPortal","unmountOnClose","visible","onClose","refresh","preload","PopContent","e","__DEV__","displayName"],"mappings":"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"}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
/** @LICENSE
|
2
|
+
* @hi-ui/time-picker
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/time-picker#readme
|
4
|
+
*
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
6
|
+
*
|
7
|
+
* This source code is licensed under the MIT license found in the
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
9
|
+
*/
|
10
|
+
import { useMemo } from 'react';
|
11
|
+
|
12
|
+
var useFilter = function useFilter(original) {
|
13
|
+
return useMemo(function () {
|
14
|
+
function disabledCompatibility(disposeValue) {
|
15
|
+
if (Array.isArray(disposeValue)) {
|
16
|
+
return function () {
|
17
|
+
return disposeValue;
|
18
|
+
};
|
19
|
+
}
|
20
|
+
|
21
|
+
return disposeValue;
|
22
|
+
}
|
23
|
+
|
24
|
+
return {
|
25
|
+
disabledHours: disabledCompatibility(original.disabledHours),
|
26
|
+
disabledMinutes: disabledCompatibility(original.disabledMinutes),
|
27
|
+
disabledSeconds: disabledCompatibility(original.disabledSeconds)
|
28
|
+
};
|
29
|
+
}, [original.disabledHours, original.disabledSeconds, original.disabledMinutes]);
|
30
|
+
};
|
31
|
+
|
32
|
+
export { useFilter };
|
33
|
+
//# sourceMappingURL=useFilter.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useFilter.js","sources":["../../../src/hooks/useFilter.ts"],"sourcesContent":[null],"names":["useFilter","original","useMemo","disabledCompatibility","disposeValue","Array","isArray","disabledHours","disabledMinutes","disabledSeconds"],"mappings":";;;;;;;;;;;IASaA,SAAS,GAAG,SAAZA,SAAY,CAACC,QAAD;SAChBC,OAAO,CAAC;aACJC,sBAAyBC;UAC5BC,KAAK,CAACC,OAAND,CAAcD,YAAdC,GAA6B;eACtB;iBAAMD;AAAf;;;aAEKA;;;WAEF;AACLG,MAAAA,aAAa,EAAEJ,qBAAqB,CAAkCF,QAAQ,CAACM,aAA3C,CAD/B;AAELC,MAAAA,eAAe,EAAEL,qBAAqB,CACpCF,QAAQ,CAACO,eAD2B,CAFjC;AAKLC,MAAAA,eAAe,EAAEN,qBAAqB,CACpCF,QAAQ,CAACQ,eAD2B;AALjC;AAPK,GAAA,EAgBX,CAACR,QAAQ,CAACM,aAAV,EAAyBN,QAAQ,CAACQ,eAAlC,EAAmDR,QAAQ,CAACO,eAA5D,CAhBW;;;"}
|