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