@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
|
@@ -2,22 +2,14 @@ import _omit from "lodash/omit";
|
|
|
2
2
|
import _isEqual from "lodash/isEqual";
|
|
3
3
|
import _isString from "lodash/isString";
|
|
4
4
|
import _isNumber from "lodash/isNumber";
|
|
5
|
-
|
|
6
5
|
var __rest = this && this.__rest || function (s, e) {
|
|
7
6
|
var t = {};
|
|
8
|
-
|
|
9
7
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
10
|
-
|
|
11
8
|
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
12
9
|
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
13
10
|
}
|
|
14
11
|
return t;
|
|
15
12
|
};
|
|
16
|
-
/* argus-disable unPkgSensitiveInfo */
|
|
17
|
-
|
|
18
|
-
/* eslint-disable max-len */
|
|
19
|
-
|
|
20
|
-
|
|
21
13
|
import BaseFoundation from '../base/foundation';
|
|
22
14
|
import KeyCode, { ENTER_KEY } from '../utils/keyCode';
|
|
23
15
|
import warning from '../utils/warning';
|
|
@@ -26,42 +18,29 @@ import isEnterPress from '../utils/isEnterPress';
|
|
|
26
18
|
import { handlePrevent } from '../utils/a11y';
|
|
27
19
|
export default class SelectFoundation extends BaseFoundation {
|
|
28
20
|
constructor(adapter) {
|
|
29
|
-
super(Object.assign({}, adapter));
|
|
30
|
-
//
|
|
31
|
-
|
|
21
|
+
super(Object.assign({}, adapter));
|
|
22
|
+
// keyboard event listner
|
|
32
23
|
this._keydownHandler = null;
|
|
33
24
|
}
|
|
34
|
-
|
|
35
25
|
init() {
|
|
36
26
|
this._setDropdownWidth();
|
|
37
|
-
|
|
38
27
|
const isDefaultOpen = this.getProp('defaultOpen');
|
|
39
28
|
const isOpen = this.getProp('open');
|
|
40
|
-
|
|
41
29
|
const originalOptions = this._collectOptions();
|
|
42
|
-
|
|
43
30
|
this._setDefaultSelection(originalOptions);
|
|
44
|
-
|
|
45
31
|
if (isDefaultOpen || isOpen) {
|
|
46
32
|
this.open(undefined, originalOptions);
|
|
47
33
|
}
|
|
48
|
-
|
|
49
34
|
const autoFocus = this.getProp('autoFocus');
|
|
50
|
-
|
|
51
35
|
if (autoFocus) {
|
|
52
36
|
this.focus();
|
|
53
37
|
}
|
|
54
38
|
}
|
|
55
|
-
|
|
56
39
|
focus() {
|
|
57
40
|
const isFilterable = this._isFilterable();
|
|
58
|
-
|
|
59
41
|
const isMultiple = this._isMultiple();
|
|
60
|
-
|
|
61
42
|
this._adapter.updateFocusState(true);
|
|
62
|
-
|
|
63
43
|
this._adapter.setIsFocusInContainer(false);
|
|
64
|
-
|
|
65
44
|
if (isFilterable && isMultiple) {
|
|
66
45
|
// when filter and multiple, only focus input
|
|
67
46
|
this.focusInput();
|
|
@@ -72,15 +51,14 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
72
51
|
this._focusTrigger();
|
|
73
52
|
}
|
|
74
53
|
}
|
|
75
|
-
|
|
76
54
|
_focusTrigger() {
|
|
77
|
-
this._adapter.focusTrigger();
|
|
78
|
-
|
|
55
|
+
this._adapter.focusTrigger();
|
|
56
|
+
// this.bindKeyBoardEvent();
|
|
79
57
|
}
|
|
80
58
|
|
|
81
59
|
destroy() {
|
|
82
|
-
this._adapter.unregisterClickOutsideHandler();
|
|
83
|
-
|
|
60
|
+
this._adapter.unregisterClickOutsideHandler();
|
|
61
|
+
// this.unBindKeyBoardEvent();
|
|
84
62
|
}
|
|
85
63
|
|
|
86
64
|
_setDropdownWidth() {
|
|
@@ -89,7 +67,6 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
89
67
|
dropdownMatchSelectWidth
|
|
90
68
|
} = this.getProps();
|
|
91
69
|
let width;
|
|
92
|
-
|
|
93
70
|
if (dropdownMatchSelectWidth) {
|
|
94
71
|
if (style && _isNumber(style.width)) {
|
|
95
72
|
width = style.width;
|
|
@@ -98,22 +75,16 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
98
75
|
} else {
|
|
99
76
|
width = this._adapter.getTriggerWidth();
|
|
100
77
|
}
|
|
101
|
-
|
|
102
78
|
this._adapter.setOptionWrapperWidth(width);
|
|
103
79
|
}
|
|
104
80
|
}
|
|
105
|
-
|
|
106
81
|
_collectOptions() {
|
|
107
82
|
const originalOptions = this._adapter.getOptionsFromChildren();
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
83
|
+
this._adapter.updateOptions(originalOptions);
|
|
84
|
+
// Reposition the drop-down layer
|
|
112
85
|
this._adapter.rePositionDropdown();
|
|
113
|
-
|
|
114
86
|
return originalOptions;
|
|
115
87
|
}
|
|
116
|
-
|
|
117
88
|
_setDefaultSelection(originalOptions) {
|
|
118
89
|
let {
|
|
119
90
|
value
|
|
@@ -121,135 +92,123 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
121
92
|
const {
|
|
122
93
|
defaultValue
|
|
123
94
|
} = this.getProps();
|
|
124
|
-
|
|
125
|
-
|
|
95
|
+
if (this._isControlledComponent()) {
|
|
96
|
+
// do nothing
|
|
126
97
|
} else {
|
|
127
98
|
value = defaultValue;
|
|
128
99
|
}
|
|
129
|
-
|
|
130
100
|
this._update(value, originalOptions);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
|
|
101
|
+
}
|
|
102
|
+
// call when props.optionList change
|
|
134
103
|
handleOptionListChange() {
|
|
135
104
|
const newOptionList = this._collectOptions();
|
|
136
|
-
|
|
137
105
|
const {
|
|
138
106
|
selections
|
|
139
107
|
} = this.getStates();
|
|
140
|
-
this.updateOptionsActiveStatus(selections, newOptionList);
|
|
141
|
-
|
|
108
|
+
this.updateOptionsActiveStatus(selections, newOptionList);
|
|
109
|
+
// reset focusIndex
|
|
142
110
|
const {
|
|
143
111
|
defaultActiveFirstOption
|
|
144
112
|
} = this.getProps();
|
|
145
|
-
|
|
146
113
|
if (defaultActiveFirstOption) {
|
|
147
114
|
this._adapter.updateFocusIndex(0);
|
|
148
115
|
}
|
|
149
|
-
}
|
|
116
|
+
}
|
|
117
|
+
// In uncontrolled mode, when props.optionList change,
|
|
150
118
|
// but already had defaultValue or choose some option
|
|
151
|
-
|
|
152
|
-
|
|
153
119
|
handleOptionListChangeHadDefaultValue() {
|
|
154
120
|
const selections = this.getState('selections');
|
|
155
121
|
let value;
|
|
156
122
|
const {
|
|
157
123
|
onChangeWithObject
|
|
158
124
|
} = this.getProps();
|
|
159
|
-
|
|
160
125
|
const isMultiple = this._isMultiple();
|
|
161
|
-
|
|
162
126
|
switch (true) {
|
|
163
127
|
case isMultiple && Boolean(selections.size):
|
|
164
128
|
try {
|
|
165
|
-
value = [...selections].map(item =>
|
|
129
|
+
value = [...selections].map(item =>
|
|
130
|
+
// At this point item1 is directly the object
|
|
166
131
|
onChangeWithObject ? item[1] : item[1].value);
|
|
167
132
|
} catch (error) {
|
|
168
133
|
value = [];
|
|
169
134
|
}
|
|
170
|
-
|
|
171
135
|
break;
|
|
172
|
-
|
|
173
136
|
case isMultiple && !selections.size:
|
|
174
137
|
value = [];
|
|
175
138
|
break;
|
|
176
|
-
|
|
177
139
|
case !isMultiple && Boolean(selections.size):
|
|
178
140
|
try {
|
|
179
141
|
value = onChangeWithObject ? [...selections][0][1] : [...selections][0][1].value;
|
|
180
142
|
} catch (error) {}
|
|
181
|
-
|
|
182
143
|
break;
|
|
183
|
-
|
|
184
144
|
case !isMultiple && !selections.size:
|
|
185
145
|
break;
|
|
186
|
-
|
|
187
146
|
default:
|
|
188
147
|
break;
|
|
189
148
|
}
|
|
190
|
-
|
|
191
149
|
const originalOptions = this._adapter.getOptionsFromChildren();
|
|
192
|
-
|
|
193
150
|
this._update(value, originalOptions);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
|
|
151
|
+
}
|
|
152
|
+
// call when props.value change
|
|
197
153
|
handleValueChange(value) {
|
|
198
154
|
const {
|
|
199
|
-
allowCreate
|
|
155
|
+
allowCreate,
|
|
156
|
+
autoClearSearchValue,
|
|
157
|
+
remote
|
|
200
158
|
} = this.getProps();
|
|
201
|
-
|
|
202
|
-
|
|
159
|
+
const {
|
|
160
|
+
inputValue
|
|
161
|
+
} = this.getStates();
|
|
162
|
+
let originalOptions;
|
|
163
|
+
// AllowCreate and controlled mode, no need to re-collect optionList
|
|
203
164
|
if (allowCreate && this._isControlledComponent()) {
|
|
204
165
|
originalOptions = this.getState('options');
|
|
205
166
|
originalOptions.forEach(item => item._show = true);
|
|
206
167
|
} else {
|
|
207
168
|
// originalOptions = this.getState('options');
|
|
208
|
-
// The options in state cannot be used directly here,
|
|
169
|
+
// The options in state cannot be used directly here,
|
|
170
|
+
// because it is possible to update the optionList and props.value at the same time, and the options in state are still old at this time
|
|
209
171
|
originalOptions = this._adapter.getOptionsFromChildren();
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
|
|
172
|
+
}
|
|
173
|
+
// Multi-selection, controlled mode, you need to reposition the drop-down menu after updating
|
|
213
174
|
this._adapter.rePositionDropdown();
|
|
214
|
-
|
|
175
|
+
if (this._isFilterable() && !autoClearSearchValue && inputValue && !remote) {
|
|
176
|
+
originalOptions = this._filterOption(originalOptions, inputValue);
|
|
177
|
+
}
|
|
215
178
|
this._update(value, originalOptions);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
|
|
179
|
+
}
|
|
180
|
+
// Update the selected item in the selection box
|
|
219
181
|
_update(propValue, originalOptions) {
|
|
220
182
|
let selections;
|
|
221
|
-
|
|
222
183
|
if (!this._isMultiple()) {
|
|
223
184
|
// Radio
|
|
224
185
|
selections = this._updateSingle(propValue, originalOptions);
|
|
225
186
|
} else {
|
|
226
187
|
selections = this._updateMultiple(propValue, originalOptions);
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
this._adapter.updateSelection(selections);
|
|
231
|
-
|
|
232
|
-
|
|
188
|
+
this.updateOverflowItemCount(selections.size);
|
|
189
|
+
}
|
|
190
|
+
// Update the text in the selection box
|
|
191
|
+
this._adapter.updateSelection(selections);
|
|
192
|
+
// Update the selected item in the drop-down box
|
|
233
193
|
this.updateOptionsActiveStatus(selections, originalOptions);
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
|
|
194
|
+
}
|
|
195
|
+
// Optionally selected updates (when components are mounted, or after value changes)
|
|
237
196
|
_updateSingle(propValue, originalOptions) {
|
|
238
197
|
const selections = new Map();
|
|
239
198
|
const {
|
|
240
199
|
onChangeWithObject
|
|
241
|
-
} = this.getProps();
|
|
242
|
-
|
|
200
|
+
} = this.getProps();
|
|
201
|
+
// When onChangeWithObject is true, the defaultValue or Value passed by the props should be the object, which corresponds to the result returned by onChange, so the value of the object needs to be taken as a judgment comparison
|
|
243
202
|
const selectedValue = onChangeWithObject && typeof propValue !== 'undefined' ? propValue.value : propValue;
|
|
244
203
|
const selectedOptions = originalOptions.filter(option => option.value === selectedValue);
|
|
245
|
-
const noMatchOptionInList = !selectedOptions.length && typeof selectedValue !== 'undefined'
|
|
246
|
-
|
|
204
|
+
const noMatchOptionInList = !selectedOptions.length && typeof selectedValue !== 'undefined' && selectedValue !== null;
|
|
205
|
+
// If the current value, there is a matching option in the optionList
|
|
247
206
|
if (selectedOptions.length) {
|
|
248
207
|
const selectedOption = selectedOptions[0];
|
|
249
|
-
const optionExist = Object.assign({}, selectedOption);
|
|
208
|
+
const optionExist = Object.assign({}, selectedOption);
|
|
209
|
+
// if (onChangeWithObject) {
|
|
250
210
|
// OptionExist = {... propValue }; // value is the object with the'value 'Key
|
|
251
211
|
// }
|
|
252
|
-
|
|
253
212
|
selections.set(optionExist.label, optionExist);
|
|
254
213
|
} else if (noMatchOptionInList) {
|
|
255
214
|
// If the current value does not have a corresponding item in the optionList, construct an option and update it to the selection. However, it does not need to be inserted into the list
|
|
@@ -259,53 +218,45 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
259
218
|
_notExist: true,
|
|
260
219
|
_scrollIndex: -1
|
|
261
220
|
};
|
|
262
|
-
|
|
263
221
|
if (onChangeWithObject) {
|
|
264
222
|
optionNotExist = Object.assign(Object.assign({}, propValue), {
|
|
265
223
|
_notExist: true,
|
|
266
224
|
_scrollIndex: -1
|
|
267
225
|
});
|
|
268
226
|
}
|
|
269
|
-
|
|
270
227
|
selections.set(optionNotExist.label, optionNotExist);
|
|
271
228
|
}
|
|
272
|
-
|
|
273
229
|
return selections;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
|
|
230
|
+
}
|
|
231
|
+
// Multi-selected option update (when the component is mounted, or after the value changes)
|
|
277
232
|
_updateMultiple(propValue, originalOptions) {
|
|
278
233
|
const nowSelections = this.getState('selections');
|
|
279
|
-
let selectedOptionList = [];
|
|
280
|
-
|
|
234
|
+
let selectedOptionList = [];
|
|
235
|
+
// Multiple selection is to determine whether it is an array to avoid the problem of defaultValue/value incoming string error
|
|
281
236
|
const propValueIsArray = Array.isArray(propValue);
|
|
282
|
-
this.checkMultipleProps();
|
|
283
|
-
|
|
237
|
+
this.checkMultipleProps();
|
|
238
|
+
// If N values are currently selected, the corresponding option data is retrieved from the current selections for retrieval. Because these selected options may not exist in the new optionList
|
|
284
239
|
if (nowSelections.size) {
|
|
285
240
|
selectedOptionList = [...nowSelections].map(item => item[1]);
|
|
286
241
|
}
|
|
287
|
-
|
|
288
242
|
const selections = new Map();
|
|
289
243
|
let selectedValues = propValue;
|
|
290
244
|
const {
|
|
291
245
|
onChangeWithObject
|
|
292
|
-
} = this.getProps();
|
|
293
|
-
|
|
246
|
+
} = this.getProps();
|
|
247
|
+
// When onChangeWithObject is true
|
|
294
248
|
if (onChangeWithObject && propValueIsArray) {
|
|
295
249
|
selectedValues = propValue.map(item => item.value);
|
|
296
250
|
}
|
|
297
|
-
|
|
298
251
|
if (propValueIsArray && selectedValues.length) {
|
|
299
252
|
selectedValues.forEach((selectedValue, i) => {
|
|
300
253
|
// The current value exists in the current optionList
|
|
301
254
|
const index = originalOptions.findIndex(option => option.value === selectedValue);
|
|
302
|
-
|
|
303
255
|
if (index !== -1) {
|
|
304
256
|
selections.set(originalOptions[index].label, originalOptions[index]);
|
|
305
257
|
} else {
|
|
306
258
|
// The current value exists in the optionList that has been selected before the change, and does not exist in the current optionList, then directly take the corresponding value from the selections, no need to construct a new option
|
|
307
259
|
const indexInSelectedList = selectedOptionList.findIndex(option => option.value === selectedValue);
|
|
308
|
-
|
|
309
260
|
if (indexInSelectedList !== -1) {
|
|
310
261
|
const option = selectedOptionList[indexInSelectedList];
|
|
311
262
|
selections.set(option.label, option);
|
|
@@ -326,18 +277,14 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
326
277
|
}
|
|
327
278
|
});
|
|
328
279
|
}
|
|
329
|
-
|
|
330
280
|
return selections;
|
|
331
281
|
}
|
|
332
|
-
|
|
333
282
|
_isMultiple() {
|
|
334
283
|
return this.getProp('multiple');
|
|
335
284
|
}
|
|
336
|
-
|
|
337
285
|
_isDisabled() {
|
|
338
286
|
return this.getProp('disabled');
|
|
339
287
|
}
|
|
340
|
-
|
|
341
288
|
_isFilterable() {
|
|
342
289
|
return Boolean(this.getProp('filter')); // filter can be boolean or function
|
|
343
290
|
}
|
|
@@ -349,14 +296,11 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
349
296
|
const {
|
|
350
297
|
isOpen
|
|
351
298
|
} = this.getStates();
|
|
352
|
-
|
|
353
299
|
const isDisabled = this._isDisabled();
|
|
354
|
-
|
|
355
300
|
if (isDisabled) {
|
|
356
301
|
return;
|
|
357
302
|
} else if (!isOpen) {
|
|
358
303
|
this.open();
|
|
359
|
-
|
|
360
304
|
this._notifyFocus(e);
|
|
361
305
|
} else if (isOpen && clickToHide) {
|
|
362
306
|
this.close(e);
|
|
@@ -364,41 +308,31 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
364
308
|
this.focusInput();
|
|
365
309
|
}
|
|
366
310
|
}
|
|
367
|
-
|
|
368
311
|
open(acInput, originalOptions) {
|
|
369
312
|
const isFilterable = this._isFilterable();
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
313
|
+
const options = originalOptions || this.getState('options');
|
|
314
|
+
// When searchable, when the drop-down box expands
|
|
373
315
|
if (isFilterable) {
|
|
374
316
|
// Also clears the options filter to show all candidates
|
|
375
317
|
// Options created dynamically but not selected are also filtered out
|
|
376
318
|
const sugInput = '';
|
|
377
|
-
|
|
378
319
|
const newOptions = this._filterOption(options, sugInput).filter(item => !item._inputCreateOnly);
|
|
379
|
-
|
|
380
320
|
this._adapter.updateOptions(newOptions);
|
|
381
|
-
|
|
382
321
|
this.toggle2SearchInput(true);
|
|
322
|
+
} else {
|
|
323
|
+
// whether it is a filter or not, isFocus is guaranteed to be true when open
|
|
324
|
+
this._adapter.updateFocusState(true);
|
|
383
325
|
}
|
|
384
|
-
|
|
385
326
|
this._adapter.openMenu();
|
|
386
|
-
|
|
387
327
|
this._setDropdownWidth();
|
|
388
|
-
|
|
389
328
|
this._adapter.notifyDropdownVisibleChange(true);
|
|
390
|
-
|
|
391
329
|
this.bindKeyBoardEvent();
|
|
392
|
-
|
|
393
330
|
this._adapter.registerClickOutsideHandler(e => {
|
|
394
331
|
this.close(e);
|
|
395
|
-
|
|
396
332
|
this._notifyBlur(e);
|
|
397
|
-
|
|
398
333
|
this._adapter.updateFocusState(false);
|
|
399
334
|
});
|
|
400
335
|
}
|
|
401
|
-
|
|
402
336
|
toggle2SearchInput(isShow) {
|
|
403
337
|
if (isShow) {
|
|
404
338
|
this._adapter.toggleInputShow(isShow, () => this.focusInput());
|
|
@@ -407,208 +341,164 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
407
341
|
this._adapter.toggleInputShow(isShow, () => undefined);
|
|
408
342
|
}
|
|
409
343
|
}
|
|
410
|
-
|
|
411
344
|
close(e, closeCb) {
|
|
412
345
|
// to support A11y, closing the panel trigger does not necessarily lose focus
|
|
413
346
|
this._adapter.closeMenu();
|
|
414
|
-
|
|
415
347
|
this._adapter.notifyDropdownVisibleChange(false);
|
|
416
|
-
|
|
417
|
-
|
|
348
|
+
this._adapter.setIsFocusInContainer(false);
|
|
349
|
+
// this.unBindKeyBoardEvent();
|
|
418
350
|
// this._notifyBlur(e);
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
this._adapter.unregisterClickOutsideHandler(); // this._adapter.updateFocusState(false);
|
|
422
|
-
|
|
423
|
-
|
|
351
|
+
// this._adapter.updateFocusState(false);
|
|
352
|
+
this._adapter.unregisterClickOutsideHandler();
|
|
424
353
|
const isFilterable = this._isFilterable();
|
|
425
|
-
|
|
426
354
|
if (isFilterable) {
|
|
427
355
|
this.toggle2SearchInput(false);
|
|
428
356
|
}
|
|
429
|
-
|
|
430
357
|
this._adapter.once('popoverClose', () => {
|
|
431
358
|
if (isFilterable) {
|
|
432
|
-
this.clearInput();
|
|
359
|
+
this.clearInput(e);
|
|
433
360
|
}
|
|
434
|
-
|
|
435
361
|
if (closeCb) {
|
|
436
362
|
closeCb();
|
|
437
363
|
}
|
|
438
364
|
});
|
|
439
365
|
}
|
|
440
|
-
|
|
441
366
|
onSelect(option, optionIndex, event) {
|
|
442
367
|
const isDisabled = this._isDisabled();
|
|
443
|
-
|
|
444
368
|
if (isDisabled) {
|
|
445
369
|
return;
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
|
|
370
|
+
}
|
|
371
|
+
// If the allowCreate dynamically created option is selected, onCreate needs to be triggered
|
|
449
372
|
if (option._inputCreateOnly) {
|
|
450
373
|
this._adapter.notifyCreate(option);
|
|
451
374
|
}
|
|
452
|
-
|
|
453
375
|
const isMultiple = this._isMultiple();
|
|
454
|
-
|
|
455
376
|
if (!isMultiple) {
|
|
456
377
|
this._handleSingleSelect(option, event);
|
|
457
|
-
|
|
458
378
|
this._focusTrigger();
|
|
459
379
|
} else {
|
|
460
380
|
this._handleMultipleSelect(option, event);
|
|
461
381
|
}
|
|
462
|
-
|
|
463
382
|
this._adapter.updateFocusIndex(optionIndex);
|
|
464
383
|
}
|
|
465
|
-
|
|
466
384
|
_handleSingleSelect(_a, event) {
|
|
467
385
|
var {
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
386
|
+
value,
|
|
387
|
+
label
|
|
388
|
+
} = _a,
|
|
389
|
+
rest = __rest(_a, ["value", "label"]);
|
|
473
390
|
const selections = new Map().set(label, Object.assign({
|
|
474
391
|
value,
|
|
475
392
|
label
|
|
476
|
-
}, rest));
|
|
477
|
-
|
|
393
|
+
}, rest));
|
|
394
|
+
// First trigger onSelect, then trigger onChange
|
|
478
395
|
this._notifySelect(value, Object.assign({
|
|
479
396
|
value,
|
|
480
397
|
label
|
|
481
|
-
}, rest));
|
|
398
|
+
}, rest));
|
|
399
|
+
// If it is a controlled component, directly notify
|
|
482
400
|
// Make sure that the operations of updating updateOptions are done after the animation ends
|
|
483
401
|
// otherwise the content will be updated when the popup layer is not collapsed, and it looks like it will flash once when it is closed
|
|
484
|
-
|
|
485
|
-
|
|
486
402
|
if (this._isControlledComponent()) {
|
|
487
403
|
this.close(event, () => {
|
|
488
404
|
this._notifyChange(selections);
|
|
489
405
|
});
|
|
490
406
|
} else {
|
|
491
|
-
this._adapter.updateSelection(selections);
|
|
492
|
-
|
|
493
|
-
|
|
407
|
+
this._adapter.updateSelection(selections);
|
|
408
|
+
// notify user
|
|
494
409
|
this._notifyChange(selections);
|
|
495
|
-
|
|
496
410
|
this.close(event, () => {
|
|
497
411
|
// Update the selected item in the drop-down box
|
|
498
412
|
this.updateOptionsActiveStatus(selections);
|
|
499
413
|
});
|
|
500
414
|
}
|
|
501
415
|
}
|
|
502
|
-
|
|
503
416
|
_handleMultipleSelect(_a, event) {
|
|
504
417
|
var {
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
418
|
+
value,
|
|
419
|
+
label
|
|
420
|
+
} = _a,
|
|
421
|
+
rest = __rest(_a, ["value", "label"]);
|
|
510
422
|
const maxLimit = this._adapter.getMaxLimit();
|
|
511
|
-
|
|
512
423
|
const selections = this._adapter.getSelections();
|
|
513
|
-
|
|
514
424
|
const {
|
|
515
425
|
autoClearSearchValue
|
|
516
426
|
} = this.getProps();
|
|
517
|
-
|
|
518
427
|
if (selections.has(label)) {
|
|
519
428
|
this._notifyDeselect(value, Object.assign({
|
|
520
429
|
value,
|
|
521
430
|
label
|
|
522
431
|
}, rest));
|
|
523
|
-
|
|
524
432
|
selections.delete(label);
|
|
525
433
|
} else if (maxLimit && selections.size === maxLimit) {
|
|
526
434
|
this._adapter.notifyMaxLimit(Object.assign({
|
|
527
435
|
value,
|
|
528
436
|
label
|
|
529
437
|
}, _omit(rest, '_scrollIndex')));
|
|
530
|
-
|
|
531
438
|
return;
|
|
532
439
|
} else {
|
|
533
440
|
this._notifySelect(value, Object.assign({
|
|
534
441
|
value,
|
|
535
442
|
label
|
|
536
443
|
}, rest));
|
|
537
|
-
|
|
538
444
|
selections.set(label, Object.assign({
|
|
539
445
|
value,
|
|
540
446
|
label
|
|
541
447
|
}, rest));
|
|
542
448
|
}
|
|
543
|
-
|
|
544
449
|
if (this._isControlledComponent()) {
|
|
545
450
|
// Controlled components, directly notified
|
|
546
451
|
this._notifyChange(selections);
|
|
547
|
-
|
|
548
452
|
if (this._isFilterable()) {
|
|
549
453
|
if (autoClearSearchValue) {
|
|
550
|
-
this.clearInput();
|
|
454
|
+
this.clearInput(event);
|
|
551
455
|
}
|
|
552
|
-
|
|
553
456
|
this.focusInput();
|
|
554
457
|
}
|
|
555
458
|
} else {
|
|
556
459
|
// Uncontrolled components, update ui
|
|
557
|
-
this._adapter.updateSelection(selections);
|
|
558
|
-
|
|
559
|
-
|
|
460
|
+
this._adapter.updateSelection(selections);
|
|
461
|
+
this.updateOverflowItemCount(selections.size);
|
|
462
|
+
// In multi-select mode, the drop-down pop-up layer is repositioned every time the value is changed, because the height selection of the selection box may have changed
|
|
560
463
|
this._adapter.rePositionDropdown();
|
|
561
|
-
|
|
562
464
|
let {
|
|
563
465
|
options
|
|
564
|
-
} = this.getStates();
|
|
565
|
-
|
|
466
|
+
} = this.getStates();
|
|
467
|
+
// Searchable filtering, when selected, resets Input
|
|
566
468
|
if (this._isFilterable()) {
|
|
567
469
|
// When filter active,if autoClearSearchValue is true,reset input after select
|
|
568
470
|
if (autoClearSearchValue) {
|
|
569
|
-
this.clearInput();
|
|
570
|
-
|
|
471
|
+
this.clearInput(event);
|
|
472
|
+
// At the same time, the filtering of options is also cleared, in order to show all candidates
|
|
571
473
|
const sugInput = '';
|
|
572
474
|
options = this._filterOption(options, sugInput);
|
|
573
475
|
}
|
|
574
|
-
|
|
575
476
|
this.focusInput();
|
|
576
477
|
}
|
|
577
|
-
|
|
578
478
|
this.updateOptionsActiveStatus(selections, options);
|
|
579
|
-
|
|
580
479
|
this._notifyChange(selections);
|
|
581
480
|
}
|
|
582
481
|
}
|
|
583
|
-
|
|
584
482
|
clearSelected() {
|
|
585
483
|
const selections = new Map();
|
|
586
|
-
|
|
587
484
|
if (this._isControlledComponent()) {
|
|
588
485
|
this._notifyChange(selections);
|
|
589
|
-
|
|
590
486
|
this._adapter.notifyClear();
|
|
591
487
|
} else {
|
|
592
488
|
this._adapter.updateSelection(selections);
|
|
593
|
-
|
|
594
489
|
this.updateOptionsActiveStatus(selections);
|
|
595
|
-
|
|
596
490
|
this._notifyChange(selections);
|
|
597
|
-
|
|
598
491
|
this._adapter.notifyClear();
|
|
599
|
-
}
|
|
600
|
-
|
|
601
|
-
|
|
492
|
+
}
|
|
493
|
+
// when call manually by ref method
|
|
602
494
|
const {
|
|
603
495
|
isOpen
|
|
604
496
|
} = this.getStates();
|
|
605
|
-
|
|
606
497
|
if (isOpen) {
|
|
607
498
|
this._adapter.rePositionDropdown();
|
|
608
499
|
}
|
|
609
|
-
}
|
|
610
|
-
|
|
611
|
-
|
|
500
|
+
}
|
|
501
|
+
// Update the selected item in the drop-down box
|
|
612
502
|
updateOptionsActiveStatus(selections) {
|
|
613
503
|
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getState('options');
|
|
614
504
|
const {
|
|
@@ -617,7 +507,6 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
617
507
|
const newOptions = options.map(option => {
|
|
618
508
|
if (selections.has(option.label)) {
|
|
619
509
|
option._selected = true;
|
|
620
|
-
|
|
621
510
|
if (allowCreate) {
|
|
622
511
|
delete option._inputCreateOnly;
|
|
623
512
|
}
|
|
@@ -625,49 +514,38 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
625
514
|
if (option._inputCreateOnly) {
|
|
626
515
|
option._show = false;
|
|
627
516
|
}
|
|
628
|
-
|
|
629
517
|
option._selected = false;
|
|
630
518
|
}
|
|
631
|
-
|
|
632
519
|
return option;
|
|
633
520
|
});
|
|
634
|
-
|
|
635
521
|
this._adapter.updateOptions(newOptions);
|
|
636
522
|
}
|
|
637
|
-
|
|
638
523
|
removeTag(item) {
|
|
639
524
|
const selections = this._adapter.getSelections();
|
|
640
|
-
|
|
641
525
|
selections.delete(item.label);
|
|
642
|
-
|
|
643
526
|
if (this._isControlledComponent()) {
|
|
644
527
|
this._notifyDeselect(item.value, item);
|
|
645
|
-
|
|
646
528
|
this._notifyChange(selections);
|
|
647
529
|
} else {
|
|
648
530
|
this._notifyDeselect(item.value, item);
|
|
649
|
-
|
|
650
531
|
this._adapter.updateSelection(selections);
|
|
651
|
-
|
|
652
|
-
this.updateOptionsActiveStatus(selections);
|
|
653
|
-
|
|
532
|
+
this.updateOverflowItemCount(selections.size);
|
|
533
|
+
this.updateOptionsActiveStatus(selections);
|
|
534
|
+
// Repostion drop-down layer, because the selection may have changed the number of rows, resulting in a height change
|
|
654
535
|
this._adapter.rePositionDropdown();
|
|
655
|
-
|
|
656
536
|
this._notifyChange(selections);
|
|
657
537
|
}
|
|
658
538
|
}
|
|
659
|
-
|
|
660
|
-
clearInput() {
|
|
539
|
+
// The reason why event input is optional is that clearInput may be manually called by the user through ref
|
|
540
|
+
clearInput(event) {
|
|
661
541
|
const {
|
|
662
542
|
inputValue
|
|
663
|
-
} = this.getStates();
|
|
664
|
-
|
|
543
|
+
} = this.getStates();
|
|
544
|
+
// only when input is not null, select should notifySearch and updateOptions
|
|
665
545
|
if (inputValue !== '') {
|
|
666
546
|
this._adapter.updateInputValue('');
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
547
|
+
this._adapter.notifySearch('', event);
|
|
548
|
+
// reset options filter
|
|
671
549
|
const {
|
|
672
550
|
options
|
|
673
551
|
} = this.getStates();
|
|
@@ -675,27 +553,20 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
675
553
|
remote
|
|
676
554
|
} = this.getProps();
|
|
677
555
|
let optionsAfterFilter = options;
|
|
678
|
-
|
|
679
556
|
if (!remote) {
|
|
680
557
|
optionsAfterFilter = this._filterOption(options, '');
|
|
681
558
|
}
|
|
682
|
-
|
|
683
559
|
this._adapter.updateOptions(optionsAfterFilter);
|
|
684
560
|
}
|
|
685
561
|
}
|
|
686
|
-
|
|
687
562
|
focusInput() {
|
|
688
563
|
this._adapter.focusInput();
|
|
689
|
-
|
|
690
564
|
this._adapter.updateFocusState(true);
|
|
691
|
-
|
|
692
565
|
this._adapter.setIsFocusInContainer(false);
|
|
693
566
|
}
|
|
694
|
-
|
|
695
|
-
handleInputChange(sugInput) {
|
|
567
|
+
handleInputChange(sugInput, event) {
|
|
696
568
|
// Input is a controlled component, so the value needs to be updated
|
|
697
569
|
this._adapter.updateInputValue(sugInput);
|
|
698
|
-
|
|
699
570
|
const {
|
|
700
571
|
options,
|
|
701
572
|
isOpen
|
|
@@ -705,28 +576,21 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
705
576
|
remote
|
|
706
577
|
} = this.getProps();
|
|
707
578
|
let optionsAfterFilter = options;
|
|
708
|
-
|
|
709
579
|
if (!remote) {
|
|
710
580
|
// Filter options based on input
|
|
711
581
|
optionsAfterFilter = this._filterOption(options, sugInput);
|
|
712
|
-
}
|
|
713
|
-
|
|
714
|
-
|
|
582
|
+
}
|
|
583
|
+
// When allowClear is true, an entry can be created. You need to include the current input as a new Option input
|
|
715
584
|
optionsAfterFilter = this._createOptionByInput(allowCreate, optionsAfterFilter, sugInput);
|
|
716
|
-
|
|
717
585
|
this._adapter.updateOptions(optionsAfterFilter);
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
586
|
+
this._adapter.notifySearch(sugInput, event);
|
|
587
|
+
// In multi-select mode, the drop-down box is repositioned each time you enter, because it may cause a line break as the input changes
|
|
722
588
|
if (this._isMultiple()) {
|
|
723
589
|
this._adapter.rePositionDropdown();
|
|
724
590
|
}
|
|
725
591
|
}
|
|
726
|
-
|
|
727
592
|
_filterOption(originalOptions, sugInput) {
|
|
728
593
|
const filter = this.getProp('filter');
|
|
729
|
-
|
|
730
594
|
if (!filter) {
|
|
731
595
|
// 1. No filtering
|
|
732
596
|
return originalOptions;
|
|
@@ -738,13 +602,11 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
738
602
|
const groupLabel = option._parentGroup && option._parentGroup.label;
|
|
739
603
|
const matchOption = label.includes(input);
|
|
740
604
|
const matchGroup = _isString(groupLabel) && groupLabel.toLowerCase().includes(input);
|
|
741
|
-
|
|
742
605
|
if (matchOption || matchGroup) {
|
|
743
606
|
option._show = true;
|
|
744
607
|
} else {
|
|
745
608
|
option._show = false;
|
|
746
609
|
}
|
|
747
|
-
|
|
748
610
|
return option;
|
|
749
611
|
});
|
|
750
612
|
} else if (typeof filter === 'function') {
|
|
@@ -754,10 +616,8 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
754
616
|
return option;
|
|
755
617
|
});
|
|
756
618
|
}
|
|
757
|
-
|
|
758
619
|
return undefined;
|
|
759
620
|
}
|
|
760
|
-
|
|
761
621
|
_createOptionByInput(allowCreate, optionsAfterFilter, sugInput) {
|
|
762
622
|
if (allowCreate) {
|
|
763
623
|
if (sugInput) {
|
|
@@ -775,13 +635,11 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
775
635
|
optionsAfterFilter.forEach((option, index) => {
|
|
776
636
|
if (!option._show && !option._inputCreateOnly) {
|
|
777
637
|
return;
|
|
778
|
-
}
|
|
779
|
-
|
|
780
|
-
|
|
638
|
+
}
|
|
639
|
+
// The matching algorithm is not necessarily through labels?
|
|
781
640
|
if (option.label === sugInput) {
|
|
782
641
|
matchOptionIndex = index;
|
|
783
642
|
}
|
|
784
|
-
|
|
785
643
|
if (option._inputCreateOnly) {
|
|
786
644
|
createOptionIndex = index;
|
|
787
645
|
option.value = sugInput;
|
|
@@ -789,11 +647,9 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
789
647
|
option._show = true;
|
|
790
648
|
}
|
|
791
649
|
});
|
|
792
|
-
|
|
793
650
|
if (createOptionIndex === -1 && matchOptionIndex === -1) {
|
|
794
651
|
optionsAfterFilter.push(newOptionByInput);
|
|
795
652
|
}
|
|
796
|
-
|
|
797
653
|
if (matchOptionIndex !== -1) {
|
|
798
654
|
optionsAfterFilter = optionsAfterFilter.filter(item => !item._inputCreateOnly);
|
|
799
655
|
}
|
|
@@ -801,26 +657,21 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
801
657
|
// Delete input unselected items
|
|
802
658
|
optionsAfterFilter = optionsAfterFilter.filter(item => !item._inputCreateOnly);
|
|
803
659
|
}
|
|
804
|
-
}
|
|
805
|
-
|
|
806
|
-
|
|
660
|
+
}
|
|
661
|
+
// TODO Promise supports asynchronous creation
|
|
807
662
|
return optionsAfterFilter;
|
|
808
663
|
}
|
|
809
|
-
|
|
810
664
|
bindKeyBoardEvent() {
|
|
811
665
|
this._keydownHandler = event => {
|
|
812
666
|
this._handleKeyDown(event);
|
|
813
667
|
};
|
|
814
|
-
|
|
815
668
|
this._adapter.registerKeyDown(this._keydownHandler);
|
|
816
669
|
}
|
|
817
|
-
|
|
818
670
|
unBindKeyBoardEvent() {
|
|
819
671
|
if (this._keydownHandler) {
|
|
820
672
|
this._adapter.unregisterKeyDown();
|
|
821
673
|
}
|
|
822
674
|
}
|
|
823
|
-
|
|
824
675
|
_handleKeyDown(event) {
|
|
825
676
|
const key = event.keyCode;
|
|
826
677
|
const {
|
|
@@ -832,157 +683,117 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
832
683
|
const {
|
|
833
684
|
isOpen
|
|
834
685
|
} = this.getStates();
|
|
835
|
-
|
|
836
686
|
if (loading || disabled) {
|
|
837
687
|
return;
|
|
838
688
|
}
|
|
839
|
-
|
|
840
689
|
switch (key) {
|
|
841
690
|
case KeyCode.UP:
|
|
842
691
|
// Prevent Input's cursor from following
|
|
843
692
|
// Prevent Input cursor from following
|
|
844
693
|
event.preventDefault();
|
|
845
|
-
|
|
846
694
|
this._handleArrowKeyDown(-1);
|
|
847
|
-
|
|
848
695
|
break;
|
|
849
|
-
|
|
850
696
|
case KeyCode.DOWN:
|
|
851
697
|
// Prevent Input's cursor from following
|
|
852
698
|
// Prevent Input cursor from following
|
|
853
699
|
event.preventDefault();
|
|
854
|
-
|
|
855
700
|
this._handleArrowKeyDown(1);
|
|
856
|
-
|
|
857
701
|
break;
|
|
858
|
-
|
|
859
702
|
case KeyCode.BACKSPACE:
|
|
860
703
|
this._handleBackspaceKeyDown();
|
|
861
|
-
|
|
862
704
|
break;
|
|
863
|
-
|
|
864
705
|
case KeyCode.ENTER:
|
|
865
706
|
// internal-issues:302
|
|
866
707
|
// prevent trigger form’s submit when use in form
|
|
867
708
|
handlePrevent(event);
|
|
868
|
-
|
|
869
709
|
this._handleEnterKeyDown(event);
|
|
870
|
-
|
|
871
710
|
break;
|
|
872
|
-
|
|
873
711
|
case KeyCode.ESC:
|
|
874
712
|
isOpen && this.close(event);
|
|
875
713
|
filter && !multiple && this._focusTrigger();
|
|
876
714
|
break;
|
|
877
|
-
|
|
878
715
|
case KeyCode.TAB:
|
|
879
716
|
// check if slot have focusable element
|
|
880
717
|
this._handleTabKeyDown(event);
|
|
881
|
-
|
|
882
718
|
break;
|
|
883
|
-
|
|
884
719
|
default:
|
|
885
720
|
break;
|
|
886
721
|
}
|
|
887
722
|
}
|
|
888
|
-
|
|
889
723
|
handleContainerKeyDown(event) {
|
|
890
724
|
// when focus in contanier, handle the key down
|
|
891
725
|
const key = event.keyCode;
|
|
892
726
|
const {
|
|
893
727
|
isOpen
|
|
894
728
|
} = this.getStates();
|
|
895
|
-
|
|
896
729
|
switch (key) {
|
|
897
730
|
case KeyCode.TAB:
|
|
898
731
|
isOpen && this._handleTabKeyDown(event);
|
|
899
732
|
break;
|
|
900
|
-
|
|
901
733
|
default:
|
|
902
734
|
break;
|
|
903
735
|
}
|
|
904
736
|
}
|
|
905
|
-
|
|
906
737
|
_getEnableFocusIndex(offset) {
|
|
907
738
|
const {
|
|
908
739
|
focusIndex,
|
|
909
740
|
options
|
|
910
741
|
} = this.getStates();
|
|
911
|
-
const visibleOptions = options.filter(item => item._show);
|
|
912
|
-
|
|
742
|
+
const visibleOptions = options.filter(item => item._show);
|
|
743
|
+
// let visibleOptions = options;
|
|
913
744
|
const optionsLength = visibleOptions.length;
|
|
914
745
|
let index = focusIndex + offset;
|
|
915
|
-
|
|
916
746
|
if (index < 0) {
|
|
917
747
|
index = optionsLength - 1;
|
|
918
748
|
}
|
|
919
|
-
|
|
920
749
|
if (index >= optionsLength) {
|
|
921
750
|
index = 0;
|
|
922
|
-
}
|
|
923
|
-
|
|
924
|
-
|
|
751
|
+
}
|
|
752
|
+
// avoid newIndex option is disabled
|
|
925
753
|
if (offset > 0) {
|
|
926
754
|
let nearestActiveOption = -1;
|
|
927
|
-
|
|
928
755
|
for (let i = 0; i < visibleOptions.length; i++) {
|
|
929
756
|
const optionIsActive = !visibleOptions[i].disabled;
|
|
930
|
-
|
|
931
757
|
if (optionIsActive) {
|
|
932
758
|
nearestActiveOption = i;
|
|
933
759
|
}
|
|
934
|
-
|
|
935
760
|
if (nearestActiveOption >= index) {
|
|
936
761
|
break;
|
|
937
762
|
}
|
|
938
763
|
}
|
|
939
|
-
|
|
940
764
|
index = nearestActiveOption;
|
|
941
765
|
} else {
|
|
942
766
|
let nearestActiveOption = visibleOptions.length;
|
|
943
|
-
|
|
944
767
|
for (let i = optionsLength - 1; i >= 0; i--) {
|
|
945
768
|
const optionIsActive = !visibleOptions[i].disabled;
|
|
946
|
-
|
|
947
769
|
if (optionIsActive) {
|
|
948
770
|
nearestActiveOption = i;
|
|
949
771
|
}
|
|
950
|
-
|
|
951
772
|
if (nearestActiveOption <= index) {
|
|
952
773
|
break;
|
|
953
774
|
}
|
|
954
775
|
}
|
|
955
|
-
|
|
956
776
|
index = nearestActiveOption;
|
|
957
|
-
}
|
|
958
|
-
|
|
959
|
-
|
|
777
|
+
}
|
|
778
|
+
// console.log('new:' + index);
|
|
960
779
|
this._adapter.updateFocusIndex(index);
|
|
961
|
-
|
|
962
780
|
this._adapter.updateScrollTop(index);
|
|
963
781
|
}
|
|
964
|
-
|
|
965
782
|
_handleArrowKeyDown(offset) {
|
|
966
783
|
const {
|
|
967
784
|
isOpen
|
|
968
785
|
} = this.getStates();
|
|
969
786
|
isOpen ? this._getEnableFocusIndex(offset) : this.open();
|
|
970
787
|
}
|
|
971
|
-
|
|
972
788
|
_handleTabKeyDown(event) {
|
|
973
789
|
const {
|
|
974
790
|
isOpen
|
|
975
791
|
} = this.getStates();
|
|
976
|
-
|
|
977
792
|
this._adapter.updateFocusState(false);
|
|
978
|
-
|
|
979
793
|
if (isOpen) {
|
|
980
794
|
const container = this._adapter.getContainer();
|
|
981
|
-
|
|
982
795
|
const focusableElements = this._adapter.getFocusableElements(container);
|
|
983
|
-
|
|
984
796
|
const focusableNum = focusableElements.length;
|
|
985
|
-
|
|
986
797
|
if (focusableNum > 0) {
|
|
987
798
|
// Shift + Tab will move focus backward
|
|
988
799
|
if (event.shiftKey) {
|
|
@@ -992,8 +803,7 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
992
803
|
}
|
|
993
804
|
} else {
|
|
994
805
|
// there are no focusable elements inside the container, tab to next element and trigger blur
|
|
995
|
-
this.close();
|
|
996
|
-
|
|
806
|
+
this.close(event);
|
|
997
807
|
this._notifyBlur(event);
|
|
998
808
|
}
|
|
999
809
|
} else {
|
|
@@ -1001,55 +811,41 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
1001
811
|
this._notifyBlur(event);
|
|
1002
812
|
}
|
|
1003
813
|
}
|
|
1004
|
-
|
|
1005
814
|
_handlePanelOpenTabKeyDown(focusableElements, event) {
|
|
1006
815
|
const activeElement = this._adapter.getActiveElement();
|
|
1007
|
-
|
|
1008
816
|
const isFocusInContainer = this._adapter.getIsFocusInContainer();
|
|
1009
|
-
|
|
1010
817
|
if (!isFocusInContainer) {
|
|
1011
818
|
// focus in trigger, set next focus to the first element in container
|
|
1012
819
|
focusableElements[0].focus();
|
|
1013
|
-
|
|
1014
820
|
this._adapter.setIsFocusInContainer(true);
|
|
1015
|
-
|
|
1016
821
|
handlePrevent(event);
|
|
1017
822
|
} else if (activeElement === focusableElements[focusableElements.length - 1]) {
|
|
1018
823
|
// focus in the last element in container, focus back to trigger and close panel
|
|
1019
824
|
this._focusTrigger();
|
|
1020
|
-
|
|
1021
|
-
this.close();
|
|
825
|
+
this.close(event);
|
|
1022
826
|
handlePrevent(event);
|
|
1023
827
|
}
|
|
1024
828
|
}
|
|
1025
|
-
|
|
1026
829
|
_handlePanelOpenShiftTabKeyDown(focusableElements, event) {
|
|
1027
830
|
const activeElement = this._adapter.getActiveElement();
|
|
1028
|
-
|
|
1029
831
|
const isFocusInContainer = this._adapter.getIsFocusInContainer();
|
|
1030
|
-
|
|
1031
832
|
if (!isFocusInContainer) {
|
|
1032
833
|
// focus in trigger, close the panel, shift tab to previe element and trigger blur
|
|
1033
|
-
this.close();
|
|
1034
|
-
|
|
834
|
+
this.close(event);
|
|
1035
835
|
this._notifyBlur(event);
|
|
1036
836
|
} else if (activeElement === focusableElements[0]) {
|
|
1037
837
|
// focus in the first element in container, focus back to trigger
|
|
1038
838
|
this._focusTrigger();
|
|
1039
|
-
|
|
1040
839
|
this._adapter.setIsFocusInContainer(false);
|
|
1041
|
-
|
|
1042
840
|
handlePrevent(event);
|
|
1043
841
|
}
|
|
1044
842
|
}
|
|
1045
|
-
|
|
1046
843
|
_handleEnterKeyDown(event) {
|
|
1047
844
|
const {
|
|
1048
845
|
isOpen,
|
|
1049
846
|
options,
|
|
1050
847
|
focusIndex
|
|
1051
848
|
} = this.getStates();
|
|
1052
|
-
|
|
1053
849
|
if (!isOpen) {
|
|
1054
850
|
this.open();
|
|
1055
851
|
} else {
|
|
@@ -1057,64 +853,54 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
1057
853
|
const visibleOptions = options.filter(item => item._show);
|
|
1058
854
|
const {
|
|
1059
855
|
length
|
|
1060
|
-
} = visibleOptions;
|
|
1061
|
-
|
|
856
|
+
} = visibleOptions;
|
|
857
|
+
// fix issue 1201
|
|
1062
858
|
if (length <= focusIndex) {
|
|
1063
859
|
return;
|
|
1064
860
|
}
|
|
1065
|
-
|
|
1066
861
|
if (visibleOptions && length) {
|
|
1067
862
|
const selectedOption = visibleOptions[focusIndex];
|
|
1068
|
-
|
|
1069
863
|
if (selectedOption.disabled) {
|
|
1070
864
|
return;
|
|
1071
865
|
}
|
|
1072
|
-
|
|
1073
866
|
this.onSelect(selectedOption, focusIndex, event);
|
|
1074
867
|
}
|
|
1075
868
|
} else {
|
|
1076
|
-
this.close();
|
|
869
|
+
this.close(event);
|
|
1077
870
|
}
|
|
1078
871
|
}
|
|
1079
872
|
}
|
|
1080
|
-
|
|
1081
873
|
_handleBackspaceKeyDown() {
|
|
1082
874
|
if (this._isMultiple()) {
|
|
1083
875
|
const selections = this._adapter.getSelections();
|
|
1084
|
-
|
|
1085
876
|
const {
|
|
1086
877
|
inputValue
|
|
1087
878
|
} = this.getStates();
|
|
1088
879
|
const length = selections.size;
|
|
1089
|
-
|
|
1090
880
|
if (length && !inputValue) {
|
|
1091
881
|
const keys = [...selections.keys()];
|
|
1092
882
|
let index = length - 1;
|
|
1093
883
|
let targetLabel = keys[index];
|
|
1094
884
|
let targetItem = selections.get(targetLabel);
|
|
1095
|
-
let isAllDisabled = false;
|
|
1096
|
-
|
|
885
|
+
let isAllDisabled = false;
|
|
886
|
+
// can skip disabled item when remove trigger by backspace
|
|
1097
887
|
if (targetItem.disabled && index === 0) {
|
|
1098
888
|
return;
|
|
1099
889
|
}
|
|
1100
|
-
|
|
1101
890
|
while (targetItem.disabled && index !== 0) {
|
|
1102
891
|
index = index - 1;
|
|
1103
892
|
targetLabel = keys[index];
|
|
1104
|
-
targetItem = selections.get(targetLabel);
|
|
1105
|
-
|
|
893
|
+
targetItem = selections.get(targetLabel);
|
|
1106
894
|
if (index == 0 && targetItem.disabled) {
|
|
1107
895
|
isAllDisabled = true;
|
|
1108
896
|
}
|
|
1109
897
|
}
|
|
1110
|
-
|
|
1111
898
|
if (!isAllDisabled) {
|
|
1112
899
|
this.removeTag(targetItem);
|
|
1113
900
|
}
|
|
1114
901
|
}
|
|
1115
902
|
}
|
|
1116
903
|
}
|
|
1117
|
-
|
|
1118
904
|
_notifyChange(selections) {
|
|
1119
905
|
const {
|
|
1120
906
|
onChangeWithObject
|
|
@@ -1122,88 +908,65 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
1122
908
|
const stateSelections = this.getState('selections');
|
|
1123
909
|
let notifyVal;
|
|
1124
910
|
const selectionsProps = [...selections.values()];
|
|
1125
|
-
|
|
1126
911
|
const isMultiple = this._isMultiple();
|
|
1127
|
-
|
|
1128
912
|
const hasChange = this._diffSelections(selections, stateSelections, isMultiple);
|
|
1129
|
-
|
|
1130
913
|
if (!hasChange) {
|
|
1131
914
|
return;
|
|
1132
915
|
}
|
|
1133
|
-
|
|
1134
916
|
switch (true) {
|
|
1135
917
|
case onChangeWithObject:
|
|
1136
918
|
this._notifyChangeWithObject(selections);
|
|
1137
|
-
|
|
1138
919
|
break;
|
|
1139
|
-
|
|
1140
920
|
case !onChangeWithObject && !isMultiple:
|
|
1141
921
|
notifyVal = selectionsProps.length ? selectionsProps[0].value : undefined;
|
|
1142
|
-
|
|
1143
922
|
this._adapter.notifyChange(notifyVal);
|
|
1144
|
-
|
|
1145
923
|
break;
|
|
1146
|
-
|
|
1147
924
|
case !onChangeWithObject && isMultiple:
|
|
1148
925
|
notifyVal = selectionsProps.length ? selectionsProps.map(props => props.value) : [];
|
|
1149
|
-
|
|
1150
926
|
this._adapter.notifyChange(notifyVal);
|
|
1151
|
-
|
|
1152
927
|
break;
|
|
1153
|
-
|
|
1154
928
|
default:
|
|
1155
929
|
break;
|
|
1156
930
|
}
|
|
1157
931
|
}
|
|
1158
|
-
|
|
1159
932
|
_removeInternalKey(option) {
|
|
1160
|
-
// eslint-disable-next-line
|
|
1161
933
|
let newOption = Object.assign({}, option);
|
|
1162
934
|
delete newOption._parentGroup;
|
|
1163
935
|
delete newOption._show;
|
|
1164
936
|
delete newOption._selected;
|
|
1165
937
|
delete newOption._scrollIndex;
|
|
1166
|
-
|
|
938
|
+
delete newOption._keyInJsx;
|
|
1167
939
|
if ('_keyInOptionList' in newOption) {
|
|
1168
940
|
newOption.key = newOption._keyInOptionList;
|
|
1169
941
|
delete newOption._keyInOptionList;
|
|
1170
942
|
}
|
|
1171
|
-
|
|
1172
943
|
return newOption;
|
|
1173
944
|
}
|
|
1174
|
-
|
|
1175
945
|
_notifySelect(value, option) {
|
|
1176
946
|
const newOption = this._removeInternalKey(option);
|
|
1177
|
-
|
|
1178
947
|
this._adapter.notifySelect(value, newOption);
|
|
1179
948
|
}
|
|
1180
|
-
|
|
1181
949
|
_notifyDeselect(value, option) {
|
|
1182
950
|
const newOption = this._removeInternalKey(option);
|
|
1183
|
-
|
|
1184
951
|
this._adapter.notifyDeselect(value, newOption);
|
|
1185
952
|
}
|
|
1186
|
-
|
|
1187
953
|
_diffSelections(selections, oldSelections, isMultiple) {
|
|
1188
954
|
let diff = true;
|
|
1189
|
-
|
|
1190
955
|
if (!isMultiple) {
|
|
1191
956
|
const selectionProps = [...selections.values()];
|
|
1192
957
|
const oldSelectionProps = [...oldSelections.values()];
|
|
1193
958
|
const optionLabel = selectionProps[0] ? selectionProps[0].label : selectionProps[0];
|
|
1194
959
|
const oldOptionLabel = oldSelectionProps[0] ? oldSelectionProps[0].label : oldSelectionProps[0];
|
|
1195
960
|
diff = !_isEqual(optionLabel, oldOptionLabel);
|
|
1196
|
-
} else {
|
|
961
|
+
} else {
|
|
962
|
+
// When multiple selection, there is no scene where the value is different between the two operations
|
|
1197
963
|
}
|
|
1198
|
-
|
|
1199
964
|
return diff;
|
|
1200
|
-
}
|
|
1201
|
-
|
|
1202
|
-
|
|
965
|
+
}
|
|
966
|
+
// When onChangeWithObject is true, the onChange input parameter is not only value, but also label and other parameters
|
|
1203
967
|
_notifyChangeWithObject(selections) {
|
|
1204
968
|
const stateSelections = this.getState('selections');
|
|
1205
969
|
const values = [];
|
|
1206
|
-
|
|
1207
970
|
for (const item of selections.entries()) {
|
|
1208
971
|
let val = Object.assign({
|
|
1209
972
|
label: item[0]
|
|
@@ -1211,88 +974,70 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
1211
974
|
val = this._removeInternalKey(val);
|
|
1212
975
|
values.push(val);
|
|
1213
976
|
}
|
|
1214
|
-
|
|
1215
977
|
if (!this._isMultiple()) {
|
|
1216
978
|
this._adapter.notifyChange(values[0]);
|
|
1217
979
|
} else {
|
|
1218
980
|
this._adapter.notifyChange(values);
|
|
1219
981
|
}
|
|
1220
|
-
}
|
|
982
|
+
}
|
|
983
|
+
// Scenes that may trigger blur:
|
|
1221
984
|
// 1、clickOutSide
|
|
1222
985
|
// 2、 tab to next element/ shift tab to previous element
|
|
1223
986
|
// 3、[remove when add a11y] click option / press enter, and then select complete(when multiple is false
|
|
1224
987
|
// 4、[remove when add a11y] press esc when dropdown list open
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
988
|
_notifyBlur(e) {
|
|
1228
989
|
this._adapter.notifyBlur(e);
|
|
1229
|
-
}
|
|
990
|
+
}
|
|
991
|
+
// Scenes that may trigger focus:
|
|
1230
992
|
// 1、click selection
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
993
|
_notifyFocus(e) {
|
|
1234
994
|
this._adapter.notifyFocus(e);
|
|
1235
995
|
}
|
|
1236
|
-
|
|
1237
996
|
handleMouseEnter(e) {
|
|
1238
997
|
this._adapter.updateHovering(true);
|
|
1239
|
-
|
|
1240
998
|
this._adapter.notifyMouseEnter(e);
|
|
1241
999
|
}
|
|
1242
|
-
|
|
1243
1000
|
handleMouseLeave(e) {
|
|
1244
1001
|
this._adapter.updateHovering(false);
|
|
1245
|
-
|
|
1246
1002
|
this._adapter.notifyMouseLeave(e);
|
|
1247
1003
|
}
|
|
1248
|
-
|
|
1249
1004
|
handleClearClick(e) {
|
|
1250
1005
|
const {
|
|
1251
1006
|
filter
|
|
1252
1007
|
} = this.getProps();
|
|
1253
|
-
|
|
1254
1008
|
if (filter) {
|
|
1255
|
-
this.clearInput();
|
|
1009
|
+
this.clearInput(e);
|
|
1256
1010
|
}
|
|
1257
|
-
|
|
1258
|
-
this.
|
|
1259
|
-
|
|
1011
|
+
// after click showClear button, the select need to be focused
|
|
1012
|
+
this.focus();
|
|
1013
|
+
this.clearSelected();
|
|
1014
|
+
// prevent this click open dropdown
|
|
1260
1015
|
e.stopPropagation();
|
|
1261
1016
|
}
|
|
1262
|
-
|
|
1263
1017
|
handleKeyPress(e) {
|
|
1264
1018
|
if (e && e.key === ENTER_KEY) {
|
|
1265
1019
|
this.handleClick(e);
|
|
1266
1020
|
}
|
|
1267
1021
|
}
|
|
1268
1022
|
/* istanbul ignore next */
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
1023
|
handleClearBtnEnterPress(e) {
|
|
1272
1024
|
if (isEnterPress(e)) {
|
|
1273
1025
|
this.handleClearClick(e);
|
|
1274
1026
|
}
|
|
1275
1027
|
}
|
|
1276
|
-
|
|
1277
1028
|
handleOptionMouseEnter(optionIndex) {
|
|
1278
1029
|
this._adapter.updateFocusIndex(optionIndex);
|
|
1279
1030
|
}
|
|
1280
|
-
|
|
1281
1031
|
handleListScroll(e) {
|
|
1282
1032
|
this._adapter.notifyListScroll(e);
|
|
1283
1033
|
}
|
|
1284
|
-
|
|
1285
1034
|
handleTriggerFocus(e) {
|
|
1286
1035
|
this.bindKeyBoardEvent();
|
|
1287
|
-
|
|
1288
|
-
this._adapter.updateFocusState(true);
|
|
1289
|
-
|
|
1036
|
+
// close the tag in multiple select did not trigger select focus, but trigger TriggerFocus, so not need to updateFocusState in this function
|
|
1037
|
+
// this._adapter.updateFocusState(true);
|
|
1290
1038
|
this._adapter.setIsFocusInContainer(false);
|
|
1291
1039
|
}
|
|
1292
|
-
|
|
1293
1040
|
handleTriggerBlur(e) {
|
|
1294
|
-
this._adapter.updateFocusState(false);
|
|
1295
|
-
|
|
1296
1041
|
const {
|
|
1297
1042
|
filter,
|
|
1298
1043
|
autoFocus
|
|
@@ -1300,28 +1045,25 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
1300
1045
|
const {
|
|
1301
1046
|
isOpen,
|
|
1302
1047
|
isFocus
|
|
1303
|
-
} = this.getStates();
|
|
1048
|
+
} = this.getStates();
|
|
1049
|
+
// Under normal circumstances, blur will be accompanied by clickOutsideHandler, so the notify of blur can be called uniformly in clickOutsideHandler
|
|
1304
1050
|
// But when autoFocus or the panel is close, because clickOutsideHandler is not register or unregister, you need to listen for the trigger's blur and trigger the notify callback
|
|
1305
|
-
|
|
1306
1051
|
if (isFocus && !isOpen) {
|
|
1307
1052
|
this._notifyBlur(e);
|
|
1053
|
+
this._adapter.updateFocusState(false);
|
|
1308
1054
|
}
|
|
1309
1055
|
}
|
|
1310
|
-
|
|
1311
1056
|
handleInputBlur(e) {
|
|
1312
1057
|
const {
|
|
1313
1058
|
filter,
|
|
1314
1059
|
autoFocus
|
|
1315
1060
|
} = this.getProps();
|
|
1316
|
-
|
|
1317
1061
|
const isMultiple = this._isMultiple();
|
|
1318
|
-
|
|
1319
1062
|
if (autoFocus && filter && !isMultiple) {
|
|
1320
1063
|
// under this condition, when input blur, hide the input
|
|
1321
1064
|
this.toggle2SearchInput(false);
|
|
1322
1065
|
}
|
|
1323
1066
|
}
|
|
1324
|
-
|
|
1325
1067
|
selectAll() {
|
|
1326
1068
|
const {
|
|
1327
1069
|
options
|
|
@@ -1330,22 +1072,18 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
1330
1072
|
onChangeWithObject
|
|
1331
1073
|
} = this.getProps();
|
|
1332
1074
|
let selectedValues = [];
|
|
1333
|
-
|
|
1334
1075
|
const isMultiple = this._isMultiple();
|
|
1335
|
-
|
|
1336
1076
|
if (!isMultiple) {
|
|
1337
|
-
console.warn(
|
|
1077
|
+
console.warn(`[Semi Select]: It seems that you have called the selectAll method in the single-selection Select.
|
|
1078
|
+
Please note that this is not a legal way to use it`);
|
|
1338
1079
|
return;
|
|
1339
1080
|
}
|
|
1340
|
-
|
|
1341
1081
|
if (onChangeWithObject) {
|
|
1342
1082
|
selectedValues = options;
|
|
1343
1083
|
} else {
|
|
1344
1084
|
selectedValues = options.map(option => option.value);
|
|
1345
1085
|
}
|
|
1346
|
-
|
|
1347
1086
|
this.handleValueChange(selectedValues);
|
|
1348
|
-
|
|
1349
1087
|
this._adapter.notifyChange(selectedValues);
|
|
1350
1088
|
}
|
|
1351
1089
|
/**
|
|
@@ -1353,8 +1091,6 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
1353
1091
|
* -defaultValue/value in multiple selection mode is array
|
|
1354
1092
|
* @param {Object} props
|
|
1355
1093
|
*/
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
1094
|
checkMultipleProps(props) {
|
|
1359
1095
|
if (this._isMultiple()) {
|
|
1360
1096
|
const currentProps = props ? props : this.getProps();
|
|
@@ -1363,32 +1099,48 @@ export default class SelectFoundation extends BaseFoundation {
|
|
|
1363
1099
|
value
|
|
1364
1100
|
} = currentProps;
|
|
1365
1101
|
const selectedValues = value || defaultValue;
|
|
1366
|
-
|
|
1367
1102
|
if (!isNullOrUndefined(selectedValues) && !Array.isArray(selectedValues)) {
|
|
1368
1103
|
/* istanbul ignore next */
|
|
1369
1104
|
warning(true, '[Semi Select] defaultValue/value should be array type in multiple mode');
|
|
1370
1105
|
}
|
|
1371
1106
|
}
|
|
1372
1107
|
}
|
|
1373
|
-
|
|
1374
1108
|
updateScrollTop() {
|
|
1375
1109
|
this._adapter.updateScrollTop();
|
|
1376
1110
|
}
|
|
1377
|
-
|
|
1111
|
+
updateOverflowItemCount(selectionLength, overFlowCount) {
|
|
1112
|
+
const {
|
|
1113
|
+
maxTagCount,
|
|
1114
|
+
ellipsisTrigger
|
|
1115
|
+
} = this.getProps();
|
|
1116
|
+
if (!ellipsisTrigger) {
|
|
1117
|
+
return;
|
|
1118
|
+
}
|
|
1119
|
+
if (overFlowCount) {
|
|
1120
|
+
this._adapter.updateOverflowItemCount(overFlowCount);
|
|
1121
|
+
} else if (typeof maxTagCount === 'number') {
|
|
1122
|
+
if (selectionLength - maxTagCount > 0) {
|
|
1123
|
+
this._adapter.updateOverflowItemCount(selectionLength - maxTagCount);
|
|
1124
|
+
} else {
|
|
1125
|
+
this._adapter.updateOverflowItemCount(0);
|
|
1126
|
+
}
|
|
1127
|
+
}
|
|
1128
|
+
}
|
|
1378
1129
|
updateIsFullTags() {
|
|
1379
1130
|
const {
|
|
1380
1131
|
isFullTags
|
|
1381
1132
|
} = this.getStates();
|
|
1382
|
-
|
|
1383
1133
|
if (!isFullTags) {
|
|
1384
1134
|
this._adapter.setState({
|
|
1385
1135
|
isFullTags: true
|
|
1386
1136
|
});
|
|
1387
1137
|
}
|
|
1388
1138
|
}
|
|
1389
|
-
|
|
1390
1139
|
handlePopoverClose() {
|
|
1391
1140
|
this._adapter.emit('popoverClose');
|
|
1392
1141
|
}
|
|
1393
|
-
|
|
1142
|
+
// need to remove focus style of option when user hover slot
|
|
1143
|
+
handleSlotMouseEnter() {
|
|
1144
|
+
this._adapter.updateFocusIndex(-1);
|
|
1145
|
+
}
|
|
1394
1146
|
}
|