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,504 +0,0 @@
1
- import React, { useState, useRef, useEffect, forwardRef } from 'react';
2
-
3
- import {
4
- convertTree,
5
- addTreeDepth,
6
- } from 'funda-utils/dist/cjs/tree';
7
- import { clsWrite, combinedCls } from 'funda-utils/dist/cjs/cls';
8
- import useBoundedDrag from 'funda-utils/dist/cjs/useBoundedDrag';
9
-
10
-
11
-
12
- export interface ListItem {
13
- id: number;
14
- parentId?: number;
15
- label: string;
16
- listItemLabel: string;
17
- value: string;
18
- queryString: string;
19
- depth?: number;
20
- children?: ListItem[];
21
- disabled?: boolean;
22
- appendControl?: React.ReactNode;
23
- [key: string]: any;
24
- }
25
-
26
-
27
- export interface DragDropListProps {
28
- wrapperClassName?: string;
29
- prefix?: string;
30
- data?: ListItem[];
31
- draggable?: boolean;
32
- handleHide?: boolean;
33
- handleIcon?: string;
34
- handlePos?: 'left' | 'right';
35
- dragMode?: 'handle' | 'block';
36
- editable?: boolean;
37
- itemStyle?: React.CSSProperties;
38
- hierarchical?: boolean;
39
- indentation?: string;
40
- doubleIndent?: boolean;
41
- alternateCollapse?: boolean;
42
- arrow?: React.ReactNode;
43
- renderOption?: (item: ListItem, dragHandleClassName: string, index: number) => React.ReactNode;
44
- onUpdate?: (items: ListItem[], curId: number) => void;
45
- }
46
-
47
- export interface EditValue {
48
- [propName: string]: string | number;
49
- }
50
-
51
- export interface TouchOffset {
52
- x: number;
53
- y: number;
54
- }
55
- export interface OptionConfig {
56
- [propName: string]: string | number | boolean | Function | any[];
57
- }
58
-
59
- const DragDropList = forwardRef((props: DragDropListProps, externalRef: any) => {
60
- const {
61
- wrapperClassName,
62
- prefix = 'custom',
63
- data,
64
- draggable = true,
65
- handleHide = false,
66
- handleIcon = '☰',
67
- handlePos = 'left',
68
- dragMode = 'handle',
69
- editable = false,
70
- itemStyle,
71
- hierarchical = true,
72
- indentation,
73
- doubleIndent,
74
- alternateCollapse,
75
- arrow = <><svg viewBox="0 0 22 22" width="8px"><path d="m345.44 248.29l-194.29 194.28c-12.359 12.365-32.397 12.365-44.75 0-12.354-12.354-12.354-32.391 0-44.744l171.91-171.91-171.91-171.9c-12.354-12.359-12.354-32.394 0-44.748 12.354-12.359 32.391-12.359 44.75 0l194.29 194.28c6.177 6.18 9.262 14.271 9.262 22.366 0 8.099-3.091 16.196-9.267 22.373" transform="matrix(.03541-.00013.00013.03541 2.98 3.02)" fill="#a5a5a5" /></svg></>,
76
- renderOption,
77
- onUpdate,
78
- ...attributes
79
- } = props;
80
-
81
-
82
- const INDENT_PLACEHOLDER = doubleIndent ? `&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;` : `&nbsp;&nbsp;&nbsp;&nbsp;`;
83
- const INDENT_LAST_PLACEHOLDER = `${typeof indentation !== 'undefined' && indentation !== '' ? `${indentation}&nbsp;&nbsp;` : ''}`;
84
-
85
- const rootRef = useRef<any>(null);
86
- const [items, setItems] = useState<ListItem[]>([]);
87
- const [editingItem, setEditingItem] = useState<number | null>(null);
88
-
89
-
90
- // Edit
91
- const [editValue, setEditValue] = useState<Record<string, string | number>>({});
92
-
93
- // Collapse/Expand
94
- const [collapsedItems, setCollapsedItems] = useState<Set<number>>(new Set());
95
-
96
-
97
- // Get editable field list
98
- const getEditableFields = (item: ListItem): string[] => {
99
- // Exclude fields that don't need to be edited
100
- const excludeFields = ['id', 'parentId', 'depth', 'children', 'disabled', 'appendControl', 'parentItem'];
101
- return Object.keys(item).filter(key => !excludeFields.includes(key));
102
- };
103
-
104
-
105
- // ================================================================
106
- // General
107
- // ================================================================
108
- const deepCloneWithReactNode = (obj: any): any => {
109
- if (obj === null || typeof obj !== 'object') {
110
- return obj;
111
- }
112
-
113
- // Handle array
114
- if (Array.isArray(obj)) {
115
- return obj.map(item => deepCloneWithReactNode(item));
116
- }
117
-
118
- // Handle object
119
- const clonedObj: any = {};
120
- for (const key in obj) {
121
- if (key === 'appendControl') {
122
- clonedObj[key] = obj[key];
123
- } else {
124
- clonedObj[key] = deepCloneWithReactNode(obj[key]);
125
- }
126
- }
127
- return clonedObj;
128
- };
129
-
130
-
131
- const getItemWithChildrenIndices = (items: ListItem[], startIndex: number): number[] => {
132
- const indices = [startIndex];
133
- const startItem = items[startIndex];
134
- const startDepth = startItem.depth || 0;
135
-
136
- // Check if subsequent items are child items
137
- for (let i = startIndex + 1; i < items.length; i++) {
138
- const currentItem = items[i];
139
- const currentDepth = currentItem.depth || 0;
140
- if (currentDepth > startDepth) {
141
- indices.push(i);
142
- } else {
143
- break;
144
- }
145
- }
146
-
147
- return indices;
148
- };
149
-
150
-
151
- const getIndentStr = (item: ListItem): number | string => {
152
-
153
- // Add indent placeholder
154
- let indent = '';
155
- const depthData = item.depth;
156
- if (depthData) {
157
- Array(depthData).fill(0).forEach((k, i) => {
158
- indent += INDENT_PLACEHOLDER;
159
- if (i === depthData - 1) {
160
- indent += INDENT_LAST_PLACEHOLDER;
161
- }
162
- });
163
- }
164
-
165
- return indent;
166
- };
167
-
168
-
169
-
170
- // ================================================================
171
- // Collapse/Expand
172
- // ================================================================
173
- // Add collapse/expand handler function
174
- const handleCollapse = (itemId: number, e: React.MouseEvent) => {
175
- e.preventDefault();
176
- e.stopPropagation();
177
-
178
- setCollapsedItems(prev => {
179
- const newCollapsed = new Set(prev);
180
- if (newCollapsed.has(itemId)) {
181
- newCollapsed.delete(itemId);
182
- } else {
183
- newCollapsed.add(itemId);
184
- }
185
- return newCollapsed;
186
- });
187
- };
188
-
189
- // Helper function to determine if an item should be displayed
190
- const shouldShowItem = (item: ListItem): boolean => {
191
- if (!alternateCollapse) return true;
192
-
193
- let currentId = item.parentId;
194
- while (currentId) {
195
- if (collapsedItems.has(currentId)) {
196
- return false;
197
- }
198
- const parentItem = items.find(i => i.id === currentId);
199
- currentId = parentItem?.parentId;
200
- }
201
- return true;
202
- };
203
-
204
- const hasChildren = (itemId: number): boolean => {
205
- return items.some(item => item.parentId === itemId);
206
- };
207
-
208
-
209
-
210
-
211
- // ================================================================
212
- // Drag & Drop Handlers (Desktop & Touch)
213
- // ================================================================
214
- const { isDragging, dragHandlers } = useBoundedDrag({
215
- dragMode,
216
- boundarySelector: `.${prefix}-draggable-list`,
217
- itemSelector: `.${prefix}-draggable-list__item`,
218
- dragHandleSelector: `.${prefix}-draggable-list__handle`,
219
- onDragStart: (index: number) => {
220
- // Additional drag start logic if needed
221
- },
222
- onDragOver: (dragIndex: number | null, dropIndex: number | null) => {
223
- // Additional drag over logic if needed
224
- },
225
- onDragEnd: (dragIndex: number | null, dropIndex: number | null) => {
226
- if (dragIndex !== null && dropIndex !== null && dragIndex !== dropIndex) {
227
- // Handle item movement
228
- const newItems = deepCloneWithReactNode(items);
229
- const itemsToMove = getItemWithChildrenIndices(newItems, dragIndex);
230
- const itemsBeingMoved = itemsToMove.map(index => newItems[index]);
231
-
232
- // ... rest of your existing drag end logic ...
233
-
234
- const _targetId = newItems[dragIndex]?.id;
235
-
236
- // Calculate depth difference
237
- const draggedDepth = newItems[dragIndex]?.depth || 0;
238
- const dropDepth = newItems[dropIndex]?.depth || 0;
239
- const depthDiff = dropDepth - draggedDepth;
240
-
241
- // Adjust depth for all moving items
242
- itemsBeingMoved.forEach(item => {
243
- if (item.depth !== undefined) {
244
- item.depth += depthDiff;
245
- }
246
- });
247
-
248
- // Remove all items from their original location (from back to front to keep indexing correct)
249
- itemsToMove.reverse().forEach(index => {
250
- newItems.splice(index, 1);
251
- });
252
-
253
- // Calculate new insert position
254
- let insertIndex = dropIndex;
255
- if (dropIndex > dragIndex) {
256
- insertIndex -= itemsToMove.length;
257
- }
258
-
259
- // Insert all items
260
- newItems.splice(insertIndex, 0, ...itemsBeingMoved);
261
-
262
- // Rebuild tree structure
263
- const tree = hierarchical ? convertTree(newItems, '', 'id', 'parentId') : newItems;
264
- const updatedItems = hierarchical ? addTreeDepth(tree) : tree;
265
-
266
- setItems(updatedItems);
267
- onUpdate?.(updatedItems, _targetId);
268
- }
269
- }
270
- });
271
-
272
-
273
-
274
- // ================================================================
275
- // Editable
276
- // ================================================================
277
-
278
- const handleDoubleClick = (item: ListItem) => {
279
- if (!editable) return;
280
-
281
- setEditingItem(item.id);
282
- // Only editable fields are copied
283
- const editableFields = getEditableFields(item);
284
- const editableValues = editableFields.reduce((acc, field) => ({
285
- ...acc,
286
- [field]: item[field as keyof ListItem]
287
- }), {});
288
-
289
- setEditValue(editableValues);
290
- };
291
-
292
- const handleEditCancel = () => {
293
- setEditingItem(null);
294
- setEditValue({});
295
- };
296
-
297
- const handleEditSave = (itemId: number) => {
298
- const newItems: ListItem[] = items.map(item => {
299
- if (item.id === itemId) {
300
- return {
301
- ...item,
302
- ...editValue
303
- };
304
- }
305
- return item;
306
- });
307
-
308
- setItems(newItems);
309
- onUpdate?.(newItems, itemId);
310
- setEditingItem(null);
311
- setEditValue({});
312
- };
313
-
314
- const handleInputChange = (field: string, value: any) => {
315
- setEditValue(prev => ({
316
- ...prev,
317
- [field]: value
318
- }));
319
- };
320
-
321
-
322
- const handleKeyDown = (e: any, itemId: number) => {
323
- if (e.key === 'Enter' || e.key === 'NumpadEnter') {
324
- handleEditSave(itemId);
325
- } else if (e.key === 'Escape') {
326
- handleEditCancel();
327
- }
328
- };
329
-
330
-
331
-
332
- const renderEditForm = (item: ListItem) => {
333
- const editableFields = getEditableFields(item);
334
-
335
- return (
336
- <div className={`${prefix}-draggable-list__edit-form`}>
337
- {editableFields.map((field) => (
338
- <div key={field} className={`${prefix}-draggable-list__edit-field`}>
339
- <label>{field}:</label>
340
- <input
341
- type="text"
342
- value={editValue[field] || ''}
343
- onChange={(e) => handleInputChange(field, e.target.value)}
344
- onKeyDown={(e) => handleKeyDown(e, item.id)}
345
- placeholder={field}
346
- autoFocus={field === editableFields[0]}
347
- />
348
- </div>
349
- ))}
350
-
351
- <div className={`${prefix}-draggable-list__edit-buttons`}>
352
- <button onClick={() => handleEditSave(item.id)}>✓</button>
353
- <button onClick={handleEditCancel}>✕</button>
354
- </div>
355
- </div>
356
- );
357
- };
358
-
359
- useEffect(() => {
360
-
361
- // data init
362
- //--------------
363
- if (typeof data !== 'undefined' && Array.isArray(data)) {
364
- const tree = hierarchical ? convertTree(data, '', 'id', 'parentId') : data;
365
- const _ORGIN_DATA = hierarchical ? addTreeDepth(tree) : tree;
366
- setItems(_ORGIN_DATA);
367
- }
368
- }, [data]);
369
-
370
-
371
-
372
- return (
373
- <ul
374
- {...attributes}
375
- ref={(node) => {
376
- rootRef.current = node;
377
- if (typeof externalRef === 'function') {
378
- externalRef(node);
379
- } else if (externalRef) {
380
- externalRef.current = node;
381
- }
382
- }}
383
- className={combinedCls(
384
- `${prefix}-draggable-list`,
385
- clsWrite(wrapperClassName, 'mb-3'),
386
- clsWrite(dragMode, 'handle'),
387
- `handle-pos-${handlePos ?? 'left'}`,
388
- {
389
- 'draggable': draggable,
390
- 'icon-hide': handleHide,
391
- 'alternate-collapse': alternateCollapse
392
- }
393
- )}
394
- >
395
- {items.map((item: ListItem, index: number) => {
396
-
397
- // If the item should be hidden, the rendering is skipped
398
- if (!shouldShowItem(item)) return null;
399
-
400
- // collapse
401
- const hasChildItems = hasChildren(item.id);
402
- const isCollapsed = collapsedItems.has(item.id);
403
-
404
-
405
- return <li
406
- key={item.id}
407
- data-index={index}
408
- data-id={item.id}
409
- data-parent-id={item.parentId}
410
- data-value={item.value}
411
- data-label={item.label}
412
- data-listitemlabel={item.listItemLabel}
413
- className={combinedCls(
414
- `${prefix}-draggable-list__item`,
415
- clsWrite(dragMode, 'handle'),
416
- {
417
- 'disabled': item.disabled,
418
- 'draggable': draggable,
419
- 'editing': editingItem === item.id,
420
-
421
- // collapse
422
- 'has-children': hasChildItems,
423
- 'collapsed': isCollapsed
424
- }
425
- )}
426
- draggable={!draggable ? undefined : editingItem !== item.id && "true"}
427
- onDragStart={!draggable ? undefined : (e) => dragHandlers.handleDragStart(e, index)}
428
- onDragOver={!draggable ? undefined : dragHandlers.handleDragOver}
429
- onDragEnd={!draggable ? undefined : dragHandlers.handleDragEnd}
430
- onTouchStart={!draggable ? undefined : (e) => dragHandlers.handleDragStart(e, index)}
431
- onTouchMove={!draggable ? undefined : dragHandlers.handleDragOver}
432
- onTouchEnd={!draggable ? undefined : dragHandlers.handleDragEnd}
433
- style={itemStyle}
434
- onDoubleClick={() => handleDoubleClick(item)}
435
- >
436
- <div className={`${prefix}-draggable-list__itemcontent`}>
437
- {renderOption ? (
438
- renderOption(
439
- item,
440
- `${prefix}-draggable-list__handle`,
441
- index
442
- )
443
- ) : (
444
- <>
445
- {/** DRAG HANDLE */}
446
- {/* Fix the problem that mobile terminals cannot be touched, DO NOT USE "<svg>" */}
447
- {draggable && !handleHide ? <span className={`${prefix}-draggable-list__handle ${handlePos ?? 'left'}`} draggable={dragMode === 'handle'} dangerouslySetInnerHTML={{
448
- __html: `${handleIcon}`
449
- }}></span> : null}
450
- {/** /DRAG HANDLE */}
451
-
452
- {editingItem === item.id ? (
453
- renderEditForm(item)
454
- ) : (
455
- <div className={`${prefix}-draggable-list__itemcontent-inner`}>
456
-
457
- <div className={`${prefix}-draggable-list__itemlabel`}>
458
-
459
-
460
- {/** LABEL */}
461
-
462
- <span dangerouslySetInnerHTML={{
463
- __html: `${getIndentStr(item)}${typeof item.listItemLabel === 'undefined' ? item.label : item.listItemLabel}`
464
- }} />
465
- {/** /LABEL */}
466
-
467
-
468
-
469
-
470
- {/** COLLOPSE */}
471
- {alternateCollapse && hasChildItems && (
472
- <span
473
- className={`${prefix}-draggable-list__collapse-arrow`}
474
- onClick={(e) => handleCollapse(item.id, e)}
475
- >
476
- {arrow || (isCollapsed ? '▶' : '▼')}
477
- </span>
478
- )}
479
- {/** /COLLOPSE */}
480
-
481
- </div>
482
-
483
-
484
- {/** EXTENDS */}
485
- {item.appendControl ? <>
486
- <div className={`${prefix}-draggable-list__itemext`} id={`${prefix}-draggable-list__itemext-${item.value}`}>
487
- {item.appendControl}
488
- </div>
489
- </> : null}
490
- {/** /EXTENDS */}
491
-
492
- </div>
493
- )}
494
- </>
495
- )}
496
- </div>
497
- </li>
498
- })}
499
- </ul>
500
- );
501
- });
502
-
503
-
504
- export default DragDropList;
@@ -1,55 +0,0 @@
1
- import React from 'react';
2
-
3
- export interface OptionConfig {
4
- value?: string | undefined;
5
- label?: string | undefined;
6
- listItemLabel?: string | undefined;
7
- }
8
-
9
- export type OptionProps = {
10
- option?: OptionConfig;
11
- hyperlinkClassName?: string;
12
- selectEv?: (value: any, option: any) => void | undefined;
13
- };
14
-
15
- export default function Option(props: OptionProps) {
16
- const {
17
- option,
18
- hyperlinkClassName,
19
- selectEv
20
- } = props;
21
-
22
- const _label = option ? option.label : '';
23
- const _value = option ? option.value : '';
24
- const _listItemLabel = option ? (typeof option.listItemLabel === 'undefined' ? undefined : option.listItemLabel) : undefined;
25
-
26
- function handleSelect(e: any) {
27
- e.preventDefault();
28
-
29
- const _value = e.currentTarget.dataset.value;
30
-
31
- selectEv?.(_value, option);
32
- }
33
-
34
-
35
- return (
36
- <>
37
- <li>
38
- <a
39
- className={hyperlinkClassName}
40
- data-opt="true"
41
- data-value={_value}
42
- data-label={_label}
43
- data-list-item-label={_listItemLabel}
44
- data-itemdata={option ? JSON.stringify(option) : ''}
45
- href="#"
46
- tabIndex={-1}
47
- dangerouslySetInnerHTML={{ __html: typeof _listItemLabel === 'undefined' ? `${_label}` : `${_listItemLabel}` }}
48
- onClick={handleSelect}
49
- ></a>
50
- </li>
51
- </>
52
-
53
- );
54
- }
55
-