antd-mobile 5.38.0 → 5.39.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/2x/bundle/antd-mobile.cjs.development.js +278 -237
- package/2x/bundle/antd-mobile.cjs.js +7 -7
- package/2x/bundle/antd-mobile.es.development.js +279 -238
- package/2x/bundle/antd-mobile.es.js +5466 -5430
- package/2x/bundle/antd-mobile.umd.development.js +278 -237
- package/2x/bundle/antd-mobile.umd.js +7 -7
- package/2x/bundle/style.css +17 -2
- package/2x/cjs/components/calendar-picker/calendar-picker.d.ts +9 -9
- package/2x/cjs/components/calendar-picker-view/calendar-picker-view.d.ts +5 -4
- package/2x/cjs/components/calendar-picker-view/calendar-picker-view.js +18 -11
- package/2x/cjs/components/date-picker/date-picker-week-utils.js +2 -2
- package/2x/cjs/components/ellipsis/ellipsis.css +1 -0
- package/2x/cjs/components/ellipsis/ellipsis.d.ts +1 -1
- package/2x/cjs/components/ellipsis/ellipsis.js +28 -124
- package/2x/cjs/components/ellipsis/useMeasure.d.ts +2 -0
- package/2x/cjs/components/ellipsis/useMeasure.js +112 -0
- package/2x/cjs/components/ellipsis/~ellipsis.d.ts +15 -0
- package/2x/cjs/components/ellipsis/~ellipsis.js +161 -0
- package/2x/cjs/components/floating-panel/floating-panel.css +16 -2
- package/2x/cjs/components/floating-panel/floating-panel.d.ts +3 -1
- package/2x/cjs/components/floating-panel/floating-panel.js +43 -30
- package/2x/cjs/components/image-uploader/image-uploader.d.ts +3 -3
- package/2x/cjs/components/image-uploader/image-uploader.js +11 -11
- package/2x/cjs/components/image-viewer/image-viewer.d.ts +13 -4
- package/2x/cjs/components/image-viewer/image-viewer.js +8 -6
- package/2x/cjs/components/image-viewer/index.d.ts +4 -1
- package/2x/cjs/components/image-viewer/slide.d.ts +5 -1
- package/2x/cjs/components/image-viewer/slide.js +10 -5
- package/2x/cjs/components/image-viewer/slides.d.ts +4 -1
- package/2x/cjs/components/image-viewer/slides.js +14 -12
- package/2x/cjs/components/passcode-input/passcode-input.d.ts +7 -5
- package/2x/cjs/components/passcode-input/passcode-input.js +7 -6
- package/2x/cjs/components/popover/popover.d.ts +2 -2
- package/2x/cjs/components/popover/popover.js +11 -11
- package/2x/cjs/components/swipe-action/swipe-action.d.ts +3 -1
- package/2x/cjs/components/swipe-action/swipe-action.js +25 -23
- package/2x/es/components/calendar-picker/calendar-picker.d.ts +9 -9
- package/2x/es/components/calendar-picker-view/calendar-picker-view.d.ts +5 -4
- package/2x/es/components/calendar-picker-view/calendar-picker-view.js +18 -11
- package/2x/es/components/date-picker/date-picker-week-utils.js +2 -2
- package/2x/es/components/ellipsis/ellipsis.css +1 -0
- package/2x/es/components/ellipsis/ellipsis.d.ts +1 -1
- package/2x/es/components/ellipsis/ellipsis.js +28 -122
- package/2x/es/components/ellipsis/useMeasure.d.ts +2 -0
- package/2x/es/components/ellipsis/useMeasure.js +105 -0
- package/2x/es/components/ellipsis/~ellipsis.d.ts +15 -0
- package/2x/es/components/ellipsis/~ellipsis.js +151 -0
- package/2x/es/components/floating-panel/floating-panel.css +16 -2
- package/2x/es/components/floating-panel/floating-panel.d.ts +3 -1
- package/2x/es/components/floating-panel/floating-panel.js +31 -19
- package/2x/es/components/image-uploader/image-uploader.d.ts +3 -3
- package/2x/es/components/image-uploader/image-uploader.js +11 -11
- package/2x/es/components/image-viewer/image-viewer.d.ts +13 -4
- package/2x/es/components/image-viewer/image-viewer.js +8 -6
- package/2x/es/components/image-viewer/index.d.ts +4 -1
- package/2x/es/components/image-viewer/slide.d.ts +5 -1
- package/2x/es/components/image-viewer/slide.js +11 -6
- package/2x/es/components/image-viewer/slides.d.ts +4 -1
- package/2x/es/components/image-viewer/slides.js +6 -4
- package/2x/es/components/passcode-input/passcode-input.d.ts +7 -5
- package/2x/es/components/passcode-input/passcode-input.js +6 -5
- package/2x/es/components/popover/popover.d.ts +2 -2
- package/2x/es/components/popover/popover.js +10 -10
- package/2x/es/components/swipe-action/swipe-action.d.ts +3 -1
- package/2x/es/components/swipe-action/swipe-action.js +9 -7
- package/2x/package.json +1 -1
- package/bundle/antd-mobile.cjs.development.js +278 -237
- package/bundle/antd-mobile.cjs.js +7 -7
- package/bundle/antd-mobile.compatible.umd.js +1 -1
- package/bundle/antd-mobile.es.development.js +279 -238
- package/bundle/antd-mobile.es.js +5466 -5430
- package/bundle/antd-mobile.umd.development.js +278 -237
- package/bundle/antd-mobile.umd.js +7 -7
- package/bundle/style.css +1 -1
- package/cjs/components/calendar-picker/calendar-picker.d.ts +9 -9
- package/cjs/components/calendar-picker-view/calendar-picker-view.d.ts +5 -4
- package/cjs/components/calendar-picker-view/calendar-picker-view.js +18 -11
- package/cjs/components/date-picker/date-picker-week-utils.js +2 -2
- package/cjs/components/ellipsis/ellipsis.css +1 -0
- package/cjs/components/ellipsis/ellipsis.d.ts +1 -1
- package/cjs/components/ellipsis/ellipsis.js +28 -124
- package/cjs/components/ellipsis/useMeasure.d.ts +2 -0
- package/cjs/components/ellipsis/useMeasure.js +112 -0
- package/cjs/components/ellipsis/~ellipsis.d.ts +15 -0
- package/cjs/components/ellipsis/~ellipsis.js +161 -0
- package/cjs/components/floating-panel/floating-panel.css +12 -2
- package/cjs/components/floating-panel/floating-panel.d.ts +3 -1
- package/cjs/components/floating-panel/floating-panel.js +43 -30
- package/cjs/components/image-uploader/image-uploader.d.ts +3 -3
- package/cjs/components/image-uploader/image-uploader.js +11 -11
- package/cjs/components/image-viewer/image-viewer.d.ts +13 -4
- package/cjs/components/image-viewer/image-viewer.js +8 -6
- package/cjs/components/image-viewer/index.d.ts +4 -1
- package/cjs/components/image-viewer/slide.d.ts +5 -1
- package/cjs/components/image-viewer/slide.js +10 -5
- package/cjs/components/image-viewer/slides.d.ts +4 -1
- package/cjs/components/image-viewer/slides.js +14 -12
- package/cjs/components/passcode-input/passcode-input.d.ts +7 -5
- package/cjs/components/passcode-input/passcode-input.js +7 -6
- package/cjs/components/popover/popover.d.ts +2 -2
- package/cjs/components/popover/popover.js +11 -11
- package/cjs/components/swipe-action/swipe-action.d.ts +3 -1
- package/cjs/components/swipe-action/swipe-action.js +25 -23
- package/es/components/calendar-picker/calendar-picker.d.ts +9 -9
- package/es/components/calendar-picker-view/calendar-picker-view.d.ts +5 -4
- package/es/components/calendar-picker-view/calendar-picker-view.js +18 -11
- package/es/components/date-picker/date-picker-week-utils.js +2 -2
- package/es/components/ellipsis/ellipsis.css +1 -0
- package/es/components/ellipsis/ellipsis.d.ts +1 -1
- package/es/components/ellipsis/ellipsis.js +28 -122
- package/es/components/ellipsis/useMeasure.d.ts +2 -0
- package/es/components/ellipsis/useMeasure.js +105 -0
- package/es/components/ellipsis/~ellipsis.d.ts +15 -0
- package/es/components/ellipsis/~ellipsis.js +151 -0
- package/es/components/floating-panel/floating-panel.css +12 -2
- package/es/components/floating-panel/floating-panel.d.ts +3 -1
- package/es/components/floating-panel/floating-panel.js +31 -19
- package/es/components/image-uploader/image-uploader.d.ts +3 -3
- package/es/components/image-uploader/image-uploader.js +11 -11
- package/es/components/image-viewer/image-viewer.d.ts +13 -4
- package/es/components/image-viewer/image-viewer.js +8 -6
- package/es/components/image-viewer/index.d.ts +4 -1
- package/es/components/image-viewer/slide.d.ts +5 -1
- package/es/components/image-viewer/slide.js +11 -6
- package/es/components/image-viewer/slides.d.ts +4 -1
- package/es/components/image-viewer/slides.js +6 -4
- package/es/components/passcode-input/passcode-input.d.ts +7 -5
- package/es/components/passcode-input/passcode-input.js +6 -5
- package/es/components/popover/popover.d.ts +2 -2
- package/es/components/popover/popover.js +10 -10
- package/es/components/swipe-action/swipe-action.d.ts +3 -1
- package/es/components/swipe-action/swipe-action.js +9 -7
- package/package.json +1 -1
- package/umd/antd-mobile.js +1 -1
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Ellipsis = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _runes = _interopRequireDefault(require("runes2"));
|
|
9
|
+
var _withDefaultProps = require("../../utils/with-default-props");
|
|
10
|
+
var _nativeProps = require("../../utils/native-props");
|
|
11
|
+
var _useResizeEffect = require("../../utils/use-resize-effect");
|
|
12
|
+
var _ahooks = require("ahooks");
|
|
13
|
+
var _withStopPropagation = require("../../utils/with-stop-propagation");
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
|
+
const classPrefix = `adm-ellipsis`;
|
|
18
|
+
const defaultProps = {
|
|
19
|
+
direction: 'end',
|
|
20
|
+
rows: 1,
|
|
21
|
+
expandText: '',
|
|
22
|
+
content: '',
|
|
23
|
+
collapseText: '',
|
|
24
|
+
stopPropagationForActionButtons: [],
|
|
25
|
+
onContentClick: () => {},
|
|
26
|
+
defaultExpanded: false
|
|
27
|
+
};
|
|
28
|
+
const Ellipsis = p => {
|
|
29
|
+
const props = (0, _withDefaultProps.mergeProps)(defaultProps, p);
|
|
30
|
+
const rootRef = (0, _react.useRef)(null);
|
|
31
|
+
const expandElRef = (0, _react.useRef)(null);
|
|
32
|
+
const collapseElRef = (0, _react.useRef)(null);
|
|
33
|
+
const [ellipsised, setEllipsised] = (0, _react.useState)({});
|
|
34
|
+
const [expanded, setExpanded] = (0, _react.useState)(props.defaultExpanded);
|
|
35
|
+
const [exceeded, setExceeded] = (0, _react.useState)(false);
|
|
36
|
+
const chars = (0, _react.useMemo)(() => (0, _runes.default)(props.content), [props.content]);
|
|
37
|
+
function getSubString(start, end) {
|
|
38
|
+
return chars.slice(start, end).join('');
|
|
39
|
+
}
|
|
40
|
+
function calcEllipsised() {
|
|
41
|
+
var _a, _b;
|
|
42
|
+
const root = rootRef.current;
|
|
43
|
+
if (!root) return;
|
|
44
|
+
const originDisplay = root.style.display;
|
|
45
|
+
root.style.display = 'block';
|
|
46
|
+
const originStyle = window.getComputedStyle(root);
|
|
47
|
+
const container = document.createElement('div');
|
|
48
|
+
const styleNames = Array.prototype.slice.apply(originStyle);
|
|
49
|
+
styleNames.forEach(name => {
|
|
50
|
+
container.style.setProperty(name, originStyle.getPropertyValue(name));
|
|
51
|
+
});
|
|
52
|
+
root.style.display = originDisplay;
|
|
53
|
+
container.style.height = 'auto';
|
|
54
|
+
container.style.minHeight = 'auto';
|
|
55
|
+
container.style.maxHeight = 'auto';
|
|
56
|
+
container.style.textOverflow = 'clip';
|
|
57
|
+
container.style.webkitLineClamp = 'unset';
|
|
58
|
+
container.style.display = 'block';
|
|
59
|
+
const lineHeight = pxToNumber(originStyle.lineHeight);
|
|
60
|
+
const maxHeight = Math.floor(lineHeight * (props.rows + 0.5) + pxToNumber(originStyle.paddingTop) + pxToNumber(originStyle.paddingBottom));
|
|
61
|
+
container.innerText = props.content;
|
|
62
|
+
document.body.appendChild(container);
|
|
63
|
+
if (container.offsetHeight <= maxHeight) {
|
|
64
|
+
setExceeded(false);
|
|
65
|
+
} else {
|
|
66
|
+
setExceeded(true);
|
|
67
|
+
const end = props.content.length;
|
|
68
|
+
const collapseEl = typeof props.collapseText === 'string' ? props.collapseText : (_a = collapseElRef.current) === null || _a === void 0 ? void 0 : _a.innerHTML;
|
|
69
|
+
const expandEl = typeof props.expandText === 'string' ? props.expandText : (_b = expandElRef.current) === null || _b === void 0 ? void 0 : _b.innerHTML;
|
|
70
|
+
const actionText = expanded ? collapseEl : expandEl;
|
|
71
|
+
function check(left, right) {
|
|
72
|
+
if (right - left <= 1) {
|
|
73
|
+
if (props.direction === 'end') {
|
|
74
|
+
return {
|
|
75
|
+
leading: getSubString(0, left) + '...'
|
|
76
|
+
};
|
|
77
|
+
} else {
|
|
78
|
+
return {
|
|
79
|
+
tailing: '...' + getSubString(right, end)
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const middle = Math.round((left + right) / 2);
|
|
84
|
+
if (props.direction === 'end') {
|
|
85
|
+
container.innerHTML = getSubString(0, middle) + '...' + actionText;
|
|
86
|
+
} else {
|
|
87
|
+
container.innerHTML = actionText + '...' + getSubString(middle, end);
|
|
88
|
+
}
|
|
89
|
+
if (container.offsetHeight <= maxHeight) {
|
|
90
|
+
if (props.direction === 'end') {
|
|
91
|
+
return check(middle, right);
|
|
92
|
+
} else {
|
|
93
|
+
return check(left, middle);
|
|
94
|
+
}
|
|
95
|
+
} else {
|
|
96
|
+
if (props.direction === 'end') {
|
|
97
|
+
return check(left, middle);
|
|
98
|
+
} else {
|
|
99
|
+
return check(middle, right);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
function checkMiddle(leftPart, rightPart) {
|
|
104
|
+
if (leftPart[1] - leftPart[0] <= 1 && rightPart[1] - rightPart[0] <= 1) {
|
|
105
|
+
return {
|
|
106
|
+
leading: getSubString(0, leftPart[0]) + '...',
|
|
107
|
+
tailing: '...' + getSubString(rightPart[1], end)
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
const leftPartMiddle = Math.floor((leftPart[0] + leftPart[1]) / 2);
|
|
111
|
+
const rightPartMiddle = Math.ceil((rightPart[0] + rightPart[1]) / 2);
|
|
112
|
+
container.innerHTML = getSubString(0, leftPartMiddle) + '...' + actionText + '...' + getSubString(rightPartMiddle, end);
|
|
113
|
+
if (container.offsetHeight <= maxHeight) {
|
|
114
|
+
return checkMiddle([leftPartMiddle, leftPart[1]], [rightPart[0], rightPartMiddle]);
|
|
115
|
+
} else {
|
|
116
|
+
return checkMiddle([leftPart[0], leftPartMiddle], [rightPartMiddle, rightPart[1]]);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
const middle = Math.floor((0 + end) / 2);
|
|
120
|
+
const ellipsised = props.direction === 'middle' ? checkMiddle([0, middle], [middle, end]) : check(0, end);
|
|
121
|
+
setEllipsised(ellipsised);
|
|
122
|
+
}
|
|
123
|
+
document.body.removeChild(container);
|
|
124
|
+
}
|
|
125
|
+
(0, _useResizeEffect.useResizeEffect)(calcEllipsised, rootRef);
|
|
126
|
+
(0, _ahooks.useIsomorphicLayoutEffect)(() => {
|
|
127
|
+
calcEllipsised();
|
|
128
|
+
}, [props.content, props.direction, props.rows, props.expandText, props.collapseText]);
|
|
129
|
+
const expandActionElement = !!props.expandText && (0, _withStopPropagation.withStopPropagation)(props.stopPropagationForActionButtons, _react.default.createElement("a", {
|
|
130
|
+
ref: expandElRef,
|
|
131
|
+
onClick: () => {
|
|
132
|
+
setExpanded(true);
|
|
133
|
+
}
|
|
134
|
+
}, props.expandText));
|
|
135
|
+
const collapseActionElement = !!props.collapseText && (0, _withStopPropagation.withStopPropagation)(props.stopPropagationForActionButtons, _react.default.createElement("a", {
|
|
136
|
+
ref: collapseElRef,
|
|
137
|
+
onClick: () => {
|
|
138
|
+
setExpanded(false);
|
|
139
|
+
}
|
|
140
|
+
}, props.collapseText));
|
|
141
|
+
const renderContent = () => {
|
|
142
|
+
if (!exceeded) return props.content;
|
|
143
|
+
if (expanded) return _react.default.createElement(_react.default.Fragment, null, props.content, collapseActionElement);
|
|
144
|
+
return _react.default.createElement(_react.default.Fragment, null, ellipsised.leading, expandActionElement, ellipsised.tailing);
|
|
145
|
+
};
|
|
146
|
+
return (0, _nativeProps.withNativeProps)(props, _react.default.createElement("div", {
|
|
147
|
+
ref: rootRef,
|
|
148
|
+
className: classPrefix,
|
|
149
|
+
onClick: e => {
|
|
150
|
+
if (e.target === e.currentTarget) {
|
|
151
|
+
props.onContentClick(e);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}, renderContent()));
|
|
155
|
+
};
|
|
156
|
+
exports.Ellipsis = Ellipsis;
|
|
157
|
+
function pxToNumber(value) {
|
|
158
|
+
if (!value) return 0;
|
|
159
|
+
const match = value.match(/^\d*(\.\d*)?/);
|
|
160
|
+
return match ? Number(match[0]) : 0;
|
|
161
|
+
}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
--z-index: var(--adm-floating-panel-z-index, 900);
|
|
5
5
|
position: fixed;
|
|
6
6
|
z-index: var(--z-index);
|
|
7
|
-
bottom: 0;
|
|
8
7
|
left: 0;
|
|
9
8
|
width: 100vw;
|
|
10
9
|
display: flex;
|
|
@@ -26,7 +25,6 @@
|
|
|
26
25
|
content: '';
|
|
27
26
|
display: block;
|
|
28
27
|
position: absolute;
|
|
29
|
-
bottom: -100vh;
|
|
30
28
|
height: 100vh;
|
|
31
29
|
width: 100vw;
|
|
32
30
|
background: var(--adm-color-background);
|
|
@@ -58,4 +56,20 @@
|
|
|
58
56
|
flex: 1;
|
|
59
57
|
overflow-y: scroll;
|
|
60
58
|
background: var(--adm-color-background);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.adm-floating-panel-top {
|
|
62
|
+
top: 0;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.adm-floating-panel-top::after {
|
|
66
|
+
top: -100vh;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.adm-floating-panel-bottom {
|
|
70
|
+
bottom: 0;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.adm-floating-panel-bottom::after {
|
|
74
|
+
bottom: -100vh;
|
|
61
75
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import type { ReactNode } from 'react';
|
|
2
|
+
import React from 'react';
|
|
3
3
|
import { NativeProps } from '../../utils/native-props';
|
|
4
4
|
export declare type FloatingPanelRef = {
|
|
5
5
|
setHeight: (height: number, options?: {
|
|
@@ -11,12 +11,14 @@ export declare type FloatingPanelProps = {
|
|
|
11
11
|
children: ReactNode;
|
|
12
12
|
onHeightChange?: (height: number, animating: boolean) => void;
|
|
13
13
|
handleDraggingOfContent?: boolean;
|
|
14
|
+
placement?: 'bottom' | 'top';
|
|
14
15
|
} & NativeProps<'--border-radius' | '--z-index' | '--header-height'>;
|
|
15
16
|
export declare const FloatingPanel: React.ForwardRefExoticComponent<{
|
|
16
17
|
anchors: number[];
|
|
17
18
|
children: ReactNode;
|
|
18
19
|
onHeightChange?: ((height: number, animating: boolean) => void) | undefined;
|
|
19
20
|
handleDraggingOfContent?: boolean | undefined;
|
|
21
|
+
placement?: "bottom" | "top" | undefined;
|
|
20
22
|
} & {
|
|
21
23
|
className?: string | undefined;
|
|
22
24
|
style?: (React.CSSProperties & Partial<Record<"--z-index" | "--border-radius" | "--header-height", string>>) | undefined;
|
|
@@ -4,43 +4,47 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.FloatingPanel = void 0;
|
|
7
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
-
var _nativeProps = require("../../utils/native-props");
|
|
9
|
-
var _react2 = require("@use-gesture/react");
|
|
10
7
|
var _web = require("@react-spring/web");
|
|
11
|
-
var
|
|
8
|
+
var _react = require("@use-gesture/react");
|
|
9
|
+
var _ahooks = require("ahooks");
|
|
10
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
|
+
var _react2 = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _nativeProps = require("../../utils/native-props");
|
|
12
13
|
var _nearest = require("../../utils/nearest");
|
|
13
|
-
var
|
|
14
|
+
var _supportsPassive = require("../../utils/supports-passive");
|
|
14
15
|
var _useLockScroll = require("../../utils/use-lock-scroll");
|
|
15
|
-
var
|
|
16
|
+
var _withDefaultProps = require("../../utils/with-default-props");
|
|
16
17
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
18
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
20
|
const classPrefix = 'adm-floating-panel';
|
|
19
21
|
const defaultProps = {
|
|
20
22
|
handleDraggingOfContent: true
|
|
21
23
|
};
|
|
22
|
-
const FloatingPanel = (0,
|
|
24
|
+
const FloatingPanel = (0, _react2.forwardRef)((p, ref) => {
|
|
23
25
|
var _a, _b;
|
|
24
26
|
const props = (0, _withDefaultProps.mergeProps)(defaultProps, p);
|
|
25
27
|
const {
|
|
26
|
-
anchors
|
|
28
|
+
anchors,
|
|
29
|
+
placement = 'bottom'
|
|
27
30
|
} = props;
|
|
28
31
|
const maxHeight = (_a = anchors[anchors.length - 1]) !== null && _a !== void 0 ? _a : window.innerHeight;
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
const
|
|
32
|
-
const
|
|
33
|
-
const
|
|
34
|
-
const
|
|
32
|
+
const isBottomPlacement = placement !== 'top';
|
|
33
|
+
const possibles = isBottomPlacement ? anchors.map(x => -x) : anchors;
|
|
34
|
+
const elementRef = (0, _react2.useRef)(null);
|
|
35
|
+
const headerRef = (0, _react2.useRef)(null);
|
|
36
|
+
const contentRef = (0, _react2.useRef)(null);
|
|
37
|
+
const [pulling, setPulling] = (0, _react2.useState)(false);
|
|
38
|
+
const pullingRef = (0, _react2.useRef)(false);
|
|
35
39
|
const bounds = {
|
|
36
|
-
top: possibles
|
|
37
|
-
bottom: possibles
|
|
40
|
+
top: Math.min(...possibles),
|
|
41
|
+
bottom: Math.max(...possibles)
|
|
38
42
|
};
|
|
39
43
|
const onHeightChange = (0, _ahooks.useMemoizedFn)((_b = props.onHeightChange) !== null && _b !== void 0 ? _b : () => {});
|
|
40
44
|
const [{
|
|
41
45
|
y
|
|
42
46
|
}, api] = (0, _web.useSpring)(() => ({
|
|
43
|
-
y: bounds.bottom,
|
|
47
|
+
y: isBottomPlacement ? bounds.bottom : bounds.top,
|
|
44
48
|
config: {
|
|
45
49
|
tension: 300
|
|
46
50
|
},
|
|
@@ -48,7 +52,7 @@ const FloatingPanel = (0, _react.forwardRef)((p, ref) => {
|
|
|
48
52
|
onHeightChange(-result.value.y, y.isAnimating);
|
|
49
53
|
}
|
|
50
54
|
}));
|
|
51
|
-
(0,
|
|
55
|
+
(0, _react.useDrag)(state => {
|
|
52
56
|
const [, offsetY] = state.offset;
|
|
53
57
|
if (state.first) {
|
|
54
58
|
const target = state.event.target;
|
|
@@ -100,7 +104,7 @@ const FloatingPanel = (0, _react.forwardRef)((p, ref) => {
|
|
|
100
104
|
passive: false
|
|
101
105
|
} : undefined
|
|
102
106
|
});
|
|
103
|
-
(0,
|
|
107
|
+
(0, _react2.useImperativeHandle)(ref, () => ({
|
|
104
108
|
setHeight: (height, options) => {
|
|
105
109
|
api.start({
|
|
106
110
|
y: -height,
|
|
@@ -109,26 +113,35 @@ const FloatingPanel = (0, _react.forwardRef)((p, ref) => {
|
|
|
109
113
|
}
|
|
110
114
|
}), [api]);
|
|
111
115
|
(0, _useLockScroll.useLockScroll)(elementRef, true);
|
|
112
|
-
|
|
116
|
+
const HeaderNode = _react2.default.createElement("div", {
|
|
117
|
+
className: `${classPrefix}-header`,
|
|
118
|
+
ref: headerRef
|
|
119
|
+
}, _react2.default.createElement("div", {
|
|
120
|
+
className: `${classPrefix}-bar`
|
|
121
|
+
}));
|
|
122
|
+
return (0, _nativeProps.withNativeProps)(props, _react2.default.createElement(_web.animated.div, {
|
|
113
123
|
ref: elementRef,
|
|
114
|
-
className: classPrefix,
|
|
124
|
+
className: (0, _classnames.default)(classPrefix, `${classPrefix}-${placement}`),
|
|
115
125
|
style: {
|
|
116
126
|
height: Math.round(maxHeight),
|
|
117
|
-
translateY: y.to(y =>
|
|
127
|
+
translateY: y.to(y => {
|
|
128
|
+
if (isBottomPlacement) {
|
|
129
|
+
return `calc(100% + (${Math.round(y)}px))`;
|
|
130
|
+
}
|
|
131
|
+
if (placement === 'top') {
|
|
132
|
+
return `calc(-100% + (${Math.round(y)}px))`;
|
|
133
|
+
}
|
|
134
|
+
return y;
|
|
135
|
+
})
|
|
118
136
|
}
|
|
119
|
-
},
|
|
137
|
+
}, _react2.default.createElement("div", {
|
|
120
138
|
className: `${classPrefix}-mask`,
|
|
121
139
|
style: {
|
|
122
140
|
display: pulling ? 'block' : 'none'
|
|
123
141
|
}
|
|
124
|
-
}),
|
|
125
|
-
className: `${classPrefix}-header`,
|
|
126
|
-
ref: headerRef
|
|
127
|
-
}, _react.default.createElement("div", {
|
|
128
|
-
className: `${classPrefix}-bar`
|
|
129
|
-
})), _react.default.createElement("div", {
|
|
142
|
+
}), isBottomPlacement && HeaderNode, _react2.default.createElement("div", {
|
|
130
143
|
className: `${classPrefix}-content`,
|
|
131
144
|
ref: contentRef
|
|
132
|
-
}, props.children)));
|
|
145
|
+
}, props.children), placement === 'top' && HeaderNode));
|
|
133
146
|
});
|
|
134
147
|
exports.FloatingPanel = FloatingPanel;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import type { CSSProperties, InputHTMLAttributes, ReactElement, ReactNode } from 'react';
|
|
1
2
|
import React from 'react';
|
|
2
|
-
import type { ReactNode, InputHTMLAttributes, ReactElement } from 'react';
|
|
3
3
|
import { NativeProps } from '../../utils/native-props';
|
|
4
|
-
import type { ImageProps } from '../image';
|
|
5
4
|
import { GridProps } from '../grid';
|
|
5
|
+
import type { ImageProps } from '../image';
|
|
6
6
|
export declare type TaskStatus = 'pending' | 'fail' | 'success';
|
|
7
7
|
export interface ImageUploadItem {
|
|
8
8
|
key?: string | number;
|
|
@@ -71,7 +71,7 @@ export declare const ImageUploader: React.ForwardRefExoticComponent<{
|
|
|
71
71
|
renderItem?: ((originNode: ReactElement, file: ImageUploadItem, fileList: ImageUploadItem[]) => ReactNode) | undefined;
|
|
72
72
|
} & {
|
|
73
73
|
className?: string | undefined;
|
|
74
|
-
style?: (
|
|
74
|
+
style?: (CSSProperties & Partial<Record<"--gap" | "--gap-vertical" | "--gap-horizontal" | "--cell-size", string>>) | undefined;
|
|
75
75
|
tabIndex?: number | undefined;
|
|
76
76
|
} & React.AriaAttributes & React.RefAttributes<ImageUploaderRef>>;
|
|
77
77
|
export {};
|
|
@@ -5,18 +5,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.ImageUploader = void 0;
|
|
7
7
|
var _tslib = require("tslib");
|
|
8
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
var _antdMobileIcons = require("antd-mobile-icons");
|
|
10
|
-
var _withDefaultProps = require("../../utils/with-default-props");
|
|
11
|
-
var _imageViewer = _interopRequireDefault(require("../image-viewer"));
|
|
12
|
-
var _previewItem = _interopRequireDefault(require("./preview-item"));
|
|
13
|
-
var _usePropsValue = require("../../utils/use-props-value");
|
|
14
8
|
var _ahooks = require("ahooks");
|
|
15
|
-
var
|
|
16
|
-
var
|
|
9
|
+
var _antdMobileIcons = require("antd-mobile-icons");
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
11
|
var _measureCssLength = require("../../utils/measure-css-length");
|
|
12
|
+
var _nativeProps = require("../../utils/native-props");
|
|
13
|
+
var _usePropsValue = require("../../utils/use-props-value");
|
|
14
|
+
var _withDefaultProps = require("../../utils/with-default-props");
|
|
18
15
|
var _configProvider = require("../config-provider");
|
|
19
16
|
var _grid = _interopRequireDefault(require("../grid"));
|
|
17
|
+
var _imageViewer = _interopRequireDefault(require("../image-viewer"));
|
|
18
|
+
var _space = _interopRequireDefault(require("../space"));
|
|
19
|
+
var _previewItem = _interopRequireDefault(require("./preview-item"));
|
|
20
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
21
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
22
22
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -153,10 +153,10 @@ const ImageUploader = (0, _react.forwardRef)((p, ref) => {
|
|
|
153
153
|
return task;
|
|
154
154
|
});
|
|
155
155
|
});
|
|
156
|
-
|
|
156
|
+
console.error(e);
|
|
157
157
|
}
|
|
158
|
-
})))
|
|
159
|
-
setValue(prev => prev.concat(newVal));
|
|
158
|
+
})));
|
|
159
|
+
setValue(prev => prev.concat(newVal).filter(Boolean));
|
|
160
160
|
});
|
|
161
161
|
}
|
|
162
162
|
const imageViewerHandlerRef = (0, _react.useRef)(null);
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import type { FC, ReactNode } from 'react';
|
|
2
|
+
import React from 'react';
|
|
3
3
|
import { GetContainer } from '../../utils/render-to-container';
|
|
4
4
|
import { SlidesRef } from './slides';
|
|
5
5
|
export declare type ImageViewerProps = {
|
|
6
|
-
image
|
|
6
|
+
image: string;
|
|
7
7
|
maxZoom?: number | 'auto';
|
|
8
8
|
getContainer?: GetContainer;
|
|
9
9
|
visible?: boolean;
|
|
10
10
|
onClose?: () => void;
|
|
11
11
|
afterClose?: () => void;
|
|
12
12
|
renderFooter?: (image: string) => ReactNode;
|
|
13
|
+
imageRender?: (image: string, { index }: {
|
|
14
|
+
index: number;
|
|
15
|
+
}) => ReactNode;
|
|
13
16
|
classNames?: {
|
|
14
17
|
mask?: string;
|
|
15
18
|
body?: string;
|
|
@@ -17,15 +20,21 @@ export declare type ImageViewerProps = {
|
|
|
17
20
|
};
|
|
18
21
|
export declare const ImageViewer: FC<ImageViewerProps>;
|
|
19
22
|
export declare type MultiImageViewerRef = SlidesRef;
|
|
20
|
-
export declare type MultiImageViewerProps = Omit<ImageViewerProps, 'image' | 'renderFooter'> & {
|
|
23
|
+
export declare type MultiImageViewerProps = Omit<ImageViewerProps, 'image' | 'renderFooter' | 'imageRender'> & {
|
|
21
24
|
images?: string[];
|
|
22
25
|
defaultIndex?: number;
|
|
23
26
|
onIndexChange?: (index: number) => void;
|
|
24
27
|
renderFooter?: (image: string, index: number) => ReactNode;
|
|
28
|
+
imageRender?: (image: string, { index }: {
|
|
29
|
+
index: number;
|
|
30
|
+
}) => ReactNode;
|
|
25
31
|
};
|
|
26
|
-
export declare const MultiImageViewer: React.ForwardRefExoticComponent<Omit<ImageViewerProps, "image" | "renderFooter"> & {
|
|
32
|
+
export declare const MultiImageViewer: React.ForwardRefExoticComponent<Omit<ImageViewerProps, "image" | "imageRender" | "renderFooter"> & {
|
|
27
33
|
images?: string[] | undefined;
|
|
28
34
|
defaultIndex?: number | undefined;
|
|
29
35
|
onIndexChange?: ((index: number) => void) | undefined;
|
|
30
36
|
renderFooter?: ((image: string, index: number) => ReactNode) | undefined;
|
|
37
|
+
imageRender?: ((image: string, { index }: {
|
|
38
|
+
index: number;
|
|
39
|
+
}) => ReactNode) | undefined;
|
|
31
40
|
} & React.RefAttributes<SlidesRef>>;
|
|
@@ -4,17 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.MultiImageViewer = exports.ImageViewer = void 0;
|
|
7
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
7
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
-
var _withDefaultProps = require("../../utils/with-default-props");
|
|
9
9
|
var _renderToContainer = require("../../utils/render-to-container");
|
|
10
|
+
var _withDefaultProps = require("../../utils/with-default-props");
|
|
10
11
|
var _mask = _interopRequireDefault(require("../mask"));
|
|
11
12
|
var _safeArea = _interopRequireDefault(require("../safe-area"));
|
|
12
13
|
var _slide = require("./slide");
|
|
13
14
|
var _slides = require("./slides");
|
|
14
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
15
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
16
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
18
|
const classPrefix = `adm-image-viewer`;
|
|
19
19
|
const defaultProps = {
|
|
20
20
|
maxZoom: 3,
|
|
@@ -33,10 +33,11 @@ const ImageViewer = p => {
|
|
|
33
33
|
className: (_a = props === null || props === void 0 ? void 0 : props.classNames) === null || _a === void 0 ? void 0 : _a.mask
|
|
34
34
|
}, _react.default.createElement("div", {
|
|
35
35
|
className: (0, _classnames.default)(`${classPrefix}-content`, (_b = props === null || props === void 0 ? void 0 : props.classNames) === null || _b === void 0 ? void 0 : _b.body)
|
|
36
|
-
}, props.image && _react.default.createElement(_slide.Slide, {
|
|
36
|
+
}, (props.image || typeof props.imageRender === 'function') && _react.default.createElement(_slide.Slide, {
|
|
37
37
|
image: props.image,
|
|
38
38
|
onTap: props.onClose,
|
|
39
|
-
maxZoom: props.maxZoom
|
|
39
|
+
maxZoom: props.maxZoom,
|
|
40
|
+
imageRender: props.imageRender
|
|
40
41
|
})), props.image && _react.default.createElement("div", {
|
|
41
42
|
className: `${classPrefix}-footer`
|
|
42
43
|
}, (_c = props.renderFooter) === null || _c === void 0 ? void 0 : _c.call(props, props.image), _react.default.createElement(_safeArea.default, {
|
|
@@ -81,7 +82,8 @@ const MultiImageViewer = (0, _react.forwardRef)((p, ref) => {
|
|
|
81
82
|
onIndexChange: onSlideChange,
|
|
82
83
|
images: props.images,
|
|
83
84
|
onTap: props.onClose,
|
|
84
|
-
maxZoom: props.maxZoom
|
|
85
|
+
maxZoom: props.maxZoom,
|
|
86
|
+
imageRender: props.imageRender
|
|
85
87
|
})), props.images && _react.default.createElement("div", {
|
|
86
88
|
className: `${classPrefix}-footer`
|
|
87
89
|
}, (_c = props.renderFooter) === null || _c === void 0 ? void 0 : _c.call(props, props.images[index], index), _react.default.createElement(_safeArea.default, {
|
|
@@ -3,11 +3,14 @@ import { showMultiImageViewer, showImageViewer, clearImageViewer } from './metho
|
|
|
3
3
|
export type { ImageViewerProps, MultiImageViewerProps, MultiImageViewerRef, } from './image-viewer';
|
|
4
4
|
export type { ImageViewerShowHandler } from './methods';
|
|
5
5
|
declare const _default: import("react").FC<import("./image-viewer").ImageViewerProps> & {
|
|
6
|
-
Multi: import("react").ForwardRefExoticComponent<Omit<import("./image-viewer").ImageViewerProps, "image" | "renderFooter"> & {
|
|
6
|
+
Multi: import("react").ForwardRefExoticComponent<Omit<import("./image-viewer").ImageViewerProps, "image" | "imageRender" | "renderFooter"> & {
|
|
7
7
|
images?: string[] | undefined;
|
|
8
8
|
defaultIndex?: number | undefined;
|
|
9
9
|
onIndexChange?: ((index: number) => void) | undefined;
|
|
10
10
|
renderFooter?: ((image: string, index: number) => import("react").ReactNode) | undefined;
|
|
11
|
+
imageRender?: ((image: string, { index }: {
|
|
12
|
+
index: number;
|
|
13
|
+
}) => import("react").ReactNode) | undefined;
|
|
11
14
|
} & import("react").RefAttributes<import("./slides").SlidesRef>> & {
|
|
12
15
|
show: typeof showMultiImageViewer;
|
|
13
16
|
};
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import type { FC, MutableRefObject } from 'react';
|
|
1
|
+
import type { FC, MutableRefObject, ReactNode } from 'react';
|
|
2
2
|
declare type Props = {
|
|
3
3
|
image: string;
|
|
4
4
|
maxZoom: number | 'auto';
|
|
5
5
|
onTap?: () => void;
|
|
6
6
|
onZoomChange?: (zoom: number) => void;
|
|
7
7
|
dragLockRef?: MutableRefObject<boolean>;
|
|
8
|
+
imageRender?: (image: string, { index }: {
|
|
9
|
+
index: number;
|
|
10
|
+
}) => ReactNode;
|
|
11
|
+
index?: number;
|
|
8
12
|
};
|
|
9
13
|
export declare const Slide: FC<Props>;
|
|
10
14
|
export {};
|
|
@@ -4,20 +4,22 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.Slide = void 0;
|
|
7
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
8
7
|
var _web = require("@react-spring/web");
|
|
9
8
|
var _ahooks = require("ahooks");
|
|
10
|
-
var
|
|
11
|
-
var _useDragAndPinch = require("../../utils/use-drag-and-pinch");
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
10
|
var _bound = require("../../utils/bound");
|
|
13
11
|
var mat = _interopRequireWildcard(require("../../utils/matrix"));
|
|
12
|
+
var _rubberband = require("../../utils/rubberband");
|
|
13
|
+
var _useDragAndPinch = require("../../utils/use-drag-and-pinch");
|
|
14
14
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
15
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
16
16
|
const classPrefix = `adm-image-viewer`;
|
|
17
17
|
const Slide = props => {
|
|
18
18
|
const {
|
|
19
19
|
dragLockRef,
|
|
20
|
-
maxZoom
|
|
20
|
+
maxZoom,
|
|
21
|
+
imageRender,
|
|
22
|
+
index
|
|
21
23
|
} = props;
|
|
22
24
|
const initialMartix = (0, _react.useRef)([]);
|
|
23
25
|
const controlRef = (0, _react.useRef)(null);
|
|
@@ -227,6 +229,9 @@ const Slide = props => {
|
|
|
227
229
|
}
|
|
228
230
|
}
|
|
229
231
|
});
|
|
232
|
+
const customRendering = typeof imageRender === 'function' && imageRender(props.image, {
|
|
233
|
+
index
|
|
234
|
+
});
|
|
230
235
|
return _react.default.createElement("div", {
|
|
231
236
|
className: `${classPrefix}-slide`
|
|
232
237
|
}, _react.default.createElement("div", {
|
|
@@ -237,7 +242,7 @@ const Slide = props => {
|
|
|
237
242
|
style: {
|
|
238
243
|
matrix
|
|
239
244
|
}
|
|
240
|
-
}, _react.default.createElement("img", {
|
|
245
|
+
}, customRendering ? customRendering : _react.default.createElement("img", {
|
|
241
246
|
ref: imgRef,
|
|
242
247
|
src: props.image,
|
|
243
248
|
draggable: false,
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
2
|
export declare type SlidesType = {
|
|
3
3
|
images: string[];
|
|
4
4
|
onTap?: () => void;
|
|
5
5
|
maxZoom: number;
|
|
6
6
|
defaultIndex: number;
|
|
7
7
|
onIndexChange?: (index: number) => void;
|
|
8
|
+
imageRender?: (image: string, { index }: {
|
|
9
|
+
index: number;
|
|
10
|
+
}) => ReactNode;
|
|
8
11
|
};
|
|
9
12
|
export declare type SlidesRef = {
|
|
10
13
|
swipeTo: (index: number, immediate?: boolean) => void;
|