@nutui/nutui-react-taro 3.0.9 → 3.0.10
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/CHANGELOG.md +27 -11
- package/dist/cjs/packages/pickerview/pickerroller.js +4 -3
- package/dist/cjs/packages/pickerview/pickerview.js +2 -1
- package/dist/cjs/packages/radio/radio.js +2 -2
- package/dist/cjs/packages/switch/switch.js +22 -9
- package/dist/cjs/packages/tabs/tabs.js +9 -3
- package/dist/cjs/packages/uploader/uploader.js +5 -3
- package/dist/cjs/packages/video/video.d.ts +2 -1
- package/dist/cjs/packages/video/video.js +17 -8
- package/dist/cjs/types/spec/switch/base.d.ts +2 -0
- package/dist/cjs/types/spec/uploader/base.d.ts +1 -0
- package/dist/cjs/utils/get-rect.js +1 -1
- package/dist/cjs/utils/supports-passive.js +1 -1
- package/dist/es/packages/pickerview/pickerroller.js +4 -3
- package/dist/es/packages/pickerview/pickerview.js +2 -1
- package/dist/es/packages/radio/radio.js +2 -2
- package/dist/es/packages/switch/switch.js +22 -9
- package/dist/es/packages/tabs/tabs.js +9 -3
- package/dist/es/packages/uploader/uploader.js +5 -3
- package/dist/es/packages/video/video.d.ts +2 -1
- package/dist/es/packages/video/video.js +17 -8
- package/dist/es/types/spec/switch/base.d.ts +9 -1
- package/dist/es/types/spec/uploader/base.d.ts +4 -0
- package/dist/es/utils/get-rect.js +1 -1
- package/dist/es/utils/supports-passive.js +1 -1
- package/dist/nutui.react.umd.js +61 -30
- package/dist/style-jmapp.css +1 -1
- package/dist/style-jmapp.scss +33 -33
- package/dist/style-jrkf.css +1 -1
- package/dist/style-jrkf.scss +39 -39
- package/dist/style.css +1 -1
- package/dist/style.scss +45 -45
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,17 +1,33 @@
|
|
|
1
|
-
# v3.0.
|
|
2
|
-
`2025-04-
|
|
1
|
+
# v3.0.10
|
|
2
|
+
`2025-04-25`
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
* 🏡 chore: 更新壳工程分支 (#3200)
|
|
6
|
+
* 🏡 chore: release: v3.0.10-beta.0
|
|
7
|
+
* 🏡 chore: update publich path
|
|
8
|
+
* 📖 docs: jmapp 不判断环境,直接打开 (#3193)
|
|
9
|
+
* :sparkles: feat(switch): loading 态受控 (#3149)
|
|
10
|
+
* :sparkles: feat(uploader): add listUploadRender prop for custom list mode upload… (#3198)
|
|
11
|
+
* :sparkles: feat(video): 兼容taro Component属性 (#3185)
|
|
12
|
+
* :sparkles: feat(radio): 支持自定义icon的classname (#3196)
|
|
13
|
+
* :bug: fix(tabs): 修复滚动计算问题,优化定位逻辑 (#3183)
|
|
14
|
+
* :bug: fix: 删掉无用console (#3197)
|
|
15
|
+
* :bug: fix: 兼容选中值为0的情况 (#3192)
|
|
3
16
|
|
|
4
17
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
* :bug: fix(image): update image props tsType (#3178)
|
|
9
|
-
* 🪵 refactor: 打包组件不同主题的 css 文件 (#3189)
|
|
10
|
-
* 🪵 refactor(loading): 移除内置的 lottie,可通过 icon 属性加载 lottie (#3184)
|
|
11
|
-
* 📖 docs(audio): 修订audio taro 端文档,不再支持taro多端 (#3187)
|
|
12
|
-
* 🏡 chore: update taro version (#3186)
|
|
13
|
-
* 🏡 chore: 调整 utils 和 hooks 的导出方式 (#3162)
|
|
18
|
+
# v3.0.9
|
|
19
|
+
|
|
20
|
+
`2025-04-18`
|
|
14
21
|
|
|
22
|
+
- :sparkles: feat(form): 增加 taro components 属性的支持,抽象类型 (#3182)
|
|
23
|
+
- :sparkles: feat(input): 增加 taro components 属性的支持 (#3181)
|
|
24
|
+
- :sparkles: feat(button): 兼容 taro components (#3188)
|
|
25
|
+
- :bug: fix(image): update image props tsType (#3178)
|
|
26
|
+
- 🪵 refactor: 打包组件不同主题的 css 文件 (#3189)
|
|
27
|
+
- 🪵 refactor(loading): 移除内置的 lottie,可通过 icon 属性加载 lottie (#3184)
|
|
28
|
+
- 📖 docs(audio): 修订audio taro 端文档,不再支持taro多端 (#3187)
|
|
29
|
+
- 🏡 chore: update taro version (#3186)
|
|
30
|
+
- 🏡 chore: 调整 utils 和 hooks 的导出方式 (#3162)
|
|
15
31
|
|
|
16
32
|
# v3.0.8
|
|
17
33
|
|
|
@@ -239,10 +239,11 @@ var InternalPickerRoller = function InternalPickerRoller(props, ref) {
|
|
|
239
239
|
}, threeDimensional && options.map(function(item, index) {
|
|
240
240
|
var _item_value;
|
|
241
241
|
var _obj;
|
|
242
|
-
return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment,
|
|
243
|
-
className: (0, _classnames.default)("".concat(classPrefix, "-item"), (_obj = {}, (0, _define_property._)(_obj, "".concat(classPrefix, "-item-hidden"), isItemHidden(index + 1)), (0, _define_property._)(_obj, "".concat(classPrefix, "-item-active"), index + 1 === currentIndex), _obj)),
|
|
244
|
-
style: rollerStyle(index),
|
|
242
|
+
return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, {
|
|
245
243
|
key: (_item_value = item.value) !== null && _item_value !== void 0 ? _item_value : index
|
|
244
|
+
}, isGetLineSpacing ? /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
245
|
+
className: (0, _classnames.default)("".concat(classPrefix, "-item"), (_obj = {}, (0, _define_property._)(_obj, "".concat(classPrefix, "-item-hidden"), isItemHidden(index + 1)), (0, _define_property._)(_obj, "".concat(classPrefix, "-item-active"), index + 1 === currentIndex), _obj)),
|
|
246
|
+
style: rollerStyle(index)
|
|
246
247
|
}, renderLabel(item)) : null);
|
|
247
248
|
}), !threeDimensional && options.map(function(item, index) {
|
|
248
249
|
var _item_value;
|
|
@@ -21,6 +21,7 @@ var _reactfastcompare = /*#__PURE__*/ _interop_require_default._(require("react-
|
|
|
21
21
|
var _typings = require("../../utils/typings");
|
|
22
22
|
var _usepropsvalue = require("../../hooks/use-props-value");
|
|
23
23
|
var _pickerroller = /*#__PURE__*/ _interop_require_default._(require("./pickerroller"));
|
|
24
|
+
var _isempty = require("../../utils/is-empty");
|
|
24
25
|
var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _typings.ComponentDefaults), {
|
|
25
26
|
options: [],
|
|
26
27
|
defaultValue: [],
|
|
@@ -117,7 +118,7 @@ var InternalPickerView = function InternalPickerView(props, ref) {
|
|
|
117
118
|
]);
|
|
118
119
|
var handleSelect = (0, _react.useCallback)(function(option, index) {
|
|
119
120
|
var newValue = option === null || option === void 0 ? void 0 : option.value;
|
|
120
|
-
if (
|
|
121
|
+
if ((0, _isempty.isEmpty)(newValue) || innerValue[index] === newValue) return;
|
|
121
122
|
changeIndex.current = index;
|
|
122
123
|
if (columnsType === 'multiple') {
|
|
123
124
|
setInnerValue(function(prev) {
|
|
@@ -84,13 +84,13 @@ var Radio = function Radio(props) {
|
|
|
84
84
|
}
|
|
85
85
|
if (checkedStatement) {
|
|
86
86
|
return /*#__PURE__*/ _react.default.isValidElement(activeIcon) ? /*#__PURE__*/ _react.default.cloneElement(activeIcon, (0, _object_spread_props._)((0, _object_spread._)({}, activeIcon.props), {
|
|
87
|
-
className: (0, _classnames.default)(color())
|
|
87
|
+
className: (0, _classnames.default)(activeIcon.props.className, color())
|
|
88
88
|
})) : /*#__PURE__*/ _react.default.createElement(_iconsreacttaro.CheckChecked, {
|
|
89
89
|
className: (0, _classnames.default)(color())
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
92
|
return /*#__PURE__*/ _react.default.isValidElement(icon) ? /*#__PURE__*/ _react.default.cloneElement(icon, (0, _object_spread_props._)((0, _object_spread._)({}, icon.props), {
|
|
93
|
-
className: (0, _classnames.default)(color())
|
|
93
|
+
className: (0, _classnames.default)(icon.props.className, color())
|
|
94
94
|
})) : /*#__PURE__*/ _react.default.createElement(_iconsreacttaro.CheckNormal, {
|
|
95
95
|
className: (0, _classnames.default)(color())
|
|
96
96
|
});
|
|
@@ -28,10 +28,12 @@ var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _typing
|
|
|
28
28
|
disabled: false,
|
|
29
29
|
activeText: '',
|
|
30
30
|
inactiveText: '',
|
|
31
|
-
loadingIcon: /*#__PURE__*/ _react.default.createElement(_iconsreacttaro.Loading1, null)
|
|
31
|
+
loadingIcon: /*#__PURE__*/ _react.default.createElement(_iconsreacttaro.Loading1, null),
|
|
32
|
+
loading: undefined,
|
|
33
|
+
onLoadingChange: function onLoadingChange(loading) {}
|
|
32
34
|
});
|
|
33
35
|
var Switch = function Switch(props) {
|
|
34
|
-
var _ref = (0, _object_spread._)({}, defaultProps, props), checked = _ref.checked, defaultChecked = _ref.defaultChecked, disabled = _ref.disabled, activeText = _ref.activeText, inactiveText = _ref.inactiveText, loadingIcon = _ref.loadingIcon, className = _ref.className, style = _ref.style, onChange = _ref.onChange, rest = (0, _object_without_properties._)(_ref, [
|
|
36
|
+
var _ref = (0, _object_spread._)({}, defaultProps, props), checked = _ref.checked, defaultChecked = _ref.defaultChecked, disabled = _ref.disabled, activeText = _ref.activeText, inactiveText = _ref.inactiveText, loadingIcon = _ref.loadingIcon, className = _ref.className, style = _ref.style, onChange = _ref.onChange, propLoading = _ref.loading, onLoadingChange = _ref.onLoadingChange, rest = (0, _object_without_properties._)(_ref, [
|
|
35
37
|
"checked",
|
|
36
38
|
"defaultChecked",
|
|
37
39
|
"disabled",
|
|
@@ -40,7 +42,9 @@ var Switch = function Switch(props) {
|
|
|
40
42
|
"loadingIcon",
|
|
41
43
|
"className",
|
|
42
44
|
"style",
|
|
43
|
-
"onChange"
|
|
45
|
+
"onChange",
|
|
46
|
+
"loading",
|
|
47
|
+
"onLoadingChange"
|
|
44
48
|
]);
|
|
45
49
|
var classPrefix = 'nut-switch';
|
|
46
50
|
var rtl = (0, _index.useRtl)();
|
|
@@ -48,12 +52,20 @@ var Switch = function Switch(props) {
|
|
|
48
52
|
value: checked,
|
|
49
53
|
defaultValue: defaultChecked
|
|
50
54
|
}), 2), value = _usePropsValue[0], setValue = _usePropsValue[1];
|
|
55
|
+
var _useState = (0, _sliced_to_array._)((0, _react.useState)(false), 2), internalLoading = _useState[0], setInternalLoading = _useState[1];
|
|
56
|
+
var loading = propLoading !== undefined ? propLoading : internalLoading;
|
|
57
|
+
var setLoading = function setLoading(val) {
|
|
58
|
+
if (propLoading !== undefined) {
|
|
59
|
+
onLoadingChange(val);
|
|
60
|
+
} else {
|
|
61
|
+
setInternalLoading(val);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
51
64
|
(0, _react.useEffect)(function() {
|
|
52
|
-
|
|
65
|
+
loading && setLoading(false);
|
|
53
66
|
}, [
|
|
54
67
|
value
|
|
55
68
|
]);
|
|
56
|
-
var _useState = (0, _sliced_to_array._)((0, _react.useState)(false), 2), changing = _useState[0], setChanging = _useState[1];
|
|
57
69
|
var classes = function classes() {
|
|
58
70
|
var _obj;
|
|
59
71
|
return (0, _classnames.default)([
|
|
@@ -68,14 +80,15 @@ var Switch = function Switch(props) {
|
|
|
68
80
|
return (0, _ts_generator._)(this, function(_state) {
|
|
69
81
|
switch(_state.label){
|
|
70
82
|
case 0:
|
|
71
|
-
if (disabled ||
|
|
83
|
+
if (disabled || loading) return [
|
|
72
84
|
2
|
|
73
85
|
];
|
|
74
86
|
if (!onChange) return [
|
|
75
87
|
3,
|
|
76
88
|
4
|
|
77
89
|
];
|
|
78
|
-
|
|
90
|
+
loadingIcon && setLoading(true);
|
|
91
|
+
onChange(!value);
|
|
79
92
|
_state.label = 1;
|
|
80
93
|
case 1:
|
|
81
94
|
_state.trys.push([
|
|
@@ -96,7 +109,7 @@ var Switch = function Switch(props) {
|
|
|
96
109
|
];
|
|
97
110
|
case 3:
|
|
98
111
|
e = _state.sent();
|
|
99
|
-
|
|
112
|
+
setLoading(false);
|
|
100
113
|
return [
|
|
101
114
|
3,
|
|
102
115
|
4
|
|
@@ -128,7 +141,7 @@ var Switch = function Switch(props) {
|
|
|
128
141
|
],
|
|
129
142
|
(_obj = {}, (0, _define_property._)(_obj, "".concat(classPrefix, "-button-open-rtl"), rtl && value), (0, _define_property._)(_obj, "".concat(classPrefix, "-button-close-rtl"), rtl && !value), _obj)
|
|
130
143
|
])
|
|
131
|
-
},
|
|
144
|
+
}, loading && loadingIcon ? /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, loadingIcon) : /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, !value && !activeText && /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
132
145
|
className: "".concat(classPrefix, "-close-line")
|
|
133
146
|
}))), activeText && /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
134
147
|
className: (0, _classnames.default)("".concat(classPrefix, "-label"), (_obj1 = {}, (0, _define_property._)(_obj1, "".concat(classPrefix, "-label-open"), value), (0, _define_property._)(_obj1, "".concat(classPrefix, "-label-close"), !value), (0, _define_property._)(_obj1, "".concat(classPrefix, "-label-open-rtl"), rtl && value), (0, _define_property._)(_obj1, "".concat(classPrefix, "-label-close-rtl"), rtl && !value), (0, _define_property._)(_obj1, "".concat(classPrefix, "-label-close-disabled"), disabled && !value), _obj1))
|
|
@@ -126,7 +126,7 @@ var Tabs = function Tabs(props) {
|
|
|
126
126
|
var scrollIntoView = function scrollIntoView(index) {
|
|
127
127
|
(0, _raf.default)(function() {
|
|
128
128
|
Promise.all([
|
|
129
|
-
getRect("#nut-tabs-titles-".concat(name || uuid
|
|
129
|
+
getRect("#nut-tabs-titles-".concat(name || uuid)),
|
|
130
130
|
getAllRect("#nut-tabs-titles-".concat(name || uuid, " .nut-tabs-titles-item"))
|
|
131
131
|
]).then(function(param) {
|
|
132
132
|
var _param = (0, _sliced_to_array._)(param, 2), navRect = _param[0], titleRects = _param[1];
|
|
@@ -134,15 +134,21 @@ var Tabs = function Tabs(props) {
|
|
|
134
134
|
if (!titleRect) return;
|
|
135
135
|
var to = 0;
|
|
136
136
|
if (direction === 'vertical') {
|
|
137
|
+
var totalHeight = titleRects.reduce(function(sum, curr) {
|
|
138
|
+
return sum + curr.height;
|
|
139
|
+
}, 0);
|
|
137
140
|
var top = titleRects.slice(0, index).reduce(function(prev, curr) {
|
|
138
141
|
return prev + curr.height;
|
|
139
142
|
}, 0);
|
|
140
|
-
to = top - (navRect.height - titleRect.height) / 2;
|
|
143
|
+
to = Math.min(Math.max(0, top - (navRect.height - titleRect.height) / 2), totalHeight - navRect.height);
|
|
141
144
|
} else {
|
|
145
|
+
var totalWidth = titleRects.reduce(function(sum, curr) {
|
|
146
|
+
return sum + curr.width;
|
|
147
|
+
}, 0);
|
|
142
148
|
var left = titleRects.slice(0, index).reduce(function(prev, curr) {
|
|
143
149
|
return prev + curr.width;
|
|
144
150
|
}, 0);
|
|
145
|
-
to = left - (navRect.width - titleRect.width) / 2;
|
|
151
|
+
to = Math.min(Math.max(0, left - (navRect.width - titleRect.width) / 2), totalWidth - navRect.width);
|
|
146
152
|
}
|
|
147
153
|
scrollDirection(to, direction);
|
|
148
154
|
(0, _taro.nextTick)(function() {
|
|
@@ -69,11 +69,12 @@ var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _typing
|
|
|
69
69
|
});
|
|
70
70
|
var InternalUploader = function InternalUploader(props, ref) {
|
|
71
71
|
var locale = (0, _index1.useConfig)().locale;
|
|
72
|
-
var _ref = (0, _object_spread._)({}, defaultProps, props), children = _ref.children, uploadIcon = _ref.uploadIcon, deleteIcon = _ref.deleteIcon, uploadLabel = _ref.uploadLabel, accept = _ref.accept, name = _ref.name, camera = _ref.camera, defaultValue = _ref.defaultValue, value = _ref.value, previewType = _ref.previewType, fit = _ref.fit, disabled = _ref.disabled, multiple = _ref.multiple, previewUrl = _ref.previewUrl, preview = _ref.preview, deletable = _ref.deletable, maxCount = _ref.maxCount, maxFileSize = _ref.maxFileSize, mediaType = _ref.mediaType, className = _ref.className, autoUpload = _ref.autoUpload, sizeType = _ref.sizeType, sourceType = _ref.sourceType, maxDuration = _ref.maxDuration, onDelete = _ref.onDelete, onChange = _ref.onChange, onFileItemClick = _ref.onFileItemClick, onOversize = _ref.onOversize, onOverCount = _ref.onOverCount, beforeUpload = _ref.beforeUpload, upload = _ref.upload, beforeDelete = _ref.beforeDelete, onUploadQueueChange = _ref.onUploadQueueChange, restProps = (0, _object_without_properties._)(_ref, [
|
|
72
|
+
var _ref = (0, _object_spread._)({}, defaultProps, props), children = _ref.children, uploadIcon = _ref.uploadIcon, deleteIcon = _ref.deleteIcon, uploadLabel = _ref.uploadLabel, listUploadRender = _ref.listUploadRender, accept = _ref.accept, name = _ref.name, camera = _ref.camera, defaultValue = _ref.defaultValue, value = _ref.value, previewType = _ref.previewType, fit = _ref.fit, disabled = _ref.disabled, multiple = _ref.multiple, previewUrl = _ref.previewUrl, preview = _ref.preview, deletable = _ref.deletable, maxCount = _ref.maxCount, maxFileSize = _ref.maxFileSize, mediaType = _ref.mediaType, className = _ref.className, autoUpload = _ref.autoUpload, sizeType = _ref.sizeType, sourceType = _ref.sourceType, maxDuration = _ref.maxDuration, onDelete = _ref.onDelete, onChange = _ref.onChange, onFileItemClick = _ref.onFileItemClick, onOversize = _ref.onOversize, onOverCount = _ref.onOverCount, beforeUpload = _ref.beforeUpload, upload = _ref.upload, beforeDelete = _ref.beforeDelete, onUploadQueueChange = _ref.onUploadQueueChange, restProps = (0, _object_without_properties._)(_ref, [
|
|
73
73
|
"children",
|
|
74
74
|
"uploadIcon",
|
|
75
75
|
"deleteIcon",
|
|
76
76
|
"uploadLabel",
|
|
77
|
+
"listUploadRender",
|
|
77
78
|
"accept",
|
|
78
79
|
"name",
|
|
79
80
|
"camera",
|
|
@@ -451,9 +452,10 @@ var InternalUploader = function InternalUploader(props, ref) {
|
|
|
451
452
|
onFileItemClick === null || onFileItemClick === void 0 ? void 0 : onFileItemClick(file, index);
|
|
452
453
|
};
|
|
453
454
|
var renderListUploader = function renderListUploader() {
|
|
454
|
-
|
|
455
|
+
if (previewType !== 'list') return null;
|
|
456
|
+
return /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
455
457
|
className: "nut-uploader-slot"
|
|
456
|
-
}, /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(_index.default, {
|
|
458
|
+
}, listUploadRender || /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(_index.default, {
|
|
457
459
|
size: "small",
|
|
458
460
|
type: "primary"
|
|
459
461
|
}, locale.uploader.list), Number(maxCount) > fileList.length && /*#__PURE__*/ _react.default.createElement(_index.default, {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { FunctionComponent } from 'react';
|
|
2
|
+
import { VideoProps } from '@tarojs/components';
|
|
2
3
|
import { TaroVideoProps } from "../../types";
|
|
3
|
-
export declare const Video: FunctionComponent<Partial<TaroVideoProps>>;
|
|
4
|
+
export declare const Video: FunctionComponent<Partial<TaroVideoProps & VideoProps>>;
|
|
@@ -29,29 +29,38 @@ var defaultProps = {
|
|
|
29
29
|
loop: false
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
|
-
var classPrefix =
|
|
32
|
+
var classPrefix = 'nut-video';
|
|
33
33
|
var Video = function Video(props) {
|
|
34
|
-
var
|
|
34
|
+
var _props_options;
|
|
35
|
+
var _mergeProps = (0, _mergeprops.mergeProps)(defaultProps, props), source = _mergeProps.source, options = _mergeProps.options, className = _mergeProps.className, style = _mergeProps.style, src = _mergeProps.src, muted = _mergeProps.muted, loop = _mergeProps.loop, poster = _mergeProps.poster, controls = _mergeProps.controls, autoplay = _mergeProps.autoplay, onPlay = _mergeProps.onPlay, onPause = _mergeProps.onPause, onPlayEnd = _mergeProps.onPlayEnd, restProps = (0, _object_without_properties._)(_mergeProps, [
|
|
35
36
|
"source",
|
|
36
37
|
"options",
|
|
37
38
|
"className",
|
|
38
39
|
"style",
|
|
40
|
+
"src",
|
|
41
|
+
"muted",
|
|
42
|
+
"loop",
|
|
43
|
+
"poster",
|
|
44
|
+
"controls",
|
|
45
|
+
"autoplay",
|
|
39
46
|
"onPlay",
|
|
40
47
|
"onPause",
|
|
41
48
|
"onPlayEnd"
|
|
42
49
|
]);
|
|
43
50
|
var classes = (0, _classnames.default)(classPrefix, className);
|
|
51
|
+
var _props_options_controls, _ref;
|
|
52
|
+
var effectiveControls = (_ref = (_props_options_controls = (_props_options = props.options) === null || _props_options === void 0 ? void 0 : _props_options.controls) !== null && _props_options_controls !== void 0 ? _props_options_controls : controls) !== null && _ref !== void 0 ? _ref : options.controls;
|
|
44
53
|
return /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
45
54
|
className: classes,
|
|
46
55
|
style: style
|
|
47
56
|
}, /*#__PURE__*/ _react.default.createElement(_components.Video, (0, _object_spread._)({
|
|
48
57
|
className: "".concat(classPrefix, "-player"),
|
|
49
|
-
muted: options.muted,
|
|
50
|
-
autoplay: options.autoplay,
|
|
51
|
-
loop: options.loop,
|
|
52
|
-
poster: options.poster,
|
|
53
|
-
controls:
|
|
54
|
-
src: source.src,
|
|
58
|
+
muted: options.muted || muted,
|
|
59
|
+
autoplay: options.autoplay || autoplay,
|
|
60
|
+
loop: options.loop || loop,
|
|
61
|
+
poster: options.poster || poster,
|
|
62
|
+
controls: effectiveControls,
|
|
63
|
+
src: source.src || src,
|
|
55
64
|
onPlay: onPlay,
|
|
56
65
|
onPause: onPause,
|
|
57
66
|
onEnded: onPlayEnd
|
|
@@ -38,7 +38,7 @@ var getRect = function getRect(elementRef) {
|
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
40
|
if (element && element.getBoundingClientRect) {
|
|
41
|
-
console.log(element, element.getBoundingClientRect())
|
|
41
|
+
// console.log(element, element.getBoundingClientRect())
|
|
42
42
|
return element.getBoundingClientRect();
|
|
43
43
|
}
|
|
44
44
|
return {
|
|
@@ -227,10 +227,11 @@ var InternalPickerRoller = function(props, ref) {
|
|
|
227
227
|
}, threeDimensional && options.map(function(item, index) {
|
|
228
228
|
var _item_value;
|
|
229
229
|
var _obj;
|
|
230
|
-
return /*#__PURE__*/ React.createElement(React.Fragment,
|
|
231
|
-
className: classNames("".concat(classPrefix, "-item"), (_obj = {}, _define_property(_obj, "".concat(classPrefix, "-item-hidden"), isItemHidden(index + 1)), _define_property(_obj, "".concat(classPrefix, "-item-active"), index + 1 === currentIndex), _obj)),
|
|
232
|
-
style: rollerStyle(index),
|
|
230
|
+
return /*#__PURE__*/ React.createElement(React.Fragment, {
|
|
233
231
|
key: (_item_value = item.value) !== null && _item_value !== void 0 ? _item_value : index
|
|
232
|
+
}, isGetLineSpacing ? /*#__PURE__*/ React.createElement(View, {
|
|
233
|
+
className: classNames("".concat(classPrefix, "-item"), (_obj = {}, _define_property(_obj, "".concat(classPrefix, "-item-hidden"), isItemHidden(index + 1)), _define_property(_obj, "".concat(classPrefix, "-item-active"), index + 1 === currentIndex), _obj)),
|
|
234
|
+
style: rollerStyle(index)
|
|
234
235
|
}, renderLabel(item)) : null);
|
|
235
236
|
}), !threeDimensional && options.map(function(item, index) {
|
|
236
237
|
var _item_value;
|
|
@@ -9,6 +9,7 @@ import isEqual from "react-fast-compare";
|
|
|
9
9
|
import { ComponentDefaults } from "../../utils/typings";
|
|
10
10
|
import { usePropsValue } from "../../hooks/use-props-value";
|
|
11
11
|
import PickerRoller from "./pickerroller";
|
|
12
|
+
import { isEmpty } from "../../utils/is-empty";
|
|
12
13
|
var defaultProps = _object_spread_props(_object_spread({}, ComponentDefaults), {
|
|
13
14
|
options: [],
|
|
14
15
|
defaultValue: [],
|
|
@@ -105,7 +106,7 @@ var InternalPickerView = function(props, ref) {
|
|
|
105
106
|
]);
|
|
106
107
|
var handleSelect = useCallback(function(option, index) {
|
|
107
108
|
var newValue = option === null || option === void 0 ? void 0 : option.value;
|
|
108
|
-
if (
|
|
109
|
+
if (isEmpty(newValue) || innerValue[index] === newValue) return;
|
|
109
110
|
changeIndex.current = index;
|
|
110
111
|
if (columnsType === 'multiple') {
|
|
111
112
|
setInnerValue(function(prev) {
|
|
@@ -72,13 +72,13 @@ export var Radio = function(props) {
|
|
|
72
72
|
}
|
|
73
73
|
if (checkedStatement) {
|
|
74
74
|
return /*#__PURE__*/ React.isValidElement(activeIcon) ? /*#__PURE__*/ React.cloneElement(activeIcon, _object_spread_props(_object_spread({}, activeIcon.props), {
|
|
75
|
-
className: classNames(color())
|
|
75
|
+
className: classNames(activeIcon.props.className, color())
|
|
76
76
|
})) : /*#__PURE__*/ React.createElement(CheckChecked, {
|
|
77
77
|
className: classNames(color())
|
|
78
78
|
});
|
|
79
79
|
}
|
|
80
80
|
return /*#__PURE__*/ React.isValidElement(icon) ? /*#__PURE__*/ React.cloneElement(icon, _object_spread_props(_object_spread({}, icon.props), {
|
|
81
|
-
className: classNames(color())
|
|
81
|
+
className: classNames(icon.props.className, color())
|
|
82
82
|
})) : /*#__PURE__*/ React.createElement(CheckNormal, {
|
|
83
83
|
className: classNames(color())
|
|
84
84
|
});
|
|
@@ -16,10 +16,12 @@ var defaultProps = _object_spread_props(_object_spread({}, ComponentDefaults), {
|
|
|
16
16
|
disabled: false,
|
|
17
17
|
activeText: '',
|
|
18
18
|
inactiveText: '',
|
|
19
|
-
loadingIcon: /*#__PURE__*/ React.createElement(Loading1, null)
|
|
19
|
+
loadingIcon: /*#__PURE__*/ React.createElement(Loading1, null),
|
|
20
|
+
loading: undefined,
|
|
21
|
+
onLoadingChange: function(loading) {}
|
|
20
22
|
});
|
|
21
23
|
export var Switch = function(props) {
|
|
22
|
-
var _ref = _object_spread({}, defaultProps, props), checked = _ref.checked, defaultChecked = _ref.defaultChecked, disabled = _ref.disabled, activeText = _ref.activeText, inactiveText = _ref.inactiveText, loadingIcon = _ref.loadingIcon, className = _ref.className, style = _ref.style, onChange = _ref.onChange, rest = _object_without_properties(_ref, [
|
|
24
|
+
var _ref = _object_spread({}, defaultProps, props), checked = _ref.checked, defaultChecked = _ref.defaultChecked, disabled = _ref.disabled, activeText = _ref.activeText, inactiveText = _ref.inactiveText, loadingIcon = _ref.loadingIcon, className = _ref.className, style = _ref.style, onChange = _ref.onChange, propLoading = _ref.loading, onLoadingChange = _ref.onLoadingChange, rest = _object_without_properties(_ref, [
|
|
23
25
|
"checked",
|
|
24
26
|
"defaultChecked",
|
|
25
27
|
"disabled",
|
|
@@ -28,7 +30,9 @@ export var Switch = function(props) {
|
|
|
28
30
|
"loadingIcon",
|
|
29
31
|
"className",
|
|
30
32
|
"style",
|
|
31
|
-
"onChange"
|
|
33
|
+
"onChange",
|
|
34
|
+
"loading",
|
|
35
|
+
"onLoadingChange"
|
|
32
36
|
]);
|
|
33
37
|
var classPrefix = 'nut-switch';
|
|
34
38
|
var rtl = useRtl();
|
|
@@ -36,12 +40,20 @@ export var Switch = function(props) {
|
|
|
36
40
|
value: checked,
|
|
37
41
|
defaultValue: defaultChecked
|
|
38
42
|
}), 2), value = _usePropsValue[0], setValue = _usePropsValue[1];
|
|
43
|
+
var _useState = _sliced_to_array(useState(false), 2), internalLoading = _useState[0], setInternalLoading = _useState[1];
|
|
44
|
+
var loading = propLoading !== undefined ? propLoading : internalLoading;
|
|
45
|
+
var setLoading = function(val) {
|
|
46
|
+
if (propLoading !== undefined) {
|
|
47
|
+
onLoadingChange(val);
|
|
48
|
+
} else {
|
|
49
|
+
setInternalLoading(val);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
39
52
|
useEffect(function() {
|
|
40
|
-
|
|
53
|
+
loading && setLoading(false);
|
|
41
54
|
}, [
|
|
42
55
|
value
|
|
43
56
|
]);
|
|
44
|
-
var _useState = _sliced_to_array(useState(false), 2), changing = _useState[0], setChanging = _useState[1];
|
|
45
57
|
var classes = function() {
|
|
46
58
|
var _obj;
|
|
47
59
|
return classNames([
|
|
@@ -56,14 +68,15 @@ export var Switch = function(props) {
|
|
|
56
68
|
return _ts_generator(this, function(_state) {
|
|
57
69
|
switch(_state.label){
|
|
58
70
|
case 0:
|
|
59
|
-
if (disabled ||
|
|
71
|
+
if (disabled || loading) return [
|
|
60
72
|
2
|
|
61
73
|
];
|
|
62
74
|
if (!onChange) return [
|
|
63
75
|
3,
|
|
64
76
|
4
|
|
65
77
|
];
|
|
66
|
-
|
|
78
|
+
loadingIcon && setLoading(true);
|
|
79
|
+
onChange(!value);
|
|
67
80
|
_state.label = 1;
|
|
68
81
|
case 1:
|
|
69
82
|
_state.trys.push([
|
|
@@ -84,7 +97,7 @@ export var Switch = function(props) {
|
|
|
84
97
|
];
|
|
85
98
|
case 3:
|
|
86
99
|
e = _state.sent();
|
|
87
|
-
|
|
100
|
+
setLoading(false);
|
|
88
101
|
return [
|
|
89
102
|
3,
|
|
90
103
|
4
|
|
@@ -116,7 +129,7 @@ export var Switch = function(props) {
|
|
|
116
129
|
],
|
|
117
130
|
(_obj = {}, _define_property(_obj, "".concat(classPrefix, "-button-open-rtl"), rtl && value), _define_property(_obj, "".concat(classPrefix, "-button-close-rtl"), rtl && !value), _obj)
|
|
118
131
|
])
|
|
119
|
-
},
|
|
132
|
+
}, loading && loadingIcon ? /*#__PURE__*/ React.createElement(React.Fragment, null, loadingIcon) : /*#__PURE__*/ React.createElement(React.Fragment, null, !value && !activeText && /*#__PURE__*/ React.createElement(View, {
|
|
120
133
|
className: "".concat(classPrefix, "-close-line")
|
|
121
134
|
}))), activeText && /*#__PURE__*/ React.createElement(View, {
|
|
122
135
|
className: classNames("".concat(classPrefix, "-label"), (_obj1 = {}, _define_property(_obj1, "".concat(classPrefix, "-label-open"), value), _define_property(_obj1, "".concat(classPrefix, "-label-close"), !value), _define_property(_obj1, "".concat(classPrefix, "-label-open-rtl"), rtl && value), _define_property(_obj1, "".concat(classPrefix, "-label-close-rtl"), rtl && !value), _define_property(_obj1, "".concat(classPrefix, "-label-close-disabled"), disabled && !value), _obj1))
|
|
@@ -114,7 +114,7 @@ export var Tabs = function(props) {
|
|
|
114
114
|
var scrollIntoView = function(index) {
|
|
115
115
|
raf(function() {
|
|
116
116
|
Promise.all([
|
|
117
|
-
getRect("#nut-tabs-titles-".concat(name || uuid
|
|
117
|
+
getRect("#nut-tabs-titles-".concat(name || uuid)),
|
|
118
118
|
getAllRect("#nut-tabs-titles-".concat(name || uuid, " .nut-tabs-titles-item"))
|
|
119
119
|
]).then(function(param) {
|
|
120
120
|
var _param = _sliced_to_array(param, 2), navRect = _param[0], titleRects = _param[1];
|
|
@@ -122,15 +122,21 @@ export var Tabs = function(props) {
|
|
|
122
122
|
if (!titleRect) return;
|
|
123
123
|
var to = 0;
|
|
124
124
|
if (direction === 'vertical') {
|
|
125
|
+
var totalHeight = titleRects.reduce(function(sum, curr) {
|
|
126
|
+
return sum + curr.height;
|
|
127
|
+
}, 0);
|
|
125
128
|
var top = titleRects.slice(0, index).reduce(function(prev, curr) {
|
|
126
129
|
return prev + curr.height;
|
|
127
130
|
}, 0);
|
|
128
|
-
to = top - (navRect.height - titleRect.height) / 2;
|
|
131
|
+
to = Math.min(Math.max(0, top - (navRect.height - titleRect.height) / 2), totalHeight - navRect.height);
|
|
129
132
|
} else {
|
|
133
|
+
var totalWidth = titleRects.reduce(function(sum, curr) {
|
|
134
|
+
return sum + curr.width;
|
|
135
|
+
}, 0);
|
|
130
136
|
var left = titleRects.slice(0, index).reduce(function(prev, curr) {
|
|
131
137
|
return prev + curr.width;
|
|
132
138
|
}, 0);
|
|
133
|
-
to = left - (navRect.width - titleRect.width) / 2;
|
|
139
|
+
to = Math.min(Math.max(0, left - (navRect.width - titleRect.width) / 2), totalWidth - navRect.width);
|
|
134
140
|
}
|
|
135
141
|
scrollDirection(to, direction);
|
|
136
142
|
nextTick(function() {
|
|
@@ -57,11 +57,12 @@ var defaultProps = _object_spread_props(_object_spread({}, ComponentDefaults), {
|
|
|
57
57
|
});
|
|
58
58
|
var InternalUploader = function(props, ref) {
|
|
59
59
|
var locale = useConfig().locale;
|
|
60
|
-
var _ref = _object_spread({}, defaultProps, props), children = _ref.children, uploadIcon = _ref.uploadIcon, deleteIcon = _ref.deleteIcon, uploadLabel = _ref.uploadLabel, accept = _ref.accept, name = _ref.name, camera = _ref.camera, defaultValue = _ref.defaultValue, value = _ref.value, previewType = _ref.previewType, fit = _ref.fit, disabled = _ref.disabled, multiple = _ref.multiple, previewUrl = _ref.previewUrl, preview = _ref.preview, deletable = _ref.deletable, maxCount = _ref.maxCount, maxFileSize = _ref.maxFileSize, mediaType = _ref.mediaType, className = _ref.className, autoUpload = _ref.autoUpload, sizeType = _ref.sizeType, sourceType = _ref.sourceType, maxDuration = _ref.maxDuration, onDelete = _ref.onDelete, onChange = _ref.onChange, onFileItemClick = _ref.onFileItemClick, onOversize = _ref.onOversize, onOverCount = _ref.onOverCount, beforeUpload = _ref.beforeUpload, upload = _ref.upload, beforeDelete = _ref.beforeDelete, onUploadQueueChange = _ref.onUploadQueueChange, restProps = _object_without_properties(_ref, [
|
|
60
|
+
var _ref = _object_spread({}, defaultProps, props), children = _ref.children, uploadIcon = _ref.uploadIcon, deleteIcon = _ref.deleteIcon, uploadLabel = _ref.uploadLabel, listUploadRender = _ref.listUploadRender, accept = _ref.accept, name = _ref.name, camera = _ref.camera, defaultValue = _ref.defaultValue, value = _ref.value, previewType = _ref.previewType, fit = _ref.fit, disabled = _ref.disabled, multiple = _ref.multiple, previewUrl = _ref.previewUrl, preview = _ref.preview, deletable = _ref.deletable, maxCount = _ref.maxCount, maxFileSize = _ref.maxFileSize, mediaType = _ref.mediaType, className = _ref.className, autoUpload = _ref.autoUpload, sizeType = _ref.sizeType, sourceType = _ref.sourceType, maxDuration = _ref.maxDuration, onDelete = _ref.onDelete, onChange = _ref.onChange, onFileItemClick = _ref.onFileItemClick, onOversize = _ref.onOversize, onOverCount = _ref.onOverCount, beforeUpload = _ref.beforeUpload, upload = _ref.upload, beforeDelete = _ref.beforeDelete, onUploadQueueChange = _ref.onUploadQueueChange, restProps = _object_without_properties(_ref, [
|
|
61
61
|
"children",
|
|
62
62
|
"uploadIcon",
|
|
63
63
|
"deleteIcon",
|
|
64
64
|
"uploadLabel",
|
|
65
|
+
"listUploadRender",
|
|
65
66
|
"accept",
|
|
66
67
|
"name",
|
|
67
68
|
"camera",
|
|
@@ -439,9 +440,10 @@ var InternalUploader = function(props, ref) {
|
|
|
439
440
|
onFileItemClick === null || onFileItemClick === void 0 ? void 0 : onFileItemClick(file, index);
|
|
440
441
|
};
|
|
441
442
|
var renderListUploader = function() {
|
|
442
|
-
|
|
443
|
+
if (previewType !== 'list') return null;
|
|
444
|
+
return /*#__PURE__*/ React.createElement(View, {
|
|
443
445
|
className: "nut-uploader-slot"
|
|
444
|
-
}, /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(Button, {
|
|
446
|
+
}, listUploadRender || /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(Button, {
|
|
445
447
|
size: "small",
|
|
446
448
|
type: "primary"
|
|
447
449
|
}, locale.uploader.list), Number(maxCount) > fileList.length && /*#__PURE__*/ React.createElement(Button, {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { FunctionComponent } from 'react';
|
|
2
|
+
import { VideoProps } from '@tarojs/components';
|
|
2
3
|
import { TaroVideoProps } from "../../types";
|
|
3
|
-
export declare const Video: FunctionComponent<Partial<TaroVideoProps>>;
|
|
4
|
+
export declare const Video: FunctionComponent<Partial<TaroVideoProps & VideoProps>>;
|
|
@@ -18,29 +18,38 @@ var defaultProps = {
|
|
|
18
18
|
loop: false
|
|
19
19
|
}
|
|
20
20
|
};
|
|
21
|
-
var classPrefix =
|
|
21
|
+
var classPrefix = 'nut-video';
|
|
22
22
|
export var Video = function(props) {
|
|
23
|
-
var
|
|
23
|
+
var _props_options;
|
|
24
|
+
var _mergeProps = mergeProps(defaultProps, props), source = _mergeProps.source, options = _mergeProps.options, className = _mergeProps.className, style = _mergeProps.style, src = _mergeProps.src, muted = _mergeProps.muted, loop = _mergeProps.loop, poster = _mergeProps.poster, controls = _mergeProps.controls, autoplay = _mergeProps.autoplay, onPlay = _mergeProps.onPlay, onPause = _mergeProps.onPause, onPlayEnd = _mergeProps.onPlayEnd, restProps = _object_without_properties(_mergeProps, [
|
|
24
25
|
"source",
|
|
25
26
|
"options",
|
|
26
27
|
"className",
|
|
27
28
|
"style",
|
|
29
|
+
"src",
|
|
30
|
+
"muted",
|
|
31
|
+
"loop",
|
|
32
|
+
"poster",
|
|
33
|
+
"controls",
|
|
34
|
+
"autoplay",
|
|
28
35
|
"onPlay",
|
|
29
36
|
"onPause",
|
|
30
37
|
"onPlayEnd"
|
|
31
38
|
]);
|
|
32
39
|
var classes = classNames(classPrefix, className);
|
|
40
|
+
var _props_options_controls, _ref;
|
|
41
|
+
var effectiveControls = (_ref = (_props_options_controls = (_props_options = props.options) === null || _props_options === void 0 ? void 0 : _props_options.controls) !== null && _props_options_controls !== void 0 ? _props_options_controls : controls) !== null && _ref !== void 0 ? _ref : options.controls;
|
|
33
42
|
return /*#__PURE__*/ React.createElement(View, {
|
|
34
43
|
className: classes,
|
|
35
44
|
style: style
|
|
36
45
|
}, /*#__PURE__*/ React.createElement(VideoTaro, _object_spread({
|
|
37
46
|
className: "".concat(classPrefix, "-player"),
|
|
38
|
-
muted: options.muted,
|
|
39
|
-
autoplay: options.autoplay,
|
|
40
|
-
loop: options.loop,
|
|
41
|
-
poster: options.poster,
|
|
42
|
-
controls:
|
|
43
|
-
src: source.src,
|
|
47
|
+
muted: options.muted || muted,
|
|
48
|
+
autoplay: options.autoplay || autoplay,
|
|
49
|
+
loop: options.loop || loop,
|
|
50
|
+
poster: options.poster || poster,
|
|
51
|
+
controls: effectiveControls,
|
|
52
|
+
src: source.src || src,
|
|
44
53
|
onPlay: onPlay,
|
|
45
54
|
onPause: onPause,
|
|
46
55
|
onEnded: onPlayEnd
|
|
@@ -22,10 +22,18 @@ export interface BaseSwitch extends BaseProps {
|
|
|
22
22
|
*/
|
|
23
23
|
inactiveText: ReactNode
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
25
|
+
* 控制加载状态的图标,传入空值时禁用 loading 态
|
|
26
26
|
*/
|
|
27
27
|
loadingIcon: ReactNode
|
|
28
28
|
/**
|
|
29
|
+
* loading 态,受控
|
|
30
|
+
*/
|
|
31
|
+
loading: boolean | undefined
|
|
32
|
+
/**
|
|
33
|
+
* 切换 loading 态时触发
|
|
34
|
+
*/
|
|
35
|
+
onLoadingChange: (loading: boolean) => void
|
|
36
|
+
/**
|
|
29
37
|
* 切换开关时触发
|
|
30
38
|
*/
|
|
31
39
|
onChange: (val: boolean) => void
|