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