antd-mobile 5.0.0-rc.2 → 5.0.0-rc.3

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.
Files changed (63) hide show
  1. package/2x/cjs/components/cascader-view/cascader-view.css +7 -4
  2. package/2x/cjs/components/cascader-view/index.d.ts +1 -1
  3. package/2x/cjs/components/cascader-view/index.js +3 -3
  4. package/2x/cjs/components/dropdown/dropdown.d.ts +11 -4
  5. package/2x/cjs/components/dropdown/dropdown.js +11 -10
  6. package/2x/cjs/components/dropdown/index.d.ts +13 -3
  7. package/2x/cjs/components/dropdown/index.js +8 -1
  8. package/2x/cjs/components/dropdown/item.d.ts +0 -1
  9. package/2x/cjs/components/form/form.d.ts +3 -0
  10. package/2x/cjs/components/form/form.js +3 -1
  11. package/2x/cjs/components/form/index.d.ts +1 -0
  12. package/2x/cjs/components/number-keyboard/number-keyboard.js +49 -29
  13. package/2x/cjs/components/toast/toast.css +1 -0
  14. package/2x/cjs/components/virtual-input/virtual-input.css +1 -1
  15. package/2x/cjs/components/virtual-input/virtual-input.js +29 -14
  16. package/2x/es/components/cascader-view/cascader-view.css +7 -4
  17. package/2x/es/components/cascader-view/index.d.ts +1 -1
  18. package/2x/es/components/cascader-view/index.js +1 -1
  19. package/2x/es/components/dropdown/dropdown.d.ts +11 -4
  20. package/2x/es/components/dropdown/dropdown.js +12 -11
  21. package/2x/es/components/dropdown/index.d.ts +13 -3
  22. package/2x/es/components/dropdown/index.js +5 -1
  23. package/2x/es/components/dropdown/item.d.ts +0 -1
  24. package/2x/es/components/form/form.d.ts +3 -0
  25. package/2x/es/components/form/form.js +3 -1
  26. package/2x/es/components/form/index.d.ts +1 -0
  27. package/2x/es/components/number-keyboard/number-keyboard.js +48 -29
  28. package/2x/es/components/toast/toast.css +1 -0
  29. package/2x/es/components/virtual-input/virtual-input.css +1 -1
  30. package/2x/es/components/virtual-input/virtual-input.js +30 -15
  31. package/2x/package.json +3 -3
  32. package/cjs/components/cascader-view/cascader-view.css +6 -4
  33. package/cjs/components/cascader-view/index.d.ts +1 -1
  34. package/cjs/components/cascader-view/index.js +3 -3
  35. package/cjs/components/dropdown/dropdown.d.ts +11 -4
  36. package/cjs/components/dropdown/dropdown.js +11 -10
  37. package/cjs/components/dropdown/index.d.ts +13 -3
  38. package/cjs/components/dropdown/index.js +8 -1
  39. package/cjs/components/dropdown/item.d.ts +0 -1
  40. package/cjs/components/form/form.d.ts +3 -0
  41. package/cjs/components/form/form.js +3 -1
  42. package/cjs/components/form/index.d.ts +1 -0
  43. package/cjs/components/number-keyboard/number-keyboard.js +49 -29
  44. package/cjs/components/toast/toast.css +1 -0
  45. package/cjs/components/virtual-input/virtual-input.css +1 -1
  46. package/cjs/components/virtual-input/virtual-input.js +29 -14
  47. package/es/components/cascader-view/cascader-view.css +6 -4
  48. package/es/components/cascader-view/index.d.ts +1 -1
  49. package/es/components/cascader-view/index.js +1 -1
  50. package/es/components/dropdown/dropdown.d.ts +11 -4
  51. package/es/components/dropdown/dropdown.js +12 -11
  52. package/es/components/dropdown/index.d.ts +13 -3
  53. package/es/components/dropdown/index.js +5 -1
  54. package/es/components/dropdown/item.d.ts +0 -1
  55. package/es/components/form/form.d.ts +3 -0
  56. package/es/components/form/form.js +3 -1
  57. package/es/components/form/index.d.ts +1 -0
  58. package/es/components/number-keyboard/number-keyboard.js +48 -29
  59. package/es/components/toast/toast.css +1 -0
  60. package/es/components/virtual-input/virtual-input.css +1 -1
  61. package/es/components/virtual-input/virtual-input.js +30 -15
  62. package/package.json +3 -3
  63. package/umd/antd-mobile.js +1 -1
@@ -7,6 +7,7 @@ export type { FormInstance } from 'rc-field-form';
7
7
  declare const _default: import("react").ForwardRefExoticComponent<import("rc-field-form").FormProps<any> & import("../../utils/native-props").NativeProps<never> & Partial<import("./context").FormContextType> & {
8
8
  footer?: import("react").ReactNode;
9
9
  layout?: "horizontal" | "vertical" | undefined;
10
+ mode?: "default" | "card" | undefined;
10
11
  } & import("react").RefAttributes<import("rc-field-form").FormInstance<any>>> & {
11
12
  Item: import("react").FC<import("./form-item").FormItemProps>;
12
13
  useForm: typeof useForm;
@@ -6,6 +6,7 @@ import { shuffle } from '../../utils/shuffle';
6
6
  import Popup from '../popup';
7
7
  import { withNativeProps } from '../../utils/native-props';
8
8
  import SafeArea from '../safe-area';
9
+ import { usePersistFn } from 'ahooks';
9
10
  var classPrefix = 'adm-number-keyboard';
10
11
  var defaultProps = {
11
12
  defaultVisible: false,
@@ -24,8 +25,7 @@ export var NumberKeyboard = function NumberKeyboard(p) {
24
25
  customKey = props.customKey,
25
26
  randomOrder = props.randomOrder,
26
27
  showCloseButton = props.showCloseButton,
27
- onInput = props.onInput,
28
- onDelete = props.onDelete;
28
+ onInput = props.onInput;
29
29
  var keyboardRef = useRef(null);
30
30
  var keys = useMemo(function () {
31
31
  var defaultKeys = ['1', '2', '3', '4', '5', '6', '7', '8', '9'];
@@ -43,31 +43,30 @@ export var NumberKeyboard = function NumberKeyboard(p) {
43
43
  }, [customKey, confirmText, randomOrder, randomOrder && visible]);
44
44
  var timeoutRef = useRef(-1);
45
45
  var intervalRef = useRef(-1);
46
+ var onDelete = usePersistFn(function () {
47
+ var _a;
46
48
 
47
- var onStart = function onStart() {
48
- if (!onDelete) return;
49
+ (_a = props.onDelete) === null || _a === void 0 ? void 0 : _a.call(props);
50
+ });
51
+
52
+ var onBackspacePressStart = function onBackspacePressStart() {
49
53
  timeoutRef.current = window.setTimeout(function () {
50
54
  onDelete();
51
55
  intervalRef.current = window.setInterval(onDelete, 150);
52
- }, 300);
56
+ }, 700);
53
57
  };
54
58
 
55
- var onEnd = function onEnd() {
59
+ var onBackspacePressEnd = function onBackspacePressEnd() {
56
60
  clearTimeout(timeoutRef.current);
57
61
  clearInterval(intervalRef.current);
58
- };
59
-
60
- var backSpaceEvents = {
61
- onMouseDown: onStart,
62
- onTouchStart: onStart,
63
- onMouseUp: onEnd,
64
- onMouseLeave: onEnd,
65
- onTouchEnd: onEnd
66
62
  }; // 点击键盘按键
67
63
 
68
- var onKeyPress = function onKeyPress(key) {
64
+
65
+ var onKeyPress = function onKeyPress(e, key) {
69
66
  var _a, _b;
70
67
 
68
+ e.preventDefault();
69
+
71
70
  switch (key) {
72
71
  case 'BACKSPACE':
73
72
  onDelete === null || onDelete === void 0 ? void 0 : onDelete();
@@ -117,16 +116,27 @@ export var NumberKeyboard = function NumberKeyboard(p) {
117
116
  'sign-key': !isNumberKey && key,
118
117
  'mid-key': index === 9 && !!confirmText
119
118
  });
120
- return /*#__PURE__*/React.createElement("div", Object.assign({
119
+ return /*#__PURE__*/React.createElement("div", {
121
120
  key: key,
122
121
  className: className,
123
- onClick: function onClick() {
124
- return key && onKeyPress(key);
125
- }
126
- }, key === 'BACKSPACE' ? backSpaceEvents : {}, {
122
+ onTouchStart: function onTouchStart() {
123
+ if (key === 'BACKSPACE') {
124
+ onBackspacePressStart();
125
+ }
126
+ },
127
+ onTouchEnd: function onTouchEnd(e) {
128
+ onKeyPress(e, key);
129
+
130
+ if (key === 'BACKSPACE') {
131
+ onBackspacePressEnd();
132
+ }
133
+ },
134
+ onMouseUp: function onMouseUp(e) {
135
+ onKeyPress(e, key);
136
+ },
127
137
  title: key,
128
138
  role: 'button'
129
- }), key === 'BACKSPACE' ? /*#__PURE__*/React.createElement(TextDeletionOutline, null) : key);
139
+ }, key === 'BACKSPACE' ? /*#__PURE__*/React.createElement(TextDeletionOutline, null) : key);
130
140
  };
131
141
 
132
142
  return /*#__PURE__*/React.createElement(Popup, {
@@ -151,18 +161,27 @@ export var NumberKeyboard = function NumberKeyboard(p) {
151
161
  })
152
162
  }, keys.map(renderKey)), !!confirmText && /*#__PURE__*/React.createElement("div", {
153
163
  className: classPrefix + "-confirm"
154
- }, /*#__PURE__*/React.createElement("div", Object.assign({
164
+ }, /*#__PURE__*/React.createElement("div", {
155
165
  className: classPrefix + "-key extra-key bs-key",
156
- onClick: function onClick() {
157
- return onKeyPress('BACKSPACE');
158
- }
159
- }, backSpaceEvents, {
166
+ onTouchStart: function onTouchStart() {
167
+ onBackspacePressStart();
168
+ },
169
+ onTouchEnd: function onTouchEnd(e) {
170
+ onKeyPress(e, 'BACKSPACE');
171
+ onBackspacePressEnd();
172
+ },
173
+ onMouseUp: function onMouseUp(e) {
174
+ return onKeyPress(e, 'BACKSPACE');
175
+ },
160
176
  title: 'BACKSPACE',
161
177
  role: 'button'
162
- }), /*#__PURE__*/React.createElement(TextDeletionOutline, null)), /*#__PURE__*/React.createElement("div", {
178
+ }, /*#__PURE__*/React.createElement(TextDeletionOutline, null)), /*#__PURE__*/React.createElement("div", {
163
179
  className: classPrefix + "-key extra-key ok-key",
164
- onClick: function onClick() {
165
- return onKeyPress('OK');
180
+ onTouchEnd: function onTouchEnd(e) {
181
+ return onKeyPress(e, 'OK');
182
+ },
183
+ onMouseUp: function onMouseUp(e) {
184
+ return onKeyPress(e, 'OK');
166
185
  },
167
186
  role: 'button'
168
187
  }, confirmText))), props.safeArea && /*#__PURE__*/React.createElement("div", {
@@ -14,6 +14,7 @@
14
14
  transform: translate(-50%, -50%);
15
15
  pointer-events: all;
16
16
  font-size: 30px;
17
+ line-height: 1.5;
17
18
  }
18
19
 
19
20
  .adm-toast-mask .adm-toast-wrap-text {
@@ -54,10 +54,10 @@
54
54
  width: var(--caret-width);
55
55
  height: 1.3em;
56
56
  vertical-align: top;
57
+ margin-right: 2px;
57
58
  }
58
59
 
59
60
  .adm-virtual-input-caret {
60
- display: none;
61
61
  width: 100%;
62
62
  height: 100%;
63
63
  background-color: var(--caret-color);
@@ -1,4 +1,4 @@
1
- import React, { forwardRef, useImperativeHandle, useLayoutEffect, useRef, useState } from 'react';
1
+ import React, { forwardRef, useEffect, useImperativeHandle, useLayoutEffect, useRef, useState } from 'react';
2
2
  import { withNativeProps } from '../../utils/native-props';
3
3
  import { mergeProps } from '../../utils/with-default-props';
4
4
  import { usePropsValue } from '../../utils/use-props-value';
@@ -21,10 +21,10 @@ export var VirtualInput = /*#__PURE__*/forwardRef(function (p, ref) {
21
21
  var contentRef = useRef(null);
22
22
 
23
23
  var _useState = useState(false),
24
- keyboardVisible = _useState[0],
25
- setKeyboardVisible = _useState[1];
24
+ hasFocus = _useState[0],
25
+ setHasFocus = _useState[1];
26
26
 
27
- useLayoutEffect(function () {
27
+ function scrollToEnd() {
28
28
  var root = rootRef.current;
29
29
  if (!root) return;
30
30
 
@@ -37,7 +37,16 @@ export var VirtualInput = /*#__PURE__*/forwardRef(function (p, ref) {
37
37
  content.scrollTo({
38
38
  left: content.clientWidth
39
39
  });
40
+ }
41
+
42
+ useLayoutEffect(function () {
43
+ scrollToEnd();
40
44
  }, [value]);
45
+ useEffect(function () {
46
+ if (hasFocus) {
47
+ scrollToEnd();
48
+ }
49
+ }, [hasFocus]);
41
50
  useImperativeHandle(ref, function () {
42
51
  return {
43
52
  focus: function focus() {
@@ -53,10 +62,17 @@ export var VirtualInput = /*#__PURE__*/forwardRef(function (p, ref) {
53
62
  };
54
63
  });
55
64
 
65
+ function onFocus() {
66
+ var _a;
67
+
68
+ setHasFocus(true);
69
+ (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props);
70
+ }
71
+
56
72
  function onBlur() {
57
73
  var _a;
58
74
 
59
- setKeyboardVisible(false);
75
+ setHasFocus(false);
60
76
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props);
61
77
  }
62
78
 
@@ -64,12 +80,7 @@ export var VirtualInput = /*#__PURE__*/forwardRef(function (p, ref) {
64
80
  ref: rootRef,
65
81
  className: classNames(classPrefix, (_classNames = {}, _classNames[classPrefix + "-disabled"] = props.disabled, _classNames)),
66
82
  tabIndex: props.disabled ? undefined : 0,
67
- onFocus: function onFocus() {
68
- var _a;
69
-
70
- setKeyboardVisible(true);
71
- (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props);
72
- },
83
+ onFocus: onFocus,
73
84
  onBlur: onBlur,
74
85
  onClick: props.onClick
75
86
  }, /*#__PURE__*/React.createElement("div", {
@@ -77,9 +88,9 @@ export var VirtualInput = /*#__PURE__*/forwardRef(function (p, ref) {
77
88
  ref: contentRef
78
89
  }, value, /*#__PURE__*/React.createElement("div", {
79
90
  className: classPrefix + "-caret-container"
80
- }, /*#__PURE__*/React.createElement("div", {
91
+ }, hasFocus && /*#__PURE__*/React.createElement("div", {
81
92
  className: classPrefix + "-caret"
82
- }))), props.clearable && !!value && /*#__PURE__*/React.createElement("div", {
93
+ }))), props.clearable && !!value && hasFocus && /*#__PURE__*/React.createElement("div", {
83
94
  className: classPrefix + "-clear",
84
95
  onClick: function onClick() {
85
96
  var _a;
@@ -96,7 +107,11 @@ export var VirtualInput = /*#__PURE__*/forwardRef(function (p, ref) {
96
107
  onDelete: function onDelete() {
97
108
  setValue(value.slice(0, -1));
98
109
  },
99
- visible: keyboardVisible,
100
- onClose: onBlur
110
+ visible: hasFocus,
111
+ onClose: function onClose() {
112
+ var _a;
113
+
114
+ (_a = rootRef.current) === null || _a === void 0 ? void 0 : _a.blur();
115
+ }
101
116
  })));
102
117
  });
package/2x/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "antd-mobile",
3
- "version": "5.0.0-rc.2",
3
+ "version": "5.0.0-rc.3",
4
4
  "dependencies": {
5
5
  "@react-spring/web": "^9.3.1",
6
6
  "@types/resize-observer-browser": "^0.1.6",
7
- "@use-gesture/react": "^10.1.6",
8
- "ahooks": "^2.10.12",
7
+ "@use-gesture/react": "^10.2.2",
8
+ "ahooks": "^2.10.14",
9
9
  "antd-mobile-icons": "^0.2.2",
10
10
  "antd-mobile-v5-count": "^1.0.1",
11
11
  "classnames": "^2.3.1",
@@ -1,7 +1,7 @@
1
1
  .adm-cascader-view {
2
2
  --height: fit-content;
3
3
  }
4
- .adm-cascader-view-tabs {
4
+ .adm-cascader-view-tabs.adm-tabs {
5
5
  --title-font-size: 14px;
6
6
  --content-padding: none;
7
7
  }
@@ -12,14 +12,16 @@
12
12
  text-overflow: ellipsis;
13
13
  }
14
14
  .adm-cascader-view-content {
15
- --border-inner: none;
16
- --border-bottom: none;
17
- --border-top: none;
18
15
  height: var(--height);
19
16
  overflow-y: auto;
20
17
  padding-top: 4px;
21
18
  box-sizing: border-box;
22
19
  }
20
+ .adm-cascader-view-content.adm-list {
21
+ --border-inner: none;
22
+ --border-bottom: none;
23
+ --border-top: none;
24
+ }
23
25
  .adm-cascader-view-item {
24
26
  font-size: 14px;
25
27
  }
@@ -1,4 +1,4 @@
1
- import { CascaderView } from './cascader-view';
2
1
  import './cascader-view.less';
2
+ import { CascaderView } from './cascader-view';
3
3
  export type { CascaderViewProps, CascaderValue, CascaderValueExtend, CascaderOption, } from './cascader-view';
4
4
  export default CascaderView;
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = void 0;
7
7
 
8
- var _cascaderView = require("./cascader-view");
9
-
10
8
  require("./cascader-view.css");
11
9
 
12
- var _default = _cascaderView.CascaderView;
10
+ var _cascaderView2 = require("./cascader-view");
11
+
12
+ var _default = _cascaderView2.CascaderView;
13
13
  exports["default"] = _default;
@@ -1,5 +1,4 @@
1
- import React, { FC } from 'react';
2
- import { DropdownItemProps } from './item';
1
+ import React from 'react';
3
2
  import { NativeProps } from '../../utils/native-props';
4
3
  export declare type DropdownProps = {
5
4
  activeKey?: string | null;
@@ -7,7 +6,15 @@ export declare type DropdownProps = {
7
6
  closeOnMaskClick?: boolean;
8
7
  onChange?: (key: string | null) => void;
9
8
  } & NativeProps;
10
- declare const Dropdown: FC<DropdownProps> & {
11
- Item: React.FC<DropdownItemProps>;
9
+ export declare type DropdownRef = {
10
+ close: () => void;
12
11
  };
12
+ declare const Dropdown: React.ForwardRefExoticComponent<{
13
+ activeKey?: string | null | undefined;
14
+ defaultActiveKey?: string | null | undefined;
15
+ closeOnMaskClick?: boolean | undefined;
16
+ onChange?: ((key: string | null) => void) | undefined;
17
+ } & NativeProps<never> & {
18
+ children?: React.ReactNode;
19
+ } & React.RefAttributes<DropdownRef>>;
13
20
  export default Dropdown;
@@ -13,7 +13,7 @@ var _react = _interopRequireWildcard(require("react"));
13
13
 
14
14
  var _popup = _interopRequireDefault(require("../popup"));
15
15
 
16
- var _item = _interopRequireWildcard(require("./item"));
16
+ var _item = require("./item");
17
17
 
18
18
  var _nativeProps = require("../../utils/native-props");
19
19
 
@@ -32,8 +32,7 @@ var defaultProps = {
32
32
  defaultActiveKey: null,
33
33
  closeOnMaskClick: true
34
34
  };
35
-
36
- var Dropdown = function Dropdown(p) {
35
+ var Dropdown = /*#__PURE__*/(0, _react.forwardRef)(function (p, ref) {
37
36
  var _classNames;
38
37
 
39
38
  var props = (0, _withDefaultProps.mergeProps)(defaultProps, p);
@@ -95,6 +94,13 @@ var Dropdown = function Dropdown(p) {
95
94
  }
96
95
  });
97
96
 
97
+ (0, _react.useImperativeHandle)(ref, function () {
98
+ return {
99
+ close: function close() {
100
+ setValue(null);
101
+ }
102
+ };
103
+ }, [setValue]);
98
104
  return (0, _nativeProps.withNativeProps)(props, /*#__PURE__*/_react["default"].createElement("div", {
99
105
  className: (0, _classnames["default"])(classPrefix, (_classNames = {}, _classNames[classPrefix + "-open"] = !!value, _classNames)),
100
106
  ref: containerRef
@@ -122,14 +128,9 @@ var Dropdown = function Dropdown(p) {
122
128
  key: item.key,
123
129
  active: isActive,
124
130
  forceRender: item.props.forceRender,
125
- destroyOnClose: item.props.destroyOnClose,
126
- onClick: item.props.closeOnContentClick ? function () {
127
- changeActive(null);
128
- } : undefined
131
+ destroyOnClose: item.props.destroyOnClose
129
132
  }, item.props.children);
130
133
  })))));
131
- };
132
-
133
- Dropdown.Item = _item["default"];
134
+ });
134
135
  var _default = Dropdown;
135
136
  exports["default"] = _default;
@@ -1,5 +1,15 @@
1
+ /// <reference types="react" />
1
2
  import './dropdown.less';
2
- import Dropdown from './dropdown';
3
- export type { DropdownProps } from './dropdown';
3
+ export type { DropdownProps, DropdownRef } from './dropdown';
4
4
  export type { DropdownItemProps } from './item';
5
- export default Dropdown;
5
+ declare const _default: import("react").ForwardRefExoticComponent<{
6
+ activeKey?: string | null | undefined;
7
+ defaultActiveKey?: string | null | undefined;
8
+ closeOnMaskClick?: boolean | undefined;
9
+ onChange?: ((key: string | null) => void) | undefined;
10
+ } & import("../../utils/native-props").NativeProps<never> & {
11
+ children?: import("react").ReactNode;
12
+ } & import("react").RefAttributes<import("./dropdown").DropdownRef>> & {
13
+ Item: import("react").FC<import("./item").DropdownItemProps>;
14
+ };
15
+ export default _default;
@@ -9,7 +9,14 @@ require("./dropdown.css");
9
9
 
10
10
  var _dropdown2 = _interopRequireDefault(require("./dropdown"));
11
11
 
12
+ var _attachPropertiesToComponent = require("../../utils/attach-properties-to-component");
13
+
14
+ var _item = _interopRequireDefault(require("./item"));
15
+
12
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
17
 
14
- var _default = _dropdown2["default"];
18
+ var _default = (0, _attachPropertiesToComponent.attachPropertiesToComponent)(_dropdown2["default"], {
19
+ Item: _item["default"]
20
+ });
21
+
15
22
  exports["default"] = _default;
@@ -7,7 +7,6 @@ export declare type DropdownItemProps = {
7
7
  highlight?: boolean;
8
8
  forceRender?: boolean;
9
9
  destroyOnClose?: boolean;
10
- closeOnContentClick?: boolean;
11
10
  onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
12
11
  } & NativeProps;
13
12
  declare const Item: FC<DropdownItemProps>;
@@ -1,13 +1,16 @@
1
1
  import React, { ReactNode } from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
+ import { ListProps } from '../list';
3
4
  import type { FormProps as RcFormProps, FormInstance } from 'rc-field-form';
4
5
  import { FormContextType } from './context';
5
6
  import type { FormLayout } from '.';
6
7
  export declare type FormProps = RcFormProps & NativeProps & Partial<FormContextType> & {
7
8
  footer?: ReactNode;
8
9
  layout?: FormLayout;
10
+ mode?: ListProps['mode'];
9
11
  };
10
12
  export declare const Form: React.ForwardRefExoticComponent<RcFormProps<any> & NativeProps<never> & Partial<FormContextType> & {
11
13
  footer?: ReactNode;
12
14
  layout?: "horizontal" | "vertical" | undefined;
15
+ mode?: ListProps['mode'];
13
16
  } & React.RefAttributes<FormInstance<any>>>;
@@ -50,13 +50,15 @@ var Form = /*#__PURE__*/(0, _react.forwardRef)(function (p, ref) {
50
50
  children = props.children,
51
51
  layout = props.layout,
52
52
  footer = props.footer,
53
- formProps = __rest(props, ["className", "style", "hasFeedback", "children", "layout", "footer"]);
53
+ mode = props.mode,
54
+ formProps = __rest(props, ["className", "style", "hasFeedback", "children", "layout", "footer", "mode"]);
54
55
 
55
56
  return /*#__PURE__*/_react["default"].createElement(_rcFieldForm["default"], Object.assign({
56
57
  className: (0, _classnames["default"])(classPrefix, classPrefix + "-" + layout, className),
57
58
  style: style,
58
59
  ref: ref
59
60
  }, formProps), /*#__PURE__*/_react["default"].createElement(_list["default"], {
61
+ mode: mode,
60
62
  style: {
61
63
  '--prefix-width': '6em',
62
64
  '--align-items': 'stretch'
@@ -7,6 +7,7 @@ export type { FormInstance } from 'rc-field-form';
7
7
  declare const _default: import("react").ForwardRefExoticComponent<import("rc-field-form").FormProps<any> & import("../../utils/native-props").NativeProps<never> & Partial<import("./context").FormContextType> & {
8
8
  footer?: import("react").ReactNode;
9
9
  layout?: "horizontal" | "vertical" | undefined;
10
+ mode?: "default" | "card" | undefined;
10
11
  } & import("react").RefAttributes<import("rc-field-form").FormInstance<any>>> & {
11
12
  Item: import("react").FC<import("./form-item").FormItemProps>;
12
13
  useForm: typeof useForm;
@@ -21,6 +21,8 @@ var _nativeProps = require("../../utils/native-props");
21
21
 
22
22
  var _safeArea = _interopRequireDefault(require("../safe-area"));
23
23
 
24
+ var _ahooks = require("ahooks");
25
+
24
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
25
27
 
26
28
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -46,8 +48,7 @@ var NumberKeyboard = function NumberKeyboard(p) {
46
48
  customKey = props.customKey,
47
49
  randomOrder = props.randomOrder,
48
50
  showCloseButton = props.showCloseButton,
49
- onInput = props.onInput,
50
- onDelete = props.onDelete;
51
+ onInput = props.onInput;
51
52
  var keyboardRef = (0, _react.useRef)(null);
52
53
  var keys = (0, _react.useMemo)(function () {
53
54
  var defaultKeys = ['1', '2', '3', '4', '5', '6', '7', '8', '9'];
@@ -65,31 +66,30 @@ var NumberKeyboard = function NumberKeyboard(p) {
65
66
  }, [customKey, confirmText, randomOrder, randomOrder && visible]);
66
67
  var timeoutRef = (0, _react.useRef)(-1);
67
68
  var intervalRef = (0, _react.useRef)(-1);
69
+ var onDelete = (0, _ahooks.usePersistFn)(function () {
70
+ var _a;
71
+
72
+ (_a = props.onDelete) === null || _a === void 0 ? void 0 : _a.call(props);
73
+ });
68
74
 
69
- var onStart = function onStart() {
70
- if (!onDelete) return;
75
+ var onBackspacePressStart = function onBackspacePressStart() {
71
76
  timeoutRef.current = window.setTimeout(function () {
72
77
  onDelete();
73
78
  intervalRef.current = window.setInterval(onDelete, 150);
74
- }, 300);
79
+ }, 700);
75
80
  };
76
81
 
77
- var onEnd = function onEnd() {
82
+ var onBackspacePressEnd = function onBackspacePressEnd() {
78
83
  clearTimeout(timeoutRef.current);
79
84
  clearInterval(intervalRef.current);
80
- };
81
-
82
- var backSpaceEvents = {
83
- onMouseDown: onStart,
84
- onTouchStart: onStart,
85
- onMouseUp: onEnd,
86
- onMouseLeave: onEnd,
87
- onTouchEnd: onEnd
88
85
  }; // 点击键盘按键
89
86
 
90
- var onKeyPress = function onKeyPress(key) {
87
+
88
+ var onKeyPress = function onKeyPress(e, key) {
91
89
  var _a, _b;
92
90
 
91
+ e.preventDefault();
92
+
93
93
  switch (key) {
94
94
  case 'BACKSPACE':
95
95
  onDelete === null || onDelete === void 0 ? void 0 : onDelete();
@@ -139,16 +139,27 @@ var NumberKeyboard = function NumberKeyboard(p) {
139
139
  'sign-key': !isNumberKey && key,
140
140
  'mid-key': index === 9 && !!confirmText
141
141
  });
142
- return /*#__PURE__*/_react["default"].createElement("div", Object.assign({
142
+ return /*#__PURE__*/_react["default"].createElement("div", {
143
143
  key: key,
144
144
  className: className,
145
- onClick: function onClick() {
146
- return key && onKeyPress(key);
147
- }
148
- }, key === 'BACKSPACE' ? backSpaceEvents : {}, {
145
+ onTouchStart: function onTouchStart() {
146
+ if (key === 'BACKSPACE') {
147
+ onBackspacePressStart();
148
+ }
149
+ },
150
+ onTouchEnd: function onTouchEnd(e) {
151
+ onKeyPress(e, key);
152
+
153
+ if (key === 'BACKSPACE') {
154
+ onBackspacePressEnd();
155
+ }
156
+ },
157
+ onMouseUp: function onMouseUp(e) {
158
+ onKeyPress(e, key);
159
+ },
149
160
  title: key,
150
161
  role: 'button'
151
- }), key === 'BACKSPACE' ? /*#__PURE__*/_react["default"].createElement(_antdMobileIcons.TextDeletionOutline, null) : key);
162
+ }, key === 'BACKSPACE' ? /*#__PURE__*/_react["default"].createElement(_antdMobileIcons.TextDeletionOutline, null) : key);
152
163
  };
153
164
 
154
165
  return /*#__PURE__*/_react["default"].createElement(_popup["default"], {
@@ -173,18 +184,27 @@ var NumberKeyboard = function NumberKeyboard(p) {
173
184
  })
174
185
  }, keys.map(renderKey)), !!confirmText && /*#__PURE__*/_react["default"].createElement("div", {
175
186
  className: classPrefix + "-confirm"
176
- }, /*#__PURE__*/_react["default"].createElement("div", Object.assign({
187
+ }, /*#__PURE__*/_react["default"].createElement("div", {
177
188
  className: classPrefix + "-key extra-key bs-key",
178
- onClick: function onClick() {
179
- return onKeyPress('BACKSPACE');
180
- }
181
- }, backSpaceEvents, {
189
+ onTouchStart: function onTouchStart() {
190
+ onBackspacePressStart();
191
+ },
192
+ onTouchEnd: function onTouchEnd(e) {
193
+ onKeyPress(e, 'BACKSPACE');
194
+ onBackspacePressEnd();
195
+ },
196
+ onMouseUp: function onMouseUp(e) {
197
+ return onKeyPress(e, 'BACKSPACE');
198
+ },
182
199
  title: 'BACKSPACE',
183
200
  role: 'button'
184
- }), /*#__PURE__*/_react["default"].createElement(_antdMobileIcons.TextDeletionOutline, null)), /*#__PURE__*/_react["default"].createElement("div", {
201
+ }, /*#__PURE__*/_react["default"].createElement(_antdMobileIcons.TextDeletionOutline, null)), /*#__PURE__*/_react["default"].createElement("div", {
185
202
  className: classPrefix + "-key extra-key ok-key",
186
- onClick: function onClick() {
187
- return onKeyPress('OK');
203
+ onTouchEnd: function onTouchEnd(e) {
204
+ return onKeyPress(e, 'OK');
205
+ },
206
+ onMouseUp: function onMouseUp(e) {
207
+ return onKeyPress(e, 'OK');
188
208
  },
189
209
  role: 'button'
190
210
  }, confirmText))), props.safeArea && /*#__PURE__*/_react["default"].createElement("div", {
@@ -14,6 +14,7 @@
14
14
  transform: translate(-50%, -50%);
15
15
  pointer-events: all;
16
16
  font-size: 15px;
17
+ line-height: 1.5;
17
18
  }
18
19
  .adm-toast-mask .adm-toast-wrap-text {
19
20
  padding: 12px;
@@ -49,9 +49,9 @@
49
49
  width: var(--caret-width);
50
50
  height: 1.3em;
51
51
  vertical-align: top;
52
+ margin-right: 1px;
52
53
  }
53
54
  .adm-virtual-input-caret {
54
- display: none;
55
55
  width: 100%;
56
56
  height: 100%;
57
57
  background-color: var(--caret-color);