@uipath/apollo-react 4.32.1 → 4.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/canvas/components/AddNodePanel/AddNodeManager.cjs +1 -0
- package/dist/canvas/components/AddNodePanel/AddNodeManager.d.ts.map +1 -1
- package/dist/canvas/components/AddNodePanel/AddNodeManager.js +1 -0
- package/dist/canvas/components/CanvasModeToolbar/CanvasModeToolbar.cjs +66 -0
- package/dist/canvas/components/CanvasModeToolbar/CanvasModeToolbar.d.ts +13 -0
- package/dist/canvas/components/CanvasModeToolbar/CanvasModeToolbar.d.ts.map +1 -0
- package/dist/canvas/components/CanvasModeToolbar/CanvasModeToolbar.js +23 -0
- package/dist/canvas/components/CanvasModeToolbar/CanvasModeToolbar.types.cjs +18 -0
- package/dist/canvas/components/CanvasModeToolbar/CanvasModeToolbar.types.d.ts +10 -0
- package/dist/canvas/components/CanvasModeToolbar/CanvasModeToolbar.types.d.ts.map +1 -0
- package/dist/canvas/components/CanvasModeToolbar/CanvasModeToolbar.types.js +0 -0
- package/dist/canvas/components/CanvasModeToolbar/index.cjs +45 -0
- package/dist/canvas/components/CanvasModeToolbar/index.d.ts +4 -0
- package/dist/canvas/components/CanvasModeToolbar/index.d.ts.map +1 -0
- package/dist/canvas/components/CanvasModeToolbar/index.js +2 -0
- package/dist/canvas/components/CanvasZoomControls/CanvasZoomControls.cjs +120 -0
- package/dist/canvas/components/CanvasZoomControls/CanvasZoomControls.d.ts +18 -0
- package/dist/canvas/components/CanvasZoomControls/CanvasZoomControls.d.ts.map +1 -0
- package/dist/canvas/components/CanvasZoomControls/CanvasZoomControls.js +86 -0
- package/dist/canvas/components/CanvasZoomControls/index.cjs +36 -0
- package/dist/canvas/components/CanvasZoomControls/index.d.ts +3 -0
- package/dist/canvas/components/CanvasZoomControls/index.d.ts.map +1 -0
- package/dist/canvas/components/CanvasZoomControls/index.js +2 -0
- package/dist/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.cjs +21 -2
- package/dist/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.d.ts +2 -1
- package/dist/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.d.ts.map +1 -1
- package/dist/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.js +21 -2
- package/dist/canvas/components/FloatingCanvasPanel/PanelChrome.cjs +4 -2
- package/dist/canvas/components/FloatingCanvasPanel/PanelChrome.d.ts +2 -1
- package/dist/canvas/components/FloatingCanvasPanel/PanelChrome.d.ts.map +1 -1
- package/dist/canvas/components/FloatingCanvasPanel/PanelChrome.js +4 -2
- package/dist/canvas/components/FloatingCanvasPanel/useFloatingPosition.cjs +18 -0
- package/dist/canvas/components/FloatingCanvasPanel/useFloatingPosition.d.ts +1 -0
- package/dist/canvas/components/FloatingCanvasPanel/useFloatingPosition.d.ts.map +1 -1
- package/dist/canvas/components/FloatingCanvasPanel/useFloatingPosition.js +20 -2
- package/dist/canvas/components/ToolbarButton.cjs +63 -0
- package/dist/canvas/components/ToolbarButton.d.ts +14 -0
- package/dist/canvas/components/ToolbarButton.d.ts.map +1 -0
- package/dist/canvas/components/ToolbarButton.js +29 -0
- package/dist/canvas/components/Toolbox/Toolbox.cjs +15 -0
- package/dist/canvas/components/Toolbox/Toolbox.d.ts.map +1 -1
- package/dist/canvas/components/Toolbox/Toolbox.js +15 -0
- package/dist/canvas/components/Toolbox/Toolbox.styles.cjs +2 -2
- package/dist/canvas/components/Toolbox/Toolbox.styles.js +2 -2
- package/dist/canvas/components/index.cjs +52 -38
- package/dist/canvas/components/index.d.ts +2 -0
- package/dist/canvas/components/index.d.ts.map +1 -1
- package/dist/canvas/components/index.js +2 -0
- package/dist/canvas/hooks/index.cjs +17 -10
- package/dist/canvas/hooks/index.d.ts +1 -0
- package/dist/canvas/hooks/index.d.ts.map +1 -1
- package/dist/canvas/hooks/index.js +1 -0
- package/dist/canvas/hooks/useElementsOverlap.cjs +88 -0
- package/dist/canvas/hooks/useElementsOverlap.d.ts +6 -0
- package/dist/canvas/hooks/useElementsOverlap.d.ts.map +1 -0
- package/dist/canvas/hooks/useElementsOverlap.js +54 -0
- package/dist/canvas/styles/tailwind.canvas.css +1 -1
- package/package.json +2 -2
|
@@ -3,7 +3,9 @@ export * from './AgentCanvas';
|
|
|
3
3
|
export * from './BaseCanvas';
|
|
4
4
|
export * from './BaseNode';
|
|
5
5
|
export * from './ButtonHandle';
|
|
6
|
+
export * from './CanvasModeToolbar';
|
|
6
7
|
export * from './CanvasPositionControls';
|
|
8
|
+
export * from './CanvasZoomControls';
|
|
7
9
|
export * from './CodedAgent';
|
|
8
10
|
export * from './Edges';
|
|
9
11
|
export * from './ExecutionStatusIcon';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/canvas/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/canvas/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC"}
|
|
@@ -3,7 +3,9 @@ export * from "./AgentCanvas/index.js";
|
|
|
3
3
|
export * from "./BaseCanvas/index.js";
|
|
4
4
|
export * from "./BaseNode/index.js";
|
|
5
5
|
export * from "./ButtonHandle/index.js";
|
|
6
|
+
export * from "./CanvasModeToolbar/index.js";
|
|
6
7
|
export * from "./CanvasPositionControls.js";
|
|
8
|
+
export * from "./CanvasZoomControls/index.js";
|
|
7
9
|
export * from "./CodedAgent/index.js";
|
|
8
10
|
export * from "./Edges/index.js";
|
|
9
11
|
export * from "./ExecutionStatusIcon/index.js";
|
|
@@ -21,6 +21,9 @@ var __webpack_modules__ = {
|
|
|
21
21
|
"./useEdgePath" (module) {
|
|
22
22
|
module.exports = require("./useEdgePath.cjs");
|
|
23
23
|
},
|
|
24
|
+
"./useElementsOverlap" (module) {
|
|
25
|
+
module.exports = require("./useElementsOverlap.cjs");
|
|
26
|
+
},
|
|
24
27
|
"./useExportCanvas" (module) {
|
|
25
28
|
module.exports = require("./useExportCanvas.cjs");
|
|
26
29
|
},
|
|
@@ -101,25 +104,29 @@ var __webpack_exports__ = {};
|
|
|
101
104
|
var __rspack_reexport = {};
|
|
102
105
|
for(const __rspack_import_key in _useEdgePath__rspack_import_5)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_useEdgePath__rspack_import_5[__rspack_import_key];
|
|
103
106
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
104
|
-
var
|
|
107
|
+
var _useElementsOverlap__rspack_import_6 = __webpack_require__("./useElementsOverlap");
|
|
108
|
+
var __rspack_reexport = {};
|
|
109
|
+
for(const __rspack_import_key in _useElementsOverlap__rspack_import_6)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_useElementsOverlap__rspack_import_6[__rspack_import_key];
|
|
110
|
+
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
111
|
+
var _useExportCanvas__rspack_import_7 = __webpack_require__("./useExportCanvas");
|
|
105
112
|
var __rspack_reexport = {};
|
|
106
|
-
for(const __rspack_import_key in
|
|
113
|
+
for(const __rspack_import_key in _useExportCanvas__rspack_import_7)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_useExportCanvas__rspack_import_7[__rspack_import_key];
|
|
107
114
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
108
|
-
var
|
|
115
|
+
var _useNavigationState__rspack_import_8 = __webpack_require__("./useNavigationState");
|
|
109
116
|
var __rspack_reexport = {};
|
|
110
|
-
for(const __rspack_import_key in
|
|
117
|
+
for(const __rspack_import_key in _useNavigationState__rspack_import_8)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_useNavigationState__rspack_import_8[__rspack_import_key];
|
|
111
118
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
112
|
-
var
|
|
119
|
+
var _usePreviewNode__rspack_import_9 = __webpack_require__("./usePreviewNode");
|
|
113
120
|
var __rspack_reexport = {};
|
|
114
|
-
for(const __rspack_import_key in
|
|
121
|
+
for(const __rspack_import_key in _usePreviewNode__rspack_import_9)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_usePreviewNode__rspack_import_9[__rspack_import_key];
|
|
115
122
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
116
|
-
var
|
|
123
|
+
var _useStorageState__rspack_import_10 = __webpack_require__("./useStorageState");
|
|
117
124
|
var __rspack_reexport = {};
|
|
118
|
-
for(const __rspack_import_key in
|
|
125
|
+
for(const __rspack_import_key in _useStorageState__rspack_import_10)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_useStorageState__rspack_import_10[__rspack_import_key];
|
|
119
126
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
120
|
-
var
|
|
127
|
+
var _ValidationStatusContext__rspack_import_11 = __webpack_require__("./ValidationStatusContext");
|
|
121
128
|
var __rspack_reexport = {};
|
|
122
|
-
for(const __rspack_import_key in
|
|
129
|
+
for(const __rspack_import_key in _ValidationStatusContext__rspack_import_11)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_ValidationStatusContext__rspack_import_11[__rspack_import_key];
|
|
123
130
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
124
131
|
})();
|
|
125
132
|
for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
@@ -4,6 +4,7 @@ export * from './useAddNodeOnConnectEnd';
|
|
|
4
4
|
export * from './useCanvasEvents';
|
|
5
5
|
export * from './useCanvasNodeLayout';
|
|
6
6
|
export * from './useEdgePath';
|
|
7
|
+
export * from './useElementsOverlap';
|
|
7
8
|
export * from './useExportCanvas';
|
|
8
9
|
export * from './useNavigationState';
|
|
9
10
|
export * from './usePreviewNode';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/canvas/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/canvas/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC"}
|
|
@@ -4,6 +4,7 @@ export * from "./useAddNodeOnConnectEnd.js";
|
|
|
4
4
|
export * from "./useCanvasEvents.js";
|
|
5
5
|
export * from "./useCanvasNodeLayout.js";
|
|
6
6
|
export * from "./useEdgePath.js";
|
|
7
|
+
export * from "./useElementsOverlap.js";
|
|
7
8
|
export * from "./useExportCanvas.js";
|
|
8
9
|
export * from "./useNavigationState.js";
|
|
9
10
|
export * from "./usePreviewNode.js";
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
useElementsOverlap: ()=>useElementsOverlap
|
|
28
|
+
});
|
|
29
|
+
const external_react_namespaceObject = require("react");
|
|
30
|
+
function useElementsOverlap(obstacleRefs, triggerRefs = []) {
|
|
31
|
+
const [overlaps, setOverlaps] = (0, external_react_namespaceObject.useState)(false);
|
|
32
|
+
const [target, setTarget] = (0, external_react_namespaceObject.useState)(null);
|
|
33
|
+
const obstaclesRef = (0, external_react_namespaceObject.useRef)(obstacleRefs);
|
|
34
|
+
const triggersRef = (0, external_react_namespaceObject.useRef)(triggerRefs);
|
|
35
|
+
const targetRef = (0, external_react_namespaceObject.useCallback)((el)=>{
|
|
36
|
+
setTarget(el);
|
|
37
|
+
}, []);
|
|
38
|
+
(0, external_react_namespaceObject.useLayoutEffect)(()=>{
|
|
39
|
+
obstaclesRef.current = obstacleRefs;
|
|
40
|
+
triggersRef.current = triggerRefs;
|
|
41
|
+
});
|
|
42
|
+
(0, external_react_namespaceObject.useLayoutEffect)(()=>{
|
|
43
|
+
if (!target) return;
|
|
44
|
+
let baselineWidth = 0;
|
|
45
|
+
let baselineHeight = 0;
|
|
46
|
+
let lastOverlap = false;
|
|
47
|
+
const measure = ()=>{
|
|
48
|
+
const tRect = target.getBoundingClientRect();
|
|
49
|
+
if (!lastOverlap) {
|
|
50
|
+
baselineWidth = tRect.width;
|
|
51
|
+
baselineHeight = tRect.height;
|
|
52
|
+
}
|
|
53
|
+
const left = tRect.right - baselineWidth;
|
|
54
|
+
const top = tRect.bottom - baselineHeight;
|
|
55
|
+
let isOverlapping = false;
|
|
56
|
+
for (const ref of obstaclesRef.current){
|
|
57
|
+
const el = ref.current;
|
|
58
|
+
if (!el) continue;
|
|
59
|
+
const oRect = el.getBoundingClientRect();
|
|
60
|
+
if (!(oRect.right <= left || oRect.left >= tRect.right || oRect.bottom <= top || oRect.top >= tRect.bottom)) {
|
|
61
|
+
isOverlapping = true;
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
lastOverlap = isOverlapping;
|
|
66
|
+
setOverlaps(isOverlapping);
|
|
67
|
+
};
|
|
68
|
+
const ro = new ResizeObserver(measure);
|
|
69
|
+
ro.observe(target);
|
|
70
|
+
for (const ref of obstaclesRef.current)if (ref.current) ro.observe(ref.current);
|
|
71
|
+
for (const ref of triggersRef.current)if (ref.current) ro.observe(ref.current);
|
|
72
|
+
measure();
|
|
73
|
+
return ()=>ro.disconnect();
|
|
74
|
+
}, [
|
|
75
|
+
target
|
|
76
|
+
]);
|
|
77
|
+
return {
|
|
78
|
+
overlaps,
|
|
79
|
+
targetRef
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
exports.useElementsOverlap = __webpack_exports__.useElementsOverlap;
|
|
83
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
84
|
+
"useElementsOverlap"
|
|
85
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
86
|
+
Object.defineProperty(exports, '__esModule', {
|
|
87
|
+
value: true
|
|
88
|
+
});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type RefObject } from 'react';
|
|
2
|
+
export declare function useElementsOverlap(obstacleRefs: ReadonlyArray<RefObject<HTMLElement | null>>, triggerRefs?: ReadonlyArray<RefObject<HTMLElement | null>>): {
|
|
3
|
+
overlaps: boolean;
|
|
4
|
+
targetRef: (el: HTMLElement | null) => void;
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=useElementsOverlap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useElementsOverlap.d.ts","sourceRoot":"","sources":["../../../src/canvas/hooks/useElementsOverlap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvF,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,aAAa,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,EAC1D,WAAW,GAAE,aAAa,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAM,GAC7D;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAA;CAAE,CAiEpE"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { useCallback, useLayoutEffect, useRef, useState } from "react";
|
|
2
|
+
function useElementsOverlap(obstacleRefs, triggerRefs = []) {
|
|
3
|
+
const [overlaps, setOverlaps] = useState(false);
|
|
4
|
+
const [target, setTarget] = useState(null);
|
|
5
|
+
const obstaclesRef = useRef(obstacleRefs);
|
|
6
|
+
const triggersRef = useRef(triggerRefs);
|
|
7
|
+
const targetRef = useCallback((el)=>{
|
|
8
|
+
setTarget(el);
|
|
9
|
+
}, []);
|
|
10
|
+
useLayoutEffect(()=>{
|
|
11
|
+
obstaclesRef.current = obstacleRefs;
|
|
12
|
+
triggersRef.current = triggerRefs;
|
|
13
|
+
});
|
|
14
|
+
useLayoutEffect(()=>{
|
|
15
|
+
if (!target) return;
|
|
16
|
+
let baselineWidth = 0;
|
|
17
|
+
let baselineHeight = 0;
|
|
18
|
+
let lastOverlap = false;
|
|
19
|
+
const measure = ()=>{
|
|
20
|
+
const tRect = target.getBoundingClientRect();
|
|
21
|
+
if (!lastOverlap) {
|
|
22
|
+
baselineWidth = tRect.width;
|
|
23
|
+
baselineHeight = tRect.height;
|
|
24
|
+
}
|
|
25
|
+
const left = tRect.right - baselineWidth;
|
|
26
|
+
const top = tRect.bottom - baselineHeight;
|
|
27
|
+
let isOverlapping = false;
|
|
28
|
+
for (const ref of obstaclesRef.current){
|
|
29
|
+
const el = ref.current;
|
|
30
|
+
if (!el) continue;
|
|
31
|
+
const oRect = el.getBoundingClientRect();
|
|
32
|
+
if (!(oRect.right <= left || oRect.left >= tRect.right || oRect.bottom <= top || oRect.top >= tRect.bottom)) {
|
|
33
|
+
isOverlapping = true;
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
lastOverlap = isOverlapping;
|
|
38
|
+
setOverlaps(isOverlapping);
|
|
39
|
+
};
|
|
40
|
+
const ro = new ResizeObserver(measure);
|
|
41
|
+
ro.observe(target);
|
|
42
|
+
for (const ref of obstaclesRef.current)if (ref.current) ro.observe(ref.current);
|
|
43
|
+
for (const ref of triggersRef.current)if (ref.current) ro.observe(ref.current);
|
|
44
|
+
measure();
|
|
45
|
+
return ()=>ro.disconnect();
|
|
46
|
+
}, [
|
|
47
|
+
target
|
|
48
|
+
]);
|
|
49
|
+
return {
|
|
50
|
+
overlaps,
|
|
51
|
+
targetRef
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
export { useElementsOverlap };
|