@unicom-cloud/ui 0.8.65 → 0.8.67

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 (358) hide show
  1. package/Affix.js +79 -79
  2. package/Alert.js +46 -46
  3. package/Anchor.js +1 -1
  4. package/AutoComplete.js +74 -74
  5. package/Avatar.js +36 -36
  6. package/BackTop.js +35 -35
  7. package/Badge.js +55 -55
  8. package/Breadcrumb.js +42 -42
  9. package/Button.js +24 -24
  10. package/Calendar.js +230 -230
  11. package/Card.js +18 -18
  12. package/Carousel.js +165 -165
  13. package/Cascader.js +1 -1
  14. package/Checkbox.js +1 -1
  15. package/Collapse.js +1 -1
  16. package/ColorPicker.js +26 -26
  17. package/Comment.js +18 -18
  18. package/ConfigProvider.js +2 -2
  19. package/Copy.js +28 -27
  20. package/DatePicker.js +872 -871
  21. package/Descriptions.js +34 -34
  22. package/Divider.js +19 -19
  23. package/Draggable.js +27 -26
  24. package/Drawer.js +1 -1
  25. package/Dropdown.js +110 -110
  26. package/Empty.js +3 -3
  27. package/Form.js +984 -945
  28. package/Grid.js +34 -34
  29. package/Icon.js +16 -16
  30. package/IconHover.js +2 -2
  31. package/Image.js +2 -2
  32. package/Input.js +7 -6
  33. package/InputNumber.js +6 -6
  34. package/InputTag.js +1 -1
  35. package/Layout.js +24 -24
  36. package/Link.js +30 -30
  37. package/List.js +95 -95
  38. package/Mentions.js +85 -84
  39. package/Menu.js +2 -2
  40. package/Message.js +7 -6
  41. package/Modal.js +1 -1
  42. package/Notice.js +14 -3
  43. package/Notification.js +9 -7
  44. package/OverflowEllipsis.js +64 -62
  45. package/PageHeader.js +73 -73
  46. package/Pagination.js +1 -1
  47. package/Picker.js +1 -1
  48. package/Popconfirm.js +60 -60
  49. package/Popover.js +31 -31
  50. package/Portal.js +23 -31
  51. package/Progress.js +22 -22
  52. package/Radio.js +2 -2
  53. package/Rate.js +24 -24
  54. package/ResizeBox.js +274 -271
  55. package/Result.js +3 -3
  56. package/Select.js +4 -4
  57. package/SelectView.js +257 -237
  58. package/Skeleton.js +46 -46
  59. package/Slider.js +286 -283
  60. package/Space.js +28 -28
  61. package/SpeechSynthesis.js +62 -55
  62. package/Spin.js +23 -23
  63. package/Statistic.js +80 -80
  64. package/Steps.js +67 -67
  65. package/Switch.js +47 -47
  66. package/Table.js +1463 -1395
  67. package/Tabs.js +5 -5
  68. package/Tag.js +45 -45
  69. package/TimePicker.js +154 -154
  70. package/Timeline.js +2 -2
  71. package/Tooltip.js +80 -79
  72. package/Transfer.js +103 -102
  73. package/Tree.js +3 -2
  74. package/TreeSelect.js +2 -2
  75. package/Trigger.js +699 -772
  76. package/Typography.js +756 -6
  77. package/Upload.js +2 -2
  78. package/VerificationCode.js +1 -1
  79. package/Version.js +1 -1
  80. package/VirtualList.js +1 -1
  81. package/Watermark.js +1 -1
  82. package/chunk/{DIx0qmCq.js → -UuKKT0Z.js} +29 -29
  83. package/chunk/{B8QV6E2b.js → AwZqeapI.js} +5 -5
  84. package/chunk/B5gK1Idp.js +19 -0
  85. package/chunk/B7FlazNB.js +24 -0
  86. package/chunk/{DXZEpA3t.js → BBvWDeuZ.js} +67 -67
  87. package/chunk/BCftTxEy.js +626 -0
  88. package/chunk/{CsbCHnFk.js → BGny4zSb.js} +60 -60
  89. package/chunk/BHF15Dog.js +98 -0
  90. package/chunk/BJQ5UNa-.js +1585 -0
  91. package/chunk/BP9sYyk9.js +8 -0
  92. package/chunk/BUdtVdnv.js +38 -0
  93. package/chunk/BVQlOzTS.js +11 -0
  94. package/chunk/B__a_gb_.js +519 -0
  95. package/chunk/BbEYToV1.js +10 -0
  96. package/chunk/BbdDQAnm.js +15 -0
  97. package/chunk/BdUcgWdu.js +11 -0
  98. package/chunk/BfbXSG70.js +26 -0
  99. package/chunk/BndfNLK4.js +186 -0
  100. package/chunk/BoMCZV6K.js +1098 -0
  101. package/chunk/Br0B6y1T.js +18 -0
  102. package/chunk/BrOW642m.js +130 -0
  103. package/chunk/BxUs8_Cr.js +9 -0
  104. package/chunk/{DK4KcodH.js → C42LIMP9.js} +244 -242
  105. package/chunk/C4YkFMzC.js +778 -0
  106. package/chunk/{CF6p9R93.js → C9Wcraj7.js} +21 -21
  107. package/chunk/{4-gvEY5y.js → CANgSlh3.js} +10 -10
  108. package/chunk/CJ_o9tZM.js +5 -0
  109. package/chunk/{Bqk6yh16.js → CK5m7rLl.js} +36 -36
  110. package/chunk/{CANaGbGR.js → CKNyIitu.js} +57 -56
  111. package/chunk/CLiqJm_T.js +10 -0
  112. package/chunk/{DjtWv6Wn.js → CNmmhbCn.js} +32 -32
  113. package/chunk/{BUCEs557.js → CP0odX99.js} +51 -51
  114. package/chunk/CPT-OZH2.js +14 -0
  115. package/chunk/CVSF8p0O.js +698 -0
  116. package/chunk/C_agcwLN.js +31 -0
  117. package/chunk/{DTjcKyDN.js → C_gJWGGh.js} +201 -201
  118. package/chunk/{CPcm9Cm5.js → CaasmWg_.js} +11 -11
  119. package/chunk/Ce1j9KTi.js +6 -0
  120. package/chunk/{D_-UD4vO.js → Cf5QNhkG.js} +18 -18
  121. package/chunk/CkNSv2U7.js +56 -0
  122. package/chunk/Cp2f70gB.js +9 -0
  123. package/chunk/CpegYjdC.js +16 -0
  124. package/chunk/CucI3KZr.js +20 -0
  125. package/chunk/CwoFBTYz.js +11 -0
  126. package/chunk/D2KPqPhV.js +17 -0
  127. package/chunk/D7NyvE5f.js +17 -0
  128. package/chunk/D8oTPQ2H.js +384 -0
  129. package/chunk/{CLBavO5c.js → DC1iHEiy.js} +87 -87
  130. package/chunk/{Dnycc1qJ.js → DFrfrmfK.js} +120 -119
  131. package/chunk/DGTIZ_0O.js +6 -0
  132. package/chunk/DJfpiZn_.js +25 -0
  133. package/chunk/DKr2_PYd.js +34 -0
  134. package/chunk/DNUz6zgo.js +11 -0
  135. package/chunk/DRtM649q.js +11 -0
  136. package/chunk/DS_mUWn6.js +41 -0
  137. package/chunk/DU6bs_19.js +10 -0
  138. package/chunk/DWdbwz22.js +10 -0
  139. package/chunk/DcveZuqd.js +6 -0
  140. package/chunk/DdVFknul.js +24 -0
  141. package/chunk/DgRfikwe.js +16 -0
  142. package/chunk/{DG-epQqF.js → DkyR2EfG.js} +66 -66
  143. package/chunk/{DUeHQKtx.js → DleQ5HwG.js} +42 -42
  144. package/chunk/DnrZEnQ_.js +27 -0
  145. package/chunk/DsRSHWtX.js +1025 -0
  146. package/chunk/Dz5BdmXo.js +270 -0
  147. package/chunk/EANe01DF.js +1030 -0
  148. package/chunk/{CwhPMMWy.js → Ey4YJCkX.js} +7 -7
  149. package/chunk/GoNx5R4F.js +873 -0
  150. package/chunk/HDUQku8d.js +20 -0
  151. package/chunk/HrAP__Hi.js +25 -0
  152. package/chunk/JPPo5nY_.js +9 -0
  153. package/chunk/{CIlGCedk.js → SLWP34OR.js} +90 -85
  154. package/chunk/VVKtwaGf.js +278 -0
  155. package/chunk/WPNpLxSI.js +16 -0
  156. package/chunk/{DLvMA1OW.js → WpO_DsK4.js} +49 -48
  157. package/chunk/fdU3ang6.js +14 -0
  158. package/chunk/{DqFhzTWC.js → fkclKOAL.js} +298 -292
  159. package/chunk/flvYlqx3.js +22 -0
  160. package/chunk/kTDayEpF.js +288 -0
  161. package/chunk/{DQDkV47j.js → pZoNQ75H.js} +31 -31
  162. package/chunk/qFf1w_Jq.js +8 -0
  163. package/chunk/{CH1UUxsg.js → w-kM1L5W.js} +155 -155
  164. package/hooks/index.js +53 -49
  165. package/hooks/useComputedState.js +2 -10
  166. package/hooks/useCreate.js +2 -7
  167. package/hooks/useForceUpdate.js +2 -7
  168. package/hooks/useId.js +2 -10
  169. package/hooks/useInView.js +2 -30
  170. package/hooks/useIntersectionObserver.js +2 -23
  171. package/hooks/useInterval.js +2 -17
  172. package/hooks/useIsFirstRender.js +2 -9
  173. package/hooks/useIsomorphicLayoutEffect.js +2 -5
  174. package/hooks/useKeyboardEvent.js +2 -16
  175. package/hooks/useMedia.js +2 -15
  176. package/hooks/useMergeProps.js +2 -18
  177. package/hooks/useMergeValue.js +2 -19
  178. package/hooks/useOnlineStatus.js +4 -0
  179. package/hooks/useOverflowHidden.js +2 -25
  180. package/hooks/useOverrideRef.js +2 -13
  181. package/hooks/usePersistCallback.js +2 -13
  182. package/hooks/usePrefersColorSchemeDark.js +4 -0
  183. package/hooks/usePrevious.js +2 -9
  184. package/hooks/useRefs.js +2 -9
  185. package/hooks/useResizeObserver.js +2 -15
  186. package/hooks/useStateCallback.js +2 -15
  187. package/hooks/useStateWithPromise.js +2 -24
  188. package/hooks/useUpdateEffect.js +2 -9
  189. package/hooks/useVerificationCode.js +73 -0
  190. package/hooks/useWatch.js +2 -10
  191. package/hooks/{use-watermark.js → useWatermark.js} +27 -26
  192. package/hooks/useWindowSize.js +2 -20
  193. package/index.js +571 -584
  194. package/locale/en-US.js +4 -2
  195. package/locale/interface.js +1 -4
  196. package/locale/ja-JP.js +3 -1
  197. package/locale/tr-TR.js +1 -1
  198. package/locale/zh-CN.js +3 -1
  199. package/locale/zh-HK.js +3 -1
  200. package/locale/zh-TW.js +3 -1
  201. package/package.json +1 -1
  202. package/style.css +1 -1
  203. package/types/anchor/util.d.ts +1 -1
  204. package/types/button/index.d.ts +2 -2
  205. package/types/color-picker/hooks/useColorPicker.d.ts +2 -2
  206. package/types/form/Control-old.d.ts +56 -0
  207. package/types/form/Control.d.ts +6 -54
  208. package/types/form/FormItem.d.ts +1 -1
  209. package/types/form/store.d.ts +0 -1
  210. package/types/hooks/index.d.ts +2 -0
  211. package/types/hooks/useComputedState.d.ts +1 -4
  212. package/types/hooks/useCreate.d.ts +1 -2
  213. package/types/hooks/useForceUpdate.d.ts +1 -2
  214. package/types/hooks/useId.d.ts +1 -2
  215. package/types/hooks/useInView.d.ts +1 -11
  216. package/types/hooks/useIntersectionObserver.d.ts +1 -7
  217. package/types/hooks/useInterval.d.ts +1 -2
  218. package/types/hooks/useIsFirstRender.d.ts +1 -2
  219. package/types/hooks/useIsomorphicLayoutEffect.d.ts +1 -3
  220. package/types/hooks/useKeyboardEvent.d.ts +1 -8
  221. package/types/hooks/useMedia.d.ts +1 -2
  222. package/types/hooks/useMergeProps.d.ts +1 -5
  223. package/types/hooks/useMergeValue.d.ts +1 -6
  224. package/types/hooks/useOnlineStatus.d.ts +1 -0
  225. package/types/hooks/useOverflowHidden.d.ts +1 -5
  226. package/types/hooks/useOverrideRef.d.ts +1 -6
  227. package/types/hooks/usePersistCallback.d.ts +1 -2
  228. package/types/hooks/usePrefersColorSchemeDark.d.ts +1 -0
  229. package/types/hooks/usePrevious.d.ts +1 -3
  230. package/types/hooks/useRefs.d.ts +1 -2
  231. package/types/hooks/useResizeObserver.d.ts +1 -6
  232. package/types/hooks/useStateCallback.d.ts +1 -5
  233. package/types/hooks/useStateWithPromise.d.ts +1 -2
  234. package/types/hooks/useUpdateEffect.d.ts +1 -3
  235. package/types/hooks/useWatch.d.ts +1 -3
  236. package/types/hooks/useWindowSize.d.ts +1 -5
  237. package/types/image/interface.d.ts +1 -0
  238. package/types/index.d.ts +157 -86
  239. package/types/input/Input.d.ts +1 -1
  240. package/types/input/Textarea.d.ts +2 -2
  241. package/types/locale/en-US.d.ts +2 -0
  242. package/types/locale/interface.d.ts +1 -2
  243. package/types/locale/ja-JP.d.ts +2 -0
  244. package/types/locale/zh-CN.d.ts +2 -0
  245. package/types/locale/zh-HK.d.ts +2 -0
  246. package/types/locale/zh-TW.d.ts +2 -0
  247. package/types/menu/context.d.ts +1 -1
  248. package/types/message/index.d.ts +14 -14
  249. package/types/message/interface.d.ts +2 -0
  250. package/types/modal/config.d.ts +0 -1
  251. package/types/modal/interface.d.ts +0 -1
  252. package/types/notice/index.d.ts +2 -27
  253. package/types/notification/index.d.ts +15 -16
  254. package/types/notification/interface.d.ts +2 -0
  255. package/types/notification/withNotification.d.ts +2 -0
  256. package/types/select/util.d.ts +1 -2
  257. package/types/select-view/interface.d.ts +2 -1
  258. package/types/speech-synthesis/index.d.ts +1 -1
  259. package/types/table/constant.d.ts +2 -0
  260. package/types/table/hook/useThResizable.d.ts +7 -0
  261. package/types/table/index.d.ts +10 -1
  262. package/types/table/style/index.d.ts +1 -0
  263. package/types/table/th-resizable/index.d.ts +2 -0
  264. package/types/table/thead/Column.d.ts +1 -2
  265. package/types/tree/Tree.d.ts +12 -67
  266. package/types/tree-select/Select.d.ts +2 -2
  267. package/types/trigger/index.d.ts +2 -120
  268. package/types/trigger/interface.d.ts +2 -1
  269. package/types/utils/CSSTransition.d.ts +2 -3
  270. package/types/utils/caseName.d.ts +1 -1
  271. package/types/utils/className.d.ts +1 -1
  272. package/types/utils/constant.d.ts +2 -2
  273. package/types/utils/copy.d.ts +1 -1
  274. package/types/utils/dayjs.d.ts +1 -21
  275. package/types/utils/dom.d.ts +1 -6
  276. package/types/utils/fileToURL.d.ts +1 -1
  277. package/types/utils/fillNBSP.d.ts +1 -1
  278. package/types/utils/getHighlightText.d.ts +1 -5
  279. package/types/utils/getHotkeyHandler.d.ts +1 -8
  280. package/types/utils/getStringLength.d.ts +1 -1
  281. package/types/utils/include.d.ts +1 -1
  282. package/types/utils/index.d.ts +3 -4
  283. package/types/utils/is.d.ts +1 -16
  284. package/types/utils/keyboardCode.d.ts +3 -0
  285. package/types/utils/lodash.d.ts +1 -17
  286. package/types/utils/mergeProps.d.ts +1 -1
  287. package/types/utils/mergedToString.d.ts +1 -1
  288. package/types/utils/omit.d.ts +1 -1
  289. package/types/utils/pad.d.ts +1 -2
  290. package/types/utils/pick.d.ts +2 -4
  291. package/types/utils/reactDOM.d.ts +1 -7
  292. package/types/utils/resizeObserverEffect.d.ts +2 -0
  293. package/types/utils/saveAs.d.ts +1 -1
  294. package/types/utils/screenfull.d.ts +2 -0
  295. package/types/utils/scrollIntoView.d.ts +1 -2
  296. package/types/utils/style.d.ts +1 -3
  297. package/types/utils/throttleByRaf.d.ts +1 -5
  298. package/types/utils/throttleByRaf2.d.ts +1 -0
  299. package/types/utils/warning.d.ts +1 -2
  300. package/types/version/index.d.ts +1 -1
  301. package/utils/CSSTransition.js +2 -6
  302. package/utils/className.js +2 -2
  303. package/utils/constant.js +8 -9
  304. package/utils/contextHolder.js +1 -1
  305. package/utils/copy.js +1 -1
  306. package/utils/dayjs.js +14 -173
  307. package/utils/dom.js +33 -29
  308. package/utils/fillNBSP.js +2 -4
  309. package/utils/getHighlightText.js +2 -38
  310. package/utils/getHotkeyHandler.js +2 -25
  311. package/utils/getStringLength.js +2 -7
  312. package/utils/include.js +2 -7
  313. package/utils/index.js +237 -240
  314. package/utils/is.js +116 -156
  315. package/utils/keyboardCode.js +27 -0
  316. package/utils/mergeProps.js +2 -9
  317. package/utils/mergedToString.js +2 -13
  318. package/utils/omit.js +2 -9
  319. package/utils/pad.js +12 -12
  320. package/utils/pick.js +4 -15
  321. package/utils/reactDOM.js +3 -54
  322. package/utils/resizeObserverEffect.js +4 -0
  323. package/utils/saveAs.js +1 -1
  324. package/utils/screenfull.js +4 -0
  325. package/utils/scrollIntoView.js +2 -21
  326. package/utils/style.js +12 -11
  327. package/utils/throttleByRaf.js +13 -12
  328. package/utils/throttleByRaf2.js +5 -0
  329. package/utils/warning.js +5 -4
  330. package/NotificationBase.js +0 -53
  331. package/chunk/1GQdnTJp.js +0 -284
  332. package/chunk/BAWsPQBM.js +0 -11
  333. package/chunk/BS09tn7B.js +0 -638
  334. package/chunk/BqGtwxTi.js +0 -777
  335. package/chunk/BqufsN8i.js +0 -376
  336. package/chunk/BtlvlGQN.js +0 -278
  337. package/chunk/C2lIz2F9.js +0 -60
  338. package/chunk/CGZ0In1p.js +0 -776
  339. package/chunk/CWgltRVL.js +0 -698
  340. package/chunk/D3NFxdmG.js +0 -518
  341. package/chunk/DApXtulb.js +0 -1102
  342. package/chunk/DlLL5JQo.js +0 -1501
  343. package/chunk/Dv_xRzvR.js +0 -269
  344. package/chunk/Ek8U5CTN.js +0 -1032
  345. package/chunk/ewRDIDUz.js +0 -995
  346. package/chunk/l0sNRNKZ.js +0 -1
  347. package/chunk/tYXLFPVI.js +0 -871
  348. package/hooks/use-verification-code.js +0 -73
  349. package/types/notification-base/index.d.ts +0 -15
  350. package/types/notification-base/style/index.d.ts +0 -2
  351. package/types/trigger/Portal.d.ts +0 -7
  352. package/types/utils/keyCode.d.ts +0 -45
  353. package/types/utils/raf.d.ts +0 -3
  354. package/types/utils/throttleByRafV2.d.ts +0 -5
  355. package/utils/keyCode.js +0 -12
  356. package/utils/raf.js +0 -19
  357. package/utils/throttleByRafV2.js +0 -16
  358. /package/style/{variable.less → variables.less} +0 -0
package/chunk/D3NFxdmG.js DELETED
@@ -1,518 +0,0 @@
1
- import { jsx as P, jsxs as kt, Fragment as At } from "react/jsx-runtime";
2
- import Ot from "lodash/isFunction";
3
- import xt from "lodash/isNumber";
4
- import it, { useRef as w, useState as Ut, useMemo as Vt, useEffect as N, useImperativeHandle as Dt } from "react";
5
- import { useForceUpdate as Ft } from "../hooks/useForceUpdate.js";
6
- import { useIsFirstRender as Kt } from "../hooks/useIsFirstRender.js";
7
- import { useIsomorphicLayoutEffect as jt } from "../hooks/useIsomorphicLayoutEffect.js";
8
- import { usePrevious as Bt } from "../hooks/usePrevious.js";
9
- import { useStateWithPromise as Yt } from "../hooks/useStateWithPromise.js";
10
- import { caf as yt, raf as lt } from "../utils/raf.js";
11
- import Gt from "../utils/getStringLength.js";
12
- import { findDOMNode as Wt } from "../utils/reactDOM.js";
13
- const Ht = ({
14
- height: l,
15
- offset: o,
16
- children: i,
17
- outerStyle: e,
18
- innerStyle: c
19
- }) => {
20
- let r = {}, f = {
21
- display: "flex",
22
- flexDirection: "column"
23
- };
24
- return o !== void 0 ? (r = {
25
- height: l,
26
- position: "relative",
27
- overflow: "hidden",
28
- zIndex: 0,
29
- ...e
30
- }, f = {
31
- ...f,
32
- transform: `translateY(${o}px)`,
33
- position: "absolute",
34
- left: 0,
35
- right: 0,
36
- top: 0,
37
- ...c
38
- }) : (r = { ...e }, f = { ...f, ...c }), /* @__PURE__ */ P("div", { style: r, children: /* @__PURE__ */ P("div", { style: f, children: i }) });
39
- };
40
- function $t(l, o, i, e) {
41
- const c = i - l, r = o - i, f = Math.min(c, r) * 2;
42
- if (e <= f) {
43
- const H = Math.floor(e / 2);
44
- return e % 2 ? i + H + 1 : i - H;
45
- }
46
- return c > r ? i - (e - r) : i + (e - c);
47
- }
48
- function Xt(l, o, i) {
49
- const e = l.length, c = o.length;
50
- let r, f;
51
- if (e === 0 && c === 0)
52
- return null;
53
- e < c ? (r = l, f = o) : (r = o, f = l);
54
- const H = { __EMPTY_ITEM__: !0 };
55
- function _(I, v) {
56
- return I !== void 0 ? i(I, v) : H;
57
- }
58
- let R = null, T = Math.abs(e - c) !== 1;
59
- for (let I = 0; I < f.length; I += 1) {
60
- const v = _(r[I], I), F = _(f[I], I);
61
- if (v !== F) {
62
- R = I, T = T || v !== _(f[I + 1], I + 1);
63
- break;
64
- }
65
- }
66
- return R === null ? null : { index: R, multiple: T };
67
- }
68
- const qt = "__rc_ghost_item__";
69
- function Et(l, o) {
70
- const i = Math.floor(l * o), e = i / o, c = (l - e) / (1 / o);
71
- return {
72
- index: i,
73
- // scrollPtg >= itemTopPtg,计算结果为元素应当补充的滚动距离相对自身高度的偏移量
74
- offsetPtg: Number.isNaN(c) ? 0 : c
75
- };
76
- }
77
- function Mt(l, o = !1) {
78
- const i = Wt(l);
79
- let e = 0;
80
- if (o) {
81
- const { marginTop: c, marginBottom: r } = window.getComputedStyle(l);
82
- e = Number(c.replace(/\D/g, "")) + Number(r.replace(/\D/g, "")), e = isNaN(e) ? 0 : e;
83
- }
84
- return i ? i.offsetHeight + e : 0;
85
- }
86
- function ct(l, o) {
87
- return l < 0 ? 0 : l > o ? o : l;
88
- }
89
- function V({
90
- scrollTop: l,
91
- scrollHeight: o,
92
- clientHeight: i
93
- }) {
94
- const e = o - i;
95
- return e <= 0 ? 0 : ct(l, e) / e;
96
- }
97
- function St(l, o, i) {
98
- const { index: e, offsetPtg: c } = Et(l, o), r = Math.ceil(l * i), f = Math.ceil((1 - l) * i);
99
- return {
100
- itemIndex: e,
101
- itemOffsetPtg: c,
102
- startIndex: Math.max(0, e - r),
103
- endIndex: Math.min(o - 1, e + f)
104
- };
105
- }
106
- function J({
107
- itemHeight: l,
108
- itemOffsetPtg: o,
109
- scrollPtg: i,
110
- clientHeight: e
111
- }) {
112
- return Math.floor(e * i - l * o);
113
- }
114
- function Jt({ scrollTop: l, ...o }) {
115
- return l + J(o);
116
- }
117
- function Qt({
118
- locatedItemRelativeTop: l,
119
- locatedItemIndex: o,
120
- compareItemIndex: i,
121
- startIndex: e,
122
- endIndex: c,
123
- getItemKey: r,
124
- itemElementHeights: f,
125
- itemHeight: H
126
- }) {
127
- let _ = l;
128
- const R = r(i);
129
- if (i <= o)
130
- for (let T = o; T >= e && r(T) !== R; T -= 1) {
131
- const v = r(T - 1);
132
- _ -= f[v] || H;
133
- }
134
- else
135
- for (let T = o; T <= c; T += 1) {
136
- const I = r(T);
137
- if (I === R)
138
- break;
139
- _ += f[I] || H;
140
- }
141
- return _;
142
- }
143
- function Zt(l) {
144
- let o = -1, i = 0;
145
- return l.forEach((e, c) => {
146
- var r;
147
- if (e = typeof e == "string" ? e : (r = e.props) == null ? void 0 : r.children, typeof e == "string") {
148
- const f = Gt(e);
149
- f > i && (i = f, o = c);
150
- }
151
- }), o;
152
- }
153
- const zt = 32, D = `__virtual_item_height_${Math.random().toFixed(5).slice(2)}`, te = (l) => {
154
- const o = Ft(), { current: i } = l;
155
- N(() => {
156
- Object.keys(i).length && !i[D] && (i[D] = Object.entries(i).reduce(
157
- (e, [, c], r, f) => {
158
- const H = e + c;
159
- return r === f.length - 1 ? Math.round(H / f.length) : H;
160
- },
161
- 0
162
- ), o());
163
- }, [Object.keys(i).length]);
164
- }, ee = (l) => {
165
- const o = w({}), i = w(l);
166
- return N(() => {
167
- i.current = l;
168
- }, [l]), l !== i.current && (o.current = {}), (e, c, r) => (Object.prototype.hasOwnProperty.call(o.current, c) || (o.current[c] = l(e, c, r)), o.current[c]);
169
- }, ne = it.forwardRef((l, o) => {
170
- const {
171
- style: i,
172
- className: e,
173
- children: c,
174
- data: r = [],
175
- itemKey: f,
176
- threshold: H = 100,
177
- wrapper: _ = "div",
178
- height: R = "100%",
179
- isStaticItemHeight: T = !0,
180
- itemHeight: I,
181
- measureLongestItem: v,
182
- scrollOptions: F,
183
- onScroll: C,
184
- needFiller: _t = !0,
185
- outerStyle: st,
186
- innerStyle: ut,
187
- wrapperChild: Q = it.Fragment,
188
- ...bt
189
- } = l, G = i && i.maxHeight || R, K = w({}), [Pt, Rt] = Ut(200), ft = ee(c);
190
- te(K);
191
- const k = r.length, A = I || K.current[D] || zt, W = xt(G) ? G : Pt, O = Math.ceil(W / A), Z = A * k, b = H !== null && k >= H && Z > W, a = w(null), L = w(null), j = w(!1), at = w(b), mt = Vt(() => {
192
- if (a.current) {
193
- const n = (t) => +window.getComputedStyle(a.current)[t].replace(/\D/g, "");
194
- return {
195
- top: n("paddingTop"),
196
- bottom: n("paddingBottom")
197
- };
198
- }
199
- return { top: 0, bottom: 0 };
200
- }, [a.current]), [g, B] = Yt({
201
- // measure status
202
- status: "NONE",
203
- // render range info
204
- startIndex: 0,
205
- endIndex: 0,
206
- itemIndex: 0,
207
- itemOffsetPtg: 0,
208
- // scroll info
209
- startItemTop: 0,
210
- scrollTop: 0
211
- }), $ = Bt(r) || [], vt = Kt(), Y = (n, t) => typeof f == "function" ? f(n, t) : typeof f == "string" ? n[f] : n.key || t, S = (n, t = r) => {
212
- if (n === t.length)
213
- return qt;
214
- const s = t[n];
215
- return s !== void 0 ? Y(s, n) : null;
216
- }, E = (n) => K.current[n] || A, dt = (n) => {
217
- const { itemIndex: t, relativeTop: s } = n, { scrollHeight: u, clientHeight: p } = a.current, m = g.scrollTop, x = u - p;
218
- let d = Number.MAX_VALUE, h = null, M = null, y = null, q = null, U = null, tt = 0;
219
- for (let et = 0; et < x; et++) {
220
- const pt = $t(0, x, m, et), ht = V({
221
- scrollTop: pt,
222
- scrollHeight: u,
223
- clientHeight: p
224
- }), { itemIndex: nt, itemOffsetPtg: It, startIndex: rt, endIndex: ot } = St(
225
- ht,
226
- k,
227
- O
228
- );
229
- if (rt <= t && t <= ot) {
230
- const Nt = J({
231
- itemHeight: E(S(nt)),
232
- itemOffsetPtg: It,
233
- clientHeight: p,
234
- scrollPtg: ht
235
- }), Ct = Qt({
236
- locatedItemRelativeTop: Nt,
237
- locatedItemIndex: nt,
238
- compareItemIndex: t,
239
- startIndex: rt,
240
- endIndex: ot,
241
- itemHeight: A,
242
- getItemKey: S,
243
- itemElementHeights: K.current
244
- }), Tt = Math.abs(Ct - s);
245
- Tt < d ? (d = Tt, h = pt, M = nt, y = It, q = rt, U = ot, tt = 0) : tt += 1;
246
- }
247
- if (tt > 10)
248
- break;
249
- }
250
- h !== null && (j.current = !0, a.current.scrollTop = h, B({
251
- ...g,
252
- status: "MEASURE_START",
253
- scrollTop: h,
254
- itemIndex: M,
255
- itemOffsetPtg: y,
256
- startIndex: q,
257
- endIndex: U
258
- })), L.current = lt(() => {
259
- j.current = !1;
260
- });
261
- }, wt = (n) => {
262
- const {
263
- scrollTop: t,
264
- clientHeight: s,
265
- scrollHeight: u
266
- } = a.current, p = ct(
267
- t,
268
- u - s
269
- ), m = V({
270
- scrollTop: p,
271
- clientHeight: s,
272
- scrollHeight: u
273
- }), { index: x, offsetPtg: d } = Et(m, k);
274
- B({
275
- ...g,
276
- scrollTop: p,
277
- itemIndex: x,
278
- itemOffsetPtg: d
279
- }), n && (C == null || C(n, { index: x }));
280
- }, gt = (n, t = !1) => {
281
- const s = Z, { scrollTop: u, clientHeight: p } = a.current, m = ct(
282
- u,
283
- s - p
284
- );
285
- if (!t && (m === g.scrollTop || j.current))
286
- return;
287
- const x = V({
288
- scrollTop: m,
289
- clientHeight: p,
290
- scrollHeight: s
291
- }), { itemIndex: d, itemOffsetPtg: h, startIndex: M, endIndex: y } = St(
292
- x,
293
- k,
294
- O
295
- );
296
- B({
297
- ...g,
298
- scrollTop: m,
299
- itemIndex: d,
300
- itemOffsetPtg: h,
301
- startIndex: M,
302
- endIndex: y,
303
- status: "MEASURE_START"
304
- }), n && (C == null || C(n, { index: d }));
305
- };
306
- N(() => () => {
307
- L.current && yt(L.current);
308
- }, []), N(() => {
309
- a.current && (vt && (a.current.scrollTop = 0), gt(null, !0));
310
- }, [O]), N(() => {
311
- if (!a.current) return;
312
- let n = null;
313
- const t = at.current !== b ? b ? "virtual" : "raw" : "";
314
- if (at.current = b, W && $.length !== r.length) {
315
- const s = Xt($, r, Y);
316
- n = s ? s.index : null;
317
- }
318
- if (t || b && n) {
319
- const { clientHeight: s } = a.current, u = J({
320
- itemHeight: E(
321
- S(g.itemIndex, $)
322
- ),
323
- itemOffsetPtg: g.itemOffsetPtg,
324
- scrollPtg: V({
325
- scrollTop: g.scrollTop,
326
- scrollHeight: $.length * A,
327
- clientHeight: s
328
- }),
329
- clientHeight: s
330
- });
331
- if (t === "raw") {
332
- let p = u;
333
- for (let m = 0; m < g.itemIndex; m++)
334
- p -= E(S(m));
335
- a.current.scrollTop = -p, j.current = !0, L.current = lt(() => {
336
- j.current = !1;
337
- });
338
- } else
339
- dt({
340
- itemIndex: g.itemIndex,
341
- relativeTop: u
342
- });
343
- }
344
- }, [r, b]), jt(() => {
345
- if (g.status === "MEASURE_START" && a.current) {
346
- const { scrollTop: n, scrollHeight: t, clientHeight: s } = a.current, u = V({
347
- scrollTop: n,
348
- scrollHeight: t,
349
- clientHeight: s
350
- });
351
- let p = Jt({
352
- scrollPtg: u,
353
- clientHeight: s,
354
- scrollTop: n - (mt.top + mt.bottom) * u,
355
- itemHeight: E(S(g.itemIndex)),
356
- itemOffsetPtg: g.itemOffsetPtg
357
- });
358
- for (let m = g.itemIndex - 1; m >= g.startIndex; m--)
359
- p -= E(S(m));
360
- B({
361
- ...g,
362
- startItemTop: p,
363
- status: "MEASURE_DONE"
364
- });
365
- }
366
- }, [g]), Dt(
367
- o,
368
- () => ({
369
- dom: a.current,
370
- getRootDOMNode: () => a.current,
371
- // Scroll to a certain height or an element
372
- scrollTo: (n) => {
373
- L.current && yt(L.current), L.current = lt(() => {
374
- var x;
375
- if (!a.current) return;
376
- if (typeof n == "number") {
377
- a.current.scrollTop = n;
378
- return;
379
- }
380
- const t = "index" in n ? n.index : "key" in n ? r.findIndex(
381
- (d, h) => Y(d, h) === n.key
382
- ) : 0, s = r[t];
383
- if (!s)
384
- return;
385
- let u = typeof n == "object" && ((x = n.options) != null && x.block) ? n.options.block : (F == null ? void 0 : F.block) || "nearest";
386
- const { clientHeight: p, scrollTop: m } = a.current;
387
- if (b && !T) {
388
- if (u === "nearest") {
389
- const { itemIndex: d, itemOffsetPtg: h } = g;
390
- if (Math.abs(d - t) < O) {
391
- let M = J({
392
- itemHeight: E(S(d)),
393
- itemOffsetPtg: h,
394
- clientHeight: p,
395
- scrollPtg: V(a.current)
396
- });
397
- if (t < d)
398
- for (let y = t; y < d; y++)
399
- M -= E(S(y));
400
- else
401
- for (let y = d; y < t; y++)
402
- M += E(S(y));
403
- if (M < 0 || M > p)
404
- u = M < 0 ? "start" : "end";
405
- else
406
- return;
407
- } else
408
- u = t < d ? "start" : "end";
409
- }
410
- B({
411
- ...g,
412
- startIndex: Math.max(0, t - O),
413
- endIndex: Math.min(k - 1, t + O)
414
- }).then(() => {
415
- const d = E(Y(s, t));
416
- dt({
417
- itemIndex: t,
418
- relativeTop: u === "start" ? 0 : (p - d) / (u === "center" ? 2 : 1)
419
- });
420
- });
421
- } else {
422
- const d = E(
423
- S(t)
424
- );
425
- let h = 0;
426
- for (let U = 0; U < t; U++)
427
- h += E(S(U));
428
- const M = h + d, y = h + d / 2;
429
- if (y > m && y < p + m)
430
- return;
431
- u === "nearest" && (h < m ? u = "start" : M > m + p && (u = "end"));
432
- const q = p - d;
433
- a.current.scrollTop = h - (u === "start" ? 0 : q / (u === "center" ? 2 : 1));
434
- }
435
- });
436
- }
437
- }),
438
- [r, A, g]
439
- );
440
- const z = (n, t) => n.map((s, u) => {
441
- const p = t + u, m = ft(s, p, {
442
- style: {},
443
- itemIndex: u
444
- }), x = Y(s, p);
445
- return it.cloneElement(m, {
446
- key: x,
447
- ref: (d) => {
448
- const { current: h } = K;
449
- d && g.status === "MEASURE_START" && (!T || h[x] === void 0) && (T ? (h[D] || (h[D] = Mt(d, !0)), h[x] = h[D]) : h[x] = Mt(d, !0)), Ot(m == null ? void 0 : m.ref) && (m == null || m.ref(d));
450
- }
451
- });
452
- }), X = w(null);
453
- N(() => {
454
- X.current = null;
455
- }, [r]);
456
- const Lt = () => {
457
- if (v) {
458
- const n = X.current === null ? Zt(r) : X.current, t = r[n];
459
- return X.current = n, t ? /* @__PURE__ */ P("div", { style: { height: 1, overflow: "hidden", opacity: 0 }, children: ft(t, n, { style: {} }) }) : null;
460
- }
461
- return null;
462
- };
463
- return N(() => {
464
- function n() {
465
- if (a.current && !xt(G)) {
466
- const { clientHeight: s } = a.current;
467
- Rt(s);
468
- }
469
- }
470
- let t;
471
- return a.current && (t = new ResizeObserver(n), t.observe(a.current)), () => {
472
- var s, u;
473
- a.current && ((s = t == null ? void 0 : t.unobserve) == null || s.call(t, a.current)), (u = t == null ? void 0 : t.disconnect) == null || u.call(t), t = null;
474
- };
475
- }, [a.current]), /* @__PURE__ */ P(
476
- _,
477
- {
478
- ref: a,
479
- style: {
480
- overflowY: "auto",
481
- overflowAnchor: "none",
482
- ...i,
483
- maxHeight: G
484
- },
485
- className: e,
486
- onScroll: b ? gt : wt,
487
- ...bt,
488
- children: b ? /* @__PURE__ */ kt(At, { children: [
489
- /* @__PURE__ */ P(
490
- Ht,
491
- {
492
- height: Z,
493
- outerStyle: st,
494
- innerStyle: ut,
495
- offset: g.status === "MEASURE_DONE" ? g.startItemTop : 0,
496
- children: /* @__PURE__ */ P(Q, { children: z(
497
- r.slice(g.startIndex, g.endIndex + 1),
498
- g.startIndex
499
- ) })
500
- }
501
- ),
502
- Lt()
503
- ] }) : _t ? /* @__PURE__ */ P(
504
- Ht,
505
- {
506
- height: W,
507
- outerStyle: st,
508
- innerStyle: ut,
509
- children: /* @__PURE__ */ P(Q, { children: z(r, 0) })
510
- }
511
- ) : /* @__PURE__ */ P(Q, { children: z(r, 0) })
512
- }
513
- );
514
- });
515
- ne.displayName = "VirtualList";
516
- export {
517
- ne as V
518
- };