@qsxy/element-plus-react 1.0.2 → 2.0.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 (636) hide show
  1. package/dist/Affix/Affix.d.ts +4 -0
  2. package/dist/Affix/Affix.js +301 -0
  3. package/dist/Affix/index.d.ts +2 -0
  4. package/dist/Affix/index.js +1 -0
  5. package/dist/Affix/typings.d.ts +50 -0
  6. package/dist/Affix/typings.js +1 -0
  7. package/dist/Alert/Alert.d.ts +7 -0
  8. package/dist/Alert/Alert.js +98 -0
  9. package/dist/Alert/index.d.ts +2 -0
  10. package/dist/Alert/index.js +1 -0
  11. package/dist/Alert/typings.d.ts +45 -0
  12. package/dist/Alert/typings.js +1 -0
  13. package/dist/Anchor/Anchor.d.ts +6 -0
  14. package/dist/Anchor/Anchor.js +258 -0
  15. package/dist/Anchor/AnchorLink.d.ts +4 -0
  16. package/dist/Anchor/AnchorLink.js +77 -0
  17. package/dist/Anchor/element.d.ts +4 -0
  18. package/dist/Anchor/element.js +17 -0
  19. package/dist/Anchor/index.d.ts +3 -0
  20. package/dist/Anchor/index.js +2 -0
  21. package/dist/Anchor/typings.d.ts +101 -0
  22. package/dist/Anchor/typings.js +1 -0
  23. package/dist/Backtop/Backtop.d.ts +7 -0
  24. package/dist/Backtop/Backtop.js +153 -0
  25. package/dist/Backtop/index.d.ts +2 -0
  26. package/dist/Backtop/index.js +1 -0
  27. package/dist/Backtop/typings.d.ts +31 -0
  28. package/dist/Backtop/typings.js +1 -0
  29. package/dist/Button/Button.d.ts +2 -11
  30. package/dist/Button/Button.js +2 -6
  31. package/dist/Button/index.d.ts +1 -1
  32. package/dist/Calendar/Calendar.js +12 -8
  33. package/dist/Calendar/YearRangePanel.js +1 -1
  34. package/dist/Card/Card.js +5 -3
  35. package/dist/Carousel/typings.d.ts +1 -1
  36. package/dist/Cascader/Cascader.d.ts +3 -3
  37. package/dist/Cascader/Cascader.js +238 -166
  38. package/dist/Cascader/CascaderContext.d.ts +9 -3
  39. package/dist/Cascader/CascaderContext.js +3 -1
  40. package/dist/Cascader/CascaderDropdown.d.ts +4 -3
  41. package/dist/Cascader/CascaderDropdown.js +21 -10
  42. package/dist/Cascader/CascaderMenu.d.ts +2 -2
  43. package/dist/Cascader/CascaderMenu.js +56 -14
  44. package/dist/Cascader/CascaderPanel.d.ts +4 -0
  45. package/dist/Cascader/CascaderPanel.js +11 -0
  46. package/dist/Cascader/index.d.ts +4 -1
  47. package/dist/Cascader/index.js +2 -1
  48. package/dist/Cascader/typings.d.ts +45 -31
  49. package/dist/Cascader/useCascader.d.ts +14 -27
  50. package/dist/Cascader/useCascader.js +153 -59
  51. package/dist/Checkbox/Checkbox.js +3 -2
  52. package/dist/CheckboxGroup/CheckboxGroup.d.ts +11 -1
  53. package/dist/CheckboxGroup/CheckboxGroup.js +78 -19
  54. package/dist/Collapse/Collapse.d.ts +3 -3
  55. package/dist/Collapse/Collapse.js +71 -16
  56. package/dist/Collapse/CollapseContext.d.ts +3 -6
  57. package/dist/Collapse/CollapseContext.js +2 -4
  58. package/dist/Collapse/CollapseItem.d.ts +3 -3
  59. package/dist/Collapse/CollapseItem.js +93 -51
  60. package/dist/Collapse/CollapseTransition.js +11 -7
  61. package/dist/Collapse/index.d.ts +1 -1
  62. package/dist/Collapse/typings.d.ts +20 -5
  63. package/dist/ColorPicker/typings.d.ts +1 -1
  64. package/dist/ConfigProvider/ConfigProvider.js +2 -24
  65. package/dist/ConfigProvider/ConfigProviderContext.js +1 -1
  66. package/dist/ConfigProvider/typings.d.ts +1 -1
  67. package/dist/Container/Main.d.ts +1 -1
  68. package/dist/Container/typings.d.ts +1 -1
  69. package/dist/Countdown/Countdown.d.ts +4 -0
  70. package/dist/Countdown/Countdown.js +121 -0
  71. package/dist/Countdown/index.d.ts +2 -0
  72. package/dist/Countdown/index.js +1 -0
  73. package/dist/Countdown/typings.d.ts +52 -0
  74. package/dist/Countdown/typings.js +1 -0
  75. package/dist/Countdown/util.d.ts +14 -0
  76. package/dist/Countdown/util.js +58 -0
  77. package/dist/DatePicker/DatePicker.js +9 -6
  78. package/dist/DatePicker/DateRangePicker.js +7 -6
  79. package/dist/DatePicker/typings.d.ts +0 -13
  80. package/dist/DateTimePicker/DateTimePicker.js +29 -19
  81. package/dist/Dialog/Dialog.d.ts +2 -13
  82. package/dist/Dialog/Dialog.js +143 -160
  83. package/dist/Dialog/DialogBody.js +3 -38
  84. package/dist/Dialog/DialogContext.d.ts +0 -7
  85. package/dist/Dialog/DialogContext.js +1 -5
  86. package/dist/Dialog/DialogHeader.js +2 -2
  87. package/dist/Dialog/typings.d.ts +43 -28
  88. package/dist/Dialog/useDraggable.d.ts +2 -1
  89. package/dist/Dialog/useDraggable.js +34 -9
  90. package/dist/Drawer/Drawer.d.ts +2 -13
  91. package/dist/Drawer/Drawer.js +115 -137
  92. package/dist/Drawer/DrawerBody.js +7 -8
  93. package/dist/Drawer/DrawerFooter.js +7 -7
  94. package/dist/Drawer/DrawerHeader.js +11 -8
  95. package/dist/Drawer/typings.d.ts +22 -6
  96. package/dist/Dropdown/Dropdown.js +5 -3
  97. package/dist/Dropdown/typings.d.ts +2 -1
  98. package/dist/Empty/Empty.js +16 -4
  99. package/dist/Form/Form.d.ts +4 -21
  100. package/dist/Form/Form.js +53 -25
  101. package/dist/Form/FormItem.d.ts +4 -52
  102. package/dist/Form/FormItem.js +633 -650
  103. package/dist/Form/FormItemContext.d.ts +10 -1
  104. package/dist/Form/FormItemContext.js +9 -1
  105. package/dist/Form/FormLabelWrap.d.ts +8 -0
  106. package/dist/Form/FormLabelWrap.js +103 -0
  107. package/dist/Form/{FieldContext.d.ts → InternalFormContext.d.ts} +2 -2
  108. package/dist/Form/{FieldContext.js → InternalFormContext.js} +5 -2
  109. package/dist/Form/List.d.ts +3 -3
  110. package/dist/Form/List.js +4 -4
  111. package/dist/Form/index.d.ts +4 -2
  112. package/dist/Form/index.js +4 -1
  113. package/dist/Form/typings.d.ts +61 -9
  114. package/dist/Form/typings.js +15 -1
  115. package/dist/Form/useForm.js +3 -3
  116. package/dist/Form/useWatch.js +1 -1
  117. package/dist/Input/Input.d.ts +2 -14
  118. package/dist/Input/Input.js +187 -140
  119. package/dist/Input/InputGroup.js +1 -1
  120. package/dist/Input/InputRange.js +7 -11
  121. package/dist/Input/TextArea.d.ts +1 -1
  122. package/dist/Input/TextArea.js +85 -30
  123. package/dist/Input/index.d.ts +1 -0
  124. package/dist/Input/index.js +2 -1
  125. package/dist/Input/typings.d.ts +38 -19
  126. package/dist/Input/utils.d.ts +1 -0
  127. package/dist/Input/utils.js +5 -1
  128. package/dist/InputNumber/InputNumber.js +408 -147
  129. package/dist/InputNumber/typings.d.ts +15 -5
  130. package/dist/Loading/Loading.js +5 -2
  131. package/dist/Menu/Menu.js +26 -2
  132. package/dist/Menu/MenuItem.js +4 -2
  133. package/dist/Menu/SubMenu.js +2 -2
  134. package/dist/Menu/SubMenuCollapseTransition.js +14 -9
  135. package/dist/Menu/typings.d.ts +5 -14
  136. package/dist/Message/Message.js +51 -23
  137. package/dist/Message/index.js +13 -13
  138. package/dist/Message/typings.d.ts +8 -5
  139. package/dist/MessageBox/MessageBox.js +75 -57
  140. package/dist/MessageBox/index.d.ts +2 -1
  141. package/dist/MessageBox/index.js +4 -2
  142. package/dist/MessageBox/typings.d.ts +3 -1
  143. package/dist/Notification/Notification.js +26 -19
  144. package/dist/Notification/typings.d.ts +1 -1
  145. package/dist/PageHeader/PageHeader.d.ts +8 -0
  146. package/dist/PageHeader/PageHeader.js +91 -0
  147. package/dist/PageHeader/index.d.ts +2 -0
  148. package/dist/PageHeader/index.js +1 -0
  149. package/dist/PageHeader/typings.d.ts +34 -0
  150. package/dist/PageHeader/typings.js +1 -0
  151. package/dist/Pagination/typings.d.ts +1 -1
  152. package/dist/Popover/Popover.js +7 -7
  153. package/dist/Popover/typings.d.ts +3 -3
  154. package/dist/Popper/Popper.js +49 -28
  155. package/dist/Popper/popperOptions.js +1 -0
  156. package/dist/Popper/typings.d.ts +2 -0
  157. package/dist/Radio/Radio.d.ts +2 -12
  158. package/dist/Radio/Radio.js +2 -6
  159. package/dist/Radio/RadioButton.d.ts +1 -1
  160. package/dist/Radio/RadioButton.js +4 -4
  161. package/dist/Radio/index.d.ts +1 -0
  162. package/dist/Radio/index.js +2 -1
  163. package/dist/Radio/typings.d.ts +1 -1
  164. package/dist/RadioGroup/RadioGroup.js +44 -16
  165. package/dist/RadioGroup/typings.d.ts +10 -0
  166. package/dist/Segmented/Segmented.d.ts +4 -0
  167. package/dist/Segmented/Segmented.js +208 -0
  168. package/dist/Segmented/index.d.ts +2 -0
  169. package/dist/Segmented/index.js +1 -0
  170. package/dist/Segmented/typings.d.ts +20 -0
  171. package/dist/Segmented/typings.js +5 -0
  172. package/dist/Select/SelectContext.d.ts +2 -1
  173. package/dist/Select/SelectContext.js +2 -1
  174. package/dist/Select/SelectCore.js +64 -15
  175. package/dist/Select/SelectDropdown.js +23 -15
  176. package/dist/Select/index.d.ts +1 -1
  177. package/dist/Select/typings.d.ts +26 -17
  178. package/dist/Select/useSelect.d.ts +35 -18
  179. package/dist/Select/useSelect.js +88 -33
  180. package/dist/Skeleton/typings.d.ts +1 -1
  181. package/dist/Slider/Button.d.ts +4 -0
  182. package/dist/Slider/Button.js +96 -0
  183. package/dist/Slider/Marker.d.ts +4 -0
  184. package/dist/Slider/Marker.js +31 -0
  185. package/dist/Slider/Slider.d.ts +4 -0
  186. package/dist/Slider/Slider.js +263 -0
  187. package/dist/Slider/SliderContext.d.ts +3 -0
  188. package/dist/Slider/SliderContext.js +2 -0
  189. package/dist/Slider/hooks/index.d.ts +5 -0
  190. package/dist/Slider/hooks/index.js +5 -0
  191. package/dist/Slider/hooks/useLifecycle.d.ts +5 -0
  192. package/dist/Slider/hooks/useLifecycle.js +50 -0
  193. package/dist/Slider/hooks/useMarks.d.ts +2 -0
  194. package/dist/Slider/hooks/useMarks.js +49 -0
  195. package/dist/Slider/hooks/useSlider.d.ts +38 -0
  196. package/dist/Slider/hooks/useSlider.js +227 -0
  197. package/dist/Slider/hooks/useSliderButton.d.ts +28 -0
  198. package/dist/Slider/hooks/useSliderButton.js +454 -0
  199. package/dist/Slider/hooks/useStops.d.ts +6 -0
  200. package/dist/Slider/hooks/useStops.js +47 -0
  201. package/dist/Slider/hooks/useWatch.d.ts +3 -0
  202. package/dist/Slider/hooks/useWatch.js +119 -0
  203. package/dist/Slider/index.d.ts +2 -0
  204. package/dist/Slider/index.js +1 -0
  205. package/dist/Slider/style/css.d.ts +1 -0
  206. package/dist/Slider/style/css.js +1 -0
  207. package/dist/Slider/style/index.d.ts +1 -0
  208. package/dist/Slider/style/index.js +1 -0
  209. package/dist/Slider/typings.d.ts +122 -0
  210. package/dist/Slider/typings.js +1 -0
  211. package/dist/Space/Space.d.ts +4 -0
  212. package/dist/Space/Space.js +125 -0
  213. package/dist/Space/SpaceItem.d.ts +7 -0
  214. package/dist/Space/SpaceItem.js +14 -0
  215. package/dist/Space/index.d.ts +3 -0
  216. package/dist/Space/index.js +2 -0
  217. package/dist/Space/typings.d.ts +26 -0
  218. package/dist/Space/typings.js +1 -0
  219. package/dist/Space/useSpace.d.ts +7 -0
  220. package/dist/Space/useSpace.js +105 -0
  221. package/dist/Statistic/Statistic.d.ts +4 -0
  222. package/dist/Statistic/Statistic.js +91 -0
  223. package/dist/Statistic/index.d.ts +2 -0
  224. package/dist/Statistic/index.js +1 -0
  225. package/dist/Statistic/typings.d.ts +28 -0
  226. package/dist/Statistic/typings.js +1 -0
  227. package/dist/Steps/Step.d.ts +4 -0
  228. package/dist/Steps/Step.js +247 -0
  229. package/dist/Steps/Steps.d.ts +5 -0
  230. package/dist/Steps/Steps.js +116 -0
  231. package/dist/Steps/index.d.ts +3 -0
  232. package/dist/Steps/index.js +2 -0
  233. package/dist/Steps/typings.d.ts +119 -0
  234. package/dist/Steps/typings.js +1 -0
  235. package/dist/Switch/Switch.js +2 -2
  236. package/dist/Switch/typings.d.ts +0 -1
  237. package/dist/Table/Table.js +17 -14
  238. package/dist/Table/TableBody.js +4 -4
  239. package/dist/Table/TableCell.js +53 -28
  240. package/dist/Table/TableColumn.d.ts +2 -2
  241. package/dist/Table/TableHeader.js +2 -2
  242. package/dist/Table/TableHeaderCell.js +2 -2
  243. package/dist/Table/hooks/useResize.js +0 -2
  244. package/dist/Table/hooks/useTable.d.ts +1 -1
  245. package/dist/Table/hooks/useTable.js +15 -10
  246. package/dist/Table/typings.d.ts +28 -12
  247. package/dist/Table/util.d.ts +1 -1
  248. package/dist/Table/util.js +8 -65
  249. package/dist/TableV2/index.d.ts +10 -0
  250. package/dist/TableV2/index.js +7 -0
  251. package/dist/TableV2/src/auto-resizer.d.ts +14 -0
  252. package/dist/TableV2/src/auto-resizer.js +1 -0
  253. package/dist/TableV2/src/cell.d.ts +21 -0
  254. package/dist/TableV2/src/cell.js +1 -0
  255. package/dist/TableV2/src/components/auto-resizer.d.ts +4 -0
  256. package/dist/TableV2/src/components/auto-resizer.js +32 -0
  257. package/dist/TableV2/src/components/cell.d.ts +4 -0
  258. package/dist/TableV2/src/components/cell.js +22 -0
  259. package/dist/TableV2/src/components/expand-icon.d.ts +12 -0
  260. package/dist/TableV2/src/components/expand-icon.js +29 -0
  261. package/dist/TableV2/src/components/header-cell.d.ts +4 -0
  262. package/dist/TableV2/src/components/header-cell.js +23 -0
  263. package/dist/TableV2/src/components/header-row.d.ts +17 -0
  264. package/dist/TableV2/src/components/header-row.js +41 -0
  265. package/dist/TableV2/src/components/header.d.ts +20 -0
  266. package/dist/TableV2/src/components/header.js +103 -0
  267. package/dist/TableV2/src/components/index.d.ts +10 -0
  268. package/dist/TableV2/src/components/index.js +7 -0
  269. package/dist/TableV2/src/components/row.d.ts +19 -0
  270. package/dist/TableV2/src/components/row.js +206 -0
  271. package/dist/TableV2/src/components/sort-icon.d.ts +9 -0
  272. package/dist/TableV2/src/components/sort-icon.js +14 -0
  273. package/dist/TableV2/src/composables/index.d.ts +6 -0
  274. package/dist/TableV2/src/composables/index.js +6 -0
  275. package/dist/TableV2/src/composables/use-auto-resize.d.ts +7 -0
  276. package/dist/TableV2/src/composables/use-auto-resize.js +55 -0
  277. package/dist/TableV2/src/composables/use-columns.d.ts +21 -0
  278. package/dist/TableV2/src/composables/use-columns.js +119 -0
  279. package/dist/TableV2/src/composables/use-data.d.ts +15 -0
  280. package/dist/TableV2/src/composables/use-data.js +62 -0
  281. package/dist/TableV2/src/composables/use-row.d.ts +34 -0
  282. package/dist/TableV2/src/composables/use-row.js +191 -0
  283. package/dist/TableV2/src/composables/use-scrollbar.d.ts +25 -0
  284. package/dist/TableV2/src/composables/use-scrollbar.js +117 -0
  285. package/dist/TableV2/src/composables/use-styles.d.ts +23 -0
  286. package/dist/TableV2/src/composables/use-styles.js +90 -0
  287. package/dist/TableV2/src/composables/utils.d.ts +3 -0
  288. package/dist/TableV2/src/composables/utils.js +29 -0
  289. package/dist/TableV2/src/constants.d.ts +18 -0
  290. package/dist/{Tree/Indent.js → TableV2/src/constants.js} +18 -21
  291. package/dist/TableV2/src/grid.d.ts +52 -0
  292. package/dist/TableV2/src/grid.js +1 -0
  293. package/dist/TableV2/src/header-cell.d.ts +13 -0
  294. package/dist/TableV2/src/header-cell.js +1 -0
  295. package/dist/TableV2/src/header-row.d.ts +10 -0
  296. package/dist/TableV2/src/header-row.js +1 -0
  297. package/dist/TableV2/src/header.d.ts +15 -0
  298. package/dist/TableV2/src/header.js +1 -0
  299. package/dist/TableV2/src/private.d.ts +1 -0
  300. package/dist/TableV2/src/private.js +1 -0
  301. package/dist/TableV2/src/renderers/cell.d.ts +14 -0
  302. package/dist/TableV2/src/renderers/cell.js +120 -0
  303. package/dist/TableV2/src/renderers/empty.d.ts +7 -0
  304. package/dist/TableV2/src/renderers/empty.js +11 -0
  305. package/dist/TableV2/src/renderers/footer.d.ts +7 -0
  306. package/dist/TableV2/src/renderers/footer.js +9 -0
  307. package/dist/TableV2/src/renderers/header-cell.d.ts +13 -0
  308. package/dist/TableV2/src/renderers/header-cell.js +92 -0
  309. package/dist/TableV2/src/renderers/header.d.ts +9 -0
  310. package/dist/TableV2/src/renderers/header.js +39 -0
  311. package/dist/TableV2/src/renderers/left-table.d.ts +32 -0
  312. package/dist/TableV2/src/renderers/left-table.js +15 -0
  313. package/dist/TableV2/src/renderers/main-table.d.ts +31 -0
  314. package/dist/TableV2/src/renderers/main-table.js +12 -0
  315. package/dist/TableV2/src/renderers/overlay.d.ts +3 -0
  316. package/dist/TableV2/src/renderers/overlay.js +9 -0
  317. package/dist/TableV2/src/renderers/right-table.d.ts +31 -0
  318. package/dist/TableV2/src/renderers/right-table.js +15 -0
  319. package/dist/TableV2/src/renderers/row.d.ts +11 -0
  320. package/dist/TableV2/src/renderers/row.js +96 -0
  321. package/dist/TableV2/src/row.d.ts +51 -0
  322. package/dist/TableV2/src/row.js +1 -0
  323. package/dist/TableV2/src/table-grid.d.ts +43 -0
  324. package/dist/TableV2/src/table-grid.js +283 -0
  325. package/dist/TableV2/src/table-v2.d.ts +31 -0
  326. package/dist/TableV2/src/table-v2.js +311 -0
  327. package/dist/TableV2/src/table.d.ts +196 -0
  328. package/dist/TableV2/src/table.js +1 -0
  329. package/dist/TableV2/src/tokens.d.ts +11 -0
  330. package/dist/TableV2/src/tokens.js +6 -0
  331. package/dist/TableV2/src/types.d.ts +94 -0
  332. package/dist/TableV2/src/types.js +1 -0
  333. package/dist/TableV2/src/use-table.d.ts +48 -0
  334. package/dist/TableV2/src/use-table.js +197 -0
  335. package/dist/TableV2/src/utils.d.ts +5 -0
  336. package/dist/TableV2/src/utils.js +47 -0
  337. package/dist/Tabs/Tabs.js +1 -1
  338. package/dist/Tabs/typings.d.ts +1 -3
  339. package/dist/Tag/Tag.js +1 -1
  340. package/dist/Tag/typings.d.ts +1 -1
  341. package/dist/Text/Text.d.ts +4 -0
  342. package/dist/Text/Text.js +84 -0
  343. package/dist/Text/index.d.ts +2 -0
  344. package/dist/Text/index.js +1 -0
  345. package/dist/Text/typings.d.ts +15 -0
  346. package/dist/Text/typings.js +1 -0
  347. package/dist/TimePicker/TimePicker.js +6 -7
  348. package/dist/TimePicker/TimePickerPanel.js +12 -2
  349. package/dist/TimePicker/TimePickerRange.js +19 -8
  350. package/dist/Tooltip/Tooltip.js +31 -8
  351. package/dist/Tooltip/typings.d.ts +4 -0
  352. package/dist/Tour/Content.d.ts +9 -0
  353. package/dist/Tour/Content.js +81 -0
  354. package/dist/Tour/Mask.d.ts +12 -0
  355. package/dist/Tour/Mask.js +100 -0
  356. package/dist/Tour/Step.d.ts +7 -0
  357. package/dist/Tour/Step.js +119 -0
  358. package/dist/Tour/Tour.d.ts +6 -0
  359. package/dist/Tour/Tour.js +237 -0
  360. package/dist/Tour/context.d.ts +4 -0
  361. package/dist/Tour/context.js +9 -0
  362. package/dist/Tour/helper.d.ts +39 -0
  363. package/dist/Tour/helper.js +286 -0
  364. package/dist/Tour/index.d.ts +3 -0
  365. package/dist/Tour/index.js +2 -0
  366. package/dist/Tour/typings.d.ts +318 -0
  367. package/dist/Tour/typings.js +38 -0
  368. package/dist/Transfer/List.js +58 -59
  369. package/dist/Transfer/ListItem.d.ts +2 -2
  370. package/dist/Transfer/Transfer.d.ts +2 -2
  371. package/dist/Transfer/Transfer.js +84 -70
  372. package/dist/Transfer/index.d.ts +1 -1
  373. package/dist/Transfer/operation.js +8 -10
  374. package/dist/Transfer/typings/index.d.ts +49 -38
  375. package/dist/Transfer/typings/list.d.ts +11 -11
  376. package/dist/Transfer/typings/listBody.d.ts +2 -2
  377. package/dist/Transition/Transition.d.ts +1 -0
  378. package/dist/Transition/Transition.js +8 -7
  379. package/dist/Tree/CollapseTransition.d.ts +7 -0
  380. package/dist/Tree/CollapseTransition.js +60 -0
  381. package/dist/Tree/Tree.d.ts +3 -140
  382. package/dist/Tree/Tree.js +351 -77
  383. package/dist/Tree/TreeContext.d.ts +9 -0
  384. package/dist/Tree/TreeContext.js +14 -0
  385. package/dist/Tree/TreeNode.d.ts +5 -3
  386. package/dist/Tree/TreeNode.js +321 -331
  387. package/dist/Tree/TreeNodeContent.d.ts +9 -0
  388. package/dist/Tree/TreeNodeContent.js +22 -0
  389. package/dist/Tree/index.d.ts +3 -8
  390. package/dist/Tree/index.js +1 -4
  391. package/dist/Tree/model/node.d.ts +62 -0
  392. package/dist/Tree/model/node.js +601 -0
  393. package/dist/Tree/model/tree-store.d.ts +52 -0
  394. package/dist/Tree/model/tree-store.js +510 -0
  395. package/dist/Tree/model/useDragNode.d.ts +30 -0
  396. package/dist/Tree/model/useDragNode.js +293 -0
  397. package/dist/Tree/model/useKeydown.d.ts +0 -0
  398. package/dist/Tree/model/useKeydown.js +104 -0
  399. package/dist/Tree/model/useNodeExpandEventBroadcast.d.ts +15 -0
  400. package/dist/Tree/model/useNodeExpandEventBroadcast.js +54 -0
  401. package/dist/Tree/model/util.d.ts +7 -0
  402. package/dist/Tree/model/util.js +24 -0
  403. package/dist/Tree/typings.d.ts +227 -114
  404. package/dist/TreeSelect/TreeSelect.d.ts +2 -10
  405. package/dist/TreeSelect/TreeSelect.js +90 -566
  406. package/dist/TreeSelect/TreeSelectOption.d.ts +6 -0
  407. package/dist/TreeSelect/TreeSelectOption.js +62 -0
  408. package/dist/TreeSelect/Utils.d.ts +10 -3
  409. package/dist/TreeSelect/Utils.js +37 -19
  410. package/dist/TreeSelect/cacheOptions.d.ts +9 -0
  411. package/dist/TreeSelect/cacheOptions.js +22 -0
  412. package/dist/TreeSelect/index.d.ts +0 -1
  413. package/dist/TreeSelect/typings.d.ts +11 -63
  414. package/dist/TreeSelect/useSelect.d.ts +78 -0
  415. package/dist/TreeSelect/useSelect.js +104 -0
  416. package/dist/TreeSelect/useTree.d.ts +125 -0
  417. package/dist/TreeSelect/useTree.js +285 -0
  418. package/dist/Upload/UploadContent.js +3 -1
  419. package/dist/Upload/ajax.js +3 -0
  420. package/dist/Upload/typings.d.ts +5 -1
  421. package/dist/Util/PopupManager.js +1 -1
  422. package/dist/Util/aria.d.ts +1 -1
  423. package/dist/Util/aria.js +12 -12
  424. package/dist/Util/base.d.ts +36 -6
  425. package/dist/Util/base.js +180 -13
  426. package/dist/Util/easings.d.ts +1 -0
  427. package/dist/Util/easings.js +8 -0
  428. package/dist/Util/error.d.ts +3 -0
  429. package/dist/Util/error.js +39 -0
  430. package/dist/Util/icons.d.ts +2 -0
  431. package/dist/Util/icons.js +15 -0
  432. package/dist/Util/index.d.ts +6 -2
  433. package/dist/Util/index.js +6 -2
  434. package/dist/Util/position.d.ts +9 -0
  435. package/dist/Util/position.js +53 -0
  436. package/dist/Util/raf.d.ts +4 -0
  437. package/dist/Util/raf.js +10 -0
  438. package/dist/Util/scroll.d.ts +9 -0
  439. package/dist/Util/scroll.js +72 -0
  440. package/dist/Util/throttleByRaf.d.ts +4 -0
  441. package/dist/Util/throttleByRaf.js +21 -0
  442. package/dist/VirtualList/builders/build-grid.d.ts +5 -0
  443. package/dist/VirtualList/builders/build-grid.js +561 -0
  444. package/dist/VirtualList/builders/build-list.d.ts +7 -0
  445. package/dist/VirtualList/builders/build-list.js +408 -0
  446. package/dist/VirtualList/components/dynamic-size-grid.d.ts +15 -0
  447. package/dist/VirtualList/components/dynamic-size-grid.js +242 -0
  448. package/dist/VirtualList/components/dynamic-size-list.d.ts +7 -0
  449. package/dist/VirtualList/components/dynamic-size-list.js +186 -0
  450. package/dist/VirtualList/components/fixed-size-grid.d.ts +4 -0
  451. package/dist/VirtualList/components/fixed-size-grid.js +161 -0
  452. package/dist/VirtualList/components/fixed-size-list.d.ts +7 -0
  453. package/dist/VirtualList/components/fixed-size-list.js +103 -0
  454. package/dist/VirtualList/components/scrollbar.d.ts +5 -0
  455. package/dist/VirtualList/components/scrollbar.js +272 -0
  456. package/dist/VirtualList/defaults.d.ts +26 -0
  457. package/dist/VirtualList/defaults.js +24 -0
  458. package/dist/VirtualList/hooks/use-cache.d.ts +1 -0
  459. package/dist/VirtualList/hooks/use-cache.js +16 -0
  460. package/dist/VirtualList/hooks/use-grid-touch.d.ts +8 -0
  461. package/dist/VirtualList/hooks/use-grid-touch.js +58 -0
  462. package/dist/VirtualList/hooks/use-grid-wheel.d.ts +12 -0
  463. package/dist/VirtualList/hooks/use-grid-wheel.js +48 -0
  464. package/dist/VirtualList/hooks/use-wheel.d.ts +12 -0
  465. package/dist/VirtualList/hooks/use-wheel.js +41 -0
  466. package/dist/VirtualList/index.d.ts +9 -0
  467. package/dist/VirtualList/index.js +6 -0
  468. package/dist/VirtualList/props.d.ts +95 -0
  469. package/dist/VirtualList/props.js +42 -0
  470. package/dist/VirtualList/types.d.ts +151 -0
  471. package/dist/VirtualList/types.js +1 -0
  472. package/dist/VirtualList/utils.d.ts +11 -0
  473. package/dist/VirtualList/utils.js +56 -0
  474. package/dist/Watermark/Watermark.d.ts +4 -0
  475. package/dist/Watermark/Watermark.js +257 -0
  476. package/dist/Watermark/helper.d.ts +50 -0
  477. package/dist/Watermark/helper.js +253 -0
  478. package/dist/Watermark/index.d.ts +2 -0
  479. package/dist/Watermark/index.js +1 -0
  480. package/dist/Watermark/typings.d.ts +93 -0
  481. package/dist/Watermark/typings.js +1 -0
  482. package/dist/config/Constants.d.ts +3 -0
  483. package/dist/config/Constants.js +8 -0
  484. package/dist/hooks/index.d.ts +2 -0
  485. package/dist/hooks/index.js +1 -0
  486. package/dist/hooks/popperPropsUtils.js +1 -1
  487. package/dist/hooks/treePropsUtils.d.ts +3 -3
  488. package/dist/hooks/treePropsUtils.js +2 -2
  489. package/dist/hooks/useClassNames.d.ts +1 -0
  490. package/dist/hooks/useClickOutside.js +25 -9
  491. package/dist/hooks/useCommonProps.d.ts +4 -0
  492. package/dist/hooks/useCommonProps.js +12 -3
  493. package/dist/hooks/useConfigProvider.d.ts +27 -0
  494. package/dist/hooks/useConfigProvider.js +78 -0
  495. package/dist/hooks/useLockscreen.d.ts +6 -0
  496. package/dist/hooks/useLockscreen.js +45 -0
  497. package/dist/hooks/useResizeObserver.d.ts +1 -1
  498. package/dist/hooks/useResizeObserver.js +7 -7
  499. package/dist/index.css +1 -1
  500. package/dist/index.d.ts +50 -22
  501. package/dist/index.js +27 -10
  502. package/dist/locale/en.d.ts +4 -1
  503. package/dist/locale/en.js +4 -1
  504. package/dist/locale/zhCn.d.ts +4 -1
  505. package/dist/locale/zhCn.js +4 -1
  506. package/package.json +5 -3
  507. package/theme-chalk/affix.scss +7 -0
  508. package/theme-chalk/alert.scss +115 -0
  509. package/theme-chalk/anchor-link.scss +45 -0
  510. package/theme-chalk/anchor.scss +93 -0
  511. package/theme-chalk/aside.scss +8 -8
  512. package/theme-chalk/backtop.scss +29 -0
  513. package/theme-chalk/breadcrumb-item.scss +58 -0
  514. package/theme-chalk/breadcrumb.scss +5 -61
  515. package/theme-chalk/button-group.scss +80 -80
  516. package/theme-chalk/button.scss +304 -304
  517. package/theme-chalk/calendar/date-table.scss +164 -164
  518. package/theme-chalk/cascader-panel.scss +57 -82
  519. package/theme-chalk/cascader.scss +206 -160
  520. package/theme-chalk/checkbox.scss +38 -0
  521. package/theme-chalk/collapse-item.scss +72 -0
  522. package/theme-chalk/collapse.scss +21 -76
  523. package/theme-chalk/color/index.scss +20 -20
  524. package/theme-chalk/common/popup.scss +47 -0
  525. package/theme-chalk/common/transition.scss +142 -142
  526. package/theme-chalk/common/var.scss +62 -6
  527. package/theme-chalk/container.scss +14 -14
  528. package/theme-chalk/dark/css-vars.scss +39 -39
  529. package/theme-chalk/dark/var.scss +225 -225
  530. package/theme-chalk/date-picker.scss +12 -12
  531. package/theme-chalk/dialog.scss +145 -137
  532. package/theme-chalk/drawer.scss +252 -246
  533. package/theme-chalk/footer.scss +12 -12
  534. package/theme-chalk/form-item.scss +437 -0
  535. package/theme-chalk/form.scss +23 -361
  536. package/theme-chalk/header.scss +12 -12
  537. package/theme-chalk/index.scss +21 -1
  538. package/theme-chalk/input/input-range.scss +2 -1
  539. package/theme-chalk/input/input.scss +458 -424
  540. package/theme-chalk/input-number.scss +82 -75
  541. package/theme-chalk/link.scss +87 -87
  542. package/theme-chalk/main.scss +14 -14
  543. package/theme-chalk/menu.scss +353 -353
  544. package/theme-chalk/message-box.scss +160 -133
  545. package/theme-chalk/message.scss +54 -128
  546. package/theme-chalk/mixins/_button.scss +224 -224
  547. package/theme-chalk/mixins/_col.scss +33 -33
  548. package/theme-chalk/mixins/_var.scss +67 -67
  549. package/theme-chalk/mixins/config.scss +5 -5
  550. package/theme-chalk/mixins/function.scss +99 -99
  551. package/theme-chalk/mixins/mixins.scss +237 -240
  552. package/theme-chalk/mixins/utils.scss +39 -39
  553. package/theme-chalk/notification.scss +96 -143
  554. package/theme-chalk/overlay.scss +17 -0
  555. package/theme-chalk/page-header.scss +60 -0
  556. package/theme-chalk/popper.scss +104 -104
  557. package/theme-chalk/radio-button.scss +169 -169
  558. package/theme-chalk/radio.scss +3 -3
  559. package/theme-chalk/segmented.scss +186 -0
  560. package/theme-chalk/select/index.scss +278 -272
  561. package/theme-chalk/slider.scss +212 -0
  562. package/theme-chalk/space.scss +20 -0
  563. package/theme-chalk/statistic.scss +35 -0
  564. package/theme-chalk/step.scss +320 -0
  565. package/theme-chalk/steps.scss +22 -0
  566. package/theme-chalk/switch.scss +300 -300
  567. package/theme-chalk/table-v2.scss +237 -0
  568. package/theme-chalk/table.scss +461 -482
  569. package/theme-chalk/tag.scss +181 -181
  570. package/theme-chalk/text.scss +48 -0
  571. package/theme-chalk/time-range-picker.scss +1 -1
  572. package/theme-chalk/tooltip.scss +2 -2
  573. package/theme-chalk/tour.scss +170 -0
  574. package/theme-chalk/transfer.scss +38 -12
  575. package/theme-chalk/transition.scss +34 -4
  576. package/theme-chalk/tree-select.scss +35 -19
  577. package/theme-chalk/tree.scss +136 -0
  578. package/theme-chalk/var.scss +83 -83
  579. package/theme-chalk/virtual-list.scss +40 -0
  580. package/dist/Input/Input.1.d.ts +0 -16
  581. package/dist/Input/Input.1.js +0 -376
  582. package/dist/Tree/DirectoryTree.d.ts +0 -15
  583. package/dist/Tree/DirectoryTree.js +0 -183
  584. package/dist/Tree/DropIndicator.d.ts +0 -8
  585. package/dist/Tree/DropIndicator.js +0 -34
  586. package/dist/Tree/Indent.d.ts +0 -9
  587. package/dist/Tree/MotionTreeNode.d.ts +0 -14
  588. package/dist/Tree/MotionTreeNode.js +0 -125
  589. package/dist/Tree/NodeList.d.ts +0 -50
  590. package/dist/Tree/NodeList.js +0 -301
  591. package/dist/Tree/RCTree.d.ts +0 -248
  592. package/dist/Tree/RCTree.js +0 -1216
  593. package/dist/Tree/contextTypes.d.ts +0 -69
  594. package/dist/Tree/contextTypes.js +0 -9
  595. package/dist/Tree/typings.tsx--bak +0 -245
  596. package/dist/Tree/useUnmount.d.ts +0 -5
  597. package/dist/Tree/useUnmount.js +0 -34
  598. package/dist/Tree/util.d.ts +0 -51
  599. package/dist/Tree/util.js +0 -303
  600. package/dist/Tree/utils/conductUtil.d.ts +0 -17
  601. package/dist/Tree/utils/conductUtil.js +0 -209
  602. package/dist/Tree/utils/dictUtil.d.ts +0 -13
  603. package/dist/Tree/utils/dictUtil.js +0 -75
  604. package/dist/Tree/utils/diffUtil.d.ts +0 -7
  605. package/dist/Tree/utils/diffUtil.js +0 -48
  606. package/dist/Tree/utils/dropIndicator.d.ts +0 -11
  607. package/dist/Tree/utils/dropIndicator.js +0 -36
  608. package/dist/Tree/utils/iconUtil.d.ts +0 -5
  609. package/dist/Tree/utils/iconUtil.js +0 -62
  610. package/dist/Tree/utils/keyUtil.d.ts +0 -2
  611. package/dist/Tree/utils/keyUtil.js +0 -3
  612. package/dist/Tree/utils/motion.d.ts +0 -10
  613. package/dist/Tree/utils/motion.js +0 -54
  614. package/dist/Tree/utils/pickAttrs.d.ts +0 -11
  615. package/dist/Tree/utils/pickAttrs.js +0 -51
  616. package/dist/Tree/utils/treeUtil.d.ts +0 -86
  617. package/dist/Tree/utils/treeUtil.js +0 -364
  618. package/theme-chalk/button/_mixins.scss +0 -317
  619. package/theme-chalk/button/button-group.scss +0 -83
  620. package/theme-chalk/button/button.scss +0 -382
  621. package/theme-chalk/button/index.scss +0 -2
  622. package/theme-chalk/button--bak/_mixins.scss +0 -317
  623. package/theme-chalk/button--bak/button-group.scss +0 -83
  624. package/theme-chalk/button--bak/button.scss +0 -382
  625. package/theme-chalk/button--bak/index.scss +0 -2
  626. package/theme-chalk/calendar/date-table.scss--bak +0 -156
  627. package/theme-chalk/input/input.scss--bak +0 -578
  628. package/theme-chalk/link.scss--bak +0 -99
  629. package/theme-chalk/popper.scss--bak +0 -86
  630. package/theme-chalk/radio-button.scss--bak +0 -128
  631. package/theme-chalk/select/index.scss--bak +0 -247
  632. package/theme-chalk/switch.scss--bak +0 -273
  633. package/theme-chalk/tag.scss--bak +0 -203
  634. package/theme-chalk/tree/_directory.scss +0 -73
  635. package/theme-chalk/tree/_tree.scss +0 -401
  636. package/theme-chalk/tree/index.scss +0 -2
@@ -0,0 +1,285 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
3
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
6
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
7
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
8
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
12
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
13
+ import isEqual from 'lodash/isEqual';
14
+ import isNil from 'lodash/isNil';
15
+ import pick from 'lodash/pick';
16
+ import React, { useCallback, useEffect, useMemo, useRef } from 'react';
17
+ import { treeAllProps } from "../hooks/treePropsUtils";
18
+ import { escapeStringRegexp, isEmpty, isFunction, nextTick } from "../Util";
19
+ import TreeSelectOption from "./TreeSelectOption";
20
+ import { isValidArray, isValidValue, toValidArray, treeEach, treeFind } from "./Utils"; // 假设工具函数已存在
21
+
22
+ var useTree = function useTree(props, _ref) {
23
+ var selectRef = _ref.selectRef,
24
+ treeRef = _ref.treeRef,
25
+ key = _ref.key,
26
+ value = _ref.value,
27
+ setValue = _ref.setValue;
28
+ var isEffect = useRef(true);
29
+
30
+ // 监听 value 变化并同步树的选中状态
31
+ useEffect(function () {
32
+ if (props.showCheckbox && treeRef.current) {
33
+ var treeInstance = treeRef.current;
34
+ var currentKeys = treeInstance.getCheckedKeys();
35
+ if (!isEqual(currentKeys, toValidArray(value))) {
36
+ treeInstance.setCheckedKeys(toValidArray(value));
37
+ }
38
+ }
39
+ }, [value]);
40
+
41
+ // 计算 propsMap
42
+ var propsMap = useMemo(function () {
43
+ return _objectSpread({
44
+ value: key,
45
+ label: 'label',
46
+ children: 'children',
47
+ disabled: 'disabled',
48
+ isLeaf: 'isLeaf'
49
+ }, props.props);
50
+ }, [key, props.props]);
51
+
52
+ // 获取节点属性值
53
+ var getNodeValByProp = useCallback(function (prop, data) {
54
+ var propVal = propsMap[prop];
55
+ if (isFunction(propVal)) {
56
+ var _treeRef$current;
57
+ // @ts-ignore
58
+ return propVal(data, (_treeRef$current = treeRef.current) === null || _treeRef$current === void 0 ? void 0 : _treeRef$current.getNode(getNodeValByProp('value', data)));
59
+ }
60
+ return data[propVal];
61
+ }, [propsMap, treeRef]);
62
+
63
+ // 默认展开父节点的 Key
64
+ var defaultExpandedParentKeys = useMemo(function () {
65
+ return toValidArray(value).map(function (val) {
66
+ return treeFind(props.data || [], function (data) {
67
+ return getNodeValByProp('value', data) === val;
68
+ }, function (data) {
69
+ return getNodeValByProp('children', data);
70
+ }, function (data, index, array, parent) {
71
+ return parent && getNodeValByProp('value', parent);
72
+ });
73
+ }).filter(isValidValue);
74
+ }, [value, props.data, getNodeValByProp]);
75
+
76
+ // 缓存选项
77
+ var cacheOptions = useMemo(function () {
78
+ // if (!props.renderAfterExpand && !props.lazy) {
79
+ // return [];
80
+ // }
81
+
82
+ var options = [];
83
+ treeEach([].concat(_toConsumableArray(props.data || []), _toConsumableArray(props.cacheData || [])), function (node) {
84
+ var val = getNodeValByProp('value', node);
85
+ options.push({
86
+ value: val,
87
+ currentLabel: getNodeValByProp('label', node),
88
+ label: getNodeValByProp('label', node),
89
+ isDisabled: getNodeValByProp('disabled', node)
90
+ });
91
+ }, function (data) {
92
+ return getNodeValByProp('children', data);
93
+ });
94
+ return options;
95
+ }, [props.data, props.cacheData, getNodeValByProp]);
96
+ useEffect(function () {
97
+ if (isEffect.current) {
98
+ if (!props.multiple) {
99
+ var optionData = cacheOptions.find(function (item) {
100
+ return item.value === value;
101
+ });
102
+ if (optionData) {
103
+ if (treeRef.current.getNode(value)) {
104
+ var _treeRef$current2;
105
+ (_treeRef$current2 = treeRef.current) === null || _treeRef$current2 === void 0 || _treeRef$current2.setCurrentNode(treeRef.current.getNode(value));
106
+ }
107
+ }
108
+ }
109
+ } else {
110
+ isEffect.current = true;
111
+ }
112
+ }, [value]);
113
+
114
+ // 获取子节点选中的 Key
115
+ var getChildCheckedKeys = useCallback(function () {
116
+ var _treeRef$current3;
117
+ return (_treeRef$current3 = treeRef.current) === null || _treeRef$current3 === void 0 ? void 0 : _treeRef$current3.getCheckedKeys().filter(function (item) {
118
+ var _treeRef$current4;
119
+ var node = (_treeRef$current4 = treeRef.current) === null || _treeRef$current4 === void 0 ? void 0 : _treeRef$current4.getNode(item);
120
+ return !isNil(node) && isEmpty(node.childNodes);
121
+ });
122
+ }, [treeRef]);
123
+ var expandOnClickNode = useMemo(function () {
124
+ return !props.checkStrictly && props.expandOnClickNode;
125
+ }, [props.checkStrictly, props.expandOnClickNode]);
126
+ var defaultExpandedKeys = useMemo(function () {
127
+ return props.defaultExpandedKeys ? [].concat(_toConsumableArray(props.defaultExpandedKeys), _toConsumableArray(defaultExpandedParentKeys)) : defaultExpandedParentKeys;
128
+ }, [props.defaultExpandedKeys, defaultExpandedParentKeys]);
129
+
130
+ // 渲染内容
131
+ var renderContent = useCallback(function (_ref2) {
132
+ var node = _ref2.node,
133
+ data = _ref2.data,
134
+ store = _ref2.store;
135
+ return /*#__PURE__*/React.createElement(TreeSelectOption, {
136
+ value: getNodeValByProp('value', data),
137
+ label: getNodeValByProp('label', data),
138
+ disabled: getNodeValByProp('disabled', data),
139
+ visible: node.visible
140
+ }, props.renderContent ? props.renderContent({
141
+ node: node,
142
+ data: data,
143
+ store: store
144
+ }) : props.children);
145
+ }, [getNodeValByProp, props]);
146
+
147
+ // 过滤节点方法
148
+ var filterNodeMethod = useCallback(function (val, data, node) {
149
+ if (props.filterNodeMethod) {
150
+ return props.filterNodeMethod(val, data, node);
151
+ }
152
+ if (!val) {
153
+ return true;
154
+ }
155
+ var regexp = new RegExp(escapeStringRegexp(val), 'i');
156
+ return regexp.test(getNodeValByProp('label', data) || '');
157
+ }, [props, getNodeValByProp]);
158
+
159
+ // 节点点击事件
160
+ var onNodeClick = useCallback(function (data, node, treeNodeRef, e) {
161
+ var _props$onNodeClick;
162
+ (_props$onNodeClick = props.onNodeClick) === null || _props$onNodeClick === void 0 || _props$onNodeClick.call(props, data, node, treeNodeRef, e);
163
+ if (props.showCheckbox && props.checkOnClickNode) {
164
+ return;
165
+ }
166
+ if (!props.showCheckbox && (props.checkStrictly || node.isLeaf)) {
167
+ if (!getNodeValByProp('disabled', data)) {
168
+ var _selectRef$current;
169
+ var val = (_selectRef$current = selectRef.current) === null || _selectRef$current === void 0 ? void 0 : _selectRef$current.onChoose(getNodeValByProp('value', data), data, e);
170
+ isEffect.current = false;
171
+ setValue(val);
172
+ }
173
+ } else if (props.expandOnClickNode) {
174
+ // treeNodeRef.current.handleExpandIconClick();
175
+ }
176
+ }, [props, getNodeValByProp, selectRef, setValue]);
177
+
178
+ // 节点勾选事件
179
+ var onCheck = useCallback(function (data, params) {
180
+ var _treeRef$current5;
181
+ if (!props.showCheckbox) {
182
+ return;
183
+ }
184
+ var controlledValue = null;
185
+ var dataValue = getNodeValByProp('value', data);
186
+ var dataMap = {};
187
+ treeEach([(_treeRef$current5 = treeRef.current) === null || _treeRef$current5 === void 0 ? void 0 : _treeRef$current5.store.root], function (node) {
188
+ return dataMap[node.key] = node;
189
+ }, function (node) {
190
+ return node.childNodes;
191
+ });
192
+ var uncachedCheckedKeys = params.checkedKeys;
193
+ var cachedKeys = props.multiple ? toValidArray(value).filter(function (item) {
194
+ return !(item in dataMap) && !uncachedCheckedKeys.includes(item);
195
+ }) : [];
196
+ var newCheckedKeys = cachedKeys.concat(uncachedCheckedKeys);
197
+ if (props.checkStrictly) {
198
+ var _selectRef$current2;
199
+ var res = null;
200
+ if (props.multiple) {
201
+ res = newCheckedKeys;
202
+ } else {
203
+ res = newCheckedKeys.includes(dataValue) ? dataValue : undefined;
204
+ }
205
+ isEffect.current = false;
206
+ var val = (_selectRef$current2 = selectRef.current) === null || _selectRef$current2 === void 0 ? void 0 : _selectRef$current2.onChoose(dataValue, cacheOptions.find(function (cache) {
207
+ return cache.value === dataValue;
208
+ }));
209
+ controlledValue = val;
210
+ } else {
211
+ if (props.multiple) {
212
+ var _selectRef$current3;
213
+ // const childKeys = getChildCheckedKeys();
214
+ isEffect.current = false;
215
+ var _val = (_selectRef$current3 = selectRef.current) === null || _selectRef$current3 === void 0 ? void 0 : _selectRef$current3.onChoose(dataValue, cacheOptions.find(function (cache) {
216
+ return cache.value === dataValue;
217
+ }));
218
+ controlledValue = _val;
219
+ } else {
220
+ var _selectRef$current4;
221
+ var firstLeaf = treeFind([data], function (item) {
222
+ return !isValidArray(getNodeValByProp('children', item)) && !getNodeValByProp('disabled', item);
223
+ }, function (item) {
224
+ return getNodeValByProp('children', item);
225
+ });
226
+ var firstLeafKey = firstLeaf ? getNodeValByProp('value', firstLeaf) : undefined;
227
+ var hasCheckedChild = isValidValue(value) && !!treeFind([data], function (item) {
228
+ return getNodeValByProp('value', item) === value;
229
+ }, function (item) {
230
+ return getNodeValByProp('children', item);
231
+ });
232
+ (_selectRef$current4 = selectRef.current) === null || _selectRef$current4 === void 0 || _selectRef$current4.onChoose(firstLeafKey === value || hasCheckedChild ? undefined : firstLeafKey, firstLeaf);
233
+ controlledValue = firstLeafKey === value || hasCheckedChild ? undefined : firstLeafKey;
234
+ }
235
+ }
236
+ setValue(controlledValue);
237
+ nextTick(function () {
238
+ var _props$onCheck;
239
+ var _checkedKeys = toValidArray(controlledValue);
240
+ treeRef.current.setCheckedKeys(_checkedKeys);
241
+ (_props$onCheck = props.onCheck) === null || _props$onCheck === void 0 || _props$onCheck.call(props, data, {
242
+ checkedKeys: treeRef.current.getCheckedKeys(),
243
+ checkedNodes: treeRef.current.getCheckedNodes(),
244
+ halfCheckedKeys: treeRef.current.getHalfCheckedKeys(),
245
+ halfCheckedNodes: treeRef.current.getHalfCheckedNodes()
246
+ });
247
+ });
248
+ // selectRef.current?.focus();
249
+ }, [props, getNodeValByProp, treeRef, value, setValue, selectRef, cacheOptions]);
250
+
251
+ // 节点展开事件
252
+ var onNodeExpand = useCallback(function (data, node, treeNodeRef) {
253
+ var _props$onNodeExpand;
254
+ (_props$onNodeExpand = props.onNodeExpand) === null || _props$onNodeExpand === void 0 || _props$onNodeExpand.call(props, data, node, treeNodeRef);
255
+ nextTick(function () {
256
+ if (!props.checkStrictly && props.lazy && props.multiple && node.checked) {
257
+ var _treeRef$current6, _treeRef$current7, _props$onChange;
258
+ var dataMap = {};
259
+ var uncachedCheckedKeys = (_treeRef$current6 = treeRef.current) === null || _treeRef$current6 === void 0 ? void 0 : _treeRef$current6.getCheckedKeys();
260
+ treeEach([(_treeRef$current7 = treeRef.current) === null || _treeRef$current7 === void 0 ? void 0 : _treeRef$current7.store.root], function (item) {
261
+ return dataMap[item.key] = item;
262
+ }, function (item) {
263
+ return item.childNodes;
264
+ });
265
+ var cachedKeys = toValidArray(value).filter(function (item) {
266
+ return !(item in dataMap) && !uncachedCheckedKeys.includes(item);
267
+ });
268
+ var childKeys = getChildCheckedKeys();
269
+ (_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, cachedKeys.concat(childKeys));
270
+ }
271
+ });
272
+ }, [props, treeRef, value, getChildCheckedKeys]);
273
+ return _objectSpread(_objectSpread({}, pick(props, treeAllProps)), {}, {
274
+ nodeKey: key,
275
+ expandOnClickNode: expandOnClickNode,
276
+ defaultExpandedKeys: defaultExpandedKeys,
277
+ renderContent: renderContent,
278
+ filterNodeMethod: filterNodeMethod,
279
+ onNodeClick: onNodeClick,
280
+ onCheck: onCheck,
281
+ onNodeExpand: onNodeExpand,
282
+ cacheOptions: cacheOptions
283
+ });
284
+ };
285
+ export default useTree;
@@ -32,6 +32,7 @@ var UploadContent = /*#__PURE__*/forwardRef(function (props, ref) {
32
32
  data = props.data,
33
33
  method = props.method,
34
34
  withCredentials = props.withCredentials,
35
+ errorStatus = props.errorStatus,
35
36
  filename = props.name,
36
37
  action = props.action,
37
38
  _onProgress = props.onProgress,
@@ -56,6 +57,7 @@ var UploadContent = /*#__PURE__*/forwardRef(function (props, ref) {
56
57
  var options = {
57
58
  headers: headers || {},
58
59
  withCredentials: withCredentials,
60
+ errorStatus: errorStatus,
59
61
  file: rawFile,
60
62
  data: data,
61
63
  method: method,
@@ -99,7 +101,7 @@ var UploadContent = /*#__PURE__*/forwardRef(function (props, ref) {
99
101
  _request.then(options.onSuccess, options.onError);
100
102
  }
101
103
  }
102
- }, [action, data, filename, headers, httpRequest, method, _onError, _onProgress, _onSuccess, withCredentials]);
104
+ }, [action, data, errorStatus, filename, headers, httpRequest, method, _onError, _onProgress, _onSuccess, withCredentials]);
103
105
  var upload = useCallback( /*#__PURE__*/function () {
104
106
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(rawFile) {
105
107
  var hookResult, file;
@@ -59,6 +59,9 @@ export var ajaxUpload = function ajaxUpload(option) {
59
59
  option.onError(getError(action, option, xhr));
60
60
  });
61
61
  xhr.addEventListener('load', function () {
62
+ if (option.errorStatus && option.errorStatus(xhr)) {
63
+ return option.onError(getError(action, option, xhr));
64
+ }
62
65
  if (xhr.status < 200 || xhr.status >= 300) {
63
66
  return option.onError(getError(action, option, xhr));
64
67
  }
@@ -17,6 +17,8 @@ export interface UploadBaseProps {
17
17
  drag?: boolean;
18
18
  /** 支持发送 cookie 凭证信息 */
19
19
  withCredentials?: boolean;
20
+ /** 自定义上传请求的错误判断 */
21
+ errorStatus?: (xhr: XMLHttpRequest) => boolean;
20
22
  /** 是否显示已上传文件列表 */
21
23
  showFileList?: boolean;
22
24
  /** 接受上传的文件类型 */
@@ -81,7 +83,7 @@ export interface UploadRef {
81
83
  /** 手动移除文件。 file 和rawFile 已被合并。 rawFile 将在 v2.2.0 中移除 */
82
84
  handleRemove: (file: UploadFile | UploadRawFile) => void;
83
85
  }
84
- export interface UploadProps extends UploadBaseProps, UploadHooks, BaseProps, NativeProps {
86
+ export interface UploadProps extends UploadBaseProps, UploadHooks, BaseProps, NativeProps<'--el-upload-dragger-padding-horizontal' | '--el-upload-dragger-padding-vertical'> {
85
87
  /** 缩略图模板的内容 */
86
88
  formatter?: (file: UploadFile) => React.ReactElement;
87
89
  /** 触发文件选择框的内容 */
@@ -113,6 +115,8 @@ export interface UploadRequestOptions {
113
115
  onError: (evt: UploadAjaxError) => void;
114
116
  onProgress: (evt: UploadProgressEvent) => void;
115
117
  onSuccess: (response: any) => void;
118
+ /** 自定义上传请求的错误判断 */
119
+ errorStatus?: (xhr: XMLHttpRequest) => boolean;
116
120
  withCredentials: boolean;
117
121
  }
118
122
  export interface UploadProgressEvent extends ProgressEvent {
@@ -1,5 +1,5 @@
1
1
  var PopupManager = {
2
- zIndex: 1000000000,
2
+ zIndex: 10000,
3
3
  nextZIndex: function nextZIndex() {
4
4
  return ++PopupManager.zIndex;
5
5
  }
@@ -21,5 +21,5 @@ export declare const isLeaf: (el: HTMLElement) => boolean;
21
21
  export declare const getSibling: (el: HTMLElement, distance: number, elClass: string) => Element;
22
22
  export declare const focusElement: (el?: HTMLElement | {
23
23
  focus: () => void;
24
- } | null, options?: FocusOptions) => void;
24
+ } | null, options?: any) => void;
25
25
  export declare const focusNode: (el: HTMLElement) => void;
package/dist/Util/aria.js CHANGED
@@ -6,8 +6,8 @@ var isHTMLElement = function isHTMLElement(e) {
6
6
  return e instanceof Element;
7
7
  };
8
8
 
9
- /**
10
- * Determine if the testing element is visible on screen no matter if its on the viewport or not
9
+ /**
10
+ * Determine if the testing element is visible on screen no matter if its on the viewport or not
11
11
  */
12
12
  export var isVisible = function isVisible(element) {
13
13
  if (process.env.NODE_ENV === 'test') {
@@ -24,10 +24,10 @@ export var obtainAllFocusableElements = function obtainAllFocusableElements(elem
24
24
  });
25
25
  };
26
26
 
27
- /**
28
- * @desc Determine if target element is focusable
29
- * @param element {HTMLElement}
30
- * @returns {Boolean} true if it is focusable
27
+ /**
28
+ * @desc Determine if target element is focusable
29
+ * @param element {HTMLElement}
30
+ * @returns {Boolean} true if it is focusable
31
31
  */
32
32
  export var isFocusable = function isFocusable(element) {
33
33
  if (element.tabIndex > 0 || element.tabIndex === 0 && element.getAttribute('tabIndex') !== null) {
@@ -59,12 +59,12 @@ export var isFocusable = function isFocusable(element) {
59
59
  }
60
60
  };
61
61
 
62
- /**
63
- * Trigger an event
64
- * mouseenter, mouseleave, mouseover, keyup, change, click, etc.
65
- * @param {HTMLElement} elm
66
- * @param {String} name
67
- * @param {*} opts
62
+ /**
63
+ * Trigger an event
64
+ * mouseenter, mouseleave, mouseover, keyup, change, click, etc.
65
+ * @param {HTMLElement} elm
66
+ * @param {String} name
67
+ * @param {*} opts
68
68
  */
69
69
  export var triggerEvent = function triggerEvent(elm, name) {
70
70
  var eventName;
@@ -31,11 +31,41 @@ export declare const download: (url: string, params: {
31
31
  method?: 'post' | 'get';
32
32
  target?: string;
33
33
  }) => void;
34
- export declare const isObject: (val: any) => boolean;
35
- export declare const isUndefined: (val: any) => val is undefined;
36
- export declare const isBoolean: (val: any) => val is boolean;
37
- export declare const isNumber: (val: any) => val is number;
38
- export declare const isString: (val: any) => boolean;
39
- export declare const isStringNumber: (val: string) => boolean;
34
+ /**
35
+ * @description 判断值是否为对象类型
36
+ */
37
+ export declare function isObject(val: unknown): val is Record<any, any>;
38
+ /**
39
+ * @description 判断值是否为undefined类型
40
+ */
41
+ export declare function isUndefined(val: unknown): val is undefined;
42
+ /**
43
+ * @description 判断值是否为布尔类型
44
+ */
45
+ export declare function isBoolean(val: unknown): val is boolean;
46
+ /**
47
+ * @description 判断值是否为数字类型
48
+ */
49
+ export declare function isNumber(val: unknown): val is number;
50
+ /**
51
+ * @description 判断值是否为字符串类型
52
+ */
53
+ export declare function isString(val: unknown): val is string;
54
+ /**
55
+ * @description 判断值是否为函数类型
56
+ */
57
+ export declare function isFunction(val: unknown): val is Function;
58
+ /**
59
+ * @description 判断值是否为字符串或数字类型
60
+ */
61
+ export declare function isPropAbsent(prop: unknown): prop is null | undefined;
62
+ /**
63
+ * @description 判断值是否为字符串类型
64
+ */
65
+ export declare function isStringNumber(val: string): boolean;
66
+ export declare function isPromise<T = any>(val: unknown): val is Promise<T>;
40
67
  export declare function addUnit(value?: string | number, defaultUnit?: string): string;
41
68
  export declare function mergeDefaultProps<T>(defaultProps: Partial<T>, target: T): T;
69
+ export declare let isUsingMicroTask: boolean;
70
+ export declare function nextTick(cb?: Function, ctx?: Object): Promise<unknown>;
71
+ export declare const escapeStringRegexp: (string?: string) => string;
package/dist/Util/base.js CHANGED
@@ -5,6 +5,8 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
5
5
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
6
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
7
7
  import is_empty from 'lodash/isEmpty';
8
+ import isNil from 'lodash/isNil';
9
+ import noop from 'lodash/noop';
8
10
 
9
11
  /**
10
12
  * 判断对象是否为空
@@ -115,27 +117,61 @@ export var download = function download(url, params) {
115
117
  $tempForm.submit();
116
118
  document.body.removeChild($tempForm);
117
119
  };
118
- export var isObject = function isObject(val) {
120
+
121
+ /**
122
+ * @description 判断值是否为对象类型
123
+ */
124
+ export function isObject(val) {
119
125
  return val !== null && _typeof(val) === 'object';
120
- };
121
- export var isUndefined = function isUndefined(val) {
126
+ }
127
+ /**
128
+ * @description 判断值是否为undefined类型
129
+ */
130
+ export function isUndefined(val) {
122
131
  return val === undefined;
123
- };
124
- export var isBoolean = function isBoolean(val) {
132
+ }
133
+ /**
134
+ * @description 判断值是否为布尔类型
135
+ */
136
+ export function isBoolean(val) {
125
137
  return typeof val === 'boolean';
126
- };
127
- export var isNumber = function isNumber(val) {
138
+ }
139
+ /**
140
+ * @description 判断值是否为数字类型
141
+ */
142
+ export function isNumber(val) {
128
143
  return typeof val === 'number';
129
- };
130
- export var isString = function isString(val) {
144
+ }
145
+ /**
146
+ * @description 判断值是否为字符串类型
147
+ */
148
+ export function isString(val) {
131
149
  return typeof val === 'string';
132
- };
133
- export var isStringNumber = function isStringNumber(val) {
150
+ }
151
+ /**
152
+ * @description 判断值是否为函数类型
153
+ */
154
+ export function isFunction(val) {
155
+ return typeof val === 'function';
156
+ }
157
+ /**
158
+ * @description 判断值是否为字符串或数字类型
159
+ */
160
+ export function isPropAbsent(prop) {
161
+ return isNil(prop);
162
+ }
163
+ /**
164
+ * @description 判断值是否为字符串类型
165
+ */
166
+ export function isStringNumber(val) {
134
167
  if (!isString(val)) {
135
168
  return false;
136
169
  }
137
170
  return !Number.isNaN(Number(val));
138
- };
171
+ }
172
+ export function isPromise(val) {
173
+ return !isNil(val) && isFunction(val.then) && isFunction(val.catch);
174
+ }
139
175
  export function addUnit(value) {
140
176
  var defaultUnit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'px';
141
177
  if (!value) {
@@ -165,4 +201,135 @@ export function mergeDefaultProps() {
165
201
  }
166
202
  }
167
203
  return props;
168
- }
204
+ }
205
+ var isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent);
206
+ function isNative(Ctor) {
207
+ return typeof Ctor === 'function' && /native code/.test(Ctor.toString());
208
+ }
209
+ // 上面三行与核心代码关系不大,了解即可
210
+ // noop 表示一个无操作空函数,用作函数默认值,防止传入 undefined 导致报错
211
+ // handleError 错误处理函数
212
+ // isIE, isIOS, isNative 环境判断函数,
213
+ // isNative 判断某个属性或方法是否原生支持,如果不支持或通过第三方实现支持都会返回 false
214
+
215
+ export var isUsingMicroTask = false; // 标记 nextTick 最终是否以微任务执行
216
+
217
+ var callbacks = []; // 存放调用 nextTick 时传入的回调函数
218
+ var pending = false; // 标记是否已经向任务队列中添加了一个任务,如果已经添加了就不能再添加了
219
+ // 当向任务队列中添加了任务时,将 pending 置为 true,当任务被执行时将 pending 置为 false
220
+ //
221
+
222
+ // 声明 nextTick 函数,接收一个回调函数和一个执行上下文作为参数
223
+ // 回调的 this 自动绑定到调用它的实例上
224
+ export function nextTick(cb, ctx) {
225
+ var _resolve;
226
+ // 将传入的回调函数存放到数组中,后面会遍历执行其中的回调
227
+ callbacks.push(function () {
228
+ if (cb) {
229
+ // 对传入的回调进行 try catch 错误捕获
230
+ try {
231
+ cb.call(ctx);
232
+ } catch (e) {
233
+ // 进行统一的错误处理
234
+ // handleError(e, ctx, 'nextTick');
235
+ }
236
+ } else if (_resolve) {
237
+ _resolve(ctx);
238
+ }
239
+ });
240
+
241
+ // 如果当前没有在 pending 的回调,
242
+ // 就执行 timeFunc 函数选择当前环境优先支持的异步方法
243
+ if (!pending) {
244
+ pending = true;
245
+ timerFunc();
246
+ }
247
+
248
+ // 如果没有传入回调,并且当前环境支持 promise,就返回一个 promise
249
+ // 在返回的这个 promise.then 中 DOM 已经更新好了,
250
+ if (!cb && typeof Promise !== 'undefined') {
251
+ return new Promise(function (resolve) {
252
+ _resolve = resolve;
253
+ });
254
+ }
255
+ }
256
+
257
+ // 判断当前环境优先支持的异步方法,优先选择微任务
258
+ // 优先级:Promise---> MutationObserver---> setImmediate---> setTimeout
259
+ // setTimeout 可能产生一个 4ms 的延迟,而 setImmediate 会在主线程执行完后立刻执行
260
+ // setImmediate 在 IE10 和 node 中支持
261
+
262
+ // 当在同一轮事件循环中多次调用 nextTick 时 ,timerFunc 只会执行一次
263
+
264
+ var timerFunc;
265
+ // 判断当前环境是否原生支持 promise
266
+ if (typeof Promise !== 'undefined' && isNative(Promise)) {
267
+ // 支持 promise
268
+ var p = Promise.resolve();
269
+ timerFunc = function timerFunc() {
270
+ // 用 promise.then 把 flushCallbacks 函数包裹成一个异步微任务
271
+ p.then(flushCallbacks);
272
+ if (isIOS) {
273
+ setTimeout(noop);
274
+ }
275
+ // 这里的 setTimeout 是用来强制刷新微任务队列的
276
+ // 因为在 ios 下 promise.then 后面没有宏任务的话,微任务队列不会刷新
277
+ };
278
+ // 标记当前 nextTick 使用的微任务
279
+ isUsingMicroTask = true;
280
+
281
+ // 如果不支持 promise,就判断是否支持 MutationObserver
282
+ // 不是IE环境,并且原生支持 MutationObserver,那也是一个微任务
283
+ } else if (typeof MutationObserver !== 'undefined' && (isNative(MutationObserver) || MutationObserver.toString() === '[object MutationObserverConstructor]')) {
284
+ var counter = 1;
285
+ // new 一个 MutationObserver 类
286
+ var observer = new MutationObserver(flushCallbacks);
287
+ // 创建一个文本节点
288
+ var textNode = document.createTextNode(String(counter));
289
+ // 监听这个文本节点,当数据发生变化就执行 flushCallbacks
290
+ observer.observe(textNode, {
291
+ characterData: true
292
+ });
293
+ timerFunc = function timerFunc() {
294
+ counter = (counter + 1) % 2;
295
+ textNode.data = String(counter); // 数据更新
296
+ };
297
+ isUsingMicroTask = true; // 标记当前 nextTick 使用的微任务
298
+
299
+ // 判断当前环境是否原生支持 setImmediate
300
+ } else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {
301
+ timerFunc = function timerFunc() {
302
+ setImmediate(flushCallbacks);
303
+ };
304
+ } else {
305
+ // 以上三种都不支持就选择 setTimeout
306
+ timerFunc = function timerFunc() {
307
+ setTimeout(flushCallbacks, 0);
308
+ };
309
+ }
310
+
311
+ // 如果多次调用 nextTick,会依次执行上面的方法,将 nextTick 的回调放在 callbacks 数组中
312
+ // 最后通过 flushCallbacks 函数遍历 callbacks 数组的拷贝并执行其中的回调
313
+ function flushCallbacks() {
314
+ pending = false;
315
+ var copies = callbacks.slice(0); // 拷贝一份 callbacks
316
+ callbacks.length = 0; // 清空 callbacks
317
+ for (var i = 0; i < copies.length; i++) {
318
+ // 遍历执行传入的回调
319
+ copies[i]();
320
+ }
321
+ }
322
+
323
+ // 为什么要拷贝一份 callbacks
324
+
325
+ // 用 callbacks.slice(0) 将 callbacks 拷贝出来一份,
326
+ // 是因为考虑到在 nextTick 回调中可能还会调用 nextTick 的情况,
327
+ // 如果在 nextTick 回调中又调用了一次 nextTick,则又会向 callbacks 中添加回调,
328
+ // 而 nextTick 回调中的 nextTick 应该放在下一轮执行,
329
+ // 否则就可能出现一直循环的情况,
330
+ // 所以需要将 callbacks 复制一份出来然后清空,再遍历备份列表执行回调
331
+
332
+ export var escapeStringRegexp = function escapeStringRegexp() {
333
+ var string = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
334
+ return string.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&').replace(/-/g, '\\x2d');
335
+ };