@nutui/nutui-react-taro 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.
- package/CHANGELOG.md +20 -0
- package/dist/esm/ActionSheet.js +5 -5
- package/dist/esm/Address.js +11 -7
- package/dist/esm/Audio.js +7 -8
- package/dist/esm/Avatar.js +3 -3
- package/dist/esm/AvatarGroup.js +4 -4
- package/dist/esm/BackTop.js +3 -3
- package/dist/esm/Badge.js +3 -3
- package/dist/esm/Button.js +3 -3
- package/dist/esm/Calendar.js +8 -8
- package/dist/esm/CalendarItem.js +4 -4
- package/dist/esm/Card.js +5 -3
- package/dist/esm/Cascader.js +6 -7
- package/dist/esm/Cell.js +3 -3
- package/dist/esm/Checkbox.js +4 -3
- package/dist/esm/ConfigProvider.js +3 -3
- package/dist/esm/CountDown.js +4 -4
- package/dist/esm/DatePicker.js +9 -8
- package/dist/esm/Dialog.js +7 -6
- package/dist/esm/Elevator.js +4 -2
- package/dist/esm/Empty.js +4 -4
- package/dist/esm/FixedNav.js +6 -6
- package/dist/esm/Grid.js +4 -4
- package/dist/esm/GridItem.js +5 -5
- package/dist/esm/ImagePreview.js +7 -6
- package/dist/esm/Infiniteloading.js +5 -5
- package/dist/esm/Input.js +5 -5
- package/dist/esm/InputNumber.js +3 -3
- package/dist/esm/MenuItem.js +5 -5
- package/dist/esm/NavBar.js +3 -3
- package/dist/esm/NoticeBar.js +3 -3
- package/dist/esm/NumberKeyboard.js +7 -7
- package/dist/esm/Overlay.js +2 -2
- package/dist/esm/Pagination.js +4 -4
- package/dist/esm/Picker.js +8 -8
- package/dist/esm/Popover.js +4 -4
- package/dist/esm/Popup.js +4 -4
- package/dist/esm/Progress.js +3 -3
- package/dist/esm/PullToRefresh/style/index.js +2 -0
- package/dist/esm/PullToRefresh.js +7 -0
- package/dist/esm/Radio.js +4 -4
- package/dist/esm/RadioGroup.js +2 -2
- package/dist/esm/Range.js +5 -5
- package/dist/esm/Rate.js +3 -3
- package/dist/esm/SearchBar.js +5 -5
- package/dist/esm/ShortPassword.js +7 -7
- package/dist/esm/SideNavBar.js +7 -7
- package/dist/esm/Signature.js +6 -6
- package/dist/esm/Skeleton.js +4 -3
- package/dist/esm/Swiper.js +3 -3
- package/dist/esm/TabbarItem.js +3 -3
- package/dist/esm/Table.js +5 -5
- package/dist/esm/Tabs.js +3 -3
- package/dist/esm/Tag.js +3 -3
- package/dist/esm/TextArea.js +4 -4
- package/dist/esm/TimeDetail.js +4 -4
- package/dist/esm/TimePannel.js +4 -4
- package/dist/esm/TimeSelect.js +9 -7
- package/dist/esm/Toast.js +2 -3
- package/dist/esm/Uploader.js +4 -4
- package/dist/esm/VirtualList.js +4 -4
- package/dist/esm/{actionsheet.taro-f4d407b0.js → actionsheet.taro-1b3e7972.js} +9 -9
- package/dist/esm/{address.taro-4765a826.js → address.taro-f045886a.js} +48 -60
- package/dist/esm/{audio.taro-cd6cc93b.js → audio.taro-b34a1eb6.js} +3 -3
- package/dist/esm/{avatar.taro-0a0472fd.js → avatar.taro-c3a605b9.js} +1 -1
- package/dist/esm/{avatargroup-1ca79066.js → avatargroup-5b2584d9.js} +1 -1
- package/dist/esm/{backtop.taro-0e2e3946.js → backtop.taro-eb9359e8.js} +1 -1
- package/dist/esm/{badge.taro-eeac9de8.js → badge.taro-e6c4fe5f.js} +4 -4
- package/dist/esm/{button-521a516b.js → button.taro-bffc9543.js} +1 -1
- package/dist/esm/{calendar.taro-1abb1925.js → calendar.taro-1fc76ba0.js} +3 -3
- package/dist/esm/{calendaritem.taro-3c06a809.js → calendaritem.taro-11333579.js} +1 -1
- package/dist/esm/card.taro-2fbfbf59.js +67 -0
- package/dist/esm/{cascader.taro-31dbc60e.js → cascader.taro-d7e71bdf.js} +2 -2
- package/dist/esm/{cell.taro-3bb1b0f2.js → cell.taro-263a8927.js} +1 -1
- package/dist/esm/checkbox.taro-9d05ae76.js +140 -0
- package/dist/esm/{configprovider-9c393a29.js → configprovider-3e87d67a.js} +1 -1
- package/dist/esm/{configprovider.taro-1ff7f150.js → configprovider.taro-6c7b3056.js} +1 -1
- package/dist/esm/{countdown.taro-b00d0d46.js → countdown.taro-5d5df894.js} +1 -1
- package/dist/esm/{datepicker.taro-e385849d.js → datepicker.taro-318e9561.js} +22 -274
- package/dist/esm/{dialog.taro-c80b7b5f.js → dialog.taro-0e53ade9.js} +109 -9
- package/dist/esm/{elevator.taro-15b0d8c2.js → elevator.taro-8e385785.js} +39 -47
- package/dist/esm/{empty.taro-20b8adac.js → empty.taro-ab9c4f03.js} +1 -1
- package/dist/esm/{fixednav.taro-75e35339.js → fixednav.taro-6c0279ba.js} +3 -3
- package/dist/esm/{grid.taro-7fb43d02.js → grid.taro-5d75c0ad.js} +1 -1
- package/dist/esm/{griditem.taro-8020b409.js → griditem.taro-edb212e3.js} +2 -2
- package/dist/esm/imagepreview.taro-dae0757b.js +257 -0
- package/dist/esm/{infiniteloading.taro-0a86819e.js → infiniteloading.taro-067759de.js} +2 -2
- package/dist/esm/{input.taro-1d23861d.js → input.taro-505632ac.js} +2 -2
- package/dist/esm/{inputnumber.taro-75662231.js → inputnumber.taro-102203f3.js} +1 -1
- package/dist/esm/{menuitem.taro-56bf3205.js → menuitem.taro-0d8f50f9.js} +7 -7
- package/dist/esm/{navbar.taro-f2eae6a6.js → navbar.taro-2e969a0f.js} +1 -1
- package/dist/esm/{noticebar.taro-1890c693.js → noticebar.taro-f8bb6ae8.js} +1 -1
- package/dist/esm/{numberkeyboard.taro-5d685c76.js → numberkeyboard.taro-cf7d06f4.js} +2 -2
- package/dist/esm/nutui-react.es.js +66 -70
- package/dist/esm/{overlay-ed3eb37d.js → overlay.taro-be45fed5.js} +0 -0
- package/dist/esm/{pagination.taro-10449c4a.js → pagination.taro-62bbd23f.js} +1 -1
- package/dist/esm/picker.taro-62ce13e0.js +633 -0
- package/dist/esm/{popover.taro-9b3da0fa.js → popover.taro-0afa7cfa.js} +2 -2
- package/dist/esm/{popup.taro-a89dd3a1.js → popup.taro-8363fbae.js} +2 -2
- package/dist/esm/{progress.taro-dd93ac38.js → progress.taro-32ca3a69.js} +1 -1
- package/dist/esm/pulltorefresh.taro-8846f019.js +366 -0
- package/dist/esm/{radio.taro-32cb0172.js → radio.taro-1c63512f.js} +2 -2
- package/dist/esm/{radiogroup-e698d3df.js → radiogroup.taro-b5dad516.js} +0 -0
- package/dist/esm/{range.taro-fe08c5f4.js → range.taro-ef3b30f0.js} +2 -119
- package/dist/esm/{rate.taro-a0b21714.js → rate.taro-bb2e6c87.js} +1 -1
- package/dist/esm/{searchbar.taro-450d2f88.js → searchbar.taro-81867286.js} +2 -2
- package/dist/esm/{shortpassword.taro-08a05360.js → shortpassword.taro-2db97cc8.js} +3 -3
- package/dist/esm/{sidenavbar.taro-dd471476.js → sidenavbar.taro-e243b626.js} +2 -2
- package/dist/esm/{signature.taro-7cb77bab.js → signature.taro-e7369db8.js} +2 -2
- package/dist/esm/skeleton.taro-c19acc4e.js +109 -0
- package/dist/esm/{swiper.taro-7a2ef124.js → swiper.taro-448cd0ad.js} +56 -41
- package/dist/esm/{tabbaritem.taro-a88d3ae7.js → tabbaritem.taro-d0f2cec9.js} +1 -1
- package/dist/esm/{table.taro-305e0317.js → table.taro-25aeccba.js} +2 -2
- package/dist/esm/{tabs.taro-d1e85ea5.js → tabs.taro-d6006610.js} +1 -1
- package/dist/esm/{tag.taro-3bbbb557.js → tag.taro-ce9c52cd.js} +1 -1
- package/dist/esm/{textarea.taro-700b04c2.js → textarea.taro-388d1f90.js} +1 -1
- package/dist/esm/{timedetail.taro-7cc00243.js → timedetail.taro-519808cf.js} +1 -1
- package/dist/esm/{timepannel.taro-e24537e4.js → timepannel.taro-9904f6e6.js} +1 -1
- package/dist/esm/{timeselect.taro-210fd548.js → timeselect.taro-eea8d569.js} +16 -111
- package/dist/esm/{Notification-422905bd.js → toast.taro-d4ecd6af.js} +115 -1
- package/dist/esm/{uploader.taro-f7528535.js → uploader.taro-b232b2d3.js} +1 -1
- package/dist/esm/{virtuallist.taro-ce9619f9.js → virtuallist.taro-6858f690.js} +1 -1
- package/dist/esm/{zh-CN-91090ae2.js → zh-CN-14165629.js} +6 -0
- package/dist/locales/base.d.ts +6 -0
- package/dist/locales/base.js +1 -1
- package/dist/locales/en-US.js +7 -1
- package/dist/locales/id-ID.js +7 -1
- package/dist/locales/zh-CN.js +7 -1
- package/dist/locales/zh-TW.js +7 -1
- package/dist/nutui.react.es.js +14229 -14812
- package/dist/nutui.react.umd.js +14236 -14818
- package/dist/packages/actionsheet/actionsheet.scss +2 -0
- package/dist/packages/elevator/elevator.scss +1 -0
- package/dist/packages/pulltorefresh/pulltorefresh.scss +18 -0
- package/dist/style.css +1 -1
- package/dist/style.es.js +1 -1
- package/dist/styles/themes/default.scss +1 -0
- package/dist/types/actionsheet/actionsheet.taro.d.ts +2 -2
- package/dist/types/checkbox/checkbox.taro.d.ts +1 -1
- package/dist/types/elevator/elevator.taro.d.ts +2 -2
- package/dist/types/nutui.react.d.ts +3 -1
- package/dist/types/picker/pickerSlot.taro.d.ts +16 -0
- package/dist/types/popup/popup.taro.d.ts +1 -1
- package/dist/types/pulltorefresh/index.taro.d.ts +2 -0
- package/dist/types/pulltorefresh/pulltorefresh.taro.d.ts +18 -0
- package/dist/types/radio/radio.taro.d.ts +1 -1
- package/dist/types/radiogroup/index.taro.d.ts +1 -1
- package/dist/types/radiogroup/radiogroup.taro.d.ts +11 -0
- package/dist/types/timeselect/timeselect.taro.d.ts +1 -1
- package/package.json +2 -3
- package/dist/esm/button.taro-d5968f9d.js +0 -109
- package/dist/esm/card.taro-0861c7b3.js +0 -265
- package/dist/esm/checkbox.taro-6fbc4b3c.js +0 -255
- package/dist/esm/imagepreview.taro-a0ddd8a2.js +0 -813
- package/dist/esm/overlay.taro-a784329e.js +0 -94
- package/dist/esm/picker.taro-216cc3cb.js +0 -264
- package/dist/esm/pickerSlot-f8e4e542.js +0 -248
- package/dist/esm/popup-67173ec6.js +0 -217
- package/dist/esm/skeleton.taro-5934c7d7.js +0 -245
- package/dist/esm/toast.taro-bb181833.js +0 -122
|
@@ -0,0 +1,366 @@
|
|
|
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 { u as useConfig } from './configprovider.taro-6c7b3056.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
|
+
pullingText: '',
|
|
94
|
+
canReleaseText: '',
|
|
95
|
+
refreshingText: '',
|
|
96
|
+
completeText: '',
|
|
97
|
+
completeDelay: 500,
|
|
98
|
+
disabled: false,
|
|
99
|
+
headHeight: 40,
|
|
100
|
+
threshold: 60,
|
|
101
|
+
onRefresh: function onRefresh() {}
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
var PullToRefresh = function PullToRefresh(p) {
|
|
105
|
+
var _useConfig = useConfig(),
|
|
106
|
+
locale = _useConfig.locale;
|
|
107
|
+
|
|
108
|
+
var props = _objectSpread(_objectSpread(_objectSpread({}, defaultProps), p), {
|
|
109
|
+
pullingText: p.pullingText || locale.pullToRefresh.pullingText,
|
|
110
|
+
canReleaseText: p.canReleaseText || locale.pullToRefresh.canReleaseText,
|
|
111
|
+
refreshingText: p.refreshingText || locale.pullToRefresh.refreshingText,
|
|
112
|
+
completeText: p.completeText || locale.pullToRefresh.completeText
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
var headHeight = props.headHeight;
|
|
116
|
+
var threshold = props.threshold;
|
|
117
|
+
|
|
118
|
+
var _useState = useState('pulling'),
|
|
119
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
120
|
+
status = _useState2[0],
|
|
121
|
+
setStatus = _useState2[1];
|
|
122
|
+
|
|
123
|
+
var _useSpring = useSpring(function () {
|
|
124
|
+
return {
|
|
125
|
+
from: {
|
|
126
|
+
height: 0
|
|
127
|
+
},
|
|
128
|
+
config: {
|
|
129
|
+
tension: 300,
|
|
130
|
+
friction: 30,
|
|
131
|
+
clamp: true
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
}),
|
|
135
|
+
_useSpring2 = _slicedToArray(_useSpring, 2),
|
|
136
|
+
springStyles = _useSpring2[0],
|
|
137
|
+
api = _useSpring2[1];
|
|
138
|
+
|
|
139
|
+
var elementRef = useRef(null);
|
|
140
|
+
var pullingRef = useRef(false);
|
|
141
|
+
useEffect(function () {
|
|
142
|
+
var _elementRef$current;
|
|
143
|
+
|
|
144
|
+
(_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.addEventListener('touchmove', function () {});
|
|
145
|
+
}, []);
|
|
146
|
+
|
|
147
|
+
function doRefresh() {
|
|
148
|
+
return _doRefresh.apply(this, arguments);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
function _doRefresh() {
|
|
152
|
+
_doRefresh = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
|
|
153
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
154
|
+
while (1) {
|
|
155
|
+
switch (_context3.prev = _context3.next) {
|
|
156
|
+
case 0:
|
|
157
|
+
api.start({
|
|
158
|
+
height: headHeight
|
|
159
|
+
});
|
|
160
|
+
setStatus('refreshing');
|
|
161
|
+
_context3.prev = 2;
|
|
162
|
+
_context3.next = 5;
|
|
163
|
+
return props.onRefresh();
|
|
164
|
+
|
|
165
|
+
case 5:
|
|
166
|
+
setStatus('complete');
|
|
167
|
+
_context3.next = 12;
|
|
168
|
+
break;
|
|
169
|
+
|
|
170
|
+
case 8:
|
|
171
|
+
_context3.prev = 8;
|
|
172
|
+
_context3.t0 = _context3["catch"](2);
|
|
173
|
+
api.start({
|
|
174
|
+
to: function () {
|
|
175
|
+
var _to = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(next) {
|
|
176
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
177
|
+
while (1) {
|
|
178
|
+
switch (_context.prev = _context.next) {
|
|
179
|
+
case 0:
|
|
180
|
+
_context.next = 2;
|
|
181
|
+
return next({
|
|
182
|
+
height: 0
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
case 2:
|
|
186
|
+
setStatus('pulling');
|
|
187
|
+
|
|
188
|
+
case 3:
|
|
189
|
+
case "end":
|
|
190
|
+
return _context.stop();
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}, _callee);
|
|
194
|
+
}));
|
|
195
|
+
|
|
196
|
+
function to(_x) {
|
|
197
|
+
return _to.apply(this, arguments);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
return to;
|
|
201
|
+
}()
|
|
202
|
+
});
|
|
203
|
+
throw _context3.t0;
|
|
204
|
+
|
|
205
|
+
case 12:
|
|
206
|
+
if (!(props.completeDelay > 0)) {
|
|
207
|
+
_context3.next = 15;
|
|
208
|
+
break;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
_context3.next = 15;
|
|
212
|
+
return sleep(props.completeDelay);
|
|
213
|
+
|
|
214
|
+
case 15:
|
|
215
|
+
api.start({
|
|
216
|
+
to: function () {
|
|
217
|
+
var _to2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(next) {
|
|
218
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
219
|
+
while (1) {
|
|
220
|
+
switch (_context2.prev = _context2.next) {
|
|
221
|
+
case 0:
|
|
222
|
+
_context2.next = 2;
|
|
223
|
+
return next({
|
|
224
|
+
height: 0
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
case 2:
|
|
228
|
+
setStatus('pulling');
|
|
229
|
+
|
|
230
|
+
case 3:
|
|
231
|
+
case "end":
|
|
232
|
+
return _context2.stop();
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}, _callee2);
|
|
236
|
+
}));
|
|
237
|
+
|
|
238
|
+
function to(_x2) {
|
|
239
|
+
return _to2.apply(this, arguments);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
return to;
|
|
243
|
+
}()
|
|
244
|
+
});
|
|
245
|
+
|
|
246
|
+
case 16:
|
|
247
|
+
case "end":
|
|
248
|
+
return _context3.stop();
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}, _callee3, null, [[2, 8]]);
|
|
252
|
+
}));
|
|
253
|
+
return _doRefresh.apply(this, arguments);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
useDrag(function (state) {
|
|
257
|
+
if (status === 'refreshing' || status === 'complete') return;
|
|
258
|
+
var event = state.event; // 最后一个事件,检查是否可以刷新或是否是开始状态(第一个状态也是最后一个状态)
|
|
259
|
+
|
|
260
|
+
if (state.last) {
|
|
261
|
+
pullingRef.current = false;
|
|
262
|
+
|
|
263
|
+
if (status === 'canRelease') {
|
|
264
|
+
doRefresh();
|
|
265
|
+
} else {
|
|
266
|
+
api.start({
|
|
267
|
+
height: 0
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
function getScrollTop(element) {
|
|
275
|
+
return 'scrollTop' in element ? element.scrollTop : element.scrollY;
|
|
276
|
+
} // 手指位置
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
var _state$movement = _slicedToArray(state.movement, 2),
|
|
280
|
+
y = _state$movement[1]; // 第一个事件,并且手指位置大于0
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
if (state.first && y > 0) {
|
|
284
|
+
var target = state.event.target;
|
|
285
|
+
if (!target || !(target instanceof Element)) return;
|
|
286
|
+
var scrollParent = getScrollParent(target);
|
|
287
|
+
|
|
288
|
+
while (true) {
|
|
289
|
+
if (!scrollParent) return;
|
|
290
|
+
var scrollTop = getScrollTop(scrollParent);
|
|
291
|
+
|
|
292
|
+
if (scrollTop > 0) {
|
|
293
|
+
return;
|
|
294
|
+
} // 查找到 window 说明到顶了
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
if (scrollParent instanceof Window) {
|
|
298
|
+
break;
|
|
299
|
+
} // 递归查找
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
scrollParent = getScrollParent(scrollParent.parentNode);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
pullingRef.current = true;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
if (!pullingRef.current) return;
|
|
309
|
+
|
|
310
|
+
if (event.cancelable) {
|
|
311
|
+
event.preventDefault();
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
event.stopPropagation();
|
|
315
|
+
var height = Math.max(rubberbandIfOutOfBounds(y, 0, 0, headHeight * 5, 0.5), 0);
|
|
316
|
+
api.start({
|
|
317
|
+
height: height
|
|
318
|
+
});
|
|
319
|
+
setStatus(height > threshold ? 'canRelease' : 'pulling');
|
|
320
|
+
}, {
|
|
321
|
+
pointer: {
|
|
322
|
+
touch: true
|
|
323
|
+
},
|
|
324
|
+
axis: 'y',
|
|
325
|
+
target: elementRef,
|
|
326
|
+
enabled: !props.disabled,
|
|
327
|
+
eventOptions: passiveSupported ? {
|
|
328
|
+
passive: false
|
|
329
|
+
} : false
|
|
330
|
+
});
|
|
331
|
+
|
|
332
|
+
var renderStatusText = function renderStatusText() {
|
|
333
|
+
console.log(props);
|
|
334
|
+
|
|
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"
|
|
351
|
+
}, React__default.createElement(animated.div, {
|
|
352
|
+
style: springStyles,
|
|
353
|
+
className: "nut-pulltorefresh-head"
|
|
354
|
+
}, React__default.createElement("div", {
|
|
355
|
+
className: "nut-pulltorefresh-head-content",
|
|
356
|
+
style: {
|
|
357
|
+
height: headHeight
|
|
358
|
+
}
|
|
359
|
+
}, renderStatusText())), React__default.createElement("div", {
|
|
360
|
+
className: "nut-pulltorefresh-content"
|
|
361
|
+
}, props.children));
|
|
362
|
+
};
|
|
363
|
+
|
|
364
|
+
PullToRefresh.defaultProps = defaultProps;
|
|
365
|
+
PullToRefresh.displayName = 'NutPullToRefresh';
|
|
366
|
+
export { PullToRefresh as P };
|
|
@@ -8,8 +8,8 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
8
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
9
|
|
|
10
10
|
import React__default, { useState, useContext, useEffect } from 'react';
|
|
11
|
-
import { I as Icon } from './icon-
|
|
12
|
-
import { a as RadioContext, R as RadioGroup } from './radiogroup-
|
|
11
|
+
import { I as Icon } from './icon.taro-1d0d4fb7.js';
|
|
12
|
+
import { a as RadioContext, R as RadioGroup } from './radiogroup.taro-b5dad516.js';
|
|
13
13
|
var defaultProps = {
|
|
14
14
|
disabled: false,
|
|
15
15
|
checked: false,
|
|
File without changes
|
|
@@ -10,125 +10,8 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
10
10
|
import React__default, { useState, useRef, useEffect, useCallback } from 'react';
|
|
11
11
|
import { u as useTouch } from './useTouch-a2ea68c6.js';
|
|
12
12
|
import { g as getRectByTaro } from './useClientRect-8b7cc406.js';
|
|
13
|
-
import {
|
|
14
|
-
import { u as useConfig } from './configprovider-
|
|
15
|
-
var messageInstance = null;
|
|
16
|
-
var options = {
|
|
17
|
-
msg: '',
|
|
18
|
-
id: '',
|
|
19
|
-
style: {},
|
|
20
|
-
duration: 1.5,
|
|
21
|
-
center: true,
|
|
22
|
-
type: 'text',
|
|
23
|
-
title: '',
|
|
24
|
-
customClass: '',
|
|
25
|
-
bottom: '30px',
|
|
26
|
-
size: 'base',
|
|
27
|
-
icon: null,
|
|
28
|
-
iconSize: '20',
|
|
29
|
-
textAlignCenter: true,
|
|
30
|
-
loadingRotate: true,
|
|
31
|
-
bgColor: 'rgba(0, 0, 0, .8)',
|
|
32
|
-
onClose: function onClose() {},
|
|
33
|
-
cover: false,
|
|
34
|
-
coverColor: 'rgba(0, 0, 0, 0)',
|
|
35
|
-
closeOnClickOverlay: false // 是否点击遮罩可关闭
|
|
36
|
-
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
function getInstance(props, callback) {
|
|
40
|
-
if (messageInstance) {
|
|
41
|
-
messageInstance.destroy();
|
|
42
|
-
messageInstance = null;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
Notification.newInstance(props, function (notification) {
|
|
46
|
-
return callback && callback(notification);
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
function notice(opts) {
|
|
51
|
-
function close() {
|
|
52
|
-
if (messageInstance) {
|
|
53
|
-
messageInstance.destroy();
|
|
54
|
-
messageInstance = null;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
var opts2 = _objectSpread(_objectSpread(_objectSpread({}, options), opts), {}, {
|
|
59
|
-
onClose: close
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
getInstance(opts2, function (notification) {
|
|
63
|
-
messageInstance = notification;
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
var errorMsg = function errorMsg(msg) {
|
|
68
|
-
if (!msg) {
|
|
69
|
-
console.warn('[NutUI Toast]: msg cannot be null');
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
var Toast = {
|
|
74
|
-
text: function text(msg) {
|
|
75
|
-
var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
76
|
-
errorMsg(msg);
|
|
77
|
-
return notice(_objectSpread({
|
|
78
|
-
msg: msg,
|
|
79
|
-
type: 'text'
|
|
80
|
-
}, option));
|
|
81
|
-
},
|
|
82
|
-
success: function success(msg) {
|
|
83
|
-
var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
84
|
-
errorMsg(msg);
|
|
85
|
-
return notice(_objectSpread({
|
|
86
|
-
msg: msg,
|
|
87
|
-
icon: 'success',
|
|
88
|
-
type: 'success'
|
|
89
|
-
}, option));
|
|
90
|
-
},
|
|
91
|
-
fail: function fail(msg) {
|
|
92
|
-
var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
93
|
-
errorMsg(msg);
|
|
94
|
-
return notice(_objectSpread({
|
|
95
|
-
msg: msg,
|
|
96
|
-
icon: 'failure',
|
|
97
|
-
type: 'fail'
|
|
98
|
-
}, option));
|
|
99
|
-
},
|
|
100
|
-
loading: function loading(msg) {
|
|
101
|
-
var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
102
|
-
errorMsg(msg);
|
|
103
|
-
return notice(_objectSpread({
|
|
104
|
-
msg: msg,
|
|
105
|
-
icon: 'loading',
|
|
106
|
-
type: 'loading'
|
|
107
|
-
}, option));
|
|
108
|
-
},
|
|
109
|
-
warn: function warn(msg) {
|
|
110
|
-
var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
111
|
-
errorMsg(msg);
|
|
112
|
-
return notice(_objectSpread({
|
|
113
|
-
msg: msg,
|
|
114
|
-
icon: 'tips',
|
|
115
|
-
type: 'warn'
|
|
116
|
-
}, option));
|
|
117
|
-
},
|
|
118
|
-
customIcon: function customIcon(msg) {
|
|
119
|
-
var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
120
|
-
errorMsg(msg);
|
|
121
|
-
return notice(_objectSpread({
|
|
122
|
-
msg: msg
|
|
123
|
-
}, option));
|
|
124
|
-
},
|
|
125
|
-
hide: function hide() {
|
|
126
|
-
if (messageInstance) {
|
|
127
|
-
messageInstance.destroy();
|
|
128
|
-
messageInstance = null;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
};
|
|
13
|
+
import { T as Toast } from './toast.taro-d4ecd6af.js';
|
|
14
|
+
import { u as useConfig } from './configprovider.taro-6c7b3056.js';
|
|
132
15
|
var defaultProps = {
|
|
133
16
|
range: false,
|
|
134
17
|
hiddenRange: false,
|
|
@@ -7,7 +7,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
7
7
|
|
|
8
8
|
import React__default, { useState, useEffect } from 'react';
|
|
9
9
|
import { c as cn } from './bem-893ad28d.js';
|
|
10
|
-
import { I as Icon } from './icon-
|
|
10
|
+
import { I as Icon } from './icon.taro-1d0d4fb7.js';
|
|
11
11
|
var defaultProps = {
|
|
12
12
|
count: 5,
|
|
13
13
|
modelValue: 0,
|
|
@@ -7,8 +7,8 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
7
7
|
|
|
8
8
|
import React__default, { useRef, useState, useEffect } from 'react';
|
|
9
9
|
import { c as cn } from './bem-893ad28d.js';
|
|
10
|
-
import { u as useConfig } from './configprovider-
|
|
11
|
-
import { I as Icon } from './icon-
|
|
10
|
+
import { u as useConfig } from './configprovider.taro-6c7b3056.js';
|
|
11
|
+
import { I as Icon } from './icon.taro-1d0d4fb7.js';
|
|
12
12
|
var defaultProps = {
|
|
13
13
|
placeholder: '',
|
|
14
14
|
shape: 'square',
|
|
@@ -10,9 +10,9 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
10
10
|
|
|
11
11
|
import React__default, { useRef, useState, useEffect } from 'react';
|
|
12
12
|
import { c as cn } from './bem-893ad28d.js';
|
|
13
|
-
import { P as Popup } from './popup-
|
|
14
|
-
import { I as Icon } from './icon-
|
|
15
|
-
import { u as useConfig } from './configprovider-
|
|
13
|
+
import { P as Popup } from './popup.taro-8363fbae.js';
|
|
14
|
+
import { I as Icon } from './icon.taro-1d0d4fb7.js';
|
|
15
|
+
import { u as useConfig } from './configprovider.taro-6c7b3056.js';
|
|
16
16
|
var defaultProps = {
|
|
17
17
|
title: '',
|
|
18
18
|
desc: '',
|
|
@@ -7,8 +7,8 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
7
7
|
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; }
|
|
8
8
|
|
|
9
9
|
import React__default from 'react';
|
|
10
|
-
import { u as useConfig } from './configprovider-
|
|
11
|
-
import { P as Popup } from './popup-
|
|
10
|
+
import { u as useConfig } from './configprovider.taro-6c7b3056.js';
|
|
11
|
+
import { P as Popup } from './popup.taro-8363fbae.js';
|
|
12
12
|
import { h as handleClick, O as OffsetContext } from './offsetContext-0e3d04b3.js';
|
|
13
13
|
var defaultProps = {
|
|
14
14
|
showhead: false,
|
|
@@ -8,9 +8,9 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
8
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
9
|
|
|
10
10
|
import React__default, { useRef, useState, useEffect } from 'react';
|
|
11
|
-
import { B as Button } from './button-
|
|
11
|
+
import { B as Button } from './button.taro-bffc9543.js';
|
|
12
12
|
import { c as cn } from './bem-893ad28d.js';
|
|
13
|
-
import { u as useConfig } from './configprovider-
|
|
13
|
+
import { u as useConfig } from './configprovider.taro-6c7b3056.js';
|
|
14
14
|
var defaultProps = {
|
|
15
15
|
type: 'png',
|
|
16
16
|
lineWidth: 2,
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
+
var _excluded = ["className", "width", "height", "animated", "row", "title", "avatar", "avatarSize", "round", "loading", "children", "avatarShape"];
|
|
4
|
+
|
|
5
|
+
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; }
|
|
6
|
+
|
|
7
|
+
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; }
|
|
8
|
+
|
|
9
|
+
import React__default from 'react';
|
|
10
|
+
import classNames from 'classnames';
|
|
11
|
+
import { A as Avatar } from './avatar.taro-c3a605b9.js';
|
|
12
|
+
import { c as cn } from './bem-893ad28d.js';
|
|
13
|
+
var defaultProps = {
|
|
14
|
+
width: '100px',
|
|
15
|
+
height: '100px',
|
|
16
|
+
row: 1,
|
|
17
|
+
animated: false,
|
|
18
|
+
title: false,
|
|
19
|
+
avatar: false,
|
|
20
|
+
round: false,
|
|
21
|
+
avatarSize: '50px',
|
|
22
|
+
loading: false,
|
|
23
|
+
avatarShape: 'round'
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
var Skeleton = function Skeleton(props) {
|
|
27
|
+
var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
|
|
28
|
+
className = _defaultProps$props.className,
|
|
29
|
+
width = _defaultProps$props.width,
|
|
30
|
+
height = _defaultProps$props.height,
|
|
31
|
+
animated = _defaultProps$props.animated,
|
|
32
|
+
row = _defaultProps$props.row,
|
|
33
|
+
title = _defaultProps$props.title,
|
|
34
|
+
avatar = _defaultProps$props.avatar,
|
|
35
|
+
avatarSize = _defaultProps$props.avatarSize,
|
|
36
|
+
round = _defaultProps$props.round,
|
|
37
|
+
loading = _defaultProps$props.loading,
|
|
38
|
+
children = _defaultProps$props.children,
|
|
39
|
+
avatarShape = _defaultProps$props.avatarShape,
|
|
40
|
+
restProps = _objectWithoutProperties(_defaultProps$props, _excluded);
|
|
41
|
+
|
|
42
|
+
var b = cn('skeleton');
|
|
43
|
+
var classes = classNames(className, b());
|
|
44
|
+
var blockClass = classNames({
|
|
45
|
+
blockClass: true,
|
|
46
|
+
'blockClass--round': round
|
|
47
|
+
});
|
|
48
|
+
var avatarClass = classNames(_defineProperty({
|
|
49
|
+
avatarClass: true
|
|
50
|
+
}, "avatarClass--".concat(avatarShape), avatarShape));
|
|
51
|
+
|
|
52
|
+
var repeatLines = function repeatLines(num) {
|
|
53
|
+
return Array.from({
|
|
54
|
+
length: num
|
|
55
|
+
}, function (v, i) {
|
|
56
|
+
return i;
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
var getStyle = function getStyle() {
|
|
61
|
+
if (avatarSize) {
|
|
62
|
+
return {
|
|
63
|
+
width: avatarSize,
|
|
64
|
+
height: avatarSize
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return {
|
|
69
|
+
width: '50px',
|
|
70
|
+
height: '50px'
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
return React__default.createElement(React__default.Fragment, null, loading ? React__default.createElement("div", null, children) : React__default.createElement("div", _objectSpread({
|
|
75
|
+
className: classes
|
|
76
|
+
}, restProps), animated && React__default.createElement("div", {
|
|
77
|
+
className: "skeleton-animation"
|
|
78
|
+
}), React__default.createElement("div", {
|
|
79
|
+
className: "nut-skeleton-content"
|
|
80
|
+
}, avatar && React__default.createElement(Avatar, {
|
|
81
|
+
className: avatarClass,
|
|
82
|
+
bgColor: "rgb(239, 239, 239)",
|
|
83
|
+
shape: avatarShape,
|
|
84
|
+
style: getStyle()
|
|
85
|
+
}), row === 1 && React__default.createElement("div", {
|
|
86
|
+
className: blockClass,
|
|
87
|
+
style: {
|
|
88
|
+
width: width,
|
|
89
|
+
height: height
|
|
90
|
+
}
|
|
91
|
+
}), React__default.createElement("div", {
|
|
92
|
+
className: "skeleton-content-line"
|
|
93
|
+
}, title && React__default.createElement("div", {
|
|
94
|
+
className: "skeleton-title"
|
|
95
|
+
}), repeatLines(row).map(function (item, index) {
|
|
96
|
+
return React__default.createElement("div", {
|
|
97
|
+
className: blockClass,
|
|
98
|
+
key: index,
|
|
99
|
+
style: {
|
|
100
|
+
width: width,
|
|
101
|
+
height: height
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
})))));
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
Skeleton.defaultProps = defaultProps;
|
|
108
|
+
Skeleton.displayName = 'NutSkeleton';
|
|
109
|
+
export { Skeleton as S };
|