@nutui/nutui-react-taro 3.0.19-cpp.26-beta.5 → 3.0.19-cpp.27
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 +14 -0
- package/dist/cjs/locales/base.d.ts +5 -0
- package/dist/cjs/locales/en-US.js +5 -0
- package/dist/cjs/locales/id-ID.js +5 -0
- package/dist/cjs/locales/ja-JP.js +6 -1
- package/dist/cjs/locales/tr-TR.js +5 -0
- package/dist/cjs/locales/zh-CN.js +5 -0
- package/dist/cjs/locales/zh-TW.js +5 -0
- package/dist/cjs/locales/zh-UG.js +5 -0
- package/dist/cjs/packages/address/address.d.ts +1 -1
- package/dist/cjs/packages/animatingnumbers/countup.js +3 -1
- package/dist/cjs/packages/avatar/avatar.js +32 -6
- package/dist/cjs/packages/badge/badge.js +16 -3
- package/dist/cjs/packages/button/button.d.ts +2 -21
- package/dist/cjs/packages/button/button.js +2 -3
- package/dist/cjs/packages/button/index.d.ts +0 -1
- package/dist/cjs/packages/dialog/dialog.js +6 -2
- package/dist/cjs/packages/divider/divider.js +2 -2
- package/dist/cjs/packages/empty/empty.d.ts +4 -4
- package/dist/cjs/packages/image/image.js +11 -3
- package/dist/cjs/packages/input/input.js +10 -3
- package/dist/cjs/packages/progress/progress.js +2 -4
- package/dist/cjs/packages/quickenter/quickenter.js +21 -15
- package/dist/cjs/packages/quickenter/style/quickenter.scss +10 -2
- package/dist/cjs/packages/quickenter/style/style.css +7 -1
- package/dist/cjs/packages/quickenter/style/style.harmony.css +6 -1
- package/dist/cjs/packages/quickenter/style-jmapp/quickenter.scss +10 -2
- package/dist/cjs/packages/quickenter/style-jmapp/style.css +7 -1
- package/dist/cjs/packages/quickenter/style-jrkf/quickenter.scss +10 -2
- package/dist/cjs/packages/quickenter/style-jrkf/style.css +7 -1
- package/dist/cjs/packages/resultpage/resultpage.js +2 -1
- package/dist/cjs/packages/searchbar/searchbar.js +23 -9
- package/dist/cjs/packages/swipe/swipe.d.ts +1 -1
- package/dist/cjs/packages/tabs/tabs.js +12 -5
- package/dist/cjs/types/spec/button/base.d.ts +2 -1
- package/dist/cjs/types/spec/button/taro.d.ts +5 -1
- package/dist/cjs/types/spec/quickenter/base.d.ts +1 -0
- package/dist/cjs/utils/taro/get-rect.js +4 -2
- package/dist/es/locales/base.d.ts +5 -0
- package/dist/es/locales/en-US.js +5 -0
- package/dist/es/locales/id-ID.js +5 -0
- package/dist/es/locales/ja-JP.js +6 -1
- package/dist/es/locales/tr-TR.js +5 -0
- package/dist/es/locales/zh-CN.js +5 -0
- package/dist/es/locales/zh-TW.js +5 -0
- package/dist/es/locales/zh-UG.js +5 -0
- package/dist/es/packages/address/address.d.ts +1 -1
- package/dist/es/packages/animatingnumbers/countup.js +3 -1
- package/dist/es/packages/avatar/avatar.js +32 -6
- package/dist/es/packages/badge/badge.js +16 -3
- package/dist/es/packages/button/button.d.ts +2 -21
- package/dist/es/packages/button/button.js +2 -4
- package/dist/es/packages/button/index.d.ts +0 -1
- package/dist/es/packages/dialog/dialog.js +6 -2
- package/dist/es/packages/divider/divider.js +1 -1
- package/dist/es/packages/empty/empty.d.ts +4 -4
- package/dist/es/packages/image/image.js +11 -3
- package/dist/es/packages/input/input.js +10 -3
- package/dist/es/packages/popup/popup.js +1 -2
- package/dist/es/packages/progress/progress.js +2 -4
- package/dist/es/packages/quickenter/quickenter.js +19 -13
- package/dist/es/packages/quickenter/style/quickenter.scss +10 -2
- package/dist/es/packages/quickenter/style/style.css +7 -1
- package/dist/es/packages/quickenter/style/style.harmony.css +6 -1
- package/dist/es/packages/quickenter/style-jmapp/quickenter.scss +10 -2
- package/dist/es/packages/quickenter/style-jmapp/style.css +7 -1
- package/dist/es/packages/quickenter/style-jrkf/quickenter.scss +10 -2
- package/dist/es/packages/quickenter/style-jrkf/style.css +7 -1
- package/dist/es/packages/resultpage/resultpage.js +2 -1
- package/dist/es/packages/searchbar/searchbar.js +23 -9
- package/dist/es/packages/swipe/swipe.d.ts +1 -1
- package/dist/es/packages/tabs/tabs.js +12 -5
- package/dist/es/types/spec/button/base.d.ts +2 -1
- package/dist/es/types/spec/button/taro.d.ts +5 -1
- package/dist/es/types/spec/quickenter/base.d.ts +1 -0
- package/dist/es/utils/taro/get-rect.js +4 -2
- package/dist/nutui.react.umd.js +1127 -102
- package/dist/style-jmapp.css +1 -1
- package/dist/style-jmapp.scss +30 -30
- package/dist/style-jrkf.css +1 -1
- package/dist/style-jrkf.scss +34 -34
- package/dist/style.css +1 -1
- package/dist/style.scss +44 -44
- package/dist/styles/jd-font.scss +2 -2
- package/dist/styles/themes/daojia.css +1 -1
- package/dist/styles/themes/dark-daojia.css +1 -1
- package/dist/styles/themes/dark.css +1 -1
- package/dist/styles/themes/default.css +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# v3.0.19-cpp.27
|
|
2
|
+
|
|
3
|
+
`2026-04-24`
|
|
4
|
+
|
|
5
|
+
- 🏡 chore: 升级京东正黑字体到 2.3 (#3435)
|
|
6
|
+
- 🏡 chore: 升级 icon 库版本
|
|
7
|
+
- 🚀 feat: 针对小程序环境进行性能优化与 SelectorQuery 作用域适配 (Tabs, CountUp, getRect)
|
|
8
|
+
- ♿️ feat: 全面适配无障碍 (A11y),涉及组件:Image, Dialog, Button, SearchBar, Popup, Tabs, Progress, Avatar, NavBar, ResultPage
|
|
9
|
+
- 📖 docs: 新增组件标准白皮书与 AI 助手相关文档
|
|
10
|
+
- 🐛 fix(avatar): 修复 onClick 条件判断逻辑并支持 Taro 端 alt 属性
|
|
11
|
+
- 🐛 fix(tabs): 修复 useRtl 引用路径并优化无障碍属性
|
|
12
|
+
- 🐛 fix(quickenter): 修复顶部安全区域适配问题
|
|
13
|
+
- 🐛 fix(type): 修复类型导出与 lint 问题
|
|
14
|
+
|
|
1
15
|
# v3.0.18
|
|
2
16
|
|
|
3
17
|
`2025-08-15`
|
|
@@ -18,6 +18,12 @@ var jaJP = {
|
|
|
18
18
|
select: '選択してください',
|
|
19
19
|
edit: '編集',
|
|
20
20
|
reset: 'リセット',
|
|
21
|
+
close: '閉じる',
|
|
22
|
+
back: '戻る',
|
|
23
|
+
clear: 'クリア',
|
|
24
|
+
image: {
|
|
25
|
+
errorTip: '画像の読み込みに失敗しました'
|
|
26
|
+
},
|
|
21
27
|
video: {
|
|
22
28
|
errorTip: '動画の読み込みに失敗しました',
|
|
23
29
|
clickRetry: 'クリックして再試行'
|
|
@@ -165,7 +171,6 @@ var jaJP = {
|
|
|
165
171
|
errorCanvasTips: '現在の環境はCanvasをサポートしていません'
|
|
166
172
|
},
|
|
167
173
|
mask: 'マスク',
|
|
168
|
-
close: '閉じる',
|
|
169
174
|
quickenter: {
|
|
170
175
|
title: 'クイックアクセス'
|
|
171
176
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { AddressRef, TaroAddressProps } from "../../types";
|
|
3
|
-
export declare const Address: React.ForwardRefExoticComponent<Partial<TaroAddressProps> & Omit<React.HTMLAttributes<HTMLDivElement>, "defaultValue" | "onChange" | "
|
|
3
|
+
export declare const Address: React.ForwardRefExoticComponent<Partial<TaroAddressProps> & Omit<React.HTMLAttributes<HTMLDivElement>, "defaultValue" | "onChange" | "title" | "onClick" | "onLoad"> & React.RefAttributes<AddressRef>>;
|
|
@@ -59,7 +59,9 @@ var CountUp = function CountUp(props) {
|
|
|
59
59
|
var isLoaded = (0, _react.useRef)(false);
|
|
60
60
|
var setNumberTransform = (0, _react.useCallback)(function() {
|
|
61
61
|
if (countupRef.current && numberArr.length) {
|
|
62
|
-
|
|
62
|
+
var _countupRef_current;
|
|
63
|
+
(0, _taro.createSelectorQuery)() // @ts-ignore
|
|
64
|
+
.in(((_countupRef_current = countupRef.current) === null || _countupRef_current === void 0 ? void 0 : _countupRef_current._scope) || countupRef.current).selectAll('.nut-countup-listitem').node(function(numberItems) {
|
|
63
65
|
var transformArrCache = [];
|
|
64
66
|
Object.keys(numberItems).forEach(function(key) {
|
|
65
67
|
var elem = numberItems[Number(key)];
|
|
@@ -13,6 +13,7 @@ var _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcar
|
|
|
13
13
|
var _define_property = require("@swc/helpers/_/_define_property");
|
|
14
14
|
var _object_spread = require("@swc/helpers/_/_object_spread");
|
|
15
15
|
var _object_spread_props = require("@swc/helpers/_/_object_spread_props");
|
|
16
|
+
var _object_without_properties = require("@swc/helpers/_/_object_without_properties");
|
|
16
17
|
var _sliced_to_array = require("@swc/helpers/_/_sliced_to_array");
|
|
17
18
|
var _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
|
18
19
|
var _components = require("@tarojs/components");
|
|
@@ -37,7 +38,23 @@ var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _typing
|
|
|
37
38
|
});
|
|
38
39
|
var classPrefix = "nut-avatar";
|
|
39
40
|
var Avatar = function Avatar(props) {
|
|
40
|
-
var
|
|
41
|
+
var _ref = (0, _object_spread._)({}, defaultProps, props), children = _ref.children, size = _ref.size, shape = _ref.shape, background = _ref.background, color = _ref.color, src = _ref.src, alt = _ref.alt, icon = _ref.icon, mode = _ref.mode, fit = _ref.fit, avatarIndex = _ref.avatarIndex, className = _ref.className, style = _ref.style, onClick = _ref.onClick, onError = _ref.onError, rest = (0, _object_without_properties._)(_ref, [
|
|
42
|
+
"children",
|
|
43
|
+
"size",
|
|
44
|
+
"shape",
|
|
45
|
+
"background",
|
|
46
|
+
"color",
|
|
47
|
+
"src",
|
|
48
|
+
"alt",
|
|
49
|
+
"icon",
|
|
50
|
+
"mode",
|
|
51
|
+
"fit",
|
|
52
|
+
"avatarIndex",
|
|
53
|
+
"className",
|
|
54
|
+
"style",
|
|
55
|
+
"onClick",
|
|
56
|
+
"onError"
|
|
57
|
+
]);
|
|
41
58
|
var _useState // 是否显示的最大头像个数
|
|
42
59
|
= (0, _sliced_to_array._)((0, _react.useState)(false), 2), showMax = _useState[0], setShowMax = _useState[1];
|
|
43
60
|
var avatarRef = (0, _react.useRef)(null);
|
|
@@ -74,7 +91,8 @@ var Avatar = function Avatar(props) {
|
|
|
74
91
|
}
|
|
75
92
|
}, [
|
|
76
93
|
avatarIndex,
|
|
77
|
-
groupCount
|
|
94
|
+
groupCount,
|
|
95
|
+
groupMax
|
|
78
96
|
]);
|
|
79
97
|
var errorEvent = function errorEvent() {
|
|
80
98
|
onError && onError();
|
|
@@ -82,19 +100,26 @@ var Avatar = function Avatar(props) {
|
|
|
82
100
|
var clickAvatar = function clickAvatar(e) {
|
|
83
101
|
onClick && onClick(e);
|
|
84
102
|
};
|
|
85
|
-
return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, (showMax || !groupMax || avatarIndex <= groupMax) && /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
103
|
+
return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, (showMax || !groupMax || avatarIndex <= groupMax) && /*#__PURE__*/ _react.default.createElement(_components.View, (0, _object_spread._)({
|
|
86
104
|
className: cls,
|
|
87
105
|
style: !showMax ? styles : maxStyles,
|
|
88
106
|
onClick: clickAvatar,
|
|
89
|
-
ref: avatarRef
|
|
90
|
-
|
|
107
|
+
ref: avatarRef,
|
|
108
|
+
// @ts-ignore
|
|
109
|
+
ariaRole: onClick ? 'button' : undefined
|
|
110
|
+
}, rest), (!groupMax || avatarIndex <= groupMax) && /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, src && /*#__PURE__*/ _react.default.createElement(_components.Image, {
|
|
91
111
|
className: "nut-avatar-img nut-avatar-".concat(groupSize || size || 'normal', "-img"),
|
|
92
112
|
src: src,
|
|
113
|
+
nativeProps: {
|
|
114
|
+
alt: alt
|
|
115
|
+
},
|
|
93
116
|
style: {
|
|
94
117
|
objectFit: fit
|
|
95
118
|
},
|
|
96
119
|
mode: mode,
|
|
97
|
-
onError: errorEvent
|
|
120
|
+
onError: errorEvent,
|
|
121
|
+
// @ts-ignore
|
|
122
|
+
ariaHidden: true
|
|
98
123
|
}), /*#__PURE__*/ _react.default.isValidElement(icon) ? /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
99
124
|
className: "nut-avatar-text"
|
|
100
125
|
}, /*#__PURE__*/ _react.default.cloneElement(icon, (0, _object_spread_props._)((0, _object_spread._)({}, icon.props), {
|
|
@@ -108,6 +133,7 @@ var Avatar = function Avatar(props) {
|
|
|
108
133
|
}, children), !src && !icon && !children && /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
109
134
|
className: "nut-avatar-text"
|
|
110
135
|
}, /*#__PURE__*/ _react.default.createElement(_iconsreacttaro.User, {
|
|
136
|
+
ariaHidden: true,
|
|
111
137
|
style: {
|
|
112
138
|
color: color
|
|
113
139
|
},
|
|
@@ -14,6 +14,7 @@ var _async_to_generator = require("@swc/helpers/_/_async_to_generator");
|
|
|
14
14
|
var _define_property = require("@swc/helpers/_/_define_property");
|
|
15
15
|
var _object_spread = require("@swc/helpers/_/_object_spread");
|
|
16
16
|
var _object_spread_props = require("@swc/helpers/_/_object_spread_props");
|
|
17
|
+
var _object_without_properties = require("@swc/helpers/_/_object_without_properties");
|
|
17
18
|
var _sliced_to_array = require("@swc/helpers/_/_sliced_to_array");
|
|
18
19
|
var _type_of = require("@swc/helpers/_/_type_of");
|
|
19
20
|
var _ts_generator = require("@swc/helpers/_/_ts_generator");
|
|
@@ -53,7 +54,19 @@ var Badge = function Badge(props) {
|
|
|
53
54
|
};
|
|
54
55
|
var _this;
|
|
55
56
|
var rtl = (0, _index.useRtl)();
|
|
56
|
-
var
|
|
57
|
+
var _ref = (0, _object_spread._)({}, defaultProps, props), className = _ref.className, style = _ref.style, value = _ref.value, max = _ref.max, children = _ref.children, dot = _ref.dot, top = _ref.top, right = _ref.right, fill = _ref.fill, size = _ref.size, disabled = _ref.disabled, rest = (0, _object_without_properties._)(_ref, [
|
|
58
|
+
"className",
|
|
59
|
+
"style",
|
|
60
|
+
"value",
|
|
61
|
+
"max",
|
|
62
|
+
"children",
|
|
63
|
+
"dot",
|
|
64
|
+
"top",
|
|
65
|
+
"right",
|
|
66
|
+
"fill",
|
|
67
|
+
"size",
|
|
68
|
+
"disabled"
|
|
69
|
+
]);
|
|
57
70
|
var classPrefix = 'nut-badge';
|
|
58
71
|
var isHarmony = (0, _platform.harmony)();
|
|
59
72
|
var classes = (0, _classnames.default)(classPrefix, className);
|
|
@@ -81,11 +94,11 @@ var Badge = function Badge(props) {
|
|
|
81
94
|
})();
|
|
82
95
|
};
|
|
83
96
|
var _obj1;
|
|
84
|
-
return /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
97
|
+
return /*#__PURE__*/ _react.default.createElement(_components.View, (0, _object_spread._)({
|
|
85
98
|
className: classes,
|
|
86
99
|
style: style,
|
|
87
100
|
ref: badgeRef
|
|
88
|
-
}, isIcon() && /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
101
|
+
}, rest), isIcon() && /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
89
102
|
className: (0, _classnames.default)("".concat(classPrefix, "-content"), (_obj1 = {}, (0, _define_property._)(_obj1, "".concat(classPrefix, "-icon"), true), (0, _define_property._)(_obj1, "".concat(classPrefix, "-icon-rtl"), rtl), _obj1)),
|
|
90
103
|
style: contentStyle
|
|
91
104
|
}, value), children, !isIcon() && (getContent() || dot) && /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
@@ -1,22 +1,3 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
export type ButtonType = 'default' | 'primary' | 'info' | 'success' | 'warning' | 'danger';
|
|
5
|
-
export type ButtonSize = 'xlarge' | 'large' | 'normal' | 'small' | 'mini';
|
|
6
|
-
export type ButtonShape = 'square' | 'round';
|
|
7
|
-
export type ButtonFill = 'solid' | 'outline' | 'dashed' | 'none';
|
|
8
|
-
export interface ButtonProps extends BasicComponent {
|
|
9
|
-
color: string;
|
|
10
|
-
shape: ButtonShape;
|
|
11
|
-
type: ButtonType;
|
|
12
|
-
size: ButtonSize;
|
|
13
|
-
fill: ButtonFill;
|
|
14
|
-
block: boolean;
|
|
15
|
-
loading: boolean;
|
|
16
|
-
disabled: boolean;
|
|
17
|
-
icon: React.ReactNode;
|
|
18
|
-
rightIcon: React.ReactNode;
|
|
19
|
-
nativeType: 'submit' | 'reset';
|
|
20
|
-
onClick: (e: MouseEvent<HTMLButtonElement>) => void;
|
|
21
|
-
}
|
|
22
|
-
export declare const Button: React.ForwardRefExoticComponent<Partial<ButtonProps> & React.RefAttributes<HTMLButtonElement>>;
|
|
2
|
+
import { TaroButtonProps } from "../../types";
|
|
3
|
+
export declare const Button: React.ForwardRefExoticComponent<Omit<Partial<TaroButtonProps>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -105,9 +105,7 @@ var Button = /*#__PURE__*/ _react.default.forwardRef(function(props, ref) {
|
|
|
105
105
|
// if (getEnv() === 'WEB') {
|
|
106
106
|
// ;(rest as any).type = formType
|
|
107
107
|
// }
|
|
108
|
-
return(//
|
|
109
|
-
// @ts-ignore
|
|
110
|
-
// eslint-disable-next-line react/button-has-type
|
|
108
|
+
return(// @ts-ignore
|
|
111
109
|
// <TaroButton
|
|
112
110
|
/*#__PURE__*/ /*#__PURE__*/ _react.default.createElement(_components.View, (0, _object_spread_props._)((0, _object_spread._)({}, rest), {
|
|
113
111
|
ref: ref,
|
|
@@ -120,6 +118,7 @@ var Button = /*#__PURE__*/ _react.default.forwardRef(function(props, ref) {
|
|
|
120
118
|
}), /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
121
119
|
className: "nut-button-wrap"
|
|
122
120
|
}, loading && /*#__PURE__*/ _react.default.createElement(_iconsreacttaro.Loading, {
|
|
121
|
+
ariaHidden: true,
|
|
123
122
|
className: "nut-icon-loading"
|
|
124
123
|
}), !loading && icon, children && /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
125
124
|
className: "nut-button-children nut-button-".concat(size, "-children nut-button-").concat(type, "-children ").concat(!(props.fill || disabled || loading) ? '' : "nut-button-".concat(type).concat(props.fill ? "-".concat(fill) : '').concat(disabled || loading ? '-disabled' : '')).concat(icon || loading ? " nut-button-text" : '').concat(rightIcon ? ' nut-button-text-right' : ''),
|
|
@@ -203,7 +203,11 @@ var BaseDialog = function BaseDialog(props) {
|
|
|
203
203
|
};
|
|
204
204
|
var _obj;
|
|
205
205
|
var closeClasses = (0, _classnames.default)((_obj = {}, (0, _define_property._)(_obj, "".concat(classPrefix, "-close"), true), (0, _define_property._)(_obj, "".concat(classPrefix, "-close-").concat(closeIconPosition), true), _obj));
|
|
206
|
-
var
|
|
206
|
+
var systemIcon = closeIconPosition !== 'bottom' ? /*#__PURE__*/ _react.default.createElement(_iconsreacttaro.Close, {
|
|
207
|
+
ariaHidden: true
|
|
208
|
+
}) : /*#__PURE__*/ _react.default.createElement(_iconsreacttaro.Failure, {
|
|
209
|
+
ariaHidden: true
|
|
210
|
+
});
|
|
207
211
|
return /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
208
212
|
className: closeClasses,
|
|
209
213
|
onClick: handleClose,
|
|
@@ -211,7 +215,7 @@ var BaseDialog = function BaseDialog(props) {
|
|
|
211
215
|
ariaLabel: locale.close,
|
|
212
216
|
// @ts-ignore
|
|
213
217
|
tabIndex: 0
|
|
214
|
-
}, /*#__PURE__*/ _react.default.isValidElement(closeIcon) ? closeIcon :
|
|
218
|
+
}, /*#__PURE__*/ _react.default.isValidElement(closeIcon) ? closeIcon : systemIcon);
|
|
215
219
|
};
|
|
216
220
|
var onHandleClickOverlay = function onHandleClickOverlay(e) {
|
|
217
221
|
if (closeOnOverlayClick && visible && e.target === e.currentTarget) {
|
|
@@ -17,7 +17,7 @@ var _react = /*#__PURE__*/ _interop_require_default._(require("react"));
|
|
|
17
17
|
var _classnames = /*#__PURE__*/ _interop_require_default._(require("classnames"));
|
|
18
18
|
var _components = require("@tarojs/components");
|
|
19
19
|
var _typings = require("../../utils/typings");
|
|
20
|
-
var
|
|
20
|
+
var _index = require("../configprovider/index");
|
|
21
21
|
var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _typings.ComponentDefaults), {
|
|
22
22
|
contentPosition: 'center',
|
|
23
23
|
direction: 'horizontal'
|
|
@@ -31,7 +31,7 @@ var Divider = function Divider(props) {
|
|
|
31
31
|
"className",
|
|
32
32
|
"direction"
|
|
33
33
|
]);
|
|
34
|
-
var rtl = (0,
|
|
34
|
+
var rtl = (0, _index.useRtl)();
|
|
35
35
|
var _obj, _obj1;
|
|
36
36
|
var classes = direction === 'horizontal' ? (0, _classnames.default)((_obj = {}, (0, _define_property._)(_obj, "".concat(classPrefix), true), (0, _define_property._)(_obj, "".concat(classPrefix, "-center"), children), (0, _define_property._)(_obj, "".concat(classPrefix, "-left"), contentPosition === 'left'), (0, _define_property._)(_obj, "".concat(classPrefix, "-right"), contentPosition === 'right'), (0, _define_property._)(_obj, "".concat(classPrefix, "-rtl"), ([
|
|
37
37
|
'left',
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React, { FunctionComponent, ReactNode } from 'react';
|
|
2
2
|
import { BasicComponent } from "../../utils/typings";
|
|
3
|
-
import {
|
|
3
|
+
import { UIFill, UISize, UIType } from "../../types/base/atoms";
|
|
4
4
|
export interface EmptyAction {
|
|
5
5
|
text: React.ReactNode;
|
|
6
|
-
type?:
|
|
7
|
-
size?:
|
|
8
|
-
fill?:
|
|
6
|
+
type?: UIType;
|
|
7
|
+
size?: UISize;
|
|
8
|
+
fill?: UIFill;
|
|
9
9
|
disabled?: boolean;
|
|
10
10
|
onClick?: () => () => void;
|
|
11
11
|
}
|
|
@@ -21,6 +21,7 @@ var _components = require("@tarojs/components");
|
|
|
21
21
|
var _iconsreacttaro = require("@nutui/icons-react-taro");
|
|
22
22
|
var _classnames = /*#__PURE__*/ _interop_require_default._(require("classnames"));
|
|
23
23
|
var _pxtransform = require("../../utils/taro/px-transform");
|
|
24
|
+
var _index = require("../configprovider/index");
|
|
24
25
|
var defaultProps = {
|
|
25
26
|
src: '',
|
|
26
27
|
error: true,
|
|
@@ -42,6 +43,7 @@ var Image = function Image(props) {
|
|
|
42
43
|
]);
|
|
43
44
|
var _useState = (0, _sliced_to_array._)((0, _react.useState)(true), 2), innerLoading = _useState[0], setInnerLoading = _useState[1];
|
|
44
45
|
var _useState1 = (0, _sliced_to_array._)((0, _react.useState)(false), 2), isError = _useState1[0], setIsError = _useState1[1];
|
|
46
|
+
var locale = (0, _index.useConfig)().locale;
|
|
45
47
|
var pxCheck = function pxCheck(value) {
|
|
46
48
|
return Number.isNaN(Number(value)) ? String(value) : (0, _pxtransform.pxTransform)(+value);
|
|
47
49
|
};
|
|
@@ -74,8 +76,11 @@ var Image = function Image(props) {
|
|
|
74
76
|
if (!isError) return null;
|
|
75
77
|
if (typeof error === 'boolean' && error === true && !innerLoading) {
|
|
76
78
|
return /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
77
|
-
className: "".concat(classPrefix, "-error")
|
|
78
|
-
|
|
79
|
+
className: "".concat(classPrefix, "-error"),
|
|
80
|
+
ariaLabel: locale.image.errorTip || ''
|
|
81
|
+
}, /*#__PURE__*/ _react.default.createElement(_iconsreacttaro.ImageError, {
|
|
82
|
+
ariaHidden: true
|
|
83
|
+
}));
|
|
79
84
|
}
|
|
80
85
|
if (/*#__PURE__*/ _react.default.isValidElement(error) && !innerLoading) {
|
|
81
86
|
return /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
@@ -86,7 +91,8 @@ var Image = function Image(props) {
|
|
|
86
91
|
}, [
|
|
87
92
|
error,
|
|
88
93
|
isError,
|
|
89
|
-
innerLoading
|
|
94
|
+
innerLoading,
|
|
95
|
+
locale
|
|
90
96
|
]);
|
|
91
97
|
var renderLoading = (0, _react.useCallback)(function() {
|
|
92
98
|
if (!loading) return null;
|
|
@@ -112,6 +118,8 @@ var Image = function Image(props) {
|
|
|
112
118
|
className: (0, _classnames.default)("".concat(classPrefix, "-default"), className && "".concat(className, "-image"), (0, _define_property._)({}, "".concat(classPrefix, "-error"), isError)),
|
|
113
119
|
style: imgStyle,
|
|
114
120
|
src: src,
|
|
121
|
+
// @ts-ignore
|
|
122
|
+
ariaHidden: isError,
|
|
115
123
|
onLoad: function onLoad(e) {
|
|
116
124
|
return handleLoad(e);
|
|
117
125
|
},
|
|
@@ -202,7 +202,9 @@ var Input = /*#__PURE__*/ (0, _react.forwardRef)(function(props, ref) {
|
|
|
202
202
|
confirmType: confirmType,
|
|
203
203
|
onBlur: handleBlur,
|
|
204
204
|
onFocus: handleFocus,
|
|
205
|
-
onInput: handleInput
|
|
205
|
+
onInput: handleInput,
|
|
206
|
+
ariaLabel: props.ariaLabel || // eslint-disable-next-line no-nested-ternary
|
|
207
|
+
(value ? undefined : placeholder === undefined ? locale.placeholder : placeholder)
|
|
206
208
|
})), /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
207
209
|
style: {
|
|
208
210
|
display: clearable && !readOnly && active && value.length > 0 ? 'flex' : 'none',
|
|
@@ -215,8 +217,13 @@ var Input = /*#__PURE__*/ (0, _react.forwardRef)(function(props, ref) {
|
|
|
215
217
|
setValue('');
|
|
216
218
|
onClear === null || onClear === void 0 ? void 0 : onClear('');
|
|
217
219
|
}
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
+
},
|
|
221
|
+
ariaRole: "button",
|
|
222
|
+
ariaLabel: locale.clear || '清除'
|
|
223
|
+
}, clearIcon ? /*#__PURE__*/ _react.default.cloneElement(clearIcon, {
|
|
224
|
+
ariaHidden: true
|
|
225
|
+
}) : /*#__PURE__*/ _react.default.createElement(_iconsreacttaro.MaskClose, {
|
|
226
|
+
ariaHidden: true,
|
|
220
227
|
className: "nut-input-clear"
|
|
221
228
|
})));
|
|
222
229
|
});
|
|
@@ -33,7 +33,7 @@ var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _typing
|
|
|
33
33
|
});
|
|
34
34
|
var Progress = function Progress(props) {
|
|
35
35
|
var rtl = (0, _index.useRtl)();
|
|
36
|
-
var _ref = (0, _object_spread._)({}, defaultProps, props), className = _ref.className, style = _ref.style, percent = _ref.percent, background = _ref.background, color = _ref.color, strokeWidth = _ref.strokeWidth, showText = _ref.showText, animated = _ref.animated, children = _ref.children, lazy = _ref.lazy, delay = _ref.delay, showInfo = _ref.showInfo, borderRadius = _ref.borderRadius, fontSize = _ref.fontSize, activeColor = _ref.activeColor, backgroundColor = _ref.backgroundColor, active = _ref.active, activeMode = _ref.activeMode, duration = _ref.duration,
|
|
36
|
+
var _ref = (0, _object_spread._)({}, defaultProps, props), className = _ref.className, style = _ref.style, percent = _ref.percent, background = _ref.background, color = _ref.color, strokeWidth = _ref.strokeWidth, showText = _ref.showText, animated = _ref.animated, children = _ref.children, lazy = _ref.lazy, delay = _ref.delay, showInfo = _ref.showInfo, borderRadius = _ref.borderRadius, fontSize = _ref.fontSize, activeColor = _ref.activeColor, backgroundColor = _ref.backgroundColor, active = _ref.active, activeMode = _ref.activeMode, duration = _ref.duration, onActiveEnd = _ref.onActiveEnd, rest = (0, _object_without_properties._)(_ref, [
|
|
37
37
|
"className",
|
|
38
38
|
"style",
|
|
39
39
|
"percent",
|
|
@@ -53,7 +53,6 @@ var Progress = function Progress(props) {
|
|
|
53
53
|
"active",
|
|
54
54
|
"activeMode",
|
|
55
55
|
"duration",
|
|
56
|
-
"ariaLabel",
|
|
57
56
|
"onActiveEnd"
|
|
58
57
|
]);
|
|
59
58
|
var classPrefix = 'nut-progress';
|
|
@@ -220,8 +219,7 @@ var Progress = function Progress(props) {
|
|
|
220
219
|
ref: progressRef,
|
|
221
220
|
id: selector,
|
|
222
221
|
className: (0, _classnames.default)(classPrefix, className),
|
|
223
|
-
style: style
|
|
224
|
-
"aria-label": ariaLabel
|
|
222
|
+
style: style
|
|
225
223
|
}, rest), /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
226
224
|
className: "".concat(classPrefix, "-outer"),
|
|
227
225
|
style: stylesOuter
|
|
@@ -21,18 +21,18 @@ var _taro = /*#__PURE__*/ _interop_require_default._(require("@tarojs/taro"));
|
|
|
21
21
|
var _classnames = /*#__PURE__*/ _interop_require_default._(require("classnames"));
|
|
22
22
|
var _iconsreacttaro = require("@nutui/icons-react-taro");
|
|
23
23
|
var _index = /*#__PURE__*/ _interop_require_default._(require("../popup/index"));
|
|
24
|
-
var _index1 = /*#__PURE__*/ _interop_require_default._(require("../safearea/index"));
|
|
25
24
|
var _typings = require("../../utils/typings");
|
|
26
25
|
var _usepropsvalue = require("../../hooks/use-props-value");
|
|
27
|
-
var
|
|
26
|
+
var _index1 = /*#__PURE__*/ _interop_require_default._(require("../badge/index"));
|
|
28
27
|
var _configprovider = require("../configprovider");
|
|
29
28
|
var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _typings.ComponentDefaults), {
|
|
30
29
|
options: [],
|
|
31
30
|
visible: false,
|
|
32
|
-
closeOnOverlayClick: true
|
|
31
|
+
closeOnOverlayClick: true,
|
|
32
|
+
safeAreaInsetTop: true
|
|
33
33
|
});
|
|
34
34
|
var InternalQuickEnter = function InternalQuickEnter(props, ref) {
|
|
35
|
-
var _ref = (0, _object_spread._)({}, defaultProps, props), children = _ref.children, visible = _ref.visible, title = _ref.title, _ref_options = _ref.options, options = _ref_options === void 0 ? [] : _ref_options, closeOnOverlayClick = _ref.closeOnOverlayClick, _ref_popupProps = _ref.popupProps, popupProps = _ref_popupProps === void 0 ? {} : _ref_popupProps, className = _ref.className, style = _ref.style, onClose = _ref.onClose, onChange = _ref.onChange, closeIcon = _ref.closeIcon, rest = (0, _object_without_properties._)(_ref, [
|
|
35
|
+
var _ref = (0, _object_spread._)({}, defaultProps, props), children = _ref.children, visible = _ref.visible, title = _ref.title, _ref_options = _ref.options, options = _ref_options === void 0 ? [] : _ref_options, closeOnOverlayClick = _ref.closeOnOverlayClick, _ref_popupProps = _ref.popupProps, popupProps = _ref_popupProps === void 0 ? {} : _ref_popupProps, className = _ref.className, style = _ref.style, onClose = _ref.onClose, onChange = _ref.onChange, closeIcon = _ref.closeIcon, safeAreaInsetTop = _ref.safeAreaInsetTop, rest = (0, _object_without_properties._)(_ref, [
|
|
36
36
|
"children",
|
|
37
37
|
"visible",
|
|
38
38
|
"title",
|
|
@@ -43,12 +43,15 @@ var InternalQuickEnter = function InternalQuickEnter(props, ref) {
|
|
|
43
43
|
"style",
|
|
44
44
|
"onClose",
|
|
45
45
|
"onChange",
|
|
46
|
-
"closeIcon"
|
|
46
|
+
"closeIcon",
|
|
47
|
+
"safeAreaInsetTop"
|
|
47
48
|
]);
|
|
48
49
|
var locale = (0, _configprovider.useConfig)().locale;
|
|
49
50
|
var mergedTitle = title || locale.quickenter.title;
|
|
50
51
|
var classPrefix = 'nut-quickenter';
|
|
51
|
-
var classes = (0, _classnames.default)(classPrefix, className
|
|
52
|
+
var classes = (0, _classnames.default)(classPrefix, className, {
|
|
53
|
+
'safe-area-top': safeAreaInsetTop
|
|
54
|
+
});
|
|
52
55
|
var _usePropsValue = (0, _sliced_to_array._)((0, _usepropsvalue.usePropsValue)({
|
|
53
56
|
value: props.visible,
|
|
54
57
|
defaultValue: false,
|
|
@@ -93,7 +96,9 @@ var InternalQuickEnter = function InternalQuickEnter(props, ref) {
|
|
|
93
96
|
e.stopPropagation();
|
|
94
97
|
onCancelEvent();
|
|
95
98
|
}
|
|
96
|
-
}, closeIcon || /*#__PURE__*/ _react.default.createElement(_iconsreacttaro.Close,
|
|
99
|
+
}, closeIcon || /*#__PURE__*/ _react.default.createElement(_iconsreacttaro.Close, {
|
|
100
|
+
ariaLabel: locale.close
|
|
101
|
+
})));
|
|
97
102
|
};
|
|
98
103
|
var renderContent = function renderContent() {
|
|
99
104
|
return /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
@@ -101,20 +106,23 @@ var InternalQuickEnter = function InternalQuickEnter(props, ref) {
|
|
|
101
106
|
}, /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
102
107
|
className: "".concat(classPrefix, "-list")
|
|
103
108
|
}, options.map(function(item, index) {
|
|
104
|
-
var _item_badgeProps;
|
|
105
|
-
var _item_badge;
|
|
109
|
+
var _item_badgeProps, _item_badgeProps1;
|
|
110
|
+
var _item_badge, _item_badge1;
|
|
106
111
|
return /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
107
112
|
key: index,
|
|
108
113
|
className: "".concat(classPrefix, "-item"),
|
|
114
|
+
ariaLabel: "".concat(item.title, " ").concat((_item_badge = item.badge) !== null && _item_badge !== void 0 ? _item_badge : (_item_badgeProps = item.badgeProps) === null || _item_badgeProps === void 0 ? void 0 : _item_badgeProps.value),
|
|
109
115
|
onClick: function onClick() {
|
|
110
116
|
return handleItemClick(item, index);
|
|
111
117
|
}
|
|
112
118
|
}, /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
113
|
-
className: "".concat(classPrefix, "-item-icon")
|
|
114
|
-
|
|
115
|
-
|
|
119
|
+
className: "".concat(classPrefix, "-item-icon"),
|
|
120
|
+
ariaHidden: true
|
|
121
|
+
}, /*#__PURE__*/ _react.default.createElement(_index1.default, (0, _object_spread_props._)((0, _object_spread._)({}, item.badgeProps), {
|
|
122
|
+
value: (_item_badge1 = item.badge) !== null && _item_badge1 !== void 0 ? _item_badge1 : (_item_badgeProps1 = item.badgeProps) === null || _item_badgeProps1 === void 0 ? void 0 : _item_badgeProps1.value
|
|
116
123
|
}), item.icon)), /*#__PURE__*/ _react.default.createElement(_components.View, {
|
|
117
|
-
className: "".concat(classPrefix, "-item-title")
|
|
124
|
+
className: "".concat(classPrefix, "-item-title"),
|
|
125
|
+
ariaHidden: true
|
|
118
126
|
}, item.title));
|
|
119
127
|
})));
|
|
120
128
|
};
|
|
@@ -139,8 +147,6 @@ var InternalQuickEnter = function InternalQuickEnter(props, ref) {
|
|
|
139
147
|
onCancelEvent();
|
|
140
148
|
},
|
|
141
149
|
onClose: onCancelEvent
|
|
142
|
-
}), /*#__PURE__*/ _react.default.createElement(_index1.default, {
|
|
143
|
-
position: "top"
|
|
144
150
|
}), renderQuickEnterElement()));
|
|
145
151
|
};
|
|
146
152
|
var QuickEnter = /*#__PURE__*/ _react.default.forwardRef(InternalQuickEnter);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
.nut-quickenter {
|
|
2
2
|
width: 100%;
|
|
3
|
-
|
|
3
|
+
/* 限制弹层最大高度,包含安全区 */
|
|
4
|
+
max-height: calc(#{$quickenter-max-height} + env(safe-area-inset-top, 0));
|
|
4
5
|
background: $quickenter-bg-color;
|
|
5
6
|
border-radius: 0 0 12px 12px;
|
|
6
7
|
overflow: hidden;
|
|
@@ -10,6 +11,13 @@
|
|
|
10
11
|
box-shadow: $quickenter-box-shadow;
|
|
11
12
|
// backdrop-filter: $quickenter-backdrop-filter;
|
|
12
13
|
|
|
14
|
+
&.safe-area-top {
|
|
15
|
+
/* 使用 env fallback,确保旧浏览器返回 0 */
|
|
16
|
+
padding-top: calc(
|
|
17
|
+
env(safe-area-inset-top, 0) * var(--nutui-safe-area-multiple, 1)
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
|
|
13
21
|
&-control {
|
|
14
22
|
display: flex;
|
|
15
23
|
align-items: center;
|
|
@@ -44,7 +52,7 @@
|
|
|
44
52
|
&-content {
|
|
45
53
|
flex: 1;
|
|
46
54
|
padding: 10px 28px;
|
|
47
|
-
overflow-y: hidden; //
|
|
55
|
+
overflow-y: hidden; // 始终可滚动,防止内容被遮挡
|
|
48
56
|
box-sizing: border-box;
|
|
49
57
|
|
|
50
58
|
&-scrollable {
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
@charset "UTF-8";
|
|
1
2
|
/* #ifdef harmony */
|
|
2
3
|
/* #endif */
|
|
3
4
|
/* #ifndef harmony */
|
|
4
5
|
/* #endif */
|
|
5
6
|
.nut-quickenter {
|
|
6
7
|
width: 100%;
|
|
7
|
-
|
|
8
|
+
/* 限制弹层最大高度,包含安全区 */
|
|
9
|
+
max-height: calc(var(--nutui-quickenter-max-height, 256px) + env(safe-area-inset-top, 0));
|
|
8
10
|
background: var(--nutui-quickenter-bg-color, #f5f5f5);
|
|
9
11
|
border-radius: 0 0 12px 12px;
|
|
10
12
|
overflow: hidden;
|
|
@@ -13,6 +15,10 @@
|
|
|
13
15
|
flex-direction: column;
|
|
14
16
|
box-shadow: var(--nutui-quickenter-box-shadow, 0px 8px 16px rgba(141, 153, 167, 0.2), 0px -0.5px 0px rgba(0, 0, 0, 0.05) inset);
|
|
15
17
|
}
|
|
18
|
+
.nut-quickenter.safe-area-top {
|
|
19
|
+
/* 使用 env fallback,确保旧浏览器返回 0 */
|
|
20
|
+
padding-top: calc(env(safe-area-inset-top, 0) * var(--nutui-safe-area-multiple, 1));
|
|
21
|
+
}
|
|
16
22
|
.nut-quickenter-control {
|
|
17
23
|
display: flex;
|
|
18
24
|
align-items: center;
|