antd-mobile 5.33.0 → 5.33.1

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 (76) hide show
  1. package/2x/README.md +1 -1
  2. package/2x/bundle/antd-mobile.cjs.development.js +54 -28
  3. package/2x/bundle/antd-mobile.cjs.js +9 -9
  4. package/2x/bundle/antd-mobile.es.development.js +54 -28
  5. package/2x/bundle/antd-mobile.es.js +1979 -1958
  6. package/2x/bundle/antd-mobile.umd.development.js +54 -28
  7. package/2x/bundle/antd-mobile.umd.js +9 -9
  8. package/2x/bundle/style.css +2 -2
  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/image-viewer/image-viewer.d.ts +4 -0
  16. package/2x/cjs/components/image-viewer/image-viewer.js +11 -8
  17. package/2x/cjs/components/number-keyboard/number-keyboard.js +5 -1
  18. package/2x/cjs/components/popover/popover-menu.js +3 -1
  19. package/2x/cjs/components/popover/popover.js +5 -5
  20. package/2x/cjs/components/popup/popup.js +1 -0
  21. package/2x/cjs/components/switch/switch.css +2 -2
  22. package/2x/cjs/components/virtual-input/virtual-input.js +10 -3
  23. package/2x/es/components/calendar-picker/calendar-picker.d.ts +5 -0
  24. package/2x/es/components/calendar-picker/calendar-picker.js +5 -3
  25. package/2x/es/components/cascader/cascader.js +6 -1
  26. package/2x/es/components/cascader-view/cascader-view.js +4 -1
  27. package/2x/es/components/cascader-view/use-cascader-value-extend.d.ts +3 -2
  28. package/2x/es/components/cascader-view/use-cascader-value-extend.js +9 -5
  29. package/2x/es/components/image-viewer/image-viewer.d.ts +4 -0
  30. package/2x/es/components/image-viewer/image-viewer.js +11 -8
  31. package/2x/es/components/number-keyboard/number-keyboard.js +5 -1
  32. package/2x/es/components/popover/popover-menu.js +3 -1
  33. package/2x/es/components/popover/popover.js +5 -5
  34. package/2x/es/components/popup/popup.js +1 -0
  35. package/2x/es/components/switch/switch.css +2 -2
  36. package/2x/es/components/virtual-input/virtual-input.js +10 -3
  37. package/2x/package.json +1 -1
  38. package/README.md +1 -1
  39. package/bundle/antd-mobile.cjs.development.js +54 -28
  40. package/bundle/antd-mobile.cjs.js +9 -9
  41. package/bundle/antd-mobile.compatible.umd.js +1 -1
  42. package/bundle/antd-mobile.es.development.js +54 -28
  43. package/bundle/antd-mobile.es.js +1979 -1958
  44. package/bundle/antd-mobile.umd.development.js +54 -28
  45. package/bundle/antd-mobile.umd.js +9 -9
  46. package/bundle/style.css +1 -1
  47. package/cjs/components/calendar-picker/calendar-picker.d.ts +5 -0
  48. package/cjs/components/calendar-picker/calendar-picker.js +5 -3
  49. package/cjs/components/cascader/cascader.js +6 -1
  50. package/cjs/components/cascader-view/cascader-view.js +4 -1
  51. package/cjs/components/cascader-view/use-cascader-value-extend.d.ts +3 -2
  52. package/cjs/components/cascader-view/use-cascader-value-extend.js +9 -5
  53. package/cjs/components/image-viewer/image-viewer.d.ts +4 -0
  54. package/cjs/components/image-viewer/image-viewer.js +11 -8
  55. package/cjs/components/number-keyboard/number-keyboard.js +5 -1
  56. package/cjs/components/popover/popover-menu.js +3 -1
  57. package/cjs/components/popover/popover.js +5 -5
  58. package/cjs/components/popup/popup.js +1 -0
  59. package/cjs/components/switch/switch.css +2 -2
  60. package/cjs/components/virtual-input/virtual-input.js +10 -3
  61. package/es/components/calendar-picker/calendar-picker.d.ts +5 -0
  62. package/es/components/calendar-picker/calendar-picker.js +5 -3
  63. package/es/components/cascader/cascader.js +6 -1
  64. package/es/components/cascader-view/cascader-view.js +4 -1
  65. package/es/components/cascader-view/use-cascader-value-extend.d.ts +3 -2
  66. package/es/components/cascader-view/use-cascader-value-extend.js +9 -5
  67. package/es/components/image-viewer/image-viewer.d.ts +4 -0
  68. package/es/components/image-viewer/image-viewer.js +11 -8
  69. package/es/components/number-keyboard/number-keyboard.js +5 -1
  70. package/es/components/popover/popover-menu.js +3 -1
  71. package/es/components/popover/popover.js +5 -5
  72. package/es/components/popup/popup.js +1 -0
  73. package/es/components/switch/switch.css +2 -2
  74. package/es/components/virtual-input/virtual-input.js +10 -3
  75. package/package.json +1 -1
  76. package/umd/antd-mobile.js +1 -1
@@ -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));
@@ -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);
@@ -97,7 +97,7 @@ const NumberKeyboard = p => {
97
97
  className: (0, _classnames.default)(`${classPrefix}-header`, {
98
98
  [`${classPrefix}-header-with-title`]: !!title
99
99
  })
100
- }, 'title' && _react.default.createElement("div", {
100
+ }, !!title && _react.default.createElement("div", {
101
101
  className: `${classPrefix}-title`,
102
102
  "aria-label": title
103
103
  }, title), showCloseButton && _react.default.createElement("span", {
@@ -172,6 +172,10 @@ const NumberKeyboard = p => {
172
172
  onKeyPress(e, 'BACKSPACE');
173
173
  onBackspacePressEnd();
174
174
  },
175
+ onContextMenu: e => {
176
+ // Long press should not trigger native context menu
177
+ e.preventDefault();
178
+ },
175
179
  title: 'BACKSPACE',
176
180
  role: 'grid',
177
181
  tabIndex: -1
@@ -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
 
@@ -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
  });
@@ -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;
@@ -1,18 +1,22 @@
1
1
  import { useMemo } from 'react';
2
2
  import memoize from 'lodash/memoize';
3
- export function useCascaderValueExtend(options) {
3
+ export function useCascaderValueExtend(options, fieldNames) {
4
+ const {
5
+ valueName,
6
+ childrenName
7
+ } = fieldNames;
4
8
  const generateItems = useMemo(() => {
5
9
  return memoize(val => {
6
10
  const ret = [];
7
11
  let currentOptions = options;
8
12
  for (const v of val) {
9
- const target = currentOptions.find(option => option.value === v);
13
+ const target = currentOptions.find(option => option[valueName] === v);
10
14
  if (!target) {
11
15
  break;
12
16
  }
13
17
  ret.push(target);
14
- if (!target.children) break;
15
- currentOptions = target.children;
18
+ if (!target[childrenName]) break;
19
+ currentOptions = target[childrenName];
16
20
  }
17
21
  return ret;
18
22
  }, val => JSON.stringify(val));
@@ -21,7 +25,7 @@ export function useCascaderValueExtend(options) {
21
25
  return memoize(val => {
22
26
  const children = val.reduce((currentOptions, v) => {
23
27
  var _a;
24
- return ((_a = currentOptions.find(option => option.value === v)) === null || _a === void 0 ? void 0 : _a.children) || [];
28
+ return ((_a = currentOptions.find(option => option[valueName] === v)) === null || _a === void 0 ? void 0 : _a[childrenName]) || [];
25
29
  }, options);
26
30
  return children.length === 0;
27
31
  }, val => JSON.stringify(val));
@@ -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;
@@ -5,6 +5,7 @@ import Mask from '../mask';
5
5
  import SafeArea from '../safe-area';
6
6
  import { Slide } from './slide';
7
7
  import { Slides } from './slides';
8
+ import classNames from 'classnames';
8
9
  const classPrefix = `adm-image-viewer`;
9
10
  const defaultProps = {
10
11
  maxZoom: 3,
@@ -12,23 +13,24 @@ const defaultProps = {
12
13
  visible: false
13
14
  };
14
15
  export const ImageViewer = p => {
15
- var _a;
16
+ var _a, _b, _c;
16
17
  const props = mergeProps(defaultProps, p);
17
18
  const node = React.createElement(Mask, {
18
19
  visible: props.visible,
19
20
  disableBodyScroll: false,
20
21
  opacity: 'thick',
21
22
  afterClose: props.afterClose,
22
- destroyOnClose: true
23
+ destroyOnClose: true,
24
+ className: (_a = props === null || props === void 0 ? void 0 : props.classNames) === null || _a === void 0 ? void 0 : _a.mask
23
25
  }, React.createElement("div", {
24
- className: `${classPrefix}-content`
26
+ className: classNames(`${classPrefix}-content`, (_b = props === null || props === void 0 ? void 0 : props.classNames) === null || _b === void 0 ? void 0 : _b.body)
25
27
  }, props.image && React.createElement(Slide, {
26
28
  image: props.image,
27
29
  onTap: props.onClose,
28
30
  maxZoom: props.maxZoom
29
31
  })), props.image && React.createElement("div", {
30
32
  className: `${classPrefix}-footer`
31
- }, (_a = props.renderFooter) === null || _a === void 0 ? void 0 : _a.call(props, props.image), React.createElement(SafeArea, {
33
+ }, (_c = props.renderFooter) === null || _c === void 0 ? void 0 : _c.call(props, props.image), React.createElement(SafeArea, {
32
34
  position: 'bottom'
33
35
  })));
34
36
  return renderToContainer(props.getContainer, node);
@@ -37,7 +39,7 @@ const multiDefaultProps = Object.assign(Object.assign({}, defaultProps), {
37
39
  defaultIndex: 0
38
40
  });
39
41
  export const MultiImageViewer = forwardRef((p, ref) => {
40
- var _a;
42
+ var _a, _b, _c;
41
43
  const props = mergeProps(multiDefaultProps, p);
42
44
  const [index, setIndex] = useState(props.defaultIndex);
43
45
  const slidesRef = useRef(null);
@@ -59,9 +61,10 @@ export const MultiImageViewer = forwardRef((p, ref) => {
59
61
  disableBodyScroll: false,
60
62
  opacity: 'thick',
61
63
  afterClose: props.afterClose,
62
- destroyOnClose: true
64
+ destroyOnClose: true,
65
+ className: (_a = props === null || props === void 0 ? void 0 : props.classNames) === null || _a === void 0 ? void 0 : _a.mask
63
66
  }, React.createElement("div", {
64
- className: `${classPrefix}-content`
67
+ className: classNames(`${classPrefix}-content`, (_b = props === null || props === void 0 ? void 0 : props.classNames) === null || _b === void 0 ? void 0 : _b.body)
65
68
  }, props.images && React.createElement(Slides, {
66
69
  ref: slidesRef,
67
70
  defaultIndex: index,
@@ -71,7 +74,7 @@ export const MultiImageViewer = forwardRef((p, ref) => {
71
74
  maxZoom: props.maxZoom
72
75
  })), props.images && React.createElement("div", {
73
76
  className: `${classPrefix}-footer`
74
- }, (_a = props.renderFooter) === null || _a === void 0 ? void 0 : _a.call(props, props.images[index], index), React.createElement(SafeArea, {
77
+ }, (_c = props.renderFooter) === null || _c === void 0 ? void 0 : _c.call(props, props.images[index], index), React.createElement(SafeArea, {
75
78
  position: 'bottom'
76
79
  })));
77
80
  return renderToContainer(props.getContainer, node);
@@ -88,7 +88,7 @@ export const NumberKeyboard = p => {
88
88
  className: classNames(`${classPrefix}-header`, {
89
89
  [`${classPrefix}-header-with-title`]: !!title
90
90
  })
91
- }, 'title' && React.createElement("div", {
91
+ }, !!title && React.createElement("div", {
92
92
  className: `${classPrefix}-title`,
93
93
  "aria-label": title
94
94
  }, title), showCloseButton && React.createElement("span", {
@@ -163,6 +163,10 @@ export const NumberKeyboard = p => {
163
163
  onKeyPress(e, 'BACKSPACE');
164
164
  onBackspacePressEnd();
165
165
  },
166
+ onContextMenu: e => {
167
+ // Long press should not trigger native context menu
168
+ e.preventDefault();
169
+ },
166
170
  title: 'BACKSPACE',
167
171
  role: 'grid',
168
172
  tabIndex: -1
@@ -32,7 +32,9 @@ export const PopoverMenu = forwardRef((props, ref) => {
32
32
  var _a;
33
33
  return React.createElement("a", {
34
34
  key: (_a = action.key) !== null && _a !== void 0 ? _a : index,
35
- className: classNames(`${classPrefix}-item`, 'adm-plain-anchor', action.disabled && `${classPrefix}-item-disabled`),
35
+ className: classNames(`${classPrefix}-item`, 'adm-plain-anchor', {
36
+ [`${classPrefix}-item-disabled`]: action.disabled
37
+ }),
36
38
  onClick: () => {
37
39
  var _a;
38
40
  if (action.disabled) return;
@@ -18,13 +18,11 @@ const defaultProps = {
18
18
  placement: 'top',
19
19
  defaultVisible: false,
20
20
  stopPropagation: ['click'],
21
- getContainer: () => document.body
21
+ getContainer: () => document.body,
22
+ mode: 'light'
22
23
  };
23
24
  export const Popover = forwardRef((p, ref) => {
24
25
  const props = mergeProps(defaultProps, p);
25
- const {
26
- mode = 'light'
27
- } = props;
28
26
  const placement = normalizePlacement(props.placement);
29
27
  const [visible, setVisible] = usePropsValue({
30
28
  value: props.visible,
@@ -40,7 +38,9 @@ export const Popover = forwardRef((p, ref) => {
40
38
  const floatingRef = useRef(null);
41
39
  const arrowRef = useRef(null);
42
40
  const floating = withStopPropagation(props.stopPropagation, withNativeProps(props, React.createElement("div", {
43
- className: classNames(classPrefix, `${classPrefix}-${mode}`, !visible && `${classPrefix}-hidden`),
41
+ className: classNames(classPrefix, `${classPrefix}-${props.mode}`, {
42
+ [`${classPrefix}-hidden`]: !visible
43
+ }),
44
44
  ref: floatingRef
45
45
  }, React.createElement("div", {
46
46
  className: `${classPrefix}-arrow`,
@@ -93,6 +93,7 @@ export const Popup = p => {
93
93
  }), React.createElement(animated.div, {
94
94
  className: bodyCls,
95
95
  style: Object.assign(Object.assign({}, props.bodyStyle), {
96
+ pointerEvents: percent.to(v => v === 0 ? 'unset' : 'none'),
96
97
  transform: percent.to(v => {
97
98
  if (props.position === 'bottom') {
98
99
  return `translate(0, ${v}%)`;