antd-mobile 5.42.3 → 5.43.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 +2383 -2054
- package/2x/bundle/antd-mobile.cjs.js +8 -7
- package/2x/bundle/antd-mobile.es.development.js +1545 -1216
- package/2x/bundle/antd-mobile.es.js +9230 -8978
- package/2x/bundle/antd-mobile.umd.development.js +2380 -2051
- package/2x/bundle/antd-mobile.umd.js +8 -7
- package/2x/bundle/style.css +116 -90
- package/2x/cjs/components/cascader/cascader.css +5 -0
- package/2x/cjs/components/cascader/cascader.d.ts +5 -3
- package/2x/cjs/components/cascader/cascader.js +6 -7
- package/2x/cjs/components/cascader/index.d.ts +2 -1
- package/2x/cjs/components/cascader-view/cascader-view.d.ts +8 -2
- package/2x/cjs/components/cascader-view/cascader-view.js +13 -10
- package/2x/cjs/components/cascader-view/index.d.ts +1 -1
- package/2x/cjs/components/date-picker/date-picker-date-utils.js +4 -10
- package/2x/cjs/components/date-picker/date-picker-week-utils.js +4 -4
- package/2x/cjs/components/date-picker/date-picker.d.ts +1 -1
- package/2x/cjs/components/date-picker/index.d.ts +1 -1
- package/2x/cjs/components/dropdown/dropdown.d.ts +6 -0
- package/2x/cjs/components/dropdown/dropdown.js +38 -7
- package/2x/cjs/components/dropdown/index.d.ts +3 -0
- package/2x/cjs/components/error-block/create-error-block.d.ts +3 -4
- package/2x/cjs/components/error-block/create-error-block.js +2 -2
- package/2x/cjs/components/error-block/images/busy.js +94 -89
- package/2x/cjs/components/error-block/images/default.js +170 -165
- package/2x/cjs/components/error-block/images/disconnected.js +127 -122
- package/2x/cjs/components/error-block/images/empty.js +123 -118
- package/2x/cjs/components/error-block/images/index.d.ts +1 -1
- package/2x/cjs/components/error-block/images/index.js +2 -2
- package/2x/cjs/components/floating-panel/floating-panel.d.ts +2 -0
- package/2x/cjs/components/floating-panel/floating-panel.js +7 -3
- package/2x/cjs/components/form/form-item.js +19 -11
- package/2x/cjs/components/form/index.d.ts +1 -1
- package/2x/cjs/components/input/input.d.ts +4 -2
- package/2x/cjs/components/input/input.js +6 -4
- package/2x/cjs/components/list/list-item.js +1 -1
- package/2x/cjs/components/notice-bar/notice-bar.js +2 -1
- package/2x/cjs/components/passcode-input/passcode-input.css +20 -0
- package/2x/cjs/components/passcode-input/passcode-input.d.ts +2 -0
- package/2x/cjs/components/passcode-input/passcode-input.js +6 -3
- package/2x/cjs/components/popover/popover.js +11 -1
- package/2x/cjs/components/popover/use-showing-guard.d.ts +12 -0
- package/2x/cjs/components/popover/use-showing-guard.js +40 -0
- package/2x/cjs/components/search-bar/search-bar.js +4 -5
- package/2x/cjs/components/segmented/segmented.css +1 -0
- package/2x/cjs/components/swipe-action/swipe-action.js +37 -21
- package/2x/cjs/components/swiper/index.d.ts +3 -1
- package/2x/cjs/components/swiper/swiper.d.ts +9 -2
- package/2x/cjs/components/swiper/swiper.js +36 -18
- package/2x/cjs/components/text-area/text-area.d.ts +1 -1
- package/2x/cjs/components/text-area/text-area.js +4 -3
- package/2x/cjs/components/virtual-input/use-click-outside.js +6 -4
- package/2x/cjs/utils/convert-px.js +7 -2
- package/2x/es/components/cascader/cascader.css +5 -0
- package/2x/es/components/cascader/cascader.d.ts +5 -3
- package/2x/es/components/cascader/cascader.js +7 -8
- package/2x/es/components/cascader/index.d.ts +2 -1
- package/2x/es/components/cascader-view/cascader-view.d.ts +8 -2
- package/2x/es/components/cascader-view/cascader-view.js +12 -9
- package/2x/es/components/cascader-view/index.d.ts +1 -1
- package/2x/es/components/date-picker/date-picker-date-utils.js +4 -9
- package/2x/es/components/date-picker/date-picker-week-utils.js +4 -4
- package/2x/es/components/date-picker/date-picker.d.ts +1 -1
- package/2x/es/components/date-picker/index.d.ts +1 -1
- package/2x/es/components/dropdown/dropdown.d.ts +6 -0
- package/2x/es/components/dropdown/dropdown.js +39 -8
- package/2x/es/components/dropdown/index.d.ts +3 -0
- package/2x/es/components/error-block/create-error-block.d.ts +3 -4
- package/2x/es/components/error-block/create-error-block.js +2 -2
- package/2x/es/components/error-block/images/busy.js +94 -89
- package/2x/es/components/error-block/images/default.js +170 -165
- package/2x/es/components/error-block/images/disconnected.js +127 -122
- package/2x/es/components/error-block/images/empty.js +123 -118
- package/2x/es/components/error-block/images/index.d.ts +1 -1
- package/2x/es/components/error-block/images/index.js +2 -2
- package/2x/es/components/floating-panel/floating-panel.d.ts +2 -0
- package/2x/es/components/floating-panel/floating-panel.js +7 -3
- package/2x/es/components/form/form-item.js +19 -11
- package/2x/es/components/form/index.d.ts +1 -1
- package/2x/es/components/input/input.d.ts +4 -2
- package/2x/es/components/input/input.js +6 -4
- package/2x/es/components/list/list-item.js +1 -1
- package/2x/es/components/notice-bar/notice-bar.js +2 -1
- package/2x/es/components/passcode-input/passcode-input.css +20 -0
- package/2x/es/components/passcode-input/passcode-input.d.ts +2 -0
- package/2x/es/components/passcode-input/passcode-input.js +6 -3
- package/2x/es/components/popover/popover.js +11 -1
- package/2x/es/components/popover/use-showing-guard.d.ts +12 -0
- package/2x/es/components/popover/use-showing-guard.js +34 -0
- package/2x/es/components/search-bar/search-bar.js +4 -5
- package/2x/es/components/segmented/segmented.css +1 -0
- package/2x/es/components/swipe-action/swipe-action.js +37 -21
- package/2x/es/components/swiper/index.d.ts +3 -1
- package/2x/es/components/swiper/swiper.d.ts +9 -2
- package/2x/es/components/swiper/swiper.js +35 -19
- package/2x/es/components/text-area/text-area.d.ts +1 -1
- package/2x/es/components/text-area/text-area.js +4 -3
- package/2x/es/components/virtual-input/use-click-outside.js +7 -4
- package/2x/es/utils/convert-px.js +7 -2
- package/2x/package.json +1 -1
- package/bundle/antd-mobile.cjs.development.js +2383 -2054
- package/bundle/antd-mobile.cjs.js +8 -7
- package/bundle/antd-mobile.compatible.umd.js +1 -1
- package/bundle/antd-mobile.es.development.js +1545 -1216
- package/bundle/antd-mobile.es.js +9230 -8978
- package/bundle/antd-mobile.umd.development.js +2380 -2051
- package/bundle/antd-mobile.umd.js +8 -7
- package/bundle/style.css +1 -1
- package/cjs/components/cascader/cascader.css +4 -0
- package/cjs/components/cascader/cascader.d.ts +5 -3
- package/cjs/components/cascader/cascader.js +6 -7
- package/cjs/components/cascader/index.d.ts +2 -1
- package/cjs/components/cascader-view/cascader-view.d.ts +8 -2
- package/cjs/components/cascader-view/cascader-view.js +13 -10
- package/cjs/components/cascader-view/index.d.ts +1 -1
- package/cjs/components/date-picker/date-picker-date-utils.js +4 -10
- package/cjs/components/date-picker/date-picker-week-utils.js +4 -4
- package/cjs/components/date-picker/date-picker.d.ts +1 -1
- package/cjs/components/date-picker/index.d.ts +1 -1
- package/cjs/components/dropdown/dropdown.d.ts +6 -0
- package/cjs/components/dropdown/dropdown.js +38 -7
- package/cjs/components/dropdown/index.d.ts +3 -0
- package/cjs/components/error-block/create-error-block.d.ts +3 -4
- package/cjs/components/error-block/create-error-block.js +2 -2
- package/cjs/components/error-block/images/busy.js +94 -89
- package/cjs/components/error-block/images/default.js +170 -165
- package/cjs/components/error-block/images/disconnected.js +127 -122
- package/cjs/components/error-block/images/empty.js +123 -118
- package/cjs/components/error-block/images/index.d.ts +1 -1
- package/cjs/components/error-block/images/index.js +2 -2
- package/cjs/components/floating-panel/floating-panel.d.ts +2 -0
- package/cjs/components/floating-panel/floating-panel.js +7 -3
- package/cjs/components/form/form-item.js +19 -11
- package/cjs/components/form/index.d.ts +1 -1
- package/cjs/components/input/input.d.ts +4 -2
- package/cjs/components/input/input.js +6 -4
- package/cjs/components/list/list-item.js +1 -1
- package/cjs/components/notice-bar/notice-bar.js +2 -1
- package/cjs/components/passcode-input/passcode-input.css +15 -0
- package/cjs/components/passcode-input/passcode-input.d.ts +2 -0
- package/cjs/components/passcode-input/passcode-input.js +6 -3
- package/cjs/components/popover/popover.js +11 -1
- package/cjs/components/popover/use-showing-guard.d.ts +12 -0
- package/cjs/components/popover/use-showing-guard.js +40 -0
- package/cjs/components/search-bar/search-bar.js +4 -5
- package/cjs/components/segmented/segmented.css +1 -0
- package/cjs/components/swipe-action/swipe-action.js +37 -21
- package/cjs/components/swiper/index.d.ts +3 -1
- package/cjs/components/swiper/swiper.d.ts +9 -2
- package/cjs/components/swiper/swiper.js +36 -18
- package/cjs/components/text-area/text-area.d.ts +1 -1
- package/cjs/components/text-area/text-area.js +4 -3
- package/cjs/components/virtual-input/use-click-outside.js +6 -4
- package/cjs/utils/convert-px.js +7 -2
- package/es/components/cascader/cascader.css +4 -0
- package/es/components/cascader/cascader.d.ts +5 -3
- package/es/components/cascader/cascader.js +7 -8
- package/es/components/cascader/index.d.ts +2 -1
- package/es/components/cascader-view/cascader-view.d.ts +8 -2
- package/es/components/cascader-view/cascader-view.js +12 -9
- package/es/components/cascader-view/index.d.ts +1 -1
- package/es/components/date-picker/date-picker-date-utils.js +4 -9
- package/es/components/date-picker/date-picker-week-utils.js +4 -4
- package/es/components/date-picker/date-picker.d.ts +1 -1
- package/es/components/date-picker/index.d.ts +1 -1
- package/es/components/dropdown/dropdown.d.ts +6 -0
- package/es/components/dropdown/dropdown.js +39 -8
- package/es/components/dropdown/index.d.ts +3 -0
- package/es/components/error-block/create-error-block.d.ts +3 -4
- package/es/components/error-block/create-error-block.js +2 -2
- package/es/components/error-block/images/busy.js +94 -89
- package/es/components/error-block/images/default.js +170 -165
- package/es/components/error-block/images/disconnected.js +127 -122
- package/es/components/error-block/images/empty.js +123 -118
- package/es/components/error-block/images/index.d.ts +1 -1
- package/es/components/error-block/images/index.js +2 -2
- package/es/components/floating-panel/floating-panel.d.ts +2 -0
- package/es/components/floating-panel/floating-panel.js +7 -3
- package/es/components/form/form-item.js +19 -11
- package/es/components/form/index.d.ts +1 -1
- package/es/components/input/input.d.ts +4 -2
- package/es/components/input/input.js +6 -4
- package/es/components/list/list-item.js +1 -1
- package/es/components/notice-bar/notice-bar.js +2 -1
- package/es/components/passcode-input/passcode-input.css +15 -0
- package/es/components/passcode-input/passcode-input.d.ts +2 -0
- package/es/components/passcode-input/passcode-input.js +6 -3
- package/es/components/popover/popover.js +11 -1
- package/es/components/popover/use-showing-guard.d.ts +12 -0
- package/es/components/popover/use-showing-guard.js +34 -0
- package/es/components/search-bar/search-bar.js +4 -5
- package/es/components/segmented/segmented.css +1 -0
- package/es/components/swipe-action/swipe-action.js +37 -21
- package/es/components/swiper/index.d.ts +3 -1
- package/es/components/swiper/swiper.d.ts +9 -2
- package/es/components/swiper/swiper.js +35 -19
- package/es/components/text-area/text-area.d.ts +1 -1
- package/es/components/text-area/text-area.js +4 -3
- package/es/components/virtual-input/use-click-outside.js +7 -4
- package/es/utils/convert-px.js +7 -2
- package/package.json +1 -1
- package/umd/antd-mobile.js +1 -1
|
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.Swiper = void 0;
|
|
7
|
+
exports.getSwipeToPosition = getSwipeToPosition;
|
|
8
|
+
exports.modulus = modulus;
|
|
7
9
|
var _web = require("@react-spring/web");
|
|
8
10
|
var _react = require("@use-gesture/react");
|
|
9
11
|
var _ahooks = require("ahooks");
|
|
@@ -53,7 +55,7 @@ const Swiper = (0, _react2.forwardRef)((0, _stagedComponents.staged)((p, ref) =>
|
|
|
53
55
|
const [uid] = (0, _react2.useState)({});
|
|
54
56
|
const timeoutRef = (0, _react2.useRef)(null);
|
|
55
57
|
const isVertical = direction === 'vertical';
|
|
56
|
-
const slideRatio = props.slideSize / 100;
|
|
58
|
+
const slideRatio = Math.max(props.slideSize, 1) / 100;
|
|
57
59
|
const offsetRatio = props.trackOffset / 100;
|
|
58
60
|
const {
|
|
59
61
|
validChildren,
|
|
@@ -162,7 +164,7 @@ const Swiper = (0, _react2.forwardRef)((0, _stagedComponents.staged)((p, ref) =>
|
|
|
162
164
|
const minIndex = Math.floor(offset / slidePixels);
|
|
163
165
|
const maxIndex = minIndex + 1;
|
|
164
166
|
const index = Math.round((offset + velocity * 2000 * direction) / slidePixels);
|
|
165
|
-
swipeTo((0, _bound.bound)(index, minIndex, maxIndex));
|
|
167
|
+
swipeTo((0, _bound.bound)(index, minIndex, maxIndex), 'swipe', false);
|
|
166
168
|
window.setTimeout(() => {
|
|
167
169
|
setDragging(false);
|
|
168
170
|
});
|
|
@@ -194,34 +196,43 @@ const Swiper = (0, _react2.forwardRef)((0, _stagedComponents.staged)((p, ref) =>
|
|
|
194
196
|
touch: true
|
|
195
197
|
}
|
|
196
198
|
});
|
|
197
|
-
function swipeTo(index, immediate = false) {
|
|
199
|
+
function swipeTo(index, source = 'swipe', immediate = false) {
|
|
198
200
|
var _a;
|
|
199
201
|
const roundedIndex = Math.round(index);
|
|
200
202
|
const targetIndex = loop ? modulus(roundedIndex, mergedTotal) : (0, _bound.bound)(roundedIndex, 0, mergedTotal - 1);
|
|
201
203
|
if (targetIndex !== getCurrent()) {
|
|
202
|
-
(_a = props.onIndexChange) === null || _a === void 0 ? void 0 : _a.call(props, targetIndex
|
|
204
|
+
(_a = props.onIndexChange) === null || _a === void 0 ? void 0 : _a.call(props, targetIndex, {
|
|
205
|
+
source
|
|
206
|
+
});
|
|
203
207
|
}
|
|
204
208
|
setCurrent(targetIndex);
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
+
if (loop) {
|
|
210
|
+
api.start({
|
|
211
|
+
position: getSwipeToPosition(position.get(), roundedIndex, mergedTotal),
|
|
212
|
+
immediate
|
|
213
|
+
});
|
|
214
|
+
} else {
|
|
215
|
+
api.start({
|
|
216
|
+
position: boundIndex(roundedIndex) * 100,
|
|
217
|
+
immediate
|
|
218
|
+
});
|
|
219
|
+
}
|
|
209
220
|
}
|
|
210
|
-
function swipeNext() {
|
|
211
|
-
swipeTo(Math.round(position.get() / 100) + 1);
|
|
221
|
+
function swipeNext(source = 'swipe') {
|
|
222
|
+
swipeTo(Math.round(position.get() / 100) + 1, source, false);
|
|
212
223
|
}
|
|
213
|
-
function swipePrev() {
|
|
214
|
-
swipeTo(Math.round(position.get() / 100) - 1);
|
|
224
|
+
function swipePrev(source = 'swipe') {
|
|
225
|
+
swipeTo(Math.round(position.get() / 100) - 1, source, false);
|
|
215
226
|
}
|
|
216
227
|
(0, _react2.useImperativeHandle)(ref, () => ({
|
|
217
|
-
swipeTo,
|
|
228
|
+
swipeTo: index => swipeTo(index, 'swipe', false),
|
|
218
229
|
swipeNext,
|
|
219
230
|
swipePrev
|
|
220
231
|
}));
|
|
221
232
|
(0, _ahooks.useIsomorphicLayoutEffect)(() => {
|
|
222
233
|
const maxIndex = mergedTotal - 1;
|
|
223
234
|
if (current > maxIndex) {
|
|
224
|
-
swipeTo(maxIndex, true);
|
|
235
|
+
swipeTo(maxIndex, 'resize', true);
|
|
225
236
|
}
|
|
226
237
|
});
|
|
227
238
|
const {
|
|
@@ -231,9 +242,9 @@ const Swiper = (0, _react2.forwardRef)((0, _stagedComponents.staged)((p, ref) =>
|
|
|
231
242
|
const runTimeSwiper = () => {
|
|
232
243
|
timeoutRef.current = window.setTimeout(() => {
|
|
233
244
|
if (autoplay === 'reverse') {
|
|
234
|
-
swipePrev();
|
|
245
|
+
swipePrev('auto');
|
|
235
246
|
} else {
|
|
236
|
-
swipeNext();
|
|
247
|
+
swipeNext('auto');
|
|
237
248
|
}
|
|
238
249
|
runTimeSwiper();
|
|
239
250
|
}, autoplayInterval);
|
|
@@ -250,11 +261,12 @@ const Swiper = (0, _react2.forwardRef)((0, _stagedComponents.staged)((p, ref) =>
|
|
|
250
261
|
function renderItem(index, child, key) {
|
|
251
262
|
let itemStyle = {};
|
|
252
263
|
if (loop) {
|
|
264
|
+
// 计算循环模式下定位所需的常量,避免在动画回调中重复计算
|
|
265
|
+
const totalWidth = mergedTotal * 100;
|
|
266
|
+
const flagWidth = Math.min(totalWidth / 2, (offsetRatio / slideRatio + 1) * 100);
|
|
253
267
|
itemStyle = {
|
|
254
268
|
[isVertical ? 'y' : 'x']: position.to(position => {
|
|
255
269
|
let finalPosition = -position + index * 100;
|
|
256
|
-
const totalWidth = mergedTotal * 100;
|
|
257
|
-
const flagWidth = totalWidth / 2;
|
|
258
270
|
finalPosition = modulus(finalPosition + flagWidth, totalWidth) - flagWidth;
|
|
259
271
|
return `${finalPosition}%`;
|
|
260
272
|
}),
|
|
@@ -358,4 +370,10 @@ exports.Swiper = Swiper;
|
|
|
358
370
|
function modulus(value, division) {
|
|
359
371
|
const remainder = value % division;
|
|
360
372
|
return remainder < 0 ? remainder + division : remainder;
|
|
373
|
+
}
|
|
374
|
+
function getSwipeToPosition(current, targetIndex, total) {
|
|
375
|
+
const totalWidth = 100 * total;
|
|
376
|
+
let delta = modulus(targetIndex * 100 - current, totalWidth);
|
|
377
|
+
if (delta > totalWidth / 2) delta -= totalWidth;
|
|
378
|
+
return current + delta;
|
|
361
379
|
}
|
|
@@ -23,7 +23,7 @@ export declare type TextAreaRef = {
|
|
|
23
23
|
blur: () => void;
|
|
24
24
|
nativeElement: HTMLTextAreaElement | null;
|
|
25
25
|
};
|
|
26
|
-
export declare const TextArea: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "onClick" | "disabled" | "onCompositionEnd" | "onCompositionStart" | "onFocus" | "onBlur" | "onKeyDown" | "autoFocus" | "
|
|
26
|
+
export declare const TextArea: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "onClick" | "disabled" | "name" | "onCompositionEnd" | "onCompositionStart" | "onFocus" | "onBlur" | "onKeyDown" | "autoFocus" | "autoComplete" | "readOnly"> & {
|
|
27
27
|
onChange?: ((val: string) => void) | undefined;
|
|
28
28
|
value?: string | undefined;
|
|
29
29
|
defaultValue?: string | undefined;
|
|
@@ -102,7 +102,7 @@ const TextArea = (0, _react.forwardRef)((p, ref) => {
|
|
|
102
102
|
}
|
|
103
103
|
return (0, _nativeProps.withNativeProps)(props, _react.default.createElement("div", {
|
|
104
104
|
className: classPrefix
|
|
105
|
-
}, _react.default.createElement("textarea", {
|
|
105
|
+
}, _react.default.createElement("textarea", Object.assign({
|
|
106
106
|
ref: nativeTextAreaRef,
|
|
107
107
|
className: `${classPrefix}-element`,
|
|
108
108
|
rows: rows,
|
|
@@ -138,9 +138,10 @@ const TextArea = (0, _react.forwardRef)((p, ref) => {
|
|
|
138
138
|
onFocus: props.onFocus,
|
|
139
139
|
onBlur: props.onBlur,
|
|
140
140
|
onClick: props.onClick,
|
|
141
|
-
onKeyDown: handleKeydown
|
|
141
|
+
onKeyDown: handleKeydown
|
|
142
|
+
}, {
|
|
142
143
|
enterKeyHint: props.enterKeyHint
|
|
143
|
-
}), count, autoSize && _react.default.createElement("textarea", {
|
|
144
|
+
})), count, autoSize && _react.default.createElement("textarea", {
|
|
144
145
|
ref: hiddenTextAreaRef,
|
|
145
146
|
className: `${classPrefix}-element ${classPrefix}-element-hidden`,
|
|
146
147
|
value: value,
|
|
@@ -4,15 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
+
var _rcUtil = require("rc-util");
|
|
7
8
|
var _react = require("react");
|
|
8
9
|
// 监听点击组件外部的事件
|
|
9
10
|
function useClickOutside(handler, ref, hasKeyboardProps = false) {
|
|
11
|
+
const stableHandler = (0, _rcUtil.useEvent)(handler);
|
|
10
12
|
(0, _react.useEffect)(() => {
|
|
11
13
|
function handleClick(event) {
|
|
12
14
|
if (!ref.current || ref.current.contains(event.target)) {
|
|
13
15
|
return;
|
|
14
16
|
}
|
|
15
|
-
|
|
17
|
+
stableHandler(event); // 使用 ref 中的 handler
|
|
16
18
|
}
|
|
17
19
|
// 向前兼容逻辑:
|
|
18
20
|
// 1. 对于有键盘属性的 VirtualInput,在捕获阶段监听:
|
|
@@ -21,11 +23,11 @@ function useClickOutside(handler, ref, hasKeyboardProps = false) {
|
|
|
21
23
|
// 这种情况通常是 VirtualInput + NumberKeyboard 为兄弟关系,在以前版本中点击 NumberKeyboard **不会**触发 VirtualInput 的 blur 事件
|
|
22
24
|
// 原先原理:通过 NumberKeyboard 内部 onMouseDown 时 preventDefault 阻止的 VirtualInput 内原生的 blur 事件
|
|
23
25
|
// 新的原理:NumberKeyboard 的 Popup 默认会 stopPropagation click, 这里在冒泡阶段监听不到,不会调用 VirtualInput 的 onBlur 回调(非原生事件)。
|
|
24
|
-
document.addEventListener('click', handleClick, hasKeyboardProps
|
|
26
|
+
document.addEventListener('click', handleClick, hasKeyboardProps);
|
|
25
27
|
return () => {
|
|
26
|
-
document.removeEventListener('click', handleClick, hasKeyboardProps
|
|
28
|
+
document.removeEventListener('click', handleClick, hasKeyboardProps);
|
|
27
29
|
};
|
|
28
|
-
}, [
|
|
30
|
+
}, [ref]); // 只依赖 ref,不依赖 handler
|
|
29
31
|
}
|
|
30
32
|
var _default = useClickOutside;
|
|
31
33
|
exports.default = _default;
|
package/cjs/utils/convert-px.js
CHANGED
|
@@ -5,11 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.convertPx = convertPx;
|
|
7
7
|
var _canUseDom = require("./can-use-dom");
|
|
8
|
-
var _isDev = require("./is-dev");
|
|
9
8
|
var _devLog = require("./dev-log");
|
|
9
|
+
var _isDev = require("./is-dev");
|
|
10
10
|
let tenPxTester = null;
|
|
11
11
|
let tester = null;
|
|
12
|
-
|
|
12
|
+
function initialize() {
|
|
13
|
+
if (tenPxTester !== null) return;
|
|
14
|
+
if (!_canUseDom.canUseDom || !document.body) return;
|
|
13
15
|
tenPxTester = document.createElement('div');
|
|
14
16
|
tenPxTester.className = 'adm-px-tester';
|
|
15
17
|
tenPxTester.style.setProperty('--size', '10');
|
|
@@ -24,6 +26,9 @@ if (_canUseDom.canUseDom) {
|
|
|
24
26
|
}
|
|
25
27
|
}
|
|
26
28
|
function convertPx(px) {
|
|
29
|
+
if (tenPxTester === null) {
|
|
30
|
+
initialize();
|
|
31
|
+
}
|
|
27
32
|
if (tenPxTester === null || tester === null) return px;
|
|
28
33
|
if (tenPxTester.getBoundingClientRect().height === 10) {
|
|
29
34
|
return px;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React, { ReactNode } from 'react';
|
|
2
|
-
import { PopupProps } from '../popup';
|
|
3
|
-
import { CascaderValue, CascaderValueExtend, CascaderOption } from '../cascader-view';
|
|
4
|
-
import { NativeProps } from '../../utils/native-props';
|
|
5
2
|
import type { FieldNamesType } from '../../hooks';
|
|
3
|
+
import { NativeProps } from '../../utils/native-props';
|
|
4
|
+
import { CascaderOption, CascaderValue, CascaderValueExtend, CascaderViewOptionRender } from '../cascader-view';
|
|
5
|
+
import { PopupProps } from '../popup';
|
|
6
6
|
export declare type CascaderActions = {
|
|
7
7
|
open: () => void;
|
|
8
8
|
close: () => void;
|
|
@@ -27,6 +27,7 @@ export declare type CascaderProps = {
|
|
|
27
27
|
onTabsChange?: (index: number) => void;
|
|
28
28
|
activeIcon?: ReactNode;
|
|
29
29
|
fieldNames?: FieldNamesType;
|
|
30
|
+
optionRender?: CascaderViewOptionRender;
|
|
30
31
|
} & Pick<PopupProps, 'getContainer' | 'afterShow' | 'afterClose' | 'onClick' | 'stopPropagation' | 'destroyOnClose' | 'forceRender'> & NativeProps;
|
|
31
32
|
export declare const Cascader: React.ForwardRefExoticComponent<{
|
|
32
33
|
options: CascaderOption[];
|
|
@@ -46,6 +47,7 @@ export declare const Cascader: React.ForwardRefExoticComponent<{
|
|
|
46
47
|
onTabsChange?: ((index: number) => void) | undefined;
|
|
47
48
|
activeIcon?: ReactNode;
|
|
48
49
|
fieldNames?: FieldNamesType | undefined;
|
|
50
|
+
optionRender?: CascaderViewOptionRender | undefined;
|
|
49
51
|
} & Pick<PopupProps, "onClick" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation"> & {
|
|
50
52
|
className?: string | undefined;
|
|
51
53
|
style?: (React.CSSProperties & Partial<Record<never, string>>) | undefined;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
import
|
|
3
|
-
import { mergeProps } from '../../utils/with-default-props';
|
|
1
|
+
import React, { forwardRef, useEffect, useImperativeHandle, useState } from 'react';
|
|
2
|
+
import { useFieldNames } from '../../hooks';
|
|
4
3
|
import { withNativeProps } from '../../utils/native-props';
|
|
5
4
|
import { usePropsValue } from '../../utils/use-props-value';
|
|
5
|
+
import { mergeProps } from '../../utils/with-default-props';
|
|
6
6
|
import CascaderView from '../cascader-view';
|
|
7
|
-
import { useConfig } from '../config-provider';
|
|
8
7
|
import { useCascaderValueExtend } from '../cascader-view/use-cascader-value-extend';
|
|
9
|
-
import {
|
|
8
|
+
import { useConfig } from '../config-provider';
|
|
9
|
+
import Popup from '../popup';
|
|
10
10
|
const classPrefix = `adm-cascader`;
|
|
11
11
|
const defaultProps = {
|
|
12
12
|
defaultValue: [],
|
|
@@ -58,9 +58,7 @@ export const Cascader = forwardRef((p, ref) => {
|
|
|
58
58
|
});
|
|
59
59
|
const [innerValue, setInnerValue] = useState(value);
|
|
60
60
|
useEffect(() => {
|
|
61
|
-
|
|
62
|
-
setInnerValue(value);
|
|
63
|
-
}
|
|
61
|
+
setInnerValue(value);
|
|
64
62
|
}, [visible, value]);
|
|
65
63
|
const cascaderElement = withNativeProps(props, React.createElement("div", {
|
|
66
64
|
className: classPrefix
|
|
@@ -94,6 +92,7 @@ export const Cascader = forwardRef((p, ref) => {
|
|
|
94
92
|
}
|
|
95
93
|
})))));
|
|
96
94
|
const popupElement = React.createElement(Popup, {
|
|
95
|
+
className: `${classPrefix}-popup`,
|
|
97
96
|
visible: visible,
|
|
98
97
|
position: 'bottom',
|
|
99
98
|
onMaskClick: () => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { prompt } from './prompt';
|
|
2
2
|
import './cascader.less';
|
|
3
3
|
export type { CascaderProps, CascaderRef, CascaderActions } from './cascader';
|
|
4
|
-
export type { CascaderValue, CascaderValueExtend, CascaderOption, } from '../cascader-view';
|
|
4
|
+
export type { CascaderValue, CascaderValueExtend, CascaderOption, CascaderViewOptionRender, CascaderViewOptionRenderInfo, } from '../cascader-view';
|
|
5
5
|
declare const _default: import("react").ForwardRefExoticComponent<{
|
|
6
6
|
options: import("../cascader-view").CascaderOption[];
|
|
7
7
|
value?: import("../check-list").CheckListValue[] | undefined;
|
|
@@ -20,6 +20,7 @@ declare const _default: import("react").ForwardRefExoticComponent<{
|
|
|
20
20
|
onTabsChange?: ((index: number) => void) | undefined;
|
|
21
21
|
activeIcon?: import("react").ReactNode;
|
|
22
22
|
fieldNames?: import("../../hooks").FieldNamesType | undefined;
|
|
23
|
+
optionRender?: import("../cascader-view").CascaderViewOptionRender | undefined;
|
|
23
24
|
} & Pick<import("../popup").PopupProps, "onClick" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation"> & {
|
|
24
25
|
className?: string | undefined;
|
|
25
26
|
style?: (import("react").CSSProperties & Partial<Record<never, string>>) | undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { FC, ReactNode } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { BaseOptionType, FieldNamesType } from '../../hooks';
|
|
3
3
|
import { NativeProps } from '../../utils/native-props';
|
|
4
|
-
import
|
|
4
|
+
import { CheckListValue } from '../check-list';
|
|
5
5
|
export declare type CascaderValue = CheckListValue;
|
|
6
6
|
export declare type CascaderOption = {
|
|
7
7
|
label?: string;
|
|
@@ -13,6 +13,11 @@ export declare type CascaderValueExtend = {
|
|
|
13
13
|
items: (CascaderOption | null)[];
|
|
14
14
|
isLeaf: boolean;
|
|
15
15
|
};
|
|
16
|
+
export declare type CascaderViewOptionRenderInfo = {
|
|
17
|
+
depth: number;
|
|
18
|
+
active: boolean;
|
|
19
|
+
};
|
|
20
|
+
export declare type CascaderViewOptionRender = (option: CascaderOption, info: CascaderViewOptionRenderInfo) => ReactNode;
|
|
16
21
|
export declare type CascaderViewProps = {
|
|
17
22
|
options: CascaderOption[];
|
|
18
23
|
value?: CascaderValue[];
|
|
@@ -23,5 +28,6 @@ export declare type CascaderViewProps = {
|
|
|
23
28
|
activeIcon?: ReactNode;
|
|
24
29
|
loading?: boolean;
|
|
25
30
|
fieldNames?: FieldNamesType;
|
|
31
|
+
optionRender?: CascaderViewOptionRender;
|
|
26
32
|
} & NativeProps<'--height'>;
|
|
27
33
|
export declare const CascaderView: FC<CascaderViewProps>;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { useUpdateEffect } from 'ahooks';
|
|
2
2
|
import classNames from 'classnames';
|
|
3
|
-
import
|
|
4
|
-
import
|
|
3
|
+
import React, { useEffect, useMemo, useState } from 'react';
|
|
4
|
+
import { useFieldNames } from '../../hooks';
|
|
5
5
|
import { withNativeProps } from '../../utils/native-props';
|
|
6
|
-
import { mergeProps } from '../../utils/with-default-props';
|
|
7
6
|
import { usePropsValue } from '../../utils/use-props-value';
|
|
8
|
-
import {
|
|
7
|
+
import { mergeProps } from '../../utils/with-default-props';
|
|
8
|
+
import CheckList from '../check-list';
|
|
9
9
|
import { useConfig } from '../config-provider';
|
|
10
|
-
import { optionSkeleton } from './option-skeleton';
|
|
11
10
|
import Skeleton from '../skeleton';
|
|
12
|
-
import
|
|
13
|
-
import {
|
|
11
|
+
import Tabs from '../tabs';
|
|
12
|
+
import { optionSkeleton } from './option-skeleton';
|
|
13
|
+
import { useCascaderValueExtend } from './use-cascader-value-extend';
|
|
14
14
|
const classPrefix = `adm-cascader-view`;
|
|
15
15
|
const defaultProps = {
|
|
16
16
|
defaultValue: []
|
|
@@ -125,7 +125,10 @@ export const CascaderView = p => {
|
|
|
125
125
|
className: classNames(`${classPrefix}-item`, {
|
|
126
126
|
[`${classPrefix}-item-active`]: active
|
|
127
127
|
})
|
|
128
|
-
}, option
|
|
128
|
+
}, props.optionRender ? props.optionRender(option, {
|
|
129
|
+
depth: index,
|
|
130
|
+
active
|
|
131
|
+
}) : option[labelName]);
|
|
129
132
|
}))));
|
|
130
133
|
}))));
|
|
131
134
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import './cascader-view.less';
|
|
2
|
-
export type { CascaderViewProps, CascaderValue, CascaderValueExtend, CascaderOption, } from './cascader-view';
|
|
2
|
+
export type { CascaderViewProps, CascaderViewOptionRender, CascaderViewOptionRenderInfo, CascaderValue, CascaderValueExtend, CascaderOption, } from './cascader-view';
|
|
3
3
|
declare const _default: import("react").FC<import("./cascader-view").CascaderViewProps> & {
|
|
4
4
|
optionSkeleton: import("./cascader-view").CascaderOption[];
|
|
5
5
|
};
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
import dayjs from 'dayjs';
|
|
2
|
-
import isLeapYear from 'dayjs/plugin/isLeapYear';
|
|
3
|
-
import isoWeek from 'dayjs/plugin/isoWeek';
|
|
4
|
-
import isoWeeksInYear from 'dayjs/plugin/isoWeeksInYear';
|
|
5
1
|
import { TILL_NOW } from './util';
|
|
6
|
-
dayjs.extend(isoWeek);
|
|
7
|
-
dayjs.extend(isoWeeksInYear);
|
|
8
|
-
dayjs.extend(isLeapYear);
|
|
9
2
|
const precisionRankRecord = {
|
|
10
3
|
year: 0,
|
|
11
4
|
month: 1,
|
|
@@ -14,6 +7,9 @@ const precisionRankRecord = {
|
|
|
14
7
|
minute: 4,
|
|
15
8
|
second: 5
|
|
16
9
|
};
|
|
10
|
+
function getMonthDays(year, month) {
|
|
11
|
+
return new Date(Date.UTC(year, month, 0)).getUTCDate();
|
|
12
|
+
}
|
|
17
13
|
export function generateDatePickerColumns(selected, min, max, precision, renderLabel, filter, tillNow) {
|
|
18
14
|
const ret = [];
|
|
19
15
|
const minYear = min.getFullYear();
|
|
@@ -30,7 +26,6 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
|
|
|
30
26
|
const maxSecond = max.getSeconds();
|
|
31
27
|
const rank = precisionRankRecord[precision];
|
|
32
28
|
const selectedYear = parseInt(selected[0]);
|
|
33
|
-
const firstDayInSelectedMonth = dayjs(convertStringArrayToDate([selected[0], selected[1], '1']));
|
|
34
29
|
const selectedMonth = parseInt(selected[1]);
|
|
35
30
|
const selectedDay = parseInt(selected[2]);
|
|
36
31
|
const selectedHour = parseInt(selected[3]);
|
|
@@ -87,7 +82,7 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
|
|
|
87
82
|
}
|
|
88
83
|
if (rank >= precisionRankRecord.day) {
|
|
89
84
|
const lower = isInMinMonth ? minDay : 1;
|
|
90
|
-
const upper = isInMaxMonth ? maxDay :
|
|
85
|
+
const upper = isInMaxMonth ? maxDay : getMonthDays(selectedYear, selectedMonth);
|
|
91
86
|
const days = generateColumn(lower, upper, 'day');
|
|
92
87
|
ret.push(days.map(v => ({
|
|
93
88
|
label: renderLabel('day', v, {
|
|
@@ -12,14 +12,14 @@ const precisionRankRecord = {
|
|
|
12
12
|
};
|
|
13
13
|
export function generateDatePickerColumns(selected, min, max, precision, renderLabel, filter) {
|
|
14
14
|
const ret = [];
|
|
15
|
-
const
|
|
16
|
-
const
|
|
15
|
+
const minDay = dayjs(min);
|
|
16
|
+
const maxDay = dayjs(max);
|
|
17
|
+
const minYear = minDay.isoWeekYear();
|
|
18
|
+
const maxYear = maxDay.isoWeekYear();
|
|
17
19
|
const rank = precisionRankRecord[precision];
|
|
18
20
|
const selectedYear = parseInt(selected[0]);
|
|
19
21
|
const isInMinYear = selectedYear === minYear;
|
|
20
22
|
const isInMaxYear = selectedYear === maxYear;
|
|
21
|
-
const minDay = dayjs(min);
|
|
22
|
-
const maxDay = dayjs(max);
|
|
23
23
|
const minWeek = minDay.isoWeek();
|
|
24
24
|
const maxWeek = maxDay.isoWeek();
|
|
25
25
|
const minWeekday = minDay.isoWeekday();
|
|
@@ -19,7 +19,7 @@ export declare type DatePickerProps = Pick<PickerProps, 'onCancel' | 'onClose' |
|
|
|
19
19
|
filter?: DatePickerFilter;
|
|
20
20
|
tillNow?: boolean;
|
|
21
21
|
} & NativeProps;
|
|
22
|
-
export declare const DatePicker: React.ForwardRefExoticComponent<Pick<PickerProps, "style" | "title" | "onClick" | "visible" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation" | "
|
|
22
|
+
export declare const DatePicker: React.ForwardRefExoticComponent<Pick<PickerProps, "style" | "title" | "onClick" | "visible" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation" | "onCancel" | "onClose" | "loading" | "closeOnMaskClick" | "cancelText" | "confirmText" | "mouseWheel" | "loadingContent"> & {
|
|
23
23
|
value?: PickerDate | null | undefined;
|
|
24
24
|
defaultValue?: PickerDate | null | undefined;
|
|
25
25
|
onSelect?: ((value: PickerDate) => void) | undefined;
|
|
@@ -2,7 +2,7 @@ import './date-picker.less';
|
|
|
2
2
|
import { prompt } from './prompt';
|
|
3
3
|
export type { DatePickerProps, DatePickerRef } from './date-picker';
|
|
4
4
|
export type { DatePickerFilter } from './date-picker-utils';
|
|
5
|
-
declare const _default: import("react").ForwardRefExoticComponent<Pick<import("../picker").PickerProps, "style" | "title" | "onClick" | "visible" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation" | "
|
|
5
|
+
declare const _default: import("react").ForwardRefExoticComponent<Pick<import("../picker").PickerProps, "style" | "title" | "onClick" | "visible" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation" | "onCancel" | "onClose" | "loading" | "closeOnMaskClick" | "cancelText" | "confirmText" | "mouseWheel" | "loadingContent"> & {
|
|
6
6
|
value?: import("./util").PickerDate | null | undefined;
|
|
7
7
|
defaultValue?: import("./util").PickerDate | null | undefined;
|
|
8
8
|
onSelect?: ((value: import("./util").PickerDate) => void) | undefined;
|
|
@@ -8,6 +8,9 @@ export declare type DropdownProps = {
|
|
|
8
8
|
closeOnMaskClick?: boolean;
|
|
9
9
|
closeOnClickAway?: boolean;
|
|
10
10
|
onChange?: (key: string | null) => void;
|
|
11
|
+
onVisibleChange?: (visible: boolean, info: {
|
|
12
|
+
key: string | null;
|
|
13
|
+
}) => void;
|
|
11
14
|
arrowIcon?: ReactNode;
|
|
12
15
|
/**
|
|
13
16
|
* @deprecated use `arrowIcon` instead
|
|
@@ -24,6 +27,9 @@ declare const Dropdown: React.ForwardRefExoticComponent<{
|
|
|
24
27
|
closeOnMaskClick?: boolean | undefined;
|
|
25
28
|
closeOnClickAway?: boolean | undefined;
|
|
26
29
|
onChange?: ((key: string | null) => void) | undefined;
|
|
30
|
+
onVisibleChange?: ((visible: boolean, info: {
|
|
31
|
+
key: string | null;
|
|
32
|
+
}) => void) | undefined;
|
|
27
33
|
arrowIcon?: ReactNode;
|
|
28
34
|
/**
|
|
29
35
|
* @deprecated use `arrowIcon` instead
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { useClickAway } from 'ahooks';
|
|
2
2
|
import classNames from 'classnames';
|
|
3
|
-
import
|
|
3
|
+
import raf from 'rc-util/lib/raf';
|
|
4
|
+
import React, { cloneElement, forwardRef, isValidElement, useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';
|
|
4
5
|
import { withNativeProps } from '../../utils/native-props';
|
|
5
6
|
import { usePropsValue } from '../../utils/use-props-value';
|
|
6
7
|
import { mergeProp, mergeProps } from '../../utils/with-default-props';
|
|
@@ -27,6 +28,8 @@ const Dropdown = forwardRef((props, ref) => {
|
|
|
27
28
|
defaultValue: mergedProps.defaultActiveKey,
|
|
28
29
|
onChange: mergedProps.onChange
|
|
29
30
|
});
|
|
31
|
+
const cacheKeyRef = useRef(null);
|
|
32
|
+
cacheKeyRef.current = value !== null && value !== void 0 ? value : cacheKeyRef.current;
|
|
30
33
|
const navRef = useRef(null);
|
|
31
34
|
const contentRef = useRef(null);
|
|
32
35
|
// 点击外部区域,关闭
|
|
@@ -37,14 +40,30 @@ const Dropdown = forwardRef((props, ref) => {
|
|
|
37
40
|
// 计算 navs 的 top 值
|
|
38
41
|
const [top, setTop] = useState();
|
|
39
42
|
const containerRef = useRef(null);
|
|
40
|
-
|
|
43
|
+
const rafIdRef = useRef(0);
|
|
44
|
+
const updatePosition = useCallback(() => {
|
|
41
45
|
const container = containerRef.current;
|
|
42
46
|
if (!container) return;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
setTop(container.getBoundingClientRect().bottom);
|
|
48
|
+
}, []);
|
|
49
|
+
const updateTop = useCallback(() => {
|
|
50
|
+
raf.cancel(rafIdRef.current);
|
|
51
|
+
rafIdRef.current = raf(updatePosition);
|
|
52
|
+
}, [updatePosition]);
|
|
53
|
+
useEffect(() => {
|
|
54
|
+
if (!value) return;
|
|
55
|
+
updatePosition();
|
|
56
|
+
window.addEventListener('scroll', updateTop, {
|
|
57
|
+
passive: true,
|
|
58
|
+
capture: true
|
|
59
|
+
});
|
|
60
|
+
window.addEventListener('resize', updateTop);
|
|
61
|
+
return () => {
|
|
62
|
+
raf.cancel(rafIdRef.current);
|
|
63
|
+
window.removeEventListener('scroll', updateTop, true);
|
|
64
|
+
window.removeEventListener('resize', updateTop);
|
|
65
|
+
};
|
|
66
|
+
}, [value, updateTop, updatePosition]);
|
|
48
67
|
const changeActive = key => {
|
|
49
68
|
if (value === key) {
|
|
50
69
|
setValue(null);
|
|
@@ -99,7 +118,19 @@ const Dropdown = forwardRef((props, ref) => {
|
|
|
99
118
|
forceRender: popupForceRender,
|
|
100
119
|
onMaskClick: mergedProps.closeOnMaskClick ? () => {
|
|
101
120
|
changeActive(null);
|
|
102
|
-
} : undefined
|
|
121
|
+
} : undefined,
|
|
122
|
+
afterShow: () => {
|
|
123
|
+
var _a;
|
|
124
|
+
(_a = mergedProps.onVisibleChange) === null || _a === void 0 ? void 0 : _a.call(mergedProps, true, {
|
|
125
|
+
key: cacheKeyRef.current
|
|
126
|
+
});
|
|
127
|
+
},
|
|
128
|
+
afterClose: () => {
|
|
129
|
+
var _a;
|
|
130
|
+
(_a = mergedProps.onVisibleChange) === null || _a === void 0 ? void 0 : _a.call(mergedProps, false, {
|
|
131
|
+
key: cacheKeyRef.current
|
|
132
|
+
});
|
|
133
|
+
}
|
|
103
134
|
}, React.createElement("div", {
|
|
104
135
|
ref: contentRef
|
|
105
136
|
}, items.map(item => {
|
|
@@ -7,6 +7,9 @@ declare const _default: import("react").ForwardRefExoticComponent<{
|
|
|
7
7
|
closeOnMaskClick?: boolean | undefined;
|
|
8
8
|
closeOnClickAway?: boolean | undefined;
|
|
9
9
|
onChange?: ((key: string | null) => void) | undefined;
|
|
10
|
+
onVisibleChange?: ((visible: boolean, info: {
|
|
11
|
+
key: string | null;
|
|
12
|
+
}) => void) | undefined;
|
|
10
13
|
arrowIcon?: import("react").ReactNode;
|
|
11
14
|
arrow?: import("react").ReactNode;
|
|
12
15
|
getContainer?: import("../../utils/render-to-container").GetContainer | undefined;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type { ReactNode, ReactElement } from 'react';
|
|
3
|
-
import { NativeProps } from '../../utils/native-props';
|
|
1
|
+
import type { FC, ReactElement, ReactNode } from 'react';
|
|
4
2
|
import type { ErrorBlockStatus, ImageRecord } from '.';
|
|
3
|
+
import { NativeProps } from '../../utils/native-props';
|
|
5
4
|
import './error-block.less';
|
|
6
5
|
export declare type ErrorBlockProps = {
|
|
7
6
|
status?: ErrorBlockStatus;
|
|
@@ -11,4 +10,4 @@ export declare type ErrorBlockProps = {
|
|
|
11
10
|
fullPage?: boolean;
|
|
12
11
|
children?: ReactNode;
|
|
13
12
|
} & NativeProps<'--image-height' | '--image-height-full-page' | '--image-width' | '--image-width-full-page'>;
|
|
14
|
-
export declare function createErrorBlock(imageRecord: ImageRecord):
|
|
13
|
+
export declare function createErrorBlock(imageRecord: ImageRecord): FC<ErrorBlockProps>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import classNames from 'classnames';
|
|
3
|
-
import
|
|
2
|
+
import React from 'react';
|
|
4
3
|
import { withNativeProps } from '../../utils/native-props';
|
|
4
|
+
import { mergeProps } from '../../utils/with-default-props';
|
|
5
5
|
import { useConfig } from '../config-provider';
|
|
6
6
|
import "./error-block.css";
|
|
7
7
|
const classPrefix = `adm-error-block`;
|