@douyinfe/semi-foundation 2.24.3 → 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 -433
- 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 -419
- 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 +68 -31
- 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
|
@@ -3,10 +3,6 @@ import _isEqual from "lodash/isEqual";
|
|
|
3
3
|
import _isString from "lodash/isString";
|
|
4
4
|
import _isObject from "lodash/isObject";
|
|
5
5
|
import _get from "lodash/get";
|
|
6
|
-
|
|
7
|
-
/* eslint-disable no-nested-ternary */
|
|
8
|
-
|
|
9
|
-
/* eslint-disable max-len, max-depth, */
|
|
10
6
|
import { format, isValid, isSameSecond, isEqual as isDateEqual, isDate } from 'date-fns';
|
|
11
7
|
import BaseFoundation from '../base/foundation';
|
|
12
8
|
import { isValidDate, isTimestamp } from './_utils/index';
|
|
@@ -18,12 +14,13 @@ import { strings } from './constants';
|
|
|
18
14
|
import { strings as inputStrings } from '../input/constants';
|
|
19
15
|
import getInsetInputFormatToken from './_utils/getInsetInputFormatToken';
|
|
20
16
|
import getInsetInputValueFromInsetInputStr from './_utils/getInsetInputValueFromInsetInputStr';
|
|
17
|
+
import isValidTimeZone from './_utils/isValidTimeZone';
|
|
18
|
+
import warning from '../utils/warning';
|
|
21
19
|
/**
|
|
22
20
|
* The datePicker foundation.js is responsible for maintaining the date value and the input box value, as well as the callback of both
|
|
23
21
|
* task 1. Accept the selected date change, update the date value, and update the input box value according to the date = > Notify the change
|
|
24
22
|
* task 2. When the input box changes, update the date value = > Notify the change
|
|
25
23
|
*/
|
|
26
|
-
|
|
27
24
|
export default class DatePickerFoundation extends BaseFoundation {
|
|
28
25
|
constructor(adapter) {
|
|
29
26
|
super(Object.assign({}, adapter));
|
|
@@ -31,41 +28,31 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
31
28
|
* clear range input focus when open is controlled
|
|
32
29
|
* fixed github 1375
|
|
33
30
|
*/
|
|
34
|
-
|
|
35
31
|
this.clearRangeInputFocus = () => {
|
|
36
32
|
const {
|
|
37
33
|
type
|
|
38
34
|
} = this._adapter.getProps();
|
|
39
|
-
|
|
40
35
|
const {
|
|
41
36
|
rangeInputFocus
|
|
42
37
|
} = this._adapter.getStates();
|
|
43
|
-
|
|
44
38
|
if (type === 'dateTimeRange' && rangeInputFocus) {
|
|
45
39
|
this._adapter.setRangeInputFocus(false);
|
|
46
40
|
}
|
|
47
41
|
};
|
|
48
|
-
|
|
49
42
|
this._isRangeType = () => {
|
|
50
43
|
const type = this._adapter.getProp('type');
|
|
51
|
-
|
|
52
44
|
return /range/i.test(type);
|
|
53
45
|
};
|
|
54
|
-
|
|
55
46
|
this._isRangeValueComplete = value => {
|
|
56
47
|
let result = false;
|
|
57
|
-
|
|
58
48
|
if (Array.isArray(value)) {
|
|
59
49
|
result = !value.some(date => isNullOrUndefined(date));
|
|
60
50
|
}
|
|
61
|
-
|
|
62
51
|
return result;
|
|
63
52
|
};
|
|
64
53
|
}
|
|
65
|
-
|
|
66
54
|
init() {
|
|
67
55
|
const timeZone = this.getProp('timeZone');
|
|
68
|
-
|
|
69
56
|
if (this._isControlledComponent()) {
|
|
70
57
|
this.initFromProps({
|
|
71
58
|
timeZone,
|
|
@@ -77,38 +64,22 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
77
64
|
value: this.getProp('defaultValue')
|
|
78
65
|
});
|
|
79
66
|
}
|
|
80
|
-
|
|
81
67
|
this.initPanelOpenStatus(this.getProp('defaultOpen'));
|
|
82
68
|
}
|
|
83
|
-
|
|
84
|
-
isValidTimeZone(timeZone) {
|
|
85
|
-
const propTimeZone = this.getProp('timeZone');
|
|
86
|
-
|
|
87
|
-
const _timeZone = isNullOrUndefined(timeZone) ? propTimeZone : timeZone;
|
|
88
|
-
|
|
89
|
-
return ['string', 'number'].includes(typeof _timeZone) && _timeZone !== '';
|
|
90
|
-
}
|
|
91
|
-
|
|
92
69
|
initFromProps(_ref) {
|
|
93
70
|
let {
|
|
94
71
|
value,
|
|
95
72
|
timeZone,
|
|
96
73
|
prevTimeZone
|
|
97
74
|
} = _ref;
|
|
98
|
-
|
|
99
75
|
const _value = (Array.isArray(value) ? [...value] : (value || value === 0) && [value]) || [];
|
|
100
|
-
|
|
101
76
|
const result = this.parseWithTimezone(_value, timeZone, prevTimeZone);
|
|
102
|
-
|
|
103
77
|
this._adapter.updatePrevTimezone(prevTimeZone);
|
|
104
|
-
|
|
105
|
-
this.
|
|
106
|
-
|
|
78
|
+
// reset input value when value update
|
|
79
|
+
this.clearInputValue();
|
|
107
80
|
this._adapter.updateValue(result);
|
|
108
|
-
|
|
109
81
|
this.resetCachedSelectedValue(result);
|
|
110
82
|
this.initRangeInputFocus(result);
|
|
111
|
-
|
|
112
83
|
if (this._adapter.needConfirm()) {
|
|
113
84
|
this._adapter.updateCachedSelectedValue(result);
|
|
114
85
|
}
|
|
@@ -118,38 +89,43 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
118
89
|
*
|
|
119
90
|
* If the user passes an empty value, you need to set the range input focus to rangeStart, so that the user can continue to select from the beginning after clearing
|
|
120
91
|
*/
|
|
121
|
-
|
|
122
|
-
|
|
123
92
|
initRangeInputFocus(result) {
|
|
124
93
|
const {
|
|
125
94
|
triggerRender
|
|
126
95
|
} = this.getProps();
|
|
127
|
-
|
|
128
96
|
if (this._isRangeType() && _isFunction(triggerRender) && result.length === 0) {
|
|
129
97
|
this._adapter.setRangeInputFocus('rangeStart');
|
|
130
98
|
}
|
|
131
99
|
}
|
|
132
|
-
|
|
100
|
+
/**
|
|
101
|
+
* value 可能是 UTC value 也可能是 zoned value
|
|
102
|
+
*
|
|
103
|
+
* UTC value -> 受控传入的 value
|
|
104
|
+
*
|
|
105
|
+
* zoned value -> statue.value,保存的是当前计算机时区下选择的日期
|
|
106
|
+
*
|
|
107
|
+
* 如果是时区变化,则需要将旧 zoned value 转为新时区下的 zoned value
|
|
108
|
+
*
|
|
109
|
+
* 如果是 value 变化,则不需要传入之前的时区,将 UTC value 转为 zoned value 即可
|
|
110
|
+
*
|
|
111
|
+
*/
|
|
133
112
|
parseWithTimezone(value, timeZone, prevTimeZone) {
|
|
134
113
|
const result = [];
|
|
135
|
-
|
|
136
114
|
if (Array.isArray(value) && value.length) {
|
|
137
115
|
for (const v of value) {
|
|
138
116
|
let parsedV = (v || v === 0) && this._parseValue(v);
|
|
139
|
-
|
|
140
117
|
if (parsedV) {
|
|
141
|
-
if (
|
|
118
|
+
if (isValidTimeZone(prevTimeZone)) {
|
|
142
119
|
parsedV = zonedTimeToUtc(parsedV, prevTimeZone);
|
|
143
120
|
}
|
|
144
|
-
|
|
145
|
-
|
|
121
|
+
result.push(isValidTimeZone(timeZone) ? utcToZonedTime(parsedV, timeZone) : parsedV);
|
|
122
|
+
} else {
|
|
123
|
+
warning(true, `[Semi DatePicker] value cannot be parsed, value: ${String(v)}`);
|
|
146
124
|
}
|
|
147
125
|
}
|
|
148
126
|
}
|
|
149
|
-
|
|
150
127
|
return result;
|
|
151
128
|
}
|
|
152
|
-
|
|
153
129
|
_isMultiple() {
|
|
154
130
|
return Boolean(this.getProp('multiple'));
|
|
155
131
|
}
|
|
@@ -163,17 +139,12 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
163
139
|
Unified here to format the incoming value and output it as a Date object
|
|
164
140
|
*
|
|
165
141
|
*/
|
|
166
|
-
|
|
167
|
-
|
|
168
142
|
_parseValue(value) {
|
|
169
143
|
const dateFnsLocale = this._adapter.getProp('dateFnsLocale');
|
|
170
|
-
|
|
171
144
|
let dateObj;
|
|
172
|
-
|
|
173
145
|
if (!value && value !== 0) {
|
|
174
146
|
return new Date();
|
|
175
147
|
}
|
|
176
|
-
|
|
177
148
|
if (isValidDate(value)) {
|
|
178
149
|
dateObj = value;
|
|
179
150
|
} else if (_isString(value)) {
|
|
@@ -183,87 +154,37 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
183
154
|
} else {
|
|
184
155
|
throw new TypeError('defaultValue should be valid Date object/timestamp or string');
|
|
185
156
|
}
|
|
186
|
-
|
|
187
157
|
return dateObj;
|
|
188
158
|
}
|
|
189
|
-
|
|
190
159
|
destroy() {
|
|
191
160
|
// Ensure that event listeners will be uninstalled and users may not trigger closePanel
|
|
192
|
-
|
|
161
|
+
this._adapter.togglePanel(false);
|
|
193
162
|
this._adapter.unregisterClickOutSide();
|
|
194
163
|
}
|
|
195
|
-
|
|
196
164
|
initPanelOpenStatus(defaultOpen) {
|
|
197
165
|
if ((this.getProp('open') || defaultOpen) && !this.getProp('disabled')) {
|
|
198
166
|
this._adapter.togglePanel(true);
|
|
199
|
-
|
|
200
167
|
this._adapter.registerClickOutSide();
|
|
201
168
|
} else {
|
|
202
169
|
this._adapter.togglePanel(false);
|
|
203
|
-
|
|
204
170
|
this._adapter.unregisterClickOutSide();
|
|
205
171
|
}
|
|
206
172
|
}
|
|
207
|
-
|
|
208
173
|
openPanel() {
|
|
209
174
|
if (!this.getProp('disabled')) {
|
|
210
175
|
if (!this._isControlledComponent('open')) {
|
|
211
|
-
this.
|
|
212
|
-
|
|
213
|
-
this._adapter.registerClickOutSide();
|
|
176
|
+
this.open();
|
|
214
177
|
}
|
|
215
|
-
|
|
216
178
|
this._adapter.notifyOpenChange(true);
|
|
217
179
|
}
|
|
218
180
|
}
|
|
219
|
-
/**
|
|
220
|
-
* do these side effects when type is dateRange or dateTimeRange
|
|
221
|
-
* 1. trigger input blur, if input value is invalid, set input value and state value to previous status
|
|
222
|
-
* 2. set cachedSelectedValue using given dates(in needConfirm mode)
|
|
223
|
-
* - directly closePanel without click confirm will set cachedSelectedValue to state value
|
|
224
|
-
* - select one date(which means that the selection value is incomplete) and click confirm also set cachedSelectedValue to state value
|
|
225
|
-
*/
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
rangeTypeSideEffectsWhenClosePanel(inputValue, willUpdateDates) {
|
|
229
|
-
if (this._isRangeType()) {
|
|
230
|
-
this._adapter.setRangeInputFocus(false);
|
|
231
|
-
/**
|
|
232
|
-
* inputValue is string when it is not disabled or can't parsed
|
|
233
|
-
* when inputValue is null, picker value will back to last selected value
|
|
234
|
-
*/
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
this.handleInputBlur(inputValue);
|
|
238
|
-
this.resetCachedSelectedValue(willUpdateDates);
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
/**
|
|
242
|
-
* clear input value when selected date is not confirmed
|
|
243
|
-
*/
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
needConfirmSideEffectsWhenClosePanel(willUpdateDates) {
|
|
247
|
-
if (this._adapter.needConfirm() && !this._isRangeType()) {
|
|
248
|
-
/**
|
|
249
|
-
* if `null` input element will show `cachedSelectedValue` formatted value(format in DateInput render)
|
|
250
|
-
* if `` input element will show `` directly
|
|
251
|
-
*/
|
|
252
|
-
this._adapter.updateInputValue(null);
|
|
253
|
-
|
|
254
|
-
this.resetCachedSelectedValue(willUpdateDates);
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
181
|
/**
|
|
258
182
|
* clear inset input value when close panel
|
|
259
183
|
*/
|
|
260
|
-
|
|
261
|
-
|
|
262
184
|
clearInsetInputValue() {
|
|
263
185
|
const {
|
|
264
186
|
insetInput
|
|
265
187
|
} = this._adapter.getProps();
|
|
266
|
-
|
|
267
188
|
if (insetInput) {
|
|
268
189
|
this._adapter.updateInsetInputValue(null);
|
|
269
190
|
}
|
|
@@ -271,16 +192,12 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
271
192
|
/**
|
|
272
193
|
* call it when change state value or input value
|
|
273
194
|
*/
|
|
274
|
-
|
|
275
|
-
|
|
276
195
|
resetCachedSelectedValue(willUpdateDates) {
|
|
277
196
|
const {
|
|
278
197
|
value,
|
|
279
198
|
cachedSelectedValue
|
|
280
199
|
} = this._adapter.getStates();
|
|
281
|
-
|
|
282
200
|
const newCachedSelectedValue = Array.isArray(willUpdateDates) ? willUpdateDates : value;
|
|
283
|
-
|
|
284
201
|
if (!_isEqual(newCachedSelectedValue, cachedSelectedValue)) {
|
|
285
202
|
this._adapter.updateCachedSelectedValue(newCachedSelectedValue);
|
|
286
203
|
}
|
|
@@ -297,64 +214,117 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
297
214
|
* @param {String} inputValue
|
|
298
215
|
* @param {Date[]} dates
|
|
299
216
|
*/
|
|
300
|
-
|
|
301
|
-
|
|
302
217
|
closePanel(e) {
|
|
303
218
|
let inputValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
304
219
|
let dates = arguments.length > 2 ? arguments[2] : undefined;
|
|
305
|
-
|
|
306
220
|
const {
|
|
307
221
|
value
|
|
308
222
|
} = this._adapter.getStates();
|
|
309
|
-
|
|
310
223
|
const willUpdateDates = isNullOrUndefined(dates) ? value : dates;
|
|
311
|
-
|
|
312
224
|
if (!this._isControlledComponent('open')) {
|
|
313
|
-
this.
|
|
314
|
-
|
|
315
|
-
this.
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
this.rangeTypeSideEffectsWhenClosePanel(inputValue, willUpdateDates);
|
|
320
|
-
this.needConfirmSideEffectsWhenClosePanel(willUpdateDates);
|
|
321
|
-
this.clearInsetInputValue();
|
|
322
|
-
|
|
225
|
+
this.close();
|
|
226
|
+
} else {
|
|
227
|
+
this.resetInnerSelectedStates(willUpdateDates);
|
|
228
|
+
}
|
|
323
229
|
this._adapter.notifyOpenChange(false);
|
|
324
|
-
|
|
230
|
+
}
|
|
231
|
+
open() {
|
|
232
|
+
this._adapter.togglePanel(true);
|
|
233
|
+
this._adapter.registerClickOutSide();
|
|
234
|
+
}
|
|
235
|
+
close() {
|
|
236
|
+
this._adapter.togglePanel(false, () => this.resetInnerSelectedStates());
|
|
237
|
+
this._adapter.unregisterClickOutSide();
|
|
238
|
+
}
|
|
239
|
+
focus(focusType) {
|
|
240
|
+
if (this._isRangeType()) {
|
|
241
|
+
const rangeInputFocus = focusType !== null && focusType !== void 0 ? focusType : 'rangeStart';
|
|
242
|
+
this._adapter.setRangeInputFocus(rangeInputFocus);
|
|
243
|
+
} else {
|
|
244
|
+
this._adapter.setInputFocus();
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
blur() {
|
|
248
|
+
if (this._isRangeType()) {
|
|
249
|
+
this._adapter.setRangeInputBlur();
|
|
250
|
+
} else {
|
|
251
|
+
this._adapter.setInputBlur();
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* reset cachedSelectedValue, inputValue when close panel
|
|
256
|
+
*/
|
|
257
|
+
resetInnerSelectedStates(willUpdateDates) {
|
|
258
|
+
const {
|
|
259
|
+
value
|
|
260
|
+
} = this._adapter.getStates();
|
|
261
|
+
const needResetCachedSelectedValue = !this.isCachedSelectedValueValid(willUpdateDates) || this._adapter.needConfirm() && !this.clickConfirmButton;
|
|
262
|
+
if (needResetCachedSelectedValue) {
|
|
263
|
+
this.resetCachedSelectedValue(value);
|
|
264
|
+
}
|
|
265
|
+
this.resetFocus();
|
|
266
|
+
this.clearInputValue();
|
|
267
|
+
this.clickConfirmButton = false;
|
|
268
|
+
}
|
|
269
|
+
resetFocus(e) {
|
|
270
|
+
this._adapter.setRangeInputFocus(false);
|
|
325
271
|
this._adapter.notifyBlur(e);
|
|
326
272
|
}
|
|
273
|
+
/**
|
|
274
|
+
* cachedSelectedValue can be `(Date|null)[]` or `null`
|
|
275
|
+
*/
|
|
276
|
+
isCachedSelectedValueValid(dates) {
|
|
277
|
+
const cachedSelectedValue = dates || this._adapter.getState('cachedSelectedValue');
|
|
278
|
+
const {
|
|
279
|
+
type
|
|
280
|
+
} = this._adapter.getProps();
|
|
281
|
+
let isValid = true;
|
|
282
|
+
switch (true) {
|
|
283
|
+
case type === 'dateRange':
|
|
284
|
+
case type === 'dateTimeRange':
|
|
285
|
+
if (!this._isRangeValueComplete(cachedSelectedValue)) {
|
|
286
|
+
isValid = false;
|
|
287
|
+
}
|
|
288
|
+
break;
|
|
289
|
+
default:
|
|
290
|
+
const value = cachedSelectedValue === null || cachedSelectedValue === void 0 ? void 0 : cachedSelectedValue.filter(item => item);
|
|
291
|
+
if (!(Array.isArray(value) && value.length)) {
|
|
292
|
+
isValid = false;
|
|
293
|
+
}
|
|
294
|
+
break;
|
|
295
|
+
}
|
|
296
|
+
return isValid;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* 将输入框内容置空
|
|
300
|
+
*/
|
|
301
|
+
clearInputValue() {
|
|
302
|
+
this._adapter.updateInputValue(null);
|
|
303
|
+
this._adapter.updateInsetInputValue(null);
|
|
304
|
+
}
|
|
327
305
|
/**
|
|
328
306
|
* Callback when the content of the input box changes
|
|
329
307
|
* Update the date panel if the changed value is a legal date, otherwise only update the input box
|
|
330
308
|
* @param {String} input The value of the input box after the change
|
|
331
309
|
* @param {Event} e
|
|
332
310
|
*/
|
|
333
|
-
|
|
334
|
-
|
|
335
311
|
handleInputChange(input, e) {
|
|
336
312
|
const result = this._isMultiple() ? this.parseMultipleInput(input) : this.parseInput(input);
|
|
337
313
|
const {
|
|
338
314
|
value: stateValue
|
|
339
315
|
} = this.getStates();
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
316
|
+
this._updateCachedSelectedValueFromInput(input);
|
|
317
|
+
// Enter a valid date or empty
|
|
344
318
|
if (result && result.length || input === '') {
|
|
345
319
|
// If you click the clear button
|
|
346
320
|
if (_get(e, inputStrings.CLEARBTN_CLICKED_EVENT_FLAG) && this._isControlledComponent('value')) {
|
|
347
321
|
this._notifyChange(result);
|
|
348
|
-
|
|
349
322
|
return;
|
|
350
323
|
}
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
324
|
+
this._updateValueAndInput(result, input === '', input);
|
|
325
|
+
// Updates the selected value when entering a valid date
|
|
355
326
|
const changedDates = this._getChangedDates(result);
|
|
356
|
-
|
|
357
|
-
if (!this._someDateDisabled(changedDates)) {
|
|
327
|
+
if (!this._someDateDisabled(changedDates, result)) {
|
|
358
328
|
if (!_isEqual(result, stateValue)) {
|
|
359
329
|
this._notifyChange(result);
|
|
360
330
|
}
|
|
@@ -369,55 +339,40 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
369
339
|
* - inputValue(可以解析为合法日期时)
|
|
370
340
|
* - value(可以解析为合法日期时)
|
|
371
341
|
*/
|
|
372
|
-
|
|
373
|
-
|
|
374
342
|
handleInsetInputChange(options) {
|
|
375
343
|
const {
|
|
376
344
|
insetInputStr,
|
|
377
345
|
format,
|
|
378
346
|
insetInputValue
|
|
379
347
|
} = options;
|
|
380
|
-
|
|
381
348
|
const _isMultiple = this._isMultiple();
|
|
382
|
-
|
|
383
349
|
const result = _isMultiple ? this.parseMultipleInput(insetInputStr, format) : this.parseInput(insetInputStr, format);
|
|
384
350
|
const {
|
|
385
351
|
value: stateValue
|
|
386
352
|
} = this.getStates();
|
|
387
|
-
|
|
388
353
|
this._updateCachedSelectedValueFromInput(insetInputStr);
|
|
389
|
-
|
|
390
354
|
if (result && result.length) {
|
|
391
355
|
const changedDates = this._getChangedDates(result);
|
|
392
|
-
|
|
393
|
-
if (!this._someDateDisabled(changedDates)) {
|
|
356
|
+
if (!this._someDateDisabled(changedDates, result)) {
|
|
394
357
|
if (!_isEqual(result, stateValue)) {
|
|
395
358
|
if (!this._isControlledComponent() && !this._adapter.needConfirm()) {
|
|
396
359
|
this._adapter.updateValue(result);
|
|
397
360
|
}
|
|
398
|
-
|
|
399
361
|
this._notifyChange(result);
|
|
400
362
|
}
|
|
401
|
-
|
|
402
363
|
const triggerInput = _isMultiple ? this.formatMultipleDates(result) : this.formatDates(result);
|
|
403
|
-
|
|
404
364
|
this._adapter.updateInputValue(triggerInput);
|
|
405
365
|
}
|
|
406
366
|
}
|
|
407
|
-
|
|
408
367
|
this._adapter.updateInsetInputValue(insetInputValue);
|
|
409
368
|
}
|
|
410
369
|
/**
|
|
411
370
|
* when input change we reset cached selected value
|
|
412
371
|
*/
|
|
413
|
-
|
|
414
|
-
|
|
415
372
|
_updateCachedSelectedValueFromInput(input) {
|
|
416
373
|
const looseResult = this.getLooseDateFromInput(input);
|
|
417
|
-
|
|
418
374
|
const changedLooseResult = this._getChangedDates(looseResult);
|
|
419
|
-
|
|
420
|
-
if (!this._someDateDisabled(changedLooseResult)) {
|
|
375
|
+
if (!this._someDateDisabled(changedLooseResult, looseResult)) {
|
|
421
376
|
this.resetCachedSelectedValue(looseResult);
|
|
422
377
|
}
|
|
423
378
|
}
|
|
@@ -426,43 +381,14 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
426
381
|
* @param {String} input
|
|
427
382
|
* @param {Event} e
|
|
428
383
|
*/
|
|
429
|
-
|
|
430
|
-
|
|
431
384
|
handleInputBlur() {
|
|
432
385
|
let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
433
386
|
let e = arguments.length > 1 ? arguments[1] : undefined;
|
|
434
|
-
const parsedResult = input ? this._isMultiple() ? this.parseMultipleInput(input, ',', true) : this.parseInput(input) : [];
|
|
435
|
-
const stateValue = this.getState('value'); // console.log(input, parsedResult);
|
|
436
|
-
|
|
437
|
-
if (parsedResult && parsedResult.length) {
|
|
438
|
-
this._updateValueAndInput(parsedResult, input === '');
|
|
439
|
-
} else if (input === '') {
|
|
440
|
-
// if clear input, set input to `''`
|
|
441
|
-
this._updateValueAndInput('', true, '');
|
|
442
|
-
} else {
|
|
443
|
-
this._updateValueAndInput(stateValue);
|
|
444
|
-
}
|
|
445
|
-
/**
|
|
446
|
-
* 当不是范围类型且不需要确认时,使用 stateValue 重置 cachedSelectedValue
|
|
447
|
-
* 这样做的目的是,在输入非法值时,使用上次选中的值作为已选值
|
|
448
|
-
* needConfirm 或者 range type 时,我们在 close panel 时调用 resetCachedSelectedValue,这里不用重复调用
|
|
449
|
-
*
|
|
450
|
-
* Use stateValue to reset cachedSelectedValue when it is not a range type and does not require confirmation
|
|
451
|
-
* The purpose of this is to use the last selected value as the selected value when an invalid value is entered
|
|
452
|
-
* When needConfirm or range type, we call resetCachedSelectedValue when close panel, no need to call repeatedly here
|
|
453
|
-
*/
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
if (!this._adapter.needConfirm() && !this._isRangeType()) {
|
|
457
|
-
this.resetCachedSelectedValue(stateValue);
|
|
458
|
-
}
|
|
459
387
|
}
|
|
460
388
|
/**
|
|
461
389
|
* called when range type rangeEnd input tab press
|
|
462
390
|
* @param {Event} e
|
|
463
391
|
*/
|
|
464
|
-
|
|
465
|
-
|
|
466
392
|
handleRangeEndTabPress(e) {
|
|
467
393
|
this._adapter.setRangeInputFocus(false);
|
|
468
394
|
}
|
|
@@ -471,26 +397,20 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
471
397
|
* @param {Event} e input focus event
|
|
472
398
|
* @param {String} range 'rangeStart' or 'rangeEnd', use when type is range
|
|
473
399
|
*/
|
|
474
|
-
|
|
475
|
-
|
|
476
400
|
handleInputFocus(e, range) {
|
|
477
401
|
const rangeInputFocus = this._adapter.getState('rangeInputFocus');
|
|
478
|
-
|
|
479
402
|
range && this._adapter.setRangeInputFocus(range);
|
|
480
403
|
/**
|
|
481
404
|
* rangeType: only notify when range is false
|
|
482
405
|
* not rangeType: notify when focus
|
|
483
406
|
*/
|
|
484
|
-
|
|
485
407
|
if (!range || !['rangeStart', 'rangeEnd'].includes(rangeInputFocus)) {
|
|
486
408
|
this._adapter.notifyFocus(e, range);
|
|
487
409
|
}
|
|
488
410
|
}
|
|
489
|
-
|
|
490
411
|
handleSetRangeFocus(rangeInputFocus) {
|
|
491
412
|
this._adapter.setRangeInputFocus(rangeInputFocus);
|
|
492
413
|
}
|
|
493
|
-
|
|
494
414
|
handleInputClear(e) {
|
|
495
415
|
this._adapter.notifyClear(e);
|
|
496
416
|
}
|
|
@@ -501,52 +421,40 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
501
421
|
* callback of range input clear button
|
|
502
422
|
* Since the clear button is not integrated in Input, you need to manually clear value, inputValue, cachedValue
|
|
503
423
|
*/
|
|
504
|
-
|
|
505
|
-
|
|
506
424
|
handleRangeInputClear(e) {
|
|
507
425
|
const value = [];
|
|
508
426
|
const inputValue = '';
|
|
509
|
-
|
|
510
427
|
if (!this._isControlledComponent('value')) {
|
|
511
428
|
this._updateValueAndInput(value, true, inputValue);
|
|
512
|
-
|
|
429
|
+
this._adapter.updateInsetInputValue(null);
|
|
513
430
|
this.resetCachedSelectedValue(value);
|
|
514
431
|
}
|
|
515
|
-
|
|
516
432
|
this._notifyChange(value);
|
|
517
|
-
|
|
433
|
+
this._adapter.setRangeInputFocus(false);
|
|
518
434
|
this._adapter.notifyClear(e);
|
|
519
|
-
}
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
handleRangeInputBlur(value, e) {} // Parses input only after user returns
|
|
523
|
-
|
|
524
|
-
|
|
435
|
+
}
|
|
436
|
+
handleRangeInputBlur(value, e) {}
|
|
437
|
+
// Parses input only after user returns
|
|
525
438
|
handleInputComplete() {
|
|
526
439
|
let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
527
440
|
// console.log(input);
|
|
528
441
|
let parsedResult = input ? this._isMultiple() ? this.parseMultipleInput(input, ',', true) : this.parseInput(input) : [];
|
|
529
|
-
parsedResult = parsedResult && parsedResult.length ? parsedResult : this.getState('value');
|
|
530
|
-
|
|
442
|
+
parsedResult = parsedResult && parsedResult.length ? parsedResult : this.getState('value');
|
|
443
|
+
// Use the current date as the value when the current input is empty and the last input is also empty
|
|
531
444
|
if (!parsedResult || !parsedResult.length) {
|
|
532
445
|
const nowDate = new Date();
|
|
533
|
-
|
|
534
446
|
if (this._isRangeType()) {
|
|
535
447
|
parsedResult = [nowDate, nowDate];
|
|
536
448
|
} else {
|
|
537
449
|
parsedResult = [nowDate];
|
|
538
450
|
}
|
|
539
451
|
}
|
|
540
|
-
|
|
541
452
|
this._updateValueAndInput(parsedResult);
|
|
542
|
-
|
|
543
453
|
const {
|
|
544
454
|
value: stateValue
|
|
545
455
|
} = this.getStates();
|
|
546
|
-
|
|
547
456
|
const changedDates = this._getChangedDates(parsedResult);
|
|
548
|
-
|
|
549
|
-
if (!this._someDateDisabled(changedDates) && !_isEqual(parsedResult, stateValue)) {
|
|
457
|
+
if (!this._someDateDisabled(changedDates, parsedResult) && !_isEqual(parsedResult, stateValue)) {
|
|
550
458
|
this._notifyChange(parsedResult);
|
|
551
459
|
}
|
|
552
460
|
}
|
|
@@ -557,39 +465,33 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
557
465
|
* @param {string} input
|
|
558
466
|
* @returns {Date [] | '}
|
|
559
467
|
*/
|
|
560
|
-
|
|
561
|
-
|
|
562
468
|
parseInput() {
|
|
563
469
|
let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
564
470
|
let format = arguments.length > 1 ? arguments[1] : undefined;
|
|
565
|
-
let result = [];
|
|
566
|
-
|
|
471
|
+
let result = [];
|
|
472
|
+
// console.log(input);
|
|
567
473
|
const {
|
|
568
474
|
dateFnsLocale,
|
|
569
475
|
rangeSeparator
|
|
570
476
|
} = this.getProps();
|
|
571
|
-
|
|
572
477
|
if (input && input.length) {
|
|
573
478
|
const type = this.getProp('type');
|
|
574
479
|
const formatToken = format || this.getProp('format') || getDefaultFormatTokenByType(type);
|
|
575
480
|
let parsedResult, formatedInput;
|
|
576
481
|
const nowDate = new Date();
|
|
577
|
-
|
|
578
482
|
switch (type) {
|
|
579
483
|
case 'date':
|
|
580
484
|
case 'dateTime':
|
|
581
485
|
case 'month':
|
|
582
486
|
parsedResult = input ? compatibleParse(input, formatToken, nowDate, dateFnsLocale) : '';
|
|
583
487
|
formatedInput = parsedResult && isValid(parsedResult) && this.localeFormat(parsedResult, formatToken);
|
|
584
|
-
|
|
585
488
|
if (parsedResult && formatedInput === input) {
|
|
586
489
|
result = [parsedResult];
|
|
587
490
|
}
|
|
588
|
-
|
|
589
491
|
break;
|
|
590
|
-
|
|
591
492
|
case 'dateRange':
|
|
592
493
|
case 'dateTimeRange':
|
|
494
|
+
case 'monthRange':
|
|
593
495
|
const separator = rangeSeparator;
|
|
594
496
|
const values = input.split(separator);
|
|
595
497
|
parsedResult = values && values.reduce((arr, cur) => {
|
|
@@ -598,26 +500,20 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
598
500
|
return arr;
|
|
599
501
|
}, []);
|
|
600
502
|
formatedInput = parsedResult && parsedResult.map(v => v && isValid(v) && this.localeFormat(v, formatToken)).join(separator);
|
|
601
|
-
|
|
602
503
|
if (parsedResult && formatedInput === input) {
|
|
603
504
|
parsedResult.sort((d1, d2) => d1.getTime() - d2.getTime());
|
|
604
505
|
result = parsedResult;
|
|
605
506
|
}
|
|
606
|
-
|
|
607
507
|
break;
|
|
608
|
-
|
|
609
508
|
default:
|
|
610
509
|
break;
|
|
611
510
|
}
|
|
612
511
|
}
|
|
613
|
-
|
|
614
512
|
return result;
|
|
615
513
|
}
|
|
616
514
|
/**
|
|
617
515
|
* get date which may include null from input
|
|
618
516
|
*/
|
|
619
|
-
|
|
620
|
-
|
|
621
517
|
getLooseDateFromInput(input) {
|
|
622
518
|
const value = this._isMultiple() ? this.parseMultipleInputLoose(input) : this.parseInputLoose(input);
|
|
623
519
|
return value;
|
|
@@ -633,8 +529,6 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
633
529
|
* parseInputLoose('2022-03- ~ 2022-0'); // [null, null]
|
|
634
530
|
* ```
|
|
635
531
|
*/
|
|
636
|
-
|
|
637
|
-
|
|
638
532
|
parseInputLoose() {
|
|
639
533
|
let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
640
534
|
let result = [];
|
|
@@ -644,64 +538,50 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
644
538
|
type,
|
|
645
539
|
format
|
|
646
540
|
} = this.getProps();
|
|
647
|
-
|
|
648
541
|
if (input && input.length) {
|
|
649
542
|
const formatToken = format || getDefaultFormatTokenByType(type);
|
|
650
543
|
let parsedResult, formatedInput;
|
|
651
544
|
const nowDate = new Date();
|
|
652
|
-
|
|
653
545
|
switch (type) {
|
|
654
546
|
case 'date':
|
|
655
547
|
case 'dateTime':
|
|
656
548
|
case 'month':
|
|
657
549
|
const _parsedResult = compatibleParse(input, formatToken, nowDate, dateFnsLocale);
|
|
658
|
-
|
|
659
550
|
if (isValidDate(_parsedResult)) {
|
|
660
551
|
formatedInput = this.localeFormat(_parsedResult, formatToken);
|
|
661
|
-
|
|
662
552
|
if (formatedInput === input) {
|
|
663
553
|
parsedResult = _parsedResult;
|
|
664
554
|
}
|
|
665
555
|
} else {
|
|
666
556
|
parsedResult = null;
|
|
667
557
|
}
|
|
668
|
-
|
|
669
558
|
result = [parsedResult];
|
|
670
559
|
break;
|
|
671
|
-
|
|
672
560
|
case 'dateRange':
|
|
673
561
|
case 'dateTimeRange':
|
|
674
562
|
const separator = rangeSeparator;
|
|
675
563
|
const values = input.split(separator);
|
|
676
564
|
parsedResult = values && values.reduce((arr, cur) => {
|
|
677
565
|
let parsedVal = null;
|
|
678
|
-
|
|
679
566
|
const _parsedResult = compatibleParse(cur, formatToken, nowDate, dateFnsLocale);
|
|
680
|
-
|
|
681
567
|
if (isValidDate(_parsedResult)) {
|
|
682
568
|
formatedInput = this.localeFormat(_parsedResult, formatToken);
|
|
683
|
-
|
|
684
569
|
if (formatedInput === cur) {
|
|
685
570
|
parsedVal = _parsedResult;
|
|
686
571
|
}
|
|
687
572
|
}
|
|
688
|
-
|
|
689
573
|
arr.push(parsedVal);
|
|
690
574
|
return arr;
|
|
691
575
|
}, []);
|
|
692
|
-
|
|
693
576
|
if (Array.isArray(parsedResult) && parsedResult.every(item => isValid(item))) {
|
|
694
577
|
parsedResult.sort((d1, d2) => d1.getTime() - d2.getTime());
|
|
695
578
|
}
|
|
696
|
-
|
|
697
579
|
result = parsedResult;
|
|
698
580
|
break;
|
|
699
|
-
|
|
700
581
|
default:
|
|
701
582
|
break;
|
|
702
583
|
}
|
|
703
584
|
}
|
|
704
|
-
|
|
705
585
|
return result;
|
|
706
586
|
}
|
|
707
587
|
/**
|
|
@@ -714,8 +594,6 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
714
594
|
* parseMultipleInputLoose(''); // [];
|
|
715
595
|
* ```
|
|
716
596
|
*/
|
|
717
|
-
|
|
718
|
-
|
|
719
597
|
parseMultipleInputLoose() {
|
|
720
598
|
let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
721
599
|
let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : strings.DEFAULT_SEPARATOR_MULTIPLE;
|
|
@@ -723,11 +601,9 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
723
601
|
const max = this.getProp('max');
|
|
724
602
|
const inputArr = input.split(separator);
|
|
725
603
|
const result = [];
|
|
726
|
-
|
|
727
604
|
for (const curInput of inputArr) {
|
|
728
605
|
let tmpParsed = curInput && this.parseInputLoose(curInput);
|
|
729
606
|
tmpParsed = Array.isArray(tmpParsed) ? tmpParsed : tmpParsed && [tmpParsed];
|
|
730
|
-
|
|
731
607
|
if (tmpParsed && tmpParsed.length) {
|
|
732
608
|
if (needDedupe) {
|
|
733
609
|
!result.filter(r => Boolean(tmpParsed.find(tp => isSameSecond(r, tp)))) && result.push(...tmpParsed);
|
|
@@ -737,12 +613,10 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
737
613
|
} else {
|
|
738
614
|
return [];
|
|
739
615
|
}
|
|
740
|
-
|
|
741
616
|
if (max && max > 0 && result.length > max) {
|
|
742
617
|
return [];
|
|
743
618
|
}
|
|
744
619
|
}
|
|
745
|
-
|
|
746
620
|
return result;
|
|
747
621
|
}
|
|
748
622
|
/**
|
|
@@ -754,8 +628,6 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
754
628
|
* @param {boolean} [needDedupe=false]
|
|
755
629
|
* @returns {Date[]}
|
|
756
630
|
*/
|
|
757
|
-
|
|
758
|
-
|
|
759
631
|
parseMultipleInput() {
|
|
760
632
|
let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
761
633
|
let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : strings.DEFAULT_SEPARATOR_MULTIPLE;
|
|
@@ -763,11 +635,9 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
763
635
|
const max = this.getProp('max');
|
|
764
636
|
const inputArr = input.split(separator);
|
|
765
637
|
const result = [];
|
|
766
|
-
|
|
767
638
|
for (const curInput of inputArr) {
|
|
768
639
|
let tmpParsed = curInput && this.parseInput(curInput);
|
|
769
640
|
tmpParsed = Array.isArray(tmpParsed) ? tmpParsed : tmpParsed && [tmpParsed];
|
|
770
|
-
|
|
771
641
|
if (tmpParsed && tmpParsed.length) {
|
|
772
642
|
if (needDedupe) {
|
|
773
643
|
// 20190519 TODO: needs to determine the case where multiple is true and range
|
|
@@ -778,12 +648,10 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
778
648
|
} else {
|
|
779
649
|
return [];
|
|
780
650
|
}
|
|
781
|
-
|
|
782
651
|
if (max && max > 0 && result.length > max) {
|
|
783
652
|
return [];
|
|
784
653
|
}
|
|
785
654
|
}
|
|
786
|
-
|
|
787
655
|
return result;
|
|
788
656
|
}
|
|
789
657
|
/**
|
|
@@ -792,47 +660,39 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
792
660
|
* @param {Date[]} dates
|
|
793
661
|
* @returns {string}
|
|
794
662
|
*/
|
|
795
|
-
|
|
796
|
-
|
|
797
663
|
formatDates() {
|
|
798
664
|
let dates = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
799
665
|
let customFormat = arguments.length > 1 ? arguments[1] : undefined;
|
|
800
666
|
let str = '';
|
|
801
667
|
const rangeSeparator = this.getProp('rangeSeparator');
|
|
802
|
-
|
|
803
668
|
if (Array.isArray(dates) && dates.length) {
|
|
804
669
|
const type = this.getProp('type');
|
|
805
670
|
const formatToken = customFormat || this.getProp('format') || getDefaultFormatTokenByType(type);
|
|
806
|
-
|
|
807
671
|
switch (type) {
|
|
808
672
|
case 'date':
|
|
809
673
|
case 'dateTime':
|
|
810
674
|
case 'month':
|
|
811
675
|
str = this.localeFormat(dates[0], formatToken);
|
|
812
676
|
break;
|
|
813
|
-
|
|
814
677
|
case 'dateRange':
|
|
815
678
|
case 'dateTimeRange':
|
|
679
|
+
case 'monthRange':
|
|
816
680
|
const startIsTruthy = !isNullOrUndefined(dates[0]);
|
|
817
681
|
const endIsTruthy = !isNullOrUndefined(dates[1]);
|
|
818
|
-
|
|
819
682
|
if (startIsTruthy && endIsTruthy) {
|
|
820
|
-
str =
|
|
683
|
+
str = `${this.localeFormat(dates[0], formatToken)}${rangeSeparator}${this.localeFormat(dates[1], formatToken)}`;
|
|
821
684
|
} else {
|
|
822
685
|
if (startIsTruthy) {
|
|
823
|
-
str =
|
|
686
|
+
str = `${this.localeFormat(dates[0], formatToken)}${rangeSeparator}`;
|
|
824
687
|
} else if (endIsTruthy) {
|
|
825
|
-
str =
|
|
688
|
+
str = `${rangeSeparator}${this.localeFormat(dates[1], formatToken)}`;
|
|
826
689
|
}
|
|
827
690
|
}
|
|
828
|
-
|
|
829
691
|
break;
|
|
830
|
-
|
|
831
692
|
default:
|
|
832
693
|
break;
|
|
833
694
|
}
|
|
834
695
|
}
|
|
835
|
-
|
|
836
696
|
return str;
|
|
837
697
|
}
|
|
838
698
|
/**
|
|
@@ -841,37 +701,30 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
841
701
|
* @param {Date[]} dates
|
|
842
702
|
* @returns {string}
|
|
843
703
|
*/
|
|
844
|
-
|
|
845
|
-
|
|
846
704
|
formatMultipleDates() {
|
|
847
705
|
let dates = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
848
706
|
let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : strings.DEFAULT_SEPARATOR_MULTIPLE;
|
|
849
707
|
let customFormat = arguments.length > 2 ? arguments[2] : undefined;
|
|
850
708
|
const strs = [];
|
|
851
|
-
|
|
852
709
|
if (Array.isArray(dates) && dates.length) {
|
|
853
710
|
const type = this.getProp('type');
|
|
854
|
-
|
|
855
711
|
switch (type) {
|
|
856
712
|
case 'date':
|
|
857
713
|
case 'dateTime':
|
|
858
714
|
case 'month':
|
|
859
715
|
dates.forEach(date => strs.push(this.formatDates([date], customFormat)));
|
|
860
716
|
break;
|
|
861
|
-
|
|
862
717
|
case 'dateRange':
|
|
863
718
|
case 'dateTimeRange':
|
|
719
|
+
case 'monthRange':
|
|
864
720
|
for (let i = 0; i < dates.length; i += 2) {
|
|
865
721
|
strs.push(this.formatDates(dates.slice(i, i + 2), customFormat));
|
|
866
722
|
}
|
|
867
|
-
|
|
868
723
|
break;
|
|
869
|
-
|
|
870
724
|
default:
|
|
871
725
|
break;
|
|
872
726
|
}
|
|
873
727
|
}
|
|
874
|
-
|
|
875
728
|
return strs.join(separator);
|
|
876
729
|
}
|
|
877
730
|
/**
|
|
@@ -882,26 +735,20 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
882
735
|
* @param {Boolean} forceUpdateValue
|
|
883
736
|
* @param {String} input
|
|
884
737
|
*/
|
|
885
|
-
|
|
886
|
-
|
|
887
738
|
_updateValueAndInput(value, forceUpdateValue, input) {
|
|
888
739
|
let _value;
|
|
889
|
-
|
|
890
740
|
if (forceUpdateValue || value) {
|
|
891
741
|
if (!Array.isArray(value)) {
|
|
892
742
|
_value = value ? [value] : [];
|
|
893
743
|
} else {
|
|
894
744
|
_value = value;
|
|
895
745
|
}
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
if (!this._isControlledComponent() && !this._someDateDisabled(changedDates) && !this._adapter.needConfirm()) {
|
|
746
|
+
const changedDates = this._getChangedDates(_value);
|
|
747
|
+
// You cannot update the value directly when needConfirm, you can only change the value through handleConfirm
|
|
748
|
+
if (!this._isControlledComponent() && !this._someDateDisabled(changedDates, _value) && !this._adapter.needConfirm()) {
|
|
901
749
|
this._adapter.updateValue(_value);
|
|
902
750
|
}
|
|
903
751
|
}
|
|
904
|
-
|
|
905
752
|
this._adapter.updateInputValue(input);
|
|
906
753
|
}
|
|
907
754
|
/**
|
|
@@ -909,8 +756,6 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
909
756
|
* @param {*} value
|
|
910
757
|
* @param {*} options
|
|
911
758
|
*/
|
|
912
|
-
|
|
913
|
-
|
|
914
759
|
handleSelectedChange(value, options) {
|
|
915
760
|
const {
|
|
916
761
|
type,
|
|
@@ -918,35 +763,24 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
918
763
|
rangeSeparator,
|
|
919
764
|
insetInput
|
|
920
765
|
} = this._adapter.getProps();
|
|
921
|
-
|
|
922
766
|
const {
|
|
923
767
|
value: stateValue
|
|
924
768
|
} = this.getStates();
|
|
925
|
-
|
|
926
769
|
const controlled = this._isControlledComponent();
|
|
927
|
-
|
|
928
770
|
const fromPreset = _isObject(options) ? options.fromPreset : options;
|
|
929
|
-
|
|
930
771
|
const closePanel = _get(options, 'closePanel', true);
|
|
931
772
|
/**
|
|
932
773
|
* It is used to determine whether the panel can be stowed. In a Range type component, it is necessary to select both starting Time and endTime before stowing.
|
|
933
774
|
* To determine whether both starting Time and endTime have been selected, it is used to judge whether the two inputs have been Focused.
|
|
934
775
|
* This variable is used to indicate whether such a judgment is required. In the scene with shortcut operations, it is not required.
|
|
935
776
|
*/
|
|
936
|
-
|
|
937
|
-
|
|
938
777
|
const needCheckFocusRecord = _get(options, 'needCheckFocusRecord', true);
|
|
939
|
-
|
|
940
778
|
const dates = Array.isArray(value) ? [...value] : value ? [value] : [];
|
|
941
|
-
|
|
942
779
|
const changedDates = this._getChangedDates(dates);
|
|
943
|
-
|
|
944
780
|
let inputValue, insetInputValue;
|
|
945
|
-
|
|
946
|
-
if (!this._someDateDisabled(changedDates)) {
|
|
781
|
+
if (!this._someDateDisabled(changedDates, dates)) {
|
|
947
782
|
this.resetCachedSelectedValue(dates);
|
|
948
783
|
inputValue = this._isMultiple() ? this.formatMultipleDates(dates) : this.formatDates(dates);
|
|
949
|
-
|
|
950
784
|
if (insetInput) {
|
|
951
785
|
const insetInputFormatToken = getInsetInputFormatToken({
|
|
952
786
|
format,
|
|
@@ -959,7 +793,6 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
959
793
|
rangeSeparator
|
|
960
794
|
});
|
|
961
795
|
}
|
|
962
|
-
|
|
963
796
|
const isRangeTypeAndInputIncomplete = this._isRangeType() && !this._isRangeValueComplete(dates);
|
|
964
797
|
/**
|
|
965
798
|
* If the input is incomplete when under control, the notifyChange is not triggered because
|
|
@@ -968,53 +801,30 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
968
801
|
* 受控时如果输入不完整,由于没有触发 notifyChange
|
|
969
802
|
* 需要组件内更新一下输入框的值,否则会出现选了一个日期但是输入框没有回显日期的问题 #1357
|
|
970
803
|
*/
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
if (isRangeTypeAndInputIncomplete) {
|
|
974
|
-
// do not change value when selected value is incomplete
|
|
975
|
-
this._adapter.updateInputValue(inputValue);
|
|
976
|
-
|
|
977
|
-
this._adapter.updateInsetInputValue(insetInputValue);
|
|
978
|
-
|
|
979
|
-
return;
|
|
980
|
-
} else {
|
|
981
|
-
if (!controlled || fromPreset) {
|
|
982
|
-
this._updateValueAndInput(dates, true, inputValue);
|
|
983
|
-
|
|
984
|
-
this._adapter.updateInsetInputValue(insetInputValue);
|
|
985
|
-
}
|
|
986
|
-
}
|
|
987
|
-
}
|
|
988
|
-
|
|
989
|
-
if (!controlled && this._adapter.needConfirm()) {
|
|
990
|
-
// select date only change inputValue when needConfirm is true
|
|
804
|
+
if (isRangeTypeAndInputIncomplete) {
|
|
805
|
+
// do not change value when selected value is incomplete
|
|
991
806
|
this._adapter.updateInputValue(inputValue);
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
807
|
+
this._adapter.updateInsetInputValue(insetInputValue);
|
|
808
|
+
return;
|
|
809
|
+
} else {
|
|
810
|
+
if (!controlled || fromPreset) {
|
|
811
|
+
this._updateValueAndInput(dates, true, inputValue);
|
|
812
|
+
this._adapter.updateInsetInputValue(insetInputValue);
|
|
998
813
|
}
|
|
999
814
|
}
|
|
1000
|
-
|
|
1001
815
|
if (!_isEqual(value, stateValue)) {
|
|
1002
816
|
this._notifyChange(value);
|
|
1003
817
|
}
|
|
1004
818
|
}
|
|
1005
|
-
|
|
1006
819
|
const focusRecordChecked = !needCheckFocusRecord || needCheckFocusRecord && this._adapter.couldPanelClosed();
|
|
1007
|
-
|
|
1008
820
|
if (type === 'date' && !this._isMultiple() && closePanel || type === 'dateRange' && this._isRangeValueComplete(dates) && closePanel && focusRecordChecked) {
|
|
1009
821
|
this.closePanel(undefined, inputValue, dates);
|
|
1010
822
|
}
|
|
1011
823
|
}
|
|
1012
824
|
/**
|
|
1013
|
-
* when changing the year and month through the panel when the type is year or month
|
|
825
|
+
* when changing the year and month through the panel when the type is year or month or monthRange
|
|
1014
826
|
* @param {*} item
|
|
1015
827
|
*/
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
828
|
handleYMSelectedChange() {
|
|
1019
829
|
let item = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1020
830
|
// console.log(item);
|
|
@@ -1022,41 +832,39 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
1022
832
|
currentMonth,
|
|
1023
833
|
currentYear
|
|
1024
834
|
} = item;
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
835
|
+
const {
|
|
836
|
+
type
|
|
837
|
+
} = this.getProps();
|
|
838
|
+
if (type === 'month') {
|
|
839
|
+
const date = new Date(currentYear['left'], currentMonth['left'] - 1);
|
|
1029
840
|
this.handleSelectedChange([date]);
|
|
841
|
+
} else {
|
|
842
|
+
const dateLeft = new Date(currentYear['left'], currentMonth['left'] - 1);
|
|
843
|
+
const dateRight = new Date(currentYear['right'], currentMonth['right'] - 1);
|
|
844
|
+
this.handleSelectedChange([dateLeft, dateRight]);
|
|
1030
845
|
}
|
|
1031
846
|
}
|
|
1032
|
-
|
|
1033
847
|
handleConfirm() {
|
|
848
|
+
this.clickConfirmButton = true;
|
|
1034
849
|
const {
|
|
1035
850
|
cachedSelectedValue,
|
|
1036
851
|
value
|
|
1037
852
|
} = this._adapter.getStates();
|
|
1038
|
-
|
|
1039
853
|
const isRangeValueComplete = this._isRangeValueComplete(cachedSelectedValue);
|
|
1040
|
-
|
|
1041
854
|
const newValue = isRangeValueComplete ? cachedSelectedValue : value;
|
|
1042
|
-
|
|
1043
855
|
if (this._adapter.needConfirm() && !this._isControlledComponent()) {
|
|
1044
856
|
this._adapter.updateValue(newValue);
|
|
1045
|
-
}
|
|
1046
|
-
|
|
1047
|
-
|
|
857
|
+
}
|
|
858
|
+
// If the input is incomplete, the legal date of the last input is used
|
|
1048
859
|
this.closePanel(undefined, undefined, newValue);
|
|
1049
|
-
|
|
1050
860
|
if (isRangeValueComplete) {
|
|
1051
861
|
const {
|
|
1052
862
|
notifyValue,
|
|
1053
863
|
notifyDate
|
|
1054
864
|
} = this.disposeCallbackArgs(cachedSelectedValue);
|
|
1055
|
-
|
|
1056
865
|
this._adapter.notifyConfirm(notifyDate, notifyValue);
|
|
1057
866
|
}
|
|
1058
867
|
}
|
|
1059
|
-
|
|
1060
868
|
handleCancel() {
|
|
1061
869
|
this.closePanel();
|
|
1062
870
|
const value = this.getState('value');
|
|
@@ -1064,38 +872,34 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
1064
872
|
notifyValue,
|
|
1065
873
|
notifyDate
|
|
1066
874
|
} = this.disposeCallbackArgs(value);
|
|
1067
|
-
|
|
1068
875
|
this._adapter.notifyCancel(notifyDate, notifyValue);
|
|
1069
876
|
}
|
|
1070
|
-
|
|
1071
877
|
handlePresetClick(item, e) {
|
|
1072
878
|
const {
|
|
1073
879
|
type,
|
|
1074
880
|
timeZone
|
|
1075
881
|
} = this.getProps();
|
|
1076
882
|
const prevTimeZone = this.getState('prevTimezone');
|
|
883
|
+
const start = typeof item.start === 'function' ? item.start() : item.start;
|
|
884
|
+
const end = typeof item.end === 'function' ? item.end() : item.end;
|
|
1077
885
|
let value;
|
|
1078
|
-
|
|
1079
886
|
switch (type) {
|
|
1080
887
|
case 'month':
|
|
1081
888
|
case 'dateTime':
|
|
1082
889
|
case 'date':
|
|
1083
|
-
value = this.parseWithTimezone([
|
|
890
|
+
value = this.parseWithTimezone([start], timeZone, prevTimeZone);
|
|
1084
891
|
this.handleSelectedChange(value);
|
|
1085
892
|
break;
|
|
1086
|
-
|
|
1087
893
|
case 'dateTimeRange':
|
|
1088
894
|
case 'dateRange':
|
|
1089
|
-
value = this.parseWithTimezone([
|
|
895
|
+
value = this.parseWithTimezone([start, end], timeZone, prevTimeZone);
|
|
1090
896
|
this.handleSelectedChange(value, {
|
|
1091
897
|
needCheckFocusRecord: false
|
|
1092
898
|
});
|
|
1093
899
|
break;
|
|
1094
|
-
|
|
1095
900
|
default:
|
|
1096
901
|
break;
|
|
1097
902
|
}
|
|
1098
|
-
|
|
1099
903
|
this._adapter.notifyPresetsClick(item, e);
|
|
1100
904
|
}
|
|
1101
905
|
/**
|
|
@@ -1126,20 +930,15 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
1126
930
|
* @param {Date|Date[]} value
|
|
1127
931
|
* @return {{ notifyDate: Date|Date[], notifyValue: string|string[]}}
|
|
1128
932
|
*/
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
933
|
disposeCallbackArgs(value) {
|
|
1132
934
|
let _value = Array.isArray(value) ? value : value && [value] || [];
|
|
1133
|
-
|
|
1134
|
-
if (
|
|
1135
|
-
const timeZone = this.getProp('timeZone');
|
|
935
|
+
const timeZone = this.getProp('timeZone');
|
|
936
|
+
if (isValidTimeZone(timeZone)) {
|
|
1136
937
|
_value = _value.map(date => zonedTimeToUtc(date, timeZone));
|
|
1137
938
|
}
|
|
1138
|
-
|
|
1139
939
|
const type = this.getProp('type');
|
|
1140
940
|
const formatToken = this.getProp('format') || getDefaultFormatTokenByType(type);
|
|
1141
941
|
let notifyValue, notifyDate;
|
|
1142
|
-
|
|
1143
942
|
switch (type) {
|
|
1144
943
|
case 'date':
|
|
1145
944
|
case 'dateTime':
|
|
@@ -1151,19 +950,16 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
1151
950
|
notifyValue = _value.map(v => v && this.localeFormat(v, formatToken));
|
|
1152
951
|
notifyDate = [..._value];
|
|
1153
952
|
}
|
|
1154
|
-
|
|
1155
953
|
break;
|
|
1156
|
-
|
|
1157
954
|
case 'dateRange':
|
|
1158
955
|
case 'dateTimeRange':
|
|
956
|
+
case 'monthRange':
|
|
1159
957
|
notifyValue = _value.map(v => v && this.localeFormat(v, formatToken));
|
|
1160
958
|
notifyDate = [..._value];
|
|
1161
959
|
break;
|
|
1162
|
-
|
|
1163
960
|
default:
|
|
1164
961
|
break;
|
|
1165
962
|
}
|
|
1166
|
-
|
|
1167
963
|
return {
|
|
1168
964
|
notifyValue,
|
|
1169
965
|
notifyDate
|
|
@@ -1173,13 +969,10 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
1173
969
|
* Notice: Check whether the date is the same as the state value before calling
|
|
1174
970
|
* @param {Date[]} value
|
|
1175
971
|
*/
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
972
|
_notifyChange(value) {
|
|
1179
973
|
if (this._isRangeType() && !this._isRangeValueComplete(value)) {
|
|
1180
974
|
return;
|
|
1181
975
|
}
|
|
1182
|
-
|
|
1183
976
|
const {
|
|
1184
977
|
onChangeWithDateFirst
|
|
1185
978
|
} = this.getProps();
|
|
@@ -1187,7 +980,6 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
1187
980
|
notifyValue,
|
|
1188
981
|
notifyDate
|
|
1189
982
|
} = this.disposeCallbackArgs(value);
|
|
1190
|
-
|
|
1191
983
|
if (onChangeWithDateFirst) {
|
|
1192
984
|
this._adapter.notifyChange(notifyDate, notifyValue);
|
|
1193
985
|
} else {
|
|
@@ -1196,56 +988,42 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
1196
988
|
}
|
|
1197
989
|
/**
|
|
1198
990
|
* Get the date changed through the date panel or enter
|
|
1199
|
-
* @param {Date[]} dates
|
|
1200
|
-
* @returns {Date[]}
|
|
1201
991
|
*/
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
992
|
_getChangedDates(dates) {
|
|
1205
993
|
const type = this._adapter.getProp('type');
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
994
|
+
const {
|
|
995
|
+
cachedSelectedValue: lastDate
|
|
996
|
+
} = this._adapter.getStates();
|
|
1209
997
|
const changedDates = [];
|
|
1210
|
-
|
|
1211
998
|
switch (type) {
|
|
1212
999
|
case 'dateRange':
|
|
1213
1000
|
case 'dateTimeRange':
|
|
1214
|
-
const [
|
|
1001
|
+
const [lastStart, lastEnd] = lastDate;
|
|
1215
1002
|
const [start, end] = dates;
|
|
1216
|
-
|
|
1217
|
-
if (!isDateEqual(start, stateStart)) {
|
|
1003
|
+
if (!isDateEqual(start, lastStart)) {
|
|
1218
1004
|
changedDates.push(start);
|
|
1219
1005
|
}
|
|
1220
|
-
|
|
1221
|
-
if (!isDateEqual(end, stateEnd)) {
|
|
1006
|
+
if (!isDateEqual(end, lastEnd)) {
|
|
1222
1007
|
changedDates.push(end);
|
|
1223
1008
|
}
|
|
1224
|
-
|
|
1225
1009
|
break;
|
|
1226
|
-
|
|
1227
1010
|
default:
|
|
1228
|
-
const
|
|
1229
|
-
|
|
1230
|
-
|
|
1011
|
+
const lastValueSet = new Set();
|
|
1012
|
+
lastDate.forEach(value => lastValueSet.add(isDate(value) && value.valueOf()));
|
|
1231
1013
|
for (const date of dates) {
|
|
1232
|
-
if (!
|
|
1014
|
+
if (!lastValueSet.has(isDate(date) && date.valueOf())) {
|
|
1233
1015
|
changedDates.push(date);
|
|
1234
1016
|
}
|
|
1235
1017
|
}
|
|
1236
|
-
|
|
1237
1018
|
}
|
|
1238
|
-
|
|
1239
1019
|
return changedDates;
|
|
1240
1020
|
}
|
|
1241
1021
|
/**
|
|
1242
1022
|
* Whether a date is disabled
|
|
1243
|
-
* @param
|
|
1023
|
+
* @param value The date that needs to be judged whether to disable
|
|
1024
|
+
* @param selectedValue Selected date, when selecting a range, pass this date to the second parameter of `disabledDate`
|
|
1244
1025
|
*/
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
_someDateDisabled(value) {
|
|
1248
|
-
const stateValue = this.getState('value');
|
|
1026
|
+
_someDateDisabled(value, selectedValue) {
|
|
1249
1027
|
const {
|
|
1250
1028
|
rangeInputFocus
|
|
1251
1029
|
} = this.getStates();
|
|
@@ -1253,22 +1031,19 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
1253
1031
|
rangeStart: '',
|
|
1254
1032
|
rangeEnd: '',
|
|
1255
1033
|
rangeInputFocus
|
|
1256
|
-
};
|
|
1257
|
-
|
|
1258
|
-
if (this._isRangeType() && Array.isArray(
|
|
1259
|
-
if (isValid(
|
|
1260
|
-
const rangeStart = format(
|
|
1034
|
+
};
|
|
1035
|
+
// DisabledDate needs to pass the second parameter
|
|
1036
|
+
if (this._isRangeType() && Array.isArray(selectedValue)) {
|
|
1037
|
+
if (isValid(selectedValue[0])) {
|
|
1038
|
+
const rangeStart = format(selectedValue[0], 'yyyy-MM-dd');
|
|
1261
1039
|
disabledOptions.rangeStart = rangeStart;
|
|
1262
1040
|
}
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
const rangeEnd = format(stateValue[1], 'yyyy-MM-dd');
|
|
1041
|
+
if (isValid(selectedValue[1])) {
|
|
1042
|
+
const rangeEnd = format(selectedValue[1], 'yyyy-MM-dd');
|
|
1266
1043
|
disabledOptions.rangeEnd = rangeEnd;
|
|
1267
1044
|
}
|
|
1268
1045
|
}
|
|
1269
|
-
|
|
1270
1046
|
let isSomeDateDisabled = false;
|
|
1271
|
-
|
|
1272
1047
|
for (const date of value) {
|
|
1273
1048
|
// skip check if date is null
|
|
1274
1049
|
if (!isNullOrUndefined(date) && this.disabledDisposeDate(date, disabledOptions)) {
|
|
@@ -1276,7 +1051,6 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
1276
1051
|
break;
|
|
1277
1052
|
}
|
|
1278
1053
|
}
|
|
1279
|
-
|
|
1280
1054
|
return isSomeDateDisabled;
|
|
1281
1055
|
}
|
|
1282
1056
|
/**
|
|
@@ -1285,11 +1059,8 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
1285
1059
|
* @param {Date} date
|
|
1286
1060
|
* @param {String} token
|
|
1287
1061
|
*/
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
1062
|
localeFormat(date, token) {
|
|
1291
1063
|
const dateFnsLocale = this._adapter.getProp('dateFnsLocale');
|
|
1292
|
-
|
|
1293
1064
|
return format(date, token, {
|
|
1294
1065
|
locale: dateFnsLocale
|
|
1295
1066
|
});
|
|
@@ -1303,8 +1074,6 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
1303
1074
|
* @param {Date|Date[]} date
|
|
1304
1075
|
* @returns {Boolean}
|
|
1305
1076
|
*/
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
1077
|
disposeDateFn(fn, date) {
|
|
1309
1078
|
const {
|
|
1310
1079
|
notifyDate
|
|
@@ -1312,17 +1081,14 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
1312
1081
|
const dateIsArray = Array.isArray(date);
|
|
1313
1082
|
const notifyDateIsArray = Array.isArray(notifyDate);
|
|
1314
1083
|
let disposeDate;
|
|
1315
|
-
|
|
1316
1084
|
if (dateIsArray === notifyDateIsArray) {
|
|
1317
1085
|
disposeDate = notifyDate;
|
|
1318
1086
|
} else {
|
|
1319
1087
|
disposeDate = dateIsArray ? [notifyDate] : notifyDate[0];
|
|
1320
1088
|
}
|
|
1321
|
-
|
|
1322
1089
|
for (var _len = arguments.length, rest = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
|
1323
1090
|
rest[_key - 2] = arguments[_key];
|
|
1324
1091
|
}
|
|
1325
|
-
|
|
1326
1092
|
return fn(disposeDate, ...rest);
|
|
1327
1093
|
}
|
|
1328
1094
|
/**
|
|
@@ -1331,17 +1097,13 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
1331
1097
|
* @param {Date} date
|
|
1332
1098
|
* @returns {Boolean}
|
|
1333
1099
|
*/
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
1100
|
disabledDisposeDate(date) {
|
|
1337
1101
|
const {
|
|
1338
1102
|
disabledDate
|
|
1339
1103
|
} = this.getProps();
|
|
1340
|
-
|
|
1341
1104
|
for (var _len2 = arguments.length, rest = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
1342
1105
|
rest[_key2 - 1] = arguments[_key2];
|
|
1343
1106
|
}
|
|
1344
|
-
|
|
1345
1107
|
return this.disposeDateFn(disabledDate, date, ...rest);
|
|
1346
1108
|
}
|
|
1347
1109
|
/**
|
|
@@ -1350,17 +1112,13 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
1350
1112
|
* @param {Date|Date[]} date
|
|
1351
1113
|
* @returns {Object}
|
|
1352
1114
|
*/
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
1115
|
disabledDisposeTime(date) {
|
|
1356
1116
|
const {
|
|
1357
1117
|
disabledTime
|
|
1358
1118
|
} = this.getProps();
|
|
1359
|
-
|
|
1360
1119
|
for (var _len3 = arguments.length, rest = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
|
|
1361
1120
|
rest[_key3 - 1] = arguments[_key3];
|
|
1362
1121
|
}
|
|
1363
|
-
|
|
1364
1122
|
return this.disposeDateFn(disabledTime, date, ...rest);
|
|
1365
1123
|
}
|
|
1366
1124
|
/**
|
|
@@ -1371,18 +1129,14 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
1371
1129
|
* @param {Event} e
|
|
1372
1130
|
* @returns
|
|
1373
1131
|
*/
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
1132
|
handleTriggerWrapperClick(e) {
|
|
1377
1133
|
const {
|
|
1378
1134
|
disabled,
|
|
1379
1135
|
triggerRender
|
|
1380
1136
|
} = this._adapter.getProps();
|
|
1381
|
-
|
|
1382
1137
|
const {
|
|
1383
1138
|
rangeInputFocus
|
|
1384
1139
|
} = this._adapter.getStates();
|
|
1385
|
-
|
|
1386
1140
|
if (disabled) {
|
|
1387
1141
|
return;
|
|
1388
1142
|
}
|
|
@@ -1393,8 +1147,6 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
1393
1147
|
* - When type is not range type, Input component will automatically focus in the same case
|
|
1394
1148
|
* - isEventTarget is used to judge whether the event is a bubbling event
|
|
1395
1149
|
*/
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
1150
|
if (this._isRangeType() && !rangeInputFocus) {
|
|
1399
1151
|
if (this._adapter.isEventTarget(e)) {
|
|
1400
1152
|
setTimeout(() => {
|
|
@@ -1406,13 +1158,11 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
1406
1158
|
// If it is a triggerRender scene, because there is no input, the default focus is rangeStart when the panel is opened
|
|
1407
1159
|
this._adapter.setRangeInputFocus('rangeStart');
|
|
1408
1160
|
}
|
|
1409
|
-
|
|
1410
1161
|
this.openPanel();
|
|
1411
1162
|
} else {
|
|
1412
1163
|
this.openPanel();
|
|
1413
1164
|
}
|
|
1414
1165
|
}
|
|
1415
|
-
|
|
1416
1166
|
handlePanelVisibleChange(visible) {
|
|
1417
1167
|
if (visible) {
|
|
1418
1168
|
this._adapter.setInsetInputFocus();
|
|
@@ -1420,8 +1170,6 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
1420
1170
|
* After the panel is closed, the trigger input is disabled
|
|
1421
1171
|
* 面板关闭后,trigger input 禁用
|
|
1422
1172
|
*/
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
1173
|
setTimeout(() => {
|
|
1426
1174
|
this._adapter.setTriggerDisabled(true);
|
|
1427
1175
|
}, 0);
|
|
@@ -1429,5 +1177,4 @@ export default class DatePickerFoundation extends BaseFoundation {
|
|
|
1429
1177
|
this._adapter.setTriggerDisabled(false);
|
|
1430
1178
|
}
|
|
1431
1179
|
}
|
|
1432
|
-
|
|
1433
1180
|
}
|