@hi-ui/time-picker 4.0.0-alpha.9 → 4.0.0-beta.0
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 +37 -7
- package/lib/cjs/Input.js +8 -5
- package/lib/cjs/Input.js.map +1 -1
- package/lib/cjs/Panel.js +7 -10
- package/lib/cjs/Panel.js.map +1 -1
- package/lib/cjs/PopContent.js +9 -7
- package/lib/cjs/PopContent.js.map +1 -1
- package/lib/cjs/Selector.js +34 -22
- package/lib/cjs/Selector.js.map +1 -1
- package/lib/cjs/TimePicker.js +61 -27
- package/lib/cjs/TimePicker.js.map +1 -1
- package/lib/cjs/index.js +1 -1
- package/lib/cjs/styles/index.scss.js +1 -1
- package/lib/esm/Input.js +8 -5
- package/lib/esm/Input.js.map +1 -1
- package/lib/esm/Panel.js +7 -10
- package/lib/esm/Panel.js.map +1 -1
- package/lib/esm/PopContent.js +10 -8
- package/lib/esm/PopContent.js.map +1 -1
- package/lib/esm/Selector.js +35 -23
- package/lib/esm/Selector.js.map +1 -1
- package/lib/esm/TimePicker.js +59 -28
- package/lib/esm/TimePicker.js.map +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/styles/index.scss.js +1 -1
- package/lib/types/@types/index.d.ts +1 -0
- package/lib/types/Input.d.ts +2 -0
- package/lib/types/Panel.d.ts +0 -2
- package/lib/types/PopContent.d.ts +0 -2
- package/lib/types/Selector.d.ts +0 -2
- package/lib/types/TimePicker.d.ts +17 -17
- package/package.json +14 -13
package/README.md
CHANGED
@@ -1,11 +1,41 @@
|
|
1
|
-
#
|
1
|
+
# TimePicker 时间选择器
|
2
2
|
|
3
|
-
|
3
|
+
## 使用示例
|
4
4
|
|
5
|
-
|
5
|
+
<!-- Inject Stories -->
|
6
6
|
|
7
|
-
|
8
|
-
const TimePicker = require('@hi-ui/time-picker');
|
7
|
+
## Props
|
9
8
|
|
10
|
-
|
11
|
-
|
9
|
+
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|
10
|
+
| --------------- | -------- | ---------------------------------------------------------------------- | ------------------------ | --------- |
|
11
|
+
| type | 选择器类型 | string | 'default' \| 'timerange' | 'default' |
|
12
|
+
| value | 显示的日期 | Date \| string \| number \| object \| - | - | - |
|
13
|
+
| format | 格式化时间 | string | - | - |
|
14
|
+
| inputReadOnly | 设置输入框为只读 | boolean | true \| false | false |
|
15
|
+
| bordered | 是否有边框 | boolean | true \| false | true |
|
16
|
+
| hourStep | 小时选项间隔 | number | - | 1 |
|
17
|
+
| minuteStep | 分钟选项间隔 | number | - | 1 |
|
18
|
+
| secondStep | 秒选项间隔 | number | - | 1 |
|
19
|
+
| disabled | 是否禁用 | boolean | true \| false | false |
|
20
|
+
| placeholder | 设置输入框占位 | string \| string[] | - | - |
|
21
|
+
| disabledHours | 禁止选择的小时 | () => number[] \| number[] | - | - |
|
22
|
+
| disabledMinutes | 禁止选择的分钟 | (selectedHour: number) => number[] \| number[] | - | - |
|
23
|
+
| disabledSeconds | 禁止选择的秒数 | (selectedHour: number, selectedMinute: number) => number[] \| number[] | - | - |
|
24
|
+
|
25
|
+
## Events
|
26
|
+
|
27
|
+
| 名称 | 说明 | 类型 | 参数 | 返回值 |
|
28
|
+
| -------- | ------ | ---------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | --- |
|
29
|
+
| onChange | 选择后的回调 | (date: Date \| DateRange, dateStr: string \| DateRange ) => void | date: 选中的日期(普通选择) \| 选中的日期范围{start: Date, end: Date}(范围选择) <br/> dateStr: 选中的日期字符串(普通选择) \| 选中的日期字符串对象{start: string, end: string}(范围选择) | - |
|
30
|
+
|
31
|
+
## CHANGELOG
|
32
|
+
|
33
|
+
| 参数 | 变更类型 | 变更内容 | 解决的问题 |
|
34
|
+
| --------------------------------------------- | ------- | ---------------------------------- | ------------------- |
|
35
|
+
| disabledHours、disabledMinutes、disabledSeconds | feature | 函数式方法集体最后添加参数 panel,代表当前计算的是开始还是结束 | 无法根据开始结束对特定panel做限制 |
|
36
|
+
| value | update | 类型变更为 string[] | 类型收敛 |
|
37
|
+
| defaultValue | feature | 新增非受控态 | |
|
38
|
+
| placeholder | update | 类型变更为 string[] | 类型收敛 |
|
39
|
+
| itemHeight | feature | 新增选择器高 | |
|
40
|
+
| fullDisplayItemNumber | feature | 完全展示Item的数目 | |
|
41
|
+
| onChange | update | 参数类型变更为 string[] | 类型收敛 |
|
package/lib/cjs/Input.js
CHANGED
@@ -48,7 +48,9 @@ var Input = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
48
48
|
_onChange = props.onChange,
|
49
49
|
_onFocus = props.onFocus,
|
50
50
|
disabled = props.disabled,
|
51
|
-
onValidChange = props.onValidChange
|
51
|
+
onValidChange = props.onValidChange,
|
52
|
+
isFitContent = props.isFitContent,
|
53
|
+
size = props.size;
|
52
54
|
var componentClass = React.useMemo(function () {
|
53
55
|
return prefix + "__input";
|
54
56
|
}, [prefix]);
|
@@ -149,9 +151,10 @@ var Input = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
149
151
|
},
|
150
152
|
value: matchValue,
|
151
153
|
placeholder: placeholders[index]
|
152
|
-
})
|
153
|
-
|
154
|
-
|
154
|
+
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
155
|
+
className: componentClass + "__shadow-text"
|
156
|
+
}, matchValue || placeholders[index]));
|
157
|
+
}, [componentClass, disabled, placeholders, isFitContent, format, cacheValue, validChecker, getPanelType, _onChange, _onFocus]); // 通知外部,输入框内容合法性变更
|
155
158
|
|
156
159
|
React.useEffect(function () {
|
157
160
|
onValidChange(judgeIsValid(cacheValue));
|
@@ -164,7 +167,7 @@ var Input = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
164
167
|
};
|
165
168
|
}, [value]);
|
166
169
|
return /*#__PURE__*/React__default['default'].createElement("div", {
|
167
|
-
className: classname.cx(componentClass, (_cx = {}, _cx[componentClass + "--not-valid"] = !judgeIsValid(cacheValue), _cx[componentClass + "--range"] = type === 'range', _cx[componentClass + "--disabled"] = disabled, _cx))
|
170
|
+
className: classname.cx(componentClass, componentClass + "--size-" + size, (_cx = {}, _cx[componentClass + "--not-valid"] = !judgeIsValid(cacheValue), _cx[componentClass + "--range"] = type === 'range', _cx[componentClass + "--disabled"] = disabled, _cx[componentClass + "--fit-content"] = isFitContent, _cx))
|
168
171
|
}, renderInput(cacheValue[0], 0), type === 'range' && /*#__PURE__*/React__default['default'].createElement("div", {
|
169
172
|
className: componentClass + "__range-separator"
|
170
173
|
}, "\u81F3"), type === 'range' && renderInput(cacheValue[1], 1));
|
package/lib/cjs/Input.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Input.js","sources":["../../src/Input.tsx"],"sourcesContent":[null],"names":["Input","forwardRef","props","ref","prefix","value","format","hourStep","minuteStep","secondStep","disabledHours","disabledMinutes","disabledSeconds","type","placeholders","onChange","onFocus","disabled","onValidChange","componentClass","useMemo","useState","cacheValue","setCacheValue","getPanelType","useCallback","index","validChecker","checkValue","panelType","valueChecker","filter","step","useEffect","pre","result","slice","join","judgeIsValid","disposeValue","valueValid","every","item","renderInput","matchValue","dispose","needValid","newValue","disposeInputValue","undefined","React","className","e","target","placeholder","useImperativeHandle","refresh","cx","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
1
|
+
{"version":3,"file":"Input.js","sources":["../../src/Input.tsx"],"sourcesContent":[null],"names":["Input","forwardRef","props","ref","prefix","value","format","hourStep","minuteStep","secondStep","disabledHours","disabledMinutes","disabledSeconds","type","placeholders","onChange","onFocus","disabled","onValidChange","isFitContent","size","componentClass","useMemo","useState","cacheValue","setCacheValue","getPanelType","useCallback","index","validChecker","checkValue","panelType","valueChecker","filter","step","useEffect","pre","result","slice","join","judgeIsValid","disposeValue","valueValid","every","item","renderInput","matchValue","dispose","needValid","newValue","disposeInputValue","undefined","React","className","e","target","placeholder","useImperativeHandle","refresh","cx","displayName"],"mappings":"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"}
|
package/lib/cjs/Panel.js
CHANGED
@@ -44,9 +44,7 @@ var Panel = function Panel(props) {
|
|
44
44
|
format = props.format,
|
45
45
|
value = props.value,
|
46
46
|
panel = props.panel,
|
47
|
-
_onChange = props.onChange
|
48
|
-
itemHeight = props.itemHeight,
|
49
|
-
fullDisplayItemNumber = props.fullDisplayItemNumber;
|
47
|
+
_onChange = props.onChange;
|
50
48
|
var componentPrefix = React.useMemo(function () {
|
51
49
|
return prefix + "__panel";
|
52
50
|
}, [prefix]);
|
@@ -110,8 +108,8 @@ var Panel = function Panel(props) {
|
|
110
108
|
value: String(separateValue[index]),
|
111
109
|
prefix: prefix,
|
112
110
|
position: position,
|
113
|
-
|
114
|
-
|
111
|
+
// itemHeight={itemHeight}
|
112
|
+
// fullDisplayItemNumber={fullDisplayItemNumber}
|
115
113
|
onChange: function onChange(e) {
|
116
114
|
var result = [].concat(separateValue).slice(0, selectorTypes.length); // 如果 value = '',则代表为空值
|
117
115
|
// 此时选择任意项,其他项直接视作 0
|
@@ -128,13 +126,12 @@ var Panel = function Panel(props) {
|
|
128
126
|
},
|
129
127
|
data: getSelectorData(type)
|
130
128
|
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
131
|
-
className: classname.cx(componentPrefix + "__indicator", (_cx = {}, _cx[componentPrefix + "__indicator--left"] = index === 0, _cx[componentPrefix + "__indicator--right"] = index === selectorTypes.length - 1, _cx))
|
132
|
-
style: {
|
133
|
-
height: itemHeight + "px"
|
134
|
-
}
|
129
|
+
className: classname.cx(componentPrefix + "__indicator", (_cx = {}, _cx[componentPrefix + "__indicator--left"] = index === 0, _cx[componentPrefix + "__indicator--right"] = index === selectorTypes.length - 1, _cx))
|
135
130
|
}));
|
136
131
|
}));
|
137
|
-
}, [selectorTypes, componentPrefix, prefix, getSelectorData, _onChange, separateValue, itemHeight,
|
132
|
+
}, [selectorTypes, componentPrefix, prefix, getSelectorData, _onChange, separateValue, // itemHeight,
|
133
|
+
// fullDisplayItemNumber,
|
134
|
+
value]);
|
138
135
|
return /*#__PURE__*/React__default['default'].createElement("div", {
|
139
136
|
className: componentPrefix
|
140
137
|
}, renderSelectors());
|
package/lib/cjs/Panel.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Panel.js","sources":["../../src/Panel.tsx"],"sourcesContent":[null],"names":["Panel","props","hourStep","secondStep","minuteStep","disabledHours","disabledMinutes","disabledSeconds","prefix","format","value","panel","onChange","
|
1
|
+
{"version":3,"file":"Panel.js","sources":["../../src/Panel.tsx"],"sourcesContent":[null],"names":["Panel","props","hourStep","secondStep","minuteStep","disabledHours","disabledMinutes","disabledSeconds","prefix","format","value","panel","onChange","componentPrefix","useMemo","selectorTypes","analysisFormat","separateValue","split","filter","item","map","Number","getSelectorData","useCallback","type","generateSelectorData","panelType","step","renderSelectors","React","className","index","position","length","SelectorPosition","single","middle","left","right","key","Selector","String","e","result","slice","id","padStart","join","data","cx"],"mappings":"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"}
|
package/lib/cjs/PopContent.js
CHANGED
@@ -45,13 +45,11 @@ var DefaultDisabledFunc = function DefaultDisabledFunc() {
|
|
45
45
|
|
46
46
|
var PopContent = function PopContent(props) {
|
47
47
|
var _props$prefix = props.prefix,
|
48
|
-
prefix = _props$prefix === void 0 ? TimePicker.
|
48
|
+
prefix = _props$prefix === void 0 ? TimePicker.timePickerPrefix : _props$prefix,
|
49
49
|
dangerousValue = props.value,
|
50
50
|
_onChange = props.onChange,
|
51
51
|
format = props.format,
|
52
52
|
type = props.type,
|
53
|
-
itemHeight = props.itemHeight,
|
54
|
-
fullDisplayItemNumber = props.fullDisplayItemNumber,
|
55
53
|
hourStep = props.hourStep,
|
56
54
|
minuteStep = props.minuteStep,
|
57
55
|
secondStep = props.secondStep,
|
@@ -178,9 +176,11 @@ var PopContent = function PopContent(props) {
|
|
178
176
|
var renderPanel = React.useCallback(function (index) {
|
179
177
|
return /*#__PURE__*/React__default['default'].createElement("div", {
|
180
178
|
className: componentClass + "__panel-container"
|
181
|
-
}, /*#__PURE__*/React__default['default'].createElement(Panel.Panel
|
182
|
-
|
183
|
-
|
179
|
+
}, /*#__PURE__*/React__default['default'].createElement(Panel.Panel // itemHeight={itemHeight}
|
180
|
+
// fullDisplayItemNumber={fullDisplayItemNumber}
|
181
|
+
, {
|
182
|
+
// itemHeight={itemHeight}
|
183
|
+
// fullDisplayItemNumber={fullDisplayItemNumber}
|
184
184
|
hourStep: hourStep,
|
185
185
|
secondStep: secondStep,
|
186
186
|
minuteStep: minuteStep,
|
@@ -198,7 +198,9 @@ var PopContent = function PopContent(props) {
|
|
198
198
|
_onChange(result);
|
199
199
|
}
|
200
200
|
}));
|
201
|
-
}, [hourStep, minuteStep, secondStep, customDisabledHours, customDisabledMinute, customDisabledSeconds, format, prefix, type, value, _onChange, fullDisplayItemNumber,
|
201
|
+
}, [hourStep, minuteStep, secondStep, customDisabledHours, customDisabledMinute, customDisabledSeconds, format, prefix, type, value, _onChange, // fullDisplayItemNumber,
|
202
|
+
// itemHeight,
|
203
|
+
componentClass]);
|
202
204
|
return /*#__PURE__*/React__default['default'].createElement("div", {
|
203
205
|
className: componentClass,
|
204
206
|
style: style
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"PopContent.js","sources":["../../src/PopContent.tsx"],"sourcesContent":[null],"names":["DefaultDisabledFunc","PopContent","props","prefix","
|
1
|
+
{"version":3,"file":"PopContent.js","sources":["../../src/PopContent.tsx"],"sourcesContent":[null],"names":["DefaultDisabledFunc","PopContent","props","prefix","timePickerPrefix","dangerousValue","value","onChange","format","type","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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"}
|
package/lib/cjs/Selector.js
CHANGED
@@ -36,31 +36,31 @@ exports.SelectorPosition = void 0;
|
|
36
36
|
SelectorPosition["single"] = "single";
|
37
37
|
})(exports.SelectorPosition || (exports.SelectorPosition = {}));
|
38
38
|
|
39
|
-
var ITEM_MARGIN_SIZE = 8;
|
40
|
-
|
41
39
|
var Selector = function Selector(props) {
|
42
40
|
var prefix = props.prefix,
|
43
41
|
value = props.value,
|
44
42
|
data = props.data,
|
45
43
|
onChange = props.onChange,
|
46
|
-
itemHeight = props.itemHeight,
|
47
|
-
fullDisplayItemNumber = props.fullDisplayItemNumber,
|
48
44
|
position = props.position;
|
49
45
|
var componentPrefix = prefix + "__selector";
|
50
46
|
var stopScrollTimeoutHandler = React.useRef(-1); // 滚动容器引用
|
51
47
|
|
52
48
|
var scrollContainerRef = React.useRef(null);
|
53
|
-
var
|
54
|
-
|
55
|
-
|
49
|
+
var topItemGagerRef = React.useRef(null);
|
50
|
+
var bottomItemGagerRef = React.useRef(null);
|
51
|
+
var lastValueMatchIndexCache = React.useRef(-1); // const safePadding = useMemo(
|
52
|
+
// () => ((fullDisplayItemNumber - 1) * (itemHeight + ITEM_MARGIN_SIZE)) / 2,
|
53
|
+
// [fullDisplayItemNumber, itemHeight]
|
54
|
+
// )
|
55
|
+
|
56
56
|
var calcCurrentIndex = React.useCallback(function (scrollTop) {
|
57
|
-
return Math.floor(
|
58
|
-
}, [
|
57
|
+
return Math.floor(scrollTop / (topItemGagerRef.current.clientHeight + (bottomItemGagerRef.current.offsetTop - topItemGagerRef.current.offsetTop - topItemGagerRef.current.clientHeight)));
|
58
|
+
}, []);
|
59
59
|
var scrollToMatchIndex = React.useCallback(function (index) {
|
60
60
|
if (scrollContainerRef.current) {
|
61
|
-
scrollContainerRef.current.scrollTop = index * (
|
61
|
+
scrollContainerRef.current.scrollTop = index * (topItemGagerRef.current.clientHeight + (bottomItemGagerRef.current.offsetTop - topItemGagerRef.current.offsetTop - topItemGagerRef.current.clientHeight));
|
62
62
|
}
|
63
|
-
}, [
|
63
|
+
}, []);
|
64
64
|
var onScroll = React.useCallback(function (e) {
|
65
65
|
e.persist();
|
66
66
|
e.stopPropagation(); // 清除用做判断是否滚动停止的定时器
|
@@ -93,8 +93,10 @@ var Selector = function Selector(props) {
|
|
93
93
|
var currentIndex = data.findIndex(function (item) {
|
94
94
|
return item.id === value;
|
95
95
|
}); // 避免非法值跳转
|
96
|
+
// 避免重复执行操作,只有当 value 对应的下标改变的时候才需要执行
|
96
97
|
|
97
|
-
if (currentIndex >= 0) {
|
98
|
+
if (currentIndex >= 0 && lastValueMatchIndexCache.current !== currentIndex) {
|
99
|
+
lastValueMatchIndexCache.current = currentIndex;
|
98
100
|
scrollToMatchIndex(currentIndex);
|
99
101
|
}
|
100
102
|
}, [data, value, scrollToMatchIndex]);
|
@@ -103,25 +105,35 @@ var Selector = function Selector(props) {
|
|
103
105
|
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
104
106
|
onScroll: onScroll,
|
105
107
|
ref: scrollContainerRef,
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
padding: safePadding + "px 0"
|
110
|
-
}
|
108
|
+
// 此处使用了取巧的办法
|
109
|
+
// 将 item 与 scroll-part 部分共享一个 demarcate 划分界限
|
110
|
+
className: classname.cx(componentPrefix + "__scroll-part", componentPrefix + "__demarcate")
|
111
111
|
}, data.map(function (item, index) {
|
112
112
|
var _cx;
|
113
113
|
|
114
114
|
return /*#__PURE__*/React__default['default'].createElement("div", {
|
115
|
-
className: classname.cx(componentPrefix + "__item", (_cx = {}, _cx[componentPrefix + "__item--disabled"] = item.disabled, _cx[componentPrefix + "__item--active"] = item.id === value, _cx)),
|
115
|
+
className: classname.cx(componentPrefix + "__item", componentPrefix + "__demarcate", (_cx = {}, _cx[componentPrefix + "__item--disabled"] = item.disabled, _cx[componentPrefix + "__item--active"] = item.id === value, _cx)),
|
116
116
|
key: item.id,
|
117
117
|
onClick: function onClick() {
|
118
118
|
return onItemClick(item, index);
|
119
|
-
},
|
120
|
-
style: {
|
121
|
-
height: itemHeight + "px"
|
122
119
|
}
|
123
120
|
}, item.title);
|
124
|
-
})
|
121
|
+
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
122
|
+
style: {
|
123
|
+
pointerEvents: 'none',
|
124
|
+
opacity: '0',
|
125
|
+
position: 'absolute',
|
126
|
+
zIndex: -1,
|
127
|
+
left: '0',
|
128
|
+
top: '0'
|
129
|
+
}
|
130
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
131
|
+
className: componentPrefix + "__demarcate",
|
132
|
+
ref: topItemGagerRef
|
133
|
+
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
134
|
+
className: componentPrefix + "__demarcate",
|
135
|
+
ref: bottomItemGagerRef
|
136
|
+
}))));
|
125
137
|
};
|
126
138
|
|
127
139
|
exports.Selector = Selector;
|
package/lib/cjs/Selector.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Selector.js","sources":["../../src/Selector.tsx"],"sourcesContent":[null],"names":["SelectorPosition","
|
1
|
+
{"version":3,"file":"Selector.js","sources":["../../src/Selector.tsx"],"sourcesContent":[null],"names":["SelectorPosition","Selector","props","prefix","value","data","onChange","position","componentPrefix","stopScrollTimeoutHandler","useRef","scrollContainerRef","topItemGagerRef","bottomItemGagerRef","lastValueMatchIndexCache","calcCurrentIndex","useCallback","scrollTop","Math","floor","current","clientHeight","offsetTop","scrollToMatchIndex","index","onScroll","e","persist","stopPropagation","clearTimeout","currentIndex","target","length","setTimeout","disabled","onItemClick","item","useEffect","findIndex","id","React","className","cx","ref","map","key","onClick","title","style","pointerEvents","opacity","zIndex","left","top"],"mappings":"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"}
|
package/lib/cjs/TimePicker.js
CHANGED
@@ -39,6 +39,8 @@ var button = require('@hi-ui/button');
|
|
39
39
|
|
40
40
|
var getNowString = require('./utils/getNowString.js');
|
41
41
|
|
42
|
+
var DayJs = require('dayjs');
|
43
|
+
|
42
44
|
function _interopDefaultLegacy(e) {
|
43
45
|
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
44
46
|
'default': e
|
@@ -47,10 +49,10 @@ function _interopDefaultLegacy(e) {
|
|
47
49
|
|
48
50
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
49
51
|
|
50
|
-
var
|
51
|
-
|
52
|
-
var _prefix = classname.getPrefixCls(_role);
|
52
|
+
var DayJs__default = /*#__PURE__*/_interopDefaultLegacy(DayJs);
|
53
53
|
|
54
|
+
var _role = 'time-picker';
|
55
|
+
var timePickerPrefix = classname.getPrefixCls(_role);
|
54
56
|
var DefaultValue = ['', ''];
|
55
57
|
|
56
58
|
var DefaultDisabledFunc = function DefaultDisabledFunc() {
|
@@ -58,19 +60,27 @@ var DefaultDisabledFunc = function DefaultDisabledFunc() {
|
|
58
60
|
};
|
59
61
|
|
60
62
|
var DefaultPlaceholder = ['', ''];
|
63
|
+
|
64
|
+
var getValueMatchString = function getValueMatchString(value) {
|
65
|
+
if (!value) {
|
66
|
+
return undefined;
|
67
|
+
}
|
68
|
+
|
69
|
+
var result = Array.isArray(value) ? value : [value];
|
70
|
+
return result.map(function (item) {
|
71
|
+
return typeof item === 'string' ? item : DayJs__default['default'](item).format('HH:mm:ss');
|
72
|
+
});
|
73
|
+
};
|
74
|
+
|
61
75
|
var TimePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
62
76
|
var _cx;
|
63
77
|
|
64
78
|
var _ref$prefixCls = _ref.prefixCls,
|
65
|
-
prefixCls = _ref$prefixCls === void 0 ?
|
79
|
+
prefixCls = _ref$prefixCls === void 0 ? timePickerPrefix : _ref$prefixCls,
|
66
80
|
_ref$role = _ref.role,
|
67
81
|
role = _ref$role === void 0 ? _role : _ref$role,
|
68
82
|
className = _ref.className,
|
69
83
|
controlledValue = _ref.value,
|
70
|
-
_ref$itemHeight = _ref.itemHeight,
|
71
|
-
itemHeight = _ref$itemHeight === void 0 ? 24 : _ref$itemHeight,
|
72
|
-
_ref$fullDisplayItemN = _ref.fullDisplayItemNumber,
|
73
|
-
fullDisplayItemNumber = _ref$fullDisplayItemN === void 0 ? 7 : _ref$fullDisplayItemN,
|
74
84
|
_ref$hourStep = _ref.hourStep,
|
75
85
|
hourStep = _ref$hourStep === void 0 ? 1 : _ref$hourStep,
|
76
86
|
_ref$minuteStep = _ref.minuteStep,
|
@@ -81,6 +91,8 @@ var TimePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
81
91
|
format = _ref$format === void 0 ? 'HH:mm:ss' : _ref$format,
|
82
92
|
_ref$type = _ref.type,
|
83
93
|
type = _ref$type === void 0 ? 'single' : _ref$type,
|
94
|
+
_ref$appearance = _ref.appearance,
|
95
|
+
appearance = _ref$appearance === void 0 ? 'line' : _ref$appearance,
|
84
96
|
_ref$defaultValue = _ref.defaultValue,
|
85
97
|
uncontrolledValue = _ref$defaultValue === void 0 ? DefaultValue : _ref$defaultValue,
|
86
98
|
_ref$disabled = _ref.disabled,
|
@@ -91,22 +103,39 @@ var TimePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
91
103
|
originalDisabledSeconds = _ref$disabledSeconds === void 0 ? DefaultDisabledFunc : _ref$disabledSeconds,
|
92
104
|
_ref$disabledMinutes = _ref.disabledMinutes,
|
93
105
|
originalDisabledMinutes = _ref$disabledMinutes === void 0 ? DefaultDisabledFunc : _ref$disabledMinutes,
|
94
|
-
_ref$bordered = _ref.bordered,
|
95
|
-
bordered = _ref$bordered === void 0 ? true : _ref$bordered,
|
96
106
|
notifyOutside = _ref.onChange,
|
97
107
|
_ref$placeholder = _ref.placeholder,
|
98
|
-
|
108
|
+
originalPlaceholder = _ref$placeholder === void 0 ? DefaultPlaceholder : _ref$placeholder,
|
99
109
|
_ref$inputReadonly = _ref.inputReadonly,
|
100
|
-
inputReadonly = _ref$inputReadonly === void 0 ? false : _ref$inputReadonly
|
110
|
+
inputReadonly = _ref$inputReadonly === void 0 ? false : _ref$inputReadonly,
|
111
|
+
overlay = _ref.overlay,
|
112
|
+
_ref$size = _ref.size,
|
113
|
+
size = _ref$size === void 0 ? 'md' : _ref$size;
|
101
114
|
|
102
115
|
var _useState = React.useState(null),
|
103
116
|
attachEl = _useState[0],
|
104
117
|
setAttachEl = _useState[1];
|
105
118
|
|
106
|
-
var
|
119
|
+
var formatUncontrolledValue = React.useMemo(function () {
|
120
|
+
return getValueMatchString(uncontrolledValue);
|
121
|
+
}, [uncontrolledValue]);
|
122
|
+
var formatControlledValue = React.useMemo(function () {
|
123
|
+
return getValueMatchString(controlledValue);
|
124
|
+
}, [controlledValue]);
|
125
|
+
var formatNotifyOutside = React.useCallback(function (disposeValue) {
|
126
|
+
var result = disposeValue.filter(function (item) {
|
127
|
+
return item;
|
128
|
+
});
|
129
|
+
notifyOutside && notifyOutside(result.length > 1 ? result : result[0]);
|
130
|
+
}, [notifyOutside]);
|
131
|
+
|
132
|
+
var _useUncontrolledState = useUncontrolledState.useUncontrolledState(formatUncontrolledValue, formatControlledValue, formatNotifyOutside),
|
107
133
|
value = _useUncontrolledState[0],
|
108
134
|
onChange = _useUncontrolledState[1];
|
109
135
|
|
136
|
+
var placeholder = React.useMemo(function () {
|
137
|
+
return Array.isArray(originalPlaceholder) ? originalPlaceholder : [originalPlaceholder];
|
138
|
+
}, [originalPlaceholder]);
|
110
139
|
var inputRef = React.useRef(null);
|
111
140
|
|
112
141
|
var _useState2 = React.useState(true),
|
@@ -187,14 +216,14 @@ var TimePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
187
216
|
setShowPopper = _useState4[1];
|
188
217
|
|
189
218
|
var showPopperRef = React.useRef(false);
|
190
|
-
var cls = classname.cx(prefixCls, className,
|
219
|
+
var cls = classname.cx(prefixCls, className, prefixCls + "--appearance-" + appearance, (_cx = {}, _cx[prefixCls + "--active"] = showPopper && !disabled, _cx[prefixCls + "--disabled"] = disabled, _cx[prefixCls + "--input-not-valid"] = !isInputValid, _cx));
|
191
220
|
var functionButtons = React.useMemo(function () {
|
192
221
|
return /*#__PURE__*/React__default['default'].createElement("div", {
|
193
222
|
className: prefixCls + "__pop-function-buttons"
|
194
223
|
}, /*#__PURE__*/React__default['default'].createElement(button.Button, {
|
195
224
|
className: prefixCls + "__pop-confirm-button",
|
196
225
|
type: 'primary',
|
197
|
-
size: "
|
226
|
+
size: "sm",
|
198
227
|
disabled: !isInputValid,
|
199
228
|
onClick: function onClick() {
|
200
229
|
// 合法,才去通知外部
|
@@ -204,12 +233,14 @@ var TimePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
204
233
|
}
|
205
234
|
}
|
206
235
|
|
236
|
+
showPopperRef.current = false;
|
207
237
|
setShowPopper(false);
|
208
238
|
}
|
209
239
|
}, "\u786E\u8BA4"), type === 'single' && /*#__PURE__*/React__default['default'].createElement("div", {
|
210
240
|
className: prefixCls + "__pop-now-button",
|
211
241
|
onClick: function onClick() {
|
212
242
|
onCacheChange([getNowString.getNowString(format)]);
|
243
|
+
showPopperRef.current = false;
|
213
244
|
setShowPopper(false);
|
214
245
|
}
|
215
246
|
}, "\u6B64\u523B"));
|
@@ -222,6 +253,8 @@ var TimePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
222
253
|
ref: setAttachEl,
|
223
254
|
className: prefixCls + "__input-wrapper"
|
224
255
|
}, /*#__PURE__*/React__default['default'].createElement(Input.Input, {
|
256
|
+
size: size,
|
257
|
+
isFitContent: appearance === 'unset',
|
225
258
|
ref: inputRef,
|
226
259
|
onValidChange: setIsInputValid,
|
227
260
|
disabled: inputReadonly || disabled,
|
@@ -244,22 +277,21 @@ var TimePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
244
277
|
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
245
278
|
className: prefixCls + "__function-button",
|
246
279
|
onClick: function onClick() {
|
247
|
-
|
248
|
-
if (showPopperRef.current) {
|
249
|
-
onCacheChange(type === 'single' ? [''] : ['', '']);
|
250
|
-
}
|
251
|
-
|
252
|
-
showPopperRef.current = !showPopper;
|
280
|
+
showPopperRef.current = !showPopperRef.current;
|
253
281
|
setShowPopper(function (pre) {
|
254
282
|
return !pre;
|
255
283
|
});
|
256
284
|
}
|
257
285
|
}, showPopper ? /*#__PURE__*/React__default['default'].createElement(icons.CloseCircleFilled, {
|
258
|
-
className: prefixCls + "__close-button"
|
259
|
-
|
286
|
+
className: prefixCls + "__close-button",
|
287
|
+
onClick: function onClick() {
|
288
|
+
onCacheChange(type === 'single' ? [''] : ['', '']);
|
289
|
+
}
|
290
|
+
}) : /*#__PURE__*/React__default['default'].createElement(icons.TimeOutlined, null))), /*#__PURE__*/React__default['default'].createElement(popper.PopperPortal, Object.assign({}, overlay || {}, {
|
260
291
|
unmountOnClose: false,
|
261
292
|
visible: showPopper && !disabled,
|
262
293
|
attachEl: attachEl,
|
294
|
+
autoFocus: false,
|
263
295
|
onClose: function onClose() {
|
264
296
|
var _a; // 关闭弹窗,视作,抛弃之前的选择行为,复位
|
265
297
|
|
@@ -271,9 +303,11 @@ var TimePicker = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
271
303
|
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.refresh();
|
272
304
|
},
|
273
305
|
preload: true
|
274
|
-
}, /*#__PURE__*/React__default['default'].createElement(PopContent.PopContent
|
275
|
-
|
276
|
-
|
306
|
+
}), /*#__PURE__*/React__default['default'].createElement(PopContent.PopContent // itemHeight={itemHeight}
|
307
|
+
// fullDisplayItemNumber={fullDisplayItemNumber}
|
308
|
+
, {
|
309
|
+
// itemHeight={itemHeight}
|
310
|
+
// fullDisplayItemNumber={fullDisplayItemNumber}
|
277
311
|
type: type,
|
278
312
|
prefix: prefixCls,
|
279
313
|
format: format,
|
@@ -306,5 +340,5 @@ if (env.__DEV__) {
|
|
306
340
|
}
|
307
341
|
|
308
342
|
exports.TimePicker = TimePicker;
|
309
|
-
exports.
|
343
|
+
exports.timePickerPrefix = timePickerPrefix;
|
310
344
|
//# sourceMappingURL=TimePicker.js.map
|