@nutui/nutui-react-taro 1.3.2-beta.0 → 1.3.2-beta.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.
@@ -1,313 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- var _excluded = ["children", "zIndex", "duration", "overlayClass", "closeOnClickOverlay", "visible", "lockScroll", "overlayStyle"];
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 { createPortal } from 'react-dom';
12
- import { CSSTransition } from 'react-transition-group';
13
- import classNames from 'classnames';
14
- import { c as cn } from './bem-893ad28d.js';
15
- import { I as Icon } from './icon-8dc4de10.js';
16
- var defaultOverlayProps = {
17
- zIndex: 2000,
18
- duration: 0.3,
19
- overlayClass: '',
20
- closeOnClickOverlay: true,
21
- visible: false,
22
- lockScroll: true,
23
- overlayStyle: {}
24
- };
25
-
26
- var Overlay = function Overlay(props) {
27
- var _defaultOverlayProps$ = _objectSpread(_objectSpread({}, defaultOverlayProps), props),
28
- children = _defaultOverlayProps$.children,
29
- zIndex = _defaultOverlayProps$.zIndex,
30
- duration = _defaultOverlayProps$.duration,
31
- overlayClass = _defaultOverlayProps$.overlayClass,
32
- closeOnClickOverlay = _defaultOverlayProps$.closeOnClickOverlay,
33
- visible = _defaultOverlayProps$.visible,
34
- lockScroll = _defaultOverlayProps$.lockScroll,
35
- overlayStyle = _defaultOverlayProps$.overlayStyle,
36
- rest = _objectWithoutProperties(_defaultOverlayProps$, _excluded);
37
-
38
- var _useState = useState(visible),
39
- _useState2 = _slicedToArray(_useState, 2),
40
- show = _useState2[0],
41
- setShow = _useState2[1];
42
-
43
- var renderRef = useRef(true);
44
- var intervalRef = useRef(0);
45
- useEffect(function () {
46
- visible && setShow(visible);
47
- lock();
48
- }, [visible]);
49
- useEffect(function () {
50
- return function () {
51
- clearTimeout(intervalRef.current);
52
- document.body.classList.remove('nut-overflow-hidden');
53
- };
54
- }, []);
55
- var b = cn('overlay');
56
- var classes = classNames({
57
- 'overlay-fade-leave-active': !renderRef.current && !visible,
58
- 'overlay-fade-enter-active': visible,
59
- 'first-render': renderRef.current && !visible,
60
- 'hidden-render': !visible
61
- }, overlayClass, b(''));
62
-
63
- var styles = _objectSpread({
64
- zIndex: zIndex,
65
- animationDuration: "".concat(props.duration, "s")
66
- }, overlayStyle);
67
-
68
- var lock = function lock() {
69
- if (lockScroll && visible) {
70
- document.body.classList.add('nut-overflow-hidden');
71
- } else {
72
- document.body.classList.remove('nut-overflow-hidden');
73
- }
74
- };
75
-
76
- var handleClick = function handleClick(e) {
77
- if (closeOnClickOverlay) {
78
- props.onClick && props.onClick(e);
79
- renderRef.current = false;
80
- var id = setTimeout(function () {
81
- setShow(!visible);
82
- }, duration * 1000 * 0.8);
83
- intervalRef.current = id;
84
- }
85
- };
86
-
87
- return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", _objectSpread(_objectSpread({
88
- className: classes,
89
- style: styles
90
- }, rest), {}, {
91
- onClick: handleClick
92
- }), children));
93
- };
94
-
95
- Overlay.defaultProps = defaultOverlayProps;
96
- Overlay.displayName = 'NutOverlay';
97
-
98
- var defaultProps = _objectSpread({
99
- position: 'center',
100
- transition: '',
101
- style: {},
102
- popClass: '',
103
- closeable: false,
104
- closeIconPosition: 'top-right',
105
- closeIcon: 'close',
106
- destroyOnClose: true,
107
- teleport: null,
108
- overlay: true,
109
- round: false,
110
- onOpen: function onOpen() {},
111
- onClose: function onClose() {},
112
- onClick: function onClick(e) {},
113
- onOpened: function onOpened(e) {},
114
- onClosed: function onClosed(e) {},
115
- onClickOverlay: function onClickOverlay(e) {},
116
- onClickCloseIcon: function onClickCloseIcon(e) {}
117
- }, defaultOverlayProps);
118
-
119
- var _zIndex = 2000;
120
-
121
- var Popup = function Popup(props) {
122
- var _classNames;
123
-
124
- var children = props.children,
125
- visible = props.visible,
126
- overlay = props.overlay,
127
- closeOnClickOverlay = props.closeOnClickOverlay,
128
- overlayStyle = props.overlayStyle,
129
- overlayClass = props.overlayClass,
130
- zIndex = props.zIndex,
131
- lockScroll = props.lockScroll,
132
- duration = props.duration,
133
- closeable = props.closeable,
134
- closeIconPosition = props.closeIconPosition,
135
- closeIcon = props.closeIcon,
136
- style = props.style,
137
- transition = props.transition,
138
- round = props.round,
139
- position = props.position,
140
- popClass = props.popClass,
141
- className = props.className,
142
- destroyOnClose = props.destroyOnClose,
143
- teleport = props.teleport,
144
- onOpen = props.onOpen,
145
- onClose = props.onClose,
146
- onClickOverlay = props.onClickOverlay,
147
- onClickCloseIcon = props.onClickCloseIcon,
148
- onOpened = props.onOpened,
149
- onClosed = props.onClosed,
150
- onClick = props.onClick;
151
-
152
- var _useState3 = useState(zIndex || _zIndex),
153
- _useState4 = _slicedToArray(_useState3, 2),
154
- index = _useState4[0],
155
- setIndex = _useState4[1];
156
-
157
- var _useState5 = useState(visible),
158
- _useState6 = _slicedToArray(_useState5, 2),
159
- innerVisible = _useState6[0],
160
- setInnerVisible = _useState6[1];
161
-
162
- var _useState7 = useState(true),
163
- _useState8 = _slicedToArray(_useState7, 2),
164
- showChildren = _useState8[0],
165
- setShowChildren = _useState8[1];
166
-
167
- var _useState9 = useState(''),
168
- _useState10 = _slicedToArray(_useState9, 2),
169
- transitionName = _useState10[0],
170
- setTransitionName = _useState10[1];
171
-
172
- var b = cn('popup');
173
- var baseStyle = {
174
- zIndex: index,
175
- animationDuration: "".concat(duration, "s")
176
- };
177
-
178
- var overlayStyles = _objectSpread(_objectSpread({}, overlayStyle), baseStyle);
179
-
180
- var popStyles = _objectSpread(_objectSpread({}, style), baseStyle);
181
-
182
- var classes = classNames((_classNames = {
183
- round: round
184
- }, _defineProperty(_classNames, "popup-".concat(position), true), _defineProperty(_classNames, "".concat(popClass), true), _defineProperty(_classNames, "".concat(className), true), _classNames), b(''));
185
- var closeClasses = classNames(_defineProperty({
186
- 'nutui-popup__close-icon': true
187
- }, "nutui-popup__close-icon--".concat(closeIconPosition), true));
188
-
189
- var open = function open() {
190
- if (!innerVisible) {
191
- setInnerVisible(true);
192
- setIndex(++_zIndex);
193
- }
194
-
195
- if (destroyOnClose) {
196
- setShowChildren(true);
197
- }
198
-
199
- onOpen && onOpen();
200
- };
201
-
202
- var close = function close() {
203
- if (innerVisible) {
204
- setInnerVisible(false);
205
-
206
- if (destroyOnClose) {
207
- setTimeout(function () {
208
- setShowChildren(false);
209
- onClose && onClose();
210
- }, Number(duration) * 1000);
211
- }
212
- }
213
- };
214
-
215
- var onHandleClickOverlay = function onHandleClickOverlay(e) {
216
- if (closeOnClickOverlay) {
217
- onClickOverlay && onClickOverlay(e);
218
- close();
219
- }
220
- };
221
-
222
- var onHandleClick = function onHandleClick(e) {
223
- onClick && onClick(e);
224
- };
225
-
226
- var onHandleClickCloseIcon = function onHandleClickCloseIcon(e) {
227
- onClickCloseIcon && onClickCloseIcon(e);
228
- close();
229
- };
230
-
231
- var onHandleOpened = function onHandleOpened(e) {
232
- onOpened && onOpened(e);
233
- };
234
-
235
- var onHandleClosed = function onHandleClosed(e) {
236
- onClosed && onClosed(e);
237
- };
238
-
239
- var resolveContainer = function resolveContainer(getContainer) {
240
- var container = typeof getContainer === 'function' ? getContainer() : getContainer;
241
- return container || document.body;
242
- };
243
-
244
- var renderToContainer = function renderToContainer(getContainer, node) {
245
- if (getContainer) {
246
- var container = resolveContainer(getContainer);
247
- return createPortal(node, container);
248
- }
249
-
250
- return node;
251
- };
252
-
253
- var renderPop = function renderPop() {
254
- return React__default.createElement(CSSTransition, {
255
- classNames: transitionName,
256
- unmountOnExit: true,
257
- timeout: 500,
258
- "in": innerVisible,
259
- onEntered: onHandleOpened,
260
- onExited: onHandleClosed
261
- }, React__default.createElement("div", {
262
- style: popStyles,
263
- className: classes,
264
- onClick: onHandleClick
265
- }, showChildren ? children : '', closeable ? React__default.createElement("div", {
266
- className: closeClasses,
267
- onClick: onHandleClickCloseIcon
268
- }, React__default.createElement(Icon, {
269
- name: closeIcon,
270
- size: "12px"
271
- })) : ''));
272
- };
273
-
274
- var renderNode = function renderNode() {
275
- return React__default.createElement(React__default.Fragment, null, overlay ? React__default.createElement(React__default.Fragment, null, React__default.createElement(Overlay, {
276
- style: overlayStyles,
277
- overlayClass: overlayClass,
278
- visible: innerVisible,
279
- closeOnClickOverlay: closeOnClickOverlay,
280
- zIndex: zIndex,
281
- lockScroll: lockScroll,
282
- duration: duration,
283
- onClick: onHandleClickOverlay
284
- }), renderPop()) : React__default.createElement(React__default.Fragment, null, renderPop()));
285
- };
286
-
287
- useEffect(function () {
288
- visible && open();
289
- !visible && close();
290
- }, [visible]);
291
- useEffect(function () {
292
- setTransitionName(transition || "popup-slide-".concat(position));
293
- }, [position]);
294
- return React__default.createElement(React__default.Fragment, null, renderToContainer(teleport, renderNode()));
295
- };
296
-
297
- Popup.defaultProps = defaultProps;
298
- Popup.displayName = 'NutPopup';
299
-
300
- function useRefs() {
301
- var refs = React__default.useRef([]);
302
- var setRefs = React__default.useCallback(function (index) {
303
- return function (el) {
304
- if (el) refs.current[index] = el;
305
- };
306
- }, []);
307
- var reset = React__default.useCallback(function () {
308
- refs.current = [];
309
- }, []);
310
- return [refs.current, setRefs, reset];
311
- }
312
-
313
- export { Popup as P, useRefs as u };