@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
package/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2018 Xiaomi
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
@@ -0,0 +1,22 @@
|
|
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
|
+
'use strict';
|
11
|
+
|
12
|
+
Object.defineProperty(exports, '__esModule', {
|
13
|
+
value: true
|
14
|
+
});
|
15
|
+
exports.TimePickerSelectorType = void 0;
|
16
|
+
|
17
|
+
(function (TimePickerSelectorType) {
|
18
|
+
TimePickerSelectorType[TimePickerSelectorType["hour"] = 1] = "hour";
|
19
|
+
TimePickerSelectorType[TimePickerSelectorType["minute"] = 2] = "minute";
|
20
|
+
TimePickerSelectorType[TimePickerSelectorType["second"] = 3] = "second";
|
21
|
+
})(exports.TimePickerSelectorType || (exports.TimePickerSelectorType = {}));
|
22
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/@types/index.ts"],"sourcesContent":[null],"names":["TimePickerSelectorType"],"mappings":";;;;;;;;;;;;;;AAMYA,8BAAAA,SAAAA;;AAAZ,WAAYA;AACVA,EAAAA,0DAAAA,SAAAA;AACAA,EAAAA,4DAAAA,WAAAA;AACAA,EAAAA,4DAAAA,WAAAA;AAHF,CAAA,EAAYA,8BAAAA,KAAAA,8BAAAA,KAAAA,CAAZ"}
|
package/lib/cjs/Input.js
ADDED
@@ -0,0 +1,174 @@
|
|
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
|
+
'use strict';
|
11
|
+
|
12
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
13
|
+
|
14
|
+
Object.defineProperty(exports, '__esModule', {
|
15
|
+
value: true
|
16
|
+
});
|
17
|
+
|
18
|
+
var React = require('react');
|
19
|
+
|
20
|
+
var classname = require('@hi-ui/classname');
|
21
|
+
|
22
|
+
var valueChecker = require('./utils/valueChecker.js');
|
23
|
+
|
24
|
+
var disposeInputValue = require('./utils/disposeInputValue.js');
|
25
|
+
|
26
|
+
function _interopDefaultLegacy(e) {
|
27
|
+
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
28
|
+
'default': e
|
29
|
+
};
|
30
|
+
}
|
31
|
+
|
32
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
33
|
+
|
34
|
+
var Input = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
35
|
+
var _cx;
|
36
|
+
|
37
|
+
var prefix = props.prefix,
|
38
|
+
value = props.value,
|
39
|
+
format = props.format,
|
40
|
+
hourStep = props.hourStep,
|
41
|
+
minuteStep = props.minuteStep,
|
42
|
+
secondStep = props.secondStep,
|
43
|
+
disabledHours = props.disabledHours,
|
44
|
+
disabledMinutes = props.disabledMinutes,
|
45
|
+
disabledSeconds = props.disabledSeconds,
|
46
|
+
type = props.type,
|
47
|
+
placeholders = props.placeholders,
|
48
|
+
_onChange = props.onChange,
|
49
|
+
_onFocus = props.onFocus,
|
50
|
+
disabled = props.disabled,
|
51
|
+
onValidChange = props.onValidChange;
|
52
|
+
var componentClass = React.useMemo(function () {
|
53
|
+
return prefix + "__input";
|
54
|
+
}, [prefix]);
|
55
|
+
|
56
|
+
var _useState = React.useState(value),
|
57
|
+
cacheValue = _useState[0],
|
58
|
+
setCacheValue = _useState[1];
|
59
|
+
|
60
|
+
var getPanelType = React.useCallback(function (index) {
|
61
|
+
if (type === 'single') {
|
62
|
+
return 'single';
|
63
|
+
} else {
|
64
|
+
return index === 0 ? 'range-start' : 'range-end';
|
65
|
+
}
|
66
|
+
}, [type]); // 检查值是否合规
|
67
|
+
|
68
|
+
var validChecker = React.useCallback(function (checkValue, panelType) {
|
69
|
+
return valueChecker.valueChecker({
|
70
|
+
value: checkValue,
|
71
|
+
format: format,
|
72
|
+
filter: {
|
73
|
+
disabledSeconds: disabledSeconds,
|
74
|
+
disabledMinutes: disabledMinutes,
|
75
|
+
disabledHours: disabledHours
|
76
|
+
},
|
77
|
+
step: {
|
78
|
+
hourStep: hourStep,
|
79
|
+
minuteStep: minuteStep,
|
80
|
+
secondStep: secondStep
|
81
|
+
},
|
82
|
+
panelType: panelType
|
83
|
+
});
|
84
|
+
}, [hourStep, minuteStep, secondStep, disabledHours, disabledMinutes, disabledSeconds, format]); // 缓存同步外部
|
85
|
+
|
86
|
+
React.useEffect(function () {
|
87
|
+
setCacheValue(function (pre) {
|
88
|
+
var result = value.slice(0, type === 'single' ? 1 : 2);
|
89
|
+
|
90
|
+
if (result.join('') !== pre.join('')) {
|
91
|
+
return result;
|
92
|
+
}
|
93
|
+
|
94
|
+
return pre;
|
95
|
+
});
|
96
|
+
}, [value, type]);
|
97
|
+
var judgeIsValid = React.useCallback(function (disposeValue) {
|
98
|
+
var valueValid = disposeValue.every(function (item, index) {
|
99
|
+
return validChecker(item, getPanelType(index));
|
100
|
+
});
|
101
|
+
|
102
|
+
if (type === 'range' && valueValid) {
|
103
|
+
// 数据格式正确,检查范围数据
|
104
|
+
// 全为空字符串,则认为是合法的(还未选择)
|
105
|
+
if (disposeValue.every(function (item) {
|
106
|
+
return item === '';
|
107
|
+
})) {
|
108
|
+
return true;
|
109
|
+
} // 结束时间要>开始时间
|
110
|
+
|
111
|
+
|
112
|
+
return disposeValue[1] > disposeValue[0];
|
113
|
+
} else {
|
114
|
+
return valueValid;
|
115
|
+
}
|
116
|
+
}, [validChecker, getPanelType, type]);
|
117
|
+
var renderInput = React.useCallback(function (matchValue, index) {
|
118
|
+
var dispose = function dispose(disposeValue, needValid) {
|
119
|
+
if (needValid === void 0) {
|
120
|
+
needValid = true;
|
121
|
+
}
|
122
|
+
|
123
|
+
var newValue = disposeInputValue.disposeInputValue(format, disposeValue);
|
124
|
+
var result = [].concat(cacheValue);
|
125
|
+
result[index] = newValue;
|
126
|
+
setCacheValue(result); // 合法,则通知外部
|
127
|
+
|
128
|
+
if (!needValid || validChecker(newValue, getPanelType(index))) {
|
129
|
+
return [].concat(result);
|
130
|
+
}
|
131
|
+
|
132
|
+
return undefined;
|
133
|
+
};
|
134
|
+
|
135
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
136
|
+
className: componentClass + "__wrapper"
|
137
|
+
}, /*#__PURE__*/React__default['default'].createElement("input", {
|
138
|
+
className: componentClass + "__interact-area",
|
139
|
+
onChange: function onChange(e) {
|
140
|
+
var result = dispose(e.target.value);
|
141
|
+
|
142
|
+
if (result) {
|
143
|
+
_onChange(result);
|
144
|
+
}
|
145
|
+
},
|
146
|
+
disabled: disabled,
|
147
|
+
onFocus: function onFocus() {
|
148
|
+
_onFocus();
|
149
|
+
},
|
150
|
+
value: matchValue,
|
151
|
+
placeholder: placeholders[index]
|
152
|
+
}));
|
153
|
+
}, [placeholders, format, _onFocus, _onChange, cacheValue, getPanelType, // onBlur,
|
154
|
+
validChecker, componentClass, disabled, type]); // 通知外部,输入框内容合法性变更
|
155
|
+
|
156
|
+
React.useEffect(function () {
|
157
|
+
onValidChange(judgeIsValid(cacheValue));
|
158
|
+
}, [judgeIsValid, cacheValue, onValidChange]);
|
159
|
+
React.useImperativeHandle(ref, function () {
|
160
|
+
return {
|
161
|
+
refresh: function refresh() {
|
162
|
+
return setCacheValue([].concat(value));
|
163
|
+
}
|
164
|
+
};
|
165
|
+
}, [value]);
|
166
|
+
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))
|
168
|
+
}, renderInput(cacheValue[0], 0), type === 'range' && /*#__PURE__*/React__default['default'].createElement("div", {
|
169
|
+
className: componentClass + "__range-separator"
|
170
|
+
}, "\u81F3"), type === 'range' && renderInput(cacheValue[1], 1));
|
171
|
+
});
|
172
|
+
Input.displayName = 'Input';
|
173
|
+
exports.Input = Input;
|
174
|
+
//# sourceMappingURL=Input.js.map
|
@@ -0,0 +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":"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"}
|
package/lib/cjs/Panel.js
ADDED
@@ -0,0 +1,144 @@
|
|
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
|
+
'use strict';
|
11
|
+
|
12
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
13
|
+
|
14
|
+
Object.defineProperty(exports, '__esModule', {
|
15
|
+
value: true
|
16
|
+
});
|
17
|
+
|
18
|
+
var React = require('react');
|
19
|
+
|
20
|
+
var analysisFormat = require('./utils/analysisFormat.js');
|
21
|
+
|
22
|
+
var generateSelectorData = require('./utils/generateSelectorData.js');
|
23
|
+
|
24
|
+
var classname = require('@hi-ui/classname');
|
25
|
+
|
26
|
+
var Selector = require('./Selector.js');
|
27
|
+
|
28
|
+
function _interopDefaultLegacy(e) {
|
29
|
+
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
30
|
+
'default': e
|
31
|
+
};
|
32
|
+
}
|
33
|
+
|
34
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
35
|
+
|
36
|
+
var Panel = function Panel(props) {
|
37
|
+
var hourStep = props.hourStep,
|
38
|
+
secondStep = props.secondStep,
|
39
|
+
minuteStep = props.minuteStep,
|
40
|
+
disabledHours = props.disabledHours,
|
41
|
+
disabledMinutes = props.disabledMinutes,
|
42
|
+
disabledSeconds = props.disabledSeconds,
|
43
|
+
prefix = props.prefix,
|
44
|
+
format = props.format,
|
45
|
+
value = props.value,
|
46
|
+
panel = props.panel,
|
47
|
+
_onChange = props.onChange,
|
48
|
+
itemHeight = props.itemHeight,
|
49
|
+
fullDisplayItemNumber = props.fullDisplayItemNumber;
|
50
|
+
var componentPrefix = React.useMemo(function () {
|
51
|
+
return prefix + "__panel";
|
52
|
+
}, [prefix]);
|
53
|
+
var selectorTypes = React.useMemo(function () {
|
54
|
+
return analysisFormat.analysisFormat(format);
|
55
|
+
}, [format]);
|
56
|
+
var separateValue = React.useMemo(function () {
|
57
|
+
return value.split(':').filter(function (item) {
|
58
|
+
return item;
|
59
|
+
}).map(function (item) {
|
60
|
+
return Number(item);
|
61
|
+
});
|
62
|
+
}, [value]);
|
63
|
+
var getSelectorData = React.useCallback(function (type) {
|
64
|
+
return generateSelectorData.generateSelectorData({
|
65
|
+
panelType: panel,
|
66
|
+
type: type,
|
67
|
+
filter: {
|
68
|
+
disabledHours: disabledHours,
|
69
|
+
disabledMinutes: disabledMinutes,
|
70
|
+
disabledSeconds: disabledSeconds
|
71
|
+
},
|
72
|
+
step: {
|
73
|
+
secondStep: secondStep,
|
74
|
+
hourStep: hourStep,
|
75
|
+
minuteStep: minuteStep
|
76
|
+
},
|
77
|
+
selectorTypes: selectorTypes,
|
78
|
+
separateValue: separateValue
|
79
|
+
});
|
80
|
+
}, [disabledHours, disabledMinutes, disabledSeconds, secondStep, hourStep, minuteStep, panel, selectorTypes, separateValue]); // const renderHeader = useCallback(() => {
|
81
|
+
// return (
|
82
|
+
// <div className={`${componentPrefix}__header`}>
|
83
|
+
// {selectorTypes.map((item) => (
|
84
|
+
// <div className={`${componentPrefix}__header-title`} key={item}>
|
85
|
+
// {getSelectorTitle(item)}
|
86
|
+
// </div>
|
87
|
+
// ))}
|
88
|
+
// </div>
|
89
|
+
// )
|
90
|
+
// }, [selectorTypes, componentPrefix])
|
91
|
+
|
92
|
+
var renderSelectors = React.useCallback(function () {
|
93
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
94
|
+
className: componentPrefix + "__selector-container"
|
95
|
+
}, selectorTypes.map(function (type, index) {
|
96
|
+
var _cx;
|
97
|
+
|
98
|
+
var position = selectorTypes.length === 1 ? Selector.SelectorPosition.single : Selector.SelectorPosition.middle;
|
99
|
+
|
100
|
+
if (selectorTypes.length > 1 && index === 0) {
|
101
|
+
position = Selector.SelectorPosition.left;
|
102
|
+
} else if (selectorTypes.length > 1 && index === selectorTypes.length - 1) {
|
103
|
+
position = Selector.SelectorPosition.right;
|
104
|
+
}
|
105
|
+
|
106
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
107
|
+
className: componentPrefix + "__selector-content",
|
108
|
+
key: type
|
109
|
+
}, /*#__PURE__*/React__default['default'].createElement(Selector.Selector, {
|
110
|
+
value: String(separateValue[index]),
|
111
|
+
prefix: prefix,
|
112
|
+
position: position,
|
113
|
+
itemHeight: itemHeight,
|
114
|
+
fullDisplayItemNumber: fullDisplayItemNumber,
|
115
|
+
onChange: function onChange(e) {
|
116
|
+
var result = [].concat(separateValue).slice(0, selectorTypes.length); // 如果 value = '',则代表为空值
|
117
|
+
// 此时选择任意项,其他项直接视作 0
|
118
|
+
|
119
|
+
if (value === '') {
|
120
|
+
result = [0, 0, 0].slice(0, selectorTypes.length);
|
121
|
+
}
|
122
|
+
|
123
|
+
result[index] = Number(e.id);
|
124
|
+
|
125
|
+
_onChange(result.map(function (item) {
|
126
|
+
return String(item).padStart(2, '0');
|
127
|
+
}).join(':'));
|
128
|
+
},
|
129
|
+
data: getSelectorData(type)
|
130
|
+
}), /*#__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
|
+
}
|
135
|
+
}));
|
136
|
+
}));
|
137
|
+
}, [selectorTypes, componentPrefix, prefix, getSelectorData, _onChange, separateValue, itemHeight, fullDisplayItemNumber, value]);
|
138
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
139
|
+
className: componentPrefix
|
140
|
+
}, renderSelectors());
|
141
|
+
};
|
142
|
+
|
143
|
+
exports.Panel = Panel;
|
144
|
+
//# sourceMappingURL=Panel.js.map
|
@@ -0,0 +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","itemHeight","fullDisplayItemNumber","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","style","height"],"mappings":"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"}
|
@@ -0,0 +1,211 @@
|
|
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
|
+
'use strict';
|
11
|
+
|
12
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
13
|
+
|
14
|
+
Object.defineProperty(exports, '__esModule', {
|
15
|
+
value: true
|
16
|
+
});
|
17
|
+
|
18
|
+
var React = require('react');
|
19
|
+
|
20
|
+
var index = require('./@types/index.js');
|
21
|
+
|
22
|
+
var getRange = require('./utils/getRange.js');
|
23
|
+
|
24
|
+
var Panel = require('./Panel.js');
|
25
|
+
|
26
|
+
var analysisFormat = require('./utils/analysisFormat.js');
|
27
|
+
|
28
|
+
var getFormatDefault = require('./utils/getFormatDefault.js');
|
29
|
+
|
30
|
+
var TimePicker = require('./TimePicker.js');
|
31
|
+
|
32
|
+
var useFilter = require('./hooks/useFilter.js');
|
33
|
+
|
34
|
+
function _interopDefaultLegacy(e) {
|
35
|
+
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
36
|
+
'default': e
|
37
|
+
};
|
38
|
+
}
|
39
|
+
|
40
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
41
|
+
|
42
|
+
var DefaultDisabledFunc = function DefaultDisabledFunc() {
|
43
|
+
return [];
|
44
|
+
};
|
45
|
+
|
46
|
+
var PopContent = function PopContent(props) {
|
47
|
+
var _props$prefix = props.prefix,
|
48
|
+
prefix = _props$prefix === void 0 ? TimePicker._prefix : _props$prefix,
|
49
|
+
dangerousValue = props.value,
|
50
|
+
_onChange = props.onChange,
|
51
|
+
format = props.format,
|
52
|
+
type = props.type,
|
53
|
+
itemHeight = props.itemHeight,
|
54
|
+
fullDisplayItemNumber = props.fullDisplayItemNumber,
|
55
|
+
hourStep = props.hourStep,
|
56
|
+
minuteStep = props.minuteStep,
|
57
|
+
secondStep = props.secondStep,
|
58
|
+
_props$disabledHours = props.disabledHours,
|
59
|
+
originalDisabledHours = _props$disabledHours === void 0 ? DefaultDisabledFunc : _props$disabledHours,
|
60
|
+
_props$disabledSecond = props.disabledSeconds,
|
61
|
+
originalDisabledSeconds = _props$disabledSecond === void 0 ? DefaultDisabledFunc : _props$disabledSecond,
|
62
|
+
_props$disabledMinute = props.disabledMinutes,
|
63
|
+
originalDisabledMinutes = _props$disabledMinute === void 0 ? DefaultDisabledFunc : _props$disabledMinute,
|
64
|
+
style = props.style; // 将值统一转化为函数
|
65
|
+
// 由于 pop content 会被 date-picker 直接调用,故而在此多做一次兼容处理
|
66
|
+
|
67
|
+
var _useFilter = useFilter.useFilter({
|
68
|
+
disabledHours: originalDisabledHours,
|
69
|
+
disabledMinutes: originalDisabledMinutes,
|
70
|
+
disabledSeconds: originalDisabledSeconds
|
71
|
+
}),
|
72
|
+
disabledHours = _useFilter.disabledHours,
|
73
|
+
disabledMinutes = _useFilter.disabledMinutes,
|
74
|
+
disabledSeconds = _useFilter.disabledSeconds;
|
75
|
+
|
76
|
+
var value = React.useMemo(function () {
|
77
|
+
return dangerousValue.map(function (item) {
|
78
|
+
return item || getFormatDefault.getFormatDefault(format);
|
79
|
+
});
|
80
|
+
}, [dangerousValue, format]);
|
81
|
+
var selectorTypes = React.useMemo(function () {
|
82
|
+
return analysisFormat.analysisFormat(format);
|
83
|
+
}, [format]);
|
84
|
+
var separateValue = React.useMemo(function () {
|
85
|
+
return value.map(function (disposeItem) {
|
86
|
+
return disposeItem.split(':').filter(function (item) {
|
87
|
+
return item;
|
88
|
+
}).map(function (item) {
|
89
|
+
return Number(item);
|
90
|
+
});
|
91
|
+
});
|
92
|
+
}, [value]);
|
93
|
+
var getMatchTypeValue = React.useCallback(function (index, type) {
|
94
|
+
var matchValue = separateValue[index];
|
95
|
+
var typeIndex = selectorTypes.indexOf(type);
|
96
|
+
var result = matchValue[typeIndex];
|
97
|
+
return result !== undefined && result >= 0 ? result : -1;
|
98
|
+
}, [separateValue, selectorTypes]);
|
99
|
+
var judgeTypeIsLastOne = React.useCallback(function (type) {
|
100
|
+
return selectorTypes.indexOf(type) === selectorTypes.length - 1;
|
101
|
+
}, [selectorTypes]);
|
102
|
+
var customDisabledHours = React.useCallback(function (panel) {
|
103
|
+
var result = disabledHours(panel);
|
104
|
+
|
105
|
+
if (panel === 'range-end') {
|
106
|
+
var startHour = getMatchTypeValue(0, index.TimePickerSelectorType.hour);
|
107
|
+
var isLastOne = judgeTypeIsLastOne(index.TimePickerSelectorType.hour); // 当当前类型为最后一个类型的时候
|
108
|
+
// 不能够选择与开始一致的值
|
109
|
+
|
110
|
+
result = [].concat(result, getRange.getRange(0, isLastOne ? startHour : startHour - 1));
|
111
|
+
}
|
112
|
+
|
113
|
+
return result;
|
114
|
+
}, [getMatchTypeValue, disabledHours, judgeTypeIsLastOne]);
|
115
|
+
var customDisabledMinute = React.useCallback(function (hour, panel) {
|
116
|
+
var result = disabledMinutes(hour, panel);
|
117
|
+
|
118
|
+
if (panel === 'range-end') {
|
119
|
+
var startHour = getMatchTypeValue(0, index.TimePickerSelectorType.hour);
|
120
|
+
var startMinute = getMatchTypeValue(0, index.TimePickerSelectorType.minute); // 当前类型中包含了小时
|
121
|
+
// minute 有值
|
122
|
+
|
123
|
+
if (hour >= 0) {
|
124
|
+
// 开始时间等于结束时间,则直接禁用开始时间之前的时间
|
125
|
+
if (startHour === hour) {
|
126
|
+
var isLastOne = judgeTypeIsLastOne(index.TimePickerSelectorType.minute); // 当当前类型为最后一个类型的时候
|
127
|
+
// 不能够选择与开始一致的值
|
128
|
+
|
129
|
+
result = [].concat(result, getRange.getRange(0, isLastOne ? startMinute : startMinute - 1));
|
130
|
+
} // 开始时间大于结束时间,直接禁用所有
|
131
|
+
else if (startHour > hour) {
|
132
|
+
result = [].concat(result, getRange.getRange(0, 59));
|
133
|
+
}
|
134
|
+
}
|
135
|
+
}
|
136
|
+
|
137
|
+
return result;
|
138
|
+
}, [getMatchTypeValue, judgeTypeIsLastOne, disabledMinutes]);
|
139
|
+
var customDisabledSeconds = React.useCallback(function (hour, minute, panel) {
|
140
|
+
var result = disabledSeconds(hour, minute, panel);
|
141
|
+
|
142
|
+
if (panel === 'range-end') {
|
143
|
+
var startHour = getMatchTypeValue(0, index.TimePickerSelectorType.hour);
|
144
|
+
var startMinute = getMatchTypeValue(0, index.TimePickerSelectorType.minute);
|
145
|
+
var startSecond = getMatchTypeValue(0, index.TimePickerSelectorType.second);
|
146
|
+
var allDisabled = false; // 如果小时存在,并且开始小时大于结束,禁用所有秒
|
147
|
+
|
148
|
+
if (hour >= 0 && startHour > hour) {
|
149
|
+
allDisabled = true;
|
150
|
+
} // 如果小时存在,并且开始结束小时一样,并且开始分钟大于结束分钟,禁用所有秒
|
151
|
+
|
152
|
+
|
153
|
+
if (hour >= 0 && startHour === hour && minute >= 0 && startMinute > minute) {
|
154
|
+
allDisabled = true;
|
155
|
+
}
|
156
|
+
|
157
|
+
if (allDisabled) {
|
158
|
+
result = [].concat(result, getRange.getRange(0, 59));
|
159
|
+
} else {
|
160
|
+
// hour 不存在 或者存在并且开始与结束相同
|
161
|
+
// 则视作,小时相等
|
162
|
+
var isHourEqual = hour < 0 || startHour === hour; // minute 不存在 或者存在并且开始与结束相同
|
163
|
+
// 则视作,分钟相等
|
164
|
+
|
165
|
+
var isMinuteEqual = minute < 0 || startMinute === minute; // 分钟小时相等,则需要根据 开始 秒 做禁用处理
|
166
|
+
|
167
|
+
if (isHourEqual && isMinuteEqual) {
|
168
|
+
result = [].concat(result, getRange.getRange(0, startSecond));
|
169
|
+
}
|
170
|
+
}
|
171
|
+
}
|
172
|
+
|
173
|
+
return result;
|
174
|
+
}, [getMatchTypeValue, disabledSeconds]);
|
175
|
+
var componentClass = React.useMemo(function () {
|
176
|
+
return prefix + "__pop-content";
|
177
|
+
}, [prefix]);
|
178
|
+
var renderPanel = React.useCallback(function (index) {
|
179
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
180
|
+
className: componentClass + "__panel-container"
|
181
|
+
}, /*#__PURE__*/React__default['default'].createElement(Panel.Panel, {
|
182
|
+
itemHeight: itemHeight,
|
183
|
+
fullDisplayItemNumber: fullDisplayItemNumber,
|
184
|
+
hourStep: hourStep,
|
185
|
+
secondStep: secondStep,
|
186
|
+
minuteStep: minuteStep,
|
187
|
+
disabledHours: customDisabledHours,
|
188
|
+
disabledMinutes: customDisabledMinute,
|
189
|
+
disabledSeconds: customDisabledSeconds,
|
190
|
+
prefix: prefix,
|
191
|
+
format: format,
|
192
|
+
value: value[index],
|
193
|
+
panel: type === 'single' ? 'single' : index === 0 ? 'range-start' : 'range-end',
|
194
|
+
onChange: function onChange(e) {
|
195
|
+
var result = [].concat(value);
|
196
|
+
result[index] = e;
|
197
|
+
|
198
|
+
_onChange(result);
|
199
|
+
}
|
200
|
+
}));
|
201
|
+
}, [hourStep, minuteStep, secondStep, customDisabledHours, customDisabledMinute, customDisabledSeconds, format, prefix, type, value, _onChange, fullDisplayItemNumber, itemHeight, componentClass]);
|
202
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
203
|
+
className: componentClass,
|
204
|
+
style: style
|
205
|
+
}, renderPanel(0), type === 'range' && /*#__PURE__*/React__default['default'].createElement("div", {
|
206
|
+
className: componentClass + "__separator"
|
207
|
+
}), type === 'range' && renderPanel(1));
|
208
|
+
};
|
209
|
+
|
210
|
+
exports.PopContent = PopContent;
|
211
|
+
//# 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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"}
|