@nutui/nutui-react 1.5.1 → 2.0.0-alpha.1
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 +24 -664
- package/dist/esm/ActionSheet.js +62 -54
- package/dist/esm/Address/style/index.js +0 -1
- package/dist/esm/Address.js +235 -330
- package/dist/esm/Animate.js +43 -32
- package/dist/esm/AnimatingNumbers.js +88 -49
- package/dist/esm/Audio/style/index.js +0 -1
- package/dist/esm/Audio.js +108 -121
- package/dist/esm/Avatar.js +65 -78
- package/dist/esm/AvatarContext.js +5 -0
- package/dist/esm/AvatarGroup.js +46 -27
- package/dist/esm/BackTop/style/index.js +1 -1
- package/dist/esm/BackTop.js +74 -76
- package/dist/esm/Badge.js +57 -54
- package/dist/esm/Barrage.js +45 -32
- package/dist/esm/Button/style/index.js +1 -1
- package/dist/esm/Button.js +66 -87
- package/dist/esm/Calendar.js +80 -79
- package/dist/esm/CalendarItem.js +199 -231
- package/dist/esm/Card.js +44 -37
- package/dist/esm/Cascader.js +431 -434
- package/dist/esm/Cell/style/index.js +1 -1
- package/dist/esm/Cell.js +57 -87
- package/dist/esm/CellGroup.js +7 -5
- package/dist/esm/Checkbox/style/index.js +0 -1
- package/dist/esm/Checkbox.js +11 -8
- package/dist/esm/CheckboxGroup.js +78 -71
- package/dist/esm/CircleProgress.js +50 -40
- package/dist/esm/Col.js +49 -43
- package/dist/esm/Collapse.js +44 -44
- package/dist/esm/CollapseItem/style/index.js +1 -1
- package/dist/esm/CollapseItem.js +64 -104
- package/dist/esm/ConfigProvider.js +400 -101
- package/dist/esm/CountDown.js +90 -95
- package/dist/esm/DatePicker.js +104 -123
- package/dist/esm/Dialog.js +98 -104
- package/dist/esm/Divider.js +36 -27
- package/dist/esm/Drag.js +55 -59
- package/dist/esm/Elevator.js +77 -88
- package/dist/esm/Ellipsis.js +80 -79
- package/dist/esm/Empty.js +50 -44
- package/dist/esm/FixedNav/style/index.js +0 -1
- package/dist/esm/FixedNav.js +57 -65
- package/dist/esm/Form.js +1154 -123
- package/dist/esm/FormItem.js +7 -5
- package/dist/esm/Grid/style/index.js +1 -1
- package/dist/esm/Grid.js +51 -55
- package/dist/esm/GridItem.js +7 -124
- package/dist/esm/Icon.js +83 -5
- package/dist/esm/Image.js +123 -122
- package/dist/esm/ImagePreview.js +76 -94
- package/dist/esm/Indicator.js +41 -36
- package/dist/esm/Infiniteloading/style/index.js +1 -1
- package/dist/esm/Infiniteloading.js +77 -93
- package/dist/esm/Input/style/index.js +1 -1
- package/dist/esm/Input.js +120 -172
- package/dist/esm/InputNumber/style/index.js +1 -1
- package/dist/esm/InputNumber.js +133 -167
- package/dist/esm/Layout.js +27 -6
- package/dist/esm/Menu.js +84 -86
- package/dist/esm/MenuItem/style/index.js +0 -1
- package/dist/esm/MenuItem.js +76 -86
- package/dist/esm/NavBar/style/index.js +1 -1
- package/dist/esm/NavBar.js +59 -63
- package/dist/esm/NoticeBar/style/index.js +1 -1
- package/dist/esm/NoticeBar.js +173 -290
- package/dist/esm/Notify.js +112 -78
- package/dist/esm/NumberKeyboard.js +110 -109
- package/dist/esm/Overlay.js +7 -6
- package/dist/esm/Pagination.js +94 -135
- package/dist/esm/Picker.js +149 -201
- package/dist/esm/Popover/style/index.js +0 -1
- package/dist/esm/Popover.js +121 -116
- package/dist/esm/Popup/style/index.js +0 -1
- package/dist/esm/Popup.js +114 -131
- package/dist/esm/Price.js +51 -39
- package/dist/esm/Progress/style/index.js +1 -1
- package/dist/esm/Progress.js +59 -64
- package/dist/esm/PullToRefresh.js +173 -149
- package/dist/esm/Radio/style/index.js +0 -1
- package/dist/esm/Radio.js +8 -6
- package/dist/esm/RadioGroup.js +64 -84
- package/dist/esm/Range.js +93 -122
- package/dist/esm/Rate/style/index.js +1 -1
- package/dist/esm/Rate.js +77 -95
- package/dist/esm/Row.js +49 -37
- package/dist/esm/SearchBar/style/index.js +1 -1
- package/dist/esm/SearchBar.js +110 -120
- package/dist/esm/ShortPassword/style/index.js +0 -1
- package/dist/esm/ShortPassword.js +120 -116
- package/dist/esm/SideNavBar.js +38 -28
- package/dist/esm/SideNavBarItem.js +31 -14
- package/dist/esm/Signature.js +65 -61
- package/dist/esm/Skeleton.js +48 -40
- package/dist/esm/Step/style/index.js +1 -1
- package/dist/esm/Step.js +49 -49
- package/dist/esm/Steps.js +37 -23
- package/dist/esm/Sticky.js +111 -120
- package/dist/esm/SubSideNavBar.js +50 -38
- package/dist/esm/Swipe.js +75 -63
- package/dist/esm/Swiper.js +171 -206
- package/dist/esm/SwiperItem.js +39 -22
- package/dist/esm/Switch.js +46 -37
- package/dist/esm/TabPane.js +8 -6
- package/dist/esm/Tabbar.js +47 -39
- package/dist/esm/TabbarItem/style/index.js +1 -1
- package/dist/esm/TabbarItem.js +50 -52
- package/dist/esm/Table/style/index.js +1 -1
- package/dist/esm/Table.js +70 -70
- package/dist/esm/Tabs/style/index.js +1 -2
- package/dist/esm/Tabs.js +11 -9
- package/dist/esm/Tag/style/index.js +1 -1
- package/dist/esm/Tag.js +69 -70
- package/dist/esm/TextArea.js +70 -64
- package/dist/esm/TimeDetail.js +47 -38
- package/dist/esm/TimePannel.js +35 -19
- package/dist/esm/TimeSelect.js +60 -68
- package/dist/esm/Toast/style/index.js +1 -1
- package/dist/esm/Toast.js +126 -98
- package/dist/esm/TrendArrow/style/index.js +1 -1
- package/dist/esm/TrendArrow.js +59 -55
- package/dist/esm/Uploader/style/index.js +0 -1
- package/dist/esm/Uploader.js +195 -246
- package/dist/esm/UserContext.js +5 -0
- package/dist/esm/UserContext2.js +5 -0
- package/dist/esm/UserContext3.js +5 -0
- package/dist/esm/Video.js +49 -39
- package/dist/esm/VirtualList.js +111 -146
- package/dist/esm/WaterMark.js +57 -60
- package/dist/esm/bem.js +10 -0
- package/dist/esm/cellgroup2.js +49 -0
- package/dist/esm/checkbox2.js +145 -0
- package/dist/esm/{date-c7aad4c0.js → date.js} +13 -11
- package/dist/esm/{formitem-8a73a5fb.js → formitem2.js} +83 -50
- package/dist/esm/get-scroll-parent.js +26 -0
- package/dist/esm/griditem2.js +96 -0
- package/dist/esm/index.js +14 -0
- package/dist/esm/nutui-react.es.js +188 -94
- package/dist/esm/offsetContext.js +19 -0
- package/dist/esm/overlay2.js +98 -0
- package/dist/esm/px-check.js +6 -0
- package/dist/esm/radio2.js +129 -0
- package/dist/esm/render.js +95 -0
- package/dist/esm/tabpane2.js +44 -0
- package/dist/esm/tabs2.js +175 -0
- package/dist/esm/typings.js +7 -0
- package/dist/esm/use-client-rect.js +32 -0
- package/dist/esm/use-props-value.js +18 -0
- package/dist/esm/use-touch.js +74 -0
- package/dist/locales/base.d.ts +2 -2
- package/dist/locales/base.js +1 -1
- package/dist/locales/en-US.js +3 -3
- package/dist/locales/id-ID.js +3 -3
- package/dist/locales/zh-CN.js +3 -3
- package/dist/locales/zh-TW.js +3 -3
- package/dist/locales/zh-UG.js +3 -3
- package/dist/nutui.react.mjs +8389 -4901
- package/dist/nutui.react.umd.js +8390 -4902
- package/dist/packages/actionsheet/actionsheet.scss +10 -2
- package/dist/packages/audio/audio.scss +2 -15
- package/dist/packages/backtop/backtop.scss +0 -8
- package/dist/packages/badge/badge.scss +3 -4
- package/dist/packages/button/button.scss +80 -93
- package/dist/packages/calendar/calendar.scss +0 -30
- package/dist/packages/cell/cell.scss +18 -90
- package/dist/packages/cellgroup/cellgroup.scss +26 -20
- package/dist/packages/collapseitem/collapseitem.scss +0 -1
- package/dist/packages/dialog/dialog.scss +1 -1
- package/dist/packages/divider/divider.scss +3 -17
- package/dist/packages/grid/grid.scss +1 -0
- package/dist/packages/griditem/griditem.scss +2 -17
- package/dist/packages/icon/icon.scss +0 -132
- package/dist/packages/image/image.scss +0 -12
- package/dist/packages/indicator/indicator.scss +21 -39
- package/dist/packages/infiniteloading/infiniteloading.scss +4 -12
- package/dist/packages/input/input.scss +4 -0
- package/dist/packages/inputnumber/inputnumber.scss +10 -26
- package/dist/packages/menuitem/menuitem.scss +2 -0
- package/dist/packages/navbar/navbar.scss +4 -5
- package/dist/packages/overlay/overlay.scss +0 -19
- package/dist/packages/picker/picker.scss +97 -103
- package/dist/packages/popup/popup.scss +0 -16
- package/dist/packages/progress/progress.scss +0 -1
- package/dist/packages/radio/radio.scss +8 -0
- package/dist/packages/rate/rate.scss +29 -6
- package/dist/packages/row/row.scss +13 -31
- package/dist/packages/searchbar/searchbar.scss +0 -1
- package/dist/packages/shortpassword/shortpassword.scss +4 -1
- package/dist/packages/sidenavbar/sidenavbar.scss +0 -19
- package/dist/packages/step/step.scss +0 -1
- package/dist/packages/sticky/sticky.scss +1 -1
- package/dist/packages/swiper/swiper.scss +8 -0
- package/dist/packages/tabbaritem/tabbaritem.scss +0 -1
- package/dist/packages/table/table.scss +0 -1
- package/dist/packages/tag/tag.scss +9 -2
- package/dist/packages/timedetail/timedetail.scss +9 -3
- package/dist/packages/timeselect/timeselect.scss +1 -1
- package/dist/packages/toast/toast.scss +0 -1
- package/dist/packages/uploader/uploader.scss +2 -28
- package/dist/style.css +1 -1
- package/dist/style.mjs +1 -1
- package/dist/styles/font-jmapp/config.json +175 -0
- package/dist/styles/font-jmapp/demo.css +539 -0
- package/dist/styles/font-jmapp/demo_index.html +1821 -0
- package/dist/styles/font-jmapp/iconfont.css +299 -0
- package/dist/styles/font-jmapp/iconfont.eot +0 -0
- package/dist/styles/font-jmapp/iconfont.js +68 -0
- package/dist/styles/font-jmapp/iconfont.json +506 -0
- package/dist/styles/font-jmapp/iconfont.svg +356 -0
- package/dist/styles/font-jmapp/iconfont.ttf +0 -0
- package/dist/styles/font-jmapp/iconfont.woff +0 -0
- package/dist/styles/font-jmapp/iconfont.woff2 +0 -0
- package/dist/styles/theme-default.scss +1 -0
- package/dist/styles/theme-jmapp.scss +41 -0
- package/dist/styles/themes/default.scss +0 -1
- package/dist/styles/variables-jmapp.scss +2601 -0
- package/dist/styles/variables.scss +49 -73
- package/dist/types/index.d.ts +169 -266
- package/package.json +23 -154
- package/dist/esm/AvatarContext-15733596.js +0 -3
- package/dist/esm/Icon/style/index.js +0 -4
- package/dist/esm/UserContext-101ad4a4.js +0 -3
- package/dist/esm/UserContext-2629d479.js +0 -3
- package/dist/esm/UserContext-b33bcf21.js +0 -3
- package/dist/esm/bem-3b438e61.js +0 -8
- package/dist/esm/cellgroup-fcc72767.js +0 -34
- package/dist/esm/checkbox-44e13cd0.js +0 -137
- package/dist/esm/get-scroll-parent-5f85dee8.js +0 -24
- package/dist/esm/grid.context-2ee27d95.js +0 -6
- package/dist/esm/icon-4ef1581c.js +0 -70
- package/dist/esm/index-030b7245.js +0 -11
- package/dist/esm/offsetContext-3ab00d40.js +0 -16
- package/dist/esm/overlay-de6c79d5.js +0 -83
- package/dist/esm/radio-9f141e6b.js +0 -118
- package/dist/esm/render-bbebb760.js +0 -79
- package/dist/esm/tabpane-01075e6c.js +0 -29
- package/dist/esm/tabs-e1b4e4b1.js +0 -181
- package/dist/esm/typings-f27b58f4.js +0 -8
- package/dist/esm/useClientRect-56bb675b.js +0 -39
- package/dist/esm/useTouch-cf73a407.js +0 -99
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
|
-
var _excluded = ["className", "disabled", "checked", "shape", "textPosition", "value", "iconName", "iconActiveName", "iconSize", "onChange", "iconClassPrefix", "iconFontClassName"];
|
|
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
|
-
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; }
|
|
7
|
-
import React__default, { useState, useContext, useEffect } from 'react';
|
|
8
|
-
import Icon from './Icon.js';
|
|
9
|
-
import RadioGroup from './RadioGroup.js';
|
|
10
|
-
import { C as ComponentDefaults } from './typings-f27b58f4.js';
|
|
11
|
-
var radioContext = {
|
|
12
|
-
onChange: function onChange(val) {}
|
|
13
|
-
};
|
|
14
|
-
var RadioContext = React__default.createContext(radioContext);
|
|
15
|
-
var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
|
|
16
|
-
className: '',
|
|
17
|
-
style: {},
|
|
18
|
-
disabled: false,
|
|
19
|
-
checked: false,
|
|
20
|
-
shape: 'round',
|
|
21
|
-
value: '',
|
|
22
|
-
textPosition: 'right',
|
|
23
|
-
iconName: 'check-normal',
|
|
24
|
-
iconActiveName: 'check-checked',
|
|
25
|
-
iconSize: 18,
|
|
26
|
-
onChange: function onChange(e) {}
|
|
27
|
-
});
|
|
28
|
-
var Radio = function Radio(props) {
|
|
29
|
-
var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
|
|
30
|
-
children = _defaultProps$props.children;
|
|
31
|
-
var className = props.className,
|
|
32
|
-
disabled = props.disabled,
|
|
33
|
-
checked = props.checked,
|
|
34
|
-
shape = props.shape,
|
|
35
|
-
textPosition = props.textPosition,
|
|
36
|
-
value = props.value,
|
|
37
|
-
iconName = props.iconName,
|
|
38
|
-
iconActiveName = props.iconActiveName,
|
|
39
|
-
iconSize = props.iconSize,
|
|
40
|
-
onChange = props.onChange,
|
|
41
|
-
iconClassPrefix = props.iconClassPrefix,
|
|
42
|
-
iconFontClassName = props.iconFontClassName,
|
|
43
|
-
rest = _objectWithoutProperties(props, _excluded);
|
|
44
|
-
var componentName = 'nut-radio';
|
|
45
|
-
var _useState = useState(checked),
|
|
46
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
47
|
-
checkedStatement = _useState2[0],
|
|
48
|
-
setCheckedStatement = _useState2[1];
|
|
49
|
-
var _useState3 = useState(value),
|
|
50
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
51
|
-
valueStatement = _useState4[0],
|
|
52
|
-
setValueStatement = _useState4[1];
|
|
53
|
-
var _useState5 = useState(disabled),
|
|
54
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
55
|
-
disabledStatement = _useState6[0],
|
|
56
|
-
setDisabledStatement = _useState6[1];
|
|
57
|
-
var context = useContext(RadioContext);
|
|
58
|
-
useEffect(function () {
|
|
59
|
-
setDisabledStatement(disabled);
|
|
60
|
-
setValueStatement(value);
|
|
61
|
-
setCheckedStatement(checked);
|
|
62
|
-
}, [disabled, value, checked]);
|
|
63
|
-
var renderLabel = function renderLabel() {
|
|
64
|
-
return React__default.createElement("div", {
|
|
65
|
-
className: "".concat(componentName, "__label ").concat(disabledStatement ? "".concat(componentName, "__label--disabled") : '')
|
|
66
|
-
}, children);
|
|
67
|
-
};
|
|
68
|
-
var renderButton = function renderButton() {
|
|
69
|
-
return React__default.createElement("div", {
|
|
70
|
-
className: "".concat(componentName, "__button ").concat(!disabledStatement && checkedStatement && "".concat(componentName, "__button--active"), " ").concat(disabledStatement ? "".concat(componentName, "__button--disabled") : '')
|
|
71
|
-
}, children);
|
|
72
|
-
};
|
|
73
|
-
var color = function color() {
|
|
74
|
-
if (disabledStatement) {
|
|
75
|
-
return 'nut-radio__icon--disable';
|
|
76
|
-
}
|
|
77
|
-
if (checkedStatement) {
|
|
78
|
-
return 'nut-radio__icon';
|
|
79
|
-
}
|
|
80
|
-
return 'nut-radio__icon--unchecked';
|
|
81
|
-
};
|
|
82
|
-
var renderIcon = function renderIcon() {
|
|
83
|
-
var iconName = props.iconName,
|
|
84
|
-
iconSize = props.iconSize,
|
|
85
|
-
iconActiveName = props.iconActiveName;
|
|
86
|
-
return React__default.createElement(Icon, {
|
|
87
|
-
classPrefix: iconClassPrefix,
|
|
88
|
-
fontClassName: iconFontClassName,
|
|
89
|
-
name: !disabledStatement && checkedStatement ? iconActiveName : iconName,
|
|
90
|
-
size: iconSize,
|
|
91
|
-
className: color()
|
|
92
|
-
});
|
|
93
|
-
};
|
|
94
|
-
var reverseState = textPosition === 'left';
|
|
95
|
-
var renderRadioItem = function renderRadioItem() {
|
|
96
|
-
if (shape === 'button') {
|
|
97
|
-
return renderButton();
|
|
98
|
-
}
|
|
99
|
-
if (reverseState) {
|
|
100
|
-
return React__default.createElement(React__default.Fragment, null, renderLabel(), renderIcon());
|
|
101
|
-
}
|
|
102
|
-
return React__default.createElement(React__default.Fragment, null, renderIcon(), renderLabel());
|
|
103
|
-
};
|
|
104
|
-
var handleClick = function handleClick(e) {
|
|
105
|
-
if (disabledStatement || checkedStatement) return;
|
|
106
|
-
setCheckedStatement(!checkedStatement);
|
|
107
|
-
onChange && onChange(e);
|
|
108
|
-
context && context.onChange(valueStatement);
|
|
109
|
-
};
|
|
110
|
-
return React__default.createElement("div", _objectSpread({
|
|
111
|
-
className: "nut-radio ".concat(className, " ").concat(reverseState ? "".concat(componentName, "--reverse") : ''),
|
|
112
|
-
onClick: handleClick
|
|
113
|
-
}, rest), renderRadioItem());
|
|
114
|
-
};
|
|
115
|
-
Radio.defaultProps = defaultProps;
|
|
116
|
-
Radio.displayName = 'NutRadio';
|
|
117
|
-
Radio.RadioGroup = RadioGroup;
|
|
118
|
-
export { Radio as R, RadioContext as a };
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
-
import _typeof from "@babel/runtime/helpers/typeof";
|
|
3
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
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
|
-
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; }
|
|
7
|
-
import * as ReactDOM from 'react-dom';
|
|
8
|
-
|
|
9
|
-
// Let compiler not to search module usage
|
|
10
|
-
var fullClone = _objectSpread({}, ReactDOM);
|
|
11
|
-
var version = fullClone.version,
|
|
12
|
-
reactRender = fullClone.render,
|
|
13
|
-
unmountComponentAtNode = fullClone.unmountComponentAtNode;
|
|
14
|
-
var createRoot;
|
|
15
|
-
try {
|
|
16
|
-
var mainVersion = Number((version || '').split('.')[0]);
|
|
17
|
-
if (mainVersion >= 18 && fullClone.createRoot) {
|
|
18
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
19
|
-
createRoot = fullClone.createRoot;
|
|
20
|
-
}
|
|
21
|
-
} catch (e) {
|
|
22
|
-
// Do nothing;
|
|
23
|
-
}
|
|
24
|
-
function toggleWarning(skip) {
|
|
25
|
-
var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = fullClone.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
|
|
26
|
-
if (__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED && _typeof(__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === 'object') {
|
|
27
|
-
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint = skip;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
var MARK = '__nutui_react_root__';
|
|
31
|
-
function legacyRender(node, container) {
|
|
32
|
-
reactRender(node, container);
|
|
33
|
-
}
|
|
34
|
-
function concurrentRender(node, container) {
|
|
35
|
-
toggleWarning(true);
|
|
36
|
-
var root = container[MARK] || createRoot(container);
|
|
37
|
-
toggleWarning(false);
|
|
38
|
-
root.render(node);
|
|
39
|
-
container[MARK] = root;
|
|
40
|
-
}
|
|
41
|
-
function render(node, container) {
|
|
42
|
-
if (createRoot) {
|
|
43
|
-
concurrentRender(node, container);
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
legacyRender(node, container);
|
|
47
|
-
}
|
|
48
|
-
// ========================== Unmount =========================
|
|
49
|
-
function legacyUnmount(container) {
|
|
50
|
-
return unmountComponentAtNode(container);
|
|
51
|
-
}
|
|
52
|
-
function concurrentUnmount(_x) {
|
|
53
|
-
return _concurrentUnmount.apply(this, arguments);
|
|
54
|
-
}
|
|
55
|
-
function _concurrentUnmount() {
|
|
56
|
-
_concurrentUnmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(container) {
|
|
57
|
-
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
58
|
-
while (1) switch (_context.prev = _context.next) {
|
|
59
|
-
case 0:
|
|
60
|
-
return _context.abrupt("return", Promise.resolve().then(function () {
|
|
61
|
-
var _container$MARK;
|
|
62
|
-
(_container$MARK = container[MARK]) === null || _container$MARK === void 0 ? void 0 : _container$MARK.unmount();
|
|
63
|
-
delete container[MARK];
|
|
64
|
-
}));
|
|
65
|
-
case 1:
|
|
66
|
-
case "end":
|
|
67
|
-
return _context.stop();
|
|
68
|
-
}
|
|
69
|
-
}, _callee);
|
|
70
|
-
}));
|
|
71
|
-
return _concurrentUnmount.apply(this, arguments);
|
|
72
|
-
}
|
|
73
|
-
function unmount(container) {
|
|
74
|
-
if (createRoot) {
|
|
75
|
-
return concurrentUnmount(container);
|
|
76
|
-
}
|
|
77
|
-
return legacyUnmount(container);
|
|
78
|
-
}
|
|
79
|
-
export { render as r, unmount as u };
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
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; }
|
|
3
|
-
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; }
|
|
4
|
-
import React__default from 'react';
|
|
5
|
-
import classNames from 'classnames';
|
|
6
|
-
import { c as cn } from './bem-3b438e61.js';
|
|
7
|
-
var defaultProps = {
|
|
8
|
-
title: '',
|
|
9
|
-
paneKey: '',
|
|
10
|
-
activeKey: '',
|
|
11
|
-
disabled: false
|
|
12
|
-
};
|
|
13
|
-
var TabPane = function TabPane(props) {
|
|
14
|
-
var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
|
|
15
|
-
children = _defaultProps$props.children,
|
|
16
|
-
paneKey = _defaultProps$props.paneKey,
|
|
17
|
-
activeKey = _defaultProps$props.activeKey,
|
|
18
|
-
autoHeightClassName = _defaultProps$props.autoHeightClassName,
|
|
19
|
-
className = _defaultProps$props.className,
|
|
20
|
-
disabled = _defaultProps$props.disabled;
|
|
21
|
-
var b = cn('tabpane');
|
|
22
|
-
var classes = classNames({
|
|
23
|
-
active: !disabled && paneKey === activeKey
|
|
24
|
-
}, b(''), autoHeightClassName, className);
|
|
25
|
-
return React__default.createElement("div", {
|
|
26
|
-
className: classes
|
|
27
|
-
}, !disabled && children);
|
|
28
|
-
};
|
|
29
|
-
export { TabPane as T };
|
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
5
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
6
|
-
var _excluded = ["value", "color", "tabStyle", "background", "direction", "type", "titleScroll", "ellipsis", "animatedTime", "titleGutter", "size", "leftAlign", "titleNode", "children", "onClick", "onChange", "className", "autoHeight", "iconClassPrefix", "iconFontClassName"];
|
|
7
|
-
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; }
|
|
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
|
-
import React__default, { useState, useRef, useEffect } from 'react';
|
|
10
|
-
import classNames from 'classnames';
|
|
11
|
-
import { c as cn } from './bem-3b438e61.js';
|
|
12
|
-
import Icon from './Icon.js';
|
|
13
|
-
import { C as ComponentDefaults } from './typings-f27b58f4.js';
|
|
14
|
-
import TabPane from './TabPane.js';
|
|
15
|
-
var Title = /*#__PURE__*/_createClass(
|
|
16
|
-
// eslint-disable-next-line no-useless-constructor
|
|
17
|
-
function Title() {
|
|
18
|
-
_classCallCheck(this, Title);
|
|
19
|
-
_defineProperty(this, "title", '');
|
|
20
|
-
_defineProperty(this, "paneKey", '');
|
|
21
|
-
_defineProperty(this, "disabled", false);
|
|
22
|
-
_defineProperty(this, "index", 0);
|
|
23
|
-
});
|
|
24
|
-
var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
|
|
25
|
-
tabStyle: {},
|
|
26
|
-
value: 0,
|
|
27
|
-
color: '',
|
|
28
|
-
background: '',
|
|
29
|
-
direction: 'horizontal',
|
|
30
|
-
type: 'line',
|
|
31
|
-
titleScroll: false,
|
|
32
|
-
ellipsis: true,
|
|
33
|
-
animatedTime: 300,
|
|
34
|
-
titleGutter: 0,
|
|
35
|
-
size: 'normal',
|
|
36
|
-
leftAlign: false,
|
|
37
|
-
autoHeight: false
|
|
38
|
-
});
|
|
39
|
-
var pxCheck = function pxCheck(value) {
|
|
40
|
-
return Number.isNaN(Number(value)) ? String(value) : "".concat(value, "px");
|
|
41
|
-
};
|
|
42
|
-
var Tabs = function Tabs(props) {
|
|
43
|
-
var _classNames;
|
|
44
|
-
var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
|
|
45
|
-
value = _defaultProps$props.value,
|
|
46
|
-
color = _defaultProps$props.color,
|
|
47
|
-
tabStyle = _defaultProps$props.tabStyle,
|
|
48
|
-
background = _defaultProps$props.background,
|
|
49
|
-
direction = _defaultProps$props.direction,
|
|
50
|
-
type = _defaultProps$props.type,
|
|
51
|
-
titleScroll = _defaultProps$props.titleScroll,
|
|
52
|
-
ellipsis = _defaultProps$props.ellipsis,
|
|
53
|
-
animatedTime = _defaultProps$props.animatedTime,
|
|
54
|
-
titleGutter = _defaultProps$props.titleGutter,
|
|
55
|
-
size = _defaultProps$props.size,
|
|
56
|
-
leftAlign = _defaultProps$props.leftAlign,
|
|
57
|
-
titleNode = _defaultProps$props.titleNode,
|
|
58
|
-
children = _defaultProps$props.children,
|
|
59
|
-
onClick = _defaultProps$props.onClick,
|
|
60
|
-
onChange = _defaultProps$props.onChange,
|
|
61
|
-
className = _defaultProps$props.className,
|
|
62
|
-
autoHeight = _defaultProps$props.autoHeight,
|
|
63
|
-
iconClassPrefix = _defaultProps$props.iconClassPrefix,
|
|
64
|
-
iconFontClassName = _defaultProps$props.iconFontClassName,
|
|
65
|
-
rest = _objectWithoutProperties(_defaultProps$props, _excluded);
|
|
66
|
-
var _useState = useState({
|
|
67
|
-
index: 0
|
|
68
|
-
}),
|
|
69
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
70
|
-
currentItem = _useState2[0],
|
|
71
|
-
setCurrentItem = _useState2[1];
|
|
72
|
-
var titles = useRef([]);
|
|
73
|
-
useEffect(function () {
|
|
74
|
-
var currentIndex = 0;
|
|
75
|
-
titles.current = [];
|
|
76
|
-
// eslint-disable-next-line consistent-return
|
|
77
|
-
React__default.Children.forEach(children, function (child, idx) {
|
|
78
|
-
if (!React__default.isValidElement(child)) {
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
|
-
var title = new Title();
|
|
82
|
-
var childProps = child === null || child === void 0 ? void 0 : child.props;
|
|
83
|
-
if (childProps !== null && childProps !== void 0 && childProps.title || childProps !== null && childProps !== void 0 && childProps.paneKey) {
|
|
84
|
-
title.title = childProps === null || childProps === void 0 ? void 0 : childProps.title;
|
|
85
|
-
title.paneKey = (childProps === null || childProps === void 0 ? void 0 : childProps.paneKey) || idx;
|
|
86
|
-
title.disabled = childProps === null || childProps === void 0 ? void 0 : childProps.disabled;
|
|
87
|
-
title.index = idx;
|
|
88
|
-
if (title.paneKey === value) {
|
|
89
|
-
currentIndex = idx;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
titles.current.push(title);
|
|
93
|
-
});
|
|
94
|
-
setCurrentItem(titles.current[currentIndex]);
|
|
95
|
-
}, [children]);
|
|
96
|
-
var b = cn('tabs');
|
|
97
|
-
var classes = classNames(direction, b(''), className);
|
|
98
|
-
var classesTitle = classNames((_classNames = {}, _defineProperty(_classNames, type, type), _defineProperty(_classNames, "scrollable", titleScroll), _defineProperty(_classNames, size, size), _classNames), "".concat(b(''), "__titles"));
|
|
99
|
-
var titleStyle = {
|
|
100
|
-
marginLeft: pxCheck(titleGutter),
|
|
101
|
-
marginRight: pxCheck(titleGutter)
|
|
102
|
-
};
|
|
103
|
-
var tabsActiveStyle = {
|
|
104
|
-
color: type === 'smile' ? color : '',
|
|
105
|
-
background: type === 'line' ? color : ''
|
|
106
|
-
};
|
|
107
|
-
var index = titles.current.findIndex(function (t) {
|
|
108
|
-
return t.paneKey === value;
|
|
109
|
-
});
|
|
110
|
-
var contentStyle = {
|
|
111
|
-
transform: direction === 'horizontal' ? "translate3d(-".concat(index * 100, "%, 0, 0)") : "translate3d( 0,-".concat(index * 100, "%, 0)"),
|
|
112
|
-
transitionDuration: "".concat(animatedTime, "ms")
|
|
113
|
-
};
|
|
114
|
-
var tabChange = function tabChange(item, index) {
|
|
115
|
-
onClick && onClick(item);
|
|
116
|
-
if (item.disabled) {
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
setCurrentItem(item);
|
|
120
|
-
onChange && onChange(item);
|
|
121
|
-
};
|
|
122
|
-
return React__default.createElement("div", _objectSpread({
|
|
123
|
-
className: classes
|
|
124
|
-
}, rest), React__default.createElement("div", {
|
|
125
|
-
className: classesTitle,
|
|
126
|
-
style: _objectSpread(_objectSpread({}, tabStyle), {}, {
|
|
127
|
-
background: background
|
|
128
|
-
})
|
|
129
|
-
}, !!titleNode && typeof titleNode === 'function' ? titleNode() : titles.current.map(function (item, index) {
|
|
130
|
-
return React__default.createElement("div", {
|
|
131
|
-
style: titleStyle,
|
|
132
|
-
onClick: function onClick(e) {
|
|
133
|
-
return tabChange(item);
|
|
134
|
-
},
|
|
135
|
-
className: classNames({
|
|
136
|
-
active: !item.disabled && String(item.paneKey) === String(value),
|
|
137
|
-
disabled: item.disabled,
|
|
138
|
-
'nut-tabs__titles-item-left-align': leftAlign
|
|
139
|
-
}, "".concat(b(''), "__titles-item")),
|
|
140
|
-
key: item.paneKey
|
|
141
|
-
}, type === 'line' && React__default.createElement("div", {
|
|
142
|
-
className: "".concat(b(''), "__titles-item__line"),
|
|
143
|
-
style: tabsActiveStyle
|
|
144
|
-
}), type === 'smile' && React__default.createElement("div", {
|
|
145
|
-
className: "".concat(b(''), "__titles-item__smile"),
|
|
146
|
-
style: tabsActiveStyle
|
|
147
|
-
}, React__default.createElement(Icon, {
|
|
148
|
-
classPrefix: iconClassPrefix,
|
|
149
|
-
fontClassName: iconFontClassName,
|
|
150
|
-
color: color,
|
|
151
|
-
name: "joy-smile"
|
|
152
|
-
})), React__default.createElement("div", {
|
|
153
|
-
className: classNames({
|
|
154
|
-
ellipsis: ellipsis && !titleScroll && direction === 'horizontal'
|
|
155
|
-
}, "".concat(b(''), "__titles-item__text"))
|
|
156
|
-
}, item.title));
|
|
157
|
-
})), React__default.createElement("div", {
|
|
158
|
-
className: "".concat(b(''), "__content__wrap")
|
|
159
|
-
}, React__default.createElement("div", {
|
|
160
|
-
className: "".concat(b(''), "__content"),
|
|
161
|
-
style: contentStyle
|
|
162
|
-
}, React__default.Children.map(children, function (child, idx) {
|
|
163
|
-
var _child$props;
|
|
164
|
-
if (!React__default.isValidElement(child)) {
|
|
165
|
-
return null;
|
|
166
|
-
}
|
|
167
|
-
var childProps = _objectSpread(_objectSpread({}, child.props), {}, {
|
|
168
|
-
activeKey: value
|
|
169
|
-
});
|
|
170
|
-
if (String(value) !== String(((_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.paneKey) || idx) && autoHeight) {
|
|
171
|
-
childProps = _objectSpread(_objectSpread({}, childProps), {}, {
|
|
172
|
-
autoHeightClassName: 'inactive'
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
return React__default.cloneElement(child, childProps);
|
|
176
|
-
}))));
|
|
177
|
-
};
|
|
178
|
-
Tabs.defaultProps = defaultProps;
|
|
179
|
-
Tabs.displayName = 'NutTabs';
|
|
180
|
-
Tabs.TabPane = TabPane;
|
|
181
|
-
export { Tabs as T };
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
获取元素的大小及其相对于视口的位置,等价于 Element.getBoundingClientRect。
|
|
3
|
-
width 宽度 number
|
|
4
|
-
height 高度 number
|
|
5
|
-
top 顶部与视图窗口左上角的距离 number
|
|
6
|
-
left 左侧与视图窗口左上角的距离 number
|
|
7
|
-
right 右侧与视图窗口左上角的距离 number
|
|
8
|
-
bottom 底部与视图窗口左上角的距离 number
|
|
9
|
-
*/
|
|
10
|
-
function isWindow(val) {
|
|
11
|
-
return val === window;
|
|
12
|
-
}
|
|
13
|
-
var getRect = function getRect(elementRef) {
|
|
14
|
-
var element = elementRef;
|
|
15
|
-
if (isWindow(element)) {
|
|
16
|
-
var width = element.innerWidth;
|
|
17
|
-
var height = element.innerHeight;
|
|
18
|
-
return {
|
|
19
|
-
top: 0,
|
|
20
|
-
left: 0,
|
|
21
|
-
right: width,
|
|
22
|
-
bottom: height,
|
|
23
|
-
width: width,
|
|
24
|
-
height: height
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
if (element && element.getBoundingClientRect) {
|
|
28
|
-
return element.getBoundingClientRect();
|
|
29
|
-
}
|
|
30
|
-
return {
|
|
31
|
-
top: 0,
|
|
32
|
-
left: 0,
|
|
33
|
-
right: 0,
|
|
34
|
-
bottom: 0,
|
|
35
|
-
width: 0,
|
|
36
|
-
height: 0
|
|
37
|
-
};
|
|
38
|
-
};
|
|
39
|
-
export { getRect as g };
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
-
import { useState } from 'react';
|
|
3
|
-
var MIN_DISTANCE = 10;
|
|
4
|
-
function getDirection(x, y) {
|
|
5
|
-
if (x > y && x > MIN_DISTANCE) {
|
|
6
|
-
return 'horizontal';
|
|
7
|
-
}
|
|
8
|
-
if (y > x && y > MIN_DISTANCE) {
|
|
9
|
-
return 'vertical';
|
|
10
|
-
}
|
|
11
|
-
return '';
|
|
12
|
-
}
|
|
13
|
-
function useTouch() {
|
|
14
|
-
var _useState = useState(0),
|
|
15
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
16
|
-
startX = _useState2[0],
|
|
17
|
-
SetStartX = _useState2[1];
|
|
18
|
-
var _useState3 = useState(0),
|
|
19
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
20
|
-
startY = _useState4[0],
|
|
21
|
-
SetStartY = _useState4[1];
|
|
22
|
-
var _useState5 = useState(0),
|
|
23
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
24
|
-
moveX = _useState6[0],
|
|
25
|
-
SetMoveX = _useState6[1];
|
|
26
|
-
var _useState7 = useState(0),
|
|
27
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
28
|
-
moveY = _useState8[0],
|
|
29
|
-
SetMoveY = _useState8[1];
|
|
30
|
-
var _useState9 = useState(0),
|
|
31
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
32
|
-
deltaX = _useState10[0],
|
|
33
|
-
SetDeltaX = _useState10[1];
|
|
34
|
-
var _useState11 = useState(0),
|
|
35
|
-
_useState12 = _slicedToArray(_useState11, 2),
|
|
36
|
-
deltaY = _useState12[0],
|
|
37
|
-
SetDeltaY = _useState12[1];
|
|
38
|
-
var _useState13 = useState(0),
|
|
39
|
-
_useState14 = _slicedToArray(_useState13, 2),
|
|
40
|
-
offsetX = _useState14[0],
|
|
41
|
-
SetOffsetX = _useState14[1];
|
|
42
|
-
var _useState15 = useState(0),
|
|
43
|
-
_useState16 = _slicedToArray(_useState15, 2),
|
|
44
|
-
offsetY = _useState16[0],
|
|
45
|
-
SetOffsetY = _useState16[1];
|
|
46
|
-
var _useState17 = useState(''),
|
|
47
|
-
_useState18 = _slicedToArray(_useState17, 2),
|
|
48
|
-
direction = _useState18[0],
|
|
49
|
-
SetDirection = _useState18[1];
|
|
50
|
-
var isVertical = function isVertical() {
|
|
51
|
-
return direction === 'vertical';
|
|
52
|
-
};
|
|
53
|
-
var isHorizontal = function isHorizontal() {
|
|
54
|
-
return direction === 'horizontal';
|
|
55
|
-
};
|
|
56
|
-
var reset = function reset() {
|
|
57
|
-
SetDeltaX(0);
|
|
58
|
-
SetDeltaY(0);
|
|
59
|
-
SetOffsetX(0);
|
|
60
|
-
SetOffsetY(0);
|
|
61
|
-
SetDirection('');
|
|
62
|
-
};
|
|
63
|
-
var start = function start(event) {
|
|
64
|
-
reset();
|
|
65
|
-
SetStartX(event.touches[0].clientX);
|
|
66
|
-
SetStartY(event.touches[0].clientY);
|
|
67
|
-
};
|
|
68
|
-
var move = function move(event) {
|
|
69
|
-
var touch = event.touches[0];
|
|
70
|
-
var dX = touch.clientX - startX;
|
|
71
|
-
var dY = touch.clientY - startY;
|
|
72
|
-
SetDeltaX(dX);
|
|
73
|
-
SetDeltaY(dY);
|
|
74
|
-
SetMoveX(touch.clientX);
|
|
75
|
-
SetMoveY(touch.clientY);
|
|
76
|
-
SetOffsetX(Math.abs(dX));
|
|
77
|
-
SetOffsetY(Math.abs(dY));
|
|
78
|
-
if (!direction) {
|
|
79
|
-
SetDirection(getDirection(offsetX, offsetY));
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
return {
|
|
83
|
-
move: move,
|
|
84
|
-
start: start,
|
|
85
|
-
reset: reset,
|
|
86
|
-
startX: startX,
|
|
87
|
-
startY: startY,
|
|
88
|
-
moveX: moveX,
|
|
89
|
-
moveY: moveY,
|
|
90
|
-
deltaX: deltaX,
|
|
91
|
-
deltaY: deltaY,
|
|
92
|
-
offsetX: offsetX,
|
|
93
|
-
offsetY: offsetY,
|
|
94
|
-
direction: direction,
|
|
95
|
-
isVertical: isVertical,
|
|
96
|
-
isHorizontal: isHorizontal
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
export { useTouch as u };
|