antd-mobile 5.0.0-rc.22 → 5.0.0-rc.26
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/README.md +7 -6
- package/2x/cjs/components/badge/badge.css +18 -10
- package/2x/cjs/components/badge/badge.d.ts +1 -0
- package/2x/cjs/components/badge/badge.js +4 -5
- package/2x/cjs/components/button/button.css +3 -3
- package/2x/cjs/components/calendar/calendar.js +3 -1
- package/2x/cjs/components/cascade-picker-view/cascade-picker-view.d.ts +1 -2
- package/2x/cjs/components/checkbox/check-icon.js +4 -13
- package/2x/cjs/components/checkbox/checkbox.css +5 -14
- package/2x/cjs/components/checkbox/checkbox.js +3 -5
- package/2x/cjs/components/checkbox/indeterminate-icon.d.ts +3 -0
- package/2x/cjs/components/checkbox/indeterminate-icon.js +24 -0
- package/2x/cjs/components/date-picker/date-picker.d.ts +1 -1
- package/2x/cjs/components/date-picker-view/date-picker-view.d.ts +3 -2
- package/2x/cjs/components/ellipsis/ellipsis.js +3 -1
- package/2x/cjs/components/floating-bubble/floating-bubble.css +1 -0
- package/2x/cjs/components/floating-panel/floating-panel.d.ts +7 -5
- package/2x/cjs/components/floating-panel/floating-panel.js +11 -1
- package/2x/cjs/components/form/form-item.css +3 -2
- package/2x/cjs/components/form/form-item.d.ts +2 -2
- package/2x/cjs/components/form/form-item.js +9 -5
- package/2x/cjs/components/form/form.css +3 -3
- package/2x/cjs/components/form/form.d.ts +5 -4
- package/2x/cjs/components/form/index.css +6 -5
- package/2x/cjs/components/form/index.d.ts +5 -4
- package/2x/cjs/components/image-uploader/image-uploader.js +1 -1
- package/2x/cjs/components/image-viewer/image-viewer.d.ts +8 -2
- package/2x/cjs/components/image-viewer/image-viewer.js +19 -6
- package/2x/cjs/components/image-viewer/index.d.ts +6 -2
- package/2x/cjs/components/image-viewer/slide.js +2 -1
- package/2x/cjs/components/image-viewer/slides.d.ts +7 -3
- package/2x/cjs/components/image-viewer/slides.js +18 -11
- package/2x/cjs/components/input/input.d.ts +2 -2
- package/2x/cjs/components/input/input.js +7 -3
- package/2x/cjs/components/list/list.css +2 -6
- package/2x/cjs/components/modal/modal.css +25 -20
- package/2x/cjs/components/modal/modal.js +8 -12
- package/2x/cjs/components/passcode-input/passcode-input.d.ts +2 -2
- package/2x/cjs/components/picker/picker.css +10 -2
- package/2x/cjs/components/picker/picker.d.ts +1 -1
- package/2x/cjs/components/picker-view/picker-view.css +4 -2
- package/2x/cjs/components/picker-view/picker-view.d.ts +1 -1
- package/2x/cjs/components/picker-view/wheel.js +5 -3
- package/2x/cjs/components/popover/arrow.d.ts +3 -0
- package/2x/cjs/components/popover/arrow.js +26 -0
- package/2x/cjs/components/popover/index.d.ts +7 -15
- package/2x/cjs/components/popover/index.js +4 -2
- package/2x/cjs/components/popover/popover-menu.css +63 -0
- package/2x/cjs/components/popover/popover-menu.d.ts +20 -0
- package/{cjs/components/popover/pop-menu.js → 2x/cjs/components/popover/popover-menu.js} +23 -26
- package/2x/cjs/components/popover/popover.css +90 -318
- package/2x/cjs/components/popover/popover.d.ts +9 -8
- package/2x/cjs/components/popover/popover.js +11 -17
- package/2x/cjs/components/radio/radio.css +4 -7
- package/2x/cjs/components/radio/radio.js +1 -3
- package/2x/cjs/components/search-bar/search-bar.css +1 -1
- package/2x/cjs/components/selector/selector.css +14 -6
- package/2x/cjs/components/selector/selector.d.ts +2 -1
- package/2x/cjs/components/selector/selector.js +3 -2
- package/2x/cjs/components/swiper/swiper.js +1 -1
- package/2x/cjs/components/switch/switch.css +8 -3
- package/2x/cjs/components/tabs/tabs.js +2 -2
- package/2x/cjs/components/text-area/text-area.css +9 -9
- package/2x/cjs/components/text-area/text-area.d.ts +2 -2
- package/2x/cjs/components/text-area/text-area.js +41 -32
- package/2x/cjs/components/virtual-input/virtual-input.js +3 -1
- package/2x/cjs/utils/get-scroll-parent.js +1 -1
- package/2x/cjs/utils/use-ref-state.js +1 -1
- package/2x/cjs/utils/use-resize-effect.js +1 -3
- package/2x/cjs/utils/use-tab-list-scroll.js +1 -3
- package/2x/es/components/badge/badge.css +18 -10
- package/2x/es/components/badge/badge.d.ts +1 -0
- package/2x/es/components/badge/badge.js +4 -5
- package/2x/es/components/button/button.css +3 -3
- package/2x/es/components/calendar/calendar.js +3 -2
- package/2x/es/components/cascade-picker-view/cascade-picker-view.d.ts +1 -2
- package/2x/es/components/checkbox/check-icon.js +4 -13
- package/2x/es/components/checkbox/checkbox.css +5 -14
- package/2x/es/components/checkbox/checkbox.js +2 -5
- package/2x/es/components/checkbox/indeterminate-icon.d.ts +3 -0
- package/2x/es/components/checkbox/indeterminate-icon.js +10 -0
- package/2x/es/components/date-picker/date-picker.d.ts +1 -1
- package/2x/es/components/date-picker-view/date-picker-view.d.ts +3 -2
- package/2x/es/components/ellipsis/ellipsis.js +3 -2
- package/2x/es/components/floating-bubble/floating-bubble.css +1 -0
- package/2x/es/components/floating-panel/floating-panel.d.ts +7 -5
- package/2x/es/components/floating-panel/floating-panel.js +9 -1
- package/2x/es/components/form/form-item.css +3 -2
- package/2x/es/components/form/form-item.d.ts +2 -2
- package/2x/es/components/form/form-item.js +9 -5
- package/2x/es/components/form/form.css +3 -3
- package/2x/es/components/form/form.d.ts +5 -4
- package/2x/es/components/form/index.css +6 -5
- package/2x/es/components/form/index.d.ts +5 -4
- package/2x/es/components/image-uploader/image-uploader.js +3 -3
- package/2x/es/components/image-viewer/image-viewer.d.ts +8 -2
- package/2x/es/components/image-viewer/image-viewer.js +15 -4
- package/2x/es/components/image-viewer/index.d.ts +6 -2
- package/2x/es/components/image-viewer/slide.js +2 -1
- package/2x/es/components/image-viewer/slides.d.ts +7 -3
- package/2x/es/components/image-viewer/slides.js +19 -10
- package/2x/es/components/input/input.d.ts +2 -2
- package/2x/es/components/input/input.js +7 -4
- package/2x/es/components/list/list.css +2 -6
- package/2x/es/components/modal/modal.css +25 -20
- package/2x/es/components/modal/modal.js +8 -12
- package/2x/es/components/passcode-input/passcode-input.d.ts +2 -2
- package/2x/es/components/picker/picker.css +10 -2
- package/2x/es/components/picker/picker.d.ts +1 -1
- package/2x/es/components/picker-view/picker-view.css +4 -2
- package/2x/es/components/picker-view/picker-view.d.ts +1 -1
- package/2x/es/components/picker-view/wheel.js +5 -4
- package/2x/es/components/popover/arrow.d.ts +3 -0
- package/2x/es/components/popover/arrow.js +12 -0
- package/2x/es/components/popover/index.d.ts +7 -15
- package/2x/es/components/popover/index.js +3 -2
- package/2x/es/components/popover/popover-menu.css +63 -0
- package/2x/es/components/popover/popover-menu.d.ts +20 -0
- package/2x/es/components/popover/popover-menu.js +52 -0
- package/2x/es/components/popover/popover.css +90 -318
- package/2x/es/components/popover/popover.d.ts +9 -8
- package/2x/es/components/popover/popover.js +10 -17
- package/2x/es/components/radio/radio.css +4 -7
- package/2x/es/components/radio/radio.js +1 -3
- package/2x/es/components/search-bar/search-bar.css +1 -1
- package/2x/es/components/selector/selector.css +14 -6
- package/2x/es/components/selector/selector.d.ts +2 -1
- package/2x/es/components/selector/selector.js +3 -2
- package/2x/es/components/swiper/swiper.js +3 -3
- package/2x/es/components/switch/switch.css +8 -3
- package/2x/es/components/tabs/tabs.js +4 -4
- package/2x/es/components/text-area/text-area.css +9 -9
- package/2x/es/components/text-area/text-area.d.ts +2 -2
- package/2x/es/components/text-area/text-area.js +41 -31
- package/2x/es/components/virtual-input/virtual-input.js +3 -2
- package/2x/es/utils/get-scroll-parent.js +1 -1
- package/2x/es/utils/use-ref-state.js +2 -2
- package/2x/es/utils/use-resize-effect.js +2 -3
- package/2x/es/utils/use-tab-list-scroll.js +2 -3
- package/2x/package.json +4 -4
- package/README.md +7 -6
- package/cjs/components/badge/badge.css +16 -10
- package/cjs/components/badge/badge.d.ts +1 -0
- package/cjs/components/badge/badge.js +4 -5
- package/cjs/components/button/button.css +3 -3
- package/cjs/components/calendar/calendar.js +3 -1
- package/cjs/components/cascade-picker-view/cascade-picker-view.d.ts +1 -2
- package/cjs/components/checkbox/check-icon.js +4 -13
- package/cjs/components/checkbox/checkbox.css +5 -13
- package/cjs/components/checkbox/checkbox.js +3 -5
- package/cjs/components/checkbox/indeterminate-icon.d.ts +3 -0
- package/cjs/components/checkbox/indeterminate-icon.js +24 -0
- package/cjs/components/date-picker/date-picker.d.ts +1 -1
- package/cjs/components/date-picker-view/date-picker-view.d.ts +3 -2
- package/cjs/components/ellipsis/ellipsis.js +3 -1
- package/cjs/components/floating-bubble/floating-bubble.css +1 -0
- package/cjs/components/floating-panel/floating-panel.d.ts +7 -5
- package/cjs/components/floating-panel/floating-panel.js +11 -1
- package/cjs/components/form/form-item.css +3 -2
- package/cjs/components/form/form-item.d.ts +2 -2
- package/cjs/components/form/form-item.js +9 -5
- package/cjs/components/form/form.css +3 -3
- package/cjs/components/form/form.d.ts +5 -4
- package/cjs/components/form/index.css +6 -5
- package/cjs/components/form/index.d.ts +5 -4
- package/cjs/components/image-uploader/image-uploader.js +1 -1
- package/cjs/components/image-viewer/image-viewer.d.ts +8 -2
- package/cjs/components/image-viewer/image-viewer.js +19 -6
- package/cjs/components/image-viewer/index.d.ts +6 -2
- package/cjs/components/image-viewer/slide.js +2 -1
- package/cjs/components/image-viewer/slides.d.ts +7 -3
- package/cjs/components/image-viewer/slides.js +18 -11
- package/cjs/components/input/input.d.ts +2 -2
- package/cjs/components/input/input.js +7 -3
- package/cjs/components/list/list.css +2 -5
- package/cjs/components/modal/modal.css +23 -19
- package/cjs/components/modal/modal.js +8 -12
- package/cjs/components/passcode-input/passcode-input.d.ts +2 -2
- package/cjs/components/picker/picker.css +9 -2
- package/cjs/components/picker/picker.d.ts +1 -1
- package/cjs/components/picker-view/picker-view.css +4 -2
- package/cjs/components/picker-view/picker-view.d.ts +1 -1
- package/cjs/components/picker-view/wheel.js +5 -3
- package/cjs/components/popover/arrow.d.ts +3 -0
- package/cjs/components/popover/arrow.js +26 -0
- package/cjs/components/popover/index.d.ts +7 -15
- package/cjs/components/popover/index.js +4 -2
- package/cjs/components/popover/popover-menu.css +52 -0
- package/cjs/components/popover/popover-menu.d.ts +20 -0
- package/{2x/cjs/components/popover/pop-menu.js → cjs/components/popover/popover-menu.js} +23 -26
- package/cjs/components/popover/popover.css +83 -276
- package/cjs/components/popover/popover.d.ts +9 -8
- package/cjs/components/popover/popover.js +11 -17
- package/cjs/components/radio/radio.css +4 -7
- package/cjs/components/radio/radio.js +1 -3
- package/cjs/components/search-bar/search-bar.css +1 -1
- package/cjs/components/selector/selector.css +14 -6
- package/cjs/components/selector/selector.d.ts +2 -1
- package/cjs/components/selector/selector.js +3 -2
- package/cjs/components/swiper/swiper.js +1 -1
- package/cjs/components/switch/switch.css +8 -3
- package/cjs/components/tabs/tabs.js +2 -2
- package/cjs/components/text-area/text-area.css +9 -9
- package/cjs/components/text-area/text-area.d.ts +2 -2
- package/cjs/components/text-area/text-area.js +41 -32
- package/cjs/components/virtual-input/virtual-input.js +3 -1
- package/cjs/utils/get-scroll-parent.js +1 -1
- package/cjs/utils/use-ref-state.js +1 -1
- package/cjs/utils/use-resize-effect.js +1 -3
- package/cjs/utils/use-tab-list-scroll.js +1 -3
- package/es/components/badge/badge.css +16 -10
- package/es/components/badge/badge.d.ts +1 -0
- package/es/components/badge/badge.js +4 -5
- package/es/components/button/button.css +3 -3
- package/es/components/calendar/calendar.js +3 -2
- package/es/components/cascade-picker-view/cascade-picker-view.d.ts +1 -2
- package/es/components/checkbox/check-icon.js +4 -13
- package/es/components/checkbox/checkbox.css +5 -13
- package/es/components/checkbox/checkbox.js +2 -5
- package/es/components/checkbox/indeterminate-icon.d.ts +3 -0
- package/es/components/checkbox/indeterminate-icon.js +10 -0
- package/es/components/date-picker/date-picker.d.ts +1 -1
- package/es/components/date-picker-view/date-picker-view.d.ts +3 -2
- package/es/components/ellipsis/ellipsis.js +3 -2
- package/es/components/floating-bubble/floating-bubble.css +1 -0
- package/es/components/floating-panel/floating-panel.d.ts +7 -5
- package/es/components/floating-panel/floating-panel.js +9 -1
- package/es/components/form/form-item.css +3 -2
- package/es/components/form/form-item.d.ts +2 -2
- package/es/components/form/form-item.js +9 -5
- package/es/components/form/form.css +3 -3
- package/es/components/form/form.d.ts +5 -4
- package/es/components/form/index.css +6 -5
- package/es/components/form/index.d.ts +5 -4
- package/es/components/image-uploader/image-uploader.js +3 -3
- package/es/components/image-viewer/image-viewer.d.ts +8 -2
- package/es/components/image-viewer/image-viewer.js +15 -4
- package/es/components/image-viewer/index.d.ts +6 -2
- package/es/components/image-viewer/slide.js +2 -1
- package/es/components/image-viewer/slides.d.ts +7 -3
- package/es/components/image-viewer/slides.js +19 -10
- package/es/components/input/input.d.ts +2 -2
- package/es/components/input/input.js +7 -4
- package/es/components/list/list.css +2 -5
- package/es/components/modal/modal.css +23 -19
- package/es/components/modal/modal.js +8 -12
- package/es/components/passcode-input/passcode-input.d.ts +2 -2
- package/es/components/picker/picker.css +9 -2
- package/es/components/picker/picker.d.ts +1 -1
- package/es/components/picker-view/picker-view.css +4 -2
- package/es/components/picker-view/picker-view.d.ts +1 -1
- package/es/components/picker-view/wheel.js +5 -4
- package/es/components/popover/arrow.d.ts +3 -0
- package/es/components/popover/arrow.js +12 -0
- package/es/components/popover/index.d.ts +7 -15
- package/es/components/popover/index.js +3 -2
- package/es/components/popover/popover-menu.css +52 -0
- package/es/components/popover/popover-menu.d.ts +20 -0
- package/es/components/popover/popover-menu.js +52 -0
- package/es/components/popover/popover.css +83 -276
- package/es/components/popover/popover.d.ts +9 -8
- package/es/components/popover/popover.js +10 -17
- package/es/components/radio/radio.css +4 -7
- package/es/components/radio/radio.js +1 -3
- package/es/components/search-bar/search-bar.css +1 -1
- package/es/components/selector/selector.css +14 -6
- package/es/components/selector/selector.d.ts +2 -1
- package/es/components/selector/selector.js +3 -2
- package/es/components/swiper/swiper.js +3 -3
- package/es/components/switch/switch.css +8 -3
- package/es/components/tabs/tabs.js +4 -4
- package/es/components/text-area/text-area.css +9 -9
- package/es/components/text-area/text-area.d.ts +2 -2
- package/es/components/text-area/text-area.js +41 -31
- package/es/components/virtual-input/virtual-input.js +3 -2
- package/es/utils/get-scroll-parent.js +1 -1
- package/es/utils/use-ref-state.js +2 -2
- package/es/utils/use-resize-effect.js +2 -3
- package/es/utils/use-tab-list-scroll.js +2 -3
- package/package.json +4 -4
- package/umd/antd-mobile.js +1 -1
- package/2x/cjs/components/popover/animation.css +0 -111
- package/2x/cjs/components/popover/pop-menu.d.ts +0 -28
- package/2x/es/components/popover/animation.css +0 -111
- package/2x/es/components/popover/pop-menu.d.ts +0 -28
- package/2x/es/components/popover/pop-menu.js +0 -54
- package/cjs/components/popover/animation.css +0 -96
- package/cjs/components/popover/pop-menu.d.ts +0 -28
- package/es/components/popover/animation.css +0 -96
- package/es/components/popover/pop-menu.d.ts +0 -28
- package/es/components/popover/pop-menu.js +0 -54
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { useMemo, useState } from 'react';
|
|
2
2
|
import { withNativeProps } from '../../utils/native-props';
|
|
3
3
|
import dayjs from 'dayjs';
|
|
4
4
|
import classNames from 'classnames';
|
|
@@ -7,6 +7,7 @@ import { ArrowLeft } from './arrow-left';
|
|
|
7
7
|
import { ArrowLeftDouble } from './arrow-left-double';
|
|
8
8
|
import { useConfig } from '../config-provider';
|
|
9
9
|
import isoWeek from 'dayjs/plugin/isoWeek';
|
|
10
|
+
import { useIsomorphicLayoutEffect } from 'ahooks';
|
|
10
11
|
dayjs.extend(isoWeek);
|
|
11
12
|
const classPrefix = 'adm-calendar';
|
|
12
13
|
const defaultProps = {
|
|
@@ -65,7 +66,7 @@ export const Calendar = p => {
|
|
|
65
66
|
}, [props.selectionMode, props.value, props.defaultValue]);
|
|
66
67
|
const [begin, setBegin] = useState(null);
|
|
67
68
|
const [end, setEnd] = useState(null);
|
|
68
|
-
|
|
69
|
+
useIsomorphicLayoutEffect(() => {
|
|
69
70
|
setBegin(dateRange[0] ? dayjs(dateRange[0]) : null);
|
|
70
71
|
setEnd(dateRange[1] ? dayjs(dateRange[1]) : null);
|
|
71
72
|
}, [dateRange[0], dateRange[1]]);
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
|
-
import { NativeProps } from '../../utils/native-props';
|
|
3
2
|
import type { PickerViewProps } from '../picker-view';
|
|
4
3
|
import type { CascadePickerOption } from '../cascade-picker';
|
|
5
4
|
export declare type CascadePickerViewProps = Omit<PickerViewProps, 'columns'> & {
|
|
6
5
|
options: CascadePickerOption[];
|
|
7
|
-
}
|
|
6
|
+
};
|
|
8
7
|
export declare const CascadePickerView: FC<CascadePickerViewProps>;
|
|
@@ -2,18 +2,9 @@ import React, { memo } from 'react';
|
|
|
2
2
|
import { withNativeProps } from '../../utils/native-props';
|
|
3
3
|
export const CheckIcon = memo(props => {
|
|
4
4
|
return withNativeProps(props, React.createElement("svg", {
|
|
5
|
-
viewBox: '0 0
|
|
6
|
-
}, React.createElement("g", {
|
|
7
|
-
stroke: 'none',
|
|
8
|
-
strokeWidth: '1',
|
|
9
|
-
fill: 'none',
|
|
10
|
-
fillRule: 'evenodd'
|
|
11
|
-
}, React.createElement("g", {
|
|
12
|
-
transform: 'translate(-35.000000, -40.000000)',
|
|
13
|
-
fill: 'currentColor'
|
|
14
|
-
}, React.createElement("g", {
|
|
15
|
-
transform: 'translate(24.000000, 26.000000)'
|
|
5
|
+
viewBox: '0 0 40 40'
|
|
16
6
|
}, React.createElement("path", {
|
|
17
|
-
d: '
|
|
18
|
-
|
|
7
|
+
d: 'M31.5541766,15 L28.0892433,15 L28.0892434,15 C27.971052,15 27.8576674,15.044522 27.7740471,15.1239792 L18.2724722,24.1625319 L13.2248725,19.3630279 L13.2248725,19.3630279 C13.1417074,19.2834412 13.0287551,19.2384807 12.9107898,19.2380079 L9.44474455,19.2380079 L9.44474454,19.2380079 C9.19869815,19.2384085 8.99957935,19.4284738 9,19.66253 C9,19.7747587 9.04719253,19.8823283 9.13066188,19.9616418 L17.0907466,27.5338228 C17.4170809,27.8442545 17.8447695,28 18.2713393,28 L18.2980697,28 C18.7168464,27.993643 19.133396,27.8378975 19.4530492,27.5338228 L31.8693384,15.7236361 L31.8693384,15.7236361 C32.0434167,15.5582251 32.0435739,15.2898919 31.8696892,15.1242941 C31.7860402,15.0446329 31.6725052,15 31.5541421,15 L31.5541766,15 Z',
|
|
8
|
+
fill: 'currentColor'
|
|
9
|
+
})));
|
|
19
10
|
});
|
|
@@ -18,17 +18,15 @@
|
|
|
18
18
|
border: 2px solid var(--adm-color-light);
|
|
19
19
|
border-radius: var(--icon-size);
|
|
20
20
|
box-sizing: border-box;
|
|
21
|
-
display: flex;
|
|
22
|
-
justify-content: center;
|
|
23
|
-
align-items: center;
|
|
24
21
|
width: var(--icon-size);
|
|
25
22
|
height: var(--icon-size);
|
|
26
|
-
color:
|
|
23
|
+
color: var(--adm-color-white);
|
|
27
24
|
}
|
|
28
25
|
|
|
29
|
-
.adm-checkbox .adm-checkbox-icon
|
|
30
|
-
|
|
31
|
-
|
|
26
|
+
.adm-checkbox .adm-checkbox-icon > svg {
|
|
27
|
+
display: block;
|
|
28
|
+
width: 100%;
|
|
29
|
+
height: 100%;
|
|
32
30
|
}
|
|
33
31
|
|
|
34
32
|
.adm-checkbox.adm-checkbox-block {
|
|
@@ -63,13 +61,6 @@
|
|
|
63
61
|
color: var(--adm-color-primary);
|
|
64
62
|
}
|
|
65
63
|
|
|
66
|
-
.adm-checkbox.adm-checkbox-indeterminate .adm-checkbox-indeterminate-checked {
|
|
67
|
-
width: 60%;
|
|
68
|
-
height: 60%;
|
|
69
|
-
border-radius: 100%;
|
|
70
|
-
background-color: currentColor;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
64
|
.adm-checkbox-content {
|
|
74
65
|
flex: 0 1 auto;
|
|
75
66
|
font-size: var(--font-size);
|
|
@@ -6,6 +6,7 @@ import { usePropsValue } from '../../utils/use-props-value';
|
|
|
6
6
|
import { mergeProps } from '../../utils/with-default-props';
|
|
7
7
|
import { devWarning } from '../../utils/dev-log';
|
|
8
8
|
import { CheckIcon } from './check-icon';
|
|
9
|
+
import { IndeterminateIcon } from './indeterminate-icon';
|
|
9
10
|
const classPrefix = `adm-checkbox`;
|
|
10
11
|
const defaultProps = {
|
|
11
12
|
defaultChecked: false,
|
|
@@ -63,11 +64,7 @@ export const Checkbox = p => {
|
|
|
63
64
|
|
|
64
65
|
return React.createElement("div", {
|
|
65
66
|
className: `${classPrefix}-icon`
|
|
66
|
-
}, props.indeterminate ? React.createElement(
|
|
67
|
-
className: `${classPrefix}-indeterminate-checked`
|
|
68
|
-
}) : checked && React.createElement(CheckIcon, {
|
|
69
|
-
className: `${classPrefix}-icon-checked`
|
|
70
|
-
}));
|
|
67
|
+
}, props.indeterminate ? React.createElement(IndeterminateIcon, null) : checked && React.createElement(CheckIcon, null));
|
|
71
68
|
};
|
|
72
69
|
|
|
73
70
|
return withNativeProps(props, React.createElement("label", {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React, { memo } from 'react';
|
|
2
|
+
import { withNativeProps } from '../../utils/native-props';
|
|
3
|
+
export const IndeterminateIcon = memo(props => {
|
|
4
|
+
return withNativeProps(props, React.createElement("svg", {
|
|
5
|
+
viewBox: '0 0 40 40'
|
|
6
|
+
}, React.createElement("path", {
|
|
7
|
+
d: 'M20,9 C26.0752953,9 31,13.9247047 31,20 C31,26.0752953 26.0752953,31 20,31 C13.9247047,31 9,26.0752953 9,20 C9,13.9247047 13.9247047,9 20,9 Z',
|
|
8
|
+
fill: 'currentColor'
|
|
9
|
+
})));
|
|
10
|
+
});
|
|
@@ -2,7 +2,7 @@ import { FC, ReactNode } from 'react';
|
|
|
2
2
|
import type { PickerProps } from '../picker';
|
|
3
3
|
import { NativeProps } from '../../utils/native-props';
|
|
4
4
|
import type { Precision, DatePickerFilter } from './date-picker-utils';
|
|
5
|
-
export declare type DatePickerProps = Pick<PickerProps, 'onCancel' | 'onClose' | 'visible' | 'confirmText' | 'cancelText' | 'getContainer' | 'afterShow' | 'afterClose' | 'onClick' | 'title' | 'stopPropagation'> & {
|
|
5
|
+
export declare type DatePickerProps = Pick<PickerProps, 'onCancel' | 'onClose' | 'visible' | 'confirmText' | 'cancelText' | 'getContainer' | 'afterShow' | 'afterClose' | 'onClick' | 'title' | 'stopPropagation' | 'style'> & {
|
|
6
6
|
value?: Date | null;
|
|
7
7
|
defaultValue?: Date | null;
|
|
8
8
|
onSelect?: (value: Date) => void;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { FC, ReactNode } from 'react';
|
|
2
|
+
import type { PickerViewProps } from '../picker-view';
|
|
2
3
|
import { NativeProps } from '../../utils/native-props';
|
|
3
4
|
import type { Precision, DatePickerFilter } from '../date-picker/date-picker-utils';
|
|
4
|
-
export declare type DatePickerViewProps = {
|
|
5
|
+
export declare type DatePickerViewProps = Pick<PickerViewProps, 'style'> & {
|
|
5
6
|
value?: Date;
|
|
6
7
|
defaultValue?: Date;
|
|
7
8
|
onChange?: (value: Date) => void;
|
|
@@ -10,5 +11,5 @@ export declare type DatePickerViewProps = {
|
|
|
10
11
|
precision?: Precision;
|
|
11
12
|
renderLabel?: (type: Precision, data: number) => ReactNode;
|
|
12
13
|
filter?: DatePickerFilter;
|
|
13
|
-
} & NativeProps
|
|
14
|
+
} & NativeProps;
|
|
14
15
|
export declare const DatePickerView: FC<DatePickerViewProps>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { useRef, useState } from 'react';
|
|
2
2
|
import { mergeProps } from '../../utils/with-default-props';
|
|
3
3
|
import { withNativeProps } from '../../utils/native-props';
|
|
4
4
|
import { useResizeEffect } from '../../utils/use-resize-effect';
|
|
5
|
+
import { useIsomorphicLayoutEffect } from 'ahooks';
|
|
5
6
|
const classPrefix = `adm-ellipsis`;
|
|
6
7
|
const defaultProps = {
|
|
7
8
|
direction: 'end',
|
|
@@ -113,7 +114,7 @@ export const Ellipsis = p => {
|
|
|
113
114
|
}
|
|
114
115
|
|
|
115
116
|
useResizeEffect(calcEllipsised, rootRef);
|
|
116
|
-
|
|
117
|
+
useIsomorphicLayoutEffect(() => {
|
|
117
118
|
calcEllipsised();
|
|
118
119
|
}, [props.content, props.direction, props.rows, props.expandText, props.collapseText]);
|
|
119
120
|
const expandActionElement = exceeded && props.expandText ? React.createElement("a", {
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import React, { ReactNode } from 'react';
|
|
2
2
|
import { NativeProps } from '../../utils/native-props';
|
|
3
|
-
export declare type FloatingPanelProps = {
|
|
4
|
-
anchors: number[];
|
|
5
|
-
children: ReactNode;
|
|
6
|
-
onHeightChange?: (height: number, animating: boolean) => void;
|
|
7
|
-
} & NativeProps<'--border-radius' | '--z-index'>;
|
|
8
3
|
export declare type FloatingPanelRef = {
|
|
9
4
|
setHeight: (height: number, options?: {
|
|
10
5
|
immediate?: boolean;
|
|
11
6
|
}) => void;
|
|
12
7
|
};
|
|
8
|
+
export declare type FloatingPanelProps = {
|
|
9
|
+
anchors: number[];
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
onHeightChange?: (height: number, animating: boolean) => void;
|
|
12
|
+
handleDraggingOfContent?: boolean;
|
|
13
|
+
} & NativeProps<'--border-radius' | '--z-index'>;
|
|
13
14
|
export declare const FloatingPanel: React.ForwardRefExoticComponent<{
|
|
14
15
|
anchors: number[];
|
|
15
16
|
children: ReactNode;
|
|
16
17
|
onHeightChange?: ((height: number, animating: boolean) => void) | undefined;
|
|
18
|
+
handleDraggingOfContent?: boolean | undefined;
|
|
17
19
|
} & NativeProps<"--z-index" | "--border-radius"> & React.RefAttributes<FloatingPanelRef>>;
|
|
@@ -4,9 +4,15 @@ import { useDrag } from '@use-gesture/react';
|
|
|
4
4
|
import { useSpring, animated } from '@react-spring/web';
|
|
5
5
|
import { supportsPassive } from '../../utils/supports-passive';
|
|
6
6
|
import { nearest } from '../../utils/nearest';
|
|
7
|
-
|
|
7
|
+
import { mergeProps } from '../../utils/with-default-props';
|
|
8
|
+
import { useLockScroll } from '../../utils/use-lock-scroll';
|
|
9
|
+
const defaultProps = {
|
|
10
|
+
handleDraggingOfContent: true
|
|
11
|
+
};
|
|
12
|
+
export const FloatingPanel = forwardRef((p, ref) => {
|
|
8
13
|
var _a;
|
|
9
14
|
|
|
15
|
+
const props = mergeProps(defaultProps, p);
|
|
10
16
|
const {
|
|
11
17
|
anchors
|
|
12
18
|
} = props;
|
|
@@ -44,6 +50,7 @@ export const FloatingPanel = forwardRef((props, ref) => {
|
|
|
44
50
|
if (header === target || (header === null || header === void 0 ? void 0 : header.contains(target))) {
|
|
45
51
|
pullingRef.current = true;
|
|
46
52
|
} else {
|
|
53
|
+
if (!props.handleDraggingOfContent) return;
|
|
47
54
|
const reachedTop = y.goal <= bounds.top;
|
|
48
55
|
const content = contentRef.current;
|
|
49
56
|
if (!content) return;
|
|
@@ -101,6 +108,7 @@ export const FloatingPanel = forwardRef((props, ref) => {
|
|
|
101
108
|
});
|
|
102
109
|
}
|
|
103
110
|
}), [api]);
|
|
111
|
+
useLockScroll(elementRef, true);
|
|
104
112
|
return withNativeProps(props, React.createElement(animated.div, {
|
|
105
113
|
ref: elementRef,
|
|
106
114
|
className: 'adm-floating-panel',
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
.adm-form-item-label-required {
|
|
14
14
|
position: absolute;
|
|
15
15
|
left: -0.6em;
|
|
16
|
-
top: 0
|
|
16
|
+
top: 0;
|
|
17
|
+
font-family: SimSun, sans-serif;
|
|
17
18
|
color: var(--adm-color-danger);
|
|
18
19
|
user-select: none;
|
|
19
20
|
}
|
|
@@ -27,8 +28,8 @@
|
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
.adm-form-vertical .adm-form-item-label {
|
|
30
|
-
margin-bottom: 8px;
|
|
31
31
|
font-size: 30px;
|
|
32
|
+
margin-bottom: 8px;
|
|
32
33
|
}
|
|
33
34
|
|
|
34
35
|
.adm-form-vertical .adm-form-item-footer {
|
|
@@ -7,7 +7,7 @@ import type { FormLayout } from './index';
|
|
|
7
7
|
declare type RenderChildren<Values = any> = (form: FormInstance<Values>) => React.ReactNode;
|
|
8
8
|
declare type ChildrenType<Values = any> = RenderChildren<Values> | React.ReactNode;
|
|
9
9
|
declare type RcFieldProps = Omit<FieldProps, 'children'>;
|
|
10
|
-
export declare type FormItemProps = RcFieldProps
|
|
10
|
+
export declare type FormItemProps = Pick<RcFieldProps, 'dependencies' | 'valuePropName' | 'name' | 'rules' | 'messageVariables' | 'trigger' | 'validateTrigger' | 'shouldUpdate' | 'initialValue'> & Pick<ListItemProps, 'style' | 'onClick' | 'extra' | 'arrow'> & {
|
|
11
11
|
label?: React.ReactNode;
|
|
12
12
|
help?: React.ReactNode;
|
|
13
13
|
hasFeedback?: boolean;
|
|
@@ -17,6 +17,6 @@ export declare type FormItemProps = RcFieldProps & NativeProps & Pick<ListItemPr
|
|
|
17
17
|
hidden?: boolean;
|
|
18
18
|
layout?: FormLayout;
|
|
19
19
|
children: ChildrenType;
|
|
20
|
-
};
|
|
20
|
+
} & NativeProps;
|
|
21
21
|
export declare const FormItem: FC<FormItemProps>;
|
|
22
22
|
export {};
|
|
@@ -25,7 +25,8 @@ const FormItemLayout = props => {
|
|
|
25
25
|
children,
|
|
26
26
|
htmlFor,
|
|
27
27
|
hidden,
|
|
28
|
-
errors
|
|
28
|
+
errors,
|
|
29
|
+
arrow
|
|
29
30
|
} = props;
|
|
30
31
|
const context = useContext(FormContext);
|
|
31
32
|
const hasFeedback = props.hasFeedback !== undefined ? props.hasFeedback : context.hasFeedback;
|
|
@@ -52,7 +53,8 @@ const FormItemLayout = props => {
|
|
|
52
53
|
[`${classPrefix}-hidden`]: hidden
|
|
53
54
|
}),
|
|
54
55
|
disabled: disabled,
|
|
55
|
-
onClick: props.onClick
|
|
56
|
+
onClick: props.onClick,
|
|
57
|
+
arrow: arrow
|
|
56
58
|
}, children);
|
|
57
59
|
};
|
|
58
60
|
|
|
@@ -80,9 +82,10 @@ export const FormItem = props => {
|
|
|
80
82
|
validateTrigger,
|
|
81
83
|
onClick,
|
|
82
84
|
shouldUpdate,
|
|
83
|
-
dependencies
|
|
85
|
+
dependencies,
|
|
86
|
+
arrow
|
|
84
87
|
} = props,
|
|
85
|
-
fieldProps = __rest(props, ["className", "style", "label", "help", "extra", "hasFeedback", "name", "required", "noStyle", "hidden", "layout", "disabled", "rules", "children", "messageVariables", "trigger", "validateTrigger", "onClick", "shouldUpdate", "dependencies"]);
|
|
88
|
+
fieldProps = __rest(props, ["className", "style", "label", "help", "extra", "hasFeedback", "name", "required", "noStyle", "hidden", "layout", "disabled", "rules", "children", "messageVariables", "trigger", "validateTrigger", "onClick", "shouldUpdate", "dependencies", "arrow"]);
|
|
86
89
|
|
|
87
90
|
const {
|
|
88
91
|
validateTrigger: contextValidateTrigger
|
|
@@ -138,7 +141,8 @@ export const FormItem = props => {
|
|
|
138
141
|
errors: errors,
|
|
139
142
|
onClick: onClick,
|
|
140
143
|
hidden: hidden,
|
|
141
|
-
layout: layout
|
|
144
|
+
layout: layout,
|
|
145
|
+
arrow: arrow
|
|
142
146
|
}, React.createElement(NoStyleItemContext.Provider, {
|
|
143
147
|
value: onSubMetaChange
|
|
144
148
|
}, baseChildren));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.adm-form .adm-list.adm-list {
|
|
2
|
-
--padding-left:
|
|
3
|
-
--padding-right:
|
|
2
|
+
--padding-left: 32px;
|
|
3
|
+
--padding-right: 24px;
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
.adm-form-horizontal .adm-list.adm-list {
|
|
@@ -13,5 +13,5 @@
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
.adm-form .adm-form-footer {
|
|
16
|
-
padding: 24px;
|
|
16
|
+
padding: 40px 24px;
|
|
17
17
|
}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import React, { ReactNode } from 'react';
|
|
2
2
|
import { NativeProps } from '../../utils/native-props';
|
|
3
3
|
import { ListProps } from '../list';
|
|
4
|
-
import type { FormProps as RcFormProps, FormInstance } from 'rc-field-form';
|
|
4
|
+
import type { FormProps as RcFormProps, FormInstance as RCFormInstance } from 'rc-field-form';
|
|
5
5
|
import { FormContextType } from './context';
|
|
6
6
|
import type { FormLayout } from '.';
|
|
7
|
-
export declare type
|
|
7
|
+
export declare type FormInstance = Pick<RCFormInstance, 'getFieldValue' | 'getFieldsValue' | 'getFieldError' | 'getFieldsError' | 'isFieldTouched' | 'isFieldsTouched' | 'resetFields' | 'setFields' | 'setFieldsValue' | 'submit' | 'validateFields'>;
|
|
8
|
+
export declare type FormProps = Pick<RcFormProps, 'form' | 'initialValues' | 'name' | 'preserve' | 'validateMessages' | 'validateTrigger' | 'onFieldsChange' | 'onFinish' | 'onFinishFailed' | 'onValuesChange' | 'children'> & NativeProps & Partial<FormContextType> & {
|
|
8
9
|
footer?: ReactNode;
|
|
9
10
|
layout?: FormLayout;
|
|
10
11
|
mode?: ListProps['mode'];
|
|
11
12
|
};
|
|
12
|
-
export declare const Form: React.ForwardRefExoticComponent<RcFormProps<any> & NativeProps<never> & Partial<FormContextType> & {
|
|
13
|
+
export declare const Form: React.ForwardRefExoticComponent<Pick<RcFormProps<any>, "children" | "form" | "name" | "initialValues" | "preserve" | "validateMessages" | "validateTrigger" | "onFieldsChange" | "onFinish" | "onFinishFailed" | "onValuesChange"> & NativeProps<never> & Partial<FormContextType> & {
|
|
13
14
|
footer?: ReactNode;
|
|
14
15
|
layout?: "horizontal" | "vertical" | undefined;
|
|
15
16
|
mode?: ListProps['mode'];
|
|
16
|
-
} & React.RefAttributes<
|
|
17
|
+
} & React.RefAttributes<Pick<RCFormInstance<any>, "submit" | "getFieldValue" | "getFieldsValue" | "getFieldError" | "getFieldsError" | "isFieldTouched" | "isFieldsTouched" | "resetFields" | "setFields" | "setFieldsValue" | "validateFields">>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.adm-form .adm-list.adm-list {
|
|
2
|
-
--padding-left:
|
|
3
|
-
--padding-right:
|
|
2
|
+
--padding-left: 32px;
|
|
3
|
+
--padding-right: 24px;
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
.adm-form-horizontal .adm-list.adm-list {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
.adm-form .adm-form-footer {
|
|
16
|
-
padding: 24px;
|
|
16
|
+
padding: 40px 24px;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
.adm-form-item + .adm-form-item {
|
|
@@ -31,7 +31,8 @@
|
|
|
31
31
|
.adm-form-item-label-required {
|
|
32
32
|
position: absolute;
|
|
33
33
|
left: -0.6em;
|
|
34
|
-
top: 0
|
|
34
|
+
top: 0;
|
|
35
|
+
font-family: SimSun, sans-serif;
|
|
35
36
|
color: var(--adm-color-danger);
|
|
36
37
|
user-select: none;
|
|
37
38
|
}
|
|
@@ -45,8 +46,8 @@
|
|
|
45
46
|
}
|
|
46
47
|
|
|
47
48
|
.adm-form-vertical .adm-form-item-label {
|
|
48
|
-
margin-bottom: 8px;
|
|
49
49
|
font-size: 30px;
|
|
50
|
+
margin-bottom: 8px;
|
|
50
51
|
}
|
|
51
52
|
|
|
52
53
|
.adm-form-vertical .adm-form-item-footer {
|
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
import './index.less';
|
|
3
3
|
import { useForm } from 'rc-field-form';
|
|
4
4
|
export declare type FormLayout = 'vertical' | 'horizontal';
|
|
5
|
-
export type { FormProps } from './form';
|
|
6
|
-
export type {
|
|
7
|
-
|
|
5
|
+
export type { FormProps, FormInstance } from './form';
|
|
6
|
+
export type { FormItemProps } from './form-item';
|
|
7
|
+
export type { ValidateMessages, FieldData, NamePath, } from 'rc-field-form/es/interface';
|
|
8
|
+
declare const _default: import("react").ForwardRefExoticComponent<Pick<import("rc-field-form").FormProps<any>, "children" | "form" | "name" | "initialValues" | "preserve" | "validateMessages" | "validateTrigger" | "onFieldsChange" | "onFinish" | "onFinishFailed" | "onValuesChange"> & import("../../utils/native-props").NativeProps<never> & Partial<import("./context").FormContextType> & {
|
|
8
9
|
footer?: import("react").ReactNode;
|
|
9
10
|
layout?: "horizontal" | "vertical" | undefined;
|
|
10
11
|
mode?: "default" | "card" | undefined;
|
|
11
|
-
} & import("react").RefAttributes<import("rc-field-form").FormInstance<any>>> & {
|
|
12
|
+
} & import("react").RefAttributes<Pick<import("rc-field-form").FormInstance<any>, "submit" | "getFieldValue" | "getFieldsValue" | "getFieldError" | "getFieldsError" | "isFieldTouched" | "isFieldsTouched" | "resetFields" | "setFields" | "setFieldsValue" | "validateFields">>> & {
|
|
12
13
|
Item: import("react").FC<import("./form-item").FormItemProps>;
|
|
13
14
|
Header: import("react").FC<{}>;
|
|
14
15
|
useForm: typeof useForm;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
|
-
import React, {
|
|
2
|
+
import React, { useRef, useState } from 'react';
|
|
3
3
|
import { AddOutline } from 'antd-mobile-icons';
|
|
4
4
|
import { mergeProps } from '../../utils/with-default-props';
|
|
5
5
|
import ImageViewer from '../image-viewer';
|
|
6
6
|
import PreviewItem from './preview-item';
|
|
7
7
|
import { usePropsValue } from '../../utils/use-props-value';
|
|
8
|
-
import { useMemoizedFn, useUnmount } from 'ahooks';
|
|
8
|
+
import { useIsomorphicLayoutEffect, useMemoizedFn, useUnmount } from 'ahooks';
|
|
9
9
|
import Space from '../space';
|
|
10
10
|
import { withNativeProps } from '../../utils/native-props';
|
|
11
11
|
const classPrefix = `adm-image-uploader`;
|
|
@@ -26,7 +26,7 @@ export const ImageUploader = p => {
|
|
|
26
26
|
setValue(updater(value));
|
|
27
27
|
});
|
|
28
28
|
const [tasks, setTasks] = useState([]);
|
|
29
|
-
|
|
29
|
+
useIsomorphicLayoutEffect(() => {
|
|
30
30
|
setTasks(prev => prev.filter(task => {
|
|
31
31
|
if (task.url === undefined) return true;
|
|
32
32
|
return !value.some(fileItem => fileItem.url === task.url);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { FC } from 'react';
|
|
1
|
+
import React, { FC } from 'react';
|
|
2
2
|
import { GetContainer } from '../../utils/render-to-container';
|
|
3
|
+
import { SlidesRef } from './slides';
|
|
3
4
|
export declare type ImageViewerProps = {
|
|
4
5
|
image?: string;
|
|
5
6
|
maxZoom?: number;
|
|
@@ -9,9 +10,14 @@ export declare type ImageViewerProps = {
|
|
|
9
10
|
afterClose?: () => void;
|
|
10
11
|
};
|
|
11
12
|
export declare const ImageViewer: FC<ImageViewerProps>;
|
|
13
|
+
export declare type MultiImageViewerRef = SlidesRef;
|
|
12
14
|
export declare type MultiImageViewerProps = Omit<ImageViewerProps, 'image'> & {
|
|
13
15
|
images?: string[];
|
|
14
16
|
defaultIndex?: number;
|
|
15
17
|
onIndexChange?: (index: number) => void;
|
|
16
18
|
};
|
|
17
|
-
export declare const MultiImageViewer:
|
|
19
|
+
export declare const MultiImageViewer: React.ForwardRefExoticComponent<Pick<ImageViewerProps, "visible" | "onClose" | "afterClose" | "getContainer" | "maxZoom"> & {
|
|
20
|
+
images?: string[] | undefined;
|
|
21
|
+
defaultIndex?: number | undefined;
|
|
22
|
+
onIndexChange?: ((index: number) => void) | undefined;
|
|
23
|
+
} & React.RefAttributes<SlidesRef>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { forwardRef, useImperativeHandle, useRef, useState } from 'react';
|
|
2
2
|
import { mergeProps } from '../../utils/with-default-props';
|
|
3
3
|
import { renderToContainer } from '../../utils/render-to-container';
|
|
4
4
|
import Mask from '../mask';
|
|
@@ -33,8 +33,18 @@ export const ImageViewer = p => {
|
|
|
33
33
|
const multiDefaultProps = Object.assign(Object.assign({}, defaultProps), {
|
|
34
34
|
defaultIndex: 0
|
|
35
35
|
});
|
|
36
|
-
export const MultiImageViewer = p => {
|
|
36
|
+
export const MultiImageViewer = forwardRef((p, ref) => {
|
|
37
37
|
const props = mergeProps(multiDefaultProps, p);
|
|
38
|
+
const [defaultIndex, setDefaultIndex] = useState(props.defaultIndex);
|
|
39
|
+
const slidesRef = useRef(null);
|
|
40
|
+
useImperativeHandle(ref, () => ({
|
|
41
|
+
swipeTo: (index, immediate) => {
|
|
42
|
+
var _a;
|
|
43
|
+
|
|
44
|
+
setDefaultIndex(index);
|
|
45
|
+
(_a = slidesRef.current) === null || _a === void 0 ? void 0 : _a.swipeTo(index, immediate);
|
|
46
|
+
}
|
|
47
|
+
}));
|
|
38
48
|
const node = React.createElement(Mask, {
|
|
39
49
|
visible: props.visible,
|
|
40
50
|
disableBodyScroll: false,
|
|
@@ -43,7 +53,8 @@ export const MultiImageViewer = p => {
|
|
|
43
53
|
}, React.createElement("div", {
|
|
44
54
|
className: `${classPrefix}-content`
|
|
45
55
|
}, props.images && React.createElement(Slides, {
|
|
46
|
-
|
|
56
|
+
ref: slidesRef,
|
|
57
|
+
defaultIndex: defaultIndex,
|
|
47
58
|
onIndexChange: props.onIndexChange,
|
|
48
59
|
images: props.images,
|
|
49
60
|
onTap: () => {
|
|
@@ -54,4 +65,4 @@ export const MultiImageViewer = p => {
|
|
|
54
65
|
maxZoom: props.maxZoom
|
|
55
66
|
})));
|
|
56
67
|
return renderToContainer(props.getContainer, node);
|
|
57
|
-
};
|
|
68
|
+
});
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import './image-viewer.less';
|
|
3
3
|
import { showMultiImageViewer, showImageViewer, clearImageViewer } from './methods';
|
|
4
|
-
export type { ImageViewerProps, MultiImageViewerProps } from './image-viewer';
|
|
4
|
+
export type { ImageViewerProps, MultiImageViewerProps, MultiImageViewerRef, } from './image-viewer';
|
|
5
5
|
export type { ImageViewerHandler } from './methods';
|
|
6
6
|
declare const _default: import("react").FC<import("./image-viewer").ImageViewerProps> & {
|
|
7
|
-
Multi: import("react").
|
|
7
|
+
Multi: import("react").ForwardRefExoticComponent<Pick<import("./image-viewer").ImageViewerProps, "visible" | "onClose" | "afterClose" | "getContainer" | "maxZoom"> & {
|
|
8
|
+
images?: string[] | undefined;
|
|
9
|
+
defaultIndex?: number | undefined;
|
|
10
|
+
onIndexChange?: ((index: number) => void) | undefined;
|
|
11
|
+
} & import("react").RefAttributes<import("./slides").SlidesRef>> & {
|
|
8
12
|
show: typeof showMultiImageViewer;
|
|
9
13
|
};
|
|
10
14
|
show: typeof showImageViewer;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare
|
|
1
|
+
import React from 'react';
|
|
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
|
-
}
|
|
8
|
+
};
|
|
9
|
+
export declare type SlidesRef = {
|
|
10
|
+
swipeTo: (index: number, immediate?: boolean) => void;
|
|
11
|
+
};
|
|
12
|
+
export declare const Slides: React.ForwardRefExoticComponent<SlidesType & React.RefAttributes<SlidesRef>>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import React, { useRef } from 'react';
|
|
1
|
+
import React, { forwardRef, useImperativeHandle, useRef } from 'react';
|
|
2
2
|
import { useDrag } from '@use-gesture/react';
|
|
3
3
|
import { useSpring, animated } from '@react-spring/web';
|
|
4
4
|
import { Slide } from './slide';
|
|
5
5
|
import { convertPx } from '../../utils/convert-px';
|
|
6
6
|
import { bound } from '../../utils/bound';
|
|
7
7
|
const classPrefix = `adm-image-viewer`;
|
|
8
|
-
export const Slides = props => {
|
|
8
|
+
export const Slides = forwardRef((props, ref) => {
|
|
9
9
|
const slideWidth = window.innerWidth + convertPx(16);
|
|
10
10
|
const [{
|
|
11
11
|
x
|
|
@@ -17,10 +17,23 @@ export const Slides = props => {
|
|
|
17
17
|
}
|
|
18
18
|
}));
|
|
19
19
|
const count = props.images.length;
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
|
|
21
|
+
function swipeTo(index, immediate = false) {
|
|
22
22
|
var _a;
|
|
23
23
|
|
|
24
|
+
const i = bound(index, 0, count - 1);
|
|
25
|
+
(_a = props.onIndexChange) === null || _a === void 0 ? void 0 : _a.call(props, i);
|
|
26
|
+
api.start({
|
|
27
|
+
x: i * slideWidth,
|
|
28
|
+
immediate
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
useImperativeHandle(ref, () => ({
|
|
33
|
+
swipeTo
|
|
34
|
+
}));
|
|
35
|
+
const dragLockRef = useRef(false);
|
|
36
|
+
const bind = useDrag(state => {
|
|
24
37
|
if (dragLockRef.current) return;
|
|
25
38
|
const [offsetX] = state.offset;
|
|
26
39
|
|
|
@@ -28,11 +41,7 @@ export const Slides = props => {
|
|
|
28
41
|
const minIndex = Math.floor(offsetX / slideWidth);
|
|
29
42
|
const maxIndex = minIndex + 1;
|
|
30
43
|
const velocityOffset = Math.min(state.velocity[0] * 2000, slideWidth) * state.direction[0];
|
|
31
|
-
|
|
32
|
-
(_a = props.onIndexChange) === null || _a === void 0 ? void 0 : _a.call(props, index);
|
|
33
|
-
api.start({
|
|
34
|
-
x: index * slideWidth
|
|
35
|
-
});
|
|
44
|
+
swipeTo(bound(Math.round((offsetX + velocityOffset) / slideWidth), minIndex, maxIndex));
|
|
36
45
|
} else {
|
|
37
46
|
api.start({
|
|
38
47
|
x: offsetX,
|
|
@@ -81,4 +90,4 @@ export const Slides = props => {
|
|
|
81
90
|
},
|
|
82
91
|
dragLockRef: dragLockRef
|
|
83
92
|
}))));
|
|
84
|
-
};
|
|
93
|
+
});
|