@arco-design/mobile-react 2.22.3 → 2.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.en-US.md +2 -2
  3. package/README.md +2 -2
  4. package/cjs/_helpers/render.d.ts +3 -1
  5. package/cjs/_helpers/render.js +10 -3
  6. package/cjs/action-sheet/index.d.ts +5 -5
  7. package/cjs/action-sheet/index.js +4 -3
  8. package/cjs/action-sheet/methods.d.ts +1 -1
  9. package/cjs/badge/style/css/index.css +1 -2
  10. package/cjs/checkbox/checkbox.js +4 -0
  11. package/cjs/circle-progress/index.js +4 -0
  12. package/cjs/context-provider/index.d.ts +4 -0
  13. package/cjs/context-provider/index.js +14 -2
  14. package/cjs/dialog/index.d.ts +8 -8
  15. package/cjs/dialog/index.js +3 -2
  16. package/cjs/dialog/methods.d.ts +3 -3
  17. package/cjs/dialog/style/css/index.css +1 -2
  18. package/cjs/image-picker/index.js +18 -12
  19. package/cjs/image-picker/type.d.ts +10 -0
  20. package/cjs/image-preview/index.d.ts +3 -3
  21. package/cjs/image-preview/index.js +3 -2
  22. package/cjs/image-preview/methods.d.ts +2 -1
  23. package/cjs/image-preview/methods.js +2 -2
  24. package/cjs/index.d.ts +1 -0
  25. package/cjs/index.js +5 -1
  26. package/cjs/input/hooks.js +1 -0
  27. package/cjs/input/index.d.ts +5 -0
  28. package/cjs/input/index.js +6 -2
  29. package/cjs/input/style/css/index.css +1 -0
  30. package/cjs/input/style/index.less +1 -0
  31. package/cjs/masking/index.d.ts +4 -14
  32. package/cjs/masking/index.js +3 -2
  33. package/cjs/masking/methods.d.ts +3 -2
  34. package/cjs/masking/methods.js +2 -2
  35. package/cjs/nav-bar/index.d.ts +12 -0
  36. package/cjs/nav-bar/index.js +8 -2
  37. package/cjs/notify/index.d.ts +12 -12
  38. package/cjs/notify/index.js +3 -2
  39. package/cjs/notify/methods.d.ts +2 -1
  40. package/cjs/notify/methods.js +2 -2
  41. package/cjs/picker-view/components/picker-cell.js +3 -1
  42. package/cjs/popup/index.d.ts +4 -4
  43. package/cjs/popup/index.js +3 -2
  44. package/cjs/popup/methods.d.ts +1 -1
  45. package/cjs/popup-swiper/index.d.ts +12 -6
  46. package/cjs/popup-swiper/index.js +3 -2
  47. package/cjs/popup-swiper/methods.d.ts +1 -1
  48. package/cjs/progress/index.js +4 -0
  49. package/cjs/rate/index.js +5 -0
  50. package/cjs/slider/index.js +6 -1
  51. package/cjs/stepper/demo/style/css/mobile.css +4 -0
  52. package/cjs/stepper/demo/style/mobile.less +10 -0
  53. package/cjs/stepper/hooks/useButtonClick.d.ts +11 -0
  54. package/cjs/stepper/hooks/useButtonClick.js +74 -0
  55. package/cjs/stepper/hooks/useInputEvent.d.ts +9 -0
  56. package/cjs/stepper/hooks/useInputEvent.js +59 -0
  57. package/cjs/stepper/hooks/useValue.d.ts +6 -0
  58. package/cjs/stepper/hooks/useValue.js +44 -0
  59. package/cjs/stepper/index.d.ts +13 -0
  60. package/cjs/stepper/index.js +190 -0
  61. package/cjs/stepper/style/css/index.css +76 -0
  62. package/cjs/stepper/style/css/index.d.ts +2 -0
  63. package/cjs/stepper/style/css/index.js +5 -0
  64. package/cjs/stepper/style/index.d.ts +2 -0
  65. package/cjs/stepper/style/index.js +5 -0
  66. package/cjs/stepper/style/index.less +80 -0
  67. package/cjs/stepper/type.d.ts +159 -0
  68. package/cjs/stepper/type.js +3 -0
  69. package/cjs/style.d.ts +1 -0
  70. package/cjs/style.js +2 -0
  71. package/cjs/swipe-action/index.d.ts +1 -0
  72. package/cjs/swipe-action/index.js +10 -0
  73. package/cjs/switch/index.js +4 -0
  74. package/cjs/toast/index.d.ts +18 -18
  75. package/cjs/toast/index.js +3 -2
  76. package/cjs/toast/methods.d.ts +2 -1
  77. package/cjs/toast/methods.js +2 -2
  78. package/dist/index.js +463 -52
  79. package/dist/index.min.js +3 -3
  80. package/dist/style.css +77 -113
  81. package/dist/style.min.css +1 -1
  82. package/esm/_helpers/render.d.ts +3 -1
  83. package/esm/_helpers/render.js +10 -3
  84. package/esm/action-sheet/index.d.ts +5 -5
  85. package/esm/action-sheet/index.js +4 -3
  86. package/esm/action-sheet/methods.d.ts +1 -1
  87. package/esm/badge/style/css/index.css +1 -2
  88. package/esm/checkbox/checkbox.js +4 -0
  89. package/esm/circle-progress/index.js +4 -0
  90. package/esm/context-provider/index.d.ts +4 -0
  91. package/esm/context-provider/index.js +13 -2
  92. package/esm/dialog/index.d.ts +8 -8
  93. package/esm/dialog/index.js +3 -2
  94. package/esm/dialog/methods.d.ts +3 -3
  95. package/esm/dialog/style/css/index.css +1 -2
  96. package/esm/image-picker/index.js +18 -12
  97. package/esm/image-picker/type.d.ts +10 -0
  98. package/esm/image-preview/index.d.ts +3 -3
  99. package/esm/image-preview/index.js +3 -2
  100. package/esm/image-preview/methods.d.ts +2 -1
  101. package/esm/image-preview/methods.js +2 -2
  102. package/esm/index.d.ts +1 -0
  103. package/esm/index.js +1 -0
  104. package/esm/input/hooks.js +1 -0
  105. package/esm/input/index.d.ts +5 -0
  106. package/esm/input/index.js +6 -2
  107. package/esm/input/style/css/index.css +1 -0
  108. package/esm/input/style/index.less +1 -0
  109. package/esm/masking/index.d.ts +4 -14
  110. package/esm/masking/index.js +3 -2
  111. package/esm/masking/methods.d.ts +3 -2
  112. package/esm/masking/methods.js +2 -2
  113. package/esm/nav-bar/index.d.ts +12 -0
  114. package/esm/nav-bar/index.js +8 -2
  115. package/esm/notify/index.d.ts +12 -12
  116. package/esm/notify/index.js +3 -2
  117. package/esm/notify/methods.d.ts +2 -1
  118. package/esm/notify/methods.js +2 -2
  119. package/esm/picker-view/components/picker-cell.js +3 -1
  120. package/esm/popup/index.d.ts +4 -4
  121. package/esm/popup/index.js +3 -2
  122. package/esm/popup/methods.d.ts +1 -1
  123. package/esm/popup-swiper/index.d.ts +12 -6
  124. package/esm/popup-swiper/index.js +3 -2
  125. package/esm/popup-swiper/methods.d.ts +1 -1
  126. package/esm/progress/index.js +4 -0
  127. package/esm/rate/index.js +5 -0
  128. package/esm/slider/index.js +6 -1
  129. package/esm/stepper/demo/style/css/mobile.css +4 -0
  130. package/esm/stepper/demo/style/mobile.less +10 -0
  131. package/esm/stepper/hooks/useButtonClick.d.ts +11 -0
  132. package/esm/stepper/hooks/useButtonClick.js +69 -0
  133. package/esm/stepper/hooks/useInputEvent.d.ts +9 -0
  134. package/esm/stepper/hooks/useInputEvent.js +53 -0
  135. package/esm/stepper/hooks/useValue.d.ts +6 -0
  136. package/esm/stepper/hooks/useValue.js +38 -0
  137. package/esm/stepper/index.d.ts +13 -0
  138. package/esm/stepper/index.js +163 -0
  139. package/esm/stepper/style/css/index.css +76 -0
  140. package/esm/stepper/style/css/index.d.ts +2 -0
  141. package/esm/stepper/style/css/index.js +2 -0
  142. package/esm/stepper/style/index.d.ts +2 -0
  143. package/esm/stepper/style/index.js +2 -0
  144. package/esm/stepper/style/index.less +80 -0
  145. package/esm/stepper/type.d.ts +159 -0
  146. package/esm/stepper/type.js +1 -0
  147. package/esm/style.d.ts +1 -0
  148. package/esm/style.js +1 -0
  149. package/esm/swipe-action/index.d.ts +1 -0
  150. package/esm/swipe-action/index.js +1 -0
  151. package/esm/switch/index.js +4 -0
  152. package/esm/toast/index.d.ts +18 -18
  153. package/esm/toast/index.js +3 -2
  154. package/esm/toast/methods.d.ts +2 -1
  155. package/esm/toast/methods.js +2 -2
  156. package/package.json +3 -3
  157. package/style/css/public.css +4 -4
  158. package/tokens/app/arcodesign/default/css-variables.less +15 -0
  159. package/tokens/app/arcodesign/default/index.d.ts +15 -0
  160. package/tokens/app/arcodesign/default/index.js +16 -1
  161. package/tokens/app/arcodesign/default/index.json +180 -0
  162. package/tokens/app/arcodesign/default/index.less +15 -0
  163. package/umd/_helpers/render.d.ts +3 -1
  164. package/umd/_helpers/render.js +13 -7
  165. package/umd/action-sheet/index.d.ts +5 -5
  166. package/umd/action-sheet/index.js +4 -3
  167. package/umd/action-sheet/methods.d.ts +1 -1
  168. package/umd/badge/style/css/index.css +1 -2
  169. package/umd/checkbox/checkbox.js +4 -0
  170. package/umd/circle-progress/index.js +4 -0
  171. package/umd/context-provider/index.d.ts +4 -0
  172. package/umd/context-provider/index.js +13 -1
  173. package/umd/dialog/index.d.ts +8 -8
  174. package/umd/dialog/index.js +3 -2
  175. package/umd/dialog/methods.d.ts +3 -3
  176. package/umd/dialog/style/css/index.css +1 -2
  177. package/umd/image-picker/index.js +18 -12
  178. package/umd/image-picker/type.d.ts +10 -0
  179. package/umd/image-preview/index.d.ts +3 -3
  180. package/umd/image-preview/index.js +3 -2
  181. package/umd/image-preview/methods.d.ts +2 -1
  182. package/umd/image-preview/methods.js +2 -2
  183. package/umd/index.d.ts +1 -0
  184. package/umd/index.js +7 -5
  185. package/umd/input/hooks.js +1 -0
  186. package/umd/input/index.d.ts +5 -0
  187. package/umd/input/index.js +6 -2
  188. package/umd/input/style/css/index.css +1 -0
  189. package/umd/input/style/index.less +1 -0
  190. package/umd/masking/index.d.ts +4 -14
  191. package/umd/masking/index.js +3 -2
  192. package/umd/masking/methods.d.ts +3 -2
  193. package/umd/masking/methods.js +2 -2
  194. package/umd/nav-bar/index.d.ts +12 -0
  195. package/umd/nav-bar/index.js +8 -2
  196. package/umd/notify/index.d.ts +12 -12
  197. package/umd/notify/index.js +3 -2
  198. package/umd/notify/methods.d.ts +2 -1
  199. package/umd/notify/methods.js +2 -2
  200. package/umd/picker-view/components/picker-cell.js +3 -1
  201. package/umd/popup/index.d.ts +4 -4
  202. package/umd/popup/index.js +3 -2
  203. package/umd/popup/methods.d.ts +1 -1
  204. package/umd/popup-swiper/index.d.ts +12 -6
  205. package/umd/popup-swiper/index.js +3 -2
  206. package/umd/popup-swiper/methods.d.ts +1 -1
  207. package/umd/progress/index.js +4 -0
  208. package/umd/rate/index.js +5 -0
  209. package/umd/slider/index.js +6 -1
  210. package/umd/stepper/demo/style/css/mobile.css +4 -0
  211. package/umd/stepper/demo/style/mobile.less +10 -0
  212. package/umd/stepper/hooks/useButtonClick.d.ts +11 -0
  213. package/umd/stepper/hooks/useButtonClick.js +86 -0
  214. package/umd/stepper/hooks/useInputEvent.d.ts +9 -0
  215. package/umd/stepper/hooks/useInputEvent.js +71 -0
  216. package/umd/stepper/hooks/useValue.d.ts +6 -0
  217. package/umd/stepper/hooks/useValue.js +56 -0
  218. package/umd/stepper/index.d.ts +13 -0
  219. package/umd/stepper/index.js +191 -0
  220. package/umd/stepper/style/css/index.css +76 -0
  221. package/umd/stepper/style/css/index.d.ts +2 -0
  222. package/umd/stepper/style/css/index.js +15 -0
  223. package/umd/stepper/style/index.d.ts +2 -0
  224. package/umd/stepper/style/index.js +15 -0
  225. package/umd/stepper/style/index.less +80 -0
  226. package/umd/stepper/type.d.ts +159 -0
  227. package/umd/stepper/type.js +17 -0
  228. package/umd/style.d.ts +1 -0
  229. package/umd/style.js +4 -4
  230. package/umd/swipe-action/index.d.ts +1 -0
  231. package/umd/swipe-action/index.js +11 -4
  232. package/umd/switch/index.js +4 -0
  233. package/umd/toast/index.d.ts +18 -18
  234. package/umd/toast/index.js +3 -2
  235. package/umd/toast/methods.d.ts +2 -1
  236. package/umd/toast/methods.js +2 -2
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { GlobalContextParams } from '../context-provider';
2
3
  export interface OpenBaseProps {
3
4
  unmountOnExit?: boolean;
4
5
  getContainer?: () => HTMLElement;
@@ -8,13 +9,13 @@ export interface OpenBaseProps {
8
9
  }
9
10
  export declare function getOpenMethod<T extends {
10
11
  key?: string;
11
- }, P extends OpenBaseProps>(Component: React.FunctionComponent<P>, containerId?: string, normalize?: (config: T) => P): (config: T) => {
12
+ }, P extends OpenBaseProps>(Component: React.FunctionComponent<P>, containerId?: string, normalize?: (config: T) => P): (config: T, context?: GlobalContextParams | undefined) => {
12
13
  close: () => void;
13
14
  update: (newConfig: T) => void;
14
15
  };
15
16
  export declare function open<P extends OpenBaseProps>(Component: React.FunctionComponent<P>, containerId?: string): (config: Pick<P, Exclude<keyof P, "visible" | "close">> & {
16
17
  key?: string | undefined;
17
- }) => {
18
+ }, context?: GlobalContextParams | undefined) => {
18
19
  close: () => void;
19
20
  update: (newConfig: Pick<P, Exclude<keyof P, "visible" | "close">> & {
20
21
  key?: string | undefined;
@@ -27,7 +27,7 @@
27
27
  };
28
28
  }
29
29
 
30
- return function (config) {
30
+ return function (config, context) {
31
31
  var baseProps = (0, _extends2.default)({
32
32
  unmountOnExit: true
33
33
  }, normalize(config), {
@@ -43,7 +43,7 @@
43
43
 
44
44
  var leaving = false;
45
45
 
46
- var _ReactDOMRender = new _render.ReactDOMRender(Component, div),
46
+ var _ReactDOMRender = new _render.ReactDOMRender(Component, div, context),
47
47
  render = _ReactDOMRender.render;
48
48
 
49
49
  function update(newConfig) {
@@ -105,6 +105,18 @@ export interface NavBarProps {
105
105
  * @en Set a custom style according to the scroll offset value. After setting this property, the scroll event of the scroll container will be monitored.
106
106
  */
107
107
  getComputedStyleByScroll?: (offset: number) => CSSProperties;
108
+ /**
109
+ * 无障碍aria-label属性
110
+ * @en Accessibility attribute aria-label
111
+ * @default ""
112
+ */
113
+ ariaLabel?: string;
114
+ /**
115
+ * 无障碍role属性
116
+ * @en Accessibility attribute role
117
+ * @default "banner"
118
+ */
119
+ ariaRole?: string;
108
120
  }
109
121
  /**
110
122
  * 导航栏组件,支持吸顶和沉浸式,支持在指定滚动位置展示,支持根据滚动位置实时更新style。
@@ -59,7 +59,11 @@
59
59
  getScrollContainer = props.getScrollContainer,
60
60
  _props$showOffset = props.showOffset,
61
61
  showOffset = _props$showOffset === void 0 ? 0 : _props$showOffset,
62
- getComputedStyleByScroll = props.getComputedStyleByScroll;
62
+ getComputedStyleByScroll = props.getComputedStyleByScroll,
63
+ _props$ariaLabel = props.ariaLabel,
64
+ ariaLabel = _props$ariaLabel === void 0 ? '' : _props$ariaLabel,
65
+ _props$ariaRole = props.ariaRole,
66
+ ariaRole = _props$ariaRole === void 0 ? 'banner' : _props$ariaRole;
63
67
  var navBarRef = (0, _react.useRef)(null);
64
68
 
65
69
  var _useState = (0, _react.useState)(showOffset > 0),
@@ -147,7 +151,9 @@
147
151
  paddingTop: fixed && statusBarHeight ? statusBarHeight + "px" : ''
148
152
  }, style || {}, relBackground ? {
149
153
  background: relBackground
150
- } : {})
154
+ } : {}),
155
+ "aria-label": ariaLabel,
156
+ role: ariaRole
151
157
  }, /*#__PURE__*/_react.default.createElement("div", {
152
158
  className: (0, _mobileUtils.cls)(className, system, prefixCls + "-nav-bar-wrapper", (_cls2 = {}, _cls2[prefixCls + "-nav-bar-wrapper-fixed"] = fixed, _cls2[prefixCls + "-nav-bar-wrapper-border"] = hasBottomLine, _cls2)),
153
159
  style: (0, _extends2.default)({
@@ -9,7 +9,7 @@ export declare function methodsGenerator<P extends NotifyBaseProps>(Comp: React.
9
9
  * @param {string | NotifyProps} config
10
10
  * @returns {{ update: (config: NotifyProps) => void; close: () => void }}
11
11
  */
12
- info: (originConfig: string | Pick<P, Exclude<keyof P, "visible" | "close">>) => {
12
+ info: (originConfig: string | Pick<P, Exclude<keyof P, "visible" | "close">>, context?: import("../context-provider").GlobalContextParams | undefined) => {
13
13
  update: (newConfig: Pick<P, Exclude<keyof P, "visible" | "close">>) => void;
14
14
  close: () => void;
15
15
  };
@@ -19,7 +19,7 @@ export declare function methodsGenerator<P extends NotifyBaseProps>(Comp: React.
19
19
  * @param {string | NotifyProps} config
20
20
  * @returns {{ update: (config: NotifyProps) => void; close: () => void }}
21
21
  */
22
- success: (originConfig: string | Pick<P, Exclude<keyof P, "visible" | "close">>) => {
22
+ success: (originConfig: string | Pick<P, Exclude<keyof P, "visible" | "close">>, context?: import("../context-provider").GlobalContextParams | undefined) => {
23
23
  update: (newConfig: Pick<P, Exclude<keyof P, "visible" | "close">>) => void;
24
24
  close: () => void;
25
25
  };
@@ -29,7 +29,7 @@ export declare function methodsGenerator<P extends NotifyBaseProps>(Comp: React.
29
29
  * @param {string | NotifyProps} config
30
30
  * @returns {{ update: (config: NotifyProps) => void; close: () => void }}
31
31
  */
32
- error: (originConfig: string | Pick<P, Exclude<keyof P, "visible" | "close">>) => {
32
+ error: (originConfig: string | Pick<P, Exclude<keyof P, "visible" | "close">>, context?: import("../context-provider").GlobalContextParams | undefined) => {
33
33
  update: (newConfig: Pick<P, Exclude<keyof P, "visible" | "close">>) => void;
34
34
  close: () => void;
35
35
  };
@@ -39,7 +39,7 @@ export declare function methodsGenerator<P extends NotifyBaseProps>(Comp: React.
39
39
  * @param {string | NotifyProps} config
40
40
  * @returns {{ update: (config: NotifyProps) => void; close: () => void }}
41
41
  */
42
- warn: (originConfig: string | Pick<P, Exclude<keyof P, "visible" | "close">>) => {
42
+ warn: (originConfig: string | Pick<P, Exclude<keyof P, "visible" | "close">>, context?: import("../context-provider").GlobalContextParams | undefined) => {
43
43
  update: (newConfig: Pick<P, Exclude<keyof P, "visible" | "close">>) => void;
44
44
  close: () => void;
45
45
  };
@@ -51,8 +51,8 @@ declare const _default: React.ForwardRefExoticComponent<NotifyProps & React.RefA
51
51
  * @param {string | NotifyProps} config
52
52
  * @returns {{ update: (config: NotifyProps) => void; close: () => void }}
53
53
  */
54
- info: (originConfig: string | Pick<NotifyProps & React.RefAttributes<NotifyRef>, "style" | "content" | "transitionDuration" | "ref" | "key" | "getContainer" | "type" | "className" | "duration" | "onClose">) => {
55
- update: (newConfig: Pick<NotifyProps & React.RefAttributes<NotifyRef>, "style" | "content" | "transitionDuration" | "ref" | "key" | "getContainer" | "type" | "className" | "duration" | "onClose">) => void;
54
+ info: (originConfig: string | Pick<import("../context-provider").WithGlobalContext<NotifyProps & React.RefAttributes<NotifyRef>>, "style" | "content" | "transitionDuration" | "ref" | "key" | "context" | "getContainer" | "type" | "className" | "duration" | "onClose">, context?: import("../context-provider").GlobalContextParams | undefined) => {
55
+ update: (newConfig: Pick<import("../context-provider").WithGlobalContext<NotifyProps & React.RefAttributes<NotifyRef>>, "style" | "content" | "transitionDuration" | "ref" | "key" | "context" | "getContainer" | "type" | "className" | "duration" | "onClose">) => void;
56
56
  close: () => void;
57
57
  };
58
58
  /**
@@ -61,8 +61,8 @@ declare const _default: React.ForwardRefExoticComponent<NotifyProps & React.RefA
61
61
  * @param {string | NotifyProps} config
62
62
  * @returns {{ update: (config: NotifyProps) => void; close: () => void }}
63
63
  */
64
- success: (originConfig: string | Pick<NotifyProps & React.RefAttributes<NotifyRef>, "style" | "content" | "transitionDuration" | "ref" | "key" | "getContainer" | "type" | "className" | "duration" | "onClose">) => {
65
- update: (newConfig: Pick<NotifyProps & React.RefAttributes<NotifyRef>, "style" | "content" | "transitionDuration" | "ref" | "key" | "getContainer" | "type" | "className" | "duration" | "onClose">) => void;
64
+ success: (originConfig: string | Pick<import("../context-provider").WithGlobalContext<NotifyProps & React.RefAttributes<NotifyRef>>, "style" | "content" | "transitionDuration" | "ref" | "key" | "context" | "getContainer" | "type" | "className" | "duration" | "onClose">, context?: import("../context-provider").GlobalContextParams | undefined) => {
65
+ update: (newConfig: Pick<import("../context-provider").WithGlobalContext<NotifyProps & React.RefAttributes<NotifyRef>>, "style" | "content" | "transitionDuration" | "ref" | "key" | "context" | "getContainer" | "type" | "className" | "duration" | "onClose">) => void;
66
66
  close: () => void;
67
67
  };
68
68
  /**
@@ -71,8 +71,8 @@ declare const _default: React.ForwardRefExoticComponent<NotifyProps & React.RefA
71
71
  * @param {string | NotifyProps} config
72
72
  * @returns {{ update: (config: NotifyProps) => void; close: () => void }}
73
73
  */
74
- error: (originConfig: string | Pick<NotifyProps & React.RefAttributes<NotifyRef>, "style" | "content" | "transitionDuration" | "ref" | "key" | "getContainer" | "type" | "className" | "duration" | "onClose">) => {
75
- update: (newConfig: Pick<NotifyProps & React.RefAttributes<NotifyRef>, "style" | "content" | "transitionDuration" | "ref" | "key" | "getContainer" | "type" | "className" | "duration" | "onClose">) => void;
74
+ error: (originConfig: string | Pick<import("../context-provider").WithGlobalContext<NotifyProps & React.RefAttributes<NotifyRef>>, "style" | "content" | "transitionDuration" | "ref" | "key" | "context" | "getContainer" | "type" | "className" | "duration" | "onClose">, context?: import("../context-provider").GlobalContextParams | undefined) => {
75
+ update: (newConfig: Pick<import("../context-provider").WithGlobalContext<NotifyProps & React.RefAttributes<NotifyRef>>, "style" | "content" | "transitionDuration" | "ref" | "key" | "context" | "getContainer" | "type" | "className" | "duration" | "onClose">) => void;
76
76
  close: () => void;
77
77
  };
78
78
  /**
@@ -81,8 +81,8 @@ declare const _default: React.ForwardRefExoticComponent<NotifyProps & React.RefA
81
81
  * @param {string | NotifyProps} config
82
82
  * @returns {{ update: (config: NotifyProps) => void; close: () => void }}
83
83
  */
84
- warn: (originConfig: string | Pick<NotifyProps & React.RefAttributes<NotifyRef>, "style" | "content" | "transitionDuration" | "ref" | "key" | "getContainer" | "type" | "className" | "duration" | "onClose">) => {
85
- update: (newConfig: Pick<NotifyProps & React.RefAttributes<NotifyRef>, "style" | "content" | "transitionDuration" | "ref" | "key" | "getContainer" | "type" | "className" | "duration" | "onClose">) => void;
84
+ warn: (originConfig: string | Pick<import("../context-provider").WithGlobalContext<NotifyProps & React.RefAttributes<NotifyRef>>, "style" | "content" | "transitionDuration" | "ref" | "key" | "context" | "getContainer" | "type" | "className" | "duration" | "onClose">, context?: import("../context-provider").GlobalContextParams | undefined) => {
85
+ update: (newConfig: Pick<import("../context-provider").WithGlobalContext<NotifyProps & React.RefAttributes<NotifyRef>>, "style" | "content" | "transitionDuration" | "ref" | "key" | "context" | "getContainer" | "type" | "className" | "duration" | "onClose">) => void;
86
86
  close: () => void;
87
87
  };
88
88
  };
@@ -175,6 +175,8 @@
175
175
  warn: (0, _methods.notify)(Comp, 'warn')
176
176
  };
177
177
  }
178
+
179
+ var NotifyWithGlobalContext = (0, _contextProvider.CompWithGlobalContext)(Notify);
178
180
  /**
179
181
  * 主动操作后显示的反馈信息横条,可采用方法调用或者组件调用的方式
180
182
  * @en The feedback information bar displayed after active operation can be called by method or by component.
@@ -184,8 +186,7 @@
184
186
  * @name_en Notify
185
187
  */
186
188
 
187
-
188
- var _default = (0, _mobileUtils.componentWrapper)(Notify, methodsGenerator(Notify));
189
+ var _default = (0, _mobileUtils.componentWrapper)(Notify, methodsGenerator(NotifyWithGlobalContext));
189
190
 
190
191
  _exports.default = _default;
191
192
  });
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { GlobalContextParams } from '../context-provider';
2
3
  export interface NotifyBaseProps {
3
4
  getContainer?: () => HTMLElement;
4
5
  onClose?: (scene?: string) => void;
@@ -7,7 +8,7 @@ export interface NotifyBaseProps {
7
8
  close?: (e: any) => void;
8
9
  type?: string;
9
10
  }
10
- export declare function notify<P extends NotifyBaseProps>(Component: React.FC<P>, type?: string): (originConfig: string | Pick<P, Exclude<keyof P, "visible" | "close">>) => {
11
+ export declare function notify<P extends NotifyBaseProps>(Component: React.FC<P>, type?: string): (originConfig: string | Pick<P, Exclude<keyof P, "visible" | "close">>, context?: GlobalContextParams | undefined) => {
11
12
  update: (newConfig: Pick<P, Exclude<keyof P, "visible" | "close">>) => void;
12
13
  close: () => void;
13
14
  };
@@ -20,7 +20,7 @@
20
20
  _extends2 = _interopRequireDefault(_extends2);
21
21
 
22
22
  function notify(Component, type) {
23
- return function (originConfig) {
23
+ return function (originConfig, context) {
24
24
  var config = typeof originConfig === 'string' ? {
25
25
  content: originConfig,
26
26
  type: 'info'
@@ -39,7 +39,7 @@
39
39
  document.body.appendChild(div);
40
40
  }
41
41
 
42
- var _ReactDOMRender = new _render.ReactDOMRender(Component, div),
42
+ var _ReactDOMRender = new _render.ReactDOMRender(Component, div, context),
43
43
  render = _ReactDOMRender.render,
44
44
  unmount = _ReactDOMRender.unmount;
45
45
 
@@ -368,12 +368,14 @@
368
368
  ref: wrapRef,
369
369
  onTouchStart: _handleItemTouchStart,
370
370
  onTouchEnd: _handleColumnTouchEnd,
371
- onTouchCancel: _handleColumnTouchEnd
371
+ onTouchCancel: _handleColumnTouchEnd,
372
+ "aria-disabled": disabled
372
373
  }, data.map(function (item, index) {
373
374
  var _cls;
374
375
 
375
376
  var dis = Math.abs(index - currentIndex);
376
377
  return /*#__PURE__*/_react.default.createElement("div", {
378
+ "aria-label": index === currentIndex ? "" + item.value : '',
377
379
  key: index + "_" + item.value,
378
380
  className: (0, _mobileUtils.cls)(prefixCls + "-column-item", (_cls = {
379
381
  selected: index === currentIndex
@@ -52,7 +52,7 @@ export declare function methodsGenerator<P extends OpenBaseProps>(Comp: React.Fu
52
52
  */
53
53
  open: (config: Pick<P, Exclude<keyof P, "visible" | "close">> & {
54
54
  key?: string | undefined;
55
- }) => {
55
+ }, context?: import("../context-provider").GlobalContextParams | undefined) => {
56
56
  close: () => void;
57
57
  update: (newConfig: Pick<P, Exclude<keyof P, "visible" | "close">> & {
58
58
  key?: string | undefined;
@@ -66,11 +66,11 @@ declare const _default: React.ForwardRefExoticComponent<PopupProps & React.RefAt
66
66
  * @param {PopupProps} config Configuration
67
67
  * @returns {{ close: () => void; update: (newConfig: PopupProps) => void; }}
68
68
  */
69
- open: (config: Pick<PopupProps & React.RefAttributes<PopupRef>, "direction" | "ref" | "children" | "key" | "getContainer" | "mountOnEnter" | "unmountOnExit" | "className" | "onClose" | "maskClass" | "maskStyle" | "contentClass" | "contentStyle" | "maskTransitionType" | "contentTransitionType" | "maskTransitionTimeout" | "contentTransitionTimeout" | "maskClosable" | "animatingClosable" | "orientationDirection" | "preventBodyScroll" | "initialBodyOverflow" | "gestureOutOfControl" | "onOpen" | "onMaskClick" | "onTouchMove" | "onPreventTouchMove" | "getScrollContainer" | "needBottomOffset" | "translateZ"> & {
69
+ open: (config: Pick<import("../context-provider").WithGlobalContext<PopupProps & React.RefAttributes<PopupRef>>, "direction" | "ref" | "children" | "key" | "context" | "getContainer" | "mountOnEnter" | "unmountOnExit" | "className" | "onClose" | "maskClass" | "maskStyle" | "contentClass" | "contentStyle" | "maskTransitionType" | "contentTransitionType" | "maskTransitionTimeout" | "contentTransitionTimeout" | "maskClosable" | "animatingClosable" | "orientationDirection" | "preventBodyScroll" | "initialBodyOverflow" | "gestureOutOfControl" | "onOpen" | "onMaskClick" | "onTouchMove" | "onPreventTouchMove" | "getScrollContainer" | "needBottomOffset" | "translateZ"> & {
70
70
  key?: string | undefined;
71
- }) => {
71
+ }, context?: import("../context-provider").GlobalContextParams | undefined) => {
72
72
  close: () => void;
73
- update: (newConfig: Pick<PopupProps & React.RefAttributes<PopupRef>, "direction" | "ref" | "children" | "key" | "getContainer" | "mountOnEnter" | "unmountOnExit" | "className" | "onClose" | "maskClass" | "maskStyle" | "contentClass" | "contentStyle" | "maskTransitionType" | "contentTransitionType" | "maskTransitionTimeout" | "contentTransitionTimeout" | "maskClosable" | "animatingClosable" | "orientationDirection" | "preventBodyScroll" | "initialBodyOverflow" | "gestureOutOfControl" | "onOpen" | "onMaskClick" | "onTouchMove" | "onPreventTouchMove" | "getScrollContainer" | "needBottomOffset" | "translateZ"> & {
73
+ update: (newConfig: Pick<import("../context-provider").WithGlobalContext<PopupProps & React.RefAttributes<PopupRef>>, "direction" | "ref" | "children" | "key" | "context" | "getContainer" | "mountOnEnter" | "unmountOnExit" | "className" | "onClose" | "maskClass" | "maskStyle" | "contentClass" | "contentStyle" | "maskTransitionType" | "contentTransitionType" | "maskTransitionTimeout" | "contentTransitionTimeout" | "maskClosable" | "animatingClosable" | "orientationDirection" | "preventBodyScroll" | "initialBodyOverflow" | "gestureOutOfControl" | "onOpen" | "onMaskClick" | "onTouchMove" | "onPreventTouchMove" | "getScrollContainer" | "needBottomOffset" | "translateZ"> & {
74
74
  key?: string | undefined;
75
75
  }) => void;
76
76
  };
@@ -99,6 +99,8 @@
99
99
  open: (0, _methods.open)(Comp)
100
100
  };
101
101
  }
102
+
103
+ var PopupWithGlobalContext = (0, _contextProvider.CompWithGlobalContext)(Popup);
102
104
  /**
103
105
  * 基于模态弹窗的的全屏菜单,支持各个方向。默认做了防滚动穿透处理,如果弹层内容中需要滚动,则需将滚动容器传入`getScrollContainer`属性以在未滚动到顶部或底部时释放滚动。
104
106
  * @en A full-screen menu based on a modal popup, supporting all directions. By default, anti-scroll penetration processing is performed. If scrolling is required in the content of the popup layer, you need to pass the scroll container to the `getScrollContainer` property to release scrolling when it is not scrolled to the top or bottom.
@@ -108,8 +110,7 @@
108
110
  * @name_en Popup
109
111
  */
110
112
 
111
-
112
- var _default = (0, _mobileUtils.componentWrapper)(Popup, methodsGenerator(Popup));
113
+ var _default = (0, _mobileUtils.componentWrapper)(Popup, methodsGenerator(PopupWithGlobalContext));
113
114
 
114
115
  _exports.default = _default;
115
116
  });
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { OpenBaseProps } from '../masking/methods';
3
3
  export declare function open<P extends OpenBaseProps>(Component: React.FunctionComponent<P>): (config: Pick<P, Exclude<keyof P, "visible" | "close">> & {
4
4
  key?: string | undefined;
5
- }) => {
5
+ }, context?: import("../context-provider").GlobalContextParams | undefined) => {
6
6
  close: () => void;
7
7
  update: (newConfig: Pick<P, Exclude<keyof P, "visible" | "close">> & {
8
8
  key?: string | undefined;
@@ -59,11 +59,14 @@ export declare function methodsGenerator<P extends OpenBaseProps>(Comp: React.Fu
59
59
  */
60
60
  open: (config: Pick<P, Exclude<keyof P, "visible" | "close">> & {
61
61
  key?: string | undefined;
62
- }) => {
62
+ }, context?: import("../context-provider").GlobalContextParams | undefined) => {
63
63
  close: () => void;
64
64
  update: (newConfig: Pick<P, Exclude<keyof P, "visible" | "close">> & {
65
65
  key?: string | undefined;
66
- }) => void;
66
+ }) => void; /**
67
+ * 内容面板 touchstart 事件,返回true时表示阻止本组件内部处理事件
68
+ * @en The touchstart callback of content panel. When it returns true, it means that the event is prevented from being processed inside the component
69
+ */
67
70
  };
68
71
  };
69
72
  declare const _default: React.ForwardRefExoticComponent<PopupSwiperProps & React.RefAttributes<PopupSwiperRef>> & {
@@ -73,13 +76,16 @@ declare const _default: React.ForwardRefExoticComponent<PopupSwiperProps & React
73
76
  * @param {string | PopupSwiperProps} config Configuration
74
77
  * @returns {{ close: () => void; update: (newConfig: PopupSwiperProps) => void; }}
75
78
  */
76
- open: (config: Pick<PopupSwiperProps & React.RefAttributes<PopupSwiperRef>, "direction" | "ref" | "children" | "key" | "getContainer" | "mountOnEnter" | "unmountOnExit" | "className" | "onClose" | "maskClass" | "maskStyle" | "contentClass" | "contentStyle" | "maskTransitionType" | "contentTransitionType" | "maskTransitionTimeout" | "contentTransitionTimeout" | "maskClosable" | "animatingClosable" | "orientationDirection" | "preventBodyScroll" | "initialBodyOverflow" | "gestureOutOfControl" | "onOpen" | "onMaskClick" | "onTouchMove" | "onPreventTouchMove" | "getScrollContainer" | "needBottomOffset" | "translateZ" | "onTouchEnd" | "onTouchStart" | "percentToClose" | "distanceToClose" | "speedToClose" | "allowSwipeDirections" | "exitDirection"> & {
79
+ open: (config: Pick<import("../context-provider").WithGlobalContext<PopupSwiperProps & React.RefAttributes<PopupSwiperRef>>, "direction" | "ref" | "children" | "key" | "context" | "getContainer" | "mountOnEnter" | "unmountOnExit" | "className" | "onClose" | "maskClass" | "maskStyle" | "contentClass" | "contentStyle" | "maskTransitionType" | "contentTransitionType" | "maskTransitionTimeout" | "contentTransitionTimeout" | "maskClosable" | "animatingClosable" | "orientationDirection" | "preventBodyScroll" | "initialBodyOverflow" | "gestureOutOfControl" | "onOpen" | "onMaskClick" | "onTouchMove" | "onPreventTouchMove" | "getScrollContainer" | "needBottomOffset" | "translateZ" | "onTouchEnd" | "onTouchStart" | "percentToClose" | "distanceToClose" | "speedToClose" | "allowSwipeDirections" | "exitDirection"> & {
77
80
  key?: string | undefined;
78
- }) => {
81
+ }, context?: import("../context-provider").GlobalContextParams | undefined) => {
79
82
  close: () => void;
80
- update: (newConfig: Pick<PopupSwiperProps & React.RefAttributes<PopupSwiperRef>, "direction" | "ref" | "children" | "key" | "getContainer" | "mountOnEnter" | "unmountOnExit" | "className" | "onClose" | "maskClass" | "maskStyle" | "contentClass" | "contentStyle" | "maskTransitionType" | "contentTransitionType" | "maskTransitionTimeout" | "contentTransitionTimeout" | "maskClosable" | "animatingClosable" | "orientationDirection" | "preventBodyScroll" | "initialBodyOverflow" | "gestureOutOfControl" | "onOpen" | "onMaskClick" | "onTouchMove" | "onPreventTouchMove" | "getScrollContainer" | "needBottomOffset" | "translateZ" | "onTouchEnd" | "onTouchStart" | "percentToClose" | "distanceToClose" | "speedToClose" | "allowSwipeDirections" | "exitDirection"> & {
83
+ update: (newConfig: Pick<import("../context-provider").WithGlobalContext<PopupSwiperProps & React.RefAttributes<PopupSwiperRef>>, "direction" | "ref" | "children" | "key" | "context" | "getContainer" | "mountOnEnter" | "unmountOnExit" | "className" | "onClose" | "maskClass" | "maskStyle" | "contentClass" | "contentStyle" | "maskTransitionType" | "contentTransitionType" | "maskTransitionTimeout" | "contentTransitionTimeout" | "maskClosable" | "animatingClosable" | "orientationDirection" | "preventBodyScroll" | "initialBodyOverflow" | "gestureOutOfControl" | "onOpen" | "onMaskClick" | "onTouchMove" | "onPreventTouchMove" | "getScrollContainer" | "needBottomOffset" | "translateZ" | "onTouchEnd" | "onTouchStart" | "percentToClose" | "distanceToClose" | "speedToClose" | "allowSwipeDirections" | "exitDirection"> & {
81
84
  key?: string | undefined;
82
- }) => void;
85
+ }) => void; /**
86
+ * 内容面板 touchstart 事件,返回true时表示阻止本组件内部处理事件
87
+ * @en The touchstart callback of content panel. When it returns true, it means that the event is prevented from being processed inside the component
88
+ */
83
89
  };
84
90
  };
85
91
  /**
@@ -280,6 +280,8 @@
280
280
  open: (0, _methods.open)(Comp)
281
281
  };
282
282
  }
283
+
284
+ var PopupSwiperWithGlobalContext = (0, _contextProvider.CompWithGlobalContext)(PopupSwiper);
283
285
  /**
284
286
  * 基于弹出层(Popup)封装的具有手势关闭功能的弹出层组件,拥有 Popup 组件的其他能力。
285
287
  * @en The popup with gesture closing function based on the popup encapsulation, has other capabilities of the Popup component.
@@ -289,8 +291,7 @@
289
291
  * @name_en PopupSwiper
290
292
  */
291
293
 
292
-
293
- var _default = (0, _mobileUtils.componentWrapper)(PopupSwiper, methodsGenerator(PopupSwiper));
294
+ var _default = (0, _mobileUtils.componentWrapper)(PopupSwiper, methodsGenerator(PopupSwiperWithGlobalContext));
294
295
 
295
296
  _exports.default = _default;
296
297
  });
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { OpenBaseProps } from '../masking/methods';
3
3
  export declare function open<P extends OpenBaseProps>(Component: React.FunctionComponent<P>): (config: Pick<P, Exclude<keyof P, "visible" | "close">> & {
4
4
  key?: string | undefined;
5
- }) => {
5
+ }, context?: import("../context-provider").GlobalContextParams | undefined) => {
6
6
  close: () => void;
7
7
  update: (newConfig: Pick<P, Exclude<keyof P, "visible" | "close">> & {
8
8
  key?: string | undefined;
@@ -106,6 +106,10 @@
106
106
  function renderBarProgress(_ref) {
107
107
  var prefixCls = _ref.prefixCls;
108
108
  return /*#__PURE__*/_react.default.createElement("div", {
109
+ role: "progressbar",
110
+ "aria-valuenow": percentage,
111
+ "aria-valuemax": 100,
112
+ "aria-valuemin": 0,
109
113
  className: (0, _mobileUtils.cls)(prefixCls + "-progress", {
110
114
  'progress-fixed': mode === 'nav'
111
115
  }, {
package/umd/rate/index.js CHANGED
@@ -164,6 +164,11 @@
164
164
  return /*#__PURE__*/_react.default.createElement(_contextProvider.ContextLayout, null, function (_ref2) {
165
165
  var prefixCls = _ref2.prefixCls;
166
166
  return /*#__PURE__*/_react.default.createElement("div", {
167
+ role: "slider",
168
+ "aria-valuemin": 0,
169
+ "aria-valuemax": count,
170
+ "aria-valuenow": innerValue,
171
+ "aria-disabled": disabled,
167
172
  className: (0, _mobileUtils.cls)(prefixCls + "-rate", className, {
168
173
  disabled: disabled
169
174
  }),
@@ -147,7 +147,12 @@
147
147
  'show-marks': showMarks
148
148
  }),
149
149
  style: style,
150
- ref: domRef
150
+ ref: domRef,
151
+ role: "slider",
152
+ "aria-valuemin": min,
153
+ "aria-valuemax": max,
154
+ "aria-valuenow": Array.isArray(valueGroup) ? valueGroup[0] : valueGroup,
155
+ "aria-disabled": disabled
151
156
  }, isHorizontal ? renderPrefixLabel : renderSuffixLabel, /*#__PURE__*/_react.default.createElement("div", {
152
157
  className: prefixCls + "-slider-wrapper"
153
158
  }, /*#__PURE__*/_react.default.createElement(_marks.default, {
@@ -0,0 +1,4 @@
1
+ #demo-stepper .arcodesign-mobile-demo-content {
2
+ padding: 0;
3
+ background: transparent;
4
+ }
@@ -0,0 +1,10 @@
1
+ @import "../../../../style/mixin.less";
2
+
3
+ #demo-stepper {
4
+
5
+ .arcodesign-mobile-demo-content {
6
+ padding: 0;
7
+ background: transparent;
8
+ }
9
+
10
+ }
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { StepperProps } from '../type';
3
+ export default function useButtonClick(params: Required<Pick<StepperProps, 'min' | 'max' | 'step' | 'disabled' | 'digits' | 'digits' | 'equalLimitDisabled'>> & Pick<StepperProps, 'onAddButtonClick' | 'onMinusButtonClick'> & {
4
+ actualInputValue: number;
5
+ updateValue: (updater: number | ((oldValue: number) => number)) => void;
6
+ }): {
7
+ minusButtonDisable: boolean;
8
+ addButtonDisable: boolean;
9
+ handleMinusButtonClick: (e: React.MouseEvent) => void;
10
+ handleAddButtonClick: (e: React.MouseEvent) => void;
11
+ };
@@ -0,0 +1,86 @@
1
+ (function (global, factory) {
2
+ if (typeof define === "function" && define.amd) {
3
+ define(["exports", "react"], factory);
4
+ } else if (typeof exports !== "undefined") {
5
+ factory(exports, require("react"));
6
+ } else {
7
+ var mod = {
8
+ exports: {}
9
+ };
10
+ factory(mod.exports, global.react);
11
+ global.useButtonClick = mod.exports;
12
+ }
13
+ })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react) {
14
+ "use strict";
15
+
16
+ _exports.__esModule = true;
17
+ _exports.default = useButtonClick;
18
+
19
+ function correctCalculation(leftNumber, rightNumber, operator) {
20
+ var magnification = 1e17;
21
+ var left = leftNumber * magnification;
22
+ var right = rightNumber * magnification;
23
+ return operator === '-' ? (left - right) / magnification : (left + right) / magnification;
24
+ }
25
+
26
+ function useButtonClick(params) {
27
+ var actualInputValue = params.actualInputValue,
28
+ min = params.min,
29
+ max = params.max,
30
+ step = params.step,
31
+ disabled = params.disabled,
32
+ equalLimitDisabled = params.equalLimitDisabled,
33
+ updateValue = params.updateValue,
34
+ onAddButtonClick = params.onAddButtonClick,
35
+ onMinusButtonClick = params.onMinusButtonClick;
36
+
37
+ var _useState = (0, _react.useState)(function () {
38
+ return actualInputValue === min || disabled;
39
+ }),
40
+ minusButtonDisable = _useState[0],
41
+ setMinusButtonDisable = _useState[1];
42
+
43
+ var _useState2 = (0, _react.useState)(function () {
44
+ return actualInputValue === max || disabled;
45
+ }),
46
+ addButtonDisable = _useState2[0],
47
+ setAddButtonDisable = _useState2[1];
48
+
49
+ var handleMinusButtonClick = function handleMinusButtonClick(e) {
50
+ if (minusButtonDisable) {
51
+ return;
52
+ }
53
+
54
+ updateValue(function (oldValue) {
55
+ var result = correctCalculation(oldValue, step, '-');
56
+ return result < min ? equalLimitDisabled ? oldValue : min : result;
57
+ });
58
+ onMinusButtonClick && onMinusButtonClick(e);
59
+ };
60
+
61
+ var handleAddButtonClick = function handleAddButtonClick(e) {
62
+ if (addButtonDisable) {
63
+ return;
64
+ }
65
+
66
+ updateValue(function (oldValue) {
67
+ var result = correctCalculation(Number(oldValue), step, '+');
68
+ return result > max ? equalLimitDisabled ? oldValue : max : result;
69
+ });
70
+ onAddButtonClick && onAddButtonClick(e);
71
+ }; // 当前值改变时,更新按钮状态
72
+ // Changes button status when value changed
73
+
74
+
75
+ (0, _react.useEffect)(function () {
76
+ setMinusButtonDisable(actualInputValue <= min);
77
+ setAddButtonDisable(actualInputValue >= max);
78
+ }, [actualInputValue]);
79
+ return {
80
+ minusButtonDisable: minusButtonDisable,
81
+ addButtonDisable: addButtonDisable,
82
+ handleMinusButtonClick: handleMinusButtonClick,
83
+ handleAddButtonClick: handleAddButtonClick
84
+ };
85
+ }
86
+ });
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { StepperProps } from '../type';
3
+ export default function useInputEvent(params: Required<Pick<StepperProps, 'defaultValue' | 'min' | 'max' | 'digits' | 'allowEmpty'>> & Pick<StepperProps, 'onBlur' | 'onChange' | 'onInput'> & {
4
+ actualInputValue: number;
5
+ updateValue: (updater: number | ((oldValue: number) => number)) => void;
6
+ }): {
7
+ handleInput: (e: React.FocusEvent<HTMLInputElement>) => void;
8
+ handleBlur: (e: React.FocusEvent<HTMLInputElement>) => void;
9
+ };
@@ -0,0 +1,71 @@
1
+ (function (global, factory) {
2
+ if (typeof define === "function" && define.amd) {
3
+ define(["exports", "../../_helpers"], factory);
4
+ } else if (typeof exports !== "undefined") {
5
+ factory(exports, require("../../_helpers"));
6
+ } else {
7
+ var mod = {
8
+ exports: {}
9
+ };
10
+ factory(mod.exports, global._helpers);
11
+ global.useInputEvent = mod.exports;
12
+ }
13
+ })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _helpers) {
14
+ "use strict";
15
+
16
+ _exports.__esModule = true;
17
+ _exports.default = useInputEvent;
18
+
19
+ function useInputEvent(params) {
20
+ var defaultValue = params.defaultValue,
21
+ min = params.min,
22
+ max = params.max,
23
+ digits = params.digits,
24
+ actualInputValue = params.actualInputValue,
25
+ allowEmpty = params.allowEmpty,
26
+ updateValue = params.updateValue,
27
+ onBlur = params.onBlur,
28
+ onChange = params.onChange,
29
+ onInput = params.onInput;
30
+
31
+ var handleInput = function handleInput(e) {
32
+ var targetValue = e.target.value;
33
+ var numberValue = Number(targetValue);
34
+ var pointIndex = targetValue.indexOf('.');
35
+
36
+ if (digits > 0 && pointIndex !== -1) {
37
+ var decimalLength = targetValue.slice(pointIndex + 1).length;
38
+ updateValue(decimalLength > digits ? actualInputValue : numberValue);
39
+ } else if (allowEmpty && targetValue === '') {
40
+ updateValue(Number.MIN_VALUE);
41
+ } else {
42
+ updateValue(numberValue);
43
+ }
44
+
45
+ onInput && onInput(e);
46
+ };
47
+
48
+ var handleBlur = function handleBlur(e) {
49
+ var targetValue = e.target.value;
50
+ var numberValue = Number(targetValue);
51
+
52
+ if (allowEmpty && targetValue === '') {
53
+ updateValue(Number.MIN_VALUE);
54
+ } else if (!allowEmpty && targetValue === '') {
55
+ updateValue(defaultValue);
56
+ } else {
57
+ updateValue(Math.max(min, Math.min(max, numberValue)));
58
+ }
59
+
60
+ onBlur && onBlur(e);
61
+ };
62
+
63
+ (0, _helpers.useUpdateEffect)(function () {
64
+ onChange && onChange(actualInputValue);
65
+ }, [actualInputValue]);
66
+ return {
67
+ handleInput: handleInput,
68
+ handleBlur: handleBlur
69
+ };
70
+ }
71
+ });
@@ -0,0 +1,6 @@
1
+ import { StepperProps } from '..';
2
+ export default function useValue(params: Required<Pick<StepperProps, 'defaultValue' | 'min' | 'max' | 'digits'>> & Pick<StepperProps, 'formatter' | 'value'>): {
3
+ updateValue: (updater: number | ((oldValue: number) => number)) => void;
4
+ actualInputValue: number;
5
+ showValue: string | number;
6
+ };