@arco-design/mobile-react 2.19.1 → 2.21.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 (424) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/README.en-US.md +6 -6
  3. package/README.md +6 -6
  4. package/cjs/_helpers/type.d.ts +1 -1
  5. package/cjs/avatar/group.js +1 -1
  6. package/cjs/avatar/index.d.ts +1 -1
  7. package/cjs/avatar/index.js +11 -14
  8. package/cjs/avatar/style/css/index.css +96 -126
  9. package/cjs/avatar/style/index.less +54 -72
  10. package/cjs/badge/index.d.ts +1 -1
  11. package/cjs/badge/index.js +7 -9
  12. package/cjs/badge/style/css/index.css +5 -5
  13. package/cjs/badge/style/index.less +5 -5
  14. package/cjs/button/hooks.d.ts +1 -2
  15. package/cjs/button/hooks.js +5 -3
  16. package/cjs/button/index.d.ts +6 -0
  17. package/cjs/button/index.js +38 -33
  18. package/cjs/button/style/css/index.css +75 -310
  19. package/cjs/button/style/index.less +32 -38
  20. package/cjs/carousel/index.d.ts +1 -1
  21. package/cjs/carousel/index.js +1 -1
  22. package/cjs/cell/index.d.ts +1 -1
  23. package/cjs/cell/index.js +1 -1
  24. package/cjs/checkbox/index.d.ts +1 -1
  25. package/cjs/checkbox/index.js +1 -1
  26. package/cjs/collapse/index.d.ts +1 -1
  27. package/cjs/collapse/index.js +1 -1
  28. package/cjs/count-down/demo/style/mobile.less +1 -1
  29. package/cjs/count-down/index.d.ts +1 -1
  30. package/cjs/count-down/index.js +1 -1
  31. package/cjs/date-picker/index.d.ts +1 -1
  32. package/cjs/date-picker/index.js +1 -1
  33. package/cjs/dropdown/dropdown.d.ts +3 -0
  34. package/cjs/dropdown/dropdown.js +322 -0
  35. package/cjs/dropdown/index.d.ts +3 -4
  36. package/cjs/dropdown/index.js +3 -303
  37. package/cjs/dropdown/options.js +2 -1
  38. package/cjs/dropdown/style/css/index.css +3 -0
  39. package/cjs/dropdown/style/index.less +2 -0
  40. package/cjs/dropdown/type.d.ts +20 -9
  41. package/cjs/dropdown-menu/dropdown-menu.d.ts +4 -0
  42. package/cjs/dropdown-menu/dropdown-menu.js +273 -0
  43. package/cjs/dropdown-menu/helper.d.ts +1 -1
  44. package/cjs/dropdown-menu/index.d.ts +2 -3
  45. package/cjs/dropdown-menu/index.js +2 -245
  46. package/cjs/dropdown-menu/type.d.ts +21 -20
  47. package/cjs/ellipsis/index.d.ts +1 -1
  48. package/cjs/ellipsis/index.js +1 -1
  49. package/cjs/grid/index.js +13 -12
  50. package/cjs/image/index.d.ts +1 -2
  51. package/cjs/image/index.js +14 -9
  52. package/cjs/image/style/css/index.css +2 -1
  53. package/cjs/image/style/index.less +2 -1
  54. package/cjs/image-picker/add-icon.d.ts +2 -0
  55. package/cjs/image-picker/add-icon.js +22 -0
  56. package/cjs/image-picker/demo/style/css/mobile.css +40 -0
  57. package/cjs/image-picker/demo/style/mobile.less +42 -0
  58. package/cjs/image-picker/index.d.ts +13 -0
  59. package/cjs/image-picker/index.js +331 -0
  60. package/cjs/image-picker/style/css/index.css +147 -0
  61. package/cjs/image-picker/style/css/index.d.ts +2 -0
  62. package/cjs/image-picker/style/css/index.js +5 -0
  63. package/cjs/image-picker/style/index.d.ts +2 -0
  64. package/cjs/image-picker/style/index.js +5 -0
  65. package/cjs/image-picker/style/index.less +116 -0
  66. package/cjs/image-picker/type.d.ts +174 -0
  67. package/cjs/image-picker/type.js +3 -0
  68. package/cjs/image-preview/index.d.ts +3 -3
  69. package/cjs/image-preview/index.js +1 -1
  70. package/cjs/index.d.ts +3 -0
  71. package/cjs/index.js +13 -1
  72. package/cjs/input/hooks.js +49 -8
  73. package/cjs/input/index.d.ts +1 -1
  74. package/cjs/input/index.js +1 -1
  75. package/cjs/input/props.d.ts +8 -2
  76. package/cjs/nav-bar/index.js +7 -2
  77. package/cjs/notice-bar/index.d.ts +1 -1
  78. package/cjs/notice-bar/index.js +1 -1
  79. package/cjs/picker/index.d.ts +1 -1
  80. package/cjs/picker/index.js +1 -1
  81. package/cjs/picker-view/index.d.ts +1 -1
  82. package/cjs/picker-view/index.js +1 -1
  83. package/cjs/popover/index.d.ts +1 -1
  84. package/cjs/popover/index.js +1 -1
  85. package/cjs/popup-swiper/index.js +3 -2
  86. package/cjs/radio/index.d.ts +1 -1
  87. package/cjs/radio/index.js +1 -1
  88. package/cjs/rate/index.d.ts +1 -1
  89. package/cjs/rate/index.js +1 -1
  90. package/cjs/search-bar/association.d.ts +3 -0
  91. package/cjs/search-bar/association.js +92 -0
  92. package/cjs/search-bar/cancel-button.d.ts +10 -0
  93. package/cjs/search-bar/cancel-button.js +41 -0
  94. package/cjs/search-bar/demo/style/css/mobile.css +5 -0
  95. package/cjs/search-bar/demo/style/mobile.less +9 -0
  96. package/cjs/search-bar/highlight.d.ts +12 -0
  97. package/cjs/search-bar/highlight.js +77 -0
  98. package/cjs/search-bar/index.d.ts +13 -0
  99. package/cjs/search-bar/index.js +239 -0
  100. package/cjs/search-bar/style/css/index.css +148 -0
  101. package/cjs/search-bar/style/css/index.d.ts +2 -0
  102. package/cjs/search-bar/style/css/index.js +5 -0
  103. package/cjs/search-bar/style/index.d.ts +2 -0
  104. package/cjs/search-bar/style/index.js +5 -0
  105. package/cjs/search-bar/style/index.less +111 -0
  106. package/cjs/search-bar/type.d.ts +163 -0
  107. package/cjs/search-bar/type.js +3 -0
  108. package/cjs/show-monitor/index.js +31 -3
  109. package/cjs/slider/index.d.ts +1 -1
  110. package/cjs/slider/index.js +1 -1
  111. package/cjs/steps/demo/style/css/mobile.css +1 -1
  112. package/cjs/steps/demo/style/mobile.less +1 -1
  113. package/cjs/steps/index.d.ts +1 -1
  114. package/cjs/steps/index.js +1 -1
  115. package/cjs/steps/style/css/index.css +5 -15
  116. package/cjs/steps/style/index.less +6 -10
  117. package/cjs/sticky/index.d.ts +1 -1
  118. package/cjs/style.d.ts +3 -0
  119. package/cjs/style.js +6 -0
  120. package/cjs/swipe-action/demo/style/css/mobile.css +5 -0
  121. package/cjs/swipe-action/demo/style/mobile.less +9 -0
  122. package/cjs/swipe-action/index.d.ts +12 -0
  123. package/cjs/swipe-action/index.js +339 -0
  124. package/cjs/swipe-action/item.d.ts +11 -0
  125. package/cjs/swipe-action/item.js +52 -0
  126. package/cjs/swipe-action/style/css/index.css +88 -0
  127. package/cjs/swipe-action/style/css/index.d.ts +2 -0
  128. package/cjs/swipe-action/style/css/index.js +5 -0
  129. package/cjs/swipe-action/style/index.d.ts +2 -0
  130. package/cjs/swipe-action/style/index.js +5 -0
  131. package/cjs/swipe-action/style/index.less +89 -0
  132. package/cjs/swipe-action/type.d.ts +123 -0
  133. package/cjs/swipe-action/type.js +3 -0
  134. package/cjs/switch/index.d.ts +1 -1
  135. package/cjs/switch/index.js +1 -1
  136. package/cjs/tabs/tab-pane.js +5 -1
  137. package/cjs/tag/index.d.ts +1 -1
  138. package/cjs/tag/index.js +1 -1
  139. package/cjs/textarea/index.d.ts +1 -1
  140. package/cjs/textarea/index.js +1 -1
  141. package/dist/index.js +8040 -6845
  142. package/dist/index.min.js +6 -7
  143. package/dist/style.css +497 -447
  144. package/dist/style.min.css +1 -1
  145. package/esm/_helpers/type.d.ts +1 -1
  146. package/esm/avatar/group.js +1 -1
  147. package/esm/avatar/index.d.ts +1 -1
  148. package/esm/avatar/index.js +11 -14
  149. package/esm/avatar/style/css/index.css +96 -126
  150. package/esm/avatar/style/index.less +54 -72
  151. package/esm/badge/index.d.ts +1 -1
  152. package/esm/badge/index.js +7 -9
  153. package/esm/badge/style/css/index.css +5 -5
  154. package/esm/badge/style/index.less +5 -5
  155. package/esm/button/hooks.d.ts +1 -2
  156. package/esm/button/hooks.js +5 -3
  157. package/esm/button/index.d.ts +6 -0
  158. package/esm/button/index.js +40 -35
  159. package/esm/button/style/css/index.css +75 -310
  160. package/esm/button/style/index.less +32 -38
  161. package/esm/carousel/index.d.ts +1 -1
  162. package/esm/carousel/index.js +1 -1
  163. package/esm/cell/index.d.ts +1 -1
  164. package/esm/cell/index.js +1 -1
  165. package/esm/checkbox/index.d.ts +1 -1
  166. package/esm/checkbox/index.js +1 -1
  167. package/esm/collapse/index.d.ts +1 -1
  168. package/esm/collapse/index.js +1 -1
  169. package/esm/count-down/demo/style/mobile.less +1 -1
  170. package/esm/count-down/index.d.ts +1 -1
  171. package/esm/count-down/index.js +1 -1
  172. package/esm/date-picker/index.d.ts +1 -1
  173. package/esm/date-picker/index.js +1 -1
  174. package/esm/dropdown/dropdown.d.ts +3 -0
  175. package/esm/dropdown/dropdown.js +304 -0
  176. package/esm/dropdown/index.d.ts +3 -4
  177. package/esm/dropdown/index.js +3 -293
  178. package/esm/dropdown/options.js +2 -1
  179. package/esm/dropdown/style/css/index.css +3 -0
  180. package/esm/dropdown/style/index.less +2 -0
  181. package/esm/dropdown/type.d.ts +20 -9
  182. package/esm/dropdown-menu/dropdown-menu.d.ts +4 -0
  183. package/esm/dropdown-menu/dropdown-menu.js +256 -0
  184. package/esm/dropdown-menu/helper.d.ts +1 -1
  185. package/esm/dropdown-menu/index.d.ts +2 -3
  186. package/esm/dropdown-menu/index.js +2 -237
  187. package/esm/dropdown-menu/type.d.ts +21 -20
  188. package/esm/ellipsis/index.d.ts +1 -1
  189. package/esm/ellipsis/index.js +1 -1
  190. package/esm/grid/index.js +13 -12
  191. package/esm/image/index.d.ts +1 -2
  192. package/esm/image/index.js +15 -10
  193. package/esm/image/style/css/index.css +2 -1
  194. package/esm/image/style/index.less +2 -1
  195. package/esm/image-picker/add-icon.d.ts +2 -0
  196. package/esm/image-picker/add-icon.js +14 -0
  197. package/esm/image-picker/demo/style/css/mobile.css +40 -0
  198. package/esm/image-picker/demo/style/mobile.less +42 -0
  199. package/esm/image-picker/index.d.ts +13 -0
  200. package/esm/image-picker/index.js +302 -0
  201. package/esm/image-picker/style/css/index.css +147 -0
  202. package/esm/image-picker/style/css/index.d.ts +2 -0
  203. package/esm/image-picker/style/css/index.js +2 -0
  204. package/esm/image-picker/style/index.d.ts +2 -0
  205. package/esm/image-picker/style/index.js +2 -0
  206. package/esm/image-picker/style/index.less +116 -0
  207. package/esm/image-picker/type.d.ts +174 -0
  208. package/esm/image-picker/type.js +1 -0
  209. package/esm/image-preview/index.d.ts +3 -3
  210. package/esm/image-preview/index.js +1 -1
  211. package/esm/index.d.ts +3 -0
  212. package/esm/index.js +3 -0
  213. package/esm/input/hooks.js +49 -8
  214. package/esm/input/index.d.ts +1 -1
  215. package/esm/input/index.js +1 -1
  216. package/esm/input/props.d.ts +8 -2
  217. package/esm/nav-bar/index.js +6 -2
  218. package/esm/notice-bar/index.d.ts +1 -1
  219. package/esm/notice-bar/index.js +1 -1
  220. package/esm/picker/index.d.ts +1 -1
  221. package/esm/picker/index.js +1 -1
  222. package/esm/picker-view/index.d.ts +1 -1
  223. package/esm/picker-view/index.js +1 -1
  224. package/esm/popover/index.d.ts +1 -1
  225. package/esm/popover/index.js +1 -1
  226. package/esm/popup-swiper/index.js +3 -2
  227. package/esm/radio/index.d.ts +1 -1
  228. package/esm/radio/index.js +1 -1
  229. package/esm/rate/index.d.ts +1 -1
  230. package/esm/rate/index.js +1 -1
  231. package/esm/search-bar/association.d.ts +3 -0
  232. package/esm/search-bar/association.js +82 -0
  233. package/esm/search-bar/cancel-button.d.ts +10 -0
  234. package/esm/search-bar/cancel-button.js +30 -0
  235. package/esm/search-bar/demo/style/css/mobile.css +5 -0
  236. package/esm/search-bar/demo/style/mobile.less +9 -0
  237. package/esm/search-bar/highlight.d.ts +12 -0
  238. package/esm/search-bar/highlight.js +66 -0
  239. package/esm/search-bar/index.d.ts +13 -0
  240. package/esm/search-bar/index.js +213 -0
  241. package/esm/search-bar/style/css/index.css +148 -0
  242. package/esm/search-bar/style/css/index.d.ts +2 -0
  243. package/esm/search-bar/style/css/index.js +2 -0
  244. package/esm/search-bar/style/index.d.ts +2 -0
  245. package/esm/search-bar/style/index.js +2 -0
  246. package/esm/search-bar/style/index.less +111 -0
  247. package/esm/search-bar/type.d.ts +163 -0
  248. package/esm/search-bar/type.js +1 -0
  249. package/esm/show-monitor/index.js +31 -3
  250. package/esm/slider/index.d.ts +1 -1
  251. package/esm/slider/index.js +1 -1
  252. package/esm/steps/demo/style/css/mobile.css +1 -1
  253. package/esm/steps/demo/style/mobile.less +1 -1
  254. package/esm/steps/index.d.ts +1 -1
  255. package/esm/steps/index.js +1 -1
  256. package/esm/steps/style/css/index.css +5 -15
  257. package/esm/steps/style/index.less +6 -10
  258. package/esm/sticky/index.d.ts +1 -1
  259. package/esm/style.d.ts +3 -0
  260. package/esm/style.js +3 -0
  261. package/esm/swipe-action/demo/style/css/mobile.css +5 -0
  262. package/esm/swipe-action/demo/style/mobile.less +9 -0
  263. package/esm/swipe-action/index.d.ts +12 -0
  264. package/esm/swipe-action/index.js +321 -0
  265. package/esm/swipe-action/item.d.ts +11 -0
  266. package/esm/swipe-action/item.js +42 -0
  267. package/esm/swipe-action/style/css/index.css +88 -0
  268. package/esm/swipe-action/style/css/index.d.ts +2 -0
  269. package/esm/swipe-action/style/css/index.js +2 -0
  270. package/esm/swipe-action/style/index.d.ts +2 -0
  271. package/esm/swipe-action/style/index.js +2 -0
  272. package/esm/swipe-action/style/index.less +89 -0
  273. package/esm/swipe-action/type.d.ts +123 -0
  274. package/esm/swipe-action/type.js +1 -0
  275. package/esm/switch/index.d.ts +1 -1
  276. package/esm/switch/index.js +1 -1
  277. package/esm/tabs/tab-pane.js +5 -1
  278. package/esm/tag/index.d.ts +1 -1
  279. package/esm/tag/index.js +1 -1
  280. package/esm/textarea/index.d.ts +1 -1
  281. package/esm/textarea/index.js +1 -1
  282. package/package.json +3 -3
  283. package/tokens/app/arcodesign/default/css-variables.less +53 -3
  284. package/tokens/app/arcodesign/default/index.d.ts +53 -3
  285. package/tokens/app/arcodesign/default/index.js +54 -4
  286. package/tokens/app/arcodesign/default/index.json +629 -39
  287. package/tokens/app/arcodesign/default/index.less +53 -3
  288. package/umd/_helpers/type.d.ts +1 -1
  289. package/umd/avatar/group.js +1 -1
  290. package/umd/avatar/index.d.ts +1 -1
  291. package/umd/avatar/index.js +11 -14
  292. package/umd/avatar/style/css/index.css +96 -126
  293. package/umd/avatar/style/index.less +54 -72
  294. package/umd/badge/index.d.ts +1 -1
  295. package/umd/badge/index.js +7 -9
  296. package/umd/badge/style/css/index.css +5 -5
  297. package/umd/badge/style/index.less +5 -5
  298. package/umd/button/hooks.d.ts +1 -2
  299. package/umd/button/hooks.js +5 -3
  300. package/umd/button/index.d.ts +6 -0
  301. package/umd/button/index.js +38 -33
  302. package/umd/button/style/css/index.css +75 -310
  303. package/umd/button/style/index.less +32 -38
  304. package/umd/carousel/index.d.ts +1 -1
  305. package/umd/carousel/index.js +1 -1
  306. package/umd/cell/index.d.ts +1 -1
  307. package/umd/cell/index.js +1 -1
  308. package/umd/checkbox/index.d.ts +1 -1
  309. package/umd/checkbox/index.js +1 -1
  310. package/umd/collapse/index.d.ts +1 -1
  311. package/umd/collapse/index.js +1 -1
  312. package/umd/count-down/demo/style/mobile.less +1 -1
  313. package/umd/count-down/index.d.ts +1 -1
  314. package/umd/count-down/index.js +1 -1
  315. package/umd/date-picker/index.d.ts +1 -1
  316. package/umd/date-picker/index.js +1 -1
  317. package/umd/dropdown/dropdown.d.ts +3 -0
  318. package/umd/dropdown/dropdown.js +325 -0
  319. package/umd/dropdown/index.d.ts +3 -4
  320. package/umd/dropdown/index.js +5 -298
  321. package/umd/dropdown/options.js +2 -1
  322. package/umd/dropdown/style/css/index.css +3 -0
  323. package/umd/dropdown/style/index.less +2 -0
  324. package/umd/dropdown/type.d.ts +20 -9
  325. package/umd/dropdown-menu/dropdown-menu.d.ts +4 -0
  326. package/umd/dropdown-menu/dropdown-menu.js +278 -0
  327. package/umd/dropdown-menu/helper.d.ts +1 -1
  328. package/umd/dropdown-menu/index.d.ts +2 -3
  329. package/umd/dropdown-menu/index.js +5 -241
  330. package/umd/dropdown-menu/type.d.ts +21 -20
  331. package/umd/ellipsis/index.d.ts +1 -1
  332. package/umd/ellipsis/index.js +1 -1
  333. package/umd/grid/index.js +13 -12
  334. package/umd/image/index.d.ts +1 -2
  335. package/umd/image/index.js +14 -9
  336. package/umd/image/style/css/index.css +2 -1
  337. package/umd/image/style/index.less +2 -1
  338. package/umd/image-picker/add-icon.d.ts +2 -0
  339. package/umd/image-picker/add-icon.js +35 -0
  340. package/umd/image-picker/demo/style/css/mobile.css +40 -0
  341. package/umd/image-picker/demo/style/mobile.less +42 -0
  342. package/umd/image-picker/index.d.ts +13 -0
  343. package/umd/image-picker/index.js +329 -0
  344. package/umd/image-picker/style/css/index.css +147 -0
  345. package/umd/image-picker/style/css/index.d.ts +2 -0
  346. package/umd/image-picker/style/css/index.js +15 -0
  347. package/umd/image-picker/style/index.d.ts +2 -0
  348. package/umd/image-picker/style/index.js +15 -0
  349. package/umd/image-picker/style/index.less +116 -0
  350. package/umd/image-picker/type.d.ts +174 -0
  351. package/umd/image-picker/type.js +17 -0
  352. package/umd/image-preview/index.d.ts +3 -3
  353. package/umd/image-preview/index.js +1 -1
  354. package/umd/index.d.ts +3 -0
  355. package/umd/index.js +11 -5
  356. package/umd/input/hooks.js +48 -7
  357. package/umd/input/index.d.ts +1 -1
  358. package/umd/input/index.js +1 -1
  359. package/umd/input/props.d.ts +8 -2
  360. package/umd/nav-bar/index.js +9 -6
  361. package/umd/notice-bar/index.d.ts +1 -1
  362. package/umd/notice-bar/index.js +1 -1
  363. package/umd/picker/index.d.ts +1 -1
  364. package/umd/picker/index.js +1 -1
  365. package/umd/picker-view/index.d.ts +1 -1
  366. package/umd/picker-view/index.js +1 -1
  367. package/umd/popover/index.d.ts +1 -1
  368. package/umd/popover/index.js +1 -1
  369. package/umd/popup-swiper/index.js +3 -2
  370. package/umd/radio/index.d.ts +1 -1
  371. package/umd/radio/index.js +1 -1
  372. package/umd/rate/index.d.ts +1 -1
  373. package/umd/rate/index.js +1 -1
  374. package/umd/search-bar/association.d.ts +3 -0
  375. package/umd/search-bar/association.js +101 -0
  376. package/umd/search-bar/cancel-button.d.ts +10 -0
  377. package/umd/search-bar/cancel-button.js +52 -0
  378. package/umd/search-bar/demo/style/css/mobile.css +5 -0
  379. package/umd/search-bar/demo/style/mobile.less +9 -0
  380. package/umd/search-bar/highlight.d.ts +12 -0
  381. package/umd/search-bar/highlight.js +87 -0
  382. package/umd/search-bar/index.d.ts +13 -0
  383. package/umd/search-bar/index.js +235 -0
  384. package/umd/search-bar/style/css/index.css +148 -0
  385. package/umd/search-bar/style/css/index.d.ts +2 -0
  386. package/umd/search-bar/style/css/index.js +15 -0
  387. package/umd/search-bar/style/index.d.ts +2 -0
  388. package/umd/search-bar/style/index.js +15 -0
  389. package/umd/search-bar/style/index.less +111 -0
  390. package/umd/search-bar/type.d.ts +163 -0
  391. package/umd/search-bar/type.js +17 -0
  392. package/umd/show-monitor/index.js +31 -3
  393. package/umd/slider/index.d.ts +1 -1
  394. package/umd/slider/index.js +1 -1
  395. package/umd/steps/demo/style/css/mobile.css +1 -1
  396. package/umd/steps/demo/style/mobile.less +1 -1
  397. package/umd/steps/index.d.ts +1 -1
  398. package/umd/steps/index.js +1 -1
  399. package/umd/steps/style/css/index.css +5 -15
  400. package/umd/steps/style/index.less +6 -10
  401. package/umd/sticky/index.d.ts +1 -1
  402. package/umd/style.d.ts +3 -0
  403. package/umd/style.js +4 -4
  404. package/umd/swipe-action/demo/style/css/mobile.css +5 -0
  405. package/umd/swipe-action/demo/style/mobile.less +9 -0
  406. package/umd/swipe-action/index.d.ts +12 -0
  407. package/umd/swipe-action/index.js +342 -0
  408. package/umd/swipe-action/item.d.ts +11 -0
  409. package/umd/swipe-action/item.js +62 -0
  410. package/umd/swipe-action/style/css/index.css +88 -0
  411. package/umd/swipe-action/style/css/index.d.ts +2 -0
  412. package/umd/swipe-action/style/css/index.js +15 -0
  413. package/umd/swipe-action/style/index.d.ts +2 -0
  414. package/umd/swipe-action/style/index.js +15 -0
  415. package/umd/swipe-action/style/index.less +89 -0
  416. package/umd/swipe-action/type.d.ts +123 -0
  417. package/umd/swipe-action/type.js +17 -0
  418. package/umd/switch/index.d.ts +1 -1
  419. package/umd/switch/index.js +1 -1
  420. package/umd/tabs/tab-pane.js +5 -1
  421. package/umd/tag/index.d.ts +1 -1
  422. package/umd/tag/index.js +1 -1
  423. package/umd/textarea/index.d.ts +1 -1
  424. package/umd/textarea/index.js +1 -1
@@ -1,298 +1,8 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import React, { useRef, useEffect, useCallback, forwardRef, useImperativeHandle, useState } from 'react';
3
- import { cls, componentWrapper, nextTick } from '@arco-design/mobile-utils';
4
- import { CSSTransition } from 'react-transition-group';
5
- import { ContextLayout } from '../context-provider';
6
- import { getStyleWithVendor, usePopupScroll, usePreventBodyScroll, useSystem, useWindowSize } from '../_helpers';
7
- import Portal from '../portal';
1
+ import { componentWrapper } from '@arco-design/mobile-utils';
8
2
  import Options from './options';
3
+ import { componentGenerator } from './dropdown';
9
4
  export * from './type';
10
- var Dropdown = /*#__PURE__*/forwardRef(function (props, ref) {
11
- var optionsWrapper = useRef(null);
12
- var domRef = useRef(null);
13
- var _props$className = props.className,
14
- className = _props$className === void 0 ? '' : _props$className,
15
- _props$style = props.style,
16
- style = _props$style === void 0 ? {} : _props$style,
17
- _props$options = props.options,
18
- options = _props$options === void 0 ? [] : _props$options,
19
- _props$showDropdown = props.showDropdown,
20
- showDropdown = _props$showDropdown === void 0 ? false : _props$showDropdown,
21
- _props$showMask = props.showMask,
22
- showMask = _props$showMask === void 0 ? true : _props$showMask,
23
- _props$direction = props.direction,
24
- direction = _props$direction === void 0 ? 'down' : _props$direction,
25
- height = props.height,
26
- _props$maxHeight = props.maxHeight,
27
- maxHeight = _props$maxHeight === void 0 ? 500 : _props$maxHeight,
28
- _props$touchToClose = props.touchToClose,
29
- touchToClose = _props$touchToClose === void 0 ? true : _props$touchToClose,
30
- useColumn = props.useColumn,
31
- multiple = props.multiple,
32
- defaultSelectedValue = props.defaultSelectedValue,
33
- onCancel = props.onCancel,
34
- getAnchorElement = props.getAnchorElement,
35
- isStopTouchEl = props.isStopTouchEl,
36
- getStopTouchElements = props.getStopTouchElements,
37
- _props$getScrollConta = props.getScrollContainer,
38
- getScrollContainer = _props$getScrollConta === void 0 ? function () {
39
- return optionsWrapper.current;
40
- } : _props$getScrollConta,
41
- getPortalContainer = props.getPortalContainer,
42
- _props$clickOtherToCl = props.clickOtherToClose,
43
- clickOtherToClose = _props$clickOtherToCl === void 0 ? true : _props$clickOtherToCl,
44
- _props$dropdownAnimat = props.dropdownAnimationTimeout,
45
- dropdownAnimationTimeout = _props$dropdownAnimat === void 0 ? 300 : _props$dropdownAnimat,
46
- _props$dropdownAnimat2 = props.dropdownAnimationFunction,
47
- dropdownAnimationFunction = _props$dropdownAnimat2 === void 0 ? 'cubic-bezier(0.32, 0.96, 0.6, 1)' : _props$dropdownAnimat2,
48
- _props$maskAnimationT = props.maskAnimationTimeout,
49
- maskAnimationTimeout = _props$maskAnimationT === void 0 ? 500 : _props$maskAnimationT,
50
- _props$maskAnimationF = props.maskAnimationFunction,
51
- maskAnimationFunction = _props$maskAnimationF === void 0 ? 'cubic-bezier(0.32, 0.96, 0.6, 1)' : _props$maskAnimationF,
52
- _props$mountOnEnter = props.mountOnEnter,
53
- mountOnEnter = _props$mountOnEnter === void 0 ? true : _props$mountOnEnter,
54
- _props$unmountOnExit = props.unmountOnExit,
55
- unmountOnExit = _props$unmountOnExit === void 0 ? true : _props$unmountOnExit,
56
- _props$preventBodyScr = props.preventBodyScroll,
57
- preventBodyScroll = _props$preventBodyScr === void 0 ? true : _props$preventBodyScr,
58
- initialBodyOverflow = props.initialBodyOverflow;
59
- var system = useSystem();
60
-
61
- var _useWindowSize = useWindowSize(),
62
- windowHeight = _useWindowSize.windowHeight,
63
- windowWidth = _useWindowSize.windowWidth;
64
-
65
- var _useState = useState({
66
- top: '',
67
- bottom: ''
68
- }),
69
- positionStyle = _useState[0],
70
- setPositionStyle = _useState[1];
71
-
72
- var _useState2 = useState(function () {
73
- var defaultValue = multiple ? [] : 0;
74
- return defaultSelectedValue !== void 0 ? defaultSelectedValue : defaultValue;
75
- }),
76
- innerValue = _useState2[0],
77
- setInnerValue = _useState2[1]; // down=0为向上展开,1为向下展开
78
- // @en down=0 is to expand upwards, 1 is to expand downwards
79
-
80
-
81
- var _useState3 = useState(direction === 'down'),
82
- down = _useState3[0],
83
- setDown = _useState3[1];
84
-
85
- var maskHeight = useRef(0);
86
- var optionsContainer = useRef(null);
87
- var dropdownContainer = useRef(null);
88
-
89
- var _useState4 = useState(0),
90
- optionsWrapperHeight = _useState4[0],
91
- setOptionsWrapperHeight = _useState4[1];
92
- /**
93
- * 判断是否阻止touch事件
94
- * @en Determine whether to block touch events
95
- * */
96
-
97
-
98
- var ifStopTouch = function ifStopTouch(el) {
99
- var _dropdownContainer$cu;
100
-
101
- if (isStopTouchEl) return isStopTouchEl(el);
102
- var tempEl = el;
103
- var elements = getStopTouchElements ? getStopTouchElements() : [(_dropdownContainer$cu = dropdownContainer.current) == null ? void 0 : _dropdownContainer$cu.parentElement];
104
-
105
- for (var i = 0; i < elements.length; i++) {
106
- while (tempEl && elements[i]) {
107
- if (tempEl === elements[i]) {
108
- return true;
109
- }
110
-
111
- tempEl = tempEl.parentElement;
112
- }
113
- }
114
-
115
- return false;
116
- };
117
-
118
- usePopupScroll(showDropdown, domRef.current, getScrollContainer);
119
- usePreventBodyScroll(showDropdown, preventBodyScroll, initialBodyOverflow);
120
- useEffect(function () {
121
- var _dropdownContainer$cu2;
122
-
123
- // 为0的时候不改变
124
- // @en Does not change when it is 0
125
- if (optionsWrapperHeight === 0) return;
126
- var tempEl = getAnchorElement ? getAnchorElement() : (_dropdownContainer$cu2 = dropdownContainer.current) == null ? void 0 : _dropdownContainer$cu2.parentElement;
127
-
128
- var _ref = (tempEl == null ? void 0 : tempEl.getBoundingClientRect()) || {
129
- bottom: 0,
130
- top: 0
131
- },
132
- bottom = _ref.bottom,
133
- top = _ref.top;
134
-
135
- var tempTop = props.top || bottom;
136
- var tempBottom = props.bottom || windowHeight - top;
137
- var tempMaskHeight = windowHeight - tempTop; // 没有指定方向,且空间足够时,或向上展开的空间不够,向下展开
138
- // @en If there is no specified direction and there is enough space, or there is not enough space to expand upward, expand downward
139
-
140
- var tempDown = direction !== 'up' && optionsWrapperHeight < tempMaskHeight || optionsWrapperHeight > tempTop;
141
-
142
- if (tempDown) {
143
- maskHeight.current = tempMaskHeight;
144
- setPositionStyle({
145
- top: tempTop + "px",
146
- bottom: ''
147
- });
148
- } else {
149
- maskHeight.current = windowHeight - tempBottom;
150
- setPositionStyle({
151
- top: '',
152
- bottom: tempBottom + "px"
153
- });
154
- }
155
-
156
- setDown(tempDown);
157
- }, [dropdownContainer, optionsWrapperHeight, props.top, props.bottom, Boolean(getAnchorElement), direction, windowHeight]);
158
- /**
159
- * 取消选择
160
- * @en Cancel selection
161
- * */
162
-
163
- var handleCancel = useCallback(function (e) {
164
- var optionsWrapperDom = optionsWrapper.current;
165
-
166
- if (!e || !optionsWrapperDom) {
167
- return;
168
- }
169
-
170
- var target = e.target;
171
-
172
- if (!optionsWrapperDom.contains(target) && !ifStopTouch(target)) {
173
- onCancel();
174
- }
175
-
176
- e.stopPropagation();
177
- }, [ifStopTouch, onCancel]);
178
- /**
179
- * 当面板放下时,给body添加事件监听,面板收起时,移除
180
- * @en When the panel is down, add an event listener to the body, and when the panel is retracted, remove it
181
- * */
182
-
183
- useEffect(function () {
184
- var needBind = showDropdown && clickOtherToClose;
185
- var event = touchToClose ? 'touchstart' : 'click';
186
-
187
- if (needBind) {
188
- document.addEventListener(event, handleCancel);
189
- }
190
-
191
- return function () {
192
- if (needBind) {
193
- document.removeEventListener(event, handleCancel);
194
- }
195
- };
196
- }, [showDropdown, clickOtherToClose, handleCancel]);
197
- useEffect(function () {
198
- nextTick(function () {
199
- if (height !== void 0) {
200
- // 受控模式下,完全交由外层控制
201
- // @en In controlled mode, it is completely controlled by the outer layer
202
- setOptionsWrapperHeight(height);
203
- } else {
204
- if (!optionsContainer.current) return;
205
- if (!showDropdown) setOptionsWrapperHeight(0);else {
206
- setOptionsWrapperHeight(optionsContainer.current.getBoundingClientRect().height);
207
- }
208
- }
209
- });
210
- }, [showDropdown, options.length, height]);
211
- useImperativeHandle(ref, function () {
212
- return {
213
- dom: domRef.current
214
- };
215
- });
216
-
217
- function getOptionsStyle() {
218
- var trans = down ? 'translateY(-100%)' : 'translateY(100%)';
219
- return getStyleWithVendor({
220
- // height: `${optionsWrapperHeight}px`,
221
- transform: optionsWrapperHeight ? '' : trans,
222
- transition: "transform " + dropdownAnimationTimeout + "ms " + dropdownAnimationFunction,
223
- overflow: optionsWrapperHeight > maxHeight || height ? 'auto' : 'hidden',
224
- maxHeight: maxHeight + "px"
225
- });
226
- }
227
-
228
- function renderInnerOptions() {
229
- var optionProps = {
230
- options: options,
231
- useColumn: useColumn
232
- };
233
- var value = props.selectedValue !== void 0 ? props.selectedValue : innerValue;
234
- return props.multiple === true ? /*#__PURE__*/React.createElement(Options, _extends({}, optionProps, {
235
- multiple: true,
236
- selectedValue: value,
237
- onOptionClick: props.onOptionClick,
238
- onOptionChange: function onOptionChange(vals, op) {
239
- setInnerValue(vals);
240
- props.onOptionChange == null ? void 0 : props.onOptionChange(vals, op);
241
- }
242
- })) : /*#__PURE__*/React.createElement(Options, _extends({}, optionProps, {
243
- multiple: props.multiple,
244
- selectedValue: value,
245
- onOptionClick: props.onOptionClick,
246
- onOptionChange: function onOptionChange(vals, op) {
247
- setInnerValue(vals);
248
- props.onOptionChange == null ? void 0 : props.onOptionChange(vals, op);
249
- }
250
- }));
251
- }
252
-
253
- return /*#__PURE__*/React.createElement(ContextLayout, null, function (_ref2) {
254
- var prefixCls = _ref2.prefixCls;
255
- return /*#__PURE__*/React.createElement("div", {
256
- ref: dropdownContainer
257
- }, /*#__PURE__*/React.createElement(Portal, {
258
- getContainer: getPortalContainer
259
- }, /*#__PURE__*/React.createElement(CSSTransition, {
260
- in: showDropdown,
261
- timeout: Math.max(dropdownAnimationTimeout, maskAnimationTimeout),
262
- onEnter: function onEnter(el) {
263
- el.style.visibility = 'visible';
264
- },
265
- onExited: function onExited(el) {
266
- el.style.visibility = 'hidden';
267
- },
268
- mountOnEnter: mountOnEnter,
269
- unmountOnExit: unmountOnExit
270
- }, /*#__PURE__*/React.createElement("div", {
271
- className: cls(prefixCls + "-dropdown all-border-box", system, className, {
272
- 'drop-up': !down
273
- }),
274
- ref: domRef,
275
- style: _extends({
276
- height: maskHeight.current + "px",
277
- maxWidth: windowWidth + "px"
278
- }, style, positionStyle)
279
- }, /*#__PURE__*/React.createElement("div", {
280
- className: cls(prefixCls + "-dropdown-options"),
281
- ref: optionsWrapper,
282
- style: getOptionsStyle()
283
- }, /*#__PURE__*/React.createElement("div", {
284
- className: cls(prefixCls + "-dropdown-options-container"),
285
- ref: optionsContainer
286
- }, props.children || renderInnerOptions(), props.extraNode)), showMask && /*#__PURE__*/React.createElement("div", {
287
- className: cls(prefixCls + "-dropdown-mask", {
288
- 'is-show': optionsWrapperHeight
289
- }),
290
- style: {
291
- transition: "opacity " + maskAnimationTimeout + "ms " + maskAnimationFunction
292
- }
293
- })))));
294
- });
295
- });
5
+ var Dropdown = componentGenerator(Options);
296
6
  /**
297
7
  * 下拉面板,展示供选择的选择项
298
8
  * @en Dropdown panel, showing options to choose from
@@ -5,6 +5,7 @@ import IconCheck from '../icon/IconCheck';
5
5
  var Options = /*#__PURE__*/forwardRef(function (props, ref) {
6
6
  var options = props.options,
7
7
  useColumn = props.useColumn,
8
+ icon = props.icon,
8
9
  selectedValue = props.selectedValue,
9
10
  defaultSelectedValue = props.defaultSelectedValue,
10
11
  multiple = props.multiple;
@@ -83,7 +84,7 @@ var Options = /*#__PURE__*/forwardRef(function (props, ref) {
83
84
  return handleOptionChange(e, op);
84
85
  },
85
86
  style: minWidthStyle
86
- }, op.label, /*#__PURE__*/React.createElement(IconCheck, {
87
+ }, op.label, icon !== void 0 ? icon : /*#__PURE__*/React.createElement(IconCheck, {
87
88
  className: prefixCls + "-dropdown-options-item-icon"
88
89
  }));
89
90
  }), fakeOpts.map(function (_, i) {
@@ -47,6 +47,9 @@
47
47
  }
48
48
  .arco-dropdown-options-item-icon {
49
49
  position: absolute;
50
+ top: 50%;
51
+ -webkit-transform: translateY(-50%);
52
+ transform: translateY(-50%);
50
53
  right: 0.32rem ;
51
54
  color: transparent;
52
55
  }
@@ -55,6 +55,8 @@
55
55
 
56
56
  &-icon {
57
57
  position: absolute;
58
+ top: 50%;
59
+ transform: translateY(-50%);
58
60
  .use-var(right, dropdown-options-item-icon-right);
59
61
  color: transparent;
60
62
  }
@@ -1,4 +1,5 @@
1
1
  import { CSSProperties, ReactNode } from 'react';
2
+ export declare type OptionValueType = number | string;
2
3
  export interface OptionsItem {
3
4
  /**
4
5
  * 选项名称
@@ -9,7 +10,7 @@ export interface OptionsItem {
9
10
  * 选项标识
10
11
  * @en option value
11
12
  * */
12
- value: number;
13
+ value: OptionValueType;
13
14
  /**
14
15
  * 选项是否可用,默认false表示可用
15
16
  * @en Whether the option is available, the default false means available
@@ -111,6 +112,11 @@ export interface DropdownCommonProps {
111
112
  * @default false
112
113
  */
113
114
  useColumn?: boolean | number;
115
+ /**
116
+ * 选项附带图标
117
+ * @en Icon in each option
118
+ */
119
+ optionIcon?: ReactNode;
114
120
  /**
115
121
  * 是否在打开下拉框时再加载内容
116
122
  * @en Whether to reload the content when the dropdown box is opened
@@ -177,29 +183,29 @@ export interface SingleOptionProps {
177
183
  * 默认选中值
178
184
  * @en Default checked value
179
185
  * */
180
- defaultSelectedValue?: number;
186
+ defaultSelectedValue?: OptionValueType;
181
187
  /**
182
188
  * 当前选择的选项标识
183
189
  * @en The currently selected option value
184
190
  * */
185
- selectedValue?: number;
191
+ selectedValue?: OptionValueType;
186
192
  /**
187
193
  * 点击选项时触发的回调函数
188
194
  * @en Callback when clicking option
189
195
  * */
190
- onOptionClick?: (val: number, op: OptionsItem) => void;
196
+ onOptionClick?: (val: OptionValueType, op: OptionsItem) => void;
191
197
  /**
192
198
  * 当选项改变时触发的回调函数
193
199
  * @en Callback when the option changes
194
200
  * */
195
- onOptionChange?: (val: number, op: OptionsItem) => void;
201
+ onOptionChange?: (val: OptionValueType, op: OptionsItem) => void;
196
202
  }
197
203
  export interface MultipleOptionProps {
198
204
  multiple: true;
199
- defaultSelectedValue?: number[];
200
- selectedValue?: number[];
201
- onOptionClick?: (selected: boolean, val: number, op: OptionsItem) => void;
202
- onOptionChange?: (vals: number[], op: OptionsItem) => void;
205
+ defaultSelectedValue?: OptionValueType[];
206
+ selectedValue?: OptionValueType[];
207
+ onOptionClick?: (selected: boolean, val: OptionValueType, op: OptionsItem) => void;
208
+ onOptionChange?: (vals: OptionValueType[], op: OptionsItem) => void;
203
209
  }
204
210
  export declare type OptionProps = SingleOptionProps | MultipleOptionProps;
205
211
  export interface DropdownBasicProps extends DropdownCommonProps {
@@ -247,6 +253,11 @@ export interface DropdownOptionsBasicProps {
247
253
  * @default false
248
254
  */
249
255
  useColumn?: DropdownCommonProps['useColumn'];
256
+ /**
257
+ * 选项列表右侧图标
258
+ * @en Icon on the right side of the options list
259
+ */
260
+ icon?: ReactNode;
250
261
  }
251
262
  export declare type DropdownOptionsProps = DropdownOptionsBasicProps & OptionProps;
252
263
  export interface DropdownOptionsRef {
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { DropdownMenuRef } from './type';
3
+ import { DropdownProps, DropdownRef } from '../dropdown';
4
+ export declare function componentGenerator<P extends DropdownProps = DropdownProps, R extends DropdownRef = DropdownRef>(Comp: React.ForwardRefExoticComponent<P & React.RefAttributes<R>>): React.ForwardRefExoticComponent<(import("./type").DropdownMenuBasicProps & import("./type").SingleOptionProps & React.RefAttributes<DropdownMenuRef>) | (import("./type").DropdownMenuBasicProps & import("./type").MultipleOptionProps & React.RefAttributes<DropdownMenuRef>)>;
@@ -0,0 +1,256 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React, { useRef, useState, forwardRef, useImperativeHandle, useMemo, useEffect, useContext } from 'react';
3
+ import { cls } from '@arco-design/mobile-utils';
4
+ import { GlobalContext } from '../context-provider';
5
+ import { getFormattedOptions as defaultFormatFunc, isCascadeArray, isClassNameDom, isRefDom } from './helper';
6
+ import IconTriDown from '../icon/IconTriDown';
7
+ export function componentGenerator(Comp) {
8
+ return /*#__PURE__*/forwardRef(function (props, ref) {
9
+ var _props$className = props.className,
10
+ className = _props$className === void 0 ? '' : _props$className,
11
+ _props$style = props.style,
12
+ style = _props$style === void 0 ? {} : _props$style,
13
+ _props$options = props.options,
14
+ options = _props$options === void 0 ? [] : _props$options,
15
+ _props$disabled = props.disabled,
16
+ disabled = _props$disabled === void 0 ? [] : _props$disabled,
17
+ _props$selectTips = props.selectTips,
18
+ selectTips = _props$selectTips === void 0 ? [] : _props$selectTips,
19
+ values = props.values,
20
+ _props$defaultValues = props.defaultValues,
21
+ defaultValues = _props$defaultValues === void 0 ? [] : _props$defaultValues,
22
+ icon = props.icon,
23
+ _props$chooseAndClose = props.chooseAndClose,
24
+ chooseAndClose = _props$chooseAndClose === void 0 ? true : _props$chooseAndClose,
25
+ selectIndex = props.selectIndex,
26
+ _props$defaultSelectI = props.defaultSelectIndex,
27
+ defaultSelectIndex = _props$defaultSelectI === void 0 ? 0 : _props$defaultSelectI,
28
+ showDropdown = props.showDropdown,
29
+ _props$defaultShowDro = props.defaultShowDropdown,
30
+ defaultShowDropdown = _props$defaultShowDro === void 0 ? false : _props$defaultShowDro,
31
+ onValuesChange = props.onValuesChange,
32
+ onSelectChange = props.onSelectChange,
33
+ onDropdownChange = props.onDropdownChange,
34
+ _props$getFormattedOp = props.getFormattedOptions,
35
+ getFormattedOptions = _props$getFormattedOp === void 0 ? defaultFormatFunc : _props$getFormattedOp,
36
+ getContainer = props.getContainer,
37
+ children = props.children,
38
+ extraForDropdown = props.extraForDropdown;
39
+
40
+ var _useContext = useContext(GlobalContext),
41
+ prefixCls = _useContext.prefixCls,
42
+ locale = _useContext.locale;
43
+
44
+ var _useState = useState(defaultValues),
45
+ innerValues = _useState[0],
46
+ setInnerValues = _useState[1];
47
+
48
+ var _useState2 = useState(0),
49
+ defaultTop = _useState2[0],
50
+ setDefaultTop = _useState2[1];
51
+
52
+ var currentValues = values !== void 0 ? values : innerValues;
53
+
54
+ var _useState3 = useState(defaultShowDropdown),
55
+ innerShowDropdown = _useState3[0],
56
+ setInnerShowDropdown = _useState3[1];
57
+
58
+ var dropdownShown = showDropdown !== void 0 ? showDropdown : innerShowDropdown;
59
+
60
+ var _useState4 = useState(defaultSelectIndex),
61
+ innerSelectedIndex = _useState4[0],
62
+ setInnerSelectedIndex = _useState4[1];
63
+
64
+ var selectedIndex = selectIndex !== void 0 ? selectIndex : innerSelectedIndex;
65
+ var selectWrapper = useRef(null);
66
+ var domRef = useRef(null);
67
+ var defaultOpItem = {
68
+ label: locale == null ? void 0 : locale.DropdownMenu.select,
69
+ value: -1
70
+ };
71
+ /**
72
+ * 更新选项数组和选择情况
73
+ * @en Update options list and selection
74
+ */
75
+
76
+ var _useMemo = useMemo(function () {
77
+ return getFormattedOptions(options, currentValues);
78
+ }, [options, currentValues]),
79
+ formattedOptions = _useMemo.formattedOptions;
80
+
81
+ var selectedOptions = useMemo(function () {
82
+ return formattedOptions.map(function (ops, index) {
83
+ if (props.multiple) {
84
+ var _value = currentValues[index] || [];
85
+
86
+ var opItems = ops.reduce(function (acc, op) {
87
+ return [].concat(acc, _value.includes(op.value) ? [op] : []);
88
+ }, []);
89
+ return opItems.length ? opItems : [defaultOpItem];
90
+ }
91
+
92
+ var value = currentValues[index];
93
+ return ops.find(function (op) {
94
+ return op.value === value;
95
+ }) || ops[0];
96
+ });
97
+ }, [formattedOptions, currentValues, props.multiple]);
98
+ /**
99
+ * 当下拉框的状态变化
100
+ * @en When the state of the dropdown box changes
101
+ */
102
+
103
+ var handleShowDropdownChange = function handleShowDropdownChange(show, index) {
104
+ onDropdownChange && onDropdownChange(show, index);
105
+ setInnerShowDropdown(show);
106
+ };
107
+
108
+ var handleSelectedIndexChange = function handleSelectedIndexChange(idx) {
109
+ setInnerSelectedIndex(idx);
110
+ onSelectChange == null ? void 0 : onSelectChange(idx);
111
+ };
112
+
113
+ var handleValuesChange = function handleValuesChange(val) {
114
+ var newValue = [].concat(currentValues); // 级联情况下 selectedIndex 之后的选项值重置
115
+ // @en Option values are reset after selectedIndex in case of cascade
116
+
117
+ if (isCascadeArray(options)) {
118
+ newValue = newValue.slice(0, selectedIndex);
119
+ }
120
+
121
+ newValue[selectedIndex] = val;
122
+ newValue = getFormattedOptions(options, newValue).formattedValue;
123
+ setInnerValues(newValue);
124
+ onValuesChange == null ? void 0 : onValuesChange(newValue);
125
+ };
126
+ /**
127
+ * 处理选择框的点击事件
128
+ * @en Handle click event of dropdown box
129
+ */
130
+
131
+
132
+ var handleSelectClick = function handleSelectClick(idx) {
133
+ if (disabled[idx]) return;
134
+
135
+ if (Number(idx) === selectedIndex) {
136
+ handleShowDropdownChange(!dropdownShown, idx);
137
+ } else {
138
+ handleSelectedIndexChange(idx);
139
+ if (!dropdownShown) handleShowDropdownChange(true, idx);
140
+ }
141
+ };
142
+ /**
143
+ * 判断是否为当前实例下的选择框
144
+ * @en Determine whether it is the dropdown box under the current instance
145
+ */
146
+
147
+
148
+ var isCurrentSelectEl = function isCurrentSelectEl(target) {
149
+ var _ref = extraForDropdown || {},
150
+ isStopTouchEl = _ref.isStopTouchEl;
151
+
152
+ return isRefDom(target, selectWrapper) && isClassNameDom(target, 'select-item') || (isStopTouchEl == null ? void 0 : isStopTouchEl(target)) || false;
153
+ };
154
+
155
+ useImperativeHandle(ref, function () {
156
+ return {
157
+ dom: domRef.current
158
+ };
159
+ });
160
+ useEffect(function () {
161
+ var defaultContainer = selectWrapper.current;
162
+ var container = getContainer ? getContainer() || defaultContainer : defaultContainer;
163
+ setDefaultTop((container == null ? void 0 : container.getBoundingClientRect().bottom) || 0);
164
+ }, [getContainer, dropdownShown]);
165
+
166
+ var onCancel = props.onCancel || function () {
167
+ return handleShowDropdownChange(false);
168
+ };
169
+
170
+ var dropdownCommonProps = _extends({
171
+ showDropdown: dropdownShown,
172
+ top: (extraForDropdown == null ? void 0 : extraForDropdown.top) || defaultTop,
173
+ onCancel: onCancel
174
+ }, extraForDropdown || {}, {
175
+ isStopTouchEl: isCurrentSelectEl
176
+ });
177
+
178
+ var renderSelectedLabel = function renderSelectedLabel(op, index) {
179
+ if (props.multiple === true) {
180
+ var multipleOp = op || [];
181
+ return props.renderSelectLabel ? props.renderSelectLabel(multipleOp, index) : /*#__PURE__*/React.createElement("div", {
182
+ className: cls(prefixCls + "-select-item-label-text")
183
+ }, multipleOp.map(function (item) {
184
+ return item.label;
185
+ }).join(','));
186
+ }
187
+
188
+ var singleOp = op || [];
189
+ return props.renderSelectLabel ? props.renderSelectLabel(singleOp, index) : /*#__PURE__*/React.createElement("div", {
190
+ className: cls(prefixCls + "-select-item-label-text")
191
+ }, singleOp.label);
192
+ };
193
+
194
+ return /*#__PURE__*/React.createElement("div", {
195
+ ref: domRef,
196
+ className: cls(prefixCls + "-dropdown-menu all-border-box", className, {
197
+ show: dropdownShown
198
+ }),
199
+ style: style
200
+ }, /*#__PURE__*/React.createElement("div", {
201
+ className: cls(prefixCls + "-select"),
202
+ ref: selectWrapper
203
+ }, selectedOptions.map(function (op, index) {
204
+ var tip = selectTips[index] || '';
205
+ return /*#__PURE__*/React.createElement("div", {
206
+ className: cls(prefixCls + "-select-item", {
207
+ 'is-disabled': disabled[index],
208
+ 'is-selected': dropdownShown && selectedIndex === index
209
+ }),
210
+ key: index,
211
+ "data-idx": index,
212
+ onClick: function onClick() {
213
+ return handleSelectClick(index);
214
+ }
215
+ }, tip.length > 0 && /*#__PURE__*/React.createElement("span", {
216
+ className: cls(prefixCls + "-select-item-tip")
217
+ }, tip), /*#__PURE__*/React.createElement("div", {
218
+ className: cls(prefixCls + "-select-item-label")
219
+ }, renderSelectedLabel(op, index), icon === void 0 ? /*#__PURE__*/React.createElement(IconTriDown, {
220
+ className: cls(prefixCls + "-select-item-icon", {
221
+ 'is-show': dropdownShown && selectedIndex === index
222
+ })
223
+ }) : icon));
224
+ }), props.multiple === true ? /*#__PURE__*/React.createElement(Comp, _extends({
225
+ multiple: true,
226
+ options: formattedOptions[selectedIndex] || [],
227
+ selectedValue: currentValues[selectedIndex] || [],
228
+ onOptionClick: function onOptionClick(selected, val, op) {
229
+ props.onOptionClick == null ? void 0 : props.onOptionClick(selected, val, op, selectedIndex);
230
+ },
231
+ onOptionChange: function onOptionChange(val, op) {
232
+ props.onOptionChange == null ? void 0 : props.onOptionChange(val, op, selectedIndex);
233
+ handleValuesChange(val);
234
+ }
235
+ }, dropdownCommonProps, {
236
+ children: children
237
+ })) : /*#__PURE__*/React.createElement(Comp, _extends({
238
+ multiple: props.multiple,
239
+ options: formattedOptions[selectedIndex] || [],
240
+ selectedValue: currentValues[selectedIndex] || 0,
241
+ onOptionClick: function onOptionClick(val, op) {
242
+ props.onOptionClick == null ? void 0 : props.onOptionClick(val, op, selectedIndex);
243
+
244
+ if (chooseAndClose) {
245
+ handleShowDropdownChange(false, selectedIndex);
246
+ }
247
+ },
248
+ onOptionChange: function onOptionChange(val, op) {
249
+ props.onOptionChange == null ? void 0 : props.onOptionChange(val, op, selectedIndex);
250
+ handleValuesChange(val);
251
+ }
252
+ }, dropdownCommonProps, {
253
+ children: children
254
+ }))));
255
+ });
256
+ }
@@ -25,7 +25,7 @@ export declare function isString(icon: string | ReactNode): icon is string;
25
25
  * */
26
26
  export declare const getFormattedOptions: (options: OptionsItem[][] | string[] | CascadeOptions[], currentValues: ValueType) => {
27
27
  formattedOptions: OptionsItem[][];
28
- formattedValue: (number | number[])[];
28
+ formattedValue: (string | number | (string | number)[])[];
29
29
  };
30
30
  /**
31
31
  * 判断是否为指定ref内的元素