@nutui/nutui-react 1.3.1 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/esm/ActionSheet.js +10 -9
  3. package/dist/esm/Address.js +1 -1
  4. package/dist/esm/Badge.js +3 -3
  5. package/dist/esm/ConfigProvider.js +6 -0
  6. package/dist/esm/Elevator.js +38 -52
  7. package/dist/esm/Menu.js +26 -10
  8. package/dist/esm/NoticeBar.js +1 -1
  9. package/dist/esm/Picker.js +125 -49
  10. package/dist/esm/PullToRefresh/style/index.js +2 -0
  11. package/dist/esm/PullToRefresh.js +367 -0
  12. package/dist/esm/Radio.js +2 -0
  13. package/dist/esm/nutui-react.es.js +1 -0
  14. package/dist/locales/base.d.ts +6 -0
  15. package/dist/locales/base.js +1 -1
  16. package/dist/locales/en-US.js +7 -1
  17. package/dist/locales/id-ID.js +7 -1
  18. package/dist/locales/zh-CN.js +7 -1
  19. package/dist/locales/zh-TW.js +7 -1
  20. package/dist/nutui.react.es.js +10578 -9765
  21. package/dist/nutui.react.umd.js +10577 -9763
  22. package/dist/packages/actionsheet/actionsheet.scss +2 -0
  23. package/dist/packages/elevator/elevator.scss +1 -0
  24. package/dist/packages/pulltorefresh/pulltorefresh.scss +18 -0
  25. package/dist/style.css +1 -1
  26. package/dist/style.es.js +1 -1
  27. package/dist/styles/themes/default.scss +1 -0
  28. package/dist/types/actionsheet/__test__/actionsheet.spec.d.ts +1 -0
  29. package/dist/types/actionsheet/actionsheet.d.ts +2 -2
  30. package/dist/types/actionsheet/actionsheet.taro.d.ts +2 -2
  31. package/dist/types/badge/__test__/badge.spec.d.ts +1 -0
  32. package/dist/types/checkbox/checkbox.taro.d.ts +1 -1
  33. package/dist/types/elevator/elevator.d.ts +2 -2
  34. package/dist/types/elevator/elevator.taro.d.ts +2 -2
  35. package/dist/types/noticebar/__test__/noticebar.spec.d.ts +1 -0
  36. package/dist/types/nutui.react.d.ts +3 -1
  37. package/dist/types/picker/pickerSlot.d.ts +4 -1
  38. package/dist/types/picker/pickerSlot.taro.d.ts +16 -0
  39. package/dist/types/popup/popup.taro.d.ts +1 -1
  40. package/dist/types/pulltorefresh/__test__/pulltorefresh.spec.d.ts +1 -0
  41. package/dist/types/pulltorefresh/demo.d.ts +3 -0
  42. package/dist/types/pulltorefresh/index.d.ts +2 -0
  43. package/dist/types/pulltorefresh/index.taro.d.ts +2 -0
  44. package/dist/types/pulltorefresh/pulltorefresh.d.ts +18 -0
  45. package/dist/types/pulltorefresh/pulltorefresh.taro.d.ts +18 -0
  46. package/dist/types/radio/__test__/radio.spec.d.ts +1 -0
  47. package/dist/types/radio/radio.taro.d.ts +1 -1
  48. package/dist/types/radiogroup/index.taro.d.ts +1 -1
  49. package/dist/types/radiogroup/radiogroup.taro.d.ts +11 -0
  50. package/dist/types/range/__test__/range.spec.d.ts +1 -0
  51. package/dist/types/searchbar/__tests__/searchbar.spec.d.ts +1 -0
  52. package/dist/types/timeselect/timeselect.taro.d.ts +1 -1
  53. package/package.json +2 -3
@@ -0,0 +1,367 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
5
+
6
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
+
8
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9
+
10
+ import React__default, { useState, useRef, useEffect } from 'react';
11
+ import { useDrag } from '@use-gesture/react';
12
+ import { useSpring, animated } from '@react-spring/web';
13
+ import { useConfig } from './ConfigProvider.js';
14
+ var canUseDom = !!(typeof window !== 'undefined' && typeof document !== 'undefined' && window.document && window.document.createElement);
15
+ var defaultRoot = canUseDom ? window : undefined;
16
+ var overflowStylePatterns = ['scroll', 'auto', 'overlay'];
17
+
18
+ function isElement(node) {
19
+ var ELEMENT_NODE_TYPE = 1;
20
+ return node.nodeType === ELEMENT_NODE_TYPE;
21
+ }
22
+
23
+ function getScrollParent(el) {
24
+ var root = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultRoot;
25
+ var node = el;
26
+
27
+ while (node && node !== root && isElement(node)) {
28
+ if (node === document.body) {
29
+ return root;
30
+ }
31
+
32
+ var _window$getComputedSt = window.getComputedStyle(node),
33
+ overflowY = _window$getComputedSt.overflowY;
34
+
35
+ if (overflowStylePatterns.includes(overflowY) && node.scrollHeight > node.clientHeight) {
36
+ return node;
37
+ }
38
+
39
+ node = node.parentNode;
40
+ }
41
+
42
+ return root;
43
+ }
44
+
45
+ function bound(position, min, max) {
46
+ var ret = position;
47
+
48
+ if (min !== undefined) {
49
+ ret = Math.max(position, min);
50
+ }
51
+
52
+ if (max !== undefined) {
53
+ ret = Math.min(ret, max);
54
+ }
55
+
56
+ return ret;
57
+ }
58
+
59
+ function rubberband(distance, dimension, constant) {
60
+ return distance * dimension * constant / (dimension + constant * distance);
61
+ }
62
+
63
+ function rubberbandIfOutOfBounds(position, min, max, dimension) {
64
+ var constant = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0.15;
65
+ if (constant === 0) return bound(position, min, max);
66
+ if (position < min) return -rubberband(min - position, dimension, constant) + min;
67
+ if (position > max) return +rubberband(position - max, dimension, constant) + max;
68
+ return position;
69
+ }
70
+
71
+ var sleep = function sleep(time) {
72
+ return new Promise(function (resolve) {
73
+ return setTimeout(resolve, time);
74
+ });
75
+ };
76
+
77
+ var passiveSupported = false;
78
+
79
+ if (canUseDom) {
80
+ try {
81
+ var opts = Object.defineProperty({}, 'passive', {
82
+ get: function get() {
83
+ passiveSupported = true;
84
+ }
85
+ });
86
+ window.addEventListener('test-passive-supported', null, opts);
87
+ } catch (e) {
88
+ console.log(e);
89
+ }
90
+ }
91
+
92
+ var defaultProps = {
93
+ className: '',
94
+ style: {},
95
+ pullingText: '',
96
+ canReleaseText: '',
97
+ refreshingText: '',
98
+ completeText: '',
99
+ completeDelay: 500,
100
+ disabled: false,
101
+ headHeight: 40,
102
+ threshold: 60,
103
+ onRefresh: function onRefresh() {}
104
+ };
105
+
106
+ var PullToRefresh = function PullToRefresh(p) {
107
+ var _useConfig = useConfig(),
108
+ locale = _useConfig.locale;
109
+
110
+ var props = _objectSpread(_objectSpread(_objectSpread({}, defaultProps), p), {
111
+ pullingText: p.pullingText || locale.pullToRefresh.pullingText,
112
+ canReleaseText: p.canReleaseText || locale.pullToRefresh.canReleaseText,
113
+ refreshingText: p.refreshingText || locale.pullToRefresh.refreshingText,
114
+ completeText: p.completeText || locale.pullToRefresh.completeText
115
+ });
116
+
117
+ var headHeight = props.headHeight;
118
+ var threshold = props.threshold;
119
+
120
+ var _useState = useState('pulling'),
121
+ _useState2 = _slicedToArray(_useState, 2),
122
+ status = _useState2[0],
123
+ setStatus = _useState2[1];
124
+
125
+ var _useSpring = useSpring(function () {
126
+ return {
127
+ from: {
128
+ height: 0
129
+ },
130
+ config: {
131
+ tension: 300,
132
+ friction: 30,
133
+ clamp: true
134
+ }
135
+ };
136
+ }),
137
+ _useSpring2 = _slicedToArray(_useSpring, 2),
138
+ springStyles = _useSpring2[0],
139
+ api = _useSpring2[1];
140
+
141
+ var elementRef = useRef(null);
142
+ var pullingRef = useRef(false);
143
+ useEffect(function () {
144
+ var _elementRef$current;
145
+
146
+ (_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.addEventListener('touchmove', function () {});
147
+ }, []);
148
+
149
+ function doRefresh() {
150
+ return _doRefresh.apply(this, arguments);
151
+ }
152
+
153
+ function _doRefresh() {
154
+ _doRefresh = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
155
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
156
+ while (1) {
157
+ switch (_context3.prev = _context3.next) {
158
+ case 0:
159
+ api.start({
160
+ height: headHeight
161
+ });
162
+ setStatus('refreshing');
163
+ _context3.prev = 2;
164
+ _context3.next = 5;
165
+ return props.onRefresh();
166
+
167
+ case 5:
168
+ setStatus('complete');
169
+ _context3.next = 12;
170
+ break;
171
+
172
+ case 8:
173
+ _context3.prev = 8;
174
+ _context3.t0 = _context3["catch"](2);
175
+ api.start({
176
+ to: function () {
177
+ var _to = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(next) {
178
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
179
+ while (1) {
180
+ switch (_context.prev = _context.next) {
181
+ case 0:
182
+ _context.next = 2;
183
+ return next({
184
+ height: 0
185
+ });
186
+
187
+ case 2:
188
+ setStatus('pulling');
189
+
190
+ case 3:
191
+ case "end":
192
+ return _context.stop();
193
+ }
194
+ }
195
+ }, _callee);
196
+ }));
197
+
198
+ function to(_x) {
199
+ return _to.apply(this, arguments);
200
+ }
201
+
202
+ return to;
203
+ }()
204
+ });
205
+ throw _context3.t0;
206
+
207
+ case 12:
208
+ if (!(props.completeDelay > 0)) {
209
+ _context3.next = 15;
210
+ break;
211
+ }
212
+
213
+ _context3.next = 15;
214
+ return sleep(props.completeDelay);
215
+
216
+ case 15:
217
+ api.start({
218
+ to: function () {
219
+ var _to2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(next) {
220
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
221
+ while (1) {
222
+ switch (_context2.prev = _context2.next) {
223
+ case 0:
224
+ _context2.next = 2;
225
+ return next({
226
+ height: 0
227
+ });
228
+
229
+ case 2:
230
+ setStatus('pulling');
231
+
232
+ case 3:
233
+ case "end":
234
+ return _context2.stop();
235
+ }
236
+ }
237
+ }, _callee2);
238
+ }));
239
+
240
+ function to(_x2) {
241
+ return _to2.apply(this, arguments);
242
+ }
243
+
244
+ return to;
245
+ }()
246
+ });
247
+
248
+ case 16:
249
+ case "end":
250
+ return _context3.stop();
251
+ }
252
+ }
253
+ }, _callee3, null, [[2, 8]]);
254
+ }));
255
+ return _doRefresh.apply(this, arguments);
256
+ }
257
+
258
+ useDrag(function (state) {
259
+ if (status === 'refreshing' || status === 'complete') return;
260
+ var event = state.event; // 最后一个事件,检查是否可以刷新或是否是开始状态(第一个状态也是最后一个状态)
261
+
262
+ if (state.last) {
263
+ pullingRef.current = false;
264
+
265
+ if (status === 'canRelease') {
266
+ doRefresh();
267
+ } else {
268
+ api.start({
269
+ height: 0
270
+ });
271
+ }
272
+
273
+ return;
274
+ }
275
+
276
+ function getScrollTop(element) {
277
+ return 'scrollTop' in element ? element.scrollTop : element.scrollY;
278
+ } // 手指位置
279
+
280
+
281
+ var _state$movement = _slicedToArray(state.movement, 2),
282
+ y = _state$movement[1]; // 第一个事件,并且手指位置大于0
283
+
284
+
285
+ if (state.first && y > 0) {
286
+ var target = state.event.target;
287
+ if (!target || !(target instanceof Element)) return;
288
+ var scrollParent = getScrollParent(target);
289
+
290
+ while (true) {
291
+ if (!scrollParent) return;
292
+ var scrollTop = getScrollTop(scrollParent);
293
+
294
+ if (scrollTop > 0) {
295
+ return;
296
+ } // 查找到 window 说明到顶了
297
+
298
+
299
+ if (scrollParent instanceof Window) {
300
+ break;
301
+ } // 递归查找
302
+
303
+
304
+ scrollParent = getScrollParent(scrollParent.parentNode);
305
+ }
306
+
307
+ pullingRef.current = true;
308
+ }
309
+
310
+ if (!pullingRef.current) return;
311
+
312
+ if (event.cancelable) {
313
+ event.preventDefault();
314
+ }
315
+
316
+ event.stopPropagation();
317
+ var height = Math.max(rubberbandIfOutOfBounds(y, 0, 0, headHeight * 5, 0.5), 0);
318
+ api.start({
319
+ height: height
320
+ });
321
+ setStatus(height > threshold ? 'canRelease' : 'pulling');
322
+ }, {
323
+ pointer: {
324
+ touch: true
325
+ },
326
+ axis: 'y',
327
+ target: elementRef,
328
+ enabled: !props.disabled,
329
+ eventOptions: passiveSupported ? {
330
+ passive: false
331
+ } : false
332
+ });
333
+
334
+ var renderStatusText = function renderStatusText() {
335
+ if (props.renderText) {
336
+ var _props$renderText;
337
+
338
+ return (_props$renderText = props.renderText) === null || _props$renderText === void 0 ? void 0 : _props$renderText.call(props, status);
339
+ }
340
+
341
+ if (status === 'pulling') return props.pullingText;
342
+ if (status === 'canRelease') return props.canReleaseText;
343
+ if (status === 'refreshing') return props.refreshingText;
344
+ if (status === 'complete') return props.completeText;
345
+ return '';
346
+ };
347
+
348
+ return React__default.createElement(animated.div, {
349
+ ref: elementRef,
350
+ className: "nut-pulltorefresh ".concat(props.className),
351
+ style: props.style
352
+ }, React__default.createElement(animated.div, {
353
+ style: springStyles,
354
+ className: "nut-pulltorefresh-head"
355
+ }, React__default.createElement("div", {
356
+ className: "nut-pulltorefresh-head-content",
357
+ style: {
358
+ height: headHeight
359
+ }
360
+ }, renderStatusText())), React__default.createElement("div", {
361
+ className: "nut-pulltorefresh-content"
362
+ }, props.children));
363
+ };
364
+
365
+ PullToRefresh.defaultProps = defaultProps;
366
+ PullToRefresh.displayName = 'NutPullToRefresh';
367
+ export { PullToRefresh as default };
package/dist/esm/Radio.js CHANGED
@@ -12,6 +12,8 @@ import Icon from './Icon.js';
12
12
  import { R as RadioContext } from './context-aa058329.js';
13
13
  import RadioGroup from './RadioGroup.js';
14
14
  var defaultProps = {
15
+ className: '',
16
+ style: {},
15
17
  disabled: false,
16
18
  checked: false,
17
19
  shape: 'round',
@@ -52,6 +52,7 @@ export { default as Notify } from './Notify.js';
52
52
  export { default as Switch } from './Switch.js';
53
53
  export { default as Toast } from './Toast.js';
54
54
  export { default as Swipe } from './Swipe.js';
55
+ export { default as PullToRefresh } from './PullToRefresh.js';
55
56
  export { default as CircleProgress } from './CircleProgress.js';
56
57
  export { default as NoticeBar } from './NoticeBar.js';
57
58
  export { default as Steps } from './Steps.js';
@@ -116,4 +116,10 @@ export interface BaseLang {
116
116
  min: string;
117
117
  seconds: string;
118
118
  };
119
+ pullToRefresh: {
120
+ pullingText: string;
121
+ canReleaseText: string;
122
+ refreshingText: string;
123
+ completeText: string;
124
+ };
119
125
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react v1.3.1 Wed Aug 31 2022 14:58:35 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react v1.3.2 Wed Sep 07 2022 14:13:44 GMT+0800 (China Standard Time)
3
3
  * (c) 2022 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react v1.3.1 Wed Aug 31 2022 14:58:35 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react v1.3.2 Wed Sep 07 2022 14:13:44 GMT+0800 (China Standard Time)
3
3
  * (c) 2022 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -118,6 +118,12 @@ const enUS = {
118
118
  hour: "Hour",
119
119
  min: "Minute",
120
120
  seconds: "Second"
121
+ },
122
+ pullToRefresh: {
123
+ pullingText: "Pulling",
124
+ canReleaseText: "Release to refresh",
125
+ refreshingText: "Loading...",
126
+ completeText: "Refresh successful"
121
127
  }
122
128
  };
123
129
  export { enUS as default };
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react v1.3.1 Wed Aug 31 2022 14:58:35 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react v1.3.2 Wed Sep 07 2022 14:13:44 GMT+0800 (China Standard Time)
3
3
  * (c) 2022 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -118,6 +118,12 @@ const idID = {
118
118
  hour: "Jam",
119
119
  min: "Menit",
120
120
  seconds: "Detik"
121
+ },
122
+ pullToRefresh: {
123
+ pullingText: "Tarik ke bawah untuk menyegarkan",
124
+ canReleaseText: "Rilis untuk menyegarkan",
125
+ refreshingText: "Memuat...",
126
+ completeText: "Penyegaran berhasil"
121
127
  }
122
128
  };
123
129
  export { idID as default };
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react v1.3.1 Wed Aug 31 2022 14:58:35 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react v1.3.2 Wed Sep 07 2022 14:13:44 GMT+0800 (China Standard Time)
3
3
  * (c) 2022 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -120,6 +120,12 @@ const zhCN = {
120
120
  hour: "\u65F6",
121
121
  min: "\u5206",
122
122
  seconds: "\u79D2"
123
+ },
124
+ pullToRefresh: {
125
+ pullingText: "\u4E0B\u62C9\u5237\u65B0",
126
+ canReleaseText: "\u677E\u5F00\u5237\u65B0",
127
+ refreshingText: "\u52A0\u8F7D\u4E2D...",
128
+ completeText: "\u5237\u65B0\u6210\u529F"
123
129
  }
124
130
  };
125
131
  export { zhCN as default };
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react v1.3.1 Wed Aug 31 2022 14:58:35 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react v1.3.2 Wed Sep 07 2022 14:13:44 GMT+0800 (China Standard Time)
3
3
  * (c) 2022 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -118,6 +118,12 @@ const zhTW = {
118
118
  hour: "\u6642",
119
119
  min: "\u5206",
120
120
  seconds: "\u79D2"
121
+ },
122
+ pullToRefresh: {
123
+ pullingText: "\u4E0B\u62C9\u5237\u65B0",
124
+ canReleaseText: "\u9B06\u958B\u5237\u65B0",
125
+ refreshingText: "\u52A0\u8F09\u4E2D...",
126
+ completeText: "\u5237\u65B0\u6210\u529F"
121
127
  }
122
128
  };
123
129
  export { zhTW as default };