@cloud-app-dev/vidc 3.2.11 → 3.2.14
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/.dumirc.ts +71 -0
- package/.editorconfig +0 -3
- package/.eslintrc.js +3 -0
- package/.fatherrc.ts +19 -0
- package/.husky/commit-msg +5 -0
- package/.husky/pre-commit +4 -0
- package/.prettierrc.js +16 -0
- package/README.md +14 -26
- package/es/Api/index.js +100 -30
- package/es/AppContext/Sync.js +19 -3
- package/es/AppContext/index.js +86 -42
- package/es/AppContext/static.js +7 -0
- package/es/Auth/index.js +11 -4
- package/es/AutoExit/index.js +11 -3
- package/es/Box/BetweenBox/index.js +19 -10
- package/es/Box/BetweenBox/{index.css → index.less} +0 -0
- package/es/Box/InfoBox/index.js +24 -18
- package/es/Box/InfoBox/index.less +22 -0
- package/es/Box/TwoColumnBox/index.js +42 -25
- package/es/Box/TwoColumnBox/index.less +70 -0
- package/es/Box/deps/grid-factory.d.ts +2 -2
- package/es/Box/deps/grid-factory.js +12 -0
- package/es/Box/index.js +29 -16
- package/es/Box/{index.css → index.less} +5 -4
- package/es/CheckGroupFixed/demo.d.ts +3 -0
- package/es/CheckGroupFixed/demo.js +28 -0
- package/es/CheckGroupFixed/index.js +117 -82
- package/es/CheckGroupFixed/index.less +50 -0
- package/es/Config/index.js +5 -1
- package/es/Config/utils.js +18 -3
- package/es/ConfigContext/index.js +8 -4
- package/es/CustomRenderSelect/index.js +71 -36
- package/es/CustomRenderSelect/index.less +25 -0
- package/es/DisableMark/index.js +14 -11
- package/es/DisableMark/{index.css → index.less} +0 -0
- package/es/DomMove/demo.js +14 -10
- package/es/DomMove/index.js +52 -30
- package/es/DomMove/utils.js +8 -3
- package/es/Drag/DragAndDropItem.js +44 -20
- package/es/Drag/DropItem.js +22 -6
- package/es/Drag/index.js +2 -2
- package/es/Drag/{index.css → index.less} +0 -0
- package/es/Drawer/Footer.js +22 -15
- package/es/Drawer/{Demo.d.ts → demo.d.ts} +0 -0
- package/es/Drawer/demo.js +109 -0
- package/es/Drawer/index.js +98 -60
- package/es/Drawer/index.less +42 -0
- package/es/ErrorFallback/index.js +23 -14
- package/es/FrontendPlayer/index.js +1 -1
- package/es/FullScreen/index.js +30 -17
- package/es/FullScreen/index.less +16 -0
- package/es/HightLevel/index.js +11 -4
- package/es/HightLevel/{index.css → index.less} +0 -0
- package/es/IconFont/index.js +39 -18
- package/es/ImageView/index.js +37 -13
- package/es/ImageView/index.less +10 -0
- package/es/Input/demo.d.ts +3 -0
- package/es/Input/demo.js +16 -0
- package/es/Input/index.js +46 -22
- package/es/Input/index.less +12 -0
- package/es/InstanceHistory/index.js +2 -0
- package/es/LabelValue/index.js +25 -18
- package/es/LabelValue/index.less +20 -0
- package/es/List/DynamicGridList/Demo.d.ts +1 -0
- package/es/List/DynamicGridList/Demo.js +52 -32
- package/es/List/DynamicGridList/index.d.ts +3 -3
- package/es/List/DynamicGridList/index.js +41 -26
- package/es/List/DynamicList/index.js +76 -56
- package/es/List/DynamicList/index.less +15 -0
- package/es/List/GridList/Demo.d.ts +1 -0
- package/es/List/GridList/Demo.js +60 -38
- package/es/List/GridList/hook.d.ts +1 -1
- package/es/List/GridList/hook.js +66 -35
- package/es/List/GridList/index.js +33 -29
- package/es/List/GridList/{index.css → index.less} +0 -0
- package/es/List/GridList/utils.d.ts +2 -2
- package/es/List/GridList/utils.js +1 -0
- package/es/List/VList/index.d.ts +1 -1
- package/es/List/VList/index.js +32 -19
- package/es/List/VList/{index.css → index.less} +0 -0
- package/es/List/VList/utils.d.ts +2 -2
- package/es/List/VList/utils.js +8 -6
- package/es/List/demo.d.ts +3 -0
- package/es/List/demo.js +26 -0
- package/es/List/index.d.ts +1 -1
- package/es/List/index.js +31 -23
- package/es/List/{index.css → index.less} +5 -4
- package/es/ListWithSizeAnimate/demo.d.ts +2 -0
- package/es/ListWithSizeAnimate/demo.js +19 -0
- package/es/ListWithSizeAnimate/index.d.ts +9 -0
- package/es/ListWithSizeAnimate/index.js +71 -0
- package/es/ListWithSizeAnimate/index.less +13 -0
- package/es/LoaderApp/index.js +59 -25
- package/es/LoaderApp/{index.css → index.less} +0 -0
- package/es/LoaderApp/loader.js +40 -23
- package/es/LoaderApp/sandbox.back.js +101 -24
- package/es/LoaderApp/sandbox.js +26 -9
- package/es/LoaderApp/utils.d.ts +1 -1
- package/es/LoaderApp/utils.js +68 -25
- package/es/LoaderScript/index.js +25 -10
- package/es/LoaderScript/utils.js +151 -87
- package/es/Map/BasicMap/AMapInstance.d.ts +1 -1
- package/es/Map/BasicMap/AMapInstance.js +25 -3
- package/es/Map/BasicMap/LeafletInstance.js +28 -11
- package/es/Map/BasicMap/index.js +67 -27
- package/es/Map/BasicMap/index.less +24 -0
- package/es/Map/ClusterLayer/hook.d.ts +2 -2
- package/es/Map/ClusterLayer/hook.js +51 -23
- package/es/Map/ClusterLayer/index.d.ts +1 -1
- package/es/Map/ClusterLayer/index.js +14 -6
- package/es/Map/ClusterLayer/index.less +27 -0
- package/es/Map/Config/index.js +44 -16
- package/es/Map/Config/utils.js +17 -3
- package/es/Map/Context/index.js +43 -9
- package/es/Map/FindPio/index.js +5 -2
- package/es/Map/FindPio/{index.css → index.less} +0 -0
- package/es/Map/InfoWindow/MakerLikeWindow.d.ts +1 -1
- package/es/Map/InfoWindow/MakerLikeWindow.js +41 -18
- package/es/Map/InfoWindow/demo.d.ts +1 -0
- package/es/Map/InfoWindow/demo.js +51 -29
- package/es/Map/InfoWindow/index.d.ts +1 -1
- package/es/Map/InfoWindow/index.js +39 -18
- package/es/Map/LevelCenter/DragMarker/index.js +16 -10
- package/es/Map/LevelCenter/demo.d.ts +1 -0
- package/es/Map/LevelCenter/demo.js +41 -22
- package/es/Map/LevelCenter/index.js +41 -29
- package/es/Map/LevelCenter/index.less +2 -0
- package/es/Map/LoaderMap/index.js +38 -22
- package/es/Map/MapDrawSelect/demo.d.ts +1 -0
- package/es/Map/MapDrawSelect/demo.js +65 -46
- package/es/Map/MapDrawSelect/index.js +43 -31
- package/es/Map/MapDrawSelect/index.less +2 -0
- package/es/Map/MouseTool/index.js +32 -18
- package/es/Map/MouseTool/useMouseTools.js +37 -8
- package/es/Map/ResetTools/index.js +58 -44
- package/es/Map/ResetTools/index.less +35 -0
- package/es/Map/SinglePoint/index.js +39 -27
- package/es/Map/SinglePoint/index.less +41 -0
- package/es/Map/hook/useMapEvent.js +8 -4
- package/es/Map/hook/useMapType.js +3 -2
- package/es/Map/index.d.ts +1 -0
- package/es/Map/index.js +11 -11
- package/es/Map/useMarker/index.d.ts +1 -1
- package/es/Map/useMarker/index.js +33 -13
- package/es/Map/{LevelCenter/index.css → useMarker/index.less} +0 -0
- package/es/Map/withMap/index.d.ts +1 -0
- package/es/Map/withMap/index.js +14 -4
- package/es/Modal/demo.d.ts +3 -0
- package/es/Modal/demo.js +106 -0
- package/es/Modal/index.js +94 -57
- package/es/Modal/index.less +45 -0
- package/es/Picture/component/DefaultRects/RectInfo.js +59 -37
- package/es/Picture/component/DefaultRects/index.js +46 -32
- package/es/Picture/component/DefaultRects/index.less +188 -0
- package/es/Picture/component/DrawRect/index.js +37 -24
- package/es/Picture/component/DrawRect/{index.css → index.less} +0 -0
- package/es/Picture/component/RectMenu/index.js +35 -26
- package/es/Picture/component/RectMenu/index.less +31 -0
- package/es/Picture/component/RectMenu/utils.js +6 -3
- package/es/Picture/component/Tools/index.js +91 -69
- package/es/Picture/component/Tools/index.less +43 -0
- package/es/Picture/component/WheelScale/index.js +9 -4
- package/es/Picture/demo.js +14 -11
- package/es/Picture/dragBound.d.ts +1 -1
- package/es/Picture/dragBound.js +17 -4
- package/es/Picture/index.d.ts +2 -2
- package/es/Picture/index.js +201 -137
- package/es/Picture/index.less +14 -0
- package/es/Picture/interface.d.ts +0 -6
- package/es/Picture/loadCaptureRectImage.d.ts +1 -1
- package/es/Picture/loadCaptureRectImage.js +39 -14
- package/es/Picture/useDraw.js +40 -20
- package/es/Picture/utils.d.ts +9 -9
- package/es/Picture/utils.js +18 -3
- package/es/Player/api/index.d.ts +3 -3
- package/es/Player/api/index.js +117 -82
- package/es/Player/context.js +21 -7
- package/es/Player/contraller_bar/bar.d.ts +1 -1
- package/es/Player/contraller_bar/bar.js +28 -10
- package/es/Player/contraller_bar/contraller_event.js +34 -12
- package/es/Player/contraller_bar/index.js +30 -22
- package/es/Player/contraller_bar/left_bar.js +62 -39
- package/es/Player/contraller_bar/right_bar.js +34 -18
- package/es/Player/contraller_bar/time.js +19 -8
- package/es/Player/contraller_bar/useBarStatus.js +29 -11
- package/es/Player/contraller_bar/volume.d.ts +1 -1
- package/es/Player/contraller_bar/volume.js +43 -21
- package/es/Player/demo.d.ts +1 -0
- package/es/Player/demo.js +258 -215
- package/es/Player/event/errorEvent.js +41 -16
- package/es/Player/event/eventName.js +12 -1
- package/es/Player/event/index.js +66 -24
- package/es/Player/fps_play.js +33 -15
- package/es/Player/frontend_player.js +42 -20
- package/es/Player/frontend_timeline.js +95 -55
- package/es/Player/iconfont.js +23 -8
- package/es/Player/index.js +1 -1
- package/es/Player/live_heart.js +15 -3
- package/es/Player/message.js +68 -37
- package/es/Player/segment_player.js +113 -62
- package/es/Player/segment_timeline.js +145 -97
- package/es/Player/single_player.js +153 -111
- package/es/Player/style/bar.less +39 -0
- package/es/Player/style/iconfont.js +17 -10
- package/es/Player/style/index.less +30 -0
- package/es/Player/style/message.less +50 -0
- package/es/Player/style/slider.less +103 -0
- package/es/Player/style/timeline.less +106 -0
- package/es/Player/style/volume.less +21 -0
- package/es/Player/timeline.d.ts +1 -1
- package/es/Player/timeline.js +59 -32
- package/es/Player/util.js +46 -7
- package/es/PlayerExt/demo.d.ts +1 -0
- package/es/PlayerExt/demo.js +145 -112
- package/es/PlayerExt/index.d.ts +2 -2
- package/es/PlayerExt/index.js +139 -87
- package/es/PlayerExt/{index.css → index.less} +0 -0
- package/es/Progress/index.js +18 -5
- package/es/Progress/index.less +20 -0
- package/es/ROI/demo.d.ts +1 -0
- package/es/ROI/demo.js +12 -8
- package/es/ROI/index.js +45 -35
- package/es/ROI/index.less +29 -0
- package/es/ScreenPlayer/Live.d.ts +2 -2
- package/es/ScreenPlayer/Live.js +172 -109
- package/es/ScreenPlayer/LiveTools.d.ts +2 -2
- package/es/ScreenPlayer/LiveTools.js +156 -116
- package/es/ScreenPlayer/PlayerWithExt.d.ts +2 -2
- package/es/ScreenPlayer/PlayerWithExt.js +172 -115
- package/es/ScreenPlayer/RatePick.js +35 -22
- package/es/ScreenPlayer/Record.d.ts +1 -1
- package/es/ScreenPlayer/Record.js +307 -192
- package/es/ScreenPlayer/RecordTools.d.ts +2 -2
- package/es/ScreenPlayer/RecordTools.js +201 -149
- package/es/ScreenPlayer/ScreenSelect.js +37 -28
- package/es/ScreenPlayer/SegmentTimeLine.d.ts +1 -1
- package/es/ScreenPlayer/SegmentTimeLine.js +24 -17
- package/es/ScreenPlayer/TimeMode.js +22 -16
- package/es/ScreenPlayer/TimeSelect.js +86 -65
- package/es/ScreenPlayer/demo.js +16 -18
- package/es/ScreenPlayer/demo2.js +193 -178
- package/es/ScreenPlayer/index.d.ts +1 -0
- package/es/ScreenPlayer/index.js +3 -3
- package/es/ScreenPlayer/index.less +178 -0
- package/es/ScreenPlayer/interface.d.ts +2 -2
- package/es/ScreenPlayer/useTimeSlider.d.ts +8 -8
- package/es/ScreenPlayer/useTimeSlider.js +167 -60
- package/es/ScreenPlayer/useVideoFit.d.ts +1 -1
- package/es/ScreenPlayer/useVideoFit.js +18 -5
- package/es/ScreenPlayer/utils.d.ts +1 -1
- package/es/ScreenPlayer/utils.js +10 -1
- package/es/SegmentPlayer/index.js +1 -1
- package/es/Service/fetch-adapter.d.ts +1 -1
- package/es/Service/fetch-adapter.js +48 -5
- package/es/Service/http.js +46 -16
- package/es/Service/index.js +2 -2
- package/es/TableLayout/index.js +18 -12
- package/es/TableLayout/{index.css → index.less} +0 -0
- package/es/ThemeAntd/demo.d.ts +1 -0
- package/es/ThemeAntd/demo.js +126 -76
- package/es/ThemeAntd/{demo.css → demo.less} +4 -3
- package/es/ThemeAntd/index.js +6 -2
- package/es/ThemeAntd/index.less +16 -0
- package/es/ThemeAntd/style/button.less +67 -0
- package/es/ThemeAntd/style/checkbox.less +72 -0
- package/es/ThemeAntd/style/form.less +12 -0
- package/es/ThemeAntd/style/input.less +83 -0
- package/es/ThemeAntd/style/pagination.less +95 -0
- package/es/ThemeAntd/style/picker.less +106 -0
- package/es/ThemeAntd/style/popover.less +5 -0
- package/es/ThemeAntd/style/radio.less +87 -0
- package/es/ThemeAntd/style/{scrollbar.css → scrollbar.less} +4 -2
- package/es/ThemeAntd/style/select.less +81 -0
- package/es/ThemeAntd/style/table.less +57 -0
- package/es/ThemeAntd/style/tree.less +18 -0
- package/es/Timeout/index.js +36 -12
- package/es/Tree/demo.js +26 -21
- package/es/Tree/index.js +51 -30
- package/es/Tree/index.less +59 -0
- package/es/index.d.ts +1 -0
- package/es/index.js +48 -47
- package/es/useDrawROI/index.js +130 -65
- package/es/useEventEmitterHandle/index.js +6 -2
- package/es/useFullscreen/demo.js +44 -27
- package/es/useFullscreen/index.js +30 -8
- package/es/useHistory/index.js +3 -1
- package/es/useInfiniteScroll/index.js +50 -19
- package/es/useRafInterval/index.js +28 -4
- package/es/useSimpleState/index.js +23 -6
- package/es/useVirtualList/index.js +58 -20
- package/es/utils.d.ts +1 -1
- package/es/utils.js +53 -14
- package/package.json +37 -32
- package/tsconfig.json +8 -32
- package/.eslintrc +0 -4
- package/.fatherrc.js +0 -25
- package/.prettierrc +0 -11
- package/.umirc.ts +0 -55
- package/clear-cache.sh +0 -4
- package/es/Box/InfoBox/index.css +0 -22
- package/es/Box/TwoColumnBox/index.css +0 -70
- package/es/CheckGroupFixed/index.css +0 -49
- package/es/CustomRenderSelect/index.css +0 -20
- package/es/Drawer/Demo.js +0 -59
- package/es/Drawer/index.css +0 -40
- package/es/FullScreen/index.css +0 -16
- package/es/ImageView/index.css +0 -10
- package/es/Input/index.css +0 -8
- package/es/LabelValue/index.css +0 -18
- package/es/List/DynamicList/index.css +0 -15
- package/es/Map/BasicMap/index.css +0 -24
- package/es/Map/ClusterLayer/index.css +0 -26
- package/es/Map/MapDrawSelect/index.css +0 -0
- package/es/Map/ResetTools/index.css +0 -32
- package/es/Map/SinglePoint/icon/Place_icon_OnLine_Hover.svg +0 -15
- package/es/Map/SinglePoint/icon/Place_icon_OnLine_Normal.svg +0 -15
- package/es/Map/SinglePoint/icon/Place_icon_OutLine_Hover.svg +0 -15
- package/es/Map/SinglePoint/icon/Place_icon_OutLine_Normal.svg +0 -15
- package/es/Map/SinglePoint/index.css +0 -29
- package/es/Map/useMarker/index.css +0 -0
- package/es/Modal/index.css +0 -43
- package/es/Picture/component/DefaultRects/index.css +0 -247
- package/es/Picture/component/RectMenu/index.css +0 -31
- package/es/Picture/component/Tools/index.css +0 -42
- package/es/Picture/index.css +0 -12
- package/es/Player/style/bar.css +0 -38
- package/es/Player/style/index.css +0 -30
- package/es/Player/style/message.css +0 -49
- package/es/Player/style/slider.css +0 -96
- package/es/Player/style/timeline.css +0 -99
- package/es/Player/style/volume.css +0 -19
- package/es/Progress/index.css +0 -20
- package/es/ROI/index.css +0 -29
- package/es/ScreenPlayer/index.css +0 -166
- package/es/ThemeAntd/index.css +0 -620
- package/es/ThemeAntd/style/button.css +0 -55
- package/es/ThemeAntd/style/checkbox.css +0 -64
- package/es/ThemeAntd/style/form.css +0 -10
- package/es/ThemeAntd/style/input.css +0 -68
- package/es/ThemeAntd/style/pagination.css +0 -82
- package/es/ThemeAntd/style/picker.css +0 -98
- package/es/ThemeAntd/style/popover.css +0 -3
- package/es/ThemeAntd/style/radio.css +0 -80
- package/es/ThemeAntd/style/select.css +0 -76
- package/es/ThemeAntd/style/table.css +0 -46
- package/es/ThemeAntd/style/tree.css +0 -16
- package/es/Tree/index.css +0 -64
|
@@ -1,85 +1,105 @@
|
|
|
1
1
|
import "antd/lib/skeleton/style";
|
|
2
2
|
import _Skeleton from "antd/lib/skeleton";
|
|
3
3
|
import _useUpdateEffect from "ahooks/es/useUpdateEffect";
|
|
4
|
+
|
|
4
5
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
6
|
+
|
|
5
7
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
8
|
+
|
|
6
9
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
10
|
+
|
|
7
11
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
12
|
+
|
|
8
13
|
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
14
|
+
|
|
9
15
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
16
|
+
|
|
10
17
|
import React, { useMemo, useRef } from 'react';
|
|
11
|
-
import useVirtualList from
|
|
12
|
-
import { LIMIT, skeletonList } from
|
|
13
|
-
import useInfiniteScroll from
|
|
14
|
-
import "./index.
|
|
18
|
+
import useVirtualList from "../../useVirtualList";
|
|
19
|
+
import { LIMIT, skeletonList } from "./utils";
|
|
20
|
+
import useInfiniteScroll from "../../useInfiniteScroll";
|
|
21
|
+
import "./index.less";
|
|
22
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
23
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
|
+
|
|
15
25
|
function DynamicList(_ref) {
|
|
16
26
|
var renderItem = _ref.renderItem,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
27
|
+
itemHeight = _ref.itemHeight,
|
|
28
|
+
itemClassName = _ref.itemClassName,
|
|
29
|
+
reloadDeps = _ref.reloadDeps,
|
|
30
|
+
loadPage = _ref.loadPage;
|
|
21
31
|
var containerRef = useRef();
|
|
22
32
|
var wrapperRef = useRef();
|
|
33
|
+
|
|
23
34
|
var _useInfiniteScroll = useInfiniteScroll(loadPage, {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
target: containerRef,
|
|
36
|
+
threshold: 50,
|
|
37
|
+
isNoMore: function isNoMore(d) {
|
|
38
|
+
var _d$list;
|
|
39
|
+
|
|
40
|
+
return (d === null || d === void 0 ? void 0 : (_d$list = d.list) === null || _d$list === void 0 ? void 0 : _d$list.length) >= (d === null || d === void 0 ? void 0 : d.count);
|
|
41
|
+
},
|
|
42
|
+
reloadDeps: reloadDeps
|
|
43
|
+
}),
|
|
44
|
+
data = _useInfiniteScroll.data,
|
|
45
|
+
loading = _useInfiniteScroll.loading,
|
|
46
|
+
noMore = _useInfiniteScroll.noMore;
|
|
47
|
+
|
|
35
48
|
var isSkeleton = useMemo(function () {
|
|
36
49
|
return !noMore && loading;
|
|
37
50
|
}, [noMore, loading]);
|
|
38
51
|
var dataList = useMemo(function () {
|
|
39
52
|
return data ? data.list || [] : [];
|
|
40
53
|
}, [data]);
|
|
54
|
+
|
|
41
55
|
var _useVirtualList = useVirtualList(dataList, {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
56
|
+
containerTarget: containerRef,
|
|
57
|
+
wrapperTarget: wrapperRef,
|
|
58
|
+
itemHeight: itemHeight,
|
|
59
|
+
overscan: 10
|
|
60
|
+
}),
|
|
61
|
+
_useVirtualList2 = _slicedToArray(_useVirtualList, 2),
|
|
62
|
+
list = _useVirtualList2[0],
|
|
63
|
+
scrollTo = _useVirtualList2[1];
|
|
64
|
+
|
|
50
65
|
_useUpdateEffect(function () {
|
|
51
66
|
return scrollTo(0);
|
|
52
67
|
}, reloadDeps ? reloadDeps : []);
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
68
|
+
|
|
69
|
+
return /*#__PURE__*/_jsx("div", {
|
|
70
|
+
className: "l-c-dynamic-list-layout",
|
|
71
|
+
children: /*#__PURE__*/_jsxs("div", {
|
|
72
|
+
className: "l-c-dynamic-box",
|
|
73
|
+
ref: containerRef,
|
|
74
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
75
|
+
ref: wrapperRef,
|
|
76
|
+
children: list.map(function (item) {
|
|
77
|
+
return /*#__PURE__*/_jsx("div", {
|
|
78
|
+
style: {
|
|
79
|
+
height: itemHeight
|
|
80
|
+
},
|
|
81
|
+
className: itemClassName,
|
|
82
|
+
children: renderItem(item)
|
|
83
|
+
}, item.index);
|
|
84
|
+
})
|
|
85
|
+
}), isSkeleton && skeletonList.map(function (_, index) {
|
|
86
|
+
return /*#__PURE__*/_jsx("div", {
|
|
87
|
+
style: {
|
|
88
|
+
padding: '0 10px',
|
|
89
|
+
height: itemHeight
|
|
90
|
+
},
|
|
91
|
+
className: itemClassName,
|
|
92
|
+
children: /*#__PURE__*/_jsx(_Skeleton, {
|
|
93
|
+
paragraph: false,
|
|
94
|
+
loading: true,
|
|
95
|
+
active: true
|
|
96
|
+
})
|
|
97
|
+
}, index);
|
|
98
|
+
})]
|
|
99
|
+
})
|
|
100
|
+
});
|
|
82
101
|
}
|
|
102
|
+
|
|
83
103
|
DynamicList.defaultProps = {
|
|
84
104
|
limit: LIMIT,
|
|
85
105
|
itemHeight: 40,
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
.l-c-dynamic-list-layout {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
width: 100%;
|
|
5
|
+
height: 100%;
|
|
6
|
+
border: 1px solid var(--gray2);
|
|
7
|
+
.dynamic-list-item {
|
|
8
|
+
padding: 0 10px;
|
|
9
|
+
}
|
|
10
|
+
.l-c-dynamic-box {
|
|
11
|
+
flex: 1;
|
|
12
|
+
overflow: auto;
|
|
13
|
+
contain: strict;
|
|
14
|
+
}
|
|
15
|
+
}
|
package/es/List/GridList/Demo.js
CHANGED
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
|
|
2
3
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
+
|
|
3
5
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
|
+
|
|
4
7
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
8
|
+
|
|
5
9
|
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
10
|
+
|
|
6
11
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
|
+
|
|
7
13
|
import React, { useEffect, useState } from 'react';
|
|
8
|
-
import GridList from
|
|
9
|
-
import data from
|
|
14
|
+
import GridList from "./index";
|
|
15
|
+
import data from "./data.json";
|
|
16
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
17
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
18
|
var ITEM_WIDTH = 300;
|
|
19
|
+
|
|
11
20
|
function getGridGap(elementWidth, windowHeight) {
|
|
12
21
|
if (elementWidth > 720 && windowHeight > 480) {
|
|
13
22
|
return 20;
|
|
@@ -15,12 +24,15 @@ function getGridGap(elementWidth, windowHeight) {
|
|
|
15
24
|
return 10;
|
|
16
25
|
}
|
|
17
26
|
}
|
|
27
|
+
|
|
18
28
|
function getColumnCount(elementWidth, gridGap) {
|
|
19
29
|
return Math.floor((elementWidth + gridGap) / (ITEM_WIDTH + gridGap));
|
|
20
30
|
}
|
|
31
|
+
|
|
21
32
|
function getWindowMargin(windowHeight) {
|
|
22
33
|
return Math.round(windowHeight * 1.5);
|
|
23
34
|
}
|
|
35
|
+
|
|
24
36
|
function getItemData(image, columnWidth) {
|
|
25
37
|
return {
|
|
26
38
|
key: image.index,
|
|
@@ -29,51 +41,61 @@ function getItemData(image, columnWidth) {
|
|
|
29
41
|
url: image.url
|
|
30
42
|
};
|
|
31
43
|
}
|
|
44
|
+
|
|
32
45
|
var App = function App() {
|
|
33
46
|
var _useState = useState([]),
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
47
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
48
|
+
list = _useState2[0],
|
|
49
|
+
setlist = _useState2[1];
|
|
50
|
+
|
|
37
51
|
useEffect(function () {
|
|
38
52
|
setTimeout(function () {
|
|
39
53
|
return setlist(data.data.list);
|
|
40
54
|
}, 2000);
|
|
41
55
|
}, []);
|
|
42
|
-
return /*#__PURE__*/
|
|
56
|
+
return /*#__PURE__*/_jsx("div", {
|
|
43
57
|
style: {
|
|
44
58
|
height: 800,
|
|
45
59
|
overflow: 'auto'
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
60
|
+
},
|
|
61
|
+
children: /*#__PURE__*/_jsx(GridList, {
|
|
62
|
+
items: list,
|
|
63
|
+
getGridGap: getGridGap,
|
|
64
|
+
getColumnCount: getColumnCount,
|
|
65
|
+
getWindowMargin: getWindowMargin,
|
|
66
|
+
getItemData: getItemData,
|
|
67
|
+
renderItem: function renderItem(image, cell) {
|
|
68
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
69
|
+
style: {
|
|
70
|
+
border: '1px solid gray',
|
|
71
|
+
height: '100%',
|
|
72
|
+
display: 'flex',
|
|
73
|
+
flexDirection: 'column'
|
|
74
|
+
},
|
|
75
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
76
|
+
style: {
|
|
77
|
+
flex: 1,
|
|
78
|
+
overflow: 'hidden'
|
|
79
|
+
},
|
|
80
|
+
children: /*#__PURE__*/_jsx("img", {
|
|
81
|
+
src: image.url,
|
|
82
|
+
alt: "",
|
|
83
|
+
style: {
|
|
84
|
+
objectFit: 'cover',
|
|
85
|
+
display: 'block',
|
|
86
|
+
width: '100%',
|
|
87
|
+
height: '100%'
|
|
88
|
+
}
|
|
89
|
+
})
|
|
90
|
+
}), /*#__PURE__*/_jsx("p", {
|
|
91
|
+
children: image.deviceName
|
|
92
|
+
}), /*#__PURE__*/_jsx("p", {
|
|
93
|
+
children: "\u63CF\u8FF0"
|
|
94
|
+
})]
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
})
|
|
98
|
+
});
|
|
78
99
|
};
|
|
100
|
+
|
|
79
101
|
export default App;
|
|
@@ -5,7 +5,7 @@ export declare function useConstRef<T>(value: T): ConstRef<T>;
|
|
|
5
5
|
export declare function useWindowSize(): ElementSize;
|
|
6
6
|
export declare function useElementSize(ref: RefObject<Element>): ElementSize | null;
|
|
7
7
|
export declare function useWindowScroll(): ElementScroll;
|
|
8
|
-
export declare function useElementWindowOffset(ref: RefObject<HTMLElement>): number;
|
|
8
|
+
export declare function useElementWindowOffset(ref: RefObject<HTMLElement>): number | null;
|
|
9
9
|
export declare function useIntersecting(ref: RefObject<HTMLElement>, rootMargin: string): boolean;
|
|
10
10
|
export declare function useGridListContainerData(ref: RefObject<HTMLElement>): GridListContainerData;
|
|
11
11
|
export declare function useGridListConfigData<P>(containerData: GridListContainerData, props: GridListProps<P>): GridListConfigData<P> | null;
|
package/es/List/GridList/hook.js
CHANGED
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
import _useScroll from "ahooks/es/useScroll";
|
|
2
|
+
|
|
2
3
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
4
|
+
|
|
3
5
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
6
|
+
|
|
4
7
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
8
|
+
|
|
5
9
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
10
|
+
|
|
6
11
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
12
|
+
|
|
7
13
|
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
14
|
+
|
|
8
15
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
16
|
+
|
|
9
17
|
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
10
|
-
import { getColumnWidth, getElementOffset, getElementSize, getWindowScroll, getWindowSize, isSameElementScroll, isSameElementSize } from
|
|
18
|
+
import { getColumnWidth, getElementOffset, getElementSize, getWindowScroll, getWindowSize, isSameElementScroll, isSameElementSize } from "./utils";
|
|
11
19
|
export function useConstRef(value) {
|
|
12
20
|
var ref = useRef(value);
|
|
13
21
|
ref.current = value;
|
|
@@ -15,19 +23,22 @@ export function useConstRef(value) {
|
|
|
15
23
|
}
|
|
16
24
|
export function useWindowSize() {
|
|
17
25
|
var _useState = useState(function () {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
26
|
+
return getWindowSize();
|
|
27
|
+
}),
|
|
28
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
29
|
+
windowSize = _useState2[0],
|
|
30
|
+
setWindowSize = _useState2[1];
|
|
31
|
+
|
|
23
32
|
var windowSizeRef = useConstRef(windowSize);
|
|
24
33
|
useEffect(function () {
|
|
25
34
|
function onResize() {
|
|
26
35
|
var nextWindowSize = getWindowSize();
|
|
36
|
+
|
|
27
37
|
if (!isSameElementSize(windowSizeRef.current, nextWindowSize)) {
|
|
28
38
|
setWindowSize(nextWindowSize);
|
|
29
39
|
}
|
|
30
40
|
}
|
|
41
|
+
|
|
31
42
|
window.addEventListener('resize', onResize);
|
|
32
43
|
return function () {
|
|
33
44
|
return window.removeEventListener('resize', onResize);
|
|
@@ -37,19 +48,21 @@ export function useWindowSize() {
|
|
|
37
48
|
}
|
|
38
49
|
export function useElementSize(ref) {
|
|
39
50
|
var _useState3 = useState(function () {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
51
|
+
if (ref.current) {
|
|
52
|
+
return getElementSize(ref.current);
|
|
53
|
+
} else {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
}),
|
|
57
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
58
|
+
elementSize = _useState4[0],
|
|
59
|
+
setElementSize = _useState4[1];
|
|
60
|
+
|
|
49
61
|
var elementSizeRef = useConstRef(elementSize);
|
|
50
62
|
useEffect(function () {
|
|
51
63
|
var observer = new ResizeObserver(function (entries) {
|
|
52
64
|
var nextElementSize = getElementSize(entries[0].target);
|
|
65
|
+
|
|
53
66
|
if (elementSizeRef.current === null || !isSameElementSize(elementSizeRef.current, nextElementSize)) {
|
|
54
67
|
setElementSize(nextElementSize);
|
|
55
68
|
}
|
|
@@ -63,17 +76,20 @@ export function useElementSize(ref) {
|
|
|
63
76
|
}
|
|
64
77
|
export function useWindowScroll() {
|
|
65
78
|
var _useState5 = useState(getWindowScroll()),
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
79
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
80
|
+
scrollPosition = _useState6[0],
|
|
81
|
+
setScrollPosition = _useState6[1];
|
|
82
|
+
|
|
69
83
|
var ref = useConstRef(scrollPosition);
|
|
70
84
|
useEffect(function () {
|
|
71
85
|
function update() {
|
|
72
86
|
var nextScrollPosition = getWindowScroll();
|
|
87
|
+
|
|
73
88
|
if (!isSameElementScroll(ref.current, nextScrollPosition)) {
|
|
74
89
|
setScrollPosition(nextScrollPosition);
|
|
75
90
|
}
|
|
76
91
|
}
|
|
92
|
+
|
|
77
93
|
window.addEventListener('scroll', update);
|
|
78
94
|
window.addEventListener('resize', update);
|
|
79
95
|
return function () {
|
|
@@ -85,15 +101,16 @@ export function useWindowScroll() {
|
|
|
85
101
|
}
|
|
86
102
|
export function useElementWindowOffset(ref) {
|
|
87
103
|
var _useState7 = useState(function () {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
104
|
+
if (ref.current) {
|
|
105
|
+
return getElementOffset(ref.current);
|
|
106
|
+
} else {
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
}),
|
|
110
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
111
|
+
elementOffset = _useState8[0],
|
|
112
|
+
setElementOffset = _useState8[1];
|
|
113
|
+
|
|
97
114
|
useEffect(function () {
|
|
98
115
|
var observer = new ResizeObserver(function (entries) {
|
|
99
116
|
setElementOffset(getElementOffset(entries[0].target));
|
|
@@ -107,9 +124,10 @@ export function useElementWindowOffset(ref) {
|
|
|
107
124
|
}
|
|
108
125
|
export function useIntersecting(ref, rootMargin) {
|
|
109
126
|
var _useState9 = useState(false),
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
127
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
128
|
+
intersecting = _useState10[0],
|
|
129
|
+
setIntersecting = _useState10[1];
|
|
130
|
+
|
|
113
131
|
useEffect(function () {
|
|
114
132
|
var observer = new IntersectionObserver(function (entries) {
|
|
115
133
|
setIntersecting(entries[0].isIntersecting);
|
|
@@ -125,7 +143,9 @@ export function useIntersecting(ref, rootMargin) {
|
|
|
125
143
|
}
|
|
126
144
|
export function useGridListContainerData(ref) {
|
|
127
145
|
var windowSize = useWindowSize();
|
|
146
|
+
|
|
128
147
|
var windowScroll = _useScroll(ref);
|
|
148
|
+
|
|
129
149
|
var elementWindowOffset = useElementWindowOffset(ref);
|
|
130
150
|
var elementSize = useElementSize(ref);
|
|
131
151
|
return useMemo(function () {
|
|
@@ -142,10 +162,10 @@ export function useGridListContainerData(ref) {
|
|
|
142
162
|
}
|
|
143
163
|
export function useGridListConfigData(containerData, props) {
|
|
144
164
|
var items = props.items,
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
165
|
+
getWindowMargin = props.getWindowMargin,
|
|
166
|
+
getGridGap = props.getGridGap,
|
|
167
|
+
getColumnCount = props.getColumnCount,
|
|
168
|
+
getItemData = props.getItemData;
|
|
149
169
|
var elementWidth = containerData.elementSize ? containerData.elementSize.width : null;
|
|
150
170
|
var windowMargin = useMemo(function () {
|
|
151
171
|
if (getWindowMargin) {
|
|
@@ -156,6 +176,7 @@ export function useGridListConfigData(containerData, props) {
|
|
|
156
176
|
}, [containerData.windowSize.height, getWindowMargin]);
|
|
157
177
|
var gridGap = useMemo(function () {
|
|
158
178
|
if (elementWidth === null) return null;
|
|
179
|
+
|
|
159
180
|
if (getGridGap) {
|
|
160
181
|
return getGridGap(elementWidth, containerData.windowSize.height);
|
|
161
182
|
} else {
|
|
@@ -182,6 +203,7 @@ export function useGridListConfigData(containerData, props) {
|
|
|
182
203
|
if (windowMargin === null || gridGap === null || columnCount === null || entries === null) {
|
|
183
204
|
return null;
|
|
184
205
|
}
|
|
206
|
+
|
|
185
207
|
return {
|
|
186
208
|
windowMargin: windowMargin,
|
|
187
209
|
gridGap: gridGap,
|
|
@@ -200,11 +222,13 @@ export function useGridListLayoutData(configData) {
|
|
|
200
222
|
var key = entry.data.key;
|
|
201
223
|
var columnNumber = index % configData.columnCount + 1;
|
|
202
224
|
var rowNumber = Math.floor(index / configData.columnCount) + 1;
|
|
225
|
+
|
|
203
226
|
if (rowNumber !== currentRowNumber) {
|
|
204
227
|
currentRowNumber = rowNumber;
|
|
205
228
|
prevRowsTotalHeight += currentRowMaxHeight + configData.gridGap;
|
|
206
229
|
currentRowMaxHeight = 0;
|
|
207
230
|
}
|
|
231
|
+
|
|
208
232
|
var offset = prevRowsTotalHeight;
|
|
209
233
|
var height = Math.round(entry.data.height);
|
|
210
234
|
var width = Math.round(entry.data.width);
|
|
@@ -232,10 +256,13 @@ export function useGridListRenderData(containerData, configData, layoutData) {
|
|
|
232
256
|
var cellsToRender = [];
|
|
233
257
|
var firstRenderedRowNumber = null;
|
|
234
258
|
var firstRenderedRowOffset = null;
|
|
259
|
+
|
|
235
260
|
if (containerData.elementWindowOffset !== null) {
|
|
236
261
|
var elementWindowOffset = containerData.elementWindowOffset;
|
|
262
|
+
|
|
237
263
|
var _iterator = _createForOfIteratorHelper(layoutData.cells),
|
|
238
|
-
|
|
264
|
+
_step;
|
|
265
|
+
|
|
239
266
|
try {
|
|
240
267
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
241
268
|
var cell = _step.value;
|
|
@@ -247,12 +274,15 @@ export function useGridListRenderData(containerData, configData, layoutData) {
|
|
|
247
274
|
var renderBottom = windowBottom + configData.windowMargin;
|
|
248
275
|
if (cellTop > renderBottom) continue;
|
|
249
276
|
if (cellBottom < renderTop) continue;
|
|
277
|
+
|
|
250
278
|
if (firstRenderedRowNumber === null) {
|
|
251
279
|
firstRenderedRowNumber = cell.rowNumber;
|
|
252
280
|
}
|
|
281
|
+
|
|
253
282
|
if (cell.rowNumber === firstRenderedRowNumber) {
|
|
254
283
|
firstRenderedRowOffset = firstRenderedRowOffset ? Math.min(firstRenderedRowOffset, cell.offset) : cell.offset;
|
|
255
284
|
}
|
|
285
|
+
|
|
256
286
|
cellsToRender.push(cell);
|
|
257
287
|
}
|
|
258
288
|
} catch (err) {
|
|
@@ -261,6 +291,7 @@ export function useGridListRenderData(containerData, configData, layoutData) {
|
|
|
261
291
|
_iterator.f();
|
|
262
292
|
}
|
|
263
293
|
}
|
|
294
|
+
|
|
264
295
|
return {
|
|
265
296
|
cellsToRender: cellsToRender,
|
|
266
297
|
firstRenderedRowNumber: firstRenderedRowNumber,
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React, { useRef } from 'react';
|
|
2
|
-
import { useGridListConfigData, useGridListContainerData, useGridListLayoutData, useGridListRenderData, useIntersecting } from
|
|
3
|
-
import { getGridRowStart } from
|
|
4
|
-
import "./index.
|
|
2
|
+
import { useGridListConfigData, useGridListContainerData, useGridListLayoutData, useGridListRenderData, useIntersecting } from "./hook";
|
|
3
|
+
import { getGridRowStart } from "./utils";
|
|
4
|
+
import "./index.less";
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
6
|
var GridList = /*#__PURE__*/React.forwardRef(function GridList(props, ref) {
|
|
6
7
|
var containerRef = useRef(null);
|
|
7
8
|
var domRef = ref !== null && ref !== void 0 ? ref : containerRef;
|
|
@@ -11,33 +12,36 @@ var GridList = /*#__PURE__*/React.forwardRef(function GridList(props, ref) {
|
|
|
11
12
|
var renderData = useGridListRenderData(containerData, configData, layoutData);
|
|
12
13
|
var intersecting = useIntersecting(domRef, "".concat(configData !== null ? configData.windowMargin : 0, "px"));
|
|
13
14
|
var colWidth = props.fixedColumnWidth ? "".concat(props.fixedColumnWidth, "px") : '1fr';
|
|
14
|
-
return /*#__PURE__*/
|
|
15
|
+
return /*#__PURE__*/_jsx("div", {
|
|
15
16
|
ref: domRef,
|
|
16
|
-
className: "cloudapp-grid-list ".concat(props.className || '')
|
|
17
|
-
|
|
18
|
-
style: {
|
|
19
|
-
boxSizing: 'border-box',
|
|
20
|
-
height: layoutData !== null ? layoutData.totalHeight : undefined,
|
|
21
|
-
paddingTop: renderData !== null && renderData.firstRenderedRowOffset !== null ? renderData.firstRenderedRowOffset : 0
|
|
22
|
-
}
|
|
23
|
-
}, intersecting && /*#__PURE__*/React.createElement("div", {
|
|
24
|
-
style: {
|
|
25
|
-
display: 'grid',
|
|
26
|
-
gridTemplateColumns: configData !== null ? "repeat(".concat(configData.columnCount, ", ").concat(colWidth, ")") : undefined,
|
|
27
|
-
gridGap: configData ? configData.gridGap : undefined,
|
|
28
|
-
justifyContent: 'center',
|
|
29
|
-
alignItems: 'center'
|
|
30
|
-
}
|
|
31
|
-
}, renderData !== null && renderData.cellsToRender.map(function (cell) {
|
|
32
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
33
|
-
key: cell.key,
|
|
17
|
+
className: "cloudapp-grid-list ".concat(props.className || ''),
|
|
18
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
34
19
|
style: {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
20
|
+
boxSizing: 'border-box',
|
|
21
|
+
height: layoutData !== null ? layoutData.totalHeight : undefined,
|
|
22
|
+
paddingTop: renderData !== null && renderData.firstRenderedRowOffset !== null ? renderData.firstRenderedRowOffset : 0
|
|
23
|
+
},
|
|
24
|
+
children: intersecting && /*#__PURE__*/_jsx("div", {
|
|
25
|
+
style: {
|
|
26
|
+
display: 'grid',
|
|
27
|
+
gridTemplateColumns: configData !== null ? "repeat(".concat(configData.columnCount, ", ").concat(colWidth, ")") : undefined,
|
|
28
|
+
gridGap: configData ? configData.gridGap : undefined,
|
|
29
|
+
justifyContent: 'center',
|
|
30
|
+
alignItems: 'center'
|
|
31
|
+
},
|
|
32
|
+
children: renderData !== null && renderData.cellsToRender.map(function (cell) {
|
|
33
|
+
return /*#__PURE__*/_jsx("div", {
|
|
34
|
+
style: {
|
|
35
|
+
height: cell.height,
|
|
36
|
+
maxWidth: cell.width,
|
|
37
|
+
gridColumnStart: "".concat(cell.columnNumber),
|
|
38
|
+
gridRowStart: getGridRowStart(cell, renderData)
|
|
39
|
+
},
|
|
40
|
+
children: props.renderItem(cell.item, cell)
|
|
41
|
+
}, cell.key);
|
|
42
|
+
})
|
|
43
|
+
})
|
|
44
|
+
})
|
|
45
|
+
});
|
|
42
46
|
});
|
|
43
47
|
export default GridList;
|
|
File without changes
|
|
@@ -5,5 +5,5 @@ export declare function getElementSize(element: Element): ElementSize;
|
|
|
5
5
|
export declare function isSameElementScroll(a: ElementScroll, b: ElementScroll): boolean;
|
|
6
6
|
export declare function getWindowScroll(): ElementScroll;
|
|
7
7
|
export declare function getElementOffset(element: Element): number;
|
|
8
|
-
export declare function getColumnWidth(columnCount: number | null, gridGap: number | null, elementWidth: number | null): number;
|
|
9
|
-
export declare function getGridRowStart<P>(cell: GridListCell<P>, renderData: GridListRenderData<P> | null): string;
|
|
8
|
+
export declare function getColumnWidth(columnCount: number | null, gridGap: number | null, elementWidth: number | null): number | null;
|
|
9
|
+
export declare function getGridRowStart<P>(cell: GridListCell<P>, renderData: GridListRenderData<P> | null): string | undefined;
|