@qsxy/element-plus-react 1.0.1 → 1.0.2
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/dist/Calendar/Calendar.js +12 -3
- package/dist/Calendar/Footer.js +4 -2
- package/dist/Calendar/QuarterPanel.d.ts +4 -0
- package/dist/Calendar/QuarterPanel.js +109 -0
- package/dist/Calendar/WeekPanel.js +1 -1
- package/dist/Calendar/typings.d.ts +1 -1
- package/dist/Card/Card.js +9 -4
- package/dist/Card/typings.d.ts +1 -1
- package/dist/Cascader/Cascader.js +1 -1
- package/dist/DatePicker/DatePicker.js +38 -12
- package/dist/DatePicker/DateRangePicker.js +27 -9
- package/dist/DatePicker/main.js +1 -1
- package/dist/DatePicker/typings.d.ts +1 -1
- package/dist/DateTimePicker/DateTimePicker.js +2 -2
- package/dist/Input/Input.1.d.ts +16 -0
- package/dist/Input/Input.1.js +376 -0
- package/dist/Input/Input.js +137 -121
- package/dist/Input/InputRange.js +1 -1
- package/dist/Input/TextArea.js +87 -12
- package/dist/Input/typings.d.ts +15 -5
- package/dist/Input/useComposition.d.ts +23 -0
- package/dist/Input/useComposition.js +63 -0
- package/dist/Input/utils.d.ts +6 -0
- package/dist/Input/utils.js +91 -0
- package/dist/InputNumber/InputNumber.js +1 -1
- package/dist/InputNumber/typings.d.ts +1 -1
- package/dist/Select/Option.js +30 -14
- package/dist/Select/SelectContext.d.ts +3 -4
- package/dist/Select/SelectCore.d.ts +2 -2
- package/dist/Select/SelectCore.js +164 -447
- package/dist/Select/SelectDropdown.js +67 -145
- package/dist/Select/typings.d.ts +47 -21
- package/dist/Select/useSelect.d.ts +125 -0
- package/dist/Select/useSelect.js +516 -0
- package/dist/Table/util.js +6 -5
- package/dist/Tag/Tag.js +22 -17
- package/dist/TimePicker/TimePicker.js +2 -2
- package/dist/TreeSelect/TreeSelect.js +2 -2
- package/dist/Util/aria.d.ts +25 -0
- package/dist/Util/aria.js +118 -0
- package/dist/hooks/useCalcInputWidth.d.ts +8 -0
- package/dist/hooks/useCalcInputWidth.js +30 -0
- package/dist/hooks/useComposition.d.ts +16 -0
- package/dist/hooks/useComposition.js +39 -0
- package/dist/hooks/useCursor.d.ts +2 -0
- package/dist/hooks/useCursor.js +52 -0
- package/dist/hooks/useFocusController.d.ts +27 -0
- package/dist/hooks/useFocusController.js +72 -0
- package/dist/index.css +1 -1
- package/dist/locale/en.d.ts +15 -0
- package/dist/locale/en.js +15 -0
- package/dist/locale/zhCn.d.ts +15 -0
- package/dist/locale/zhCn.js +15 -0
- package/package.json +1 -1
- package/theme-chalk/calendar/index.scss +1 -0
- package/theme-chalk/calendar/quarter-table.scss +78 -0
- package/theme-chalk/common/var.scss +1 -1
- package/theme-chalk/input/input.scss +424 -578
- package/theme-chalk/input/input.scss--bak +578 -0
- package/theme-chalk/select/index.scss +272 -247
- package/theme-chalk/select/index.scss--bak +247 -0
- package/theme-chalk/select/option-group.scss +2 -2
- package/theme-chalk/select/option.scss +2 -2
- package/theme-chalk/select/select-dropdown.scss +2 -2
- package/theme-chalk/tag.scss +181 -203
- package/theme-chalk/tag.scss--bak +203 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
+
import { useRef, useState } from 'react';
|
|
8
|
+
/**
|
|
9
|
+
* Handle input text like Chinese
|
|
10
|
+
* chrome: compositionstart -> onChange -> compositionend
|
|
11
|
+
* other browser: compositionstart -> compositionend -> onChange
|
|
12
|
+
*/
|
|
13
|
+
export function useComposition(_ref) {
|
|
14
|
+
var value = _ref.value,
|
|
15
|
+
maxLength = _ref.maxLength,
|
|
16
|
+
onChange = _ref.onChange,
|
|
17
|
+
onKeyDown = _ref.onKeyDown,
|
|
18
|
+
onPressEnter = _ref.onPressEnter;
|
|
19
|
+
var refIsComposition = useRef(false);
|
|
20
|
+
var _useState = useState(''),
|
|
21
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
22
|
+
compositionValue = _useState2[0],
|
|
23
|
+
setCompositionValue = _useState2[1];
|
|
24
|
+
var triggerValueChange = function triggerValueChange(newValue, e) {
|
|
25
|
+
if (onChange &&
|
|
26
|
+
// Prevents onchange from being triggered twice
|
|
27
|
+
newValue !== value && (maxLength === undefined || newValue.length <= maxLength)) {
|
|
28
|
+
onChange(newValue, e);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
return {
|
|
32
|
+
compositionValue: compositionValue,
|
|
33
|
+
triggerValueChange: triggerValueChange,
|
|
34
|
+
handleCompositionStart: function handleCompositionStart() {
|
|
35
|
+
refIsComposition.current = true;
|
|
36
|
+
},
|
|
37
|
+
handleCompositionEnd: function handleCompositionEnd(e) {
|
|
38
|
+
setCompositionValue(undefined);
|
|
39
|
+
triggerValueChange(e.target.value, e);
|
|
40
|
+
},
|
|
41
|
+
handleValueChange: function handleValueChange(e) {
|
|
42
|
+
var newValue = e.target.value;
|
|
43
|
+
if (!refIsComposition.current) {
|
|
44
|
+
// if e.type is compositionend event, the following content will trigger
|
|
45
|
+
compositionValue && setCompositionValue(undefined);
|
|
46
|
+
triggerValueChange(newValue, e);
|
|
47
|
+
} else {
|
|
48
|
+
refIsComposition.current = false;
|
|
49
|
+
setCompositionValue(newValue);
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
handleKeyDown: function handleKeyDown(e) {
|
|
53
|
+
var keyCode = e.key;
|
|
54
|
+
if (!refIsComposition.current) {
|
|
55
|
+
onKeyDown === null || onKeyDown === void 0 || onKeyDown(e);
|
|
56
|
+
if (keyCode === 'Enter') {
|
|
57
|
+
onPressEnter === null || onPressEnter === void 0 || onPressEnter(e);
|
|
58
|
+
// normalizeHandler && triggerValueChange(normalizeHandler('onPressEnter')(e.target.value), e);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
+
import { isNumber } from "../Util/base";
|
|
8
|
+
var hiddenTextarea = undefined;
|
|
9
|
+
var HIDDEN_STYLE = {
|
|
10
|
+
height: '0',
|
|
11
|
+
visibility: 'hidden',
|
|
12
|
+
overflow: /firefox/i.test(window.navigator.userAgent) ? '' : 'hidden',
|
|
13
|
+
position: 'absolute',
|
|
14
|
+
'z-index': '-1000',
|
|
15
|
+
top: '0',
|
|
16
|
+
right: '0'
|
|
17
|
+
};
|
|
18
|
+
var CONTEXT_STYLE = ['letter-spacing', 'line-height', 'padding-top', 'padding-bottom', 'font-family', 'font-weight', 'font-size', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-left', 'padding-right', 'border-width', 'box-sizing', 'word-break'];
|
|
19
|
+
function calculateNodeStyling(targetElement) {
|
|
20
|
+
var style = window.getComputedStyle(targetElement);
|
|
21
|
+
var boxSizing = style.getPropertyValue('box-sizing');
|
|
22
|
+
var paddingSize = Number.parseFloat(style.getPropertyValue('padding-bottom')) + Number.parseFloat(style.getPropertyValue('padding-top'));
|
|
23
|
+
var borderSize = Number.parseFloat(style.getPropertyValue('border-bottom-width')) + Number.parseFloat(style.getPropertyValue('border-top-width'));
|
|
24
|
+
var contextStyle = CONTEXT_STYLE.map(function (name) {
|
|
25
|
+
return [name, style.getPropertyValue(name)];
|
|
26
|
+
});
|
|
27
|
+
return {
|
|
28
|
+
contextStyle: contextStyle,
|
|
29
|
+
paddingSize: paddingSize,
|
|
30
|
+
borderSize: borderSize,
|
|
31
|
+
boxSizing: boxSizing
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export function calcTextareaHeight(targetElement) {
|
|
35
|
+
var _hiddenTextarea$paren;
|
|
36
|
+
var minRows = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
37
|
+
var maxRows = arguments.length > 2 ? arguments[2] : undefined;
|
|
38
|
+
if (!hiddenTextarea) {
|
|
39
|
+
var _targetElement$parent;
|
|
40
|
+
hiddenTextarea = document.createElement('textarea');
|
|
41
|
+
((_targetElement$parent = targetElement.parentNode) !== null && _targetElement$parent !== void 0 ? _targetElement$parent : document.body).appendChild(hiddenTextarea);
|
|
42
|
+
}
|
|
43
|
+
var _calculateNodeStyling = calculateNodeStyling(targetElement),
|
|
44
|
+
paddingSize = _calculateNodeStyling.paddingSize,
|
|
45
|
+
borderSize = _calculateNodeStyling.borderSize,
|
|
46
|
+
boxSizing = _calculateNodeStyling.boxSizing,
|
|
47
|
+
contextStyle = _calculateNodeStyling.contextStyle;
|
|
48
|
+
contextStyle.forEach(function (_ref) {
|
|
49
|
+
var _hiddenTextarea;
|
|
50
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
51
|
+
key = _ref2[0],
|
|
52
|
+
value = _ref2[1];
|
|
53
|
+
return (_hiddenTextarea = hiddenTextarea) === null || _hiddenTextarea === void 0 ? void 0 : _hiddenTextarea.style.setProperty(key, value);
|
|
54
|
+
});
|
|
55
|
+
Object.entries(HIDDEN_STYLE).forEach(function (_ref3) {
|
|
56
|
+
var _hiddenTextarea2;
|
|
57
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
58
|
+
key = _ref4[0],
|
|
59
|
+
value = _ref4[1];
|
|
60
|
+
return (_hiddenTextarea2 = hiddenTextarea) === null || _hiddenTextarea2 === void 0 ? void 0 : _hiddenTextarea2.style.setProperty(key, value, 'important');
|
|
61
|
+
});
|
|
62
|
+
hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';
|
|
63
|
+
var height = hiddenTextarea.scrollHeight;
|
|
64
|
+
var result = {};
|
|
65
|
+
if (boxSizing === 'border-box') {
|
|
66
|
+
height = height + borderSize;
|
|
67
|
+
} else if (boxSizing === 'content-box') {
|
|
68
|
+
height = height - paddingSize;
|
|
69
|
+
}
|
|
70
|
+
hiddenTextarea.value = '';
|
|
71
|
+
var singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;
|
|
72
|
+
if (isNumber(minRows)) {
|
|
73
|
+
var minHeight = singleRowHeight * minRows;
|
|
74
|
+
if (boxSizing === 'border-box') {
|
|
75
|
+
minHeight = minHeight + paddingSize + borderSize;
|
|
76
|
+
}
|
|
77
|
+
height = Math.max(minHeight, height);
|
|
78
|
+
result.minHeight = "".concat(minHeight, "px");
|
|
79
|
+
}
|
|
80
|
+
if (isNumber(maxRows)) {
|
|
81
|
+
var maxHeight = singleRowHeight * maxRows;
|
|
82
|
+
if (boxSizing === 'border-box') {
|
|
83
|
+
maxHeight = maxHeight + paddingSize + borderSize;
|
|
84
|
+
}
|
|
85
|
+
height = Math.min(maxHeight, height);
|
|
86
|
+
}
|
|
87
|
+
result.height = "".concat(height, "px");
|
|
88
|
+
(_hiddenTextarea$paren = hiddenTextarea.parentNode) === null || _hiddenTextarea$paren === void 0 || _hiddenTextarea$paren.removeChild(hiddenTextarea);
|
|
89
|
+
hiddenTextarea = undefined;
|
|
90
|
+
return result;
|
|
91
|
+
}
|
|
@@ -249,7 +249,7 @@ var InputNumber = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (props, re
|
|
|
249
249
|
isCtrlKey.current = false;
|
|
250
250
|
}, []),
|
|
251
251
|
ref: inputRef
|
|
252
|
-
}, omit(htmlInputProps, ['disabled', 'size', 'onInput', 'onKeyDown', 'onKeyUp', 'size', 'onChange', 'style', 'className', 'type', 'name', 'prefix', 'readOnly', 'maxLength', 'minLength']))));
|
|
252
|
+
}, omit(htmlInputProps, ['value', 'defaultValue', 'disabled', 'size', 'onInput', 'onKeyDown', 'onKeyUp', 'size', 'onChange', 'style', 'className', 'type', 'name', 'prefix', 'readOnly', 'maxLength', 'minLength']))));
|
|
253
253
|
}));
|
|
254
254
|
InputNumber.displayName = 'ElInputNumber';
|
|
255
255
|
export default InputNumber;
|
|
@@ -3,7 +3,7 @@ import { InputRef } from '../Input/typings';
|
|
|
3
3
|
import { BaseProps, FormControlBaseProps, NativeProps } from '../types/common';
|
|
4
4
|
export type LiteralUnion<T extends U, U> = T | (U & {});
|
|
5
5
|
export type ValueType = number | string;
|
|
6
|
-
export interface InputNumberProps<V = ValueType> extends Omit<FormControlBaseProps<V>, 'onChange'>, BaseProps<HTMLDivElement>, NativeProps, Omit<React.AllHTMLAttributes<HTMLInputElement>, 'defaultValue' | 'size' | 'prefix' | 'type' | 'onInput' | 'onChange' | 'style' | 'value' | 'ref' | 'className' | 'readOnly' | 'disabled' | 'name' | 'children'> {
|
|
6
|
+
export interface InputNumberProps<V = ValueType> extends Omit<FormControlBaseProps<V>, 'onChange'>, BaseProps<HTMLDivElement>, NativeProps, Omit<React.AllHTMLAttributes<HTMLInputElement>, 'value' | 'defaultValue' | 'size' | 'prefix' | 'type' | 'onInput' | 'onChange' | 'style' | 'value' | 'ref' | 'className' | 'readOnly' | 'disabled' | 'name' | 'children'> {
|
|
7
7
|
/** 设置计数器允许的最大值 */
|
|
8
8
|
max?: number;
|
|
9
9
|
/** 设置计数器允许的最小值 */
|
package/dist/Select/Option.js
CHANGED
|
@@ -14,7 +14,9 @@ var Option = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
14
14
|
hoverValue = _useContext.hover,
|
|
15
15
|
setHover = _useContext.setHover,
|
|
16
16
|
multiple = _useContext.multiple;
|
|
17
|
-
var
|
|
17
|
+
var value = props.value,
|
|
18
|
+
label = props.label,
|
|
19
|
+
data = props.data,
|
|
18
20
|
disabled = props.disabled,
|
|
19
21
|
onClick = props.onClick;
|
|
20
22
|
|
|
@@ -22,31 +24,45 @@ var Option = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
22
24
|
var handleOnClick = useCallback(function (event) {
|
|
23
25
|
event.stopPropagation();
|
|
24
26
|
if (!disabled) {
|
|
25
|
-
onChoose(
|
|
26
|
-
|
|
27
|
+
onChoose(value, {
|
|
28
|
+
value: value,
|
|
29
|
+
label: label,
|
|
30
|
+
data: data
|
|
31
|
+
}, event);
|
|
32
|
+
onClick === null || onClick === void 0 || onClick(value, {
|
|
33
|
+
value: value,
|
|
34
|
+
label: label,
|
|
35
|
+
data: data
|
|
36
|
+
});
|
|
27
37
|
}
|
|
28
|
-
}, [disabled, onChoose,
|
|
38
|
+
}, [disabled, onChoose, value, label, data, onClick]);
|
|
29
39
|
|
|
30
40
|
/** 是否已选中 */
|
|
31
41
|
var selected = useMemo(function () {
|
|
32
42
|
if (multiple && selectedValue instanceof Array) {
|
|
33
|
-
return selectedValue.includes(
|
|
43
|
+
return selectedValue.includes(value);
|
|
34
44
|
}
|
|
35
|
-
return
|
|
36
|
-
}, [multiple,
|
|
45
|
+
return value === selectedValue;
|
|
46
|
+
}, [multiple, value, selectedValue]);
|
|
47
|
+
|
|
48
|
+
// useEffect(() => {
|
|
49
|
+
// onOptionCreate?.(value, { value, label, data });
|
|
50
|
+
// return () => {
|
|
51
|
+
// onOptionDestroy?.(value);
|
|
52
|
+
// };
|
|
53
|
+
// }, []);
|
|
54
|
+
|
|
37
55
|
return /*#__PURE__*/React.createElement("li", {
|
|
38
56
|
className: classNames(e(_templateObject || (_templateObject = _taggedTemplateLiteral(["item"]))), is({
|
|
39
|
-
disabled: disabled
|
|
40
|
-
}), {
|
|
57
|
+
disabled: disabled,
|
|
41
58
|
selected: selected,
|
|
42
|
-
|
|
43
|
-
}, props.className),
|
|
59
|
+
hovering: value === hoverValue
|
|
60
|
+
}), props.className),
|
|
44
61
|
style: props.style,
|
|
45
|
-
title: label,
|
|
46
|
-
key: props.value,
|
|
62
|
+
title: label + '',
|
|
47
63
|
onClick: handleOnClick,
|
|
48
64
|
onMouseEnter: function onMouseEnter() {
|
|
49
|
-
return setHover(
|
|
65
|
+
return setHover(value);
|
|
50
66
|
},
|
|
51
67
|
onMouseLeave: function onMouseLeave() {
|
|
52
68
|
return setHover(selectedValue);
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { ValueType } from './typings';
|
|
3
|
-
interface SelectContextProps {
|
|
2
|
+
import { OptionData, OptionValue, ValueType } from './typings';
|
|
3
|
+
export interface SelectContextProps {
|
|
4
4
|
value: ValueType;
|
|
5
5
|
hover: ValueType;
|
|
6
6
|
setHover: (value: ValueType) => void;
|
|
7
|
-
onChoose: (value:
|
|
7
|
+
onChoose: (value: OptionValue, data: OptionData, e: any) => void;
|
|
8
8
|
multiple: boolean;
|
|
9
9
|
}
|
|
10
10
|
export declare const SelectContext: import("react").Context<SelectContextProps>;
|
|
11
|
-
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { SelectProps, SelectRef
|
|
3
|
-
declare const SelectCore: React.ForwardRefExoticComponent<SelectProps<ValueType> & React.RefAttributes<SelectRef>>;
|
|
2
|
+
import { SelectProps, SelectRef } from './typings';
|
|
3
|
+
declare const SelectCore: React.ForwardRefExoticComponent<SelectProps<import("./typings").ValueType> & React.RefAttributes<SelectRef>>;
|
|
4
4
|
export default SelectCore;
|