@douyinfe/semi-foundation 2.28.0-beta.0 → 2.28.0

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 (842) hide show
  1. package/lib/cjs/anchor/constants.d.ts +11 -0
  2. package/lib/cjs/anchor/constants.js +21 -0
  3. package/lib/cjs/anchor/foundation.d.ts +40 -0
  4. package/lib/cjs/anchor/foundation.js +263 -0
  5. package/lib/cjs/anchor/linkFoundation.d.ts +14 -0
  6. package/lib/cjs/anchor/linkFoundation.js +45 -0
  7. package/lib/cjs/autoComplete/constants.d.ts +12 -0
  8. package/lib/cjs/autoComplete/constants.js +24 -0
  9. package/lib/cjs/autoComplete/foundation.d.ts +66 -0
  10. package/lib/cjs/autoComplete/foundation.js +518 -0
  11. package/lib/cjs/autoComplete/optionFoundation.d.ts +21 -0
  12. package/lib/cjs/autoComplete/optionFoundation.js +37 -0
  13. package/lib/cjs/avatar/constants.d.ts +10 -0
  14. package/lib/cjs/avatar/constants.js +21 -0
  15. package/lib/cjs/avatar/foundation.d.ts +17 -0
  16. package/lib/cjs/avatar/foundation.js +64 -0
  17. package/lib/cjs/backtop/constants.d.ts +5 -0
  18. package/lib/cjs/backtop/constants.js +15 -0
  19. package/lib/cjs/backtop/foundation.d.ts +21 -0
  20. package/lib/cjs/backtop/foundation.js +109 -0
  21. package/lib/cjs/badge/constants.d.ts +10 -0
  22. package/lib/cjs/badge/constants.js +21 -0
  23. package/lib/cjs/banner/constants.d.ts +7 -0
  24. package/lib/cjs/banner/constants.js +17 -0
  25. package/lib/cjs/banner/foundation.d.ts +9 -0
  26. package/lib/cjs/banner/foundation.js +25 -0
  27. package/lib/cjs/base/constants.d.ts +3 -0
  28. package/lib/cjs/base/constants.js +18 -0
  29. package/lib/cjs/base/env.d.ts +1 -0
  30. package/lib/cjs/base/env.js +8 -0
  31. package/lib/cjs/base/foundation.d.ts +62 -0
  32. package/lib/cjs/base/foundation.js +157 -0
  33. package/lib/cjs/base/index.d.ts +5 -0
  34. package/lib/cjs/base/index.js +15 -0
  35. package/lib/cjs/breadcrumb/constants.d.ts +7 -0
  36. package/lib/cjs/breadcrumb/constants.js +17 -0
  37. package/lib/cjs/breadcrumb/foundation.d.ts +28 -0
  38. package/lib/cjs/breadcrumb/foundation.js +57 -0
  39. package/lib/cjs/breadcrumb/itemFoundation.d.ts +22 -0
  40. package/lib/cjs/breadcrumb/itemFoundation.js +26 -0
  41. package/lib/cjs/button/constants.d.ts +14 -0
  42. package/lib/cjs/button/constants.js +25 -0
  43. package/lib/cjs/calendar/constants.d.ts +7 -0
  44. package/lib/cjs/calendar/constants.js +17 -0
  45. package/lib/cjs/calendar/eventUtil.d.ts +94 -0
  46. package/lib/cjs/calendar/eventUtil.js +409 -0
  47. package/lib/cjs/calendar/foundation.d.ts +100 -0
  48. package/lib/cjs/calendar/foundation.js +467 -0
  49. package/lib/cjs/card/constants.d.ts +8 -0
  50. package/lib/cjs/card/constants.js +18 -0
  51. package/lib/cjs/carousel/constants.d.ts +27 -0
  52. package/lib/cjs/carousel/constants.js +38 -0
  53. package/lib/cjs/carousel/foundation.d.ts +29 -0
  54. package/lib/cjs/carousel/foundation.js +215 -0
  55. package/lib/cjs/cascader/constants.d.ts +17 -0
  56. package/lib/cjs/cascader/constants.js +30 -0
  57. package/lib/cjs/cascader/foundation.d.ts +240 -0
  58. package/lib/cjs/cascader/foundation.js +1069 -0
  59. package/lib/cjs/cascader/util.d.ts +5 -0
  60. package/lib/cjs/cascader/util.js +110 -0
  61. package/lib/cjs/checkbox/checkboxFoundation.d.ts +58 -0
  62. package/lib/cjs/checkbox/checkboxFoundation.js +139 -0
  63. package/lib/cjs/checkbox/checkboxGroupFoundation.d.ts +17 -0
  64. package/lib/cjs/checkbox/checkboxGroupFoundation.js +94 -0
  65. package/lib/cjs/checkbox/constants.d.ts +27 -0
  66. package/lib/cjs/checkbox/constants.js +39 -0
  67. package/lib/cjs/collapse/constants.d.ts +7 -0
  68. package/lib/cjs/collapse/constants.js +17 -0
  69. package/lib/cjs/collapse/foundation.d.ts +27 -0
  70. package/lib/cjs/collapse/foundation.js +66 -0
  71. package/lib/cjs/collapsible/constants.d.ts +4 -0
  72. package/lib/cjs/collapsible/constants.js +13 -0
  73. package/lib/cjs/collapsible/foundation.d.ts +31 -0
  74. package/lib/cjs/collapsible/foundation.js +36 -0
  75. package/lib/cjs/datePicker/_utils/formatter.d.ts +14 -0
  76. package/lib/cjs/datePicker/_utils/formatter.js +63 -0
  77. package/lib/cjs/datePicker/_utils/getDayOfWeek.d.ts +11 -0
  78. package/lib/cjs/datePicker/_utils/getDayOfWeek.js +28 -0
  79. package/lib/cjs/datePicker/_utils/getDefaultFormatToken.d.ts +9 -0
  80. package/lib/cjs/datePicker/_utils/getDefaultFormatToken.js +26 -0
  81. package/lib/cjs/datePicker/_utils/getDefaultPickerDate.d.ts +15 -0
  82. package/lib/cjs/datePicker/_utils/getDefaultPickerDate.js +68 -0
  83. package/lib/cjs/datePicker/_utils/getFullDateOffset.d.ts +7 -0
  84. package/lib/cjs/datePicker/_utils/getFullDateOffset.js +32 -0
  85. package/lib/cjs/datePicker/_utils/getInsetInputFormatToken.d.ts +20 -0
  86. package/lib/cjs/datePicker/_utils/getInsetInputFormatToken.js +52 -0
  87. package/lib/cjs/datePicker/_utils/getInsetInputValueFromInsetInputStr.d.ts +31 -0
  88. package/lib/cjs/datePicker/_utils/getInsetInputValueFromInsetInputStr.js +73 -0
  89. package/lib/cjs/datePicker/_utils/getMonthTable.d.ts +12 -0
  90. package/lib/cjs/datePicker/_utils/getMonthTable.js +88 -0
  91. package/lib/cjs/datePicker/_utils/getMonthsInYear.d.ts +2 -0
  92. package/lib/cjs/datePicker/_utils/getMonthsInYear.js +13 -0
  93. package/lib/cjs/datePicker/_utils/getYears.d.ts +2 -0
  94. package/lib/cjs/datePicker/_utils/getYears.js +17 -0
  95. package/lib/cjs/datePicker/_utils/index.d.ts +13 -0
  96. package/lib/cjs/datePicker/_utils/index.js +103 -0
  97. package/lib/cjs/datePicker/_utils/isAfter.d.ts +1 -0
  98. package/lib/cjs/datePicker/_utils/isAfter.js +18 -0
  99. package/lib/cjs/datePicker/_utils/isBefore.d.ts +1 -0
  100. package/lib/cjs/datePicker/_utils/isBefore.js +18 -0
  101. package/lib/cjs/datePicker/_utils/isBetween.d.ts +11 -0
  102. package/lib/cjs/datePicker/_utils/isBetween.js +33 -0
  103. package/lib/cjs/datePicker/_utils/isDate.d.ts +1 -0
  104. package/lib/cjs/datePicker/_utils/isDate.js +10 -0
  105. package/lib/cjs/datePicker/_utils/isSameDay.d.ts +1 -0
  106. package/lib/cjs/datePicker/_utils/isSameDay.js +18 -0
  107. package/lib/cjs/datePicker/_utils/isTimestamp.d.ts +1 -0
  108. package/lib/cjs/datePicker/_utils/isTimestamp.js +16 -0
  109. package/lib/cjs/datePicker/_utils/isUnixTimestamp.d.ts +1 -0
  110. package/lib/cjs/datePicker/_utils/isUnixTimestamp.js +16 -0
  111. package/lib/cjs/datePicker/_utils/isValidDate.d.ts +1 -0
  112. package/lib/cjs/datePicker/_utils/isValidDate.js +10 -0
  113. package/lib/cjs/datePicker/_utils/isWithinInterval.d.ts +4 -0
  114. package/lib/cjs/datePicker/_utils/isWithinInterval.js +26 -0
  115. package/lib/cjs/datePicker/_utils/parser.d.ts +23 -0
  116. package/lib/cjs/datePicker/_utils/parser.js +68 -0
  117. package/lib/cjs/datePicker/constants.d.ts +53 -0
  118. package/lib/cjs/datePicker/constants.js +70 -0
  119. package/lib/cjs/datePicker/foundation.d.ts +483 -0
  120. package/lib/cjs/datePicker/foundation.js +1456 -0
  121. package/lib/cjs/datePicker/inputFoundation.d.ts +133 -0
  122. package/lib/cjs/datePicker/inputFoundation.js +392 -0
  123. package/lib/cjs/datePicker/monthFoundation.d.ts +74 -0
  124. package/lib/cjs/datePicker/monthFoundation.js +89 -0
  125. package/lib/cjs/datePicker/monthsGridFoundation.d.ts +253 -0
  126. package/lib/cjs/datePicker/monthsGridFoundation.js +1078 -0
  127. package/lib/cjs/datePicker/yearAndMonthFoundation.d.ts +65 -0
  128. package/lib/cjs/datePicker/yearAndMonthFoundation.js +102 -0
  129. package/lib/cjs/descriptions/constants.d.ts +9 -0
  130. package/lib/cjs/descriptions/constants.js +20 -0
  131. package/lib/cjs/divider/constants.d.ts +7 -0
  132. package/lib/cjs/divider/constants.js +17 -0
  133. package/lib/cjs/dropdown/constants.d.ts +16 -0
  134. package/lib/cjs/dropdown/constants.js +29 -0
  135. package/lib/cjs/dropdown/foundation.d.ts +13 -0
  136. package/lib/cjs/dropdown/foundation.js +77 -0
  137. package/lib/cjs/dropdown/menuFoundation.d.ts +8 -0
  138. package/lib/cjs/dropdown/menuFoundation.js +91 -0
  139. package/lib/cjs/empty/constants.d.ts +7 -0
  140. package/lib/cjs/empty/constants.js +17 -0
  141. package/lib/cjs/form/constants.d.ts +11 -0
  142. package/lib/cjs/form/constants.js +22 -0
  143. package/lib/cjs/form/foundation.d.ts +100 -0
  144. package/lib/cjs/form/foundation.js +832 -0
  145. package/lib/cjs/form/interface.d.ts +124 -0
  146. package/lib/cjs/form/interface.js +5 -0
  147. package/lib/cjs/form/utils.d.ts +56 -0
  148. package/lib/cjs/form/utils.js +234 -0
  149. package/lib/cjs/grid/constants.d.ts +4 -0
  150. package/lib/cjs/grid/constants.js +13 -0
  151. package/lib/cjs/highlight/constants.d.ts +4 -0
  152. package/lib/cjs/highlight/constants.js +13 -0
  153. package/lib/cjs/icons/constants.d.ts +9 -0
  154. package/lib/cjs/icons/constants.js +21 -0
  155. package/lib/cjs/image/constants.d.ts +4 -0
  156. package/lib/cjs/image/constants.js +13 -0
  157. package/lib/cjs/image/imageFoundation.d.ts +11 -0
  158. package/lib/cjs/image/imageFoundation.js +89 -0
  159. package/lib/cjs/image/previewFooterFoundation.d.ts +10 -0
  160. package/lib/cjs/image/previewFooterFoundation.js +69 -0
  161. package/lib/cjs/image/previewFoundation.d.ts +5 -0
  162. package/lib/cjs/image/previewFoundation.js +49 -0
  163. package/lib/cjs/image/previewImageFoundation.d.ts +59 -0
  164. package/lib/cjs/image/previewImageFoundation.js +390 -0
  165. package/lib/cjs/image/previewInnerFoundation.d.ts +46 -0
  166. package/lib/cjs/image/previewInnerFoundation.js +345 -0
  167. package/lib/cjs/image/utils.d.ts +4 -0
  168. package/lib/cjs/image/utils.js +111 -0
  169. package/lib/cjs/input/constants.d.ts +12 -0
  170. package/lib/cjs/input/constants.js +23 -0
  171. package/lib/cjs/input/foundation.d.ts +82 -0
  172. package/lib/cjs/input/foundation.js +386 -0
  173. package/lib/cjs/input/textareaFoundation.d.ts +63 -0
  174. package/lib/cjs/input/textareaFoundation.js +294 -0
  175. package/lib/cjs/input/util/calculateNodeHeight.d.ts +1 -0
  176. package/lib/cjs/input/util/calculateNodeHeight.js +87 -0
  177. package/lib/cjs/input/util/getSizingData.d.ts +6 -0
  178. package/lib/cjs/input/util/getSizingData.js +42 -0
  179. package/lib/cjs/inputNumber/constants.d.ts +18 -0
  180. package/lib/cjs/inputNumber/constants.js +21 -0
  181. package/lib/cjs/inputNumber/foundation.d.ts +120 -0
  182. package/lib/cjs/inputNumber/foundation.js +718 -0
  183. package/lib/cjs/layout/constants.d.ts +7 -0
  184. package/lib/cjs/layout/constants.js +17 -0
  185. package/lib/cjs/list/constants.d.ts +9 -0
  186. package/lib/cjs/list/constants.js +19 -0
  187. package/lib/cjs/modal/constants.d.ts +10 -0
  188. package/lib/cjs/modal/constants.js +20 -0
  189. package/lib/cjs/modal/modalContentFoundation.d.ts +42 -0
  190. package/lib/cjs/modal/modalContentFoundation.js +85 -0
  191. package/lib/cjs/modal/modalFoundation.d.ts +69 -0
  192. package/lib/cjs/modal/modalFoundation.js +89 -0
  193. package/lib/cjs/navigation/NavItem.d.ts +10 -0
  194. package/lib/cjs/navigation/NavItem.js +59 -0
  195. package/lib/cjs/navigation/constants.d.ts +21 -0
  196. package/lib/cjs/navigation/constants.js +35 -0
  197. package/lib/cjs/navigation/foundation.d.ts +85 -0
  198. package/lib/cjs/navigation/foundation.js +292 -0
  199. package/lib/cjs/navigation/itemFoundation.d.ts +50 -0
  200. package/lib/cjs/navigation/itemFoundation.js +101 -0
  201. package/lib/cjs/navigation/subNavFoundation.d.ts +45 -0
  202. package/lib/cjs/navigation/subNavFoundation.js +150 -0
  203. package/lib/cjs/notification/constants.d.ts +14 -0
  204. package/lib/cjs/notification/constants.js +26 -0
  205. package/lib/cjs/notification/notificationFoundation.d.ts +47 -0
  206. package/lib/cjs/notification/notificationFoundation.js +67 -0
  207. package/lib/cjs/notification/notificationListFoundation.d.ts +28 -0
  208. package/lib/cjs/notification/notificationListFoundation.js +56 -0
  209. package/lib/cjs/overflowList/constants.d.ts +25 -0
  210. package/lib/cjs/overflowList/constants.js +39 -0
  211. package/lib/cjs/overflowList/foundation.d.ts +17 -0
  212. package/lib/cjs/overflowList/foundation.js +172 -0
  213. package/lib/cjs/pagination/constants.d.ts +12 -0
  214. package/lib/cjs/pagination/constants.js +23 -0
  215. package/lib/cjs/pagination/foundation.d.ts +52 -0
  216. package/lib/cjs/pagination/foundation.js +366 -0
  217. package/lib/cjs/popconfirm/constants.d.ts +13 -0
  218. package/lib/cjs/popconfirm/constants.js +24 -0
  219. package/lib/cjs/popconfirm/popconfirmFoundation.d.ts +18 -0
  220. package/lib/cjs/popconfirm/popconfirmFoundation.js +70 -0
  221. package/lib/cjs/popover/constants.d.ts +25 -0
  222. package/lib/cjs/popover/constants.js +38 -0
  223. package/lib/cjs/progress/constants.d.ts +15 -0
  224. package/lib/cjs/progress/constants.js +26 -0
  225. package/lib/cjs/progress/generates.d.ts +7 -0
  226. package/lib/cjs/progress/generates.js +249 -0
  227. package/lib/cjs/radio/constants.d.ts +29 -0
  228. package/lib/cjs/radio/constants.js +41 -0
  229. package/lib/cjs/radio/radioFoundation.d.ts +15 -0
  230. package/lib/cjs/radio/radioFoundation.js +64 -0
  231. package/lib/cjs/radio/radioGroupFoundation.d.ts +16 -0
  232. package/lib/cjs/radio/radioGroupFoundation.js +86 -0
  233. package/lib/cjs/radio/radioInnerFoundation.d.ts +22 -0
  234. package/lib/cjs/radio/radioInnerFoundation.js +69 -0
  235. package/lib/cjs/rating/constants.d.ts +7 -0
  236. package/lib/cjs/rating/constants.js +17 -0
  237. package/lib/cjs/rating/foundation.d.ts +41 -0
  238. package/lib/cjs/rating/foundation.js +279 -0
  239. package/lib/cjs/scrollList/constants.d.ts +12 -0
  240. package/lib/cjs/scrollList/constants.js +23 -0
  241. package/lib/cjs/scrollList/foundation.d.ts +3 -0
  242. package/lib/cjs/scrollList/foundation.js +14 -0
  243. package/lib/cjs/scrollList/itemFoundation.d.ts +74 -0
  244. package/lib/cjs/scrollList/itemFoundation.js +307 -0
  245. package/lib/cjs/scrollList/scrollTo.d.ts +3 -0
  246. package/lib/cjs/scrollList/scrollTo.js +32 -0
  247. package/lib/cjs/select/constants.d.ts +16 -0
  248. package/lib/cjs/select/constants.js +30 -0
  249. package/lib/cjs/select/foundation.d.ts +137 -0
  250. package/lib/cjs/select/foundation.js +1456 -0
  251. package/lib/cjs/select/optionFoundation.d.ts +21 -0
  252. package/lib/cjs/select/optionFoundation.js +37 -0
  253. package/lib/cjs/sideSheet/constants.d.ts +15 -0
  254. package/lib/cjs/sideSheet/constants.js +25 -0
  255. package/lib/cjs/sideSheet/sideSheetFoundation.d.ts +55 -0
  256. package/lib/cjs/sideSheet/sideSheetFoundation.js +73 -0
  257. package/lib/cjs/skeleton/constants.d.ts +5 -0
  258. package/lib/cjs/skeleton/constants.js +15 -0
  259. package/lib/cjs/slider/constants.d.ts +15 -0
  260. package/lib/cjs/slider/constants.js +25 -0
  261. package/lib/cjs/slider/foundation.d.ts +212 -0
  262. package/lib/cjs/slider/foundation.js +952 -0
  263. package/lib/cjs/space/constants.d.ts +10 -0
  264. package/lib/cjs/space/constants.js +20 -0
  265. package/lib/cjs/spin/constants.d.ts +8 -0
  266. package/lib/cjs/spin/constants.js +20 -0
  267. package/lib/cjs/spin/foundation.d.ts +12 -0
  268. package/lib/cjs/spin/foundation.js +55 -0
  269. package/lib/cjs/steps/constants.d.ts +5 -0
  270. package/lib/cjs/steps/constants.js +14 -0
  271. package/lib/cjs/switch/constants.d.ts +19 -0
  272. package/lib/cjs/switch/constants.js +29 -0
  273. package/lib/cjs/switch/foundation.d.ts +17 -0
  274. package/lib/cjs/switch/foundation.js +73 -0
  275. package/lib/cjs/table/bodyFoundation.d.ts +38 -0
  276. package/lib/cjs/table/bodyFoundation.js +151 -0
  277. package/lib/cjs/table/cellFoundation.d.ts +7 -0
  278. package/lib/cjs/table/cellFoundation.js +19 -0
  279. package/lib/cjs/table/constants.d.ts +77 -0
  280. package/lib/cjs/table/constants.js +107 -0
  281. package/lib/cjs/table/foundation.d.ts +365 -0
  282. package/lib/cjs/table/foundation.js +1183 -0
  283. package/lib/cjs/table/tableRowFoundation.d.ts +14 -0
  284. package/lib/cjs/table/tableRowFoundation.js +41 -0
  285. package/lib/cjs/table/tableSelectionCellFoundation.d.ts +13 -0
  286. package/lib/cjs/table/tableSelectionCellFoundation.js +21 -0
  287. package/lib/cjs/table/utils.d.ts +102 -0
  288. package/lib/cjs/table/utils.js +618 -0
  289. package/lib/cjs/tabs/constants.d.ts +32 -0
  290. package/lib/cjs/tabs/constants.js +43 -0
  291. package/lib/cjs/tabs/foundation.d.ts +28 -0
  292. package/lib/cjs/tabs/foundation.js +210 -0
  293. package/lib/cjs/tag/constants.d.ts +10 -0
  294. package/lib/cjs/tag/constants.js +21 -0
  295. package/lib/cjs/tagInput/constants.d.ts +8 -0
  296. package/lib/cjs/tagInput/constants.js +18 -0
  297. package/lib/cjs/tagInput/foundation.d.ts +74 -0
  298. package/lib/cjs/tagInput/foundation.js +391 -0
  299. package/lib/cjs/tagInput/utils/getSplitedArray.d.ts +7 -0
  300. package/lib/cjs/tagInput/utils/getSplitedArray.js +44 -0
  301. package/lib/cjs/timePicker/ComboxFoundation.d.ts +31 -0
  302. package/lib/cjs/timePicker/ComboxFoundation.js +174 -0
  303. package/lib/cjs/timePicker/constants.d.ts +23 -0
  304. package/lib/cjs/timePicker/constants.js +40 -0
  305. package/lib/cjs/timePicker/foundation.d.ts +54 -0
  306. package/lib/cjs/timePicker/foundation.js +464 -0
  307. package/lib/cjs/timePicker/inputFoundation.d.ts +18 -0
  308. package/lib/cjs/timePicker/inputFoundation.js +76 -0
  309. package/lib/cjs/timePicker/timePicker.css +11 -0
  310. package/lib/cjs/timePicker/timePicker.scss +10 -1
  311. package/lib/cjs/timePicker/utils/index.d.ts +41 -0
  312. package/lib/cjs/timePicker/utils/index.js +184 -0
  313. package/lib/cjs/timePicker/utils/localeDate.d.ts +2 -0
  314. package/lib/cjs/timePicker/utils/localeDate.js +45 -0
  315. package/lib/cjs/timeline/constants.d.ts +10 -0
  316. package/lib/cjs/timeline/constants.js +20 -0
  317. package/lib/cjs/toast/constants.d.ts +14 -0
  318. package/lib/cjs/toast/constants.js +27 -0
  319. package/lib/cjs/toast/toastFoundation.d.ts +47 -0
  320. package/lib/cjs/toast/toastFoundation.js +65 -0
  321. package/lib/cjs/toast/toastListFoundation.d.ts +20 -0
  322. package/lib/cjs/toast/toastListFoundation.js +75 -0
  323. package/lib/cjs/tooltip/constants.d.ts +23 -0
  324. package/lib/cjs/tooltip/constants.js +34 -0
  325. package/lib/cjs/tooltip/foundation.d.ts +142 -0
  326. package/lib/cjs/tooltip/foundation.js +1322 -0
  327. package/lib/cjs/transfer/constants.d.ts +10 -0
  328. package/lib/cjs/transfer/constants.js +21 -0
  329. package/lib/cjs/transfer/foundation.d.ts +50 -0
  330. package/lib/cjs/transfer/foundation.js +282 -0
  331. package/lib/cjs/transfer/transferUtils.d.ts +4 -0
  332. package/lib/cjs/transfer/transferUtils.js +99 -0
  333. package/lib/cjs/tree/constants.d.ts +9 -0
  334. package/lib/cjs/tree/constants.js +20 -0
  335. package/lib/cjs/tree/foundation.d.ts +286 -0
  336. package/lib/cjs/tree/foundation.js +725 -0
  337. package/lib/cjs/tree/treeUtil.d.ts +80 -0
  338. package/lib/cjs/tree/treeUtil.js +775 -0
  339. package/lib/cjs/treeSelect/constants.d.ts +13 -0
  340. package/lib/cjs/treeSelect/constants.js +24 -0
  341. package/lib/cjs/treeSelect/foundation.d.ts +179 -0
  342. package/lib/cjs/treeSelect/foundation.js +925 -0
  343. package/lib/cjs/typography/constants.d.ts +12 -0
  344. package/lib/cjs/typography/constants.js +22 -0
  345. package/lib/cjs/typography/formatNumeral.d.ts +18 -0
  346. package/lib/cjs/typography/formatNumeral.js +114 -0
  347. package/lib/cjs/upload/constants.d.ts +28 -0
  348. package/lib/cjs/upload/constants.js +46 -0
  349. package/lib/cjs/upload/foundation.d.ts +167 -0
  350. package/lib/cjs/upload/foundation.js +1123 -0
  351. package/lib/cjs/upload/utils.d.ts +6 -0
  352. package/lib/cjs/upload/utils.js +146 -0
  353. package/lib/cjs/utils/Event.d.ts +7 -0
  354. package/lib/cjs/utils/Event.js +77 -0
  355. package/lib/cjs/utils/FocusHandle.d.ts +26 -0
  356. package/lib/cjs/utils/FocusHandle.js +157 -0
  357. package/lib/cjs/utils/Logger.d.ts +15 -0
  358. package/lib/cjs/utils/Logger.js +82 -0
  359. package/lib/cjs/utils/Store.d.ts +9 -0
  360. package/lib/cjs/utils/Store.js +46 -0
  361. package/lib/cjs/utils/a11y.d.ts +10 -0
  362. package/lib/cjs/utils/a11y.js +132 -0
  363. package/lib/cjs/utils/array.d.ts +22 -0
  364. package/lib/cjs/utils/array.js +55 -0
  365. package/lib/cjs/utils/arrayMove.d.ts +1 -0
  366. package/lib/cjs/utils/arrayMove.js +12 -0
  367. package/lib/cjs/utils/classnames.d.ts +4 -0
  368. package/lib/cjs/utils/classnames.js +45 -0
  369. package/lib/cjs/utils/date-fns-extra.d.ts +55 -0
  370. package/lib/cjs/utils/date-fns-extra.js +141 -0
  371. package/lib/cjs/utils/dom.d.ts +27 -0
  372. package/lib/cjs/utils/dom.js +85 -0
  373. package/lib/cjs/utils/function.d.ts +4 -0
  374. package/lib/cjs/utils/function.js +12 -0
  375. package/lib/cjs/utils/getDataAttr.d.ts +1 -0
  376. package/lib/cjs/utils/getDataAttr.js +16 -0
  377. package/lib/cjs/utils/getHighlight.d.ts +45 -0
  378. package/lib/cjs/utils/getHighlight.js +196 -0
  379. package/lib/cjs/utils/getMotionObjFromProps.d.ts +26 -0
  380. package/lib/cjs/utils/getMotionObjFromProps.js +72 -0
  381. package/lib/cjs/utils/index.d.ts +2 -0
  382. package/lib/cjs/utils/index.js +31 -0
  383. package/lib/cjs/utils/isBothNaN.d.ts +8 -0
  384. package/lib/cjs/utils/isBothNaN.js +22 -0
  385. package/lib/cjs/utils/isElement.d.ts +1 -0
  386. package/lib/cjs/utils/isElement.js +19 -0
  387. package/lib/cjs/utils/isEnterPress.d.ts +4 -0
  388. package/lib/cjs/utils/isEnterPress.js +19 -0
  389. package/lib/cjs/utils/isEscPress.d.ts +4 -0
  390. package/lib/cjs/utils/isEscPress.js +20 -0
  391. package/lib/cjs/utils/isNullOrUndefined.d.ts +6 -0
  392. package/lib/cjs/utils/isNullOrUndefined.js +15 -0
  393. package/lib/cjs/utils/isNumber.d.ts +1 -0
  394. package/lib/cjs/utils/isNumber.js +10 -0
  395. package/lib/cjs/utils/isObject.d.ts +1 -0
  396. package/lib/cjs/utils/isObject.js +10 -0
  397. package/lib/cjs/utils/isPromise.d.ts +1 -0
  398. package/lib/cjs/utils/isPromise.js +14 -0
  399. package/lib/cjs/utils/isString.d.ts +1 -0
  400. package/lib/cjs/utils/isString.js +10 -0
  401. package/lib/cjs/utils/keyCode.d.ts +430 -0
  402. package/lib/cjs/utils/keyCode.js +545 -0
  403. package/lib/cjs/utils/log.d.ts +2 -0
  404. package/lib/cjs/utils/log.js +23 -0
  405. package/lib/cjs/utils/number.d.ts +10 -0
  406. package/lib/cjs/utils/number.js +26 -0
  407. package/lib/cjs/utils/object.d.ts +17 -0
  408. package/lib/cjs/utils/object.js +157 -0
  409. package/lib/cjs/utils/set.d.ts +7 -0
  410. package/lib/cjs/utils/set.js +40 -0
  411. package/lib/cjs/utils/shallowEqualObjects.d.ts +5 -0
  412. package/lib/cjs/utils/shallowEqualObjects.js +34 -0
  413. package/lib/cjs/utils/touchPolyfill.d.ts +2 -0
  414. package/lib/cjs/utils/touchPolyfill.js +43 -0
  415. package/lib/cjs/utils/type.d.ts +31 -0
  416. package/lib/cjs/utils/type.js +5 -0
  417. package/lib/cjs/utils/uuid.d.ts +18 -0
  418. package/lib/cjs/utils/uuid.js +53 -0
  419. package/lib/cjs/utils/warning.d.ts +1 -0
  420. package/lib/cjs/utils/warning.js +12 -0
  421. package/lib/es/anchor/constants.d.ts +11 -0
  422. package/lib/es/anchor/constants.js +12 -0
  423. package/lib/es/anchor/foundation.d.ts +40 -0
  424. package/lib/es/anchor/foundation.js +248 -0
  425. package/lib/es/anchor/linkFoundation.d.ts +14 -0
  426. package/lib/es/anchor/linkFoundation.js +33 -0
  427. package/lib/es/autoComplete/constants.d.ts +12 -0
  428. package/lib/es/autoComplete/constants.js +14 -0
  429. package/lib/es/autoComplete/foundation.d.ts +66 -0
  430. package/lib/es/autoComplete/foundation.js +503 -0
  431. package/lib/es/autoComplete/optionFoundation.d.ts +21 -0
  432. package/lib/es/autoComplete/optionFoundation.js +25 -0
  433. package/lib/es/avatar/constants.d.ts +10 -0
  434. package/lib/es/avatar/constants.js +12 -0
  435. package/lib/es/avatar/foundation.d.ts +17 -0
  436. package/lib/es/avatar/foundation.js +51 -0
  437. package/lib/es/backtop/constants.d.ts +5 -0
  438. package/lib/es/backtop/constants.js +6 -0
  439. package/lib/es/backtop/foundation.d.ts +21 -0
  440. package/lib/es/backtop/foundation.js +96 -0
  441. package/lib/es/badge/constants.d.ts +10 -0
  442. package/lib/es/badge/constants.js +11 -0
  443. package/lib/es/banner/constants.d.ts +7 -0
  444. package/lib/es/banner/constants.js +8 -0
  445. package/lib/es/banner/foundation.d.ts +9 -0
  446. package/lib/es/banner/foundation.js +13 -0
  447. package/lib/es/base/constants.d.ts +3 -0
  448. package/lib/es/base/constants.js +4 -0
  449. package/lib/es/base/env.d.ts +1 -0
  450. package/lib/es/base/env.js +1 -0
  451. package/lib/es/base/foundation.d.ts +62 -0
  452. package/lib/es/base/foundation.js +147 -0
  453. package/lib/es/base/index.d.ts +5 -0
  454. package/lib/es/base/index.js +4 -0
  455. package/lib/es/breadcrumb/constants.d.ts +7 -0
  456. package/lib/es/breadcrumb/constants.js +8 -0
  457. package/lib/es/breadcrumb/foundation.d.ts +28 -0
  458. package/lib/es/breadcrumb/foundation.js +44 -0
  459. package/lib/es/breadcrumb/itemFoundation.d.ts +22 -0
  460. package/lib/es/breadcrumb/itemFoundation.js +14 -0
  461. package/lib/es/button/constants.d.ts +14 -0
  462. package/lib/es/button/constants.js +15 -0
  463. package/lib/es/calendar/constants.d.ts +7 -0
  464. package/lib/es/calendar/constants.js +8 -0
  465. package/lib/es/calendar/eventUtil.d.ts +94 -0
  466. package/lib/es/calendar/eventUtil.js +346 -0
  467. package/lib/es/calendar/foundation.d.ts +100 -0
  468. package/lib/es/calendar/foundation.js +453 -0
  469. package/lib/es/card/constants.d.ts +8 -0
  470. package/lib/es/card/constants.js +9 -0
  471. package/lib/es/carousel/constants.d.ts +27 -0
  472. package/lib/es/carousel/constants.js +28 -0
  473. package/lib/es/carousel/foundation.d.ts +29 -0
  474. package/lib/es/carousel/foundation.js +202 -0
  475. package/lib/es/cascader/constants.d.ts +17 -0
  476. package/lib/es/cascader/constants.js +20 -0
  477. package/lib/es/cascader/foundation.d.ts +240 -0
  478. package/lib/es/cascader/foundation.js +1043 -0
  479. package/lib/es/cascader/util.d.ts +5 -0
  480. package/lib/es/cascader/util.js +90 -0
  481. package/lib/es/checkbox/checkboxFoundation.d.ts +58 -0
  482. package/lib/es/checkbox/checkboxFoundation.js +127 -0
  483. package/lib/es/checkbox/checkboxGroupFoundation.d.ts +17 -0
  484. package/lib/es/checkbox/checkboxGroupFoundation.js +83 -0
  485. package/lib/es/checkbox/constants.d.ts +27 -0
  486. package/lib/es/checkbox/constants.js +28 -0
  487. package/lib/es/collapse/constants.d.ts +7 -0
  488. package/lib/es/collapse/constants.js +8 -0
  489. package/lib/es/collapse/foundation.d.ts +27 -0
  490. package/lib/es/collapse/foundation.js +54 -0
  491. package/lib/es/collapsible/constants.d.ts +4 -0
  492. package/lib/es/collapsible/constants.js +5 -0
  493. package/lib/es/collapsible/foundation.d.ts +31 -0
  494. package/lib/es/collapsible/foundation.js +26 -0
  495. package/lib/es/datePicker/_utils/formatter.d.ts +14 -0
  496. package/lib/es/datePicker/_utils/formatter.js +54 -0
  497. package/lib/es/datePicker/_utils/getDayOfWeek.d.ts +11 -0
  498. package/lib/es/datePicker/_utils/getDayOfWeek.js +20 -0
  499. package/lib/es/datePicker/_utils/getDefaultFormatToken.d.ts +9 -0
  500. package/lib/es/datePicker/_utils/getDefaultFormatToken.js +15 -0
  501. package/lib/es/datePicker/_utils/getDefaultPickerDate.d.ts +15 -0
  502. package/lib/es/datePicker/_utils/getDefaultPickerDate.js +56 -0
  503. package/lib/es/datePicker/_utils/getFullDateOffset.d.ts +7 -0
  504. package/lib/es/datePicker/_utils/getFullDateOffset.js +20 -0
  505. package/lib/es/datePicker/_utils/getInsetInputFormatToken.d.ts +20 -0
  506. package/lib/es/datePicker/_utils/getInsetInputFormatToken.js +45 -0
  507. package/lib/es/datePicker/_utils/getInsetInputValueFromInsetInputStr.d.ts +31 -0
  508. package/lib/es/datePicker/_utils/getInsetInputValueFromInsetInputStr.js +66 -0
  509. package/lib/es/datePicker/_utils/getMonthTable.d.ts +12 -0
  510. package/lib/es/datePicker/_utils/getMonthTable.js +82 -0
  511. package/lib/es/datePicker/_utils/getMonthsInYear.d.ts +2 -0
  512. package/lib/es/datePicker/_utils/getMonthsInYear.js +5 -0
  513. package/lib/es/datePicker/_utils/getYears.d.ts +2 -0
  514. package/lib/es/datePicker/_utils/getYears.js +9 -0
  515. package/lib/es/datePicker/_utils/index.d.ts +13 -0
  516. package/lib/es/datePicker/_utils/index.js +13 -0
  517. package/lib/es/datePicker/_utils/isAfter.d.ts +1 -0
  518. package/lib/es/datePicker/_utils/isAfter.js +7 -0
  519. package/lib/es/datePicker/_utils/isBefore.d.ts +1 -0
  520. package/lib/es/datePicker/_utils/isBefore.js +7 -0
  521. package/lib/es/datePicker/_utils/isBetween.d.ts +11 -0
  522. package/lib/es/datePicker/_utils/isBetween.js +23 -0
  523. package/lib/es/datePicker/_utils/isDate.d.ts +1 -0
  524. package/lib/es/datePicker/_utils/isDate.js +3 -0
  525. package/lib/es/datePicker/_utils/isSameDay.d.ts +1 -0
  526. package/lib/es/datePicker/_utils/isSameDay.js +7 -0
  527. package/lib/es/datePicker/_utils/isTimestamp.d.ts +1 -0
  528. package/lib/es/datePicker/_utils/isTimestamp.js +5 -0
  529. package/lib/es/datePicker/_utils/isUnixTimestamp.d.ts +1 -0
  530. package/lib/es/datePicker/_utils/isUnixTimestamp.js +5 -0
  531. package/lib/es/datePicker/_utils/isValidDate.d.ts +1 -0
  532. package/lib/es/datePicker/_utils/isValidDate.js +3 -0
  533. package/lib/es/datePicker/_utils/isWithinInterval.d.ts +4 -0
  534. package/lib/es/datePicker/_utils/isWithinInterval.js +15 -0
  535. package/lib/es/datePicker/_utils/parser.d.ts +23 -0
  536. package/lib/es/datePicker/_utils/parser.js +58 -0
  537. package/lib/es/datePicker/constants.d.ts +53 -0
  538. package/lib/es/datePicker/constants.js +59 -0
  539. package/lib/es/datePicker/foundation.d.ts +483 -0
  540. package/lib/es/datePicker/foundation.js +1433 -0
  541. package/lib/es/datePicker/inputFoundation.d.ts +133 -0
  542. package/lib/es/datePicker/inputFoundation.js +371 -0
  543. package/lib/es/datePicker/monthFoundation.d.ts +74 -0
  544. package/lib/es/datePicker/monthFoundation.js +73 -0
  545. package/lib/es/datePicker/monthsGridFoundation.d.ts +253 -0
  546. package/lib/es/datePicker/monthsGridFoundation.js +1054 -0
  547. package/lib/es/datePicker/yearAndMonthFoundation.d.ts +65 -0
  548. package/lib/es/datePicker/yearAndMonthFoundation.js +89 -0
  549. package/lib/es/descriptions/constants.d.ts +9 -0
  550. package/lib/es/descriptions/constants.js +10 -0
  551. package/lib/es/divider/constants.d.ts +7 -0
  552. package/lib/es/divider/constants.js +8 -0
  553. package/lib/es/dropdown/constants.d.ts +16 -0
  554. package/lib/es/dropdown/constants.js +18 -0
  555. package/lib/es/dropdown/foundation.d.ts +13 -0
  556. package/lib/es/dropdown/foundation.js +64 -0
  557. package/lib/es/dropdown/menuFoundation.d.ts +8 -0
  558. package/lib/es/dropdown/menuFoundation.js +78 -0
  559. package/lib/es/empty/constants.d.ts +7 -0
  560. package/lib/es/empty/constants.js +8 -0
  561. package/lib/es/form/constants.d.ts +11 -0
  562. package/lib/es/form/constants.js +12 -0
  563. package/lib/es/form/foundation.d.ts +100 -0
  564. package/lib/es/form/foundation.js +811 -0
  565. package/lib/es/form/interface.d.ts +124 -0
  566. package/lib/es/form/interface.js +1 -0
  567. package/lib/es/form/utils.d.ts +56 -0
  568. package/lib/es/form/utils.js +215 -0
  569. package/lib/es/grid/constants.d.ts +4 -0
  570. package/lib/es/grid/constants.js +5 -0
  571. package/lib/es/highlight/constants.d.ts +4 -0
  572. package/lib/es/highlight/constants.js +5 -0
  573. package/lib/es/icons/constants.d.ts +9 -0
  574. package/lib/es/icons/constants.js +11 -0
  575. package/lib/es/image/constants.d.ts +4 -0
  576. package/lib/es/image/constants.js +5 -0
  577. package/lib/es/image/imageFoundation.d.ts +11 -0
  578. package/lib/es/image/imageFoundation.js +76 -0
  579. package/lib/es/image/previewFooterFoundation.d.ts +10 -0
  580. package/lib/es/image/previewFooterFoundation.js +57 -0
  581. package/lib/es/image/previewFoundation.d.ts +5 -0
  582. package/lib/es/image/previewFoundation.js +37 -0
  583. package/lib/es/image/previewImageFoundation.d.ts +59 -0
  584. package/lib/es/image/previewImageFoundation.js +374 -0
  585. package/lib/es/image/previewInnerFoundation.d.ts +46 -0
  586. package/lib/es/image/previewInnerFoundation.js +330 -0
  587. package/lib/es/image/utils.d.ts +4 -0
  588. package/lib/es/image/utils.js +93 -0
  589. package/lib/es/input/constants.d.ts +12 -0
  590. package/lib/es/input/constants.js +13 -0
  591. package/lib/es/input/foundation.d.ts +82 -0
  592. package/lib/es/input/foundation.js +370 -0
  593. package/lib/es/input/textareaFoundation.d.ts +63 -0
  594. package/lib/es/input/textareaFoundation.js +276 -0
  595. package/lib/es/input/util/calculateNodeHeight.d.ts +1 -0
  596. package/lib/es/input/util/calculateNodeHeight.js +81 -0
  597. package/lib/es/input/util/getSizingData.d.ts +6 -0
  598. package/lib/es/input/util/getSizingData.js +32 -0
  599. package/lib/es/inputNumber/constants.d.ts +18 -0
  600. package/lib/es/inputNumber/constants.js +11 -0
  601. package/lib/es/inputNumber/foundation.d.ts +120 -0
  602. package/lib/es/inputNumber/foundation.js +701 -0
  603. package/lib/es/layout/constants.d.ts +7 -0
  604. package/lib/es/layout/constants.js +8 -0
  605. package/lib/es/list/constants.d.ts +9 -0
  606. package/lib/es/list/constants.js +10 -0
  607. package/lib/es/modal/constants.d.ts +10 -0
  608. package/lib/es/modal/constants.js +11 -0
  609. package/lib/es/modal/modalContentFoundation.d.ts +42 -0
  610. package/lib/es/modal/modalContentFoundation.js +72 -0
  611. package/lib/es/modal/modalFoundation.d.ts +69 -0
  612. package/lib/es/modal/modalFoundation.js +76 -0
  613. package/lib/es/navigation/NavItem.d.ts +10 -0
  614. package/lib/es/navigation/NavItem.js +47 -0
  615. package/lib/es/navigation/constants.d.ts +21 -0
  616. package/lib/es/navigation/constants.js +25 -0
  617. package/lib/es/navigation/foundation.d.ts +85 -0
  618. package/lib/es/navigation/foundation.js +277 -0
  619. package/lib/es/navigation/itemFoundation.d.ts +50 -0
  620. package/lib/es/navigation/itemFoundation.js +89 -0
  621. package/lib/es/navigation/subNavFoundation.d.ts +45 -0
  622. package/lib/es/navigation/subNavFoundation.js +138 -0
  623. package/lib/es/notification/constants.d.ts +14 -0
  624. package/lib/es/notification/constants.js +16 -0
  625. package/lib/es/notification/notificationFoundation.d.ts +47 -0
  626. package/lib/es/notification/notificationFoundation.js +54 -0
  627. package/lib/es/notification/notificationListFoundation.d.ts +28 -0
  628. package/lib/es/notification/notificationListFoundation.js +44 -0
  629. package/lib/es/overflowList/constants.d.ts +25 -0
  630. package/lib/es/overflowList/constants.js +29 -0
  631. package/lib/es/overflowList/foundation.d.ts +17 -0
  632. package/lib/es/overflowList/foundation.js +160 -0
  633. package/lib/es/pagination/constants.d.ts +12 -0
  634. package/lib/es/pagination/constants.js +13 -0
  635. package/lib/es/pagination/foundation.d.ts +52 -0
  636. package/lib/es/pagination/foundation.js +355 -0
  637. package/lib/es/popconfirm/constants.d.ts +13 -0
  638. package/lib/es/popconfirm/constants.js +14 -0
  639. package/lib/es/popconfirm/popconfirmFoundation.d.ts +18 -0
  640. package/lib/es/popconfirm/popconfirmFoundation.js +57 -0
  641. package/lib/es/popover/constants.d.ts +25 -0
  642. package/lib/es/popover/constants.js +27 -0
  643. package/lib/es/progress/constants.d.ts +15 -0
  644. package/lib/es/progress/constants.js +17 -0
  645. package/lib/es/progress/generates.d.ts +7 -0
  646. package/lib/es/progress/generates.js +243 -0
  647. package/lib/es/radio/constants.d.ts +29 -0
  648. package/lib/es/radio/constants.js +30 -0
  649. package/lib/es/radio/radioFoundation.d.ts +15 -0
  650. package/lib/es/radio/radioFoundation.js +51 -0
  651. package/lib/es/radio/radioGroupFoundation.d.ts +16 -0
  652. package/lib/es/radio/radioGroupFoundation.js +74 -0
  653. package/lib/es/radio/radioInnerFoundation.d.ts +22 -0
  654. package/lib/es/radio/radioInnerFoundation.js +57 -0
  655. package/lib/es/rating/constants.d.ts +7 -0
  656. package/lib/es/rating/constants.js +8 -0
  657. package/lib/es/rating/foundation.d.ts +41 -0
  658. package/lib/es/rating/foundation.js +263 -0
  659. package/lib/es/scrollList/constants.d.ts +12 -0
  660. package/lib/es/scrollList/constants.js +13 -0
  661. package/lib/es/scrollList/foundation.d.ts +3 -0
  662. package/lib/es/scrollList/foundation.js +2 -0
  663. package/lib/es/scrollList/itemFoundation.d.ts +74 -0
  664. package/lib/es/scrollList/itemFoundation.js +298 -0
  665. package/lib/es/scrollList/scrollTo.d.ts +3 -0
  666. package/lib/es/scrollList/scrollTo.js +24 -0
  667. package/lib/es/select/constants.d.ts +16 -0
  668. package/lib/es/select/constants.js +19 -0
  669. package/lib/es/select/foundation.d.ts +137 -0
  670. package/lib/es/select/foundation.js +1432 -0
  671. package/lib/es/select/optionFoundation.d.ts +21 -0
  672. package/lib/es/select/optionFoundation.js +25 -0
  673. package/lib/es/sideSheet/constants.d.ts +15 -0
  674. package/lib/es/sideSheet/constants.js +16 -0
  675. package/lib/es/sideSheet/sideSheetFoundation.d.ts +55 -0
  676. package/lib/es/sideSheet/sideSheetFoundation.js +59 -0
  677. package/lib/es/skeleton/constants.d.ts +5 -0
  678. package/lib/es/skeleton/constants.js +6 -0
  679. package/lib/es/slider/constants.d.ts +15 -0
  680. package/lib/es/slider/constants.js +16 -0
  681. package/lib/es/slider/foundation.d.ts +212 -0
  682. package/lib/es/slider/foundation.js +937 -0
  683. package/lib/es/space/constants.d.ts +10 -0
  684. package/lib/es/space/constants.js +11 -0
  685. package/lib/es/spin/constants.d.ts +8 -0
  686. package/lib/es/spin/constants.js +10 -0
  687. package/lib/es/spin/foundation.d.ts +12 -0
  688. package/lib/es/spin/foundation.js +45 -0
  689. package/lib/es/steps/constants.d.ts +5 -0
  690. package/lib/es/steps/constants.js +6 -0
  691. package/lib/es/switch/constants.d.ts +19 -0
  692. package/lib/es/switch/constants.js +20 -0
  693. package/lib/es/switch/foundation.d.ts +17 -0
  694. package/lib/es/switch/foundation.js +60 -0
  695. package/lib/es/table/bodyFoundation.d.ts +38 -0
  696. package/lib/es/table/bodyFoundation.js +134 -0
  697. package/lib/es/table/cellFoundation.d.ts +7 -0
  698. package/lib/es/table/cellFoundation.js +7 -0
  699. package/lib/es/table/constants.d.ts +77 -0
  700. package/lib/es/table/constants.js +97 -0
  701. package/lib/es/table/foundation.d.ts +365 -0
  702. package/lib/es/table/foundation.js +1181 -0
  703. package/lib/es/table/tableRowFoundation.d.ts +14 -0
  704. package/lib/es/table/tableRowFoundation.js +29 -0
  705. package/lib/es/table/tableSelectionCellFoundation.d.ts +13 -0
  706. package/lib/es/table/tableSelectionCellFoundation.js +9 -0
  707. package/lib/es/table/utils.d.ts +102 -0
  708. package/lib/es/table/utils.js +534 -0
  709. package/lib/es/tabs/constants.d.ts +32 -0
  710. package/lib/es/tabs/constants.js +33 -0
  711. package/lib/es/tabs/foundation.d.ts +28 -0
  712. package/lib/es/tabs/foundation.js +198 -0
  713. package/lib/es/tag/constants.d.ts +10 -0
  714. package/lib/es/tag/constants.js +12 -0
  715. package/lib/es/tagInput/constants.d.ts +8 -0
  716. package/lib/es/tagInput/constants.js +9 -0
  717. package/lib/es/tagInput/foundation.d.ts +74 -0
  718. package/lib/es/tagInput/foundation.js +373 -0
  719. package/lib/es/tagInput/utils/getSplitedArray.d.ts +7 -0
  720. package/lib/es/tagInput/utils/getSplitedArray.js +32 -0
  721. package/lib/es/timePicker/ComboxFoundation.d.ts +31 -0
  722. package/lib/es/timePicker/ComboxFoundation.js +156 -0
  723. package/lib/es/timePicker/constants.d.ts +23 -0
  724. package/lib/es/timePicker/constants.js +29 -0
  725. package/lib/es/timePicker/foundation.d.ts +54 -0
  726. package/lib/es/timePicker/foundation.js +448 -0
  727. package/lib/es/timePicker/inputFoundation.d.ts +18 -0
  728. package/lib/es/timePicker/inputFoundation.js +65 -0
  729. package/lib/es/timePicker/timePicker.css +11 -0
  730. package/lib/es/timePicker/timePicker.scss +10 -1
  731. package/lib/es/timePicker/utils/index.d.ts +41 -0
  732. package/lib/es/timePicker/utils/index.js +148 -0
  733. package/lib/es/timePicker/utils/localeDate.d.ts +2 -0
  734. package/lib/es/timePicker/utils/localeDate.js +36 -0
  735. package/lib/es/timeline/constants.d.ts +10 -0
  736. package/lib/es/timeline/constants.js +11 -0
  737. package/lib/es/toast/constants.d.ts +14 -0
  738. package/lib/es/toast/constants.js +17 -0
  739. package/lib/es/toast/toastFoundation.d.ts +47 -0
  740. package/lib/es/toast/toastFoundation.js +52 -0
  741. package/lib/es/toast/toastListFoundation.d.ts +20 -0
  742. package/lib/es/toast/toastListFoundation.js +63 -0
  743. package/lib/es/tooltip/constants.d.ts +23 -0
  744. package/lib/es/tooltip/constants.js +24 -0
  745. package/lib/es/tooltip/foundation.d.ts +142 -0
  746. package/lib/es/tooltip/foundation.js +1310 -0
  747. package/lib/es/transfer/constants.d.ts +10 -0
  748. package/lib/es/transfer/constants.js +11 -0
  749. package/lib/es/transfer/foundation.d.ts +50 -0
  750. package/lib/es/transfer/foundation.js +266 -0
  751. package/lib/es/transfer/transferUtils.d.ts +4 -0
  752. package/lib/es/transfer/transferUtils.js +83 -0
  753. package/lib/es/tree/constants.d.ts +9 -0
  754. package/lib/es/tree/constants.js +10 -0
  755. package/lib/es/tree/foundation.d.ts +286 -0
  756. package/lib/es/tree/foundation.js +709 -0
  757. package/lib/es/tree/treeUtil.d.ts +80 -0
  758. package/lib/es/tree/treeUtil.js +706 -0
  759. package/lib/es/treeSelect/constants.d.ts +13 -0
  760. package/lib/es/treeSelect/constants.js +14 -0
  761. package/lib/es/treeSelect/foundation.d.ts +179 -0
  762. package/lib/es/treeSelect/foundation.js +902 -0
  763. package/lib/es/typography/constants.d.ts +12 -0
  764. package/lib/es/typography/constants.js +13 -0
  765. package/lib/es/typography/formatNumeral.d.ts +18 -0
  766. package/lib/es/typography/formatNumeral.js +104 -0
  767. package/lib/es/upload/constants.d.ts +28 -0
  768. package/lib/es/upload/constants.js +36 -0
  769. package/lib/es/upload/foundation.d.ts +167 -0
  770. package/lib/es/upload/foundation.js +1108 -0
  771. package/lib/es/upload/utils.d.ts +6 -0
  772. package/lib/es/upload/utils.js +129 -0
  773. package/lib/es/utils/Event.d.ts +7 -0
  774. package/lib/es/utils/Event.js +65 -0
  775. package/lib/es/utils/FocusHandle.d.ts +26 -0
  776. package/lib/es/utils/FocusHandle.js +146 -0
  777. package/lib/es/utils/Logger.d.ts +15 -0
  778. package/lib/es/utils/Logger.js +74 -0
  779. package/lib/es/utils/Store.d.ts +9 -0
  780. package/lib/es/utils/Store.js +38 -0
  781. package/lib/es/utils/a11y.d.ts +10 -0
  782. package/lib/es/utils/a11y.js +104 -0
  783. package/lib/es/utils/array.d.ts +22 -0
  784. package/lib/es/utils/array.js +46 -0
  785. package/lib/es/utils/arrayMove.d.ts +1 -0
  786. package/lib/es/utils/arrayMove.js +5 -0
  787. package/lib/es/utils/classnames.d.ts +4 -0
  788. package/lib/es/utils/classnames.js +36 -0
  789. package/lib/es/utils/date-fns-extra.d.ts +55 -0
  790. package/lib/es/utils/date-fns-extra.js +120 -0
  791. package/lib/es/utils/dom.d.ts +27 -0
  792. package/lib/es/utils/dom.js +67 -0
  793. package/lib/es/utils/function.d.ts +4 -0
  794. package/lib/es/utils/function.js +5 -0
  795. package/lib/es/utils/getDataAttr.d.ts +1 -0
  796. package/lib/es/utils/getDataAttr.js +9 -0
  797. package/lib/es/utils/getHighlight.d.ts +45 -0
  798. package/lib/es/utils/getHighlight.js +187 -0
  799. package/lib/es/utils/getMotionObjFromProps.d.ts +26 -0
  800. package/lib/es/utils/getMotionObjFromProps.js +61 -0
  801. package/lib/es/utils/index.d.ts +2 -0
  802. package/lib/es/utils/index.js +2 -0
  803. package/lib/es/utils/isBothNaN.d.ts +8 -0
  804. package/lib/es/utils/isBothNaN.js +14 -0
  805. package/lib/es/utils/isElement.d.ts +1 -0
  806. package/lib/es/utils/isElement.js +12 -0
  807. package/lib/es/utils/isEnterPress.d.ts +4 -0
  808. package/lib/es/utils/isEnterPress.js +8 -0
  809. package/lib/es/utils/isEscPress.d.ts +4 -0
  810. package/lib/es/utils/isEscPress.js +9 -0
  811. package/lib/es/utils/isNullOrUndefined.d.ts +6 -0
  812. package/lib/es/utils/isNullOrUndefined.js +8 -0
  813. package/lib/es/utils/isNumber.d.ts +1 -0
  814. package/lib/es/utils/isNumber.js +3 -0
  815. package/lib/es/utils/isObject.d.ts +1 -0
  816. package/lib/es/utils/isObject.js +3 -0
  817. package/lib/es/utils/isPromise.d.ts +1 -0
  818. package/lib/es/utils/isPromise.js +4 -0
  819. package/lib/es/utils/isString.d.ts +1 -0
  820. package/lib/es/utils/isString.js +3 -0
  821. package/lib/es/utils/keyCode.d.ts +430 -0
  822. package/lib/es/utils/keyCode.js +534 -0
  823. package/lib/es/utils/log.d.ts +2 -0
  824. package/lib/es/utils/log.js +13 -0
  825. package/lib/es/utils/number.d.ts +10 -0
  826. package/lib/es/utils/number.js +17 -0
  827. package/lib/es/utils/object.d.ts +17 -0
  828. package/lib/es/utils/object.js +138 -0
  829. package/lib/es/utils/set.d.ts +7 -0
  830. package/lib/es/utils/set.js +29 -0
  831. package/lib/es/utils/shallowEqualObjects.d.ts +5 -0
  832. package/lib/es/utils/shallowEqualObjects.js +27 -0
  833. package/lib/es/utils/touchPolyfill.d.ts +2 -0
  834. package/lib/es/utils/touchPolyfill.js +33 -0
  835. package/lib/es/utils/type.d.ts +31 -0
  836. package/lib/es/utils/type.js +1 -0
  837. package/lib/es/utils/uuid.d.ts +18 -0
  838. package/lib/es/utils/uuid.js +45 -0
  839. package/lib/es/utils/warning.d.ts +1 -0
  840. package/lib/es/utils/warning.js +5 -0
  841. package/package.json +2 -2
  842. package/timePicker/timePicker.scss +10 -1
@@ -0,0 +1,1310 @@
1
+ import _isEmpty from "lodash/isEmpty";
2
+ import _get from "lodash/get";
3
+ import BaseFoundation from '../base/foundation';
4
+ import { handlePrevent } from '../utils/a11y';
5
+ const REGS = {
6
+ TOP: /top/i,
7
+ RIGHT: /right/i,
8
+ BOTTOM: /bottom/i,
9
+ LEFT: /left/i
10
+ };
11
+ const defaultRect = {
12
+ left: 0,
13
+ top: 0,
14
+ height: 0,
15
+ width: 0,
16
+ scrollLeft: 0,
17
+ scrollTop: 0
18
+ };
19
+ export default class Tooltip extends BaseFoundation {
20
+ constructor(adapter) {
21
+ var _this;
22
+
23
+ super(Object.assign({}, adapter));
24
+ _this = this;
25
+
26
+ this.removePortal = () => {
27
+ this._adapter.removePortal();
28
+ };
29
+
30
+ this.onResize = () => {
31
+ // this.log('resize');
32
+ // rePosition when window resize
33
+ this.calcPosition();
34
+ };
35
+
36
+ this.delayShow = () => {
37
+ const mouseEnterDelay = this.getProp('mouseEnterDelay');
38
+ this.clearDelayTimer();
39
+
40
+ if (mouseEnterDelay > 0) {
41
+ this._timer = setTimeout(() => {
42
+ this.show();
43
+ this.clearDelayTimer();
44
+ }, mouseEnterDelay);
45
+ } else {
46
+ this.show();
47
+ }
48
+ };
49
+
50
+ this.show = () => {
51
+ const content = this.getProp('content');
52
+ const trigger = this.getProp('trigger');
53
+ const clickTriggerToHide = this.getProp('clickTriggerToHide');
54
+ const {
55
+ visible
56
+ } = this.getStates();
57
+
58
+ if (visible) {
59
+ return;
60
+ }
61
+
62
+ this.clearDelayTimer();
63
+ /**
64
+ * If you emit an event in setState callback, you need to place the event listener function before setState to execute.
65
+ * This is to avoid event registration being executed later than setState callback when setState is executed in setTimeout.
66
+ * internal-issues:1402#note_38969412
67
+ */
68
+
69
+ this._adapter.on('portalInserted', () => {
70
+ this.calcPosition();
71
+ });
72
+
73
+ this._adapter.on('positionUpdated', () => {
74
+ this._togglePortalVisible(true);
75
+ });
76
+
77
+ this._adapter.insertPortal(content, {
78
+ left: -9999,
79
+ top: -9999
80
+ }); // offscreen rendering
81
+
82
+
83
+ if (trigger === 'custom') {
84
+ // eslint-disable-next-line
85
+ this._adapter.registerClickOutsideHandler(() => {});
86
+ }
87
+ /**
88
+ * trigger类型是click时,仅当portal被插入显示后,才绑定clickOutsideHandler
89
+ * 因为handler需要绑定在document上。如果在constructor阶段绑定
90
+ * 当一个页面中有多个容器实例时,一次click会触发多个容器的handler
91
+ *
92
+ * When the trigger type is click, clickOutsideHandler is bound only after the portal is inserted and displayed
93
+ * Because the handler needs to be bound to the document. If you bind during the constructor phase
94
+ * When there are multiple container instances in a page, one click triggers the handler of multiple containers
95
+ */
96
+
97
+
98
+ if (trigger === 'click' || clickTriggerToHide) {
99
+ this._adapter.registerClickOutsideHandler(this.hide);
100
+ }
101
+
102
+ this._bindScrollEvent();
103
+
104
+ this._bindResizeEvent();
105
+ };
106
+ /**
107
+ * 耦合的东西比较多,稍微罗列一下:
108
+ *
109
+ * - 根据 trigger 和 wrapper 的 boundingClient 计算当前的 left、top、transform-origin
110
+ * - 根据当前的 position 和 wrapper 的 boundingClient 决定是否需要自动调整位置
111
+ * - 根据当前的 position、trigger 的 boundingClient 以及 motion.handleStyle 调整当前的 style
112
+ *
113
+ * There are many coupling things, a little list:
114
+ *
115
+ * - calculate the current left, top, and transfer-origin according to the boundingClient of trigger and wrapper
116
+ * - decide whether to automatically adjust the position according to the current position and the boundingClient of wrapper
117
+ * - adjust the current style according to the current position, the boundingClient of trigger and motion.handle Style
118
+ */
119
+
120
+
121
+ this.calcPosition = function (triggerRect, wrapperRect, containerRect) {
122
+ let shouldUpdatePos = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
123
+ triggerRect = (_isEmpty(triggerRect) ? _this._adapter.getTriggerBounding() : triggerRect) || Object.assign({}, defaultRect);
124
+ containerRect = (_isEmpty(containerRect) ? _this._adapter.getPopupContainerRect() : containerRect) || Object.assign({}, defaultRect);
125
+ wrapperRect = (_isEmpty(wrapperRect) ? _this._adapter.getWrapperBounding() : wrapperRect) || Object.assign({}, defaultRect); // console.log('containerRect: ', containerRect, 'triggerRect: ', triggerRect, 'wrapperRect: ', wrapperRect);
126
+
127
+ let style = _this.calcPosStyle({
128
+ triggerRect,
129
+ wrapperRect,
130
+ containerRect
131
+ });
132
+
133
+ let position = _this.getProp('position');
134
+
135
+ if (_this.getProp('autoAdjustOverflow')) {
136
+ // console.log('style: ', style, '\ntriggerRect: ', triggerRect, '\nwrapperRect: ', wrapperRect);
137
+ const {
138
+ position: adjustedPos,
139
+ isHeightOverFlow,
140
+ isWidthOverFlow
141
+ } = _this.adjustPosIfNeed(position, style, triggerRect, wrapperRect, containerRect);
142
+
143
+ if (position !== adjustedPos || isHeightOverFlow || isWidthOverFlow) {
144
+ position = adjustedPos;
145
+ style = _this.calcPosStyle({
146
+ triggerRect,
147
+ wrapperRect,
148
+ containerRect,
149
+ position,
150
+ spacing: null,
151
+ isOverFlow: [isHeightOverFlow, isWidthOverFlow]
152
+ });
153
+ }
154
+ }
155
+
156
+ if (shouldUpdatePos && _this._mounted) {
157
+ // this._adapter.updatePlacementAttr(style.position);
158
+ _this._adapter.setPosition(Object.assign(Object.assign({}, style), {
159
+ position
160
+ }));
161
+ }
162
+
163
+ return style;
164
+ };
165
+
166
+ this.delayHide = () => {
167
+ const mouseLeaveDelay = this.getProp('mouseLeaveDelay');
168
+ this.clearDelayTimer();
169
+
170
+ if (mouseLeaveDelay > 0) {
171
+ this._timer = setTimeout(() => {
172
+ // console.log('delayHide for ', mouseLeaveDelay, ' ms, ', ...args);
173
+ this.hide();
174
+ this.clearDelayTimer();
175
+ }, mouseLeaveDelay);
176
+ } else {
177
+ this.hide();
178
+ }
179
+ };
180
+
181
+ this.hide = () => {
182
+ this.clearDelayTimer();
183
+
184
+ this._togglePortalVisible(false);
185
+
186
+ this._adapter.off('portalInserted');
187
+
188
+ this._adapter.off('positionUpdated');
189
+ };
190
+
191
+ this.handleContainerKeydown = event => {
192
+ const {
193
+ guardFocus,
194
+ closeOnEsc
195
+ } = this.getProps();
196
+
197
+ switch (event && event.key) {
198
+ case "Escape":
199
+ closeOnEsc && this._handleEscKeyDown(event);
200
+ break;
201
+
202
+ case "Tab":
203
+ if (guardFocus) {
204
+ const container = this._adapter.getContainer();
205
+
206
+ const focusableElements = this._adapter.getFocusableElements(container);
207
+
208
+ const focusableNum = focusableElements.length;
209
+
210
+ if (focusableNum) {
211
+ // Shift + Tab will move focus backward
212
+ if (event.shiftKey) {
213
+ this._handleContainerShiftTabKeyDown(focusableElements, event);
214
+ } else {
215
+ this._handleContainerTabKeyDown(focusableElements, event);
216
+ }
217
+ }
218
+ }
219
+
220
+ break;
221
+
222
+ default:
223
+ break;
224
+ }
225
+ };
226
+
227
+ this._timer = null;
228
+ }
229
+
230
+ init() {
231
+ const {
232
+ wrapperId
233
+ } = this.getProps();
234
+ this._mounted = true;
235
+
236
+ this._bindEvent();
237
+
238
+ this._shouldShow();
239
+
240
+ this._initContainerPosition();
241
+
242
+ if (!wrapperId) {
243
+ this._adapter.setId();
244
+ }
245
+ }
246
+
247
+ destroy() {
248
+ this._mounted = false;
249
+ this.unBindEvent();
250
+ }
251
+
252
+ _bindEvent() {
253
+ const trigger = this.getProp('trigger'); // get trigger type
254
+
255
+ const {
256
+ triggerEventSet,
257
+ portalEventSet
258
+ } = this._generateEvent(trigger);
259
+
260
+ this._bindTriggerEvent(triggerEventSet);
261
+
262
+ this._bindPortalEvent(portalEventSet);
263
+
264
+ this._bindResizeEvent();
265
+ }
266
+
267
+ unBindEvent() {
268
+ this._adapter.unregisterClickOutsideHandler();
269
+
270
+ this.unBindResizeEvent();
271
+ this.unBindScrollEvent();
272
+ }
273
+
274
+ _bindTriggerEvent(triggerEventSet) {
275
+ this._adapter.registerTriggerEvent(triggerEventSet);
276
+ }
277
+
278
+ _bindPortalEvent(portalEventSet) {
279
+ this._adapter.registerPortalEvent(portalEventSet);
280
+ }
281
+
282
+ _bindResizeEvent() {
283
+ this._adapter.registerResizeHandler(this.onResize);
284
+ }
285
+
286
+ unBindResizeEvent() {
287
+ this._adapter.unregisterResizeHandler(this.onResize);
288
+ }
289
+
290
+ _adjustPos() {
291
+ let position = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
292
+ let isVertical = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
293
+ let adjustType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'reverse';
294
+ let concatPos = arguments.length > 3 ? arguments[3] : undefined;
295
+
296
+ switch (adjustType) {
297
+ case 'reverse':
298
+ return this._reversePos(position, isVertical);
299
+
300
+ case 'expand':
301
+ // only happens when position is top/bottom/left/right
302
+ return this._expandPos(position, concatPos);
303
+
304
+ case 'reduce':
305
+ // only happens when position other than top/bottom/left/right
306
+ return this._reducePos(position);
307
+
308
+ default:
309
+ return this._reversePos(position, isVertical);
310
+ }
311
+ }
312
+
313
+ _reversePos() {
314
+ let position = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
315
+ let isVertical = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
316
+
317
+ if (isVertical) {
318
+ if (REGS.TOP.test(position)) {
319
+ return position.replace('top', 'bottom').replace('Top', 'Bottom');
320
+ } else if (REGS.BOTTOM.test(position)) {
321
+ return position.replace('bottom', 'top').replace('Bottom', 'Top');
322
+ }
323
+ } else if (REGS.LEFT.test(position)) {
324
+ return position.replace('left', 'right').replace('Left', 'Right');
325
+ } else if (REGS.RIGHT.test(position)) {
326
+ return position.replace('right', 'left').replace('Right', 'Left');
327
+ }
328
+
329
+ return position;
330
+ }
331
+
332
+ _expandPos() {
333
+ let position = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
334
+ let concatPos = arguments.length > 1 ? arguments[1] : undefined;
335
+ return position.concat(concatPos);
336
+ }
337
+
338
+ _reducePos() {
339
+ let position = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
340
+ // if cur position consists of two directions, remove the last position
341
+ const found = ['Top', 'Bottom', 'Left', 'Right'].find(pos => position.endsWith(pos));
342
+ return found ? position.replace(found, '') : position;
343
+ }
344
+
345
+ clearDelayTimer() {
346
+ if (this._timer) {
347
+ clearTimeout(this._timer);
348
+ this._timer = null;
349
+ }
350
+ }
351
+
352
+ _generateEvent(types) {
353
+ const eventNames = this._adapter.getEventName();
354
+
355
+ const triggerEventSet = {
356
+ // bind esc keydown on trigger for a11y
357
+ [eventNames.keydown]: event => {
358
+ this._handleTriggerKeydown(event);
359
+ }
360
+ };
361
+ let portalEventSet = {};
362
+
363
+ switch (types) {
364
+ case 'focus':
365
+ triggerEventSet[eventNames.focus] = () => {
366
+ this.delayShow();
367
+ };
368
+
369
+ triggerEventSet[eventNames.blur] = () => {
370
+ this.delayHide();
371
+ };
372
+
373
+ portalEventSet = triggerEventSet;
374
+ break;
375
+
376
+ case 'click':
377
+ triggerEventSet[eventNames.click] = () => {
378
+ // this.delayShow();
379
+ this.show();
380
+ };
381
+
382
+ portalEventSet = {}; // Click outside needs special treatment, can not be directly tied to the trigger Element, need to be bound to the document
383
+
384
+ break;
385
+
386
+ case 'hover':
387
+ triggerEventSet[eventNames.mouseEnter] = () => {
388
+ // console.log(e);
389
+ this.setCache('isClickToHide', false);
390
+ this.delayShow(); // this.show('trigger');
391
+ };
392
+
393
+ triggerEventSet[eventNames.mouseLeave] = () => {
394
+ // console.log(e);
395
+ this.delayHide(); // this.hide('trigger');
396
+ }; // bind focus to hover trigger for a11y
397
+
398
+
399
+ triggerEventSet[eventNames.focus] = () => {
400
+ const {
401
+ disableFocusListener
402
+ } = this.getProps();
403
+ !disableFocusListener && this.delayShow();
404
+ };
405
+
406
+ triggerEventSet[eventNames.blur] = () => {
407
+ const {
408
+ disableFocusListener
409
+ } = this.getProps();
410
+ !disableFocusListener && this.delayHide();
411
+ };
412
+
413
+ portalEventSet = Object.assign({}, triggerEventSet);
414
+
415
+ if (this.getProp('clickToHide')) {
416
+ portalEventSet[eventNames.click] = () => {
417
+ this.setCache('isClickToHide', true);
418
+ this.hide();
419
+ };
420
+
421
+ portalEventSet[eventNames.mouseEnter] = () => {
422
+ if (this.getCache('isClickToHide')) {
423
+ return;
424
+ }
425
+
426
+ this.delayShow();
427
+ };
428
+ }
429
+
430
+ break;
431
+
432
+ case 'custom':
433
+ // when trigger type is 'custom', no need to bind eventHandler
434
+ // show/hide completely depend on props.visible which change by user
435
+ break;
436
+
437
+ default:
438
+ break;
439
+ }
440
+
441
+ return {
442
+ triggerEventSet,
443
+ portalEventSet
444
+ };
445
+ }
446
+
447
+ _shouldShow() {
448
+ const visible = this.getProp('visible');
449
+
450
+ if (visible) {
451
+ this.show();
452
+ } else {// this.hide();
453
+ }
454
+ }
455
+
456
+ _togglePortalVisible(isVisible) {
457
+ const nowVisible = this.getState('visible');
458
+
459
+ if (nowVisible !== isVisible) {
460
+ this._adapter.togglePortalVisible(isVisible, () => {
461
+ if (isVisible) {
462
+ this._adapter.setInitialFocus();
463
+ }
464
+
465
+ this._adapter.notifyVisibleChange(isVisible);
466
+ });
467
+ }
468
+ }
469
+
470
+ _roundPixel(pixel) {
471
+ if (typeof pixel === 'number') {
472
+ return Math.round(pixel);
473
+ }
474
+
475
+ return pixel;
476
+ }
477
+
478
+ calcTransformOrigin(position, triggerRect, translateX, translateY) {
479
+ // eslint-disable-next-line
480
+ if (position && triggerRect && translateX != null && translateY != null) {
481
+ if (this.getProp('transformFromCenter')) {
482
+ if (['topLeft', 'bottomLeft'].includes(position)) {
483
+ return `${this._roundPixel(triggerRect.width / 2)}px ${-translateY * 100}%`;
484
+ }
485
+
486
+ if (['topRight', 'bottomRight'].includes(position)) {
487
+ return `calc(100% - ${this._roundPixel(triggerRect.width / 2)}px) ${-translateY * 100}%`;
488
+ }
489
+
490
+ if (['leftTop', 'rightTop'].includes(position)) {
491
+ return `${-translateX * 100}% ${this._roundPixel(triggerRect.height / 2)}px`;
492
+ }
493
+
494
+ if (['leftBottom', 'rightBottom'].includes(position)) {
495
+ return `${-translateX * 100}% calc(100% - ${this._roundPixel(triggerRect.height / 2)}px)`;
496
+ }
497
+ }
498
+
499
+ return `${-translateX * 100}% ${-translateY * 100}%`;
500
+ }
501
+
502
+ return null;
503
+ }
504
+
505
+ calcPosStyle(props) {
506
+ const {
507
+ spacing,
508
+ isOverFlow
509
+ } = props;
510
+ const triggerRect = (_isEmpty(props.triggerRect) ? props.triggerRect : this._adapter.getTriggerBounding()) || Object.assign({}, defaultRect);
511
+ const containerRect = (_isEmpty(props.containerRect) ? props.containerRect : this._adapter.getPopupContainerRect()) || Object.assign({}, defaultRect);
512
+ const wrapperRect = (_isEmpty(props.wrapperRect) ? props.wrapperRect : this._adapter.getWrapperBounding()) || Object.assign({}, defaultRect); // eslint-disable-next-line
513
+
514
+ const position = props.position != null ? props.position : this.getProp('position'); // eslint-disable-next-line
515
+
516
+ const SPACING = spacing != null ? spacing : this.getProp('spacing');
517
+ const {
518
+ arrowPointAtCenter,
519
+ showArrow,
520
+ arrowBounding
521
+ } = this.getProps();
522
+ const pointAtCenter = showArrow && arrowPointAtCenter;
523
+
524
+ const horizontalArrowWidth = _get(arrowBounding, 'width', 24);
525
+
526
+ const verticalArrowHeight = _get(arrowBounding, 'width', 24);
527
+
528
+ const arrowOffsetY = _get(arrowBounding, 'offsetY', 0);
529
+
530
+ const positionOffsetX = 6;
531
+ const positionOffsetY = 6; // You must use left/top when rendering, using right/bottom does not render the element position correctly
532
+ // Use left/top + translate to achieve tooltip positioning perfectly without knowing the size of the tooltip expansion layer
533
+
534
+ let left;
535
+ let top;
536
+ let translateX = 0; // Container x-direction translation distance
537
+
538
+ let translateY = 0; // Container y-direction translation distance
539
+
540
+ const middleX = triggerRect.left + triggerRect.width / 2;
541
+ const middleY = triggerRect.top + triggerRect.height / 2;
542
+ const offsetXWithArrow = positionOffsetX + horizontalArrowWidth / 2;
543
+ const offsetYWithArrow = positionOffsetY + verticalArrowHeight / 2;
544
+ const heightDifference = wrapperRect.height - containerRect.height;
545
+ const widthDifference = wrapperRect.width - containerRect.width;
546
+ const offsetHeight = heightDifference > 0 ? heightDifference : 0;
547
+ const offsetWidth = widthDifference > 0 ? widthDifference : 0;
548
+ const isHeightOverFlow = isOverFlow && isOverFlow[0];
549
+ const isWidthOverFlow = isOverFlow && isOverFlow[1];
550
+ const isTriggerNearLeft = middleX - containerRect.left < containerRect.right - middleX;
551
+ const isTriggerNearTop = middleY - containerRect.top < containerRect.bottom - middleY;
552
+
553
+ switch (position) {
554
+ case 'top':
555
+ // left = middleX;
556
+ // top = triggerRect.top - SPACING;
557
+ left = isWidthOverFlow ? isTriggerNearLeft ? containerRect.left + wrapperRect.width / 2 : containerRect.right - wrapperRect.width / 2 + offsetWidth : middleX;
558
+ top = isHeightOverFlow ? containerRect.bottom + offsetHeight : triggerRect.top - SPACING;
559
+ translateX = -0.5;
560
+ translateY = -1;
561
+ break;
562
+
563
+ case 'topLeft':
564
+ // left = pointAtCenter ? middleX - offsetXWithArrow : triggerRect.left;
565
+ // top = triggerRect.top - SPACING;
566
+ left = isWidthOverFlow ? containerRect.left : pointAtCenter ? middleX - offsetXWithArrow : triggerRect.left;
567
+ top = isHeightOverFlow ? containerRect.bottom + offsetHeight : triggerRect.top - SPACING;
568
+ translateY = -1;
569
+ break;
570
+
571
+ case 'topRight':
572
+ // left = pointAtCenter ? middleX + offsetXWithArrow : triggerRect.right;
573
+ // top = triggerRect.top - SPACING;
574
+ left = isWidthOverFlow ? containerRect.right + offsetWidth : pointAtCenter ? middleX + offsetXWithArrow : triggerRect.right;
575
+ top = isHeightOverFlow ? containerRect.bottom + offsetHeight : triggerRect.top - SPACING;
576
+ translateY = -1;
577
+ translateX = -1;
578
+ break;
579
+
580
+ case 'left':
581
+ // left = triggerRect.left - SPACING;
582
+ // top = middleY;
583
+ // left = isWidthOverFlow? containerRect.right - SPACING : triggerRect.left - SPACING;
584
+ left = isWidthOverFlow ? containerRect.right + offsetWidth - SPACING + offsetXWithArrow : triggerRect.left - SPACING;
585
+ top = isHeightOverFlow ? isTriggerNearTop ? containerRect.top + wrapperRect.height / 2 : containerRect.bottom - wrapperRect.height / 2 + offsetHeight : middleY;
586
+ translateX = -1;
587
+ translateY = -0.5;
588
+ break;
589
+
590
+ case 'leftTop':
591
+ // left = triggerRect.left - SPACING;
592
+ // top = pointAtCenter ? middleY - offsetYWithArrow : triggerRect.top;
593
+ left = isWidthOverFlow ? containerRect.right + offsetWidth - SPACING + offsetXWithArrow : triggerRect.left - SPACING;
594
+ top = isHeightOverFlow ? containerRect.top : pointAtCenter ? middleY - offsetYWithArrow : triggerRect.top;
595
+ translateX = -1;
596
+ break;
597
+
598
+ case 'leftBottom':
599
+ // left = triggerRect.left - SPACING;
600
+ // top = pointAtCenter ? middleY + offsetYWithArrow : triggerRect.bottom;
601
+ left = isWidthOverFlow ? containerRect.right + offsetWidth - SPACING + offsetXWithArrow : triggerRect.left - SPACING;
602
+ top = isHeightOverFlow ? containerRect.bottom + offsetHeight : pointAtCenter ? middleY + offsetYWithArrow : triggerRect.bottom;
603
+ translateX = -1;
604
+ translateY = -1;
605
+ break;
606
+
607
+ case 'bottom':
608
+ // left = middleX;
609
+ // top = triggerRect.top + triggerRect.height + SPACING;
610
+ left = isWidthOverFlow ? isTriggerNearLeft ? containerRect.left + wrapperRect.width / 2 : containerRect.right - wrapperRect.width / 2 + offsetWidth : middleX;
611
+ top = isHeightOverFlow ? containerRect.top + offsetYWithArrow - SPACING : triggerRect.top + triggerRect.height + SPACING;
612
+ translateX = -0.5;
613
+ break;
614
+
615
+ case 'bottomLeft':
616
+ // left = pointAtCenter ? middleX - offsetXWithArrow : triggerRect.left;
617
+ // top = triggerRect.bottom + SPACING;
618
+ left = isWidthOverFlow ? containerRect.left : pointAtCenter ? middleX - offsetXWithArrow : triggerRect.left;
619
+ top = isHeightOverFlow ? containerRect.top + offsetYWithArrow - SPACING : triggerRect.top + triggerRect.height + SPACING;
620
+ break;
621
+
622
+ case 'bottomRight':
623
+ // left = pointAtCenter ? middleX + offsetXWithArrow : triggerRect.right;
624
+ // top = triggerRect.bottom + SPACING;
625
+ left = isWidthOverFlow ? containerRect.right + offsetWidth : pointAtCenter ? middleX + offsetXWithArrow : triggerRect.right;
626
+ top = isHeightOverFlow ? containerRect.top + offsetYWithArrow - SPACING : triggerRect.top + triggerRect.height + SPACING;
627
+ translateX = -1;
628
+ break;
629
+
630
+ case 'right':
631
+ // left = triggerRect.right + SPACING;
632
+ // top = middleY;
633
+ left = isWidthOverFlow ? containerRect.left - SPACING + offsetXWithArrow : triggerRect.right + SPACING;
634
+ top = isHeightOverFlow ? isTriggerNearTop ? containerRect.top + wrapperRect.height / 2 : containerRect.bottom - wrapperRect.height / 2 + offsetHeight : middleY;
635
+ translateY = -0.5;
636
+ break;
637
+
638
+ case 'rightTop':
639
+ // left = triggerRect.right + SPACING;
640
+ // top = pointAtCenter ? middleY - offsetYWithArrow : triggerRect.top;
641
+ left = isWidthOverFlow ? containerRect.left - SPACING + offsetXWithArrow : triggerRect.right + SPACING;
642
+ top = isHeightOverFlow ? containerRect.top : pointAtCenter ? middleY - offsetYWithArrow : triggerRect.top;
643
+ break;
644
+
645
+ case 'rightBottom':
646
+ // left = triggerRect.right + SPACING;
647
+ // top = pointAtCenter ? middleY + offsetYWithArrow : triggerRect.bottom;
648
+ left = isWidthOverFlow ? containerRect.left - SPACING + offsetXWithArrow : triggerRect.right + SPACING;
649
+ top = isHeightOverFlow ? containerRect.bottom + offsetHeight : pointAtCenter ? middleY + offsetYWithArrow : triggerRect.bottom;
650
+ translateY = -1;
651
+ break;
652
+
653
+ case 'leftTopOver':
654
+ left = triggerRect.left - SPACING;
655
+ top = triggerRect.top - SPACING;
656
+ break;
657
+
658
+ case 'rightTopOver':
659
+ left = triggerRect.right + SPACING;
660
+ top = triggerRect.top - SPACING;
661
+ translateX = -1;
662
+ break;
663
+
664
+ case 'leftBottomOver':
665
+ left = triggerRect.left - SPACING;
666
+ top = triggerRect.bottom + SPACING;
667
+ translateY = -1;
668
+ break;
669
+
670
+ case 'rightBottomOver':
671
+ left = triggerRect.right + SPACING;
672
+ top = triggerRect.bottom + SPACING;
673
+ translateX = -1;
674
+ translateY = -1;
675
+ break;
676
+
677
+ default:
678
+ break;
679
+ }
680
+
681
+ const transformOrigin = this.calcTransformOrigin(position, triggerRect, translateX, translateY); // Transform origin
682
+
683
+ const _containerIsBody = this._adapter.containerIsBody(); // Calculate container positioning relative to window
684
+
685
+
686
+ left = left - containerRect.left;
687
+ top = top - containerRect.top;
688
+ /**
689
+ * container为body时,如果position不为relative或absolute,这时trigger计算出的top/left会根据html定位(initial containing block)
690
+ * 此时如果body有margin,则计算出的位置相对于body会有问题 fix issue #1368
691
+ *
692
+ * When container is body, if position is not relative or absolute, then the top/left calculated by trigger will be positioned according to html
693
+ * At this time, if the body has a margin, the calculated position will have a problem relative to the body fix issue #1368
694
+ */
695
+
696
+ if (_containerIsBody && !this._adapter.containerIsRelativeOrAbsolute()) {
697
+ const documentEleRect = this._adapter.getDocumentElementBounding(); // Represents the left of the body relative to html
698
+
699
+
700
+ left += containerRect.left - documentEleRect.left; // Represents the top of the body relative to html
701
+
702
+ top += containerRect.top - documentEleRect.top;
703
+ } // ContainerRect.scrollLeft to solve the inner scrolling of the container
704
+
705
+
706
+ left = _containerIsBody ? left : left + containerRect.scrollLeft;
707
+ top = _containerIsBody ? top : top + containerRect.scrollTop;
708
+ const triggerHeight = triggerRect.height;
709
+
710
+ if (this.getProp('showArrow') && !arrowPointAtCenter && triggerHeight <= (verticalArrowHeight / 2 + arrowOffsetY) * 2) {
711
+ const offsetY = triggerHeight / 2 - (arrowOffsetY + verticalArrowHeight / 2);
712
+
713
+ if ((position.includes('Top') || position.includes('Bottom')) && !position.includes('Over')) {
714
+ top = position.includes('Top') ? top + offsetY : top - offsetY;
715
+ }
716
+ } // The left/top value here must be rounded, otherwise it will cause the small triangle to shake
717
+
718
+
719
+ const style = {
720
+ left: this._roundPixel(left),
721
+ top: this._roundPixel(top)
722
+ };
723
+ let transform = ''; // eslint-disable-next-line
724
+
725
+ if (translateX != null) {
726
+ transform += `translateX(${translateX * 100}%) `;
727
+ Object.defineProperty(style, 'translateX', {
728
+ enumerable: false,
729
+ value: translateX
730
+ });
731
+ } // eslint-disable-next-line
732
+
733
+
734
+ if (translateY != null) {
735
+ transform += `translateY(${translateY * 100}%) `;
736
+ Object.defineProperty(style, 'translateY', {
737
+ enumerable: false,
738
+ value: translateY
739
+ });
740
+ } // eslint-disable-next-line
741
+
742
+
743
+ if (transformOrigin != null) {
744
+ style.transformOrigin = transformOrigin;
745
+ }
746
+
747
+ if (transform) {
748
+ style.transform = transform;
749
+ }
750
+
751
+ return style;
752
+ }
753
+
754
+ isLR() {
755
+ let position = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
756
+ return position.includes('left') || position.includes('right');
757
+ }
758
+
759
+ isTB() {
760
+ let position = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
761
+ return position.includes('top') || position.includes('bottom');
762
+ }
763
+
764
+ isReverse(rowSpace, reverseSpace, size) {
765
+ // 原空间不足,反向空间足够
766
+ // Insufficient original space, enough reverse space
767
+ return rowSpace < size && reverseSpace > size;
768
+ }
769
+
770
+ isOverFlow(rowSpace, reverseSpace, size) {
771
+ // 原空间且反向空间都不足
772
+ // The original space and the reverse space are not enough
773
+ return rowSpace < size && reverseSpace < size;
774
+ }
775
+
776
+ isHalfOverFlow(posSpace, negSpace, size) {
777
+ // 正半空间或者负半空间不足,即表示有遮挡,需要偏移
778
+ // Insufficient positive half space or negative half space means that there is occlusion and needs to be offset
779
+ return posSpace < size || negSpace < size;
780
+ }
781
+
782
+ isHalfAllEnough(posSpace, negSpace, size) {
783
+ // 正半空间和负半空间都足够,即表示可以从 topLeft/topRight 变成 top
784
+ // Both positive and negative half-spaces are sufficient, which means you can change from topLeft/topRight to top
785
+ return posSpace >= size || negSpace >= size;
786
+ }
787
+
788
+ getReverse(viewOverFlow, containerOverFlow, shouldReverseView, shouldReverseContainer) {
789
+ /**
790
+ * 基于视口和容器一起判断,以下几种情况允许从原方向转到反方向,以判断是否应该由top->bottom为例子
791
+ *
792
+ * 1. 视口上下空间不足 且 容器上空间❌下空间✅
793
+ * 2. 视口上空间❌下空间✅ 且 容器上下空间不足
794
+ * 3. 视口上空间❌下空间✅ 且 容器上空间❌下空间✅
795
+ *
796
+ * Based on the judgment of the viewport and the container, the following situations are allowed to turn from the original direction to the opposite direction
797
+ * to judge whether it should be top->bottom as an example
798
+ * 1. There is insufficient space above and below the viewport and the space above the container ❌ the space below ✅
799
+ * 2. The space above the viewport ❌ the space below ✅ and the space above and below the container is insufficient
800
+ * 3. Viewport upper space ❌ lower space✅ and container upper space ❌ lower space✅
801
+ */
802
+ return viewOverFlow && shouldReverseContainer || shouldReverseView && containerOverFlow || shouldReverseView && shouldReverseContainer;
803
+ } // place the dom correctly
804
+
805
+
806
+ adjustPosIfNeed(position, style, triggerRect, wrapperRect, containerRect) {
807
+ const {
808
+ innerWidth,
809
+ innerHeight
810
+ } = window;
811
+ const {
812
+ spacing,
813
+ margin
814
+ } = this.getProps();
815
+ const marginLeft = typeof margin === 'number' ? margin : margin.marginLeft;
816
+ const marginTop = typeof margin === 'number' ? margin : margin.marginTop;
817
+ const marginRight = typeof margin === 'number' ? margin : margin.marginRight;
818
+ const marginBottom = typeof margin === 'number' ? margin : margin.marginBottom;
819
+ let isHeightOverFlow = false;
820
+ let isWidthOverFlow = false;
821
+
822
+ if (wrapperRect.width > 0 && wrapperRect.height > 0) {
823
+ // let clientLeft = left + translateX * wrapperRect.width - containerRect.scrollLeft;
824
+ // let clientTop = top + translateY * wrapperRect.height - containerRect.scrollTop;
825
+ // if (this._adapter.containerIsBody() || this._adapter.containerIsRelative()) {
826
+ // clientLeft += containerRect.left;
827
+ // clientTop += containerRect.top;
828
+ // }
829
+ // const clientRight = clientLeft + wrapperRect.width;
830
+ // const clientBottom = clientTop + wrapperRect.height;
831
+ // The relative position of the elements on the screen
832
+ // https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/tooltip-pic.svg
833
+ const clientLeft = triggerRect.left;
834
+ const clientRight = triggerRect.right;
835
+ const clientTop = triggerRect.top;
836
+ const clientBottom = triggerRect.bottom;
837
+ const restClientLeft = innerWidth - clientLeft;
838
+ const restClientTop = innerHeight - clientTop;
839
+ const restClientRight = innerWidth - clientRight;
840
+ const restClientBottom = innerHeight - clientBottom;
841
+ const widthIsBigger = wrapperRect.width > triggerRect.width;
842
+ const heightIsBigger = wrapperRect.height > triggerRect.height; // The wrapperR ect.top|bottom equivalent cannot be directly used here for comparison, which is easy to cause jitter
843
+ // 基于视口的微调判断
844
+ // Fine-tuning judgment based on viewport
845
+
846
+ const shouldViewReverseTop = clientTop - marginTop < wrapperRect.height + spacing && restClientBottom - marginBottom > wrapperRect.height + spacing;
847
+ const shouldViewReverseLeft = clientLeft - marginLeft < wrapperRect.width + spacing && restClientRight - marginRight > wrapperRect.width + spacing;
848
+ const shouldViewReverseBottom = restClientBottom - marginBottom < wrapperRect.height + spacing && clientTop - marginTop > wrapperRect.height + spacing;
849
+ const shouldViewReverseRight = restClientRight - marginRight < wrapperRect.width + spacing && clientLeft - marginLeft > wrapperRect.width + spacing;
850
+ const shouldViewReverseTopOver = restClientTop - marginBottom < wrapperRect.height + spacing && clientBottom - marginTop > wrapperRect.height + spacing;
851
+ const shouldViewReverseBottomOver = clientBottom - marginTop < wrapperRect.height + spacing && restClientTop - marginBottom > wrapperRect.height + spacing;
852
+ const shouldViewReverseTopSide = restClientTop < wrapperRect.height && clientBottom > wrapperRect.height;
853
+ const shouldViewReverseBottomSide = clientBottom < wrapperRect.height && restClientTop > wrapperRect.height;
854
+ const shouldViewReverseLeftSide = restClientLeft < wrapperRect.width && clientRight > wrapperRect.width;
855
+ const shouldViewReverseRightSide = clientRight < wrapperRect.width && restClientLeft > wrapperRect.width;
856
+ const shouldReverseTopOver = restClientTop < wrapperRect.height + spacing && clientBottom > wrapperRect.height + spacing;
857
+ const shouldReverseBottomOver = clientBottom < wrapperRect.height + spacing && restClientTop > wrapperRect.height + spacing;
858
+ const shouldReverseLeftOver = restClientLeft < wrapperRect.width && clientRight > wrapperRect.width;
859
+ const shouldReverseRightOver = clientRight < wrapperRect.width && restClientLeft > wrapperRect.width; // 基于容器的微调判断
860
+ // Fine-tuning judgment based on container
861
+
862
+ const clientTopInContainer = clientTop - containerRect.top;
863
+ const clientLeftInContainer = clientLeft - containerRect.left;
864
+ const clientBottomInContainer = clientTopInContainer + triggerRect.height;
865
+ const clientRightInContainer = clientLeftInContainer + triggerRect.width;
866
+ const restClientBottomInContainer = containerRect.bottom - clientBottom;
867
+ const restClientRightInContainer = containerRect.right - clientRight;
868
+ const restClientTopInContainer = restClientBottomInContainer + triggerRect.height;
869
+ const restClientLeftInContainer = restClientRightInContainer + triggerRect.width; // 当原空间不足,反向空间足够时,可以反向。
870
+ // When the original space is insufficient and the reverse space is sufficient, the reverse can be performed.
871
+
872
+ const shouldContainerReverseTop = this.isReverse(clientTopInContainer - marginTop, restClientBottomInContainer - marginBottom, wrapperRect.height + spacing);
873
+ const shouldContainerReverseLeft = this.isReverse(clientLeftInContainer - marginLeft, restClientRightInContainer - marginRight, wrapperRect.width + spacing);
874
+ const shouldContainerReverseBottom = this.isReverse(restClientBottomInContainer - marginBottom, clientTopInContainer - marginTop, wrapperRect.height + spacing);
875
+ const shouldContainerReverseRight = this.isReverse(restClientRightInContainer - marginRight, clientLeftInContainer - marginLeft, wrapperRect.width + spacing);
876
+ const shouldContainerReverseTopOver = this.isReverse(restClientTopInContainer - marginBottom, clientBottomInContainer - marginTop, wrapperRect.height + spacing);
877
+ const shouldContainerReverseBottomOver = this.isReverse(clientBottomInContainer - marginTop, restClientTopInContainer - marginBottom, wrapperRect.height + spacing);
878
+ const shouldContainerReverseTopSide = this.isReverse(restClientTopInContainer, clientBottomInContainer, wrapperRect.height);
879
+ const shouldContainerReverseBottomSide = this.isReverse(clientBottomInContainer, restClientTopInContainer, wrapperRect.height);
880
+ const shouldContainerReverseLeftSide = this.isReverse(restClientLeftInContainer, clientRightInContainer, wrapperRect.width);
881
+ const shouldContainerReverseRightSide = this.isReverse(clientRightInContainer, restClientLeftInContainer, wrapperRect.width);
882
+ const halfHeight = triggerRect.height / 2;
883
+ const halfWidth = triggerRect.width / 2; // 视口, 原空间与反向空间是否都不足判断
884
+ // Viewport, whether the original space and the reverse space are insufficient to judge
885
+
886
+ const isViewYOverFlow = this.isOverFlow(clientTop - marginTop, restClientBottom - marginBottom, wrapperRect.height + spacing);
887
+ const isViewXOverFlow = this.isOverFlow(clientLeft - marginLeft, restClientRight - marginRight, wrapperRect.width + spacing);
888
+ const isViewYOverFlowSide = this.isOverFlow(clientBottom - marginTop, restClientTop - marginBottom, wrapperRect.height + spacing);
889
+ const isViewXOverFlowSide = this.isOverFlow(clientRight - marginLeft, restClientLeft - marginRight, wrapperRect.width + spacing);
890
+ const isViewYOverFlowSideHalf = this.isHalfOverFlow(clientBottom - halfHeight, restClientTop - halfHeight, wrapperRect.height / 2);
891
+ const isViewXOverFlowSideHalf = this.isHalfOverFlow(clientRight - halfWidth, restClientLeft - halfWidth, wrapperRect.width / 2);
892
+ const isViewYEnoughSideHalf = this.isHalfAllEnough(clientBottom - halfHeight, restClientTop - halfHeight, wrapperRect.height / 2);
893
+ const isViewXEnoughSideHalf = this.isHalfAllEnough(clientRight - halfWidth, restClientLeft - halfWidth, wrapperRect.width / 2); // 容器, 原空间与反向空间是否都不足判断
894
+ // container, whether the original space and the reverse space are insufficient to judge
895
+
896
+ const isContainerYOverFlow = this.isOverFlow(clientTopInContainer - marginTop, restClientBottomInContainer - marginBottom, wrapperRect.height + spacing);
897
+ const isContainerXOverFlow = this.isOverFlow(clientLeftInContainer - marginLeft, restClientRightInContainer - marginRight, wrapperRect.width + spacing);
898
+ const isContainerYOverFlowSide = this.isOverFlow(clientBottomInContainer - marginTop, restClientTopInContainer - marginBottom, wrapperRect.height + spacing);
899
+ const isContainerXOverFlowSide = this.isOverFlow(clientRightInContainer - marginLeft, restClientLeftInContainer - marginRight, wrapperRect.width + spacing);
900
+ const isContainerYOverFlowSideHalf = this.isHalfOverFlow(clientBottomInContainer - halfHeight, restClientTopInContainer - halfHeight, wrapperRect.height / 2);
901
+ const isContainerXOverFlowSideHalf = this.isHalfOverFlow(clientRightInContainer - halfWidth, restClientLeftInContainer - halfWidth, wrapperRect.width / 2);
902
+ const isContainerYEnoughSideHalf = this.isHalfAllEnough(clientBottomInContainer - halfHeight, restClientTopInContainer - halfHeight, wrapperRect.height / 2);
903
+ const isContainerXEnoughSideHalf = this.isHalfAllEnough(clientRightInContainer - halfWidth, restClientLeftInContainer - halfWidth, wrapperRect.width / 2); // 综合 viewport + container 判断微调,即视口 + 容器都放置不行时才能考虑位置调整
904
+ // Comprehensive viewport + container judgment fine-tuning, that is, the position adjustment can only be considered when the viewport + container cannot be placed.
905
+
906
+ const shouldReverseTop = this.getReverse(isViewYOverFlow, isContainerYOverFlow, shouldViewReverseTop, shouldContainerReverseTop);
907
+ const shouldReverseLeft = this.getReverse(isViewXOverFlow, isContainerXOverFlow, shouldViewReverseLeft, shouldContainerReverseLeft);
908
+ const shouldReverseBottom = this.getReverse(isViewYOverFlow, isContainerYOverFlow, shouldViewReverseBottom, shouldContainerReverseBottom);
909
+ const shouldReverseRight = this.getReverse(isViewXOverFlow, isContainerXOverFlow, shouldViewReverseRight, shouldContainerReverseRight); // const shouldReverseTopOver = this.getReverse(isViewYOverFlowSide, isContainerYOverFlowSide, shouldViewReverseTopOver, shouldContainerReverseTopOver);
910
+ // const shouldReverseBottomOver = this.getReverse(isViewYOverFlowSide, isContainerYOverFlowSide, shouldViewReverseBottomOver, shouldContainerReverseBottomOver);
911
+
912
+ const shouldReverseTopSide = this.getReverse(isViewYOverFlowSide, isContainerYOverFlowSide, shouldViewReverseTopSide, shouldContainerReverseTopSide);
913
+ const shouldReverseBottomSide = this.getReverse(isViewYOverFlowSide, isContainerYOverFlowSide, shouldViewReverseBottomSide, shouldContainerReverseBottomSide);
914
+ const shouldReverseLeftSide = this.getReverse(isViewXOverFlowSide, isContainerXOverFlowSide, shouldViewReverseLeftSide, shouldContainerReverseLeftSide);
915
+ const shouldReverseRightSide = this.getReverse(isViewXOverFlowSide, isContainerXOverFlowSide, shouldViewReverseRightSide, shouldContainerReverseRightSide);
916
+ const isYOverFlowSideHalf = isViewYOverFlowSideHalf && isContainerYOverFlowSideHalf;
917
+ const isXOverFlowSideHalf = isViewXOverFlowSideHalf && isContainerXOverFlowSideHalf;
918
+
919
+ switch (position) {
920
+ case 'top':
921
+ if (shouldReverseTop) {
922
+ position = this._adjustPos(position, true);
923
+ }
924
+
925
+ if (isXOverFlowSideHalf && (shouldReverseLeftSide || shouldReverseRightSide)) {
926
+ position = this._adjustPos(position, true, 'expand', shouldReverseLeftSide ? 'Right' : 'Left');
927
+ }
928
+
929
+ break;
930
+
931
+ case 'topLeft':
932
+ if (shouldReverseTop) {
933
+ position = this._adjustPos(position, true);
934
+ }
935
+
936
+ if (shouldReverseLeftSide && widthIsBigger) {
937
+ position = this._adjustPos(position);
938
+ }
939
+
940
+ if (isWidthOverFlow && (isViewXEnoughSideHalf || isContainerXEnoughSideHalf)) {
941
+ position = this._adjustPos(position, true, 'reduce');
942
+ }
943
+
944
+ break;
945
+
946
+ case 'topRight':
947
+ if (shouldReverseTop) {
948
+ position = this._adjustPos(position, true);
949
+ }
950
+
951
+ if (shouldReverseRightSide && widthIsBigger) {
952
+ position = this._adjustPos(position);
953
+ }
954
+
955
+ if (isWidthOverFlow && (isViewXEnoughSideHalf || isContainerXEnoughSideHalf)) {
956
+ position = this._adjustPos(position, true, 'reduce');
957
+ }
958
+
959
+ break;
960
+
961
+ case 'left':
962
+ if (shouldReverseLeft) {
963
+ position = this._adjustPos(position);
964
+ }
965
+
966
+ if (isYOverFlowSideHalf && (shouldReverseTopSide || shouldReverseBottomSide)) {
967
+ position = this._adjustPos(position, false, 'expand', shouldReverseTopSide ? 'Bottom' : 'Top');
968
+ }
969
+
970
+ break;
971
+
972
+ case 'leftTop':
973
+ if (shouldReverseLeft) {
974
+ position = this._adjustPos(position);
975
+ }
976
+
977
+ if (shouldReverseTopSide && heightIsBigger) {
978
+ position = this._adjustPos(position, true);
979
+ }
980
+
981
+ if (isHeightOverFlow && (isViewYEnoughSideHalf || isContainerYEnoughSideHalf)) {
982
+ position = this._adjustPos(position, false, 'reduce');
983
+ }
984
+
985
+ break;
986
+
987
+ case 'leftBottom':
988
+ if (shouldReverseLeft) {
989
+ position = this._adjustPos(position);
990
+ }
991
+
992
+ if (shouldReverseBottomSide && heightIsBigger) {
993
+ position = this._adjustPos(position, true);
994
+ }
995
+
996
+ if (isHeightOverFlow && (isViewYEnoughSideHalf || isContainerYEnoughSideHalf)) {
997
+ position = this._adjustPos(position, false, 'reduce');
998
+ }
999
+
1000
+ break;
1001
+
1002
+ case 'bottom':
1003
+ if (shouldReverseBottom) {
1004
+ position = this._adjustPos(position, true);
1005
+ }
1006
+
1007
+ if (isXOverFlowSideHalf && (shouldReverseLeftSide || shouldReverseRightSide)) {
1008
+ position = this._adjustPos(position, true, 'expand', shouldReverseLeftSide ? 'Right' : 'Left');
1009
+ }
1010
+
1011
+ break;
1012
+
1013
+ case 'bottomLeft':
1014
+ if (shouldReverseBottom) {
1015
+ position = this._adjustPos(position, true);
1016
+ }
1017
+
1018
+ if (shouldReverseLeftSide && widthIsBigger) {
1019
+ position = this._adjustPos(position);
1020
+ }
1021
+
1022
+ if (isWidthOverFlow && (isViewXEnoughSideHalf || isContainerXEnoughSideHalf)) {
1023
+ position = this._adjustPos(position, true, 'reduce');
1024
+ }
1025
+
1026
+ break;
1027
+
1028
+ case 'bottomRight':
1029
+ if (shouldReverseBottom) {
1030
+ position = this._adjustPos(position, true);
1031
+ }
1032
+
1033
+ if (shouldReverseRightSide && widthIsBigger) {
1034
+ position = this._adjustPos(position);
1035
+ }
1036
+
1037
+ if (isWidthOverFlow && (isViewXEnoughSideHalf || isContainerXEnoughSideHalf)) {
1038
+ position = this._adjustPos(position, true, 'reduce');
1039
+ }
1040
+
1041
+ break;
1042
+
1043
+ case 'right':
1044
+ if (shouldReverseRight) {
1045
+ position = this._adjustPos(position);
1046
+ }
1047
+
1048
+ if (isYOverFlowSideHalf && (shouldReverseTopSide || shouldReverseBottomSide)) {
1049
+ position = this._adjustPos(position, false, 'expand', shouldReverseTopSide ? 'Bottom' : 'Top');
1050
+ }
1051
+
1052
+ break;
1053
+
1054
+ case 'rightTop':
1055
+ if (shouldReverseRight) {
1056
+ position = this._adjustPos(position);
1057
+ }
1058
+
1059
+ if (shouldReverseTopSide && heightIsBigger) {
1060
+ position = this._adjustPos(position, true);
1061
+ }
1062
+
1063
+ if (isHeightOverFlow && (isViewYEnoughSideHalf || isContainerYEnoughSideHalf)) {
1064
+ position = this._adjustPos(position, false, 'reduce');
1065
+ }
1066
+
1067
+ break;
1068
+
1069
+ case 'rightBottom':
1070
+ if (shouldReverseRight) {
1071
+ position = this._adjustPos(position);
1072
+ }
1073
+
1074
+ if (shouldReverseBottomSide && heightIsBigger) {
1075
+ position = this._adjustPos(position, true);
1076
+ }
1077
+
1078
+ if (isHeightOverFlow && (isViewYEnoughSideHalf || isContainerYEnoughSideHalf)) {
1079
+ position = this._adjustPos(position, false, 'reduce');
1080
+ }
1081
+
1082
+ break;
1083
+
1084
+ case 'leftTopOver':
1085
+ if (shouldReverseTopOver) {
1086
+ position = this._adjustPos(position, true);
1087
+ }
1088
+
1089
+ if (shouldReverseLeftOver) {
1090
+ position = this._adjustPos(position);
1091
+ }
1092
+
1093
+ break;
1094
+
1095
+ case 'leftBottomOver':
1096
+ if (shouldReverseBottomOver) {
1097
+ position = this._adjustPos(position, true);
1098
+ }
1099
+
1100
+ if (shouldReverseLeftOver) {
1101
+ position = this._adjustPos(position);
1102
+ }
1103
+
1104
+ break;
1105
+
1106
+ case 'rightTopOver':
1107
+ if (shouldReverseTopOver) {
1108
+ position = this._adjustPos(position, true);
1109
+ }
1110
+
1111
+ if (shouldReverseRightOver) {
1112
+ position = this._adjustPos(position);
1113
+ }
1114
+
1115
+ break;
1116
+
1117
+ case 'rightBottomOver':
1118
+ if (shouldReverseBottomOver) {
1119
+ position = this._adjustPos(position, true);
1120
+ }
1121
+
1122
+ if (shouldReverseRightOver) {
1123
+ position = this._adjustPos(position);
1124
+ }
1125
+
1126
+ break;
1127
+
1128
+ default:
1129
+ break;
1130
+ } // 判断溢出 Judgment overflow
1131
+ // 上下方向 top and bottom
1132
+
1133
+
1134
+ if (this.isTB(position)) {
1135
+ isHeightOverFlow = isViewYOverFlow && isContainerYOverFlow; // Related PR: https://github.com/DouyinFE/semi-design/pull/1297
1136
+ // If clientRight or restClientRight less than 0, means that the left and right parts of the trigger are blocked
1137
+ // Then the display of the wrapper will also be affected, make width overflow to offset the wrapper
1138
+
1139
+ if (position === 'top' || position === 'bottom') {
1140
+ isWidthOverFlow = isViewXOverFlowSideHalf && isContainerXOverFlowSideHalf || clientRight < 0 || restClientRight < 0;
1141
+ } else {
1142
+ isWidthOverFlow = isViewXOverFlowSide && isContainerXOverFlowSide || clientRight < 0 || restClientRight < 0;
1143
+ }
1144
+ } // 左右方向 left and right
1145
+
1146
+
1147
+ if (this.isLR(position)) {
1148
+ isWidthOverFlow = isViewXOverFlow && isContainerXOverFlow; // If clientTop or restClientTop less than 0, means that the top and bottom parts of the trigger are blocked
1149
+ // Then the display of the wrapper will also be affected, make height overflow to offset the wrapper
1150
+
1151
+ if (position === 'left' || position === 'right') {
1152
+ isHeightOverFlow = isViewYOverFlowSideHalf && isContainerYOverFlowSideHalf || clientTop < 0 || restClientTop < 0;
1153
+ } else {
1154
+ isHeightOverFlow = isViewYOverFlowSide && isContainerYOverFlowSide || clientTop < 0 || restClientTop < 0;
1155
+ }
1156
+ }
1157
+ }
1158
+
1159
+ return {
1160
+ position,
1161
+ isHeightOverFlow,
1162
+ isWidthOverFlow
1163
+ };
1164
+ }
1165
+
1166
+ _bindScrollEvent() {
1167
+ this._adapter.registerScrollHandler(() => this.calcPosition()); // Capture scroll events on the window to determine whether the current scrolling area (e.target) will affect the positioning of the pop-up layer relative to the viewport when scrolling
1168
+ // (By determining whether the e.target contains the triggerDom of the current tooltip) If so, the pop-up layer will also be affected and needs to be repositioned
1169
+
1170
+ }
1171
+
1172
+ unBindScrollEvent() {
1173
+ this._adapter.unregisterScrollHandler();
1174
+ }
1175
+
1176
+ _initContainerPosition() {
1177
+ this._adapter.updateContainerPosition();
1178
+ }
1179
+
1180
+ _handleTriggerKeydown(event) {
1181
+ const {
1182
+ closeOnEsc,
1183
+ disableArrowKeyDown
1184
+ } = this.getProps();
1185
+
1186
+ const container = this._adapter.getContainer();
1187
+
1188
+ const focusableElements = this._adapter.getFocusableElements(container);
1189
+
1190
+ const focusableNum = focusableElements.length;
1191
+
1192
+ switch (event && event.key) {
1193
+ case "Escape":
1194
+ handlePrevent(event);
1195
+ closeOnEsc && this._handleEscKeyDown(event);
1196
+ break;
1197
+
1198
+ case "ArrowUp":
1199
+ // when disableArrowKeyDown is true, disable tooltip's arrow keyboard event action
1200
+ !disableArrowKeyDown && focusableNum && this._handleTriggerArrowUpKeydown(focusableElements, event);
1201
+ break;
1202
+
1203
+ case "ArrowDown":
1204
+ !disableArrowKeyDown && focusableNum && this._handleTriggerArrowDownKeydown(focusableElements, event);
1205
+ break;
1206
+
1207
+ default:
1208
+ break;
1209
+ }
1210
+ }
1211
+ /**
1212
+ * focus trigger
1213
+ *
1214
+ * when trigger is 'focus' or 'hover', onFocus is bind to show popup
1215
+ * if we focus trigger, popup will show again
1216
+ *
1217
+ * 如果 trigger 是 focus 或者 hover,则它绑定了 onFocus,这里我们如果重新 focus 的话,popup 会再次打开
1218
+ * 因此 returnFocusOnClose 只支持 click trigger
1219
+ */
1220
+
1221
+
1222
+ _focusTrigger() {
1223
+ const {
1224
+ trigger,
1225
+ returnFocusOnClose,
1226
+ preventScroll
1227
+ } = this.getProps();
1228
+
1229
+ if (returnFocusOnClose && trigger !== 'custom') {
1230
+ const triggerNode = this._adapter.getTriggerNode();
1231
+
1232
+ if (triggerNode && 'focus' in triggerNode) {
1233
+ triggerNode.focus({
1234
+ preventScroll
1235
+ });
1236
+ }
1237
+ }
1238
+ }
1239
+
1240
+ _handleEscKeyDown(event) {
1241
+ const {
1242
+ trigger
1243
+ } = this.getProps();
1244
+
1245
+ if (trigger !== 'custom') {
1246
+ // Move the focus into the trigger first and then close the pop-up layer
1247
+ // to avoid the problem of opening the pop-up layer again when the focus returns to the trigger in the case of hover and focus
1248
+ this._focusTrigger();
1249
+
1250
+ this.hide();
1251
+ }
1252
+
1253
+ this._adapter.notifyEscKeydown(event);
1254
+ }
1255
+
1256
+ _handleContainerTabKeyDown(focusableElements, event) {
1257
+ const {
1258
+ preventScroll
1259
+ } = this.getProps();
1260
+
1261
+ const activeElement = this._adapter.getActiveElement();
1262
+
1263
+ const isLastCurrentFocus = focusableElements[focusableElements.length - 1] === activeElement;
1264
+
1265
+ if (isLastCurrentFocus) {
1266
+ focusableElements[0].focus({
1267
+ preventScroll
1268
+ });
1269
+ event.preventDefault(); // prevent browser default tab move behavior
1270
+ }
1271
+ }
1272
+
1273
+ _handleContainerShiftTabKeyDown(focusableElements, event) {
1274
+ const {
1275
+ preventScroll
1276
+ } = this.getProps();
1277
+
1278
+ const activeElement = this._adapter.getActiveElement();
1279
+
1280
+ const isFirstCurrentFocus = focusableElements[0] === activeElement;
1281
+
1282
+ if (isFirstCurrentFocus) {
1283
+ focusableElements[focusableElements.length - 1].focus({
1284
+ preventScroll
1285
+ });
1286
+ event.preventDefault(); // prevent browser default tab move behavior
1287
+ }
1288
+ }
1289
+
1290
+ _handleTriggerArrowDownKeydown(focusableElements, event) {
1291
+ const {
1292
+ preventScroll
1293
+ } = this.getProps();
1294
+ focusableElements[0].focus({
1295
+ preventScroll
1296
+ });
1297
+ event.preventDefault(); // prevent browser default scroll behavior
1298
+ }
1299
+
1300
+ _handleTriggerArrowUpKeydown(focusableElements, event) {
1301
+ const {
1302
+ preventScroll
1303
+ } = this.getProps();
1304
+ focusableElements[focusableElements.length - 1].focus({
1305
+ preventScroll
1306
+ });
1307
+ event.preventDefault(); // prevent browser default scroll behavior
1308
+ }
1309
+
1310
+ }