funda-ui 4.7.615 → 4.7.624

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 (564) hide show
  1. package/.gitattributes +2 -0
  2. package/README.md +116 -2
  3. package/README_PUBLISH.md +328 -0
  4. package/lib/cjs/Date/index.js +39 -2
  5. package/lib/cjs/DynamicFields/index.js +11 -3
  6. package/lib/esm/Date/index.tsx +47 -2
  7. package/lib/esm/DynamicFields/index.tsx +9 -4
  8. package/logo.png +0 -0
  9. package/package.json +589 -43
  10. package/preview.png +0 -0
  11. package/{Date → publish/Date}/index.js +39 -2
  12. package/{DynamicFields → publish/DynamicFields}/index.js +11 -3
  13. package/publish/LICENSE +21 -0
  14. package/publish/README.md +328 -0
  15. package/publish/lib/cjs/Accordion/index.d.ts +2 -0
  16. package/publish/lib/cjs/Accordion/index.js +667 -0
  17. package/publish/lib/cjs/BackToTop/index.d.ts +17 -0
  18. package/publish/lib/cjs/BackToTop/index.js +904 -0
  19. package/publish/lib/cjs/CascadingSelect/index.d.ts +80 -0
  20. package/publish/lib/cjs/CascadingSelect/index.js +3383 -0
  21. package/publish/lib/cjs/CascadingSelectE2E/index.d.ts +91 -0
  22. package/publish/lib/cjs/CascadingSelectE2E/index.js +3988 -0
  23. package/publish/lib/cjs/Chatbox/index.d.ts +101 -0
  24. package/publish/lib/cjs/Chatbox/index.js +7037 -0
  25. package/publish/lib/cjs/Checkbox/index.d.ts +28 -0
  26. package/publish/lib/cjs/Checkbox/index.js +673 -0
  27. package/publish/lib/cjs/ColorPicker/index.d.ts +27 -0
  28. package/publish/lib/cjs/ColorPicker/index.js +662 -0
  29. package/publish/lib/cjs/Date/index.d.ts +70 -0
  30. package/publish/lib/cjs/Date/index.js +6368 -0
  31. package/publish/lib/cjs/DigitalClock/index.d.ts +7 -0
  32. package/publish/lib/cjs/DigitalClock/index.js +402 -0
  33. package/publish/lib/cjs/DragDropList/index.d.ts +45 -0
  34. package/publish/lib/cjs/DragDropList/index.js +1586 -0
  35. package/publish/lib/cjs/DropdownMenu/index.d.ts +38 -0
  36. package/publish/lib/cjs/DropdownMenu/index.js +1507 -0
  37. package/publish/lib/cjs/DynamicFields/index.d.ts +40 -0
  38. package/publish/lib/cjs/DynamicFields/index.js +818 -0
  39. package/publish/lib/cjs/EventCalendar/index.d.ts +61 -0
  40. package/publish/lib/cjs/EventCalendar/index.js +3789 -0
  41. package/publish/lib/cjs/EventCalendarTimeline/index.d.ts +100 -0
  42. package/publish/lib/cjs/EventCalendarTimeline/index.js +6141 -0
  43. package/publish/lib/cjs/File/index.d.ts +40 -0
  44. package/publish/lib/cjs/File/index.js +1751 -0
  45. package/publish/lib/cjs/HorizontalScrollContent/index.d.ts +14 -0
  46. package/publish/lib/cjs/HorizontalScrollContent/index.js +426 -0
  47. package/publish/lib/cjs/Input/index.d.ts +59 -0
  48. package/publish/lib/cjs/Input/index.js +1486 -0
  49. package/publish/lib/cjs/LiveSearch/index.d.ts +70 -0
  50. package/publish/lib/cjs/LiveSearch/index.js +4180 -0
  51. package/publish/lib/cjs/MasonryLayout/index.d.ts +14 -0
  52. package/publish/lib/cjs/MasonryLayout/index.js +689 -0
  53. package/publish/lib/cjs/ModalDialog/index.d.ts +83 -0
  54. package/publish/lib/cjs/ModalDialog/index.js +1719 -0
  55. package/publish/lib/cjs/ModeSwitch/index.d.ts +17 -0
  56. package/publish/lib/cjs/ModeSwitch/index.js +202 -0
  57. package/publish/lib/cjs/MultilevelDropdownMenu/index.d.ts +20 -0
  58. package/publish/lib/cjs/MultilevelDropdownMenu/index.js +930 -0
  59. package/publish/lib/cjs/MultipleCheckboxes/index.d.ts +66 -0
  60. package/publish/lib/cjs/MultipleCheckboxes/index.js +2337 -0
  61. package/publish/lib/cjs/MultipleSelect/index.d.ts +65 -0
  62. package/publish/lib/cjs/MultipleSelect/index.js +4197 -0
  63. package/publish/lib/cjs/NativeSelect/index.d.ts +37 -0
  64. package/publish/lib/cjs/NativeSelect/index.js +2052 -0
  65. package/publish/lib/cjs/NumberInput/index.d.ts +40 -0
  66. package/publish/lib/cjs/NumberInput/index.js +1191 -0
  67. package/publish/lib/cjs/Pagination/index.d.ts +51 -0
  68. package/publish/lib/cjs/Pagination/index.js +612 -0
  69. package/publish/lib/cjs/Radio/index.d.ts +45 -0
  70. package/publish/lib/cjs/Radio/index.js +1838 -0
  71. package/publish/lib/cjs/RangeSlider/index.d.ts +22 -0
  72. package/publish/lib/cjs/RangeSlider/index.js +2696 -0
  73. package/publish/lib/cjs/Refresher/index.d.ts +22 -0
  74. package/publish/lib/cjs/Refresher/index.js +564 -0
  75. package/publish/lib/cjs/RootPortal/index.d.ts +9 -0
  76. package/publish/lib/cjs/RootPortal/index.js +148 -0
  77. package/publish/lib/cjs/ScrollReveal/index.d.ts +21 -0
  78. package/publish/lib/cjs/ScrollReveal/index.js +401 -0
  79. package/publish/lib/cjs/Scrollbar/index.d.ts +17 -0
  80. package/publish/lib/cjs/Scrollbar/index.js +1107 -0
  81. package/publish/lib/cjs/SearchBar/index.d.ts +41 -0
  82. package/publish/lib/cjs/SearchBar/index.js +701 -0
  83. package/publish/lib/cjs/Select/index.d.ts +107 -0
  84. package/publish/lib/cjs/Select/index.js +6540 -0
  85. package/publish/lib/cjs/ShowMoreLess/index.d.ts +36 -0
  86. package/publish/lib/cjs/ShowMoreLess/index.js +387 -0
  87. package/publish/lib/cjs/SplitterPanel/index.d.ts +20 -0
  88. package/publish/lib/cjs/SplitterPanel/index.js +800 -0
  89. package/publish/lib/cjs/Stepper/index.d.ts +26 -0
  90. package/publish/lib/cjs/Stepper/index.js +568 -0
  91. package/publish/lib/cjs/Switch/index.d.ts +25 -0
  92. package/publish/lib/cjs/Switch/index.js +630 -0
  93. package/publish/lib/cjs/Table/index.d.ts +12 -0
  94. package/publish/lib/cjs/Table/index.js +2311 -0
  95. package/publish/lib/cjs/Tabs/index.d.ts +3 -0
  96. package/publish/lib/cjs/Tabs/index.js +771 -0
  97. package/publish/lib/cjs/TagInput/index.d.ts +37 -0
  98. package/publish/lib/cjs/TagInput/index.js +1227 -0
  99. package/publish/lib/cjs/Textarea/index.d.ts +50 -0
  100. package/publish/lib/cjs/Textarea/index.js +1795 -0
  101. package/publish/lib/cjs/Toast/index.d.ts +3 -0
  102. package/publish/lib/cjs/Toast/index.js +1345 -0
  103. package/publish/lib/cjs/Tooltip/index.d.ts +38 -0
  104. package/publish/lib/cjs/Tooltip/index.js +1778 -0
  105. package/publish/lib/cjs/Tree/index.d.ts +78 -0
  106. package/publish/lib/cjs/Tree/index.js +2330 -0
  107. package/publish/lib/cjs/Utils/anim.d.ts +11 -0
  108. package/publish/lib/cjs/Utils/anim.js +846 -0
  109. package/publish/lib/cjs/Utils/bodyScrollLock.d.ts +8 -0
  110. package/publish/lib/cjs/Utils/bodyScrollLock.js +311 -0
  111. package/publish/lib/cjs/Utils/buffer.d.ts +67 -0
  112. package/publish/lib/cjs/Utils/buffer.js +343 -0
  113. package/publish/lib/cjs/Utils/cls.d.ts +15 -0
  114. package/publish/lib/cjs/Utils/cls.js +124 -0
  115. package/publish/lib/cjs/Utils/convert.d.ts +25 -0
  116. package/publish/lib/cjs/Utils/convert.js +109 -0
  117. package/publish/lib/cjs/Utils/date.d.ts +227 -0
  118. package/publish/lib/cjs/Utils/date.js +587 -0
  119. package/publish/lib/cjs/Utils/dom.d.ts +13 -0
  120. package/publish/lib/cjs/Utils/dom.js +215 -0
  121. package/publish/lib/cjs/Utils/easing.d.ts +29 -0
  122. package/publish/lib/cjs/Utils/easing.js +221 -0
  123. package/publish/lib/cjs/Utils/extract.d.ts +66 -0
  124. package/publish/lib/cjs/Utils/extract.js +195 -0
  125. package/publish/lib/cjs/Utils/format-string.d.ts +65 -0
  126. package/publish/lib/cjs/Utils/format-string.js +167 -0
  127. package/publish/lib/cjs/Utils/formdata.d.ts +13 -0
  128. package/publish/lib/cjs/Utils/formdata.js +131 -0
  129. package/publish/lib/cjs/Utils/getElementProperty.d.ts +52 -0
  130. package/publish/lib/cjs/Utils/getElementProperty.js +189 -0
  131. package/publish/lib/cjs/Utils/guid.d.ts +7 -0
  132. package/publish/lib/cjs/Utils/guid.js +67 -0
  133. package/publish/lib/cjs/Utils/initDefaultOptions.d.ts +10 -0
  134. package/publish/lib/cjs/Utils/initDefaultOptions.js +607 -0
  135. package/publish/lib/cjs/Utils/inputsCalculation.d.ts +28 -0
  136. package/publish/lib/cjs/Utils/inputsCalculation.js +188 -0
  137. package/publish/lib/cjs/Utils/math.d.ts +77 -0
  138. package/publish/lib/cjs/Utils/math.js +305 -0
  139. package/publish/lib/cjs/Utils/object.d.ts +18 -0
  140. package/publish/lib/cjs/Utils/object.js +120 -0
  141. package/publish/lib/cjs/Utils/os.d.ts +2 -0
  142. package/publish/lib/cjs/Utils/os.js +104 -0
  143. package/publish/lib/cjs/Utils/performance.d.ts +3 -0
  144. package/publish/lib/cjs/Utils/performance.js +94 -0
  145. package/publish/lib/cjs/Utils/sanitize.d.ts +14 -0
  146. package/publish/lib/cjs/Utils/sanitize.js +87 -0
  147. package/publish/lib/cjs/Utils/time.d.ts +40 -0
  148. package/publish/lib/cjs/Utils/time.js +177 -0
  149. package/publish/lib/cjs/Utils/tree.d.ts +40 -0
  150. package/publish/lib/cjs/Utils/tree.js +195 -0
  151. package/publish/lib/cjs/Utils/useAutosizeTextArea.d.ts +10 -0
  152. package/publish/lib/cjs/Utils/useAutosizeTextArea.js +231 -0
  153. package/publish/lib/cjs/Utils/useBoundedDrag.d.ts +125 -0
  154. package/publish/lib/cjs/Utils/useBoundedDrag.js +380 -0
  155. package/publish/lib/cjs/Utils/useClickOutside.d.ts +33 -0
  156. package/publish/lib/cjs/Utils/useClickOutside.js +166 -0
  157. package/publish/lib/cjs/Utils/useComId.d.ts +6 -0
  158. package/publish/lib/cjs/Utils/useComId.js +114 -0
  159. package/publish/lib/cjs/Utils/useDebounce.d.ts +20 -0
  160. package/publish/lib/cjs/Utils/useDebounce.js +138 -0
  161. package/publish/lib/cjs/Utils/useDragDropPosition.d.ts +166 -0
  162. package/publish/lib/cjs/Utils/useDragDropPosition.js +453 -0
  163. package/publish/lib/cjs/Utils/useDraggable.d.ts +62 -0
  164. package/publish/lib/cjs/Utils/useDraggable.js +348 -0
  165. package/publish/lib/cjs/Utils/useHistoryTracker.d.ts +166 -0
  166. package/publish/lib/cjs/Utils/useHistoryTracker.js +649 -0
  167. package/publish/lib/cjs/Utils/useInterval.d.ts +5 -0
  168. package/publish/lib/cjs/Utils/useInterval.js +168 -0
  169. package/publish/lib/cjs/Utils/useIsMobile.d.ts +2 -0
  170. package/publish/lib/cjs/Utils/useIsMobile.js +232 -0
  171. package/publish/lib/cjs/Utils/useKeyPress.d.ts +44 -0
  172. package/publish/lib/cjs/Utils/useKeyPress.js +200 -0
  173. package/publish/lib/cjs/Utils/useSessionStorageListener.d.ts +2 -0
  174. package/publish/lib/cjs/Utils/useSessionStorageListener.js +157 -0
  175. package/publish/lib/cjs/Utils/useStreamController.d.ts +71 -0
  176. package/publish/lib/cjs/Utils/useStreamController.js +494 -0
  177. package/publish/lib/cjs/Utils/useThrottle.d.ts +2 -0
  178. package/publish/lib/cjs/Utils/useThrottle.js +136 -0
  179. package/publish/lib/cjs/Utils/useWindowScroll.d.ts +12 -0
  180. package/publish/lib/cjs/Utils/useWindowScroll.js +217 -0
  181. package/publish/lib/cjs/Utils/validate.d.ts +53 -0
  182. package/publish/lib/cjs/Utils/validate.js +536 -0
  183. package/publish/lib/cjs/Utils/viewport.d.ts +7 -0
  184. package/publish/lib/cjs/Utils/viewport.js +64 -0
  185. package/publish/lib/cjs/index.d.ts +49 -0
  186. package/publish/lib/cjs/index.js +50 -0
  187. package/publish/lib/css/BackToTop/index.css +34 -0
  188. package/publish/lib/css/CascadingSelect/index.css +245 -0
  189. package/publish/lib/css/CascadingSelectE2E/index.css +245 -0
  190. package/publish/lib/css/Chatbox/index.css +774 -0
  191. package/publish/lib/css/ColorPicker/index.css +58 -0
  192. package/publish/lib/css/Date/index.css +434 -0
  193. package/publish/lib/css/DragDropList/index.css +188 -0
  194. package/publish/lib/css/DropdownMenu/index.css +151 -0
  195. package/publish/lib/css/EventCalendar/index.css +300 -0
  196. package/publish/lib/css/EventCalendarTimeline/index.css +694 -0
  197. package/publish/lib/css/HorizontalScrollContent/index.css +70 -0
  198. package/publish/lib/css/LiveSearch/index.css +88 -0
  199. package/publish/lib/css/MultilevelDropdownMenu/index.css +38 -0
  200. package/publish/lib/css/MultipleSelect/index.css +313 -0
  201. package/publish/lib/css/RangeSlider/index.css +150 -0
  202. package/publish/lib/css/Scrollbar/index.css +176 -0
  203. package/publish/lib/css/Select/index.css +434 -0
  204. package/publish/lib/css/ShowMoreLess/index.css +23 -0
  205. package/publish/lib/css/SplitterPanel/index.css +63 -0
  206. package/publish/lib/css/Stepper/index.css +250 -0
  207. package/publish/lib/css/Table/index.css +584 -0
  208. package/publish/lib/css/TagInput/index.css +91 -0
  209. package/publish/lib/css/Toast/index.css +149 -0
  210. package/publish/lib/css/Tooltip/index.css +198 -0
  211. package/publish/lib/css/Tree/index.css +237 -0
  212. package/publish/lib/esm/Accordion/Accordion.tsx +185 -0
  213. package/publish/lib/esm/Accordion/AccordionItem.tsx +248 -0
  214. package/publish/lib/esm/Accordion/index.tsx +2 -0
  215. package/publish/lib/esm/BackToTop/index.scss +47 -0
  216. package/publish/lib/esm/BackToTop/index.tsx +177 -0
  217. package/publish/lib/esm/CascadingSelect/Group.tsx +83 -0
  218. package/publish/lib/esm/CascadingSelect/index.scss +330 -0
  219. package/publish/lib/esm/CascadingSelect/index.tsx +1397 -0
  220. package/publish/lib/esm/CascadingSelectE2E/Group.tsx +87 -0
  221. package/publish/lib/esm/CascadingSelectE2E/index.scss +333 -0
  222. package/publish/lib/esm/CascadingSelectE2E/index.tsx +1684 -0
  223. package/publish/lib/esm/Chatbox/PureLoader.tsx +47 -0
  224. package/publish/lib/esm/Chatbox/TypingEffect.tsx +56 -0
  225. package/publish/lib/esm/Chatbox/index.scss +966 -0
  226. package/publish/lib/esm/Chatbox/index.tsx +1742 -0
  227. package/publish/lib/esm/Chatbox/utils/func.ts +180 -0
  228. package/publish/lib/esm/Checkbox/index.tsx +206 -0
  229. package/publish/lib/esm/ColorPicker/index.scss +91 -0
  230. package/publish/lib/esm/ColorPicker/index.tsx +204 -0
  231. package/publish/lib/esm/Date/Calendar.tsx +723 -0
  232. package/publish/lib/esm/Date/index.scss +567 -0
  233. package/publish/lib/esm/Date/index.tsx +1797 -0
  234. package/publish/lib/esm/Date/localization/en_US.js +13 -0
  235. package/publish/lib/esm/Date/localization/zh_CN.js +12 -0
  236. package/publish/lib/esm/DigitalClock/index.tsx +74 -0
  237. package/publish/lib/esm/DragDropList/index.scss +245 -0
  238. package/publish/lib/esm/DragDropList/index.tsx +504 -0
  239. package/publish/lib/esm/DropdownMenu/Option.tsx +55 -0
  240. package/publish/lib/esm/DropdownMenu/index.scss +205 -0
  241. package/publish/lib/esm/DropdownMenu/index.tsx +378 -0
  242. package/publish/lib/esm/DynamicFields/index.tsx +409 -0
  243. package/publish/lib/esm/EventCalendar/index.scss +407 -0
  244. package/publish/lib/esm/EventCalendar/index.tsx +1005 -0
  245. package/publish/lib/esm/EventCalendarTimeline/index.scss +926 -0
  246. package/publish/lib/esm/EventCalendarTimeline/index.tsx +2686 -0
  247. package/publish/lib/esm/File/index.tsx +477 -0
  248. package/publish/lib/esm/HorizontalScrollContent/index.scss +87 -0
  249. package/publish/lib/esm/HorizontalScrollContent/index.tsx +171 -0
  250. package/publish/lib/esm/Input/index.tsx +641 -0
  251. package/publish/lib/esm/LiveSearch/index.scss +129 -0
  252. package/publish/lib/esm/LiveSearch/index.tsx +1058 -0
  253. package/publish/lib/esm/MasonryLayout/index.tsx +326 -0
  254. package/publish/lib/esm/ModalDialog/index.tsx +572 -0
  255. package/publish/lib/esm/ModeSwitch/index.tsx +82 -0
  256. package/publish/lib/esm/MultilevelDropdownMenu/ItemList.tsx +265 -0
  257. package/publish/lib/esm/MultilevelDropdownMenu/index.scss +79 -0
  258. package/publish/lib/esm/MultilevelDropdownMenu/index.tsx +77 -0
  259. package/publish/lib/esm/MultipleCheckboxes/index.tsx +849 -0
  260. package/publish/lib/esm/MultipleSelect/index.scss +398 -0
  261. package/publish/lib/esm/MultipleSelect/index.tsx +769 -0
  262. package/publish/lib/esm/MultipleSelect/utils/func.ts +63 -0
  263. package/publish/lib/esm/NativeSelect/index.tsx +396 -0
  264. package/publish/lib/esm/NativeSelect/utils/func.ts +51 -0
  265. package/publish/lib/esm/NumberInput/index.tsx +425 -0
  266. package/publish/lib/esm/Pagination/index.tsx +286 -0
  267. package/publish/lib/esm/Pagination/pagination-navigators.tsx +60 -0
  268. package/publish/lib/esm/Radio/index.tsx +694 -0
  269. package/publish/lib/esm/RangeSlider/index.scss +186 -0
  270. package/publish/lib/esm/RangeSlider/index.tsx +241 -0
  271. package/publish/lib/esm/Refresher/index.tsx +121 -0
  272. package/publish/lib/esm/RootPortal/index.tsx +59 -0
  273. package/publish/lib/esm/ScrollReveal/index.tsx +148 -0
  274. package/publish/lib/esm/Scrollbar/index.scss +221 -0
  275. package/publish/lib/esm/Scrollbar/index.tsx +561 -0
  276. package/publish/lib/esm/SearchBar/index.tsx +252 -0
  277. package/publish/lib/esm/Select/index.scss +639 -0
  278. package/publish/lib/esm/Select/index.tsx +3104 -0
  279. package/publish/lib/esm/Select/utils/func.ts +98 -0
  280. package/publish/lib/esm/ShowMoreLess/index.scss +27 -0
  281. package/publish/lib/esm/ShowMoreLess/index.tsx +145 -0
  282. package/publish/lib/esm/SplitterPanel/index.scss +82 -0
  283. package/publish/lib/esm/SplitterPanel/index.tsx +174 -0
  284. package/publish/lib/esm/Stepper/index.scss +315 -0
  285. package/publish/lib/esm/Stepper/index.tsx +325 -0
  286. package/publish/lib/esm/Switch/index.tsx +149 -0
  287. package/publish/lib/esm/Table/Table.tsx +351 -0
  288. package/publish/lib/esm/Table/TableBody.tsx +41 -0
  289. package/publish/lib/esm/Table/TableCaption.tsx +34 -0
  290. package/publish/lib/esm/Table/TableCell.tsx +126 -0
  291. package/publish/lib/esm/Table/TableColgroup.tsx +38 -0
  292. package/publish/lib/esm/Table/TableContext.tsx +26 -0
  293. package/publish/lib/esm/Table/TableFoot.tsx +28 -0
  294. package/publish/lib/esm/Table/TableHead.tsx +28 -0
  295. package/publish/lib/esm/Table/TableRow.tsx +76 -0
  296. package/publish/lib/esm/Table/index.scss +418 -0
  297. package/publish/lib/esm/Table/index.tsx +14 -0
  298. package/publish/lib/esm/Table/utils/DragHandleSprite.tsx +46 -0
  299. package/publish/lib/esm/Table/utils/SortSprite.tsx +63 -0
  300. package/publish/lib/esm/Table/utils/TableFilter.tsx +56 -0
  301. package/publish/lib/esm/Table/utils/ToggleSelection.tsx +255 -0
  302. package/publish/lib/esm/Table/utils/func.ts +182 -0
  303. package/publish/lib/esm/Table/utils/hooks/useTableDraggable.tsx +342 -0
  304. package/publish/lib/esm/Table/utils/hooks/useTableKeyPress.tsx +255 -0
  305. package/publish/lib/esm/Table/utils/hooks/useTableResponsive.tsx +92 -0
  306. package/publish/lib/esm/Table/utils/hooks/useTableSort.tsx +187 -0
  307. package/publish/lib/esm/Tabs/TabList.tsx +50 -0
  308. package/publish/lib/esm/Tabs/TabPanel.tsx +44 -0
  309. package/publish/lib/esm/Tabs/Tabs.tsx +282 -0
  310. package/publish/lib/esm/Tabs/index.tsx +3 -0
  311. package/publish/lib/esm/TagInput/index.scss +126 -0
  312. package/publish/lib/esm/TagInput/index.tsx +379 -0
  313. package/publish/lib/esm/Textarea/index.tsx +621 -0
  314. package/publish/lib/esm/Toast/Item.tsx +165 -0
  315. package/publish/lib/esm/Toast/Toast.tsx +391 -0
  316. package/publish/lib/esm/Toast/ToastContext.tsx +104 -0
  317. package/publish/lib/esm/Toast/__toast.vanilla.js +422 -0
  318. package/publish/lib/esm/Toast/index.scss +197 -0
  319. package/publish/lib/esm/Toast/index.tsx +3 -0
  320. package/publish/lib/esm/Toast/types.ts +60 -0
  321. package/publish/lib/esm/Toast/useToast.tsx +72 -0
  322. package/publish/lib/esm/Tooltip/index.scss +272 -0
  323. package/publish/lib/esm/Tooltip/index.tsx +416 -0
  324. package/publish/lib/esm/Tree/TreeList.tsx +600 -0
  325. package/publish/lib/esm/Tree/index.scss +384 -0
  326. package/publish/lib/esm/Tree/index.tsx +661 -0
  327. package/publish/lib/esm/Tree/init-height.tsx +40 -0
  328. package/publish/lib/esm/Tree/utils/func.ts +15 -0
  329. package/publish/lib/esm/Utils/hooks/useAutosizeTextArea.tsx +131 -0
  330. package/publish/lib/esm/Utils/hooks/useBoundedDrag.tsx +301 -0
  331. package/publish/lib/esm/Utils/hooks/useClickOutside.tsx +69 -0
  332. package/publish/lib/esm/Utils/hooks/useComId.tsx +13 -0
  333. package/publish/lib/esm/Utils/hooks/useDebounce.tsx +40 -0
  334. package/publish/lib/esm/Utils/hooks/useDragDropPosition.tsx +417 -0
  335. package/publish/lib/esm/Utils/hooks/useDraggable.tsx +265 -0
  336. package/publish/lib/esm/Utils/hooks/useHistoryTracker.tsx +554 -0
  337. package/publish/lib/esm/Utils/hooks/useInterval.tsx +74 -0
  338. package/publish/lib/esm/Utils/hooks/useIsMobile.tsx +139 -0
  339. package/publish/lib/esm/Utils/hooks/useKeyPress.tsx +104 -0
  340. package/publish/lib/esm/Utils/hooks/useSessionStorageListener.tsx +45 -0
  341. package/publish/lib/esm/Utils/hooks/useStreamController.tsx +277 -0
  342. package/publish/lib/esm/Utils/hooks/useThrottle.tsx +39 -0
  343. package/publish/lib/esm/Utils/hooks/useWindowScroll.tsx +83 -0
  344. package/publish/lib/esm/Utils/libs/anim.ts +96 -0
  345. package/publish/lib/esm/Utils/libs/buffer.ts +262 -0
  346. package/publish/lib/esm/Utils/libs/cls.ts +64 -0
  347. package/publish/lib/esm/Utils/libs/convert.ts +59 -0
  348. package/publish/lib/esm/Utils/libs/date.ts +598 -0
  349. package/publish/lib/esm/Utils/libs/dom.ts +150 -0
  350. package/publish/lib/esm/Utils/libs/easing.ts +201 -0
  351. package/publish/lib/esm/Utils/libs/extract.ts +160 -0
  352. package/publish/lib/esm/Utils/libs/format-string.ts +116 -0
  353. package/publish/lib/esm/Utils/libs/formdata.ts +93 -0
  354. package/publish/lib/esm/Utils/libs/getElementProperty.ts +150 -0
  355. package/publish/lib/esm/Utils/libs/guid.ts +16 -0
  356. package/publish/lib/esm/Utils/libs/initDefaultOptions.ts +43 -0
  357. package/publish/lib/esm/Utils/libs/inputsCalculation.ts +160 -0
  358. package/publish/lib/esm/Utils/libs/math.ts +276 -0
  359. package/publish/lib/esm/Utils/libs/object.ts +68 -0
  360. package/publish/lib/esm/Utils/libs/os.ts +63 -0
  361. package/publish/lib/esm/Utils/libs/performance.ts +47 -0
  362. package/publish/lib/esm/Utils/libs/sanitize.ts +55 -0
  363. package/publish/lib/esm/Utils/libs/time.ts +139 -0
  364. package/publish/lib/esm/Utils/libs/tree.ts +119 -0
  365. package/publish/lib/esm/Utils/libs/validate.ts +434 -0
  366. package/publish/lib/esm/Utils/libs/viewport.ts +20 -0
  367. package/publish/lib/esm/Utils/plugins/bodyScrollLock.ts +286 -0
  368. package/publish/lib/esm/index.js +47 -0
  369. package/publish/package.json +1 -0
  370. /package/{Accordion → publish/Accordion}/index.d.ts +0 -0
  371. /package/{Accordion → publish/Accordion}/index.js +0 -0
  372. /package/{BackToTop → publish/BackToTop}/index.css +0 -0
  373. /package/{BackToTop → publish/BackToTop}/index.d.ts +0 -0
  374. /package/{BackToTop → publish/BackToTop}/index.js +0 -0
  375. /package/{CascadingSelect → publish/CascadingSelect}/index.css +0 -0
  376. /package/{CascadingSelect → publish/CascadingSelect}/index.d.ts +0 -0
  377. /package/{CascadingSelect → publish/CascadingSelect}/index.js +0 -0
  378. /package/{CascadingSelectE2E → publish/CascadingSelectE2E}/index.css +0 -0
  379. /package/{CascadingSelectE2E → publish/CascadingSelectE2E}/index.d.ts +0 -0
  380. /package/{CascadingSelectE2E → publish/CascadingSelectE2E}/index.js +0 -0
  381. /package/{Chatbox → publish/Chatbox}/index.css +0 -0
  382. /package/{Chatbox → publish/Chatbox}/index.d.ts +0 -0
  383. /package/{Chatbox → publish/Chatbox}/index.js +0 -0
  384. /package/{Checkbox → publish/Checkbox}/index.d.ts +0 -0
  385. /package/{Checkbox → publish/Checkbox}/index.js +0 -0
  386. /package/{ColorPicker → publish/ColorPicker}/index.css +0 -0
  387. /package/{ColorPicker → publish/ColorPicker}/index.d.ts +0 -0
  388. /package/{ColorPicker → publish/ColorPicker}/index.js +0 -0
  389. /package/{Date → publish/Date}/index.css +0 -0
  390. /package/{Date → publish/Date}/index.d.ts +0 -0
  391. /package/{DigitalClock → publish/DigitalClock}/index.d.ts +0 -0
  392. /package/{DigitalClock → publish/DigitalClock}/index.js +0 -0
  393. /package/{DragDropList → publish/DragDropList}/index.css +0 -0
  394. /package/{DragDropList → publish/DragDropList}/index.d.ts +0 -0
  395. /package/{DragDropList → publish/DragDropList}/index.js +0 -0
  396. /package/{DropdownMenu → publish/DropdownMenu}/index.css +0 -0
  397. /package/{DropdownMenu → publish/DropdownMenu}/index.d.ts +0 -0
  398. /package/{DropdownMenu → publish/DropdownMenu}/index.js +0 -0
  399. /package/{DynamicFields → publish/DynamicFields}/index.d.ts +0 -0
  400. /package/{EventCalendar → publish/EventCalendar}/index.css +0 -0
  401. /package/{EventCalendar → publish/EventCalendar}/index.d.ts +0 -0
  402. /package/{EventCalendar → publish/EventCalendar}/index.js +0 -0
  403. /package/{EventCalendarTimeline → publish/EventCalendarTimeline}/index.css +0 -0
  404. /package/{EventCalendarTimeline → publish/EventCalendarTimeline}/index.d.ts +0 -0
  405. /package/{EventCalendarTimeline → publish/EventCalendarTimeline}/index.js +0 -0
  406. /package/{File → publish/File}/index.d.ts +0 -0
  407. /package/{File → publish/File}/index.js +0 -0
  408. /package/{HorizontalScrollContent → publish/HorizontalScrollContent}/index.css +0 -0
  409. /package/{HorizontalScrollContent → publish/HorizontalScrollContent}/index.d.ts +0 -0
  410. /package/{HorizontalScrollContent → publish/HorizontalScrollContent}/index.js +0 -0
  411. /package/{Input → publish/Input}/index.d.ts +0 -0
  412. /package/{Input → publish/Input}/index.js +0 -0
  413. /package/{LiveSearch → publish/LiveSearch}/index.css +0 -0
  414. /package/{LiveSearch → publish/LiveSearch}/index.d.ts +0 -0
  415. /package/{LiveSearch → publish/LiveSearch}/index.js +0 -0
  416. /package/{MasonryLayout → publish/MasonryLayout}/index.d.ts +0 -0
  417. /package/{MasonryLayout → publish/MasonryLayout}/index.js +0 -0
  418. /package/{ModalDialog → publish/ModalDialog}/index.d.ts +0 -0
  419. /package/{ModalDialog → publish/ModalDialog}/index.js +0 -0
  420. /package/{ModeSwitch → publish/ModeSwitch}/index.d.ts +0 -0
  421. /package/{ModeSwitch → publish/ModeSwitch}/index.js +0 -0
  422. /package/{MultilevelDropdownMenu → publish/MultilevelDropdownMenu}/index.css +0 -0
  423. /package/{MultilevelDropdownMenu → publish/MultilevelDropdownMenu}/index.d.ts +0 -0
  424. /package/{MultilevelDropdownMenu → publish/MultilevelDropdownMenu}/index.js +0 -0
  425. /package/{MultipleCheckboxes → publish/MultipleCheckboxes}/index.d.ts +0 -0
  426. /package/{MultipleCheckboxes → publish/MultipleCheckboxes}/index.js +0 -0
  427. /package/{MultipleSelect → publish/MultipleSelect}/index.css +0 -0
  428. /package/{MultipleSelect → publish/MultipleSelect}/index.d.ts +0 -0
  429. /package/{MultipleSelect → publish/MultipleSelect}/index.js +0 -0
  430. /package/{NativeSelect → publish/NativeSelect}/index.d.ts +0 -0
  431. /package/{NativeSelect → publish/NativeSelect}/index.js +0 -0
  432. /package/{NumberInput → publish/NumberInput}/index.d.ts +0 -0
  433. /package/{NumberInput → publish/NumberInput}/index.js +0 -0
  434. /package/{Pagination → publish/Pagination}/index.d.ts +0 -0
  435. /package/{Pagination → publish/Pagination}/index.js +0 -0
  436. /package/{Radio → publish/Radio}/index.d.ts +0 -0
  437. /package/{Radio → publish/Radio}/index.js +0 -0
  438. /package/{RangeSlider → publish/RangeSlider}/index.css +0 -0
  439. /package/{RangeSlider → publish/RangeSlider}/index.d.ts +0 -0
  440. /package/{RangeSlider → publish/RangeSlider}/index.js +0 -0
  441. /package/{Refresher → publish/Refresher}/index.d.ts +0 -0
  442. /package/{Refresher → publish/Refresher}/index.js +0 -0
  443. /package/{RootPortal → publish/RootPortal}/index.d.ts +0 -0
  444. /package/{RootPortal → publish/RootPortal}/index.js +0 -0
  445. /package/{ScrollReveal → publish/ScrollReveal}/index.d.ts +0 -0
  446. /package/{ScrollReveal → publish/ScrollReveal}/index.js +0 -0
  447. /package/{Scrollbar → publish/Scrollbar}/index.css +0 -0
  448. /package/{Scrollbar → publish/Scrollbar}/index.d.ts +0 -0
  449. /package/{Scrollbar → publish/Scrollbar}/index.js +0 -0
  450. /package/{SearchBar → publish/SearchBar}/index.d.ts +0 -0
  451. /package/{SearchBar → publish/SearchBar}/index.js +0 -0
  452. /package/{Select → publish/Select}/index.css +0 -0
  453. /package/{Select → publish/Select}/index.d.ts +0 -0
  454. /package/{Select → publish/Select}/index.js +0 -0
  455. /package/{ShowMoreLess → publish/ShowMoreLess}/index.css +0 -0
  456. /package/{ShowMoreLess → publish/ShowMoreLess}/index.d.ts +0 -0
  457. /package/{ShowMoreLess → publish/ShowMoreLess}/index.js +0 -0
  458. /package/{SplitterPanel → publish/SplitterPanel}/index.css +0 -0
  459. /package/{SplitterPanel → publish/SplitterPanel}/index.d.ts +0 -0
  460. /package/{SplitterPanel → publish/SplitterPanel}/index.js +0 -0
  461. /package/{Stepper → publish/Stepper}/index.css +0 -0
  462. /package/{Stepper → publish/Stepper}/index.d.ts +0 -0
  463. /package/{Stepper → publish/Stepper}/index.js +0 -0
  464. /package/{Switch → publish/Switch}/index.d.ts +0 -0
  465. /package/{Switch → publish/Switch}/index.js +0 -0
  466. /package/{Table → publish/Table}/index.css +0 -0
  467. /package/{Table → publish/Table}/index.d.ts +0 -0
  468. /package/{Table → publish/Table}/index.js +0 -0
  469. /package/{Tabs → publish/Tabs}/index.d.ts +0 -0
  470. /package/{Tabs → publish/Tabs}/index.js +0 -0
  471. /package/{TagInput → publish/TagInput}/index.css +0 -0
  472. /package/{TagInput → publish/TagInput}/index.d.ts +0 -0
  473. /package/{TagInput → publish/TagInput}/index.js +0 -0
  474. /package/{Textarea → publish/Textarea}/index.d.ts +0 -0
  475. /package/{Textarea → publish/Textarea}/index.js +0 -0
  476. /package/{Toast → publish/Toast}/index.css +0 -0
  477. /package/{Toast → publish/Toast}/index.d.ts +0 -0
  478. /package/{Toast → publish/Toast}/index.js +0 -0
  479. /package/{Tooltip → publish/Tooltip}/index.css +0 -0
  480. /package/{Tooltip → publish/Tooltip}/index.d.ts +0 -0
  481. /package/{Tooltip → publish/Tooltip}/index.js +0 -0
  482. /package/{Tree → publish/Tree}/index.css +0 -0
  483. /package/{Tree → publish/Tree}/index.d.ts +0 -0
  484. /package/{Tree → publish/Tree}/index.js +0 -0
  485. /package/{Utils → publish/Utils}/anim.d.ts +0 -0
  486. /package/{Utils → publish/Utils}/anim.js +0 -0
  487. /package/{Utils → publish/Utils}/bodyScrollLock.d.ts +0 -0
  488. /package/{Utils → publish/Utils}/bodyScrollLock.js +0 -0
  489. /package/{Utils → publish/Utils}/buffer.d.ts +0 -0
  490. /package/{Utils → publish/Utils}/buffer.js +0 -0
  491. /package/{Utils → publish/Utils}/cls.d.ts +0 -0
  492. /package/{Utils → publish/Utils}/cls.js +0 -0
  493. /package/{Utils → publish/Utils}/convert.d.ts +0 -0
  494. /package/{Utils → publish/Utils}/convert.js +0 -0
  495. /package/{Utils → publish/Utils}/date.d.ts +0 -0
  496. /package/{Utils → publish/Utils}/date.js +0 -0
  497. /package/{Utils → publish/Utils}/dom.d.ts +0 -0
  498. /package/{Utils → publish/Utils}/dom.js +0 -0
  499. /package/{Utils → publish/Utils}/easing.d.ts +0 -0
  500. /package/{Utils → publish/Utils}/easing.js +0 -0
  501. /package/{Utils → publish/Utils}/extract.d.ts +0 -0
  502. /package/{Utils → publish/Utils}/extract.js +0 -0
  503. /package/{Utils → publish/Utils}/format-string.d.ts +0 -0
  504. /package/{Utils → publish/Utils}/format-string.js +0 -0
  505. /package/{Utils → publish/Utils}/formdata.d.ts +0 -0
  506. /package/{Utils → publish/Utils}/formdata.js +0 -0
  507. /package/{Utils → publish/Utils}/getElementProperty.d.ts +0 -0
  508. /package/{Utils → publish/Utils}/getElementProperty.js +0 -0
  509. /package/{Utils → publish/Utils}/guid.d.ts +0 -0
  510. /package/{Utils → publish/Utils}/guid.js +0 -0
  511. /package/{Utils → publish/Utils}/initDefaultOptions.d.ts +0 -0
  512. /package/{Utils → publish/Utils}/initDefaultOptions.js +0 -0
  513. /package/{Utils → publish/Utils}/inputsCalculation.d.ts +0 -0
  514. /package/{Utils → publish/Utils}/inputsCalculation.js +0 -0
  515. /package/{Utils → publish/Utils}/math.d.ts +0 -0
  516. /package/{Utils → publish/Utils}/math.js +0 -0
  517. /package/{Utils → publish/Utils}/object.d.ts +0 -0
  518. /package/{Utils → publish/Utils}/object.js +0 -0
  519. /package/{Utils → publish/Utils}/os.d.ts +0 -0
  520. /package/{Utils → publish/Utils}/os.js +0 -0
  521. /package/{Utils → publish/Utils}/performance.d.ts +0 -0
  522. /package/{Utils → publish/Utils}/performance.js +0 -0
  523. /package/{Utils → publish/Utils}/sanitize.d.ts +0 -0
  524. /package/{Utils → publish/Utils}/sanitize.js +0 -0
  525. /package/{Utils → publish/Utils}/time.d.ts +0 -0
  526. /package/{Utils → publish/Utils}/time.js +0 -0
  527. /package/{Utils → publish/Utils}/tree.d.ts +0 -0
  528. /package/{Utils → publish/Utils}/tree.js +0 -0
  529. /package/{Utils → publish/Utils}/useAutosizeTextArea.d.ts +0 -0
  530. /package/{Utils → publish/Utils}/useAutosizeTextArea.js +0 -0
  531. /package/{Utils → publish/Utils}/useBoundedDrag.d.ts +0 -0
  532. /package/{Utils → publish/Utils}/useBoundedDrag.js +0 -0
  533. /package/{Utils → publish/Utils}/useClickOutside.d.ts +0 -0
  534. /package/{Utils → publish/Utils}/useClickOutside.js +0 -0
  535. /package/{Utils → publish/Utils}/useComId.d.ts +0 -0
  536. /package/{Utils → publish/Utils}/useComId.js +0 -0
  537. /package/{Utils → publish/Utils}/useDebounce.d.ts +0 -0
  538. /package/{Utils → publish/Utils}/useDebounce.js +0 -0
  539. /package/{Utils → publish/Utils}/useDragDropPosition.d.ts +0 -0
  540. /package/{Utils → publish/Utils}/useDragDropPosition.js +0 -0
  541. /package/{Utils → publish/Utils}/useDraggable.d.ts +0 -0
  542. /package/{Utils → publish/Utils}/useDraggable.js +0 -0
  543. /package/{Utils → publish/Utils}/useHistoryTracker.d.ts +0 -0
  544. /package/{Utils → publish/Utils}/useHistoryTracker.js +0 -0
  545. /package/{Utils → publish/Utils}/useInterval.d.ts +0 -0
  546. /package/{Utils → publish/Utils}/useInterval.js +0 -0
  547. /package/{Utils → publish/Utils}/useIsMobile.d.ts +0 -0
  548. /package/{Utils → publish/Utils}/useIsMobile.js +0 -0
  549. /package/{Utils → publish/Utils}/useKeyPress.d.ts +0 -0
  550. /package/{Utils → publish/Utils}/useKeyPress.js +0 -0
  551. /package/{Utils → publish/Utils}/useSessionStorageListener.d.ts +0 -0
  552. /package/{Utils → publish/Utils}/useSessionStorageListener.js +0 -0
  553. /package/{Utils → publish/Utils}/useStreamController.d.ts +0 -0
  554. /package/{Utils → publish/Utils}/useStreamController.js +0 -0
  555. /package/{Utils → publish/Utils}/useThrottle.d.ts +0 -0
  556. /package/{Utils → publish/Utils}/useThrottle.js +0 -0
  557. /package/{Utils → publish/Utils}/useWindowScroll.d.ts +0 -0
  558. /package/{Utils → publish/Utils}/useWindowScroll.js +0 -0
  559. /package/{Utils → publish/Utils}/validate.d.ts +0 -0
  560. /package/{Utils → publish/Utils}/validate.js +0 -0
  561. /package/{Utils → publish/Utils}/viewport.d.ts +0 -0
  562. /package/{Utils → publish/Utils}/viewport.js +0 -0
  563. /package/{all.d.ts → publish/all.d.ts} +0 -0
  564. /package/{all.js → publish/all.js} +0 -0
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Dom Utilities
3
+ * @param {HTMLElement} el - Element
4
+ * @param {?String} filter - A filter string
5
+ * @returns HtmlElementCollection
6
+ */
7
+ function matches(el: HTMLElement, filter: string | null): boolean {
8
+ if (el && el.nodeType === 1) {
9
+ if (filter) {
10
+ return el.matches(filter);
11
+ }
12
+ return true;
13
+ }
14
+ return false;
15
+ }
16
+
17
+ // the next siblings
18
+ function getNextSiblings(el: HTMLElement, filter: string = ''): HTMLElement[] {
19
+ const sibs: HTMLElement[] = [];
20
+ while (el = el.nextSibling as HTMLElement) {
21
+ if (matches(el, filter)) {
22
+ sibs.push(el);
23
+ }
24
+ }
25
+ return sibs;
26
+ }
27
+
28
+ // previous siblings
29
+ function getPreviousSiblings(el: HTMLElement, filter: string = ''): HTMLElement[] {
30
+ const sibs: HTMLElement[] = [];
31
+ while (el = el.previousSibling as HTMLElement) {
32
+ if (matches(el, filter)) {
33
+ sibs.push(el);
34
+ }
35
+ }
36
+ return sibs;
37
+ }
38
+
39
+ // parent and get all the siblings
40
+ function getAllSiblings(el: HTMLElement, filter: string = ''): HTMLElement[] {
41
+ const sibs: HTMLElement[] = [];
42
+ el = el.parentNode!.firstChild as HTMLElement;
43
+ while (el = el.nextSibling as HTMLElement) {
44
+ if (matches(el, filter)) {
45
+ sibs.push(el);
46
+ }
47
+ }
48
+ return sibs;
49
+ }
50
+
51
+ // all parent nodes
52
+ function getParents(el: HTMLElement, filter: string = ''): HTMLElement[] {
53
+ const parents: HTMLElement[] = [];
54
+ while (el = el.parentNode as HTMLElement) {
55
+ if (matches(el, filter)) {
56
+ parents.push(el);
57
+ }
58
+ }
59
+ return parents;
60
+ }
61
+
62
+ // all child nodes
63
+ function getChildren(el: HTMLElement, filter: string = '', all: any[] = []): any[] {
64
+ all.push(...el.childNodes as any);
65
+ for (const child of el.childNodes as any) {
66
+ getChildren(child as HTMLElement, filter, all);
67
+ }
68
+
69
+ const res = all.filter((item) => matches(item as HTMLElement, filter));
70
+ return res;
71
+ }
72
+
73
+ function isRootElement(element: HTMLElement): boolean {
74
+ return element.matches('html,body');
75
+ }
76
+
77
+ function getDocument(node?: Node): Document {
78
+ if (typeof node === 'undefined') {
79
+ return document;
80
+ } else {
81
+ return node.ownerDocument!;
82
+ }
83
+ }
84
+
85
+ function isNode(value: any): value is Node {
86
+ return value instanceof Node;
87
+ }
88
+
89
+ function isElement(value: any): value is Element {
90
+ return value instanceof Element;
91
+ }
92
+
93
+ function isHTMLElement(value: any): value is HTMLElement {
94
+ return value instanceof HTMLElement;
95
+ }
96
+
97
+ function isShadowRoot(value: any): value is ShadowRoot {
98
+ // Browsers without `ShadowRoot` support.
99
+ if (typeof ShadowRoot === 'undefined') {
100
+ return false;
101
+ }
102
+
103
+ return value instanceof ShadowRoot;
104
+ }
105
+
106
+ /* console.log(nodeContains(document.body, document.getElementById('obj'))) */
107
+ function nodeContains(parent: Node, child: Node): boolean {
108
+ if (!parent || !child) {
109
+ return false;
110
+ }
111
+
112
+ const rootNode = child.getRootNode?.();
113
+
114
+ // First, attempt with faster native method
115
+ if (parent.contains(child)) {
116
+ return true;
117
+ }
118
+
119
+ // then fallback to custom implementation with Shadow DOM support
120
+ if (rootNode && isShadowRoot(rootNode)) {
121
+ let next = child;
122
+ while (next) {
123
+ if (parent === next) {
124
+ return true;
125
+ }
126
+ // @ts-ignore
127
+ next = next.parentNode || next.host;
128
+ }
129
+ }
130
+
131
+ // Give up, the result is false
132
+ return false;
133
+ }
134
+
135
+
136
+ export {
137
+ getNextSiblings,
138
+ getPreviousSiblings,
139
+ getAllSiblings,
140
+ getParents,
141
+ getChildren,
142
+ isRootElement,
143
+ getDocument,
144
+ isNode,
145
+ isElement,
146
+ isHTMLElement,
147
+ isShadowRoot,
148
+ nodeContains
149
+ }
150
+
@@ -0,0 +1,201 @@
1
+ /*
2
+ * All easing functions
3
+ * @link: https://easings.net
4
+ * @param {Number} t - time (Amount of time that has passed since the beginning of the animation. Usually starts at 0 and is slowly increased using a game loop or other update function.)
5
+ * @param {Number} b - beginning value (The starting point of the animation. Usually it's a static value, you can start at 0 for example.)
6
+ * @param {Number} c - change in value (The amount of change needed to go from starting point to end point. It's also usually a static value.)
7
+ * @param {Number} d - duration (Amount of time the animation will take. Usually a static value aswell.)
8
+ * @return {number}
9
+ */
10
+ function easeLinear (t: number, b: number, c: number, d: number): number {
11
+ return c * t / d + b;
12
+ }
13
+
14
+ function easeInQuad (t: number, b: number, c: number, d: number): number {
15
+ return c * (t /= d) * t + b;
16
+ }
17
+
18
+ function easeOutQuad (t: number, b: number, c: number, d: number): number {
19
+ return -c * (t /= d) * (t - 2) + b;
20
+ }
21
+
22
+ function easeInOutQuad (t: number, b: number, c: number, d: number): number {
23
+ if ((t /= d / 2) < 1) return c / 2 * t * t + b;
24
+ return -c / 2 * ((--t) * (t - 2) - 1) + b;
25
+ }
26
+
27
+ function easeInSine (t: number, b: number, c: number, d: number): number {
28
+ return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;
29
+ }
30
+
31
+ function easeOutSine (t: number, b: number, c: number, d: number): number {
32
+ return c * Math.sin(t / d * (Math.PI / 2)) + b;
33
+ }
34
+
35
+ function easeInOutSine (t: number, b: number, c: number, d: number): number {
36
+ return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;
37
+ }
38
+
39
+ function easeInExpo (t: number, b: number, c: number, d: number): number {
40
+ return (t == 0) ? b : c * Math.pow(2, 10 * (t / d - 1)) + b;
41
+ }
42
+
43
+ function easeOutExpo (t: number, b: number, c: number, d: number): number {
44
+ return (t == d) ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;
45
+ }
46
+
47
+ function easeInOutExpo (t: number, b: number, c: number, d: number): number {
48
+ if (t == 0) return b;
49
+ if (t == d) return b + c;
50
+ if ((t /= d / 2) < 1) return c / 2 * Math.pow(2, 10 * (t - 1)) + b;
51
+ return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;
52
+ }
53
+
54
+ function easeInCirc (t: number, b: number, c: number, d: number): number {
55
+ return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;
56
+ }
57
+
58
+ function easeOutCirc (t: number, b: number, c: number, d: number): number {
59
+ return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;
60
+ }
61
+
62
+ function easeInOutCirc (t: number, b: number, c: number, d: number): number {
63
+ if ((t /= d / 2) < 1) return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;
64
+ return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;
65
+ }
66
+
67
+ function easeInCubic (t: number, b: number, c: number, d: number): number {
68
+ return c * (t /= d) * t * t + b;
69
+ }
70
+
71
+ function easeOutCubic (t: number, b: number, c: number, d: number): number {
72
+ return c * ((t = t / d - 1) * t * t + 1) + b;
73
+ }
74
+
75
+ function easeInOutCubic (t: number, b: number, c: number, d: number): number {
76
+ if ((t /= d / 2) < 1) return c / 2 * t * t * t + b;
77
+ return c / 2 * ((t -= 2) * t * t + 2) + b;
78
+ }
79
+
80
+ function easeInQuart (t: number, b: number, c: number, d: number): number {
81
+ return c * (t /= d) * t * t * t + b;
82
+ }
83
+
84
+ function easeOutQuart (t: number, b: number, c: number, d: number): number {
85
+ return -c * ((t = t / d - 1) * t * t * t - 1) + b;
86
+ }
87
+
88
+ function easeInOutQuart (t: number, b: number, c: number, d: number): number {
89
+ if ((t /= d / 2) < 1) return c / 2 * t * t * t * t + b;
90
+ return -c / 2 * ((t -= 2) * t * t * t - 2) + b;
91
+ }
92
+
93
+ function easeInQuint (t: number, b: number, c: number, d: number): number {
94
+ return c * (t /= d) * t * t * t * t + b;
95
+ }
96
+
97
+ function easeOutQuint (t: number, b: number, c: number, d: number): number {
98
+ return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
99
+ }
100
+
101
+
102
+ function easeInOutQuint (t: number, b: number, c: number, d: number): number {
103
+ if ((t /= d / 2) < 1) return c / 2 * t * t * t * t * t + b;
104
+ return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;
105
+ }
106
+
107
+ function easeInElastic (t: number, b: number, c: number, d: number): number {
108
+ var s: number = 1.70158;
109
+ var p: number = 0;
110
+ var a: number = c;
111
+ if (t == 0) return b;
112
+ if ((t /= d) == 1) return b + c;
113
+ if (!p) p = d * .3;
114
+ if (a < Math.abs(c)) {
115
+ a = c;
116
+ var s = p / 4;
117
+ }
118
+ else var s = p / (2 * Math.PI) * Math.asin(c / a);
119
+ return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
120
+ }
121
+
122
+ function easeOutElastic (t: number, b: number, c: number, d: number): number {
123
+ var s: number = 1.70158;
124
+ var p: number = 0;
125
+ var a: number = c;
126
+ if (t == 0) return b;
127
+ if ((t /= d) == 1) return b + c;
128
+ if (!p) p = d * .3;
129
+ if (a < Math.abs(c)) {
130
+ a = c;
131
+ var s = p / 4;
132
+ }
133
+ else var s = p / (2 * Math.PI) * Math.asin(c / a);
134
+ return a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b;
135
+ }
136
+
137
+ function easeInOutElastic (t: number, b: number, c: number, d: number): number {
138
+ var s: number = 1.70158;
139
+ var p: number = 0;
140
+ var a: number = c;
141
+ if (t == 0) return b;
142
+ if ((t /= d / 2) == 2) return b + c;
143
+ if (!p) p = d * (.3 * 1.5);
144
+ if (a < Math.abs(c)) {
145
+ a = c;
146
+ var s = p / 4;
147
+ }
148
+ else var s = p / (2 * Math.PI) * Math.asin(c / a);
149
+ if (t < 1) return -.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
150
+ return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * .5 + c + b;
151
+ }
152
+
153
+ function easeInBack (t: number, b: number, c: number, d: number): number {
154
+ var s: number = 1.70158;
155
+ if (s == undefined) s = 1.70158;
156
+ return c * (t /= d) * t * ((s + 1) * t - s) + b;
157
+ }
158
+
159
+ function easeOutBack (t: number, b: number, c: number, d: number): number {
160
+ var s: number = 1.70158;
161
+ if (s == undefined) s = 1.70158;
162
+ return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
163
+ }
164
+
165
+ function easeInOutBack (t: number, b: number, c: number, d: number): number {
166
+ var s: number = 1.70158;
167
+ if (s == undefined) s = 1.70158;
168
+ if ((t /= d / 2) < 1) return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b;
169
+ return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;
170
+ }
171
+
172
+ export {
173
+ easeLinear,
174
+ easeInQuad,
175
+ easeOutQuad,
176
+ easeInOutQuad,
177
+ easeInSine,
178
+ easeOutSine,
179
+ easeInOutSine,
180
+ easeInExpo,
181
+ easeOutExpo,
182
+ easeInOutExpo,
183
+ easeInCirc,
184
+ easeOutCirc,
185
+ easeInOutCirc,
186
+ easeInCubic,
187
+ easeOutCubic,
188
+ easeInOutCubic,
189
+ easeInQuart,
190
+ easeOutQuart,
191
+ easeInOutQuart,
192
+ easeInQuint,
193
+ easeOutQuint,
194
+ easeInOutQuint,
195
+ easeInElastic,
196
+ easeOutElastic,
197
+ easeInOutElastic,
198
+ easeInBack,
199
+ easeOutBack,
200
+ easeInOutBack
201
+ };
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Determine whether an extractor is included
3
+ * @param {String} str => input string. such as 'a[1], b[2]', '{a[1]}'
4
+ * @returns {Boolean}
5
+ */
6
+ function extractorExist(str: string | undefined | null): boolean {
7
+ if (typeof str === 'undefined' || str === null || str === '') {
8
+ return false;
9
+ }
10
+
11
+ let res: boolean = false;
12
+ if ( str?.match(/(\[.*?\])/gi) ) {
13
+ res = true;
14
+ }
15
+ return res;
16
+ }
17
+
18
+ /**
19
+ * Extract the contents of square brackets
20
+ * @param {String} str => input string. such as '[1,2] [f][c]'
21
+ * @param {Boolean} commaSeparated => flag to determine if the result should be comma separated or not
22
+ * @returns {Array<string>|string} such as: ['1,2','f','c']
23
+ */
24
+ function extractContentsOfBrackets(str: string, commaSeparated: boolean = false): Array<string> | string {
25
+ if (typeof str === 'undefined' || str === null || str === '') {
26
+ return !commaSeparated ? [] : '';
27
+ }
28
+
29
+ const res = str.match(/[^\[]+(?=(\[ \])|\])/g);
30
+ if (commaSeparated) {
31
+ return res === null ? '' : res.join(',').replace(/\,+$/, '');
32
+ } else {
33
+ return res === null ? '' : res;
34
+ }
35
+
36
+ }
37
+
38
+ /**
39
+ * Extract the contents of curly braces
40
+ * @param {String} str => input string. such as '{1,2} {f}{c}'
41
+ * @param {Boolean} commaSeparated => flag to determine if the result should be comma separated or not
42
+ * @returns {Array<string>|string} such as: ['1,2','f','c']
43
+ */
44
+ function extractContentsOfBraces(str: string, commaSeparated: boolean = false): Array<string> | string {
45
+ if (typeof str === 'undefined' || str === null || str === '') {
46
+ return !commaSeparated ? [] : '';
47
+ }
48
+
49
+ const res = str.match(/[^\{]+(?=(\{ \})|\})/g);
50
+ if (commaSeparated) {
51
+ return res === null ? '' : res.join(',').replace(/\,+$/, '');
52
+ } else {
53
+ return res === null ? '' : res;
54
+ }
55
+
56
+ }
57
+
58
+ /**
59
+ * Extract the contents of parentheses
60
+ * @param {String} str => input string. such as '(1,2) (f)(c)'
61
+ * @param {Boolean} commaSeparated => flag to determine if the result should be comma separated or not
62
+ * @returns {Array<string>|string} such as: ['1,2','f','c']
63
+ */
64
+ function extractContentsOfParentheses(str: string, commaSeparated: boolean = false): Array<string> | string {
65
+ if (typeof str === 'undefined' || str === null || str === '') {
66
+ return !commaSeparated ? [] : '';
67
+ }
68
+
69
+ const res = str.match(/[^\(]+(?=(\( \))|\))/g);
70
+ if (commaSeparated) {
71
+ return res === null ? '' : res.join(',').replace(/\,+$/, '');
72
+ } else {
73
+ return res === null ? '' : res;
74
+ }
75
+
76
+ }
77
+
78
+
79
+ /**
80
+ * Parses a braces-separated string of `{label[value]}` pairs into an array of objects.
81
+ *
82
+ * Example:
83
+ * Input: "{Poor[c]}{Sub-option 4[c-2]}{Empty[]}"
84
+ * Input: "{{Poor[c]}{Sub-option 4[c-2]}{Empty[]}[]}"
85
+ *
86
+ * Output: [
87
+ * { label: "Poor", value: "c" },
88
+ * { label: "Sub-option 4", value: "c-2" },
89
+ * { label: "Empty", value: "" }
90
+ * ]
91
+ *
92
+ * @param {string} str - The input string containing one or more `{label[value]}` segments.
93
+ * @returns {Array<{label: string, value: string}>} - An array of extracted label-value objects.
94
+ */
95
+ function extractContentsOfMixedCharactersWithBraces(str: string): {
96
+ label: string;
97
+ value: string | number;
98
+ }[] {
99
+ // Fix the extra '{' at the beginning
100
+ const cleaned = str.replace(/^{{/, '{');
101
+
102
+ // Remove empty {} or {[]} tail
103
+ const trimmed = cleaned.replace(/\{\[\]\}$/, '');
104
+
105
+ // The match is like {label[value]}
106
+ const pattern = /\{(.*?)\[(.*?)\]\}/g;
107
+ const matches = Array.from(trimmed.matchAll(pattern));
108
+
109
+ return matches.map(match => ({
110
+ label: match[1],
111
+ value: match[2]
112
+ }));
113
+ }
114
+
115
+
116
+
117
+
118
+ /**
119
+ * Parses a comma-separated string of `label[value]` pairs into an array of objects.
120
+ *
121
+ * Example:
122
+ * Input: "Poor[c],Sub-option 4[c-2],Empty[]"
123
+ * Output: [
124
+ * { label: "Poor", value: "c" },
125
+ * { label: "Sub-option 4", value: "c-2" },
126
+ * { label: "Empty", value: "" }
127
+ * ]
128
+ *
129
+ * @param {string} str - A string containing label-value pairs in the format `label[value]`, separated by commas.
130
+ * @returns {Array<{ label: string, value: string }>} - An array of parsed objects.
131
+ */
132
+ function extractContentsOfMixedCharactersWithComma(str: string): {
133
+ label: string;
134
+ value: string | number;
135
+ }[] {
136
+ return str
137
+ .split(",")
138
+ .map(item => item.trim())
139
+ .map(item => {
140
+ const match = item.match(/^(.*?)\[(.*?)\]$/);
141
+ if (match) {
142
+ return {
143
+ label: match[1],
144
+ value: match[2]
145
+ };
146
+ }
147
+ return null;
148
+ })
149
+ .filter(Boolean) as { label: string; value: string | number }[];
150
+ }
151
+
152
+
153
+ export {
154
+ extractorExist,
155
+ extractContentsOfBrackets,
156
+ extractContentsOfBraces,
157
+ extractContentsOfParentheses,
158
+ extractContentsOfMixedCharactersWithBraces,
159
+ extractContentsOfMixedCharactersWithComma
160
+ }
@@ -0,0 +1,116 @@
1
+ /**
2
+ * String formatting utility functions
3
+ */
4
+
5
+ /**
6
+ * Remove all special characters except space from a string
7
+ * @param {string} input - The input string to process
8
+ * @returns {string} The processed string
9
+ */
10
+ function rmSpec(input: string): string {
11
+ return input?.replace(/[^a-zA-Z0-9 \u4E00-\u9FFF]/g, "");
12
+ }
13
+
14
+ /**
15
+ * Allow only numbers and letters in a string
16
+ * @param {string} input - The input string to process
17
+ * @returns {string} The processed string
18
+ */
19
+ function onlyNumAndLetter(input: string): string {
20
+ return input?.replace(/[^a-zA-Z0-9 ]/g, "");
21
+ }
22
+
23
+ /**
24
+ * Remove all spaces including those in the middle
25
+ * @param {string} input - The input string to process
26
+ * @returns {string} The processed string
27
+ */
28
+ function rmAllSpace(input: string): string {
29
+ return input?.replace(/\s/g, "");
30
+ }
31
+
32
+ /**
33
+ * Remove whitespace from both sides of a string
34
+ * @param {string} input - The input string to process
35
+ * @returns {string} The processed string
36
+ */
37
+ function trimAll(input: string): string {
38
+ return input?.replace(/(^\s+)|(\s+$)/g, "");
39
+ }
40
+
41
+ /**
42
+ * Replace multiple spaces with a single space
43
+ * @param {string} input - The input string to process
44
+ * @returns {string} The processed string
45
+ */
46
+ function multiSpacesToSingle(input: string): string {
47
+ return input?.replace(/\s+(\W)/g, ' ');
48
+ }
49
+
50
+ /**
51
+ * Convert HTML text to plain text (Remove html tag content)
52
+ * @param {string} input - The input string to process
53
+ * @returns {string} The processed string
54
+ */
55
+ /*
56
+ Examples:
57
+ console.log(htmlToPlain("<p>Hello <b>World</b></p>")); // Hello World
58
+ */
59
+ function htmlToPlain(input: string): string {
60
+ return input?.replace(/(<([^>]+)>)/ig, '');
61
+ }
62
+
63
+ /**
64
+ * Strip HTML tags and their content
65
+ * !!!Important: It will remove nested tags
66
+ * @param {string} input - The input string to process
67
+ * @returns {string} The processed string
68
+ */
69
+ /*
70
+ Examples:
71
+ console.log(stripTagsAndContent("<p>Hello <b>World</b></p>")); // World
72
+ console.log(stripTagsAndContent("Hello <b>World</b>")); // Hello
73
+ */
74
+ function stripTagsAndContent(input: string): string {
75
+ return input?.replace(/<\/?[^>]+(>|$)(.*?)<\/?[^>]+(>|$)/ig, '');
76
+ }
77
+
78
+ /**
79
+ * Remove first and last slash from a URL
80
+ * @param {string} input - The input URL to process
81
+ * @returns {string} The processed URL
82
+ */
83
+ function removeFirstLastSlash(input: string): string {
84
+ return input?.replace(/^\/|\/$/g, '');
85
+ }
86
+
87
+ /**
88
+ * Remove trailing slash from a URL
89
+ * @param {string} input - The input URL to process
90
+ * @returns {string} The processed URL
91
+ */
92
+ function removeTrailingSlash(input: string): string {
93
+ return input?.replace(/\/+$/, '');
94
+ }
95
+
96
+ /**
97
+ * Remove first slash from a URL
98
+ * @param {string} input - The input URL to process
99
+ * @returns {string} The processed URL
100
+ */
101
+ function removeFirstSlash(input: string): string {
102
+ return input?.replace(/\//, '');
103
+ }
104
+
105
+ export {
106
+ rmSpec,
107
+ onlyNumAndLetter,
108
+ rmAllSpace,
109
+ trimAll,
110
+ multiSpacesToSingle,
111
+ htmlToPlain,
112
+ stripTagsAndContent,
113
+ removeFirstLastSlash,
114
+ removeTrailingSlash,
115
+ removeFirstSlash
116
+ };