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