antd-mobile 5.33.0 → 5.33.2

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 (96) hide show
  1. package/2x/README.md +1 -1
  2. package/2x/bundle/antd-mobile.cjs.development.js +1843 -1829
  3. package/2x/bundle/antd-mobile.cjs.js +9 -9
  4. package/2x/bundle/antd-mobile.es.development.js +1025 -1007
  5. package/2x/bundle/antd-mobile.es.js +5315 -5259
  6. package/2x/bundle/antd-mobile.umd.development.js +2194 -2180
  7. package/2x/bundle/antd-mobile.umd.js +9 -9
  8. package/2x/bundle/style.css +4 -4
  9. package/2x/cjs/components/calendar-picker/calendar-picker.d.ts +5 -0
  10. package/2x/cjs/components/calendar-picker/calendar-picker.js +5 -3
  11. package/2x/cjs/components/cascader/cascader.js +6 -1
  12. package/2x/cjs/components/cascader-view/cascader-view.js +4 -1
  13. package/2x/cjs/components/cascader-view/use-cascader-value-extend.d.ts +3 -2
  14. package/2x/cjs/components/cascader-view/use-cascader-value-extend.js +9 -5
  15. package/2x/cjs/components/dropdown/dropdown.js +3 -1
  16. package/2x/cjs/components/image-viewer/image-viewer.d.ts +4 -0
  17. package/2x/cjs/components/image-viewer/image-viewer.js +11 -8
  18. package/2x/cjs/components/mask/mask.js +1 -0
  19. package/2x/cjs/components/number-keyboard/number-keyboard.js +15 -7
  20. package/2x/cjs/components/popover/popover-menu.js +3 -1
  21. package/2x/cjs/components/popover/popover.js +5 -5
  22. package/2x/cjs/components/popup/popup.js +1 -0
  23. package/2x/cjs/components/switch/switch.css +2 -2
  24. package/2x/cjs/components/tabs/tabs.d.ts +6 -0
  25. package/2x/cjs/components/tabs/tabs.js +14 -12
  26. package/2x/cjs/components/virtual-input/virtual-input.js +11 -4
  27. package/2x/cjs/global/global.css +2 -2
  28. package/2x/es/components/calendar-picker/calendar-picker.d.ts +5 -0
  29. package/2x/es/components/calendar-picker/calendar-picker.js +5 -3
  30. package/2x/es/components/cascader/cascader.js +6 -1
  31. package/2x/es/components/cascader-view/cascader-view.js +4 -1
  32. package/2x/es/components/cascader-view/use-cascader-value-extend.d.ts +3 -2
  33. package/2x/es/components/cascader-view/use-cascader-value-extend.js +9 -5
  34. package/2x/es/components/dropdown/dropdown.js +3 -1
  35. package/2x/es/components/image-viewer/image-viewer.d.ts +4 -0
  36. package/2x/es/components/image-viewer/image-viewer.js +11 -8
  37. package/2x/es/components/mask/mask.js +1 -0
  38. package/2x/es/components/number-keyboard/number-keyboard.js +15 -7
  39. package/2x/es/components/popover/popover-menu.js +3 -1
  40. package/2x/es/components/popover/popover.js +5 -5
  41. package/2x/es/components/popup/popup.js +1 -0
  42. package/2x/es/components/switch/switch.css +2 -2
  43. package/2x/es/components/tabs/tabs.d.ts +6 -0
  44. package/2x/es/components/tabs/tabs.js +14 -12
  45. package/2x/es/components/virtual-input/virtual-input.js +11 -4
  46. package/2x/es/global/global.css +2 -2
  47. package/2x/package.json +1 -1
  48. package/README.md +1 -1
  49. package/bundle/antd-mobile.cjs.development.js +1843 -1829
  50. package/bundle/antd-mobile.cjs.js +9 -9
  51. package/bundle/antd-mobile.compatible.umd.js +1 -1
  52. package/bundle/antd-mobile.es.development.js +1025 -1007
  53. package/bundle/antd-mobile.es.js +5315 -5259
  54. package/bundle/antd-mobile.umd.development.js +2194 -2180
  55. package/bundle/antd-mobile.umd.js +9 -9
  56. package/bundle/style.css +1 -1
  57. package/cjs/components/calendar-picker/calendar-picker.d.ts +5 -0
  58. package/cjs/components/calendar-picker/calendar-picker.js +5 -3
  59. package/cjs/components/cascader/cascader.js +6 -1
  60. package/cjs/components/cascader-view/cascader-view.js +4 -1
  61. package/cjs/components/cascader-view/use-cascader-value-extend.d.ts +3 -2
  62. package/cjs/components/cascader-view/use-cascader-value-extend.js +9 -5
  63. package/cjs/components/dropdown/dropdown.js +3 -1
  64. package/cjs/components/image-viewer/image-viewer.d.ts +4 -0
  65. package/cjs/components/image-viewer/image-viewer.js +11 -8
  66. package/cjs/components/mask/mask.js +1 -0
  67. package/cjs/components/number-keyboard/number-keyboard.js +15 -7
  68. package/cjs/components/popover/popover-menu.js +3 -1
  69. package/cjs/components/popover/popover.js +5 -5
  70. package/cjs/components/popup/popup.js +1 -0
  71. package/cjs/components/switch/switch.css +2 -2
  72. package/cjs/components/tabs/tabs.d.ts +6 -0
  73. package/cjs/components/tabs/tabs.js +14 -12
  74. package/cjs/components/virtual-input/virtual-input.js +11 -4
  75. package/cjs/global/global.css +2 -2
  76. package/es/components/calendar-picker/calendar-picker.d.ts +5 -0
  77. package/es/components/calendar-picker/calendar-picker.js +5 -3
  78. package/es/components/cascader/cascader.js +6 -1
  79. package/es/components/cascader-view/cascader-view.js +4 -1
  80. package/es/components/cascader-view/use-cascader-value-extend.d.ts +3 -2
  81. package/es/components/cascader-view/use-cascader-value-extend.js +9 -5
  82. package/es/components/dropdown/dropdown.js +3 -1
  83. package/es/components/image-viewer/image-viewer.d.ts +4 -0
  84. package/es/components/image-viewer/image-viewer.js +11 -8
  85. package/es/components/mask/mask.js +1 -0
  86. package/es/components/number-keyboard/number-keyboard.js +15 -7
  87. package/es/components/popover/popover-menu.js +3 -1
  88. package/es/components/popover/popover.js +5 -5
  89. package/es/components/popup/popup.js +1 -0
  90. package/es/components/switch/switch.css +2 -2
  91. package/es/components/tabs/tabs.d.ts +6 -0
  92. package/es/components/tabs/tabs.js +14 -12
  93. package/es/components/virtual-input/virtual-input.js +11 -4
  94. package/es/global/global.css +2 -2
  95. package/package.json +1 -1
  96. package/umd/antd-mobile.js +1 -1
@@ -101,8 +101,8 @@ div.adm-px-tester {
101
101
  height: calc(var(--size) / 2 * 4px);
102
102
  width: 0;
103
103
  position: fixed;
104
- right: -100vw;
105
- bottom: -100vh;
104
+ left: -100vw;
105
+ top: -100vh;
106
106
  -webkit-user-select: none;
107
107
  user-select: none;
108
108
  pointer-events: none;
@@ -5228,7 +5228,7 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
5228
5228
  display: flex;
5229
5229
  justify-content: center;
5230
5230
  align-items: center;
5231
- margin: 0 16px 0 calc(var(--height) - var(--border-width) + 8px);
5231
+ margin: 0 16px 0 calc(var(--height) - var(--border-width) + 10px);
5232
5232
  height: 100%;
5233
5233
  color: var(--adm-color-weak);
5234
5234
  transition: margin .2s;
@@ -5248,7 +5248,7 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
5248
5248
  }
5249
5249
 
5250
5250
  .adm-switch.adm-switch-checked .adm-switch-inner {
5251
- margin: 0 calc(var(--height) - var(--border-width) + 10px) 0 20px;
5251
+ margin: 0 calc(var(--height) - var(--border-width) + 10px) 0 16px;
5252
5252
  color: var(--adm-color-text-light-solid);
5253
5253
  }
5254
5254
 
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { type GetContainer } from '../../utils/render-to-container';
2
3
  import { CalendarPickerViewProps, CalendarPickerViewRef } from '../calendar-picker-view';
3
4
  export declare type CalendarPickerRef = CalendarPickerViewRef;
4
5
  export declare type CalendarPickerProps = CalendarPickerViewProps & {
@@ -11,6 +12,7 @@ export declare type CalendarPickerProps = CalendarPickerViewProps & {
11
12
  closeOnMaskClick?: boolean;
12
13
  onClose?: () => void;
13
14
  onMaskClick?: () => void;
15
+ getContainer?: GetContainer;
14
16
  } & ({
15
17
  selectionMode?: undefined;
16
18
  onConfirm?: undefined;
@@ -51,6 +53,7 @@ export declare const CalendarPicker: React.ForwardRefExoticComponent<(({
51
53
  closeOnMaskClick?: boolean | undefined;
52
54
  onClose?: (() => void) | undefined;
53
55
  onMaskClick?: (() => void) | undefined;
56
+ getContainer?: GetContainer | undefined;
54
57
  } & {
55
58
  selectionMode?: undefined;
56
59
  onConfirm?: undefined;
@@ -84,6 +87,7 @@ export declare const CalendarPicker: React.ForwardRefExoticComponent<(({
84
87
  closeOnMaskClick?: boolean | undefined;
85
88
  onClose?: (() => void) | undefined;
86
89
  onMaskClick?: (() => void) | undefined;
90
+ getContainer?: GetContainer | undefined;
87
91
  } & {
88
92
  selectionMode: 'single';
89
93
  onConfirm?: ((val: Date | null) => void) | undefined;
@@ -117,6 +121,7 @@ export declare const CalendarPicker: React.ForwardRefExoticComponent<(({
117
121
  closeOnMaskClick?: boolean | undefined;
118
122
  onClose?: (() => void) | undefined;
119
123
  onMaskClick?: (() => void) | undefined;
124
+ getContainer?: GetContainer | undefined;
120
125
  } & {
121
126
  selectionMode: 'range';
122
127
  onConfirm?: ((val: [Date, Date] | null) => void) | undefined;
@@ -41,9 +41,10 @@ const CalendarPicker = (0, _react.forwardRef)((p, ref) => {
41
41
  closeOnMaskClick,
42
42
  onClose,
43
43
  onConfirm,
44
- onMaskClick
44
+ onMaskClick,
45
+ getContainer
45
46
  } = props,
46
- calendarViewProps = (0, _tslib.__rest)(props, ["visible", "confirmText", "popupClassName", "popupStyle", "popupBodyStyle", "forceRender", "closeOnMaskClick", "onClose", "onConfirm", "onMaskClick"]);
47
+ calendarViewProps = (0, _tslib.__rest)(props, ["visible", "confirmText", "popupClassName", "popupStyle", "popupBodyStyle", "forceRender", "closeOnMaskClick", "onClose", "onConfirm", "onMaskClick", "getContainer"]);
47
48
  const footer = _react.default.createElement("div", {
48
49
  className: `${classPrefix}-footer`
49
50
  }, _react.default.createElement(_divider.default, null), _react.default.createElement("div", {
@@ -81,7 +82,8 @@ const CalendarPicker = (0, _react.forwardRef)((p, ref) => {
81
82
  if (closeOnMaskClick) {
82
83
  onClose === null || onClose === void 0 ? void 0 : onClose();
83
84
  }
84
- }
85
+ },
86
+ getContainer: getContainer
85
87
  }, _react.default.createElement(_calendarPickerView.default, Object.assign({
86
88
  ref: calendarRef
87
89
  }, calendarViewProps)), footer)));
@@ -12,6 +12,7 @@ var _usePropsValue = require("../../utils/use-props-value");
12
12
  var _cascaderView = _interopRequireDefault(require("../cascader-view"));
13
13
  var _configProvider = require("../config-provider");
14
14
  var _useCascaderValueExtend = require("../cascader-view/use-cascader-value-extend");
15
+ var _hooks = require("../../hooks");
15
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
17
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -59,7 +60,11 @@ const Cascader = (0, _react.forwardRef)((p, ref) => {
59
60
  (_a = props.onConfirm) === null || _a === void 0 ? void 0 : _a.call(props, val, generateValueExtend(val));
60
61
  }
61
62
  }));
62
- const generateValueExtend = (0, _useCascaderValueExtend.useCascaderValueExtend)(props.options);
63
+ const [, valueName, childrenName] = (0, _hooks.useFieldNames)(props.fieldNames);
64
+ const generateValueExtend = (0, _useCascaderValueExtend.useCascaderValueExtend)(props.options, {
65
+ valueName,
66
+ childrenName
67
+ });
63
68
  const [innerValue, setInnerValue] = (0, _react.useState)(value);
64
69
  (0, _react.useEffect)(() => {
65
70
  if (!visible) {
@@ -29,8 +29,11 @@ const CascaderView = p => {
29
29
  const {
30
30
  locale
31
31
  } = (0, _configProvider.useConfig)();
32
- const generateValueExtend = (0, _useCascaderValueExtend.useCascaderValueExtend)(props.options);
33
32
  const [labelName, valueName, childrenName, disabledName] = (0, _hooks.useFieldNames)(props.fieldNames);
33
+ const generateValueExtend = (0, _useCascaderValueExtend.useCascaderValueExtend)(props.options, {
34
+ valueName,
35
+ childrenName
36
+ });
34
37
  const [value, setValue] = (0, _usePropsValue.usePropsValue)(Object.assign(Object.assign({}, props), {
35
38
  onChange: val => {
36
39
  var _a;
@@ -1,2 +1,3 @@
1
- import { CascaderValue, CascaderValueExtend, CascaderOption } from './cascader-view';
2
- export declare function useCascaderValueExtend(options: CascaderOption[]): (val: CascaderValue[]) => CascaderValueExtend;
1
+ import { CascaderValue, CascaderValueExtend } from './cascader-view';
2
+ import type { CascaderOption } from './cascader-view';
3
+ export declare function useCascaderValueExtend(options: CascaderOption[], fieldNames: CascaderOption): (val: CascaderValue[]) => CascaderValueExtend;
@@ -7,19 +7,23 @@ exports.useCascaderValueExtend = useCascaderValueExtend;
7
7
  var _react = require("react");
8
8
  var _memoize = _interopRequireDefault(require("lodash/memoize"));
9
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
- function useCascaderValueExtend(options) {
10
+ function useCascaderValueExtend(options, fieldNames) {
11
+ const {
12
+ valueName,
13
+ childrenName
14
+ } = fieldNames;
11
15
  const generateItems = (0, _react.useMemo)(() => {
12
16
  return (0, _memoize.default)(val => {
13
17
  const ret = [];
14
18
  let currentOptions = options;
15
19
  for (const v of val) {
16
- const target = currentOptions.find(option => option.value === v);
20
+ const target = currentOptions.find(option => option[valueName] === v);
17
21
  if (!target) {
18
22
  break;
19
23
  }
20
24
  ret.push(target);
21
- if (!target.children) break;
22
- currentOptions = target.children;
25
+ if (!target[childrenName]) break;
26
+ currentOptions = target[childrenName];
23
27
  }
24
28
  return ret;
25
29
  }, val => JSON.stringify(val));
@@ -28,7 +32,7 @@ function useCascaderValueExtend(options) {
28
32
  return (0, _memoize.default)(val => {
29
33
  const children = val.reduce((currentOptions, v) => {
30
34
  var _a;
31
- return ((_a = currentOptions.find(option => option.value === v)) === null || _a === void 0 ? void 0 : _a.children) || [];
35
+ return ((_a = currentOptions.find(option => option[valueName] === v)) === null || _a === void 0 ? void 0 : _a[childrenName]) || [];
32
36
  }, options);
33
37
  return children.length === 0;
34
38
  }, val => JSON.stringify(val));
@@ -60,8 +60,10 @@ const Dropdown = (0, _react.forwardRef)((p, ref) => {
60
60
  const navs = _react.default.Children.map(props.children, child => {
61
61
  if ((0, _react.isValidElement)(child)) {
62
62
  const childProps = Object.assign(Object.assign({}, child.props), {
63
- onClick: () => {
63
+ onClick: event => {
64
+ var _a, _b;
64
65
  changeActive(child.key);
66
+ (_b = (_a = child.props).onClick) === null || _b === void 0 ? void 0 : _b.call(_a, event);
65
67
  },
66
68
  active: child.key === value,
67
69
  arrow: child.props.arrow === undefined ? props.arrow : child.props.arrow
@@ -10,6 +10,10 @@ export declare type ImageViewerProps = {
10
10
  onClose?: () => void;
11
11
  afterClose?: () => void;
12
12
  renderFooter?: (image: string) => ReactNode;
13
+ classNames?: {
14
+ mask?: string;
15
+ body?: string;
16
+ };
13
17
  };
14
18
  export declare const ImageViewer: FC<ImageViewerProps>;
15
19
  export declare type MultiImageViewerRef = SlidesRef;
@@ -11,6 +11,7 @@ var _mask = _interopRequireDefault(require("../mask"));
11
11
  var _safeArea = _interopRequireDefault(require("../safe-area"));
12
12
  var _slide = require("./slide");
13
13
  var _slides = require("./slides");
14
+ var _classnames = _interopRequireDefault(require("classnames"));
14
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
17
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -21,23 +22,24 @@ const defaultProps = {
21
22
  visible: false
22
23
  };
23
24
  const ImageViewer = p => {
24
- var _a;
25
+ var _a, _b, _c;
25
26
  const props = (0, _withDefaultProps.mergeProps)(defaultProps, p);
26
27
  const node = _react.default.createElement(_mask.default, {
27
28
  visible: props.visible,
28
29
  disableBodyScroll: false,
29
30
  opacity: 'thick',
30
31
  afterClose: props.afterClose,
31
- destroyOnClose: true
32
+ destroyOnClose: true,
33
+ className: (_a = props === null || props === void 0 ? void 0 : props.classNames) === null || _a === void 0 ? void 0 : _a.mask
32
34
  }, _react.default.createElement("div", {
33
- className: `${classPrefix}-content`
35
+ className: (0, _classnames.default)(`${classPrefix}-content`, (_b = props === null || props === void 0 ? void 0 : props.classNames) === null || _b === void 0 ? void 0 : _b.body)
34
36
  }, props.image && _react.default.createElement(_slide.Slide, {
35
37
  image: props.image,
36
38
  onTap: props.onClose,
37
39
  maxZoom: props.maxZoom
38
40
  })), props.image && _react.default.createElement("div", {
39
41
  className: `${classPrefix}-footer`
40
- }, (_a = props.renderFooter) === null || _a === void 0 ? void 0 : _a.call(props, props.image), _react.default.createElement(_safeArea.default, {
42
+ }, (_c = props.renderFooter) === null || _c === void 0 ? void 0 : _c.call(props, props.image), _react.default.createElement(_safeArea.default, {
41
43
  position: 'bottom'
42
44
  })));
43
45
  return (0, _renderToContainer.renderToContainer)(props.getContainer, node);
@@ -47,7 +49,7 @@ const multiDefaultProps = Object.assign(Object.assign({}, defaultProps), {
47
49
  defaultIndex: 0
48
50
  });
49
51
  const MultiImageViewer = (0, _react.forwardRef)((p, ref) => {
50
- var _a;
52
+ var _a, _b, _c;
51
53
  const props = (0, _withDefaultProps.mergeProps)(multiDefaultProps, p);
52
54
  const [index, setIndex] = (0, _react.useState)(props.defaultIndex);
53
55
  const slidesRef = (0, _react.useRef)(null);
@@ -69,9 +71,10 @@ const MultiImageViewer = (0, _react.forwardRef)((p, ref) => {
69
71
  disableBodyScroll: false,
70
72
  opacity: 'thick',
71
73
  afterClose: props.afterClose,
72
- destroyOnClose: true
74
+ destroyOnClose: true,
75
+ className: (_a = props === null || props === void 0 ? void 0 : props.classNames) === null || _a === void 0 ? void 0 : _a.mask
73
76
  }, _react.default.createElement("div", {
74
- className: `${classPrefix}-content`
77
+ className: (0, _classnames.default)(`${classPrefix}-content`, (_b = props === null || props === void 0 ? void 0 : props.classNames) === null || _b === void 0 ? void 0 : _b.body)
75
78
  }, props.images && _react.default.createElement(_slides.Slides, {
76
79
  ref: slidesRef,
77
80
  defaultIndex: index,
@@ -81,7 +84,7 @@ const MultiImageViewer = (0, _react.forwardRef)((p, ref) => {
81
84
  maxZoom: props.maxZoom
82
85
  })), props.images && _react.default.createElement("div", {
83
86
  className: `${classPrefix}-footer`
84
- }, (_a = props.renderFooter) === null || _a === void 0 ? void 0 : _a.call(props, props.images[index], index), _react.default.createElement(_safeArea.default, {
87
+ }, (_c = props.renderFooter) === null || _c === void 0 ? void 0 : _c.call(props, props.images[index], index), _react.default.createElement(_safeArea.default, {
85
88
  position: 'bottom'
86
89
  })));
87
90
  return (0, _renderToContainer.renderToContainer)(props.getContainer, node);
@@ -79,6 +79,7 @@ const Mask = p => {
79
79
  const node = (0, _withStopPropagation.withStopPropagation)(props.stopPropagation, (0, _nativeProps.withNativeProps)(props, _react.default.createElement(_web.animated.div, {
80
80
  className: classPrefix,
81
81
  ref: ref,
82
+ "aria-hidden": true,
82
83
  style: Object.assign(Object.assign({}, props.style), {
83
84
  background,
84
85
  opacity,
@@ -13,6 +13,7 @@ var _popup = _interopRequireDefault(require("../popup"));
13
13
  var _nativeProps = require("../../utils/native-props");
14
14
  var _safeArea = _interopRequireDefault(require("../safe-area"));
15
15
  var _ahooks = require("ahooks");
16
+ var _configProvider = require("../config-provider");
16
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18
19
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -39,6 +40,9 @@ const NumberKeyboard = p => {
39
40
  showCloseButton,
40
41
  onInput
41
42
  } = props;
43
+ const {
44
+ locale
45
+ } = (0, _configProvider.useConfig)();
42
46
  const keyboardRef = (0, _react.useRef)(null);
43
47
  const keys = (0, _react.useMemo)(() => {
44
48
  const defaultKeys = ['1', '2', '3', '4', '5', '6', '7', '8', '9'];
@@ -97,7 +101,7 @@ const NumberKeyboard = p => {
97
101
  className: (0, _classnames.default)(`${classPrefix}-header`, {
98
102
  [`${classPrefix}-header-with-title`]: !!title
99
103
  })
100
- }, 'title' && _react.default.createElement("div", {
104
+ }, !!title && _react.default.createElement("div", {
101
105
  className: `${classPrefix}-title`,
102
106
  "aria-label": title
103
107
  }, title), showCloseButton && _react.default.createElement("span", {
@@ -106,8 +110,8 @@ const NumberKeyboard = p => {
106
110
  var _a;
107
111
  (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);
108
112
  },
109
- role: 'grid',
110
- title: 'CLOSE',
113
+ role: 'button',
114
+ title: locale.common.close,
111
115
  tabIndex: -1
112
116
  }, _react.default.createElement(_antdMobileIcons.DownOutline, null)));
113
117
  };
@@ -119,7 +123,7 @@ const NumberKeyboard = p => {
119
123
  [`${classPrefix}-key-mid`]: index === 9 && !!confirmText && keys.length < 12
120
124
  });
121
125
  const ariaProps = key ? {
122
- role: 'grid',
126
+ role: 'button',
123
127
  title: key,
124
128
  tabIndex: -1
125
129
  } : undefined;
@@ -172,13 +176,17 @@ const NumberKeyboard = p => {
172
176
  onKeyPress(e, 'BACKSPACE');
173
177
  onBackspacePressEnd();
174
178
  },
175
- title: 'BACKSPACE',
176
- role: 'grid',
179
+ onContextMenu: e => {
180
+ // Long press should not trigger native context menu
181
+ e.preventDefault();
182
+ },
183
+ title: locale.Input.clear,
184
+ role: 'button',
177
185
  tabIndex: -1
178
186
  }, _react.default.createElement(_antdMobileIcons.TextDeletionOutline, null)), _react.default.createElement("div", {
179
187
  className: `${classPrefix}-key ${classPrefix}-key-extra ${classPrefix}-key-ok`,
180
188
  onTouchEnd: e => onKeyPress(e, 'OK'),
181
- role: 'grid',
189
+ role: 'button',
182
190
  tabIndex: -1,
183
191
  "aria-label": confirmText
184
192
  }, confirmText))), props.safeArea && _react.default.createElement("div", {
@@ -41,7 +41,9 @@ const PopoverMenu = (0, _react.forwardRef)((props, ref) => {
41
41
  var _a;
42
42
  return _react.default.createElement("a", {
43
43
  key: (_a = action.key) !== null && _a !== void 0 ? _a : index,
44
- className: (0, _classnames.default)(`${classPrefix}-item`, 'adm-plain-anchor', action.disabled && `${classPrefix}-item-disabled`),
44
+ className: (0, _classnames.default)(`${classPrefix}-item`, 'adm-plain-anchor', {
45
+ [`${classPrefix}-item-disabled`]: action.disabled
46
+ }),
45
47
  onClick: () => {
46
48
  var _a;
47
49
  if (action.disabled) return;
@@ -27,13 +27,11 @@ const defaultProps = {
27
27
  placement: 'top',
28
28
  defaultVisible: false,
29
29
  stopPropagation: ['click'],
30
- getContainer: () => document.body
30
+ getContainer: () => document.body,
31
+ mode: 'light'
31
32
  };
32
33
  const Popover = (0, _react.forwardRef)((p, ref) => {
33
34
  const props = (0, _withDefaultProps.mergeProps)(defaultProps, p);
34
- const {
35
- mode = 'light'
36
- } = props;
37
35
  const placement = (0, _normalizePlacement.normalizePlacement)(props.placement);
38
36
  const [visible, setVisible] = (0, _usePropsValue.usePropsValue)({
39
37
  value: props.visible,
@@ -49,7 +47,9 @@ const Popover = (0, _react.forwardRef)((p, ref) => {
49
47
  const floatingRef = (0, _react.useRef)(null);
50
48
  const arrowRef = (0, _react.useRef)(null);
51
49
  const floating = (0, _withStopPropagation.withStopPropagation)(props.stopPropagation, (0, _nativeProps.withNativeProps)(props, _react.default.createElement("div", {
52
- className: (0, _classnames.default)(classPrefix, `${classPrefix}-${mode}`, !visible && `${classPrefix}-hidden`),
50
+ className: (0, _classnames.default)(classPrefix, `${classPrefix}-${props.mode}`, {
51
+ [`${classPrefix}-hidden`]: !visible
52
+ }),
53
53
  ref: floatingRef
54
54
  }, _react.default.createElement("div", {
55
55
  className: `${classPrefix}-arrow`,
@@ -102,6 +102,7 @@ const Popup = p => {
102
102
  }), _react.default.createElement(_web.animated.div, {
103
103
  className: bodyCls,
104
104
  style: Object.assign(Object.assign({}, props.bodyStyle), {
105
+ pointerEvents: percent.to(v => v === 0 ? 'unset' : 'none'),
105
106
  transform: percent.to(v => {
106
107
  if (props.position === 'bottom') {
107
108
  return `translate(0, ${v}%)`;
@@ -72,7 +72,7 @@
72
72
  display: flex;
73
73
  justify-content: center;
74
74
  align-items: center;
75
- margin: 0 16px 0 calc(var(--height) - var(--border-width) + 8px);
75
+ margin: 0 16px 0 calc(var(--height) - var(--border-width) + 10px);
76
76
  height: 100%;
77
77
  color: var(--adm-color-weak);
78
78
  transition: margin 200ms;
@@ -92,7 +92,7 @@
92
92
  }
93
93
 
94
94
  .adm-switch.adm-switch-checked .adm-switch-inner {
95
- margin: 0 calc(var(--height) - var(--border-width) + 10px) 0 20px;
95
+ margin: 0 calc(var(--height) - var(--border-width) + 10px) 0 16px;
96
96
  color: var(--adm-color-text-light-solid);
97
97
  }
98
98
 
@@ -16,5 +16,11 @@ export declare type TabsProps = {
16
16
  onChange?: (key: string) => void;
17
17
  children?: ReactNode;
18
18
  direction?: 'ltr' | 'rtl';
19
+ /**
20
+ * @experimental Support disabled auto scroll when Tabs header content change.
21
+ * This API name or function may change in the future.
22
+ * Please lock the version if you want to use it.
23
+ */
24
+ autoScroll?: boolean;
19
25
  } & NativeProps<'--fixed-active-line-width' | '--active-line-height' | '--active-line-border-radius' | '--title-font-size' | '--content-padding' | '--active-title-color' | '--active-line-color'>;
20
26
  export declare const Tabs: FC<TabsProps>;
@@ -61,7 +61,7 @@ const Tabs = p => {
61
61
  const [{
62
62
  x,
63
63
  width
64
- }, api] = (0, _web.useSpring)(() => ({
64
+ }, inkApi] = (0, _web.useSpring)(() => ({
65
65
  x: 0,
66
66
  width: 0,
67
67
  config: {
@@ -88,12 +88,12 @@ const Tabs = p => {
88
88
  clamp: true
89
89
  }
90
90
  }));
91
- function animate(immediate = false) {
91
+ function animate(immediate = false, fromMutation = false) {
92
92
  const container = tabListContainerRef.current;
93
93
  if (!container) return;
94
94
  const activeIndex = keyToIndexRecord[activeKey];
95
95
  if (activeIndex === undefined) {
96
- api.start({
96
+ inkApi.start({
97
97
  x: 0,
98
98
  width: 0,
99
99
  immediate: true
@@ -131,7 +131,7 @@ const Tabs = p => {
131
131
  const w = ['auto', 'full'].includes(props.activeLineMode) ? width : activeLineWidth;
132
132
  x = -(containerWidth - x - w);
133
133
  }
134
- api.start({
134
+ inkApi.start({
135
135
  x,
136
136
  width,
137
137
  immediate
@@ -148,13 +148,15 @@ const Tabs = p => {
148
148
  } else {
149
149
  nextScrollLeft = (0, _bound.bound)(activeTabLeft - (containerWidth - activeTabWidth) / 2, 0, maxScrollDistance);
150
150
  }
151
- scrollApi.start({
152
- scrollLeft: nextScrollLeft,
153
- from: {
154
- scrollLeft: containerScrollLeft
155
- },
156
- immediate
157
- });
151
+ if (!fromMutation || props.autoScroll !== false) {
152
+ scrollApi.start({
153
+ scrollLeft: nextScrollLeft,
154
+ from: {
155
+ scrollLeft: containerScrollLeft
156
+ },
157
+ immediate
158
+ });
159
+ }
158
160
  }
159
161
  (0, _ahooks.useIsomorphicLayoutEffect)(() => {
160
162
  animate(!x.isAnimating);
@@ -166,7 +168,7 @@ const Tabs = p => {
166
168
  animate(!x.isAnimating);
167
169
  }, tabListContainerRef);
168
170
  (0, _useMutationEffect.useMutationEffect)(() => {
169
- animate(!x.isAnimating);
171
+ animate(!x.isAnimating, true);
170
172
  }, tabListContainerRef, {
171
173
  subtree: true,
172
174
  childList: true,
@@ -80,9 +80,16 @@ const VirtualInput = (0, _react.forwardRef)((p, ref) => {
80
80
  },
81
81
  visible: hasFocus,
82
82
  onClose: () => {
83
- var _a, _b, _c;
84
- (_a = rootRef.current) === null || _a === void 0 ? void 0 : _a.blur();
85
- (_c = (_b = keyboard.props).onClose) === null || _c === void 0 ? void 0 : _c.call(_b);
83
+ var _a, _b, _c, _d;
84
+ const activeElement = document.activeElement;
85
+ // Long press makes `activeElement` to be the child of rootRef
86
+ // We will trigger blur on the child element instead
87
+ if (activeElement && ((_a = rootRef.current) === null || _a === void 0 ? void 0 : _a.contains(activeElement))) {
88
+ activeElement.blur();
89
+ } else {
90
+ (_b = rootRef.current) === null || _b === void 0 ? void 0 : _b.blur();
91
+ }
92
+ (_d = (_c = keyboard.props).onClose) === null || _d === void 0 ? void 0 : _d.call(_c);
86
93
  },
87
94
  getContainer: null
88
95
  });
@@ -92,7 +99,7 @@ const VirtualInput = (0, _react.forwardRef)((p, ref) => {
92
99
  [`${classPrefix}-disabled`]: props.disabled
93
100
  }),
94
101
  tabIndex: props.disabled ? undefined : 0,
95
- role: 'option',
102
+ role: 'textbox',
96
103
  onFocus: onFocus,
97
104
  onBlur: onBlur,
98
105
  onClick: props.onClick
@@ -103,8 +103,8 @@ div.adm-px-tester {
103
103
  height: calc(var(--size) / 2 * 4px);
104
104
  width: 0;
105
105
  position: fixed;
106
- right: -100vw;
107
- bottom: -100vh;
106
+ left: -100vw;
107
+ top: -100vh;
108
108
  -webkit-user-select: none;
109
109
  user-select: none;
110
110
  pointer-events: none;
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { type GetContainer } from '../../utils/render-to-container';
2
3
  import { CalendarPickerViewProps, CalendarPickerViewRef } from '../calendar-picker-view';
3
4
  export declare type CalendarPickerRef = CalendarPickerViewRef;
4
5
  export declare type CalendarPickerProps = CalendarPickerViewProps & {
@@ -11,6 +12,7 @@ export declare type CalendarPickerProps = CalendarPickerViewProps & {
11
12
  closeOnMaskClick?: boolean;
12
13
  onClose?: () => void;
13
14
  onMaskClick?: () => void;
15
+ getContainer?: GetContainer;
14
16
  } & ({
15
17
  selectionMode?: undefined;
16
18
  onConfirm?: undefined;
@@ -51,6 +53,7 @@ export declare const CalendarPicker: React.ForwardRefExoticComponent<(({
51
53
  closeOnMaskClick?: boolean | undefined;
52
54
  onClose?: (() => void) | undefined;
53
55
  onMaskClick?: (() => void) | undefined;
56
+ getContainer?: GetContainer | undefined;
54
57
  } & {
55
58
  selectionMode?: undefined;
56
59
  onConfirm?: undefined;
@@ -84,6 +87,7 @@ export declare const CalendarPicker: React.ForwardRefExoticComponent<(({
84
87
  closeOnMaskClick?: boolean | undefined;
85
88
  onClose?: (() => void) | undefined;
86
89
  onMaskClick?: (() => void) | undefined;
90
+ getContainer?: GetContainer | undefined;
87
91
  } & {
88
92
  selectionMode: 'single';
89
93
  onConfirm?: ((val: Date | null) => void) | undefined;
@@ -117,6 +121,7 @@ export declare const CalendarPicker: React.ForwardRefExoticComponent<(({
117
121
  closeOnMaskClick?: boolean | undefined;
118
122
  onClose?: (() => void) | undefined;
119
123
  onMaskClick?: (() => void) | undefined;
124
+ getContainer?: GetContainer | undefined;
120
125
  } & {
121
126
  selectionMode: 'range';
122
127
  onConfirm?: ((val: [Date, Date] | null) => void) | undefined;
@@ -32,9 +32,10 @@ export const CalendarPicker = forwardRef((p, ref) => {
32
32
  closeOnMaskClick,
33
33
  onClose,
34
34
  onConfirm,
35
- onMaskClick
35
+ onMaskClick,
36
+ getContainer
36
37
  } = props,
37
- calendarViewProps = __rest(props, ["visible", "confirmText", "popupClassName", "popupStyle", "popupBodyStyle", "forceRender", "closeOnMaskClick", "onClose", "onConfirm", "onMaskClick"]);
38
+ calendarViewProps = __rest(props, ["visible", "confirmText", "popupClassName", "popupStyle", "popupBodyStyle", "forceRender", "closeOnMaskClick", "onClose", "onConfirm", "onMaskClick", "getContainer"]);
38
39
  const footer = React.createElement("div", {
39
40
  className: `${classPrefix}-footer`
40
41
  }, React.createElement(Divider, null), React.createElement("div", {
@@ -72,7 +73,8 @@ export const CalendarPicker = forwardRef((p, ref) => {
72
73
  if (closeOnMaskClick) {
73
74
  onClose === null || onClose === void 0 ? void 0 : onClose();
74
75
  }
75
- }
76
+ },
77
+ getContainer: getContainer
76
78
  }, React.createElement(CalendarPickerView, Object.assign({
77
79
  ref: calendarRef
78
80
  }, calendarViewProps)), footer)));
@@ -6,6 +6,7 @@ import { usePropsValue } from '../../utils/use-props-value';
6
6
  import CascaderView from '../cascader-view';
7
7
  import { useConfig } from '../config-provider';
8
8
  import { useCascaderValueExtend } from '../cascader-view/use-cascader-value-extend';
9
+ import { useFieldNames } from '../../hooks';
9
10
  const classPrefix = `adm-cascader`;
10
11
  const defaultProps = {
11
12
  defaultValue: [],
@@ -50,7 +51,11 @@ export const Cascader = forwardRef((p, ref) => {
50
51
  (_a = props.onConfirm) === null || _a === void 0 ? void 0 : _a.call(props, val, generateValueExtend(val));
51
52
  }
52
53
  }));
53
- const generateValueExtend = useCascaderValueExtend(props.options);
54
+ const [, valueName, childrenName] = useFieldNames(props.fieldNames);
55
+ const generateValueExtend = useCascaderValueExtend(props.options, {
56
+ valueName,
57
+ childrenName
58
+ });
54
59
  const [innerValue, setInnerValue] = useState(value);
55
60
  useEffect(() => {
56
61
  if (!visible) {
@@ -20,8 +20,11 @@ export const CascaderView = p => {
20
20
  const {
21
21
  locale
22
22
  } = useConfig();
23
- const generateValueExtend = useCascaderValueExtend(props.options);
24
23
  const [labelName, valueName, childrenName, disabledName] = useFieldNames(props.fieldNames);
24
+ const generateValueExtend = useCascaderValueExtend(props.options, {
25
+ valueName,
26
+ childrenName
27
+ });
25
28
  const [value, setValue] = usePropsValue(Object.assign(Object.assign({}, props), {
26
29
  onChange: val => {
27
30
  var _a;
@@ -1,2 +1,3 @@
1
- import { CascaderValue, CascaderValueExtend, CascaderOption } from './cascader-view';
2
- export declare function useCascaderValueExtend(options: CascaderOption[]): (val: CascaderValue[]) => CascaderValueExtend;
1
+ import { CascaderValue, CascaderValueExtend } from './cascader-view';
2
+ import type { CascaderOption } from './cascader-view';
3
+ export declare function useCascaderValueExtend(options: CascaderOption[], fieldNames: CascaderOption): (val: CascaderValue[]) => CascaderValueExtend;