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