funda-ui 4.7.624 → 4.7.701

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 (613) hide show
  1. package/{publish/CascadingSelect → CascadingSelect}/index.js +2 -2
  2. package/{publish/CascadingSelectE2E → CascadingSelectE2E}/index.js +2 -2
  3. package/{publish/Chatbox → Chatbox}/index.js +3 -17
  4. package/{publish/lib/cjs/Checkbox → Checkbox}/index.js +3 -3
  5. package/{publish/lib/cjs/ColorPicker → ColorPicker}/index.js +3 -18
  6. package/{publish/lib/cjs/Date → Date}/index.js +3 -18
  7. package/{publish/lib/cjs/EventCalendarTimeline → EventCalendarTimeline}/index.d.ts +1 -1
  8. package/{publish/EventCalendarTimeline → EventCalendarTimeline}/index.js +11 -1
  9. package/{publish/File → File}/index.d.ts +9 -0
  10. package/{publish/lib/cjs/File → File}/index.js +245 -93
  11. package/{publish/lib/cjs/Input → Input}/index.js +3 -18
  12. package/{publish/lib/cjs/LiveSearch → LiveSearch}/index.js +3 -18
  13. package/{publish/NativeSelect → NativeSelect}/index.js +3 -3
  14. package/{publish/NumberInput → NumberInput}/index.js +3 -18
  15. package/{publish/lib/css/Tooltip → Popover}/index.css +69 -69
  16. package/Popover/index.d.ts +4 -0
  17. package/{publish/lib/cjs/Tooltip → Popover}/index.js +301 -271
  18. package/README.md +3 -116
  19. package/{publish/lib/cjs/Radio → Radio}/index.js +3 -3
  20. package/{publish/lib/cjs/RangeSlider → RangeSlider}/index.js +3 -18
  21. package/{publish/SearchBar → SearchBar}/index.js +3 -18
  22. package/{publish/Select → Select}/index.js +3 -2
  23. package/{publish/Switch → Switch}/index.js +3 -3
  24. package/TagInput/index.css +91 -0
  25. package/{publish/lib/cjs/TagInput → TagInput}/index.js +12 -23
  26. package/{publish/lib/cjs/Textarea → Textarea}/index.js +3 -17
  27. package/Utils/useSSE.d.ts +9 -0
  28. package/{publish/lib/cjs/Utils/useKeyPress.js → Utils/useSSE.js} +88 -77
  29. package/{publish/all.d.ts → all.d.ts} +1 -0
  30. package/{publish/all.js → all.js} +1 -0
  31. package/lib/cjs/CascadingSelect/index.js +2 -2
  32. package/lib/cjs/CascadingSelectE2E/index.js +2 -2
  33. package/lib/cjs/Chatbox/index.js +3 -17
  34. package/lib/cjs/Checkbox/index.js +3 -3
  35. package/lib/cjs/ColorPicker/index.js +3 -18
  36. package/lib/cjs/Date/index.js +3 -18
  37. package/lib/cjs/EventCalendarTimeline/index.d.ts +1 -1
  38. package/lib/cjs/EventCalendarTimeline/index.js +11 -1
  39. package/lib/cjs/File/index.d.ts +9 -0
  40. package/lib/cjs/File/index.js +245 -93
  41. package/lib/cjs/Input/index.js +3 -18
  42. package/lib/cjs/LiveSearch/index.js +3 -18
  43. package/lib/cjs/NativeSelect/index.js +3 -3
  44. package/lib/cjs/NumberInput/index.js +3 -18
  45. package/lib/cjs/Popover/index.d.ts +4 -0
  46. package/{publish/lib/cjs/DropdownMenu → lib/cjs/Popover}/index.js +553 -252
  47. package/lib/cjs/Radio/index.js +3 -3
  48. package/lib/cjs/RangeSlider/index.js +3 -18
  49. package/lib/cjs/SearchBar/index.js +3 -18
  50. package/lib/cjs/Select/index.js +3 -2
  51. package/lib/cjs/Switch/index.js +3 -3
  52. package/lib/cjs/TagInput/index.js +12 -23
  53. package/lib/cjs/Textarea/index.js +3 -17
  54. package/lib/cjs/Utils/useSSE.d.ts +9 -0
  55. package/{publish/lib/cjs/Utils/useAutosizeTextArea.js → lib/cjs/Utils/useSSE.js} +90 -110
  56. package/lib/cjs/index.d.ts +1 -0
  57. package/lib/cjs/index.js +1 -0
  58. package/lib/css/Popover/index.css +198 -0
  59. package/lib/css/TagInput/index.css +31 -31
  60. package/lib/esm/CascadingSelect/index.tsx +2 -2
  61. package/lib/esm/CascadingSelectE2E/index.tsx +2 -2
  62. package/lib/esm/Checkbox/index.tsx +3 -3
  63. package/lib/esm/ColorPicker/index.tsx +4 -15
  64. package/lib/esm/EventCalendarTimeline/index.tsx +11 -2
  65. package/lib/esm/File/index.tsx +148 -23
  66. package/lib/esm/Input/index.tsx +6 -17
  67. package/lib/esm/NativeSelect/index.tsx +3 -3
  68. package/lib/esm/NumberInput/index.tsx +7 -15
  69. package/lib/esm/Popover/Popover.tsx +251 -0
  70. package/lib/esm/Popover/PopoverClose.tsx +51 -0
  71. package/lib/esm/Popover/PopoverContent.tsx +72 -0
  72. package/lib/esm/Popover/PopoverTrigger.tsx +62 -0
  73. package/{publish/lib/esm/Tooltip → lib/esm/Popover}/index.scss +61 -61
  74. package/lib/esm/Popover/index.tsx +4 -0
  75. package/lib/esm/Radio/index.tsx +3 -3
  76. package/lib/esm/SearchBar/index.tsx +8 -12
  77. package/lib/esm/Select/index.tsx +2 -2
  78. package/lib/esm/Switch/index.tsx +3 -3
  79. package/lib/esm/TagInput/index.scss +24 -24
  80. package/lib/esm/TagInput/index.tsx +13 -20
  81. package/lib/esm/Textarea/index.tsx +6 -14
  82. package/lib/esm/Utils/hooks/useSSE.tsx +109 -0
  83. package/lib/esm/index.js +1 -0
  84. package/package.json +1 -591
  85. package/.gitattributes +0 -2
  86. package/README_PUBLISH.md +0 -328
  87. package/logo.png +0 -0
  88. package/preview.png +0 -0
  89. package/publish/Checkbox/index.js +0 -673
  90. package/publish/ColorPicker/index.js +0 -662
  91. package/publish/Date/index.js +0 -6368
  92. package/publish/EventCalendarTimeline/index.d.ts +0 -100
  93. package/publish/File/index.js +0 -1751
  94. package/publish/Input/index.js +0 -1486
  95. package/publish/LICENSE +0 -21
  96. package/publish/LiveSearch/index.js +0 -4180
  97. package/publish/README.md +0 -328
  98. package/publish/Radio/index.js +0 -1838
  99. package/publish/RangeSlider/index.js +0 -2696
  100. package/publish/TagInput/index.css +0 -91
  101. package/publish/TagInput/index.js +0 -1227
  102. package/publish/Textarea/index.js +0 -1795
  103. package/publish/lib/cjs/Accordion/index.d.ts +0 -2
  104. package/publish/lib/cjs/Accordion/index.js +0 -667
  105. package/publish/lib/cjs/BackToTop/index.d.ts +0 -17
  106. package/publish/lib/cjs/BackToTop/index.js +0 -904
  107. package/publish/lib/cjs/CascadingSelect/index.d.ts +0 -80
  108. package/publish/lib/cjs/CascadingSelect/index.js +0 -3383
  109. package/publish/lib/cjs/CascadingSelectE2E/index.d.ts +0 -91
  110. package/publish/lib/cjs/CascadingSelectE2E/index.js +0 -3988
  111. package/publish/lib/cjs/Chatbox/index.d.ts +0 -101
  112. package/publish/lib/cjs/Chatbox/index.js +0 -7037
  113. package/publish/lib/cjs/Checkbox/index.d.ts +0 -28
  114. package/publish/lib/cjs/ColorPicker/index.d.ts +0 -27
  115. package/publish/lib/cjs/Date/index.d.ts +0 -70
  116. package/publish/lib/cjs/DigitalClock/index.d.ts +0 -7
  117. package/publish/lib/cjs/DigitalClock/index.js +0 -402
  118. package/publish/lib/cjs/DragDropList/index.d.ts +0 -45
  119. package/publish/lib/cjs/DragDropList/index.js +0 -1586
  120. package/publish/lib/cjs/DropdownMenu/index.d.ts +0 -38
  121. package/publish/lib/cjs/DynamicFields/index.d.ts +0 -40
  122. package/publish/lib/cjs/DynamicFields/index.js +0 -818
  123. package/publish/lib/cjs/EventCalendar/index.d.ts +0 -61
  124. package/publish/lib/cjs/EventCalendar/index.js +0 -3789
  125. package/publish/lib/cjs/EventCalendarTimeline/index.js +0 -6141
  126. package/publish/lib/cjs/File/index.d.ts +0 -40
  127. package/publish/lib/cjs/HorizontalScrollContent/index.d.ts +0 -14
  128. package/publish/lib/cjs/HorizontalScrollContent/index.js +0 -426
  129. package/publish/lib/cjs/Input/index.d.ts +0 -59
  130. package/publish/lib/cjs/LiveSearch/index.d.ts +0 -70
  131. package/publish/lib/cjs/MasonryLayout/index.d.ts +0 -14
  132. package/publish/lib/cjs/MasonryLayout/index.js +0 -689
  133. package/publish/lib/cjs/ModalDialog/index.d.ts +0 -83
  134. package/publish/lib/cjs/ModalDialog/index.js +0 -1719
  135. package/publish/lib/cjs/ModeSwitch/index.d.ts +0 -17
  136. package/publish/lib/cjs/ModeSwitch/index.js +0 -202
  137. package/publish/lib/cjs/MultilevelDropdownMenu/index.d.ts +0 -20
  138. package/publish/lib/cjs/MultilevelDropdownMenu/index.js +0 -930
  139. package/publish/lib/cjs/MultipleCheckboxes/index.d.ts +0 -66
  140. package/publish/lib/cjs/MultipleCheckboxes/index.js +0 -2337
  141. package/publish/lib/cjs/MultipleSelect/index.d.ts +0 -65
  142. package/publish/lib/cjs/MultipleSelect/index.js +0 -4197
  143. package/publish/lib/cjs/NativeSelect/index.d.ts +0 -37
  144. package/publish/lib/cjs/NativeSelect/index.js +0 -2052
  145. package/publish/lib/cjs/NumberInput/index.d.ts +0 -40
  146. package/publish/lib/cjs/NumberInput/index.js +0 -1191
  147. package/publish/lib/cjs/Pagination/index.d.ts +0 -51
  148. package/publish/lib/cjs/Pagination/index.js +0 -612
  149. package/publish/lib/cjs/Radio/index.d.ts +0 -45
  150. package/publish/lib/cjs/RangeSlider/index.d.ts +0 -22
  151. package/publish/lib/cjs/Refresher/index.d.ts +0 -22
  152. package/publish/lib/cjs/Refresher/index.js +0 -564
  153. package/publish/lib/cjs/RootPortal/index.d.ts +0 -9
  154. package/publish/lib/cjs/RootPortal/index.js +0 -148
  155. package/publish/lib/cjs/ScrollReveal/index.d.ts +0 -21
  156. package/publish/lib/cjs/ScrollReveal/index.js +0 -401
  157. package/publish/lib/cjs/Scrollbar/index.d.ts +0 -17
  158. package/publish/lib/cjs/Scrollbar/index.js +0 -1107
  159. package/publish/lib/cjs/SearchBar/index.d.ts +0 -41
  160. package/publish/lib/cjs/SearchBar/index.js +0 -701
  161. package/publish/lib/cjs/Select/index.d.ts +0 -107
  162. package/publish/lib/cjs/Select/index.js +0 -6540
  163. package/publish/lib/cjs/ShowMoreLess/index.d.ts +0 -36
  164. package/publish/lib/cjs/ShowMoreLess/index.js +0 -387
  165. package/publish/lib/cjs/SplitterPanel/index.d.ts +0 -20
  166. package/publish/lib/cjs/SplitterPanel/index.js +0 -800
  167. package/publish/lib/cjs/Stepper/index.d.ts +0 -26
  168. package/publish/lib/cjs/Stepper/index.js +0 -568
  169. package/publish/lib/cjs/Switch/index.d.ts +0 -25
  170. package/publish/lib/cjs/Switch/index.js +0 -630
  171. package/publish/lib/cjs/Table/index.d.ts +0 -12
  172. package/publish/lib/cjs/Table/index.js +0 -2311
  173. package/publish/lib/cjs/Tabs/index.d.ts +0 -3
  174. package/publish/lib/cjs/Tabs/index.js +0 -771
  175. package/publish/lib/cjs/TagInput/index.d.ts +0 -37
  176. package/publish/lib/cjs/Textarea/index.d.ts +0 -50
  177. package/publish/lib/cjs/Toast/index.d.ts +0 -3
  178. package/publish/lib/cjs/Toast/index.js +0 -1345
  179. package/publish/lib/cjs/Tooltip/index.d.ts +0 -38
  180. package/publish/lib/cjs/Tree/index.d.ts +0 -78
  181. package/publish/lib/cjs/Tree/index.js +0 -2330
  182. package/publish/lib/cjs/Utils/anim.d.ts +0 -11
  183. package/publish/lib/cjs/Utils/anim.js +0 -846
  184. package/publish/lib/cjs/Utils/bodyScrollLock.d.ts +0 -8
  185. package/publish/lib/cjs/Utils/bodyScrollLock.js +0 -311
  186. package/publish/lib/cjs/Utils/buffer.d.ts +0 -67
  187. package/publish/lib/cjs/Utils/buffer.js +0 -343
  188. package/publish/lib/cjs/Utils/cls.d.ts +0 -15
  189. package/publish/lib/cjs/Utils/cls.js +0 -124
  190. package/publish/lib/cjs/Utils/convert.d.ts +0 -25
  191. package/publish/lib/cjs/Utils/convert.js +0 -109
  192. package/publish/lib/cjs/Utils/date.d.ts +0 -227
  193. package/publish/lib/cjs/Utils/date.js +0 -587
  194. package/publish/lib/cjs/Utils/dom.d.ts +0 -13
  195. package/publish/lib/cjs/Utils/dom.js +0 -215
  196. package/publish/lib/cjs/Utils/easing.d.ts +0 -29
  197. package/publish/lib/cjs/Utils/easing.js +0 -221
  198. package/publish/lib/cjs/Utils/extract.d.ts +0 -66
  199. package/publish/lib/cjs/Utils/extract.js +0 -195
  200. package/publish/lib/cjs/Utils/format-string.d.ts +0 -65
  201. package/publish/lib/cjs/Utils/format-string.js +0 -167
  202. package/publish/lib/cjs/Utils/formdata.d.ts +0 -13
  203. package/publish/lib/cjs/Utils/formdata.js +0 -131
  204. package/publish/lib/cjs/Utils/getElementProperty.d.ts +0 -52
  205. package/publish/lib/cjs/Utils/getElementProperty.js +0 -189
  206. package/publish/lib/cjs/Utils/guid.d.ts +0 -7
  207. package/publish/lib/cjs/Utils/guid.js +0 -67
  208. package/publish/lib/cjs/Utils/initDefaultOptions.d.ts +0 -10
  209. package/publish/lib/cjs/Utils/initDefaultOptions.js +0 -607
  210. package/publish/lib/cjs/Utils/inputsCalculation.d.ts +0 -28
  211. package/publish/lib/cjs/Utils/inputsCalculation.js +0 -188
  212. package/publish/lib/cjs/Utils/math.d.ts +0 -77
  213. package/publish/lib/cjs/Utils/math.js +0 -305
  214. package/publish/lib/cjs/Utils/object.d.ts +0 -18
  215. package/publish/lib/cjs/Utils/object.js +0 -120
  216. package/publish/lib/cjs/Utils/os.d.ts +0 -2
  217. package/publish/lib/cjs/Utils/os.js +0 -104
  218. package/publish/lib/cjs/Utils/performance.d.ts +0 -3
  219. package/publish/lib/cjs/Utils/performance.js +0 -94
  220. package/publish/lib/cjs/Utils/sanitize.d.ts +0 -14
  221. package/publish/lib/cjs/Utils/sanitize.js +0 -87
  222. package/publish/lib/cjs/Utils/time.d.ts +0 -40
  223. package/publish/lib/cjs/Utils/time.js +0 -177
  224. package/publish/lib/cjs/Utils/tree.d.ts +0 -40
  225. package/publish/lib/cjs/Utils/tree.js +0 -195
  226. package/publish/lib/cjs/Utils/useAutosizeTextArea.d.ts +0 -10
  227. package/publish/lib/cjs/Utils/useBoundedDrag.d.ts +0 -125
  228. package/publish/lib/cjs/Utils/useBoundedDrag.js +0 -380
  229. package/publish/lib/cjs/Utils/useClickOutside.d.ts +0 -33
  230. package/publish/lib/cjs/Utils/useClickOutside.js +0 -166
  231. package/publish/lib/cjs/Utils/useComId.d.ts +0 -6
  232. package/publish/lib/cjs/Utils/useComId.js +0 -114
  233. package/publish/lib/cjs/Utils/useDebounce.d.ts +0 -20
  234. package/publish/lib/cjs/Utils/useDebounce.js +0 -138
  235. package/publish/lib/cjs/Utils/useDragDropPosition.d.ts +0 -166
  236. package/publish/lib/cjs/Utils/useDragDropPosition.js +0 -453
  237. package/publish/lib/cjs/Utils/useDraggable.d.ts +0 -62
  238. package/publish/lib/cjs/Utils/useDraggable.js +0 -348
  239. package/publish/lib/cjs/Utils/useHistoryTracker.d.ts +0 -166
  240. package/publish/lib/cjs/Utils/useHistoryTracker.js +0 -649
  241. package/publish/lib/cjs/Utils/useInterval.d.ts +0 -5
  242. package/publish/lib/cjs/Utils/useInterval.js +0 -168
  243. package/publish/lib/cjs/Utils/useIsMobile.d.ts +0 -2
  244. package/publish/lib/cjs/Utils/useIsMobile.js +0 -232
  245. package/publish/lib/cjs/Utils/useKeyPress.d.ts +0 -44
  246. package/publish/lib/cjs/Utils/useSessionStorageListener.d.ts +0 -2
  247. package/publish/lib/cjs/Utils/useSessionStorageListener.js +0 -157
  248. package/publish/lib/cjs/Utils/useStreamController.d.ts +0 -71
  249. package/publish/lib/cjs/Utils/useStreamController.js +0 -494
  250. package/publish/lib/cjs/Utils/useThrottle.d.ts +0 -2
  251. package/publish/lib/cjs/Utils/useThrottle.js +0 -136
  252. package/publish/lib/cjs/Utils/useWindowScroll.d.ts +0 -12
  253. package/publish/lib/cjs/Utils/useWindowScroll.js +0 -217
  254. package/publish/lib/cjs/Utils/validate.d.ts +0 -53
  255. package/publish/lib/cjs/Utils/validate.js +0 -536
  256. package/publish/lib/cjs/Utils/viewport.d.ts +0 -7
  257. package/publish/lib/cjs/Utils/viewport.js +0 -64
  258. package/publish/lib/cjs/index.d.ts +0 -49
  259. package/publish/lib/cjs/index.js +0 -50
  260. package/publish/lib/css/BackToTop/index.css +0 -34
  261. package/publish/lib/css/CascadingSelect/index.css +0 -245
  262. package/publish/lib/css/CascadingSelectE2E/index.css +0 -245
  263. package/publish/lib/css/Chatbox/index.css +0 -774
  264. package/publish/lib/css/ColorPicker/index.css +0 -58
  265. package/publish/lib/css/Date/index.css +0 -434
  266. package/publish/lib/css/DragDropList/index.css +0 -188
  267. package/publish/lib/css/DropdownMenu/index.css +0 -151
  268. package/publish/lib/css/EventCalendar/index.css +0 -300
  269. package/publish/lib/css/EventCalendarTimeline/index.css +0 -694
  270. package/publish/lib/css/HorizontalScrollContent/index.css +0 -70
  271. package/publish/lib/css/LiveSearch/index.css +0 -88
  272. package/publish/lib/css/MultilevelDropdownMenu/index.css +0 -38
  273. package/publish/lib/css/MultipleSelect/index.css +0 -313
  274. package/publish/lib/css/RangeSlider/index.css +0 -150
  275. package/publish/lib/css/Scrollbar/index.css +0 -176
  276. package/publish/lib/css/Select/index.css +0 -434
  277. package/publish/lib/css/ShowMoreLess/index.css +0 -23
  278. package/publish/lib/css/SplitterPanel/index.css +0 -63
  279. package/publish/lib/css/Stepper/index.css +0 -250
  280. package/publish/lib/css/Table/index.css +0 -584
  281. package/publish/lib/css/TagInput/index.css +0 -91
  282. package/publish/lib/css/Toast/index.css +0 -149
  283. package/publish/lib/css/Tree/index.css +0 -237
  284. package/publish/lib/esm/Accordion/Accordion.tsx +0 -185
  285. package/publish/lib/esm/Accordion/AccordionItem.tsx +0 -248
  286. package/publish/lib/esm/Accordion/index.tsx +0 -2
  287. package/publish/lib/esm/BackToTop/index.scss +0 -47
  288. package/publish/lib/esm/BackToTop/index.tsx +0 -177
  289. package/publish/lib/esm/CascadingSelect/Group.tsx +0 -83
  290. package/publish/lib/esm/CascadingSelect/index.scss +0 -330
  291. package/publish/lib/esm/CascadingSelect/index.tsx +0 -1397
  292. package/publish/lib/esm/CascadingSelectE2E/Group.tsx +0 -87
  293. package/publish/lib/esm/CascadingSelectE2E/index.scss +0 -333
  294. package/publish/lib/esm/CascadingSelectE2E/index.tsx +0 -1684
  295. package/publish/lib/esm/Chatbox/PureLoader.tsx +0 -47
  296. package/publish/lib/esm/Chatbox/TypingEffect.tsx +0 -56
  297. package/publish/lib/esm/Chatbox/index.scss +0 -966
  298. package/publish/lib/esm/Chatbox/index.tsx +0 -1742
  299. package/publish/lib/esm/Chatbox/utils/func.ts +0 -180
  300. package/publish/lib/esm/Checkbox/index.tsx +0 -206
  301. package/publish/lib/esm/ColorPicker/index.scss +0 -91
  302. package/publish/lib/esm/ColorPicker/index.tsx +0 -204
  303. package/publish/lib/esm/Date/Calendar.tsx +0 -723
  304. package/publish/lib/esm/Date/index.scss +0 -567
  305. package/publish/lib/esm/Date/index.tsx +0 -1797
  306. package/publish/lib/esm/Date/localization/en_US.js +0 -13
  307. package/publish/lib/esm/Date/localization/zh_CN.js +0 -12
  308. package/publish/lib/esm/DigitalClock/index.tsx +0 -74
  309. package/publish/lib/esm/DragDropList/index.scss +0 -245
  310. package/publish/lib/esm/DragDropList/index.tsx +0 -504
  311. package/publish/lib/esm/DropdownMenu/Option.tsx +0 -55
  312. package/publish/lib/esm/DropdownMenu/index.scss +0 -205
  313. package/publish/lib/esm/DropdownMenu/index.tsx +0 -378
  314. package/publish/lib/esm/DynamicFields/index.tsx +0 -409
  315. package/publish/lib/esm/EventCalendar/index.scss +0 -407
  316. package/publish/lib/esm/EventCalendar/index.tsx +0 -1005
  317. package/publish/lib/esm/EventCalendarTimeline/index.scss +0 -926
  318. package/publish/lib/esm/EventCalendarTimeline/index.tsx +0 -2686
  319. package/publish/lib/esm/File/index.tsx +0 -477
  320. package/publish/lib/esm/HorizontalScrollContent/index.scss +0 -87
  321. package/publish/lib/esm/HorizontalScrollContent/index.tsx +0 -171
  322. package/publish/lib/esm/Input/index.tsx +0 -641
  323. package/publish/lib/esm/LiveSearch/index.scss +0 -129
  324. package/publish/lib/esm/LiveSearch/index.tsx +0 -1058
  325. package/publish/lib/esm/MasonryLayout/index.tsx +0 -326
  326. package/publish/lib/esm/ModalDialog/index.tsx +0 -572
  327. package/publish/lib/esm/ModeSwitch/index.tsx +0 -82
  328. package/publish/lib/esm/MultilevelDropdownMenu/ItemList.tsx +0 -265
  329. package/publish/lib/esm/MultilevelDropdownMenu/index.scss +0 -79
  330. package/publish/lib/esm/MultilevelDropdownMenu/index.tsx +0 -77
  331. package/publish/lib/esm/MultipleCheckboxes/index.tsx +0 -849
  332. package/publish/lib/esm/MultipleSelect/index.scss +0 -398
  333. package/publish/lib/esm/MultipleSelect/index.tsx +0 -769
  334. package/publish/lib/esm/MultipleSelect/utils/func.ts +0 -63
  335. package/publish/lib/esm/NativeSelect/index.tsx +0 -396
  336. package/publish/lib/esm/NativeSelect/utils/func.ts +0 -51
  337. package/publish/lib/esm/NumberInput/index.tsx +0 -425
  338. package/publish/lib/esm/Pagination/index.tsx +0 -286
  339. package/publish/lib/esm/Pagination/pagination-navigators.tsx +0 -60
  340. package/publish/lib/esm/Radio/index.tsx +0 -694
  341. package/publish/lib/esm/RangeSlider/index.scss +0 -186
  342. package/publish/lib/esm/RangeSlider/index.tsx +0 -241
  343. package/publish/lib/esm/Refresher/index.tsx +0 -121
  344. package/publish/lib/esm/RootPortal/index.tsx +0 -59
  345. package/publish/lib/esm/ScrollReveal/index.tsx +0 -148
  346. package/publish/lib/esm/Scrollbar/index.scss +0 -221
  347. package/publish/lib/esm/Scrollbar/index.tsx +0 -561
  348. package/publish/lib/esm/SearchBar/index.tsx +0 -252
  349. package/publish/lib/esm/Select/index.scss +0 -639
  350. package/publish/lib/esm/Select/index.tsx +0 -3104
  351. package/publish/lib/esm/Select/utils/func.ts +0 -98
  352. package/publish/lib/esm/ShowMoreLess/index.scss +0 -27
  353. package/publish/lib/esm/ShowMoreLess/index.tsx +0 -145
  354. package/publish/lib/esm/SplitterPanel/index.scss +0 -82
  355. package/publish/lib/esm/SplitterPanel/index.tsx +0 -174
  356. package/publish/lib/esm/Stepper/index.scss +0 -315
  357. package/publish/lib/esm/Stepper/index.tsx +0 -325
  358. package/publish/lib/esm/Switch/index.tsx +0 -149
  359. package/publish/lib/esm/Table/Table.tsx +0 -351
  360. package/publish/lib/esm/Table/TableBody.tsx +0 -41
  361. package/publish/lib/esm/Table/TableCaption.tsx +0 -34
  362. package/publish/lib/esm/Table/TableCell.tsx +0 -126
  363. package/publish/lib/esm/Table/TableColgroup.tsx +0 -38
  364. package/publish/lib/esm/Table/TableContext.tsx +0 -26
  365. package/publish/lib/esm/Table/TableFoot.tsx +0 -28
  366. package/publish/lib/esm/Table/TableHead.tsx +0 -28
  367. package/publish/lib/esm/Table/TableRow.tsx +0 -76
  368. package/publish/lib/esm/Table/index.scss +0 -418
  369. package/publish/lib/esm/Table/index.tsx +0 -14
  370. package/publish/lib/esm/Table/utils/DragHandleSprite.tsx +0 -46
  371. package/publish/lib/esm/Table/utils/SortSprite.tsx +0 -63
  372. package/publish/lib/esm/Table/utils/TableFilter.tsx +0 -56
  373. package/publish/lib/esm/Table/utils/ToggleSelection.tsx +0 -255
  374. package/publish/lib/esm/Table/utils/func.ts +0 -182
  375. package/publish/lib/esm/Table/utils/hooks/useTableDraggable.tsx +0 -342
  376. package/publish/lib/esm/Table/utils/hooks/useTableKeyPress.tsx +0 -255
  377. package/publish/lib/esm/Table/utils/hooks/useTableResponsive.tsx +0 -92
  378. package/publish/lib/esm/Table/utils/hooks/useTableSort.tsx +0 -187
  379. package/publish/lib/esm/Tabs/TabList.tsx +0 -50
  380. package/publish/lib/esm/Tabs/TabPanel.tsx +0 -44
  381. package/publish/lib/esm/Tabs/Tabs.tsx +0 -282
  382. package/publish/lib/esm/Tabs/index.tsx +0 -3
  383. package/publish/lib/esm/TagInput/index.scss +0 -126
  384. package/publish/lib/esm/TagInput/index.tsx +0 -379
  385. package/publish/lib/esm/Textarea/index.tsx +0 -621
  386. package/publish/lib/esm/Toast/Item.tsx +0 -165
  387. package/publish/lib/esm/Toast/Toast.tsx +0 -391
  388. package/publish/lib/esm/Toast/ToastContext.tsx +0 -104
  389. package/publish/lib/esm/Toast/__toast.vanilla.js +0 -422
  390. package/publish/lib/esm/Toast/index.scss +0 -197
  391. package/publish/lib/esm/Toast/index.tsx +0 -3
  392. package/publish/lib/esm/Toast/types.ts +0 -60
  393. package/publish/lib/esm/Toast/useToast.tsx +0 -72
  394. package/publish/lib/esm/Tooltip/index.tsx +0 -416
  395. package/publish/lib/esm/Tree/TreeList.tsx +0 -600
  396. package/publish/lib/esm/Tree/index.scss +0 -384
  397. package/publish/lib/esm/Tree/index.tsx +0 -661
  398. package/publish/lib/esm/Tree/init-height.tsx +0 -40
  399. package/publish/lib/esm/Tree/utils/func.ts +0 -15
  400. package/publish/lib/esm/Utils/hooks/useAutosizeTextArea.tsx +0 -131
  401. package/publish/lib/esm/Utils/hooks/useBoundedDrag.tsx +0 -301
  402. package/publish/lib/esm/Utils/hooks/useClickOutside.tsx +0 -69
  403. package/publish/lib/esm/Utils/hooks/useComId.tsx +0 -13
  404. package/publish/lib/esm/Utils/hooks/useDebounce.tsx +0 -40
  405. package/publish/lib/esm/Utils/hooks/useDragDropPosition.tsx +0 -417
  406. package/publish/lib/esm/Utils/hooks/useDraggable.tsx +0 -265
  407. package/publish/lib/esm/Utils/hooks/useHistoryTracker.tsx +0 -554
  408. package/publish/lib/esm/Utils/hooks/useInterval.tsx +0 -74
  409. package/publish/lib/esm/Utils/hooks/useIsMobile.tsx +0 -139
  410. package/publish/lib/esm/Utils/hooks/useKeyPress.tsx +0 -104
  411. package/publish/lib/esm/Utils/hooks/useSessionStorageListener.tsx +0 -45
  412. package/publish/lib/esm/Utils/hooks/useStreamController.tsx +0 -277
  413. package/publish/lib/esm/Utils/hooks/useThrottle.tsx +0 -39
  414. package/publish/lib/esm/Utils/hooks/useWindowScroll.tsx +0 -83
  415. package/publish/lib/esm/Utils/libs/anim.ts +0 -96
  416. package/publish/lib/esm/Utils/libs/buffer.ts +0 -262
  417. package/publish/lib/esm/Utils/libs/cls.ts +0 -64
  418. package/publish/lib/esm/Utils/libs/convert.ts +0 -59
  419. package/publish/lib/esm/Utils/libs/date.ts +0 -598
  420. package/publish/lib/esm/Utils/libs/dom.ts +0 -150
  421. package/publish/lib/esm/Utils/libs/easing.ts +0 -201
  422. package/publish/lib/esm/Utils/libs/extract.ts +0 -160
  423. package/publish/lib/esm/Utils/libs/format-string.ts +0 -116
  424. package/publish/lib/esm/Utils/libs/formdata.ts +0 -93
  425. package/publish/lib/esm/Utils/libs/getElementProperty.ts +0 -150
  426. package/publish/lib/esm/Utils/libs/guid.ts +0 -16
  427. package/publish/lib/esm/Utils/libs/initDefaultOptions.ts +0 -43
  428. package/publish/lib/esm/Utils/libs/inputsCalculation.ts +0 -160
  429. package/publish/lib/esm/Utils/libs/math.ts +0 -276
  430. package/publish/lib/esm/Utils/libs/object.ts +0 -68
  431. package/publish/lib/esm/Utils/libs/os.ts +0 -63
  432. package/publish/lib/esm/Utils/libs/performance.ts +0 -47
  433. package/publish/lib/esm/Utils/libs/sanitize.ts +0 -55
  434. package/publish/lib/esm/Utils/libs/time.ts +0 -139
  435. package/publish/lib/esm/Utils/libs/tree.ts +0 -119
  436. package/publish/lib/esm/Utils/libs/validate.ts +0 -434
  437. package/publish/lib/esm/Utils/libs/viewport.ts +0 -20
  438. package/publish/lib/esm/Utils/plugins/bodyScrollLock.ts +0 -286
  439. package/publish/lib/esm/index.js +0 -47
  440. package/publish/package.json +0 -1
  441. /package/{publish/Accordion → Accordion}/index.d.ts +0 -0
  442. /package/{publish/Accordion → Accordion}/index.js +0 -0
  443. /package/{publish/BackToTop → BackToTop}/index.css +0 -0
  444. /package/{publish/BackToTop → BackToTop}/index.d.ts +0 -0
  445. /package/{publish/BackToTop → BackToTop}/index.js +0 -0
  446. /package/{publish/CascadingSelect → CascadingSelect}/index.css +0 -0
  447. /package/{publish/CascadingSelect → CascadingSelect}/index.d.ts +0 -0
  448. /package/{publish/CascadingSelectE2E → CascadingSelectE2E}/index.css +0 -0
  449. /package/{publish/CascadingSelectE2E → CascadingSelectE2E}/index.d.ts +0 -0
  450. /package/{publish/Chatbox → Chatbox}/index.css +0 -0
  451. /package/{publish/Chatbox → Chatbox}/index.d.ts +0 -0
  452. /package/{publish/Checkbox → Checkbox}/index.d.ts +0 -0
  453. /package/{publish/ColorPicker → ColorPicker}/index.css +0 -0
  454. /package/{publish/ColorPicker → ColorPicker}/index.d.ts +0 -0
  455. /package/{publish/Date → Date}/index.css +0 -0
  456. /package/{publish/Date → Date}/index.d.ts +0 -0
  457. /package/{publish/DigitalClock → DigitalClock}/index.d.ts +0 -0
  458. /package/{publish/DigitalClock → DigitalClock}/index.js +0 -0
  459. /package/{publish/DragDropList → DragDropList}/index.css +0 -0
  460. /package/{publish/DragDropList → DragDropList}/index.d.ts +0 -0
  461. /package/{publish/DragDropList → DragDropList}/index.js +0 -0
  462. /package/{publish/DropdownMenu → DropdownMenu}/index.css +0 -0
  463. /package/{publish/DropdownMenu → DropdownMenu}/index.d.ts +0 -0
  464. /package/{publish/DropdownMenu → DropdownMenu}/index.js +0 -0
  465. /package/{publish/DynamicFields → DynamicFields}/index.d.ts +0 -0
  466. /package/{publish/DynamicFields → DynamicFields}/index.js +0 -0
  467. /package/{publish/EventCalendar → EventCalendar}/index.css +0 -0
  468. /package/{publish/EventCalendar → EventCalendar}/index.d.ts +0 -0
  469. /package/{publish/EventCalendar → EventCalendar}/index.js +0 -0
  470. /package/{publish/EventCalendarTimeline → EventCalendarTimeline}/index.css +0 -0
  471. /package/{publish/HorizontalScrollContent → HorizontalScrollContent}/index.css +0 -0
  472. /package/{publish/HorizontalScrollContent → HorizontalScrollContent}/index.d.ts +0 -0
  473. /package/{publish/HorizontalScrollContent → HorizontalScrollContent}/index.js +0 -0
  474. /package/{publish/Input → Input}/index.d.ts +0 -0
  475. /package/{publish/LiveSearch → LiveSearch}/index.css +0 -0
  476. /package/{publish/LiveSearch → LiveSearch}/index.d.ts +0 -0
  477. /package/{publish/MasonryLayout → MasonryLayout}/index.d.ts +0 -0
  478. /package/{publish/MasonryLayout → MasonryLayout}/index.js +0 -0
  479. /package/{publish/ModalDialog → ModalDialog}/index.d.ts +0 -0
  480. /package/{publish/ModalDialog → ModalDialog}/index.js +0 -0
  481. /package/{publish/ModeSwitch → ModeSwitch}/index.d.ts +0 -0
  482. /package/{publish/ModeSwitch → ModeSwitch}/index.js +0 -0
  483. /package/{publish/MultilevelDropdownMenu → MultilevelDropdownMenu}/index.css +0 -0
  484. /package/{publish/MultilevelDropdownMenu → MultilevelDropdownMenu}/index.d.ts +0 -0
  485. /package/{publish/MultilevelDropdownMenu → MultilevelDropdownMenu}/index.js +0 -0
  486. /package/{publish/MultipleCheckboxes → MultipleCheckboxes}/index.d.ts +0 -0
  487. /package/{publish/MultipleCheckboxes → MultipleCheckboxes}/index.js +0 -0
  488. /package/{publish/MultipleSelect → MultipleSelect}/index.css +0 -0
  489. /package/{publish/MultipleSelect → MultipleSelect}/index.d.ts +0 -0
  490. /package/{publish/MultipleSelect → MultipleSelect}/index.js +0 -0
  491. /package/{publish/NativeSelect → NativeSelect}/index.d.ts +0 -0
  492. /package/{publish/NumberInput → NumberInput}/index.d.ts +0 -0
  493. /package/{publish/Pagination → Pagination}/index.d.ts +0 -0
  494. /package/{publish/Pagination → Pagination}/index.js +0 -0
  495. /package/{publish/Radio → Radio}/index.d.ts +0 -0
  496. /package/{publish/RangeSlider → RangeSlider}/index.css +0 -0
  497. /package/{publish/RangeSlider → RangeSlider}/index.d.ts +0 -0
  498. /package/{publish/Refresher → Refresher}/index.d.ts +0 -0
  499. /package/{publish/Refresher → Refresher}/index.js +0 -0
  500. /package/{publish/RootPortal → RootPortal}/index.d.ts +0 -0
  501. /package/{publish/RootPortal → RootPortal}/index.js +0 -0
  502. /package/{publish/ScrollReveal → ScrollReveal}/index.d.ts +0 -0
  503. /package/{publish/ScrollReveal → ScrollReveal}/index.js +0 -0
  504. /package/{publish/Scrollbar → Scrollbar}/index.css +0 -0
  505. /package/{publish/Scrollbar → Scrollbar}/index.d.ts +0 -0
  506. /package/{publish/Scrollbar → Scrollbar}/index.js +0 -0
  507. /package/{publish/SearchBar → SearchBar}/index.d.ts +0 -0
  508. /package/{publish/Select → Select}/index.css +0 -0
  509. /package/{publish/Select → Select}/index.d.ts +0 -0
  510. /package/{publish/ShowMoreLess → ShowMoreLess}/index.css +0 -0
  511. /package/{publish/ShowMoreLess → ShowMoreLess}/index.d.ts +0 -0
  512. /package/{publish/ShowMoreLess → ShowMoreLess}/index.js +0 -0
  513. /package/{publish/SplitterPanel → SplitterPanel}/index.css +0 -0
  514. /package/{publish/SplitterPanel → SplitterPanel}/index.d.ts +0 -0
  515. /package/{publish/SplitterPanel → SplitterPanel}/index.js +0 -0
  516. /package/{publish/Stepper → Stepper}/index.css +0 -0
  517. /package/{publish/Stepper → Stepper}/index.d.ts +0 -0
  518. /package/{publish/Stepper → Stepper}/index.js +0 -0
  519. /package/{publish/Switch → Switch}/index.d.ts +0 -0
  520. /package/{publish/Table → Table}/index.css +0 -0
  521. /package/{publish/Table → Table}/index.d.ts +0 -0
  522. /package/{publish/Table → Table}/index.js +0 -0
  523. /package/{publish/Tabs → Tabs}/index.d.ts +0 -0
  524. /package/{publish/Tabs → Tabs}/index.js +0 -0
  525. /package/{publish/TagInput → TagInput}/index.d.ts +0 -0
  526. /package/{publish/Textarea → Textarea}/index.d.ts +0 -0
  527. /package/{publish/Toast → Toast}/index.css +0 -0
  528. /package/{publish/Toast → Toast}/index.d.ts +0 -0
  529. /package/{publish/Toast → Toast}/index.js +0 -0
  530. /package/{publish/Tooltip → Tooltip}/index.css +0 -0
  531. /package/{publish/Tooltip → Tooltip}/index.d.ts +0 -0
  532. /package/{publish/Tooltip → Tooltip}/index.js +0 -0
  533. /package/{publish/Tree → Tree}/index.css +0 -0
  534. /package/{publish/Tree → Tree}/index.d.ts +0 -0
  535. /package/{publish/Tree → Tree}/index.js +0 -0
  536. /package/{publish/Utils → Utils}/anim.d.ts +0 -0
  537. /package/{publish/Utils → Utils}/anim.js +0 -0
  538. /package/{publish/Utils → Utils}/bodyScrollLock.d.ts +0 -0
  539. /package/{publish/Utils → Utils}/bodyScrollLock.js +0 -0
  540. /package/{publish/Utils → Utils}/buffer.d.ts +0 -0
  541. /package/{publish/Utils → Utils}/buffer.js +0 -0
  542. /package/{publish/Utils → Utils}/cls.d.ts +0 -0
  543. /package/{publish/Utils → Utils}/cls.js +0 -0
  544. /package/{publish/Utils → Utils}/convert.d.ts +0 -0
  545. /package/{publish/Utils → Utils}/convert.js +0 -0
  546. /package/{publish/Utils → Utils}/date.d.ts +0 -0
  547. /package/{publish/Utils → Utils}/date.js +0 -0
  548. /package/{publish/Utils → Utils}/dom.d.ts +0 -0
  549. /package/{publish/Utils → Utils}/dom.js +0 -0
  550. /package/{publish/Utils → Utils}/easing.d.ts +0 -0
  551. /package/{publish/Utils → Utils}/easing.js +0 -0
  552. /package/{publish/Utils → Utils}/extract.d.ts +0 -0
  553. /package/{publish/Utils → Utils}/extract.js +0 -0
  554. /package/{publish/Utils → Utils}/format-string.d.ts +0 -0
  555. /package/{publish/Utils → Utils}/format-string.js +0 -0
  556. /package/{publish/Utils → Utils}/formdata.d.ts +0 -0
  557. /package/{publish/Utils → Utils}/formdata.js +0 -0
  558. /package/{publish/Utils → Utils}/getElementProperty.d.ts +0 -0
  559. /package/{publish/Utils → Utils}/getElementProperty.js +0 -0
  560. /package/{publish/Utils → Utils}/guid.d.ts +0 -0
  561. /package/{publish/Utils → Utils}/guid.js +0 -0
  562. /package/{publish/Utils → Utils}/initDefaultOptions.d.ts +0 -0
  563. /package/{publish/Utils → Utils}/initDefaultOptions.js +0 -0
  564. /package/{publish/Utils → Utils}/inputsCalculation.d.ts +0 -0
  565. /package/{publish/Utils → Utils}/inputsCalculation.js +0 -0
  566. /package/{publish/Utils → Utils}/math.d.ts +0 -0
  567. /package/{publish/Utils → Utils}/math.js +0 -0
  568. /package/{publish/Utils → Utils}/object.d.ts +0 -0
  569. /package/{publish/Utils → Utils}/object.js +0 -0
  570. /package/{publish/Utils → Utils}/os.d.ts +0 -0
  571. /package/{publish/Utils → Utils}/os.js +0 -0
  572. /package/{publish/Utils → Utils}/performance.d.ts +0 -0
  573. /package/{publish/Utils → Utils}/performance.js +0 -0
  574. /package/{publish/Utils → Utils}/sanitize.d.ts +0 -0
  575. /package/{publish/Utils → Utils}/sanitize.js +0 -0
  576. /package/{publish/Utils → Utils}/time.d.ts +0 -0
  577. /package/{publish/Utils → Utils}/time.js +0 -0
  578. /package/{publish/Utils → Utils}/tree.d.ts +0 -0
  579. /package/{publish/Utils → Utils}/tree.js +0 -0
  580. /package/{publish/Utils → Utils}/useAutosizeTextArea.d.ts +0 -0
  581. /package/{publish/Utils → Utils}/useAutosizeTextArea.js +0 -0
  582. /package/{publish/Utils → Utils}/useBoundedDrag.d.ts +0 -0
  583. /package/{publish/Utils → Utils}/useBoundedDrag.js +0 -0
  584. /package/{publish/Utils → Utils}/useClickOutside.d.ts +0 -0
  585. /package/{publish/Utils → Utils}/useClickOutside.js +0 -0
  586. /package/{publish/Utils → Utils}/useComId.d.ts +0 -0
  587. /package/{publish/Utils → Utils}/useComId.js +0 -0
  588. /package/{publish/Utils → Utils}/useDebounce.d.ts +0 -0
  589. /package/{publish/Utils → Utils}/useDebounce.js +0 -0
  590. /package/{publish/Utils → Utils}/useDragDropPosition.d.ts +0 -0
  591. /package/{publish/Utils → Utils}/useDragDropPosition.js +0 -0
  592. /package/{publish/Utils → Utils}/useDraggable.d.ts +0 -0
  593. /package/{publish/Utils → Utils}/useDraggable.js +0 -0
  594. /package/{publish/Utils → Utils}/useHistoryTracker.d.ts +0 -0
  595. /package/{publish/Utils → Utils}/useHistoryTracker.js +0 -0
  596. /package/{publish/Utils → Utils}/useInterval.d.ts +0 -0
  597. /package/{publish/Utils → Utils}/useInterval.js +0 -0
  598. /package/{publish/Utils → Utils}/useIsMobile.d.ts +0 -0
  599. /package/{publish/Utils → Utils}/useIsMobile.js +0 -0
  600. /package/{publish/Utils → Utils}/useKeyPress.d.ts +0 -0
  601. /package/{publish/Utils → Utils}/useKeyPress.js +0 -0
  602. /package/{publish/Utils → Utils}/useSessionStorageListener.d.ts +0 -0
  603. /package/{publish/Utils → Utils}/useSessionStorageListener.js +0 -0
  604. /package/{publish/Utils → Utils}/useStreamController.d.ts +0 -0
  605. /package/{publish/Utils → Utils}/useStreamController.js +0 -0
  606. /package/{publish/Utils → Utils}/useThrottle.d.ts +0 -0
  607. /package/{publish/Utils → Utils}/useThrottle.js +0 -0
  608. /package/{publish/Utils → Utils}/useWindowScroll.d.ts +0 -0
  609. /package/{publish/Utils → Utils}/useWindowScroll.js +0 -0
  610. /package/{publish/Utils → Utils}/validate.d.ts +0 -0
  611. /package/{publish/Utils → Utils}/validate.js +0 -0
  612. /package/{publish/Utils → Utils}/viewport.d.ts +0 -0
  613. /package/{publish/Utils → Utils}/viewport.js +0 -0
@@ -1,417 +0,0 @@
1
- /**
2
- * Drag Drop Object
3
- *
4
- * @usage:
5
-
6
- const App = () => {
7
-
8
- const [show, setShow] = useState<boolean>(false);
9
-
10
- // drag & drop
11
- //---------------、
12
- const moveDelay = 150;
13
- const pin = false;
14
- const dimension = 32; // onject with dimension
15
- const [objPosition, setObjPosition] = useState<{
16
- x: number;
17
- y: number;
18
- }>({ x: 0, y: 0 });
19
- const [isDragged, setIsDragged] = useState<boolean>(false);
20
- const [isPressed, setIsPressed] = useState<boolean>(false);
21
-
22
-
23
- const { setup, ref } = useDragDropPosition({
24
- // usePercentage: true, // Enable percentage values
25
- dimension,
26
- onDragEnd: ({position, hasContainer}) => {
27
- const { left, top } = position;
28
- setObjPosition({
29
- x: left || 0,
30
- y: (top || 0),
31
- });
32
- setIsPressed(false);
33
- setIsDragged(false);
34
-
35
- // click event here (restore)
36
- setShow(false);
37
- },
38
- onDragStart: ({position, hasContainer}) => {
39
- const { left, top } = position;
40
- setObjPosition({
41
- x: left || 0,
42
- y: (top || 0),
43
- });
44
- setIsDragged(true);
45
-
46
- // click event here (restore)
47
- setShow(false);
48
- },
49
- onInit: ({position, hasContainer}) => {
50
- const { left, top } = position;
51
- setObjPosition({
52
- x: left || 0,
53
- y: (top || 0),
54
- });
55
- },
56
- onPointerDown: () => {
57
- setIsPressed(true);
58
- },
59
- onPointerUp: useCallback(() => {
60
- setIsPressed(false);
61
-
62
- // click event here
63
- setShow((prev) => !prev);
64
-
65
- }, []),
66
- onMove: ({position, hasContainer}) => {
67
- const { left, top } = position;
68
- setObjPosition({
69
- x: left || 0,
70
- y: (top || 0),
71
- });
72
- },
73
- pin,
74
- moveDelay
75
- });
76
-
77
-
78
-
79
- return (
80
-
81
-
82
- <>
83
-
84
- <div
85
- ref={setup}
86
- className="float-btn"
87
- style={{position: 'fixed', left: '50%', top: '50%', zIndex: 1000, background: 'red'}}
88
-
89
- >Move Here<small>{JSON.stringify(objPosition)}</small><br /><strong>{show ? 'Clicked' : 'None'}</strong></div>
90
-
91
- </>
92
- )
93
- }
94
-
95
-
96
-
97
-
98
- const App2 = () => {
99
-
100
- const dragdropContainerRef = useRef<HTMLDivElement>(null);
101
- ....
102
-
103
- const { setup, ref } = useDragDropPosition({
104
- container: dragdropContainerRef.current, // If there is a container with a drag range
105
- ...
106
- });
107
-
108
-
109
- return (
110
-
111
- <>
112
-
113
- <div
114
- ref={dragdropContainerRef}
115
- style={{
116
- width: '300px',
117
- height: '300px',
118
- border: '1px solid #ddd',
119
- background: '#efefef',
120
- position: 'relative'
121
- }}
122
- >
123
- <div
124
- ref={setup}
125
- className="float-btn"
126
- style={{ position: 'absolute', left: '50%', top: '50%', zIndex: 1000, background: 'red' }}
127
-
128
- >Move Here<small>{JSON.stringify(objPosition)}</small><br /><strong>{show ? 'Clicked' : 'None'}</strong></div>
129
-
130
- </div>
131
-
132
-
133
-
134
- </>
135
- )
136
- }
137
-
138
- */
139
-
140
- import { useCallback, useEffect, useRef } from "react";
141
-
142
- interface Position {
143
- left: number;
144
- top: number;
145
- }
146
-
147
- interface ContainerDimensions {
148
- width: number;
149
- height: number;
150
- left: number;
151
- top: number;
152
- }
153
-
154
- interface PositionResult {
155
- position: Position;
156
- hasContainer: boolean;
157
- }
158
-
159
- interface DragDropSettings {
160
- container?: HTMLElement | null;
161
- onPointerDown?: () => void;
162
- onPointerUp?: () => void;
163
- onDragStart?: (position: PositionResult) => void;
164
- onDragEnd?: (position: PositionResult) => void;
165
- onMove?: (position: PositionResult) => void;
166
- onInit?: (position: PositionResult) => void;
167
- dimension?: number;
168
- pin?: boolean;
169
- moveDelay?: number;
170
- usePercentage?: boolean;
171
- }
172
-
173
- const useDragDropPosition = (settings: DragDropSettings) => {
174
- const {
175
- container = null,
176
- onPointerDown,
177
- onPointerUp,
178
- onDragStart,
179
- onDragEnd,
180
- onMove,
181
- dimension = 0,
182
- onInit,
183
- pin,
184
- moveDelay = 150,
185
- usePercentage = false
186
- } = settings;
187
-
188
- const ref = useRef<HTMLElement | null>(null);
189
- const isClicked = useRef<boolean>(false);
190
- const isDragged = useRef<boolean>(false);
191
- const keyPressed = useRef<boolean>(false);
192
-
193
- const convertToPercentage = useCallback((position: Position): PositionResult => {
194
- if (usePercentage) {
195
- if (!container) return {
196
- position,
197
- hasContainer: Boolean(container)
198
- };
199
-
200
- const containerDim = getContainerDimensions();
201
- return {
202
- position: {
203
- left: (position.left / containerDim.width) * 100,
204
- top: (position.top / containerDim.height) * 100
205
- },
206
- hasContainer: Boolean(container)
207
- };
208
- } else {
209
- return {
210
- position,
211
- hasContainer: false
212
- };
213
- }
214
- }, [container, usePercentage]);
215
-
216
- const getContainerDimensions = (): ContainerDimensions => {
217
- if (!container) {
218
- return {
219
- width: window.innerWidth,
220
- height: window.innerHeight,
221
- left: 0,
222
- top: 0
223
- };
224
- }
225
-
226
- const rect = container.getBoundingClientRect();
227
- return {
228
- width: rect.width,
229
- height: rect.height,
230
- left: rect.left,
231
- top: rect.top
232
- };
233
- };
234
-
235
- const getLeft = (left: number, dimension: number): number => {
236
- const containerDim = getContainerDimensions();
237
- const minLeft = container ? 0 : containerDim.left;
238
- const maxLeft = containerDim.width - dimension;
239
-
240
- if (left < minLeft) {
241
- return minLeft;
242
- } else if (left > maxLeft) {
243
- return maxLeft;
244
- }
245
- return left;
246
- };
247
-
248
- const getTop = (top: number, dimension: number): number => {
249
- const containerDim = getContainerDimensions();
250
- const minTop = container ? 0 : containerDim.top;
251
- const maxTop = containerDim.height - dimension;
252
-
253
- if (top < minTop) {
254
- return minTop;
255
- } else if (top > maxTop) {
256
- return maxTop;
257
- }
258
- return top;
259
- };
260
-
261
- const moveTimeout = useRef<NodeJS.Timeout>();
262
- const moveDisabled = useRef<boolean>(true);
263
-
264
- const moveDelayInit = useCallback(() => {
265
- moveTimeout.current = setTimeout(() => {
266
- moveDisabled.current = false;
267
- }, moveDelay);
268
- }, [moveDelay]);
269
-
270
- const moveDelayInitClear = useCallback(() => {
271
- moveDisabled.current = true;
272
- if (moveTimeout.current) {
273
- clearTimeout(moveTimeout.current);
274
- }
275
- }, []);
276
-
277
- const positionRef = useRef<Position>({
278
- left: 0,
279
- top: 0,
280
- });
281
-
282
- const calculateRelativePosition = (clientX: number, clientY: number) => {
283
- const containerDim = getContainerDimensions();
284
- const halfWidth = Math.round(dimension / 2);
285
-
286
- let x = clientX;
287
- let y = clientY;
288
-
289
- if (container) {
290
- x = clientX - containerDim.left;
291
- y = clientY - containerDim.top;
292
- }
293
-
294
- return {
295
- x: x - halfWidth,
296
- y: y - halfWidth
297
- };
298
- };
299
-
300
- const handlePointerDown = (ev: PointerEvent | KeyboardEvent) => {
301
- moveDelayInit();
302
- isClicked.current = true;
303
- const ele = ev.target as HTMLElement;
304
- ev.stopPropagation();
305
-
306
- if (ev instanceof PointerEvent) {
307
- keyPressed.current = false;
308
- ele.setPointerCapture(ev.pointerId);
309
- } else if (ev instanceof KeyboardEvent) {
310
- keyPressed.current = true;
311
- }
312
-
313
- onPointerDown?.();
314
- };
315
-
316
- const handlePointerUp = (ev: PointerEvent | KeyboardEvent) => {
317
- moveDelayInitClear();
318
- isClicked.current = false;
319
-
320
- if (ev instanceof PointerEvent) {
321
- const ele = ev.target as HTMLElement;
322
- ele.releasePointerCapture(ev.pointerId);
323
- }
324
-
325
- if (onDragEnd) {
326
- const finalPosition = convertToPercentage(positionRef.current);
327
- onDragEnd(finalPosition);
328
- }
329
-
330
- if (!isDragged.current) {
331
- onPointerUp?.();
332
- } else {
333
- isDragged.current = false;
334
- }
335
- };
336
-
337
- const onPointerMove = (e: MouseEvent | TouchEvent) => {
338
- if (moveDisabled.current || !isClicked.current || !ref.current || keyPressed.current) {
339
- return;
340
- }
341
-
342
- const touches = 'touches' in e ? e.touches : null;
343
- const clientX = touches && touches.length ? touches[0].clientX : (e as MouseEvent).clientX;
344
- const clientY = touches && touches.length ? touches[0].clientY : (e as MouseEvent).clientY;
345
-
346
- const { x, y } = calculateRelativePosition(clientX, clientY);
347
-
348
- const position: Position = {
349
- left: getLeft(x, dimension),
350
- top: getTop(y, dimension),
351
- };
352
-
353
- if (!isDragged.current) {
354
- isDragged.current = true;
355
- if (onDragStart) {
356
- const startPosition = convertToPercentage(position);
357
- onDragStart(startPosition);
358
- }
359
- }
360
-
361
- positionRef.current = position;
362
- ref.current.style.cssText += `top: ${position.top}px;left: ${position.left}px;`;
363
-
364
- if (onMove) {
365
- const movePosition = convertToPercentage(position);
366
- onMove(movePosition);
367
- }
368
- };
369
-
370
- const setup = useCallback((node: HTMLElement | null) => {
371
- if (node) {
372
- ref.current = node;
373
- node.addEventListener("pointerdown", handlePointerDown as EventListener);
374
- node.addEventListener("keydown", handlePointerDown as EventListener);
375
- node.addEventListener("mouseup", handlePointerUp as EventListener);
376
- node.style.touchAction = "none";
377
-
378
- const rect = node.getBoundingClientRect();
379
- const containerDim = getContainerDimensions();
380
- const initialPosition: Position = {
381
- left: container ? rect.left - containerDim.left : rect.left,
382
- top: container ? rect.top - containerDim.top : rect.top,
383
- };
384
-
385
- if (onInit) {
386
- const initPosition = convertToPercentage(initialPosition);
387
- onInit(initPosition);
388
- }
389
- }
390
- }, [container, onInit, convertToPercentage]);
391
-
392
- useEffect(() => {
393
- if (!pin) {
394
- document.addEventListener("mousemove", onPointerMove as EventListener);
395
- document.addEventListener("touchmove", onPointerMove as EventListener);
396
-
397
- return () => {
398
- document.removeEventListener("mousemove", onPointerMove as EventListener);
399
- document.removeEventListener("touchmove", onPointerMove as EventListener);
400
- };
401
- }
402
- }, [container, pin]);
403
-
404
- useEffect(() => {
405
- return () => {
406
- moveDelayInitClear();
407
- };
408
- }, [moveDelayInitClear]);
409
-
410
- return {
411
- ref,
412
- setup,
413
- };
414
- };
415
-
416
- export { useDragDropPosition };
417
- export type { DragDropSettings, Position, PositionResult };
@@ -1,265 +0,0 @@
1
- /**
2
- * Drag & Drop Element
3
- *
4
- * @usage:
5
-
6
-
7
- const App = () => {
8
- const {
9
- dragContentHandle,
10
- dragHandle,
11
- resetPosition
12
- }: any = useDraggable({
13
- enabled: true, // if `false`, drag and drop is disabled
14
- preventOutsideScreen: {
15
- xAxis: true,
16
- yAxis: true
17
- },
18
- onStart: (coordinates: Record<string, number>, handleEl: HTMLElement | null, contentEl: HTMLElement | null) => {
19
-
20
- },
21
- onDrag: (coordinates: Record<string, number>, handleEl: HTMLElement | null, contentEl: HTMLElement | null) => {
22
- console.log(coordinates); // {dx: -164, dy: -37}
23
-
24
- },
25
- onStop: (coordinates: Record<string, number>, handleEl: HTMLElement | null, contentEl: HTMLElement | null) => {
26
-
27
- }
28
- });
29
-
30
- const resetModal = () => {
31
- resetPosition?.();
32
- };
33
-
34
- return (
35
- <div className="container" ref={dragContentHandle}>
36
- <div ref={dragHandle} className="handle">Drag me</div>
37
- <div className="content">
38
- content...
39
- </div>
40
- </div>
41
- );
42
- };
43
-
44
-
45
- */
46
-
47
- import { useEffect, useState, useCallback, MouseEvent } from "react";
48
-
49
- export interface PreventOutsideScreenProps {
50
- xAxis: boolean;
51
- yAxis: boolean;
52
- }
53
-
54
-
55
- export interface UseDraggableProps {
56
- enabled?: boolean;
57
- preventOutsideScreen?: PreventOutsideScreenProps;
58
- onStart?: (coordinates: Record<string, number>, handleEl: HTMLElement | null, contentEl: HTMLElement | null) => void;
59
- onStop?: (coordinates: Record<string, number>, handleEl: HTMLElement | null, contentEl: HTMLElement | null) => void;
60
- onDrag?: (coordinates: Record<string, number>, handleEl: HTMLElement | null, contentEl: HTMLElement | null) => void;
61
- }
62
-
63
-
64
- const useDraggable = ({
65
- enabled,
66
- preventOutsideScreen,
67
- onStart,
68
- onStop,
69
- onDrag,
70
- }: UseDraggableProps) => {
71
-
72
- const DRAG_DISABLED = typeof enabled === "undefined" || enabled === false;
73
-
74
-
75
- let dragging: boolean = false; // DO NOT USE 'useState()'
76
- const [node, setNode] = useState<HTMLElement | null>(null);
77
- const [targetNode, setTargetNode] = useState<HTMLElement | null>(null);
78
- const [{ dx, dy }, setOffset] = useState({
79
- dx: 0,
80
- dy: 0,
81
- });
82
-
83
- const ref = useCallback((nodeEle: any) => {
84
- setNode(nodeEle);
85
- }, []);
86
-
87
- const targetRef = useCallback((nodeEle: any) => {
88
- setTargetNode(nodeEle);
89
- }, []);
90
-
91
- const withoutViewport = (startPos: any, e: any, targetEl: HTMLElement | null) => {
92
-
93
- if (!targetEl || typeof preventOutsideScreen === 'undefined') return null;
94
-
95
- // latest mouse coordinates
96
- let mouseX = e.clientX;
97
- let mouseY = e.clientY;
98
-
99
- // the size of the parent element
100
- let parentWidth = window.innerWidth;
101
- let parentHeight = window.innerHeight;
102
-
103
- // the size of the child element
104
- let childrenWidth = targetEl.clientWidth;
105
- let childrenHight = targetEl.clientHeight;
106
-
107
- const minLeft = -(parentWidth - childrenWidth)/2;
108
- const maxLeft = (parentWidth - childrenWidth)/2;
109
-
110
- const minTop = -(parentHeight - childrenHight)/2;
111
- const maxTop = (parentHeight - childrenHight)/2;
112
-
113
-
114
- // calculates the left and top offsets after the move
115
- let nLeft = mouseX - (startPos.x);
116
- let nTop = mouseY - (startPos.y);
117
-
118
- // Determine whether the left or right distance is out of bounds
119
- if (preventOutsideScreen.xAxis) {
120
- nLeft = nLeft <= minLeft ? minLeft : nLeft;
121
- nLeft = nLeft >= maxLeft ? maxLeft : nLeft;
122
- }
123
-
124
- if (preventOutsideScreen.yAxis) {
125
- nTop = nTop <= minTop ? minTop : nTop;
126
- nTop = nTop >= maxTop ? maxTop : nTop;
127
- }
128
-
129
- return [nLeft, nTop];
130
-
131
- };
132
-
133
- const handleMouseDown = useCallback((e: MouseEvent) => {
134
- dragging = true;
135
- onStart?.({ dx, dy }, targetNode, node);
136
-
137
- const startPos = {
138
- x: e.clientX - dx,
139
- y: e.clientY - dy,
140
- };
141
-
142
- const handleMouseMove = (e: MouseEvent) => {
143
- if (!dragging) return;
144
-
145
- let dx = e.clientX - startPos.x;
146
- let dy = e.clientY - startPos.y;
147
-
148
-
149
- // prevent dragged item to be dragged outside of screen
150
- if (preventOutsideScreen && node) {
151
- const _data = withoutViewport(startPos, e, node);
152
- if (_data !== null) {
153
- dx = _data[0];
154
- dy = _data[1];
155
- }
156
- }
157
-
158
- setOffset({ dx, dy });
159
- onDrag?.({ dx, dy }, targetNode, node);
160
-
161
- e.stopPropagation();
162
- e.preventDefault();
163
- };
164
-
165
- const handleMouseUp = () => {
166
- dragging = false;
167
- onStop?.({ dx, dy }, targetNode, node);
168
-
169
- document.removeEventListener('mousemove', handleMouseMove as any);
170
- document.removeEventListener('mouseup', handleMouseUp as any);
171
- };
172
-
173
- document.addEventListener('mousemove', handleMouseMove as any);
174
- document.addEventListener('mouseup', handleMouseUp as any);
175
- }, [dx, dy, node]);
176
-
177
-
178
- const handleTouchStart = useCallback((e: TouchEvent) => {
179
- dragging = true;
180
- onStart?.({ dx, dy }, targetNode, node);
181
-
182
-
183
- const touch = e.touches[0];
184
-
185
- const startPos = {
186
- x: touch.clientX - dx,
187
- y: touch.clientY - dy,
188
- };
189
-
190
- const handleTouchMove = (e: TouchEvent) => {
191
- if (!dragging) return;
192
-
193
-
194
- const touch = e.touches[0];
195
- let dx = touch.clientX - startPos.x;
196
- let dy = touch.clientY - startPos.y;
197
-
198
-
199
- // prevent dragged item to be dragged outside of screen
200
- if (preventOutsideScreen && node) {
201
- const _data = withoutViewport(startPos, touch, node);
202
- if (_data !== null) {
203
- dx = _data[0];
204
- dy = _data[1];
205
- }
206
- }
207
-
208
-
209
- setOffset({ dx, dy });
210
- onDrag?.({ dx, dy }, targetNode, node);
211
-
212
- e.stopPropagation();
213
- e.preventDefault();
214
-
215
- };
216
-
217
- const handleTouchEnd = () => {
218
- dragging = false;
219
- onStop?.({ dx, dy }, targetNode, node);
220
-
221
- document.removeEventListener('touchmove', handleTouchMove as any);
222
- document.removeEventListener('touchend', handleTouchEnd as any);
223
- };
224
-
225
- document.addEventListener('touchmove', handleTouchMove as any);
226
- document.addEventListener('touchend', handleTouchEnd as any);
227
- }, [dx, dy, node]);
228
-
229
-
230
-
231
- useEffect(() => {
232
- if (node) {
233
- node.style.transform = `translate3d(${dx}px, ${dy}px, 0)`;
234
- }
235
- }, [node, dx, dy]);
236
-
237
- useEffect(() => {
238
- if (DRAG_DISABLED) {
239
- return;
240
- }
241
-
242
- if (!targetNode) {
243
- return;
244
- }
245
- targetNode.addEventListener("mousedown", handleMouseDown as any);
246
- targetNode.addEventListener("touchstart", handleTouchStart as any);
247
- return () => {
248
- targetNode.removeEventListener("mousedown", handleMouseDown as any);
249
- targetNode.removeEventListener("touchstart", handleTouchStart as any);
250
- };
251
- }, [targetNode, dx, dy]);
252
-
253
-
254
- return {
255
- dragContentHandle: ref,
256
- dragHandle: targetRef,
257
- resetPosition: () => {
258
- // reset position
259
- setOffset({ dx: 0, dy: 0 });
260
- }
261
- };
262
- };
263
-
264
- export default useDraggable;
265
-