funda-ui 1.0.272

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 (246) hide show
  1. package/BackToTop/index.css +34 -0
  2. package/BackToTop/index.d.ts +11 -0
  3. package/BackToTop/index.js +458 -0
  4. package/CascadingSelect/index.css +159 -0
  5. package/CascadingSelect/index.d.ts +56 -0
  6. package/CascadingSelect/index.js +958 -0
  7. package/CascadingSelectE2E/index.css +159 -0
  8. package/CascadingSelectE2E/index.d.ts +60 -0
  9. package/CascadingSelectE2E/index.js +1126 -0
  10. package/Checkbox/index.d.ts +30 -0
  11. package/Checkbox/index.js +226 -0
  12. package/ColorPicker/index.css +38 -0
  13. package/ColorPicker/index.d.ts +27 -0
  14. package/ColorPicker/index.js +246 -0
  15. package/DigitalClock/index.d.ts +7 -0
  16. package/DigitalClock/index.js +208 -0
  17. package/DropdownMenu/index.css +127 -0
  18. package/DropdownMenu/index.d.ts +37 -0
  19. package/DropdownMenu/index.js +237 -0
  20. package/DynamicFields/index.d.ts +26 -0
  21. package/DynamicFields/index.js +412 -0
  22. package/File/index.d.ts +36 -0
  23. package/File/index.js +473 -0
  24. package/Input/index.d.ts +42 -0
  25. package/Input/index.js +286 -0
  26. package/LiveSearch/index.d.ts +37 -0
  27. package/LiveSearch/index.js +1195 -0
  28. package/ModalDialog/index.d.ts +60 -0
  29. package/ModalDialog/index.js +725 -0
  30. package/ModeSwitch/index.d.ts +17 -0
  31. package/ModeSwitch/index.js +202 -0
  32. package/MultiFuncSelect/index.css +178 -0
  33. package/MultiFuncSelect/index.d.ts +67 -0
  34. package/MultiFuncSelect/index.js +1826 -0
  35. package/MultilevelDropdownMenu/index.css +35 -0
  36. package/MultilevelDropdownMenu/index.d.ts +25 -0
  37. package/MultilevelDropdownMenu/index.js +464 -0
  38. package/Pagination/index.d.ts +49 -0
  39. package/Pagination/index.js +341 -0
  40. package/README.md +108 -0
  41. package/Radio/index.d.ts +31 -0
  42. package/Radio/index.js +246 -0
  43. package/RangeSlider/index.css +149 -0
  44. package/RangeSlider/index.d.ts +21 -0
  45. package/RangeSlider/index.js +730 -0
  46. package/ScrollReveal/index.css +23 -0
  47. package/ScrollReveal/index.d.ts +21 -0
  48. package/ScrollReveal/index.js +216 -0
  49. package/Scrollbar/index.css +168 -0
  50. package/Scrollbar/index.d.ts +15 -0
  51. package/Scrollbar/index.js +605 -0
  52. package/SearchBar/index.d.ts +32 -0
  53. package/SearchBar/index.js +246 -0
  54. package/Select/index.d.ts +34 -0
  55. package/Select/index.js +331 -0
  56. package/ShowMoreLess/index.css +23 -0
  57. package/ShowMoreLess/index.d.ts +30 -0
  58. package/ShowMoreLess/index.js +202 -0
  59. package/Switch/index.d.ts +29 -0
  60. package/Switch/index.js +211 -0
  61. package/Table/index.css +533 -0
  62. package/Table/index.d.ts +25 -0
  63. package/Table/index.js +2113 -0
  64. package/Tabs/index.d.ts +3 -0
  65. package/Tabs/index.js +323 -0
  66. package/TagInput/index.css +90 -0
  67. package/TagInput/index.d.ts +28 -0
  68. package/TagInput/index.js +370 -0
  69. package/Textarea/index.d.ts +30 -0
  70. package/Textarea/index.js +242 -0
  71. package/Toast/index.css +95 -0
  72. package/Toast/index.d.ts +35 -0
  73. package/Toast/index.js +340 -0
  74. package/Tooltip/index.css +240 -0
  75. package/Tooltip/index.d.ts +19 -0
  76. package/Tooltip/index.js +200 -0
  77. package/Tree/index.css +225 -0
  78. package/Tree/index.d.ts +37 -0
  79. package/Tree/index.js +1406 -0
  80. package/all.d.ts +33 -0
  81. package/all.js +35 -0
  82. package/lib/cjs/BackToTop/index.d.ts +11 -0
  83. package/lib/cjs/BackToTop/index.js +458 -0
  84. package/lib/cjs/CascadingSelect/index.d.ts +56 -0
  85. package/lib/cjs/CascadingSelect/index.js +958 -0
  86. package/lib/cjs/CascadingSelectE2E/index.d.ts +60 -0
  87. package/lib/cjs/CascadingSelectE2E/index.js +1126 -0
  88. package/lib/cjs/Checkbox/index.d.ts +30 -0
  89. package/lib/cjs/Checkbox/index.js +226 -0
  90. package/lib/cjs/ColorPicker/index.d.ts +27 -0
  91. package/lib/cjs/ColorPicker/index.js +246 -0
  92. package/lib/cjs/DigitalClock/index.d.ts +7 -0
  93. package/lib/cjs/DigitalClock/index.js +208 -0
  94. package/lib/cjs/DropdownMenu/index.d.ts +37 -0
  95. package/lib/cjs/DropdownMenu/index.js +237 -0
  96. package/lib/cjs/DynamicFields/index.d.ts +26 -0
  97. package/lib/cjs/DynamicFields/index.js +412 -0
  98. package/lib/cjs/File/index.d.ts +36 -0
  99. package/lib/cjs/File/index.js +473 -0
  100. package/lib/cjs/Input/index.d.ts +42 -0
  101. package/lib/cjs/Input/index.js +286 -0
  102. package/lib/cjs/LiveSearch/index.d.ts +37 -0
  103. package/lib/cjs/LiveSearch/index.js +1195 -0
  104. package/lib/cjs/ModalDialog/index.d.ts +60 -0
  105. package/lib/cjs/ModalDialog/index.js +725 -0
  106. package/lib/cjs/ModeSwitch/index.d.ts +17 -0
  107. package/lib/cjs/ModeSwitch/index.js +202 -0
  108. package/lib/cjs/MultiFuncSelect/index.d.ts +67 -0
  109. package/lib/cjs/MultiFuncSelect/index.js +1826 -0
  110. package/lib/cjs/MultilevelDropdownMenu/index.d.ts +25 -0
  111. package/lib/cjs/MultilevelDropdownMenu/index.js +464 -0
  112. package/lib/cjs/Pagination/index.d.ts +49 -0
  113. package/lib/cjs/Pagination/index.js +341 -0
  114. package/lib/cjs/Radio/index.d.ts +31 -0
  115. package/lib/cjs/Radio/index.js +246 -0
  116. package/lib/cjs/RangeSlider/index.d.ts +21 -0
  117. package/lib/cjs/RangeSlider/index.js +730 -0
  118. package/lib/cjs/ScrollReveal/index.d.ts +21 -0
  119. package/lib/cjs/ScrollReveal/index.js +216 -0
  120. package/lib/cjs/Scrollbar/index.d.ts +15 -0
  121. package/lib/cjs/Scrollbar/index.js +605 -0
  122. package/lib/cjs/SearchBar/index.d.ts +32 -0
  123. package/lib/cjs/SearchBar/index.js +246 -0
  124. package/lib/cjs/Select/index.d.ts +34 -0
  125. package/lib/cjs/Select/index.js +331 -0
  126. package/lib/cjs/ShowMoreLess/index.d.ts +30 -0
  127. package/lib/cjs/ShowMoreLess/index.js +202 -0
  128. package/lib/cjs/Switch/index.d.ts +29 -0
  129. package/lib/cjs/Switch/index.js +211 -0
  130. package/lib/cjs/Table/index.d.ts +25 -0
  131. package/lib/cjs/Table/index.js +2113 -0
  132. package/lib/cjs/Tabs/index.d.ts +3 -0
  133. package/lib/cjs/Tabs/index.js +323 -0
  134. package/lib/cjs/TagInput/index.d.ts +28 -0
  135. package/lib/cjs/TagInput/index.js +370 -0
  136. package/lib/cjs/Textarea/index.d.ts +30 -0
  137. package/lib/cjs/Textarea/index.js +242 -0
  138. package/lib/cjs/Toast/index.d.ts +35 -0
  139. package/lib/cjs/Toast/index.js +340 -0
  140. package/lib/cjs/Tooltip/index.d.ts +19 -0
  141. package/lib/cjs/Tooltip/index.js +200 -0
  142. package/lib/cjs/Tree/index.d.ts +37 -0
  143. package/lib/cjs/Tree/index.js +1406 -0
  144. package/lib/cjs/index.d.ts +33 -0
  145. package/lib/cjs/index.js +35 -0
  146. package/lib/css/BackToTop/index.css +34 -0
  147. package/lib/css/CascadingSelect/index.css +159 -0
  148. package/lib/css/CascadingSelectE2E/index.css +159 -0
  149. package/lib/css/ColorPicker/index.css +38 -0
  150. package/lib/css/DropdownMenu/index.css +127 -0
  151. package/lib/css/MultiFuncSelect/index.css +178 -0
  152. package/lib/css/MultilevelDropdownMenu/index.css +35 -0
  153. package/lib/css/RangeSlider/index.css +149 -0
  154. package/lib/css/ScrollReveal/index.css +23 -0
  155. package/lib/css/Scrollbar/index.css +168 -0
  156. package/lib/css/ShowMoreLess/index.css +23 -0
  157. package/lib/css/Table/index.css +533 -0
  158. package/lib/css/TagInput/index.css +90 -0
  159. package/lib/css/Toast/index.css +95 -0
  160. package/lib/css/Tooltip/index.css +240 -0
  161. package/lib/css/Tree/index.css +225 -0
  162. package/lib/esm/BackToTop/index.scss +47 -0
  163. package/lib/esm/BackToTop/index.tsx +182 -0
  164. package/lib/esm/BackToTop/utils/easing.js +200 -0
  165. package/lib/esm/BackToTop/utils/performance.js +52 -0
  166. package/lib/esm/CascadingSelect/Group.tsx +39 -0
  167. package/lib/esm/CascadingSelect/index.scss +214 -0
  168. package/lib/esm/CascadingSelect/index.tsx +922 -0
  169. package/lib/esm/CascadingSelect/utils/performance.js +52 -0
  170. package/lib/esm/CascadingSelectE2E/Group.tsx +39 -0
  171. package/lib/esm/CascadingSelectE2E/index.scss +214 -0
  172. package/lib/esm/CascadingSelectE2E/index.tsx +1091 -0
  173. package/lib/esm/CascadingSelectE2E/utils/performance.js +52 -0
  174. package/lib/esm/Checkbox/index.tsx +160 -0
  175. package/lib/esm/ColorPicker/index.scss +48 -0
  176. package/lib/esm/ColorPicker/index.tsx +187 -0
  177. package/lib/esm/DigitalClock/index.tsx +72 -0
  178. package/lib/esm/DigitalClock/utils/useInterval.js +43 -0
  179. package/lib/esm/DropdownMenu/Option.tsx +27 -0
  180. package/lib/esm/DropdownMenu/index.scss +180 -0
  181. package/lib/esm/DropdownMenu/index.tsx +148 -0
  182. package/lib/esm/DynamicFields/index.tsx +386 -0
  183. package/lib/esm/File/index.tsx +302 -0
  184. package/lib/esm/Input/index.tsx +233 -0
  185. package/lib/esm/LiveSearch/index.tsx +582 -0
  186. package/lib/esm/LiveSearch/utils/performance.js +52 -0
  187. package/lib/esm/LiveSearch/utils/useThrottle.js +36 -0
  188. package/lib/esm/ModalDialog/index.tsx +479 -0
  189. package/lib/esm/ModalDialog/plugins/BSL/bodyScrollLock.es6.js +262 -0
  190. package/lib/esm/ModalDialog/plugins/BSL/index.ts +2 -0
  191. package/lib/esm/ModeSwitch/index.tsx +82 -0
  192. package/lib/esm/MultiFuncSelect/index.scss +269 -0
  193. package/lib/esm/MultiFuncSelect/index.tsx +1597 -0
  194. package/lib/esm/MultiFuncSelect/utils/performance.js +52 -0
  195. package/lib/esm/MultiFuncSelect/utils/tree.js +103 -0
  196. package/lib/esm/MultiFuncSelect/utils/useThrottle.js +36 -0
  197. package/lib/esm/MultilevelDropdownMenu/MenuList.tsx +230 -0
  198. package/lib/esm/MultilevelDropdownMenu/index.scss +75 -0
  199. package/lib/esm/MultilevelDropdownMenu/index.tsx +71 -0
  200. package/lib/esm/MultilevelDropdownMenu/utils/dom.js +81 -0
  201. package/lib/esm/Pagination/index.tsx +230 -0
  202. package/lib/esm/Pagination/pagination-navigators.tsx +60 -0
  203. package/lib/esm/Radio/index.tsx +201 -0
  204. package/lib/esm/RangeSlider/index.scss +184 -0
  205. package/lib/esm/RangeSlider/index.tsx +223 -0
  206. package/lib/esm/ScrollReveal/index.scss +27 -0
  207. package/lib/esm/ScrollReveal/index.tsx +146 -0
  208. package/lib/esm/Scrollbar/index.scss +217 -0
  209. package/lib/esm/Scrollbar/index.tsx +497 -0
  210. package/lib/esm/Scrollbar/utils/performance.js +52 -0
  211. package/lib/esm/SearchBar/index.tsx +181 -0
  212. package/lib/esm/Select/index.tsx +276 -0
  213. package/lib/esm/ShowMoreLess/index.scss +27 -0
  214. package/lib/esm/ShowMoreLess/index.tsx +144 -0
  215. package/lib/esm/Switch/index.tsx +143 -0
  216. package/lib/esm/Table/TableColgroup.tsx +29 -0
  217. package/lib/esm/Table/TableField.tsx +40 -0
  218. package/lib/esm/Table/TableFieldRow.tsx +212 -0
  219. package/lib/esm/Table/TableHeaders.tsx +146 -0
  220. package/lib/esm/Table/TableRow.tsx +127 -0
  221. package/lib/esm/Table/TableSummaries.tsx +36 -0
  222. package/lib/esm/Table/index.scss +364 -0
  223. package/lib/esm/Table/index.tsx +576 -0
  224. package/lib/esm/Table/table-utils.ts +65 -0
  225. package/lib/esm/Table/utils/dom.js +81 -0
  226. package/lib/esm/Table/utils/performance.js +52 -0
  227. package/lib/esm/Tabs/TabList.tsx +42 -0
  228. package/lib/esm/Tabs/TabPanel.tsx +34 -0
  229. package/lib/esm/Tabs/Tabs.tsx +232 -0
  230. package/lib/esm/Tabs/index.tsx +3 -0
  231. package/lib/esm/TagInput/index.scss +125 -0
  232. package/lib/esm/TagInput/index.tsx +314 -0
  233. package/lib/esm/Textarea/index.tsx +178 -0
  234. package/lib/esm/Toast/Item.tsx +75 -0
  235. package/lib/esm/Toast/index.scss +120 -0
  236. package/lib/esm/Toast/index.tsx +249 -0
  237. package/lib/esm/Tooltip/index.scss +327 -0
  238. package/lib/esm/Tooltip/index.tsx +142 -0
  239. package/lib/esm/Tree/TreeList.tsx +503 -0
  240. package/lib/esm/Tree/index.scss +375 -0
  241. package/lib/esm/Tree/index.tsx +301 -0
  242. package/lib/esm/Tree/init-height.tsx +27 -0
  243. package/lib/esm/Tree/utils/convert-tree.js +29 -0
  244. package/lib/esm/Tree/utils/dom.js +81 -0
  245. package/lib/esm/index.js +31 -0
  246. package/package.json +40 -0
@@ -0,0 +1,200 @@
1
+
2
+ /*
3
+ * All easing functions
4
+ * @link: https://easings.net
5
+ * @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.)
6
+ * @param {Number} b - beginning value (The starting point of the animation. Usually it's a static value, you can start at 0 for example.)
7
+ * @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.)
8
+ * @param {Number} d - duration (Amount of time the animation will take. Usually a static value aswell.)
9
+ * @return {Number}
10
+ */
11
+ function easeLinear (t, b, c, d) {
12
+ return c * t / d + b;
13
+ }
14
+
15
+ function easeInQuad (t, b, c, d) {
16
+ return c * (t /= d) * t + b;
17
+ }
18
+
19
+ function easeOutQuad (t, b, c, d) {
20
+ return -c * (t /= d) * (t - 2) + b;
21
+ }
22
+
23
+ function easeInOutQuad (t, b, c, d) {
24
+ if ((t /= d / 2) < 1) return c / 2 * t * t + b;
25
+ return -c / 2 * ((--t) * (t - 2) - 1) + b;
26
+ }
27
+
28
+ function easeInSine (t, b, c, d) {
29
+ return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;
30
+ }
31
+
32
+ function easeOutSine (t, b, c, d) {
33
+ return c * Math.sin(t / d * (Math.PI / 2)) + b;
34
+ }
35
+
36
+ function easeInOutSine (t, b, c, d) {
37
+ return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;
38
+ }
39
+
40
+ function easeInExpo (t, b, c, d) {
41
+ return (t == 0) ? b : c * Math.pow(2, 10 * (t / d - 1)) + b;
42
+ }
43
+
44
+ function easeOutExpo (t, b, c, d) {
45
+ return (t == d) ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;
46
+ }
47
+
48
+ function easeInOutExpo (t, b, c, d) {
49
+ if (t == 0) return b;
50
+ if (t == d) return b + c;
51
+ if ((t /= d / 2) < 1) return c / 2 * Math.pow(2, 10 * (t - 1)) + b;
52
+ return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;
53
+ }
54
+
55
+ function easeInCirc (t, b, c, d) {
56
+ return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;
57
+ }
58
+
59
+ function easeOutCirc (t, b, c, d) {
60
+ return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;
61
+ }
62
+
63
+ function easeInOutCirc (t, b, c, d) {
64
+ if ((t /= d / 2) < 1) return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;
65
+ return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;
66
+ }
67
+
68
+ function easeInCubic (t, b, c, d) {
69
+ return c * (t /= d) * t * t + b;
70
+ }
71
+
72
+ function easeOutCubic (t, b, c, d) {
73
+ return c * ((t = t / d - 1) * t * t + 1) + b;
74
+ }
75
+
76
+ function easeInOutCubic (t, b, c, d) {
77
+ if ((t /= d / 2) < 1) return c / 2 * t * t * t + b;
78
+ return c / 2 * ((t -= 2) * t * t + 2) + b;
79
+ }
80
+
81
+ function easeInQuart (t, b, c, d) {
82
+ return c * (t /= d) * t * t * t + b;
83
+ }
84
+
85
+ function easeOutQuart (t, b, c, d) {
86
+ return -c * ((t = t / d - 1) * t * t * t - 1) + b;
87
+ }
88
+
89
+ function easeInOutQuart (t, b, c, d) {
90
+ if ((t /= d / 2) < 1) return c / 2 * t * t * t * t + b;
91
+ return -c / 2 * ((t -= 2) * t * t * t - 2) + b;
92
+ }
93
+
94
+ function easeInQuint (t, b, c, d) {
95
+ return c * (t /= d) * t * t * t * t + b;
96
+ }
97
+
98
+ function easeOutQuint (t, b, c, d) {
99
+ return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
100
+ }
101
+
102
+
103
+ function easeInOutQuint (t, b, c, d) {
104
+ if ((t /= d / 2) < 1) return c / 2 * t * t * t * t * t + b;
105
+ return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;
106
+ }
107
+
108
+ function easeInElastic (t, b, c, d) {
109
+ var s = 1.70158;
110
+ var p = 0;
111
+ var a = c;
112
+ if (t == 0) return b;
113
+ if ((t /= d) == 1) return b + c;
114
+ if (!p) p = d * .3;
115
+ if (a < Math.abs(c)) {
116
+ a = c;
117
+ var s = p / 4;
118
+ }
119
+ else var s = p / (2 * Math.PI) * Math.asin(c / a);
120
+ return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
121
+ }
122
+
123
+ function easeOutElastic (t, b, c, d) {
124
+ var s = 1.70158;
125
+ var p = 0;
126
+ var a = c;
127
+ if (t == 0) return b;
128
+ if ((t /= d) == 1) return b + c;
129
+ if (!p) p = d * .3;
130
+ if (a < Math.abs(c)) {
131
+ a = c;
132
+ var s = p / 4;
133
+ }
134
+ else var s = p / (2 * Math.PI) * Math.asin(c / a);
135
+ return a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b;
136
+ }
137
+
138
+ function easeInOutElastic (t, b, c, d) {
139
+ var s = 1.70158;
140
+ var p = 0;
141
+ var a = c;
142
+ if (t == 0) return b;
143
+ if ((t /= d / 2) == 2) return b + c;
144
+ if (!p) p = d * (.3 * 1.5);
145
+ if (a < Math.abs(c)) {
146
+ a = c;
147
+ var s = p / 4;
148
+ }
149
+ else var s = p / (2 * Math.PI) * Math.asin(c / a);
150
+ if (t < 1) return -.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
151
+ return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * .5 + c + b;
152
+ }
153
+
154
+ function easeInBack (t, b, c, d) {
155
+ if (s == undefined) s = 1.70158;
156
+ return c * (t /= d) * t * ((s + 1) * t - s) + b;
157
+ }
158
+
159
+ function easeOutBack (t, b, c, d) {
160
+ if (s == undefined) s = 1.70158;
161
+ return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
162
+ }
163
+
164
+ function easeInOutBack (t, b, c, d) {
165
+ if (s == undefined) s = 1.70158;
166
+ if ((t /= d / 2) < 1) return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b;
167
+ return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;
168
+ }
169
+
170
+
171
+ module.exports = {
172
+ easeLinear,
173
+ easeInQuad,
174
+ easeOutQuad,
175
+ easeInOutQuad,
176
+ easeInSine,
177
+ easeOutSine,
178
+ easeInOutSine,
179
+ easeInExpo,
180
+ easeOutExpo,
181
+ easeInOutExpo,
182
+ easeInCirc,
183
+ easeOutCirc,
184
+ easeInOutCirc,
185
+ easeInCubic,
186
+ easeOutCubic,
187
+ easeInOutCubic,
188
+ easeInQuart,
189
+ easeOutQuart,
190
+ easeInOutQuart,
191
+ easeInQuint,
192
+ easeOutQuint,
193
+ easeInOutQuint,
194
+ easeInElastic,
195
+ easeOutElastic,
196
+ easeInOutElastic,
197
+ easeInBack,
198
+ easeOutBack,
199
+ easeInOutBack
200
+ };
@@ -0,0 +1,52 @@
1
+
2
+ /*
3
+ * Debounce
4
+ *
5
+ * @param {Function} fn - A function to be executed within the time limit.
6
+ * @param {Number} limit - Waiting time.
7
+ * @return {Function} - Returns a new function.
8
+ */
9
+ function debounce( fn, limit = 300 ) {
10
+ let timer;
11
+ return function() {
12
+
13
+ //Every time this returned function is called, the timer is cleared to ensure that fn is not executed
14
+ clearTimeout(timer);
15
+
16
+ // When the returned function is called for the last time (that is the user stops a continuous operation)
17
+ // Execute fn after another delay milliseconds
18
+ timer = setTimeout(function() {
19
+ fn.apply(this, arguments);
20
+ }, limit);
21
+ }
22
+ }
23
+
24
+
25
+
26
+
27
+
28
+ /*
29
+ * Throttle
30
+ *
31
+ * @param {Function} fn - A function to be executed within the time limit.
32
+ * @param {Number} limit - Waiting time.
33
+ * @return {Function} - Returns a new function.
34
+ */
35
+ function throttle( fn, limit = 300 ) {
36
+ let waiting = false;
37
+ return function () {
38
+ if (!waiting) {
39
+ fn.apply(this, arguments);
40
+ waiting = true;
41
+ setTimeout(function () {
42
+ waiting = false;
43
+ }, limit);
44
+ }
45
+ }
46
+ }
47
+
48
+
49
+ module.exports = {
50
+ debounce,
51
+ throttle
52
+ }
@@ -0,0 +1,39 @@
1
+ import React from 'react';
2
+
3
+ type GroupFnType = (arg1: any, arg2: any, arg3: number) => void;
4
+
5
+ type GroupProps = {
6
+ level: number;
7
+ columnTitle: any[];
8
+ data?: any[any];
9
+ selectEv?: React.MouseEventHandler<HTMLElement> | GroupFnType | null;
10
+ };
11
+
12
+ export default function Group(props: GroupProps) {
13
+
14
+ const {
15
+ level,
16
+ columnTitle,
17
+ data,
18
+ selectEv
19
+ } = props;
20
+
21
+ return (
22
+ <>
23
+ {data.map((item: any, index: number) => {
24
+ if ( item.id.toString().indexOf('$EMPTY_ID_') < 0 ) {
25
+ return <div key={index} data-index={index} data-value={item.id} className={`cascading-select__opt ${item.current ? 'active' : ''}`} onClick={(e) => selectEv!(e, item, index)} dangerouslySetInnerHTML={{
26
+ __html: item.name
27
+ }}></div>
28
+ } else {
29
+ return columnTitle[level] === '' ? null : <h3 key={index} data-index={index} data-value={item.id} onClick={(e) => selectEv!(e, item, index)} className={`cascading-select__opt-header ${item.current ? 'active' : ''}`} dangerouslySetInnerHTML={{
30
+ __html: columnTitle[level]
31
+ }}></h3>
32
+ }
33
+
34
+ })}
35
+ </>
36
+ )
37
+ }
38
+
39
+
@@ -0,0 +1,214 @@
1
+ /* ======================================================
2
+ <!-- Cascading Select -->
3
+ /* ====================================================== */
4
+
5
+ .cascading-select__wrapper {
6
+
7
+ --cascading-select-opt-header-border-color: rgba(1, 1, 1, .2);
8
+ --cascading-select-opt-hover-bg: #f7f7f7;
9
+ --cascading-select-opt-active-bg: #eeeeee;
10
+
11
+ --cascading-select-items-box-shadow: 0 5px 15px 5px rgba(80, 102, 224, 0.08);
12
+ --cascading-select-items-bg: #fff;
13
+ --cascading-select-items-color: inherit;
14
+ --cascading-select-items-border-color: rgba(0, 0, 0, .1);
15
+ --cascading-select-items-li-border-color: #eee;
16
+
17
+ --cascading-select-arrow-fill: #a5a5a5;
18
+ --cascading-select-result-arrow-fill: #a5a5a5;
19
+
20
+ --cascading-select-result-font-size: 1rem;
21
+ --cascading-select-result-padding-x: 0.75rem;
22
+ --cascading-select-result-padding-y: 0.375rem;
23
+
24
+ --cascading-select-opt-font-size: 0.875rem;
25
+ --cascading-select-opt-padding-x: .4rem;
26
+ --cascading-select-opt-padding-y: .3rem;
27
+
28
+
29
+ .cascading-select__result {
30
+ position: absolute;
31
+ left: auto;
32
+ z-index: 1;
33
+ top: 0;
34
+ padding: var(--cascading-select-result-padding-y) var(--cascading-select-result-padding-x);
35
+ font-size: var(--cascading-select-result-font-size);
36
+ font-weight: 400;
37
+ line-height: 1.5;
38
+ color: inherit;
39
+
40
+ div {
41
+ display: inline;
42
+ }
43
+
44
+ span {
45
+ padding: 3px;
46
+ }
47
+
48
+ svg {
49
+ margin: 0 0.3rem;
50
+
51
+ path {
52
+ fill: var(--cascading-select-result-arrow-fill);
53
+ }
54
+
55
+ }
56
+
57
+ }
58
+
59
+
60
+ .cascading-select__closemask {
61
+ position: absolute;
62
+ z-index: 1;
63
+ top: 0;
64
+ left: 0;
65
+ width: 100%;
66
+ height: 100%;
67
+ background: rgba(0, 0, 0, 0);
68
+ user-select: none;
69
+ }
70
+
71
+ .cascading-select__val {
72
+ position: relative;
73
+
74
+
75
+ input {
76
+ cursor: pointer;
77
+ color: transparent !important;
78
+
79
+ &:focus {
80
+ color: transparent !important;
81
+ }
82
+ }
83
+
84
+ .arrow {
85
+ position: absolute;
86
+ top: 0;
87
+ margin-top: .3rem;
88
+ right: .5rem;
89
+
90
+ svg {
91
+ .arrow-fill-g {
92
+ fill: var(--cascading-select-arrow-fill);
93
+ }
94
+ }
95
+ }
96
+ }
97
+
98
+ .cascading-select {
99
+ display: flex;
100
+ align-items: center;
101
+ position: relative;
102
+ z-index: 1;
103
+
104
+ ul,
105
+ li {
106
+ list-style: none;
107
+ margin: 0;
108
+ padding: 0;
109
+ }
110
+
111
+
112
+
113
+ .cascading-select__trigger {
114
+ position: relative;
115
+ z-index: 0;
116
+ }
117
+
118
+ .cascading-select__items {
119
+ box-shadow: var(--cascading-select-items-box-shadow);
120
+ position: absolute;
121
+ left: auto;
122
+ max-height: 350px;
123
+ border: 1px solid var(--cascading-select-items-border-color);
124
+ background: var(--cascading-select-items-bg);
125
+ padding: 10px;
126
+ overflow-y: auto;
127
+ box-sizing: border-box;
128
+ z-index: 1;
129
+ top: 2.3rem;
130
+ border-radius: 5px;
131
+ width: max-content;
132
+ /* required -> the content will not wrap at all even if it causes overflows*/
133
+ color: var(--cascading-select-items-color);
134
+
135
+ &.bottom-0 {
136
+ top: auto;
137
+ }
138
+
139
+
140
+ .cascading-select__close {
141
+ svg {
142
+ opacity: .4;
143
+ }
144
+ }
145
+
146
+ .cascading-select__close:hover {
147
+ svg {
148
+ transition: .2s ease-out;
149
+ opacity: .7;
150
+ }
151
+ }
152
+
153
+ /* each item */
154
+ ul {
155
+ transition: .2s ease-out;
156
+ min-width: 8px;
157
+ min-height: 9px;
158
+
159
+ >li {
160
+ position: relative;
161
+ cursor: pointer;
162
+ float: left;
163
+ padding: 0 10px;
164
+ margin-right: 15px;
165
+ border-right: 1px dotted var(--cascading-select-items-li-border-color);
166
+ transition: .2s ease-out;
167
+
168
+ }
169
+
170
+ >li:last-child {
171
+ margin-right: 0;
172
+ border-right: none;
173
+ }
174
+ }
175
+
176
+ }
177
+
178
+
179
+ .cascading-select__opt {
180
+ padding: var(--cascading-select-opt-padding-y) var(--cascading-select-opt-padding-x);
181
+ font-size: var(--cascading-select-opt-font-size);
182
+ border-radius: 2px;
183
+
184
+ &:hover {
185
+ background: var(--cascading-select-opt-hover-bg);
186
+ }
187
+
188
+ &.active {
189
+ background: var(--cascading-select-opt-active-bg);
190
+ }
191
+ }
192
+
193
+ .cascading-select__opt-header {
194
+ padding: var(--cascading-select-opt-padding-y) var(--cascading-select-opt-padding-x);
195
+ font-size: var(--cascading-select-opt-font-size);
196
+ opacity: .5;
197
+ border-bottom: 1px dotted var(--cascading-select-opt-header-border-color);
198
+ border-radius: 2px;
199
+
200
+ &:hover {
201
+ background: var(--cascading-select-opt-hover-bg);
202
+ }
203
+
204
+ &.active {
205
+ background: var(--cascading-select-opt-active-bg);
206
+ }
207
+ }
208
+
209
+
210
+
211
+ }
212
+
213
+
214
+ }