@arco-design/mobile-react 2.21.2 → 2.22.0
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 +30 -0
- package/README.en-US.md +2 -2
- package/README.md +2 -2
- package/cjs/_helpers/index.d.ts +1 -0
- package/cjs/_helpers/index.js +9 -0
- package/cjs/_helpers/react-dom.d.ts +13 -0
- package/cjs/_helpers/react-dom.js +65 -0
- package/cjs/_helpers/render.d.ts +10 -0
- package/cjs/_helpers/render.js +40 -0
- package/cjs/action-sheet/index.d.ts +1 -1
- package/cjs/ellipsis/components/js-ellipsis.js +7 -1
- package/cjs/image-picker/index.js +0 -1
- package/cjs/image-picker/style/css/index.d.ts +1 -0
- package/cjs/image-picker/style/css/index.js +2 -0
- package/cjs/image-picker/style/index.d.ts +1 -0
- package/cjs/image-picker/style/index.js +2 -0
- package/cjs/image-preview/index.d.ts +2 -10
- package/cjs/image-preview/methods.js +4 -11
- package/cjs/masking/index.d.ts +10 -0
- package/cjs/masking/methods.js +4 -11
- package/cjs/notify/methods.js +6 -9
- package/cjs/popover/hooks/useEvent.js +6 -6
- package/cjs/swipe-action/index.js +21 -3
- package/cjs/tabs/index.d.ts +3 -463
- package/cjs/tabs/index.js +15 -2
- package/cjs/tabs/tab-cell-underline.d.ts +4 -0
- package/cjs/tabs/tab-cell-underline.js +234 -0
- package/cjs/tabs/tab-cell.d.ts +1 -85
- package/cjs/tabs/tab-cell.js +57 -201
- package/cjs/tabs/tab-pane.d.ts +2 -38
- package/cjs/tabs/type.d.ts +601 -0
- package/cjs/tabs/type.js +3 -0
- package/cjs/toast/methods.js +9 -12
- package/dist/index.js +439 -271
- package/dist/index.min.js +3 -3
- package/esm/_helpers/index.d.ts +1 -0
- package/esm/_helpers/index.js +1 -0
- package/esm/_helpers/react-dom.d.ts +13 -0
- package/esm/_helpers/react-dom.js +57 -0
- package/esm/_helpers/render.d.ts +10 -0
- package/esm/_helpers/render.js +29 -0
- package/esm/action-sheet/index.d.ts +1 -1
- package/esm/ellipsis/components/js-ellipsis.js +7 -1
- package/esm/image-picker/index.js +0 -1
- package/esm/image-picker/style/css/index.d.ts +1 -0
- package/esm/image-picker/style/css/index.js +1 -0
- package/esm/image-picker/style/index.d.ts +1 -0
- package/esm/image-picker/style/index.js +1 -0
- package/esm/image-preview/index.d.ts +2 -10
- package/esm/image-preview/methods.js +3 -9
- package/esm/masking/index.d.ts +10 -0
- package/esm/masking/methods.js +3 -9
- package/esm/notify/methods.js +6 -7
- package/esm/popover/hooks/useEvent.js +6 -6
- package/esm/swipe-action/index.js +21 -3
- package/esm/tabs/index.d.ts +3 -463
- package/esm/tabs/index.js +7 -3
- package/esm/tabs/tab-cell-underline.d.ts +4 -0
- package/esm/tabs/tab-cell-underline.js +218 -0
- package/esm/tabs/tab-cell.d.ts +1 -85
- package/esm/tabs/tab-cell.js +59 -204
- package/esm/tabs/tab-pane.d.ts +2 -38
- package/esm/tabs/type.d.ts +601 -0
- package/esm/tabs/type.js +1 -0
- package/esm/toast/methods.js +8 -9
- package/package.json +3 -3
- package/umd/_helpers/index.d.ts +1 -0
- package/umd/_helpers/index.js +10 -4
- package/umd/_helpers/react-dom.d.ts +13 -0
- package/umd/_helpers/react-dom.js +78 -0
- package/umd/_helpers/render.d.ts +10 -0
- package/umd/_helpers/render.js +51 -0
- package/umd/action-sheet/index.d.ts +1 -1
- package/umd/ellipsis/components/js-ellipsis.js +7 -1
- package/umd/image-picker/index.js +0 -1
- package/umd/image-picker/style/css/index.d.ts +1 -0
- package/umd/image-picker/style/css/index.js +4 -4
- package/umd/image-picker/style/index.d.ts +1 -0
- package/umd/image-picker/style/index.js +4 -4
- package/umd/image-preview/index.d.ts +2 -10
- package/umd/image-preview/methods.js +6 -13
- package/umd/masking/index.d.ts +10 -0
- package/umd/masking/methods.js +6 -13
- package/umd/notify/methods.js +9 -12
- package/umd/popover/hooks/useEvent.js +6 -6
- package/umd/swipe-action/index.js +21 -3
- package/umd/tabs/index.d.ts +3 -463
- package/umd/tabs/index.js +16 -6
- package/umd/tabs/tab-cell-underline.d.ts +4 -0
- package/umd/tabs/tab-cell-underline.js +242 -0
- package/umd/tabs/tab-cell.d.ts +1 -85
- package/umd/tabs/tab-cell.js +60 -205
- package/umd/tabs/tab-pane.d.ts +2 -38
- package/umd/tabs/type.d.ts +601 -0
- package/umd/tabs/type.js +17 -0
- package/umd/toast/methods.js +11 -14
package/CHANGELOG.md
CHANGED
@@ -3,6 +3,36 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5
5
|
|
6
|
+
# [2.22.0](https://github.com/arco-design/arco-design-mobile/compare/@arco-design/mobile-react@2.21.3...@arco-design/mobile-react@2.22.0) (2022-10-28)
|
7
|
+
|
8
|
+
|
9
|
+
### Bug Fixes
|
10
|
+
|
11
|
+
* `SwipeAction` prevent touchmove by gesture ([#59](https://github.com/arco-design/arco-design-mobile/issues/59)) ([c9ef474](https://github.com/arco-design/arco-design-mobile/commit/c9ef474312eb9f9af736431f16147cfb56dee623))
|
12
|
+
* `Tabs` supports tabBarStopPropagation ([#62](https://github.com/arco-design/arco-design-mobile/issues/62)) ([ba24d17](https://github.com/arco-design/arco-design-mobile/commit/ba24d178320e12b0aa95e5d75feb34e5e5163af4))
|
13
|
+
|
14
|
+
|
15
|
+
### Features
|
16
|
+
|
17
|
+
* add support for react18 ([#57](https://github.com/arco-design/arco-design-mobile/issues/57)) ([7cbb4fc](https://github.com/arco-design/arco-design-mobile/commit/7cbb4fcd5bd8c2809141bf0546f42ecf3367fd73))
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
## [2.21.3](https://github.com/arco-design/arco-design-mobile/compare/@arco-design/mobile-react@2.21.2...@arco-design/mobile-react@2.21.3) (2022-09-30)
|
24
|
+
|
25
|
+
|
26
|
+
### Bug Fixes
|
27
|
+
|
28
|
+
* `Ellipsis` special case for truncateHTML ([fa9db03](https://github.com/arco-design/arco-design-mobile/commit/fa9db03baecbb378e38d2217eddb85dec59d27d4))
|
29
|
+
* `ImagePicker` import grid style ([e257ce0](https://github.com/arco-design/arco-design-mobile/commit/e257ce00dc3ecd4c61934149751fb817d3242159))
|
30
|
+
* `Tabs` tab bar underline optimize ([20c9621](https://github.com/arco-design/arco-design-mobile/commit/20c962113e8a0dc43995813dda328239a1807a50))
|
31
|
+
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
|
6
36
|
## [2.21.2](https://github.com/arco-design/arco-design-mobile/compare/@arco-design/mobile-react@2.21.1...@arco-design/mobile-react@2.21.2) (2022-09-07)
|
7
37
|
|
8
38
|
|
package/README.en-US.md
CHANGED
@@ -59,8 +59,8 @@ React & ReactDOM: **<a href="https://reactjs.org/docs/cdn-links.html" target="_b
|
|
59
59
|
React Transition Group: **<a href="https://reactcommunity.org/react-transition-group/" target="_blank">Click here</a>**
|
60
60
|
|
61
61
|
```
|
62
|
-
<link ref="stylesheet" href="https://unpkg.com/@arco-design/mobile-react@2.21.
|
63
|
-
<script src="https://unpkg.com/@arco-design/mobile-react@2.21.
|
62
|
+
<link ref="stylesheet" href="https://unpkg.com/@arco-design/mobile-react@2.21.3/dist/style.min.css">
|
63
|
+
<script src="https://unpkg.com/@arco-design/mobile-react@2.21.3/dist/index.min.js"></script>
|
64
64
|
```
|
65
65
|
|
66
66
|
## Full import
|
package/README.md
CHANGED
@@ -59,8 +59,8 @@ React & ReactDOM: **<a href="https://reactjs.org/docs/cdn-links.html" target="
|
|
59
59
|
React Transition Group: **<a href="https://reactcommunity.org/react-transition-group/" target="_blank">戳这里获取</a>**
|
60
60
|
|
61
61
|
```
|
62
|
-
<link ref="stylesheet" href="https://unpkg.com/@arco-design/mobile-react@2.21.
|
63
|
-
<script src="https://unpkg.com/@arco-design/mobile-react@2.21.
|
62
|
+
<link ref="stylesheet" href="https://unpkg.com/@arco-design/mobile-react@2.21.3/dist/style.min.css">
|
63
|
+
<script src="https://unpkg.com/@arco-design/mobile-react@2.21.3/dist/index.min.js"></script>
|
64
64
|
```
|
65
65
|
|
66
66
|
## 引入全部
|
package/cjs/_helpers/index.d.ts
CHANGED
package/cjs/_helpers/index.js
CHANGED
@@ -30,6 +30,15 @@ Object.keys(_type).forEach(function (key) {
|
|
30
30
|
exports[key] = _type[key];
|
31
31
|
});
|
32
32
|
|
33
|
+
var _reactDom = require("./react-dom");
|
34
|
+
|
35
|
+
Object.keys(_reactDom).forEach(function (key) {
|
36
|
+
if (key === "default" || key === "__esModule") return;
|
37
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
38
|
+
if (key in exports && exports[key] === _reactDom[key]) return;
|
39
|
+
exports[key] = _reactDom[key];
|
40
|
+
});
|
41
|
+
|
33
42
|
/**
|
34
43
|
* @type utils
|
35
44
|
* @name componentUtils
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { ReactElement } from 'react';
|
2
|
+
export interface RootType {
|
3
|
+
render: (container: ReactElement) => void;
|
4
|
+
_unmount: () => void;
|
5
|
+
}
|
6
|
+
export interface RootTypeReact extends RootType {
|
7
|
+
unmount?: () => void;
|
8
|
+
}
|
9
|
+
export declare type CreateRootFnType = (container: Element | DocumentFragment) => RootTypeReact;
|
10
|
+
export declare const render: (app: ReactElement, container: Element | DocumentFragment) => {
|
11
|
+
render: (container: ReactElement) => void;
|
12
|
+
_unmount: () => void;
|
13
|
+
};
|
@@ -0,0 +1,65 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
exports.__esModule = true;
|
6
|
+
exports.render = void 0;
|
7
|
+
|
8
|
+
var _reactDom = _interopRequireDefault(require("react-dom"));
|
9
|
+
|
10
|
+
var _CopyReactDOM$version;
|
11
|
+
|
12
|
+
function isObject(obj) {
|
13
|
+
return Object.prototype.toString.call(obj) === '[object Object]';
|
14
|
+
}
|
15
|
+
|
16
|
+
var __SECRET_INTERNALS__ = '__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED';
|
17
|
+
var CopyReactDOM = _reactDom.default;
|
18
|
+
var copyRender;
|
19
|
+
var isReact18 = Number((_CopyReactDOM$version = CopyReactDOM.version) == null ? void 0 : _CopyReactDOM$version.split('.')[0]) > 17;
|
20
|
+
|
21
|
+
var updateUsingClientEntryPoint = function updateUsingClientEntryPoint(skipWarning) {
|
22
|
+
// https://github.com/facebook/react/blob/17806594cc28284fe195f918e8d77de3516848ec/packages/react-dom/npm/client.js#L10
|
23
|
+
// Avoid console warning
|
24
|
+
if (isObject(CopyReactDOM[__SECRET_INTERNALS__])) {
|
25
|
+
CopyReactDOM[__SECRET_INTERNALS__].usingClientEntryPoint = skipWarning;
|
26
|
+
}
|
27
|
+
};
|
28
|
+
|
29
|
+
var createRoot;
|
30
|
+
|
31
|
+
try {
|
32
|
+
createRoot = CopyReactDOM.createRoot;
|
33
|
+
} catch (_) {}
|
34
|
+
|
35
|
+
if (isReact18 && createRoot) {
|
36
|
+
copyRender = function copyRender(app, container) {
|
37
|
+
updateUsingClientEntryPoint(true);
|
38
|
+
var root = createRoot(container);
|
39
|
+
updateUsingClientEntryPoint(false);
|
40
|
+
root.render(app);
|
41
|
+
|
42
|
+
root._unmount = function () {
|
43
|
+
setTimeout(function () {
|
44
|
+
root == null ? void 0 : root.unmount == null ? void 0 : root.unmount();
|
45
|
+
});
|
46
|
+
};
|
47
|
+
|
48
|
+
return root;
|
49
|
+
};
|
50
|
+
} else {
|
51
|
+
copyRender = function copyRender(app, container) {
|
52
|
+
CopyReactDOM.render(app, container);
|
53
|
+
return {
|
54
|
+
render: function render(comment) {
|
55
|
+
CopyReactDOM.render(comment, container);
|
56
|
+
},
|
57
|
+
_unmount: function _unmount() {
|
58
|
+
CopyReactDOM.unmountComponentAtNode(container);
|
59
|
+
}
|
60
|
+
};
|
61
|
+
};
|
62
|
+
}
|
63
|
+
|
64
|
+
var render = copyRender;
|
65
|
+
exports.render = render;
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { FunctionComponent } from 'react';
|
2
|
+
import { RootType } from './react-dom';
|
3
|
+
export declare class ReactDOMRender {
|
4
|
+
root: RootType | undefined;
|
5
|
+
app: FunctionComponent;
|
6
|
+
container: Element | DocumentFragment;
|
7
|
+
constructor(app: FunctionComponent, container: Element | DocumentFragment);
|
8
|
+
render: (props: any) => void;
|
9
|
+
unmount: () => void;
|
10
|
+
}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
exports.__esModule = true;
|
6
|
+
exports.ReactDOMRender = void 0;
|
7
|
+
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
9
|
+
|
10
|
+
var _reactDom = require("./react-dom");
|
11
|
+
|
12
|
+
var ReactDOMRender = function ReactDOMRender(app, container) {
|
13
|
+
var _this = this;
|
14
|
+
|
15
|
+
this.root = void 0;
|
16
|
+
this.app = void 0;
|
17
|
+
this.container = void 0;
|
18
|
+
|
19
|
+
this.render = function (props) {
|
20
|
+
var CustomApp = _this.app;
|
21
|
+
|
22
|
+
if (_this.root) {
|
23
|
+
_this.root.render( /*#__PURE__*/_react.default.createElement(CustomApp, props));
|
24
|
+
} else {
|
25
|
+
_this.root = (0, _reactDom.render)( /*#__PURE__*/_react.default.createElement(CustomApp, props), _this.container);
|
26
|
+
}
|
27
|
+
};
|
28
|
+
|
29
|
+
this.unmount = function () {
|
30
|
+
var _this$root;
|
31
|
+
|
32
|
+
(_this$root = _this.root) == null ? void 0 : _this$root._unmount();
|
33
|
+
_this.root = undefined;
|
34
|
+
};
|
35
|
+
|
36
|
+
this.app = app;
|
37
|
+
this.container = container;
|
38
|
+
};
|
39
|
+
|
40
|
+
exports.ReactDOMRender = ReactDOMRender;
|
@@ -26,7 +26,7 @@ export interface ActionSheetItemOptions {
|
|
26
26
|
* 点击选项事件,返回值为 true 时可以阻止动作面板关闭
|
27
27
|
* @en Click option event, actionSheet will be prevent from closing when returning true
|
28
28
|
*/
|
29
|
-
onClick?: (e
|
29
|
+
onClick?: (e?: React.MouseEvent<HTMLElement, MouseEvent>) => (void | boolean) | Promise<void | boolean>;
|
30
30
|
}
|
31
31
|
export interface ActionSheetProps extends Omit<PopupProps, 'children' | 'getScrollContainer' | 'orientationDirection' | 'direction'> {
|
32
32
|
/**
|
@@ -127,7 +127,13 @@ var JsEllipsis = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
127
127
|
_height = _container$getBoundin3.height;
|
128
128
|
|
129
129
|
if (_height > max) {
|
130
|
-
|
130
|
+
if (nodes[i].childNodes && nodes[i].childNodes.length) {
|
131
|
+
break;
|
132
|
+
} else {
|
133
|
+
textContainer.removeChild(nodes[i]);
|
134
|
+
handleOnReflow(true, textContainer.innerHTML);
|
135
|
+
return;
|
136
|
+
}
|
131
137
|
}
|
132
138
|
|
133
139
|
i++;
|
@@ -194,7 +194,6 @@ var ImagePicker = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
194
194
|
var timeOutEvent;
|
195
195
|
|
196
196
|
var handleTouchStart = function handleTouchStart(e, image, index) {
|
197
|
-
e.preventDefault();
|
198
197
|
timeOutEvent = setTimeout(function () {
|
199
198
|
timeOutEvent = 0;
|
200
199
|
onLongPress == null ? void 0 : onLongPress(e, image, index);
|
@@ -254,11 +254,7 @@ export declare function methodsGenerator<P extends ImagePreviewProps>(Comp: Reac
|
|
254
254
|
*/
|
255
255
|
open: (config: Pick<P, Exclude<keyof P, "close">>) => {
|
256
256
|
close: () => void;
|
257
|
-
update: (newConfig: Pick<P, Exclude<keyof P, "close">>) => void;
|
258
|
-
* 是否可循环滑动
|
259
|
-
* @en Whether it can be swiped circularly
|
260
|
-
* @default false
|
261
|
-
*/
|
257
|
+
update: (newConfig: Pick<P, Exclude<keyof P, "close">>) => void;
|
262
258
|
};
|
263
259
|
};
|
264
260
|
declare const _default: React.ForwardRefExoticComponent<ImagePreviewProps & React.RefAttributes<ImagePreviewRef>> & {
|
@@ -270,11 +266,7 @@ declare const _default: React.ForwardRefExoticComponent<ImagePreviewProps & Reac
|
|
270
266
|
*/
|
271
267
|
open: (config: Pick<ImagePreviewProps & React.RefAttributes<ImagePreviewRef>, "style" | "ref" | "key" | "getContainer" | "className" | "onClose" | "onTouchMove" | "fit" | "loadingArea" | "errorArea" | "showLoading" | "showError" | "retryTime" | "staticLabel" | "onChange" | "onTouchEnd" | "onTouchStart" | "animateDurationSlide" | "loop" | "swipeable" | "renderIndicator" | "indicatorPos" | "showIndicator" | "hideSingleIndicator" | "spaceBetween" | "percentToChange" | "distanceToChange" | "speedToChange" | "lazyloadCount" | "onAfterChange" | "images" | "openIndex" | "displayDuration" | "replaceFallbackWhenLoaded" | "noselect" | "scrollBezier" | "swipeToClose" | "getMinScale" | "getMaxScale" | "getDoubleClickScale" | "getThumbBounds" | "onImageClick" | "onImageDoubleClick" | "onImageLongTap">) => {
|
272
268
|
close: () => void;
|
273
|
-
update: (newConfig: Pick<ImagePreviewProps & React.RefAttributes<ImagePreviewRef>, "style" | "ref" | "key" | "getContainer" | "className" | "onClose" | "onTouchMove" | "fit" | "loadingArea" | "errorArea" | "showLoading" | "showError" | "retryTime" | "staticLabel" | "onChange" | "onTouchEnd" | "onTouchStart" | "animateDurationSlide" | "loop" | "swipeable" | "renderIndicator" | "indicatorPos" | "showIndicator" | "hideSingleIndicator" | "spaceBetween" | "percentToChange" | "distanceToChange" | "speedToChange" | "lazyloadCount" | "onAfterChange" | "images" | "openIndex" | "displayDuration" | "replaceFallbackWhenLoaded" | "noselect" | "scrollBezier" | "swipeToClose" | "getMinScale" | "getMaxScale" | "getDoubleClickScale" | "getThumbBounds" | "onImageClick" | "onImageDoubleClick" | "onImageLongTap">) => void;
|
274
|
-
* 是否可循环滑动
|
275
|
-
* @en Whether it can be swiped circularly
|
276
|
-
* @default false
|
277
|
-
*/
|
269
|
+
update: (newConfig: Pick<ImagePreviewProps & React.RefAttributes<ImagePreviewRef>, "style" | "ref" | "key" | "getContainer" | "className" | "onClose" | "onTouchMove" | "fit" | "loadingArea" | "errorArea" | "showLoading" | "showError" | "retryTime" | "staticLabel" | "onChange" | "onTouchEnd" | "onTouchStart" | "animateDurationSlide" | "loop" | "swipeable" | "renderIndicator" | "indicatorPos" | "showIndicator" | "hideSingleIndicator" | "spaceBetween" | "percentToChange" | "distanceToChange" | "speedToChange" | "lazyloadCount" | "onAfterChange" | "images" | "openIndex" | "displayDuration" | "replaceFallbackWhenLoaded" | "noselect" | "scrollBezier" | "swipeToClose" | "getMinScale" | "getMaxScale" | "getDoubleClickScale" | "getThumbBounds" | "onImageClick" | "onImageDoubleClick" | "onImageLongTap">) => void;
|
278
270
|
};
|
279
271
|
};
|
280
272
|
/**
|
@@ -7,12 +7,10 @@ exports.open = open;
|
|
7
7
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
9
9
|
|
10
|
-
var _react = _interopRequireDefault(require("react"));
|
11
|
-
|
12
|
-
var _reactDom = _interopRequireDefault(require("react-dom"));
|
13
|
-
|
14
10
|
var _mobileUtils = require("@arco-design/mobile-utils");
|
15
11
|
|
12
|
+
var _render = require("../_helpers/render");
|
13
|
+
|
16
14
|
function open(Component) {
|
17
15
|
return function (config) {
|
18
16
|
var baseProps = (0, _extends2.default)({
|
@@ -30,13 +28,8 @@ function open(Component) {
|
|
30
28
|
|
31
29
|
var leaving = false;
|
32
30
|
|
33
|
-
|
34
|
-
|
35
|
-
getContainer: function getContainer() {
|
36
|
-
return div;
|
37
|
-
}
|
38
|
-
})), div);
|
39
|
-
}
|
31
|
+
var _ReactDOMRender = new _render.ReactDOMRender(Component, div),
|
32
|
+
render = _ReactDOMRender.render;
|
40
33
|
|
41
34
|
function update(newConfig) {
|
42
35
|
dynamicProps = (0, _extends2.default)({}, dynamicProps, newConfig || {});
|
package/cjs/masking/index.d.ts
CHANGED
@@ -192,6 +192,11 @@ export declare function methodsGenerator<P extends OpenBaseProps>(Comp: React.Fu
|
|
192
192
|
open: (config: Pick<P, Exclude<keyof P, "visible" | "close">> & {
|
193
193
|
key?: string | undefined;
|
194
194
|
}) => {
|
195
|
+
/**
|
196
|
+
* 点击蒙层是否关闭菜单
|
197
|
+
* @en Whether to click the mask to close the menu
|
198
|
+
* @default true
|
199
|
+
*/
|
195
200
|
close: () => void;
|
196
201
|
update: (newConfig: Pick<P, Exclude<keyof P, "visible" | "close">> & {
|
197
202
|
key?: string | undefined;
|
@@ -208,6 +213,11 @@ declare const _default: React.ForwardRefExoticComponent<MaskingProps & React.Ref
|
|
208
213
|
open: (config: Pick<MaskingProps & React.RefAttributes<MaskingRef>, "ref" | "children" | "key" | "getContainer" | "mountOnEnter" | "unmountOnExit" | "className" | "onClose" | "contentAtCenter" | "maskClass" | "maskStyle" | "contentClass" | "contentStyle" | "maskTransitionType" | "contentTransitionType" | "maskTransitionTimeout" | "contentTransitionTimeout" | "maskClosable" | "animatingClosable" | "orientationDirection" | "preventBodyScroll" | "initialBodyOverflow" | "gestureOutOfControl" | "onOpen" | "onMaskClick" | "onTouchMove" | "onPreventTouchMove" | "getScrollContainer"> & {
|
209
214
|
key?: string | undefined;
|
210
215
|
}) => {
|
216
|
+
/**
|
217
|
+
* 点击蒙层是否关闭菜单
|
218
|
+
* @en Whether to click the mask to close the menu
|
219
|
+
* @default true
|
220
|
+
*/
|
211
221
|
close: () => void;
|
212
222
|
update: (newConfig: Pick<MaskingProps & React.RefAttributes<MaskingRef>, "ref" | "children" | "key" | "getContainer" | "mountOnEnter" | "unmountOnExit" | "className" | "onClose" | "contentAtCenter" | "maskClass" | "maskStyle" | "contentClass" | "contentStyle" | "maskTransitionType" | "contentTransitionType" | "maskTransitionTimeout" | "contentTransitionTimeout" | "maskClosable" | "animatingClosable" | "orientationDirection" | "preventBodyScroll" | "initialBodyOverflow" | "gestureOutOfControl" | "onOpen" | "onMaskClick" | "onTouchMove" | "onPreventTouchMove" | "getScrollContainer"> & {
|
213
223
|
key?: string | undefined;
|
package/cjs/masking/methods.js
CHANGED
@@ -8,12 +8,10 @@ exports.open = open;
|
|
8
8
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
10
10
|
|
11
|
-
var _react = _interopRequireDefault(require("react"));
|
12
|
-
|
13
|
-
var _reactDom = _interopRequireDefault(require("react-dom"));
|
14
|
-
|
15
11
|
var _mobileUtils = require("@arco-design/mobile-utils");
|
16
12
|
|
13
|
+
var _render = require("../_helpers/render");
|
14
|
+
|
17
15
|
function getOpenMethod(Component, containerId, normalize) {
|
18
16
|
if (normalize === void 0) {
|
19
17
|
normalize = function normalize(config) {
|
@@ -37,13 +35,8 @@ function getOpenMethod(Component, containerId, normalize) {
|
|
37
35
|
|
38
36
|
var leaving = false;
|
39
37
|
|
40
|
-
|
41
|
-
|
42
|
-
getContainer: function getContainer() {
|
43
|
-
return div;
|
44
|
-
}
|
45
|
-
})), div);
|
46
|
-
}
|
38
|
+
var _ReactDOMRender = new _render.ReactDOMRender(Component, div),
|
39
|
+
render = _ReactDOMRender.render;
|
47
40
|
|
48
41
|
function update(newConfig) {
|
49
42
|
dynamicProps = (0, _extends2.default)({}, dynamicProps, normalize(newConfig));
|
package/cjs/notify/methods.js
CHANGED
@@ -9,9 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
9
9
|
|
10
10
|
var _mobileUtils = require("@arco-design/mobile-utils");
|
11
11
|
|
12
|
-
var
|
13
|
-
|
14
|
-
var _reactDom = _interopRequireDefault(require("react-dom"));
|
12
|
+
var _render = require("../_helpers/render");
|
15
13
|
|
16
14
|
function notify(Component, type) {
|
17
15
|
return function (originConfig) {
|
@@ -33,17 +31,16 @@ function notify(Component, type) {
|
|
33
31
|
document.body.appendChild(div);
|
34
32
|
}
|
35
33
|
|
36
|
-
|
37
|
-
|
38
|
-
|
34
|
+
var _ReactDOMRender = new _render.ReactDOMRender(Component, div),
|
35
|
+
render = _ReactDOMRender.render,
|
36
|
+
unmount = _ReactDOMRender.unmount;
|
39
37
|
|
40
38
|
function destroy() {
|
41
39
|
var onClose = config.onClose;
|
42
40
|
onClose && onClose();
|
41
|
+
unmount();
|
43
42
|
|
44
|
-
|
45
|
-
|
46
|
-
if (unmountResult && div.parentNode) {
|
43
|
+
if (div.parentNode) {
|
47
44
|
div.parentNode.removeChild(div);
|
48
45
|
}
|
49
46
|
}
|
@@ -52,6 +52,7 @@ var useEvent = function useEvent(props, wrapperRef, popoverInnerRef, visibleRef,
|
|
52
52
|
onVisibleChange(false);
|
53
53
|
window.clearTimeout(closeTimer.current);
|
54
54
|
closeTimer.current = 0;
|
55
|
+
mayRemoveEventListenerOnBody();
|
55
56
|
};
|
56
57
|
|
57
58
|
var throttleHandleVerticalScroll = (0, _react.useMemo)(function () {
|
@@ -71,7 +72,7 @@ var useEvent = function useEvent(props, wrapperRef, popoverInnerRef, visibleRef,
|
|
71
72
|
};
|
72
73
|
}, [throttleHandleVerticalScroll, getVerticalScrollContainer, autoVerticalDirection, visibleRef]);
|
73
74
|
var mayRemoveEventListenerOnBody = (0, _react.useCallback)(function () {
|
74
|
-
document.body.removeEventListener('click', handleClickBody);
|
75
|
+
document.body.removeEventListener('click', handleClickBody, true);
|
75
76
|
document.body.removeEventListener('touchstart', handleTouchBody);
|
76
77
|
var el = getVerticalScrollContainer();
|
77
78
|
|
@@ -86,7 +87,6 @@ var useEvent = function useEvent(props, wrapperRef, popoverInnerRef, visibleRef,
|
|
86
87
|
// 仅处理子元素和气泡元素外的点击事件
|
87
88
|
// @en Only handle click events outside of children elements and bubble elements
|
88
89
|
if (!(0, _mobileUtils.isContains)(wrapperRef.current, e.target) && !(0, _mobileUtils.isContains)(((_popoverInnerRef$curr = popoverInnerRef.current) == null ? void 0 : _popoverInnerRef$curr.dom) || null, e.target)) {
|
89
|
-
// TODO: 这里仅阻止了react事件,react 18 将不再在document上挂事件,这里的stop会失效
|
90
90
|
if (preventBodyClick) {
|
91
91
|
e.stopPropagation();
|
92
92
|
e.preventDefault();
|
@@ -112,13 +112,13 @@ var useEvent = function useEvent(props, wrapperRef, popoverInnerRef, visibleRef,
|
|
112
112
|
var handle = function handle(e) {
|
113
113
|
e.stopPropagation();
|
114
114
|
e.preventDefault();
|
115
|
-
document.body.removeEventListener('click', handle);
|
115
|
+
document.body.removeEventListener('click', handle, true);
|
116
116
|
clearTimeout(preventRecentClickTimer);
|
117
117
|
};
|
118
118
|
|
119
|
-
document.body.addEventListener('click', handle);
|
119
|
+
document.body.addEventListener('click', handle, true);
|
120
120
|
preventRecentClickTimer = window.setTimeout(function () {
|
121
|
-
document.body.removeEventListener('click', handle);
|
121
|
+
document.body.removeEventListener('click', handle, true);
|
122
122
|
}, 500);
|
123
123
|
};
|
124
124
|
|
@@ -161,7 +161,7 @@ var useEvent = function useEvent(props, wrapperRef, popoverInnerRef, visibleRef,
|
|
161
161
|
var el = getVerticalScrollContainer();
|
162
162
|
el && el.addEventListener('scroll', handleScrollBody);
|
163
163
|
} else if (clickOtherToClose) {
|
164
|
-
document.body.addEventListener('click', handleClickBody);
|
164
|
+
document.body.addEventListener('click', handleClickBody, true);
|
165
165
|
}
|
166
166
|
};
|
167
167
|
/**
|
@@ -67,6 +67,7 @@ var SwipeAction = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
67
67
|
|
68
68
|
var dampRateRef = (0, _helpers.useLatestRef)(dampRate);
|
69
69
|
var forbidClick = (0, _react.useRef)(false);
|
70
|
+
var scrollingRef = (0, _react.useRef)(null);
|
70
71
|
|
71
72
|
var _useRefState = (0, _helpers.useRefState)(false),
|
72
73
|
moving = _useRefState[0],
|
@@ -83,6 +84,7 @@ var SwipeAction = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
83
84
|
|
84
85
|
var startRef = (0, _react.useRef)(0);
|
85
86
|
var startX = (0, _react.useRef)(0);
|
87
|
+
var startY = (0, _react.useRef)(0);
|
86
88
|
var slideX = (0, _react.useRef)(0);
|
87
89
|
var isLayer = openStyleType === 'layer';
|
88
90
|
var transitionStyle = (0, _react.useMemo)(function () {
|
@@ -93,6 +95,7 @@ var SwipeAction = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
93
95
|
|
94
96
|
function resetMoveData() {
|
95
97
|
startX.current = 0;
|
98
|
+
startY.current = 0;
|
96
99
|
slideX.current = 0;
|
97
100
|
}
|
98
101
|
|
@@ -104,19 +107,34 @@ var SwipeAction = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
104
107
|
function touchstart(e) {
|
105
108
|
startRef.current = offsetRef.current;
|
106
109
|
resetMoveData();
|
110
|
+
scrollingRef.current = null;
|
107
111
|
startX.current = e.touches[0].pageX;
|
112
|
+
startY.current = e.touches[0].pageY;
|
108
113
|
}
|
109
114
|
|
110
115
|
function touchmove(e) {
|
111
|
-
e.
|
112
|
-
|
116
|
+
var x = e.changedTouches[0].pageX - startX.current;
|
117
|
+
var y = e.changedTouches[0].pageY - startY.current;
|
118
|
+
|
119
|
+
if (scrollingRef.current === null) {
|
120
|
+
scrollingRef.current = Math.abs(x) < Math.abs(y);
|
121
|
+
}
|
122
|
+
|
123
|
+
if (scrollingRef.current) {
|
124
|
+
setMoving(false);
|
125
|
+
setOffset(0);
|
126
|
+
return;
|
127
|
+
}
|
128
|
+
|
129
|
+
e.cancelable && e.preventDefault();
|
130
|
+
slideX.current = x;
|
113
131
|
forbidClick.current = true;
|
114
132
|
setMoving(true);
|
115
133
|
setOffset(getMenuCurrentWidth(slideX.current + startRef.current, -rightMenuWidthRef.current, leftMenuWidthRef.current));
|
116
134
|
}
|
117
135
|
|
118
136
|
function touchend() {
|
119
|
-
if (movingRef.current) {
|
137
|
+
if (movingRef.current && !scrollingRef.current) {
|
120
138
|
var currentMenu = offsetRef.current > 0 ? 'left' : 'right';
|
121
139
|
changeMenu(currentMenu);
|
122
140
|
setMoving(false);
|