@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.
- package/anchor/anchor.scss +6 -0
- package/anchor/foundation.ts +7 -6
- package/anchor/linkFoundation.ts +0 -1
- package/anchor/variables.scss +4 -0
- package/autoComplete/autoComplete.scss +2 -0
- package/autoComplete/foundation.ts +23 -20
- package/autoComplete/optionFoundation.ts +0 -2
- package/avatar/animation.scss +19 -0
- package/avatar/avatar.scss +314 -1
- package/avatar/constants.ts +21 -4
- package/avatar/foundation.ts +21 -4
- package/avatar/variables.scss +66 -10
- package/badge/badge.scss +13 -0
- package/badge/constants.ts +1 -1
- package/badge/variables.scss +4 -0
- package/base/foundation.ts +2 -3
- package/breadcrumb/breadcrumb.scss +10 -4
- package/breadcrumb/foundation.ts +0 -1
- package/breadcrumb/variables.scss +4 -0
- package/button/button.scss +88 -21
- package/button/iconButton.scss +1 -0
- package/button/splitButtonGroup.scss +10 -9
- package/button/variables.scss +13 -0
- package/calendar/calendar.scss +1 -1
- package/calendar/eventUtil.ts +14 -10
- package/calendar/foundation.ts +9 -9
- package/carousel/carousel.scss +4 -0
- package/carousel/foundation.ts +12 -7
- package/cascader/cascader.scss +66 -23
- package/cascader/constants.ts +5 -1
- package/cascader/foundation.ts +111 -63
- package/cascader/util.ts +64 -10
- package/cascader/variables.scss +5 -1
- package/checkbox/checkbox.scss +0 -1
- package/checkbox/checkboxFoundation.ts +1 -2
- package/checkbox/checkboxGroupFoundation.ts +0 -1
- package/collapse/foundation.ts +1 -0
- package/datePicker/_utils/getDefaultFormatToken.ts +1 -0
- package/datePicker/_utils/getInsetInputFormatToken.ts +1 -0
- package/datePicker/_utils/getInsetInputValueFromInsetInputStr.ts +1 -0
- package/datePicker/_utils/getYears.ts +8 -4
- package/datePicker/_utils/isValidTimeZone.ts +3 -0
- package/datePicker/constants.ts +1 -1
- package/datePicker/datePicker.scss +170 -21
- package/datePicker/foundation.ts +175 -150
- package/datePicker/inputFoundation.ts +34 -16
- package/datePicker/monthFoundation.ts +0 -1
- package/datePicker/monthsGridFoundation.ts +52 -32
- package/datePicker/variables.scss +13 -4
- package/datePicker/yearAndMonthFoundation.ts +68 -21
- package/descriptions/constants.ts +2 -1
- package/descriptions/descriptions.scss +20 -0
- package/descriptions/foundation.ts +36 -0
- package/descriptions/variables.scss +10 -0
- package/dropdown/constants.ts +1 -1
- package/dropdown/dropdown.scss +5 -0
- package/dropdown/foundation.ts +4 -3
- package/dropdown/menuFoundation.ts +3 -3
- package/form/constants.ts +2 -1
- package/form/form.scss +5 -2
- package/form/foundation.ts +12 -10
- package/form/interface.ts +5 -6
- package/form/utils.ts +39 -16
- package/form/variables.scss +3 -0
- package/grid/grid.scss +1 -1
- package/image/constants.ts +5 -1
- package/image/image.scss +9 -5
- package/image/previewFooterFoundation.ts +1 -4
- package/image/previewFoundation.ts +1 -1
- package/image/previewImageFoundation.ts +61 -70
- package/image/previewInnerFoundation.ts +93 -47
- package/image/utils.ts +18 -20
- package/image/variables.scss +1 -1
- package/input/foundation.ts +2 -4
- package/input/input.scss +48 -3
- package/input/textarea.scss +34 -0
- package/input/textareaFoundation.ts +42 -18
- package/input/variables.scss +7 -0
- package/inputNumber/foundation.ts +0 -5
- package/inputNumber/inputNumber.scss +9 -0
- package/lib/cjs/anchor/anchor.css +5 -0
- package/lib/cjs/anchor/anchor.scss +6 -0
- package/lib/cjs/anchor/constants.js +1 -3
- package/lib/cjs/anchor/foundation.js +20 -80
- package/lib/cjs/anchor/linkFoundation.js +3 -16
- package/lib/cjs/anchor/variables.scss +4 -0
- package/lib/cjs/autoComplete/autoComplete.css +1 -0
- package/lib/cjs/autoComplete/autoComplete.scss +2 -0
- package/lib/cjs/autoComplete/constants.js +3 -6
- package/lib/cjs/autoComplete/foundation.d.ts +3 -1
- package/lib/cjs/autoComplete/foundation.js +37 -149
- package/lib/cjs/autoComplete/optionFoundation.js +2 -14
- package/lib/cjs/avatar/animation.scss +19 -0
- package/lib/cjs/avatar/avatar.css +261 -0
- package/lib/cjs/avatar/avatar.scss +314 -1
- package/lib/cjs/avatar/constants.js +1 -4
- package/lib/cjs/avatar/foundation.d.ts +3 -0
- package/lib/cjs/avatar/foundation.js +21 -19
- package/lib/cjs/avatar/variables.scss +66 -10
- package/lib/cjs/backtop/constants.js +1 -3
- package/lib/cjs/backtop/foundation.d.ts +2 -2
- package/lib/cjs/backtop/foundation.js +0 -21
- package/lib/cjs/badge/badge.css +10 -0
- package/lib/cjs/badge/badge.scss +13 -0
- package/lib/cjs/badge/constants.js +2 -4
- package/lib/cjs/badge/variables.scss +4 -0
- package/lib/cjs/banner/constants.js +1 -3
- package/lib/cjs/banner/foundation.js +0 -7
- package/lib/cjs/base/constants.js +2 -4
- package/lib/cjs/base/foundation.d.ts +3 -3
- package/lib/cjs/base/foundation.js +12 -46
- package/lib/cjs/base/index.js +0 -3
- package/lib/cjs/breadcrumb/breadcrumb.css +5 -3
- package/lib/cjs/breadcrumb/breadcrumb.scss +10 -4
- package/lib/cjs/breadcrumb/constants.js +1 -3
- package/lib/cjs/breadcrumb/foundation.js +0 -13
- package/lib/cjs/breadcrumb/itemFoundation.js +0 -7
- package/lib/cjs/breadcrumb/variables.scss +4 -0
- package/lib/cjs/button/button.css +32 -5
- package/lib/cjs/button/button.scss +88 -21
- package/lib/cjs/button/constants.js +1 -3
- package/lib/cjs/button/iconButton.css +1 -0
- package/lib/cjs/button/iconButton.scss +1 -0
- package/lib/cjs/button/splitButtonGroup.scss +10 -9
- package/lib/cjs/button/variables.scss +13 -0
- package/lib/cjs/calendar/calendar.css +2 -2
- package/lib/cjs/calendar/calendar.scss +1 -1
- package/lib/cjs/calendar/constants.js +1 -3
- package/lib/cjs/calendar/eventUtil.d.ts +7 -6
- package/lib/cjs/calendar/eventUtil.js +15 -83
- package/lib/cjs/calendar/foundation.d.ts +4 -4
- package/lib/cjs/calendar/foundation.js +32 -128
- package/lib/cjs/card/constants.js +1 -3
- package/lib/cjs/carousel/carousel.css +4 -0
- package/lib/cjs/carousel/carousel.scss +4 -0
- package/lib/cjs/carousel/constants.js +9 -11
- package/lib/cjs/carousel/foundation.d.ts +2 -0
- package/lib/cjs/carousel/foundation.js +7 -52
- package/lib/cjs/cascader/cascader.css +45 -4
- package/lib/cjs/cascader/cascader.scss +66 -23
- package/lib/cjs/cascader/constants.d.ts +3 -0
- package/lib/cjs/cascader/constants.js +9 -8
- package/lib/cjs/cascader/foundation.d.ts +27 -8
- package/lib/cjs/cascader/foundation.js +122 -300
- package/lib/cjs/cascader/util.d.ts +9 -1
- package/lib/cjs/cascader/util.js +69 -33
- package/lib/cjs/cascader/variables.scss +5 -1
- package/lib/cjs/checkbox/checkbox.css +0 -1
- package/lib/cjs/checkbox/checkbox.scss +0 -1
- package/lib/cjs/checkbox/checkboxFoundation.js +1 -38
- package/lib/cjs/checkbox/checkboxGroupFoundation.js +1 -23
- package/lib/cjs/checkbox/constants.js +13 -15
- package/lib/cjs/collapse/constants.js +1 -3
- package/lib/cjs/collapse/foundation.d.ts +2 -1
- package/lib/cjs/collapse/foundation.js +2 -13
- package/lib/cjs/collapsible/constants.js +1 -3
- package/lib/cjs/collapsible/foundation.js +0 -9
- package/lib/cjs/datePicker/_utils/formatter.js +4 -10
- package/lib/cjs/datePicker/_utils/getDayOfWeek.d.ts +1 -1
- package/lib/cjs/datePicker/_utils/getDayOfWeek.js +0 -4
- package/lib/cjs/datePicker/_utils/getDefaultFormatToken.d.ts +1 -0
- package/lib/cjs/datePicker/_utils/getDefaultFormatToken.js +2 -6
- package/lib/cjs/datePicker/_utils/getDefaultPickerDate.d.ts +1 -1
- package/lib/cjs/datePicker/_utils/getDefaultPickerDate.js +0 -15
- package/lib/cjs/datePicker/_utils/getFullDateOffset.js +0 -7
- package/lib/cjs/datePicker/_utils/getInsetInputFormatToken.js +2 -6
- package/lib/cjs/datePicker/_utils/getInsetInputValueFromInsetInputStr.js +1 -6
- package/lib/cjs/datePicker/_utils/getMonthTable.d.ts +1 -1
- package/lib/cjs/datePicker/_utils/getMonthTable.js +7 -18
- package/lib/cjs/datePicker/_utils/getMonthsInYear.js +1 -3
- package/lib/cjs/datePicker/_utils/getYears.d.ts +1 -1
- package/lib/cjs/datePicker/_utils/getYears.js +9 -7
- package/lib/cjs/datePicker/_utils/index.js +0 -13
- package/lib/cjs/datePicker/_utils/isAfter.js +0 -4
- package/lib/cjs/datePicker/_utils/isBefore.js +0 -4
- package/lib/cjs/datePicker/_utils/isBetween.js +0 -4
- package/lib/cjs/datePicker/_utils/isDate.js +0 -1
- package/lib/cjs/datePicker/_utils/isSameDay.js +0 -4
- package/lib/cjs/datePicker/_utils/isTimestamp.js +0 -4
- package/lib/cjs/datePicker/_utils/isUnixTimestamp.js +0 -4
- package/lib/cjs/datePicker/_utils/isValidDate.js +0 -1
- package/lib/cjs/datePicker/_utils/isValidTimeZone.d.ts +1 -0
- package/lib/cjs/datePicker/_utils/isValidTimeZone.js +9 -0
- package/lib/cjs/datePicker/_utils/isWithinInterval.js +0 -4
- package/lib/cjs/datePicker/_utils/parser.js +0 -10
- package/lib/cjs/datePicker/constants.d.ts +1 -1
- package/lib/cjs/datePicker/constants.js +28 -31
- package/lib/cjs/datePicker/datePicker.css +88 -13
- package/lib/cjs/datePicker/datePicker.scss +170 -21
- package/lib/cjs/datePicker/foundation.d.ts +79 -50
- package/lib/cjs/datePicker/foundation.js +173 -441
- package/lib/cjs/datePicker/inputFoundation.d.ts +15 -6
- package/lib/cjs/datePicker/inputFoundation.js +35 -98
- package/lib/cjs/datePicker/monthFoundation.d.ts +1 -1
- package/lib/cjs/datePicker/monthFoundation.js +2 -28
- package/lib/cjs/datePicker/monthsGridFoundation.d.ts +18 -13
- package/lib/cjs/datePicker/monthsGridFoundation.js +70 -247
- package/lib/cjs/datePicker/variables.scss +13 -4
- package/lib/cjs/datePicker/yearAndMonthFoundation.d.ts +68 -13
- package/lib/cjs/datePicker/yearAndMonthFoundation.js +55 -42
- package/lib/cjs/descriptions/constants.d.ts +1 -0
- package/lib/cjs/descriptions/constants.js +3 -4
- package/lib/cjs/descriptions/descriptions.css +15 -0
- package/lib/cjs/descriptions/descriptions.scss +20 -0
- package/lib/cjs/descriptions/foundation.d.ts +7 -0
- package/lib/cjs/descriptions/foundation.js +45 -0
- package/lib/cjs/descriptions/variables.scss +10 -0
- package/lib/cjs/divider/constants.js +1 -3
- package/lib/cjs/dropdown/constants.js +4 -7
- package/lib/cjs/dropdown/dropdown.css +4 -0
- package/lib/cjs/dropdown/dropdown.scss +5 -0
- package/lib/cjs/dropdown/foundation.js +9 -25
- package/lib/cjs/dropdown/menuFoundation.js +9 -28
- package/lib/cjs/empty/constants.js +1 -3
- package/lib/cjs/form/constants.d.ts +1 -0
- package/lib/cjs/form/constants.js +3 -4
- package/lib/cjs/form/form.css +4 -0
- package/lib/cjs/form/form.scss +5 -2
- package/lib/cjs/form/foundation.d.ts +4 -4
- package/lib/cjs/form/foundation.js +84 -214
- package/lib/cjs/form/interface.d.ts +10 -10
- package/lib/cjs/form/utils.d.ts +10 -1
- package/lib/cjs/form/utils.js +85 -93
- package/lib/cjs/form/variables.scss +3 -0
- package/lib/cjs/grid/constants.js +1 -3
- package/lib/cjs/grid/grid.css +1 -1
- package/lib/cjs/grid/grid.scss +1 -1
- package/lib/cjs/highlight/constants.js +1 -3
- package/lib/cjs/icons/constants.js +1 -3
- package/lib/cjs/image/constants.d.ts +4 -1
- package/lib/cjs/image/constants.js +7 -5
- package/lib/cjs/image/image.css +4 -2
- package/lib/cjs/image/image.scss +9 -5
- package/lib/cjs/image/imageFoundation.js +4 -18
- package/lib/cjs/image/previewFooterFoundation.d.ts +0 -1
- package/lib/cjs/image/previewFooterFoundation.js +0 -14
- package/lib/cjs/image/previewFoundation.js +0 -11
- package/lib/cjs/image/previewImageFoundation.d.ts +9 -24
- package/lib/cjs/image/previewImageFoundation.js +79 -164
- package/lib/cjs/image/previewInnerFoundation.d.ts +19 -15
- package/lib/cjs/image/previewInnerFoundation.js +108 -114
- package/lib/cjs/image/utils.d.ts +1 -1
- package/lib/cjs/image/utils.js +46 -35
- package/lib/cjs/image/variables.scss +1 -1
- package/lib/cjs/input/constants.js +1 -3
- package/lib/cjs/input/foundation.js +19 -104
- package/lib/cjs/input/input.css +45 -1
- package/lib/cjs/input/input.scss +48 -3
- package/lib/cjs/input/textarea.css +20 -0
- package/lib/cjs/input/textarea.scss +34 -0
- package/lib/cjs/input/textareaFoundation.d.ts +1 -1
- package/lib/cjs/input/textareaFoundation.js +58 -101
- package/lib/cjs/input/util/calculateNodeHeight.js +6 -18
- package/lib/cjs/input/util/getSizingData.js +7 -11
- package/lib/cjs/input/variables.scss +7 -0
- package/lib/cjs/inputNumber/constants.js +0 -2
- package/lib/cjs/inputNumber/foundation.js +28 -197
- package/lib/cjs/inputNumber/inputNumber.css +4 -0
- package/lib/cjs/inputNumber/inputNumber.scss +9 -0
- package/lib/cjs/layout/constants.js +1 -3
- package/lib/cjs/list/constants.js +1 -3
- package/lib/cjs/modal/constants.js +1 -3
- package/lib/cjs/modal/modal.css +8 -0
- package/lib/cjs/modal/modal.scss +10 -1
- package/lib/cjs/modal/modalContentFoundation.js +0 -20
- package/lib/cjs/modal/modalFoundation.d.ts +8 -4
- package/lib/cjs/modal/modalFoundation.js +40 -15
- package/lib/cjs/modal/variables.scss +6 -1
- package/lib/cjs/navigation/NavItem.js +0 -12
- package/lib/cjs/navigation/constants.js +1 -4
- package/lib/cjs/navigation/foundation.js +3 -70
- package/lib/cjs/navigation/itemFoundation.js +3 -22
- package/lib/cjs/navigation/subNavFoundation.js +7 -42
- package/lib/cjs/notification/constants.js +3 -6
- package/lib/cjs/notification/notification.css +18 -0
- package/lib/cjs/notification/notification.scss +21 -1
- package/lib/cjs/notification/notificationFoundation.d.ts +6 -6
- package/lib/cjs/notification/notificationFoundation.js +0 -16
- package/lib/cjs/notification/notificationListFoundation.d.ts +4 -1
- package/lib/cjs/notification/notificationListFoundation.js +15 -18
- package/lib/cjs/overflowList/constants.d.ts +6 -4
- package/lib/cjs/overflowList/constants.js +3 -3
- package/lib/cjs/overflowList/foundation.d.ts +3 -1
- package/lib/cjs/overflowList/foundation.js +59 -68
- package/lib/cjs/pagination/constants.js +1 -3
- package/lib/cjs/pagination/foundation.d.ts +5 -3
- package/lib/cjs/pagination/foundation.js +36 -93
- package/lib/cjs/pagination/pagination.css +23 -0
- package/lib/cjs/pagination/pagination.scss +29 -0
- package/lib/cjs/pagination/variables.scss +1 -0
- package/lib/cjs/popconfirm/constants.js +2 -4
- package/lib/cjs/popconfirm/popconfirm.css +4 -24
- package/lib/cjs/popconfirm/popconfirm.scss +4 -16
- package/lib/cjs/popconfirm/popconfirmFoundation.d.ts +4 -0
- package/lib/cjs/popconfirm/popconfirmFoundation.js +17 -19
- package/lib/cjs/popconfirm/rtl.scss +0 -13
- package/lib/cjs/popconfirm/variables.scss +0 -4
- package/lib/cjs/popover/constants.d.ts +1 -1
- package/lib/cjs/popover/constants.js +3 -6
- package/lib/cjs/popover/popover.css +2 -0
- package/lib/cjs/popover/popover.scss +2 -0
- package/lib/cjs/progress/constants.js +1 -3
- package/lib/cjs/progress/generates.d.ts +2 -2
- package/lib/cjs/progress/generates.js +33 -74
- package/lib/cjs/radio/constants.js +13 -15
- package/lib/cjs/radio/radio.css +3 -0
- package/lib/cjs/radio/radio.scss +6 -3
- package/lib/cjs/radio/radioFoundation.js +0 -14
- package/lib/cjs/radio/radioGroupFoundation.js +3 -23
- package/lib/cjs/radio/radioInnerFoundation.js +1 -19
- package/lib/cjs/radio/variables.scss +4 -0
- package/lib/cjs/rating/constants.js +1 -3
- package/lib/cjs/rating/foundation.js +10 -62
- package/lib/cjs/scrollList/constants.js +2 -4
- package/lib/cjs/scrollList/foundation.js +0 -4
- package/lib/cjs/scrollList/itemFoundation.js +8 -61
- package/lib/cjs/scrollList/scrollTo.js +2 -5
- package/lib/cjs/select/constants.js +3 -6
- package/lib/cjs/select/foundation.d.ts +8 -6
- package/lib/cjs/select/foundation.js +172 -434
- package/lib/cjs/select/option.scss +1 -1
- package/lib/cjs/select/optionFoundation.js +2 -14
- package/lib/cjs/select/select.css +50 -0
- package/lib/cjs/select/select.scss +74 -5
- package/lib/cjs/select/variables.scss +9 -6
- package/lib/cjs/sideSheet/constants.js +2 -4
- package/lib/cjs/sideSheet/sideSheet.css +30 -0
- package/lib/cjs/sideSheet/sideSheet.scss +38 -0
- package/lib/cjs/sideSheet/sideSheetFoundation.d.ts +1 -0
- package/lib/cjs/sideSheet/sideSheetFoundation.js +0 -18
- package/lib/cjs/sideSheet/variables.scss +7 -0
- package/lib/cjs/skeleton/constants.js +1 -3
- package/lib/cjs/skeleton/skeleton.css +3 -2
- package/lib/cjs/skeleton/skeleton.scss +1 -0
- package/lib/cjs/skeleton/variables.scss +2 -2
- package/lib/cjs/slider/constants.d.ts +1 -0
- package/lib/cjs/slider/constants.js +8 -9
- package/lib/cjs/slider/foundation.d.ts +13 -2
- package/lib/cjs/slider/foundation.js +30 -226
- package/lib/cjs/slider/slider.css +25 -11
- package/lib/cjs/slider/slider.scss +16 -1
- package/lib/cjs/slider/variables.scss +15 -9
- package/lib/cjs/space/constants.js +1 -3
- package/lib/cjs/spin/constants.js +1 -3
- package/lib/cjs/spin/foundation.js +3 -13
- package/lib/cjs/spin/spin.css +3 -0
- package/lib/cjs/spin/spin.scss +3 -0
- package/lib/cjs/steps/bacisSteps.scss +10 -3
- package/lib/cjs/steps/constants.js +2 -4
- package/lib/cjs/steps/fillSteps.scss +7 -7
- package/lib/cjs/steps/steps.css +27 -22
- package/lib/cjs/steps/variables.scss +3 -3
- package/lib/cjs/switch/constants.js +13 -15
- package/lib/cjs/switch/foundation.js +1 -21
- package/lib/cjs/switch/switch.css +10 -0
- package/lib/cjs/switch/switch.scss +13 -2
- package/lib/cjs/table/bodyFoundation.js +1 -34
- package/lib/cjs/table/cellFoundation.js +0 -5
- package/lib/cjs/table/constants.d.ts +0 -1
- package/lib/cjs/table/constants.js +13 -18
- package/lib/cjs/table/foundation.d.ts +26 -16
- package/lib/cjs/table/foundation.js +79 -308
- package/lib/cjs/table/rtl.scss +33 -2
- package/lib/cjs/table/table.css +100 -64
- package/lib/cjs/table/table.scss +66 -8
- package/lib/cjs/table/tableRowFoundation.js +0 -12
- package/lib/cjs/table/tableSelectionCellFoundation.js +0 -6
- package/lib/cjs/table/utils.d.ts +6 -4
- package/lib/cjs/table/utils.js +27 -160
- package/lib/cjs/table/variables.scss +6 -3
- package/lib/cjs/tabs/constants.js +21 -23
- package/lib/cjs/tabs/foundation.js +2 -40
- package/lib/cjs/tabs/tabs.css +207 -7
- package/lib/cjs/tabs/tabs.scss +339 -24
- package/lib/cjs/tag/constants.js +1 -4
- package/lib/cjs/tag/tag.css +34 -1
- package/lib/cjs/tag/tag.scss +43 -4
- package/lib/cjs/tag/variables.scss +5 -0
- package/lib/cjs/tagInput/constants.js +1 -3
- package/lib/cjs/tagInput/foundation.d.ts +7 -4
- package/lib/cjs/tagInput/foundation.js +64 -88
- package/lib/cjs/tagInput/tagInput.css +35 -9
- package/lib/cjs/tagInput/tagInput.scss +41 -12
- package/lib/cjs/tagInput/utils/getSplitedArray.js +0 -11
- package/lib/cjs/tagInput/variables.scss +2 -0
- package/lib/cjs/timePicker/ComboxFoundation.js +6 -41
- package/lib/cjs/timePicker/constants.js +3 -6
- package/lib/cjs/timePicker/foundation.d.ts +2 -2
- package/lib/cjs/timePicker/foundation.js +28 -107
- package/lib/cjs/timePicker/inputFoundation.js +4 -25
- package/lib/cjs/timePicker/timePicker.css +15 -0
- package/lib/cjs/timePicker/timePicker.scss +22 -1
- package/lib/cjs/timePicker/utils/index.js +12 -51
- package/lib/cjs/timePicker/utils/localeDate.js +0 -10
- package/lib/cjs/timeline/constants.js +2 -4
- package/lib/cjs/toast/animation.scss +3 -0
- package/lib/cjs/toast/constants.js +3 -6
- package/lib/cjs/toast/toast.css +35 -3
- package/lib/cjs/toast/toast.scss +43 -3
- package/lib/cjs/toast/toastFoundation.d.ts +5 -4
- package/lib/cjs/toast/toastFoundation.js +0 -14
- package/lib/cjs/toast/toastListFoundation.d.ts +5 -0
- package/lib/cjs/toast/toastListFoundation.js +10 -22
- package/lib/cjs/toast/variables.scss +14 -0
- package/lib/cjs/tooltip/constants.d.ts +1 -1
- package/lib/cjs/tooltip/constants.js +2 -4
- package/lib/cjs/tooltip/foundation.d.ts +5 -2
- package/lib/cjs/tooltip/foundation.js +143 -336
- package/lib/cjs/tooltip/tooltip.css +7 -0
- package/lib/cjs/tooltip/tooltip.scss +9 -0
- package/lib/cjs/transfer/constants.js +1 -3
- package/lib/cjs/transfer/foundation.d.ts +1 -1
- package/lib/cjs/transfer/foundation.js +4 -69
- package/lib/cjs/transfer/transfer.css +4 -0
- package/lib/cjs/transfer/transfer.scss +7 -0
- package/lib/cjs/transfer/transferUtils.js +5 -27
- package/lib/cjs/tree/constants.js +2 -4
- package/lib/cjs/tree/foundation.d.ts +14 -9
- package/lib/cjs/tree/foundation.js +60 -183
- package/lib/cjs/tree/rtl.scss +19 -11
- package/lib/cjs/tree/tree.css +147 -65
- package/lib/cjs/tree/tree.scss +112 -17
- package/lib/cjs/tree/treeUtil.d.ts +17 -8
- package/lib/cjs/tree/treeUtil.js +102 -195
- package/lib/cjs/tree/variables.scss +3 -2
- package/lib/cjs/treeSelect/constants.js +3 -5
- package/lib/cjs/treeSelect/foundation.d.ts +26 -13
- package/lib/cjs/treeSelect/foundation.js +153 -248
- package/lib/cjs/treeSelect/treeSelect.css +55 -10
- package/lib/cjs/treeSelect/treeSelect.scss +76 -20
- package/lib/cjs/treeSelect/variables.scss +4 -2
- package/lib/cjs/typography/constants.d.ts +1 -0
- package/lib/cjs/typography/constants.js +2 -3
- package/lib/cjs/typography/formatNumeral.d.ts +3 -3
- package/lib/cjs/typography/formatNumeral.js +22 -43
- package/lib/cjs/typography/typography.css +135 -2
- package/lib/cjs/typography/typography.scss +151 -8
- package/lib/cjs/typography/variables.scss +52 -0
- package/lib/cjs/upload/constants.js +2 -4
- package/lib/cjs/upload/fileCardFoundation.d.ts +9 -0
- package/lib/cjs/upload/fileCardFoundation.js +18 -0
- package/lib/cjs/upload/foundation.d.ts +14 -5
- package/lib/cjs/upload/foundation.js +107 -247
- package/lib/cjs/upload/upload.css +9 -0
- package/lib/cjs/upload/upload.scss +8 -0
- package/lib/cjs/upload/utils.js +14 -33
- package/lib/cjs/utils/Event.js +1 -21
- package/lib/cjs/utils/FocusHandle.d.ts +1 -1
- package/lib/cjs/utils/FocusHandle.js +6 -35
- package/lib/cjs/utils/Logger.js +0 -21
- package/lib/cjs/utils/Store.js +0 -10
- package/lib/cjs/utils/a11y.js +18 -43
- package/lib/cjs/utils/array.d.ts +2 -2
- package/lib/cjs/utils/array.js +2 -9
- package/lib/cjs/utils/arrayMove.js +0 -1
- package/lib/cjs/utils/classnames.js +0 -12
- package/lib/cjs/utils/date-fns-extra.d.ts +28 -17
- package/lib/cjs/utils/date-fns-extra.js +82 -51
- package/lib/cjs/utils/dom.d.ts +1 -1
- package/lib/cjs/utils/dom.js +0 -13
- package/lib/cjs/utils/function.js +0 -2
- package/lib/cjs/utils/getDataAttr.js +1 -3
- package/lib/cjs/utils/getHighlight.js +5 -26
- package/lib/cjs/utils/getMotionObjFromProps.js +4 -16
- package/lib/cjs/utils/index.js +0 -4
- package/lib/cjs/utils/isBothNaN.js +0 -2
- package/lib/cjs/utils/isElement.js +0 -1
- package/lib/cjs/utils/isEnterPress.js +0 -5
- package/lib/cjs/utils/isEscPress.js +0 -5
- package/lib/cjs/utils/isNullOrUndefined.js +0 -1
- package/lib/cjs/utils/isNumber.js +0 -1
- package/lib/cjs/utils/isObject.js +0 -1
- package/lib/cjs/utils/isPromise.js +0 -3
- package/lib/cjs/utils/isString.js +0 -1
- package/lib/cjs/utils/keyCode.js +0 -105
- package/lib/cjs/utils/log.js +0 -5
- package/lib/cjs/utils/number.js +0 -2
- package/lib/cjs/utils/object.d.ts +4 -4
- package/lib/cjs/utils/object.js +10 -36
- package/lib/cjs/utils/set.js +0 -8
- package/lib/cjs/utils/shallowEqualObjects.js +0 -7
- package/lib/cjs/utils/touchPolyfill.js +1 -8
- package/lib/cjs/utils/type.d.ts +3 -3
- package/lib/cjs/utils/uuid.js +4 -11
- package/lib/cjs/utils/warning.js +1 -2
- package/lib/es/anchor/anchor.css +5 -0
- package/lib/es/anchor/anchor.scss +6 -0
- package/lib/es/anchor/constants.js +1 -1
- package/lib/es/anchor/foundation.js +20 -73
- package/lib/es/anchor/linkFoundation.js +3 -12
- package/lib/es/anchor/variables.scss +4 -0
- package/lib/es/autoComplete/autoComplete.css +1 -0
- package/lib/es/autoComplete/autoComplete.scss +2 -0
- package/lib/es/autoComplete/constants.js +3 -3
- package/lib/es/autoComplete/foundation.d.ts +3 -1
- package/lib/es/autoComplete/foundation.js +37 -142
- package/lib/es/autoComplete/optionFoundation.js +2 -10
- package/lib/es/avatar/animation.scss +19 -0
- package/lib/es/avatar/avatar.css +261 -0
- package/lib/es/avatar/avatar.scss +314 -1
- package/lib/es/avatar/constants.js +1 -2
- package/lib/es/avatar/foundation.d.ts +3 -0
- package/lib/es/avatar/foundation.js +21 -14
- package/lib/es/avatar/variables.scss +66 -10
- package/lib/es/backtop/constants.js +1 -1
- package/lib/es/backtop/foundation.d.ts +2 -2
- package/lib/es/backtop/foundation.js +0 -16
- package/lib/es/badge/badge.css +10 -0
- package/lib/es/badge/badge.scss +13 -0
- package/lib/es/badge/constants.js +2 -2
- package/lib/es/badge/variables.scss +4 -0
- package/lib/es/banner/constants.js +1 -1
- package/lib/es/banner/foundation.js +0 -3
- package/lib/es/base/constants.js +2 -2
- package/lib/es/base/foundation.d.ts +3 -3
- package/lib/es/base/foundation.js +11 -44
- package/lib/es/breadcrumb/breadcrumb.css +5 -3
- package/lib/es/breadcrumb/breadcrumb.scss +10 -4
- package/lib/es/breadcrumb/constants.js +1 -1
- package/lib/es/breadcrumb/foundation.js +0 -8
- package/lib/es/breadcrumb/itemFoundation.js +0 -3
- package/lib/es/breadcrumb/variables.scss +4 -0
- package/lib/es/button/button.css +32 -5
- package/lib/es/button/button.scss +88 -21
- package/lib/es/button/constants.js +1 -1
- package/lib/es/button/iconButton.css +1 -0
- package/lib/es/button/iconButton.scss +1 -0
- package/lib/es/button/splitButtonGroup.scss +10 -9
- package/lib/es/button/variables.scss +13 -0
- package/lib/es/calendar/calendar.css +2 -2
- package/lib/es/calendar/calendar.scss +1 -1
- package/lib/es/calendar/constants.js +1 -1
- package/lib/es/calendar/eventUtil.d.ts +7 -6
- package/lib/es/calendar/eventUtil.js +15 -45
- package/lib/es/calendar/foundation.d.ts +4 -4
- package/lib/es/calendar/foundation.js +32 -122
- package/lib/es/card/constants.js +1 -1
- package/lib/es/carousel/carousel.css +4 -0
- package/lib/es/carousel/carousel.scss +4 -0
- package/lib/es/carousel/constants.js +9 -9
- package/lib/es/carousel/foundation.d.ts +2 -0
- package/lib/es/carousel/foundation.js +7 -47
- package/lib/es/cascader/cascader.css +45 -4
- package/lib/es/cascader/cascader.scss +66 -23
- package/lib/es/cascader/constants.d.ts +3 -0
- package/lib/es/cascader/constants.js +7 -5
- package/lib/es/cascader/foundation.d.ts +27 -8
- package/lib/es/cascader/foundation.js +125 -286
- package/lib/es/cascader/util.d.ts +9 -1
- package/lib/es/cascader/util.js +65 -24
- package/lib/es/cascader/variables.scss +5 -1
- package/lib/es/checkbox/checkbox.css +0 -1
- package/lib/es/checkbox/checkbox.scss +0 -1
- package/lib/es/checkbox/checkboxFoundation.js +1 -34
- package/lib/es/checkbox/checkboxGroupFoundation.js +1 -20
- package/lib/es/checkbox/constants.js +13 -13
- package/lib/es/collapse/constants.js +1 -1
- package/lib/es/collapse/foundation.d.ts +2 -1
- package/lib/es/collapse/foundation.js +2 -9
- package/lib/es/collapsible/constants.js +1 -1
- package/lib/es/collapsible/foundation.js +0 -7
- package/lib/es/datePicker/_utils/formatter.js +4 -8
- package/lib/es/datePicker/_utils/getDayOfWeek.d.ts +1 -1
- package/lib/es/datePicker/_utils/getDayOfWeek.js +0 -3
- package/lib/es/datePicker/_utils/getDefaultFormatToken.d.ts +1 -0
- package/lib/es/datePicker/_utils/getDefaultFormatToken.js +2 -3
- package/lib/es/datePicker/_utils/getDefaultPickerDate.d.ts +1 -1
- package/lib/es/datePicker/_utils/getDefaultPickerDate.js +0 -10
- package/lib/es/datePicker/_utils/getFullDateOffset.js +0 -3
- package/lib/es/datePicker/_utils/getInsetInputFormatToken.js +2 -5
- package/lib/es/datePicker/_utils/getInsetInputValueFromInsetInputStr.js +1 -5
- package/lib/es/datePicker/_utils/getMonthTable.d.ts +1 -1
- package/lib/es/datePicker/_utils/getMonthTable.js +8 -18
- package/lib/es/datePicker/_utils/getMonthsInYear.js +1 -2
- package/lib/es/datePicker/_utils/getYears.d.ts +1 -1
- package/lib/es/datePicker/_utils/getYears.js +9 -6
- package/lib/es/datePicker/_utils/isBetween.js +0 -1
- package/lib/es/datePicker/_utils/isValidTimeZone.d.ts +1 -0
- package/lib/es/datePicker/_utils/isValidTimeZone.js +3 -0
- package/lib/es/datePicker/_utils/parser.js +0 -8
- package/lib/es/datePicker/constants.d.ts +1 -1
- package/lib/es/datePicker/constants.js +28 -28
- package/lib/es/datePicker/datePicker.css +88 -13
- package/lib/es/datePicker/datePicker.scss +170 -21
- package/lib/es/datePicker/foundation.d.ts +79 -50
- package/lib/es/datePicker/foundation.js +173 -426
- package/lib/es/datePicker/inputFoundation.d.ts +15 -6
- package/lib/es/datePicker/inputFoundation.js +35 -85
- package/lib/es/datePicker/monthFoundation.d.ts +1 -1
- package/lib/es/datePicker/monthFoundation.js +3 -22
- package/lib/es/datePicker/monthsGridFoundation.d.ts +18 -13
- package/lib/es/datePicker/monthsGridFoundation.js +70 -231
- package/lib/es/datePicker/variables.scss +13 -4
- package/lib/es/datePicker/yearAndMonthFoundation.d.ts +68 -13
- package/lib/es/datePicker/yearAndMonthFoundation.js +55 -37
- package/lib/es/descriptions/constants.d.ts +1 -0
- package/lib/es/descriptions/constants.js +3 -2
- package/lib/es/descriptions/descriptions.css +15 -0
- package/lib/es/descriptions/descriptions.scss +20 -0
- package/lib/es/descriptions/foundation.d.ts +7 -0
- package/lib/es/descriptions/foundation.js +37 -0
- package/lib/es/descriptions/variables.scss +10 -0
- package/lib/es/divider/constants.js +1 -1
- package/lib/es/dropdown/constants.js +4 -4
- package/lib/es/dropdown/dropdown.css +4 -0
- package/lib/es/dropdown/dropdown.scss +5 -0
- package/lib/es/dropdown/foundation.js +9 -20
- package/lib/es/dropdown/menuFoundation.js +9 -23
- package/lib/es/empty/constants.js +1 -1
- package/lib/es/form/constants.d.ts +1 -0
- package/lib/es/form/constants.js +3 -2
- package/lib/es/form/form.css +4 -0
- package/lib/es/form/form.scss +5 -2
- package/lib/es/form/foundation.d.ts +4 -4
- package/lib/es/form/foundation.js +84 -203
- package/lib/es/form/interface.d.ts +10 -10
- package/lib/es/form/utils.d.ts +10 -1
- package/lib/es/form/utils.js +83 -86
- package/lib/es/form/variables.scss +3 -0
- package/lib/es/grid/constants.js +1 -1
- package/lib/es/grid/grid.css +1 -1
- package/lib/es/grid/grid.scss +1 -1
- package/lib/es/highlight/constants.js +1 -1
- package/lib/es/icons/constants.js +1 -1
- package/lib/es/image/constants.d.ts +4 -1
- package/lib/es/image/constants.js +5 -2
- package/lib/es/image/image.css +4 -2
- package/lib/es/image/image.scss +9 -5
- package/lib/es/image/imageFoundation.js +4 -13
- package/lib/es/image/previewFooterFoundation.d.ts +0 -1
- package/lib/es/image/previewFooterFoundation.js +0 -10
- package/lib/es/image/previewFoundation.js +0 -7
- package/lib/es/image/previewImageFoundation.d.ts +9 -24
- package/lib/es/image/previewImageFoundation.js +79 -156
- package/lib/es/image/previewInnerFoundation.d.ts +19 -15
- package/lib/es/image/previewInnerFoundation.js +108 -107
- package/lib/es/image/utils.d.ts +1 -1
- package/lib/es/image/utils.js +46 -27
- package/lib/es/image/variables.scss +1 -1
- package/lib/es/input/constants.js +1 -1
- package/lib/es/input/foundation.js +19 -96
- package/lib/es/input/input.css +45 -1
- package/lib/es/input/input.scss +48 -3
- package/lib/es/input/textarea.css +20 -0
- package/lib/es/input/textarea.scss +34 -0
- package/lib/es/input/textareaFoundation.d.ts +1 -1
- package/lib/es/input/textareaFoundation.js +58 -91
- package/lib/es/input/util/calculateNodeHeight.js +6 -18
- package/lib/es/input/util/getSizingData.js +7 -11
- package/lib/es/input/variables.scss +7 -0
- package/lib/es/inputNumber/foundation.js +28 -188
- package/lib/es/inputNumber/inputNumber.css +4 -0
- package/lib/es/inputNumber/inputNumber.scss +9 -0
- package/lib/es/layout/constants.js +1 -1
- package/lib/es/list/constants.js +1 -1
- package/lib/es/modal/constants.js +1 -1
- package/lib/es/modal/modal.css +8 -0
- package/lib/es/modal/modal.scss +10 -1
- package/lib/es/modal/modalContentFoundation.js +0 -15
- package/lib/es/modal/modalFoundation.d.ts +8 -4
- package/lib/es/modal/modalFoundation.js +40 -11
- package/lib/es/modal/variables.scss +6 -1
- package/lib/es/navigation/NavItem.js +0 -8
- package/lib/es/navigation/constants.js +2 -2
- package/lib/es/navigation/foundation.js +3 -63
- package/lib/es/navigation/itemFoundation.js +3 -19
- package/lib/es/navigation/subNavFoundation.js +7 -38
- package/lib/es/notification/constants.js +4 -4
- package/lib/es/notification/notification.css +18 -0
- package/lib/es/notification/notification.scss +21 -1
- package/lib/es/notification/notificationFoundation.d.ts +6 -6
- package/lib/es/notification/notificationFoundation.js +0 -11
- package/lib/es/notification/notificationListFoundation.d.ts +4 -1
- package/lib/es/notification/notificationListFoundation.js +15 -14
- package/lib/es/overflowList/constants.d.ts +6 -4
- package/lib/es/overflowList/constants.js +3 -1
- package/lib/es/overflowList/foundation.d.ts +3 -1
- package/lib/es/overflowList/foundation.js +59 -64
- package/lib/es/pagination/constants.js +1 -1
- package/lib/es/pagination/foundation.d.ts +5 -3
- package/lib/es/pagination/foundation.js +36 -90
- package/lib/es/pagination/pagination.css +23 -0
- package/lib/es/pagination/pagination.scss +29 -0
- package/lib/es/pagination/variables.scss +1 -0
- package/lib/es/popconfirm/constants.js +2 -2
- package/lib/es/popconfirm/popconfirm.css +4 -24
- package/lib/es/popconfirm/popconfirm.scss +4 -16
- package/lib/es/popconfirm/popconfirmFoundation.d.ts +4 -0
- package/lib/es/popconfirm/popconfirmFoundation.js +17 -14
- package/lib/es/popconfirm/rtl.scss +0 -13
- package/lib/es/popconfirm/variables.scss +0 -4
- package/lib/es/popover/constants.d.ts +1 -1
- package/lib/es/popover/constants.js +3 -3
- package/lib/es/popover/popover.css +2 -0
- package/lib/es/popover/popover.scss +2 -0
- package/lib/es/progress/constants.js +1 -1
- package/lib/es/progress/generates.d.ts +2 -2
- package/lib/es/progress/generates.js +33 -73
- package/lib/es/radio/constants.js +13 -13
- package/lib/es/radio/radio.css +3 -0
- package/lib/es/radio/radio.scss +6 -3
- package/lib/es/radio/radioFoundation.js +0 -9
- package/lib/es/radio/radioGroupFoundation.js +3 -19
- package/lib/es/radio/radioInnerFoundation.js +1 -15
- package/lib/es/radio/variables.scss +4 -0
- package/lib/es/rating/constants.js +1 -1
- package/lib/es/rating/foundation.js +10 -55
- package/lib/es/scrollList/constants.js +2 -2
- package/lib/es/scrollList/itemFoundation.js +8 -60
- package/lib/es/scrollList/scrollTo.js +2 -4
- package/lib/es/select/constants.js +3 -3
- package/lib/es/select/foundation.d.ts +8 -6
- package/lib/es/select/foundation.js +172 -420
- package/lib/es/select/option.scss +1 -1
- package/lib/es/select/optionFoundation.js +2 -10
- package/lib/es/select/select.css +50 -0
- package/lib/es/select/select.scss +74 -5
- package/lib/es/select/variables.scss +9 -6
- package/lib/es/sideSheet/constants.js +2 -2
- package/lib/es/sideSheet/sideSheet.css +30 -0
- package/lib/es/sideSheet/sideSheet.scss +38 -0
- package/lib/es/sideSheet/sideSheetFoundation.d.ts +1 -0
- package/lib/es/sideSheet/sideSheetFoundation.js +0 -12
- package/lib/es/sideSheet/variables.scss +7 -0
- package/lib/es/skeleton/constants.js +1 -1
- package/lib/es/skeleton/skeleton.css +3 -2
- package/lib/es/skeleton/skeleton.scss +1 -0
- package/lib/es/skeleton/variables.scss +2 -2
- package/lib/es/slider/constants.d.ts +1 -0
- package/lib/es/slider/constants.js +8 -7
- package/lib/es/slider/foundation.d.ts +13 -2
- package/lib/es/slider/foundation.js +30 -219
- package/lib/es/slider/slider.css +25 -11
- package/lib/es/slider/slider.scss +16 -1
- package/lib/es/slider/variables.scss +15 -9
- package/lib/es/space/constants.js +1 -1
- package/lib/es/spin/constants.js +1 -1
- package/lib/es/spin/foundation.js +3 -11
- package/lib/es/spin/spin.css +3 -0
- package/lib/es/spin/spin.scss +3 -0
- package/lib/es/steps/bacisSteps.scss +10 -3
- package/lib/es/steps/constants.js +2 -2
- package/lib/es/steps/fillSteps.scss +7 -7
- package/lib/es/steps/steps.css +27 -22
- package/lib/es/steps/variables.scss +3 -3
- package/lib/es/switch/constants.js +13 -13
- package/lib/es/switch/foundation.js +1 -16
- package/lib/es/switch/switch.css +10 -0
- package/lib/es/switch/switch.scss +13 -2
- package/lib/es/table/bodyFoundation.js +1 -25
- package/lib/es/table/cellFoundation.js +0 -1
- package/lib/es/table/constants.d.ts +0 -1
- package/lib/es/table/constants.js +13 -16
- package/lib/es/table/foundation.d.ts +26 -16
- package/lib/es/table/foundation.js +79 -313
- package/lib/es/table/rtl.scss +33 -2
- package/lib/es/table/table.css +100 -64
- package/lib/es/table/table.scss +66 -8
- package/lib/es/table/tableRowFoundation.js +1 -9
- package/lib/es/table/tableSelectionCellFoundation.js +0 -2
- package/lib/es/table/utils.d.ts +6 -4
- package/lib/es/table/utils.js +25 -119
- package/lib/es/table/variables.scss +6 -3
- package/lib/es/tabs/constants.js +21 -21
- package/lib/es/tabs/foundation.js +2 -35
- package/lib/es/tabs/tabs.css +207 -7
- package/lib/es/tabs/tabs.scss +339 -24
- package/lib/es/tag/constants.js +1 -2
- package/lib/es/tag/tag.css +34 -1
- package/lib/es/tag/tag.scss +43 -4
- package/lib/es/tag/variables.scss +5 -0
- package/lib/es/tagInput/constants.js +1 -1
- package/lib/es/tagInput/foundation.d.ts +7 -4
- package/lib/es/tagInput/foundation.js +64 -78
- package/lib/es/tagInput/tagInput.css +35 -9
- package/lib/es/tagInput/tagInput.scss +41 -12
- package/lib/es/tagInput/utils/getSplitedArray.js +0 -7
- package/lib/es/tagInput/variables.scss +2 -0
- package/lib/es/timePicker/ComboxFoundation.js +6 -32
- package/lib/es/timePicker/constants.js +3 -3
- package/lib/es/timePicker/foundation.d.ts +2 -2
- package/lib/es/timePicker/foundation.js +30 -101
- package/lib/es/timePicker/inputFoundation.js +4 -22
- package/lib/es/timePicker/timePicker.css +15 -0
- package/lib/es/timePicker/timePicker.scss +22 -1
- package/lib/es/timePicker/utils/index.js +12 -30
- package/lib/es/timePicker/utils/localeDate.js +0 -8
- package/lib/es/timeline/constants.js +2 -2
- package/lib/es/toast/animation.scss +3 -0
- package/lib/es/toast/constants.js +4 -4
- package/lib/es/toast/toast.css +35 -3
- package/lib/es/toast/toast.scss +43 -3
- package/lib/es/toast/toastFoundation.d.ts +5 -4
- package/lib/es/toast/toastFoundation.js +0 -9
- package/lib/es/toast/toastListFoundation.d.ts +5 -0
- package/lib/es/toast/toastListFoundation.js +10 -18
- package/lib/es/toast/variables.scss +14 -0
- package/lib/es/tooltip/constants.d.ts +1 -1
- package/lib/es/tooltip/constants.js +2 -2
- package/lib/es/tooltip/foundation.d.ts +5 -2
- package/lib/es/tooltip/foundation.js +143 -332
- package/lib/es/tooltip/tooltip.css +7 -0
- package/lib/es/tooltip/tooltip.scss +9 -0
- package/lib/es/transfer/constants.js +1 -1
- package/lib/es/transfer/foundation.d.ts +1 -1
- package/lib/es/transfer/foundation.js +5 -62
- package/lib/es/transfer/transfer.css +4 -0
- package/lib/es/transfer/transfer.scss +7 -0
- package/lib/es/transfer/transferUtils.js +5 -21
- package/lib/es/tree/constants.js +2 -2
- package/lib/es/tree/foundation.d.ts +14 -9
- package/lib/es/tree/foundation.js +60 -176
- package/lib/es/tree/rtl.scss +19 -11
- package/lib/es/tree/tree.css +147 -65
- package/lib/es/tree/tree.scss +112 -17
- package/lib/es/tree/treeUtil.d.ts +17 -8
- package/lib/es/tree/treeUtil.js +102 -161
- package/lib/es/tree/variables.scss +3 -2
- package/lib/es/treeSelect/constants.js +3 -3
- package/lib/es/treeSelect/foundation.d.ts +26 -13
- package/lib/es/treeSelect/foundation.js +155 -235
- package/lib/es/treeSelect/treeSelect.css +55 -10
- package/lib/es/treeSelect/treeSelect.scss +76 -20
- package/lib/es/treeSelect/variables.scss +4 -2
- package/lib/es/typography/constants.d.ts +1 -0
- package/lib/es/typography/constants.js +2 -1
- package/lib/es/typography/formatNumeral.d.ts +3 -3
- package/lib/es/typography/formatNumeral.js +22 -40
- package/lib/es/typography/typography.css +135 -2
- package/lib/es/typography/typography.scss +151 -8
- package/lib/es/typography/variables.scss +52 -0
- package/lib/es/upload/constants.js +2 -2
- package/lib/es/upload/fileCardFoundation.d.ts +9 -0
- package/lib/es/upload/fileCardFoundation.js +10 -0
- package/lib/es/upload/foundation.d.ts +14 -5
- package/lib/es/upload/foundation.js +107 -240
- package/lib/es/upload/upload.css +9 -0
- package/lib/es/upload/upload.scss +8 -0
- package/lib/es/upload/utils.js +14 -28
- package/lib/es/utils/Event.js +1 -17
- package/lib/es/utils/FocusHandle.d.ts +1 -1
- package/lib/es/utils/FocusHandle.js +6 -32
- package/lib/es/utils/Logger.js +0 -20
- package/lib/es/utils/Store.js +0 -9
- package/lib/es/utils/a11y.js +18 -31
- package/lib/es/utils/array.d.ts +2 -2
- package/lib/es/utils/array.js +2 -7
- package/lib/es/utils/classnames.js +0 -10
- package/lib/es/utils/date-fns-extra.d.ts +28 -17
- package/lib/es/utils/date-fns-extra.js +78 -40
- package/lib/es/utils/dom.d.ts +1 -1
- package/lib/es/utils/dom.js +0 -9
- package/lib/es/utils/function.js +0 -1
- package/lib/es/utils/getDataAttr.js +1 -2
- package/lib/es/utils/getHighlight.js +5 -26
- package/lib/es/utils/getMotionObjFromProps.js +4 -12
- package/lib/es/utils/isBothNaN.js +0 -1
- package/lib/es/utils/isEnterPress.js +0 -2
- package/lib/es/utils/isEscPress.js +0 -2
- package/lib/es/utils/keyCode.js +0 -104
- package/lib/es/utils/log.js +0 -3
- package/lib/es/utils/object.d.ts +4 -4
- package/lib/es/utils/object.js +10 -29
- package/lib/es/utils/set.js +0 -5
- package/lib/es/utils/shallowEqualObjects.js +0 -6
- package/lib/es/utils/touchPolyfill.js +1 -6
- package/lib/es/utils/type.d.ts +3 -3
- package/lib/es/utils/uuid.js +4 -10
- package/lib/es/utils/warning.js +1 -1
- package/modal/modal.scss +10 -1
- package/modal/modalContentFoundation.ts +3 -3
- package/modal/modalFoundation.ts +32 -7
- package/modal/variables.scss +6 -1
- package/navigation/NavItem.ts +0 -2
- package/navigation/foundation.ts +1 -3
- package/navigation/itemFoundation.ts +0 -1
- package/navigation/subNavFoundation.ts +3 -2
- package/notification/notification.scss +21 -1
- package/notification/notificationFoundation.ts +3 -3
- package/notification/notificationListFoundation.ts +14 -4
- package/overflowList/constants.ts +4 -2
- package/overflowList/foundation.ts +51 -33
- package/package.json +6 -5
- package/pagination/foundation.ts +13 -3
- package/pagination/pagination.scss +29 -0
- package/pagination/variables.scss +1 -0
- package/popconfirm/popconfirm.scss +4 -16
- package/popconfirm/popconfirmFoundation.ts +20 -2
- package/popconfirm/rtl.scss +0 -13
- package/popconfirm/variables.scss +0 -4
- package/popover/constants.ts +1 -1
- package/popover/popover.scss +2 -0
- package/radio/radio.scss +6 -3
- package/radio/radioFoundation.ts +1 -1
- package/radio/radioGroupFoundation.ts +0 -1
- package/radio/radioInnerFoundation.ts +0 -1
- package/radio/variables.scss +4 -0
- package/rating/foundation.ts +0 -1
- package/select/foundation.ts +70 -32
- package/select/option.scss +1 -1
- package/select/optionFoundation.ts +0 -2
- package/select/select.scss +74 -5
- package/select/variables.scss +9 -6
- package/sideSheet/sideSheet.scss +38 -0
- package/sideSheet/sideSheetFoundation.ts +3 -2
- package/sideSheet/variables.scss +7 -0
- package/skeleton/skeleton.scss +1 -0
- package/skeleton/variables.scss +2 -2
- package/slider/constants.ts +1 -0
- package/slider/foundation.ts +25 -29
- package/slider/slider.scss +16 -1
- package/slider/variables.scss +15 -9
- package/spin/spin.scss +3 -0
- package/steps/bacisSteps.scss +10 -3
- package/steps/fillSteps.scss +7 -7
- package/steps/variables.scss +3 -3
- package/switch/foundation.ts +2 -4
- package/switch/switch.scss +13 -2
- package/table/bodyFoundation.ts +0 -1
- package/table/constants.ts +0 -3
- package/table/foundation.ts +33 -31
- package/table/rtl.scss +33 -2
- package/table/table.scss +66 -8
- package/table/tableRowFoundation.ts +0 -1
- package/table/utils.ts +23 -43
- package/table/variables.scss +6 -3
- package/tabs/foundation.ts +2 -2
- package/tabs/tabs.scss +339 -24
- package/tag/constants.ts +19 -2
- package/tag/tag.scss +43 -4
- package/tag/variables.scss +5 -0
- package/tagInput/foundation.ts +57 -3
- package/tagInput/tagInput.scss +41 -12
- package/tagInput/variables.scss +2 -0
- package/timePicker/foundation.ts +27 -18
- package/timePicker/inputFoundation.ts +0 -2
- package/timePicker/timePicker.scss +22 -1
- package/timePicker/utils/index.ts +3 -2
- package/toast/animation.scss +3 -0
- package/toast/toast.scss +43 -3
- package/toast/toastFoundation.ts +4 -6
- package/toast/toastListFoundation.ts +13 -3
- package/toast/variables.scss +14 -0
- package/tooltip/constants.ts +1 -1
- package/tooltip/foundation.ts +96 -58
- package/tooltip/tooltip.scss +9 -0
- package/transfer/foundation.ts +0 -1
- package/transfer/transfer.scss +7 -0
- package/tree/foundation.ts +38 -33
- package/tree/rtl.scss +19 -11
- package/tree/tree.scss +112 -17
- package/tree/treeUtil.ts +64 -32
- package/tree/variables.scss +3 -2
- package/treeSelect/foundation.ts +132 -70
- package/treeSelect/treeSelect.scss +76 -20
- package/treeSelect/variables.scss +4 -2
- package/typography/constants.ts +1 -0
- package/typography/formatNumeral.ts +2 -5
- package/typography/typography.scss +151 -8
- package/typography/variables.scss +52 -0
- package/upload/fileCardFoundation.ts +17 -0
- package/upload/foundation.ts +85 -10
- package/upload/upload.scss +8 -0
- package/utils/Event.ts +0 -1
- package/utils/a11y.ts +6 -6
- package/utils/array.ts +4 -4
- package/utils/date-fns-extra.ts +83 -22
- package/utils/function.ts +0 -1
- package/utils/getDataAttr.ts +1 -1
- package/utils/getMotionObjFromProps.ts +3 -2
- 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);
|
|
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
|
-
|
|
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();
|
|
329
|
+
this.delayShow();
|
|
330
|
+
// this.show('trigger');
|
|
405
331
|
};
|
|
406
332
|
|
|
407
333
|
triggerEventSet[eventNames.mouseLeave] = () => {
|
|
408
334
|
// console.log(e);
|
|
409
|
-
this.delayHide();
|
|
410
|
-
|
|
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 {
|
|
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
|
|
413
|
+
return `${this._roundPixel(triggerRect.width / 2)}px ${-translateY * 100}%`;
|
|
498
414
|
}
|
|
499
|
-
|
|
500
415
|
if (['topRight', 'bottomRight'].includes(position)) {
|
|
501
|
-
return
|
|
416
|
+
return `calc(100% - ${this._roundPixel(triggerRect.width / 2)}px) ${-translateY * 100}%`;
|
|
502
417
|
}
|
|
503
|
-
|
|
504
418
|
if (['leftTop', 'rightTop'].includes(position)) {
|
|
505
|
-
return
|
|
419
|
+
return `${-translateX * 100}% ${this._roundPixel(triggerRect.height / 2)}px`;
|
|
506
420
|
}
|
|
507
|
-
|
|
508
421
|
if (['leftBottom', 'rightBottom'].includes(position)) {
|
|
509
|
-
return
|
|
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);
|
|
527
|
-
|
|
528
|
-
const
|
|
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;
|
|
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
|
-
|
|
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();
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
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
|
-
}
|
|
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
|
-
}
|
|
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 = '';
|
|
734
|
-
|
|
636
|
+
let transform = '';
|
|
735
637
|
if (translateX != null) {
|
|
736
|
-
transform +=
|
|
638
|
+
transform += `translateX(${translateX * 100}%) `;
|
|
737
639
|
Object.defineProperty(style, 'translateX', {
|
|
738
640
|
enumerable: false,
|
|
739
641
|
value: translateX
|
|
740
642
|
});
|
|
741
|
-
}
|
|
742
|
-
|
|
743
|
-
|
|
643
|
+
}
|
|
744
644
|
if (translateY != null) {
|
|
745
|
-
transform +=
|
|
645
|
+
transform += `translateY(${translateY * 100}%) `;
|
|
746
646
|
Object.defineProperty(style, 'translateY', {
|
|
747
647
|
enumerable: false,
|
|
748
648
|
value: translateY
|
|
749
649
|
});
|
|
750
|
-
}
|
|
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
|
|
813
|
-
}
|
|
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;
|
|
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);
|
|
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);
|
|
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
|
|
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
|
-
}
|
|
977
|
+
}
|
|
978
|
+
// 判断溢出 Judgment overflow
|
|
1141
979
|
// 上下方向 top and bottom
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
980
|
if (this.isTB(position)) {
|
|
1145
|
-
isHeightOverFlow = isViewYOverFlow && isContainerYOverFlow;
|
|
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
|
-
}
|
|
1155
|
-
|
|
1156
|
-
|
|
990
|
+
}
|
|
991
|
+
// 左右方向 left and right
|
|
1157
992
|
if (this.isLR(position)) {
|
|
1158
|
-
isWidthOverFlow = isViewXOverFlow && isContainerXOverFlow;
|
|
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());
|
|
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.
|
|
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;
|