antd-mobile 5.23.0 → 5.24.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 +167 -15
- package/2x/bundle/antd-mobile.cjs.js +8 -8
- package/2x/bundle/antd-mobile.compatible.umd.js +5364 -5241
- package/2x/bundle/antd-mobile.es.development.js +167 -15
- package/2x/bundle/antd-mobile.es.js +4345 -4242
- package/2x/bundle/antd-mobile.umd.development.js +167 -15
- package/2x/bundle/antd-mobile.umd.js +8 -8
- package/2x/bundle/style.css +9 -4
- package/2x/cjs/components/calendar/calendar.d.ts +3 -5
- package/2x/cjs/components/calendar/calendar.js +27 -5
- package/2x/cjs/components/calendar/convert.d.ts +6 -0
- package/2x/cjs/components/calendar/convert.js +9 -0
- package/2x/cjs/components/ellipsis/ellipsis.js +16 -7
- package/2x/cjs/components/form/form-item.css +0 -1
- package/2x/cjs/components/form/form.css +9 -3
- package/2x/cjs/components/form/form.d.ts +2 -2
- package/2x/cjs/components/form/index.css +9 -4
- package/2x/cjs/components/form/index.d.ts +1 -1
- package/2x/cjs/components/popover/popover.js +2 -2
- package/2x/cjs/components/stepper/stepper.js +2 -1
- package/2x/cjs/components/swiper/swiper.js +9 -0
- package/2x/es/components/calendar/calendar.d.ts +3 -5
- package/2x/es/components/calendar/calendar.js +29 -6
- package/2x/es/components/calendar/convert.d.ts +6 -0
- package/2x/es/components/calendar/convert.js +4 -0
- package/2x/es/components/ellipsis/ellipsis.js +14 -8
- package/2x/es/components/form/form-item.css +0 -1
- package/2x/es/components/form/form.css +9 -3
- package/2x/es/components/form/form.d.ts +2 -2
- package/2x/es/components/form/index.css +9 -4
- package/2x/es/components/form/index.d.ts +1 -1
- package/2x/es/components/popover/popover.js +2 -2
- package/2x/es/components/stepper/stepper.js +2 -1
- package/2x/es/components/swiper/swiper.js +9 -0
- package/2x/package.json +2 -1
- package/2x/umd/antd-mobile.js +5364 -5241
- package/bundle/antd-mobile.cjs.development.js +167 -15
- package/bundle/antd-mobile.cjs.js +8 -8
- package/bundle/antd-mobile.compatible.umd.js +5364 -5241
- package/bundle/antd-mobile.es.development.js +167 -15
- package/bundle/antd-mobile.es.js +4345 -4242
- package/bundle/antd-mobile.umd.development.js +167 -15
- package/bundle/antd-mobile.umd.js +8 -8
- package/bundle/style.css +1 -1
- package/cjs/components/calendar/calendar.d.ts +3 -5
- package/cjs/components/calendar/calendar.js +27 -5
- package/cjs/components/calendar/convert.d.ts +6 -0
- package/cjs/components/calendar/convert.js +9 -0
- package/cjs/components/ellipsis/ellipsis.js +16 -7
- package/cjs/components/form/form-item.css +0 -1
- package/cjs/components/form/form.css +8 -3
- package/cjs/components/form/form.d.ts +2 -2
- package/cjs/components/form/index.css +8 -4
- package/cjs/components/form/index.d.ts +1 -1
- package/cjs/components/popover/popover.js +2 -2
- package/cjs/components/stepper/stepper.js +2 -1
- package/cjs/components/swiper/swiper.js +9 -0
- package/es/components/calendar/calendar.d.ts +3 -5
- package/es/components/calendar/calendar.js +29 -6
- package/es/components/calendar/convert.d.ts +6 -0
- package/es/components/calendar/convert.js +4 -0
- package/es/components/ellipsis/ellipsis.js +14 -8
- package/es/components/form/form-item.css +0 -1
- package/es/components/form/form.css +8 -3
- package/es/components/form/form.d.ts +2 -2
- package/es/components/form/index.css +8 -4
- package/es/components/form/index.d.ts +1 -1
- package/es/components/popover/popover.js +2 -2
- package/es/components/stepper/stepper.js +2 -1
- package/es/components/swiper/swiper.js +9 -0
- package/package.json +2 -1
- package/umd/antd-mobile.js +1 -1
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
.adm-form {
|
|
2
|
-
--border-inner: solid 1px var(--adm-color
|
|
3
|
-
--border-top: solid 1px var(--adm-color
|
|
4
|
-
--border-bottom: solid 1px var(--adm-color
|
|
2
|
+
--border-inner: solid 1px var(--adm-border-color);
|
|
3
|
+
--border-top: solid 1px var(--adm-border-color);
|
|
4
|
+
--border-bottom: solid 1px var(--adm-border-color);
|
|
5
|
+
--prefix-width: 6.8em;
|
|
5
6
|
---border-inner: var(--border-inner);
|
|
6
7
|
---border-top: var(--border-top);
|
|
7
8
|
---border-bottom: var(--border-bottom);
|
|
9
|
+
---prefix-width: var(--prefix-width);
|
|
8
10
|
}
|
|
9
11
|
.adm-form .adm-list.adm-list {
|
|
10
12
|
--padding-left: 16px;
|
|
@@ -16,6 +18,9 @@
|
|
|
16
18
|
.adm-form .adm-form-footer {
|
|
17
19
|
padding: 20px 12px;
|
|
18
20
|
}
|
|
21
|
+
.adm-form .adm-form-item-horizontal.adm-list-item {
|
|
22
|
+
--prefix-width: var(---prefix-width);
|
|
23
|
+
}
|
|
19
24
|
.adm-form-list-operation {
|
|
20
25
|
text-align: center;
|
|
21
26
|
color: #1677ff;
|
|
@@ -4,13 +4,13 @@ import { ListProps } from '../list';
|
|
|
4
4
|
import type { FormProps as RcFormProps, FormInstance as RCFormInstance } from 'rc-field-form';
|
|
5
5
|
import { FormContextType } from './context';
|
|
6
6
|
export declare type FormInstance = Pick<RCFormInstance, 'getFieldValue' | 'getFieldsValue' | 'getFieldError' | 'getFieldsError' | 'isFieldTouched' | 'isFieldsTouched' | 'resetFields' | 'setFields' | 'setFieldsValue' | 'submit' | 'validateFields'>;
|
|
7
|
-
export declare type FormProps = Pick<RcFormProps, 'form' | 'initialValues' | 'name' | 'preserve' | 'validateMessages' | 'validateTrigger' | 'onFieldsChange' | 'onFinish' | 'onFinishFailed' | 'onValuesChange' | 'children'> & NativeProps<'--border-inner' | '--border-top' | '--border-bottom'> & Partial<FormContextType> & {
|
|
7
|
+
export declare type FormProps = Pick<RcFormProps, 'form' | 'initialValues' | 'name' | 'preserve' | 'validateMessages' | 'validateTrigger' | 'onFieldsChange' | 'onFinish' | 'onFinishFailed' | 'onValuesChange' | 'children'> & NativeProps<'--border-inner' | '--border-top' | '--border-bottom' | '--prefix-width'> & Partial<FormContextType> & {
|
|
8
8
|
footer?: ReactNode;
|
|
9
9
|
mode?: ListProps['mode'];
|
|
10
10
|
};
|
|
11
11
|
export declare const Form: React.ForwardRefExoticComponent<Pick<RcFormProps<any>, "children" | "form" | "name" | "initialValues" | "preserve" | "validateMessages" | "validateTrigger" | "onFieldsChange" | "onFinish" | "onFinishFailed" | "onValuesChange"> & {
|
|
12
12
|
className?: string | undefined;
|
|
13
|
-
style?: (React.CSSProperties & Partial<Record<"--border-bottom" | "--border-inner" | "--border-top", string>>) | undefined;
|
|
13
|
+
style?: (React.CSSProperties & Partial<Record<"--border-bottom" | "--border-inner" | "--border-top" | "--prefix-width", string>>) | undefined;
|
|
14
14
|
tabIndex?: number | undefined;
|
|
15
15
|
} & React.AriaAttributes & Partial<FormContextType> & {
|
|
16
16
|
footer?: ReactNode;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
.adm-form {
|
|
2
|
-
--border-inner: solid 1px var(--adm-color
|
|
3
|
-
--border-top: solid 1px var(--adm-color
|
|
4
|
-
--border-bottom: solid 1px var(--adm-color
|
|
2
|
+
--border-inner: solid 1px var(--adm-border-color);
|
|
3
|
+
--border-top: solid 1px var(--adm-border-color);
|
|
4
|
+
--border-bottom: solid 1px var(--adm-border-color);
|
|
5
|
+
--prefix-width: 6.8em;
|
|
5
6
|
---border-inner: var(--border-inner);
|
|
6
7
|
---border-top: var(--border-top);
|
|
7
8
|
---border-bottom: var(--border-bottom);
|
|
9
|
+
---prefix-width: var(--prefix-width);
|
|
8
10
|
}
|
|
9
11
|
.adm-form .adm-list.adm-list {
|
|
10
12
|
--padding-left: 16px;
|
|
@@ -16,6 +18,9 @@
|
|
|
16
18
|
.adm-form .adm-form-footer {
|
|
17
19
|
padding: 20px 12px;
|
|
18
20
|
}
|
|
21
|
+
.adm-form .adm-form-item-horizontal.adm-list-item {
|
|
22
|
+
--prefix-width: var(---prefix-width);
|
|
23
|
+
}
|
|
19
24
|
.adm-form-list-operation {
|
|
20
25
|
text-align: center;
|
|
21
26
|
color: #1677ff;
|
|
@@ -76,7 +81,6 @@
|
|
|
76
81
|
}
|
|
77
82
|
.adm-form-item.adm-form-item-horizontal.adm-list-item {
|
|
78
83
|
--align-items: stretch;
|
|
79
|
-
--prefix-width: 6.8em;
|
|
80
84
|
}
|
|
81
85
|
.adm-form-item.adm-form-item-horizontal .adm-list-item-content-prefix {
|
|
82
86
|
padding-top: 12px;
|
|
@@ -9,7 +9,7 @@ export type { ValidateMessages, FieldData, NamePath, } from 'rc-field-form/es/in
|
|
|
9
9
|
export type { FormArrayField, FormArrayOperation, FormArrayProps, } from './form-array';
|
|
10
10
|
declare const _default: import("react").ForwardRefExoticComponent<Pick<import("rc-field-form").FormProps<any>, "children" | "form" | "name" | "initialValues" | "preserve" | "validateMessages" | "validateTrigger" | "onFieldsChange" | "onFinish" | "onFinishFailed" | "onValuesChange"> & {
|
|
11
11
|
className?: string | undefined;
|
|
12
|
-
style?: (import("react").CSSProperties & Partial<Record<"--border-bottom" | "--border-inner" | "--border-top", string>>) | undefined;
|
|
12
|
+
style?: (import("react").CSSProperties & Partial<Record<"--border-bottom" | "--border-inner" | "--border-top" | "--prefix-width", string>>) | undefined;
|
|
13
13
|
tabIndex?: number | undefined;
|
|
14
14
|
} & import("react").AriaAttributes & Partial<import("./context").FormContextType> & {
|
|
15
15
|
footer?: import("react").ReactNode;
|
|
@@ -167,11 +167,11 @@ const Popover = (0, _react.forwardRef)((p, ref) => {
|
|
|
167
167
|
(0, _ahooks.useClickAway)(() => {
|
|
168
168
|
if (!props.trigger) return;
|
|
169
169
|
setVisible(false);
|
|
170
|
-
}, () => {
|
|
170
|
+
}, [() => {
|
|
171
171
|
var _a;
|
|
172
172
|
|
|
173
173
|
return (_a = targetRef.current) === null || _a === void 0 ? void 0 : _a.element;
|
|
174
|
-
});
|
|
174
|
+
}, floatingRef], ['click', 'touchmove']);
|
|
175
175
|
const shouldRender = (0, _shouldRender.useShouldRender)(visible, false, props.destroyOnHide);
|
|
176
176
|
return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_wrapper.Wrapper, {
|
|
177
177
|
ref: targetRef
|
|
@@ -161,7 +161,8 @@ const Stepper = p => {
|
|
|
161
161
|
role: 'spinbutton',
|
|
162
162
|
"aria-valuenow": Number(inputValue),
|
|
163
163
|
"aria-valuemax": max,
|
|
164
|
-
"aria-valuemin": min
|
|
164
|
+
"aria-valuemin": min,
|
|
165
|
+
inputMode: 'decimal'
|
|
165
166
|
})), _react.default.createElement(_button.default, {
|
|
166
167
|
className: `${classPrefix}-plus`,
|
|
167
168
|
onClick: handlePlus,
|
|
@@ -50,8 +50,10 @@ const defaultProps = {
|
|
|
50
50
|
stuckAtBoundary: true,
|
|
51
51
|
rubberband: true
|
|
52
52
|
};
|
|
53
|
+
let currentUid;
|
|
53
54
|
const Swiper = (0, _react.forwardRef)((0, _stagedComponents.staged)((p, ref) => {
|
|
54
55
|
const props = (0, _withDefaultProps.mergeProps)(defaultProps, p);
|
|
56
|
+
const [uid] = (0, _react.useState)({});
|
|
55
57
|
const isVertical = props.direction === 'vertical';
|
|
56
58
|
const slideRatio = props.slideSize / 100;
|
|
57
59
|
const offsetRatio = props.trackOffset / 100;
|
|
@@ -153,6 +155,13 @@ const Swiper = (0, _react.forwardRef)((0, _stagedComponents.staged)((p, ref) =>
|
|
|
153
155
|
const bind = (0, _react2.useDrag)(state => {
|
|
154
156
|
dragCancelRef.current = state.cancel;
|
|
155
157
|
if (!state.intentional) return;
|
|
158
|
+
|
|
159
|
+
if (state.first && !currentUid) {
|
|
160
|
+
currentUid = uid;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
if (currentUid !== uid) return;
|
|
164
|
+
currentUid = state.last ? undefined : uid;
|
|
156
165
|
const slidePixels = getSlidePixels();
|
|
157
166
|
if (!slidePixels) return;
|
|
158
167
|
const paramIndex = isVertical ? 1 : 0;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { NativeProps } from '../../utils/native-props';
|
|
3
|
-
|
|
4
|
-
month: number;
|
|
5
|
-
year: number;
|
|
6
|
-
};
|
|
3
|
+
import { Page } from './convert';
|
|
7
4
|
export declare type CalendarRef = {
|
|
8
5
|
jumpTo: (page: Page | ((page: Page) => Page)) => void;
|
|
9
6
|
jumpToToday: () => void;
|
|
@@ -20,6 +17,8 @@ export declare type CalendarProps = {
|
|
|
20
17
|
max?: Date;
|
|
21
18
|
min?: Date;
|
|
22
19
|
shouldDisableDate?: (date: Date) => boolean;
|
|
20
|
+
minPage?: Page;
|
|
21
|
+
maxPage?: Page;
|
|
23
22
|
} & ({
|
|
24
23
|
selectionMode?: undefined;
|
|
25
24
|
value?: undefined;
|
|
@@ -37,4 +36,3 @@ export declare type CalendarProps = {
|
|
|
37
36
|
onChange?: (val: [Date, Date] | null) => void;
|
|
38
37
|
}) & NativeProps;
|
|
39
38
|
export declare const Calendar: React.ForwardRefExoticComponent<CalendarProps & React.RefAttributes<CalendarRef>>;
|
|
40
|
-
export {};
|
|
@@ -9,7 +9,7 @@ import { useConfig } from '../config-provider';
|
|
|
9
9
|
import isoWeek from 'dayjs/plugin/isoWeek';
|
|
10
10
|
import { useUpdateEffect } from 'ahooks';
|
|
11
11
|
import { usePropsValue } from '../../utils/use-props-value';
|
|
12
|
-
import { convertValueToRange } from './convert';
|
|
12
|
+
import { convertValueToRange, convertPageToDayjs } from './convert';
|
|
13
13
|
dayjs.extend(isoWeek);
|
|
14
14
|
const classPrefix = 'adm-calendar';
|
|
15
15
|
const defaultProps = {
|
|
@@ -67,35 +67,58 @@ export const Calendar = forwardRef((p, ref) => {
|
|
|
67
67
|
page = pageOrPageGenerator;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
setCurrent(
|
|
70
|
+
setCurrent(convertPageToDayjs(page));
|
|
71
71
|
},
|
|
72
72
|
jumpToToday: () => {
|
|
73
73
|
setCurrent(dayjs().date(1));
|
|
74
74
|
}
|
|
75
75
|
}));
|
|
76
|
+
|
|
77
|
+
const handlePageChange = (action, num, type) => {
|
|
78
|
+
const nxtCurrent = current[action](num, type);
|
|
79
|
+
|
|
80
|
+
if (action === 'subtract' && props.minPage) {
|
|
81
|
+
const minPage = convertPageToDayjs(props.minPage);
|
|
82
|
+
|
|
83
|
+
if (nxtCurrent.isBefore(minPage, type)) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (action === 'add' && props.maxPage) {
|
|
89
|
+
const maxPage = convertPageToDayjs(props.maxPage);
|
|
90
|
+
|
|
91
|
+
if (nxtCurrent.isAfter(maxPage, type)) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
setCurrent(current[action](num, type));
|
|
97
|
+
};
|
|
98
|
+
|
|
76
99
|
const header = React.createElement("div", {
|
|
77
100
|
className: `${classPrefix}-header`
|
|
78
101
|
}, React.createElement("a", {
|
|
79
102
|
className: `${classPrefix}-arrow-button ${classPrefix}-arrow-button-year`,
|
|
80
103
|
onClick: () => {
|
|
81
|
-
|
|
104
|
+
handlePageChange('subtract', 1, 'year');
|
|
82
105
|
}
|
|
83
106
|
}, props.prevYearButton), React.createElement("a", {
|
|
84
107
|
className: `${classPrefix}-arrow-button ${classPrefix}-arrow-button-month`,
|
|
85
108
|
onClick: () => {
|
|
86
|
-
|
|
109
|
+
handlePageChange('subtract', 1, 'month');
|
|
87
110
|
}
|
|
88
111
|
}, props.prevMonthButton), React.createElement("div", {
|
|
89
112
|
className: `${classPrefix}-title`
|
|
90
113
|
}, locale.Calendar.renderYearAndMonth(current.year(), current.month() + 1)), React.createElement("a", {
|
|
91
114
|
className: classNames(`${classPrefix}-arrow-button`, `${classPrefix}-arrow-button-right`, `${classPrefix}-arrow-button-right-month`),
|
|
92
115
|
onClick: () => {
|
|
93
|
-
|
|
116
|
+
handlePageChange('add', 1, 'month');
|
|
94
117
|
}
|
|
95
118
|
}, props.nextMonthButton), React.createElement("a", {
|
|
96
119
|
className: classNames(`${classPrefix}-arrow-button`, `${classPrefix}-arrow-button-right`, `${classPrefix}-arrow-button-right-year`),
|
|
97
120
|
onClick: () => {
|
|
98
|
-
|
|
121
|
+
handlePageChange('add', 1, 'year');
|
|
99
122
|
}
|
|
100
123
|
}, props.nextYearButton));
|
|
101
124
|
const maxDay = useMemo(() => props.max && dayjs(props.max), [props.max]);
|
|
@@ -1,2 +1,8 @@
|
|
|
1
|
+
import dayjs from 'dayjs';
|
|
1
2
|
export declare type DateRange = [Date, Date] | null;
|
|
3
|
+
export declare type Page = {
|
|
4
|
+
month: number;
|
|
5
|
+
year: number;
|
|
6
|
+
};
|
|
2
7
|
export declare function convertValueToRange(selectionMode: 'single' | 'range' | undefined, value: Date | [Date, Date] | null): DateRange;
|
|
8
|
+
export declare function convertPageToDayjs(page: Page): dayjs.Dayjs;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import dayjs from 'dayjs';
|
|
1
2
|
export function convertValueToRange(selectionMode, value) {
|
|
2
3
|
if (selectionMode === undefined) {
|
|
3
4
|
return null;
|
|
@@ -12,4 +13,7 @@ export function convertValueToRange(selectionMode, value) {
|
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
return [value, value];
|
|
16
|
+
}
|
|
17
|
+
export function convertPageToDayjs(page) {
|
|
18
|
+
return dayjs().year(page.year).month(page.month - 1).date(1);
|
|
15
19
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import React, { useRef, useState } from 'react';
|
|
1
|
+
import React, { useMemo, useRef, useState } from 'react';
|
|
2
|
+
import runes from 'runes';
|
|
2
3
|
import { mergeProps } from '../../utils/with-default-props';
|
|
3
4
|
import { withNativeProps } from '../../utils/native-props';
|
|
4
5
|
import { useResizeEffect } from '../../utils/use-resize-effect';
|
|
@@ -19,6 +20,11 @@ export const Ellipsis = p => {
|
|
|
19
20
|
const [ellipsised, setEllipsised] = useState({});
|
|
20
21
|
const [expanded, setExpanded] = useState(false);
|
|
21
22
|
const [exceeded, setExceeded] = useState(false);
|
|
23
|
+
const chars = useMemo(() => runes(props.content), [props.content]);
|
|
24
|
+
|
|
25
|
+
function getSubString(start, end) {
|
|
26
|
+
return chars.slice(start, end).join('');
|
|
27
|
+
}
|
|
22
28
|
|
|
23
29
|
function calcEllipsised() {
|
|
24
30
|
const root = rootRef.current;
|
|
@@ -57,11 +63,11 @@ export const Ellipsis = p => {
|
|
|
57
63
|
if (right - left <= 1) {
|
|
58
64
|
if (props.direction === 'end') {
|
|
59
65
|
return {
|
|
60
|
-
leading:
|
|
66
|
+
leading: getSubString(0, left) + '...'
|
|
61
67
|
};
|
|
62
68
|
} else {
|
|
63
69
|
return {
|
|
64
|
-
tailing: '...' +
|
|
70
|
+
tailing: '...' + getSubString(right, end)
|
|
65
71
|
};
|
|
66
72
|
}
|
|
67
73
|
}
|
|
@@ -69,9 +75,9 @@ export const Ellipsis = p => {
|
|
|
69
75
|
const middle = Math.round((left + right) / 2);
|
|
70
76
|
|
|
71
77
|
if (props.direction === 'end') {
|
|
72
|
-
container.innerText =
|
|
78
|
+
container.innerText = getSubString(0, middle) + '...' + actionText;
|
|
73
79
|
} else {
|
|
74
|
-
container.innerText = actionText + '...' +
|
|
80
|
+
container.innerText = actionText + '...' + getSubString(middle, end);
|
|
75
81
|
}
|
|
76
82
|
|
|
77
83
|
if (container.offsetHeight <= maxHeight) {
|
|
@@ -92,14 +98,14 @@ export const Ellipsis = p => {
|
|
|
92
98
|
function checkMiddle(leftPart, rightPart) {
|
|
93
99
|
if (leftPart[1] - leftPart[0] <= 1 && rightPart[1] - rightPart[0] <= 1) {
|
|
94
100
|
return {
|
|
95
|
-
leading:
|
|
96
|
-
tailing: '...' +
|
|
101
|
+
leading: getSubString(0, leftPart[0]) + '...',
|
|
102
|
+
tailing: '...' + getSubString(rightPart[1], end)
|
|
97
103
|
};
|
|
98
104
|
}
|
|
99
105
|
|
|
100
106
|
const leftPartMiddle = Math.floor((leftPart[0] + leftPart[1]) / 2);
|
|
101
107
|
const rightPartMiddle = Math.ceil((rightPart[0] + rightPart[1]) / 2);
|
|
102
|
-
container.innerText =
|
|
108
|
+
container.innerText = getSubString(0, leftPartMiddle) + '...' + actionText + '...' + getSubString(rightPartMiddle, end);
|
|
103
109
|
|
|
104
110
|
if (container.offsetHeight <= maxHeight) {
|
|
105
111
|
return checkMiddle([leftPartMiddle, leftPart[1]], [rightPart[0], rightPartMiddle]);
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
.adm-form {
|
|
2
|
-
--border-inner: solid 1px var(--adm-color
|
|
3
|
-
--border-top: solid 1px var(--adm-color
|
|
4
|
-
--border-bottom: solid 1px var(--adm-color
|
|
2
|
+
--border-inner: solid 1px var(--adm-border-color);
|
|
3
|
+
--border-top: solid 1px var(--adm-border-color);
|
|
4
|
+
--border-bottom: solid 1px var(--adm-border-color);
|
|
5
|
+
--prefix-width: 6.8em;
|
|
5
6
|
---border-inner: var(--border-inner);
|
|
6
7
|
---border-top: var(--border-top);
|
|
7
8
|
---border-bottom: var(--border-bottom);
|
|
9
|
+
---prefix-width: var(--prefix-width);
|
|
8
10
|
}
|
|
9
11
|
.adm-form .adm-list.adm-list {
|
|
10
12
|
--padding-left: 16px;
|
|
@@ -16,6 +18,9 @@
|
|
|
16
18
|
.adm-form .adm-form-footer {
|
|
17
19
|
padding: 20px 12px;
|
|
18
20
|
}
|
|
21
|
+
.adm-form .adm-form-item-horizontal.adm-list-item {
|
|
22
|
+
--prefix-width: var(---prefix-width);
|
|
23
|
+
}
|
|
19
24
|
.adm-form-list-operation {
|
|
20
25
|
text-align: center;
|
|
21
26
|
color: #1677ff;
|
|
@@ -4,13 +4,13 @@ import { ListProps } from '../list';
|
|
|
4
4
|
import type { FormProps as RcFormProps, FormInstance as RCFormInstance } from 'rc-field-form';
|
|
5
5
|
import { FormContextType } from './context';
|
|
6
6
|
export declare type FormInstance = Pick<RCFormInstance, 'getFieldValue' | 'getFieldsValue' | 'getFieldError' | 'getFieldsError' | 'isFieldTouched' | 'isFieldsTouched' | 'resetFields' | 'setFields' | 'setFieldsValue' | 'submit' | 'validateFields'>;
|
|
7
|
-
export declare type FormProps = Pick<RcFormProps, 'form' | 'initialValues' | 'name' | 'preserve' | 'validateMessages' | 'validateTrigger' | 'onFieldsChange' | 'onFinish' | 'onFinishFailed' | 'onValuesChange' | 'children'> & NativeProps<'--border-inner' | '--border-top' | '--border-bottom'> & Partial<FormContextType> & {
|
|
7
|
+
export declare type FormProps = Pick<RcFormProps, 'form' | 'initialValues' | 'name' | 'preserve' | 'validateMessages' | 'validateTrigger' | 'onFieldsChange' | 'onFinish' | 'onFinishFailed' | 'onValuesChange' | 'children'> & NativeProps<'--border-inner' | '--border-top' | '--border-bottom' | '--prefix-width'> & Partial<FormContextType> & {
|
|
8
8
|
footer?: ReactNode;
|
|
9
9
|
mode?: ListProps['mode'];
|
|
10
10
|
};
|
|
11
11
|
export declare const Form: React.ForwardRefExoticComponent<Pick<RcFormProps<any>, "children" | "form" | "name" | "initialValues" | "preserve" | "validateMessages" | "validateTrigger" | "onFieldsChange" | "onFinish" | "onFinishFailed" | "onValuesChange"> & {
|
|
12
12
|
className?: string | undefined;
|
|
13
|
-
style?: (React.CSSProperties & Partial<Record<"--border-bottom" | "--border-inner" | "--border-top", string>>) | undefined;
|
|
13
|
+
style?: (React.CSSProperties & Partial<Record<"--border-bottom" | "--border-inner" | "--border-top" | "--prefix-width", string>>) | undefined;
|
|
14
14
|
tabIndex?: number | undefined;
|
|
15
15
|
} & React.AriaAttributes & Partial<FormContextType> & {
|
|
16
16
|
footer?: ReactNode;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
.adm-form {
|
|
2
|
-
--border-inner: solid 1px var(--adm-color
|
|
3
|
-
--border-top: solid 1px var(--adm-color
|
|
4
|
-
--border-bottom: solid 1px var(--adm-color
|
|
2
|
+
--border-inner: solid 1px var(--adm-border-color);
|
|
3
|
+
--border-top: solid 1px var(--adm-border-color);
|
|
4
|
+
--border-bottom: solid 1px var(--adm-border-color);
|
|
5
|
+
--prefix-width: 6.8em;
|
|
5
6
|
---border-inner: var(--border-inner);
|
|
6
7
|
---border-top: var(--border-top);
|
|
7
8
|
---border-bottom: var(--border-bottom);
|
|
9
|
+
---prefix-width: var(--prefix-width);
|
|
8
10
|
}
|
|
9
11
|
.adm-form .adm-list.adm-list {
|
|
10
12
|
--padding-left: 16px;
|
|
@@ -16,6 +18,9 @@
|
|
|
16
18
|
.adm-form .adm-form-footer {
|
|
17
19
|
padding: 20px 12px;
|
|
18
20
|
}
|
|
21
|
+
.adm-form .adm-form-item-horizontal.adm-list-item {
|
|
22
|
+
--prefix-width: var(---prefix-width);
|
|
23
|
+
}
|
|
19
24
|
.adm-form-list-operation {
|
|
20
25
|
text-align: center;
|
|
21
26
|
color: #1677ff;
|
|
@@ -76,7 +81,6 @@
|
|
|
76
81
|
}
|
|
77
82
|
.adm-form-item.adm-form-item-horizontal.adm-list-item {
|
|
78
83
|
--align-items: stretch;
|
|
79
|
-
--prefix-width: 6.8em;
|
|
80
84
|
}
|
|
81
85
|
.adm-form-item.adm-form-item-horizontal .adm-list-item-content-prefix {
|
|
82
86
|
padding-top: 12px;
|
|
@@ -9,7 +9,7 @@ export type { ValidateMessages, FieldData, NamePath, } from 'rc-field-form/es/in
|
|
|
9
9
|
export type { FormArrayField, FormArrayOperation, FormArrayProps, } from './form-array';
|
|
10
10
|
declare const _default: import("react").ForwardRefExoticComponent<Pick<import("rc-field-form").FormProps<any>, "children" | "form" | "name" | "initialValues" | "preserve" | "validateMessages" | "validateTrigger" | "onFieldsChange" | "onFinish" | "onFinishFailed" | "onValuesChange"> & {
|
|
11
11
|
className?: string | undefined;
|
|
12
|
-
style?: (import("react").CSSProperties & Partial<Record<"--border-bottom" | "--border-inner" | "--border-top", string>>) | undefined;
|
|
12
|
+
style?: (import("react").CSSProperties & Partial<Record<"--border-bottom" | "--border-inner" | "--border-top" | "--prefix-width", string>>) | undefined;
|
|
13
13
|
tabIndex?: number | undefined;
|
|
14
14
|
} & import("react").AriaAttributes & Partial<import("./context").FormContextType> & {
|
|
15
15
|
footer?: import("react").ReactNode;
|
|
@@ -139,11 +139,11 @@ export const Popover = forwardRef((p, ref) => {
|
|
|
139
139
|
useClickAway(() => {
|
|
140
140
|
if (!props.trigger) return;
|
|
141
141
|
setVisible(false);
|
|
142
|
-
}, () => {
|
|
142
|
+
}, [() => {
|
|
143
143
|
var _a;
|
|
144
144
|
|
|
145
145
|
return (_a = targetRef.current) === null || _a === void 0 ? void 0 : _a.element;
|
|
146
|
-
});
|
|
146
|
+
}, floatingRef], ['click', 'touchmove']);
|
|
147
147
|
const shouldRender = useShouldRender(visible, false, props.destroyOnHide);
|
|
148
148
|
return React.createElement(React.Fragment, null, React.createElement(Wrapper, {
|
|
149
149
|
ref: targetRef
|
|
@@ -136,7 +136,8 @@ export const Stepper = p => {
|
|
|
136
136
|
role: 'spinbutton',
|
|
137
137
|
"aria-valuenow": Number(inputValue),
|
|
138
138
|
"aria-valuemax": max,
|
|
139
|
-
"aria-valuemin": min
|
|
139
|
+
"aria-valuemin": min,
|
|
140
|
+
inputMode: 'decimal'
|
|
140
141
|
})), React.createElement(Button, {
|
|
141
142
|
className: `${classPrefix}-plus`,
|
|
142
143
|
onClick: handlePlus,
|
|
@@ -24,8 +24,10 @@ const defaultProps = {
|
|
|
24
24
|
stuckAtBoundary: true,
|
|
25
25
|
rubberband: true
|
|
26
26
|
};
|
|
27
|
+
let currentUid;
|
|
27
28
|
export const Swiper = forwardRef(staged((p, ref) => {
|
|
28
29
|
const props = mergeProps(defaultProps, p);
|
|
30
|
+
const [uid] = useState({});
|
|
29
31
|
const isVertical = props.direction === 'vertical';
|
|
30
32
|
const slideRatio = props.slideSize / 100;
|
|
31
33
|
const offsetRatio = props.trackOffset / 100;
|
|
@@ -125,6 +127,13 @@ export const Swiper = forwardRef(staged((p, ref) => {
|
|
|
125
127
|
const bind = useDrag(state => {
|
|
126
128
|
dragCancelRef.current = state.cancel;
|
|
127
129
|
if (!state.intentional) return;
|
|
130
|
+
|
|
131
|
+
if (state.first && !currentUid) {
|
|
132
|
+
currentUid = uid;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
if (currentUid !== uid) return;
|
|
136
|
+
currentUid = state.last ? undefined : uid;
|
|
128
137
|
const slidePixels = getSlidePixels();
|
|
129
138
|
if (!slidePixels) return;
|
|
130
139
|
const paramIndex = isVertical ? 1 : 0;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "antd-mobile",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.24.0",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"@floating-ui/dom": "^1.0.0",
|
|
6
6
|
"@react-spring/web": "^9.4.5",
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"lodash": "^4.17.21",
|
|
15
15
|
"rc-field-form": "~1.27.0",
|
|
16
16
|
"react-is": "^17.0.2",
|
|
17
|
+
"runes": "^0.4.3",
|
|
17
18
|
"staged-components": "^1.1.3",
|
|
18
19
|
"tslib": "^2.4.0",
|
|
19
20
|
"use-sync-external-store": "^1.1.0"
|