antd-mobile 5.0.0-rc.23 → 5.0.0-rc.24

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 (135) hide show
  1. package/2x/README.md +6 -6
  2. package/2x/cjs/components/cascade-picker-view/cascade-picker-view.d.ts +1 -2
  3. package/2x/cjs/components/date-picker/date-picker.d.ts +1 -1
  4. package/2x/cjs/components/date-picker-view/date-picker-view.d.ts +3 -2
  5. package/2x/cjs/components/form/form-item.css +3 -2
  6. package/2x/cjs/components/form/form-item.d.ts +2 -2
  7. package/2x/cjs/components/form/form-item.js +9 -5
  8. package/2x/cjs/components/form/form.css +3 -3
  9. package/2x/cjs/components/form/form.d.ts +5 -4
  10. package/2x/cjs/components/form/index.css +6 -5
  11. package/2x/cjs/components/form/index.d.ts +5 -4
  12. package/2x/cjs/components/input/input.d.ts +2 -2
  13. package/2x/cjs/components/input/input.js +3 -1
  14. package/2x/cjs/components/list/list.css +2 -6
  15. package/2x/cjs/components/picker/picker.css +10 -2
  16. package/2x/cjs/components/picker/picker.d.ts +1 -1
  17. package/2x/cjs/components/picker-view/picker-view.css +2 -1
  18. package/2x/cjs/components/picker-view/picker-view.d.ts +1 -1
  19. package/2x/cjs/components/popover/arrow.d.ts +3 -0
  20. package/2x/cjs/components/popover/arrow.js +26 -0
  21. package/2x/cjs/components/popover/index.d.ts +7 -15
  22. package/2x/cjs/components/popover/index.js +4 -2
  23. package/2x/cjs/components/popover/popover-menu.css +63 -0
  24. package/2x/cjs/components/popover/popover-menu.d.ts +20 -0
  25. package/{cjs/components/popover/pop-menu.js → 2x/cjs/components/popover/popover-menu.js} +23 -26
  26. package/2x/cjs/components/popover/popover.css +90 -318
  27. package/2x/cjs/components/popover/popover.d.ts +9 -8
  28. package/2x/cjs/components/popover/popover.js +11 -17
  29. package/2x/cjs/components/text-area/text-area.css +9 -9
  30. package/2x/cjs/components/text-area/text-area.d.ts +2 -2
  31. package/2x/cjs/components/text-area/text-area.js +40 -32
  32. package/2x/es/components/cascade-picker-view/cascade-picker-view.d.ts +1 -2
  33. package/2x/es/components/date-picker/date-picker.d.ts +1 -1
  34. package/2x/es/components/date-picker-view/date-picker-view.d.ts +3 -2
  35. package/2x/es/components/form/form-item.css +3 -2
  36. package/2x/es/components/form/form-item.d.ts +2 -2
  37. package/2x/es/components/form/form-item.js +9 -5
  38. package/2x/es/components/form/form.css +3 -3
  39. package/2x/es/components/form/form.d.ts +5 -4
  40. package/2x/es/components/form/index.css +6 -5
  41. package/2x/es/components/form/index.d.ts +5 -4
  42. package/2x/es/components/input/input.d.ts +2 -2
  43. package/2x/es/components/input/input.js +3 -1
  44. package/2x/es/components/list/list.css +2 -6
  45. package/2x/es/components/picker/picker.css +10 -2
  46. package/2x/es/components/picker/picker.d.ts +1 -1
  47. package/2x/es/components/picker-view/picker-view.css +2 -1
  48. package/2x/es/components/picker-view/picker-view.d.ts +1 -1
  49. package/2x/es/components/popover/arrow.d.ts +3 -0
  50. package/2x/es/components/popover/arrow.js +12 -0
  51. package/2x/es/components/popover/index.d.ts +7 -15
  52. package/2x/es/components/popover/index.js +3 -2
  53. package/2x/es/components/popover/popover-menu.css +63 -0
  54. package/2x/es/components/popover/popover-menu.d.ts +20 -0
  55. package/2x/es/components/popover/popover-menu.js +52 -0
  56. package/2x/es/components/popover/popover.css +90 -318
  57. package/2x/es/components/popover/popover.d.ts +9 -8
  58. package/2x/es/components/popover/popover.js +10 -17
  59. package/2x/es/components/text-area/text-area.css +9 -9
  60. package/2x/es/components/text-area/text-area.d.ts +2 -2
  61. package/2x/es/components/text-area/text-area.js +40 -31
  62. package/2x/package.json +1 -1
  63. package/README.md +6 -6
  64. package/cjs/components/cascade-picker-view/cascade-picker-view.d.ts +1 -2
  65. package/cjs/components/date-picker/date-picker.d.ts +1 -1
  66. package/cjs/components/date-picker-view/date-picker-view.d.ts +3 -2
  67. package/cjs/components/form/form-item.css +3 -2
  68. package/cjs/components/form/form-item.d.ts +2 -2
  69. package/cjs/components/form/form-item.js +9 -5
  70. package/cjs/components/form/form.css +3 -3
  71. package/cjs/components/form/form.d.ts +5 -4
  72. package/cjs/components/form/index.css +6 -5
  73. package/cjs/components/form/index.d.ts +5 -4
  74. package/cjs/components/input/input.d.ts +2 -2
  75. package/cjs/components/input/input.js +3 -1
  76. package/cjs/components/list/list.css +2 -5
  77. package/cjs/components/picker/picker.css +9 -2
  78. package/cjs/components/picker/picker.d.ts +1 -1
  79. package/cjs/components/picker-view/picker-view.css +2 -1
  80. package/cjs/components/picker-view/picker-view.d.ts +1 -1
  81. package/cjs/components/popover/arrow.d.ts +3 -0
  82. package/cjs/components/popover/arrow.js +26 -0
  83. package/cjs/components/popover/index.d.ts +7 -15
  84. package/cjs/components/popover/index.js +4 -2
  85. package/cjs/components/popover/popover-menu.css +52 -0
  86. package/cjs/components/popover/popover-menu.d.ts +20 -0
  87. package/{2x/cjs/components/popover/pop-menu.js → cjs/components/popover/popover-menu.js} +23 -26
  88. package/cjs/components/popover/popover.css +83 -276
  89. package/cjs/components/popover/popover.d.ts +9 -8
  90. package/cjs/components/popover/popover.js +11 -17
  91. package/cjs/components/text-area/text-area.css +9 -9
  92. package/cjs/components/text-area/text-area.d.ts +2 -2
  93. package/cjs/components/text-area/text-area.js +40 -32
  94. package/es/components/cascade-picker-view/cascade-picker-view.d.ts +1 -2
  95. package/es/components/date-picker/date-picker.d.ts +1 -1
  96. package/es/components/date-picker-view/date-picker-view.d.ts +3 -2
  97. package/es/components/form/form-item.css +3 -2
  98. package/es/components/form/form-item.d.ts +2 -2
  99. package/es/components/form/form-item.js +9 -5
  100. package/es/components/form/form.css +3 -3
  101. package/es/components/form/form.d.ts +5 -4
  102. package/es/components/form/index.css +6 -5
  103. package/es/components/form/index.d.ts +5 -4
  104. package/es/components/input/input.d.ts +2 -2
  105. package/es/components/input/input.js +3 -1
  106. package/es/components/list/list.css +2 -5
  107. package/es/components/picker/picker.css +9 -2
  108. package/es/components/picker/picker.d.ts +1 -1
  109. package/es/components/picker-view/picker-view.css +2 -1
  110. package/es/components/picker-view/picker-view.d.ts +1 -1
  111. package/es/components/popover/arrow.d.ts +3 -0
  112. package/es/components/popover/arrow.js +12 -0
  113. package/es/components/popover/index.d.ts +7 -15
  114. package/es/components/popover/index.js +3 -2
  115. package/es/components/popover/popover-menu.css +52 -0
  116. package/es/components/popover/popover-menu.d.ts +20 -0
  117. package/es/components/popover/popover-menu.js +52 -0
  118. package/es/components/popover/popover.css +83 -276
  119. package/es/components/popover/popover.d.ts +9 -8
  120. package/es/components/popover/popover.js +10 -17
  121. package/es/components/text-area/text-area.css +9 -9
  122. package/es/components/text-area/text-area.d.ts +2 -2
  123. package/es/components/text-area/text-area.js +40 -31
  124. package/package.json +1 -1
  125. package/umd/antd-mobile.js +1 -1
  126. package/2x/cjs/components/popover/animation.css +0 -111
  127. package/2x/cjs/components/popover/pop-menu.d.ts +0 -28
  128. package/2x/es/components/popover/animation.css +0 -111
  129. package/2x/es/components/popover/pop-menu.d.ts +0 -28
  130. package/2x/es/components/popover/pop-menu.js +0 -54
  131. package/cjs/components/popover/animation.css +0 -96
  132. package/cjs/components/popover/pop-menu.d.ts +0 -28
  133. package/es/components/popover/animation.css +0 -96
  134. package/es/components/popover/pop-menu.d.ts +0 -28
  135. package/es/components/popover/pop-menu.js +0 -54
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { ReactNode } from 'react';
3
3
  import { NativeProps } from '../../utils/native-props';
4
- export declare type TextAreaProps = Pick<React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, 'autoComplete' | 'disabled' | 'readOnly' | 'onFocus' | 'onBlur'> & {
4
+ export declare type TextAreaProps = Pick<React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, 'autoComplete' | 'disabled' | 'readOnly' | 'onFocus' | 'onBlur' | 'onCompositionStart' | 'onCompositionEnd'> & {
5
5
  onChange?: (val: string) => void;
6
6
  value?: string;
7
7
  defaultValue?: string;
@@ -20,7 +20,7 @@ export declare type TextAreaRef = {
20
20
  focus: () => void;
21
21
  blur: () => void;
22
22
  };
23
- export declare const TextArea: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "disabled" | "onFocus" | "onBlur" | "autoComplete" | "readOnly"> & {
23
+ export declare const TextArea: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "disabled" | "onCompositionEnd" | "onCompositionStart" | "onFocus" | "onBlur" | "autoComplete" | "readOnly"> & {
24
24
  onChange?: ((val: string) => void) | undefined;
25
25
  value?: string | undefined;
26
26
  defaultValue?: string | undefined;
@@ -1,6 +1,5 @@
1
- import { __rest } from "tslib";
2
1
  import React, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';
3
- import classNames from 'classnames';
2
+ import { withNativeProps } from '../../utils/native-props';
4
3
  import { usePropsValue } from '../../utils/use-props-value';
5
4
  import { mergeProps } from '../../utils/with-default-props';
6
5
  const classPrefix = 'adm-text-area';
@@ -12,19 +11,11 @@ const defaultProps = {
12
11
  };
13
12
  export const TextArea = forwardRef((p, ref) => {
14
13
  const props = mergeProps(defaultProps, p);
15
-
16
14
  const {
17
- className,
18
- style,
19
- defaultValue: outerDefaultValue,
20
- value: outerValue,
21
- onChange: outerOnChange,
22
- rows: rows,
23
- autoSize: autoSize,
24
- showCount
25
- } = props,
26
- textAreaProps = __rest(props, ["className", "style", "defaultValue", "value", "onChange", "rows", "autoSize", "showCount"]);
27
-
15
+ autoSize,
16
+ showCount,
17
+ maxLength
18
+ } = props;
28
19
  const [value, setValue] = usePropsValue(props);
29
20
  const nativeTextAreaRef = useRef(null);
30
21
  useImperativeHandle(ref, () => ({
@@ -64,39 +55,57 @@ export const TextArea = forwardRef((p, ref) => {
64
55
 
65
56
  textArea.style.height = `${height}px`;
66
57
  }, [value, autoSize]);
58
+ const compositingRef = useRef(false);
67
59
  let count;
60
+ const valueLength = [...value].length;
68
61
 
69
62
  if (typeof showCount === 'function') {
70
- count = showCount(value.length, props.maxLength);
63
+ count = showCount(valueLength, maxLength);
71
64
  } else if (showCount) {
72
65
  count = React.createElement("div", {
73
66
  className: `${classPrefix}-count`
74
- }, props.maxLength === undefined ? value.length : value.length + '/' + props.maxLength);
67
+ }, maxLength === undefined ? valueLength : valueLength + '/' + maxLength);
75
68
  }
76
69
 
77
- return React.createElement("div", {
78
- className: classNames(`${classPrefix}-wrapper`, className),
79
- style: style
80
- }, React.createElement("textarea", Object.assign({
81
- ref: nativeTextAreaRef
82
- }, textAreaProps, {
83
- className: classPrefix,
84
- rows: rows,
70
+ return withNativeProps(props, React.createElement("div", {
71
+ className: classPrefix
72
+ }, React.createElement("textarea", {
73
+ ref: nativeTextAreaRef,
74
+ className: `${classPrefix}-element`,
75
+ rows: props.rows,
85
76
  value: value,
86
77
  onChange: e => {
87
- setValue(e.target.value);
78
+ let v = e.target.value;
79
+
80
+ if (maxLength && !compositingRef.current) {
81
+ v = [...v].slice(0, maxLength).join('');
82
+ }
83
+
84
+ setValue(v);
88
85
  },
89
- onFocus: e => {
86
+ id: props.id,
87
+ onCompositionStart: e => {
90
88
  var _a;
91
89
 
92
- (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props, e);
90
+ compositingRef.current = true;
91
+ (_a = props.onCompositionStart) === null || _a === void 0 ? void 0 : _a.call(props, e);
93
92
  },
94
- onBlur: e => {
93
+ onCompositionEnd: e => {
95
94
  var _a;
96
95
 
97
- (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, e);
96
+ compositingRef.current = false;
97
+
98
+ if (maxLength) {
99
+ setValue([...value].slice(0, maxLength).join(''));
100
+ }
101
+
102
+ (_a = props.onCompositionEnd) === null || _a === void 0 ? void 0 : _a.call(props, e);
98
103
  },
99
- id: props.id
100
- })), count);
104
+ autoComplete: props.autoComplete,
105
+ disabled: props.disabled,
106
+ readOnly: props.readOnly,
107
+ onFocus: props.onFocus,
108
+ onBlur: props.onBlur
109
+ }), count));
101
110
  });
102
111
  TextArea.defaultProps = defaultProps;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antd-mobile",
3
- "version": "5.0.0-rc.23",
3
+ "version": "5.0.0-rc.24",
4
4
  "dependencies": {
5
5
  "@react-spring/web": "^9.4.2",
6
6
  "@types/resize-observer-browser": "^0.1.6",