ebaoferc 0.0.1 → 0.0.2-beta.1

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.
Files changed (141) hide show
  1. package/dist/{FlexRowCol → components/FlexRowCol}/index.js +1 -1
  2. package/dist/components/MindGraph/core/default.d.ts +6 -0
  3. package/dist/components/MindGraph/core/default.js +81 -0
  4. package/dist/components/MindGraph/core/graphic/drag.d.ts +42 -0
  5. package/dist/components/MindGraph/core/graphic/drag.js +120 -0
  6. package/dist/components/MindGraph/core/graphic/index.d.ts +181 -0
  7. package/dist/components/MindGraph/core/graphic/index.js +423 -0
  8. package/dist/components/MindGraph/core/graphic/node-translate-to.d.ts +11 -0
  9. package/dist/components/MindGraph/core/graphic/node-translate-to.js +55 -0
  10. package/dist/components/MindGraph/core/graphic/zoom.d.ts +17 -0
  11. package/dist/components/MindGraph/core/graphic/zoom.js +90 -0
  12. package/dist/components/MindGraph/core/helper/breadth-first-walk-tree.d.ts +5 -0
  13. package/dist/components/MindGraph/core/helper/breadth-first-walk-tree.js +21 -0
  14. package/dist/components/MindGraph/core/helper/depth-first-walk-tree.d.ts +10 -0
  15. package/dist/components/MindGraph/core/helper/depth-first-walk-tree.js +17 -0
  16. package/dist/components/MindGraph/core/helper/descendant.d.ts +6 -0
  17. package/dist/components/MindGraph/core/helper/descendant.js +28 -0
  18. package/dist/components/MindGraph/core/helper/error.d.ts +1 -0
  19. package/dist/components/MindGraph/core/helper/error.js +3 -0
  20. package/dist/components/MindGraph/core/helper/get-layout-calc-children.d.ts +10 -0
  21. package/dist/components/MindGraph/core/helper/get-layout-calc-children.js +37 -0
  22. package/dist/components/MindGraph/core/helper/get-svg-path-id.d.ts +1 -0
  23. package/dist/components/MindGraph/core/helper/get-svg-path-id.js +4 -0
  24. package/dist/components/MindGraph/core/helper/index.d.ts +23 -0
  25. package/dist/components/MindGraph/core/helper/index.js +26 -0
  26. package/dist/components/MindGraph/core/helper/judge-if-all-child-fold.d.ts +7 -0
  27. package/dist/components/MindGraph/core/helper/judge-if-all-child-fold.js +14 -0
  28. package/dist/components/MindGraph/core/helper/judge-if-heir-and-fold.d.ts +10 -0
  29. package/dist/components/MindGraph/core/helper/judge-if-heir-and-fold.js +26 -0
  30. package/dist/components/MindGraph/core/helper/judge-if-visual-leaf.d.ts +6 -0
  31. package/dist/components/MindGraph/core/helper/judge-if-visual-leaf.js +7 -0
  32. package/dist/components/MindGraph/core/helper/root-to-node-array.d.ts +2 -0
  33. package/dist/components/MindGraph/core/helper/root-to-node-array.js +27 -0
  34. package/dist/components/MindGraph/core/helper/transform-root-to-walkable.d.ts +5 -0
  35. package/dist/components/MindGraph/core/helper/transform-root-to-walkable.js +32 -0
  36. package/dist/components/MindGraph/core/helper/with-prefix.d.ts +1 -0
  37. package/dist/components/MindGraph/core/helper/with-prefix.js +3 -0
  38. package/dist/components/MindGraph/core/index.d.ts +394 -0
  39. package/dist/components/MindGraph/core/index.js +86 -0
  40. package/dist/components/MindGraph/core/process/anchor.d.ts +12 -0
  41. package/dist/components/MindGraph/core/process/anchor.js +63 -0
  42. package/dist/components/MindGraph/core/process/index.d.ts +91 -0
  43. package/dist/components/MindGraph/core/process/index.js +30 -0
  44. package/dist/components/MindGraph/core/process/layout/dagre.d.ts +2 -0
  45. package/dist/components/MindGraph/core/process/layout/dagre.js +20 -0
  46. package/dist/components/MindGraph/core/process/layout/descendant-center.d.ts +10 -0
  47. package/dist/components/MindGraph/core/process/layout/descendant-center.js +146 -0
  48. package/dist/components/MindGraph/core/process/layout/heir-center.d.ts +10 -0
  49. package/dist/components/MindGraph/core/process/layout/heir-center.js +52 -0
  50. package/dist/components/MindGraph/core/process/layout/index.d.ts +3 -0
  51. package/dist/components/MindGraph/core/process/layout/index.js +3 -0
  52. package/dist/components/MindGraph/core/process/layout/structured/calc-drag-attach.d.ts +2 -0
  53. package/dist/components/MindGraph/core/process/layout/structured/calc-drag-attach.js +172 -0
  54. package/dist/components/MindGraph/core/process/layout/structured/calc-drop-index.d.ts +2 -0
  55. package/dist/components/MindGraph/core/process/layout/structured/calc-drop-index.js +38 -0
  56. package/dist/components/MindGraph/core/process/layout/structured/get-node-cross-boundary.d.ts +10 -0
  57. package/dist/components/MindGraph/core/process/layout/structured/get-node-cross-boundary.js +35 -0
  58. package/dist/components/MindGraph/core/process/layout/structured/index.d.ts +13 -0
  59. package/dist/components/MindGraph/core/process/layout/structured/index.js +321 -0
  60. package/dist/components/MindGraph/core/process/layout/type.d.ts +44 -0
  61. package/dist/components/MindGraph/core/process/layout/type.js +51 -0
  62. package/dist/components/MindGraph/core/process/line.d.ts +9 -0
  63. package/dist/components/MindGraph/core/process/line.js +69 -0
  64. package/dist/components/MindGraph/core/process/node-valid.d.ts +6 -0
  65. package/dist/components/MindGraph/core/process/node-valid.js +35 -0
  66. package/dist/components/MindGraph/core/process/orientation.d.ts +8 -0
  67. package/dist/components/MindGraph/core/process/orientation.js +40 -0
  68. package/dist/components/MindGraph/core/process/size.d.ts +4 -0
  69. package/dist/components/MindGraph/core/process/size.js +16 -0
  70. package/dist/components/MindGraph/core/process/visible.d.ts +16 -0
  71. package/dist/components/MindGraph/core/process/visible.js +99 -0
  72. package/dist/components/MindGraph/core/render/calc-visible.d.ts +11 -0
  73. package/dist/components/MindGraph/core/render/calc-visible.js +25 -0
  74. package/dist/components/MindGraph/core/render/connect/bezier.d.ts +2 -0
  75. package/dist/components/MindGraph/core/render/connect/bezier.js +12 -0
  76. package/dist/components/MindGraph/core/render/connect/get-path-render.d.ts +2 -0
  77. package/dist/components/MindGraph/core/render/connect/get-path-render.js +17 -0
  78. package/dist/components/MindGraph/core/render/connect/index.d.ts +10 -0
  79. package/dist/components/MindGraph/core/render/connect/index.js +45 -0
  80. package/dist/components/MindGraph/core/render/connect/line.d.ts +2 -0
  81. package/dist/components/MindGraph/core/render/connect/line.js +71 -0
  82. package/dist/components/MindGraph/core/render/connect/temporary-line.d.ts +15 -0
  83. package/dist/components/MindGraph/core/render/connect/temporary-line.js +44 -0
  84. package/dist/components/MindGraph/core/render/index.d.ts +27 -0
  85. package/dist/components/MindGraph/core/render/index.js +8 -0
  86. package/dist/components/MindGraph/core/render/layout.d.ts +12 -0
  87. package/dist/components/MindGraph/core/render/layout.js +85 -0
  88. package/dist/components/MindGraph/demo.js +54 -0
  89. package/dist/components/MindGraph/index.d.ts +3 -0
  90. package/dist/components/MindGraph/index.js +3 -0
  91. package/dist/components/MindGraph/react/component/index.d.ts +3 -0
  92. package/dist/components/MindGraph/react/component/index.js +227 -0
  93. package/dist/components/MindGraph/react/component/index.module.less +72 -0
  94. package/dist/components/MindGraph/react/component/nodes.d.ts +13 -0
  95. package/dist/components/MindGraph/react/component/nodes.js +153 -0
  96. package/dist/components/MindGraph/react/hook/use-drag.d.ts +20 -0
  97. package/dist/components/MindGraph/react/hook/use-drag.js +191 -0
  98. package/dist/components/MindGraph/react/hook/use-shadow-state.d.ts +2 -0
  99. package/dist/components/MindGraph/react/hook/use-shadow-state.js +24 -0
  100. package/dist/components/MindGraph/react/index.d.ts +154 -0
  101. package/dist/components/MindGraph/react/index.js +9 -0
  102. package/dist/components/MindGraph/react/scrollbar/axis/index.d.ts +25 -0
  103. package/dist/components/MindGraph/react/scrollbar/axis/index.js +143 -0
  104. package/dist/components/MindGraph/react/scrollbar/axis/index.module.less +48 -0
  105. package/dist/components/MindGraph/react/scrollbar/index.d.ts +8 -0
  106. package/dist/components/MindGraph/react/scrollbar/index.js +134 -0
  107. package/dist/components/MindGraph/react/tools/class-name-wrapper.d.ts +1 -0
  108. package/dist/components/MindGraph/react/tools/class-name-wrapper.js +5 -0
  109. package/dist/{SliderVerify → components/SliderVerify}/icons/close.js +0 -1
  110. package/dist/{SliderVerify → components/SliderVerify}/icons/refresh.js +0 -1
  111. package/dist/components/SliderVerify/icons/slider.d.ts +1 -0
  112. package/dist/{SliderVerify → components/SliderVerify}/icons/slider.js +0 -1
  113. package/dist/{SliderVerify → components/SliderVerify}/style.module.less +119 -121
  114. package/dist/{StyledQueryFilter → components/StyledQueryFilter}/index.less +22 -22
  115. package/dist/{StyledTable → components/StyledTable}/index.less +11 -11
  116. package/dist/{TabSearchTools → components/TabSearchTools}/index.d.ts +2 -2
  117. package/dist/{TabSearchTools → components/TabSearchTools}/index.js +1 -1
  118. package/dist/components/index.d.ts +6 -0
  119. package/dist/components/index.js +6 -0
  120. package/dist/hooks/index.d.ts +1 -0
  121. package/dist/hooks/index.js +1 -0
  122. package/dist/hooks/useBIHooks/index.d.ts +10 -0
  123. package/dist/hooks/useBIHooks/index.js +64 -0
  124. package/dist/index.d.ts +3 -5
  125. package/dist/index.js +3 -5
  126. package/dist/utils/bi/index.d.ts +2 -0
  127. package/dist/utils/bi/index.js +35 -0
  128. package/dist/utils/format/index.js +8 -8
  129. package/dist/utils/index.d.ts +1 -0
  130. package/dist/utils/index.js +1 -0
  131. package/package.json +33 -20
  132. /package/dist/{FlexRowCol → components/FlexRowCol}/index.d.ts +0 -0
  133. /package/dist/{SliderVerify/icons/close.d.ts → components/MindGraph/demo.d.ts} +0 -0
  134. /package/dist/{SliderVerify/icons/refresh.d.ts → components/SliderVerify/icons/close.d.ts} +0 -0
  135. /package/dist/{SliderVerify/icons/slider.d.ts → components/SliderVerify/icons/refresh.d.ts} +0 -0
  136. /package/dist/{SliderVerify → components/SliderVerify}/index.d.ts +0 -0
  137. /package/dist/{SliderVerify → components/SliderVerify}/index.js +0 -0
  138. /package/dist/{StyledQueryFilter → components/StyledQueryFilter}/index.d.ts +0 -0
  139. /package/dist/{StyledQueryFilter → components/StyledQueryFilter}/index.js +0 -0
  140. /package/dist/{StyledTable → components/StyledTable}/index.d.ts +0 -0
  141. /package/dist/{StyledTable → components/StyledTable}/index.js +0 -0
@@ -0,0 +1,227 @@
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
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
+ 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."); }
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
+ 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; }
11
+ 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; } }
12
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
+ import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
14
+ import { Mind } from "../../core";
15
+ import Classnames from 'classnames';
16
+ import { Scrollbar } from "../scrollbar";
17
+ import { classNameWrapper } from "../tools/class-name-wrapper";
18
+ import { Nodes } from "./nodes";
19
+
20
+ // @ts-ignore-next-line
21
+ import Style from "./index.module.less";
22
+ import { jsx as _jsx } from "react/jsx-runtime";
23
+ import { jsxs as _jsxs } from "react/jsx-runtime";
24
+ export var View = /*#__PURE__*/forwardRef(function (props, ref) {
25
+ var className = props.className,
26
+ style = props.style,
27
+ settingOptions = props.options,
28
+ data = props.data,
29
+ anchor = props.anchor,
30
+ render = props.render,
31
+ onUpdated = props.onUpdated,
32
+ scrollbar = props.scrollbar,
33
+ _props$wheelMoveSpeed = props.wheelMoveSpeed,
34
+ wheelMoveSpeed = _props$wheelMoveSpeed === void 0 ? 0.5 : _props$wheelMoveSpeed,
35
+ onDragEnd = props.onDragEnd,
36
+ onDragStart = props.onDragStart,
37
+ onDrag = props.onDrag;
38
+ var _useState = useState(),
39
+ _useState2 = _slicedToArray(_useState, 2),
40
+ mind = _useState2[0],
41
+ setMind = _useState2[1];
42
+ var _useState3 = useState(),
43
+ _useState4 = _slicedToArray(_useState3, 2),
44
+ viewport = _useState4[0],
45
+ setViewport = _useState4[1];
46
+ var _useState5 = useState(),
47
+ _useState6 = _slicedToArray(_useState5, 2),
48
+ container = _useState6[0],
49
+ setContainer = _useState6[1];
50
+ var _useState7 = useState(),
51
+ _useState8 = _slicedToArray(_useState7, 2),
52
+ transform = _useState8[0],
53
+ setTransform = _useState8[1];
54
+ var _useState9 = useState(false),
55
+ _useState10 = _slicedToArray(_useState9, 2),
56
+ isInDragMove = _useState10[0],
57
+ setIsInDragMove = _useState10[1];
58
+ var _useState11 = useState(0),
59
+ _useState12 = _slicedToArray(_useState11, 2),
60
+ renderChangeToggle = _useState12[0],
61
+ setRenderChangeToggle = _useState12[1];
62
+ // 脑图更新事件引用
63
+ var onUpdatedRef = useRef(onUpdated);
64
+ useImperativeHandle(ref, function () {
65
+ return {
66
+ mind: mind
67
+ };
68
+ }, [mind]);
69
+
70
+ // 同步事件
71
+ useEffect(function () {
72
+ onUpdatedRef.current = onUpdated;
73
+ }, [onUpdated]);
74
+
75
+ // 组件销毁,脑图注销事件绑定
76
+ useEffect(function () {
77
+ return function () {
78
+ mind && mind.unbind();
79
+ };
80
+ }, [mind]);
81
+
82
+ // transform 值变化事件
83
+ var onTransformChange = useCallback(function (transform) {
84
+ setTransform(function (pre) {
85
+ if (transform.x === (pre === null || pre === void 0 ? void 0 : pre.x) && transform.y === (pre === null || pre === void 0 ? void 0 : pre.y) && transform.scale === (pre === null || pre === void 0 ? void 0 : pre.scale)) {
86
+ return pre;
87
+ } else {
88
+ return _objectSpread({}, transform);
89
+ }
90
+ });
91
+ }, []);
92
+
93
+ // 可视节点变化事件
94
+ var onNodeVisibleChange = useCallback(function (_nodes) {
95
+ // 可渲染节点变化,引起node内容重渲染
96
+ setRenderChangeToggle(function (pre) {
97
+ return pre + 1;
98
+ });
99
+ }, []);
100
+ var onZoomStart = useCallback(function (e) {
101
+ if (e && e.type === 'mousedown') {
102
+ setIsInDragMove(true);
103
+ }
104
+ }, []);
105
+ var onZoomEnd = useCallback(function (e) {
106
+ if (e && e.type === 'mouseup') {
107
+ setIsInDragMove(false);
108
+ }
109
+ }, []);
110
+ var options = useMemo(function () {
111
+ // 展开,防止修改源数据
112
+ var wrapper = _objectSpread({}, settingOptions || {});
113
+ wrapper.callback = _objectSpread({}, wrapper.callback || {});
114
+ wrapper.event = _objectSpread({}, wrapper.event || {});
115
+ var _wrapper$event$onZoom = wrapper.event.onZoomEventTrigger,
116
+ _wrapper$event$onZoom2 = _wrapper$event$onZoom === void 0 ? {} : _wrapper$event$onZoom,
117
+ startOutside = _wrapper$event$onZoom2.start,
118
+ zoomOutside = _wrapper$event$onZoom2.zoom,
119
+ endOutside = _wrapper$event$onZoom2.end;
120
+ var _wrapper$callback = wrapper.callback,
121
+ onTransformChangeOutside = _wrapper$callback.onTransformChange,
122
+ onNodeVisibleChangeOutside = _wrapper$callback.onNodeVisibleChange;
123
+ // 包裹事件处理
124
+ wrapper.callback.onTransformChange = function (t) {
125
+ onTransformChange(t);
126
+ onTransformChangeOutside && onTransformChangeOutside(t);
127
+ };
128
+ wrapper.callback.onNodeVisibleChange = function (n) {
129
+ onNodeVisibleChange(n);
130
+ onNodeVisibleChangeOutside && onNodeVisibleChangeOutside(n);
131
+ };
132
+
133
+ // 注入 zoom 事件触发器
134
+ // 因为 zoom 相关手势会被立刻 stopImmediatePropagation,故而外部无法通过事件注册监听到
135
+ wrapper.event.onZoomEventTrigger = {
136
+ end: function end(e) {
137
+ endOutside && endOutside(e);
138
+ onZoomEnd(e);
139
+ },
140
+ start: function start(e) {
141
+ startOutside && startOutside(e);
142
+ onZoomStart(e);
143
+ },
144
+ zoom: function zoom(e) {
145
+ return zoomOutside && zoomOutside(e);
146
+ }
147
+ };
148
+ return wrapper;
149
+ }, [settingOptions, onTransformChange, onNodeVisibleChange, onZoomStart, onZoomEnd]);
150
+
151
+ // 获取到对应dom,初始化mind
152
+ useEffect(function () {
153
+ if (viewport && container) {
154
+ setMind(new Mind.Graphic(viewport, container));
155
+ }
156
+ }, [viewport, container]);
157
+
158
+ // 同步 anchor
159
+ useEffect(function () {
160
+ if (mind) {
161
+ mind.setAnchor(anchor);
162
+ }
163
+ }, [mind, anchor]);
164
+
165
+ // 同步 data,options(引动重渲染)
166
+ useEffect(function () {
167
+ if (mind && data) {
168
+ mind.setOptions(options);
169
+ // 启动重新渲染操作
170
+ mind.setData(data);
171
+ // 通知外部,数据更新已经完成
172
+ onUpdatedRef.current && onUpdatedRef.current(mind);
173
+ }
174
+ }, [mind, data, options]);
175
+ useEffect(function () {
176
+ // 重布局计算
177
+ mind === null || mind === void 0 || mind.refresh();
178
+ }, [render]);
179
+ useEffect(function () {
180
+ if (viewport) {
181
+ var callback = function callback(event) {
182
+ // 禁止默认事件(右滑快捷返回)
183
+ event.preventDefault();
184
+ if (mind) {
185
+ mind.translate({
186
+ x: -event.deltaX * wheelMoveSpeed,
187
+ y: -event.deltaY * wheelMoveSpeed
188
+ });
189
+ }
190
+ };
191
+ viewport.addEventListener('wheel', callback, {
192
+ passive: false
193
+ });
194
+ return function () {
195
+ return viewport.removeEventListener('wheel', callback);
196
+ };
197
+ }
198
+ }, [viewport, mind, wheelMoveSpeed]);
199
+ return /*#__PURE__*/_jsxs("div", {
200
+ className: Classnames(classNameWrapper(Style, 'root'), className),
201
+ children: [/*#__PURE__*/_jsx("div", {
202
+ className: Classnames(classNameWrapper(Style, 'viewport'), _defineProperty({}, classNameWrapper(Style, 'viewport--drag-move'), isInDragMove)),
203
+ style: style,
204
+ ref: setViewport,
205
+ children: /*#__PURE__*/_jsx("div", {
206
+ className: classNameWrapper(Style, 'container'),
207
+ ref: setContainer,
208
+ children: /*#__PURE__*/_jsx(Nodes, {
209
+ mind: mind,
210
+ onDragEnd: onDragEnd,
211
+ onDragStart: onDragStart,
212
+ onDrag: onDrag,
213
+ data: data,
214
+ render: render,
215
+ renderChangeToggle: renderChangeToggle
216
+ })
217
+ })
218
+ }), scrollbar && /*#__PURE__*/_jsx(Scrollbar, {
219
+ viewport: viewport,
220
+ container: container,
221
+ mind: mind,
222
+ transform: transform,
223
+ options: options
224
+ })]
225
+ });
226
+ });
227
+ View.displayName = 'MindReact.View';
@@ -0,0 +1,72 @@
1
+ .viewport,.root{
2
+ width: 100%;
3
+ height: 100%;
4
+ position: relative;
5
+ overflow: hidden;
6
+ }
7
+
8
+ .viewport{
9
+ &--drag-move{
10
+ cursor: pointer;
11
+ }
12
+ }
13
+
14
+ .container{
15
+ position: relative;
16
+ }
17
+
18
+ .nodes{
19
+ position: relative;
20
+ }
21
+
22
+ .node-wrapper{
23
+ position: absolute;
24
+ top: 0;
25
+ left: 0;
26
+ }
27
+
28
+ .drag-mirror-node{
29
+ cursor: pointer;
30
+ }
31
+
32
+ .temporary-line{
33
+ position: absolute;
34
+ pointer-events: none;
35
+ }
36
+
37
+ // default set
38
+ .node-wrapper--dragging{
39
+ &>*{
40
+ outline: 2px solid #c04851;
41
+ }
42
+ }
43
+
44
+ // default set
45
+ .node-wrapper--attached{
46
+ &>*{
47
+ outline: 2px solid #2775b6;
48
+ }
49
+ }
50
+
51
+ // default set
52
+ .drag-mirror-node{
53
+ opacity: 0.6;
54
+
55
+ &>*{
56
+ outline: 2px solid #2775b6;
57
+ }
58
+ }
59
+
60
+ :global{
61
+ // default set
62
+ .mind {
63
+ &__lines{
64
+ stroke: #2775b6;
65
+ stroke-width: 3px;
66
+ }
67
+
68
+ &__temporary-line{
69
+ opacity: 0.6;
70
+ }
71
+ }
72
+ }
@@ -0,0 +1,13 @@
1
+ import { Mind } from '../../core';
2
+ import { MindReact } from '../index';
3
+ interface NodesProps {
4
+ renderChangeToggle: number;
5
+ mind?: Mind.Graphic;
6
+ data: MindReact.Root;
7
+ render: MindReact.Render;
8
+ onDragStart?: MindReact.DragStartEvent;
9
+ onDrag?: MindReact.DragEvent;
10
+ onDragEnd?: MindReact.DragEndEvent;
11
+ }
12
+ export declare const Nodes: (props: NodesProps) => import("react/jsx-runtime").JSX.Element;
13
+ export {};
@@ -0,0 +1,153 @@
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 _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; }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
4
+ 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); }
5
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
6
+ 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."); }
7
+ 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); }
8
+ 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; }
9
+ 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; } }
10
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
11
+ import * as React from 'react';
12
+ import { useCallback, useMemo, useRef, useState } from 'react';
13
+ import { Mind } from "../../core";
14
+ import Classnames from 'classnames';
15
+ import { useDrag } from "../hook/use-drag";
16
+ import { classNameWrapper } from "../tools/class-name-wrapper";
17
+
18
+ // @ts-ignore-next-line
19
+ import Style from "./index.module.less";
20
+ import { jsx as _jsx } from "react/jsx-runtime";
21
+ import { jsxs as _jsxs } from "react/jsx-runtime";
22
+ export var Nodes = function Nodes(props) {
23
+ var mind = props.mind,
24
+ data = props.data,
25
+ render = props.render,
26
+ renderChangeToggle = props.renderChangeToggle,
27
+ onDrag = props.onDrag,
28
+ onDragEnd = props.onDragEnd,
29
+ onDragStart = props.onDragStart;
30
+ // 尺寸缓存器
31
+ var sizeCacheMap = useRef(new Map());
32
+ // 包裹节点的容器容器引用
33
+ var _useState = useState(null),
34
+ _useState2 = _slicedToArray(_useState, 2),
35
+ nodesContainer = _useState2[0],
36
+ setNodesContainer = _useState2[1];
37
+ var renderNodes = useMemo(function () {
38
+ if (data) {
39
+ var preSizeCacheMap = new Map(sizeCacheMap.current);
40
+ sizeCacheMap.current = new Map();
41
+ return Mind._Helper.rootToNodeArray(data, function (node) {
42
+ // 缓存中没有,则创建
43
+ if (!preSizeCacheMap.has(node.id)) {
44
+ sizeCacheMap.current.set(node.id, {
45
+ size: {
46
+ height: -1,
47
+ width: -1
48
+ },
49
+ updateToDate: false
50
+ });
51
+ }
52
+ // 已存在,沿用老数据
53
+ else {
54
+ sizeCacheMap.current.set(node.id, preSizeCacheMap.get(node.id));
55
+ }
56
+ });
57
+ }
58
+ return [];
59
+ }, [data]);
60
+ var getNodeSize = useCallback(function (id) {
61
+ var _sizeCacheMap$current;
62
+ return (_sizeCacheMap$current = sizeCacheMap.current.get(id)) === null || _sizeCacheMap$current === void 0 ? void 0 : _sizeCacheMap$current.size;
63
+ }, []);
64
+ var _useDrag = useDrag({
65
+ data: data,
66
+ draggableNodeWrapperQualifier: ".".concat(Style['node-wrapper'], "[data-node-draggable=\"true\"]:not(.").concat(Style['drag-mirror-node'], ")"),
67
+ mind: mind,
68
+ nodeWrapperClassName: Style['node-wrapper'],
69
+ nodesContainer: nodesContainer,
70
+ onDrag: onDrag,
71
+ onDragEnd: onDragEnd,
72
+ onDragStart: onDragStart,
73
+ renderChangeToggle: renderChangeToggle,
74
+ renderNodes: renderNodes,
75
+ sizeof: getNodeSize
76
+ }),
77
+ isInDragging = _useDrag.isInDragging,
78
+ dragNode = _useDrag.dragNode,
79
+ dragMirrorPosition = _useDrag.dragMirrorPosition,
80
+ dragAttachedNode = _useDrag.dragAttachedNode;
81
+ var nodes = useMemo(function () {
82
+ return renderNodes.map(function (node) {
83
+ var position = (mind === null || mind === void 0 ? void 0 : mind.getNodeAnchorCoordinate(node.id)) || {
84
+ x: 0,
85
+ y: 0
86
+ };
87
+ var visible = (mind === null || mind === void 0 ? void 0 : mind.judgeNodeVisible(node.id)) || node.alwaysVisible;
88
+ var sizeCache = sizeCacheMap.current.get(node.id);
89
+ // 以下情况需要更新其数据
90
+ // - 缓存过期
91
+ // - 尺寸不存在
92
+ // - 禁用尺寸缓存
93
+ // - 外部设置需要更新尺寸
94
+ var needUpdateSize = !sizeCache.updateToDate || sizeCache.size.width < 0 || node.disableSizeCache || node.needUpdateSize;
95
+ // node size 优先级最高,外界已测量好尺寸,故而,无需再次测量
96
+ if (node.size) {
97
+ needUpdateSize = false;
98
+ sizeCache.size.width = node.size.width;
99
+ sizeCache.size.height = node.size.height;
100
+ }
101
+ // 当不需要更新尺寸的时候,直接使用缓存
102
+ if (!needUpdateSize) {
103
+ ;
104
+ node.sizeof = function () {
105
+ return {
106
+ height: sizeCache.size.height,
107
+ width: sizeCache.size.width
108
+ };
109
+ };
110
+ }
111
+ // - 受保护节点,一直存在
112
+ // - 当节点可见时,需要存在
113
+ // - 当需要刷新size时,节点需要存在
114
+ var exist = visible || node.beProtected || needUpdateSize;
115
+ // 根节点不允许拖拽
116
+ var draggable = !!node.draggable && node.id !== data.node.id;
117
+ return exist && /*#__PURE__*/_jsx("div", {
118
+ className: Classnames(classNameWrapper(Style, 'node-wrapper'), _defineProperty(_defineProperty({}, classNameWrapper(Style, 'node-wrapper--dragging'), node.id === (dragNode === null || dragNode === void 0 ? void 0 : dragNode.id) && isInDragging), classNameWrapper(Style, 'node-wrapper--attached'), node.id === (dragAttachedNode === null || dragAttachedNode === void 0 ? void 0 : dragAttachedNode.id) && isInDragging)),
119
+ style: {
120
+ transform: "translateX(".concat(position.x, "px) translateY(").concat(position.y, "px)"),
121
+ visibility: visible ? 'visible' : 'hidden'
122
+ },
123
+ "data-node-id": String(node.id),
124
+ "data-node-draggable": String(draggable),
125
+ ref: function ref(element) {
126
+ if (element && needUpdateSize) {
127
+ // 标识已经获取了最新数据
128
+ sizeCache.updateToDate = true;
129
+ sizeCache.size.width = element.clientWidth;
130
+ sizeCache.size.height = element.clientHeight;
131
+ node.sizeof = function () {
132
+ return sizeCache.size;
133
+ };
134
+ // 更新完成之后设置为false
135
+ node.needUpdateSize = false;
136
+ }
137
+ },
138
+ children: render(node, false)
139
+ }, node.id);
140
+ });
141
+ }, [mind, renderNodes, renderChangeToggle, render, dragNode, dragAttachedNode, isInDragging]);
142
+ return /*#__PURE__*/_jsxs("div", {
143
+ className: classNameWrapper(Style, 'nodes'),
144
+ ref: setNodesContainer,
145
+ children: [nodes, dragNode && isInDragging && /*#__PURE__*/_jsx("div", {
146
+ className: Classnames(classNameWrapper(Style, 'node-wrapper'), classNameWrapper(Style, 'drag-mirror-node')),
147
+ style: {
148
+ transform: "translateX(".concat(dragMirrorPosition.x, "px) translateY(").concat(dragMirrorPosition.y, "px)")
149
+ },
150
+ children: render(dragNode, true)
151
+ })]
152
+ });
153
+ };
@@ -0,0 +1,20 @@
1
+ import { Mind } from '../../core';
2
+ import { MindReact } from '../index';
3
+ export declare const useDrag: (context: {
4
+ mind?: import("../../core/graphic").Graphic | undefined;
5
+ draggableNodeWrapperQualifier: string;
6
+ nodeWrapperClassName: string;
7
+ nodesContainer: HTMLDivElement | null;
8
+ onDragStart?: MindReact.DragStartEvent | undefined;
9
+ onDrag?: MindReact.DragEvent | undefined;
10
+ onDragEnd?: MindReact.DragEndEvent | undefined;
11
+ sizeof: (id: string) => Mind.Size | undefined;
12
+ renderNodes: MindReact.Node[];
13
+ data: MindReact.Root;
14
+ renderChangeToggle: number;
15
+ }) => {
16
+ dragAttachedNode: MindReact.Node | undefined;
17
+ dragMirrorPosition: Mind.Coordinate;
18
+ dragNode: MindReact.Node | undefined;
19
+ isInDragging: boolean;
20
+ };
@@ -0,0 +1,191 @@
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
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
+ 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."); }
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
+ 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; }
11
+ 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; } }
12
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
+ /* eslint-disable @typescript-eslint/indent */
14
+ // @ts-nocheck
15
+ import { useEffect, useRef, useState } from 'react';
16
+ import { Mind } from "../../core";
17
+ import * as D3 from 'd3';
18
+ import { useShadowState } from "./use-shadow-state";
19
+ export var useDrag = function useDrag(context) {
20
+ var mind = context.mind,
21
+ draggableNodeWrapperQualifier = context.draggableNodeWrapperQualifier,
22
+ nodeWrapperClassName = context.nodeWrapperClassName,
23
+ nodesContainer = context.nodesContainer,
24
+ onDrag = context.onDrag,
25
+ onDragEnd = context.onDragEnd,
26
+ onDragStart = context.onDragStart,
27
+ sizeof = context.sizeof,
28
+ renderNodes = context.renderNodes,
29
+ data = context.data,
30
+ renderChangeToggle = context.renderChangeToggle;
31
+
32
+ // 被拖动的节点
33
+ var _useShadowState = useShadowState(undefined),
34
+ _useShadowState2 = _slicedToArray(_useShadowState, 3),
35
+ dragNode = _useShadowState2[0],
36
+ setDragNode = _useShadowState2[1],
37
+ dragNodeShadow = _useShadowState2[2];
38
+ // 被拖动节点附着的节点
39
+ var _useShadowState3 = useShadowState(undefined),
40
+ _useShadowState4 = _slicedToArray(_useShadowState3, 3),
41
+ dragAttachedNode = _useShadowState4[0],
42
+ setDragAttachedNode = _useShadowState4[1],
43
+ dragAttachedNodeShadow = _useShadowState4[2];
44
+ // 拖动操作控制器
45
+ var dragController = useRef(undefined);
46
+ // 拖动镜像节点位置
47
+ var _useShadowState5 = useShadowState({
48
+ x: 0,
49
+ y: 0
50
+ }),
51
+ _useShadowState6 = _slicedToArray(_useShadowState5, 3),
52
+ dragMirrorPosition = _useShadowState6[0],
53
+ setDragMirrorPosition = _useShadowState6[1],
54
+ dragMirrorPositionShadow = _useShadowState6[2];
55
+ // 当前是否正在拖动
56
+ var _useState = useState(false),
57
+ _useState2 = _slicedToArray(_useState, 2),
58
+ isInDragging = _useState2[0],
59
+ setIsInDragging = _useState2[1];
60
+ // 拖动节点镜像节点相关信息
61
+ var dragMirrorInfo = useRef({
62
+ origin: {
63
+ x: 0,
64
+ y: 0
65
+ },
66
+ size: {
67
+ height: 0,
68
+ width: 0
69
+ },
70
+ start: {
71
+ x: 0,
72
+ y: 0
73
+ }
74
+ });
75
+ var dragOrientation = useRef(undefined);
76
+ useEffect(function () {
77
+ if (mind && nodesContainer) {
78
+ D3.select(nodesContainer).selectAll(draggableNodeWrapperQualifier).call(D3.drag().on('start', function (e) {
79
+ var dragElement = e.sourceEvent.path.find(function (item) {
80
+ return item.className.includes(nodeWrapperClassName);
81
+ });
82
+ if (dragElement) {
83
+ var dragId = dragElement.getAttribute('data-node-id');
84
+ var origin = mind.getNodeAnchorCoordinate(dragId);
85
+ var size = sizeof(dragId);
86
+ if (origin) {
87
+ // 记录开始点
88
+ dragMirrorInfo.current.start.x = e.x;
89
+ dragMirrorInfo.current.start.y = e.y;
90
+ // 原点(左上角原始位置)
91
+ dragMirrorInfo.current.origin.x = origin.x;
92
+ dragMirrorInfo.current.origin.y = origin.y;
93
+ setDragMirrorPosition({
94
+ x: origin.x,
95
+ y: origin.y
96
+ });
97
+ }
98
+ if (size) {
99
+ // 记录拖动节点尺寸
100
+ dragMirrorInfo.current.size.width = size.width;
101
+ dragMirrorInfo.current.size.height = size.height;
102
+ }
103
+ var _dragNode = mind.getNode(dragId);
104
+ if (_dragNode) {
105
+ // 调用拖动开始事件
106
+ onDragStart && onDragStart({
107
+ node: _dragNode
108
+ });
109
+ setDragNode(_dragNode);
110
+ dragController.current = mind.dragControllerBuilder(dragId);
111
+ }
112
+ }
113
+ }).on('drag', function (e) {
114
+ if (dragController.current) {
115
+ var scale = mind.getTransform().scale;
116
+ var diff = {
117
+ x: (e.x - dragMirrorInfo.current.start.x) / scale,
118
+ y: (e.y - dragMirrorInfo.current.start.y) / scale
119
+ };
120
+ var mirrorCenter = {
121
+ x: diff.x + dragMirrorInfo.current.origin.x + dragMirrorInfo.current.size.width / 2,
122
+ y: diff.y + dragMirrorInfo.current.origin.y + dragMirrorInfo.current.size.height / 2
123
+ };
124
+ setDragMirrorPosition({
125
+ x: diff.x + dragMirrorInfo.current.origin.x,
126
+ y: diff.y + dragMirrorInfo.current.origin.y
127
+ });
128
+ var target = dragController.current.drag(_objectSpread({}, mirrorCenter), renderNodes.filter(function (node) {
129
+ return node.droppable === undefined ? true : node.droppable;
130
+ }));
131
+ dragOrientation.current = target === null || target === void 0 ? void 0 : target.orientation;
132
+ // 调用拖动中事件
133
+ onDrag && onDrag({
134
+ attach: target && target.attach && target.orientation ? {
135
+ orientation: target.orientation,
136
+ parent: target.attach
137
+ } : undefined,
138
+ mirrorPosition: _objectSpread({}, mirrorCenter),
139
+ node: dragNodeShadow.current
140
+ });
141
+ setIsInDragging(true);
142
+ setDragAttachedNode(target === null || target === void 0 ? void 0 : target.attach);
143
+ }
144
+ }).on('end', function () {
145
+ // 通知控制器已经结束拖动
146
+ if (dragController.current) {
147
+ var attachNode = dragAttachedNodeShadow.current;
148
+ var index = -1;
149
+ if (attachNode) {
150
+ var children = attachNode.children;
151
+ // 根节点
152
+ if (attachNode.id === data.node.id) {
153
+ children = dragOrientation.current === Mind.Orientation.positive ? data.positive : data.negative;
154
+ }
155
+ index = dragController.current.calcDropIndex(children, {
156
+ x: dragMirrorPositionShadow.current.x + dragMirrorInfo.current.size.width / 2,
157
+ y: dragMirrorPositionShadow.current.y + dragMirrorInfo.current.size.height / 2
158
+ }, dragNodeShadow.current, attachNode);
159
+ }
160
+ dragController.current.end();
161
+ dragController.current = undefined;
162
+
163
+ // 调用拖动结束事件
164
+ onDragEnd && onDragEnd({
165
+ attach: dragAttachedNodeShadow.current && dragOrientation.current ? {
166
+ index: index,
167
+ orientation: dragOrientation.current,
168
+ parent: dragAttachedNodeShadow.current
169
+ } : undefined,
170
+ node: dragNodeShadow.current,
171
+ original: {
172
+ orientation: mind.getNodeOrientation(dragNodeShadow.current.id),
173
+ parent: mind.getParent(dragNodeShadow.current.id)
174
+ }
175
+ });
176
+ }
177
+ // 清空数据
178
+ setDragNode(undefined);
179
+ setDragAttachedNode(undefined);
180
+ setIsInDragging(false);
181
+ dragOrientation.current = undefined;
182
+ }));
183
+ }
184
+ }, [mind, renderChangeToggle, data, renderNodes, onDragStart, onDrag, onDragEnd, nodesContainer]);
185
+ return {
186
+ dragAttachedNode: dragAttachedNode,
187
+ dragMirrorPosition: dragMirrorPosition,
188
+ dragNode: dragNode,
189
+ isInDragging: isInDragging
190
+ };
191
+ };