@douyinfe/semi-foundation 2.24.2 → 2.25.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/anchor/anchor.scss +6 -0
- package/anchor/foundation.ts +7 -6
- package/anchor/linkFoundation.ts +0 -1
- package/anchor/variables.scss +4 -0
- package/autoComplete/autoComplete.scss +2 -0
- package/autoComplete/foundation.ts +23 -20
- package/autoComplete/optionFoundation.ts +0 -2
- package/avatar/animation.scss +19 -0
- package/avatar/avatar.scss +314 -1
- package/avatar/constants.ts +21 -4
- package/avatar/foundation.ts +21 -4
- package/avatar/variables.scss +66 -10
- package/badge/badge.scss +13 -0
- package/badge/constants.ts +1 -1
- package/badge/variables.scss +4 -0
- package/base/foundation.ts +2 -3
- package/breadcrumb/breadcrumb.scss +10 -4
- package/breadcrumb/foundation.ts +0 -1
- package/breadcrumb/variables.scss +4 -0
- package/button/button.scss +88 -21
- package/button/iconButton.scss +1 -0
- package/button/splitButtonGroup.scss +10 -9
- package/button/variables.scss +13 -0
- package/calendar/calendar.scss +1 -1
- package/calendar/eventUtil.ts +14 -10
- package/calendar/foundation.ts +9 -9
- package/carousel/carousel.scss +4 -0
- package/carousel/foundation.ts +12 -7
- package/cascader/cascader.scss +66 -23
- package/cascader/constants.ts +5 -1
- package/cascader/foundation.ts +111 -63
- package/cascader/util.ts +64 -10
- package/cascader/variables.scss +5 -1
- package/checkbox/checkbox.scss +0 -1
- package/checkbox/checkboxFoundation.ts +1 -2
- package/checkbox/checkboxGroupFoundation.ts +0 -1
- package/collapse/foundation.ts +1 -0
- package/datePicker/_utils/getDefaultFormatToken.ts +1 -0
- package/datePicker/_utils/getInsetInputFormatToken.ts +1 -0
- package/datePicker/_utils/getInsetInputValueFromInsetInputStr.ts +1 -0
- package/datePicker/_utils/getYears.ts +8 -4
- package/datePicker/_utils/isValidTimeZone.ts +3 -0
- package/datePicker/constants.ts +1 -1
- package/datePicker/datePicker.scss +170 -21
- package/datePicker/foundation.ts +175 -150
- package/datePicker/inputFoundation.ts +34 -16
- package/datePicker/monthFoundation.ts +0 -1
- package/datePicker/monthsGridFoundation.ts +52 -32
- package/datePicker/variables.scss +13 -4
- package/datePicker/yearAndMonthFoundation.ts +68 -21
- package/descriptions/constants.ts +2 -1
- package/descriptions/descriptions.scss +20 -0
- package/descriptions/foundation.ts +36 -0
- package/descriptions/variables.scss +10 -0
- package/dropdown/constants.ts +1 -1
- package/dropdown/dropdown.scss +5 -0
- package/dropdown/foundation.ts +4 -3
- package/dropdown/menuFoundation.ts +3 -3
- package/form/constants.ts +2 -1
- package/form/form.scss +5 -2
- package/form/foundation.ts +12 -10
- package/form/interface.ts +5 -6
- package/form/utils.ts +39 -16
- package/form/variables.scss +3 -0
- package/grid/grid.scss +1 -1
- package/image/constants.ts +5 -1
- package/image/image.scss +9 -5
- package/image/previewFooterFoundation.ts +1 -4
- package/image/previewFoundation.ts +1 -1
- package/image/previewImageFoundation.ts +61 -70
- package/image/previewInnerFoundation.ts +93 -47
- package/image/utils.ts +18 -20
- package/image/variables.scss +1 -1
- package/input/foundation.ts +2 -4
- package/input/input.scss +48 -3
- package/input/textarea.scss +34 -0
- package/input/textareaFoundation.ts +42 -18
- package/input/variables.scss +7 -0
- package/inputNumber/foundation.ts +0 -5
- package/inputNumber/inputNumber.scss +9 -0
- package/lib/cjs/anchor/anchor.css +5 -0
- package/lib/cjs/anchor/anchor.scss +6 -0
- package/lib/cjs/anchor/constants.js +1 -3
- package/lib/cjs/anchor/foundation.js +20 -80
- package/lib/cjs/anchor/linkFoundation.js +3 -16
- package/lib/cjs/anchor/variables.scss +4 -0
- package/lib/cjs/autoComplete/autoComplete.css +1 -0
- package/lib/cjs/autoComplete/autoComplete.scss +2 -0
- package/lib/cjs/autoComplete/constants.js +3 -6
- package/lib/cjs/autoComplete/foundation.d.ts +3 -1
- package/lib/cjs/autoComplete/foundation.js +37 -149
- package/lib/cjs/autoComplete/optionFoundation.js +2 -14
- package/lib/cjs/avatar/animation.scss +19 -0
- package/lib/cjs/avatar/avatar.css +261 -0
- package/lib/cjs/avatar/avatar.scss +314 -1
- package/lib/cjs/avatar/constants.js +1 -4
- package/lib/cjs/avatar/foundation.d.ts +3 -0
- package/lib/cjs/avatar/foundation.js +21 -19
- package/lib/cjs/avatar/variables.scss +66 -10
- package/lib/cjs/backtop/constants.js +1 -3
- package/lib/cjs/backtop/foundation.d.ts +2 -2
- package/lib/cjs/backtop/foundation.js +0 -21
- package/lib/cjs/badge/badge.css +10 -0
- package/lib/cjs/badge/badge.scss +13 -0
- package/lib/cjs/badge/constants.js +2 -4
- package/lib/cjs/badge/variables.scss +4 -0
- package/lib/cjs/banner/constants.js +1 -3
- package/lib/cjs/banner/foundation.js +0 -7
- package/lib/cjs/base/constants.js +2 -4
- package/lib/cjs/base/foundation.d.ts +3 -3
- package/lib/cjs/base/foundation.js +12 -46
- package/lib/cjs/base/index.js +0 -3
- package/lib/cjs/breadcrumb/breadcrumb.css +5 -3
- package/lib/cjs/breadcrumb/breadcrumb.scss +10 -4
- package/lib/cjs/breadcrumb/constants.js +1 -3
- package/lib/cjs/breadcrumb/foundation.js +0 -13
- package/lib/cjs/breadcrumb/itemFoundation.js +0 -7
- package/lib/cjs/breadcrumb/variables.scss +4 -0
- package/lib/cjs/button/button.css +32 -5
- package/lib/cjs/button/button.scss +88 -21
- package/lib/cjs/button/constants.js +1 -3
- package/lib/cjs/button/iconButton.css +1 -0
- package/lib/cjs/button/iconButton.scss +1 -0
- package/lib/cjs/button/splitButtonGroup.scss +10 -9
- package/lib/cjs/button/variables.scss +13 -0
- package/lib/cjs/calendar/calendar.css +2 -2
- package/lib/cjs/calendar/calendar.scss +1 -1
- package/lib/cjs/calendar/constants.js +1 -3
- package/lib/cjs/calendar/eventUtil.d.ts +7 -6
- package/lib/cjs/calendar/eventUtil.js +15 -83
- package/lib/cjs/calendar/foundation.d.ts +4 -4
- package/lib/cjs/calendar/foundation.js +32 -128
- package/lib/cjs/card/constants.js +1 -3
- package/lib/cjs/carousel/carousel.css +4 -0
- package/lib/cjs/carousel/carousel.scss +4 -0
- package/lib/cjs/carousel/constants.js +9 -11
- package/lib/cjs/carousel/foundation.d.ts +2 -0
- package/lib/cjs/carousel/foundation.js +7 -52
- package/lib/cjs/cascader/cascader.css +45 -4
- package/lib/cjs/cascader/cascader.scss +66 -23
- package/lib/cjs/cascader/constants.d.ts +3 -0
- package/lib/cjs/cascader/constants.js +9 -8
- package/lib/cjs/cascader/foundation.d.ts +27 -8
- package/lib/cjs/cascader/foundation.js +122 -300
- package/lib/cjs/cascader/util.d.ts +9 -1
- package/lib/cjs/cascader/util.js +69 -33
- package/lib/cjs/cascader/variables.scss +5 -1
- package/lib/cjs/checkbox/checkbox.css +0 -1
- package/lib/cjs/checkbox/checkbox.scss +0 -1
- package/lib/cjs/checkbox/checkboxFoundation.js +1 -38
- package/lib/cjs/checkbox/checkboxGroupFoundation.js +1 -23
- package/lib/cjs/checkbox/constants.js +13 -15
- package/lib/cjs/collapse/constants.js +1 -3
- package/lib/cjs/collapse/foundation.d.ts +2 -1
- package/lib/cjs/collapse/foundation.js +2 -13
- package/lib/cjs/collapsible/constants.js +1 -3
- package/lib/cjs/collapsible/foundation.js +0 -9
- package/lib/cjs/datePicker/_utils/formatter.js +4 -10
- package/lib/cjs/datePicker/_utils/getDayOfWeek.d.ts +1 -1
- package/lib/cjs/datePicker/_utils/getDayOfWeek.js +0 -4
- package/lib/cjs/datePicker/_utils/getDefaultFormatToken.d.ts +1 -0
- package/lib/cjs/datePicker/_utils/getDefaultFormatToken.js +2 -6
- package/lib/cjs/datePicker/_utils/getDefaultPickerDate.d.ts +1 -1
- package/lib/cjs/datePicker/_utils/getDefaultPickerDate.js +0 -15
- package/lib/cjs/datePicker/_utils/getFullDateOffset.js +0 -7
- package/lib/cjs/datePicker/_utils/getInsetInputFormatToken.js +2 -6
- package/lib/cjs/datePicker/_utils/getInsetInputValueFromInsetInputStr.js +1 -6
- package/lib/cjs/datePicker/_utils/getMonthTable.d.ts +1 -1
- package/lib/cjs/datePicker/_utils/getMonthTable.js +7 -18
- package/lib/cjs/datePicker/_utils/getMonthsInYear.js +1 -3
- package/lib/cjs/datePicker/_utils/getYears.d.ts +1 -1
- package/lib/cjs/datePicker/_utils/getYears.js +9 -7
- package/lib/cjs/datePicker/_utils/index.js +0 -13
- package/lib/cjs/datePicker/_utils/isAfter.js +0 -4
- package/lib/cjs/datePicker/_utils/isBefore.js +0 -4
- package/lib/cjs/datePicker/_utils/isBetween.js +0 -4
- package/lib/cjs/datePicker/_utils/isDate.js +0 -1
- package/lib/cjs/datePicker/_utils/isSameDay.js +0 -4
- package/lib/cjs/datePicker/_utils/isTimestamp.js +0 -4
- package/lib/cjs/datePicker/_utils/isUnixTimestamp.js +0 -4
- package/lib/cjs/datePicker/_utils/isValidDate.js +0 -1
- package/lib/cjs/datePicker/_utils/isValidTimeZone.d.ts +1 -0
- package/lib/cjs/datePicker/_utils/isValidTimeZone.js +9 -0
- package/lib/cjs/datePicker/_utils/isWithinInterval.js +0 -4
- package/lib/cjs/datePicker/_utils/parser.js +0 -10
- package/lib/cjs/datePicker/constants.d.ts +1 -1
- package/lib/cjs/datePicker/constants.js +28 -31
- package/lib/cjs/datePicker/datePicker.css +88 -13
- package/lib/cjs/datePicker/datePicker.scss +170 -21
- package/lib/cjs/datePicker/foundation.d.ts +79 -50
- package/lib/cjs/datePicker/foundation.js +173 -441
- package/lib/cjs/datePicker/inputFoundation.d.ts +15 -6
- package/lib/cjs/datePicker/inputFoundation.js +35 -98
- package/lib/cjs/datePicker/monthFoundation.d.ts +1 -1
- package/lib/cjs/datePicker/monthFoundation.js +2 -28
- package/lib/cjs/datePicker/monthsGridFoundation.d.ts +18 -13
- package/lib/cjs/datePicker/monthsGridFoundation.js +70 -247
- package/lib/cjs/datePicker/variables.scss +13 -4
- package/lib/cjs/datePicker/yearAndMonthFoundation.d.ts +68 -13
- package/lib/cjs/datePicker/yearAndMonthFoundation.js +55 -42
- package/lib/cjs/descriptions/constants.d.ts +1 -0
- package/lib/cjs/descriptions/constants.js +3 -4
- package/lib/cjs/descriptions/descriptions.css +15 -0
- package/lib/cjs/descriptions/descriptions.scss +20 -0
- package/lib/cjs/descriptions/foundation.d.ts +7 -0
- package/lib/cjs/descriptions/foundation.js +45 -0
- package/lib/cjs/descriptions/variables.scss +10 -0
- package/lib/cjs/divider/constants.js +1 -3
- package/lib/cjs/dropdown/constants.js +4 -7
- package/lib/cjs/dropdown/dropdown.css +4 -0
- package/lib/cjs/dropdown/dropdown.scss +5 -0
- package/lib/cjs/dropdown/foundation.js +9 -25
- package/lib/cjs/dropdown/menuFoundation.js +9 -28
- package/lib/cjs/empty/constants.js +1 -3
- package/lib/cjs/form/constants.d.ts +1 -0
- package/lib/cjs/form/constants.js +3 -4
- package/lib/cjs/form/form.css +4 -0
- package/lib/cjs/form/form.scss +5 -2
- package/lib/cjs/form/foundation.d.ts +4 -4
- package/lib/cjs/form/foundation.js +84 -214
- package/lib/cjs/form/interface.d.ts +10 -10
- package/lib/cjs/form/utils.d.ts +10 -1
- package/lib/cjs/form/utils.js +85 -93
- package/lib/cjs/form/variables.scss +3 -0
- package/lib/cjs/grid/constants.js +1 -3
- package/lib/cjs/grid/grid.css +1 -1
- package/lib/cjs/grid/grid.scss +1 -1
- package/lib/cjs/highlight/constants.js +1 -3
- package/lib/cjs/icons/constants.js +1 -3
- package/lib/cjs/image/constants.d.ts +4 -1
- package/lib/cjs/image/constants.js +7 -5
- package/lib/cjs/image/image.css +4 -2
- package/lib/cjs/image/image.scss +9 -5
- package/lib/cjs/image/imageFoundation.js +4 -18
- package/lib/cjs/image/previewFooterFoundation.d.ts +0 -1
- package/lib/cjs/image/previewFooterFoundation.js +0 -14
- package/lib/cjs/image/previewFoundation.js +0 -11
- package/lib/cjs/image/previewImageFoundation.d.ts +9 -24
- package/lib/cjs/image/previewImageFoundation.js +79 -164
- package/lib/cjs/image/previewInnerFoundation.d.ts +19 -15
- package/lib/cjs/image/previewInnerFoundation.js +108 -114
- package/lib/cjs/image/utils.d.ts +1 -1
- package/lib/cjs/image/utils.js +46 -35
- package/lib/cjs/image/variables.scss +1 -1
- package/lib/cjs/input/constants.js +1 -3
- package/lib/cjs/input/foundation.js +19 -104
- package/lib/cjs/input/input.css +45 -1
- package/lib/cjs/input/input.scss +48 -3
- package/lib/cjs/input/textarea.css +20 -0
- package/lib/cjs/input/textarea.scss +34 -0
- package/lib/cjs/input/textareaFoundation.d.ts +1 -1
- package/lib/cjs/input/textareaFoundation.js +58 -101
- package/lib/cjs/input/util/calculateNodeHeight.js +6 -18
- package/lib/cjs/input/util/getSizingData.js +7 -11
- package/lib/cjs/input/variables.scss +7 -0
- package/lib/cjs/inputNumber/constants.js +0 -2
- package/lib/cjs/inputNumber/foundation.js +28 -197
- package/lib/cjs/inputNumber/inputNumber.css +4 -0
- package/lib/cjs/inputNumber/inputNumber.scss +9 -0
- package/lib/cjs/layout/constants.js +1 -3
- package/lib/cjs/list/constants.js +1 -3
- package/lib/cjs/modal/constants.js +1 -3
- package/lib/cjs/modal/modal.css +8 -0
- package/lib/cjs/modal/modal.scss +10 -1
- package/lib/cjs/modal/modalContentFoundation.js +0 -20
- package/lib/cjs/modal/modalFoundation.d.ts +8 -4
- package/lib/cjs/modal/modalFoundation.js +40 -15
- package/lib/cjs/modal/variables.scss +6 -1
- package/lib/cjs/navigation/NavItem.js +0 -12
- package/lib/cjs/navigation/constants.js +1 -4
- package/lib/cjs/navigation/foundation.js +3 -70
- package/lib/cjs/navigation/itemFoundation.js +3 -22
- package/lib/cjs/navigation/subNavFoundation.js +7 -42
- package/lib/cjs/notification/constants.js +3 -6
- package/lib/cjs/notification/notification.css +18 -0
- package/lib/cjs/notification/notification.scss +21 -1
- package/lib/cjs/notification/notificationFoundation.d.ts +6 -6
- package/lib/cjs/notification/notificationFoundation.js +0 -16
- package/lib/cjs/notification/notificationListFoundation.d.ts +4 -1
- package/lib/cjs/notification/notificationListFoundation.js +15 -18
- package/lib/cjs/overflowList/constants.d.ts +6 -4
- package/lib/cjs/overflowList/constants.js +3 -3
- package/lib/cjs/overflowList/foundation.d.ts +3 -1
- package/lib/cjs/overflowList/foundation.js +59 -68
- package/lib/cjs/pagination/constants.js +1 -3
- package/lib/cjs/pagination/foundation.d.ts +5 -3
- package/lib/cjs/pagination/foundation.js +36 -93
- package/lib/cjs/pagination/pagination.css +23 -0
- package/lib/cjs/pagination/pagination.scss +29 -0
- package/lib/cjs/pagination/variables.scss +1 -0
- package/lib/cjs/popconfirm/constants.js +2 -4
- package/lib/cjs/popconfirm/popconfirm.css +4 -24
- package/lib/cjs/popconfirm/popconfirm.scss +4 -16
- package/lib/cjs/popconfirm/popconfirmFoundation.d.ts +4 -0
- package/lib/cjs/popconfirm/popconfirmFoundation.js +17 -19
- package/lib/cjs/popconfirm/rtl.scss +0 -13
- package/lib/cjs/popconfirm/variables.scss +0 -4
- package/lib/cjs/popover/constants.d.ts +1 -1
- package/lib/cjs/popover/constants.js +3 -6
- package/lib/cjs/popover/popover.css +2 -0
- package/lib/cjs/popover/popover.scss +2 -0
- package/lib/cjs/progress/constants.js +1 -3
- package/lib/cjs/progress/generates.d.ts +2 -2
- package/lib/cjs/progress/generates.js +33 -74
- package/lib/cjs/radio/constants.js +13 -15
- package/lib/cjs/radio/radio.css +3 -0
- package/lib/cjs/radio/radio.scss +6 -3
- package/lib/cjs/radio/radioFoundation.js +0 -14
- package/lib/cjs/radio/radioGroupFoundation.js +3 -23
- package/lib/cjs/radio/radioInnerFoundation.js +1 -19
- package/lib/cjs/radio/variables.scss +4 -0
- package/lib/cjs/rating/constants.js +1 -3
- package/lib/cjs/rating/foundation.js +10 -62
- package/lib/cjs/scrollList/constants.js +2 -4
- package/lib/cjs/scrollList/foundation.js +0 -4
- package/lib/cjs/scrollList/itemFoundation.js +8 -61
- package/lib/cjs/scrollList/scrollTo.js +2 -5
- package/lib/cjs/select/constants.js +3 -6
- package/lib/cjs/select/foundation.d.ts +8 -6
- package/lib/cjs/select/foundation.js +172 -434
- package/lib/cjs/select/option.scss +1 -1
- package/lib/cjs/select/optionFoundation.js +2 -14
- package/lib/cjs/select/select.css +50 -0
- package/lib/cjs/select/select.scss +74 -5
- package/lib/cjs/select/variables.scss +9 -6
- package/lib/cjs/sideSheet/constants.js +2 -4
- package/lib/cjs/sideSheet/sideSheet.css +30 -0
- package/lib/cjs/sideSheet/sideSheet.scss +38 -0
- package/lib/cjs/sideSheet/sideSheetFoundation.d.ts +1 -0
- package/lib/cjs/sideSheet/sideSheetFoundation.js +0 -18
- package/lib/cjs/sideSheet/variables.scss +7 -0
- package/lib/cjs/skeleton/constants.js +1 -3
- package/lib/cjs/skeleton/skeleton.css +3 -2
- package/lib/cjs/skeleton/skeleton.scss +1 -0
- package/lib/cjs/skeleton/variables.scss +2 -2
- package/lib/cjs/slider/constants.d.ts +1 -0
- package/lib/cjs/slider/constants.js +8 -9
- package/lib/cjs/slider/foundation.d.ts +13 -2
- package/lib/cjs/slider/foundation.js +30 -226
- package/lib/cjs/slider/slider.css +25 -11
- package/lib/cjs/slider/slider.scss +16 -1
- package/lib/cjs/slider/variables.scss +15 -9
- package/lib/cjs/space/constants.js +1 -3
- package/lib/cjs/spin/constants.js +1 -3
- package/lib/cjs/spin/foundation.js +3 -13
- package/lib/cjs/spin/spin.css +3 -0
- package/lib/cjs/spin/spin.scss +3 -0
- package/lib/cjs/steps/bacisSteps.scss +10 -3
- package/lib/cjs/steps/constants.js +2 -4
- package/lib/cjs/steps/fillSteps.scss +7 -7
- package/lib/cjs/steps/steps.css +27 -22
- package/lib/cjs/steps/variables.scss +3 -3
- package/lib/cjs/switch/constants.js +13 -15
- package/lib/cjs/switch/foundation.js +1 -21
- package/lib/cjs/switch/switch.css +10 -0
- package/lib/cjs/switch/switch.scss +13 -2
- package/lib/cjs/table/bodyFoundation.js +1 -34
- package/lib/cjs/table/cellFoundation.js +0 -5
- package/lib/cjs/table/constants.d.ts +0 -1
- package/lib/cjs/table/constants.js +13 -18
- package/lib/cjs/table/foundation.d.ts +26 -16
- package/lib/cjs/table/foundation.js +79 -308
- package/lib/cjs/table/rtl.scss +33 -2
- package/lib/cjs/table/table.css +100 -64
- package/lib/cjs/table/table.scss +66 -8
- package/lib/cjs/table/tableRowFoundation.js +0 -12
- package/lib/cjs/table/tableSelectionCellFoundation.js +0 -6
- package/lib/cjs/table/utils.d.ts +6 -4
- package/lib/cjs/table/utils.js +27 -160
- package/lib/cjs/table/variables.scss +6 -3
- package/lib/cjs/tabs/constants.js +21 -23
- package/lib/cjs/tabs/foundation.js +2 -40
- package/lib/cjs/tabs/tabs.css +207 -7
- package/lib/cjs/tabs/tabs.scss +339 -24
- package/lib/cjs/tag/constants.js +1 -4
- package/lib/cjs/tag/tag.css +34 -1
- package/lib/cjs/tag/tag.scss +43 -4
- package/lib/cjs/tag/variables.scss +5 -0
- package/lib/cjs/tagInput/constants.js +1 -3
- package/lib/cjs/tagInput/foundation.d.ts +7 -4
- package/lib/cjs/tagInput/foundation.js +64 -88
- package/lib/cjs/tagInput/tagInput.css +35 -9
- package/lib/cjs/tagInput/tagInput.scss +41 -12
- package/lib/cjs/tagInput/utils/getSplitedArray.js +0 -11
- package/lib/cjs/tagInput/variables.scss +2 -0
- package/lib/cjs/timePicker/ComboxFoundation.js +6 -41
- package/lib/cjs/timePicker/constants.js +3 -6
- package/lib/cjs/timePicker/foundation.d.ts +2 -2
- package/lib/cjs/timePicker/foundation.js +28 -107
- package/lib/cjs/timePicker/inputFoundation.js +4 -25
- package/lib/cjs/timePicker/timePicker.css +15 -0
- package/lib/cjs/timePicker/timePicker.scss +22 -1
- package/lib/cjs/timePicker/utils/index.js +12 -51
- package/lib/cjs/timePicker/utils/localeDate.js +0 -10
- package/lib/cjs/timeline/constants.js +2 -4
- package/lib/cjs/toast/animation.scss +3 -0
- package/lib/cjs/toast/constants.js +3 -6
- package/lib/cjs/toast/toast.css +35 -3
- package/lib/cjs/toast/toast.scss +43 -3
- package/lib/cjs/toast/toastFoundation.d.ts +5 -4
- package/lib/cjs/toast/toastFoundation.js +0 -14
- package/lib/cjs/toast/toastListFoundation.d.ts +5 -0
- package/lib/cjs/toast/toastListFoundation.js +10 -22
- package/lib/cjs/toast/variables.scss +14 -0
- package/lib/cjs/tooltip/constants.d.ts +1 -1
- package/lib/cjs/tooltip/constants.js +2 -4
- package/lib/cjs/tooltip/foundation.d.ts +5 -2
- package/lib/cjs/tooltip/foundation.js +143 -336
- package/lib/cjs/tooltip/tooltip.css +7 -0
- package/lib/cjs/tooltip/tooltip.scss +9 -0
- package/lib/cjs/transfer/constants.js +1 -3
- package/lib/cjs/transfer/foundation.d.ts +1 -1
- package/lib/cjs/transfer/foundation.js +4 -69
- package/lib/cjs/transfer/transfer.css +4 -0
- package/lib/cjs/transfer/transfer.scss +7 -0
- package/lib/cjs/transfer/transferUtils.js +5 -27
- package/lib/cjs/tree/constants.js +2 -4
- package/lib/cjs/tree/foundation.d.ts +14 -9
- package/lib/cjs/tree/foundation.js +60 -183
- package/lib/cjs/tree/rtl.scss +19 -11
- package/lib/cjs/tree/tree.css +147 -65
- package/lib/cjs/tree/tree.scss +112 -17
- package/lib/cjs/tree/treeUtil.d.ts +17 -8
- package/lib/cjs/tree/treeUtil.js +102 -195
- package/lib/cjs/tree/variables.scss +3 -2
- package/lib/cjs/treeSelect/constants.js +3 -5
- package/lib/cjs/treeSelect/foundation.d.ts +26 -13
- package/lib/cjs/treeSelect/foundation.js +153 -248
- package/lib/cjs/treeSelect/treeSelect.css +55 -10
- package/lib/cjs/treeSelect/treeSelect.scss +76 -20
- package/lib/cjs/treeSelect/variables.scss +4 -2
- package/lib/cjs/typography/constants.d.ts +1 -0
- package/lib/cjs/typography/constants.js +2 -3
- package/lib/cjs/typography/formatNumeral.d.ts +3 -3
- package/lib/cjs/typography/formatNumeral.js +22 -43
- package/lib/cjs/typography/typography.css +135 -2
- package/lib/cjs/typography/typography.scss +151 -8
- package/lib/cjs/typography/variables.scss +52 -0
- package/lib/cjs/upload/constants.js +2 -4
- package/lib/cjs/upload/fileCardFoundation.d.ts +9 -0
- package/lib/cjs/upload/fileCardFoundation.js +18 -0
- package/lib/cjs/upload/foundation.d.ts +14 -5
- package/lib/cjs/upload/foundation.js +107 -247
- package/lib/cjs/upload/upload.css +9 -0
- package/lib/cjs/upload/upload.scss +8 -0
- package/lib/cjs/upload/utils.js +14 -33
- package/lib/cjs/utils/Event.js +1 -21
- package/lib/cjs/utils/FocusHandle.d.ts +1 -1
- package/lib/cjs/utils/FocusHandle.js +6 -35
- package/lib/cjs/utils/Logger.js +0 -21
- package/lib/cjs/utils/Store.js +0 -10
- package/lib/cjs/utils/a11y.js +18 -43
- package/lib/cjs/utils/array.d.ts +2 -2
- package/lib/cjs/utils/array.js +2 -9
- package/lib/cjs/utils/arrayMove.js +0 -1
- package/lib/cjs/utils/classnames.js +0 -12
- package/lib/cjs/utils/date-fns-extra.d.ts +28 -17
- package/lib/cjs/utils/date-fns-extra.js +82 -51
- package/lib/cjs/utils/dom.d.ts +1 -1
- package/lib/cjs/utils/dom.js +0 -13
- package/lib/cjs/utils/function.js +0 -2
- package/lib/cjs/utils/getDataAttr.js +1 -3
- package/lib/cjs/utils/getHighlight.js +5 -26
- package/lib/cjs/utils/getMotionObjFromProps.js +4 -16
- package/lib/cjs/utils/index.js +0 -4
- package/lib/cjs/utils/isBothNaN.js +0 -2
- package/lib/cjs/utils/isElement.js +0 -1
- package/lib/cjs/utils/isEnterPress.js +0 -5
- package/lib/cjs/utils/isEscPress.js +0 -5
- package/lib/cjs/utils/isNullOrUndefined.js +0 -1
- package/lib/cjs/utils/isNumber.js +0 -1
- package/lib/cjs/utils/isObject.js +0 -1
- package/lib/cjs/utils/isPromise.js +0 -3
- package/lib/cjs/utils/isString.js +0 -1
- package/lib/cjs/utils/keyCode.js +0 -105
- package/lib/cjs/utils/log.js +0 -5
- package/lib/cjs/utils/number.js +0 -2
- package/lib/cjs/utils/object.d.ts +4 -4
- package/lib/cjs/utils/object.js +10 -36
- package/lib/cjs/utils/set.js +0 -8
- package/lib/cjs/utils/shallowEqualObjects.js +0 -7
- package/lib/cjs/utils/touchPolyfill.js +1 -8
- package/lib/cjs/utils/type.d.ts +3 -3
- package/lib/cjs/utils/uuid.js +4 -11
- package/lib/cjs/utils/warning.js +1 -2
- package/lib/es/anchor/anchor.css +5 -0
- package/lib/es/anchor/anchor.scss +6 -0
- package/lib/es/anchor/constants.js +1 -1
- package/lib/es/anchor/foundation.js +20 -73
- package/lib/es/anchor/linkFoundation.js +3 -12
- package/lib/es/anchor/variables.scss +4 -0
- package/lib/es/autoComplete/autoComplete.css +1 -0
- package/lib/es/autoComplete/autoComplete.scss +2 -0
- package/lib/es/autoComplete/constants.js +3 -3
- package/lib/es/autoComplete/foundation.d.ts +3 -1
- package/lib/es/autoComplete/foundation.js +37 -142
- package/lib/es/autoComplete/optionFoundation.js +2 -10
- package/lib/es/avatar/animation.scss +19 -0
- package/lib/es/avatar/avatar.css +261 -0
- package/lib/es/avatar/avatar.scss +314 -1
- package/lib/es/avatar/constants.js +1 -2
- package/lib/es/avatar/foundation.d.ts +3 -0
- package/lib/es/avatar/foundation.js +21 -14
- package/lib/es/avatar/variables.scss +66 -10
- package/lib/es/backtop/constants.js +1 -1
- package/lib/es/backtop/foundation.d.ts +2 -2
- package/lib/es/backtop/foundation.js +0 -16
- package/lib/es/badge/badge.css +10 -0
- package/lib/es/badge/badge.scss +13 -0
- package/lib/es/badge/constants.js +2 -2
- package/lib/es/badge/variables.scss +4 -0
- package/lib/es/banner/constants.js +1 -1
- package/lib/es/banner/foundation.js +0 -3
- package/lib/es/base/constants.js +2 -2
- package/lib/es/base/foundation.d.ts +3 -3
- package/lib/es/base/foundation.js +11 -44
- package/lib/es/breadcrumb/breadcrumb.css +5 -3
- package/lib/es/breadcrumb/breadcrumb.scss +10 -4
- package/lib/es/breadcrumb/constants.js +1 -1
- package/lib/es/breadcrumb/foundation.js +0 -8
- package/lib/es/breadcrumb/itemFoundation.js +0 -3
- package/lib/es/breadcrumb/variables.scss +4 -0
- package/lib/es/button/button.css +32 -5
- package/lib/es/button/button.scss +88 -21
- package/lib/es/button/constants.js +1 -1
- package/lib/es/button/iconButton.css +1 -0
- package/lib/es/button/iconButton.scss +1 -0
- package/lib/es/button/splitButtonGroup.scss +10 -9
- package/lib/es/button/variables.scss +13 -0
- package/lib/es/calendar/calendar.css +2 -2
- package/lib/es/calendar/calendar.scss +1 -1
- package/lib/es/calendar/constants.js +1 -1
- package/lib/es/calendar/eventUtil.d.ts +7 -6
- package/lib/es/calendar/eventUtil.js +15 -45
- package/lib/es/calendar/foundation.d.ts +4 -4
- package/lib/es/calendar/foundation.js +32 -122
- package/lib/es/card/constants.js +1 -1
- package/lib/es/carousel/carousel.css +4 -0
- package/lib/es/carousel/carousel.scss +4 -0
- package/lib/es/carousel/constants.js +9 -9
- package/lib/es/carousel/foundation.d.ts +2 -0
- package/lib/es/carousel/foundation.js +7 -47
- package/lib/es/cascader/cascader.css +45 -4
- package/lib/es/cascader/cascader.scss +66 -23
- package/lib/es/cascader/constants.d.ts +3 -0
- package/lib/es/cascader/constants.js +7 -5
- package/lib/es/cascader/foundation.d.ts +27 -8
- package/lib/es/cascader/foundation.js +125 -286
- package/lib/es/cascader/util.d.ts +9 -1
- package/lib/es/cascader/util.js +65 -24
- package/lib/es/cascader/variables.scss +5 -1
- package/lib/es/checkbox/checkbox.css +0 -1
- package/lib/es/checkbox/checkbox.scss +0 -1
- package/lib/es/checkbox/checkboxFoundation.js +1 -34
- package/lib/es/checkbox/checkboxGroupFoundation.js +1 -20
- package/lib/es/checkbox/constants.js +13 -13
- package/lib/es/collapse/constants.js +1 -1
- package/lib/es/collapse/foundation.d.ts +2 -1
- package/lib/es/collapse/foundation.js +2 -9
- package/lib/es/collapsible/constants.js +1 -1
- package/lib/es/collapsible/foundation.js +0 -7
- package/lib/es/datePicker/_utils/formatter.js +4 -8
- package/lib/es/datePicker/_utils/getDayOfWeek.d.ts +1 -1
- package/lib/es/datePicker/_utils/getDayOfWeek.js +0 -3
- package/lib/es/datePicker/_utils/getDefaultFormatToken.d.ts +1 -0
- package/lib/es/datePicker/_utils/getDefaultFormatToken.js +2 -3
- package/lib/es/datePicker/_utils/getDefaultPickerDate.d.ts +1 -1
- package/lib/es/datePicker/_utils/getDefaultPickerDate.js +0 -10
- package/lib/es/datePicker/_utils/getFullDateOffset.js +0 -3
- package/lib/es/datePicker/_utils/getInsetInputFormatToken.js +2 -5
- package/lib/es/datePicker/_utils/getInsetInputValueFromInsetInputStr.js +1 -5
- package/lib/es/datePicker/_utils/getMonthTable.d.ts +1 -1
- package/lib/es/datePicker/_utils/getMonthTable.js +8 -18
- package/lib/es/datePicker/_utils/getMonthsInYear.js +1 -2
- package/lib/es/datePicker/_utils/getYears.d.ts +1 -1
- package/lib/es/datePicker/_utils/getYears.js +9 -6
- package/lib/es/datePicker/_utils/isBetween.js +0 -1
- package/lib/es/datePicker/_utils/isValidTimeZone.d.ts +1 -0
- package/lib/es/datePicker/_utils/isValidTimeZone.js +3 -0
- package/lib/es/datePicker/_utils/parser.js +0 -8
- package/lib/es/datePicker/constants.d.ts +1 -1
- package/lib/es/datePicker/constants.js +28 -28
- package/lib/es/datePicker/datePicker.css +88 -13
- package/lib/es/datePicker/datePicker.scss +170 -21
- package/lib/es/datePicker/foundation.d.ts +79 -50
- package/lib/es/datePicker/foundation.js +173 -426
- package/lib/es/datePicker/inputFoundation.d.ts +15 -6
- package/lib/es/datePicker/inputFoundation.js +35 -85
- package/lib/es/datePicker/monthFoundation.d.ts +1 -1
- package/lib/es/datePicker/monthFoundation.js +3 -22
- package/lib/es/datePicker/monthsGridFoundation.d.ts +18 -13
- package/lib/es/datePicker/monthsGridFoundation.js +70 -231
- package/lib/es/datePicker/variables.scss +13 -4
- package/lib/es/datePicker/yearAndMonthFoundation.d.ts +68 -13
- package/lib/es/datePicker/yearAndMonthFoundation.js +55 -37
- package/lib/es/descriptions/constants.d.ts +1 -0
- package/lib/es/descriptions/constants.js +3 -2
- package/lib/es/descriptions/descriptions.css +15 -0
- package/lib/es/descriptions/descriptions.scss +20 -0
- package/lib/es/descriptions/foundation.d.ts +7 -0
- package/lib/es/descriptions/foundation.js +37 -0
- package/lib/es/descriptions/variables.scss +10 -0
- package/lib/es/divider/constants.js +1 -1
- package/lib/es/dropdown/constants.js +4 -4
- package/lib/es/dropdown/dropdown.css +4 -0
- package/lib/es/dropdown/dropdown.scss +5 -0
- package/lib/es/dropdown/foundation.js +9 -20
- package/lib/es/dropdown/menuFoundation.js +9 -23
- package/lib/es/empty/constants.js +1 -1
- package/lib/es/form/constants.d.ts +1 -0
- package/lib/es/form/constants.js +3 -2
- package/lib/es/form/form.css +4 -0
- package/lib/es/form/form.scss +5 -2
- package/lib/es/form/foundation.d.ts +4 -4
- package/lib/es/form/foundation.js +84 -203
- package/lib/es/form/interface.d.ts +10 -10
- package/lib/es/form/utils.d.ts +10 -1
- package/lib/es/form/utils.js +83 -86
- package/lib/es/form/variables.scss +3 -0
- package/lib/es/grid/constants.js +1 -1
- package/lib/es/grid/grid.css +1 -1
- package/lib/es/grid/grid.scss +1 -1
- package/lib/es/highlight/constants.js +1 -1
- package/lib/es/icons/constants.js +1 -1
- package/lib/es/image/constants.d.ts +4 -1
- package/lib/es/image/constants.js +5 -2
- package/lib/es/image/image.css +4 -2
- package/lib/es/image/image.scss +9 -5
- package/lib/es/image/imageFoundation.js +4 -13
- package/lib/es/image/previewFooterFoundation.d.ts +0 -1
- package/lib/es/image/previewFooterFoundation.js +0 -10
- package/lib/es/image/previewFoundation.js +0 -7
- package/lib/es/image/previewImageFoundation.d.ts +9 -24
- package/lib/es/image/previewImageFoundation.js +79 -156
- package/lib/es/image/previewInnerFoundation.d.ts +19 -15
- package/lib/es/image/previewInnerFoundation.js +108 -107
- package/lib/es/image/utils.d.ts +1 -1
- package/lib/es/image/utils.js +46 -27
- package/lib/es/image/variables.scss +1 -1
- package/lib/es/input/constants.js +1 -1
- package/lib/es/input/foundation.js +19 -96
- package/lib/es/input/input.css +45 -1
- package/lib/es/input/input.scss +48 -3
- package/lib/es/input/textarea.css +20 -0
- package/lib/es/input/textarea.scss +34 -0
- package/lib/es/input/textareaFoundation.d.ts +1 -1
- package/lib/es/input/textareaFoundation.js +58 -91
- package/lib/es/input/util/calculateNodeHeight.js +6 -18
- package/lib/es/input/util/getSizingData.js +7 -11
- package/lib/es/input/variables.scss +7 -0
- package/lib/es/inputNumber/foundation.js +28 -188
- package/lib/es/inputNumber/inputNumber.css +4 -0
- package/lib/es/inputNumber/inputNumber.scss +9 -0
- package/lib/es/layout/constants.js +1 -1
- package/lib/es/list/constants.js +1 -1
- package/lib/es/modal/constants.js +1 -1
- package/lib/es/modal/modal.css +8 -0
- package/lib/es/modal/modal.scss +10 -1
- package/lib/es/modal/modalContentFoundation.js +0 -15
- package/lib/es/modal/modalFoundation.d.ts +8 -4
- package/lib/es/modal/modalFoundation.js +40 -11
- package/lib/es/modal/variables.scss +6 -1
- package/lib/es/navigation/NavItem.js +0 -8
- package/lib/es/navigation/constants.js +2 -2
- package/lib/es/navigation/foundation.js +3 -63
- package/lib/es/navigation/itemFoundation.js +3 -19
- package/lib/es/navigation/subNavFoundation.js +7 -38
- package/lib/es/notification/constants.js +4 -4
- package/lib/es/notification/notification.css +18 -0
- package/lib/es/notification/notification.scss +21 -1
- package/lib/es/notification/notificationFoundation.d.ts +6 -6
- package/lib/es/notification/notificationFoundation.js +0 -11
- package/lib/es/notification/notificationListFoundation.d.ts +4 -1
- package/lib/es/notification/notificationListFoundation.js +15 -14
- package/lib/es/overflowList/constants.d.ts +6 -4
- package/lib/es/overflowList/constants.js +3 -1
- package/lib/es/overflowList/foundation.d.ts +3 -1
- package/lib/es/overflowList/foundation.js +59 -64
- package/lib/es/pagination/constants.js +1 -1
- package/lib/es/pagination/foundation.d.ts +5 -3
- package/lib/es/pagination/foundation.js +36 -90
- package/lib/es/pagination/pagination.css +23 -0
- package/lib/es/pagination/pagination.scss +29 -0
- package/lib/es/pagination/variables.scss +1 -0
- package/lib/es/popconfirm/constants.js +2 -2
- package/lib/es/popconfirm/popconfirm.css +4 -24
- package/lib/es/popconfirm/popconfirm.scss +4 -16
- package/lib/es/popconfirm/popconfirmFoundation.d.ts +4 -0
- package/lib/es/popconfirm/popconfirmFoundation.js +17 -14
- package/lib/es/popconfirm/rtl.scss +0 -13
- package/lib/es/popconfirm/variables.scss +0 -4
- package/lib/es/popover/constants.d.ts +1 -1
- package/lib/es/popover/constants.js +3 -3
- package/lib/es/popover/popover.css +2 -0
- package/lib/es/popover/popover.scss +2 -0
- package/lib/es/progress/constants.js +1 -1
- package/lib/es/progress/generates.d.ts +2 -2
- package/lib/es/progress/generates.js +33 -73
- package/lib/es/radio/constants.js +13 -13
- package/lib/es/radio/radio.css +3 -0
- package/lib/es/radio/radio.scss +6 -3
- package/lib/es/radio/radioFoundation.js +0 -9
- package/lib/es/radio/radioGroupFoundation.js +3 -19
- package/lib/es/radio/radioInnerFoundation.js +1 -15
- package/lib/es/radio/variables.scss +4 -0
- package/lib/es/rating/constants.js +1 -1
- package/lib/es/rating/foundation.js +10 -55
- package/lib/es/scrollList/constants.js +2 -2
- package/lib/es/scrollList/itemFoundation.js +8 -60
- package/lib/es/scrollList/scrollTo.js +2 -4
- package/lib/es/select/constants.js +3 -3
- package/lib/es/select/foundation.d.ts +8 -6
- package/lib/es/select/foundation.js +172 -420
- package/lib/es/select/option.scss +1 -1
- package/lib/es/select/optionFoundation.js +2 -10
- package/lib/es/select/select.css +50 -0
- package/lib/es/select/select.scss +74 -5
- package/lib/es/select/variables.scss +9 -6
- package/lib/es/sideSheet/constants.js +2 -2
- package/lib/es/sideSheet/sideSheet.css +30 -0
- package/lib/es/sideSheet/sideSheet.scss +38 -0
- package/lib/es/sideSheet/sideSheetFoundation.d.ts +1 -0
- package/lib/es/sideSheet/sideSheetFoundation.js +0 -12
- package/lib/es/sideSheet/variables.scss +7 -0
- package/lib/es/skeleton/constants.js +1 -1
- package/lib/es/skeleton/skeleton.css +3 -2
- package/lib/es/skeleton/skeleton.scss +1 -0
- package/lib/es/skeleton/variables.scss +2 -2
- package/lib/es/slider/constants.d.ts +1 -0
- package/lib/es/slider/constants.js +8 -7
- package/lib/es/slider/foundation.d.ts +13 -2
- package/lib/es/slider/foundation.js +30 -219
- package/lib/es/slider/slider.css +25 -11
- package/lib/es/slider/slider.scss +16 -1
- package/lib/es/slider/variables.scss +15 -9
- package/lib/es/space/constants.js +1 -1
- package/lib/es/spin/constants.js +1 -1
- package/lib/es/spin/foundation.js +3 -11
- package/lib/es/spin/spin.css +3 -0
- package/lib/es/spin/spin.scss +3 -0
- package/lib/es/steps/bacisSteps.scss +10 -3
- package/lib/es/steps/constants.js +2 -2
- package/lib/es/steps/fillSteps.scss +7 -7
- package/lib/es/steps/steps.css +27 -22
- package/lib/es/steps/variables.scss +3 -3
- package/lib/es/switch/constants.js +13 -13
- package/lib/es/switch/foundation.js +1 -16
- package/lib/es/switch/switch.css +10 -0
- package/lib/es/switch/switch.scss +13 -2
- package/lib/es/table/bodyFoundation.js +1 -25
- package/lib/es/table/cellFoundation.js +0 -1
- package/lib/es/table/constants.d.ts +0 -1
- package/lib/es/table/constants.js +13 -16
- package/lib/es/table/foundation.d.ts +26 -16
- package/lib/es/table/foundation.js +79 -313
- package/lib/es/table/rtl.scss +33 -2
- package/lib/es/table/table.css +100 -64
- package/lib/es/table/table.scss +66 -8
- package/lib/es/table/tableRowFoundation.js +1 -9
- package/lib/es/table/tableSelectionCellFoundation.js +0 -2
- package/lib/es/table/utils.d.ts +6 -4
- package/lib/es/table/utils.js +25 -119
- package/lib/es/table/variables.scss +6 -3
- package/lib/es/tabs/constants.js +21 -21
- package/lib/es/tabs/foundation.js +2 -35
- package/lib/es/tabs/tabs.css +207 -7
- package/lib/es/tabs/tabs.scss +339 -24
- package/lib/es/tag/constants.js +1 -2
- package/lib/es/tag/tag.css +34 -1
- package/lib/es/tag/tag.scss +43 -4
- package/lib/es/tag/variables.scss +5 -0
- package/lib/es/tagInput/constants.js +1 -1
- package/lib/es/tagInput/foundation.d.ts +7 -4
- package/lib/es/tagInput/foundation.js +64 -78
- package/lib/es/tagInput/tagInput.css +35 -9
- package/lib/es/tagInput/tagInput.scss +41 -12
- package/lib/es/tagInput/utils/getSplitedArray.js +0 -7
- package/lib/es/tagInput/variables.scss +2 -0
- package/lib/es/timePicker/ComboxFoundation.js +6 -32
- package/lib/es/timePicker/constants.js +3 -3
- package/lib/es/timePicker/foundation.d.ts +2 -2
- package/lib/es/timePicker/foundation.js +30 -101
- package/lib/es/timePicker/inputFoundation.js +4 -22
- package/lib/es/timePicker/timePicker.css +15 -0
- package/lib/es/timePicker/timePicker.scss +22 -1
- package/lib/es/timePicker/utils/index.js +12 -30
- package/lib/es/timePicker/utils/localeDate.js +0 -8
- package/lib/es/timeline/constants.js +2 -2
- package/lib/es/toast/animation.scss +3 -0
- package/lib/es/toast/constants.js +4 -4
- package/lib/es/toast/toast.css +35 -3
- package/lib/es/toast/toast.scss +43 -3
- package/lib/es/toast/toastFoundation.d.ts +5 -4
- package/lib/es/toast/toastFoundation.js +0 -9
- package/lib/es/toast/toastListFoundation.d.ts +5 -0
- package/lib/es/toast/toastListFoundation.js +10 -18
- package/lib/es/toast/variables.scss +14 -0
- package/lib/es/tooltip/constants.d.ts +1 -1
- package/lib/es/tooltip/constants.js +2 -2
- package/lib/es/tooltip/foundation.d.ts +5 -2
- package/lib/es/tooltip/foundation.js +143 -332
- package/lib/es/tooltip/tooltip.css +7 -0
- package/lib/es/tooltip/tooltip.scss +9 -0
- package/lib/es/transfer/constants.js +1 -1
- package/lib/es/transfer/foundation.d.ts +1 -1
- package/lib/es/transfer/foundation.js +5 -62
- package/lib/es/transfer/transfer.css +4 -0
- package/lib/es/transfer/transfer.scss +7 -0
- package/lib/es/transfer/transferUtils.js +5 -21
- package/lib/es/tree/constants.js +2 -2
- package/lib/es/tree/foundation.d.ts +14 -9
- package/lib/es/tree/foundation.js +60 -176
- package/lib/es/tree/rtl.scss +19 -11
- package/lib/es/tree/tree.css +147 -65
- package/lib/es/tree/tree.scss +112 -17
- package/lib/es/tree/treeUtil.d.ts +17 -8
- package/lib/es/tree/treeUtil.js +102 -161
- package/lib/es/tree/variables.scss +3 -2
- package/lib/es/treeSelect/constants.js +3 -3
- package/lib/es/treeSelect/foundation.d.ts +26 -13
- package/lib/es/treeSelect/foundation.js +155 -235
- package/lib/es/treeSelect/treeSelect.css +55 -10
- package/lib/es/treeSelect/treeSelect.scss +76 -20
- package/lib/es/treeSelect/variables.scss +4 -2
- package/lib/es/typography/constants.d.ts +1 -0
- package/lib/es/typography/constants.js +2 -1
- package/lib/es/typography/formatNumeral.d.ts +3 -3
- package/lib/es/typography/formatNumeral.js +22 -40
- package/lib/es/typography/typography.css +135 -2
- package/lib/es/typography/typography.scss +151 -8
- package/lib/es/typography/variables.scss +52 -0
- package/lib/es/upload/constants.js +2 -2
- package/lib/es/upload/fileCardFoundation.d.ts +9 -0
- package/lib/es/upload/fileCardFoundation.js +10 -0
- package/lib/es/upload/foundation.d.ts +14 -5
- package/lib/es/upload/foundation.js +107 -240
- package/lib/es/upload/upload.css +9 -0
- package/lib/es/upload/upload.scss +8 -0
- package/lib/es/upload/utils.js +14 -28
- package/lib/es/utils/Event.js +1 -17
- package/lib/es/utils/FocusHandle.d.ts +1 -1
- package/lib/es/utils/FocusHandle.js +6 -32
- package/lib/es/utils/Logger.js +0 -20
- package/lib/es/utils/Store.js +0 -9
- package/lib/es/utils/a11y.js +18 -31
- package/lib/es/utils/array.d.ts +2 -2
- package/lib/es/utils/array.js +2 -7
- package/lib/es/utils/classnames.js +0 -10
- package/lib/es/utils/date-fns-extra.d.ts +28 -17
- package/lib/es/utils/date-fns-extra.js +78 -40
- package/lib/es/utils/dom.d.ts +1 -1
- package/lib/es/utils/dom.js +0 -9
- package/lib/es/utils/function.js +0 -1
- package/lib/es/utils/getDataAttr.js +1 -2
- package/lib/es/utils/getHighlight.js +5 -26
- package/lib/es/utils/getMotionObjFromProps.js +4 -12
- package/lib/es/utils/isBothNaN.js +0 -1
- package/lib/es/utils/isEnterPress.js +0 -2
- package/lib/es/utils/isEscPress.js +0 -2
- package/lib/es/utils/keyCode.js +0 -104
- package/lib/es/utils/log.js +0 -3
- package/lib/es/utils/object.d.ts +4 -4
- package/lib/es/utils/object.js +10 -29
- package/lib/es/utils/set.js +0 -5
- package/lib/es/utils/shallowEqualObjects.js +0 -6
- package/lib/es/utils/touchPolyfill.js +1 -6
- package/lib/es/utils/type.d.ts +3 -3
- package/lib/es/utils/uuid.js +4 -10
- package/lib/es/utils/warning.js +1 -1
- package/modal/modal.scss +10 -1
- package/modal/modalContentFoundation.ts +3 -3
- package/modal/modalFoundation.ts +32 -7
- package/modal/variables.scss +6 -1
- package/navigation/NavItem.ts +0 -2
- package/navigation/foundation.ts +1 -3
- package/navigation/itemFoundation.ts +0 -1
- package/navigation/subNavFoundation.ts +3 -2
- package/notification/notification.scss +21 -1
- package/notification/notificationFoundation.ts +3 -3
- package/notification/notificationListFoundation.ts +14 -4
- package/overflowList/constants.ts +4 -2
- package/overflowList/foundation.ts +51 -33
- package/package.json +6 -5
- package/pagination/foundation.ts +13 -3
- package/pagination/pagination.scss +29 -0
- package/pagination/variables.scss +1 -0
- package/popconfirm/popconfirm.scss +4 -16
- package/popconfirm/popconfirmFoundation.ts +20 -2
- package/popconfirm/rtl.scss +0 -13
- package/popconfirm/variables.scss +0 -4
- package/popover/constants.ts +1 -1
- package/popover/popover.scss +2 -0
- package/radio/radio.scss +6 -3
- package/radio/radioFoundation.ts +1 -1
- package/radio/radioGroupFoundation.ts +0 -1
- package/radio/radioInnerFoundation.ts +0 -1
- package/radio/variables.scss +4 -0
- package/rating/foundation.ts +0 -1
- package/select/foundation.ts +70 -32
- package/select/option.scss +1 -1
- package/select/optionFoundation.ts +0 -2
- package/select/select.scss +74 -5
- package/select/variables.scss +9 -6
- package/sideSheet/sideSheet.scss +38 -0
- package/sideSheet/sideSheetFoundation.ts +3 -2
- package/sideSheet/variables.scss +7 -0
- package/skeleton/skeleton.scss +1 -0
- package/skeleton/variables.scss +2 -2
- package/slider/constants.ts +1 -0
- package/slider/foundation.ts +25 -29
- package/slider/slider.scss +16 -1
- package/slider/variables.scss +15 -9
- package/spin/spin.scss +3 -0
- package/steps/bacisSteps.scss +10 -3
- package/steps/fillSteps.scss +7 -7
- package/steps/variables.scss +3 -3
- package/switch/foundation.ts +2 -4
- package/switch/switch.scss +13 -2
- package/table/bodyFoundation.ts +0 -1
- package/table/constants.ts +0 -3
- package/table/foundation.ts +33 -31
- package/table/rtl.scss +33 -2
- package/table/table.scss +66 -8
- package/table/tableRowFoundation.ts +0 -1
- package/table/utils.ts +23 -43
- package/table/variables.scss +6 -3
- package/tabs/foundation.ts +2 -2
- package/tabs/tabs.scss +339 -24
- package/tag/constants.ts +19 -2
- package/tag/tag.scss +43 -4
- package/tag/variables.scss +5 -0
- package/tagInput/foundation.ts +57 -3
- package/tagInput/tagInput.scss +41 -12
- package/tagInput/variables.scss +2 -0
- package/timePicker/foundation.ts +27 -18
- package/timePicker/inputFoundation.ts +0 -2
- package/timePicker/timePicker.scss +22 -1
- package/timePicker/utils/index.ts +3 -2
- package/toast/animation.scss +3 -0
- package/toast/toast.scss +43 -3
- package/toast/toastFoundation.ts +4 -6
- package/toast/toastListFoundation.ts +13 -3
- package/toast/variables.scss +14 -0
- package/tooltip/constants.ts +1 -1
- package/tooltip/foundation.ts +96 -58
- package/tooltip/tooltip.scss +9 -0
- package/transfer/foundation.ts +0 -1
- package/transfer/transfer.scss +7 -0
- package/tree/foundation.ts +38 -33
- package/tree/rtl.scss +19 -11
- package/tree/tree.scss +112 -17
- package/tree/treeUtil.ts +64 -32
- package/tree/variables.scss +3 -2
- package/treeSelect/foundation.ts +132 -70
- package/treeSelect/treeSelect.scss +76 -20
- package/treeSelect/variables.scss +4 -2
- package/typography/constants.ts +1 -0
- package/typography/formatNumeral.ts +2 -5
- package/typography/typography.scss +151 -8
- package/typography/variables.scss +52 -0
- package/upload/fileCardFoundation.ts +17 -0
- package/upload/foundation.ts +85 -10
- package/upload/upload.scss +8 -0
- package/utils/Event.ts +0 -1
- package/utils/a11y.ts +6 -6
- package/utils/array.ts +4 -4
- package/utils/date-fns-extra.ts +83 -22
- package/utils/function.ts +0 -1
- package/utils/getDataAttr.ts +1 -1
- package/utils/getMotionObjFromProps.ts +3 -2
- package/utils/object.ts +0 -3
|
@@ -4,7 +4,6 @@ var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, gene
|
|
|
4
4
|
resolve(value);
|
|
5
5
|
});
|
|
6
6
|
}
|
|
7
|
-
|
|
8
7
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
9
8
|
function fulfilled(value) {
|
|
10
9
|
try {
|
|
@@ -13,7 +12,6 @@ var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, gene
|
|
|
13
12
|
reject(e);
|
|
14
13
|
}
|
|
15
14
|
}
|
|
16
|
-
|
|
17
15
|
function rejected(value) {
|
|
18
16
|
try {
|
|
19
17
|
step(generator["throw"](value));
|
|
@@ -21,15 +19,12 @@ var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, gene
|
|
|
21
19
|
reject(e);
|
|
22
20
|
}
|
|
23
21
|
}
|
|
24
|
-
|
|
25
22
|
function step(result) {
|
|
26
23
|
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
27
24
|
}
|
|
28
|
-
|
|
29
25
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
30
26
|
});
|
|
31
27
|
};
|
|
32
|
-
|
|
33
28
|
import BaseFoundation from '../base/foundation';
|
|
34
29
|
import isPromise from '../utils/isPromise';
|
|
35
30
|
import { getUuidv4 } from '../utils/uuid';
|
|
@@ -45,16 +40,29 @@ const {
|
|
|
45
40
|
DRAG_AREA_LEGAL,
|
|
46
41
|
TRIGGER_AUTO
|
|
47
42
|
} = strings;
|
|
48
|
-
|
|
49
43
|
class UploadFoundation extends BaseFoundation {
|
|
50
44
|
constructor(adapter) {
|
|
51
45
|
super(Object.assign({}, adapter));
|
|
52
46
|
}
|
|
53
|
-
|
|
47
|
+
init() {
|
|
48
|
+
const {
|
|
49
|
+
disabled,
|
|
50
|
+
addOnPasting
|
|
51
|
+
} = this.getProps();
|
|
52
|
+
if (addOnPasting && !disabled) {
|
|
53
|
+
this.bindPastingHandler();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
54
56
|
destroy() {
|
|
57
|
+
const {
|
|
58
|
+
disabled,
|
|
59
|
+
addOnPasting
|
|
60
|
+
} = this.getProps();
|
|
55
61
|
this.releaseMemory();
|
|
62
|
+
if (addOnPasting && !disabled) {
|
|
63
|
+
this.unbindPastingHandler();
|
|
64
|
+
}
|
|
56
65
|
}
|
|
57
|
-
|
|
58
66
|
getError(_ref) {
|
|
59
67
|
let {
|
|
60
68
|
action,
|
|
@@ -63,32 +71,27 @@ class UploadFoundation extends BaseFoundation {
|
|
|
63
71
|
fileName
|
|
64
72
|
} = _ref;
|
|
65
73
|
const status = xhr ? xhr.status : 0;
|
|
66
|
-
const msg = message ||
|
|
74
|
+
const msg = message || `cannot post ${fileName} to ${action}, xhr status: ${status}'`;
|
|
67
75
|
const err = new Error(msg);
|
|
68
76
|
err.status = status;
|
|
69
77
|
err.method = 'post';
|
|
70
78
|
err.url = action;
|
|
71
79
|
return err;
|
|
72
80
|
}
|
|
73
|
-
|
|
74
81
|
getBody(xhr) {
|
|
75
82
|
if (!xhr) {
|
|
76
83
|
return;
|
|
77
84
|
}
|
|
78
|
-
|
|
79
85
|
const text = xhr.responseText || xhr.response;
|
|
80
|
-
|
|
81
86
|
if (!text) {
|
|
82
87
|
return text;
|
|
83
88
|
}
|
|
84
|
-
|
|
85
89
|
try {
|
|
86
90
|
return JSON.parse(text);
|
|
87
91
|
} catch (error) {
|
|
88
92
|
return text;
|
|
89
93
|
}
|
|
90
94
|
}
|
|
91
|
-
|
|
92
95
|
checkFileSize(file) {
|
|
93
96
|
const {
|
|
94
97
|
size
|
|
@@ -98,11 +101,9 @@ class UploadFoundation extends BaseFoundation {
|
|
|
98
101
|
minSize
|
|
99
102
|
} = this.getProps();
|
|
100
103
|
let isIllegal = false;
|
|
101
|
-
|
|
102
104
|
if (size > maxSize * byteKB || size < minSize * byteKB) {
|
|
103
105
|
isIllegal = true;
|
|
104
106
|
}
|
|
105
|
-
|
|
106
107
|
return isIllegal;
|
|
107
108
|
}
|
|
108
109
|
/**
|
|
@@ -134,8 +135,6 @@ class UploadFoundation extends BaseFoundation {
|
|
|
134
135
|
* 8. TODO: check
|
|
135
136
|
* 9. afterUpload
|
|
136
137
|
*/
|
|
137
|
-
|
|
138
|
-
|
|
139
138
|
handleChange(currentFileList) {
|
|
140
139
|
const invalidFiles = [];
|
|
141
140
|
const {
|
|
@@ -147,83 +146,62 @@ class UploadFoundation extends BaseFoundation {
|
|
|
147
146
|
fileList
|
|
148
147
|
} = this.getStates();
|
|
149
148
|
let files = Array.from(currentFileList); // When the selected file
|
|
150
|
-
|
|
151
149
|
if (typeof accept !== 'undefined') {
|
|
152
150
|
files = files.filter(item => {
|
|
153
151
|
const isValid = this.checkFileFormat(accept, item);
|
|
154
|
-
|
|
155
152
|
if (!isValid) {
|
|
156
153
|
invalidFiles.push(item);
|
|
157
154
|
}
|
|
158
|
-
|
|
159
155
|
return isValid;
|
|
160
156
|
});
|
|
161
|
-
|
|
162
157
|
if (invalidFiles.length !== 0) {
|
|
163
158
|
this._adapter.notifyAcceptInvalid(invalidFiles);
|
|
164
159
|
}
|
|
165
|
-
|
|
166
160
|
if (files.length === 0) {
|
|
167
161
|
return;
|
|
168
162
|
}
|
|
169
163
|
}
|
|
170
|
-
|
|
171
164
|
files = files.map(file => {
|
|
172
165
|
if (transformFile) {
|
|
173
166
|
file = transformFile(file);
|
|
174
167
|
}
|
|
175
|
-
|
|
176
168
|
if (!file.uid) {
|
|
177
169
|
file.uid = getUuidv4();
|
|
178
170
|
}
|
|
179
|
-
|
|
180
171
|
if (this.checkFileSize(file)) {
|
|
181
172
|
file._sizeInvalid = true;
|
|
182
173
|
file.status = FILE_STATUS_VALID_FAIL;
|
|
183
|
-
|
|
184
174
|
this._adapter.notifySizeError(file, fileList);
|
|
185
175
|
}
|
|
186
|
-
|
|
187
176
|
return file;
|
|
188
177
|
});
|
|
189
178
|
const total = fileList.length + files.length;
|
|
190
|
-
|
|
191
179
|
if (typeof limit !== 'undefined') {
|
|
192
180
|
// Determine whether the limit is exceeded
|
|
193
181
|
if (total > limit) {
|
|
194
182
|
this._adapter.notifyExceed(files);
|
|
195
|
-
|
|
196
183
|
if (limit === 1) {
|
|
197
184
|
// Replace the current file with the last file
|
|
198
185
|
files = files.slice(-1);
|
|
199
|
-
|
|
200
186
|
this._adapter.notifyFileSelect(files);
|
|
201
|
-
|
|
202
187
|
this._adapter.resetInput();
|
|
203
|
-
|
|
204
188
|
this.replaceFileList(files);
|
|
205
189
|
return;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
|
|
190
|
+
}
|
|
191
|
+
// If the limit is exceeded, the calculation can add a few more files and continue uploading the remaining files
|
|
209
192
|
const restNum = limit - fileList.length;
|
|
210
193
|
files = files.slice(0, restNum);
|
|
211
194
|
}
|
|
212
195
|
}
|
|
213
|
-
|
|
214
196
|
this._adapter.notifyFileSelect(files);
|
|
215
|
-
|
|
216
197
|
this._adapter.resetInput();
|
|
217
|
-
|
|
218
198
|
this.addFilesToList(files);
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
|
|
199
|
+
}
|
|
200
|
+
// Triggered when replacing a single file
|
|
222
201
|
handleReplaceChange(currentFileList) {
|
|
223
202
|
if (currentFileList.length === 0) {
|
|
224
203
|
return;
|
|
225
204
|
}
|
|
226
|
-
|
|
227
205
|
const {
|
|
228
206
|
transformFile,
|
|
229
207
|
uploadTrigger,
|
|
@@ -234,60 +212,48 @@ class UploadFoundation extends BaseFoundation {
|
|
|
234
212
|
fileList
|
|
235
213
|
} = this.getStates();
|
|
236
214
|
let newFile = Array.from(currentFileList).pop();
|
|
237
|
-
|
|
238
215
|
if (typeof accept !== 'undefined') {
|
|
239
216
|
if (!this.checkFileFormat(accept, newFile)) {
|
|
240
217
|
this._adapter.notifyAcceptInvalid([newFile]);
|
|
241
|
-
|
|
242
218
|
return;
|
|
243
219
|
}
|
|
244
220
|
}
|
|
245
|
-
|
|
246
221
|
if (transformFile) {
|
|
247
222
|
newFile = transformFile(newFile);
|
|
248
223
|
}
|
|
249
|
-
|
|
250
224
|
if (!newFile.uid) {
|
|
251
225
|
newFile.uid = getUuidv4();
|
|
252
226
|
}
|
|
253
|
-
|
|
254
227
|
if (this.checkFileSize(newFile)) {
|
|
255
228
|
newFile._sizeInvalid = true;
|
|
256
229
|
newFile.status = FILE_STATUS_VALID_FAIL;
|
|
257
|
-
|
|
258
230
|
this._adapter.notifySizeError(newFile, fileList);
|
|
259
231
|
}
|
|
260
|
-
|
|
261
232
|
this._adapter.notifyFileSelect([newFile]);
|
|
262
|
-
|
|
263
233
|
const newFileItem = this.buildFileItem(newFile, uploadTrigger);
|
|
264
234
|
const newFileList = [...fileList];
|
|
265
235
|
newFileList.splice(replaceIdx, 1, newFileItem);
|
|
266
|
-
|
|
267
236
|
this._adapter.notifyChange({
|
|
268
237
|
currentFile: newFileItem,
|
|
269
238
|
fileList: newFileList
|
|
270
239
|
});
|
|
271
|
-
|
|
272
240
|
this._adapter.updateFileList(newFileList, () => {
|
|
273
241
|
this._adapter.resetReplaceInput();
|
|
274
|
-
|
|
275
|
-
|
|
242
|
+
if (!newFileItem._sizeInvalid) {
|
|
243
|
+
this.upload(newFileItem);
|
|
244
|
+
}
|
|
276
245
|
});
|
|
277
246
|
}
|
|
278
|
-
|
|
279
247
|
buildFileItem(fileInstance, uploadTrigger) {
|
|
280
248
|
const {
|
|
281
249
|
_sizeInvalid,
|
|
282
250
|
status
|
|
283
251
|
} = fileInstance;
|
|
284
|
-
|
|
285
252
|
try {
|
|
286
253
|
// can't use ... to get rest property on File Object
|
|
287
254
|
delete fileInstance._sizeInvalid;
|
|
288
255
|
delete fileInstance.status;
|
|
289
256
|
} catch (error) {}
|
|
290
|
-
|
|
291
257
|
const _file = {
|
|
292
258
|
status: status ? status : uploadTrigger === TRIGGER_AUTO ? FILE_STATUS_UPLOADING : FILE_STATUS_WAIT_UPLOAD,
|
|
293
259
|
name: fileInstance.name,
|
|
@@ -297,37 +263,30 @@ class UploadFoundation extends BaseFoundation {
|
|
|
297
263
|
fileInstance,
|
|
298
264
|
url: this._createURL(fileInstance)
|
|
299
265
|
};
|
|
300
|
-
|
|
301
266
|
if (_sizeInvalid) {
|
|
302
267
|
_file._sizeInvalid = true;
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
|
|
268
|
+
}
|
|
269
|
+
// If it is an image, preview; if it is a pdf, you can jump to
|
|
306
270
|
if (this.isImage(fileInstance)) {
|
|
307
271
|
_file.preview = true;
|
|
308
272
|
}
|
|
309
|
-
|
|
310
273
|
return _file;
|
|
311
274
|
}
|
|
312
|
-
|
|
313
275
|
replaceFileList(files) {
|
|
314
276
|
const {
|
|
315
277
|
uploadTrigger
|
|
316
278
|
} = this.getProps();
|
|
317
279
|
const currentFiles = files.map(item => this.buildFileItem(item, uploadTrigger));
|
|
318
|
-
|
|
319
280
|
this._adapter.notifyChange({
|
|
320
281
|
fileList: currentFiles,
|
|
321
282
|
currentFile: currentFiles[0]
|
|
322
283
|
});
|
|
323
|
-
|
|
324
284
|
this._adapter.updateFileList(currentFiles, () => {
|
|
325
285
|
if (uploadTrigger === TRIGGER_AUTO) {
|
|
326
286
|
this.startUpload(currentFiles);
|
|
327
287
|
}
|
|
328
288
|
});
|
|
329
289
|
}
|
|
330
|
-
|
|
331
290
|
addFilesToList(files) {
|
|
332
291
|
const fileList = this.getState('fileList').slice();
|
|
333
292
|
const {
|
|
@@ -336,28 +295,24 @@ class UploadFoundation extends BaseFoundation {
|
|
|
336
295
|
const currentFiles = files.map(item => this.buildFileItem(item, uploadTrigger));
|
|
337
296
|
currentFiles.forEach(file => {
|
|
338
297
|
const index = fileList.findIndex(item => item.uid === file.uid);
|
|
339
|
-
|
|
340
298
|
if (index !== -1) {
|
|
341
299
|
fileList[index] = file;
|
|
342
300
|
} else {
|
|
343
301
|
fileList.push(file);
|
|
344
|
-
|
|
345
302
|
this._adapter.notifyChange({
|
|
346
303
|
fileList,
|
|
347
304
|
currentFile: file
|
|
348
305
|
});
|
|
349
306
|
}
|
|
350
307
|
});
|
|
351
|
-
|
|
352
308
|
this._adapter.updateFileList(fileList, () => {
|
|
353
309
|
if (uploadTrigger === TRIGGER_AUTO) {
|
|
354
310
|
this.startUpload(currentFiles);
|
|
355
311
|
}
|
|
356
312
|
});
|
|
357
|
-
}
|
|
313
|
+
}
|
|
314
|
+
// 插入多个文件到指定位置
|
|
358
315
|
// Insert files to the specified location
|
|
359
|
-
|
|
360
|
-
|
|
361
316
|
insertFileToList(files, index) {
|
|
362
317
|
const {
|
|
363
318
|
limit,
|
|
@@ -368,51 +323,40 @@ class UploadFoundation extends BaseFoundation {
|
|
|
368
323
|
const {
|
|
369
324
|
fileList
|
|
370
325
|
} = this.getStates();
|
|
371
|
-
const unAcceptFileList = [];
|
|
326
|
+
const unAcceptFileList = [];
|
|
327
|
+
// 当次选中的文件
|
|
372
328
|
// current selected file
|
|
373
|
-
|
|
374
329
|
let currentFileList = Array.from(files);
|
|
375
|
-
|
|
376
330
|
if (typeof accept !== 'undefined') {
|
|
377
331
|
currentFileList = currentFileList.filter(item => {
|
|
378
332
|
const isValid = this.checkFileFormat(accept, item);
|
|
379
|
-
|
|
380
333
|
if (!isValid) {
|
|
381
334
|
unAcceptFileList.push(item);
|
|
382
335
|
}
|
|
383
|
-
|
|
384
336
|
return isValid;
|
|
385
337
|
});
|
|
386
|
-
|
|
387
338
|
if (unAcceptFileList.length !== 0) {
|
|
388
339
|
this._adapter.notifyAcceptInvalid(unAcceptFileList);
|
|
389
340
|
}
|
|
390
|
-
|
|
391
341
|
if (currentFileList.length === 0) {
|
|
392
342
|
return;
|
|
393
343
|
}
|
|
394
344
|
}
|
|
395
|
-
|
|
396
345
|
currentFileList = currentFileList.map(file => {
|
|
397
346
|
if (!file.uid) {
|
|
398
347
|
file.uid = getUuidv4();
|
|
399
348
|
}
|
|
400
|
-
|
|
401
349
|
if (this.checkFileSize(file)) {
|
|
402
350
|
file._sizeInvalid = true;
|
|
403
351
|
file.status = FILE_STATUS_VALID_FAIL;
|
|
404
|
-
|
|
405
352
|
this._adapter.notifySizeError(file, fileList);
|
|
406
353
|
}
|
|
407
|
-
|
|
408
354
|
if (transformFile) {
|
|
409
355
|
file = transformFile(file);
|
|
410
356
|
}
|
|
411
|
-
|
|
412
357
|
return file;
|
|
413
358
|
});
|
|
414
359
|
const total = fileList.length + currentFileList.length;
|
|
415
|
-
|
|
416
360
|
if (typeof limit !== 'undefined') {
|
|
417
361
|
// 判断是否超出限制
|
|
418
362
|
// Determine whether the limit is exceeded
|
|
@@ -421,40 +365,30 @@ class UploadFoundation extends BaseFoundation {
|
|
|
421
365
|
// 使用最后面的文件对当前文件进行替换
|
|
422
366
|
// Use the last file to replace the current file
|
|
423
367
|
currentFileList = currentFileList.slice(-1);
|
|
424
|
-
|
|
425
368
|
this._adapter.notifyFileSelect(currentFileList);
|
|
426
|
-
|
|
427
369
|
this._adapter.resetInput();
|
|
428
|
-
|
|
429
370
|
this.replaceFileList(currentFileList);
|
|
430
371
|
return;
|
|
431
|
-
}
|
|
372
|
+
}
|
|
373
|
+
// 如果超出了限制,则计算还能添加几个文件,将剩余的文件继续上传
|
|
432
374
|
// If the limit is exceeded, several files can be added to the calculation, and the remaining files will continue to be uploaded
|
|
433
|
-
|
|
434
|
-
|
|
435
375
|
const restNum = limit - fileList.length;
|
|
436
376
|
currentFileList = currentFileList.slice(0, restNum);
|
|
437
|
-
|
|
438
377
|
this._adapter.notifyExceed(currentFileList);
|
|
439
378
|
}
|
|
440
379
|
}
|
|
441
|
-
|
|
442
380
|
const fileItemList = currentFileList.map(file => this.buildFileItem(file, uploadTrigger));
|
|
443
381
|
const newFileList = fileList.slice();
|
|
444
|
-
|
|
445
382
|
if (typeof index !== 'undefined') {
|
|
446
383
|
newFileList.splice(index, 0, ...fileItemList);
|
|
447
384
|
} else {
|
|
448
385
|
newFileList.push(...fileItemList);
|
|
449
386
|
}
|
|
450
|
-
|
|
451
387
|
this._adapter.notifyFileSelect(currentFileList);
|
|
452
|
-
|
|
453
388
|
this._adapter.notifyChange({
|
|
454
389
|
fileList: newFileList,
|
|
455
390
|
currentFile: null
|
|
456
391
|
});
|
|
457
|
-
|
|
458
392
|
this._adapter.updateFileList(newFileList, () => {
|
|
459
393
|
if (uploadTrigger === TRIGGER_AUTO) {
|
|
460
394
|
this.startUpload(fileItemList);
|
|
@@ -462,14 +396,11 @@ class UploadFoundation extends BaseFoundation {
|
|
|
462
396
|
});
|
|
463
397
|
}
|
|
464
398
|
/* istanbul ignore next */
|
|
465
|
-
|
|
466
|
-
|
|
467
399
|
manualUpload() {
|
|
468
400
|
// find the list of files that have not been uploaded
|
|
469
401
|
const waitToUploadFileList = this.getState('fileList').filter(item => item.status === FILE_STATUS_WAIT_UPLOAD);
|
|
470
402
|
this.startUpload(waitToUploadFileList);
|
|
471
403
|
}
|
|
472
|
-
|
|
473
404
|
startUpload(fileList) {
|
|
474
405
|
fileList.forEach(file => {
|
|
475
406
|
if (!file._sizeInvalid) {
|
|
@@ -477,27 +408,22 @@ class UploadFoundation extends BaseFoundation {
|
|
|
477
408
|
}
|
|
478
409
|
});
|
|
479
410
|
}
|
|
480
|
-
|
|
481
411
|
upload(file) {
|
|
482
412
|
const {
|
|
483
413
|
beforeUpload
|
|
484
414
|
} = this.getProps();
|
|
485
|
-
|
|
486
415
|
if (typeof beforeUpload === 'undefined') {
|
|
487
416
|
this.post(file);
|
|
488
417
|
return;
|
|
489
418
|
}
|
|
490
|
-
|
|
491
419
|
if (typeof beforeUpload === 'function') {
|
|
492
420
|
const {
|
|
493
421
|
fileList
|
|
494
422
|
} = this.getStates();
|
|
495
|
-
|
|
496
423
|
const buResult = this._adapter.notifyBeforeUpload({
|
|
497
424
|
file,
|
|
498
425
|
fileList
|
|
499
426
|
});
|
|
500
|
-
|
|
501
427
|
switch (true) {
|
|
502
428
|
// sync validate - boolean
|
|
503
429
|
case buResult === true:
|
|
@@ -505,7 +431,6 @@ class UploadFoundation extends BaseFoundation {
|
|
|
505
431
|
this.post(file);
|
|
506
432
|
break;
|
|
507
433
|
}
|
|
508
|
-
|
|
509
434
|
case buResult === false:
|
|
510
435
|
{
|
|
511
436
|
const newResult = {
|
|
@@ -516,7 +441,6 @@ class UploadFoundation extends BaseFoundation {
|
|
|
516
441
|
break;
|
|
517
442
|
}
|
|
518
443
|
// async validate
|
|
519
|
-
|
|
520
444
|
case buResult && isPromise(buResult):
|
|
521
445
|
{
|
|
522
446
|
Promise.resolve(buResult).then(resolveData => {
|
|
@@ -524,11 +448,9 @@ class UploadFoundation extends BaseFoundation {
|
|
|
524
448
|
shouldUpload: true
|
|
525
449
|
};
|
|
526
450
|
const typeOfResolveData = Object.prototype.toString.call(resolveData).slice(8, -1);
|
|
527
|
-
|
|
528
451
|
if (typeOfResolveData === 'Object') {
|
|
529
452
|
newResult = Object.assign(Object.assign({}, newResult), resolveData);
|
|
530
453
|
}
|
|
531
|
-
|
|
532
454
|
this.handleBeforeUploadResultInObject(newResult, file);
|
|
533
455
|
}, rejectVal => {
|
|
534
456
|
let newResult = {
|
|
@@ -536,29 +458,24 @@ class UploadFoundation extends BaseFoundation {
|
|
|
536
458
|
status: strings.FILE_STATUS_VALID_FAIL
|
|
537
459
|
};
|
|
538
460
|
const typeOfRejectData = Object.prototype.toString.call(rejectVal).slice(8, -1);
|
|
539
|
-
|
|
540
461
|
if (typeOfRejectData === 'Object') {
|
|
541
462
|
newResult = Object.assign(Object.assign({}, newResult), rejectVal);
|
|
542
463
|
}
|
|
543
|
-
|
|
544
464
|
this.handleBeforeUploadResultInObject(newResult, file);
|
|
545
465
|
});
|
|
546
466
|
break;
|
|
547
467
|
}
|
|
548
468
|
// sync validate - object
|
|
549
|
-
|
|
550
469
|
case typeof buResult === 'object':
|
|
551
470
|
// inject to fileList
|
|
552
471
|
this.handleBeforeUploadResultInObject(buResult, file);
|
|
553
472
|
break;
|
|
554
|
-
|
|
555
473
|
default:
|
|
556
474
|
break;
|
|
557
475
|
}
|
|
558
476
|
}
|
|
559
|
-
}
|
|
560
|
-
|
|
561
|
-
|
|
477
|
+
}
|
|
478
|
+
// handle beforeUpload result when it's an object
|
|
562
479
|
handleBeforeUploadResultInObject(buResult, file) {
|
|
563
480
|
const {
|
|
564
481
|
shouldUpload,
|
|
@@ -568,75 +485,60 @@ class UploadFoundation extends BaseFoundation {
|
|
|
568
485
|
fileInstance
|
|
569
486
|
} = buResult;
|
|
570
487
|
let newFileList = this.getState('fileList').slice();
|
|
571
|
-
|
|
572
488
|
if (autoRemove) {
|
|
573
489
|
newFileList = newFileList.filter(item => item.uid !== file.uid);
|
|
574
490
|
} else {
|
|
575
491
|
const index = this._getFileIndex(file, newFileList);
|
|
576
|
-
|
|
577
492
|
if (index < 0) {
|
|
578
493
|
return;
|
|
579
494
|
}
|
|
580
|
-
|
|
581
495
|
status ? newFileList[index].status = status : null;
|
|
582
496
|
validateMessage ? newFileList[index].validateMessage = validateMessage : null;
|
|
583
|
-
|
|
584
497
|
if (fileInstance) {
|
|
585
498
|
fileInstance.uid = file.uid; // reuse recent file uid
|
|
586
|
-
|
|
587
499
|
newFileList[index].fileInstance = fileInstance;
|
|
588
500
|
newFileList[index].size = getFileSize(fileInstance.size);
|
|
589
501
|
newFileList[index].name = fileInstance.name;
|
|
502
|
+
newFileList[index].url = this._createURL(fileInstance);
|
|
590
503
|
}
|
|
591
|
-
|
|
592
504
|
newFileList[index].shouldUpload = shouldUpload;
|
|
593
505
|
}
|
|
594
|
-
|
|
595
506
|
this._adapter.updateFileList(newFileList);
|
|
596
|
-
|
|
597
507
|
this._adapter.notifyChange({
|
|
598
508
|
fileList: newFileList,
|
|
599
509
|
currentFile: file
|
|
600
510
|
});
|
|
601
|
-
|
|
602
511
|
if (shouldUpload) {
|
|
603
512
|
this.post(file);
|
|
604
513
|
}
|
|
605
514
|
}
|
|
606
|
-
|
|
607
515
|
post(file) {
|
|
608
516
|
const {
|
|
609
517
|
fileInstance
|
|
610
518
|
} = file;
|
|
611
519
|
const option = this.getProps();
|
|
612
|
-
|
|
613
520
|
if (typeof XMLHttpRequest === 'undefined') {
|
|
614
521
|
return;
|
|
615
522
|
}
|
|
616
|
-
|
|
617
523
|
const xhr = new XMLHttpRequest();
|
|
618
524
|
const formData = new FormData();
|
|
619
525
|
const {
|
|
620
526
|
action
|
|
621
|
-
} = option;
|
|
622
|
-
|
|
527
|
+
} = option;
|
|
528
|
+
// add data
|
|
623
529
|
let {
|
|
624
530
|
data
|
|
625
531
|
} = option;
|
|
626
|
-
|
|
627
532
|
if (data) {
|
|
628
533
|
if (typeof data === 'function') {
|
|
629
534
|
data = data(fileInstance);
|
|
630
535
|
}
|
|
631
|
-
|
|
632
536
|
Object.keys(data).forEach(key => {
|
|
633
537
|
formData.append(key, data[key]);
|
|
634
538
|
});
|
|
635
|
-
}
|
|
636
|
-
|
|
637
|
-
|
|
539
|
+
}
|
|
540
|
+
// add file
|
|
638
541
|
const fileName = option.name || option.fileName || fileInstance.name;
|
|
639
|
-
|
|
640
542
|
if (option.customRequest) {
|
|
641
543
|
return option.customRequest({
|
|
642
544
|
fileName,
|
|
@@ -662,50 +564,40 @@ class UploadFoundation extends BaseFoundation {
|
|
|
662
564
|
action: option.action
|
|
663
565
|
});
|
|
664
566
|
}
|
|
665
|
-
|
|
666
567
|
formData.append(fileName, fileInstance);
|
|
667
568
|
xhr.open('post', action, true);
|
|
668
|
-
|
|
669
569
|
if (option.withCredentials && 'withCredentials' in xhr) {
|
|
670
570
|
xhr.withCredentials = true;
|
|
671
571
|
}
|
|
672
|
-
|
|
673
572
|
if (xhr.upload) {
|
|
674
573
|
xhr.upload.onprogress = e => this.handleProgress({
|
|
675
574
|
e,
|
|
676
575
|
fileInstance
|
|
677
576
|
});
|
|
678
|
-
}
|
|
679
|
-
|
|
680
|
-
|
|
577
|
+
}
|
|
578
|
+
// Callback function after upload is completed
|
|
681
579
|
xhr.onload = e => this.handleOnLoad({
|
|
682
580
|
e,
|
|
683
581
|
xhr,
|
|
684
582
|
fileInstance
|
|
685
583
|
});
|
|
686
|
-
|
|
687
584
|
xhr.onerror = e => this.handleError({
|
|
688
585
|
e,
|
|
689
586
|
xhr,
|
|
690
587
|
fileInstance
|
|
691
|
-
});
|
|
692
|
-
|
|
693
|
-
|
|
588
|
+
});
|
|
589
|
+
// add headers
|
|
694
590
|
let headers = option.headers || {};
|
|
695
|
-
|
|
696
591
|
if (typeof headers === 'function') {
|
|
697
592
|
headers = headers(fileInstance);
|
|
698
593
|
}
|
|
699
|
-
|
|
700
594
|
for (const item in headers) {
|
|
701
595
|
if (Object.prototype.hasOwnProperty.call(headers, item) && headers[item] !== null) {
|
|
702
596
|
xhr.setRequestHeader(item, headers[item]);
|
|
703
597
|
}
|
|
704
598
|
}
|
|
705
|
-
|
|
706
599
|
xhr.send(formData);
|
|
707
600
|
}
|
|
708
|
-
|
|
709
601
|
handleProgress(_ref2) {
|
|
710
602
|
let {
|
|
711
603
|
e,
|
|
@@ -716,30 +608,22 @@ class UploadFoundation extends BaseFoundation {
|
|
|
716
608
|
} = this.getStates();
|
|
717
609
|
const newFileList = fileList.slice();
|
|
718
610
|
let percent = 0;
|
|
719
|
-
|
|
720
611
|
if (e.total > 0) {
|
|
721
612
|
percent = Number((e.loaded / e.total * 100 * numbers.PROGRESS_COEFFICIENT).toFixed(0)) || 0;
|
|
722
613
|
}
|
|
723
|
-
|
|
724
614
|
const index = this._getFileIndex(fileInstance, newFileList);
|
|
725
|
-
|
|
726
615
|
if (index < 0) {
|
|
727
616
|
return;
|
|
728
617
|
}
|
|
729
|
-
|
|
730
618
|
newFileList[index].percent = percent;
|
|
731
619
|
newFileList[index].status = FILE_STATUS_UPLOADING;
|
|
732
|
-
|
|
733
620
|
this._adapter.notifyProgress(percent, fileInstance, newFileList);
|
|
734
|
-
|
|
735
621
|
this._adapter.updateFileList(newFileList);
|
|
736
|
-
|
|
737
622
|
this._adapter.notifyChange({
|
|
738
623
|
fileList: newFileList,
|
|
739
624
|
currentFile: newFileList[index]
|
|
740
625
|
});
|
|
741
626
|
}
|
|
742
|
-
|
|
743
627
|
handleOnLoad(_ref3) {
|
|
744
628
|
let {
|
|
745
629
|
e,
|
|
@@ -749,13 +633,10 @@ class UploadFoundation extends BaseFoundation {
|
|
|
749
633
|
const {
|
|
750
634
|
fileList
|
|
751
635
|
} = this.getStates();
|
|
752
|
-
|
|
753
636
|
const index = this._getFileIndex(fileInstance, fileList);
|
|
754
|
-
|
|
755
637
|
if (index < 0) {
|
|
756
638
|
return;
|
|
757
639
|
}
|
|
758
|
-
|
|
759
640
|
if (xhr.status < 200 || xhr.status >= 300) {
|
|
760
641
|
this.handleError({
|
|
761
642
|
e,
|
|
@@ -771,7 +652,6 @@ class UploadFoundation extends BaseFoundation {
|
|
|
771
652
|
});
|
|
772
653
|
}
|
|
773
654
|
}
|
|
774
|
-
|
|
775
655
|
handleSuccess(_ref4) {
|
|
776
656
|
let {
|
|
777
657
|
e,
|
|
@@ -784,32 +664,25 @@ class UploadFoundation extends BaseFoundation {
|
|
|
784
664
|
fileList
|
|
785
665
|
} = this.getStates();
|
|
786
666
|
let body = null;
|
|
787
|
-
|
|
788
667
|
const index = this._getFileIndex(fileInstance, fileList);
|
|
789
|
-
|
|
790
668
|
if (index < 0) {
|
|
791
669
|
return;
|
|
792
670
|
}
|
|
793
|
-
|
|
794
671
|
if (isCustomRequest) {
|
|
795
672
|
// use when pass customRequest
|
|
796
673
|
body = response;
|
|
797
674
|
} else {
|
|
798
675
|
body = this.getBody(xhr);
|
|
799
676
|
}
|
|
800
|
-
|
|
801
677
|
const newFileList = fileList.slice();
|
|
802
678
|
const {
|
|
803
679
|
afterUpload
|
|
804
680
|
} = this.getProps();
|
|
805
681
|
newFileList[index].status = FILE_STATUS_SUCCESS;
|
|
806
682
|
newFileList[index].percent = 100;
|
|
807
|
-
|
|
808
683
|
this._adapter.notifyProgress(100, fileInstance, newFileList);
|
|
809
|
-
|
|
810
684
|
newFileList[index].response = body;
|
|
811
685
|
e ? newFileList[index].event = e : null;
|
|
812
|
-
|
|
813
686
|
if (afterUpload && typeof afterUpload === 'function') {
|
|
814
687
|
const {
|
|
815
688
|
autoRemove,
|
|
@@ -826,30 +699,23 @@ class UploadFoundation extends BaseFoundation {
|
|
|
826
699
|
name ? newFileList[index].name = name : null;
|
|
827
700
|
autoRemove ? newFileList.splice(index, 1) : null;
|
|
828
701
|
}
|
|
829
|
-
|
|
830
702
|
this._adapter.notifySuccess(body, fileInstance, newFileList);
|
|
831
|
-
|
|
832
703
|
this._adapter.notifyChange({
|
|
833
704
|
fileList: newFileList,
|
|
834
705
|
currentFile: newFileList[index]
|
|
835
706
|
});
|
|
836
|
-
|
|
837
707
|
this._adapter.updateFileList(newFileList);
|
|
838
708
|
}
|
|
839
|
-
|
|
840
709
|
_getFileIndex(file, fileList) {
|
|
841
710
|
return fileList.findIndex(item => item.uid === file.uid);
|
|
842
711
|
}
|
|
843
|
-
|
|
844
712
|
handleRemove(file) {
|
|
845
713
|
const {
|
|
846
714
|
disabled
|
|
847
715
|
} = this.getProps();
|
|
848
|
-
|
|
849
716
|
if (disabled) {
|
|
850
717
|
return;
|
|
851
718
|
}
|
|
852
|
-
|
|
853
719
|
const {
|
|
854
720
|
fileList
|
|
855
721
|
} = this.getStates();
|
|
@@ -858,28 +724,20 @@ class UploadFoundation extends BaseFoundation {
|
|
|
858
724
|
if (res === false) {
|
|
859
725
|
return;
|
|
860
726
|
}
|
|
861
|
-
|
|
862
727
|
const newFileList = fileList.slice();
|
|
863
|
-
|
|
864
728
|
const index = this._getFileIndex(file, fileList);
|
|
865
|
-
|
|
866
729
|
if (index < 0) {
|
|
867
730
|
return;
|
|
868
731
|
}
|
|
869
|
-
|
|
870
732
|
newFileList.splice(index, 1);
|
|
871
|
-
|
|
872
733
|
this._adapter.notifyRemove(file.fileInstance, newFileList, file);
|
|
873
|
-
|
|
874
734
|
this._adapter.updateFileList(newFileList);
|
|
875
|
-
|
|
876
735
|
this._adapter.notifyChange({
|
|
877
736
|
fileList: newFileList,
|
|
878
737
|
currentFile: file
|
|
879
738
|
});
|
|
880
739
|
});
|
|
881
740
|
}
|
|
882
|
-
|
|
883
741
|
handleError(_ref5) {
|
|
884
742
|
let {
|
|
885
743
|
e,
|
|
@@ -889,13 +747,10 @@ class UploadFoundation extends BaseFoundation {
|
|
|
889
747
|
const {
|
|
890
748
|
fileList
|
|
891
749
|
} = this.getStates();
|
|
892
|
-
|
|
893
750
|
const index = this._getFileIndex(fileInstance, fileList);
|
|
894
|
-
|
|
895
751
|
if (index < 0) {
|
|
896
752
|
return;
|
|
897
753
|
}
|
|
898
|
-
|
|
899
754
|
const {
|
|
900
755
|
action
|
|
901
756
|
} = this.getProps();
|
|
@@ -908,17 +763,13 @@ class UploadFoundation extends BaseFoundation {
|
|
|
908
763
|
newFileList[index].status = FILE_STATUS_UPLOAD_FAIL;
|
|
909
764
|
newFileList[index].response = error;
|
|
910
765
|
newFileList[index].event = e;
|
|
911
|
-
|
|
912
766
|
this._adapter.notifyError(error, fileInstance, newFileList, xhr);
|
|
913
|
-
|
|
914
767
|
this._adapter.updateFileList(newFileList);
|
|
915
|
-
|
|
916
768
|
this._adapter.notifyChange({
|
|
917
769
|
currentFile: newFileList[index],
|
|
918
770
|
fileList: newFileList
|
|
919
771
|
});
|
|
920
772
|
}
|
|
921
|
-
|
|
922
773
|
handleClear() {
|
|
923
774
|
const {
|
|
924
775
|
disabled
|
|
@@ -926,27 +777,22 @@ class UploadFoundation extends BaseFoundation {
|
|
|
926
777
|
const {
|
|
927
778
|
fileList
|
|
928
779
|
} = this.getStates();
|
|
929
|
-
|
|
930
780
|
if (disabled) {
|
|
931
781
|
return;
|
|
932
782
|
}
|
|
933
|
-
|
|
934
783
|
Promise.resolve(this._adapter.notifyBeforeClear(fileList)).then(res => {
|
|
935
784
|
if (res === false) {
|
|
936
785
|
return;
|
|
937
786
|
}
|
|
938
|
-
|
|
939
787
|
this._adapter.updateFileList([]);
|
|
940
|
-
|
|
941
788
|
this._adapter.notifyClear();
|
|
942
|
-
|
|
943
789
|
this._adapter.notifyChange({
|
|
944
790
|
fileList: []
|
|
945
791
|
});
|
|
946
|
-
}).catch(error => {
|
|
792
|
+
}).catch(error => {
|
|
793
|
+
// if user pass reject promise, no need to do anything
|
|
947
794
|
});
|
|
948
795
|
}
|
|
949
|
-
|
|
950
796
|
_createURL(fileInstance) {
|
|
951
797
|
// https://stackoverflow.com/questions/31742072/filereader-vs-window-url-createobjecturl
|
|
952
798
|
const url = URL.createObjectURL(fileInstance);
|
|
@@ -955,14 +801,11 @@ class UploadFoundation extends BaseFoundation {
|
|
|
955
801
|
} = this.getStates();
|
|
956
802
|
const newUrls = localUrls.slice();
|
|
957
803
|
newUrls.push(url);
|
|
958
|
-
|
|
959
804
|
this._adapter.updateLocalUrls(newUrls);
|
|
960
|
-
|
|
961
805
|
return url;
|
|
962
|
-
}
|
|
806
|
+
}
|
|
807
|
+
// 释放预览文件所占用的内存
|
|
963
808
|
// Release memory used by preview files
|
|
964
|
-
|
|
965
|
-
|
|
966
809
|
releaseMemory() {
|
|
967
810
|
const {
|
|
968
811
|
localUrls
|
|
@@ -971,7 +814,6 @@ class UploadFoundation extends BaseFoundation {
|
|
|
971
814
|
this._releaseBlob(url);
|
|
972
815
|
});
|
|
973
816
|
}
|
|
974
|
-
|
|
975
817
|
_releaseBlob(url) {
|
|
976
818
|
try {
|
|
977
819
|
URL.revokeObjectURL(url);
|
|
@@ -979,17 +821,13 @@ class UploadFoundation extends BaseFoundation {
|
|
|
979
821
|
console.log(error);
|
|
980
822
|
}
|
|
981
823
|
}
|
|
982
|
-
|
|
983
824
|
isImage(file) {
|
|
984
825
|
return /(webp|svg|png|gif|jpg|jpeg|bmp|dpg)$/i.test(file.type);
|
|
985
826
|
}
|
|
986
827
|
/* istanbul ignore next */
|
|
987
|
-
|
|
988
|
-
|
|
989
828
|
isMultiple() {
|
|
990
829
|
return Boolean(this.getProp('multiple'));
|
|
991
830
|
}
|
|
992
|
-
|
|
993
831
|
handleDragEnter(e) {
|
|
994
832
|
e.preventDefault();
|
|
995
833
|
e.stopPropagation();
|
|
@@ -997,25 +835,20 @@ class UploadFoundation extends BaseFoundation {
|
|
|
997
835
|
const {
|
|
998
836
|
disabled
|
|
999
837
|
} = this.getProps();
|
|
1000
|
-
|
|
1001
838
|
if (!disabled) {
|
|
1002
839
|
this._adapter.updateDragAreaStatus(DRAG_AREA_LEGAL);
|
|
1003
840
|
}
|
|
1004
841
|
}
|
|
1005
|
-
|
|
1006
842
|
handleDirectoryDrop(e) {
|
|
1007
843
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1008
844
|
const fileList = this.getState('fileList').slice();
|
|
1009
845
|
const items = [].slice.call(e.dataTransfer.items);
|
|
1010
846
|
const files = yield mapFileTree(items);
|
|
1011
847
|
this.handleChange(files);
|
|
1012
|
-
|
|
1013
848
|
this._adapter.updateDragAreaStatus(DRAG_AREA_DEFAULT);
|
|
1014
|
-
|
|
1015
849
|
this._adapter.notifyDrop(e, files, fileList);
|
|
1016
850
|
});
|
|
1017
851
|
}
|
|
1018
|
-
|
|
1019
852
|
handleDrop(e) {
|
|
1020
853
|
// Block file opening in browser
|
|
1021
854
|
e.preventDefault();
|
|
@@ -1025,44 +858,37 @@ class UploadFoundation extends BaseFoundation {
|
|
|
1025
858
|
directory
|
|
1026
859
|
} = this.getProps();
|
|
1027
860
|
const fileList = this.getState('fileList').slice();
|
|
1028
|
-
|
|
1029
861
|
if (!disabled) {
|
|
1030
862
|
if (directory) {
|
|
1031
863
|
this.handleDirectoryDrop(e);
|
|
1032
864
|
return;
|
|
1033
865
|
}
|
|
1034
|
-
|
|
1035
866
|
const files = Array.from(e.dataTransfer.files);
|
|
1036
867
|
this.handleChange(files);
|
|
1037
|
-
|
|
1038
868
|
this._adapter.updateDragAreaStatus(DRAG_AREA_DEFAULT);
|
|
1039
|
-
|
|
1040
869
|
this._adapter.notifyDrop(e, files, fileList);
|
|
1041
870
|
}
|
|
1042
871
|
}
|
|
1043
|
-
|
|
1044
872
|
handleDragOver(e) {
|
|
1045
873
|
e.preventDefault();
|
|
1046
874
|
e.stopPropagation();
|
|
1047
875
|
}
|
|
1048
|
-
|
|
1049
876
|
handleDragLeave(e) {
|
|
1050
877
|
e.preventDefault();
|
|
1051
|
-
e.stopPropagation();
|
|
878
|
+
e.stopPropagation();
|
|
879
|
+
// 防止拖拽进入子元素时触发的dragLeave也被处理
|
|
1052
880
|
// Prevent dragLeave triggered when dragging into a child element is also handled
|
|
1053
881
|
// https://stackoverflow.com/questions/7110353/html5-dragleave-fired-when-hovering-a-child-element
|
|
1054
|
-
|
|
1055
882
|
if (this._dragEnterTarget === e.target) {
|
|
1056
883
|
this._adapter.updateDragAreaStatus(DRAG_AREA_DEFAULT);
|
|
1057
884
|
}
|
|
1058
|
-
}
|
|
885
|
+
}
|
|
886
|
+
// 拖拽上传时,需要对文件的格式进行校验
|
|
1059
887
|
// When dragging and uploading, you need to verify the file format
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
888
|
checkFileFormat(accept, file) {
|
|
1063
889
|
const acceptTypes = accept.split(',').map(type => type.trim()).filter(type => type);
|
|
1064
|
-
const mimeType = file.type || '';
|
|
1065
|
-
|
|
890
|
+
const mimeType = file.type || '';
|
|
891
|
+
// Get the large class to which MIMEtype belongs, eg: image/jpeg = > image, application/= > application
|
|
1066
892
|
const baseMimeType = mimeType.replace(/\/.*$/, '');
|
|
1067
893
|
return acceptTypes.some(type => {
|
|
1068
894
|
// When accepted as a suffix filename such as [.jpeg]
|
|
@@ -1070,39 +896,80 @@ class UploadFoundation extends BaseFoundation {
|
|
|
1070
896
|
const fileName = file.name || '';
|
|
1071
897
|
const acceptExtension = type.split('.').pop().toLowerCase();
|
|
1072
898
|
return endsWith(fileName.toLowerCase(), acceptExtension);
|
|
1073
|
-
}
|
|
1074
|
-
|
|
1075
|
-
|
|
899
|
+
}
|
|
900
|
+
// When accepted as a general class such as [image/*] or [video/*]
|
|
1076
901
|
if (/\/\*$/.test(type)) {
|
|
1077
902
|
const acceptBaseMimeType = type.replace(/\/.*$/, '');
|
|
1078
903
|
return baseMimeType === acceptBaseMimeType;
|
|
1079
|
-
}
|
|
1080
|
-
|
|
1081
|
-
|
|
904
|
+
}
|
|
905
|
+
// When accepted as a full MIME types string
|
|
1082
906
|
if (/^[^\/]+\/[^\/]+$/.test(type)) {
|
|
1083
907
|
return mimeType === type;
|
|
1084
908
|
}
|
|
1085
|
-
|
|
1086
909
|
return false;
|
|
1087
910
|
});
|
|
1088
911
|
}
|
|
1089
|
-
|
|
1090
912
|
retry(fileItem) {
|
|
1091
913
|
const {
|
|
1092
914
|
onRetry
|
|
1093
915
|
} = this.getProps();
|
|
1094
|
-
|
|
1095
916
|
if (onRetry && typeof onRetry === 'function') {
|
|
1096
917
|
onRetry(fileItem);
|
|
1097
918
|
}
|
|
1098
|
-
|
|
1099
919
|
this.post(fileItem);
|
|
1100
920
|
}
|
|
1101
|
-
|
|
1102
921
|
handlePreviewClick(fileItem) {
|
|
1103
922
|
this._adapter.notifyPreviewClick(fileItem);
|
|
1104
923
|
}
|
|
1105
|
-
|
|
924
|
+
readFileFromClipboard(clipboardItems) {
|
|
925
|
+
for (const clipboardItem of clipboardItems) {
|
|
926
|
+
for (const type of clipboardItem.types) {
|
|
927
|
+
// types maybe: text/plain, image/png, text/html
|
|
928
|
+
if (type.startsWith('image')) {
|
|
929
|
+
clipboardItem.getType(type).then(blob => {
|
|
930
|
+
return blob.arrayBuffer();
|
|
931
|
+
}).then(buffer => {
|
|
932
|
+
const format = type.split('/')[1];
|
|
933
|
+
const file = new File([buffer], `upload.${format}`, {
|
|
934
|
+
type
|
|
935
|
+
});
|
|
936
|
+
this.handleChange([file]);
|
|
937
|
+
});
|
|
938
|
+
}
|
|
939
|
+
}
|
|
940
|
+
}
|
|
941
|
+
}
|
|
942
|
+
handlePasting(e) {
|
|
943
|
+
const isMac = this._adapter.isMac();
|
|
944
|
+
const isCombineKeydown = isMac ? e.metaKey : e.ctrlKey;
|
|
945
|
+
if (isCombineKeydown && e.code === 'KeyV' && e.target === document.body) {
|
|
946
|
+
// https://github.com/microsoft/TypeScript/issues/33923
|
|
947
|
+
const permissionName = "clipboard-read";
|
|
948
|
+
// The main thread should not be blocked by clipboard, so callback writing is required here. No await here
|
|
949
|
+
navigator.permissions.query({
|
|
950
|
+
name: permissionName
|
|
951
|
+
}).then(result => {
|
|
952
|
+
console.log(result);
|
|
953
|
+
if (result.state === 'granted' || result.state === 'prompt') {
|
|
954
|
+
// user has authorized or will authorize
|
|
955
|
+
navigator.clipboard.read().then(clipboardItems => {
|
|
956
|
+
// Process the data read from the pasteboard
|
|
957
|
+
// Check the returned data type to determine if it is image data, and process accordingly
|
|
958
|
+
this.readFileFromClipboard(clipboardItems);
|
|
959
|
+
});
|
|
960
|
+
} else {
|
|
961
|
+
this._adapter.notifyPastingError(result);
|
|
962
|
+
}
|
|
963
|
+
}).catch(error => {
|
|
964
|
+
this._adapter.notifyPastingError(error);
|
|
965
|
+
});
|
|
966
|
+
}
|
|
967
|
+
}
|
|
968
|
+
bindPastingHandler() {
|
|
969
|
+
this._adapter.registerPastingHandler(event => this.handlePasting(event));
|
|
970
|
+
}
|
|
971
|
+
unbindPastingHandler() {
|
|
972
|
+
this._adapter.unRegisterPastingHandler();
|
|
973
|
+
}
|
|
1106
974
|
}
|
|
1107
|
-
|
|
1108
975
|
export default UploadFoundation;
|