@douyinfe/semi-foundation 2.36.0-beta.0 → 2.36.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/calendar/foundation.ts +2 -1
- package/lib/cjs/anchor/constants.js +0 -2
- package/lib/cjs/anchor/foundation.js +10 -73
- package/lib/cjs/anchor/linkFoundation.js +4 -16
- package/lib/cjs/autoComplete/constants.js +0 -3
- package/lib/cjs/autoComplete/foundation.d.ts +1 -1
- package/lib/cjs/autoComplete/foundation.js +25 -139
- package/lib/cjs/autoComplete/optionFoundation.js +4 -14
- package/lib/cjs/avatar/constants.js +0 -2
- package/lib/cjs/avatar/foundation.js +0 -17
- package/lib/cjs/backtop/constants.js +0 -2
- package/lib/cjs/backtop/foundation.d.ts +2 -2
- package/lib/cjs/backtop/foundation.js +0 -21
- package/lib/cjs/badge/constants.js +0 -2
- package/lib/cjs/banner/constants.js +0 -2
- package/lib/cjs/banner/foundation.js +0 -7
- package/lib/cjs/base/constants.js +2 -4
- package/lib/cjs/base/foundation.d.ts +1 -1
- package/lib/cjs/base/foundation.js +12 -46
- package/lib/cjs/base/index.js +0 -3
- package/lib/cjs/breadcrumb/constants.js +0 -2
- package/lib/cjs/breadcrumb/foundation.js +1 -12
- package/lib/cjs/breadcrumb/itemFoundation.js +0 -7
- package/lib/cjs/button/constants.js +0 -2
- package/lib/cjs/calendar/constants.js +0 -2
- package/lib/cjs/calendar/eventUtil.d.ts +1 -1
- package/lib/cjs/calendar/eventUtil.js +2 -74
- package/lib/cjs/calendar/foundation.d.ts +2 -2
- package/lib/cjs/calendar/foundation.js +28 -123
- package/lib/cjs/card/constants.js +0 -2
- package/lib/cjs/carousel/constants.js +0 -2
- package/lib/cjs/carousel/foundation.js +2 -52
- package/lib/cjs/cascader/constants.js +0 -3
- package/lib/cjs/cascader/foundation.d.ts +4 -4
- package/lib/cjs/cascader/foundation.js +28 -242
- package/lib/cjs/cascader/util.js +6 -24
- package/lib/cjs/checkbox/checkboxFoundation.js +2 -38
- package/lib/cjs/checkbox/checkboxGroupFoundation.js +2 -23
- package/lib/cjs/checkbox/constants.js +0 -2
- package/lib/cjs/collapse/constants.js +0 -2
- package/lib/cjs/collapse/foundation.d.ts +1 -1
- package/lib/cjs/collapse/foundation.js +2 -13
- package/lib/cjs/collapsible/constants.js +0 -2
- 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.js +0 -5
- 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 +0 -5
- package/lib/cjs/datePicker/_utils/getInsetInputValueFromInsetInputStr.js +0 -6
- package/lib/cjs/datePicker/_utils/getMonthTable.d.ts +1 -1
- package/lib/cjs/datePicker/_utils/getMonthTable.js +3 -14
- package/lib/cjs/datePicker/_utils/getMonthsInYear.js +0 -2
- package/lib/cjs/datePicker/_utils/getYears.js +0 -4
- 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.js +0 -1
- package/lib/cjs/datePicker/_utils/isWithinInterval.js +0 -4
- package/lib/cjs/datePicker/_utils/parser.js +0 -10
- package/lib/cjs/datePicker/constants.js +0 -3
- package/lib/cjs/datePicker/foundation.d.ts +24 -24
- package/lib/cjs/datePicker/foundation.js +22 -333
- package/lib/cjs/datePicker/inputFoundation.d.ts +3 -3
- package/lib/cjs/datePicker/inputFoundation.js +5 -86
- package/lib/cjs/datePicker/monthFoundation.d.ts +1 -1
- package/lib/cjs/datePicker/monthFoundation.js +3 -28
- package/lib/cjs/datePicker/monthsGridFoundation.d.ts +3 -3
- package/lib/cjs/datePicker/monthsGridFoundation.js +43 -238
- package/lib/cjs/datePicker/yearAndMonthFoundation.d.ts +1 -1
- package/lib/cjs/datePicker/yearAndMonthFoundation.js +12 -38
- package/lib/cjs/descriptions/constants.js +0 -2
- package/lib/cjs/divider/constants.js +0 -2
- package/lib/cjs/dropdown/constants.js +0 -3
- package/lib/cjs/dropdown/foundation.js +4 -23
- package/lib/cjs/dropdown/menuFoundation.js +8 -27
- package/lib/cjs/empty/constants.js +0 -2
- package/lib/cjs/form/constants.js +0 -2
- package/lib/cjs/form/foundation.js +75 -206
- package/lib/cjs/form/interface.d.ts +5 -5
- package/lib/cjs/form/utils.js +47 -77
- package/lib/cjs/grid/constants.js +0 -2
- package/lib/cjs/highlight/constants.js +0 -2
- package/lib/cjs/icons/constants.js +0 -2
- package/lib/cjs/image/constants.js +0 -2
- package/lib/cjs/image/imageFoundation.js +4 -18
- package/lib/cjs/image/previewFooterFoundation.js +0 -13
- package/lib/cjs/image/previewFoundation.js +0 -11
- package/lib/cjs/image/previewImageFoundation.js +6 -80
- package/lib/cjs/image/previewInnerFoundation.js +12 -77
- package/lib/cjs/image/utils.js +0 -14
- package/lib/cjs/input/constants.js +0 -2
- package/lib/cjs/input/foundation.js +17 -101
- package/lib/cjs/input/textareaFoundation.js +20 -85
- package/lib/cjs/input/util/calculateNodeHeight.js +6 -18
- package/lib/cjs/input/util/getSizingData.js +7 -11
- package/lib/cjs/inputNumber/constants.js +0 -2
- package/lib/cjs/inputNumber/foundation.js +29 -192
- package/lib/cjs/layout/constants.js +0 -2
- package/lib/cjs/list/constants.js +0 -2
- package/lib/cjs/modal/constants.js +0 -2
- package/lib/cjs/modal/modalContentFoundation.js +0 -20
- package/lib/cjs/modal/modalFoundation.d.ts +2 -2
- package/lib/cjs/modal/modalFoundation.js +2 -22
- package/lib/cjs/navigation/NavItem.js +0 -10
- package/lib/cjs/navigation/constants.js +0 -3
- package/lib/cjs/navigation/foundation.js +3 -67
- package/lib/cjs/navigation/itemFoundation.js +3 -21
- package/lib/cjs/navigation/subNavFoundation.js +4 -40
- package/lib/cjs/notification/constants.js +0 -3
- package/lib/cjs/notification/notificationFoundation.d.ts +3 -3
- package/lib/cjs/notification/notificationFoundation.js +0 -16
- package/lib/cjs/notification/notificationListFoundation.js +7 -17
- package/lib/cjs/overflowList/constants.js +0 -2
- package/lib/cjs/overflowList/foundation.js +11 -41
- package/lib/cjs/pagination/constants.js +0 -2
- package/lib/cjs/pagination/foundation.d.ts +3 -3
- package/lib/cjs/pagination/foundation.js +21 -90
- package/lib/cjs/popconfirm/constants.js +0 -2
- package/lib/cjs/popconfirm/popconfirmFoundation.js +1 -21
- package/lib/cjs/popover/constants.js +0 -3
- package/lib/cjs/progress/constants.js +0 -2
- package/lib/cjs/progress/generates.d.ts +2 -2
- package/lib/cjs/progress/generates.js +19 -60
- package/lib/cjs/radio/constants.js +0 -2
- package/lib/cjs/radio/radioFoundation.js +0 -14
- package/lib/cjs/radio/radioGroupFoundation.js +4 -23
- package/lib/cjs/radio/radioInnerFoundation.js +2 -19
- package/lib/cjs/rating/constants.js +0 -2
- package/lib/cjs/rating/foundation.js +11 -61
- package/lib/cjs/scrollList/constants.js +0 -2
- 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 +0 -3
- package/lib/cjs/select/foundation.d.ts +2 -2
- package/lib/cjs/select/foundation.js +122 -425
- package/lib/cjs/select/optionFoundation.js +4 -14
- package/lib/cjs/sideSheet/constants.js +0 -2
- package/lib/cjs/sideSheet/sideSheetFoundation.js +0 -18
- package/lib/cjs/skeleton/constants.js +0 -2
- package/lib/cjs/slider/constants.js +0 -2
- package/lib/cjs/slider/foundation.d.ts +1 -1
- package/lib/cjs/slider/foundation.js +25 -204
- package/lib/cjs/space/constants.js +0 -2
- package/lib/cjs/spin/constants.js +0 -2
- package/lib/cjs/spin/foundation.js +3 -13
- package/lib/cjs/steps/constants.js +0 -2
- package/lib/cjs/switch/constants.js +0 -2
- package/lib/cjs/switch/foundation.js +2 -18
- package/lib/cjs/table/bodyFoundation.js +2 -34
- package/lib/cjs/table/cellFoundation.js +0 -5
- package/lib/cjs/table/constants.js +7 -8
- package/lib/cjs/table/foundation.d.ts +17 -14
- package/lib/cjs/table/foundation.js +71 -302
- package/lib/cjs/table/tableRowFoundation.js +0 -11
- package/lib/cjs/table/tableSelectionCellFoundation.js +0 -6
- package/lib/cjs/table/utils.d.ts +2 -2
- package/lib/cjs/table/utils.js +5 -118
- package/lib/cjs/tabs/constants.js +0 -2
- package/lib/cjs/tabs/foundation.js +2 -40
- package/lib/cjs/tag/constants.js +1 -2
- package/lib/cjs/tagInput/constants.js +0 -2
- package/lib/cjs/tagInput/foundation.d.ts +4 -4
- package/lib/cjs/tagInput/foundation.js +4 -94
- package/lib/cjs/tagInput/utils/getSplitedArray.js +0 -11
- package/lib/cjs/timePicker/ComboxFoundation.js +4 -39
- package/lib/cjs/timePicker/constants.js +0 -3
- package/lib/cjs/timePicker/foundation.d.ts +1 -1
- package/lib/cjs/timePicker/foundation.js +3 -97
- package/lib/cjs/timePicker/inputFoundation.js +6 -25
- package/lib/cjs/timePicker/utils/index.js +6 -45
- package/lib/cjs/timePicker/utils/localeDate.js +0 -10
- package/lib/cjs/timeline/constants.js +0 -2
- package/lib/cjs/toast/constants.js +0 -3
- package/lib/cjs/toast/toastFoundation.d.ts +3 -3
- package/lib/cjs/toast/toastFoundation.js +0 -14
- package/lib/cjs/toast/toastListFoundation.js +4 -22
- package/lib/cjs/tooltip/constants.js +0 -2
- package/lib/cjs/tooltip/foundation.d.ts +1 -1
- package/lib/cjs/tooltip/foundation.js +63 -291
- package/lib/cjs/transfer/constants.js +0 -2
- package/lib/cjs/transfer/foundation.d.ts +1 -1
- package/lib/cjs/transfer/foundation.js +4 -68
- package/lib/cjs/transfer/transferUtils.js +5 -27
- package/lib/cjs/tree/constants.js +0 -2
- package/lib/cjs/tree/foundation.d.ts +3 -3
- package/lib/cjs/tree/foundation.js +34 -150
- package/lib/cjs/tree/treeUtil.js +54 -173
- package/lib/cjs/treeSelect/constants.js +0 -2
- package/lib/cjs/treeSelect/foundation.d.ts +7 -7
- package/lib/cjs/treeSelect/foundation.js +18 -192
- package/lib/cjs/typography/constants.js +0 -2
- package/lib/cjs/typography/formatNumeral.d.ts +3 -3
- package/lib/cjs/typography/formatNumeral.js +16 -32
- package/lib/cjs/upload/constants.js +0 -2
- package/lib/cjs/upload/foundation.d.ts +5 -5
- package/lib/cjs/upload/foundation.js +36 -245
- package/lib/cjs/upload/utils.js +10 -29
- package/lib/cjs/utils/Event.js +2 -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 +1 -1
- package/lib/cjs/utils/array.js +0 -7
- package/lib/cjs/utils/arrayMove.js +0 -1
- package/lib/cjs/utils/classnames.js +0 -12
- package/lib/cjs/utils/date-fns-extra.js +0 -35
- package/lib/cjs/utils/dom.d.ts +1 -1
- package/lib/cjs/utils/dom.js +0 -13
- package/lib/cjs/utils/function.js +0 -1
- package/lib/cjs/utils/getDataAttr.js +0 -2
- package/lib/cjs/utils/getHighlight.js +5 -26
- package/lib/cjs/utils/getMotionObjFromProps.js +0 -12
- 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 +12 -34
- package/lib/cjs/utils/set.js +0 -8
- package/lib/cjs/utils/shallowEqualObjects.js +0 -7
- package/lib/cjs/utils/touchPolyfill.js +0 -7
- package/lib/cjs/utils/type.d.ts +3 -3
- package/lib/cjs/utils/uuid.js +2 -9
- package/lib/cjs/utils/warning.js +0 -1
- package/lib/es/anchor/foundation.js +10 -66
- package/lib/es/anchor/linkFoundation.js +4 -12
- package/lib/es/autoComplete/foundation.d.ts +1 -1
- package/lib/es/autoComplete/foundation.js +24 -132
- package/lib/es/autoComplete/optionFoundation.js +4 -10
- package/lib/es/avatar/foundation.js +0 -12
- package/lib/es/backtop/foundation.d.ts +2 -2
- package/lib/es/backtop/foundation.js +0 -16
- package/lib/es/banner/foundation.js +0 -3
- package/lib/es/base/constants.js +2 -2
- package/lib/es/base/foundation.d.ts +1 -1
- package/lib/es/base/foundation.js +11 -44
- package/lib/es/breadcrumb/foundation.js +0 -7
- package/lib/es/breadcrumb/itemFoundation.js +0 -3
- package/lib/es/calendar/eventUtil.d.ts +1 -1
- package/lib/es/calendar/eventUtil.js +2 -36
- package/lib/es/calendar/foundation.d.ts +2 -2
- package/lib/es/calendar/foundation.js +28 -117
- package/lib/es/carousel/foundation.js +2 -47
- package/lib/es/cascader/constants.js +0 -1
- package/lib/es/cascader/foundation.d.ts +4 -4
- package/lib/es/cascader/foundation.js +30 -226
- package/lib/es/cascader/util.js +6 -15
- package/lib/es/checkbox/checkboxFoundation.js +2 -34
- package/lib/es/checkbox/checkboxGroupFoundation.js +2 -20
- package/lib/es/collapse/foundation.d.ts +1 -1
- package/lib/es/collapse/foundation.js +2 -9
- 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.js +0 -2
- 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 +0 -4
- package/lib/es/datePicker/_utils/getInsetInputValueFromInsetInputStr.js +0 -5
- package/lib/es/datePicker/_utils/getMonthTable.d.ts +1 -1
- package/lib/es/datePicker/_utils/getMonthTable.js +4 -14
- package/lib/es/datePicker/_utils/getMonthsInYear.js +0 -1
- package/lib/es/datePicker/_utils/getYears.js +0 -3
- package/lib/es/datePicker/_utils/isBetween.js +0 -1
- package/lib/es/datePicker/_utils/parser.js +0 -8
- package/lib/es/datePicker/foundation.d.ts +24 -24
- package/lib/es/datePicker/foundation.js +22 -318
- package/lib/es/datePicker/inputFoundation.d.ts +3 -3
- package/lib/es/datePicker/inputFoundation.js +5 -74
- package/lib/es/datePicker/monthFoundation.d.ts +1 -1
- package/lib/es/datePicker/monthFoundation.js +4 -22
- package/lib/es/datePicker/monthsGridFoundation.d.ts +3 -3
- package/lib/es/datePicker/monthsGridFoundation.js +42 -222
- package/lib/es/datePicker/yearAndMonthFoundation.d.ts +1 -1
- package/lib/es/datePicker/yearAndMonthFoundation.js +12 -36
- package/lib/es/dropdown/foundation.js +4 -18
- package/lib/es/dropdown/menuFoundation.js +8 -22
- package/lib/es/form/foundation.js +74 -195
- package/lib/es/form/interface.d.ts +5 -5
- package/lib/es/form/utils.js +47 -70
- package/lib/es/image/imageFoundation.js +4 -13
- package/lib/es/image/previewFooterFoundation.js +0 -9
- package/lib/es/image/previewFoundation.js +0 -7
- package/lib/es/image/previewImageFoundation.js +6 -72
- package/lib/es/image/previewInnerFoundation.js +12 -70
- package/lib/es/image/utils.js +0 -6
- package/lib/es/input/foundation.js +17 -93
- package/lib/es/input/textareaFoundation.js +20 -75
- package/lib/es/input/util/calculateNodeHeight.js +6 -18
- package/lib/es/input/util/getSizingData.js +7 -11
- package/lib/es/inputNumber/foundation.js +28 -183
- package/lib/es/modal/modalContentFoundation.js +0 -15
- package/lib/es/modal/modalFoundation.d.ts +2 -2
- package/lib/es/modal/modalFoundation.js +2 -17
- package/lib/es/navigation/NavItem.js +0 -6
- package/lib/es/navigation/constants.js +1 -1
- package/lib/es/navigation/foundation.js +2 -60
- package/lib/es/navigation/itemFoundation.js +3 -18
- package/lib/es/navigation/subNavFoundation.js +4 -36
- package/lib/es/notification/constants.js +1 -1
- package/lib/es/notification/notificationFoundation.d.ts +3 -3
- package/lib/es/notification/notificationFoundation.js +0 -11
- package/lib/es/notification/notificationListFoundation.js +6 -13
- package/lib/es/overflowList/foundation.js +11 -37
- package/lib/es/pagination/foundation.d.ts +3 -3
- package/lib/es/pagination/foundation.js +20 -87
- package/lib/es/popconfirm/popconfirmFoundation.js +1 -16
- package/lib/es/progress/generates.d.ts +2 -2
- package/lib/es/progress/generates.js +19 -59
- package/lib/es/radio/radioFoundation.js +0 -9
- package/lib/es/radio/radioGroupFoundation.js +4 -19
- package/lib/es/radio/radioInnerFoundation.js +2 -15
- package/lib/es/rating/foundation.js +10 -54
- package/lib/es/scrollList/itemFoundation.js +8 -60
- package/lib/es/scrollList/scrollTo.js +2 -4
- package/lib/es/select/foundation.d.ts +2 -2
- package/lib/es/select/foundation.js +122 -411
- package/lib/es/select/optionFoundation.js +4 -10
- package/lib/es/sideSheet/sideSheetFoundation.js +0 -12
- package/lib/es/slider/foundation.d.ts +1 -1
- package/lib/es/slider/foundation.js +24 -197
- package/lib/es/spin/foundation.js +3 -11
- package/lib/es/switch/foundation.js +2 -13
- package/lib/es/table/bodyFoundation.js +2 -25
- package/lib/es/table/cellFoundation.js +0 -1
- package/lib/es/table/constants.js +6 -6
- package/lib/es/table/foundation.d.ts +17 -14
- package/lib/es/table/foundation.js +71 -309
- package/lib/es/table/tableRowFoundation.js +2 -9
- package/lib/es/table/tableSelectionCellFoundation.js +0 -2
- package/lib/es/table/utils.d.ts +2 -2
- package/lib/es/table/utils.js +5 -81
- package/lib/es/tabs/foundation.js +2 -35
- package/lib/es/tagInput/foundation.d.ts +4 -4
- package/lib/es/tagInput/foundation.js +4 -84
- package/lib/es/tagInput/utils/getSplitedArray.js +0 -7
- package/lib/es/timePicker/ComboxFoundation.js +4 -30
- package/lib/es/timePicker/foundation.d.ts +1 -1
- package/lib/es/timePicker/foundation.js +4 -90
- package/lib/es/timePicker/inputFoundation.js +6 -22
- package/lib/es/timePicker/utils/index.js +6 -25
- package/lib/es/timePicker/utils/localeDate.js +0 -8
- package/lib/es/toast/constants.js +1 -1
- package/lib/es/toast/toastFoundation.d.ts +3 -3
- package/lib/es/toast/toastFoundation.js +0 -9
- package/lib/es/toast/toastListFoundation.js +4 -18
- package/lib/es/tooltip/foundation.d.ts +1 -1
- package/lib/es/tooltip/foundation.js +63 -288
- package/lib/es/transfer/foundation.d.ts +1 -1
- package/lib/es/transfer/foundation.js +6 -62
- package/lib/es/transfer/transferUtils.js +5 -21
- package/lib/es/tree/foundation.d.ts +3 -3
- package/lib/es/tree/foundation.js +34 -143
- package/lib/es/tree/treeUtil.js +54 -139
- package/lib/es/treeSelect/foundation.d.ts +7 -7
- package/lib/es/treeSelect/foundation.js +20 -179
- package/lib/es/typography/formatNumeral.d.ts +3 -3
- package/lib/es/typography/formatNumeral.js +16 -29
- package/lib/es/upload/foundation.d.ts +5 -5
- package/lib/es/upload/foundation.js +36 -238
- package/lib/es/upload/utils.js +10 -24
- package/lib/es/utils/Event.js +2 -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 +1 -1
- package/lib/es/utils/array.js +0 -5
- package/lib/es/utils/classnames.js +0 -10
- package/lib/es/utils/date-fns-extra.js +0 -27
- package/lib/es/utils/dom.d.ts +1 -1
- package/lib/es/utils/dom.js +0 -9
- package/lib/es/utils/getDataAttr.js +0 -1
- package/lib/es/utils/getHighlight.js +5 -26
- package/lib/es/utils/getMotionObjFromProps.js +0 -8
- 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 +12 -28
- package/lib/es/utils/set.js +0 -5
- package/lib/es/utils/shallowEqualObjects.js +0 -6
- package/lib/es/utils/touchPolyfill.js +0 -5
- package/lib/es/utils/type.d.ts +3 -3
- package/lib/es/utils/uuid.js +2 -8
- package/package.json +2 -2
- package/table/foundation.ts +7 -10
- package/upload/foundation.ts +8 -8
|
@@ -3,12 +3,15 @@ import _cloneDeep from "lodash/cloneDeep";
|
|
|
3
3
|
import _pick from "lodash/pick";
|
|
4
4
|
import _difference from "lodash/difference";
|
|
5
5
|
import _isUndefined from "lodash/isUndefined";
|
|
6
|
+
/**
|
|
7
|
+
* The drag and drop handler implementation is referenced from rc-tree
|
|
8
|
+
* https://github.com/react-component/tree
|
|
9
|
+
*/
|
|
6
10
|
import BaseFoundation from '../base/foundation';
|
|
7
11
|
import { flattenTreeData, findDescendantKeys, findAncestorKeys, filter, normalizedArr, normalizeKeyList, getMotionKeys, calcCheckedKeysForChecked, calcCheckedKeysForUnchecked, calcCheckedKeys, getValueOrKey, getDragNodesKeys, calcDropRelativePosition, calcDropActualPosition } from './treeUtil';
|
|
8
12
|
export default class TreeFoundation extends BaseFoundation {
|
|
9
13
|
constructor(adapter) {
|
|
10
14
|
super(Object.assign({}, adapter));
|
|
11
|
-
|
|
12
15
|
this.clearDragState = () => {
|
|
13
16
|
this._adapter.updateState({
|
|
14
17
|
dragOverNodeKey: '',
|
|
@@ -16,33 +19,26 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
16
19
|
});
|
|
17
20
|
};
|
|
18
21
|
}
|
|
19
|
-
|
|
20
22
|
_isMultiple() {
|
|
21
23
|
return this.getProp('multiple');
|
|
22
24
|
}
|
|
23
|
-
|
|
24
25
|
_isAnimated() {
|
|
25
26
|
return this.getProp('motion');
|
|
26
27
|
}
|
|
27
|
-
|
|
28
28
|
_isDisabled() {
|
|
29
29
|
let treeNode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
30
30
|
return this.getProp('disabled') || treeNode.disabled;
|
|
31
31
|
}
|
|
32
|
-
|
|
33
32
|
_isExpandControlled() {
|
|
34
33
|
return !_isUndefined(this.getProp('expandedKeys'));
|
|
35
34
|
}
|
|
36
|
-
|
|
37
35
|
_isLoadControlled() {
|
|
38
36
|
return !_isUndefined(this.getProp('loadedKeys'));
|
|
39
37
|
}
|
|
40
|
-
|
|
41
38
|
_isFilterable() {
|
|
42
39
|
// filter can be boolean or function
|
|
43
40
|
return Boolean(this.getProp('filterTreeNode'));
|
|
44
41
|
}
|
|
45
|
-
|
|
46
42
|
_showFilteredOnly() {
|
|
47
43
|
const {
|
|
48
44
|
inputValue
|
|
@@ -52,7 +48,6 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
52
48
|
} = this.getProps();
|
|
53
49
|
return Boolean(inputValue) && showFilteredOnly;
|
|
54
50
|
}
|
|
55
|
-
|
|
56
51
|
getCopyFromState(items) {
|
|
57
52
|
const res = {};
|
|
58
53
|
normalizedArr(items).forEach(key => {
|
|
@@ -60,7 +55,6 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
60
55
|
});
|
|
61
56
|
return res;
|
|
62
57
|
}
|
|
63
|
-
|
|
64
58
|
getTreeNodeProps(key) {
|
|
65
59
|
const {
|
|
66
60
|
expandedKeys = new Set([]),
|
|
@@ -82,15 +76,12 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
82
76
|
} = this.getProps();
|
|
83
77
|
const entity = keyEntities[key];
|
|
84
78
|
const notExist = !entity;
|
|
85
|
-
|
|
86
79
|
if (notExist) {
|
|
87
80
|
return null;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
|
|
81
|
+
}
|
|
82
|
+
// if checkRelation is invalid, the checked status of node will be false
|
|
91
83
|
let realChecked = false;
|
|
92
84
|
let realHalfChecked = false;
|
|
93
|
-
|
|
94
85
|
if (checkRelation === 'related') {
|
|
95
86
|
realChecked = checkedKeys.has(key);
|
|
96
87
|
realHalfChecked = halfCheckedKeys.has(key);
|
|
@@ -98,7 +89,6 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
98
89
|
realChecked = realCheckedKeys.has(key);
|
|
99
90
|
realHalfChecked = false;
|
|
100
91
|
}
|
|
101
|
-
|
|
102
92
|
const isSearching = Boolean(inputValue);
|
|
103
93
|
const treeNodeProps = {
|
|
104
94
|
eventKey: key,
|
|
@@ -114,23 +104,17 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
114
104
|
keyword: inputValue,
|
|
115
105
|
treeNodeFilterProp
|
|
116
106
|
};
|
|
117
|
-
|
|
118
107
|
if (this.getProp('disableStrictly') && disabledKeys.has(key)) {
|
|
119
108
|
treeNodeProps.disabled = true;
|
|
120
109
|
}
|
|
121
|
-
|
|
122
110
|
return treeNodeProps;
|
|
123
111
|
}
|
|
124
|
-
|
|
125
112
|
notifyJsonChange(key, e) {
|
|
126
113
|
const data = this.getProp('treeDataSimpleJson');
|
|
127
114
|
const selectedPath = normalizedArr(key).map(i => i.replace('-', '.'));
|
|
128
|
-
|
|
129
115
|
const value = _pick(data, selectedPath);
|
|
130
|
-
|
|
131
116
|
this._adapter.notifyChange(value);
|
|
132
117
|
}
|
|
133
|
-
|
|
134
118
|
notifyMultipleChange(key, e) {
|
|
135
119
|
const {
|
|
136
120
|
keyEntities
|
|
@@ -141,54 +125,43 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
141
125
|
} = this.getProps();
|
|
142
126
|
let value;
|
|
143
127
|
let keyList = [];
|
|
144
|
-
|
|
145
128
|
if (checkRelation === 'related') {
|
|
146
129
|
keyList = normalizeKeyList(key, keyEntities, leafOnly);
|
|
147
130
|
} else if (checkRelation === 'unRelated') {
|
|
148
131
|
keyList = key;
|
|
149
132
|
}
|
|
150
|
-
|
|
151
133
|
if (this.getProp('onChangeWithObject')) {
|
|
152
134
|
value = keyList.map(itemKey => keyEntities[itemKey].data);
|
|
153
135
|
} else {
|
|
154
136
|
value = getValueOrKey(keyList.map(itemKey => keyEntities[itemKey].data));
|
|
155
137
|
}
|
|
156
|
-
|
|
157
138
|
this._adapter.notifyChange(value);
|
|
158
139
|
}
|
|
159
|
-
|
|
160
140
|
notifyChange(key, e) {
|
|
161
141
|
const isMultiple = this._isMultiple();
|
|
162
|
-
|
|
163
142
|
const {
|
|
164
143
|
keyEntities
|
|
165
144
|
} = this.getStates();
|
|
166
|
-
|
|
167
145
|
if (this.getProp('treeDataSimpleJson')) {
|
|
168
146
|
this.notifyJsonChange(key, e);
|
|
169
147
|
} else if (isMultiple) {
|
|
170
148
|
this.notifyMultipleChange(key, e);
|
|
171
149
|
} else {
|
|
172
150
|
let value;
|
|
173
|
-
|
|
174
151
|
if (this.getProp('onChangeWithObject')) {
|
|
175
152
|
value = _get(keyEntities, key).data;
|
|
176
153
|
} else {
|
|
177
154
|
const {
|
|
178
155
|
data
|
|
179
156
|
} = _get(keyEntities, key);
|
|
180
|
-
|
|
181
157
|
value = getValueOrKey(data);
|
|
182
158
|
}
|
|
183
|
-
|
|
184
159
|
this._adapter.notifyChange(value);
|
|
185
160
|
}
|
|
186
161
|
}
|
|
187
|
-
|
|
188
162
|
handleInputChange(sugInput) {
|
|
189
163
|
// Input is a controlled component, so the value value needs to be updated
|
|
190
164
|
this._adapter.updateInputValue(sugInput);
|
|
191
|
-
|
|
192
165
|
const {
|
|
193
166
|
expandedKeys,
|
|
194
167
|
selectedKeys,
|
|
@@ -204,7 +177,6 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
204
177
|
let expandedOptsKeys = [];
|
|
205
178
|
let flattenNodes = [];
|
|
206
179
|
let filteredShownKeys = new Set([]);
|
|
207
|
-
|
|
208
180
|
if (!sugInput) {
|
|
209
181
|
expandedOptsKeys = findAncestorKeys(selectedKeys, keyEntities);
|
|
210
182
|
expandedOptsKeys.forEach(item => expandedKeys.add(item));
|
|
@@ -216,9 +188,7 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
216
188
|
filteredShownKeys = new Set([...shownChildKeys, ...expandedOptsKeys]);
|
|
217
189
|
flattenNodes = flattenTreeData(treeData, new Set(expandedOptsKeys), showFilteredOnly && filteredShownKeys);
|
|
218
190
|
}
|
|
219
|
-
|
|
220
191
|
this._adapter.notifySearch(sugInput);
|
|
221
|
-
|
|
222
192
|
this._adapter.updateState({
|
|
223
193
|
expandedKeys,
|
|
224
194
|
flattenNodes,
|
|
@@ -228,29 +198,23 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
228
198
|
filteredShownKeys
|
|
229
199
|
});
|
|
230
200
|
}
|
|
231
|
-
|
|
232
201
|
handleNodeSelect(e, treeNode) {
|
|
233
202
|
const isDisabled = this._isDisabled(treeNode);
|
|
234
|
-
|
|
235
203
|
if (isDisabled) {
|
|
236
204
|
return;
|
|
237
205
|
}
|
|
238
|
-
|
|
239
206
|
if (!this._isMultiple()) {
|
|
240
207
|
this.handleSingleSelect(e, treeNode);
|
|
241
208
|
} else {
|
|
242
209
|
this.handleMultipleSelect(e, treeNode);
|
|
243
210
|
}
|
|
244
211
|
}
|
|
245
|
-
|
|
246
212
|
handleNodeRightClick(e, treeNode) {
|
|
247
213
|
this._adapter.notifyRightClick(e, treeNode.data);
|
|
248
214
|
}
|
|
249
|
-
|
|
250
215
|
handleNodeDoubleClick(e, treeNode) {
|
|
251
216
|
this._adapter.notifyDoubleClick(e, treeNode.data);
|
|
252
217
|
}
|
|
253
|
-
|
|
254
218
|
handleSingleSelect(e, treeNode) {
|
|
255
219
|
let {
|
|
256
220
|
selectedKeys
|
|
@@ -261,17 +225,13 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
261
225
|
data
|
|
262
226
|
} = treeNode;
|
|
263
227
|
const targetSelected = !selected;
|
|
264
|
-
|
|
265
228
|
this._adapter.notifySelect(eventKey, true, data);
|
|
266
|
-
|
|
267
229
|
if (!targetSelected) {
|
|
268
230
|
return;
|
|
269
231
|
}
|
|
270
|
-
|
|
271
232
|
if (!selectedKeys.includes(eventKey)) {
|
|
272
233
|
selectedKeys = [eventKey];
|
|
273
234
|
this.notifyChange(eventKey, e);
|
|
274
|
-
|
|
275
235
|
if (!this._isControlledComponent()) {
|
|
276
236
|
this._adapter.updateState({
|
|
277
237
|
selectedKeys
|
|
@@ -279,7 +239,6 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
279
239
|
}
|
|
280
240
|
}
|
|
281
241
|
}
|
|
282
|
-
|
|
283
242
|
calcCheckedKeys(eventKey, targetStatus) {
|
|
284
243
|
const {
|
|
285
244
|
keyEntities
|
|
@@ -293,28 +252,24 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
293
252
|
/*
|
|
294
253
|
* Compute the checked state of the node
|
|
295
254
|
*/
|
|
296
|
-
|
|
297
|
-
|
|
298
255
|
calcCheckedStatus(targetStatus, eventKey) {
|
|
299
256
|
// From checked to unchecked, you can change it directly
|
|
300
257
|
if (!targetStatus) {
|
|
301
258
|
return targetStatus;
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
|
|
259
|
+
}
|
|
260
|
+
// Starting from unchecked, you need to judge according to the descendant nodes
|
|
305
261
|
const {
|
|
306
262
|
checkedKeys,
|
|
307
263
|
keyEntities,
|
|
308
264
|
disabledKeys
|
|
309
265
|
} = this.getStates();
|
|
310
266
|
const descendantKeys = normalizeKeyList(findDescendantKeys([eventKey], keyEntities, false), keyEntities, true);
|
|
311
|
-
const hasDisabled = descendantKeys.some(key => disabledKeys.has(key));
|
|
312
|
-
|
|
267
|
+
const hasDisabled = descendantKeys.some(key => disabledKeys.has(key));
|
|
268
|
+
// If the descendant nodes are not disabled, they will be directly changed to checked
|
|
313
269
|
if (!hasDisabled) {
|
|
314
270
|
return targetStatus;
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
|
|
271
|
+
}
|
|
272
|
+
// If all descendant nodes that are not disabled are selected, return unchecked, otherwise, return checked
|
|
318
273
|
const nonDisabledKeys = descendantKeys.filter(key => !disabledKeys.has(key));
|
|
319
274
|
const allChecked = nonDisabledKeys.every(key => checkedKeys.has(key));
|
|
320
275
|
return !allChecked;
|
|
@@ -322,8 +277,6 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
322
277
|
/*
|
|
323
278
|
* In strict disable mode, calculate the nodes of checked and halfCheckedKeys and return their corresponding keys
|
|
324
279
|
*/
|
|
325
|
-
|
|
326
|
-
|
|
327
280
|
calcNonDisabledCheckedKeys(eventKey, targetStatus) {
|
|
328
281
|
const {
|
|
329
282
|
keyEntities,
|
|
@@ -333,12 +286,11 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
333
286
|
checkedKeys
|
|
334
287
|
} = this.getCopyFromState(['checkedKeys']);
|
|
335
288
|
const descendantKeys = normalizeKeyList(findDescendantKeys([eventKey], keyEntities, false), keyEntities, true);
|
|
336
|
-
const hasDisabled = descendantKeys.some(key => disabledKeys.has(key));
|
|
337
|
-
|
|
289
|
+
const hasDisabled = descendantKeys.some(key => disabledKeys.has(key));
|
|
290
|
+
// If none of the descendant nodes are disabled, follow the normal logic
|
|
338
291
|
if (!hasDisabled) {
|
|
339
292
|
return this.calcCheckedKeys(eventKey, targetStatus);
|
|
340
293
|
}
|
|
341
|
-
|
|
342
294
|
const nonDisabled = descendantKeys.filter(key => !disabledKeys.has(key));
|
|
343
295
|
const newCheckedKeys = targetStatus ? [...nonDisabled, ...checkedKeys] : _difference(normalizeKeyList([...checkedKeys], keyEntities, true), nonDisabled);
|
|
344
296
|
return calcCheckedKeys(newCheckedKeys, keyEntities);
|
|
@@ -346,8 +298,6 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
346
298
|
/*
|
|
347
299
|
* Handle the selection event in the case of multiple selection
|
|
348
300
|
*/
|
|
349
|
-
|
|
350
|
-
|
|
351
301
|
handleMultipleSelect(e, treeNode) {
|
|
352
302
|
const {
|
|
353
303
|
disableStrictly,
|
|
@@ -355,14 +305,13 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
355
305
|
} = this.getProps();
|
|
356
306
|
const {
|
|
357
307
|
realCheckedKeys
|
|
358
|
-
} = this.getStates();
|
|
359
|
-
|
|
308
|
+
} = this.getStates();
|
|
309
|
+
// eventKey: The key value of the currently clicked node
|
|
360
310
|
const {
|
|
361
311
|
checked,
|
|
362
312
|
eventKey,
|
|
363
313
|
data
|
|
364
314
|
} = treeNode;
|
|
365
|
-
|
|
366
315
|
if (checkRelation === 'related') {
|
|
367
316
|
// Find the checked state of the current node
|
|
368
317
|
const targetStatus = disableStrictly ? this.calcCheckedStatus(!checked, eventKey) : !checked;
|
|
@@ -370,11 +319,8 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
370
319
|
checkedKeys,
|
|
371
320
|
halfCheckedKeys
|
|
372
321
|
} = disableStrictly ? this.calcNonDisabledCheckedKeys(eventKey, targetStatus) : this.calcCheckedKeys(eventKey, targetStatus);
|
|
373
|
-
|
|
374
322
|
this._adapter.notifySelect(eventKey, targetStatus, data);
|
|
375
|
-
|
|
376
323
|
this.notifyChange([...checkedKeys], e);
|
|
377
|
-
|
|
378
324
|
if (!this._isControlledComponent()) {
|
|
379
325
|
this._adapter.updateState({
|
|
380
326
|
checkedKeys,
|
|
@@ -384,7 +330,6 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
384
330
|
} else if (checkRelation === 'unRelated') {
|
|
385
331
|
const newRealCheckedKeys = new Set(realCheckedKeys);
|
|
386
332
|
let targetStatus;
|
|
387
|
-
|
|
388
333
|
if (realCheckedKeys.has(eventKey)) {
|
|
389
334
|
newRealCheckedKeys.delete(eventKey);
|
|
390
335
|
targetStatus = false;
|
|
@@ -392,11 +337,8 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
392
337
|
newRealCheckedKeys.add(eventKey);
|
|
393
338
|
targetStatus = true;
|
|
394
339
|
}
|
|
395
|
-
|
|
396
340
|
this._adapter.notifySelect(eventKey, targetStatus, data);
|
|
397
|
-
|
|
398
341
|
this.notifyChange([...newRealCheckedKeys], e);
|
|
399
|
-
|
|
400
342
|
if (!this._isControlledComponent()) {
|
|
401
343
|
this._adapter.updateState({
|
|
402
344
|
realCheckedKeys: newRealCheckedKeys
|
|
@@ -404,7 +346,6 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
404
346
|
}
|
|
405
347
|
}
|
|
406
348
|
}
|
|
407
|
-
|
|
408
349
|
setExpandedStatus(treeNode) {
|
|
409
350
|
const {
|
|
410
351
|
inputValue,
|
|
@@ -413,9 +354,7 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
413
354
|
keyEntities
|
|
414
355
|
} = this.getStates();
|
|
415
356
|
const isSearching = Boolean(inputValue);
|
|
416
|
-
|
|
417
357
|
const showFilteredOnly = this._showFilteredOnly();
|
|
418
|
-
|
|
419
358
|
const expandedStateKey = isSearching ? 'filteredExpandedKeys' : 'expandedKeys';
|
|
420
359
|
const expandedKeys = this.getCopyFromState(expandedStateKey)[expandedStateKey];
|
|
421
360
|
let motionType = 'show';
|
|
@@ -424,16 +363,13 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
424
363
|
expanded,
|
|
425
364
|
data
|
|
426
365
|
} = treeNode;
|
|
427
|
-
|
|
428
366
|
if (!expanded) {
|
|
429
367
|
expandedKeys.add(eventKey);
|
|
430
368
|
} else if (expandedKeys.has(eventKey)) {
|
|
431
369
|
expandedKeys.delete(eventKey);
|
|
432
370
|
motionType = 'hide';
|
|
433
371
|
}
|
|
434
|
-
|
|
435
372
|
this._adapter.cacheFlattenNodes(motionType === 'hide' && this._isAnimated());
|
|
436
|
-
|
|
437
373
|
if (!this._isExpandControlled()) {
|
|
438
374
|
const flattenNodes = flattenTreeData(treeData, expandedKeys, isSearching && showFilteredOnly && filteredShownKeys);
|
|
439
375
|
const motionKeys = this._isAnimated() ? getMotionKeys(eventKey, expandedKeys, keyEntities) : [];
|
|
@@ -443,39 +379,32 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
443
379
|
motionKeys: new Set(motionKeys),
|
|
444
380
|
motionType
|
|
445
381
|
};
|
|
446
|
-
|
|
447
382
|
this._adapter.updateState(newState);
|
|
448
383
|
}
|
|
449
|
-
|
|
450
384
|
return {
|
|
451
385
|
expandedKeys,
|
|
452
386
|
expanded: !expanded,
|
|
453
387
|
data
|
|
454
388
|
};
|
|
455
389
|
}
|
|
456
|
-
|
|
457
390
|
handleNodeExpand(e, treeNode) {
|
|
458
391
|
const {
|
|
459
392
|
loadData
|
|
460
393
|
} = this.getProps();
|
|
461
|
-
|
|
462
394
|
if (!loadData && (!treeNode.children || !treeNode.children.length)) {
|
|
463
395
|
return;
|
|
464
396
|
}
|
|
465
|
-
|
|
466
397
|
const {
|
|
467
398
|
expandedKeys,
|
|
468
399
|
data,
|
|
469
400
|
expanded
|
|
470
401
|
} = this.setExpandedStatus(treeNode);
|
|
471
|
-
|
|
472
402
|
this._adapter.notifyExpand(expandedKeys, {
|
|
473
403
|
expanded,
|
|
474
404
|
node: data
|
|
475
405
|
});
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
|
|
406
|
+
}
|
|
407
|
+
// eslint-disable-next-line max-len
|
|
479
408
|
handleNodeLoad(loadedKeys, loadingKeys, data, resolve) {
|
|
480
409
|
const {
|
|
481
410
|
loadData,
|
|
@@ -484,12 +413,10 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
484
413
|
const {
|
|
485
414
|
key
|
|
486
415
|
} = data;
|
|
487
|
-
|
|
488
416
|
if (!loadData || loadedKeys.has(key) || loadingKeys.has(key)) {
|
|
489
417
|
return {};
|
|
490
|
-
}
|
|
491
|
-
|
|
492
|
-
|
|
418
|
+
}
|
|
419
|
+
// Process the loaded data
|
|
493
420
|
loadData(data).then(() => {
|
|
494
421
|
const {
|
|
495
422
|
loadedKeys: prevLoadedKeys,
|
|
@@ -497,32 +424,27 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
497
424
|
} = this.getCopyFromState(['loadedKeys', 'loadingKeys']);
|
|
498
425
|
const newLoadedKeys = prevLoadedKeys.add(key);
|
|
499
426
|
const newLoadingKeys = new Set([...prevLoadingKeys]);
|
|
500
|
-
newLoadingKeys.delete(key);
|
|
501
|
-
|
|
427
|
+
newLoadingKeys.delete(key);
|
|
428
|
+
// onLoad should be triggered before internal setState to avoid `loadData` being triggered twice
|
|
502
429
|
onLoad && onLoad(newLoadedKeys, data);
|
|
503
|
-
|
|
504
430
|
if (!this._isLoadControlled()) {
|
|
505
431
|
this._adapter.updateState({
|
|
506
432
|
loadedKeys: newLoadedKeys
|
|
507
433
|
});
|
|
508
434
|
}
|
|
509
|
-
|
|
510
435
|
this._adapter.setState({
|
|
511
436
|
loadingKeys: newLoadingKeys
|
|
512
437
|
});
|
|
513
|
-
|
|
514
438
|
resolve();
|
|
515
439
|
});
|
|
516
440
|
return {
|
|
517
441
|
loadingKeys: loadingKeys.add(key)
|
|
518
442
|
};
|
|
519
|
-
}
|
|
520
|
-
|
|
521
|
-
|
|
443
|
+
}
|
|
444
|
+
// Drag and drop related processing logic
|
|
522
445
|
getDragEventNodeData(node) {
|
|
523
446
|
return Object.assign(Object.assign({}, node.data), _pick(node, ['expanded', 'pos', 'children']));
|
|
524
447
|
}
|
|
525
|
-
|
|
526
448
|
triggerDragEvent(name, event, node) {
|
|
527
449
|
let extra = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
528
450
|
const callEvent = this.getProp(name);
|
|
@@ -531,7 +453,6 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
531
453
|
node: this.getDragEventNodeData(node)
|
|
532
454
|
}, extra));
|
|
533
455
|
}
|
|
534
|
-
|
|
535
456
|
handleNodeDragStart(e, treeNode) {
|
|
536
457
|
const {
|
|
537
458
|
keyEntities
|
|
@@ -545,31 +466,24 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
545
466
|
nodeInstance,
|
|
546
467
|
data
|
|
547
468
|
} = treeNode;
|
|
548
|
-
|
|
549
469
|
if (hideDraggingNode || renderDraggingNode) {
|
|
550
470
|
let dragImg;
|
|
551
|
-
|
|
552
471
|
if (typeof renderDraggingNode === 'function') {
|
|
553
472
|
dragImg = renderDraggingNode(nodeInstance, data);
|
|
554
473
|
} else if (hideDraggingNode) {
|
|
555
474
|
dragImg = nodeInstance.cloneNode(true);
|
|
556
475
|
dragImg.style.opacity = 0;
|
|
557
476
|
}
|
|
558
|
-
|
|
559
477
|
document.body.appendChild(dragImg);
|
|
560
478
|
e.dataTransfer.setDragImage(dragImg, 0, 0);
|
|
561
479
|
}
|
|
562
|
-
|
|
563
480
|
this._adapter.setDragNode(treeNode);
|
|
564
|
-
|
|
565
481
|
this._adapter.updateState({
|
|
566
482
|
dragging: true,
|
|
567
483
|
dragNodesKeys: new Set(getDragNodesKeys(eventKey, keyEntities))
|
|
568
484
|
});
|
|
569
|
-
|
|
570
485
|
this.triggerDragEvent('onDragStart', e, treeNode);
|
|
571
486
|
}
|
|
572
|
-
|
|
573
487
|
handleNodeDragEnter(e, treeNode, dragNode) {
|
|
574
488
|
const {
|
|
575
489
|
dragging,
|
|
@@ -583,40 +497,33 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
583
497
|
eventKey,
|
|
584
498
|
expanded
|
|
585
499
|
} = treeNode;
|
|
586
|
-
|
|
587
500
|
if (!dragNode || dragNodesKeys.has(eventKey)) {
|
|
588
501
|
return;
|
|
589
502
|
}
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
503
|
+
const dropPosition = calcDropRelativePosition(e, treeNode);
|
|
504
|
+
// If the drag node is itself, skip
|
|
593
505
|
if (dragNode.eventKey === eventKey && dropPosition === 0) {
|
|
594
506
|
this._adapter.updateState({
|
|
595
507
|
dragOverNodeKey: '',
|
|
596
508
|
dropPosition: null
|
|
597
509
|
});
|
|
598
|
-
|
|
599
510
|
return;
|
|
600
|
-
}
|
|
601
|
-
|
|
602
|
-
|
|
511
|
+
}
|
|
512
|
+
// Trigger dragenter after clearing the prev state in dragleave
|
|
603
513
|
setTimeout(() => {
|
|
604
514
|
this._adapter.updateState({
|
|
605
515
|
dragOverNodeKey: eventKey,
|
|
606
516
|
dropPosition
|
|
607
|
-
});
|
|
608
|
-
|
|
609
|
-
|
|
517
|
+
});
|
|
518
|
+
// If autoExpand is already expanded or not allowed, trigger the event and return
|
|
610
519
|
if (!autoExpandWhenDragEnter || expanded) {
|
|
611
520
|
this.triggerDragEvent('onDragEnter', e, treeNode);
|
|
612
521
|
return;
|
|
613
|
-
}
|
|
614
|
-
|
|
615
|
-
|
|
522
|
+
}
|
|
523
|
+
// Side effects of delayed drag
|
|
616
524
|
if (!this.delayedDragEnterLogic) {
|
|
617
525
|
this.delayedDragEnterLogic = {};
|
|
618
526
|
}
|
|
619
|
-
|
|
620
527
|
Object.keys(this.delayedDragEnterLogic).forEach(key => {
|
|
621
528
|
clearTimeout(this.delayedDragEnterLogic[key]);
|
|
622
529
|
});
|
|
@@ -624,7 +531,6 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
624
531
|
if (!dragging) {
|
|
625
532
|
return;
|
|
626
533
|
}
|
|
627
|
-
|
|
628
534
|
const {
|
|
629
535
|
expandedKeys: newExpandedKeys
|
|
630
536
|
} = this.setExpandedStatus(treeNode);
|
|
@@ -634,7 +540,6 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
634
540
|
}, 400);
|
|
635
541
|
}, 0);
|
|
636
542
|
}
|
|
637
|
-
|
|
638
543
|
handleNodeDragOver(e, treeNode, dragNode) {
|
|
639
544
|
const {
|
|
640
545
|
dropPosition,
|
|
@@ -644,42 +549,32 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
644
549
|
const {
|
|
645
550
|
eventKey
|
|
646
551
|
} = treeNode;
|
|
647
|
-
|
|
648
552
|
if (dragNodesKeys.has(eventKey)) {
|
|
649
553
|
return;
|
|
650
|
-
}
|
|
651
|
-
|
|
652
|
-
|
|
554
|
+
}
|
|
555
|
+
// Update the drag position
|
|
653
556
|
if (dragNode && eventKey === dragOverNodeKey) {
|
|
654
557
|
const newPos = calcDropRelativePosition(e, treeNode);
|
|
655
|
-
|
|
656
558
|
if (dropPosition === newPos) {
|
|
657
559
|
return;
|
|
658
560
|
}
|
|
659
|
-
|
|
660
561
|
this._adapter.updateState({
|
|
661
562
|
dropPosition: newPos
|
|
662
563
|
});
|
|
663
564
|
}
|
|
664
|
-
|
|
665
565
|
this.triggerDragEvent('onDragOver', e, treeNode);
|
|
666
566
|
}
|
|
667
|
-
|
|
668
567
|
handleNodeDragLeave(e, treeNode) {
|
|
669
568
|
this._adapter.updateState({
|
|
670
569
|
dragOverNodeKey: ''
|
|
671
570
|
});
|
|
672
|
-
|
|
673
571
|
this.triggerDragEvent('onDragLeave', e, treeNode);
|
|
674
572
|
}
|
|
675
|
-
|
|
676
573
|
handleNodeDragEnd(e, treeNode) {
|
|
677
574
|
this.clearDragState();
|
|
678
575
|
this.triggerDragEvent('onDragEnd', e, treeNode);
|
|
679
|
-
|
|
680
576
|
this._adapter.setDragNode(null);
|
|
681
577
|
}
|
|
682
|
-
|
|
683
578
|
handleNodeDrop(e, treeNode, dragNode) {
|
|
684
579
|
const {
|
|
685
580
|
dropPosition,
|
|
@@ -690,11 +585,9 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
690
585
|
pos
|
|
691
586
|
} = treeNode;
|
|
692
587
|
this.clearDragState();
|
|
693
|
-
|
|
694
588
|
if (dragNodesKeys.has(eventKey)) {
|
|
695
589
|
return;
|
|
696
590
|
}
|
|
697
|
-
|
|
698
591
|
const dropRes = {
|
|
699
592
|
dragNode: dragNode ? this.getDragEventNodeData(dragNode) : null,
|
|
700
593
|
dragNodesKeys: [...dragNodesKeys],
|
|
@@ -702,8 +595,6 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
702
595
|
dropToGap: dropPosition !== 0
|
|
703
596
|
};
|
|
704
597
|
this.triggerDragEvent('onDrop', e, treeNode, dropRes);
|
|
705
|
-
|
|
706
598
|
this._adapter.setDragNode(null);
|
|
707
599
|
}
|
|
708
|
-
|
|
709
600
|
}
|