taro-ui 3.3.3 → 3.4.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 (312) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +85 -0
  3. package/dist/common/utils.d.ts +2 -1
  4. package/dist/common/utils.js +3 -0
  5. package/dist/common/utils.js.map +1 -1
  6. package/dist/components/accordion/index.d.ts +16 -13
  7. package/dist/components/accordion/index.js +77 -97
  8. package/dist/components/accordion/index.js.map +1 -1
  9. package/dist/components/action-sheet/body/index.d.ts +2 -4
  10. package/dist/components/action-sheet/body/index.js +8 -6
  11. package/dist/components/action-sheet/body/index.js.map +1 -1
  12. package/dist/components/action-sheet/body/item/index.d.ts +7 -7
  13. package/dist/components/action-sheet/body/item/index.js +14 -14
  14. package/dist/components/action-sheet/body/item/index.js.map +1 -1
  15. package/dist/components/action-sheet/footer/index.d.ts +7 -7
  16. package/dist/components/action-sheet/footer/index.js +14 -17
  17. package/dist/components/action-sheet/footer/index.js.map +1 -1
  18. package/dist/components/action-sheet/header/index.d.ts +2 -4
  19. package/dist/components/action-sheet/header/index.js +8 -9
  20. package/dist/components/action-sheet/header/index.js.map +1 -1
  21. package/dist/components/action-sheet/index.d.ts +12 -13
  22. package/dist/components/action-sheet/index.js +53 -57
  23. package/dist/components/action-sheet/index.js.map +1 -1
  24. package/dist/components/activity-indicator/index.d.ts +12 -6
  25. package/dist/components/activity-indicator/index.js +19 -22
  26. package/dist/components/activity-indicator/index.js.map +1 -1
  27. package/dist/components/avatar/index.d.ts +14 -8
  28. package/dist/components/avatar/index.js +36 -43
  29. package/dist/components/avatar/index.js.map +1 -1
  30. package/dist/components/badge/index.d.ts +11 -8
  31. package/dist/components/badge/index.js +18 -34
  32. package/dist/components/badge/index.js.map +1 -1
  33. package/dist/components/button/index.d.ts +29 -14
  34. package/dist/components/button/index.js +97 -112
  35. package/dist/components/button/index.js.map +1 -1
  36. package/dist/components/calendar/body/index.d.ts +3 -26
  37. package/dist/components/calendar/body/index.js +215 -235
  38. package/dist/components/calendar/body/index.js.map +1 -1
  39. package/dist/components/calendar/controller/index.d.ts +3 -5
  40. package/dist/components/calendar/controller/index.js +47 -43
  41. package/dist/components/calendar/controller/index.js.map +1 -1
  42. package/dist/components/calendar/index.d.ts +3 -20
  43. package/dist/components/calendar/index.js +219 -201
  44. package/dist/components/calendar/index.js.map +1 -1
  45. package/dist/components/calendar/ui/date-list/index.d.ts +2 -6
  46. package/dist/components/calendar/ui/date-list/index.js +36 -41
  47. package/dist/components/calendar/ui/date-list/index.js.map +1 -1
  48. package/dist/components/calendar/ui/day-list/index.d.ts +2 -4
  49. package/dist/components/calendar/ui/day-list/index.js +6 -5
  50. package/dist/components/calendar/ui/day-list/index.js.map +1 -1
  51. package/dist/components/card/index.d.ts +15 -7
  52. package/dist/components/card/index.js +42 -43
  53. package/dist/components/card/index.js.map +1 -1
  54. package/dist/components/checkbox/index.d.ts +11 -7
  55. package/dist/components/checkbox/index.js +30 -35
  56. package/dist/components/checkbox/index.js.map +1 -1
  57. package/dist/components/config-provider/context.d.ts +6 -0
  58. package/dist/components/config-provider/context.js +13 -0
  59. package/dist/components/config-provider/context.js.map +1 -0
  60. package/dist/components/config-provider/index.d.ts +7 -0
  61. package/dist/components/config-provider/index.js +15 -0
  62. package/dist/components/config-provider/index.js.map +1 -0
  63. package/dist/components/countdown/index.d.ts +19 -19
  64. package/dist/components/countdown/index.js +183 -118
  65. package/dist/components/countdown/index.js.map +1 -1
  66. package/dist/components/countdown/item/index.d.ts +8 -7
  67. package/dist/components/countdown/item/index.js +10 -13
  68. package/dist/components/countdown/item/index.js.map +1 -1
  69. package/dist/components/curtain/index.d.ts +11 -8
  70. package/dist/components/curtain/index.js +36 -45
  71. package/dist/components/curtain/index.js.map +1 -1
  72. package/dist/components/divider/index.d.ts +13 -6
  73. package/dist/components/divider/index.js +29 -38
  74. package/dist/components/divider/index.js.map +1 -1
  75. package/dist/components/drawer/index.d.ts +13 -15
  76. package/dist/components/drawer/index.js +100 -93
  77. package/dist/components/drawer/index.js.map +1 -1
  78. package/dist/components/fab/index.d.ts +8 -7
  79. package/dist/components/fab/index.js +16 -16
  80. package/dist/components/fab/index.js.map +1 -1
  81. package/dist/components/flex/index.d.ts +11 -5
  82. package/dist/components/flex/index.js +17 -18
  83. package/dist/components/flex/index.js.map +1 -1
  84. package/dist/components/flex/item/index.d.ts +11 -5
  85. package/dist/components/flex/item/index.js +17 -18
  86. package/dist/components/flex/item/index.js.map +1 -1
  87. package/dist/components/float-layout/index.d.ts +20 -12
  88. package/dist/components/float-layout/index.js +56 -72
  89. package/dist/components/float-layout/index.js.map +1 -1
  90. package/dist/components/form/index.d.ts +11 -8
  91. package/dist/components/form/index.js +28 -28
  92. package/dist/components/form/index.js.map +1 -1
  93. package/dist/components/grid/index.d.ts +22 -7
  94. package/dist/components/grid/index.js +61 -66
  95. package/dist/components/grid/index.js.map +1 -1
  96. package/dist/components/icon/index.d.ts +13 -7
  97. package/dist/components/icon/index.js +24 -34
  98. package/dist/components/icon/index.js.map +1 -1
  99. package/dist/components/image-picker/index.d.ts +19 -9
  100. package/dist/components/image-picker/index.js +83 -102
  101. package/dist/components/image-picker/index.js.map +1 -1
  102. package/dist/components/indexes/index.d.ts +16 -28
  103. package/dist/components/indexes/index.js +198 -209
  104. package/dist/components/indexes/index.js.map +1 -1
  105. package/dist/components/input/index.d.ts +37 -15
  106. package/dist/components/input/index.js +152 -161
  107. package/dist/components/input/index.js.map +1 -1
  108. package/dist/components/input-number/index.d.ts +20 -11
  109. package/dist/components/input-number/index.js +107 -126
  110. package/dist/components/input-number/index.js.map +1 -1
  111. package/dist/components/list/index.d.ts +7 -6
  112. package/dist/components/list/index.js +15 -15
  113. package/dist/components/list/index.js.map +1 -1
  114. package/dist/components/list/item/index.d.ts +27 -9
  115. package/dist/components/list/item/index.js +89 -117
  116. package/dist/components/list/item/index.js.map +1 -1
  117. package/dist/components/load-more/index.d.ts +15 -7
  118. package/dist/components/load-more/index.js +29 -50
  119. package/dist/components/load-more/index.js.map +1 -1
  120. package/dist/components/loading/index.d.ts +8 -7
  121. package/dist/components/loading/index.js +14 -20
  122. package/dist/components/loading/index.js.map +1 -1
  123. package/dist/components/message/index.d.ts +9 -14
  124. package/dist/components/message/index.js +45 -59
  125. package/dist/components/message/index.js.map +1 -1
  126. package/dist/components/modal/action/index.d.ts +7 -6
  127. package/dist/components/modal/action/index.js +15 -15
  128. package/dist/components/modal/action/index.js.map +1 -1
  129. package/dist/components/modal/content/index.d.ts +2 -4
  130. package/dist/components/modal/content/index.js +8 -6
  131. package/dist/components/modal/content/index.js.map +1 -1
  132. package/dist/components/modal/header/index.d.ts +2 -4
  133. package/dist/components/modal/header/index.js +8 -6
  134. package/dist/components/modal/header/index.js.map +1 -1
  135. package/dist/components/modal/index.d.ts +16 -14
  136. package/dist/components/modal/index.js +63 -77
  137. package/dist/components/modal/index.js.map +1 -1
  138. package/dist/components/nav-bar/index.d.ts +20 -10
  139. package/dist/components/nav-bar/index.js +146 -162
  140. package/dist/components/nav-bar/index.js.map +1 -1
  141. package/dist/components/noticebar/index.d.ts +17 -15
  142. package/dist/components/noticebar/index.js +115 -128
  143. package/dist/components/noticebar/index.js.map +1 -1
  144. package/dist/components/pagination/index.d.ts +13 -11
  145. package/dist/components/pagination/index.js +64 -120
  146. package/dist/components/pagination/index.js.map +1 -1
  147. package/dist/components/progress/index.d.ts +11 -5
  148. package/dist/components/progress/index.js +39 -36
  149. package/dist/components/progress/index.js.map +1 -1
  150. package/dist/components/radio/index.d.ts +11 -7
  151. package/dist/components/radio/index.js +29 -33
  152. package/dist/components/radio/index.js.map +1 -1
  153. package/dist/components/range/index.d.ts +19 -21
  154. package/dist/components/range/index.js +146 -153
  155. package/dist/components/range/index.js.map +1 -1
  156. package/dist/components/rate/index.d.ts +13 -7
  157. package/dist/components/rate/index.js +47 -62
  158. package/dist/components/rate/index.js.map +1 -1
  159. package/dist/components/search-bar/index.d.ts +23 -15
  160. package/dist/components/search-bar/index.js +120 -146
  161. package/dist/components/search-bar/index.js.map +1 -1
  162. package/dist/components/segmented-control/index.d.ts +14 -7
  163. package/dist/components/segmented-control/index.js +52 -66
  164. package/dist/components/segmented-control/index.js.map +1 -1
  165. package/dist/components/slider/index.d.ts +21 -12
  166. package/dist/components/slider/index.js +66 -90
  167. package/dist/components/slider/index.js.map +1 -1
  168. package/dist/components/steps/index.d.ts +11 -7
  169. package/dist/components/steps/index.js +43 -48
  170. package/dist/components/steps/index.js.map +1 -1
  171. package/dist/components/swipe-action/index.d.ts +12 -25
  172. package/dist/components/swipe-action/index.js +118 -115
  173. package/dist/components/swipe-action/index.js.map +1 -1
  174. package/dist/components/swipe-action/options/index.d.ts +2 -4
  175. package/dist/components/swipe-action/options/index.js +18 -17
  176. package/dist/components/swipe-action/options/index.js.map +1 -1
  177. package/dist/components/switch/index.d.ts +14 -7
  178. package/dist/components/switch/index.js +36 -41
  179. package/dist/components/switch/index.js.map +1 -1
  180. package/dist/components/tab-bar/index.d.ts +17 -7
  181. package/dist/components/tab-bar/index.js +108 -135
  182. package/dist/components/tab-bar/index.js.map +1 -1
  183. package/dist/components/tabs/index.d.ts +17 -23
  184. package/dist/components/tabs/index.js +185 -174
  185. package/dist/components/tabs/index.js.map +1 -1
  186. package/dist/components/tabs-pane/index.d.ts +11 -6
  187. package/dist/components/tabs-pane/index.js +26 -28
  188. package/dist/components/tabs-pane/index.js.map +1 -1
  189. package/dist/components/tag/index.d.ts +14 -7
  190. package/dist/components/tag/index.js +31 -40
  191. package/dist/components/tag/index.js.map +1 -1
  192. package/dist/components/textarea/index.d.ts +29 -11
  193. package/dist/components/textarea/index.js +72 -92
  194. package/dist/components/textarea/index.js.map +1 -1
  195. package/dist/components/timeline/index.d.ts +9 -6
  196. package/dist/components/timeline/index.js +50 -56
  197. package/dist/components/timeline/index.js.map +1 -1
  198. package/dist/components/toast/img.json +3 -6
  199. package/dist/components/toast/index.d.ts +16 -15
  200. package/dist/components/toast/index.js +85 -94
  201. package/dist/components/toast/index.js.map +1 -1
  202. package/dist/hooks/useComponentLocale.d.ts +2 -0
  203. package/dist/hooks/useComponentLocale.js +12 -0
  204. package/dist/hooks/useComponentLocale.js.map +1 -0
  205. package/dist/index.d.ts +3 -0
  206. package/dist/index.esm.js +4006 -4404
  207. package/dist/index.esm.js.map +1 -1
  208. package/dist/index.js +4032 -4434
  209. package/dist/index.js.map +1 -1
  210. package/dist/locale/en_US.d.ts +3 -0
  211. package/dist/locale/en_US.js +34 -0
  212. package/dist/locale/en_US.js.map +1 -0
  213. package/dist/locale/index.d.ts +4 -0
  214. package/dist/locale/index.js +10 -0
  215. package/dist/locale/index.js.map +1 -0
  216. package/dist/locale/types.d.ts +34 -0
  217. package/dist/locale/types.js +1 -0
  218. package/dist/locale/types.js.map +1 -0
  219. package/dist/locale/zh_CN.d.ts +3 -0
  220. package/dist/locale/zh_CN.js +34 -0
  221. package/dist/locale/zh_CN.js.map +1 -0
  222. package/dist/style/components/avatar.scss +1 -1
  223. package/dist/style/components/badge.scss +7 -2
  224. package/dist/style/components/calendar.scss +1 -1
  225. package/dist/style/components/countdown.scss +2 -1
  226. package/dist/style/components/flex.scss +1 -1
  227. package/dist/style/components/grid.scss +2 -2
  228. package/dist/style/components/icon.scss +302 -101
  229. package/dist/style/components/input.scss +2 -2
  230. package/dist/style/components/progress.scss +1 -1
  231. package/dist/style/components/search-bar.scss +1 -1
  232. package/dist/style/components/steps.scss +2 -2
  233. package/dist/style/components/tabs.scss +1 -1
  234. package/dist/style/components/tag.scss +1 -1
  235. package/dist/style/components/timeline.scss +1 -1
  236. package/dist/style/components/toast.scss +7 -3
  237. package/dist/style/index.css +176 -176
  238. package/dist/style/index.css.map +1 -1
  239. package/dist/style/mixins/libs/hairline.scss +4 -19
  240. package/dist/style/mixins/libs/shade.scss +3 -6
  241. package/dist/style/mixins/libs/tint.scss +4 -7
  242. package/dist/style/themes/purple.scss +15 -15
  243. package/dist/style/themes/red.scss +16 -13
  244. package/dist/style/variables/default.scss +69 -73
  245. package/package.json +5 -3
  246. package/rn/components/accordion/index.tsx +2 -9
  247. package/rn/components/action-sheet/body/index.tsx +1 -3
  248. package/rn/components/action-sheet/body/item/index.tsx +1 -3
  249. package/rn/components/action-sheet/footer/index.tsx +1 -3
  250. package/rn/components/action-sheet/header/index.tsx +1 -3
  251. package/rn/components/activity-indicator/index.tsx +1 -3
  252. package/rn/components/avatar/index.tsx +5 -5
  253. package/rn/components/calendar/controller/index.tsx +2 -7
  254. package/rn/components/card/index.tsx +4 -4
  255. package/rn/components/countdown/index.scss +5 -4
  256. package/rn/components/countdown/item/index.tsx +1 -3
  257. package/rn/components/curtain/index.tsx +5 -5
  258. package/rn/components/flex/index.scss +2 -2
  259. package/rn/components/flex/item/index.scss +2 -2
  260. package/rn/components/grid/index.tsx +15 -15
  261. package/rn/components/icon/index.tsx +4 -4
  262. package/rn/components/image-picker/index.tsx +7 -7
  263. package/rn/components/pagination/index.tsx +7 -7
  264. package/rn/components/progress/index.tsx +5 -5
  265. package/rn/components/radio/index.tsx +7 -7
  266. package/rn/components/rate/index.tsx +4 -4
  267. package/rn/components/segmented-control/index.tsx +8 -8
  268. package/rn/components/slider/index.tsx +9 -9
  269. package/rn/components/steps/index.tsx +8 -8
  270. package/rn/components/swipe-action/options/index.tsx +1 -3
  271. package/rn/components/switch/index.tsx +2 -9
  272. package/rn/components/toast/img.json +3 -6
  273. package/rn/components/toast/index.tsx +8 -8
  274. package/rn/style/components/accordion.scss +1 -1
  275. package/rn/style/components/action-sheet.scss +1 -1
  276. package/rn/style/components/avatar.scss +1 -1
  277. package/rn/style/components/badge.scss +8 -3
  278. package/rn/style/components/button.scss +1 -1
  279. package/rn/style/components/calendar.scss +1 -1
  280. package/rn/style/components/checkbox.scss +1 -1
  281. package/rn/style/components/curtain.scss +1 -1
  282. package/rn/style/components/fab.scss +1 -4
  283. package/rn/style/components/flex.scss +1 -1
  284. package/rn/style/components/grid.scss +2 -6
  285. package/rn/style/components/icon.scss +302 -101
  286. package/rn/style/components/index.scss +41 -41
  287. package/rn/style/components/input.scss +1 -1
  288. package/rn/style/components/list.scss +2 -4
  289. package/rn/style/components/loading.scss +4 -4
  290. package/rn/style/components/message.scss +1 -1
  291. package/rn/style/components/modal.scss +0 -2
  292. package/rn/style/components/nav-bar.scss +3 -3
  293. package/rn/style/components/noticebar.scss +0 -4
  294. package/rn/style/components/progress.scss +1 -1
  295. package/rn/style/components/radio.scss +2 -2
  296. package/rn/style/components/range.scss +1 -1
  297. package/rn/style/components/search-bar.scss +1 -1
  298. package/rn/style/components/segmented-control.scss +4 -1
  299. package/rn/style/components/slider.scss +0 -1
  300. package/rn/style/components/steps.scss +3 -3
  301. package/rn/style/components/switch.scss +0 -1
  302. package/rn/style/components/tabs.scss +2 -2
  303. package/rn/style/components/tag.scss +1 -1
  304. package/rn/style/components/timeline.scss +0 -2
  305. package/rn/style/components/toast.scss +5 -2
  306. package/rn/style/index.scss +1 -1
  307. package/rn/style/mixins/libs/hairline.scss +4 -22
  308. package/rn/style/mixins/libs/shade.scss +1 -4
  309. package/rn/style/mixins/libs/tint.scss +2 -5
  310. package/rn/style/themes/purple.scss +15 -15
  311. package/rn/style/themes/red.scss +16 -13
  312. package/rn/style/variables/default.scss +69 -73
@@ -1,7 +1,13 @@
1
- import { InferProps } from 'prop-types';
2
- import React from 'react';
1
+ import PropTypes from 'prop-types';
3
2
  import { AtProgressProps } from '../../../types/progress';
4
- export default class AtProgress extends React.Component<AtProgressProps> {
5
- static propTypes: InferProps<AtProgressProps>;
6
- render(): JSX.Element;
3
+ declare function AtProgress({ color, percent: percentProp, strokeWidth, status, isHidePercent, className }: AtProgressProps): JSX.Element;
4
+ declare namespace AtProgress {
5
+ var propTypes: {
6
+ color: PropTypes.Requireable<string>;
7
+ status: PropTypes.Requireable<string>;
8
+ percent: PropTypes.Requireable<number>;
9
+ strokeWidth: PropTypes.Requireable<number>;
10
+ isHidePercent: PropTypes.Requireable<boolean>;
11
+ };
7
12
  }
13
+ export default AtProgress;
@@ -2,43 +2,46 @@ import classNames from "classnames";
2
2
  import PropTypes from "prop-types";
3
3
  import React from "react";
4
4
  import { Text, View } from "@tarojs/components";
5
- class AtProgress extends React.Component {
6
- render() {
7
- const { color } = this.props;
8
- let { percent } = this.props;
9
- const { strokeWidth, status, isHidePercent } = this.props;
10
- if (typeof percent !== "number") {
11
- percent = 0;
12
- }
13
- if (percent < 0) {
14
- percent = 0;
15
- } else if (percent > 100) {
16
- percent = 100;
17
- }
18
- const rootClass = classNames(
19
- "at-progress",
20
- {
21
- [`at-progress--${status}`]: !!status
22
- },
23
- this.props.className
24
- );
25
- const iconClass = classNames("at-icon", {
26
- "at-icon-close-circle": status === "error",
27
- "at-icon-check-circle": status === "success"
28
- });
29
- const progressStyle = {
30
- width: percent && `${+percent}%`,
31
- height: strokeWidth && `${+strokeWidth}px`,
32
- backgroundColor: color
33
- };
34
- return /* @__PURE__ */ React.createElement(View, { className: rootClass }, /* @__PURE__ */ React.createElement(View, { className: "at-progress__outer" }, /* @__PURE__ */ React.createElement(View, { className: "at-progress__outer-inner" }, /* @__PURE__ */ React.createElement(
35
- View,
36
- {
37
- className: "at-progress__outer-inner-background",
38
- style: progressStyle
39
- }
40
- ))), !isHidePercent && /* @__PURE__ */ React.createElement(View, { className: "at-progress__content" }, !status || status === "progress" ? `${percent}%` : /* @__PURE__ */ React.createElement(Text, { className: iconClass })));
5
+ function AtProgress({
6
+ color,
7
+ percent: percentProp,
8
+ strokeWidth,
9
+ status,
10
+ isHidePercent,
11
+ className
12
+ }) {
13
+ let percent = percentProp;
14
+ if (typeof percent !== "number") {
15
+ percent = 0;
41
16
  }
17
+ if (percent < 0) {
18
+ percent = 0;
19
+ } else if (percent > 100) {
20
+ percent = 100;
21
+ }
22
+ const rootClass = classNames(
23
+ "at-progress",
24
+ {
25
+ [`at-progress--${status}`]: !!status
26
+ },
27
+ className
28
+ );
29
+ const iconClass = classNames("at-icon", {
30
+ "at-icon-close-circle": status === "error",
31
+ "at-icon-check-circle": status === "success"
32
+ });
33
+ const progressStyle = {
34
+ width: percent && `${+percent}%`,
35
+ height: strokeWidth && `${+strokeWidth}px`,
36
+ backgroundColor: color
37
+ };
38
+ return /* @__PURE__ */ React.createElement(View, { className: rootClass }, /* @__PURE__ */ React.createElement(View, { className: "at-progress__outer" }, /* @__PURE__ */ React.createElement(View, { className: "at-progress__outer-inner" }, /* @__PURE__ */ React.createElement(
39
+ View,
40
+ {
41
+ className: "at-progress__outer-inner-background",
42
+ style: progressStyle
43
+ }
44
+ ))), !isHidePercent && /* @__PURE__ */ React.createElement(View, { className: "at-progress__content" }, !status || status === "progress" ? `${percent}%` : /* @__PURE__ */ React.createElement(Text, { className: iconClass })));
42
45
  }
43
46
  AtProgress.propTypes = {
44
47
  color: PropTypes.string,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/progress/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport PropTypes, { InferProps } from 'prop-types'\nimport React from 'react'\nimport { Text, View } from '@tarojs/components'\nimport { AtProgressProps } from '../../../types/progress'\n\nexport default class AtProgress extends React.Component<AtProgressProps> {\n public static propTypes: InferProps<AtProgressProps>\n\n public render(): JSX.Element {\n const { color } = this.props\n let { percent } = this.props\n const { strokeWidth, status, isHidePercent } = this.props\n\n if (typeof percent !== 'number') {\n percent = 0\n }\n\n if (percent < 0) {\n percent = 0\n } else if (percent > 100) {\n percent = 100\n }\n\n const rootClass = classNames(\n 'at-progress',\n {\n [`at-progress--${status}`]: !!status\n },\n this.props.className\n )\n const iconClass = classNames('at-icon', {\n 'at-icon-close-circle': status === 'error',\n 'at-icon-check-circle': status === 'success'\n })\n\n const progressStyle = {\n width: percent && `${+percent}%`,\n height: strokeWidth && `${+strokeWidth}px`,\n backgroundColor: color\n }\n\n return (\n <View className={rootClass}>\n <View className='at-progress__outer'>\n <View className='at-progress__outer-inner'>\n <View\n className='at-progress__outer-inner-background'\n style={progressStyle}\n />\n </View>\n </View>\n\n {!isHidePercent && (\n <View className='at-progress__content'>\n {!status || status === 'progress' ? (\n `${percent}%`\n ) : (\n <Text className={iconClass}></Text>\n )}\n </View>\n )}\n </View>\n )\n }\n}\n\nAtProgress.propTypes = {\n color: PropTypes.string,\n status: PropTypes.string,\n percent: PropTypes.number,\n strokeWidth: PropTypes.number,\n isHidePercent: PropTypes.bool\n}\n"],"mappings":"AAAA,OAAO,gBAAgB;AACvB,OAAO,eAA+B;AACtC,OAAO,WAAW;AAClB,SAAS,MAAM,YAAY;AAG3B,MAAO,mBAAiC,MAAM,UAA2B;AAAA,EAGhE,SAAsB;AAC3B,UAAM,EAAE,MAAM,IAAI,KAAK;AACvB,QAAI,EAAE,QAAQ,IAAI,KAAK;AACvB,UAAM,EAAE,aAAa,QAAQ,cAAc,IAAI,KAAK;AAEpD,QAAI,OAAO,YAAY,UAAU;AAC/B,gBAAU;AAAA,IACZ;AAEA,QAAI,UAAU,GAAG;AACf,gBAAU;AAAA,IACZ,WAAW,UAAU,KAAK;AACxB,gBAAU;AAAA,IACZ;AAEA,UAAM,YAAY;AAAA,MAChB;AAAA,MACA;AAAA,QACE,CAAC,gBAAgB,MAAM,EAAE,GAAG,CAAC,CAAC;AAAA,MAChC;AAAA,MACA,KAAK,MAAM;AAAA,IACb;AACA,UAAM,YAAY,WAAW,WAAW;AAAA,MACtC,wBAAwB,WAAW;AAAA,MACnC,wBAAwB,WAAW;AAAA,IACrC,CAAC;AAED,UAAM,gBAAgB;AAAA,MACpB,OAAO,WAAW,GAAG,CAAC,OAAO;AAAA,MAC7B,QAAQ,eAAe,GAAG,CAAC,WAAW;AAAA,MACtC,iBAAiB;AAAA,IACnB;AAEA,WACE,oCAAC,QAAK,WAAW,aACf,oCAAC,QAAK,WAAU,wBACd,oCAAC,QAAK,WAAU,8BACd;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO;AAAA;AAAA,IACT,CACF,CACF,GAEC,CAAC,iBACA,oCAAC,QAAK,WAAU,0BACb,CAAC,UAAU,WAAW,aACrB,GAAG,OAAO,MAEV,oCAAC,QAAK,WAAW,WAAW,CAEhC,CAEJ;AAAA,EAEJ;AACF;AAEA,WAAW,YAAY;AAAA,EACrB,OAAO,UAAU;AAAA,EACjB,QAAQ,UAAU;AAAA,EAClB,SAAS,UAAU;AAAA,EACnB,aAAa,UAAU;AAAA,EACvB,eAAe,UAAU;AAC3B;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/progress/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport PropTypes from 'prop-types'\nimport React from 'react'\nimport { Text, View } from '@tarojs/components'\nimport { AtProgressProps } from '../../../types/progress'\n\nexport default function AtProgress({\n color,\n percent: percentProp,\n strokeWidth,\n status,\n isHidePercent,\n className\n}: AtProgressProps): JSX.Element {\n let percent = percentProp\n if (typeof percent !== 'number') {\n percent = 0\n }\n\n if (percent < 0) {\n percent = 0\n } else if (percent > 100) {\n percent = 100\n }\n\n const rootClass = classNames(\n 'at-progress',\n {\n [`at-progress--${status}`]: !!status\n },\n className\n )\n const iconClass = classNames('at-icon', {\n 'at-icon-close-circle': status === 'error',\n 'at-icon-check-circle': status === 'success'\n })\n\n const progressStyle = {\n width: percent && `${+percent}%`,\n height: strokeWidth && `${+strokeWidth}px`,\n backgroundColor: color\n }\n\n return (\n <View className={rootClass}>\n <View className='at-progress__outer'>\n <View className='at-progress__outer-inner'>\n <View\n className='at-progress__outer-inner-background'\n style={progressStyle}\n />\n </View>\n </View>\n\n {!isHidePercent && (\n <View className='at-progress__content'>\n {!status || status === 'progress' ? (\n `${percent}%`\n ) : (\n <Text className={iconClass}></Text>\n )}\n </View>\n )}\n </View>\n )\n}\n\nAtProgress.propTypes = {\n color: PropTypes.string,\n status: PropTypes.string,\n percent: PropTypes.number,\n strokeWidth: PropTypes.number,\n isHidePercent: PropTypes.bool\n}\n"],"mappings":"AAAA,OAAO,gBAAgB;AACvB,OAAO,eAAe;AACtB,OAAO,WAAW;AAClB,SAAS,MAAM,YAAY;AAGZ,SAAR,WAA4B;AAAA,EACjC;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAiC;AAC/B,MAAI,UAAU;AACd,MAAI,OAAO,YAAY,UAAU;AAC/B,cAAU;AAAA,EACZ;AAEA,MAAI,UAAU,GAAG;AACf,cAAU;AAAA,EACZ,WAAW,UAAU,KAAK;AACxB,cAAU;AAAA,EACZ;AAEA,QAAM,YAAY;AAAA,IAChB;AAAA,IACA;AAAA,MACE,CAAC,gBAAgB,MAAM,EAAE,GAAG,CAAC,CAAC;AAAA,IAChC;AAAA,IACA;AAAA,EACF;AACA,QAAM,YAAY,WAAW,WAAW;AAAA,IACtC,wBAAwB,WAAW;AAAA,IACnC,wBAAwB,WAAW;AAAA,EACrC,CAAC;AAED,QAAM,gBAAgB;AAAA,IACpB,OAAO,WAAW,GAAG,CAAC,OAAO;AAAA,IAC7B,QAAQ,eAAe,GAAG,CAAC,WAAW;AAAA,IACtC,iBAAiB;AAAA,EACnB;AAEA,SACE,oCAAC,QAAK,WAAW,aACf,oCAAC,QAAK,WAAU,wBACd,oCAAC,QAAK,WAAU,8BACd;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,OAAO;AAAA;AAAA,EACT,CACF,CACF,GAEC,CAAC,iBACA,oCAAC,QAAK,WAAU,0BACb,CAAC,UAAU,WAAW,aACrB,GAAG,OAAO,MAEV,oCAAC,QAAK,WAAW,WAAW,CAEhC,CAEJ;AAEJ;AAEA,WAAW,YAAY;AAAA,EACrB,OAAO,UAAU;AAAA,EACjB,QAAQ,UAAU;AAAA,EAClB,SAAS,UAAU;AAAA,EACnB,aAAa,UAAU;AAAA,EACvB,eAAe,UAAU;AAC3B;","names":[]}
@@ -1,9 +1,13 @@
1
- import { InferProps } from 'prop-types';
2
- import React from 'react';
1
+ import PropTypes from 'prop-types';
3
2
  import { AtRadioProps } from '../../../types/radio';
4
- export default class AtRadio extends React.Component<AtRadioProps<any>> {
5
- static defaultProps: AtRadioProps<any>;
6
- static propTypes: InferProps<AtRadioProps<any>>;
7
- private handleClick;
8
- render(): JSX.Element;
3
+ declare function AtRadio({ customStyle, className, value, options, onClick }: AtRadioProps<any>): JSX.Element;
4
+ declare namespace AtRadio {
5
+ var propTypes: {
6
+ customStyle: PropTypes.Requireable<NonNullable<string | object | null | undefined>>;
7
+ className: PropTypes.Requireable<NonNullable<string | any[] | null | undefined>>;
8
+ value: PropTypes.Requireable<string>;
9
+ options: PropTypes.Requireable<any[]>;
10
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
11
+ };
9
12
  }
13
+ export default AtRadio;
@@ -2,45 +2,40 @@ import classNames from "classnames";
2
2
  import PropTypes from "prop-types";
3
3
  import React from "react";
4
4
  import { Text, View } from "@tarojs/components";
5
- class AtRadio extends React.Component {
6
- handleClick(option, event) {
5
+ import { noop } from "../../common/utils";
6
+ function AtRadio({
7
+ customStyle = "",
8
+ className = "",
9
+ value = "",
10
+ options = [],
11
+ onClick = noop
12
+ }) {
13
+ const handleClick = (option, event) => {
7
14
  if (option.disabled) return;
8
- this.props.onClick(option.value, event);
9
- }
10
- render() {
11
- const { customStyle, className, options, value } = this.props;
12
- return /* @__PURE__ */ React.createElement(View, { className: classNames("at-radio", className), style: customStyle }, options.map((option) => /* @__PURE__ */ React.createElement(
15
+ onClick(option.value, event);
16
+ };
17
+ return /* @__PURE__ */ React.createElement(View, { className: classNames("at-radio", className), style: customStyle }, options.map((option) => /* @__PURE__ */ React.createElement(
18
+ View,
19
+ {
20
+ key: option.value,
21
+ onClick: (event) => handleClick(option, event),
22
+ className: classNames({
23
+ "at-radio__option": true,
24
+ "at-radio__option--disabled": option.disabled
25
+ })
26
+ },
27
+ /* @__PURE__ */ React.createElement(View, { className: "at-radio__option-wrap" }, /* @__PURE__ */ React.createElement(View, { className: "at-radio__option-container" }, /* @__PURE__ */ React.createElement(View, { className: "at-radio__title" }, option.label), /* @__PURE__ */ React.createElement(
13
28
  View,
14
29
  {
15
- key: option.value,
16
- onClick: this.handleClick.bind(this, option),
17
30
  className: classNames({
18
- "at-radio__option": true,
19
- "at-radio__option--disabled": option.disabled
31
+ "at-radio__icon": true,
32
+ "at-radio__icon--checked": value === option.value
20
33
  })
21
34
  },
22
- /* @__PURE__ */ React.createElement(View, { className: "at-radio__option-wrap" }, /* @__PURE__ */ React.createElement(View, { className: "at-radio__option-container" }, /* @__PURE__ */ React.createElement(View, { className: "at-radio__title" }, option.label), /* @__PURE__ */ React.createElement(
23
- View,
24
- {
25
- className: classNames({
26
- "at-radio__icon": true,
27
- "at-radio__icon--checked": value === option.value
28
- })
29
- },
30
- /* @__PURE__ */ React.createElement(Text, { className: "at-icon at-icon-check" })
31
- )), option.desc && /* @__PURE__ */ React.createElement(View, { className: "at-radio__desc" }, option.desc))
32
- )));
33
- }
35
+ /* @__PURE__ */ React.createElement(Text, { className: "at-icon at-icon-check" })
36
+ )), option.desc && /* @__PURE__ */ React.createElement(View, { className: "at-radio__desc" }, option.desc))
37
+ )));
34
38
  }
35
- AtRadio.defaultProps = {
36
- customStyle: "",
37
- className: "",
38
- value: "",
39
- options: [],
40
- // eslint-disable-next-line @typescript-eslint/no-empty-function
41
- onClick: () => {
42
- }
43
- };
44
39
  AtRadio.propTypes = {
45
40
  customStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
46
41
  className: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),
@@ -48,7 +43,8 @@ AtRadio.propTypes = {
48
43
  options: PropTypes.array,
49
44
  onClick: PropTypes.func
50
45
  };
46
+ var radio_default = AtRadio;
51
47
  export {
52
- AtRadio as default
48
+ radio_default as default
53
49
  };
54
50
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/radio/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport PropTypes, { InferProps } from 'prop-types'\nimport React from 'react'\nimport { Text, View } from '@tarojs/components'\nimport { CommonEvent } from '@tarojs/components/types/common'\nimport { AtRadioProps, RadioOption } from '../../../types/radio'\n\nexport default class AtRadio extends React.Component<AtRadioProps<any>> {\n public static defaultProps: AtRadioProps<any>\n public static propTypes: InferProps<AtRadioProps<any>>\n\n private handleClick(option: RadioOption<any>, event: CommonEvent): void {\n if (option.disabled) return\n this.props.onClick(option.value, event)\n }\n\n public render(): JSX.Element {\n const { customStyle, className, options, value } = this.props\n\n return (\n <View className={classNames('at-radio', className)} style={customStyle}>\n {options.map(option => (\n <View\n key={option.value}\n onClick={this.handleClick.bind(this, option)}\n className={classNames({\n 'at-radio__option': true,\n 'at-radio__option--disabled': option.disabled\n })}\n >\n <View className='at-radio__option-wrap'>\n <View className='at-radio__option-container'>\n <View className='at-radio__title'>{option.label}</View>\n <View\n className={classNames({\n 'at-radio__icon': true,\n 'at-radio__icon--checked': value === option.value\n })}\n >\n <Text className='at-icon at-icon-check'></Text>\n </View>\n </View>\n {option.desc && (\n <View className='at-radio__desc'>{option.desc}</View>\n )}\n </View>\n </View>\n ))}\n </View>\n )\n }\n}\n\nAtRadio.defaultProps = {\n customStyle: '',\n className: '',\n value: '',\n options: [],\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onClick: (): void => {}\n}\n\nAtRadio.propTypes = {\n customStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),\n value: PropTypes.string,\n options: PropTypes.array,\n onClick: PropTypes.func\n}\n"],"mappings":"AAAA,OAAO,gBAAgB;AACvB,OAAO,eAA+B;AACtC,OAAO,WAAW;AAClB,SAAS,MAAM,YAAY;AAI3B,MAAO,gBAA8B,MAAM,UAA6B;AAAA,EAI9D,YAAY,QAA0B,OAA0B;AACtE,QAAI,OAAO,SAAU;AACrB,SAAK,MAAM,QAAQ,OAAO,OAAO,KAAK;AAAA,EACxC;AAAA,EAEO,SAAsB;AAC3B,UAAM,EAAE,aAAa,WAAW,SAAS,MAAM,IAAI,KAAK;AAExD,WACE,oCAAC,QAAK,WAAW,WAAW,YAAY,SAAS,GAAG,OAAO,eACxD,QAAQ,IAAI,YACX;AAAA,MAAC;AAAA;AAAA,QACC,KAAK,OAAO;AAAA,QACZ,SAAS,KAAK,YAAY,KAAK,MAAM,MAAM;AAAA,QAC3C,WAAW,WAAW;AAAA,UACpB,oBAAoB;AAAA,UACpB,8BAA8B,OAAO;AAAA,QACvC,CAAC;AAAA;AAAA,MAED,oCAAC,QAAK,WAAU,2BACd,oCAAC,QAAK,WAAU,gCACd,oCAAC,QAAK,WAAU,qBAAmB,OAAO,KAAM,GAChD;AAAA,QAAC;AAAA;AAAA,UACC,WAAW,WAAW;AAAA,YACpB,kBAAkB;AAAA,YAClB,2BAA2B,UAAU,OAAO;AAAA,UAC9C,CAAC;AAAA;AAAA,QAED,oCAAC,QAAK,WAAU,yBAAwB;AAAA,MAC1C,CACF,GACC,OAAO,QACN,oCAAC,QAAK,WAAU,oBAAkB,OAAO,IAAK,CAElD;AAAA,IACF,CACD,CACH;AAAA,EAEJ;AACF;AAEA,QAAQ,eAAe;AAAA,EACrB,aAAa;AAAA,EACb,WAAW;AAAA,EACX,OAAO;AAAA,EACP,SAAS,CAAC;AAAA;AAAA,EAEV,SAAS,MAAY;AAAA,EAAC;AACxB;AAEA,QAAQ,YAAY;AAAA,EAClB,aAAa,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,MAAM,CAAC;AAAA,EACrE,WAAW,UAAU,UAAU,CAAC,UAAU,OAAO,UAAU,MAAM,CAAC;AAAA,EAClE,OAAO,UAAU;AAAA,EACjB,SAAS,UAAU;AAAA,EACnB,SAAS,UAAU;AACrB;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/radio/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport PropTypes from 'prop-types'\nimport React from 'react'\nimport { Text, View } from '@tarojs/components'\nimport { CommonEvent } from '@tarojs/components/types/common'\nimport { AtRadioProps, RadioOption } from '../../../types/radio'\nimport { noop } from '../../common/utils'\n\nfunction AtRadio({\n customStyle = '',\n className = '',\n value = '',\n options = [],\n onClick = noop\n}: AtRadioProps<any>): JSX.Element {\n const handleClick = (option: RadioOption<any>, event: CommonEvent): void => {\n if (option.disabled) return\n onClick(option.value, event)\n }\n\n return (\n <View className={classNames('at-radio', className)} style={customStyle}>\n {options.map(option => (\n <View\n key={option.value}\n onClick={event => handleClick(option, event)}\n className={classNames({\n 'at-radio__option': true,\n 'at-radio__option--disabled': option.disabled\n })}\n >\n <View className='at-radio__option-wrap'>\n <View className='at-radio__option-container'>\n <View className='at-radio__title'>{option.label}</View>\n <View\n className={classNames({\n 'at-radio__icon': true,\n 'at-radio__icon--checked': value === option.value\n })}\n >\n <Text className='at-icon at-icon-check'></Text>\n </View>\n </View>\n {option.desc && (\n <View className='at-radio__desc'>{option.desc}</View>\n )}\n </View>\n </View>\n ))}\n </View>\n )\n}\n\nAtRadio.propTypes = {\n customStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),\n value: PropTypes.string,\n options: PropTypes.array,\n onClick: PropTypes.func\n}\n\nexport default AtRadio\n"],"mappings":"AAAA,OAAO,gBAAgB;AACvB,OAAO,eAAe;AACtB,OAAO,WAAW;AAClB,SAAS,MAAM,YAAY;AAG3B,SAAS,YAAY;AAErB,SAAS,QAAQ;AAAA,EACf,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,UAAU,CAAC;AAAA,EACX,UAAU;AACZ,GAAmC;AACjC,QAAM,cAAc,CAAC,QAA0B,UAA6B;AAC1E,QAAI,OAAO,SAAU;AACrB,YAAQ,OAAO,OAAO,KAAK;AAAA,EAC7B;AAEA,SACE,oCAAC,QAAK,WAAW,WAAW,YAAY,SAAS,GAAG,OAAO,eACxD,QAAQ,IAAI,YACX;AAAA,IAAC;AAAA;AAAA,MACC,KAAK,OAAO;AAAA,MACZ,SAAS,WAAS,YAAY,QAAQ,KAAK;AAAA,MAC3C,WAAW,WAAW;AAAA,QACpB,oBAAoB;AAAA,QACpB,8BAA8B,OAAO;AAAA,MACvC,CAAC;AAAA;AAAA,IAED,oCAAC,QAAK,WAAU,2BACd,oCAAC,QAAK,WAAU,gCACd,oCAAC,QAAK,WAAU,qBAAmB,OAAO,KAAM,GAChD;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,WAAW;AAAA,UACpB,kBAAkB;AAAA,UAClB,2BAA2B,UAAU,OAAO;AAAA,QAC9C,CAAC;AAAA;AAAA,MAED,oCAAC,QAAK,WAAU,yBAAwB;AAAA,IAC1C,CACF,GACC,OAAO,QACN,oCAAC,QAAK,WAAU,oBAAkB,OAAO,IAAK,CAElD;AAAA,EACF,CACD,CACH;AAEJ;AAEA,QAAQ,YAAY;AAAA,EAClB,aAAa,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,MAAM,CAAC;AAAA,EACrE,WAAW,UAAU,UAAU,CAAC,UAAU,OAAO,UAAU,MAAM,CAAC;AAAA,EAClE,OAAO,UAAU;AAAA,EACjB,SAAS,UAAU;AAAA,EACnB,SAAS,UAAU;AACrB;AAEA,IAAO,gBAAQ;","names":[]}
@@ -1,22 +1,20 @@
1
- import { InferProps } from 'prop-types';
2
- import React from 'react';
3
- import { AtRangeProps, AtRangeState } from '../../../types/range';
4
- export default class AtRange extends React.Component<AtRangeProps, AtRangeState> {
5
- static defaultProps: AtRangeProps;
6
- static propTypes: InferProps<AtRangeProps>;
7
- private width;
8
- private left;
9
- private deltaValue;
10
- private currentSlider;
11
- constructor(props: AtRangeProps);
12
- private handleClick;
13
- private handleTouchMove;
14
- private handleTouchEnd;
15
- private setSliderValue;
16
- private setValue;
17
- private triggerEvent;
18
- private updatePos;
19
- UNSAFE_componentWillReceiveProps(nextProps: AtRangeProps): void;
20
- componentDidMount(): void;
21
- render(): JSX.Element;
1
+ import PropTypes from 'prop-types';
2
+ import { AtRangeProps } from '../../../types/range';
3
+ declare function AtRange({ customStyle, className, sliderStyle, railStyle, trackStyle, value, min, max, disabled, blockSize, onChange, onAfterChange }: AtRangeProps): JSX.Element;
4
+ declare namespace AtRange {
5
+ var propTypes: {
6
+ customStyle: PropTypes.Requireable<NonNullable<string | object | null | undefined>>;
7
+ className: PropTypes.Requireable<NonNullable<string | any[] | null | undefined>>;
8
+ sliderStyle: PropTypes.Requireable<NonNullable<string | object | null | undefined>>;
9
+ railStyle: PropTypes.Requireable<NonNullable<string | object | null | undefined>>;
10
+ trackStyle: PropTypes.Requireable<NonNullable<string | object | null | undefined>>;
11
+ value: PropTypes.Requireable<any[]>;
12
+ min: PropTypes.Requireable<number>;
13
+ max: PropTypes.Requireable<number>;
14
+ disabled: PropTypes.Requireable<boolean>;
15
+ blockSize: PropTypes.Requireable<number>;
16
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
17
+ onAfterChange: PropTypes.Requireable<(...args: any[]) => any>;
18
+ };
22
19
  }
20
+ export default AtRange;
@@ -19,174 +19,166 @@ var __spreadValues = (a, b) => {
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
20
  import classNames from "classnames";
21
21
  import PropTypes from "prop-types";
22
- import React from "react";
22
+ import React, { useEffect, useRef, useState } from "react";
23
23
  import { View } from "@tarojs/components";
24
24
  import {
25
25
  delayQuerySelector,
26
26
  getEventDetail,
27
27
  mergeStyle
28
28
  } from "../../common/utils";
29
- class AtRange extends React.Component {
30
- constructor(props) {
31
- super(props);
32
- this.handleClick = (event) => {
33
- if (this.currentSlider && !this.props.disabled) {
34
- let sliderValue = 0;
35
- const detail = getEventDetail(event);
36
- sliderValue = detail.x - this.left;
37
- this.setSliderValue(this.currentSlider, sliderValue, "onChange");
38
- }
39
- };
40
- const { min = 0, max = 100 } = props;
41
- this.width = 0;
42
- this.left = 0;
43
- this.deltaValue = max - min;
44
- this.currentSlider = "";
45
- this.state = {
46
- aX: 0,
47
- bX: 0
48
- };
49
- }
50
- handleTouchMove(sliderName, event) {
51
- if (this.props.disabled) return;
52
- event.stopPropagation();
53
- const clientX = event.touches[0].clientX;
54
- this.setSliderValue(sliderName, clientX - this.left, "onChange");
55
- }
56
- handleTouchEnd(sliderName) {
57
- if (this.props.disabled) return;
58
- this.currentSlider = sliderName;
59
- this.triggerEvent("onAfterChange");
60
- }
61
- setSliderValue(sliderName, targetValue, funcName) {
62
- const distance = Math.min(Math.max(targetValue, 0), this.width);
63
- const sliderValue = Math.floor(distance / this.width * 100);
64
- if (funcName) {
65
- this.setState(
66
- {
67
- [sliderName]: sliderValue
68
- },
69
- () => this.triggerEvent(funcName)
70
- );
71
- } else {
72
- this.setState({
73
- [sliderName]: sliderValue
74
- });
75
- }
76
- }
77
- setValue(value) {
78
- const { min = 0 } = this.props;
79
- const aX = Math.round((value[0] - min) / this.deltaValue * 100);
80
- const bX = Math.round((value[1] - min) / this.deltaValue * 100);
81
- this.setState({ aX, bX });
82
- }
83
- triggerEvent(funcName) {
84
- const { min = 0 } = this.props;
85
- const { aX, bX } = this.state;
86
- const a = Math.round(aX / 100 * this.deltaValue) + min;
87
- const b = Math.round(bX / 100 * this.deltaValue) + min;
29
+ function AtRange({
30
+ customStyle = "",
31
+ className = "",
32
+ sliderStyle = {},
33
+ railStyle = {},
34
+ trackStyle = {},
35
+ value = [0, 0],
36
+ min = 0,
37
+ max = 100,
38
+ disabled = false,
39
+ blockSize = 0,
40
+ onChange,
41
+ onAfterChange
42
+ }) {
43
+ const widthRef = useRef(0);
44
+ const leftRef = useRef(0);
45
+ const deltaValueRef = useRef(max - min);
46
+ const currentSliderRef = useRef("");
47
+ const [{ aX, bX }, setAxis] = useState({ aX: 0, bX: 0 });
48
+ const stateRef = useRef({ aX: 0, bX: 0 });
49
+ stateRef.current = { aX, bX };
50
+ deltaValueRef.current = max - min;
51
+ const triggerEvent = (funcName) => {
52
+ const { aX: stateAX, bX: stateBX } = stateRef.current;
53
+ const a = Math.round(stateAX / 100 * deltaValueRef.current) + min;
54
+ const b = Math.round(stateBX / 100 * deltaValueRef.current) + min;
88
55
  const result = [a, b].sort((x, y) => x - y);
89
56
  if (funcName === "onChange") {
90
- this.props.onChange && this.props.onChange(result);
57
+ onChange && onChange(result);
91
58
  } else if (funcName === "onAfterChange") {
92
- this.props.onAfterChange && this.props.onAfterChange(result);
59
+ onAfterChange && onAfterChange(result);
60
+ }
61
+ };
62
+ const setValue = (nextValue) => {
63
+ const aXVal = Math.round(
64
+ (nextValue[0] - min) / deltaValueRef.current * 100
65
+ );
66
+ const bXVal = Math.round(
67
+ (nextValue[1] - min) / deltaValueRef.current * 100
68
+ );
69
+ setAxis({ aX: aXVal, bX: bXVal });
70
+ };
71
+ const setSliderValue = (sliderName, targetValue, funcName) => {
72
+ const distance = Math.min(Math.max(targetValue, 0), widthRef.current);
73
+ const sliderValue = Math.floor(distance / widthRef.current * 100);
74
+ if (funcName) {
75
+ setAxis((prev) => {
76
+ const next = __spreadProps(__spreadValues({}, prev), { [sliderName]: sliderValue });
77
+ stateRef.current = next;
78
+ const a = Math.round(next.aX / 100 * deltaValueRef.current) + min;
79
+ const b = Math.round(next.bX / 100 * deltaValueRef.current) + min;
80
+ const result = [a, b].sort((x, y) => x - y);
81
+ if (funcName === "onChange") {
82
+ onChange && onChange(result);
83
+ } else if (funcName === "onAfterChange") {
84
+ onAfterChange && onAfterChange(result);
85
+ }
86
+ return next;
87
+ });
88
+ } else {
89
+ setAxis((prev) => __spreadProps(__spreadValues({}, prev), { [sliderName]: sliderValue }));
93
90
  }
94
- }
95
- updatePos() {
91
+ };
92
+ const updatePos = () => {
96
93
  delayQuerySelector(".at-range__container", 0).then((rect) => {
97
94
  var _a, _b;
98
- this.width = Math.round((_a = rect[0]) == null ? void 0 : _a.width);
99
- this.left = Math.round((_b = rect[0]) == null ? void 0 : _b.left);
95
+ widthRef.current = Math.round((_a = rect[0]) == null ? void 0 : _a.width);
96
+ leftRef.current = Math.round((_b = rect[0]) == null ? void 0 : _b.left);
100
97
  });
101
- }
102
- UNSAFE_componentWillReceiveProps(nextProps) {
98
+ };
99
+ const handleClick = (event) => {
100
+ if (currentSliderRef.current && !disabled) {
101
+ let sliderValue = 0;
102
+ const detail = getEventDetail(event);
103
+ sliderValue = detail.x - leftRef.current;
104
+ setSliderValue(currentSliderRef.current, sliderValue, "onChange");
105
+ }
106
+ };
107
+ const handleTouchMove = (sliderName, event) => {
108
+ if (disabled) return;
109
+ event.stopPropagation();
110
+ const clientX = event.touches[0].clientX;
111
+ setSliderValue(sliderName, clientX - leftRef.current, "onChange");
112
+ };
113
+ const handleTouchEnd = (sliderName) => {
114
+ if (disabled) return;
115
+ currentSliderRef.current = sliderName;
116
+ triggerEvent("onAfterChange");
117
+ };
118
+ useEffect(() => {
119
+ updatePos();
120
+ setValue(value);
121
+ }, []);
122
+ const prevValueRef = useRef(value);
123
+ useEffect(() => {
103
124
  var _a, _b;
104
- const { value = [] } = nextProps;
105
- this.updatePos();
106
- if (((_a = this.props.value) == null ? void 0 : _a[0]) !== (value == null ? void 0 : value[0]) || ((_b = this.props.value) == null ? void 0 : _b[1]) !== (value == null ? void 0 : value[1])) {
107
- this.setValue(value);
125
+ updatePos();
126
+ if (((_a = prevValueRef.current) == null ? void 0 : _a[0]) !== (value == null ? void 0 : value[0]) || ((_b = prevValueRef.current) == null ? void 0 : _b[1]) !== (value == null ? void 0 : value[1])) {
127
+ setValue(value);
108
128
  }
109
- }
110
- componentDidMount() {
111
- const { value = [] } = this.props;
112
- this.updatePos();
113
- this.setValue(value);
114
- }
115
- render() {
116
- const {
117
- className,
118
- customStyle,
119
- sliderStyle = {},
120
- railStyle = {},
121
- trackStyle = {},
122
- blockSize,
123
- disabled
124
- } = this.props;
125
- const rootCls = classNames(
126
- "at-range",
127
- {
128
- "at-range--disabled": disabled
129
- },
130
- className
131
- );
132
- const { aX, bX } = this.state;
133
- const sliderCommonStyle = {
134
- width: blockSize ? `${blockSize}PX` : "",
135
- height: blockSize ? `${blockSize}PX` : "",
136
- marginLeft: blockSize ? `${-blockSize / 2}PX` : ""
137
- };
138
- const sliderAStyle = __spreadProps(__spreadValues({}, sliderCommonStyle), {
139
- left: `${aX}%`
140
- });
141
- const sliderBStyle = __spreadProps(__spreadValues({}, sliderCommonStyle), {
142
- left: `${bX}%`
143
- });
144
- const containerStyle = {
145
- height: blockSize ? `${blockSize}PX` : ""
146
- };
147
- const smallerX = Math.min(aX, bX);
148
- const deltaX = Math.abs(aX - bX);
149
- const atTrackStyle = {
150
- left: `${smallerX}%`,
151
- width: `${deltaX}%`
152
- };
153
- return /* @__PURE__ */ React.createElement(View, { className: rootCls, style: customStyle, onClick: this.handleClick }, /* @__PURE__ */ React.createElement(View, { className: "at-range__container", style: containerStyle }, /* @__PURE__ */ React.createElement(View, { className: "at-range__rail", style: railStyle }), /* @__PURE__ */ React.createElement(
154
- View,
155
- {
156
- className: "at-range__track",
157
- style: mergeStyle(atTrackStyle, trackStyle)
158
- }
159
- ), /* @__PURE__ */ React.createElement(
160
- View,
161
- {
162
- className: "at-range__slider",
163
- style: mergeStyle(sliderAStyle, sliderStyle),
164
- onTouchMove: this.handleTouchMove.bind(this, "aX"),
165
- onTouchEnd: this.handleTouchEnd.bind(this, "aX")
166
- }
167
- ), /* @__PURE__ */ React.createElement(
168
- View,
169
- {
170
- className: "at-range__slider",
171
- style: mergeStyle(sliderBStyle, sliderStyle),
172
- onTouchMove: this.handleTouchMove.bind(this, "bX"),
173
- onTouchEnd: this.handleTouchEnd.bind(this, "bX")
174
- }
175
- )));
176
- }
129
+ prevValueRef.current = value;
130
+ }, [value, min, max]);
131
+ const rootCls = classNames(
132
+ "at-range",
133
+ {
134
+ "at-range--disabled": disabled
135
+ },
136
+ className
137
+ );
138
+ const sliderCommonStyle = {
139
+ width: blockSize ? `${blockSize}PX` : "",
140
+ height: blockSize ? `${blockSize}PX` : "",
141
+ marginLeft: blockSize ? `${-blockSize / 2}PX` : ""
142
+ };
143
+ const sliderAStyle = __spreadProps(__spreadValues({}, sliderCommonStyle), {
144
+ left: `${aX}%`
145
+ });
146
+ const sliderBStyle = __spreadProps(__spreadValues({}, sliderCommonStyle), {
147
+ left: `${bX}%`
148
+ });
149
+ const containerStyle = {
150
+ height: blockSize ? `${blockSize}PX` : ""
151
+ };
152
+ const smallerX = Math.min(aX, bX);
153
+ const deltaX = Math.abs(aX - bX);
154
+ const atTrackStyle = {
155
+ left: `${smallerX}%`,
156
+ width: `${deltaX}%`
157
+ };
158
+ return /* @__PURE__ */ React.createElement(View, { className: rootCls, style: customStyle, onClick: handleClick }, /* @__PURE__ */ React.createElement(View, { className: "at-range__container", style: containerStyle }, /* @__PURE__ */ React.createElement(View, { className: "at-range__rail", style: railStyle }), /* @__PURE__ */ React.createElement(
159
+ View,
160
+ {
161
+ className: "at-range__track",
162
+ style: mergeStyle(atTrackStyle, trackStyle)
163
+ }
164
+ ), /* @__PURE__ */ React.createElement(
165
+ View,
166
+ {
167
+ className: "at-range__slider",
168
+ style: mergeStyle(sliderAStyle, sliderStyle),
169
+ onTouchMove: (event) => handleTouchMove("aX", event),
170
+ onTouchEnd: () => handleTouchEnd("aX")
171
+ }
172
+ ), /* @__PURE__ */ React.createElement(
173
+ View,
174
+ {
175
+ className: "at-range__slider",
176
+ style: mergeStyle(sliderBStyle, sliderStyle),
177
+ onTouchMove: (event) => handleTouchMove("bX", event),
178
+ onTouchEnd: () => handleTouchEnd("bX")
179
+ }
180
+ )));
177
181
  }
178
- AtRange.defaultProps = {
179
- customStyle: "",
180
- className: "",
181
- sliderStyle: "",
182
- railStyle: "",
183
- trackStyle: "",
184
- value: [0, 0],
185
- min: 0,
186
- max: 100,
187
- disabled: false,
188
- blockSize: 0
189
- };
190
182
  AtRange.propTypes = {
191
183
  customStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
192
184
  className: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),
@@ -201,7 +193,8 @@ AtRange.propTypes = {
201
193
  onChange: PropTypes.func,
202
194
  onAfterChange: PropTypes.func
203
195
  };
196
+ var range_default = AtRange;
204
197
  export {
205
- AtRange as default
198
+ range_default as default
206
199
  };
207
200
  //# sourceMappingURL=index.js.map