@cloud-app-dev/vidc 4.0.20 → 4.0.22
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/es/AppContext/Sync.js +42 -0
- package/es/AppContext/index.js +141 -0
- package/es/AppContext/interface.d.ts +41 -0
- package/es/AppContext/static.js +9 -0
- package/es/Auth/index.js +14 -0
- package/es/AutoExit/index.js +19 -0
- package/es/CheckGroupFixed/demo.js +22 -0
- package/es/CheckGroupFixed/index.js +140 -0
- package/es/CheckGroupFixed/index.less +56 -0
- package/es/Config/index.js +77 -0
- package/es/Config/interface.d.ts +65 -0
- package/es/Config/utils.js +33 -0
- package/es/ConfigContext/index.js +21 -0
- package/es/CustomRenderSelect/index.js +72 -0
- package/es/CustomRenderSelect/index.less +25 -0
- package/es/DBTools/index.js +336 -0
- package/es/DisableMark/index.js +19 -0
- package/es/DisableMark/index.less +9 -0
- package/es/DomMove/demo.js +16 -0
- package/es/DomMove/index.js +139 -0
- package/es/DomMove/utils.js +32 -0
- package/es/Drag/DragAndDropItem.js +133 -0
- package/es/Drag/DropItem.js +50 -0
- package/es/Drag/index.d.ts +9 -0
- package/es/Drag/index.js +7 -0
- package/es/Drag/interface.d.ts +16 -0
- package/es/DynamicGridList/Demo.js +77 -0
- package/es/DynamicGridList/index.js +67 -0
- package/es/DynamicList/demo.js +44 -0
- package/es/DynamicList/index.js +86 -0
- package/es/DynamicList/index.less +17 -0
- package/es/DynamicList/interface.d.ts +19 -0
- package/es/DynamicList/utils.js +6 -0
- package/es/ErrorFallback/index.js +31 -0
- package/es/ErrorFallback/inerface.d.ts +48 -0
- package/es/EventTools/index.js +12 -0
- package/es/FrontendPlayer/index.js +2 -0
- package/es/FullScreen/index.js +33 -0
- package/es/FullScreen/index.less +18 -0
- package/es/GridList/Demo.js +80 -0
- package/es/GridList/data.js +609 -0
- package/es/GridList/hook.js +270 -0
- package/es/GridList/index.js +44 -0
- package/es/GridList/index.less +8 -0
- package/es/GridList/interface.d.ts +59 -0
- package/es/GridList/utils.js +42 -0
- package/es/HightLevel/index.js +18 -0
- package/es/HightLevel/index.less +3 -0
- package/es/IconFont/index.js +54 -0
- package/es/ImageView/index.js +51 -0
- package/es/ImageView/index.less +11 -0
- package/es/InstanceHistory/index.js +7 -0
- package/es/LabelPlayer/111.png +0 -0
- package/es/LabelPlayer/demo.js +115 -0
- package/es/LabelPlayer/index.js +160 -0
- package/es/LabelPlayer/index.less +24 -0
- package/es/LabelValue/index.js +27 -0
- package/es/LabelValue/index.less +23 -0
- package/es/List/demo.js +23 -0
- package/es/List/index.js +28 -0
- package/es/List/index.less +20 -0
- package/es/ListWithSizeAnimate/demo.js +98 -0
- package/es/ListWithSizeAnimate/index.js +85 -0
- package/es/ListWithSizeAnimate/index.less +23 -0
- package/es/LoaderScript/index.js +34 -0
- package/es/LoaderScript/utils.js +179 -0
- package/es/Map/AMap.d.ts +7109 -0
- package/es/Map/BasicMap/AMapInstance.js +98 -0
- package/es/Map/BasicMap/LeafletInstance.js +111 -0
- package/es/Map/BasicMap/index.js +90 -0
- package/es/Map/BasicMap/index.less +29 -0
- package/es/Map/ClusterLayer/demo.js +18 -0
- package/es/Map/ClusterLayer/hook.js +123 -0
- package/es/Map/ClusterLayer/index.js +28 -0
- package/es/Map/ClusterLayer/index.less +29 -0
- package/es/Map/ClusterLayer/props.d.ts +8 -0
- package/es/Map/Config/index.js +48 -0
- package/es/Map/Config/utils.js +65 -0
- package/es/Map/Context/index.js +51 -0
- package/es/Map/FindPio/index.js +13 -0
- package/es/Map/FindPio/index.less +7 -0
- package/es/Map/InfoWindow/MakerLikeWindow.js +108 -0
- package/es/Map/InfoWindow/demo.js +70 -0
- package/es/Map/InfoWindow/index.js +62 -0
- package/es/Map/LevelCenter/DragMarker/index.js +42 -0
- package/es/Map/LevelCenter/demo.js +38 -0
- package/es/Map/LevelCenter/index.js +66 -0
- package/es/Map/LoaderMap/index.js +62 -0
- package/es/Map/MapDrawSelect/demo.js +71 -0
- package/es/Map/MapDrawSelect/index.js +56 -0
- package/es/Map/MouseTool/index.js +40 -0
- package/es/Map/MouseTool/useMouseTools.js +83 -0
- package/es/Map/ResetTools/index.js +57 -0
- package/es/Map/ResetTools/index.less +39 -0
- package/es/Map/SinglePoint/demo.js +14 -0
- package/es/Map/SinglePoint/index.js +52 -0
- package/es/Map/SinglePoint/index.less +41 -0
- package/es/Map/hook/useMapEvent.js +19 -0
- package/es/Map/hook/useMapType.js +12 -0
- package/es/Map/icon.js +10 -0
- package/es/Map/index.js +25 -0
- package/es/Map/interface.d.ts +74 -0
- package/es/Map/points.js +1 -0
- package/es/Map/useMarker/index.js +71 -0
- package/es/Map/withMap/index.js +10 -0
- package/es/Picture/component/DefaultRects/RectInfo.js +80 -0
- package/es/Picture/component/DefaultRects/index.js +52 -0
- package/es/Picture/component/DefaultRects/index.less +211 -0
- package/es/Picture/component/DefaultRects/utils.js +11 -0
- package/es/Picture/component/DrawRect/index.js +46 -0
- package/es/Picture/component/DrawRect/index.less +8 -0
- package/es/Picture/component/RectMenu/index.js +76 -0
- package/es/Picture/component/RectMenu/index.less +36 -0
- package/es/Picture/component/RectMenu/utils.js +19 -0
- package/es/Picture/component/Tools/index.js +73 -0
- package/es/Picture/component/Tools/index.less +49 -0
- package/es/Picture/component/WheelScale/index.js +27 -0
- package/es/Picture/demo.js +105 -0
- package/es/Picture/index.js +341 -0
- package/es/Picture/index.less +20 -0
- package/es/Picture/interface.d.ts +196 -0
- package/es/Picture/loadCaptureRectImage.js +99 -0
- package/es/Picture/useDraw.js +103 -0
- package/es/Picture/utils.js +143 -0
- package/es/Player/api/index.js +309 -0
- package/es/Player/context.js +24 -0
- package/es/Player/contraller_bar/bar.js +20 -0
- package/es/Player/contraller_bar/contraller_event.js +48 -0
- package/es/Player/contraller_bar/index.js +27 -0
- package/es/Player/contraller_bar/left_bar.js +83 -0
- package/es/Player/contraller_bar/right_bar.js +32 -0
- package/es/Player/contraller_bar/time.js +19 -0
- package/es/Player/contraller_bar/useBarStatus.js +43 -0
- package/es/Player/contraller_bar/volume.js +62 -0
- package/es/Player/demo.js +266 -0
- package/es/Player/empty.js +4 -0
- package/es/Player/event/errorEvent.js +88 -0
- package/es/Player/event/eventName.js +29 -0
- package/es/Player/event/index.js +205 -0
- package/es/Player/fps_play.js +83 -0
- package/es/Player/frontend_player.js +64 -0
- package/es/Player/frontend_timeline.js +132 -0
- package/es/Player/iconfont.js +16 -0
- package/es/Player/index.js +2 -0
- package/es/Player/live_heart.js +45 -0
- package/es/Player/message.js +133 -0
- package/es/Player/player.d.ts +233 -0
- package/es/Player/segment_player.js +228 -0
- package/es/Player/segment_timeline.js +173 -0
- package/es/Player/single_player.js +262 -0
- package/es/Player/style/bar.less +43 -0
- package/es/Player/style/iconfont.js +43 -0
- package/es/Player/style/index.less +34 -0
- package/es/Player/style/message.less +56 -0
- package/es/Player/style/slider.less +106 -0
- package/es/Player/style/timeline.less +117 -0
- package/es/Player/style/volume.less +24 -0
- package/es/Player/timeline.js +95 -0
- package/es/Player/util.js +189 -0
- package/es/PlayerExt/demo.js +154 -0
- package/es/PlayerExt/index.js +188 -0
- package/es/PlayerExt/index.less +10 -0
- package/es/Progress/index.d.ts +9 -0
- package/es/Progress/index.js +53 -0
- package/es/Progress/index.less +21 -0
- package/es/ROI/demo.js +16 -0
- package/es/ROI/index.js +54 -0
- package/es/ROI/index.less +33 -0
- package/es/RefDrawer/Footer.js +22 -0
- package/es/RefDrawer/demo.js +18 -0
- package/es/RefDrawer/index.js +71 -0
- package/es/RefModal/demo.js +18 -0
- package/es/RefModal/index.js +70 -0
- package/es/ScreenPlayer/Live.js +212 -0
- package/es/ScreenPlayer/LiveTools.js +151 -0
- package/es/ScreenPlayer/PlayerWithExt.js +231 -0
- package/es/ScreenPlayer/RatePick.js +29 -0
- package/es/ScreenPlayer/Record.js +442 -0
- package/es/ScreenPlayer/RecordTools.js +169 -0
- package/es/ScreenPlayer/ScreenSelect.js +46 -0
- package/es/ScreenPlayer/SegmentTimeLine.js +36 -0
- package/es/ScreenPlayer/TimeMode.js +26 -0
- package/es/ScreenPlayer/TimeSelect.js +88 -0
- package/es/ScreenPlayer/demo.js +21 -0
- package/es/ScreenPlayer/demo2.js +194 -0
- package/es/ScreenPlayer/index.js +9 -0
- package/es/ScreenPlayer/index.less +335 -0
- package/es/ScreenPlayer/interface.d.ts +216 -0
- package/es/ScreenPlayer/useTimeSlider.js +456 -0
- package/es/ScreenPlayer/useVideoFit.js +35 -0
- package/es/ScreenPlayer/utils.js +85 -0
- package/es/SegmentPlayer/index.js +2 -0
- package/es/Service/http.js +133 -0
- package/es/Service/index.js +11 -0
- package/es/Service/interface.d.ts +23 -0
- package/es/Service/middleware.js +22 -0
- package/es/SocketEmitter/eventEmitter.js +88 -0
- package/es/SocketEmitter/index.js +125 -0
- package/es/SocketEmitter/interface.d.ts +4 -0
- package/es/TableLayout/index.js +27 -0
- package/es/TableLayout/index.less +4 -0
- package/es/ThemeAntd/demo.js +81 -0
- package/es/ThemeAntd/demo.less +20 -0
- package/es/ThemeAntd/index.js +21 -0
- package/es/ThemeAntd/index.less +4 -0
- package/es/Timeout/index.js +65 -0
- package/es/bigNumberTransformCN/index.js +58 -0
- package/es/cache/index.js +94 -0
- package/es/copy/index.js +9 -0
- package/es/core.d.ts +0 -0
- package/es/getThemeStyle/index.js +5 -0
- package/es/index.js +62 -0
- package/es/likeGo/index.js +31 -0
- package/es/likeGoSync/index.js +10 -0
- package/es/logger/index.js +30 -0
- package/es/nextTick/index.js +3 -0
- package/es/recorder/demo.js +181 -0
- package/es/recorder/index.js +992 -0
- package/es/submidstr/index.js +14 -0
- package/es/treeHelper/index.js +188 -0
- package/es/typings.d.ts +2 -0
- package/es/useDrawROI/index.js +318 -0
- package/es/useEventEmitterHandle/index.js +17 -0
- package/es/useFullscreen/demo.js +43 -0
- package/es/useFullscreen/index.js +76 -0
- package/es/useHistory/index.js +9 -0
- package/es/useHistory/interface.d.ts +3 -0
- package/es/useInfiniteScroll/index.js +102 -0
- package/es/useRafInterval/index.js +70 -0
- package/es/useSimpleState/index.js +35 -0
- package/es/useVirtualList/index.js +136 -0
- package/es/utils.js +46 -0
- package/es/uuid/index.js +19 -0
- package/package.json +2 -3
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 文字超出中间省略号
|
|
3
|
+
* @param {string} str
|
|
4
|
+
*/
|
|
5
|
+
export default function submidstr(str) {
|
|
6
|
+
var replaceLength = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 4;
|
|
7
|
+
if (str.length > replaceLength * 2) {
|
|
8
|
+
var arr1 = str.substring(0, replaceLength);
|
|
9
|
+
var arr2 = str.substring(str.length - replaceLength, replaceLength);
|
|
10
|
+
return "".concat(arr1, "...").concat(arr2);
|
|
11
|
+
} else {
|
|
12
|
+
return str;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
6
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
|
+
import { cloneDeep, compact, orderBy } from 'lodash-es';
|
|
8
|
+
function computPlaceTree(lt, isNoDeep) {
|
|
9
|
+
var treeData;
|
|
10
|
+
var list = orderBy(lt, ['provinceId'], ['asc']);
|
|
11
|
+
if (!isNoDeep) {
|
|
12
|
+
treeData = cloneDeep(list);
|
|
13
|
+
} else {
|
|
14
|
+
treeData = list;
|
|
15
|
+
}
|
|
16
|
+
var treeMap = {};
|
|
17
|
+
treeData.forEach(function (v) {
|
|
18
|
+
treeMap[v.areaCode] = v;
|
|
19
|
+
});
|
|
20
|
+
function getPcodesPlace(codes) {
|
|
21
|
+
return compact(codes.map(function (v) {
|
|
22
|
+
return treeMap[v];
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
var arr = [];
|
|
26
|
+
treeData.forEach(function (item, index) {
|
|
27
|
+
var hasParent = false;
|
|
28
|
+
if (item.level >= 5 && Array.isArray(item.pcodes)) {
|
|
29
|
+
var pPlaces = getPcodesPlace(item.pcodes);
|
|
30
|
+
var pLevels = pPlaces.map(function (v) {
|
|
31
|
+
return v ? v.level : 0;
|
|
32
|
+
});
|
|
33
|
+
var item2 = pPlaces[pLevels.indexOf(Math.max.apply(null, pLevels))];
|
|
34
|
+
if (item2) {
|
|
35
|
+
hasParent = true;
|
|
36
|
+
if (!Array.isArray(item2.children)) {
|
|
37
|
+
item2.children = [];
|
|
38
|
+
}
|
|
39
|
+
item2.children.push(item);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (item.level < 5) {
|
|
43
|
+
if (item.parentCode && treeMap[item.parentCode]) {
|
|
44
|
+
hasParent = true;
|
|
45
|
+
var _item = treeMap[item.parentCode];
|
|
46
|
+
if (!Array.isArray(_item.children)) {
|
|
47
|
+
_item.children = [];
|
|
48
|
+
}
|
|
49
|
+
_item.children.push(item);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (!hasParent) {
|
|
53
|
+
arr.push(index);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
treeMap = null;
|
|
57
|
+
return treeData.filter(function (v, index) {
|
|
58
|
+
return arr.includes(index) && v.id !== '1200000000000000000';
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
function computPlaceTreeHasUnknown(lt, isNoDeep) {
|
|
62
|
+
var treeData;
|
|
63
|
+
var list = orderBy(lt, ['provinceId'], ['asc']);
|
|
64
|
+
if (!isNoDeep) {
|
|
65
|
+
treeData = cloneDeep(list);
|
|
66
|
+
} else {
|
|
67
|
+
treeData = list;
|
|
68
|
+
}
|
|
69
|
+
var treeMap = {};
|
|
70
|
+
treeData.forEach(function (v) {
|
|
71
|
+
treeMap[v.areaCode] = v;
|
|
72
|
+
});
|
|
73
|
+
function getPcodesPlace(codes) {
|
|
74
|
+
return compact(codes.map(function (v) {
|
|
75
|
+
return treeMap[v];
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
var arr = [];
|
|
79
|
+
treeData.forEach(function (item, index) {
|
|
80
|
+
var hasParent = false;
|
|
81
|
+
if (item.level >= 5 && Array.isArray(item.pcodes)) {
|
|
82
|
+
var pPlaces = getPcodesPlace(item.pcodes);
|
|
83
|
+
var pLevels = pPlaces.map(function (v) {
|
|
84
|
+
return v ? v.level : 0;
|
|
85
|
+
});
|
|
86
|
+
var item2 = pPlaces[pLevels.indexOf(Math.max.apply(null, pLevels))];
|
|
87
|
+
if (item2) {
|
|
88
|
+
hasParent = true;
|
|
89
|
+
if (!Array.isArray(item2.children)) {
|
|
90
|
+
item2.children = [];
|
|
91
|
+
}
|
|
92
|
+
item2.children.push(item);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
if (item.level < 5) {
|
|
96
|
+
if (item.parentCode && treeMap[item.parentCode]) {
|
|
97
|
+
hasParent = true;
|
|
98
|
+
var _item2 = treeMap[item.parentCode];
|
|
99
|
+
if (!Array.isArray(_item2.children)) {
|
|
100
|
+
_item2.children = [];
|
|
101
|
+
}
|
|
102
|
+
_item2.children.push(item);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (!hasParent) {
|
|
106
|
+
arr.push(index);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
treeMap = null;
|
|
110
|
+
return treeData.filter(function (v, index) {
|
|
111
|
+
return arr.includes(index);
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
function computTreeList(list) {
|
|
115
|
+
var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'id';
|
|
116
|
+
var pid = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'parentId';
|
|
117
|
+
var isNoDeep = arguments.length > 3 ? arguments[3] : undefined;
|
|
118
|
+
var treeData;
|
|
119
|
+
if (!isNoDeep) {
|
|
120
|
+
treeData = cloneDeep(list);
|
|
121
|
+
} else {
|
|
122
|
+
treeData = list;
|
|
123
|
+
}
|
|
124
|
+
var treeMap = {};
|
|
125
|
+
treeData.forEach(function (v) {
|
|
126
|
+
treeMap[v[id]] = v;
|
|
127
|
+
});
|
|
128
|
+
var arr = [];
|
|
129
|
+
for (var i = 0, l = treeData.length; i < l; i++) {
|
|
130
|
+
var item = treeData[i];
|
|
131
|
+
var hasParent = false;
|
|
132
|
+
if (item[pid] && treeMap[item[pid]]) {
|
|
133
|
+
hasParent = true;
|
|
134
|
+
var item2 = treeMap[item[pid]];
|
|
135
|
+
if (!Array.isArray(item2.children)) {
|
|
136
|
+
item2.children = [];
|
|
137
|
+
}
|
|
138
|
+
item2.children.push(item);
|
|
139
|
+
}
|
|
140
|
+
if (!hasParent) {
|
|
141
|
+
arr.push(i);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
treeMap = null;
|
|
145
|
+
return treeData.filter(function (_, index) {
|
|
146
|
+
return arr.includes(index);
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
function computTreeList2(list) {
|
|
150
|
+
var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'id';
|
|
151
|
+
var pKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'parentId';
|
|
152
|
+
var result = [];
|
|
153
|
+
var itemMap = {};
|
|
154
|
+
var topKeys = new Set(); // 存储顶层的key
|
|
155
|
+
for (var i = 0, l = list.length; i < l; i++) {
|
|
156
|
+
var item = list[i];
|
|
157
|
+
var id = item[key];
|
|
158
|
+
var pid = item[pKey];
|
|
159
|
+
if (!itemMap[id]) {
|
|
160
|
+
itemMap[id] = _objectSpread(_objectSpread({}, item), {}, {
|
|
161
|
+
children: []
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
itemMap[id] = _objectSpread(_objectSpread({}, item), {}, {
|
|
165
|
+
children: itemMap[id].children
|
|
166
|
+
});
|
|
167
|
+
var treeItem = itemMap[id];
|
|
168
|
+
if (!itemMap[pid]) {
|
|
169
|
+
topKeys.add(id); //找不到pid先当作顶层
|
|
170
|
+
itemMap[pid] = {
|
|
171
|
+
children: []
|
|
172
|
+
};
|
|
173
|
+
} else {
|
|
174
|
+
topKeys.delete(id); //后面找到了删除顶层
|
|
175
|
+
}
|
|
176
|
+
itemMap[pid].children.push(treeItem);
|
|
177
|
+
}
|
|
178
|
+
topKeys.forEach(function (v) {
|
|
179
|
+
return result.push(itemMap[v]);
|
|
180
|
+
}); //更具顶层key获取tree结构数据
|
|
181
|
+
return result;
|
|
182
|
+
}
|
|
183
|
+
export default {
|
|
184
|
+
computPlaceTree: computPlaceTree,
|
|
185
|
+
computTreeList: computTreeList,
|
|
186
|
+
computTreeList2: computTreeList2,
|
|
187
|
+
computPlaceTreeHasUnknown: computPlaceTreeHasUnknown
|
|
188
|
+
};
|
package/es/typings.d.ts
ADDED
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }
|
|
3
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
4
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
5
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
6
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
7
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
8
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
9
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
10
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
11
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
12
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
13
|
+
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."); }
|
|
14
|
+
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); }
|
|
15
|
+
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; }
|
|
16
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
17
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
18
|
+
import booleanDisjoint from '@turf/boolean-disjoint';
|
|
19
|
+
import { lineString } from '@turf/helpers';
|
|
20
|
+
import lineToPolygon from '@turf/line-to-polygon';
|
|
21
|
+
import { useEventListener, useLatest, usePrevious, useSize, useUpdateEffect } from 'ahooks';
|
|
22
|
+
import { getTargetElement } from 'ahooks/lib/utils/domTarget';
|
|
23
|
+
import { useEffect, useMemo } from 'react';
|
|
24
|
+
import { useHotkeys } from 'react-hotkeys-hook';
|
|
25
|
+
import useSimpleState from "../useSimpleState";
|
|
26
|
+
function useDrawROI(target, _ref) {
|
|
27
|
+
var row = _ref.row,
|
|
28
|
+
rowItems = _ref.rowItems,
|
|
29
|
+
defaultAreas = _ref.defaultAreas;
|
|
30
|
+
var _useSimpleState = useSimpleState({
|
|
31
|
+
pos: [],
|
|
32
|
+
tempPos: [],
|
|
33
|
+
saveArea: defaultAreas !== null && defaultAreas !== void 0 ? defaultAreas : [],
|
|
34
|
+
isOpen: false
|
|
35
|
+
}),
|
|
36
|
+
_useSimpleState2 = _slicedToArray(_useSimpleState, 3),
|
|
37
|
+
state = _useSimpleState2[0],
|
|
38
|
+
updateState = _useSimpleState2[1],
|
|
39
|
+
setState = _useSimpleState2[2];
|
|
40
|
+
var isOpenRef = useLatest(state.isOpen);
|
|
41
|
+
var size = useSize(target);
|
|
42
|
+
var oldSize = usePrevious(size);
|
|
43
|
+
useEffect(function () {
|
|
44
|
+
if (!(size !== null && size !== void 0 && size.width)) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
var canvas = getTargetElement(target);
|
|
48
|
+
canvas.width = size === null || size === void 0 ? void 0 : size.width;
|
|
49
|
+
canvas.height = size === null || size === void 0 ? void 0 : size.height;
|
|
50
|
+
console.warn('canvas,size变化!');
|
|
51
|
+
if (!(oldSize !== null && oldSize !== void 0 && oldSize.width)) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
var scale = size.width / oldSize.width;
|
|
55
|
+
setState(function (old) {
|
|
56
|
+
return _objectSpread(_objectSpread({}, old), {}, {
|
|
57
|
+
pos: [],
|
|
58
|
+
tempPos: [],
|
|
59
|
+
saveArea: old.saveArea.map(function (area) {
|
|
60
|
+
return area.map(function (v) {
|
|
61
|
+
return [v[0] * scale, v[1] * scale];
|
|
62
|
+
});
|
|
63
|
+
})
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
67
|
+
}, [size === null || size === void 0 ? void 0 : size.height, size === null || size === void 0 ? void 0 : size.width]);
|
|
68
|
+
useUpdateEffect(function () {
|
|
69
|
+
if (state.saveArea.length === 0 && defaultAreas && defaultAreas.length > 0) {
|
|
70
|
+
updateState({
|
|
71
|
+
saveArea: defaultAreas
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}, [defaultAreas, state.saveArea]);
|
|
75
|
+
useEventListener('click', function (event) {
|
|
76
|
+
if (!isOpenRef.current) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
var p_x = event.offsetX;
|
|
80
|
+
var p_y = event.offsetY;
|
|
81
|
+
setState(function (old) {
|
|
82
|
+
var pos = old.pos;
|
|
83
|
+
|
|
84
|
+
// 去掉重复点位,dbclick导致重复触发
|
|
85
|
+
if (!pos.find(function (_ref2) {
|
|
86
|
+
var _ref3 = _slicedToArray(_ref2, 2),
|
|
87
|
+
x = _ref3[0],
|
|
88
|
+
y = _ref3[1];
|
|
89
|
+
return x === p_x && y === p_y;
|
|
90
|
+
})) {
|
|
91
|
+
pos = [].concat(_toConsumableArray(pos), [[p_x, p_y]]);
|
|
92
|
+
}
|
|
93
|
+
return _objectSpread(_objectSpread({}, old), {}, {
|
|
94
|
+
pos: pos
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
}, {
|
|
98
|
+
target: target
|
|
99
|
+
});
|
|
100
|
+
useEventListener('dblclick', function (event) {
|
|
101
|
+
var p_x = event.offsetX;
|
|
102
|
+
var p_y = event.offsetY;
|
|
103
|
+
setState(function (old) {
|
|
104
|
+
var saveArea = old.saveArea;
|
|
105
|
+
var pos = old.pos;
|
|
106
|
+
var tempPos = old.tempPos;
|
|
107
|
+
if (pos.length > 2) {
|
|
108
|
+
// 去掉重复点位
|
|
109
|
+
if (!pos.find(function (_ref4) {
|
|
110
|
+
var _ref5 = _slicedToArray(_ref4, 2),
|
|
111
|
+
x = _ref5[0],
|
|
112
|
+
y = _ref5[1];
|
|
113
|
+
return x === p_x && y === p_y;
|
|
114
|
+
})) {
|
|
115
|
+
pos = [].concat(_toConsumableArray(pos), [[p_x, p_y]]);
|
|
116
|
+
}
|
|
117
|
+
saveArea = [].concat(_toConsumableArray(saveArea), [pos]);
|
|
118
|
+
pos = [];
|
|
119
|
+
tempPos = [];
|
|
120
|
+
}
|
|
121
|
+
return _objectSpread(_objectSpread({}, old), {}, {
|
|
122
|
+
pos: pos,
|
|
123
|
+
saveArea: saveArea,
|
|
124
|
+
tempPos: tempPos
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
}, {
|
|
128
|
+
target: target
|
|
129
|
+
});
|
|
130
|
+
useEventListener('mousemove', function (event) {
|
|
131
|
+
if (!isOpenRef.current || state.pos.length === 0) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
var p_x = event.offsetX;
|
|
135
|
+
var p_y = event.offsetY;
|
|
136
|
+
setState(function (old) {
|
|
137
|
+
return _objectSpread(_objectSpread({}, old), {}, {
|
|
138
|
+
tempPos: [p_x, p_y]
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
}, {
|
|
142
|
+
target: target
|
|
143
|
+
});
|
|
144
|
+
var clearCanvas = function clearCanvas() {
|
|
145
|
+
var canvas = getTargetElement(target);
|
|
146
|
+
var ctx = canvas.getContext('2d');
|
|
147
|
+
// 重置画布
|
|
148
|
+
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
149
|
+
};
|
|
150
|
+
var drawSavaArea = function drawSavaArea(area) {
|
|
151
|
+
var canvas = getTargetElement(target);
|
|
152
|
+
var ctx = canvas.getContext('2d');
|
|
153
|
+
// 绘制已完成的图形
|
|
154
|
+
area.forEach(function (item) {
|
|
155
|
+
// 绘制坐标线
|
|
156
|
+
var _item = _toArray(item),
|
|
157
|
+
startPos = _item[0],
|
|
158
|
+
pos = _item.slice(1);
|
|
159
|
+
ctx.beginPath();
|
|
160
|
+
ctx.moveTo.apply(ctx, _toConsumableArray(startPos));
|
|
161
|
+
pos.forEach(function (_ref6) {
|
|
162
|
+
var _ref7 = _slicedToArray(_ref6, 2),
|
|
163
|
+
x = _ref7[0],
|
|
164
|
+
y = _ref7[1];
|
|
165
|
+
return ctx.lineTo(x, y);
|
|
166
|
+
});
|
|
167
|
+
ctx.lineTo.apply(ctx, _toConsumableArray(startPos));
|
|
168
|
+
ctx.strokeStyle = '#f32d37';
|
|
169
|
+
ctx.lineWidth = 2;
|
|
170
|
+
ctx.fillStyle = 'rgba(243,45,55,0.5)';
|
|
171
|
+
ctx.fill();
|
|
172
|
+
ctx.stroke();
|
|
173
|
+
});
|
|
174
|
+
};
|
|
175
|
+
var canvasRendering = function canvasRendering(points, tempPos) {
|
|
176
|
+
if (points.length === 0) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
var canvas = getTargetElement(target);
|
|
180
|
+
var ctx = canvas.getContext('2d');
|
|
181
|
+
// 绘制坐标点
|
|
182
|
+
points.forEach(function (_ref8) {
|
|
183
|
+
var _ref9 = _slicedToArray(_ref8, 2),
|
|
184
|
+
x = _ref9[0],
|
|
185
|
+
y = _ref9[1];
|
|
186
|
+
ctx.beginPath();
|
|
187
|
+
ctx.arc(x, y, 4, 0, 2 * Math.PI);
|
|
188
|
+
ctx.fillStyle = 'red';
|
|
189
|
+
ctx.fill();
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
// 绘制坐标线
|
|
193
|
+
var _points = _toArray(points),
|
|
194
|
+
startPos = _points[0],
|
|
195
|
+
pos = _points.slice(1);
|
|
196
|
+
ctx.beginPath();
|
|
197
|
+
ctx.moveTo.apply(ctx, _toConsumableArray(startPos));
|
|
198
|
+
pos.forEach(function (_ref10) {
|
|
199
|
+
var _ref11 = _slicedToArray(_ref10, 2),
|
|
200
|
+
x = _ref11[0],
|
|
201
|
+
y = _ref11[1];
|
|
202
|
+
return ctx.lineTo(x, y);
|
|
203
|
+
});
|
|
204
|
+
var _tempPos = _slicedToArray(tempPos, 2),
|
|
205
|
+
x = _tempPos[0],
|
|
206
|
+
y = _tempPos[1];
|
|
207
|
+
if (typeof x === 'number' && typeof y === 'number') {
|
|
208
|
+
ctx.lineTo(x, y);
|
|
209
|
+
}
|
|
210
|
+
ctx.lineTo.apply(ctx, _toConsumableArray(startPos));
|
|
211
|
+
ctx.strokeStyle = '#f32d37';
|
|
212
|
+
ctx.lineWidth = 2;
|
|
213
|
+
ctx.fillStyle = 'rgba(243,45,55,0.5)';
|
|
214
|
+
ctx.fill();
|
|
215
|
+
ctx.stroke();
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
//绘制hook
|
|
219
|
+
useEffect(function () {
|
|
220
|
+
clearCanvas();
|
|
221
|
+
drawSavaArea(state.saveArea);
|
|
222
|
+
canvasRendering(state.pos, state.tempPos);
|
|
223
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
224
|
+
}, [state.pos, state.saveArea, state.tempPos]);
|
|
225
|
+
var status = useMemo(function () {
|
|
226
|
+
return state.isOpen ? 'open' : 'close';
|
|
227
|
+
}, [state.isOpen]);
|
|
228
|
+
var open = function open() {
|
|
229
|
+
return setState(function (old) {
|
|
230
|
+
return _objectSpread(_objectSpread({}, old), {}, {
|
|
231
|
+
isOpen: true
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
};
|
|
235
|
+
var close = function close() {
|
|
236
|
+
return setState(function (old) {
|
|
237
|
+
return _objectSpread(_objectSpread({}, old), {}, {
|
|
238
|
+
isOpen: false
|
|
239
|
+
});
|
|
240
|
+
});
|
|
241
|
+
};
|
|
242
|
+
var clear = function clear() {
|
|
243
|
+
return setState(function (old) {
|
|
244
|
+
return _objectSpread(_objectSpread({}, old), {}, {
|
|
245
|
+
pos: [],
|
|
246
|
+
saveArea: [],
|
|
247
|
+
tempPos: []
|
|
248
|
+
});
|
|
249
|
+
});
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
//快捷键处理
|
|
253
|
+
useHotkeys('esc', function () {
|
|
254
|
+
return setState(function (old) {
|
|
255
|
+
return _objectSpread(_objectSpread({}, old), {}, {
|
|
256
|
+
pos: [],
|
|
257
|
+
tempPos: []
|
|
258
|
+
});
|
|
259
|
+
});
|
|
260
|
+
});
|
|
261
|
+
var rio = useMemo(function () {
|
|
262
|
+
var rioArr = [];
|
|
263
|
+
var canvas = getTargetElement(target);
|
|
264
|
+
if (!canvas) {
|
|
265
|
+
rioArr = new Array(row).fill(new Array(rowItems).fill(0));
|
|
266
|
+
return rioArr;
|
|
267
|
+
}
|
|
268
|
+
var _canvas$getBoundingCl = canvas.getBoundingClientRect(),
|
|
269
|
+
width = _canvas$getBoundingCl.width,
|
|
270
|
+
height = _canvas$getBoundingCl.height;
|
|
271
|
+
var itemWidth = width / rowItems;
|
|
272
|
+
var itemHeight = height / row;
|
|
273
|
+
|
|
274
|
+
// 转换当前绘制完成的区域为多边形
|
|
275
|
+
var areas = state.saveArea.map(function (item) {
|
|
276
|
+
return lineToPolygon(lineString(item));
|
|
277
|
+
});
|
|
278
|
+
for (var i = 0; i < row; i++) {
|
|
279
|
+
var arr = [];
|
|
280
|
+
var _loop = function _loop() {
|
|
281
|
+
// x表示当地的纬度,y表示当地的经度
|
|
282
|
+
var lines = lineString([[k * itemWidth, i * itemHeight], [(k + 1) * itemWidth, i * itemHeight], [(k + 1) * itemWidth, (i + 1) * itemHeight], [k * itemWidth, (i + 1) * itemHeight], [k * itemWidth, i * itemHeight]]);
|
|
283
|
+
// 转换每格为多边形
|
|
284
|
+
var rect = lineToPolygon(lines);
|
|
285
|
+
//标记当前rect 是否与绘制的图形相交
|
|
286
|
+
var flag = areas.findIndex(function (area) {
|
|
287
|
+
return !booleanDisjoint(rect, area);
|
|
288
|
+
}) > -1;
|
|
289
|
+
arr.push(flag ? 1 : 0);
|
|
290
|
+
};
|
|
291
|
+
for (var k = 0; k < rowItems; k++) {
|
|
292
|
+
_loop();
|
|
293
|
+
}
|
|
294
|
+
rioArr.push(arr);
|
|
295
|
+
}
|
|
296
|
+
return rioArr;
|
|
297
|
+
}, [row, rowItems, state.saveArea, target]);
|
|
298
|
+
var deleteArea = function deleteArea(area) {
|
|
299
|
+
setState(function (old) {
|
|
300
|
+
var newArea = old.saveArea.filter(function (v) {
|
|
301
|
+
return v.join('-') !== area.join('-');
|
|
302
|
+
});
|
|
303
|
+
return _objectSpread(_objectSpread({}, old), {}, {
|
|
304
|
+
saveArea: _toConsumableArray(newArea)
|
|
305
|
+
});
|
|
306
|
+
});
|
|
307
|
+
};
|
|
308
|
+
return {
|
|
309
|
+
open: open,
|
|
310
|
+
close: close,
|
|
311
|
+
clear: clear,
|
|
312
|
+
rio: rio,
|
|
313
|
+
status: status,
|
|
314
|
+
areas: state.saveArea,
|
|
315
|
+
deleteArea: deleteArea
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
export default useDrawROI;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useLatest } from 'ahooks';
|
|
2
|
+
import { useEffect } from 'react';
|
|
3
|
+
import SocketEmitter from "../SocketEmitter";
|
|
4
|
+
function useEventEmitterHandle(eventName, handle) {
|
|
5
|
+
var handlerRef = useLatest(handle);
|
|
6
|
+
useEffect(function () {
|
|
7
|
+
var eventListener = function eventListener(event) {
|
|
8
|
+
return handlerRef.current(event);
|
|
9
|
+
};
|
|
10
|
+
SocketEmitter.on(eventName, eventListener);
|
|
11
|
+
return function () {
|
|
12
|
+
return SocketEmitter.off(eventName, eventListener);
|
|
13
|
+
};
|
|
14
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
15
|
+
}, [eventName]);
|
|
16
|
+
}
|
|
17
|
+
export default useEventEmitterHandle;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
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."); }
|
|
3
|
+
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); }
|
|
4
|
+
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; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
+
import { useFullscreen } from 'ahooks';
|
|
8
|
+
import React, { useRef } from 'react';
|
|
9
|
+
export default function App() {
|
|
10
|
+
var ref1 = useRef(null);
|
|
11
|
+
var ref2 = useRef(null);
|
|
12
|
+
var _useFullscreen = useFullscreen(ref1),
|
|
13
|
+
_useFullscreen2 = _slicedToArray(_useFullscreen, 2),
|
|
14
|
+
fullscreen1 = _useFullscreen2[0],
|
|
15
|
+
options1 = _useFullscreen2[1];
|
|
16
|
+
var _useFullscreen3 = useFullscreen(ref2),
|
|
17
|
+
_useFullscreen4 = _slicedToArray(_useFullscreen3, 2),
|
|
18
|
+
fullscreen2 = _useFullscreen4[0],
|
|
19
|
+
options2 = _useFullscreen4[1];
|
|
20
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
21
|
+
className: "App"
|
|
22
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
23
|
+
style: {
|
|
24
|
+
width: 400,
|
|
25
|
+
height: 400,
|
|
26
|
+
background: 'blue'
|
|
27
|
+
},
|
|
28
|
+
ref: ref1
|
|
29
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
30
|
+
type: "button",
|
|
31
|
+
onClick: options1.toggleFullscreen
|
|
32
|
+
}, "\u7236\u5143\u7D20", fullscreen1 ? '退出全屏' : '全屏'), /*#__PURE__*/React.createElement("div", {
|
|
33
|
+
style: {
|
|
34
|
+
width: 200,
|
|
35
|
+
height: 200,
|
|
36
|
+
background: 'red'
|
|
37
|
+
},
|
|
38
|
+
ref: ref2
|
|
39
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
40
|
+
type: "button",
|
|
41
|
+
onClick: options2.toggleFullscreen
|
|
42
|
+
}, "\u5B50\u5143\u7D20", fullscreen2 ? '退出全屏' : '全屏'))), /*#__PURE__*/React.createElement("div", null));
|
|
43
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
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."); }
|
|
3
|
+
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); }
|
|
4
|
+
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; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
+
import { useState } from 'react';
|
|
8
|
+
import useLatest from 'ahooks/es/useLatest';
|
|
9
|
+
import useMemoizedFn from 'ahooks/es/useMemoizedFn';
|
|
10
|
+
import useUnmount from 'ahooks/es/useUnmount';
|
|
11
|
+
import { getTargetElement } from 'ahooks/es/utils/domTarget';
|
|
12
|
+
import screenfull from 'screenfull';
|
|
13
|
+
var useFullscreen = function useFullscreen(target, options) {
|
|
14
|
+
var _ref = options || {},
|
|
15
|
+
onExit = _ref.onExit,
|
|
16
|
+
onEnter = _ref.onEnter;
|
|
17
|
+
var onExitRef = useLatest(onExit);
|
|
18
|
+
var onEnterRef = useLatest(onEnter);
|
|
19
|
+
var _useState = useState(false),
|
|
20
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
21
|
+
state = _useState2[0],
|
|
22
|
+
setState = _useState2[1];
|
|
23
|
+
var onChange = function onChange() {
|
|
24
|
+
if (screenfull.isEnabled) {
|
|
25
|
+
var el = getTargetElement(target);
|
|
26
|
+
var isFullscreen = document.fullscreenElement === el;
|
|
27
|
+
if (isFullscreen) {
|
|
28
|
+
var _onEnterRef$current;
|
|
29
|
+
(_onEnterRef$current = onEnterRef.current) === null || _onEnterRef$current === void 0 || _onEnterRef$current.call(onEnterRef);
|
|
30
|
+
} else {
|
|
31
|
+
var _onExitRef$current;
|
|
32
|
+
screenfull.off('change', onChange);
|
|
33
|
+
(_onExitRef$current = onExitRef.current) === null || _onExitRef$current === void 0 || _onExitRef$current.call(onExitRef);
|
|
34
|
+
}
|
|
35
|
+
setState(isFullscreen);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var enterFullscreen = function enterFullscreen() {
|
|
39
|
+
var el = getTargetElement(target);
|
|
40
|
+
if (!el) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (screenfull.isEnabled) {
|
|
44
|
+
try {
|
|
45
|
+
screenfull.request(el);
|
|
46
|
+
screenfull.on('change', onChange);
|
|
47
|
+
} catch (error) {
|
|
48
|
+
console.error(error);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
var exitFullscreen = function exitFullscreen() {
|
|
53
|
+
if (screenfull.isEnabled) {
|
|
54
|
+
screenfull.exit();
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
var toggleFullscreen = function toggleFullscreen() {
|
|
58
|
+
if (state) {
|
|
59
|
+
exitFullscreen();
|
|
60
|
+
} else {
|
|
61
|
+
enterFullscreen();
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
useUnmount(function () {
|
|
65
|
+
if (screenfull.isEnabled) {
|
|
66
|
+
screenfull.off('change', onChange);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
return [state, {
|
|
70
|
+
enterFullscreen: useMemoizedFn(enterFullscreen),
|
|
71
|
+
exitFullscreen: useMemoizedFn(exitFullscreen),
|
|
72
|
+
toggleFullscreen: useMemoizedFn(toggleFullscreen),
|
|
73
|
+
isEnabled: screenfull.isEnabled
|
|
74
|
+
}];
|
|
75
|
+
};
|
|
76
|
+
export default useFullscreen;
|