@nutui/nutui-react 2.3.12-beta.0 → 2.3.12
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 +18 -0
- package/dist/esm/ActionSheet.js +30 -76
- package/dist/esm/Address.js +80 -171
- package/dist/esm/Animate.js +21 -49
- package/dist/esm/AnimatingNumbers.js +47 -120
- package/dist/esm/Audio.js +88 -159
- package/dist/esm/Avatar.js +44 -91
- package/dist/esm/AvatarCropper.js +149 -268
- package/dist/esm/AvatarGroup.js +13 -44
- package/dist/esm/BackTop.js +34 -75
- package/dist/esm/Barrage.js +49 -83
- package/dist/esm/Calendar.js +27 -119
- package/dist/esm/CalendarCard.js +180 -291
- package/dist/esm/CalendarItem.js +253 -314
- package/dist/esm/Card.js +38 -72
- package/dist/esm/Cell.js +27 -62
- package/dist/esm/CellGroup.js +16 -45
- package/dist/esm/CheckboxGroup.js +49 -85
- package/dist/esm/CircleProgress.js +42 -93
- package/dist/esm/Col.js +17 -48
- package/dist/esm/Collapse.js +18 -49
- package/dist/esm/ConfigProvider.js +3 -2
- package/dist/esm/CountDown.js +62 -101
- package/dist/esm/DatePicker.js +87 -127
- package/dist/esm/Dialog.js +116 -196
- package/dist/esm/Divider.js +16 -36
- package/dist/esm/Drag.js +32 -76
- package/dist/esm/Elevator.js +93 -133
- package/dist/esm/Ellipsis.js +71 -92
- package/dist/esm/Empty.js +31 -70
- package/dist/esm/FixedNav.js +32 -81
- package/dist/esm/Form.js +28 -61
- package/dist/esm/Grid.js +27 -51
- package/dist/esm/Image.js +47 -102
- package/dist/esm/ImagePreview.js +82 -135
- package/dist/esm/InfiniteLoading.js +77 -159
- package/dist/esm/Input.js +57 -125
- package/dist/esm/InputNumber.js +66 -96
- package/dist/esm/Layout.js +4 -28
- package/dist/esm/Loading.js +13 -40
- package/dist/esm/Menu.js +51 -105
- package/dist/esm/NavBar.js +46 -85
- package/dist/esm/NoticeBar.js +153 -226
- package/dist/esm/Notify.js +87 -178
- package/dist/esm/NumberKeyboard.js +84 -150
- package/dist/esm/Pagination.js +58 -97
- package/dist/esm/Picker.js +215 -276
- package/dist/esm/Popover.js +111 -159
- package/dist/esm/Price.js +23 -60
- package/dist/esm/Progress.js +47 -77
- package/dist/esm/PullToRefresh.js +94 -201
- package/dist/esm/RadioGroup.js +23 -53
- package/dist/esm/Range.js +113 -177
- package/dist/esm/Rate.js +48 -95
- package/dist/esm/Row.js +19 -43
- package/dist/esm/SearchBar.js +52 -119
- package/dist/esm/ShortPassword.js +58 -106
- package/dist/esm/SideNavBar.js +34 -59
- package/dist/esm/SideNavBarItem.js +7 -36
- package/dist/esm/Signature.js +49 -84
- package/dist/esm/Skeleton.js +31 -68
- package/dist/esm/Space.js +7 -34
- package/dist/esm/Step.js +35 -64
- package/dist/esm/Steps.js +16 -40
- package/dist/esm/Sticky.js +64 -108
- package/dist/esm/SubSideNavBar.js +42 -71
- package/dist/esm/Swipe.js +79 -143
- package/dist/esm/Swiper.js +136 -183
- package/dist/esm/SwiperItem.js +13 -38
- package/dist/esm/Switch.js +20 -53
- package/dist/esm/TabPane.js +6 -30
- package/dist/esm/Tabbar.js +29 -59
- package/dist/esm/Table.js +92 -141
- package/dist/esm/Tag.js +30 -74
- package/dist/esm/TextArea.js +37 -82
- package/dist/esm/TimeDetail.js +20 -58
- package/dist/esm/TimeSelect.js +57 -95
- package/dist/esm/Toast.js +110 -197
- package/dist/esm/Tour.js +88 -132
- package/dist/esm/TrendArrow.js +32 -74
- package/dist/esm/Uploader.js +226 -346
- package/dist/esm/UserContext.js +1 -1
- package/dist/esm/Video.js +34 -67
- package/dist/esm/VirtualList.js +127 -160
- package/dist/esm/WaterMark.js +24 -68
- package/dist/esm/badge2.js +23 -53
- package/dist/esm/button2.js +30 -63
- package/dist/esm/can-use-dom.js +1 -1
- package/dist/esm/cascader2.js +307 -536
- package/dist/esm/checkbox2.js +59 -96
- package/dist/esm/collapseitem2.js +48 -86
- package/dist/esm/configprovider2.js +43 -1003
- package/dist/esm/context.js +1 -1
- package/dist/esm/context2.js +1 -1
- package/dist/esm/context3.js +1 -1
- package/dist/esm/context4.js +1 -1
- package/dist/esm/context5.js +8 -8
- package/dist/esm/date.js +88 -66
- package/dist/esm/formitem2.js +236 -1510
- package/dist/esm/get-scroll-parent.js +8 -10
- package/dist/esm/griditem2.js +34 -52
- package/dist/esm/index.js +5 -12
- package/dist/esm/indicator2.js +13 -42
- package/dist/esm/menuitem2.js +81 -124
- package/dist/esm/overlay2.js +39 -78
- package/dist/esm/pad-zero.js +3 -4
- package/dist/esm/popup2.js +79 -124
- package/dist/esm/px-check.js +2 -2
- package/dist/esm/radio2.js +48 -79
- package/dist/esm/raf.js +5 -3
- package/dist/esm/render.js +17 -54
- package/dist/esm/safearea2.js +3 -5
- package/dist/esm/supports-passive.js +3 -3
- package/dist/esm/tabbaritem2.js +42 -58
- package/dist/esm/tabs2.js +82 -120
- package/dist/esm/tslib.es6.js +47 -0
- package/dist/esm/types/src/packages/button/demos/h5/demo1.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/h5/demo2.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/h5/demo3.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/h5/demo4.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/h5/demo5.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/h5/demo6.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/h5/demo7.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/h5/demo8.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/h5/demo9.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/taro/demo1.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/taro/demo10.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/taro/demo2.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/taro/demo3.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/taro/demo4.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/taro/demo5.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/taro/demo6.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/taro/demo7.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/taro/demo8.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/taro/demo9.d.ts +3 -0
- package/dist/esm/types/src/packages/configprovider/configprovider.d.ts +1 -0
- package/dist/esm/types/src/packages/configprovider/configprovider.taro.d.ts +1 -0
- package/dist/esm/types/src/packages/configprovider/index.d.ts +2 -2
- package/dist/esm/types/src/packages/configprovider/index.taro.d.ts +2 -2
- package/dist/esm/types/src/packages/inputnumber/inputnumber.taro.d.ts +2 -0
- package/dist/esm/typings.js +1 -1
- package/dist/esm/use-click-away.js +9 -13
- package/dist/esm/use-client-rect.js +4 -4
- package/dist/esm/use-props-value.js +10 -15
- package/dist/esm/use-refs.js +5 -7
- package/dist/esm/use-touch.js +16 -20
- package/dist/locales/base.js +1 -1
- package/dist/locales/en-US.js +1 -1
- package/dist/locales/id-ID.js +1 -1
- package/dist/locales/tr-TR.js +1 -1
- package/dist/locales/zh-CN.js +1 -1
- package/dist/locales/zh-TW.js +1 -1
- package/dist/locales/zh-UG.js +1 -1
- package/dist/nutui.react.es.js +242 -284
- package/dist/nutui.react.umd.js +239 -281
- package/dist/style.mjs +1 -1
- package/dist/styles/variables-jmapp.scss +4 -0
- package/dist/types/packages/button/demos/h5/demo1.d.ts +3 -0
- package/dist/types/packages/button/demos/h5/demo2.d.ts +3 -0
- package/dist/types/packages/button/demos/h5/demo3.d.ts +3 -0
- package/dist/types/packages/button/demos/h5/demo4.d.ts +3 -0
- package/dist/types/packages/button/demos/h5/demo5.d.ts +3 -0
- package/dist/types/packages/button/demos/h5/demo6.d.ts +3 -0
- package/dist/types/packages/button/demos/h5/demo7.d.ts +3 -0
- package/dist/types/packages/button/demos/h5/demo8.d.ts +3 -0
- package/dist/types/packages/button/demos/h5/demo9.d.ts +3 -0
- package/dist/types/packages/button/demos/taro/demo1.d.ts +3 -0
- package/dist/types/packages/button/demos/taro/demo10.d.ts +3 -0
- package/dist/types/packages/button/demos/taro/demo2.d.ts +3 -0
- package/dist/types/packages/button/demos/taro/demo3.d.ts +3 -0
- package/dist/types/packages/button/demos/taro/demo4.d.ts +3 -0
- package/dist/types/packages/button/demos/taro/demo5.d.ts +3 -0
- package/dist/types/packages/button/demos/taro/demo6.d.ts +3 -0
- package/dist/types/packages/button/demos/taro/demo7.d.ts +3 -0
- package/dist/types/packages/button/demos/taro/demo8.d.ts +3 -0
- package/dist/types/packages/button/demos/taro/demo9.d.ts +3 -0
- package/dist/types/packages/configprovider/configprovider.d.ts +1 -0
- package/dist/types/packages/configprovider/configprovider.taro.d.ts +1 -0
- package/dist/types/packages/configprovider/index.d.ts +2 -2
- package/dist/types/packages/configprovider/index.taro.d.ts +2 -2
- package/dist/types/packages/empty/empty.d.ts +15 -3
- package/dist/types/packages/inputnumber/inputnumber.taro.d.ts +2 -0
- package/dist/types/packages/rate/rate.d.ts +1 -1
- package/package.json +5 -1
|
@@ -1,145 +1,72 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
-
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
4
|
-
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
5
|
-
import _inherits from "@babel/runtime/helpers/inherits";
|
|
6
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
7
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
8
|
-
var _excluded = ["length", "value", "delay", "duration", "className", "thousands", "style"];
|
|
9
|
-
function _callSuper(t, o, e) {
|
|
10
|
-
return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
|
|
11
|
-
}
|
|
12
|
-
function _isNativeReflectConstruct() {
|
|
13
|
-
try {
|
|
14
|
-
var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
|
|
15
|
-
}));
|
|
16
|
-
} catch (t2) {
|
|
17
|
-
}
|
|
18
|
-
return (_isNativeReflectConstruct = function _isNativeReflectConstruct2() {
|
|
19
|
-
return !!t;
|
|
20
|
-
})();
|
|
21
|
-
}
|
|
22
|
-
function ownKeys(e, r) {
|
|
23
|
-
var t = Object.keys(e);
|
|
24
|
-
if (Object.getOwnPropertySymbols) {
|
|
25
|
-
var o = Object.getOwnPropertySymbols(e);
|
|
26
|
-
r && (o = o.filter(function(r2) {
|
|
27
|
-
return Object.getOwnPropertyDescriptor(e, r2).enumerable;
|
|
28
|
-
})), t.push.apply(t, o);
|
|
29
|
-
}
|
|
30
|
-
return t;
|
|
31
|
-
}
|
|
32
|
-
function _objectSpread(e) {
|
|
33
|
-
for (var r = 1; r < arguments.length; r++) {
|
|
34
|
-
var t = null != arguments[r] ? arguments[r] : {};
|
|
35
|
-
r % 2 ? ownKeys(Object(t), true).forEach(function(r2) {
|
|
36
|
-
_defineProperty(e, r2, t[r2]);
|
|
37
|
-
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) {
|
|
38
|
-
Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
return e;
|
|
42
|
-
}
|
|
43
1
|
import React__default, { useRef, useMemo, useEffect, Component } from "react";
|
|
2
|
+
import { _ as __rest } from "./tslib.es6.js";
|
|
44
3
|
import { C as ComponentDefaults } from "./typings.js";
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
value
|
|
48
|
-
delay
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
var numbers = Array.from({
|
|
58
|
-
length: 10
|
|
59
|
-
}, function(v, i) {
|
|
60
|
-
return i;
|
|
61
|
-
});
|
|
62
|
-
var getShowNumber = function getShowNumber2() {
|
|
63
|
-
var splitArr = value.split(".");
|
|
64
|
-
var intNumber = length && splitArr[0].length < length ? (Array(length).join("0") + splitArr[0]).slice(-length) : splitArr[0];
|
|
65
|
-
var currNumber = "".concat(thousands ? intNumber.replace(/(\d)(?=(?:\d{3})+$)/g, "$1,") : intNumber).concat(splitArr[1] ? "." : "").concat(splitArr[1] || "");
|
|
4
|
+
const defaultProps$1 = Object.assign(Object.assign({}, ComponentDefaults), { length: 0, value: "", delay: 300, duration: 1, thousands: false });
|
|
5
|
+
const CountUp = (props) => {
|
|
6
|
+
const _a = Object.assign(Object.assign({}, defaultProps$1), props), { length, value, delay, duration, className, thousands, style } = _a;
|
|
7
|
+
__rest(_a, ["length", "value", "delay", "duration", "className", "thousands", "style"]);
|
|
8
|
+
const classPrefix = "nut-countup";
|
|
9
|
+
const countupRef = useRef(null);
|
|
10
|
+
const timerRef = useRef(0);
|
|
11
|
+
const numbers = Array.from({ length: 10 }, (v, i) => i);
|
|
12
|
+
const getShowNumber = () => {
|
|
13
|
+
const splitArr = value.split(".");
|
|
14
|
+
const intNumber = length && splitArr[0].length < length ? (Array(length).join("0") + splitArr[0]).slice(-length) : splitArr[0];
|
|
15
|
+
const currNumber = `${thousands ? intNumber.replace(/(\d)(?=(?:\d{3})+$)/g, "$1,") : intNumber}${splitArr[1] ? "." : ""}${splitArr[1] || ""}`;
|
|
66
16
|
return currNumber.split("");
|
|
67
17
|
};
|
|
68
|
-
|
|
69
|
-
|
|
18
|
+
const numerArr = useMemo(getShowNumber, [value, length, thousands]);
|
|
19
|
+
const setNumberTransform = () => {
|
|
70
20
|
if (countupRef.current) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
var elem = numberItems[Number(key)];
|
|
77
|
-
var idx = Number(numberFilterArr[Number(key)]);
|
|
21
|
+
const numberItems = countupRef.current.querySelectorAll(".nut-countup-number");
|
|
22
|
+
const numberFilterArr = numerArr.filter((item) => !Number.isNaN(Number(item)));
|
|
23
|
+
Object.keys(numberItems).forEach((key) => {
|
|
24
|
+
const elem = numberItems[Number(key)];
|
|
25
|
+
const idx = Number(numberFilterArr[Number(key)]);
|
|
78
26
|
if ((idx || idx === 0) && elem) {
|
|
79
|
-
|
|
27
|
+
const transform = `translate(0, -${(idx === 0 ? 10 : idx) * 5}%)`;
|
|
80
28
|
elem.style.transform = transform;
|
|
81
29
|
elem.style.webkitTransform = transform;
|
|
82
30
|
}
|
|
83
31
|
});
|
|
84
32
|
}
|
|
85
33
|
};
|
|
86
|
-
|
|
87
|
-
transition:
|
|
34
|
+
const numberEaseStyle = {
|
|
35
|
+
transition: `transform ${duration}s ease-in-out`
|
|
88
36
|
};
|
|
89
|
-
useEffect(
|
|
90
|
-
timerRef.current = window.setTimeout(
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
timerRef.current = window.setTimeout(() => {
|
|
91
39
|
setNumberTransform();
|
|
92
40
|
}, delay);
|
|
93
|
-
return
|
|
41
|
+
return () => {
|
|
94
42
|
window.clearTimeout(timerRef.current);
|
|
95
43
|
};
|
|
96
44
|
}, [numerArr]);
|
|
97
|
-
return React__default.createElement(
|
|
98
|
-
|
|
99
|
-
ref: countupRef
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}, !Number.isNaN(Number(item)) ? React__default.createElement("span", {
|
|
107
|
-
className: "".concat(classPrefix, "-number"),
|
|
108
|
-
style: numberEaseStyle
|
|
109
|
-
}, [].concat(numbers, numbers).map(function(number, subidx) {
|
|
110
|
-
return React__default.createElement("span", {
|
|
111
|
-
key: subidx
|
|
112
|
-
}, number);
|
|
113
|
-
})) : React__default.createElement("span", {
|
|
114
|
-
className: "".concat(classPrefix, "-separator")
|
|
115
|
-
}, item));
|
|
116
|
-
})));
|
|
45
|
+
return React__default.createElement(
|
|
46
|
+
"div",
|
|
47
|
+
{ className: `${classPrefix} ${className}`, ref: countupRef },
|
|
48
|
+
React__default.createElement("ul", { className: `${classPrefix}-list` }, numerArr.map((item, idx) => {
|
|
49
|
+
return React__default.createElement("li", { className: `${classPrefix}-listitem ${!Number.isNaN(Number(item)) ? `${classPrefix}-listitem-number` : ""}`, key: idx }, !Number.isNaN(Number(item)) ? React__default.createElement("span", { className: `${classPrefix}-number`, style: numberEaseStyle }, [...numbers, ...numbers].map((number, subidx) => {
|
|
50
|
+
return React__default.createElement("span", { key: subidx }, number);
|
|
51
|
+
})) : React__default.createElement("span", { className: `${classPrefix}-separator` }, item));
|
|
52
|
+
}))
|
|
53
|
+
);
|
|
117
54
|
};
|
|
118
55
|
CountUp.defaultProps = defaultProps$1;
|
|
119
56
|
CountUp.displayName = "NutCountUp";
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
_classCallCheck(this, AnimatingNumbers2);
|
|
126
|
-
_this = _callSuper(this, AnimatingNumbers2, [props]);
|
|
127
|
-
_this.state = {};
|
|
128
|
-
return _this;
|
|
57
|
+
const defaultProps = {};
|
|
58
|
+
class AnimatingNumbers extends Component {
|
|
59
|
+
constructor(props) {
|
|
60
|
+
super(props);
|
|
61
|
+
this.state = {};
|
|
129
62
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
}]);
|
|
138
|
-
return AnimatingNumbers2;
|
|
139
|
-
}(Component);
|
|
140
|
-
_defineProperty(AnimatingNumbers, "defaultProps", defaultProps);
|
|
141
|
-
_defineProperty(AnimatingNumbers, "displayName", "NutAnimatingNumbers");
|
|
142
|
-
_defineProperty(AnimatingNumbers, "CountUp", CountUp);
|
|
63
|
+
render() {
|
|
64
|
+
return React__default.createElement("div", { className: "nut-animatingnumbers" });
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
AnimatingNumbers.defaultProps = defaultProps;
|
|
68
|
+
AnimatingNumbers.displayName = "NutAnimatingNumbers";
|
|
69
|
+
AnimatingNumbers.CountUp = CountUp;
|
|
143
70
|
AnimatingNumbers.CountUp = CountUp;
|
|
144
71
|
export {
|
|
145
72
|
AnimatingNumbers as default
|
package/dist/esm/Audio.js
CHANGED
|
@@ -1,28 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
|
-
var _excluded = ["className", "src", "style", "muted", "autoPlay", "loop", "preload", "type", "onBack", "onForward", "onPause", "onEnd", "onMute", "onCanPlay", "children"];
|
|
5
|
-
function ownKeys(e, r) {
|
|
6
|
-
var t = Object.keys(e);
|
|
7
|
-
if (Object.getOwnPropertySymbols) {
|
|
8
|
-
var o = Object.getOwnPropertySymbols(e);
|
|
9
|
-
r && (o = o.filter(function(r2) {
|
|
10
|
-
return Object.getOwnPropertyDescriptor(e, r2).enumerable;
|
|
11
|
-
})), t.push.apply(t, o);
|
|
12
|
-
}
|
|
13
|
-
return t;
|
|
14
|
-
}
|
|
15
|
-
function _objectSpread(e) {
|
|
16
|
-
for (var r = 1; r < arguments.length; r++) {
|
|
17
|
-
var t = null != arguments[r] ? arguments[r] : {};
|
|
18
|
-
r % 2 ? ownKeys(Object(t), true).forEach(function(r2) {
|
|
19
|
-
_defineProperty(e, r2, t[r2]);
|
|
20
|
-
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) {
|
|
21
|
-
Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
return e;
|
|
25
|
-
}
|
|
1
|
+
import { _ as __rest } from "./tslib.es6.js";
|
|
26
2
|
import React__default, { useState, useRef, useEffect } from "react";
|
|
27
3
|
import { Service } from "@nutui/icons-react";
|
|
28
4
|
import classNames from "classnames";
|
|
@@ -30,35 +6,22 @@ import Range from "./Range.js";
|
|
|
30
6
|
import Button from "./Button.js";
|
|
31
7
|
import { useConfig } from "./ConfigProvider.js";
|
|
32
8
|
import { C as ComponentDefaults } from "./typings.js";
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
},
|
|
50
|
-
onCanPlay: function onCanPlay(e) {
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
var Audio = function Audio2(props) {
|
|
54
|
-
var _useConfig = useConfig(), locale = _useConfig.locale;
|
|
55
|
-
var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), className = _defaultProps$props.className, src = _defaultProps$props.src, style = _defaultProps$props.style, muted = _defaultProps$props.muted, autoPlay = _defaultProps$props.autoPlay, loop = _defaultProps$props.loop, preload = _defaultProps$props.preload, type = _defaultProps$props.type, onBack2 = _defaultProps$props.onBack, onForward2 = _defaultProps$props.onForward, onPause2 = _defaultProps$props.onPause, onEnd2 = _defaultProps$props.onEnd, onMute2 = _defaultProps$props.onMute, onCanPlay2 = _defaultProps$props.onCanPlay, children = _defaultProps$props.children, rest = _objectWithoutProperties(_defaultProps$props, _excluded);
|
|
56
|
-
var _useState = useState(false), _useState2 = _slicedToArray(_useState, 2), playing = _useState2[0], setPlaying = _useState2[1];
|
|
57
|
-
var _useState3 = useState(0), _useState4 = _slicedToArray(_useState3, 2), percent = _useState4[0], setPercent = _useState4[1];
|
|
58
|
-
var _useState5 = useState(false), _useState6 = _slicedToArray(_useState5, 2), isCanPlay = _useState6[0], setIsCanPlay = _useState6[1];
|
|
59
|
-
var _useState7 = useState("00:00:00"), _useState8 = _slicedToArray(_useState7, 2), currentDuration = _useState8[0], setCurrentDuration = _useState8[1];
|
|
60
|
-
var AudioRef = useRef(null);
|
|
61
|
-
var statusRef = useRef({
|
|
9
|
+
const defaultProps = Object.assign(Object.assign({}, ComponentDefaults), { src: "", muted: false, autoPlay: false, loop: false, preload: "auto", type: "progress", onBack: (e) => {
|
|
10
|
+
}, onForward: (e) => {
|
|
11
|
+
}, onPause: (e) => {
|
|
12
|
+
}, onEnd: (e) => {
|
|
13
|
+
}, onMute: (e) => {
|
|
14
|
+
}, onCanPlay: (e) => {
|
|
15
|
+
} });
|
|
16
|
+
const Audio = (props) => {
|
|
17
|
+
const { locale } = useConfig();
|
|
18
|
+
const _a = Object.assign(Object.assign({}, defaultProps), props), { className, src, style, muted, autoPlay, loop, preload, type, onBack, onForward, onPause, onEnd, onMute, onCanPlay, children } = _a, rest = __rest(_a, ["className", "src", "style", "muted", "autoPlay", "loop", "preload", "type", "onBack", "onForward", "onPause", "onEnd", "onMute", "onCanPlay", "children"]);
|
|
19
|
+
const [playing, setPlaying] = useState(false);
|
|
20
|
+
const [percent, setPercent] = useState(0);
|
|
21
|
+
const [isCanPlay, setIsCanPlay] = useState(false);
|
|
22
|
+
const [currentDuration, setCurrentDuration] = useState("00:00:00");
|
|
23
|
+
const AudioRef = useRef(null);
|
|
24
|
+
const statusRef = useRef({
|
|
62
25
|
currentTime: 0,
|
|
63
26
|
currentDuration: "00:00:00",
|
|
64
27
|
percent: 0,
|
|
@@ -68,8 +31,8 @@ var Audio = function Audio2(props) {
|
|
|
68
31
|
playing: props.autoPlay,
|
|
69
32
|
handPlaying: false
|
|
70
33
|
});
|
|
71
|
-
|
|
72
|
-
|
|
34
|
+
const classPrefix = "nut-audio";
|
|
35
|
+
const handleEnded = (e) => {
|
|
73
36
|
if (props.loop) {
|
|
74
37
|
console.warn(locale.audio.tips || "onPlayEnd事件在loop=false时才会触发");
|
|
75
38
|
} else {
|
|
@@ -78,18 +41,18 @@ var Audio = function Audio2(props) {
|
|
|
78
41
|
};
|
|
79
42
|
function watch() {
|
|
80
43
|
if (AudioRef && AudioRef.current) {
|
|
81
|
-
|
|
82
|
-
current.addEventListener("play",
|
|
44
|
+
const current = AudioRef.current;
|
|
45
|
+
current.addEventListener("play", () => {
|
|
83
46
|
setPlaying(true);
|
|
84
47
|
});
|
|
85
48
|
}
|
|
86
49
|
}
|
|
87
|
-
useEffect(
|
|
50
|
+
useEffect(() => {
|
|
88
51
|
watch();
|
|
89
52
|
}, []);
|
|
90
|
-
useEffect(
|
|
53
|
+
useEffect(() => {
|
|
91
54
|
}, [currentDuration]);
|
|
92
|
-
|
|
55
|
+
const handleStatusChange = () => {
|
|
93
56
|
setPlaying(!playing);
|
|
94
57
|
if (playing) {
|
|
95
58
|
AudioRef && AudioRef.current && AudioRef.current.pause();
|
|
@@ -97,102 +60,84 @@ var Audio = function Audio2(props) {
|
|
|
97
60
|
AudioRef && AudioRef.current && AudioRef.current.play();
|
|
98
61
|
}
|
|
99
62
|
};
|
|
100
|
-
|
|
101
|
-
return React__default.createElement(
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
63
|
+
const renderIcon = () => {
|
|
64
|
+
return React__default.createElement(
|
|
65
|
+
"div",
|
|
66
|
+
{ className: `${classPrefix}-icon` },
|
|
67
|
+
React__default.createElement(
|
|
68
|
+
"div",
|
|
69
|
+
{ className: classNames(`${classPrefix}-icon-box`, playing ? `${classPrefix}-icon-play` : `${classPrefix}-icon-stop`), onClick: handleStatusChange },
|
|
70
|
+
React__default.createElement(Service, { className: playing ? "nut-icon-loading" : "" })
|
|
71
|
+
)
|
|
72
|
+
);
|
|
109
73
|
};
|
|
110
|
-
|
|
74
|
+
const handleBack = () => {
|
|
111
75
|
if (statusRef.current.currentTime > 0 && AudioRef.current) {
|
|
112
76
|
statusRef.current.currentTime--;
|
|
113
77
|
AudioRef.current.currentTime = statusRef.current.currentTime;
|
|
114
78
|
props.onBack && props.onBack(AudioRef.current);
|
|
115
79
|
}
|
|
116
80
|
};
|
|
117
|
-
|
|
81
|
+
const handleForward = () => {
|
|
118
82
|
if (AudioRef.current) {
|
|
119
83
|
statusRef.current.currentTime++;
|
|
120
84
|
AudioRef.current.currentTime = statusRef.current.currentTime;
|
|
121
85
|
props.onForward && props.onForward(AudioRef.current);
|
|
122
86
|
}
|
|
123
87
|
};
|
|
124
|
-
|
|
88
|
+
const handleMute = () => {
|
|
125
89
|
if (AudioRef.current) {
|
|
126
90
|
AudioRef.current.muted = !AudioRef.current.muted;
|
|
127
91
|
props.onMute && props.onMute(AudioRef.current);
|
|
128
92
|
}
|
|
129
93
|
};
|
|
130
|
-
|
|
94
|
+
const handlePause = (e) => {
|
|
131
95
|
setPlaying(false);
|
|
132
96
|
props.onPause && props.onPause(e);
|
|
133
97
|
};
|
|
134
|
-
|
|
98
|
+
const formatSeconds = (value) => {
|
|
135
99
|
if (!value) {
|
|
136
100
|
return "00:00:00";
|
|
137
101
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
result +=
|
|
144
|
-
result +=
|
|
145
|
-
result +=
|
|
102
|
+
const time = parseInt(value);
|
|
103
|
+
const hours = Math.floor(time / 3600);
|
|
104
|
+
const minutes = Math.floor((time - hours * 3600) / 60);
|
|
105
|
+
const seconds = time - hours * 3600 - minutes * 60;
|
|
106
|
+
let result = "";
|
|
107
|
+
result += `${`0${hours.toString()}`.slice(-2)}:`;
|
|
108
|
+
result += `${`0${minutes.toString()}`.slice(-2)}:`;
|
|
109
|
+
result += `0${seconds.toString()}`.slice(-2);
|
|
146
110
|
return result;
|
|
147
111
|
};
|
|
148
|
-
|
|
149
|
-
return React__default.createElement(
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
className: "back",
|
|
173
|
-
onClick: handleBack
|
|
174
|
-
}, locale.audio.back || "快退"), React__default.createElement(Button, {
|
|
175
|
-
type: "primary",
|
|
176
|
-
size: "small",
|
|
177
|
-
className: "start",
|
|
178
|
-
onClick: handleStatusChange
|
|
179
|
-
}, playing ? "".concat(locale.audio.pause || "暂停") : "".concat(locale.audio.start || "开始")), React__default.createElement(Button, {
|
|
180
|
-
type: "primary",
|
|
181
|
-
size: "small",
|
|
182
|
-
onClick: handleForward
|
|
183
|
-
}, locale.audio.forward || "快进"), React__default.createElement(Button, {
|
|
184
|
-
type: AudioRef.current && AudioRef.current.muted ? "default" : "primary",
|
|
185
|
-
size: "small",
|
|
186
|
-
onClick: handleMute
|
|
187
|
-
}, locale.audio.mute || "静音")));
|
|
112
|
+
const renderProgerss = () => {
|
|
113
|
+
return React__default.createElement(
|
|
114
|
+
React__default.Fragment,
|
|
115
|
+
null,
|
|
116
|
+
React__default.createElement(
|
|
117
|
+
"div",
|
|
118
|
+
{ className: `${classPrefix}-progress` },
|
|
119
|
+
React__default.createElement("div", { className: "time" }, currentDuration),
|
|
120
|
+
React__default.createElement(
|
|
121
|
+
"div",
|
|
122
|
+
{ className: `${classPrefix}-progress-bar-wrapper` },
|
|
123
|
+
React__default.createElement(Range, { value: percent, onChange: (val) => setPercent(val), currentDescription: null, maxDescription: null, minDescription: null, "inactive-color": "#cccccc", "active-color": "#fa2c19" })
|
|
124
|
+
),
|
|
125
|
+
React__default.createElement("div", { className: "time" }, AudioRef.current ? formatSeconds(`${statusRef.current.second}`) : "00:00:00")
|
|
126
|
+
),
|
|
127
|
+
React__default.createElement(
|
|
128
|
+
"div",
|
|
129
|
+
{ className: isCanPlay ? "custom-button-group" : "custom-button-group-disable" },
|
|
130
|
+
React__default.createElement(Button, { type: "primary", size: "small", className: "back", onClick: handleBack }, locale.audio.back || "快退"),
|
|
131
|
+
React__default.createElement(Button, { type: "primary", size: "small", className: "start", onClick: handleStatusChange }, playing ? `${locale.audio.pause || "暂停"}` : `${locale.audio.start || "开始"}`),
|
|
132
|
+
React__default.createElement(Button, { type: "primary", size: "small", onClick: handleForward }, locale.audio.forward || "快进"),
|
|
133
|
+
React__default.createElement(Button, { type: AudioRef.current && AudioRef.current.muted ? "default" : "primary", size: "small", onClick: handleMute }, locale.audio.mute || "静音")
|
|
134
|
+
)
|
|
135
|
+
);
|
|
188
136
|
};
|
|
189
|
-
|
|
190
|
-
return React__default.createElement("div", {
|
|
191
|
-
className: "".concat(classPrefix, "-none-container"),
|
|
192
|
-
onClick: handleStatusChange
|
|
193
|
-
}, children);
|
|
137
|
+
const renderNone = () => {
|
|
138
|
+
return React__default.createElement("div", { className: `${classPrefix}-none-container`, onClick: handleStatusChange }, children);
|
|
194
139
|
};
|
|
195
|
-
|
|
140
|
+
const renderAudio = () => {
|
|
196
141
|
switch (type) {
|
|
197
142
|
case "icon":
|
|
198
143
|
return renderIcon();
|
|
@@ -204,7 +149,7 @@ var Audio = function Audio2(props) {
|
|
|
204
149
|
return null;
|
|
205
150
|
}
|
|
206
151
|
};
|
|
207
|
-
|
|
152
|
+
const handleCanplay = (e) => {
|
|
208
153
|
setIsCanPlay(true);
|
|
209
154
|
if (props.autoPlay && !playing) {
|
|
210
155
|
AudioRef && AudioRef.current && AudioRef.current.play();
|
|
@@ -214,40 +159,24 @@ var Audio = function Audio2(props) {
|
|
|
214
159
|
props.onCanPlay && props.onCanPlay(e);
|
|
215
160
|
}
|
|
216
161
|
};
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
162
|
+
const onTimeupdate = (e) => {
|
|
163
|
+
const time = parseInt(String(e.target.currentTime));
|
|
164
|
+
const formated = formatSeconds(`${time}`);
|
|
220
165
|
statusRef.current.currentDuration = formated;
|
|
221
166
|
setPercent(time / statusRef.current.second * 100);
|
|
222
167
|
setCurrentDuration(formated);
|
|
223
168
|
statusRef.current.currentTime = time;
|
|
224
169
|
};
|
|
225
|
-
return React__default.createElement(
|
|
226
|
-
|
|
227
|
-
style
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
loop,
|
|
236
|
-
onPause: function onPause3(e) {
|
|
237
|
-
return handlePause(e);
|
|
238
|
-
},
|
|
239
|
-
onEnded: function onEnded(e) {
|
|
240
|
-
return handleEnded(e);
|
|
241
|
-
},
|
|
242
|
-
onCanPlay: function onCanPlay3(e) {
|
|
243
|
-
return handleCanplay(e);
|
|
244
|
-
},
|
|
245
|
-
onTimeUpdate: function onTimeUpdate(e) {
|
|
246
|
-
return onTimeupdate(e);
|
|
247
|
-
}
|
|
248
|
-
}, React__default.createElement("track", {
|
|
249
|
-
kind: "captions"
|
|
250
|
-
})));
|
|
170
|
+
return React__default.createElement(
|
|
171
|
+
"div",
|
|
172
|
+
Object.assign({ className: classNames(classPrefix, className), style }, rest),
|
|
173
|
+
renderAudio(),
|
|
174
|
+
React__default.createElement(
|
|
175
|
+
"audio",
|
|
176
|
+
{ className: "audioMain", controls: type === "controls", ref: AudioRef, src, muted, preload, loop, onPause: (e) => handlePause(e), onEnded: (e) => handleEnded(e), onCanPlay: (e) => handleCanplay(e), onTimeUpdate: (e) => onTimeupdate(e) },
|
|
177
|
+
React__default.createElement("track", { kind: "captions" })
|
|
178
|
+
)
|
|
179
|
+
);
|
|
251
180
|
};
|
|
252
181
|
Audio.defaultProps = defaultProps;
|
|
253
182
|
Audio.displayName = "NutAudio";
|