@idraw/core 0.4.2 → 1.0.0-alpha.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.
- package/dist/esm/board/index.d.ts +2 -2
- package/dist/esm/board/index.js +23 -12
- package/dist/esm/board/sharer.d.ts +3 -3
- package/dist/esm/board/sharer.js +10 -10
- package/dist/esm/board/viewer.d.ts +3 -3
- package/dist/esm/board/viewer.js +14 -14
- package/dist/esm/board/watcher.d.ts +3 -3
- package/dist/esm/board/watcher.js +68 -43
- package/dist/esm/core.d.ts +52 -0
- package/dist/esm/core.js +393 -0
- package/dist/esm/cursor/cursor-image.d.ts +2 -0
- package/dist/esm/cursor/cursor-image.js +2 -0
- package/dist/esm/cursor/cursor.js +60 -24
- package/dist/esm/index.d.ts +12 -61
- package/dist/esm/index.js +11 -389
- package/dist/esm/middlewares/common.d.ts +4 -0
- package/dist/esm/middlewares/common.js +13 -0
- package/dist/esm/middlewares/creator/dom.d.ts +11 -0
- package/dist/esm/middlewares/creator/dom.js +52 -0
- package/dist/esm/middlewares/creator/index.d.ts +5 -0
- package/dist/esm/middlewares/creator/index.js +136 -0
- package/dist/esm/middlewares/creator/static.d.ts +14 -0
- package/dist/esm/middlewares/creator/static.js +19 -0
- package/dist/esm/middlewares/creator/styles.d.ts +4 -0
- package/dist/esm/middlewares/creator/styles.js +32 -0
- package/dist/esm/middlewares/creator/types.d.ts +7 -0
- package/dist/esm/middlewares/creator/types.js +1 -0
- package/dist/esm/middlewares/creator/util.d.ts +10 -0
- package/dist/esm/middlewares/creator/util.js +52 -0
- package/dist/esm/middlewares/dragger/index.js +5 -5
- package/dist/esm/middlewares/info/draw-info.d.ts +11 -11
- package/dist/esm/middlewares/info/draw-info.js +18 -18
- package/dist/esm/middlewares/info/index.d.ts +2 -1
- package/dist/esm/middlewares/info/index.js +48 -51
- package/dist/esm/middlewares/info/static.d.ts +6 -0
- package/dist/esm/middlewares/info/{config.js → static.js} +6 -1
- package/dist/esm/middlewares/info/types.d.ts +2 -2
- package/dist/esm/middlewares/layout-selector/dom.d.ts +10 -0
- package/dist/esm/middlewares/layout-selector/dom.js +108 -0
- package/dist/esm/middlewares/layout-selector/index.d.ts +1 -1
- package/dist/esm/middlewares/layout-selector/index.js +89 -141
- package/dist/esm/middlewares/layout-selector/static.d.ts +32 -0
- package/dist/esm/middlewares/layout-selector/static.js +39 -0
- package/dist/esm/middlewares/layout-selector/styles.d.ts +4 -0
- package/dist/esm/middlewares/layout-selector/styles.js +127 -0
- package/dist/esm/middlewares/layout-selector/types.d.ts +6 -6
- package/dist/esm/middlewares/layout-selector/types.js +2 -2
- package/dist/esm/middlewares/layout-selector/util.d.ts +4 -4
- package/dist/esm/middlewares/layout-selector/util.js +19 -19
- package/dist/esm/middlewares/path-creator/dom.d.ts +29 -0
- package/dist/esm/middlewares/path-creator/dom.js +145 -0
- package/dist/esm/middlewares/path-creator/index.d.ts +5 -0
- package/dist/esm/middlewares/path-creator/index.js +203 -0
- package/dist/esm/middlewares/path-creator/static.d.ts +23 -0
- package/dist/esm/middlewares/path-creator/static.js +49 -0
- package/dist/esm/middlewares/path-creator/types.d.ts +1 -0
- package/dist/esm/middlewares/path-editor/calc.d.ts +6 -0
- package/dist/esm/middlewares/path-editor/calc.js +51 -0
- package/dist/esm/middlewares/path-editor/dom.d.ts +32 -0
- package/dist/esm/middlewares/path-editor/dom.js +575 -0
- package/dist/esm/middlewares/path-editor/draw.d.ts +7 -0
- package/dist/esm/middlewares/path-editor/draw.js +113 -0
- package/dist/esm/middlewares/path-editor/index.d.ts +5 -0
- package/dist/esm/middlewares/path-editor/index.js +312 -0
- package/dist/esm/middlewares/path-editor/parse.d.ts +5 -0
- package/dist/esm/middlewares/path-editor/parse.js +37 -0
- package/dist/esm/middlewares/path-editor/static.d.ts +34 -0
- package/dist/esm/middlewares/path-editor/static.js +82 -0
- package/dist/esm/middlewares/path-editor/types.d.ts +26 -0
- package/dist/esm/middlewares/path-editor/types.js +1 -0
- package/dist/esm/middlewares/path-editor/util.d.ts +5 -0
- package/dist/esm/middlewares/path-editor/util.js +21 -0
- package/dist/esm/middlewares/pointer/index.js +5 -5
- package/dist/esm/middlewares/pointer/types.d.ts +2 -2
- package/dist/esm/middlewares/ruler/index.d.ts +2 -0
- package/dist/esm/middlewares/ruler/index.js +12 -19
- package/dist/esm/middlewares/ruler/static.d.ts +8 -0
- package/dist/esm/middlewares/ruler/{config.js → static.js} +16 -3
- package/dist/esm/middlewares/ruler/types.d.ts +2 -2
- package/dist/esm/middlewares/ruler/util.d.ts +6 -6
- package/dist/esm/middlewares/ruler/util.js +31 -31
- package/dist/esm/middlewares/scaler/index.js +2 -2
- package/dist/esm/middlewares/scroller/dom.d.ts +14 -0
- package/dist/esm/middlewares/scroller/dom.js +53 -0
- package/dist/esm/middlewares/scroller/index.d.ts +2 -0
- package/dist/esm/middlewares/scroller/index.js +111 -46
- package/dist/esm/middlewares/scroller/static.d.ts +21 -0
- package/dist/esm/middlewares/scroller/static.js +29 -0
- package/dist/esm/middlewares/scroller/styles.d.ts +4 -0
- package/dist/esm/middlewares/scroller/styles.js +73 -0
- package/dist/esm/middlewares/scroller/types.d.ts +8 -6
- package/dist/esm/middlewares/scroller/types.js +1 -1
- package/dist/esm/middlewares/scroller/util.d.ts +6 -13
- package/dist/esm/middlewares/scroller/util.js +15 -144
- package/dist/esm/middlewares/selector/dom.d.ts +21 -0
- package/dist/esm/middlewares/selector/dom.js +395 -0
- package/dist/esm/middlewares/selector/draw-base.d.ts +9 -21
- package/dist/esm/middlewares/selector/draw-base.js +19 -43
- package/dist/esm/middlewares/selector/draw-reference.d.ts +4 -5
- package/dist/esm/middlewares/selector/draw-reference.js +5 -5
- package/dist/esm/middlewares/selector/index.d.ts +4 -2
- package/dist/esm/middlewares/selector/index.js +315 -439
- package/dist/esm/middlewares/selector/reference.d.ts +5 -5
- package/dist/esm/middlewares/selector/reference.js +36 -30
- package/dist/esm/middlewares/selector/render-frame.d.ts +11 -0
- package/dist/esm/middlewares/selector/render-frame.js +107 -0
- package/dist/esm/middlewares/selector/resize.d.ts +7 -0
- package/dist/esm/middlewares/selector/resize.js +27 -0
- package/dist/esm/middlewares/selector/static.d.ts +67 -0
- package/dist/esm/middlewares/selector/static.js +92 -0
- package/dist/esm/middlewares/selector/styles.d.ts +4 -0
- package/dist/esm/middlewares/selector/styles.js +153 -0
- package/dist/esm/middlewares/selector/types.d.ts +27 -27
- package/dist/esm/middlewares/selector/types.js +1 -1
- package/dist/esm/middlewares/selector/util.d.ts +22 -32
- package/dist/esm/middlewares/selector/util.js +226 -243
- package/dist/esm/middlewares/text-editor/dom.d.ts +5 -0
- package/dist/esm/middlewares/text-editor/dom.js +135 -0
- package/dist/esm/middlewares/text-editor/index.d.ts +5 -20
- package/dist/esm/middlewares/text-editor/index.js +201 -207
- package/dist/esm/middlewares/text-editor/static.d.ts +10 -0
- package/dist/esm/middlewares/text-editor/static.js +17 -0
- package/dist/esm/middlewares/text-editor/types.d.ts +21 -0
- package/dist/esm/middlewares/text-editor/types.js +1 -0
- package/dist/esm/record.d.ts +5 -5
- package/dist/esm/record.js +14 -14
- package/dist/esm/{config.d.ts → static.d.ts} +16 -0
- package/dist/esm/{config.js → static.js} +18 -2
- package/dist/index.global.js +8934 -5646
- package/dist/index.global.min.js +1 -1
- package/package.json +4 -4
- package/dist/esm/middlewares/info/config.d.ts +0 -5
- package/dist/esm/middlewares/layout-selector/config.d.ts +0 -11
- package/dist/esm/middlewares/layout-selector/config.js +0 -12
- package/dist/esm/middlewares/ruler/config.d.ts +0 -7
- package/dist/esm/middlewares/scroller/config.d.ts +0 -10
- package/dist/esm/middlewares/scroller/config.js +0 -16
- package/dist/esm/middlewares/selector/config.d.ts +0 -30
- package/dist/esm/middlewares/selector/config.js +0 -38
- package/dist/esm/middlewares/selector/draw-auxiliary.js +0 -12
- package/dist/esm/middlewares/selector/draw-debug.d.ts +0 -5
- package/dist/esm/middlewares/selector/draw-debug.js +0 -30
- package/dist/esm/middlewares/selector/draw-wrapper.d.ts +0 -37
- package/dist/esm/middlewares/selector/draw-wrapper.js +0 -139
- package/dist/esm/middlewares/selector/pattern/icon-rotate.d.ts +0 -4
- package/dist/esm/middlewares/selector/pattern/icon-rotate.js +0 -88
- package/dist/esm/middlewares/selector/pattern/index.d.ts +0 -8
- package/dist/esm/middlewares/selector/pattern/index.js +0 -38
- /package/dist/esm/middlewares/{selector/draw-auxiliary.d.ts → path-creator/types.js} +0 -0
|
@@ -1,157 +1,108 @@
|
|
|
1
|
-
import { is,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { getPointTarget, resizeElement, rotateElement, getSelectedListArea, calcSelectedElementsArea, isElementInGroup, isPointInViewActiveGroup } from './util';
|
|
5
|
-
import { keyActionType, keyResizeType, keyAreaStart, keyAreaEnd, keyGroupQueue, keyGroupQueueVertexesList, keyHoverElement, keyHoverElementVertexes, keySelectedElementList, keySelectedElementListVertexes, keySelectedElementController, keySelectedElementPosition, keyIsMoving, keyEnableSelectInGroup, keyEnableSnapToGrid, controllerSize, rotateControllerSize, rotateControllerPosition, defaultStyle } from './config';
|
|
1
|
+
import { is, calcMaterialsViewInfo, rotatePointInGroup, getGroupQueueFromList, findMaterialsFromList, findMaterialsFromListByPositions, getMaterialPositionFromList, getMaterialPositionMapFromList, resizeEffectGroupMaterial, getMaterialSize, calcPointMoveMaterialInGroup, toFlattenMaterial, isPointInMiddlewareElement, } from '@idraw/util';
|
|
2
|
+
import { getPointTarget, resizeMaterial, rotateMaterial, getSelectedListArea, calcSelectedMaterialsArea, isMaterialInGroup, } from './util';
|
|
3
|
+
import { keyPrevPoint, keyPointStartMaterialSizeList, keyMoveOriginalStartPoint, keyMoveOriginalStartMaterialSize, keyInBusyMode, keyHasChangedData, keyStartResizeGroupRecord, keyEndResizeGroupRecord, keyActionType, keyResizeType, keyAreaStart, keyAreaEnd, keyGroupQueue, keyHoverMaterial, keySelectedMaterialList, keySelectedMaterialPosition, keyIsMoving, keyEnableSelectInGroup, keyEnableSnapToGrid, defaultStyle, clearStorage, } from './static';
|
|
6
4
|
import { calcReferenceInfo } from './reference';
|
|
7
|
-
import { coreEventKeys } from '../../
|
|
5
|
+
import { coreEventKeys } from '../../static';
|
|
8
6
|
import { keyLayoutIsSelected, keyLayoutIsBusyMoving } from '../layout-selector';
|
|
9
|
-
import { createRotateControllerPattern } from './pattern';
|
|
10
7
|
import { MIDDLEWARE_INTERNAL_EVENT_SHOW_INFO_ANGLE } from '../info';
|
|
11
|
-
|
|
8
|
+
import { getRootClassName } from './static';
|
|
9
|
+
import { initRoot, isPointInActiveGroup } from './dom';
|
|
10
|
+
import { initStyles, destroyStyles, getMiddlewareSelectorStyles } from './styles';
|
|
11
|
+
import { dragAndResizeMaterial } from './resize';
|
|
12
|
+
import { renderFrame } from './render-frame';
|
|
13
|
+
import { triggerChangeEvent } from '../common';
|
|
14
|
+
export { keySelectedMaterialList, keyHoverMaterial, keyActionType, keyResizeType, keyGroupQueue };
|
|
15
|
+
export { getMiddlewareSelectorStyles };
|
|
12
16
|
export const MiddlewareSelector = (opts, config) => {
|
|
13
17
|
let innerConfig = Object.assign(Object.assign({}, defaultStyle), config);
|
|
18
|
+
const styles = getMiddlewareSelectorStyles(innerConfig);
|
|
19
|
+
const rootClassName = getRootClassName();
|
|
20
|
+
let $root = null;
|
|
14
21
|
const { viewer, sharer, boardContent, calculator, eventHub } = opts;
|
|
15
22
|
const { overlayContext } = boardContent;
|
|
16
|
-
let prevPoint = null;
|
|
17
|
-
let pointStartElementSizeList = [];
|
|
18
|
-
let moveOriginalStartPoint = null;
|
|
19
|
-
let moveOriginalStartElementSize = null;
|
|
20
|
-
let inBusyMode = null;
|
|
21
|
-
let hasChangedData = null;
|
|
22
|
-
let rotateControllerPattern = createRotateControllerPattern({
|
|
23
|
-
fill: innerConfig.activeColor,
|
|
24
|
-
devicePixelRatio: sharer.getActiveViewSizeInfo().devicePixelRatio
|
|
25
|
-
});
|
|
26
|
-
let startResizeGroupRecord = null;
|
|
27
|
-
let endResizeGroupRecord = null;
|
|
28
23
|
sharer.setSharedStorage(keyActionType, null);
|
|
29
24
|
sharer.setSharedStorage(keyEnableSnapToGrid, true);
|
|
30
|
-
const
|
|
31
|
-
return sharer.getSharedStorage(keySelectedElementList);
|
|
32
|
-
};
|
|
33
|
-
const pushGroupQueue = (elem) => {
|
|
25
|
+
const pushGroupQueue = (mtrl) => {
|
|
34
26
|
let groupQueue = sharer.getSharedStorage(keyGroupQueue);
|
|
35
27
|
if (!Array.isArray(groupQueue)) {
|
|
36
28
|
groupQueue = [];
|
|
37
29
|
}
|
|
38
30
|
if (groupQueue.length > 0) {
|
|
39
|
-
if (
|
|
40
|
-
groupQueue.push(
|
|
31
|
+
if (isMaterialInGroup(mtrl, groupQueue[groupQueue.length - 1])) {
|
|
32
|
+
groupQueue.push(mtrl);
|
|
41
33
|
}
|
|
42
34
|
else {
|
|
43
35
|
groupQueue = [];
|
|
44
36
|
}
|
|
45
37
|
}
|
|
46
38
|
else if (groupQueue.length === 0) {
|
|
47
|
-
groupQueue.push(
|
|
39
|
+
groupQueue.push(mtrl);
|
|
48
40
|
}
|
|
49
|
-
const vertexesList = calcElementQueueVertexesQueueInGroup(groupQueue);
|
|
50
41
|
sharer.setSharedStorage(keyGroupQueue, groupQueue);
|
|
51
|
-
sharer.setSharedStorage(keyGroupQueueVertexesList, vertexesList);
|
|
52
42
|
return groupQueue.length > 0;
|
|
53
43
|
};
|
|
54
|
-
const
|
|
55
|
-
sharer.setSharedStorage(keyHoverElement, elem);
|
|
56
|
-
let vertexes = null;
|
|
57
|
-
if (elem) {
|
|
58
|
-
vertexes = calcElementVertexesInGroup(elem, {
|
|
59
|
-
groupQueue: sharer.getSharedStorage(keyGroupQueue)
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
sharer.setSharedStorage(keyHoverElementVertexes, vertexes);
|
|
63
|
-
};
|
|
64
|
-
const updateSelectedElemenetController = () => {
|
|
65
|
-
const list = sharer.getSharedStorage(keySelectedElementList);
|
|
66
|
-
if (list.length === 1) {
|
|
67
|
-
const controller = calcElementSizeController(list[0], {
|
|
68
|
-
groupQueue: sharer.getSharedStorage(keyGroupQueue),
|
|
69
|
-
controllerSize,
|
|
70
|
-
viewScaleInfo: sharer.getActiveViewScaleInfo(),
|
|
71
|
-
rotateControllerPosition,
|
|
72
|
-
rotateControllerSize
|
|
73
|
-
});
|
|
74
|
-
sharer.setSharedStorage(keySelectedElementController, controller);
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
const updateSelectedElementList = (list, opts) => {
|
|
44
|
+
const updateSelectedMaterialList = (list, opts) => {
|
|
78
45
|
var _a;
|
|
79
|
-
sharer.setSharedStorage(
|
|
46
|
+
sharer.setSharedStorage(keySelectedMaterialList, list);
|
|
80
47
|
if (list.length === 1) {
|
|
81
|
-
|
|
82
|
-
sharer.setSharedStorage(keySelectedElementPosition, getElementPositionFromList(list[0].uuid, ((_a = sharer.getActiveStorage('data')) === null || _a === void 0 ? void 0 : _a.elements) || []));
|
|
48
|
+
sharer.setSharedStorage(keySelectedMaterialPosition, getMaterialPositionFromList(list[0].id, ((_a = sharer.getActiveStorage('data')) === null || _a === void 0 ? void 0 : _a.materials) || []));
|
|
83
49
|
}
|
|
84
50
|
else {
|
|
85
|
-
sharer.setSharedStorage(
|
|
86
|
-
sharer.setSharedStorage(keySelectedElementPosition, []);
|
|
51
|
+
sharer.setSharedStorage(keySelectedMaterialPosition, []);
|
|
87
52
|
}
|
|
88
53
|
if ((opts === null || opts === void 0 ? void 0 : opts.triggerEvent) === true) {
|
|
89
|
-
const
|
|
54
|
+
const ids = list.map((mtrl) => mtrl.id);
|
|
90
55
|
const data = sharer.getActiveStorage('data');
|
|
91
|
-
const positionMap =
|
|
56
|
+
const positionMap = getMaterialPositionMapFromList(ids, (data === null || data === void 0 ? void 0 : data.materials) || []);
|
|
92
57
|
eventHub.trigger(coreEventKeys.SELECT, {
|
|
93
58
|
type: 'clickCanvas',
|
|
94
|
-
|
|
95
|
-
positions: list.map((
|
|
59
|
+
ids,
|
|
60
|
+
positions: list.map((mtrl) => [...positionMap[mtrl.id]]),
|
|
96
61
|
});
|
|
97
62
|
}
|
|
98
63
|
};
|
|
99
|
-
const pointTargetBaseOptions = () => {
|
|
64
|
+
const pointTargetBaseOptions = (pwe) => {
|
|
100
65
|
return {
|
|
101
66
|
ctx: overlayContext,
|
|
102
67
|
calculator,
|
|
103
68
|
data: sharer.getActiveStorage('data'),
|
|
104
|
-
|
|
69
|
+
selectedMaterials: sharer.getSharedStorage(keySelectedMaterialList),
|
|
105
70
|
viewScaleInfo: sharer.getActiveViewScaleInfo(),
|
|
106
71
|
viewSizeInfo: sharer.getActiveViewSizeInfo(),
|
|
107
72
|
groupQueue: sharer.getSharedStorage(keyGroupQueue),
|
|
108
73
|
areaSize: null,
|
|
109
|
-
|
|
110
|
-
|
|
74
|
+
selectedMaterialPosition: sharer.getSharedStorage(keySelectedMaterialPosition),
|
|
75
|
+
nativeEvent: pwe.nativeEvent,
|
|
111
76
|
};
|
|
112
77
|
};
|
|
113
|
-
const clear = () =>
|
|
114
|
-
startResizeGroupRecord = null;
|
|
115
|
-
endResizeGroupRecord = null;
|
|
116
|
-
sharer.setSharedStorage(keyActionType, null);
|
|
117
|
-
sharer.setSharedStorage(keyResizeType, null);
|
|
118
|
-
sharer.setSharedStorage(keyAreaStart, null);
|
|
119
|
-
sharer.setSharedStorage(keyAreaEnd, null);
|
|
120
|
-
sharer.setSharedStorage(keyGroupQueue, []);
|
|
121
|
-
sharer.setSharedStorage(keyGroupQueueVertexesList, []);
|
|
122
|
-
sharer.setSharedStorage(keyHoverElement, null);
|
|
123
|
-
sharer.setSharedStorage(keyHoverElementVertexes, null);
|
|
124
|
-
sharer.setSharedStorage(keySelectedElementList, []);
|
|
125
|
-
sharer.setSharedStorage(keySelectedElementListVertexes, null);
|
|
126
|
-
sharer.setSharedStorage(keySelectedElementController, null);
|
|
127
|
-
sharer.setSharedStorage(keySelectedElementPosition, []);
|
|
128
|
-
sharer.setSharedStorage(keyIsMoving, null);
|
|
129
|
-
};
|
|
78
|
+
const clear = () => clearStorage(sharer);
|
|
130
79
|
clear();
|
|
131
|
-
const selectCallback = ({
|
|
132
|
-
let
|
|
80
|
+
const selectCallback = ({ ids = [], positions }) => {
|
|
81
|
+
let materials = [];
|
|
133
82
|
const actionType = sharer.getSharedStorage(keyActionType);
|
|
134
83
|
const data = sharer.getActiveStorage('data');
|
|
135
84
|
if (positions && Array.isArray(positions)) {
|
|
136
|
-
|
|
85
|
+
materials = findMaterialsFromListByPositions(positions, (data === null || data === void 0 ? void 0 : data.materials) || []);
|
|
137
86
|
}
|
|
138
87
|
else {
|
|
139
|
-
|
|
88
|
+
materials = findMaterialsFromList(ids, (data === null || data === void 0 ? void 0 : data.materials) || []);
|
|
140
89
|
}
|
|
141
90
|
let needRefresh = false;
|
|
142
|
-
if (!actionType &&
|
|
91
|
+
if (!actionType && materials.length === 1) {
|
|
143
92
|
sharer.setSharedStorage(keyActionType, 'select');
|
|
144
93
|
needRefresh = true;
|
|
145
94
|
}
|
|
146
|
-
else if (actionType === 'select' &&
|
|
95
|
+
else if (actionType === 'select' && materials.length === 1) {
|
|
147
96
|
needRefresh = true;
|
|
148
97
|
}
|
|
149
98
|
if (needRefresh) {
|
|
150
|
-
const
|
|
151
|
-
const groupQueue = getGroupQueueFromList(
|
|
99
|
+
const mtrl = materials[0];
|
|
100
|
+
const groupQueue = getGroupQueueFromList(mtrl.id, (data === null || data === void 0 ? void 0 : data.materials) || []);
|
|
152
101
|
sharer.setSharedStorage(keyGroupQueue, groupQueue);
|
|
153
|
-
|
|
154
|
-
|
|
102
|
+
updateSelectedMaterialList(materials);
|
|
103
|
+
sharer.setSharedStorage(keyPointStartMaterialSizeList, [
|
|
104
|
+
Object.assign(Object.assign({}, getMaterialSize(materials[0])), { id: materials[0].id }),
|
|
105
|
+
]);
|
|
155
106
|
viewer.drawFrame();
|
|
156
107
|
}
|
|
157
108
|
};
|
|
@@ -168,24 +119,36 @@ export const MiddlewareSelector = (opts, config) => {
|
|
|
168
119
|
return {
|
|
169
120
|
name: '@middleware/selector',
|
|
170
121
|
use() {
|
|
122
|
+
initStyles(rootClassName, styles);
|
|
123
|
+
$root = initRoot({ rootClassName, $container: opts.container });
|
|
171
124
|
eventHub.on(coreEventKeys.SELECT, selectCallback);
|
|
172
125
|
eventHub.on(coreEventKeys.CLEAR_SELECT, selectClearCallback);
|
|
173
126
|
eventHub.on(coreEventKeys.SELECT_IN_GROUP, selectInGroupCallback);
|
|
174
127
|
eventHub.on(coreEventKeys.SNAP_TO_GRID, setSnapToSnapCallback);
|
|
175
128
|
},
|
|
176
129
|
disuse() {
|
|
130
|
+
destroyStyles(rootClassName);
|
|
177
131
|
eventHub.off(coreEventKeys.SELECT, selectCallback);
|
|
178
132
|
eventHub.off(coreEventKeys.CLEAR_SELECT, selectClearCallback);
|
|
179
133
|
eventHub.off(coreEventKeys.SELECT_IN_GROUP, selectInGroupCallback);
|
|
180
134
|
eventHub.off(coreEventKeys.SNAP_TO_GRID, setSnapToSnapCallback);
|
|
135
|
+
$root === null || $root === void 0 ? void 0 : $root.remove();
|
|
181
136
|
clear();
|
|
182
137
|
innerConfig = null;
|
|
138
|
+
$root = null;
|
|
183
139
|
},
|
|
184
140
|
resetConfig(config) {
|
|
185
141
|
innerConfig = Object.assign(Object.assign({}, innerConfig), config);
|
|
186
142
|
},
|
|
187
143
|
hover: (e) => {
|
|
188
144
|
var _a, _b, _c, _d, _e;
|
|
145
|
+
if (!isPointInMiddlewareElement(e.nativeEvent, { $root, rootClassName })) {
|
|
146
|
+
if (sharer.getSharedStorage(keyHoverMaterial)) {
|
|
147
|
+
sharer.setSharedStorage(keyHoverMaterial, null);
|
|
148
|
+
viewer.drawFrame();
|
|
149
|
+
}
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
189
152
|
const layoutIsSelected = sharer.getSharedStorage(keyLayoutIsSelected);
|
|
190
153
|
const layoutIsBusyMoving = sharer.getSharedStorage(keyLayoutIsBusyMoving);
|
|
191
154
|
if (layoutIsBusyMoving === true) {
|
|
@@ -199,129 +162,126 @@ export const MiddlewareSelector = (opts, config) => {
|
|
|
199
162
|
return;
|
|
200
163
|
}
|
|
201
164
|
const cursor = target.type;
|
|
202
|
-
if (
|
|
165
|
+
if (sharer.getSharedStorage(keyInBusyMode) === null) {
|
|
203
166
|
eventHub.trigger(coreEventKeys.CURSOR, {
|
|
204
167
|
type: cursor,
|
|
205
168
|
groupQueue: target.groupQueue,
|
|
206
|
-
|
|
169
|
+
material: target.materials[0],
|
|
207
170
|
});
|
|
208
171
|
}
|
|
209
172
|
};
|
|
210
173
|
if ((groupQueue === null || groupQueue === void 0 ? void 0 : groupQueue.length) > 0) {
|
|
211
|
-
const isInActiveGroup =
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
viewSizeInfo: sharer.getActiveViewSizeInfo(),
|
|
215
|
-
groupQueue: sharer.getSharedStorage(keyGroupQueue)
|
|
174
|
+
const isInActiveGroup = isPointInActiveGroup(e.nativeEvent, {
|
|
175
|
+
$root,
|
|
176
|
+
groupQueue: sharer.getSharedStorage(keyGroupQueue),
|
|
216
177
|
});
|
|
217
178
|
if (!isInActiveGroup) {
|
|
218
|
-
|
|
179
|
+
sharer.setSharedStorage(keyHoverMaterial, null);
|
|
219
180
|
viewer.drawFrame();
|
|
220
181
|
return;
|
|
221
182
|
}
|
|
222
|
-
const target = getPointTarget(e.point, pointTargetBaseOptions());
|
|
183
|
+
const target = getPointTarget(e.point, pointTargetBaseOptions(e));
|
|
223
184
|
triggerCursor(target);
|
|
224
185
|
if (resizeType || ['area', 'drag', 'drag-list'].includes(actionType)) {
|
|
225
|
-
|
|
186
|
+
sharer.setSharedStorage(keyHoverMaterial, null);
|
|
226
187
|
viewer.drawFrame();
|
|
227
188
|
return;
|
|
228
189
|
}
|
|
229
|
-
if (((_a = target === null || target === void 0 ? void 0 : target.
|
|
230
|
-
|
|
190
|
+
if (((_a = target === null || target === void 0 ? void 0 : target.materials) === null || _a === void 0 ? void 0 : _a.length) === 1) {
|
|
191
|
+
sharer.setSharedStorage(keyHoverMaterial, target.materials[0]);
|
|
231
192
|
viewer.drawFrame();
|
|
232
193
|
return;
|
|
233
194
|
}
|
|
234
|
-
|
|
195
|
+
sharer.setSharedStorage(keyHoverMaterial, null);
|
|
235
196
|
viewer.drawFrame();
|
|
236
197
|
return;
|
|
237
198
|
}
|
|
238
199
|
if (resizeType || ['area', 'drag', 'drag-list'].includes(actionType)) {
|
|
239
|
-
|
|
200
|
+
sharer.setSharedStorage(keyHoverMaterial, null);
|
|
240
201
|
return;
|
|
241
202
|
}
|
|
242
203
|
if (actionType === 'drag') {
|
|
243
|
-
|
|
204
|
+
sharer.setSharedStorage(keyHoverMaterial, null);
|
|
244
205
|
return;
|
|
245
206
|
}
|
|
246
|
-
const
|
|
207
|
+
const selectedMaterials = sharer.getSharedStorage(keySelectedMaterialList);
|
|
247
208
|
const viewScaleInfo = sharer.getActiveViewScaleInfo();
|
|
248
209
|
const viewSizeInfo = sharer.getActiveViewSizeInfo();
|
|
249
|
-
const target = getPointTarget(e.point, Object.assign(Object.assign({}, pointTargetBaseOptions()), { areaSize:
|
|
210
|
+
const target = getPointTarget(e.point, Object.assign(Object.assign({}, pointTargetBaseOptions(e)), { areaSize: calcSelectedMaterialsArea(selectedMaterials, {
|
|
250
211
|
viewScaleInfo,
|
|
251
212
|
viewSizeInfo,
|
|
252
|
-
calculator
|
|
213
|
+
calculator,
|
|
253
214
|
}) }));
|
|
254
215
|
triggerCursor(target);
|
|
255
216
|
if (target.type === null) {
|
|
256
|
-
if (sharer.getSharedStorage(
|
|
257
|
-
sharer.setSharedStorage(
|
|
258
|
-
sharer.setSharedStorage(keyHoverElementVertexes, null);
|
|
217
|
+
if (sharer.getSharedStorage(keyHoverMaterial)) {
|
|
218
|
+
sharer.setSharedStorage(keyHoverMaterial, null);
|
|
259
219
|
viewer.drawFrame();
|
|
260
220
|
}
|
|
261
221
|
return;
|
|
262
222
|
}
|
|
263
|
-
if (target.type === 'over-
|
|
223
|
+
if (target.type === 'over-material' &&
|
|
264
224
|
sharer.getSharedStorage(keyActionType) === 'select' &&
|
|
265
|
-
target.
|
|
266
|
-
target.
|
|
225
|
+
target.materials.length === 1 &&
|
|
226
|
+
target.materials[0].id === ((_c = (_b = sharer.getSharedStorage(keySelectedMaterialList)) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.id)) {
|
|
267
227
|
return;
|
|
268
228
|
}
|
|
269
|
-
if (target.type === 'over-
|
|
229
|
+
if (target.type === 'over-material' &&
|
|
270
230
|
sharer.getSharedStorage(keyActionType) === null &&
|
|
271
|
-
target.
|
|
272
|
-
target.
|
|
231
|
+
target.materials.length === 1 &&
|
|
232
|
+
target.materials[0].id === ((_d = sharer.getSharedStorage(keyHoverMaterial)) === null || _d === void 0 ? void 0 : _d.id)) {
|
|
273
233
|
return;
|
|
274
234
|
}
|
|
275
|
-
if (target.type === 'over-
|
|
276
|
-
|
|
235
|
+
if (target.type === 'over-material' && ((_e = target === null || target === void 0 ? void 0 : target.materials) === null || _e === void 0 ? void 0 : _e.length) === 1) {
|
|
236
|
+
sharer.setSharedStorage(keyHoverMaterial, target.materials[0]);
|
|
277
237
|
viewer.drawFrame();
|
|
278
238
|
return;
|
|
279
239
|
}
|
|
280
|
-
if (sharer.getSharedStorage(
|
|
281
|
-
|
|
240
|
+
if (sharer.getSharedStorage(keyHoverMaterial)) {
|
|
241
|
+
sharer.setSharedStorage(keyHoverMaterial, null);
|
|
282
242
|
viewer.drawFrame();
|
|
283
243
|
return;
|
|
284
244
|
}
|
|
285
245
|
},
|
|
286
246
|
pointStart: (e) => {
|
|
287
247
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
248
|
+
if (!isPointInMiddlewareElement(e.nativeEvent, { $root, rootClassName })) {
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
sharer.setSharedStorage(keyPrevPoint, e.point);
|
|
252
|
+
sharer.setSharedStorage(keyMoveOriginalStartPoint, e.point);
|
|
253
|
+
sharer.setSharedStorage(keyStartResizeGroupRecord, null);
|
|
254
|
+
sharer.setSharedStorage(keyEndResizeGroupRecord, null);
|
|
292
255
|
sharer.setSharedStorage(keyActionType, null);
|
|
293
256
|
sharer.setSharedStorage(keyResizeType, null);
|
|
294
257
|
sharer.setSharedStorage(keyAreaStart, null);
|
|
295
258
|
sharer.setSharedStorage(keyAreaEnd, null);
|
|
296
|
-
sharer.setSharedStorage(
|
|
259
|
+
sharer.setSharedStorage(keyHoverMaterial, null);
|
|
297
260
|
const groupQueue = sharer.getSharedStorage(keyGroupQueue);
|
|
298
261
|
if ((groupQueue === null || groupQueue === void 0 ? void 0 : groupQueue.length) > 0) {
|
|
299
|
-
if (
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
const target = getPointTarget(e.point, pointTargetBaseOptions());
|
|
306
|
-
const isLockedElement = ((_a = target === null || target === void 0 ? void 0 : target.elements) === null || _a === void 0 ? void 0 : _a.length) === 1 && ((_c = (_b = target.elements[0]) === null || _b === void 0 ? void 0 : _b.operations) === null || _c === void 0 ? void 0 : _c.locked) === true;
|
|
307
|
-
updateHoverElement(null);
|
|
308
|
-
if (((_d = target === null || target === void 0 ? void 0 : target.elements) === null || _d === void 0 ? void 0 : _d.length) === 1) {
|
|
309
|
-
moveOriginalStartElementSize = getElementSize(target === null || target === void 0 ? void 0 : target.elements[0]);
|
|
262
|
+
if (isPointInActiveGroup(e.nativeEvent, { $root, groupQueue })) {
|
|
263
|
+
const target = getPointTarget(e.point, pointTargetBaseOptions(e));
|
|
264
|
+
const isLockedMaterial = ((_a = target === null || target === void 0 ? void 0 : target.materials) === null || _a === void 0 ? void 0 : _a.length) === 1 && ((_c = (_b = target.materials[0]) === null || _b === void 0 ? void 0 : _b.operations) === null || _c === void 0 ? void 0 : _c.locked) === true;
|
|
265
|
+
sharer.setSharedStorage(keyHoverMaterial, null);
|
|
266
|
+
if (((_d = target === null || target === void 0 ? void 0 : target.materials) === null || _d === void 0 ? void 0 : _d.length) === 1) {
|
|
267
|
+
sharer.setSharedStorage(keyMoveOriginalStartMaterialSize, getMaterialSize(target === null || target === void 0 ? void 0 : target.materials[0]));
|
|
310
268
|
}
|
|
311
|
-
if (
|
|
269
|
+
if (isLockedMaterial === true) {
|
|
312
270
|
clear();
|
|
313
271
|
}
|
|
314
|
-
else if (target.type === 'over-
|
|
315
|
-
|
|
272
|
+
else if (target.type === 'over-material' && ((_e = target === null || target === void 0 ? void 0 : target.materials) === null || _e === void 0 ? void 0 : _e.length) === 1) {
|
|
273
|
+
updateSelectedMaterialList([target.materials[0]], { triggerEvent: true });
|
|
316
274
|
sharer.setSharedStorage(keyActionType, 'drag');
|
|
317
|
-
|
|
275
|
+
sharer.setSharedStorage(keyPointStartMaterialSizeList, [
|
|
276
|
+
Object.assign(Object.assign({}, getMaterialSize(target === null || target === void 0 ? void 0 : target.materials[0])), { id: target === null || target === void 0 ? void 0 : target.materials[0].id }),
|
|
277
|
+
]);
|
|
318
278
|
}
|
|
319
279
|
else if ((_f = target.type) === null || _f === void 0 ? void 0 : _f.startsWith('resize-')) {
|
|
320
280
|
sharer.setSharedStorage(keyResizeType, target.type);
|
|
321
281
|
sharer.setSharedStorage(keyActionType, 'resize');
|
|
322
282
|
}
|
|
323
283
|
else {
|
|
324
|
-
|
|
284
|
+
updateSelectedMaterialList([], { triggerEvent: true });
|
|
325
285
|
}
|
|
326
286
|
}
|
|
327
287
|
else {
|
|
@@ -330,30 +290,33 @@ export const MiddlewareSelector = (opts, config) => {
|
|
|
330
290
|
viewer.drawFrame();
|
|
331
291
|
return;
|
|
332
292
|
}
|
|
333
|
-
const listAreaSize =
|
|
293
|
+
const listAreaSize = calcSelectedMaterialsArea(sharer.getSharedStorage(keySelectedMaterialList), {
|
|
334
294
|
viewScaleInfo: sharer.getActiveViewScaleInfo(),
|
|
335
295
|
viewSizeInfo: sharer.getActiveViewSizeInfo(),
|
|
336
|
-
calculator
|
|
296
|
+
calculator,
|
|
337
297
|
});
|
|
338
|
-
const target = getPointTarget(e.point, Object.assign(Object.assign({}, pointTargetBaseOptions()), { areaSize: listAreaSize, groupQueue: [] }));
|
|
339
|
-
const
|
|
340
|
-
|
|
341
|
-
if (((_k = target === null || target === void 0 ? void 0 : target.
|
|
342
|
-
|
|
298
|
+
const target = getPointTarget(e.point, Object.assign(Object.assign({}, pointTargetBaseOptions(e)), { areaSize: listAreaSize, groupQueue: [] }));
|
|
299
|
+
const isLockedMaterial = ((_g = target === null || target === void 0 ? void 0 : target.materials) === null || _g === void 0 ? void 0 : _g.length) === 1 && ((_j = (_h = target.materials[0]) === null || _h === void 0 ? void 0 : _h.operations) === null || _j === void 0 ? void 0 : _j.locked) === true;
|
|
300
|
+
sharer.setSharedStorage(keyHoverMaterial, null);
|
|
301
|
+
if (((_k = target === null || target === void 0 ? void 0 : target.materials) === null || _k === void 0 ? void 0 : _k.length) === 1) {
|
|
302
|
+
sharer.setSharedStorage(keyMoveOriginalStartMaterialSize, getMaterialSize(target === null || target === void 0 ? void 0 : target.materials[0]));
|
|
343
303
|
}
|
|
344
|
-
if (
|
|
304
|
+
if (isLockedMaterial === true) {
|
|
345
305
|
clear();
|
|
306
|
+
sharer.setSharedStorage(keyHoverMaterial, target === null || target === void 0 ? void 0 : target.materials[0]);
|
|
346
307
|
sharer.setSharedStorage(keyActionType, 'area');
|
|
347
308
|
sharer.setSharedStorage(keyAreaStart, e.point);
|
|
348
|
-
|
|
309
|
+
updateSelectedMaterialList([], { triggerEvent: true });
|
|
349
310
|
}
|
|
350
311
|
else if (target.type === 'list-area') {
|
|
351
312
|
sharer.setSharedStorage(keyActionType, 'drag-list');
|
|
352
313
|
}
|
|
353
|
-
else if (target.type === 'over-
|
|
354
|
-
|
|
314
|
+
else if (target.type === 'over-material' && ((_l = target === null || target === void 0 ? void 0 : target.materials) === null || _l === void 0 ? void 0 : _l.length) === 1) {
|
|
315
|
+
updateSelectedMaterialList([target.materials[0]], { triggerEvent: true });
|
|
355
316
|
sharer.setSharedStorage(keyActionType, 'drag');
|
|
356
|
-
|
|
317
|
+
sharer.setSharedStorage(keyPointStartMaterialSizeList, [
|
|
318
|
+
Object.assign(Object.assign({}, getMaterialSize(target === null || target === void 0 ? void 0 : target.materials[0])), { id: target === null || target === void 0 ? void 0 : target.materials[0].id }),
|
|
319
|
+
]);
|
|
357
320
|
}
|
|
358
321
|
else if ((_m = target.type) === null || _m === void 0 ? void 0 : _m.startsWith('resize-')) {
|
|
359
322
|
sharer.setSharedStorage(keyResizeType, target.type);
|
|
@@ -363,45 +326,49 @@ export const MiddlewareSelector = (opts, config) => {
|
|
|
363
326
|
clear();
|
|
364
327
|
sharer.setSharedStorage(keyActionType, 'area');
|
|
365
328
|
sharer.setSharedStorage(keyAreaStart, e.point);
|
|
366
|
-
|
|
329
|
+
updateSelectedMaterialList([], { triggerEvent: true });
|
|
367
330
|
}
|
|
368
331
|
viewer.drawFrame();
|
|
369
332
|
},
|
|
370
333
|
pointMove: (e) => {
|
|
371
|
-
var _a, _b, _c;
|
|
334
|
+
var _a, _b, _c, _d;
|
|
335
|
+
if (!isPointInMiddlewareElement(e.nativeEvent, { $root, rootClassName })) {
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
372
338
|
sharer.setSharedStorage(keyIsMoving, true);
|
|
373
339
|
const data = sharer.getActiveStorage('data');
|
|
374
|
-
const
|
|
340
|
+
const mtrls = sharer.getSharedStorage(keySelectedMaterialList);
|
|
375
341
|
const scale = sharer.getActiveStorage('scale') || 1;
|
|
376
342
|
const viewScaleInfo = sharer.getActiveViewScaleInfo();
|
|
377
343
|
const viewSizeInfo = sharer.getActiveViewSizeInfo();
|
|
378
|
-
const start =
|
|
379
|
-
const originalStart =
|
|
344
|
+
const start = sharer.getSharedStorage(keyPrevPoint);
|
|
345
|
+
const originalStart = sharer.getSharedStorage(keyMoveOriginalStartPoint);
|
|
380
346
|
const end = e.point;
|
|
381
347
|
const resizeType = sharer.getSharedStorage(keyResizeType);
|
|
382
348
|
const actionType = sharer.getSharedStorage(keyActionType);
|
|
383
349
|
const groupQueue = sharer.getSharedStorage(keyGroupQueue);
|
|
384
350
|
const enableSnapToGrid = sharer.getSharedStorage(keyEnableSnapToGrid);
|
|
351
|
+
let modifyType = 'unknown';
|
|
385
352
|
if (actionType === 'drag') {
|
|
386
|
-
|
|
387
|
-
|
|
353
|
+
sharer.setSharedStorage(keyHasChangedData, true);
|
|
354
|
+
sharer.setSharedStorage(keyInBusyMode, 'drag');
|
|
388
355
|
eventHub.trigger(MIDDLEWARE_INTERNAL_EVENT_SHOW_INFO_ANGLE, { show: false });
|
|
389
356
|
if (data &&
|
|
390
|
-
(
|
|
391
|
-
|
|
357
|
+
(mtrls === null || mtrls === void 0 ? void 0 : mtrls.length) === 1 &&
|
|
358
|
+
sharer.getSharedStorage(keyMoveOriginalStartMaterialSize) &&
|
|
392
359
|
originalStart &&
|
|
393
360
|
end &&
|
|
394
|
-
((_b = (_a =
|
|
395
|
-
const { moveX, moveY } =
|
|
361
|
+
((_b = (_a = mtrls[0]) === null || _a === void 0 ? void 0 : _a.operations) === null || _b === void 0 ? void 0 : _b.locked) !== true) {
|
|
362
|
+
const { moveX, moveY } = calcPointMoveMaterialInGroup(originalStart, end, groupQueue);
|
|
396
363
|
let totalMoveX = calculator.toGridNum(moveX / scale);
|
|
397
364
|
let totalMoveY = calculator.toGridNum(moveY / scale);
|
|
398
365
|
if (enableSnapToGrid === true) {
|
|
399
|
-
const referenceInfo = calcReferenceInfo(
|
|
366
|
+
const referenceInfo = calcReferenceInfo(mtrls[0].id, {
|
|
400
367
|
calculator,
|
|
401
368
|
data,
|
|
402
369
|
groupQueue,
|
|
403
370
|
viewScaleInfo,
|
|
404
|
-
viewSizeInfo
|
|
371
|
+
viewSizeInfo,
|
|
405
372
|
});
|
|
406
373
|
try {
|
|
407
374
|
if (referenceInfo) {
|
|
@@ -417,44 +384,53 @@ export const MiddlewareSelector = (opts, config) => {
|
|
|
417
384
|
console.error(err);
|
|
418
385
|
}
|
|
419
386
|
}
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
387
|
+
const moveOriginalStartMaterialSize = sharer.getSharedStorage(keyMoveOriginalStartMaterialSize);
|
|
388
|
+
const newX = calculator.toGridNum(moveOriginalStartMaterialSize.x + totalMoveX);
|
|
389
|
+
const newY = calculator.toGridNum(moveOriginalStartMaterialSize.y + totalMoveY);
|
|
390
|
+
dragAndResizeMaterial(mtrls[0], {
|
|
391
|
+
x: newX,
|
|
392
|
+
y: newY,
|
|
393
|
+
width: mtrls[0].width,
|
|
394
|
+
height: mtrls[0].height,
|
|
395
|
+
});
|
|
396
|
+
updateSelectedMaterialList([mtrls[0]]);
|
|
397
|
+
modifyType = 'updateMaterial';
|
|
398
|
+
calculator.modifyVirtualItemMap(data, {
|
|
424
399
|
modifyInfo: {
|
|
425
|
-
type:
|
|
400
|
+
type: modifyType,
|
|
426
401
|
content: {
|
|
427
|
-
|
|
428
|
-
position: sharer.getSharedStorage(
|
|
429
|
-
}
|
|
402
|
+
material: mtrls[0],
|
|
403
|
+
position: sharer.getSharedStorage(keySelectedMaterialPosition) || [],
|
|
404
|
+
},
|
|
430
405
|
},
|
|
431
406
|
viewSizeInfo,
|
|
432
|
-
viewScaleInfo
|
|
407
|
+
viewScaleInfo,
|
|
433
408
|
});
|
|
434
409
|
}
|
|
435
410
|
viewer.drawFrame();
|
|
436
411
|
}
|
|
437
412
|
else if (actionType === 'drag-list') {
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
if (data && originalStart && start && end && (
|
|
413
|
+
sharer.setSharedStorage(keyHasChangedData, true);
|
|
414
|
+
sharer.setSharedStorage(keyInBusyMode, 'drag-list');
|
|
415
|
+
if (data && originalStart && start && end && (mtrls === null || mtrls === void 0 ? void 0 : mtrls.length) > 1) {
|
|
441
416
|
const moveX = (end.x - start.x) / scale;
|
|
442
417
|
const moveY = (end.y - start.y) / scale;
|
|
443
|
-
|
|
418
|
+
mtrls.forEach((mtrl) => {
|
|
444
419
|
var _a;
|
|
445
|
-
if (
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
420
|
+
if (mtrl && ((_a = mtrl === null || mtrl === void 0 ? void 0 : mtrl.operations) === null || _a === void 0 ? void 0 : _a.locked) !== true) {
|
|
421
|
+
mtrl.x = calculator.toGridNum(mtrl.x + moveX);
|
|
422
|
+
mtrl.y = calculator.toGridNum(mtrl.y + moveY);
|
|
423
|
+
modifyType = 'updateMaterial';
|
|
424
|
+
calculator.modifyVirtualItemMap(data, {
|
|
449
425
|
modifyInfo: {
|
|
450
|
-
type:
|
|
426
|
+
type: modifyType,
|
|
451
427
|
content: {
|
|
452
|
-
|
|
453
|
-
position:
|
|
454
|
-
}
|
|
428
|
+
material: mtrl,
|
|
429
|
+
position: getMaterialPositionFromList(mtrl.id, data.materials) || [],
|
|
430
|
+
},
|
|
455
431
|
},
|
|
456
432
|
viewSizeInfo,
|
|
457
|
-
viewScaleInfo
|
|
433
|
+
viewScaleInfo,
|
|
458
434
|
});
|
|
459
435
|
}
|
|
460
436
|
});
|
|
@@ -464,21 +440,21 @@ export const MiddlewareSelector = (opts, config) => {
|
|
|
464
440
|
}
|
|
465
441
|
else if (actionType === 'resize') {
|
|
466
442
|
if (data &&
|
|
467
|
-
(
|
|
443
|
+
(mtrls === null || mtrls === void 0 ? void 0 : mtrls.length) === 1 &&
|
|
468
444
|
originalStart &&
|
|
469
|
-
|
|
445
|
+
sharer.getSharedStorage(keyMoveOriginalStartMaterialSize) &&
|
|
470
446
|
(resizeType === null || resizeType === void 0 ? void 0 : resizeType.startsWith('resize-'))) {
|
|
471
|
-
|
|
472
|
-
|
|
447
|
+
sharer.setSharedStorage(keyHasChangedData, true);
|
|
448
|
+
sharer.setSharedStorage(keyInBusyMode, 'resize');
|
|
473
449
|
const pointGroupQueue = [];
|
|
474
450
|
groupQueue.forEach((group) => {
|
|
475
|
-
const { x, y,
|
|
451
|
+
const { x, y, width, height, angle = 0 } = group;
|
|
476
452
|
pointGroupQueue.push({
|
|
477
453
|
x,
|
|
478
454
|
y,
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
angle: 0 - angle
|
|
455
|
+
width,
|
|
456
|
+
height,
|
|
457
|
+
angle: 0 - angle,
|
|
482
458
|
});
|
|
483
459
|
});
|
|
484
460
|
let resizeStart = originalStart;
|
|
@@ -488,87 +464,99 @@ export const MiddlewareSelector = (opts, config) => {
|
|
|
488
464
|
resizeEnd = rotatePointInGroup(end, pointGroupQueue);
|
|
489
465
|
}
|
|
490
466
|
if (resizeType === 'resize-rotate') {
|
|
491
|
-
const
|
|
492
|
-
const
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
controller.bottomRight.center
|
|
497
|
-
];
|
|
498
|
-
const viewCenter = calcElementCenterFromVertexes(viewVertexes);
|
|
499
|
-
const resizedElemSize = rotateElement(moveOriginalStartElementSize, {
|
|
500
|
-
center: viewCenter,
|
|
467
|
+
const moveOriginalStartMaterialSize = sharer.getSharedStorage(keyMoveOriginalStartMaterialSize);
|
|
468
|
+
const virtualItem = calculator.getVirtualItem((_c = mtrls === null || mtrls === void 0 ? void 0 : mtrls[0]) === null || _c === void 0 ? void 0 : _c.id);
|
|
469
|
+
const worldCenter = virtualItem === null || virtualItem === void 0 ? void 0 : virtualItem.worldCenter;
|
|
470
|
+
const resizedMtrlSize = rotateMaterial(moveOriginalStartMaterialSize, {
|
|
471
|
+
center: worldCenter,
|
|
501
472
|
viewScaleInfo,
|
|
502
473
|
viewSizeInfo,
|
|
503
474
|
start: originalStart,
|
|
504
475
|
end,
|
|
505
476
|
resizeType,
|
|
506
|
-
sharer
|
|
477
|
+
sharer,
|
|
478
|
+
calculator,
|
|
507
479
|
});
|
|
508
|
-
|
|
480
|
+
mtrls[0].angle = calculator.toGridNum(resizedMtrlSize.angle || 0);
|
|
509
481
|
}
|
|
510
482
|
else {
|
|
511
|
-
const
|
|
512
|
-
const
|
|
513
|
-
const
|
|
514
|
-
const
|
|
515
|
-
const
|
|
516
|
-
const
|
|
517
|
-
|
|
518
|
-
|
|
483
|
+
const moveOriginalStartMaterialSize = sharer.getSharedStorage(keyMoveOriginalStartMaterialSize);
|
|
484
|
+
const resizedMtrlSize = resizeMaterial(Object.assign(Object.assign({}, moveOriginalStartMaterialSize), { operations: mtrls[0].operations }), { scale, start: resizeStart, end: resizeEnd, resizeType, sharer, calculator });
|
|
485
|
+
const calcOpts = { ignore: !!moveOriginalStartMaterialSize.angle };
|
|
486
|
+
const gridX = calculator.toGridNum(resizedMtrlSize.x, calcOpts);
|
|
487
|
+
const gridY = calculator.toGridNum(resizedMtrlSize.y, calcOpts);
|
|
488
|
+
const gridW = calculator.toGridNum(resizedMtrlSize.width, calcOpts);
|
|
489
|
+
const gridH = calculator.toGridNum(resizedMtrlSize.height, calcOpts);
|
|
490
|
+
if (mtrls[0].type === 'group') {
|
|
491
|
+
sharer.setSharedStorage(keyEndResizeGroupRecord, resizeEffectGroupMaterial(mtrls[0], {
|
|
519
492
|
x: gridX,
|
|
520
493
|
y: gridY,
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
}, { resizeEffect: (
|
|
524
|
-
if (!
|
|
525
|
-
|
|
494
|
+
width: gridW,
|
|
495
|
+
height: gridH,
|
|
496
|
+
}, { resizeEffect: (_d = mtrls[0].operations) === null || _d === void 0 ? void 0 : _d.resizeEffect }));
|
|
497
|
+
if (!sharer.getSharedStorage(keyStartResizeGroupRecord)) {
|
|
498
|
+
sharer.setSharedStorage(keyStartResizeGroupRecord, sharer.getSharedStorage(keyEndResizeGroupRecord));
|
|
526
499
|
}
|
|
527
|
-
|
|
528
|
-
|
|
500
|
+
mtrls[0].x = gridX;
|
|
501
|
+
mtrls[0].y = gridY;
|
|
529
502
|
}
|
|
530
503
|
else {
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
504
|
+
dragAndResizeMaterial(mtrls[0], {
|
|
505
|
+
x: gridX,
|
|
506
|
+
y: gridY,
|
|
507
|
+
width: gridW,
|
|
508
|
+
height: gridH,
|
|
509
|
+
});
|
|
535
510
|
}
|
|
536
511
|
}
|
|
537
|
-
|
|
538
|
-
|
|
512
|
+
updateSelectedMaterialList([mtrls[0]]);
|
|
513
|
+
modifyType = 'updateMaterial';
|
|
514
|
+
calculator.modifyVirtualItemMap(data, {
|
|
539
515
|
modifyInfo: {
|
|
540
|
-
type:
|
|
516
|
+
type: modifyType,
|
|
541
517
|
content: {
|
|
542
|
-
|
|
543
|
-
position: sharer.getSharedStorage(
|
|
544
|
-
}
|
|
518
|
+
material: mtrls[0],
|
|
519
|
+
position: sharer.getSharedStorage(keySelectedMaterialPosition) || [],
|
|
520
|
+
},
|
|
545
521
|
},
|
|
546
522
|
viewSizeInfo,
|
|
547
|
-
viewScaleInfo
|
|
523
|
+
viewScaleInfo,
|
|
548
524
|
});
|
|
549
525
|
viewer.drawFrame();
|
|
550
526
|
}
|
|
551
527
|
}
|
|
552
528
|
else if (actionType === 'area') {
|
|
553
|
-
|
|
529
|
+
sharer.setSharedStorage(keyInBusyMode, 'area');
|
|
554
530
|
sharer.setSharedStorage(keyAreaEnd, e.point);
|
|
555
531
|
viewer.drawFrame();
|
|
556
532
|
}
|
|
557
|
-
|
|
533
|
+
const selectedMaterials = sharer.getSharedStorage(keySelectedMaterialList);
|
|
534
|
+
triggerChangeEvent(eventHub, {
|
|
535
|
+
data,
|
|
536
|
+
type: 'updatingMaterial',
|
|
537
|
+
selectedMaterials,
|
|
538
|
+
hoverMaterial: null,
|
|
539
|
+
modifyRecord: null,
|
|
540
|
+
}, 'continuous');
|
|
541
|
+
sharer.setSharedStorage(keyPrevPoint, e.point);
|
|
558
542
|
},
|
|
559
543
|
pointEnd(e) {
|
|
560
|
-
|
|
544
|
+
var _a;
|
|
545
|
+
if (!isPointInMiddlewareElement(e.nativeEvent, { $root, rootClassName })) {
|
|
546
|
+
return;
|
|
547
|
+
}
|
|
548
|
+
sharer.setSharedStorage(keyInBusyMode, null);
|
|
561
549
|
sharer.setSharedStorage(keyIsMoving, false);
|
|
562
550
|
const data = sharer.getActiveStorage('data');
|
|
563
|
-
const
|
|
564
|
-
const
|
|
551
|
+
const selectedMaterials = sharer.getSharedStorage(keySelectedMaterialList);
|
|
552
|
+
const hoverMaterial = sharer.getSharedStorage(keyHoverMaterial);
|
|
565
553
|
const resizeType = sharer.getSharedStorage(keyResizeType);
|
|
566
554
|
const actionType = sharer.getSharedStorage(keyActionType);
|
|
567
555
|
const viewSizeInfo = sharer.getActiveViewSizeInfo();
|
|
568
556
|
let needDrawFrame = false;
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
557
|
+
sharer.setSharedStorage(keyPrevPoint, null);
|
|
558
|
+
sharer.setSharedStorage(keyMoveOriginalStartPoint, null);
|
|
559
|
+
sharer.setSharedStorage(keyMoveOriginalStartMaterialSize, null);
|
|
572
560
|
if (actionType === 'drag') {
|
|
573
561
|
eventHub.trigger(MIDDLEWARE_INTERNAL_EVENT_SHOW_INFO_ANGLE, { show: true });
|
|
574
562
|
}
|
|
@@ -577,21 +565,26 @@ export const MiddlewareSelector = (opts, config) => {
|
|
|
577
565
|
needDrawFrame = true;
|
|
578
566
|
}
|
|
579
567
|
else if (actionType === 'area') {
|
|
580
|
-
|
|
568
|
+
if ((_a = hoverMaterial === null || hoverMaterial === void 0 ? void 0 : hoverMaterial.operations) === null || _a === void 0 ? void 0 : _a.locked) {
|
|
569
|
+
sharer.setSharedStorage(keyActionType, 'hover');
|
|
570
|
+
}
|
|
571
|
+
else {
|
|
572
|
+
sharer.setSharedStorage(keyActionType, null);
|
|
573
|
+
}
|
|
581
574
|
if (data) {
|
|
582
575
|
const start = sharer.getSharedStorage(keyAreaStart);
|
|
583
576
|
const end = sharer.getSharedStorage(keyAreaEnd);
|
|
584
577
|
if (start && end) {
|
|
585
|
-
const {
|
|
578
|
+
const { materials } = getSelectedListArea(data, {
|
|
586
579
|
start,
|
|
587
580
|
end,
|
|
588
581
|
calculator,
|
|
589
582
|
viewScaleInfo: sharer.getActiveViewScaleInfo(),
|
|
590
|
-
viewSizeInfo: sharer.getActiveViewSizeInfo()
|
|
583
|
+
viewSizeInfo: sharer.getActiveViewSizeInfo(),
|
|
591
584
|
});
|
|
592
|
-
if (
|
|
585
|
+
if (materials.length > 0) {
|
|
593
586
|
sharer.setSharedStorage(keyActionType, 'drag-list');
|
|
594
|
-
|
|
587
|
+
updateSelectedMaterialList(materials, { triggerEvent: true });
|
|
595
588
|
needDrawFrame = true;
|
|
596
589
|
}
|
|
597
590
|
}
|
|
@@ -602,12 +595,12 @@ export const MiddlewareSelector = (opts, config) => {
|
|
|
602
595
|
needDrawFrame = true;
|
|
603
596
|
}
|
|
604
597
|
else if (data) {
|
|
605
|
-
const result = calculator.
|
|
598
|
+
const result = calculator.getPointMaterial(e.point, {
|
|
606
599
|
data,
|
|
607
600
|
viewScaleInfo: sharer.getActiveViewScaleInfo(),
|
|
608
|
-
viewSizeInfo: sharer.getActiveViewSizeInfo()
|
|
601
|
+
viewSizeInfo: sharer.getActiveViewSizeInfo(),
|
|
609
602
|
});
|
|
610
|
-
if (result.
|
|
603
|
+
if (result.material) {
|
|
611
604
|
sharer.setSharedStorage(keyActionType, 'select');
|
|
612
605
|
needDrawFrame = true;
|
|
613
606
|
}
|
|
@@ -623,49 +616,52 @@ export const MiddlewareSelector = (opts, config) => {
|
|
|
623
616
|
if (!needDrawFrame) {
|
|
624
617
|
return;
|
|
625
618
|
}
|
|
626
|
-
if (data && Array.isArray(data === null || data === void 0 ? void 0 : data.
|
|
627
|
-
const viewInfo =
|
|
619
|
+
if (data && Array.isArray(data === null || data === void 0 ? void 0 : data.materials) && ['drag', 'drag-list'].includes(actionType)) {
|
|
620
|
+
const viewInfo = calcMaterialsViewInfo(data.materials, viewSizeInfo, { extend: true });
|
|
628
621
|
sharer.setActiveStorage('contextHeight', viewInfo.contextSize.contextHeight);
|
|
629
622
|
sharer.setActiveStorage('contextWidth', viewInfo.contextSize.contextWidth);
|
|
630
623
|
}
|
|
631
624
|
if (data && ['drag', 'drag-list', 'drag-list-end', 'resize'].includes(actionType)) {
|
|
632
|
-
let type = '
|
|
625
|
+
let type = 'resizeMaterial';
|
|
633
626
|
if (type === 'resize') {
|
|
634
|
-
type = '
|
|
627
|
+
type = 'resizeMaterial';
|
|
635
628
|
}
|
|
636
|
-
if (
|
|
629
|
+
if (sharer.getSharedStorage(keyHasChangedData)) {
|
|
637
630
|
let modifyRecord = null;
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
631
|
+
const pointStartMaterialSizeList = sharer.getSharedStorage(keyPointStartMaterialSizeList);
|
|
632
|
+
if (Array.isArray(pointStartMaterialSizeList) && pointStartMaterialSizeList.length) {
|
|
633
|
+
const startSize = pointStartMaterialSizeList[0];
|
|
634
|
+
if (selectedMaterials.length === 1) {
|
|
641
635
|
modifyRecord = {
|
|
642
|
-
type: '
|
|
636
|
+
type: 'resizeMaterial',
|
|
643
637
|
time: 0,
|
|
644
638
|
content: {
|
|
645
|
-
method: '
|
|
646
|
-
|
|
647
|
-
before:
|
|
648
|
-
after:
|
|
649
|
-
}
|
|
639
|
+
method: 'modifyMaterial',
|
|
640
|
+
id: startSize.id,
|
|
641
|
+
before: toFlattenMaterial(startSize),
|
|
642
|
+
after: toFlattenMaterial(getMaterialSize(selectedMaterials[0])),
|
|
643
|
+
},
|
|
650
644
|
};
|
|
651
|
-
|
|
645
|
+
const startResizeGroupRecord = sharer.getSharedStorage(keyStartResizeGroupRecord);
|
|
646
|
+
const endResizeGroupRecord = sharer.getSharedStorage(keyEndResizeGroupRecord);
|
|
647
|
+
if (selectedMaterials[0].type === 'group' && startResizeGroupRecord && endResizeGroupRecord) {
|
|
652
648
|
modifyRecord = Object.assign(Object.assign({}, endResizeGroupRecord), { content: Object.assign(Object.assign({}, endResizeGroupRecord.content), { before: startResizeGroupRecord.content.before }) });
|
|
653
649
|
}
|
|
654
650
|
}
|
|
655
|
-
else if (
|
|
651
|
+
else if (selectedMaterials.length > 1) {
|
|
656
652
|
modifyRecord = {
|
|
657
|
-
type: '
|
|
653
|
+
type: 'resizeMaterials',
|
|
658
654
|
time: 0,
|
|
659
655
|
content: {
|
|
660
|
-
method: '
|
|
661
|
-
before:
|
|
662
|
-
after:
|
|
663
|
-
}
|
|
656
|
+
method: 'modifyMaterials',
|
|
657
|
+
before: pointStartMaterialSizeList.map((item) => (Object.assign(Object.assign({}, toFlattenMaterial(item)), { id: item.id }))),
|
|
658
|
+
after: selectedMaterials.map((item) => (Object.assign(Object.assign({}, toFlattenMaterial(getMaterialSize(item))), { id: item.id }))),
|
|
659
|
+
},
|
|
664
660
|
};
|
|
665
661
|
}
|
|
666
662
|
}
|
|
667
|
-
eventHub
|
|
668
|
-
|
|
663
|
+
triggerChangeEvent(eventHub, { data, type, selectedMaterials, hoverMaterial, modifyRecord });
|
|
664
|
+
sharer.setSharedStorage(keyHasChangedData, false);
|
|
669
665
|
}
|
|
670
666
|
}
|
|
671
667
|
viewer.drawFrame();
|
|
@@ -673,210 +669,90 @@ export const MiddlewareSelector = (opts, config) => {
|
|
|
673
669
|
finalDrawFrame();
|
|
674
670
|
},
|
|
675
671
|
pointLeave() {
|
|
676
|
-
|
|
672
|
+
sharer.setSharedStorage(keyInBusyMode, null);
|
|
677
673
|
sharer.setSharedStorage(keyResizeType, null);
|
|
678
674
|
eventHub.trigger(coreEventKeys.CURSOR, {
|
|
679
|
-
type: 'default'
|
|
675
|
+
type: 'default',
|
|
680
676
|
});
|
|
681
677
|
},
|
|
682
678
|
doubleClick(e) {
|
|
683
|
-
var _a, _b, _c, _d, _e
|
|
684
|
-
if (
|
|
679
|
+
var _a, _b, _c, _d, _e;
|
|
680
|
+
if (!isPointInMiddlewareElement(e.nativeEvent, { $root, rootClassName })) {
|
|
681
|
+
return;
|
|
682
|
+
}
|
|
683
|
+
const enableSelectInGroup = sharer.getSharedStorage(keyEnableSelectInGroup);
|
|
684
|
+
if (enableSelectInGroup === false) {
|
|
685
685
|
return;
|
|
686
686
|
}
|
|
687
|
-
const target = getPointTarget(e.point, pointTargetBaseOptions());
|
|
688
|
-
sharer.setSharedStorage(
|
|
689
|
-
|
|
690
|
-
|
|
687
|
+
const target = getPointTarget(e.point, pointTargetBaseOptions(e));
|
|
688
|
+
sharer.setSharedStorage(keySelectedMaterialList, []);
|
|
689
|
+
if (target.materials.length !== 1 ||
|
|
690
|
+
((_b = (_a = target.materials[0]) === null || _a === void 0 ? void 0 : _a.operations) === null || _b === void 0 ? void 0 : _b.locked) === true ||
|
|
691
|
+
((_d = (_c = target.materials[0]) === null || _c === void 0 ? void 0 : _c.operations) === null || _d === void 0 ? void 0 : _d.invisible) === true) {
|
|
691
692
|
return;
|
|
692
693
|
}
|
|
693
|
-
|
|
694
|
-
|
|
694
|
+
const mtrl = target.materials[0];
|
|
695
|
+
(_e = innerConfig === null || innerConfig === void 0 ? void 0 : innerConfig.afterDoubleClickMaterial) === null || _e === void 0 ? void 0 : _e.call(innerConfig, { material: mtrl });
|
|
696
|
+
if ((mtrl === null || mtrl === void 0 ? void 0 : mtrl.type) === 'group') {
|
|
697
|
+
const pushResult = pushGroupQueue(mtrl);
|
|
695
698
|
if (pushResult === true) {
|
|
696
699
|
sharer.setSharedStorage(keyActionType, null);
|
|
697
700
|
viewer.drawFrame();
|
|
698
701
|
return;
|
|
699
702
|
}
|
|
700
703
|
}
|
|
701
|
-
else if (
|
|
702
|
-
((_d = target.elements[0]) === null || _d === void 0 ? void 0 : _d.type) === 'text' &&
|
|
703
|
-
!((_f = (_e = target.elements[0]) === null || _e === void 0 ? void 0 : _e.operations) === null || _f === void 0 ? void 0 : _f.invisible)) {
|
|
704
|
+
else if ((mtrl === null || mtrl === void 0 ? void 0 : mtrl.type) === 'text') {
|
|
704
705
|
eventHub.trigger(coreEventKeys.TEXT_EDIT, {
|
|
705
|
-
|
|
706
|
-
groupQueue: sharer.getSharedStorage(keyGroupQueue) || [],
|
|
707
|
-
position: getElementPositionFromList((_g = target.elements[0]) === null || _g === void 0 ? void 0 : _g.uuid, ((_h = sharer.getActiveStorage('data')) === null || _h === void 0 ? void 0 : _h.elements) || []),
|
|
708
|
-
viewScaleInfo: sharer.getActiveViewScaleInfo()
|
|
706
|
+
id: mtrl.id,
|
|
709
707
|
});
|
|
710
708
|
}
|
|
711
709
|
sharer.setSharedStorage(keyActionType, null);
|
|
712
710
|
},
|
|
713
|
-
wheel() {
|
|
714
|
-
updateSelectedElemenetController();
|
|
715
|
-
},
|
|
716
|
-
wheelScale() {
|
|
717
|
-
updateSelectedElemenetController();
|
|
718
|
-
},
|
|
719
711
|
contextMenu: (e) => {
|
|
720
712
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
713
|
+
if (!isPointInMiddlewareElement(e.nativeEvent, { $root, rootClassName })) {
|
|
714
|
+
return;
|
|
715
|
+
}
|
|
721
716
|
const groupQueue = sharer.getSharedStorage(keyGroupQueue);
|
|
722
717
|
if ((groupQueue === null || groupQueue === void 0 ? void 0 : groupQueue.length) > 0) {
|
|
723
|
-
if (
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
viewSizeInfo: sharer.getActiveViewSizeInfo(),
|
|
727
|
-
groupQueue
|
|
728
|
-
})) {
|
|
729
|
-
const target = getPointTarget(e.point, pointTargetBaseOptions());
|
|
730
|
-
if (((_a = target === null || target === void 0 ? void 0 : target.elements) === null || _a === void 0 ? void 0 : _a.length) === 1 && ((_c = (_b = target.elements[0]) === null || _b === void 0 ? void 0 : _b.operations) === null || _c === void 0 ? void 0 : _c.locked) !== true) {
|
|
718
|
+
if (isPointInActiveGroup(e.nativeEvent, { $root, groupQueue })) {
|
|
719
|
+
const target = getPointTarget(e.point, pointTargetBaseOptions(e));
|
|
720
|
+
if (((_a = target === null || target === void 0 ? void 0 : target.materials) === null || _a === void 0 ? void 0 : _a.length) === 1 && ((_c = (_b = target.materials[0]) === null || _b === void 0 ? void 0 : _b.operations) === null || _c === void 0 ? void 0 : _c.locked) !== true) {
|
|
731
721
|
clear();
|
|
732
|
-
|
|
722
|
+
updateSelectedMaterialList([target.materials[0]], { triggerEvent: true });
|
|
733
723
|
viewer.drawFrame();
|
|
734
724
|
}
|
|
735
|
-
else if (!((_d = target === null || target === void 0 ? void 0 : target.
|
|
725
|
+
else if (!((_d = target === null || target === void 0 ? void 0 : target.materials) === null || _d === void 0 ? void 0 : _d.length)) {
|
|
736
726
|
clear();
|
|
737
727
|
}
|
|
738
728
|
}
|
|
739
729
|
return;
|
|
740
730
|
}
|
|
741
|
-
const listAreaSize =
|
|
731
|
+
const listAreaSize = calcSelectedMaterialsArea(sharer.getSharedStorage(keySelectedMaterialList), {
|
|
742
732
|
viewScaleInfo: sharer.getActiveViewScaleInfo(),
|
|
743
733
|
viewSizeInfo: sharer.getActiveViewSizeInfo(),
|
|
744
|
-
calculator
|
|
734
|
+
calculator,
|
|
745
735
|
});
|
|
746
|
-
const target = getPointTarget(e.point, Object.assign(Object.assign({}, pointTargetBaseOptions()), { areaSize: listAreaSize, groupQueue: [] }));
|
|
747
|
-
if (((_e = target === null || target === void 0 ? void 0 : target.
|
|
736
|
+
const target = getPointTarget(e.point, Object.assign(Object.assign({}, pointTargetBaseOptions(e)), { areaSize: listAreaSize, groupQueue: [] }));
|
|
737
|
+
if (((_e = target === null || target === void 0 ? void 0 : target.materials) === null || _e === void 0 ? void 0 : _e.length) === 1 && ((_g = (_f = target.materials[0]) === null || _f === void 0 ? void 0 : _f.operations) === null || _g === void 0 ? void 0 : _g.locked) !== true) {
|
|
748
738
|
clear();
|
|
749
|
-
|
|
739
|
+
updateSelectedMaterialList([target.materials[0]], { triggerEvent: true });
|
|
750
740
|
viewer.drawFrame();
|
|
751
741
|
return;
|
|
752
742
|
}
|
|
753
|
-
else if (!((_h = target === null || target === void 0 ? void 0 : target.
|
|
743
|
+
else if (!((_h = target === null || target === void 0 ? void 0 : target.materials) === null || _h === void 0 ? void 0 : _h.length)) {
|
|
754
744
|
clear();
|
|
755
745
|
}
|
|
756
746
|
},
|
|
757
747
|
beforeDrawFrame({ snapshot }) {
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
});
|
|
768
|
-
}
|
|
769
|
-
const sharer = opts.sharer;
|
|
770
|
-
const viewScaleInfo = { scale, offsetLeft, offsetTop, offsetRight, offsetBottom };
|
|
771
|
-
const viewSizeInfo = { width, height, contextHeight, contextWidth, devicePixelRatio };
|
|
772
|
-
const selectedElements = sharedStore[keySelectedElementList];
|
|
773
|
-
const elem = selectedElements[0];
|
|
774
|
-
const hoverElement = sharedStore[keyHoverElement];
|
|
775
|
-
const hoverElementVertexes = sharedStore[keyHoverElementVertexes];
|
|
776
|
-
const actionType = sharedStore[keyActionType];
|
|
777
|
-
const areaStart = sharedStore[keyAreaStart];
|
|
778
|
-
const areaEnd = sharedStore[keyAreaEnd];
|
|
779
|
-
const groupQueue = sharedStore[keyGroupQueue];
|
|
780
|
-
const groupQueueVertexesList = sharedStore[keyGroupQueueVertexesList];
|
|
781
|
-
const isMoving = sharedStore[keyIsMoving];
|
|
782
|
-
const enableSnapToGrid = sharedStore[keyEnableSnapToGrid];
|
|
783
|
-
const drawBaseOpts = { calculator, viewScaleInfo, viewSizeInfo, style };
|
|
784
|
-
let selectedElementController = sharedStore[keySelectedElementController];
|
|
785
|
-
if (selectedElementController && selectedElements.length === 1 && elem) {
|
|
786
|
-
if (!isSameElementSize(elem, selectedElementController.originalElementSize)) {
|
|
787
|
-
selectedElementController = calcElementSizeController(elem, {
|
|
788
|
-
groupQueue: groupQueue || [],
|
|
789
|
-
controllerSize,
|
|
790
|
-
viewScaleInfo,
|
|
791
|
-
rotateControllerPosition,
|
|
792
|
-
rotateControllerSize
|
|
793
|
-
});
|
|
794
|
-
sharer.setSharedStorage(keySelectedElementController, selectedElementController);
|
|
795
|
-
}
|
|
796
|
-
}
|
|
797
|
-
const isHoverLocked = !!((_a = hoverElement === null || hoverElement === void 0 ? void 0 : hoverElement.operations) === null || _a === void 0 ? void 0 : _a.locked);
|
|
798
|
-
if ((groupQueue === null || groupQueue === void 0 ? void 0 : groupQueue.length) > 0) {
|
|
799
|
-
drawGroupQueueVertexesWrappers(overlayContext, groupQueueVertexesList, drawBaseOpts);
|
|
800
|
-
if (hoverElement && actionType !== 'drag') {
|
|
801
|
-
if (isHoverLocked) {
|
|
802
|
-
drawLockedVertexesWrapper(overlayContext, hoverElementVertexes, Object.assign(Object.assign({}, drawBaseOpts), { controller: selectedElementController, style }));
|
|
803
|
-
}
|
|
804
|
-
else {
|
|
805
|
-
drawHoverVertexesWrapper(overlayContext, hoverElementVertexes, drawBaseOpts);
|
|
806
|
-
}
|
|
807
|
-
}
|
|
808
|
-
if (elem && ['select', 'drag', 'resize'].includes(actionType)) {
|
|
809
|
-
drawSelectedElementControllersVertexes(overlayContext, selectedElementController, Object.assign(Object.assign({}, drawBaseOpts), { element: elem, calculator, hideControllers: !!isMoving && actionType === 'drag', rotateControllerPattern: rotateControllerPattern.context2d, style }));
|
|
810
|
-
if (actionType === 'drag') {
|
|
811
|
-
if (enableSnapToGrid === true) {
|
|
812
|
-
const referenceInfo = calcReferenceInfo(elem.uuid, {
|
|
813
|
-
calculator,
|
|
814
|
-
data: activeStore.data,
|
|
815
|
-
groupQueue,
|
|
816
|
-
viewScaleInfo,
|
|
817
|
-
viewSizeInfo
|
|
818
|
-
});
|
|
819
|
-
if (referenceInfo) {
|
|
820
|
-
const { offsetX, offsetY, xLines, yLines } = referenceInfo;
|
|
821
|
-
if (offsetX === 0 || offsetY === 0) {
|
|
822
|
-
drawReferenceLines(overlayContext, {
|
|
823
|
-
xLines,
|
|
824
|
-
yLines,
|
|
825
|
-
style
|
|
826
|
-
});
|
|
827
|
-
}
|
|
828
|
-
}
|
|
829
|
-
}
|
|
830
|
-
}
|
|
831
|
-
}
|
|
832
|
-
}
|
|
833
|
-
else {
|
|
834
|
-
if (hoverElement && actionType !== 'drag') {
|
|
835
|
-
if (isHoverLocked) {
|
|
836
|
-
drawLockedVertexesWrapper(overlayContext, hoverElementVertexes, Object.assign(Object.assign({}, drawBaseOpts), { controller: selectedElementController, style }));
|
|
837
|
-
}
|
|
838
|
-
else {
|
|
839
|
-
drawHoverVertexesWrapper(overlayContext, hoverElementVertexes, drawBaseOpts);
|
|
840
|
-
}
|
|
841
|
-
}
|
|
842
|
-
if (elem && ['select', 'drag', 'resize'].includes(actionType)) {
|
|
843
|
-
drawSelectedElementControllersVertexes(overlayContext, selectedElementController, Object.assign(Object.assign({}, drawBaseOpts), { element: elem, calculator, hideControllers: !!isMoving && actionType === 'drag', rotateControllerPattern: rotateControllerPattern.context2d, style }));
|
|
844
|
-
if (actionType === 'drag') {
|
|
845
|
-
if (enableSnapToGrid === true) {
|
|
846
|
-
const referenceInfo = calcReferenceInfo(elem.uuid, {
|
|
847
|
-
calculator,
|
|
848
|
-
data: activeStore.data,
|
|
849
|
-
groupQueue,
|
|
850
|
-
viewScaleInfo,
|
|
851
|
-
viewSizeInfo
|
|
852
|
-
});
|
|
853
|
-
if (referenceInfo) {
|
|
854
|
-
const { offsetX, offsetY, xLines, yLines } = referenceInfo;
|
|
855
|
-
if (offsetX === 0 || offsetY === 0) {
|
|
856
|
-
drawReferenceLines(overlayContext, {
|
|
857
|
-
xLines,
|
|
858
|
-
yLines,
|
|
859
|
-
style
|
|
860
|
-
});
|
|
861
|
-
}
|
|
862
|
-
}
|
|
863
|
-
}
|
|
864
|
-
}
|
|
865
|
-
}
|
|
866
|
-
else if (actionType === 'area' && areaStart && areaEnd) {
|
|
867
|
-
drawArea(overlayContext, { start: areaStart, end: areaEnd, style });
|
|
868
|
-
}
|
|
869
|
-
else if (['drag-list', 'drag-list-end'].includes(actionType)) {
|
|
870
|
-
const listAreaSize = calcSelectedElementsArea(getActiveElements(), {
|
|
871
|
-
viewScaleInfo: sharer.getActiveViewScaleInfo(),
|
|
872
|
-
viewSizeInfo: sharer.getActiveViewSizeInfo(),
|
|
873
|
-
calculator
|
|
874
|
-
});
|
|
875
|
-
if (listAreaSize) {
|
|
876
|
-
drawListArea(overlayContext, { areaSize: listAreaSize, style });
|
|
877
|
-
}
|
|
878
|
-
}
|
|
879
|
-
}
|
|
880
|
-
}
|
|
748
|
+
renderFrame({
|
|
749
|
+
$root,
|
|
750
|
+
styles,
|
|
751
|
+
boardContent,
|
|
752
|
+
snapshot,
|
|
753
|
+
calculator,
|
|
754
|
+
sharer: opts.sharer,
|
|
755
|
+
});
|
|
756
|
+
},
|
|
881
757
|
};
|
|
882
758
|
};
|