@kdcloudjs/kdesign 1.6.34 → 1.6.36
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/CHANGELOG.md +23 -0
- package/dist/kdesign-complete.less +16 -2
- package/dist/kdesign.css +18 -2
- package/dist/kdesign.css.map +1 -1
- package/dist/kdesign.js +9174 -11871
- package/dist/kdesign.js.map +1 -1
- package/dist/kdesign.min.css +3 -3
- package/dist/kdesign.min.js +18 -18
- package/dist/kdesign.min.js.map +1 -1
- package/es/_utils/KeyCode.js +6 -119
- package/es/_utils/arrayUtil.js +0 -5
- package/es/_utils/devwarning.js +0 -1
- package/es/_utils/formatUtil.js +36 -99
- package/es/_utils/getStringLength.js +0 -2
- package/es/_utils/hooks.js +32 -72
- package/es/_utils/index.js +0 -2
- package/es/_utils/numberUtil.js +32 -55
- package/es/_utils/omit.js +0 -2
- package/es/_utils/raf.js +0 -6
- package/es/_utils/resizeObserver.js +2 -17
- package/es/_utils/testBrowserType.js +0 -2
- package/es/_utils/type.js +0 -2
- package/es/_utils/usePopper.js +84 -167
- package/es/alert/alert.js +20 -50
- package/es/anchor/anchor-link.js +12 -23
- package/es/anchor/anchor.js +69 -168
- package/es/avatar/avatar.js +29 -44
- package/es/badge/badge.js +33 -53
- package/es/base-data/base-data.js +89 -197
- package/es/button/button.js +30 -55
- package/es/button/group.js +27 -39
- package/es/card/card.js +19 -23
- package/es/carousel/carousel.js +31 -65
- package/es/carousel/displayList.js +2 -5
- package/es/carousel/fadeList.js +4 -7
- package/es/carousel/slideList.js +1 -7
- package/es/carousel/slidebar.js +5 -12
- package/es/cascader/cascader.js +56 -116
- package/es/cascader/util.js +10 -58
- package/es/checkbox/checkbox.js +22 -47
- package/es/checkbox/group.js +19 -35
- package/es/checkbox/style/index.css +2 -0
- package/es/checkbox/style/index.less +1 -0
- package/es/city-picker/city-group.js +5 -13
- package/es/city-picker/city-list.js +4 -9
- package/es/city-picker/city-panel-item.js +3 -8
- package/es/city-picker/city-panel.js +25 -50
- package/es/city-picker/city-picker.js +22 -46
- package/es/city-picker/city-search-panel.js +6 -13
- package/es/city-picker/no-data.js +3 -6
- package/es/city-picker/utils/grouping.js +0 -4
- package/es/collapse/collapse.js +17 -40
- package/es/collapse/panel.js +21 -44
- package/es/config-provider/SizeContext.js +1 -1
- package/es/config-provider/compDefaultProps.js +0 -1
- package/es/config-provider/configProvider.js +2 -7
- package/es/config-provider/defaultConfig.js +0 -1
- package/es/date-picker/calendar.js +12 -21
- package/es/date-picker/date-panel.js +22 -66
- package/es/date-picker/date-picker.js +145 -186
- package/es/date-picker/hooks/use-hover-value.js +5 -13
- package/es/date-picker/hooks/use-picker-input.js +17 -31
- package/es/date-picker/hooks/use-range-cls.js +8 -14
- package/es/date-picker/hooks/use-range-disabled.js +7 -21
- package/es/date-picker/hooks/use-range-view-dates.js +18 -39
- package/es/date-picker/hooks/use-state-memo.js +0 -2
- package/es/date-picker/hooks/use-text-value-mapping.js +6 -11
- package/es/date-picker/hooks/use-value-texts.js +0 -1
- package/es/date-picker/panel/date-time/date-time.js +7 -10
- package/es/date-picker/panel/header/header.js +9 -11
- package/es/date-picker/panel/month/month.js +11 -30
- package/es/date-picker/panel/quarter/quarter.js +8 -25
- package/es/date-picker/panel/time/time-column.js +8 -18
- package/es/date-picker/panel/time/time.js +62 -88
- package/es/date-picker/panel/week/week.js +25 -57
- package/es/date-picker/panel/year/year.js +19 -42
- package/es/date-picker/popper.js +28 -35
- package/es/date-picker/range/input-range.js +95 -129
- package/es/date-picker/range-picker.d.ts +1 -0
- package/es/date-picker/range-picker.js +197 -287
- package/es/date-picker/single/input-date.js +87 -111
- package/es/date-picker/utils/date-fns.js +32 -63
- package/es/date-picker/utils/get-extra-footer.js +0 -1
- package/es/date-picker/utils/get-ranges.js +13 -19
- package/es/date-picker/utils/index.js +9 -80
- package/es/drawer/drawer.js +50 -71
- package/es/dropdown/dropdown.js +26 -42
- package/es/dropdown/menu.d.ts +3 -2
- package/es/dropdown/menu.js +32 -43
- package/es/empty/defaultEmptyImg.js +2 -5
- package/es/empty/empty.js +15 -26
- package/es/empty/illustrationEmptyImg.js +2 -5
- package/es/filter/condition.js +5 -17
- package/es/filter/filter.js +29 -54
- package/es/filter/scheme.js +35 -71
- package/es/form/Field.js +36 -98
- package/es/form/FieldContext.js +0 -2
- package/es/form/FieldLabel.js +11 -17
- package/es/form/FieldWrapper.js +6 -9
- package/es/form/Form.js +28 -46
- package/es/form/FormContext.js +0 -4
- package/es/form/hooks/useForceUpdate.js +2 -5
- package/es/form/hooks/useForm.js +10 -84
- package/es/grid/col.js +23 -39
- package/es/grid/row.js +22 -36
- package/es/icon/icon.js +11 -29
- package/es/image/image.js +31 -49
- package/es/image/preview-group.js +25 -41
- package/es/image/preview.js +24 -39
- package/es/image-cropper/cropper.js +13 -23
- package/es/image-cropper/image-cropper.js +39 -69
- package/es/image-cropper/operation-bar.js +14 -27
- package/es/image-cropper/style/index.css +12 -1
- package/es/image-cropper/style/index.less +11 -2
- package/es/index.js +0 -2
- package/es/input/ClearableLabeledInput.js +27 -50
- package/es/input/TextArea.js +45 -86
- package/es/input/calculateNodeHeight.js +4 -16
- package/es/input/index.js +2 -2
- package/es/input/input.js +32 -67
- package/es/input-number/inputNumber.js +50 -109
- package/es/layout/layout.js +28 -49
- package/es/layout/sider.js +39 -73
- package/es/link/link.js +19 -33
- package/es/locale/locale.js +6 -44
- package/es/locale/zh-CN.js +0 -2
- package/es/menu/menu.js +29 -63
- package/es/menu/menuItem.js +27 -52
- package/es/menu/subMenu.js +44 -99
- package/es/menu/util.js +4 -13
- package/es/message/content.js +7 -23
- package/es/message/index.js +14 -26
- package/es/modal/confirm.js +3 -12
- package/es/modal/index.js +0 -4
- package/es/modal/modal.js +41 -63
- package/es/notification/content.js +13 -35
- package/es/notification/index.js +20 -35
- package/es/notification-base/index.js +4 -24
- package/es/notification-base/notice.js +12 -24
- package/es/notification-base/notification.js +3 -18
- package/es/pagination/pagination.js +76 -113
- package/es/popconfirm/popconfirm.js +22 -33
- package/es/progress/circle.js +9 -18
- package/es/progress/line.js +5 -9
- package/es/progress/progress.js +21 -44
- package/es/progress/utils.js +6 -22
- package/es/radio/group.js +19 -35
- package/es/radio/radio-button.js +6 -19
- package/es/radio/radio.js +19 -46
- package/es/rate/rate.js +30 -67
- package/es/search/option.js +10 -17
- package/es/search/quick-search.js +68 -155
- package/es/search/search-panel.js +28 -49
- package/es/search/search.js +23 -43
- package/es/select/interface.js +0 -1
- package/es/select/option.js +13 -25
- package/es/select/select.js +115 -222
- package/es/select/style/index.css +3 -0
- package/es/select/style/index.less +4 -0
- package/es/slider/marks.js +9 -15
- package/es/slider/slider.js +60 -104
- package/es/slider/sliderTooltip.js +9 -17
- package/es/slider/steps.js +8 -19
- package/es/slider/track.js +5 -8
- package/es/slider/utils.js +4 -14
- package/es/space/space.js +16 -34
- package/es/spin/spin.js +16 -32
- package/es/split-panel/split-panel.js +57 -83
- package/es/split-panel/trigger.js +8 -17
- package/es/stepper/stepper.js +27 -57
- package/es/steps/Step.js +18 -34
- package/es/steps/Steps.js +19 -38
- package/es/switch/switch.js +25 -43
- package/es/table/api.js +3 -37
- package/es/table/feature/autoRowSpan.js +0 -2
- package/es/table/feature/colGroupExtendable.js +0 -2
- package/es/table/feature/columnDrag.js +0 -2
- package/es/table/feature/columnResize.js +0 -2
- package/es/table/feature/contextMenu.js +0 -2
- package/es/table/feature/filter.js +0 -2
- package/es/table/feature/mergeCellHover.js +0 -2
- package/es/table/feature/rowDetail.js +0 -2
- package/es/table/feature/rowSelection.js +11 -21
- package/es/table/feature/sort.js +0 -2
- package/es/table/feature/treeMode.js +0 -2
- package/es/table/feature/useFooterDataSource.js +0 -2
- package/es/table/feature/useRangeSelection.js +0 -2
- package/es/table/table.js +36 -46
- package/es/tabs/active-line.js +6 -8
- package/es/tabs/arrow-button.js +5 -10
- package/es/tabs/index.js +2 -2
- package/es/tabs/tab-pane.js +7 -23
- package/es/tabs/tabs.js +42 -104
- package/es/tag/tag.js +34 -56
- package/es/timeline/Timeline.js +16 -33
- package/es/timeline/TimelineItem.js +15 -26
- package/es/tooltip/tooltip.js +7 -11
- package/es/transfer/list-body.js +12 -31
- package/es/transfer/list-item.js +10 -18
- package/es/transfer/list.js +35 -68
- package/es/transfer/operation.js +12 -14
- package/es/transfer/search.js +5 -11
- package/es/transfer/transfer.js +51 -100
- package/es/tree/tree.js +95 -156
- package/es/tree/treeHooks.js +18 -34
- package/es/tree/treeNode.js +57 -96
- package/es/tree/utils/treeUtils.js +22 -150
- package/es/typography/base.js +16 -33
- package/es/typography/index.js +2 -2
- package/es/typography/paragraph.js +0 -2
- package/es/typography/text.js +0 -2
- package/es/typography/title.js +3 -14
- package/es/typography/typography.js +14 -24
- package/es/upload/dragger.js +3 -12
- package/es/upload/request.js +6 -26
- package/es/upload/scan-files.js +2 -13
- package/es/upload/upload.js +63 -131
- package/es/upload/utils.js +0 -2
- package/es/upload/verify-file.js +0 -6
- package/es/view-container/view-container.js +7 -9
- package/es/virtual-list/Filler.js +3 -7
- package/es/virtual-list/utils/algorithmUtil.js +0 -13
- package/es/virtual-list/utils/itemUtil.js +18 -47
- package/es/virtual-list/virtual-list.js +64 -137
- package/lib/_utils/KeyCode.js +6 -120
- package/lib/_utils/arrayUtil.js +0 -9
- package/lib/_utils/devwarning.js +0 -5
- package/lib/_utils/formatUtil.js +36 -103
- package/lib/_utils/getStringLength.js +0 -3
- package/lib/_utils/hooks.js +32 -90
- package/lib/_utils/index.js +0 -6
- package/lib/_utils/numberUtil.js +32 -64
- package/lib/_utils/omit.js +0 -5
- package/lib/_utils/raf.js +0 -7
- package/lib/_utils/react-children.js +0 -5
- package/lib/_utils/reactNode.js +0 -9
- package/lib/_utils/resizeObserver.js +2 -25
- package/lib/_utils/testBrowserType.js +0 -3
- package/lib/_utils/type.js +0 -6
- package/lib/_utils/usePopper.js +84 -190
- package/lib/alert/alert.js +20 -74
- package/lib/alert/index.js +0 -3
- package/lib/alert/style/css.js +0 -1
- package/lib/alert/style/index.js +0 -1
- package/lib/anchor/anchor-link.js +12 -35
- package/lib/anchor/anchor.js +69 -204
- package/lib/anchor/context.js +0 -7
- package/lib/anchor/index.js +0 -4
- package/lib/anchor/style/css.js +0 -1
- package/lib/anchor/style/index.js +0 -1
- package/lib/avatar/avatar.js +29 -70
- package/lib/avatar/index.js +0 -9
- package/lib/avatar/style/css.js +0 -1
- package/lib/avatar/style/index.js +0 -1
- package/lib/badge/badge.js +33 -70
- package/lib/badge/index.js +0 -9
- package/lib/badge/style/css.js +0 -1
- package/lib/badge/style/index.js +0 -1
- package/lib/base-data/base-data.js +89 -218
- package/lib/base-data/index.js +0 -9
- package/lib/base-data/interface.js +0 -2
- package/lib/base-data/style/css.js +0 -1
- package/lib/base-data/style/index.js +0 -1
- package/lib/button/button.js +30 -72
- package/lib/button/group.js +27 -61
- package/lib/button/index.js +0 -4
- package/lib/button/style/css.js +0 -1
- package/lib/button/style/index.js +0 -1
- package/lib/card/card.js +19 -35
- package/lib/card/index.js +0 -9
- package/lib/card/style/css.js +0 -1
- package/lib/card/style/index.js +0 -1
- package/lib/carousel/carousel.js +31 -112
- package/lib/carousel/displayList.js +2 -14
- package/lib/carousel/fadeList.js +4 -16
- package/lib/carousel/index.js +0 -12
- package/lib/carousel/slideList.js +1 -14
- package/lib/carousel/slidebar.js +5 -22
- package/lib/carousel/style/css.js +0 -1
- package/lib/carousel/style/index.js +0 -1
- package/lib/cascader/cascader.js +56 -150
- package/lib/cascader/index.js +0 -9
- package/lib/cascader/style/css.js +0 -1
- package/lib/cascader/style/index.js +0 -1
- package/lib/cascader/util.js +10 -87
- package/lib/checkbox/checkbox.js +22 -69
- package/lib/checkbox/group.js +18 -59
- package/lib/checkbox/index.js +0 -9
- package/lib/checkbox/style/css.js +0 -1
- package/lib/checkbox/style/index.css +2 -0
- package/lib/checkbox/style/index.js +0 -1
- package/lib/checkbox/style/index.less +1 -0
- package/lib/city-picker/city-group.js +5 -24
- package/lib/city-picker/city-list.js +4 -21
- package/lib/city-picker/city-panel-item.js +3 -17
- package/lib/city-picker/city-panel.js +25 -64
- package/lib/city-picker/city-picker.js +22 -67
- package/lib/city-picker/city-search-panel.js +6 -25
- package/lib/city-picker/index.js +0 -9
- package/lib/city-picker/no-data.js +3 -15
- package/lib/city-picker/style/css.js +0 -1
- package/lib/city-picker/style/index.js +0 -1
- package/lib/city-picker/utils/grouping.js +0 -5
- package/lib/collapse/collapse.js +17 -62
- package/lib/collapse/index.js +0 -4
- package/lib/collapse/panel.js +21 -62
- package/lib/collapse/style/css.js +0 -1
- package/lib/collapse/style/index.js +0 -1
- package/lib/config-provider/ConfigContext.js +1 -4
- package/lib/config-provider/SizeContext.js +1 -6
- package/lib/config-provider/compDefaultProps.js +0 -8
- package/lib/config-provider/configProvider.js +3 -18
- package/lib/config-provider/defaultConfig.js +0 -5
- package/lib/config-provider/index.js +0 -6
- package/lib/date-picker/calendar.js +12 -35
- package/lib/date-picker/context.js +0 -7
- package/lib/date-picker/date-panel.js +22 -87
- package/lib/date-picker/date-picker.js +145 -214
- package/lib/date-picker/hooks/use-hover-value.js +5 -19
- package/lib/date-picker/hooks/use-picker-input.js +17 -37
- package/lib/date-picker/hooks/use-range-cls.js +8 -21
- package/lib/date-picker/hooks/use-range-disabled.js +7 -30
- package/lib/date-picker/hooks/use-range-view-dates.js +16 -49
- package/lib/date-picker/hooks/use-state-memo.js +0 -5
- package/lib/date-picker/hooks/use-text-value-mapping.js +6 -20
- package/lib/date-picker/hooks/use-value-texts.js +0 -5
- package/lib/date-picker/index.js +0 -4
- package/lib/date-picker/panel/date-time/date-time.js +7 -23
- package/lib/date-picker/panel/header/header.js +9 -21
- package/lib/date-picker/panel/month/month.js +11 -46
- package/lib/date-picker/panel/quarter/quarter.js +8 -40
- package/lib/date-picker/panel/time/time-column.js +8 -31
- package/lib/date-picker/panel/time/time.js +60 -106
- package/lib/date-picker/panel/week/week.js +25 -73
- package/lib/date-picker/panel/year/year.js +19 -56
- package/lib/date-picker/popper.js +28 -47
- package/lib/date-picker/range/input-range.js +95 -145
- package/lib/date-picker/range-picker.d.ts +1 -0
- package/lib/date-picker/range-picker.js +195 -327
- package/lib/date-picker/single/input-date.js +87 -127
- package/lib/date-picker/utils/date-fns.js +25 -136
- package/lib/date-picker/utils/get-extra-footer.js +0 -8
- package/lib/date-picker/utils/get-ranges.js +13 -24
- package/lib/date-picker/utils/index.js +9 -104
- package/lib/drawer/drawer.js +49 -95
- package/lib/drawer/index.js +0 -9
- package/lib/drawer/style/css.js +0 -1
- package/lib/drawer/style/index.js +0 -1
- package/lib/dropdown/dropdown.js +26 -56
- package/lib/dropdown/index.js +0 -9
- package/lib/dropdown/menu.d.ts +3 -2
- package/lib/dropdown/menu.js +29 -56
- package/lib/dropdown/style/css.js +0 -1
- package/lib/dropdown/style/index.js +0 -1
- package/lib/empty/defaultEmptyImg.js +2 -14
- package/lib/empty/empty.js +15 -42
- package/lib/empty/illustrationEmptyImg.js +2 -14
- package/lib/empty/index.js +0 -9
- package/lib/empty/style/css.js +0 -1
- package/lib/empty/style/index.js +0 -1
- package/lib/filter/condition.js +5 -28
- package/lib/filter/filter.js +29 -73
- package/lib/filter/index.js +0 -9
- package/lib/filter/scheme.js +35 -82
- package/lib/filter/style/css.js +0 -1
- package/lib/filter/style/index.js +0 -1
- package/lib/form/Field.js +36 -127
- package/lib/form/FieldContext.js +0 -6
- package/lib/form/FieldLabel.js +11 -29
- package/lib/form/FieldWrapper.js +6 -19
- package/lib/form/Form.js +28 -65
- package/lib/form/FormContext.js +0 -11
- package/lib/form/hooks/useForceUpdate.js +2 -9
- package/lib/form/hooks/useForm.js +10 -98
- package/lib/form/index.js +0 -12
- package/lib/form/style/css.js +0 -1
- package/lib/form/style/index.js +0 -1
- package/lib/grid/col.js +23 -51
- package/lib/grid/index.js +0 -3
- package/lib/grid/row.js +22 -49
- package/lib/grid/style/css.js +0 -1
- package/lib/grid/style/index.js +0 -1
- package/lib/icon/icon.js +11 -44
- package/lib/icon/index.js +0 -9
- package/lib/icon/interface.js +0 -6
- package/lib/icon/style/css.js +0 -1
- package/lib/icon/style/index.js +0 -1
- package/lib/image/image.js +31 -64
- package/lib/image/index.js +0 -9
- package/lib/image/preview-group.js +25 -54
- package/lib/image/preview.js +24 -57
- package/lib/image/style/css.js +0 -1
- package/lib/image/style/index.js +0 -1
- package/lib/image-cropper/cropper.js +11 -33
- package/lib/image-cropper/image-cropper.js +39 -89
- package/lib/image-cropper/index.js +0 -3
- package/lib/image-cropper/operation-bar.js +14 -44
- package/lib/image-cropper/style/css.js +0 -1
- package/lib/image-cropper/style/index.css +12 -1
- package/lib/image-cropper/style/index.js +0 -1
- package/lib/image-cropper/style/index.less +11 -2
- package/lib/index.js +2 -64
- package/lib/input/ClearableLabeledInput.js +27 -65
- package/lib/input/TextArea.js +45 -108
- package/lib/input/calculateNodeHeight.js +4 -23
- package/lib/input/index.js +0 -9
- package/lib/input/input.js +32 -87
- package/lib/input-number/index.js +0 -3
- package/lib/input-number/inputNumber.js +50 -129
- package/lib/input-number/style/css.js +0 -1
- package/lib/input-number/style/index.js +0 -1
- package/lib/layout/index.js +0 -9
- package/lib/layout/layout.js +28 -64
- package/lib/layout/sider.js +39 -89
- package/lib/layout/style/css.js +0 -1
- package/lib/layout/style/index.js +0 -1
- package/lib/link/index.js +0 -9
- package/lib/link/link.js +19 -50
- package/lib/link/style/css.js +0 -1
- package/lib/link/style/index.js +0 -1
- package/lib/locale/index.js +0 -7
- package/lib/locale/locale.js +6 -58
- package/lib/locale/zh-CN.js +0 -4
- package/lib/menu/index.js +0 -9
- package/lib/menu/menu.js +29 -83
- package/lib/menu/menuItem.js +27 -69
- package/lib/menu/style/css.js +0 -1
- package/lib/menu/style/index.js +0 -1
- package/lib/menu/subMenu.js +44 -122
- package/lib/menu/util.js +4 -28
- package/lib/message/content.js +7 -32
- package/lib/message/index.js +14 -33
- package/lib/message/style/css.js +0 -1
- package/lib/message/style/index.js +0 -1
- package/lib/modal/confirm.js +3 -21
- package/lib/modal/index.js +0 -14
- package/lib/modal/modal.js +41 -86
- package/lib/modal/style/css.js +0 -1
- package/lib/modal/style/index.js +0 -1
- package/lib/notification/content.js +15 -48
- package/lib/notification/index.js +20 -42
- package/lib/notification/style/css.js +0 -1
- package/lib/notification/style/index.js +0 -1
- package/lib/notification-base/index.js +4 -31
- package/lib/notification-base/notice.js +12 -38
- package/lib/notification-base/notification.js +3 -31
- package/lib/pagination/index.js +0 -3
- package/lib/pagination/pagination.js +76 -137
- package/lib/pagination/style/css.js +0 -1
- package/lib/pagination/style/index.js +0 -1
- package/lib/popconfirm/index.js +0 -9
- package/lib/popconfirm/popconfirm.js +22 -46
- package/lib/popconfirm/style/css.js +0 -1
- package/lib/popconfirm/style/index.js +0 -1
- package/lib/progress/circle.js +9 -25
- package/lib/progress/index.js +0 -3
- package/lib/progress/line.js +5 -11
- package/lib/progress/progress.js +21 -64
- package/lib/progress/style/css.js +0 -1
- package/lib/progress/style/index.js +0 -1
- package/lib/progress/utils.js +6 -30
- package/lib/radio/context.js +0 -7
- package/lib/radio/group.js +19 -53
- package/lib/radio/index.js +0 -5
- package/lib/radio/radio-button.js +6 -32
- package/lib/radio/radio.js +19 -66
- package/lib/radio/style/css.js +0 -1
- package/lib/radio/style/index.js +0 -1
- package/lib/rate/index.js +0 -3
- package/lib/rate/rate.js +30 -82
- package/lib/rate/style/css.js +0 -1
- package/lib/rate/style/index.js +0 -1
- package/lib/search/index.js +0 -7
- package/lib/search/interface.js +0 -2
- package/lib/search/option.js +10 -29
- package/lib/search/quick-search.js +68 -171
- package/lib/search/search-panel.js +28 -66
- package/lib/search/search.js +23 -63
- package/lib/search/style/css.js +0 -1
- package/lib/search/style/index.js +0 -1
- package/lib/select/index.js +0 -4
- package/lib/select/interface.js +0 -3
- package/lib/select/option.js +13 -40
- package/lib/select/select.js +115 -235
- package/lib/select/style/index.css +3 -0
- package/lib/select/style/index.less +4 -0
- package/lib/slider/index.js +0 -9
- package/lib/slider/marks.js +9 -22
- package/lib/slider/slider.js +58 -123
- package/lib/slider/sliderTooltip.js +9 -30
- package/lib/slider/steps.js +8 -24
- package/lib/slider/style/css.js +0 -1
- package/lib/slider/style/index.js +0 -1
- package/lib/slider/track.js +5 -11
- package/lib/slider/utils.js +4 -21
- package/lib/space/index.js +0 -9
- package/lib/space/space.js +16 -50
- package/lib/space/style/css.js +0 -1
- package/lib/space/style/index.js +0 -1
- package/lib/spin/index.js +0 -9
- package/lib/spin/spin.js +16 -50
- package/lib/spin/style/css.js +0 -1
- package/lib/spin/style/index.js +0 -1
- package/lib/split-panel/index.js +0 -9
- package/lib/split-panel/split-panel.js +57 -101
- package/lib/split-panel/style/css.js +0 -1
- package/lib/split-panel/style/index.js +0 -1
- package/lib/split-panel/trigger.js +8 -23
- package/lib/stepper/index.js +0 -9
- package/lib/stepper/stepper.js +27 -81
- package/lib/stepper/style/css.js +0 -1
- package/lib/stepper/style/index.js +0 -1
- package/lib/steps/Step.js +18 -40
- package/lib/steps/Steps.js +19 -55
- package/lib/steps/index.js +0 -5
- package/lib/steps/interface.js +0 -2
- package/lib/steps/style/css.js +0 -1
- package/lib/steps/style/index.js +0 -1
- package/lib/switch/index.js +0 -3
- package/lib/switch/style/css.js +0 -1
- package/lib/switch/style/index.js +0 -1
- package/lib/switch/switch.js +23 -59
- package/lib/table/api.js +3 -39
- package/lib/table/feature/autoRowSpan.js +0 -3
- package/lib/table/feature/colGroupExtendable.js +0 -3
- package/lib/table/feature/columnDrag.js +0 -3
- package/lib/table/feature/columnResize.js +0 -3
- package/lib/table/feature/contextMenu.js +0 -3
- package/lib/table/feature/filter.js +0 -6
- package/lib/table/feature/mergeCellHover.js +0 -3
- package/lib/table/feature/rowDetail.js +0 -5
- package/lib/table/feature/rowSelection.js +11 -24
- package/lib/table/feature/sort.js +0 -6
- package/lib/table/feature/treeMode.js +0 -5
- package/lib/table/feature/useFooterDataSource.js +0 -3
- package/lib/table/feature/useRangeSelection.js +0 -5
- package/lib/table/index.js +0 -3
- package/lib/table/style/css.js +0 -1
- package/lib/table/style/index.js +0 -1
- package/lib/table/table.js +36 -78
- package/lib/tabs/active-line.js +6 -17
- package/lib/tabs/arrow-button.js +5 -23
- package/lib/tabs/context.js +0 -7
- package/lib/tabs/index.js +2 -6
- package/lib/tabs/style/css.js +0 -1
- package/lib/tabs/style/index.js +0 -1
- package/lib/tabs/tab-pane.js +7 -38
- package/lib/tabs/tabs.js +42 -135
- package/lib/tag/index.js +0 -9
- package/lib/tag/style/css.js +0 -1
- package/lib/tag/style/index.js +0 -1
- package/lib/tag/tag.js +34 -74
- package/lib/timeline/Timeline.js +16 -45
- package/lib/timeline/TimelineItem.js +15 -39
- package/lib/timeline/index.js +0 -3
- package/lib/timeline/style/css.js +0 -1
- package/lib/timeline/style/index.js +0 -1
- package/lib/tooltip/index.js +0 -9
- package/lib/tooltip/style/css.js +0 -1
- package/lib/tooltip/style/index.js +0 -1
- package/lib/tooltip/tooltip.js +7 -24
- package/lib/transfer/index.js +0 -3
- package/lib/transfer/list-body.js +12 -48
- package/lib/transfer/list-item.js +10 -27
- package/lib/transfer/list.js +35 -89
- package/lib/transfer/operation.js +12 -18
- package/lib/transfer/search.js +5 -16
- package/lib/transfer/style/css.js +0 -1
- package/lib/transfer/style/index.js +0 -1
- package/lib/transfer/transfer.js +51 -122
- package/lib/tree/index.js +0 -11
- package/lib/tree/style/css.js +0 -1
- package/lib/tree/style/index.js +0 -1
- package/lib/tree/tree.js +95 -196
- package/lib/tree/treeHooks.js +18 -64
- package/lib/tree/treeNode.js +57 -126
- package/lib/tree/utils/treeUtils.js +22 -193
- package/lib/typography/base.js +16 -53
- package/lib/typography/index.js +2 -8
- package/lib/typography/paragraph.js +0 -11
- package/lib/typography/style/css.js +0 -1
- package/lib/typography/style/index.js +0 -1
- package/lib/typography/text.js +0 -6
- package/lib/typography/title.js +3 -21
- package/lib/typography/typography.js +12 -35
- package/lib/upload/dragger.js +3 -21
- package/lib/upload/index.js +0 -11
- package/lib/upload/request.js +6 -27
- package/lib/upload/scan-files.js +2 -15
- package/lib/upload/style/css.js +0 -1
- package/lib/upload/style/index.js +0 -1
- package/lib/upload/upload.js +63 -151
- package/lib/upload/utils.js +0 -6
- package/lib/upload/verify-file.js +0 -9
- package/lib/view-container/context.js +0 -7
- package/lib/view-container/index.js +0 -3
- package/lib/view-container/view-container.js +7 -21
- package/lib/virtual-list/Filler.js +3 -15
- package/lib/virtual-list/index.js +0 -9
- package/lib/virtual-list/utils/algorithmUtil.js +0 -15
- package/lib/virtual-list/utils/itemUtil.js +18 -60
- package/lib/virtual-list/virtual-list.js +63 -158
- package/package.json +3 -2
|
@@ -1,30 +1,22 @@
|
|
|
1
1
|
import _typeof from "@babel/runtime-corejs3/helpers/typeof";
|
|
2
2
|
import _extends from "@babel/runtime-corejs3/helpers/extends";
|
|
3
3
|
import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
|
|
4
|
-
|
|
5
4
|
var _context;
|
|
6
|
-
|
|
7
5
|
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
|
|
8
6
|
import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/slice";
|
|
9
7
|
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
|
10
8
|
import _Object$entries from "@babel/runtime-corejs3/core-js-stable/object/entries";
|
|
11
9
|
import _findIndexInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find-index";
|
|
12
10
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
13
|
-
|
|
14
11
|
var __rest = this && this.__rest || function (s, e) {
|
|
15
12
|
var t = {};
|
|
16
|
-
|
|
17
|
-
for (var p in s) {
|
|
18
|
-
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
19
|
-
}
|
|
20
|
-
|
|
13
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
21
14
|
if (s != null && typeof _Object$getOwnPropertySymbols === "function") for (var i = 0, p = _Object$getOwnPropertySymbols(s); i < p.length; i++) {
|
|
22
15
|
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
23
16
|
}
|
|
24
17
|
return t;
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
|
|
18
|
+
};
|
|
19
|
+
// Reference: https://github.com/arco-design/arco-design/blob/main/components/_class/VirtualList/index.tsx
|
|
28
20
|
import React, { useEffect, useImperativeHandle, useRef, useMemo, useState, useLayoutEffect } from 'react';
|
|
29
21
|
import { getValidScrollTop, getCompareItemRelativeTop, getItemAbsoluteTop, getItemRelativeTop, getNodeHeight, getRangeIndex, getScrollPercentage, GHOST_ITEM_KEY, getLongestItemIndex, getLocationItem } from './utils/itemUtil';
|
|
30
22
|
import { raf, caf } from '../_utils/raf';
|
|
@@ -35,9 +27,9 @@ import ResizeObserver from '../_utils/resizeObserver';
|
|
|
35
27
|
export function isNumber(obj) {
|
|
36
28
|
return Object.prototype.toString.call(obj) === '[object Number]' && obj === obj; // eslint-disable-line
|
|
37
29
|
}
|
|
30
|
+
|
|
38
31
|
var DEFAULT_VIRTUAL_ITEM_HEIGHT = 32;
|
|
39
32
|
var KEY_VIRTUAL_ITEM_HEIGHT = "__virtual_item_height_".concat(_sliceInstanceProperty(_context = Math.random().toFixed(5)).call(_context, 2));
|
|
40
|
-
|
|
41
33
|
var useComputeVirtualItemHeight = function useComputeVirtualItemHeight(refItemHeightMap) {
|
|
42
34
|
var forceUpdate = useForceUpdate();
|
|
43
35
|
var heightMap = refItemHeightMap.current;
|
|
@@ -45,8 +37,7 @@ var useComputeVirtualItemHeight = function useComputeVirtualItemHeight(refItemHe
|
|
|
45
37
|
if (_Object$keys(heightMap).length && !heightMap[KEY_VIRTUAL_ITEM_HEIGHT]) {
|
|
46
38
|
heightMap[KEY_VIRTUAL_ITEM_HEIGHT] = _Object$entries(heightMap).reduce(function (sum, _ref, currentIndex, array) {
|
|
47
39
|
var _ref2 = _slicedToArray(_ref, 2),
|
|
48
|
-
|
|
49
|
-
|
|
40
|
+
currentHeight = _ref2[1];
|
|
50
41
|
var nextSum = sum + currentHeight;
|
|
51
42
|
return currentIndex === array.length - 1 ? Math.round(nextSum / array.length) : nextSum;
|
|
52
43
|
}, 0);
|
|
@@ -54,60 +45,52 @@ var useComputeVirtualItemHeight = function useComputeVirtualItemHeight(refItemHe
|
|
|
54
45
|
}
|
|
55
46
|
}, [_Object$keys(heightMap).length]);
|
|
56
47
|
};
|
|
57
|
-
|
|
58
48
|
var useCacheChildrenNodes = function useCacheChildrenNodes(children) {
|
|
59
49
|
var refCacheMap = useRef({});
|
|
60
50
|
var refPrevChildren = useRef(children);
|
|
61
51
|
useEffect(function () {
|
|
62
52
|
refPrevChildren.current = children;
|
|
63
53
|
}, [children]);
|
|
64
|
-
|
|
65
54
|
if (children !== refPrevChildren.current) {
|
|
66
55
|
refCacheMap.current = {};
|
|
67
56
|
}
|
|
68
|
-
|
|
69
57
|
return function (item, index, props) {
|
|
70
58
|
// eslint-disable-next-line no-prototype-builtins
|
|
71
59
|
if (!refCacheMap.current.hasOwnProperty(index)) {
|
|
72
60
|
refCacheMap.current[index] = children(item, index, props);
|
|
73
61
|
}
|
|
74
|
-
|
|
75
62
|
return refCacheMap.current[index];
|
|
76
63
|
};
|
|
77
64
|
};
|
|
78
|
-
|
|
79
65
|
var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
80
66
|
var style = props.style,
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
67
|
+
className = props.className,
|
|
68
|
+
children = props.children,
|
|
69
|
+
_props$data = props.data,
|
|
70
|
+
data = _props$data === void 0 ? [] : _props$data,
|
|
71
|
+
itemKey = props.itemKey,
|
|
72
|
+
_props$threshold = props.threshold,
|
|
73
|
+
threshold = _props$threshold === void 0 ? 100 : _props$threshold,
|
|
74
|
+
_props$wrapper = props.wrapper,
|
|
75
|
+
WrapperTagName = _props$wrapper === void 0 ? 'div' : _props$wrapper,
|
|
76
|
+
_props$height = props.height,
|
|
77
|
+
propHeight = _props$height === void 0 ? 300 : _props$height,
|
|
78
|
+
_props$isStaticItemHe = props.isStaticItemHeight,
|
|
79
|
+
isStaticItemHeight = _props$isStaticItemHe === void 0 ? true : _props$isStaticItemHe,
|
|
80
|
+
propItemHeight = props.itemHeight,
|
|
81
|
+
measureLongestItem = props.measureLongestItem,
|
|
82
|
+
scrollOptions = props.scrollOptions,
|
|
83
|
+
onScroll = props.onScroll,
|
|
84
|
+
_props$needFiller = props.needFiller,
|
|
85
|
+
needFiller = _props$needFiller === void 0 ? true : _props$needFiller,
|
|
86
|
+
outerStyle = props.outerStyle,
|
|
87
|
+
restProps = __rest(props, ["style", "className", "children", "data", "itemKey", "threshold", "wrapper", "height", "isStaticItemHeight", "itemHeight", "measureLongestItem", "scrollOptions", "onScroll", "needFiller", "outerStyle"]);
|
|
103
88
|
var styleListMaxHeight = style && style.maxHeight || propHeight;
|
|
104
89
|
var refItemHeightMap = useRef({});
|
|
105
|
-
|
|
106
90
|
var _useState = useState(200),
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
91
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
92
|
+
stateHeight = _useState2[0],
|
|
93
|
+
setStateHeight = _useState2[1];
|
|
111
94
|
var renderChild = useCacheChildrenNodes(children);
|
|
112
95
|
useComputeVirtualItemHeight(refItemHeightMap);
|
|
113
96
|
var itemCount = data.length;
|
|
@@ -125,61 +108,51 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
125
108
|
var getPadding = function getPadding(property) {
|
|
126
109
|
return +window.getComputedStyle(refList.current)[property].replace(/\D/g, '');
|
|
127
110
|
};
|
|
128
|
-
|
|
129
111
|
return {
|
|
130
112
|
top: getPadding('paddingTop'),
|
|
131
113
|
bottom: getPadding('paddingBottom')
|
|
132
114
|
};
|
|
133
115
|
}
|
|
134
|
-
|
|
135
116
|
return {
|
|
136
117
|
top: 0,
|
|
137
118
|
bottom: 0
|
|
138
119
|
};
|
|
139
120
|
}, [refList.current]);
|
|
140
|
-
|
|
141
121
|
var _useStateWithPromise = useStateWithPromise({
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
122
|
+
status: 'NONE',
|
|
123
|
+
startIndex: 0,
|
|
124
|
+
endIndex: 0,
|
|
125
|
+
itemIndex: 0,
|
|
126
|
+
itemOffsetPtg: 0,
|
|
127
|
+
startItemTop: 0,
|
|
128
|
+
scrollTop: 0
|
|
129
|
+
}),
|
|
130
|
+
_useStateWithPromise2 = _slicedToArray(_useStateWithPromise, 2),
|
|
131
|
+
state = _useStateWithPromise2[0],
|
|
132
|
+
setState = _useStateWithPromise2[1];
|
|
154
133
|
var prevData = usePrevious(data) || [];
|
|
155
134
|
var isFirstRender = useIsFirstRender();
|
|
156
|
-
|
|
157
135
|
var getItemKey = function getItemKey(item, index) {
|
|
158
136
|
return typeof itemKey === 'function' ? itemKey(item, index) : typeof itemKey === 'string' ? item[itemKey] : item.key || index;
|
|
159
137
|
};
|
|
160
|
-
|
|
161
138
|
var getItemKeyByIndex = function getItemKeyByIndex(index) {
|
|
162
139
|
var items = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : data;
|
|
163
|
-
|
|
164
140
|
if (index === items.length) {
|
|
165
141
|
return GHOST_ITEM_KEY;
|
|
166
142
|
}
|
|
167
|
-
|
|
168
143
|
var item = items[index];
|
|
169
144
|
return item !== undefined ? getItemKey(item, index) : null;
|
|
170
145
|
};
|
|
171
|
-
|
|
172
146
|
var getCachedItemHeight = function getCachedItemHeight(key) {
|
|
173
147
|
return refItemHeightMap.current[key] || itemHeight;
|
|
174
148
|
};
|
|
175
|
-
|
|
176
149
|
var internalScrollTo = function internalScrollTo(relativeScroll) {
|
|
177
150
|
var compareItemIndex = relativeScroll.itemIndex,
|
|
178
|
-
|
|
151
|
+
compareItemRelativeTop = relativeScroll.relativeTop;
|
|
179
152
|
if (!refList.current) return;
|
|
180
153
|
var _refList$current = refList.current,
|
|
181
|
-
|
|
182
|
-
|
|
154
|
+
scrollHeight = _refList$current.scrollHeight,
|
|
155
|
+
clientHeight = _refList$current.clientHeight;
|
|
183
156
|
var originScrollTop = state.scrollTop;
|
|
184
157
|
var maxScrollTop = scrollHeight - clientHeight;
|
|
185
158
|
var bestSimilarity = Number.MAX_VALUE;
|
|
@@ -189,7 +162,6 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
189
162
|
var bestStartIndex = null;
|
|
190
163
|
var bestEndIndex = null;
|
|
191
164
|
var missSimilarity = 0;
|
|
192
|
-
|
|
193
165
|
for (var i = 0; i < maxScrollTop; i++) {
|
|
194
166
|
var scrollTop = getIndexByStartLoc(0, maxScrollTop, originScrollTop, i);
|
|
195
167
|
var scrollPtg = getScrollPercentage({
|
|
@@ -197,13 +169,11 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
197
169
|
scrollHeight: scrollHeight,
|
|
198
170
|
clientHeight: clientHeight
|
|
199
171
|
});
|
|
200
|
-
|
|
201
172
|
var _getRangeIndex = getRangeIndex(scrollPtg, itemCount, itemCountVisible),
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
173
|
+
itemIndex = _getRangeIndex.itemIndex,
|
|
174
|
+
itemOffsetPtg = _getRangeIndex.itemOffsetPtg,
|
|
175
|
+
startIndex = _getRangeIndex.startIndex,
|
|
176
|
+
endIndex = _getRangeIndex.endIndex;
|
|
207
177
|
if (startIndex <= compareItemIndex && compareItemIndex <= endIndex) {
|
|
208
178
|
var locatedItemRelativeTop = getItemRelativeTop({
|
|
209
179
|
itemHeight: getCachedItemHeight(getItemKeyByIndex(itemIndex)),
|
|
@@ -222,7 +192,6 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
222
192
|
itemElementHeights: refItemHeightMap.current
|
|
223
193
|
});
|
|
224
194
|
var similarity = Math.abs(compareItemTop - compareItemRelativeTop);
|
|
225
|
-
|
|
226
195
|
if (similarity < bestSimilarity) {
|
|
227
196
|
bestSimilarity = similarity;
|
|
228
197
|
bestScrollTop = scrollTop;
|
|
@@ -235,12 +204,10 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
235
204
|
missSimilarity += 1;
|
|
236
205
|
}
|
|
237
206
|
}
|
|
238
|
-
|
|
239
207
|
if (missSimilarity > 10) {
|
|
240
208
|
break;
|
|
241
209
|
}
|
|
242
210
|
}
|
|
243
|
-
|
|
244
211
|
if (bestScrollTop !== null) {
|
|
245
212
|
refLockScroll.current = true;
|
|
246
213
|
refList.current.scrollTop = bestScrollTop;
|
|
@@ -253,29 +220,25 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
253
220
|
endIndex: bestEndIndex
|
|
254
221
|
}));
|
|
255
222
|
}
|
|
256
|
-
|
|
257
223
|
refRafId.current = raf(function () {
|
|
258
224
|
refLockScroll.current = false;
|
|
259
225
|
});
|
|
260
226
|
};
|
|
261
|
-
|
|
262
227
|
var rawListScrollHandler = function rawListScrollHandler(event) {
|
|
263
228
|
if (!refList.current) return;
|
|
264
229
|
var _refList$current2 = refList.current,
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
230
|
+
rawScrollTop = _refList$current2.scrollTop,
|
|
231
|
+
clientHeight = _refList$current2.clientHeight,
|
|
232
|
+
scrollHeight = _refList$current2.scrollHeight;
|
|
268
233
|
var scrollTop = getValidScrollTop(rawScrollTop, scrollHeight - clientHeight);
|
|
269
234
|
var scrollPtg = getScrollPercentage({
|
|
270
235
|
scrollTop: scrollTop,
|
|
271
236
|
clientHeight: clientHeight,
|
|
272
237
|
scrollHeight: scrollHeight
|
|
273
238
|
});
|
|
274
|
-
|
|
275
239
|
var _getLocationItem = getLocationItem(scrollPtg, itemCount),
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
240
|
+
index = _getLocationItem.index,
|
|
241
|
+
offsetPtg = _getLocationItem.offsetPtg;
|
|
279
242
|
setState(_extends(_extends({}, state), {
|
|
280
243
|
scrollTop: scrollTop,
|
|
281
244
|
itemIndex: index,
|
|
@@ -283,32 +246,27 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
283
246
|
}));
|
|
284
247
|
event && onScroll && onScroll(event);
|
|
285
248
|
};
|
|
286
|
-
|
|
287
249
|
var virtualListScrollHandler = function virtualListScrollHandler(event) {
|
|
288
250
|
var isInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
289
251
|
var scrollHeight = itemTotalHeight;
|
|
290
252
|
if (!refList.current) return;
|
|
291
253
|
var _refList$current3 = refList.current,
|
|
292
|
-
|
|
293
|
-
|
|
254
|
+
rawScrollTop = _refList$current3.scrollTop,
|
|
255
|
+
clientHeight = _refList$current3.clientHeight;
|
|
294
256
|
var scrollTop = getValidScrollTop(rawScrollTop, scrollHeight - clientHeight);
|
|
295
|
-
|
|
296
257
|
if (!isInit && (scrollTop === state.scrollTop || refLockScroll.current)) {
|
|
297
258
|
return;
|
|
298
259
|
}
|
|
299
|
-
|
|
300
260
|
var scrollPtg = getScrollPercentage({
|
|
301
261
|
scrollTop: scrollTop,
|
|
302
262
|
clientHeight: clientHeight,
|
|
303
263
|
scrollHeight: scrollHeight
|
|
304
264
|
});
|
|
305
|
-
|
|
306
265
|
var _getRangeIndex2 = getRangeIndex(scrollPtg, itemCount, itemCountVisible),
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
266
|
+
itemIndex = _getRangeIndex2.itemIndex,
|
|
267
|
+
itemOffsetPtg = _getRangeIndex2.itemOffsetPtg,
|
|
268
|
+
startIndex = _getRangeIndex2.startIndex,
|
|
269
|
+
endIndex = _getRangeIndex2.endIndex;
|
|
312
270
|
setState(_extends(_extends({}, state), {
|
|
313
271
|
scrollTop: scrollTop,
|
|
314
272
|
itemIndex: itemIndex,
|
|
@@ -319,7 +277,6 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
319
277
|
}));
|
|
320
278
|
event && onScroll && onScroll(event);
|
|
321
279
|
};
|
|
322
|
-
|
|
323
280
|
useEffect(function () {
|
|
324
281
|
return function () {
|
|
325
282
|
refRafId.current && caf(refRafId.current);
|
|
@@ -330,7 +287,6 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
330
287
|
if (isFirstRender) {
|
|
331
288
|
refList.current.scrollTop = 0;
|
|
332
289
|
}
|
|
333
|
-
|
|
334
290
|
virtualListScrollHandler(null, true);
|
|
335
291
|
}
|
|
336
292
|
}, [itemCountVisible]);
|
|
@@ -338,12 +294,10 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
338
294
|
var changedItemIndex = null;
|
|
339
295
|
var switchTo = refIsVirtual.current !== isVirtual ? isVirtual ? 'virtual' : 'raw' : '';
|
|
340
296
|
refIsVirtual.current = isVirtual;
|
|
341
|
-
|
|
342
297
|
if (viewportHeight && prevData.length !== data.length) {
|
|
343
298
|
var diff = findListDiffIndex(prevData, data, getItemKey);
|
|
344
299
|
changedItemIndex = diff ? diff.index : null;
|
|
345
300
|
}
|
|
346
|
-
|
|
347
301
|
if ((switchTo || isVirtual && changedItemIndex) && refList.current) {
|
|
348
302
|
var clientHeight = refList.current.clientHeight;
|
|
349
303
|
var locatedItemRelativeTop = getItemRelativeTop({
|
|
@@ -356,14 +310,11 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
356
310
|
}),
|
|
357
311
|
clientHeight: clientHeight
|
|
358
312
|
});
|
|
359
|
-
|
|
360
313
|
if (switchTo === 'raw') {
|
|
361
314
|
var rawTop = locatedItemRelativeTop;
|
|
362
|
-
|
|
363
315
|
for (var index = 0; index < state.itemIndex; index++) {
|
|
364
316
|
rawTop -= getCachedItemHeight(getItemKeyByIndex(index));
|
|
365
317
|
}
|
|
366
|
-
|
|
367
318
|
refList.current.scrollTop = -rawTop;
|
|
368
319
|
refLockScroll.current = true;
|
|
369
320
|
refRafId.current = raf(function () {
|
|
@@ -380,9 +331,9 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
380
331
|
useLayoutEffect(function () {
|
|
381
332
|
if (state.status === 'MEASURE_START' && refList.current) {
|
|
382
333
|
var _refList$current4 = refList.current,
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
334
|
+
scrollTop = _refList$current4.scrollTop,
|
|
335
|
+
scrollHeight = _refList$current4.scrollHeight,
|
|
336
|
+
clientHeight = _refList$current4.clientHeight;
|
|
386
337
|
var scrollPtg = getScrollPercentage({
|
|
387
338
|
scrollTop: scrollTop,
|
|
388
339
|
scrollHeight: scrollHeight,
|
|
@@ -395,11 +346,9 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
395
346
|
itemHeight: getCachedItemHeight(getItemKeyByIndex(state.itemIndex)),
|
|
396
347
|
itemOffsetPtg: state.itemOffsetPtg
|
|
397
348
|
});
|
|
398
|
-
|
|
399
349
|
for (var index = state.itemIndex - 1; index >= state.startIndex; index--) {
|
|
400
350
|
startItemTop -= getCachedItemHeight(getItemKeyByIndex(index));
|
|
401
351
|
}
|
|
402
|
-
|
|
403
352
|
setState(_extends(_extends({}, state), {
|
|
404
353
|
startItemTop: startItemTop,
|
|
405
354
|
status: 'MEASURE_DONE'
|
|
@@ -413,31 +362,25 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
413
362
|
refRafId.current && caf(refRafId.current);
|
|
414
363
|
refRafId.current = raf(function () {
|
|
415
364
|
var _a;
|
|
416
|
-
|
|
417
365
|
if (typeof arg === 'number') {
|
|
418
366
|
refList.current.scrollTop = arg;
|
|
419
367
|
return;
|
|
420
368
|
}
|
|
421
|
-
|
|
422
369
|
var index = 'index' in arg ? arg.index : 'key' in arg ? _findIndexInstanceProperty(data).call(data, function (item, index) {
|
|
423
370
|
return getItemKey(item, index) === arg.key;
|
|
424
371
|
}) : 0;
|
|
425
372
|
var item = data[index];
|
|
426
|
-
|
|
427
373
|
if (!item) {
|
|
428
374
|
return;
|
|
429
375
|
}
|
|
430
|
-
|
|
431
376
|
var align = _typeof(arg) === 'object' && ((_a = arg.options) === null || _a === void 0 ? void 0 : _a.block) ? arg.options.block : (scrollOptions === null || scrollOptions === void 0 ? void 0 : scrollOptions.block) || 'nearest';
|
|
432
377
|
var _refList$current5 = refList.current,
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
378
|
+
clientHeight = _refList$current5.clientHeight,
|
|
379
|
+
scrollTop = _refList$current5.scrollTop;
|
|
436
380
|
if (isVirtual && !isStaticItemHeight) {
|
|
437
381
|
if (align === 'nearest') {
|
|
438
382
|
var itemIndex = state.itemIndex,
|
|
439
|
-
|
|
440
|
-
|
|
383
|
+
itemOffsetPtg = state.itemOffsetPtg;
|
|
441
384
|
if (Math.abs(itemIndex - index) < itemCountVisible) {
|
|
442
385
|
var itemTop = getItemRelativeTop({
|
|
443
386
|
itemHeight: getCachedItemHeight(getItemKeyByIndex(itemIndex)),
|
|
@@ -445,7 +388,6 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
445
388
|
clientHeight: clientHeight,
|
|
446
389
|
scrollPtg: getScrollPercentage(refList.current)
|
|
447
390
|
});
|
|
448
|
-
|
|
449
391
|
if (index < itemIndex) {
|
|
450
392
|
for (var i = index; i < itemIndex; i++) {
|
|
451
393
|
itemTop -= getCachedItemHeight(getItemKeyByIndex(i));
|
|
@@ -455,7 +397,6 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
455
397
|
itemTop += getCachedItemHeight(getItemKeyByIndex(_i));
|
|
456
398
|
}
|
|
457
399
|
}
|
|
458
|
-
|
|
459
400
|
if (itemTop < 0 || itemTop > clientHeight) {
|
|
460
401
|
align = itemTop < 0 ? 'start' : 'end';
|
|
461
402
|
} else {
|
|
@@ -465,7 +406,6 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
465
406
|
align = index < itemIndex ? 'start' : 'end';
|
|
466
407
|
}
|
|
467
408
|
}
|
|
468
|
-
|
|
469
409
|
setState(_extends(_extends({}, state), {
|
|
470
410
|
startIndex: Math.max(0, index - itemCountVisible),
|
|
471
411
|
endIndex: Math.min(itemCount - 1, index + itemCountVisible)
|
|
@@ -479,18 +419,14 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
479
419
|
} else {
|
|
480
420
|
var indexItemHeight = getCachedItemHeight(getItemKeyByIndex(index));
|
|
481
421
|
var _itemTop = 0;
|
|
482
|
-
|
|
483
422
|
for (var _i2 = 0; _i2 < index; _i2++) {
|
|
484
423
|
_itemTop += getCachedItemHeight(getItemKeyByIndex(_i2));
|
|
485
424
|
}
|
|
486
|
-
|
|
487
425
|
var itemBottom = _itemTop + indexItemHeight;
|
|
488
426
|
var itemMiddle = _itemTop + indexItemHeight / 2;
|
|
489
|
-
|
|
490
427
|
if (itemMiddle > scrollTop && itemMiddle < clientHeight + scrollTop) {
|
|
491
428
|
return;
|
|
492
429
|
}
|
|
493
|
-
|
|
494
430
|
if (align === 'nearest') {
|
|
495
431
|
if (_itemTop < scrollTop) {
|
|
496
432
|
align = 'start';
|
|
@@ -498,16 +434,13 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
498
434
|
align = 'end';
|
|
499
435
|
}
|
|
500
436
|
}
|
|
501
|
-
|
|
502
437
|
var _viewportHeight = clientHeight - indexItemHeight;
|
|
503
|
-
|
|
504
438
|
refList.current.scrollTop = _itemTop - (align === 'start' ? 0 : _viewportHeight / (align === 'center' ? 2 : 1));
|
|
505
439
|
}
|
|
506
440
|
});
|
|
507
441
|
}
|
|
508
442
|
};
|
|
509
443
|
}, [data, itemHeight, state]);
|
|
510
|
-
|
|
511
444
|
var renderChildren = function renderChildren(list, startIndex) {
|
|
512
445
|
return _mapInstanceProperty(list).call(list, function (item, index) {
|
|
513
446
|
var originIndex = startIndex + index;
|
|
@@ -519,13 +452,11 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
519
452
|
key: key,
|
|
520
453
|
ref: function ref(ele) {
|
|
521
454
|
var heightMap = refItemHeightMap.current;
|
|
522
|
-
|
|
523
455
|
if (ele && state.status === 'MEASURE_START' && (!isStaticItemHeight || heightMap[key] === undefined)) {
|
|
524
456
|
if (isStaticItemHeight) {
|
|
525
457
|
if (!heightMap[KEY_VIRTUAL_ITEM_HEIGHT]) {
|
|
526
458
|
heightMap[KEY_VIRTUAL_ITEM_HEIGHT] = getNodeHeight(ele, true);
|
|
527
459
|
}
|
|
528
|
-
|
|
529
460
|
heightMap[key] = heightMap[KEY_VIRTUAL_ITEM_HEIGHT];
|
|
530
461
|
} else {
|
|
531
462
|
heightMap[key] = getNodeHeight(ele, true);
|
|
@@ -535,12 +466,10 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
535
466
|
});
|
|
536
467
|
});
|
|
537
468
|
};
|
|
538
|
-
|
|
539
469
|
var refLongestItemIndex = useRef(null);
|
|
540
470
|
useEffect(function () {
|
|
541
471
|
refLongestItemIndex.current = null;
|
|
542
472
|
}, [data]);
|
|
543
|
-
|
|
544
473
|
var renderLongestItem = function renderLongestItem() {
|
|
545
474
|
if (measureLongestItem) {
|
|
546
475
|
var index = refLongestItemIndex.current === null ? getLongestItemIndex(data) : refLongestItemIndex.current;
|
|
@@ -556,10 +485,8 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
556
485
|
style: {}
|
|
557
486
|
})) : null;
|
|
558
487
|
}
|
|
559
|
-
|
|
560
488
|
return null;
|
|
561
489
|
};
|
|
562
|
-
|
|
563
490
|
return /*#__PURE__*/React.createElement(ResizeObserver, {
|
|
564
491
|
onResize: function onResize() {
|
|
565
492
|
if (refList.current && !isNumber(styleListMaxHeight)) {
|