@buerli.io/react-cad 0.0.22 → 0.0.23-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/UI/CAD/Messages/BlankDiv.d.ts +6 -0
- package/build/components/UI/CAD/Messages/Message.d.ts +5 -0
- package/build/components/UI/CAD/Messages/Messages.d.ts +9 -0
- package/build/components/UI/CAD/Messages/index.d.ts +1 -0
- package/build/components/UI/CAD/Messages/msgStore.d.ts +17 -0
- package/build/components/UI/CAD/SideBar/FeatureList/Feature.d.ts +1 -1
- package/build/components/UI/CAD/SideBar/FeatureList/utils.d.ts +1 -0
- package/build/components/UI/CAD/common/primitives.d.ts +4 -1
- package/build/index.cjs.js +1584 -793
- package/build/index.js +1582 -791
- package/build/plugins/Dimensions/index.d.ts +1 -1
- package/build/plugins/Sketch/Root/Details.d.ts +2 -0
- package/build/plugins/Sketch/Root/useMenuItems.d.ts +5 -0
- package/build/plugins/Sketch/View/graphics/Merged/Arc.d.ts +9 -0
- package/build/plugins/Sketch/View/graphics/Merged/Line.d.ts +10 -0
- package/build/plugins/Sketch/View/graphics/Merged/MergedWrapper.d.ts +11 -0
- package/build/plugins/Sketch/View/graphics/Merged/Point.d.ts +8 -0
- package/build/plugins/Sketch/View/graphics/graphics.d.ts +1 -2
- package/build/plugins/Sketch/View/graphics/hooks.d.ts +3 -1
- package/build/plugins/Sketch/View/graphics/primitives.d.ts +3 -3
- package/build/plugins/Sketch/View/graphics/scale.d.ts +4 -0
- package/build/plugins/Sketch/View/handlers/Handlers.d.ts +2 -0
- package/build/plugins/Sketch/View/handlers/UseRef.d.ts +3 -0
- package/build/plugins/Sketch/types.d.ts +1 -0
- package/build/plugins/Sketch/utils/Interaction.d.ts +4 -0
- package/build/utils/FileUtils.d.ts +1 -1
- package/build/utils/helpers.d.ts +2 -0
- package/package.json +9 -8
- package/build/plugins/Sketch/Root/UseRef.d.ts +0 -2
package/build/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useDrawing, CameraHelper, useBuerli, usePlugin, useCamera, useEmbeddedPlugin, useGeometryInteraction, GlobalTransform, getCamera, Product, Canvas, Viewcube } from '@buerli.io/react';
|
|
1
|
+
import { useDrawing, CameraHelper, useBuerli, usePlugin, useCamera, useEmbeddedPlugin, useGeometryInteraction, GlobalTransform, getCamera, Product, useFeaturePluginDef, usePluginExists, Canvas, Viewcube } from '@buerli.io/react';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import React__default, { useMemo, useRef, useCallback, useState, useEffect, memo, useContext, useReducer } from 'react';
|
|
4
4
|
import { getDrawing, createGraphicItem, GraphicType, MemberType, MathUtils, getPlugin, NOID, BuerliScope, Measure, MeasureResultType, api } from '@buerli.io/core';
|
|
@@ -6,22 +6,23 @@ import { CCClasses, ccAPI, ReorientedType, FlipType, BooleanOperationType, Extru
|
|
|
6
6
|
import * as THREE from 'three';
|
|
7
7
|
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
8
8
|
import { useFrame, useThree, createPortal, extend } from '@react-three/fiber';
|
|
9
|
-
import { Html } from '@react-three/drei';
|
|
10
|
-
import { ArrowUpOutlined, CheckOutlined,
|
|
9
|
+
import { Html, Merged } from '@react-three/drei';
|
|
10
|
+
import { ArrowUpOutlined, CheckOutlined, CaretRightOutlined, CaretDownOutlined, EditOutlined, DeleteOutlined, PlusOutlined, SelectOutlined, PlusSquareOutlined, ExportOutlined, CloseOutlined, EyeFilled, EyeOutlined, ExclamationCircleTwoTone, AppstoreOutlined, FileOutlined, LeftOutlined, AppstoreAddOutlined, CheckCircleTwoTone, CloseCircleTwoTone, ExpandAltOutlined, CodeSandboxOutlined, FontSizeOutlined, DownOutlined, InfoCircleTwoTone, UnorderedListOutlined } from '@ant-design/icons';
|
|
11
11
|
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
12
12
|
import Switch from 'antd/lib/switch';
|
|
13
|
+
import AntdButton from 'antd/lib/button';
|
|
13
14
|
import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
|
|
14
15
|
import styled, { keyframes } from 'styled-components';
|
|
15
16
|
import Tooltip from 'antd/lib/tooltip';
|
|
16
17
|
import RadioGroupImpl from 'antd/lib/radio/group';
|
|
17
18
|
import RadioButtonImpl from 'antd/lib/radio/radioButton';
|
|
19
|
+
import { Menu as Menu$1, Dropdown, Input, Typography, Space, Table, Tabs, Divider as Divider$1, Button, Tooltip as Tooltip$1, Modal, Badge } from 'antd';
|
|
20
|
+
import 'antd/dist/antd.css';
|
|
18
21
|
import guid from 'uuid';
|
|
19
22
|
import shallow from 'zustand/shallow';
|
|
20
23
|
import { Geometry } from 'three-stdlib';
|
|
21
24
|
import SelectImpl from 'antd/lib/select';
|
|
22
25
|
import { basename, extname } from 'path';
|
|
23
|
-
import { Menu as Menu$1, Dropdown, Input, Table, Space, Typography, Tabs, Divider as Divider$1, Button, Tooltip as Tooltip$1, Modal } from 'antd';
|
|
24
|
-
import 'antd/dist/antd.css';
|
|
25
26
|
import create from 'zustand';
|
|
26
27
|
import vanilla from 'zustand/vanilla';
|
|
27
28
|
import { useUID } from 'react-uid';
|
|
@@ -29,9 +30,9 @@ import * as deepmerge from 'deepmerge';
|
|
|
29
30
|
import { SortableContainer, SortableElement } from 'react-sortable-hoc';
|
|
30
31
|
import { RgbaColorPicker } from 'react-colorful';
|
|
31
32
|
|
|
32
|
-
function ownKeys$
|
|
33
|
+
function ownKeys$m(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
33
34
|
|
|
34
|
-
function _objectSpread$
|
|
35
|
+
function _objectSpread$m(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$m(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$m(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
35
36
|
function getGraphicId(tree, refOrObjId) {
|
|
36
37
|
const res = {
|
|
37
38
|
graphicId: refOrObjId,
|
|
@@ -103,7 +104,7 @@ function useSelectedItems(drawingId, refOrObjIds) {
|
|
|
103
104
|
}
|
|
104
105
|
|
|
105
106
|
const createSelItem = React__default.useCallback(element => {
|
|
106
|
-
return createGraphicItem(prodId, _objectSpread$
|
|
107
|
+
return createGraphicItem(prodId, _objectSpread$m(_objectSpread$m({}, element), {}, {
|
|
107
108
|
productId: prodId
|
|
108
109
|
}));
|
|
109
110
|
}, [prodId]);
|
|
@@ -134,7 +135,7 @@ function useSelectedItems(drawingId, refOrObjIds) {
|
|
|
134
135
|
const elem = cont.map[Number(grIds[0])];
|
|
135
136
|
|
|
136
137
|
if (elem) {
|
|
137
|
-
elems.push(_objectSpread$
|
|
138
|
+
elems.push(_objectSpread$m(_objectSpread$m({}, elem), {}, {
|
|
138
139
|
graphicId: contId,
|
|
139
140
|
type: GraphicType.SOLID
|
|
140
141
|
}));
|
|
@@ -172,9 +173,9 @@ function useSelectedItems(drawingId, refOrObjIds) {
|
|
|
172
173
|
return selectedItems;
|
|
173
174
|
}
|
|
174
175
|
|
|
175
|
-
function ownKeys$
|
|
176
|
+
function ownKeys$l(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
176
177
|
|
|
177
|
-
function _objectSpread$
|
|
178
|
+
function _objectSpread$l(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$l(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$l(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
178
179
|
function addMembers(drawingId, ccObjId) {
|
|
179
180
|
const drawingState = getDrawing(drawingId);
|
|
180
181
|
const objInTree = drawingState.structure.tree[ccObjId];
|
|
@@ -187,7 +188,7 @@ function addMembers(drawingId, ccObjId) {
|
|
|
187
188
|
const members = {};
|
|
188
189
|
Object.keys(curMembers).forEach(memberName => {
|
|
189
190
|
const curMember = curMembers[memberName];
|
|
190
|
-
members[memberName] = _objectSpread$
|
|
191
|
+
members[memberName] = _objectSpread$l(_objectSpread$l({}, curMember), {}, {
|
|
191
192
|
name: memberName
|
|
192
193
|
});
|
|
193
194
|
|
|
@@ -307,6 +308,10 @@ function getAncestorIdByClass(drawingId, objectId, parentClass) {
|
|
|
307
308
|
|
|
308
309
|
return object.parent;
|
|
309
310
|
}
|
|
311
|
+
const isSketchGeometry = arg => {
|
|
312
|
+
const objClass = typeof arg === 'string' ? arg : arg.class;
|
|
313
|
+
return objClass === CCClasses.CCPoint || objClass === CCClasses.CCLine || objClass === CCClasses.CCArc || objClass === CCClasses.CCCircle;
|
|
314
|
+
};
|
|
310
315
|
const is2DConstraint = arg => {
|
|
311
316
|
const objClass = typeof arg === 'string' ? arg : arg.class;
|
|
312
317
|
return Boolean(objClass.match(/CC_2D.+Constraint/)) || objClass === CCClasses.CCRigidSet;
|
|
@@ -415,6 +420,12 @@ function fmod(num, denom) {
|
|
|
415
420
|
k = k < 0 ? k + 1 : k;
|
|
416
421
|
return num - k * denom;
|
|
417
422
|
}
|
|
423
|
+
function numberToHexColor(color) {
|
|
424
|
+
const hexLen = 6;
|
|
425
|
+
const hexStr = color.toString(16);
|
|
426
|
+
const zeroNumber = hexLen - hexStr.length;
|
|
427
|
+
return '#' + '0'.repeat(zeroNumber) + hexStr;
|
|
428
|
+
}
|
|
418
429
|
|
|
419
430
|
const DimContext = /*#__PURE__*/React__default.createContext({
|
|
420
431
|
globalToLocalM: new THREE.Matrix4(),
|
|
@@ -422,7 +433,7 @@ const DimContext = /*#__PURE__*/React__default.createContext({
|
|
|
422
433
|
drawingId: -1
|
|
423
434
|
});
|
|
424
435
|
|
|
425
|
-
function useScale(position, getVector) {
|
|
436
|
+
function useScale$1(position, getVector) {
|
|
426
437
|
const ref = React__default.useRef();
|
|
427
438
|
useFrame(args => {
|
|
428
439
|
const sf = CameraHelper.calculateScaleFactor(position, 1, args.camera, args.size);
|
|
@@ -996,14 +1007,14 @@ const DimValue = ({
|
|
|
996
1007
|
allowExpr: true
|
|
997
1008
|
})))));
|
|
998
1009
|
};
|
|
999
|
-
const Line$
|
|
1010
|
+
const Line$2 = ({
|
|
1000
1011
|
start,
|
|
1001
1012
|
end
|
|
1002
1013
|
}) => {
|
|
1003
1014
|
const position = React__default.useMemo(() => new THREE.Vector3().lerpVectors(start, end, 0.5), [start, end]);
|
|
1004
1015
|
const quaternion = React__default.useMemo(() => new THREE.Quaternion().setFromUnitVectors(new THREE.Vector3(0, 1, 0), end.clone().sub(start).normalize()), [start, end]);
|
|
1005
1016
|
const lineLength = start.distanceTo(end);
|
|
1006
|
-
const ref = useScale(position, scaleF => [lineWidth$1 * scaleF, lineLength, lineWidth$1 * scaleF]);
|
|
1017
|
+
const ref = useScale$1(position, scaleF => [lineWidth$1 * scaleF, lineLength, lineWidth$1 * scaleF]);
|
|
1007
1018
|
return lineLength === 0 ? null : /*#__PURE__*/React__default.createElement("mesh", {
|
|
1008
1019
|
ref: ref,
|
|
1009
1020
|
position: position,
|
|
@@ -1026,7 +1037,7 @@ const Arrow$1 = ({
|
|
|
1026
1037
|
// Move arrow that end of the arrow will be at props.end
|
|
1027
1038
|
geomRef.current && geomRef.current.translate(0, -0.5, 0);
|
|
1028
1039
|
}, [geomRef]);
|
|
1029
|
-
const ref = useScale(position, sf => [arrowSize * sf, arrowSize * 2 * sf, arrowSize * sf]);
|
|
1040
|
+
const ref = useScale$1(position, sf => [arrowSize * sf, arrowSize * 2 * sf, arrowSize * sf]);
|
|
1030
1041
|
return /*#__PURE__*/React__default.createElement("mesh", {
|
|
1031
1042
|
ref: ref,
|
|
1032
1043
|
position: position,
|
|
@@ -1055,7 +1066,7 @@ const Arc$1 = ({
|
|
|
1055
1066
|
lines.push(linePos);
|
|
1056
1067
|
}
|
|
1057
1068
|
|
|
1058
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, lines.map((line, i) => /*#__PURE__*/React__default.createElement(Line$
|
|
1069
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, lines.map((line, i) => /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1059
1070
|
key: i,
|
|
1060
1071
|
start: line[0],
|
|
1061
1072
|
end: line[1]
|
|
@@ -1082,7 +1093,7 @@ const PositionHandler = ({
|
|
|
1082
1093
|
const {
|
|
1083
1094
|
camera
|
|
1084
1095
|
} = useThree();
|
|
1085
|
-
const ref = useScale(position, sf => [hRadius$1 * sf, hRadius$1 * sf, hRadius$1 * sf]);
|
|
1096
|
+
const ref = useScale$1(position, sf => [hRadius$1 * sf, hRadius$1 * sf, hRadius$1 * sf]);
|
|
1086
1097
|
const onPointerDown = React__default.useCallback(e => {
|
|
1087
1098
|
if (e.buttons !== 1) // Continue only if 'primary' mouse button is pressed
|
|
1088
1099
|
return;
|
|
@@ -1187,16 +1198,16 @@ const LinearDim = ({
|
|
|
1187
1198
|
endDir: endD
|
|
1188
1199
|
};
|
|
1189
1200
|
}, [members, tmpDimP]);
|
|
1190
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$
|
|
1201
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1191
1202
|
start: startFoot,
|
|
1192
1203
|
end: tmpDimP
|
|
1193
|
-
}), /*#__PURE__*/React__default.createElement(Line$
|
|
1204
|
+
}), /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1194
1205
|
start: tmpDimP,
|
|
1195
1206
|
end: endFoot
|
|
1196
|
-
}), /*#__PURE__*/React__default.createElement(Line$
|
|
1207
|
+
}), /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1197
1208
|
start: startP,
|
|
1198
1209
|
end: startFoot
|
|
1199
|
-
}), /*#__PURE__*/React__default.createElement(Line$
|
|
1210
|
+
}), /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1200
1211
|
start: endP,
|
|
1201
1212
|
end: endFoot
|
|
1202
1213
|
}), /*#__PURE__*/React__default.createElement(Arrow$1, {
|
|
@@ -1242,10 +1253,10 @@ const RadialDim = ({
|
|
|
1242
1253
|
dir: outside ? dir_.multiplyScalar(-1) : dir_
|
|
1243
1254
|
};
|
|
1244
1255
|
}, [members, tmpDimP]);
|
|
1245
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$
|
|
1256
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1246
1257
|
start: centerP,
|
|
1247
1258
|
end: endP
|
|
1248
|
-
}), /*#__PURE__*/React__default.createElement(Line$
|
|
1259
|
+
}), /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1249
1260
|
start: endP,
|
|
1250
1261
|
end: dimP
|
|
1251
1262
|
}), /*#__PURE__*/React__default.createElement(Arrow$1, {
|
|
@@ -1289,10 +1300,10 @@ const DiametralDim = ({
|
|
|
1289
1300
|
dirEnd: outside ? dir.clone().multiplyScalar(-1) : dir
|
|
1290
1301
|
};
|
|
1291
1302
|
}, [members, tmpDimP]);
|
|
1292
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$
|
|
1303
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1293
1304
|
start: startP,
|
|
1294
1305
|
end: tmpDimP
|
|
1295
|
-
}), /*#__PURE__*/React__default.createElement(Line$
|
|
1306
|
+
}), /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1296
1307
|
start: tmpDimP,
|
|
1297
1308
|
end: endP
|
|
1298
1309
|
}), /*#__PURE__*/React__default.createElement(Arrow$1, {
|
|
@@ -1368,10 +1379,10 @@ const AngularDim = ({
|
|
|
1368
1379
|
endL2: extendCrn ? corner : end
|
|
1369
1380
|
};
|
|
1370
1381
|
}, [members, tmpDimP]);
|
|
1371
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$
|
|
1382
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1372
1383
|
start: startL1,
|
|
1373
1384
|
end: startFoot
|
|
1374
|
-
}), /*#__PURE__*/React__default.createElement(Line$
|
|
1385
|
+
}), /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1375
1386
|
start: endFoot,
|
|
1376
1387
|
end: endL2
|
|
1377
1388
|
}), /*#__PURE__*/React__default.createElement(Arc$1, {
|
|
@@ -1446,13 +1457,14 @@ var DimGraphics$1 = DimGraphics;
|
|
|
1446
1457
|
/**
|
|
1447
1458
|
* @see https://reactjs.org/docs/error-boundaries.html
|
|
1448
1459
|
*/
|
|
1449
|
-
|
|
1460
|
+
const isDev = process.env.NODE_ENV === 'development';
|
|
1450
1461
|
/**
|
|
1451
1462
|
* Wrapper for components which are exported from package.
|
|
1452
1463
|
* It's intended to catch all errors and show friendly fallback to the user instead of error log.
|
|
1453
1464
|
* By default it returns null in error case. You have to pass showHtml prop to show message to the user.
|
|
1454
1465
|
* TODO: implement message showing.
|
|
1455
1466
|
*/
|
|
1467
|
+
|
|
1456
1468
|
class ErrorBoundary extends React__default.Component {
|
|
1457
1469
|
constructor(props) {
|
|
1458
1470
|
super(props);
|
|
@@ -1481,7 +1493,7 @@ class ErrorBoundary extends React__default.Component {
|
|
|
1481
1493
|
Object.values(warns).forEach(w => {
|
|
1482
1494
|
if (w) {
|
|
1483
1495
|
hasWarning = true;
|
|
1484
|
-
console.warn(w.caption);
|
|
1496
|
+
isDev && console.warn(w.caption);
|
|
1485
1497
|
}
|
|
1486
1498
|
});
|
|
1487
1499
|
}
|
|
@@ -1929,9 +1941,9 @@ var index$w = /*#__PURE__*/Object.freeze({
|
|
|
1929
1941
|
useDimensionSetId: useDimensionSetId
|
|
1930
1942
|
});
|
|
1931
1943
|
|
|
1932
|
-
function ownKeys$
|
|
1944
|
+
function ownKeys$k(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
1933
1945
|
|
|
1934
|
-
function _objectSpread$
|
|
1946
|
+
function _objectSpread$k(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$k(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$k(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
1935
1947
|
/**
|
|
1936
1948
|
* Implies the following data structure:
|
|
1937
1949
|
* data: {
|
|
@@ -2034,7 +2046,7 @@ function useMateSelection(drawingId, matePath, csysId) {
|
|
|
2034
2046
|
}));
|
|
2035
2047
|
const handlers = React__default.useMemo(() => {
|
|
2036
2048
|
if (isSelectable) {
|
|
2037
|
-
return _objectSpread$
|
|
2049
|
+
return _objectSpread$k(_objectSpread$k({}, hHandlers), sHandlers);
|
|
2038
2050
|
}
|
|
2039
2051
|
|
|
2040
2052
|
return {};
|
|
@@ -2050,9 +2062,9 @@ function useMateSelection(drawingId, matePath, csysId) {
|
|
|
2050
2062
|
}, [isHovered, isSelected, isSelectable, handlers]);
|
|
2051
2063
|
}
|
|
2052
2064
|
|
|
2053
|
-
function ownKeys$
|
|
2065
|
+
function ownKeys$j(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
2054
2066
|
|
|
2055
|
-
function _objectSpread$
|
|
2067
|
+
function _objectSpread$j(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$j(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$j(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
2056
2068
|
/**
|
|
2057
2069
|
* Implies the following data structure:
|
|
2058
2070
|
* data: {
|
|
@@ -2071,7 +2083,8 @@ const createTreeObjSelItem = (productId, object) => {
|
|
|
2071
2083
|
data: {
|
|
2072
2084
|
object
|
|
2073
2085
|
},
|
|
2074
|
-
label
|
|
2086
|
+
label,
|
|
2087
|
+
removeCondition: d => d.structure.tree[object.id] === undefined
|
|
2075
2088
|
};
|
|
2076
2089
|
};
|
|
2077
2090
|
|
|
@@ -2180,7 +2193,7 @@ function useTreeObjSelection(drawingId, objId) {
|
|
|
2180
2193
|
const isSelected = useIsSelected(drawingId, objId);
|
|
2181
2194
|
const handlers = React__default.useMemo(() => {
|
|
2182
2195
|
if (isSelectable) {
|
|
2183
|
-
return _objectSpread$
|
|
2196
|
+
return _objectSpread$j(_objectSpread$j({}, hHandlers), sHandlers);
|
|
2184
2197
|
}
|
|
2185
2198
|
|
|
2186
2199
|
return {};
|
|
@@ -5004,7 +5017,7 @@ const Root$g = ({
|
|
|
5004
5017
|
}));
|
|
5005
5018
|
};
|
|
5006
5019
|
|
|
5007
|
-
const Point$
|
|
5020
|
+
const Point$2 = ({
|
|
5008
5021
|
position,
|
|
5009
5022
|
radius,
|
|
5010
5023
|
color,
|
|
@@ -5076,7 +5089,7 @@ const OriginPoint = ({
|
|
|
5076
5089
|
handlers,
|
|
5077
5090
|
userData
|
|
5078
5091
|
}) => {
|
|
5079
|
-
return /*#__PURE__*/React__default.createElement(Point$
|
|
5092
|
+
return /*#__PURE__*/React__default.createElement(Point$2, {
|
|
5080
5093
|
position: position ? position.clone() : new THREE.Vector3(),
|
|
5081
5094
|
radius: 2,
|
|
5082
5095
|
color: color,
|
|
@@ -5117,7 +5130,7 @@ const Csys = ({
|
|
|
5117
5130
|
userData
|
|
5118
5131
|
}) => {
|
|
5119
5132
|
const position = new THREE.Vector3().setFromMatrixPosition(matrix);
|
|
5120
|
-
const ref = useScale(position.clone(), sf => [2 * sf, 2 * sf, 2 * sf]);
|
|
5133
|
+
const ref = useScale$1(position.clone(), sf => [2 * sf, 2 * sf, 2 * sf]);
|
|
5121
5134
|
return /*#__PURE__*/React__default.createElement("group", _extends({
|
|
5122
5135
|
matrix: matrix,
|
|
5123
5136
|
matrixAutoUpdate: false
|
|
@@ -5156,7 +5169,7 @@ const SelectedCsys = ({
|
|
|
5156
5169
|
userData
|
|
5157
5170
|
}) => {
|
|
5158
5171
|
const position = new THREE.Vector3().setFromMatrixPosition(matrix);
|
|
5159
|
-
const ref = useScale(position.clone(), sf => [2 * sf, 2 * sf, 2 * sf]);
|
|
5172
|
+
const ref = useScale$1(position.clone(), sf => [2 * sf, 2 * sf, 2 * sf]);
|
|
5160
5173
|
return /*#__PURE__*/React__default.createElement("group", _extends({
|
|
5161
5174
|
matrix: matrix,
|
|
5162
5175
|
matrixAutoUpdate: false
|
|
@@ -5231,7 +5244,7 @@ const Distance = ({
|
|
|
5231
5244
|
setShowValue(true);
|
|
5232
5245
|
}
|
|
5233
5246
|
});
|
|
5234
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$
|
|
5247
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$2, {
|
|
5235
5248
|
start: start,
|
|
5236
5249
|
end: end
|
|
5237
5250
|
}), /*#__PURE__*/React__default.createElement(Arrow$1, {
|
|
@@ -5318,10 +5331,10 @@ const Angle = ({
|
|
|
5318
5331
|
setShowValue(true);
|
|
5319
5332
|
}
|
|
5320
5333
|
});
|
|
5321
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$
|
|
5334
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$2, {
|
|
5322
5335
|
start: center,
|
|
5323
5336
|
end: end1
|
|
5324
|
-
}), /*#__PURE__*/React__default.createElement(Line$
|
|
5337
|
+
}), /*#__PURE__*/React__default.createElement(Line$2, {
|
|
5325
5338
|
start: center,
|
|
5326
5339
|
end: end2
|
|
5327
5340
|
}), /*#__PURE__*/React__default.createElement("group", {
|
|
@@ -5348,7 +5361,7 @@ const Position = ({
|
|
|
5348
5361
|
pos,
|
|
5349
5362
|
result
|
|
5350
5363
|
}) => {
|
|
5351
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Point$
|
|
5364
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Point$2, {
|
|
5352
5365
|
position: pos,
|
|
5353
5366
|
radius: 1.5,
|
|
5354
5367
|
color: 0xaf1111
|
|
@@ -5363,7 +5376,7 @@ const Vector = ({
|
|
|
5363
5376
|
end
|
|
5364
5377
|
}) => {
|
|
5365
5378
|
const dir = end.clone().sub(start);
|
|
5366
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$
|
|
5379
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$2, {
|
|
5367
5380
|
start: start,
|
|
5368
5381
|
end: end
|
|
5369
5382
|
}), /*#__PURE__*/React__default.createElement(Arrow$1, {
|
|
@@ -5490,6 +5503,7 @@ let HandlersList;
|
|
|
5490
5503
|
HandlersList["FILLET"] = "fillet";
|
|
5491
5504
|
HandlersList["HOVER"] = "hover";
|
|
5492
5505
|
HandlersList["TRIM"] = "trim";
|
|
5506
|
+
HandlersList["USEREF"] = "useReference";
|
|
5493
5507
|
HandlersList["GSELECTION"] = "globalSelection";
|
|
5494
5508
|
})(HandlersList || (HandlersList = {}));
|
|
5495
5509
|
|
|
@@ -5526,7 +5540,7 @@ const calcPreviewValue = (dir0, dir1, sector, reflex) => {
|
|
|
5526
5540
|
|
|
5527
5541
|
const hRadius = 6;
|
|
5528
5542
|
const TmpPositionHandler = props => {
|
|
5529
|
-
const ref = useScale(props.position, sf => [hRadius * sf, hRadius * sf, hRadius * sf]);
|
|
5543
|
+
const ref = useScale$1(props.position, sf => [hRadius * sf, hRadius * sf, hRadius * sf]);
|
|
5530
5544
|
return /*#__PURE__*/React__default.createElement("mesh", {
|
|
5531
5545
|
ref: ref,
|
|
5532
5546
|
position: props.position
|
|
@@ -5638,10 +5652,10 @@ const TmpAngularDim = props => {
|
|
|
5638
5652
|
};
|
|
5639
5653
|
}, [dir0, dir1, center, dimPos, reflex]);
|
|
5640
5654
|
const text = radiansToDegrees(previewValue).toFixed(2);
|
|
5641
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$
|
|
5655
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$2, {
|
|
5642
5656
|
start: cornerP,
|
|
5643
5657
|
end: startFoot
|
|
5644
|
-
}), /*#__PURE__*/React__default.createElement(Line$
|
|
5658
|
+
}), /*#__PURE__*/React__default.createElement(Line$2, {
|
|
5645
5659
|
start: endFoot,
|
|
5646
5660
|
end: cornerP
|
|
5647
5661
|
}), /*#__PURE__*/React__default.createElement(Arc$1, {
|
|
@@ -5702,9 +5716,9 @@ function getSketchState(drawingId, pluginId) {
|
|
|
5702
5716
|
return plugin.state;
|
|
5703
5717
|
}
|
|
5704
5718
|
|
|
5705
|
-
function ownKeys$
|
|
5719
|
+
function ownKeys$i(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
5706
5720
|
|
|
5707
|
-
function _objectSpread$
|
|
5721
|
+
function _objectSpread$i(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$i(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$i(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
5708
5722
|
function CreateAngle(drawingId, pluginId) {
|
|
5709
5723
|
const {
|
|
5710
5724
|
set
|
|
@@ -5754,8 +5768,8 @@ function CreateAngle(drawingId, pluginId) {
|
|
|
5754
5768
|
set(state_ => {
|
|
5755
5769
|
const tmpAngularDimension = state_.tmpObjects[tmpDimensionId];
|
|
5756
5770
|
return {
|
|
5757
|
-
tmpObjects: _objectSpread$
|
|
5758
|
-
[tmpDimensionId]: _objectSpread$
|
|
5771
|
+
tmpObjects: _objectSpread$i(_objectSpread$i({}, state_.tmpObjects), {}, {
|
|
5772
|
+
[tmpDimensionId]: _objectSpread$i(_objectSpread$i({}, tmpAngularDimension), params)
|
|
5759
5773
|
})
|
|
5760
5774
|
};
|
|
5761
5775
|
});
|
|
@@ -5802,7 +5816,7 @@ function CreateAngle(drawingId, pluginId) {
|
|
|
5802
5816
|
const center = linesInfo.center;
|
|
5803
5817
|
const dimPos = center.clone().addScaledVector(dir0.clone().add(dir1).normalize(), 10);
|
|
5804
5818
|
|
|
5805
|
-
const tmpAngularDimension = _objectSpread$
|
|
5819
|
+
const tmpAngularDimension = _objectSpread$i(_objectSpread$i({
|
|
5806
5820
|
class: CCClasses.CCAngularDimension,
|
|
5807
5821
|
id: tmpDimensionId
|
|
5808
5822
|
}, linesInfo), {}, {
|
|
@@ -5882,12 +5896,105 @@ function CreateAngle(drawingId, pluginId) {
|
|
|
5882
5896
|
};
|
|
5883
5897
|
}
|
|
5884
5898
|
|
|
5885
|
-
function ownKeys$
|
|
5899
|
+
function ownKeys$h(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
5886
5900
|
|
|
5887
|
-
function _objectSpread$
|
|
5888
|
-
|
|
5889
|
-
|
|
5901
|
+
function _objectSpread$h(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$h(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$h(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
5902
|
+
let timerId;
|
|
5903
|
+
const hover = (drawingId, pluginId, hoveredId) => {
|
|
5904
|
+
const {
|
|
5905
|
+
state,
|
|
5906
|
+
set
|
|
5907
|
+
} = getPlugin(drawingId, pluginId);
|
|
5908
|
+
const tree = getDrawing(drawingId).structure.tree;
|
|
5909
|
+
const hoveredObject = tree[hoveredId];
|
|
5910
|
+
|
|
5911
|
+
if (!hoveredObject || hoveredObject && hoveredObject.class === CCClasses.CCSketch || state.rubberBandRectangle) {
|
|
5912
|
+
return;
|
|
5913
|
+
}
|
|
5914
|
+
|
|
5915
|
+
if (is2DConstraint(hoveredObject)) {
|
|
5916
|
+
const constraintEntities = hoveredObject.members.entities.members.map(entity => entity.value);
|
|
5917
|
+
set(state_ => {
|
|
5918
|
+
const highlighted = state_.highlighted;
|
|
5919
|
+
const highlightedConstraints = highlighted.filter(id => is2DConstraint(tree[id]) && id !== hoveredId);
|
|
5920
|
+
return {
|
|
5921
|
+
hovered: hoveredId,
|
|
5922
|
+
highlighted: [...highlightedConstraints, hoveredId, ...constraintEntities]
|
|
5923
|
+
};
|
|
5924
|
+
});
|
|
5925
|
+
} else {
|
|
5926
|
+
const linkedConstraints = Object.values(tree).filter(obj => is2DConstraint(obj)).filter(obj => obj.members.entities.members.some(entity => entity.value === hoveredId)).map(obj => obj.id);
|
|
5927
|
+
const constraintsToGeometry = {};
|
|
5928
|
+
linkedConstraints.forEach(id => {
|
|
5929
|
+
constraintsToGeometry[id] = hoveredId;
|
|
5930
|
+
});
|
|
5931
|
+
set(state_ => {
|
|
5932
|
+
return {
|
|
5933
|
+
hovered: hoveredId,
|
|
5934
|
+
highlighted: [hoveredId, ...linkedConstraints],
|
|
5935
|
+
constraintsToGeometry: _objectSpread$h(_objectSpread$h({}, state_.constraintsToGeometry), constraintsToGeometry)
|
|
5936
|
+
};
|
|
5937
|
+
});
|
|
5938
|
+
}
|
|
5939
|
+
|
|
5940
|
+
if (timerId) {
|
|
5941
|
+
window.clearTimeout(timerId);
|
|
5942
|
+
timerId = undefined;
|
|
5943
|
+
}
|
|
5944
|
+
};
|
|
5945
|
+
const unhover = (drawingId, pluginId, hoveredId) => {
|
|
5946
|
+
const {
|
|
5947
|
+
state,
|
|
5948
|
+
set
|
|
5949
|
+
} = getPlugin(drawingId, pluginId);
|
|
5950
|
+
const tree = getDrawing(drawingId).structure.tree;
|
|
5951
|
+
const hoveredObject = tree[hoveredId];
|
|
5952
|
+
|
|
5953
|
+
if (!hoveredObject || hoveredObject && hoveredObject.class === CCClasses.CCSketch || state.rubberBandRectangle) {
|
|
5954
|
+
return;
|
|
5955
|
+
}
|
|
5956
|
+
|
|
5957
|
+
set(state_ => {
|
|
5958
|
+
const highlighted = state_.highlighted;
|
|
5959
|
+
const highlightedConstraints = highlighted.filter(id => is2DConstraint(tree[id]));
|
|
5960
|
+
return {
|
|
5961
|
+
hovered: state_.hovered === hoveredId ? UNDEFINEDID : state_.hovered,
|
|
5962
|
+
highlighted: highlightedConstraints
|
|
5963
|
+
};
|
|
5964
|
+
});
|
|
5965
|
+
|
|
5966
|
+
if (timerId) {
|
|
5967
|
+
window.clearTimeout(timerId);
|
|
5968
|
+
}
|
|
5969
|
+
|
|
5970
|
+
timerId = window.setTimeout(() => {
|
|
5971
|
+
set({
|
|
5972
|
+
highlighted: []
|
|
5973
|
+
});
|
|
5974
|
+
}, 1000);
|
|
5975
|
+
};
|
|
5976
|
+
const select = (drawingId, pluginId, selectedId) => {
|
|
5977
|
+
const {
|
|
5978
|
+
set
|
|
5979
|
+
} = getPlugin(drawingId, pluginId);
|
|
5980
|
+
set(state => {
|
|
5981
|
+
const curSelected = state.selected;
|
|
5982
|
+
|
|
5983
|
+
if (curSelected.indexOf(selectedId) >= 0) {
|
|
5984
|
+
const newSelected = curSelected.filter(id => id !== selectedId);
|
|
5985
|
+
return {
|
|
5986
|
+
selected: newSelected
|
|
5987
|
+
};
|
|
5988
|
+
} else {
|
|
5989
|
+
curSelected.push(selectedId);
|
|
5990
|
+
return {
|
|
5991
|
+
selected: [...curSelected]
|
|
5992
|
+
};
|
|
5993
|
+
}
|
|
5994
|
+
});
|
|
5995
|
+
};
|
|
5890
5996
|
|
|
5997
|
+
function Hover(drawingId, pluginId) {
|
|
5891
5998
|
const filter = object => true;
|
|
5892
5999
|
|
|
5893
6000
|
const destructor = () => {
|
|
@@ -5900,81 +6007,14 @@ function Hover(drawingId, pluginId) {
|
|
|
5900
6007
|
};
|
|
5901
6008
|
|
|
5902
6009
|
const onPointerOver = e => {
|
|
5903
|
-
const {
|
|
5904
|
-
state,
|
|
5905
|
-
set
|
|
5906
|
-
} = getPlugin(drawingId, pluginId);
|
|
5907
6010
|
const hoveredId = e.object.userData.objId;
|
|
5908
|
-
|
|
5909
|
-
const hoveredObject = tree[hoveredId];
|
|
6011
|
+
hover(drawingId, pluginId, hoveredId);
|
|
5910
6012
|
e.stopPropagation();
|
|
5911
|
-
|
|
5912
|
-
if (!hoveredObject || hoveredObject && hoveredObject.class === CCClasses.CCSketch || state.rubberBandRectangle) {
|
|
5913
|
-
return;
|
|
5914
|
-
}
|
|
5915
|
-
|
|
5916
|
-
if (is2DConstraint(hoveredObject)) {
|
|
5917
|
-
const constraintEntities = hoveredObject.members.entities.members.map(entity => entity.value);
|
|
5918
|
-
set(state_ => {
|
|
5919
|
-
const highlighted = state_.highlighted;
|
|
5920
|
-
const highlightedConstraints = highlighted.filter(id => is2DConstraint(tree[id]) && id !== hoveredId);
|
|
5921
|
-
return {
|
|
5922
|
-
hovered: hoveredId,
|
|
5923
|
-
highlighted: [...highlightedConstraints, hoveredId, ...constraintEntities]
|
|
5924
|
-
};
|
|
5925
|
-
});
|
|
5926
|
-
} else {
|
|
5927
|
-
const linkedConstraints = Object.values(tree).filter(obj => is2DConstraint(obj)).filter(obj => obj.members.entities.members.some(entity => entity.value === hoveredId)).map(obj => obj.id);
|
|
5928
|
-
const constraintsToGeometry = {};
|
|
5929
|
-
linkedConstraints.forEach(id => {
|
|
5930
|
-
constraintsToGeometry[id] = hoveredId;
|
|
5931
|
-
});
|
|
5932
|
-
set(state_ => {
|
|
5933
|
-
return {
|
|
5934
|
-
hovered: hoveredId,
|
|
5935
|
-
highlighted: [hoveredId, ...linkedConstraints],
|
|
5936
|
-
constraintsToGeometry: _objectSpread$f(_objectSpread$f({}, state_.constraintsToGeometry), constraintsToGeometry)
|
|
5937
|
-
};
|
|
5938
|
-
});
|
|
5939
|
-
}
|
|
5940
|
-
|
|
5941
|
-
if (timerId) {
|
|
5942
|
-
window.clearTimeout(timerId);
|
|
5943
|
-
timerId = undefined;
|
|
5944
|
-
}
|
|
5945
6013
|
};
|
|
5946
6014
|
|
|
5947
6015
|
const onPointerOut = e => {
|
|
5948
|
-
const {
|
|
5949
|
-
state,
|
|
5950
|
-
set
|
|
5951
|
-
} = getPlugin(drawingId, pluginId);
|
|
5952
6016
|
const hoveredId = e.object.userData.objId;
|
|
5953
|
-
|
|
5954
|
-
const hoveredObject = tree[hoveredId];
|
|
5955
|
-
|
|
5956
|
-
if (!hoveredObject || hoveredObject && hoveredObject.class === CCClasses.CCSketch || state.rubberBandRectangle) {
|
|
5957
|
-
return;
|
|
5958
|
-
}
|
|
5959
|
-
|
|
5960
|
-
set(state_ => {
|
|
5961
|
-
const highlighted = state_.highlighted;
|
|
5962
|
-
const highlightedConstraints = highlighted.filter(id => is2DConstraint(tree[id]));
|
|
5963
|
-
return {
|
|
5964
|
-
hovered: state_.hovered === hoveredId ? UNDEFINEDID : state_.hovered,
|
|
5965
|
-
highlighted: highlightedConstraints
|
|
5966
|
-
};
|
|
5967
|
-
});
|
|
5968
|
-
|
|
5969
|
-
if (timerId) {
|
|
5970
|
-
window.clearTimeout(timerId);
|
|
5971
|
-
}
|
|
5972
|
-
|
|
5973
|
-
timerId = window.setTimeout(() => {
|
|
5974
|
-
set({
|
|
5975
|
-
highlighted: []
|
|
5976
|
-
});
|
|
5977
|
-
}, 1000);
|
|
6017
|
+
unhover(drawingId, pluginId, hoveredId);
|
|
5978
6018
|
e.stopPropagation();
|
|
5979
6019
|
};
|
|
5980
6020
|
|
|
@@ -6073,9 +6113,9 @@ const snapDraggedPoints = (diff, drawingId) => {
|
|
|
6073
6113
|
return snapResult;
|
|
6074
6114
|
};
|
|
6075
6115
|
|
|
6076
|
-
function ownKeys$
|
|
6116
|
+
function ownKeys$g(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
6077
6117
|
|
|
6078
|
-
function _objectSpread$
|
|
6118
|
+
function _objectSpread$g(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$g(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$g(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6079
6119
|
|
|
6080
6120
|
const artifDelay = 16;
|
|
6081
6121
|
|
|
@@ -6262,21 +6302,7 @@ function Drag(drawingId, pluginId) {
|
|
|
6262
6302
|
return;
|
|
6263
6303
|
}
|
|
6264
6304
|
|
|
6265
|
-
|
|
6266
|
-
const curSelected = state.selected;
|
|
6267
|
-
|
|
6268
|
-
if (curSelected.indexOf(pressedId) >= 0) {
|
|
6269
|
-
const newSelected = curSelected.filter(id => id !== pressedId);
|
|
6270
|
-
return {
|
|
6271
|
-
selected: newSelected
|
|
6272
|
-
};
|
|
6273
|
-
} else {
|
|
6274
|
-
curSelected.push(pressedId);
|
|
6275
|
-
return {
|
|
6276
|
-
selected: [...curSelected]
|
|
6277
|
-
};
|
|
6278
|
-
}
|
|
6279
|
-
});
|
|
6305
|
+
select(drawingId, pluginId, pressedId);
|
|
6280
6306
|
}
|
|
6281
6307
|
|
|
6282
6308
|
clearIgnoreList();
|
|
@@ -6363,7 +6389,7 @@ function Drag(drawingId, pluginId) {
|
|
|
6363
6389
|
name: HandlersList.DRAG,
|
|
6364
6390
|
filter,
|
|
6365
6391
|
onDestruct: destructor,
|
|
6366
|
-
pointerHandlers: _objectSpread$
|
|
6392
|
+
pointerHandlers: _objectSpread$g({
|
|
6367
6393
|
onPointerDown,
|
|
6368
6394
|
onPointerUp,
|
|
6369
6395
|
onPointerMove
|
|
@@ -6375,9 +6401,9 @@ function Drag(drawingId, pluginId) {
|
|
|
6375
6401
|
};
|
|
6376
6402
|
}
|
|
6377
6403
|
|
|
6378
|
-
function ownKeys$
|
|
6404
|
+
function ownKeys$f(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
6379
6405
|
|
|
6380
|
-
function _objectSpread$
|
|
6406
|
+
function _objectSpread$f(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$f(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$f(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6381
6407
|
function DrawPoint(drawingId, pluginId) {
|
|
6382
6408
|
const {
|
|
6383
6409
|
set
|
|
@@ -6446,8 +6472,8 @@ function DrawPoint(drawingId, pluginId) {
|
|
|
6446
6472
|
set(state => {
|
|
6447
6473
|
const tmpPoint = state.tmpObjects[tmpPointId];
|
|
6448
6474
|
return {
|
|
6449
|
-
tmpObjects: _objectSpread$
|
|
6450
|
-
[tmpPointId]: _objectSpread$
|
|
6475
|
+
tmpObjects: _objectSpread$f(_objectSpread$f({}, state.tmpObjects), {}, {
|
|
6476
|
+
[tmpPointId]: _objectSpread$f(_objectSpread$f({}, tmpPoint), {}, {
|
|
6451
6477
|
position: mousePos
|
|
6452
6478
|
})
|
|
6453
6479
|
})
|
|
@@ -6469,9 +6495,9 @@ function DrawPoint(drawingId, pluginId) {
|
|
|
6469
6495
|
};
|
|
6470
6496
|
}
|
|
6471
6497
|
|
|
6472
|
-
function ownKeys$
|
|
6498
|
+
function ownKeys$e(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
6473
6499
|
|
|
6474
|
-
function _objectSpread$
|
|
6500
|
+
function _objectSpread$e(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$e(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$e(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6475
6501
|
function DrawLine(drawingId, pluginId) {
|
|
6476
6502
|
// Global hooks:
|
|
6477
6503
|
const {
|
|
@@ -6557,7 +6583,7 @@ function DrawLine(drawingId, pluginId) {
|
|
|
6557
6583
|
endPId: tmpEndP.id
|
|
6558
6584
|
};
|
|
6559
6585
|
return {
|
|
6560
|
-
tmpObjects: _objectSpread$
|
|
6586
|
+
tmpObjects: _objectSpread$e(_objectSpread$e({}, state.tmpObjects), {}, {
|
|
6561
6587
|
[tmpStartP.id]: tmpStartP,
|
|
6562
6588
|
[tmpLine.id]: tmpLine
|
|
6563
6589
|
})
|
|
@@ -6595,8 +6621,8 @@ function DrawLine(drawingId, pluginId) {
|
|
|
6595
6621
|
const tmpStartP = state.tmpObjects[tmpStartPId];
|
|
6596
6622
|
const tmpEndP = state.tmpObjects[tmpEndPId];
|
|
6597
6623
|
return {
|
|
6598
|
-
tmpObjects: _objectSpread$
|
|
6599
|
-
[tmpStartPId]: _objectSpread$
|
|
6624
|
+
tmpObjects: _objectSpread$e(_objectSpread$e({}, state.tmpObjects), {}, {
|
|
6625
|
+
[tmpStartPId]: _objectSpread$e(_objectSpread$e({}, tmpStartP), {}, {
|
|
6600
6626
|
position: tmpEndP.position.clone()
|
|
6601
6627
|
})
|
|
6602
6628
|
})
|
|
@@ -6618,8 +6644,8 @@ function DrawLine(drawingId, pluginId) {
|
|
|
6618
6644
|
set(state => {
|
|
6619
6645
|
const tmpEndP = state.tmpObjects[tmpEndPId];
|
|
6620
6646
|
return {
|
|
6621
|
-
tmpObjects: _objectSpread$
|
|
6622
|
-
[tmpEndPId]: _objectSpread$
|
|
6647
|
+
tmpObjects: _objectSpread$e(_objectSpread$e({}, state.tmpObjects), {}, {
|
|
6648
|
+
[tmpEndPId]: _objectSpread$e(_objectSpread$e({}, tmpEndP), {}, {
|
|
6623
6649
|
position: mousePos
|
|
6624
6650
|
})
|
|
6625
6651
|
})
|
|
@@ -6644,9 +6670,9 @@ function DrawLine(drawingId, pluginId) {
|
|
|
6644
6670
|
};
|
|
6645
6671
|
}
|
|
6646
6672
|
|
|
6647
|
-
function ownKeys$
|
|
6673
|
+
function ownKeys$d(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
6648
6674
|
|
|
6649
|
-
function _objectSpread$
|
|
6675
|
+
function _objectSpread$d(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$d(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$d(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6650
6676
|
function DrawRectangle(drawingId, pluginId) {
|
|
6651
6677
|
// Global hooks:
|
|
6652
6678
|
const {
|
|
@@ -6702,7 +6728,7 @@ function DrawRectangle(drawingId, pluginId) {
|
|
|
6702
6728
|
set(state => {
|
|
6703
6729
|
const tmpPoint11 = state.tmpObjects[tmpPoint11Id];
|
|
6704
6730
|
|
|
6705
|
-
const tmpPoint00 = _objectSpread$
|
|
6731
|
+
const tmpPoint00 = _objectSpread$d(_objectSpread$d({}, state.tmpObjects[tmpPoint00Id]), {}, {
|
|
6706
6732
|
position: tmpPoint11.position.clone()
|
|
6707
6733
|
});
|
|
6708
6734
|
|
|
@@ -6770,7 +6796,7 @@ function DrawRectangle(drawingId, pluginId) {
|
|
|
6770
6796
|
endPId: tmpPoint11.id
|
|
6771
6797
|
};
|
|
6772
6798
|
return {
|
|
6773
|
-
tmpObjects: _objectSpread$
|
|
6799
|
+
tmpObjects: _objectSpread$d(_objectSpread$d({}, state.tmpObjects), {}, {
|
|
6774
6800
|
[tmpPoint00.id]: tmpPoint00,
|
|
6775
6801
|
[tmpPoint01.id]: tmpPoint01,
|
|
6776
6802
|
[tmpPoint10.id]: tmpPoint10,
|
|
@@ -6798,7 +6824,7 @@ function DrawRectangle(drawingId, pluginId) {
|
|
|
6798
6824
|
const tmpPoint11 = state.tmpObjects[tmpPoint11Id];
|
|
6799
6825
|
return {
|
|
6800
6826
|
tmpObjects: {
|
|
6801
|
-
[tmpPoint00Id]: _objectSpread$
|
|
6827
|
+
[tmpPoint00Id]: _objectSpread$d(_objectSpread$d({}, tmpPoint00), {}, {
|
|
6802
6828
|
position: tmpPoint11.position.clone()
|
|
6803
6829
|
})
|
|
6804
6830
|
}
|
|
@@ -6822,8 +6848,8 @@ function DrawRectangle(drawingId, pluginId) {
|
|
|
6822
6848
|
if (additionIndex === 0) {
|
|
6823
6849
|
const tmpPoint00 = state.tmpObjects[tmpPoint00Id];
|
|
6824
6850
|
return {
|
|
6825
|
-
tmpObjects: _objectSpread$
|
|
6826
|
-
[tmpPoint00Id]: _objectSpread$
|
|
6851
|
+
tmpObjects: _objectSpread$d(_objectSpread$d({}, state.tmpObjects), {}, {
|
|
6852
|
+
[tmpPoint00Id]: _objectSpread$d(_objectSpread$d({}, tmpPoint00), {}, {
|
|
6827
6853
|
position: snappedPos
|
|
6828
6854
|
})
|
|
6829
6855
|
})
|
|
@@ -6834,14 +6860,14 @@ function DrawRectangle(drawingId, pluginId) {
|
|
|
6834
6860
|
const tmpPoint10 = state.tmpObjects[tmpPoint10Id];
|
|
6835
6861
|
const tmpPoint11 = state.tmpObjects[tmpPoint11Id];
|
|
6836
6862
|
return {
|
|
6837
|
-
tmpObjects: _objectSpread$
|
|
6838
|
-
[tmpPoint01Id]: _objectSpread$
|
|
6863
|
+
tmpObjects: _objectSpread$d(_objectSpread$d({}, state.tmpObjects), {}, {
|
|
6864
|
+
[tmpPoint01Id]: _objectSpread$d(_objectSpread$d({}, tmpPoint01), {}, {
|
|
6839
6865
|
position: new THREE.Vector3(startPos.x, snappedPos.y, startPos.z)
|
|
6840
6866
|
}),
|
|
6841
|
-
[tmpPoint10Id]: _objectSpread$
|
|
6867
|
+
[tmpPoint10Id]: _objectSpread$d(_objectSpread$d({}, tmpPoint10), {}, {
|
|
6842
6868
|
position: new THREE.Vector3(snappedPos.x, startPos.y, startPos.z)
|
|
6843
6869
|
}),
|
|
6844
|
-
[tmpPoint11Id]: _objectSpread$
|
|
6870
|
+
[tmpPoint11Id]: _objectSpread$d(_objectSpread$d({}, tmpPoint11), {}, {
|
|
6845
6871
|
position: new THREE.Vector3(snappedPos.x, snappedPos.y, startPos.z)
|
|
6846
6872
|
})
|
|
6847
6873
|
})
|
|
@@ -6867,17 +6893,35 @@ function DrawRectangle(drawingId, pluginId) {
|
|
|
6867
6893
|
};
|
|
6868
6894
|
}
|
|
6869
6895
|
|
|
6896
|
+
let scale = 1;
|
|
6897
|
+
function setScale(newScale) {
|
|
6898
|
+
scale = newScale;
|
|
6899
|
+
}
|
|
6900
|
+
function getScale() {
|
|
6901
|
+
return scale;
|
|
6902
|
+
} // The hook sets scale vector to a refered object in useFrame
|
|
6903
|
+
|
|
6904
|
+
function useScale(getVector) {
|
|
6905
|
+
const ref = React__default.useRef();
|
|
6906
|
+
useFrame(args => {
|
|
6907
|
+
if (ref.current) {
|
|
6908
|
+
const newScale = getVector ? getVector(scale) : [scale, scale, scale];
|
|
6909
|
+
ref.current.scale.set(...newScale);
|
|
6910
|
+
}
|
|
6911
|
+
});
|
|
6912
|
+
return ref;
|
|
6913
|
+
}
|
|
6914
|
+
|
|
6870
6915
|
const lineWidth = 0.2;
|
|
6871
6916
|
const pointSize = 0.5;
|
|
6872
6917
|
const arcWidth = 0.2;
|
|
6873
6918
|
const radSegments = 32;
|
|
6874
|
-
const tubeSegments = 6;
|
|
6875
|
-
const cylGeom = new THREE.CylinderGeometry(1, 1, 1, 6);
|
|
6876
|
-
const Line = ({
|
|
6919
|
+
const tubeSegments$1 = 6;
|
|
6920
|
+
const cylGeom$1 = new THREE.CylinderGeometry(1, 1, 1, 6);
|
|
6921
|
+
const Line$1 = ({
|
|
6877
6922
|
start,
|
|
6878
6923
|
end,
|
|
6879
6924
|
width = lineWidth,
|
|
6880
|
-
scale = 1,
|
|
6881
6925
|
materialProps,
|
|
6882
6926
|
meshProps
|
|
6883
6927
|
}) => {
|
|
@@ -6891,24 +6935,26 @@ const Line = ({
|
|
|
6891
6935
|
quaternion: new THREE.Quaternion().setFromUnitVectors(new THREE.Vector3(0, 1, 0), dir)
|
|
6892
6936
|
};
|
|
6893
6937
|
}, [start, end]);
|
|
6938
|
+
const ref = useScale(scale => [width * scale, start.distanceTo(end), width * scale]);
|
|
6894
6939
|
return /*#__PURE__*/React__default.createElement("mesh", _extends({}, meshProps, {
|
|
6940
|
+
ref: ref,
|
|
6895
6941
|
position: position,
|
|
6896
6942
|
quaternion: quaternion,
|
|
6897
|
-
geometry: cylGeom
|
|
6898
|
-
scale: [width * scale, start.distanceTo(end), width * scale]
|
|
6943
|
+
geometry: cylGeom$1
|
|
6899
6944
|
}), /*#__PURE__*/React__default.createElement("meshBasicMaterial", materialProps));
|
|
6900
6945
|
};
|
|
6901
|
-
const Point = ({
|
|
6946
|
+
const Point$1 = ({
|
|
6902
6947
|
position,
|
|
6903
6948
|
size = pointSize,
|
|
6904
|
-
scale = 1,
|
|
6905
6949
|
materialProps,
|
|
6906
6950
|
meshProps
|
|
6907
6951
|
}) => {
|
|
6952
|
+
const ref = useScale(scale => [size * scale, size * scale, size * scale]);
|
|
6908
6953
|
return /*#__PURE__*/React__default.createElement("mesh", _extends({}, meshProps, {
|
|
6909
|
-
position: position
|
|
6954
|
+
position: position,
|
|
6955
|
+
ref: ref
|
|
6910
6956
|
}), /*#__PURE__*/React__default.createElement("sphereGeometry", {
|
|
6911
|
-
args: [
|
|
6957
|
+
args: [1, tubeSegments$1, tubeSegments$1]
|
|
6912
6958
|
}), /*#__PURE__*/React__default.createElement("meshBasicMaterial", materialProps));
|
|
6913
6959
|
};
|
|
6914
6960
|
function getArcAngles(params) {
|
|
@@ -6968,7 +7014,7 @@ const Arc = ({
|
|
|
6968
7014
|
position: center,
|
|
6969
7015
|
quaternion: quaternion
|
|
6970
7016
|
}), /*#__PURE__*/React__default.createElement("torusGeometry", {
|
|
6971
|
-
args: [radius, width * scale, tubeSegments, radSegments, thetaLength]
|
|
7017
|
+
args: [radius, width * scale, tubeSegments$1, radSegments, thetaLength]
|
|
6972
7018
|
}), /*#__PURE__*/React__default.createElement("meshBasicMaterial", _extends({}, materialProps, {
|
|
6973
7019
|
side: clockwise ? THREE.DoubleSide : THREE.FrontSide
|
|
6974
7020
|
})));
|
|
@@ -6984,13 +7030,13 @@ const Circle = ({
|
|
|
6984
7030
|
return /*#__PURE__*/React__default.createElement("mesh", _extends({}, meshProps, {
|
|
6985
7031
|
position: center
|
|
6986
7032
|
}), /*#__PURE__*/React__default.createElement("torusGeometry", {
|
|
6987
|
-
args: [radius, width * scale, tubeSegments, radSegments]
|
|
7033
|
+
args: [radius, width * scale, tubeSegments$1, radSegments]
|
|
6988
7034
|
}), /*#__PURE__*/React__default.createElement("meshBasicMaterial", materialProps));
|
|
6989
7035
|
};
|
|
6990
7036
|
|
|
6991
|
-
function ownKeys$
|
|
7037
|
+
function ownKeys$c(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
6992
7038
|
|
|
6993
|
-
function _objectSpread$
|
|
7039
|
+
function _objectSpread$c(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$c(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$c(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6994
7040
|
function DrawArc(drawingId, pluginId, arcType) {
|
|
6995
7041
|
// Global hooks:
|
|
6996
7042
|
const {
|
|
@@ -7046,7 +7092,7 @@ function DrawArc(drawingId, pluginId, arcType) {
|
|
|
7046
7092
|
additionIndex = 0;
|
|
7047
7093
|
lastAddedEndPointId = UNDEFINEDID;
|
|
7048
7094
|
set(state => {
|
|
7049
|
-
const tmpStartP = _objectSpread$
|
|
7095
|
+
const tmpStartP = _objectSpread$c(_objectSpread$c({}, state.tmpObjects[tmpStartPId]), {}, {
|
|
7050
7096
|
position: lastMousePos.clone()
|
|
7051
7097
|
});
|
|
7052
7098
|
|
|
@@ -7061,24 +7107,24 @@ function DrawArc(drawingId, pluginId, arcType) {
|
|
|
7061
7107
|
set(state => {
|
|
7062
7108
|
const tmpStartP = state.tmpObjects[tmpStartPId];
|
|
7063
7109
|
|
|
7064
|
-
const tmpEndP = _objectSpread$
|
|
7110
|
+
const tmpEndP = _objectSpread$c(_objectSpread$c({}, state.tmpObjects[tmpEndPId]), {}, {
|
|
7065
7111
|
position: lastMousePos.clone()
|
|
7066
7112
|
});
|
|
7067
7113
|
|
|
7068
7114
|
const centerPos = calculateCenterPoint(tmpStartP.position, lastMousePos, lastMousePos);
|
|
7069
7115
|
|
|
7070
|
-
const tmpCenterP = _objectSpread$
|
|
7116
|
+
const tmpCenterP = _objectSpread$c(_objectSpread$c({}, state.tmpObjects[tmpCenterPId]), {}, {
|
|
7071
7117
|
position: centerPos ? centerPos : lastMousePos.clone()
|
|
7072
7118
|
});
|
|
7073
7119
|
|
|
7074
|
-
const tmpArc = _objectSpread$
|
|
7120
|
+
const tmpArc = _objectSpread$c(_objectSpread$c({}, state.tmpObjects[tmpArcId]), {}, {
|
|
7075
7121
|
// In case centerPos couldn't be calculated, the arc should be drawn as a line
|
|
7076
7122
|
drawAsLine: centerPos === undefined,
|
|
7077
7123
|
clockwise: false
|
|
7078
7124
|
});
|
|
7079
7125
|
|
|
7080
7126
|
return {
|
|
7081
|
-
tmpObjects: _objectSpread$
|
|
7127
|
+
tmpObjects: _objectSpread$c(_objectSpread$c({}, state.tmpObjects), {}, {
|
|
7082
7128
|
[tmpEndP.id]: tmpEndP,
|
|
7083
7129
|
[tmpCenterP.id]: tmpCenterP,
|
|
7084
7130
|
[tmpArc.id]: tmpArc
|
|
@@ -7199,7 +7245,7 @@ function DrawArc(drawingId, pluginId, arcType) {
|
|
|
7199
7245
|
clockwise: false
|
|
7200
7246
|
};
|
|
7201
7247
|
return {
|
|
7202
|
-
tmpObjects: _objectSpread$
|
|
7248
|
+
tmpObjects: _objectSpread$c(_objectSpread$c({}, state.tmpObjects), {}, {
|
|
7203
7249
|
[tmpEndP.id]: tmpEndP,
|
|
7204
7250
|
[tmpCenterP.id]: tmpCenterP,
|
|
7205
7251
|
[tmpArc.id]: tmpArc
|
|
@@ -7228,7 +7274,7 @@ function DrawArc(drawingId, pluginId, arcType) {
|
|
|
7228
7274
|
clockwise: false
|
|
7229
7275
|
};
|
|
7230
7276
|
return {
|
|
7231
|
-
tmpObjects: _objectSpread$
|
|
7277
|
+
tmpObjects: _objectSpread$c(_objectSpread$c({}, state.tmpObjects), {}, {
|
|
7232
7278
|
[tmpCenterP.id]: tmpCenterP,
|
|
7233
7279
|
[tmpArc.id]: tmpArc
|
|
7234
7280
|
})
|
|
@@ -7286,11 +7332,11 @@ function DrawArc(drawingId, pluginId, arcType) {
|
|
|
7286
7332
|
const tmpEndP = state.tmpObjects[tmpEndPId];
|
|
7287
7333
|
const tmpCenterP = state.tmpObjects[tmpCenterPId];
|
|
7288
7334
|
return {
|
|
7289
|
-
tmpObjects: _objectSpread$
|
|
7290
|
-
[tmpStartPId]: _objectSpread$
|
|
7335
|
+
tmpObjects: _objectSpread$c(_objectSpread$c({}, state.tmpObjects), {}, {
|
|
7336
|
+
[tmpStartPId]: _objectSpread$c(_objectSpread$c({}, tmpStartP), {}, {
|
|
7291
7337
|
position: tmpEndP.position.clone()
|
|
7292
7338
|
}),
|
|
7293
|
-
[tmpCenterPId]: _objectSpread$
|
|
7339
|
+
[tmpCenterPId]: _objectSpread$c(_objectSpread$c({}, tmpCenterP), {}, {
|
|
7294
7340
|
position: tmpEndP.position.clone()
|
|
7295
7341
|
})
|
|
7296
7342
|
})
|
|
@@ -7314,8 +7360,8 @@ function DrawArc(drawingId, pluginId, arcType) {
|
|
|
7314
7360
|
if (additionIndex === 0) {
|
|
7315
7361
|
const tmpStartP = state.tmpObjects[tmpStartPId];
|
|
7316
7362
|
return {
|
|
7317
|
-
tmpObjects: _objectSpread$
|
|
7318
|
-
[tmpStartPId]: _objectSpread$
|
|
7363
|
+
tmpObjects: _objectSpread$c(_objectSpread$c({}, state.tmpObjects), {}, {
|
|
7364
|
+
[tmpStartPId]: _objectSpread$c(_objectSpread$c({}, tmpStartP), {}, {
|
|
7319
7365
|
position: lastMousePos.clone()
|
|
7320
7366
|
})
|
|
7321
7367
|
})
|
|
@@ -7327,14 +7373,14 @@ function DrawArc(drawingId, pluginId, arcType) {
|
|
|
7327
7373
|
const tmpCenterP = state.tmpObjects[tmpCenterPId];
|
|
7328
7374
|
const centerPos = calculateCenterPoint(tmpStartP.position, lastMousePos, lastMousePos);
|
|
7329
7375
|
return {
|
|
7330
|
-
tmpObjects: _objectSpread$
|
|
7331
|
-
[tmpEndPId]: _objectSpread$
|
|
7376
|
+
tmpObjects: _objectSpread$c(_objectSpread$c({}, state.tmpObjects), {}, {
|
|
7377
|
+
[tmpEndPId]: _objectSpread$c(_objectSpread$c({}, tmpEndP), {}, {
|
|
7332
7378
|
position: lastMousePos.clone()
|
|
7333
7379
|
}),
|
|
7334
|
-
[tmpCenterPId]: _objectSpread$
|
|
7380
|
+
[tmpCenterPId]: _objectSpread$c(_objectSpread$c({}, tmpCenterP), {}, {
|
|
7335
7381
|
position: centerPos ? centerPos : lastMousePos.clone()
|
|
7336
7382
|
}),
|
|
7337
|
-
[tmpArcId]: _objectSpread$
|
|
7383
|
+
[tmpArcId]: _objectSpread$c(_objectSpread$c({}, tmpArc), {}, {
|
|
7338
7384
|
// In case centerPos couldn't be calculated, the arc should be drawn as a line
|
|
7339
7385
|
drawAsLine: centerPos === undefined,
|
|
7340
7386
|
clockwise: false
|
|
@@ -7348,14 +7394,14 @@ function DrawArc(drawingId, pluginId, arcType) {
|
|
|
7348
7394
|
const tmpCenterP = state.tmpObjects[tmpCenterPId];
|
|
7349
7395
|
const centerPos = calculateCenterPoint(tmpStartP.position, tmpEndP.position, lastMousePos);
|
|
7350
7396
|
return {
|
|
7351
|
-
tmpObjects: _objectSpread$
|
|
7352
|
-
[tmpEndPId]: _objectSpread$
|
|
7397
|
+
tmpObjects: _objectSpread$c(_objectSpread$c({}, state.tmpObjects), {}, {
|
|
7398
|
+
[tmpEndPId]: _objectSpread$c(_objectSpread$c({}, tmpEndP), {}, {
|
|
7353
7399
|
position: arcType === HandlersList.DRAWARCTANGENT ? lastMousePos.clone() : tmpEndP.position
|
|
7354
7400
|
}),
|
|
7355
|
-
[tmpCenterPId]: _objectSpread$
|
|
7401
|
+
[tmpCenterPId]: _objectSpread$c(_objectSpread$c({}, tmpCenterP), {}, {
|
|
7356
7402
|
position: centerPos ? centerPos : lastMousePos.clone()
|
|
7357
7403
|
}),
|
|
7358
|
-
[tmpArcId]: _objectSpread$
|
|
7404
|
+
[tmpArcId]: _objectSpread$c(_objectSpread$c({}, tmpArc), {}, {
|
|
7359
7405
|
// In case centerPos couldn't be calculated, the arc should be drawn as a line
|
|
7360
7406
|
drawAsLine: centerPos === undefined,
|
|
7361
7407
|
clockwise: evaluateClockwise(tmpStartP.position, tmpEndP.position, lastMousePos)
|
|
@@ -7383,9 +7429,9 @@ function DrawArc(drawingId, pluginId, arcType) {
|
|
|
7383
7429
|
};
|
|
7384
7430
|
}
|
|
7385
7431
|
|
|
7386
|
-
function ownKeys$
|
|
7432
|
+
function ownKeys$b(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
7387
7433
|
|
|
7388
|
-
function _objectSpread$
|
|
7434
|
+
function _objectSpread$b(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$b(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$b(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
7389
7435
|
function DrawCircle(drawingId, pluginId) {
|
|
7390
7436
|
const {
|
|
7391
7437
|
set
|
|
@@ -7432,7 +7478,7 @@ function DrawCircle(drawingId, pluginId) {
|
|
|
7432
7478
|
} else {
|
|
7433
7479
|
additionIndex = 0;
|
|
7434
7480
|
set(state => {
|
|
7435
|
-
const tmpCenterP = _objectSpread$
|
|
7481
|
+
const tmpCenterP = _objectSpread$b(_objectSpread$b({}, state.tmpObjects[tmpCenterPId]), {}, {
|
|
7436
7482
|
position: lastMousePos.clone()
|
|
7437
7483
|
});
|
|
7438
7484
|
|
|
@@ -7466,7 +7512,7 @@ function DrawCircle(drawingId, pluginId) {
|
|
|
7466
7512
|
radius: 0.001
|
|
7467
7513
|
};
|
|
7468
7514
|
return {
|
|
7469
|
-
tmpObjects: _objectSpread$
|
|
7515
|
+
tmpObjects: _objectSpread$b(_objectSpread$b({}, state.tmpObjects), {}, {
|
|
7470
7516
|
[tmpCenterP.id]: tmpCenterP,
|
|
7471
7517
|
[tmpCircle.id]: tmpCircle
|
|
7472
7518
|
})
|
|
@@ -7487,7 +7533,7 @@ function DrawCircle(drawingId, pluginId) {
|
|
|
7487
7533
|
const tmpCenterP = state.tmpObjects[tmpCenterPId];
|
|
7488
7534
|
return {
|
|
7489
7535
|
tmpObjects: {
|
|
7490
|
-
[tmpCenterPId]: _objectSpread$
|
|
7536
|
+
[tmpCenterPId]: _objectSpread$b(_objectSpread$b({}, tmpCenterP), {}, {
|
|
7491
7537
|
position: e.point.clone().applyMatrix4(getGlobalToLocalMatrix(drawingId, sketchId))
|
|
7492
7538
|
})
|
|
7493
7539
|
}
|
|
@@ -7511,8 +7557,8 @@ function DrawCircle(drawingId, pluginId) {
|
|
|
7511
7557
|
if (additionIndex === 0) {
|
|
7512
7558
|
const tmpCenterP = state.tmpObjects[tmpCenterPId];
|
|
7513
7559
|
return {
|
|
7514
|
-
tmpObjects: _objectSpread$
|
|
7515
|
-
[tmpCenterPId]: _objectSpread$
|
|
7560
|
+
tmpObjects: _objectSpread$b(_objectSpread$b({}, state.tmpObjects), {}, {
|
|
7561
|
+
[tmpCenterPId]: _objectSpread$b(_objectSpread$b({}, tmpCenterP), {}, {
|
|
7516
7562
|
position: snappedPos || localPos
|
|
7517
7563
|
})
|
|
7518
7564
|
})
|
|
@@ -7521,8 +7567,8 @@ function DrawCircle(drawingId, pluginId) {
|
|
|
7521
7567
|
const tmpCenterP = state.tmpObjects[tmpCenterPId];
|
|
7522
7568
|
const tmpCircle = state.tmpObjects[tmpCircleId];
|
|
7523
7569
|
return {
|
|
7524
|
-
tmpObjects: _objectSpread$
|
|
7525
|
-
[tmpCircleId]: _objectSpread$
|
|
7570
|
+
tmpObjects: _objectSpread$b(_objectSpread$b({}, state.tmpObjects), {}, {
|
|
7571
|
+
[tmpCircleId]: _objectSpread$b(_objectSpread$b({}, tmpCircle), {}, {
|
|
7526
7572
|
radius: Math.max(tmpCenterP.position.distanceTo(localPos), 0.001)
|
|
7527
7573
|
})
|
|
7528
7574
|
})
|
|
@@ -8020,9 +8066,9 @@ function recognizeFilletByArc(object, tree, sketchId) {
|
|
|
8020
8066
|
};
|
|
8021
8067
|
}
|
|
8022
8068
|
|
|
8023
|
-
function ownKeys$
|
|
8069
|
+
function ownKeys$a(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
8024
8070
|
|
|
8025
|
-
function _objectSpread$
|
|
8071
|
+
function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$a(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
8026
8072
|
function Fillet(drawingId, pluginId) {
|
|
8027
8073
|
const actions = getDrawing(drawingId).api;
|
|
8028
8074
|
const plugin = getPlugin(drawingId, pluginId);
|
|
@@ -8171,7 +8217,7 @@ function Fillet(drawingId, pluginId) {
|
|
|
8171
8217
|
return;
|
|
8172
8218
|
}
|
|
8173
8219
|
|
|
8174
|
-
ccAPI.sketcher.createFillet(drawingId, sketchId, data.info.lines.map(line => line.id), data.info.lineStarts.map(lineStart => lineStart.id), data.info.incidence, data.info.control, data.params.start, getArcAngles(_objectSpread$
|
|
8220
|
+
ccAPI.sketcher.createFillet(drawingId, sketchId, data.info.lines.map(line => line.id), data.info.lineStarts.map(lineStart => lineStart.id), data.info.incidence, data.info.control, data.params.start, getArcAngles(_objectSpread$a(_objectSpread$a({}, data.params), {}, {
|
|
8175
8221
|
radius: 1
|
|
8176
8222
|
})).mid, data.params.end);
|
|
8177
8223
|
set({
|
|
@@ -8267,6 +8313,32 @@ function Trim(drawingId, pluginId) {
|
|
|
8267
8313
|
};
|
|
8268
8314
|
}
|
|
8269
8315
|
|
|
8316
|
+
function UseRef(drawingId, pluginId) {
|
|
8317
|
+
// UseRef shouldn't work with any of sketch objects
|
|
8318
|
+
const filter = object => false;
|
|
8319
|
+
|
|
8320
|
+
const filterSel = (scope, data) => lineSegmentsFilter(scope, data) || loopFilter(scope, data) || pointFilter(scope, data);
|
|
8321
|
+
|
|
8322
|
+
let remove = undefined;
|
|
8323
|
+
|
|
8324
|
+
const constructor = () => {
|
|
8325
|
+
const selApi = getDrawing(drawingId).api.selection;
|
|
8326
|
+
remove = selApi.createSelector('UseRef', filterSel, true);
|
|
8327
|
+
};
|
|
8328
|
+
|
|
8329
|
+
const destructor = () => {
|
|
8330
|
+
remove && remove();
|
|
8331
|
+
};
|
|
8332
|
+
|
|
8333
|
+
return {
|
|
8334
|
+
name: HandlersList.USEREF,
|
|
8335
|
+
filter,
|
|
8336
|
+
onConstruct: constructor,
|
|
8337
|
+
onDestruct: destructor,
|
|
8338
|
+
pointerHandlers: {}
|
|
8339
|
+
};
|
|
8340
|
+
}
|
|
8341
|
+
|
|
8270
8342
|
const Handlers$1 = {
|
|
8271
8343
|
[HandlersList.CREATEANGLE]: CreateAngle,
|
|
8272
8344
|
[HandlersList.DRAG]: Drag,
|
|
@@ -8276,6 +8348,7 @@ const Handlers$1 = {
|
|
|
8276
8348
|
[HandlersList.DRAWRECTANGLE]: DrawRectangle,
|
|
8277
8349
|
[HandlersList.FILLET]: Fillet,
|
|
8278
8350
|
[HandlersList.TRIM]: Trim,
|
|
8351
|
+
[HandlersList.USEREF]: UseRef,
|
|
8279
8352
|
[HandlersList.DRAWARCCENTER]: (drawingId, pluginId) => DrawArc(drawingId, pluginId, HandlersList.DRAWARCCENTER),
|
|
8280
8353
|
[HandlersList.DRAWARCMIDDLE]: (drawingId, pluginId) => DrawArc(drawingId, pluginId, HandlersList.DRAWARCMIDDLE),
|
|
8281
8354
|
[HandlersList.DRAWARCTANGENT]: (drawingId, pluginId) => DrawArc(drawingId, pluginId, HandlersList.DRAWARCTANGENT)
|
|
@@ -8736,10 +8809,10 @@ const resources = {
|
|
|
8736
8809
|
[HandlersList.DRAWCIRCLE]: img$y,
|
|
8737
8810
|
[HandlersList.FILLET]: img$x,
|
|
8738
8811
|
[HandlersList.TRIM]: img$w,
|
|
8812
|
+
[HandlersList.USEREF]: img$s,
|
|
8739
8813
|
[Patterns.RECTANGULAR]: img$v,
|
|
8740
8814
|
[Patterns.CIRCULAR]: img$u,
|
|
8741
|
-
[Patterns.MIRROR]: img$t
|
|
8742
|
-
['useRef']: img$s
|
|
8815
|
+
[Patterns.MIRROR]: img$t
|
|
8743
8816
|
};
|
|
8744
8817
|
const textures = {};
|
|
8745
8818
|
const textureLoader = new THREE.TextureLoader();
|
|
@@ -8827,11 +8900,14 @@ const useGeomParams = objId => {
|
|
|
8827
8900
|
|
|
8828
8901
|
if (isHovered || isSelected || isHighlighted) {
|
|
8829
8902
|
renderOrder_ += 1;
|
|
8830
|
-
}
|
|
8903
|
+
} // TODO: returning isHovered and isSelected is a workaround for changing scale of the hovered point. (return scale coef instead?)
|
|
8904
|
+
|
|
8831
8905
|
|
|
8832
8906
|
return {
|
|
8833
8907
|
renderOrder: renderOrder_,
|
|
8834
|
-
polygonOffsetUnits: offsetUnits
|
|
8908
|
+
polygonOffsetUnits: offsetUnits,
|
|
8909
|
+
isHovered,
|
|
8910
|
+
isSelected
|
|
8835
8911
|
};
|
|
8836
8912
|
};
|
|
8837
8913
|
|
|
@@ -8986,6 +9062,17 @@ const useUserData = objId => {
|
|
|
8986
9062
|
return React__default.useMemo(() => ({
|
|
8987
9063
|
objId
|
|
8988
9064
|
}), [objId]);
|
|
9065
|
+
}; // Fix for interaction until drei support undefined as pointer handlers
|
|
9066
|
+
|
|
9067
|
+
const defaultHandlers = {
|
|
9068
|
+
onPointerOver: () => null,
|
|
9069
|
+
// onPointerEnter: () => null,
|
|
9070
|
+
onPointerDown: () => null,
|
|
9071
|
+
onPointerMove: () => null,
|
|
9072
|
+
onPointerUp: () => null,
|
|
9073
|
+
onPointerCancel: () => null,
|
|
9074
|
+
onPointerOut: () => null // onPointerLeave: () => null,
|
|
9075
|
+
|
|
8989
9076
|
};
|
|
8990
9077
|
const useHandlersAndColor = (drawingId, objId) => {
|
|
8991
9078
|
const activeSelection = useDrawing(drawingId, d => d.selection.active);
|
|
@@ -8994,7 +9081,7 @@ const useHandlersAndColor = (drawingId, objId) => {
|
|
|
8994
9081
|
const handlers = activeSelection ? globalSelection.handlers : sketchHandlers;
|
|
8995
9082
|
const color = useColor(objId, globalSelection.isHovered);
|
|
8996
9083
|
return React__default.useMemo(() => ({
|
|
8997
|
-
handlers,
|
|
9084
|
+
handlers: handlers || defaultHandlers,
|
|
8998
9085
|
color
|
|
8999
9086
|
}), [handlers, color]);
|
|
9000
9087
|
};
|
|
@@ -9210,30 +9297,210 @@ class InfinityPlane extends THREE.Object3D {
|
|
|
9210
9297
|
|
|
9211
9298
|
}
|
|
9212
9299
|
|
|
9213
|
-
|
|
9300
|
+
// InstancedMesh from three.js use the single mesh but applies different transformations to different instances of the mesh
|
|
9301
|
+
// which allows to render multiple objects in the same render call, so we have separate render call for each mesh
|
|
9302
|
+
// (in our case there're 2 render calls: one for Boxes and another for Spheres).
|
|
9214
9303
|
|
|
9215
|
-
|
|
9216
|
-
|
|
9217
|
-
|
|
9218
|
-
|
|
9219
|
-
|
|
9220
|
-
|
|
9221
|
-
|
|
9222
|
-
|
|
9223
|
-
|
|
9224
|
-
|
|
9225
|
-
|
|
9304
|
+
const material = new THREE.MeshBasicMaterial();
|
|
9305
|
+
const tubeSegments = 6;
|
|
9306
|
+
const cylGeom = new THREE.CylinderGeometry(1, 1, 1, tubeSegments);
|
|
9307
|
+
const cylMesh = new THREE.Mesh(cylGeom, material);
|
|
9308
|
+
const widthSegments = 12;
|
|
9309
|
+
const heightSegments = 12;
|
|
9310
|
+
const sphereGeom = new THREE.SphereGeometry(1, widthSegments, heightSegments);
|
|
9311
|
+
const sphereMesh = new THREE.Mesh(sphereGeom, material); // We use context to store "mocked" objects.
|
|
9312
|
+
|
|
9313
|
+
const MeshContext = /*#__PURE__*/React__default.createContext({
|
|
9314
|
+
Cylinder: null,
|
|
9315
|
+
Sphere: null
|
|
9316
|
+
});
|
|
9317
|
+
|
|
9318
|
+
const ContextWrapper = ({
|
|
9319
|
+
cylinder,
|
|
9320
|
+
sphere,
|
|
9321
|
+
children
|
|
9322
|
+
}) => {
|
|
9323
|
+
const contextVal = React__default.useMemo(() => {
|
|
9324
|
+
return {
|
|
9325
|
+
Cylinder: cylinder,
|
|
9326
|
+
Sphere: sphere
|
|
9327
|
+
};
|
|
9328
|
+
}, [cylinder, sphere]);
|
|
9329
|
+
return /*#__PURE__*/React__default.createElement(MeshContext.Provider, {
|
|
9330
|
+
value: contextVal
|
|
9331
|
+
}, children);
|
|
9332
|
+
};
|
|
9333
|
+
/**
|
|
9334
|
+
* Component which implements InstancedMesh from three.js.
|
|
9335
|
+
* Merged component from drei takes globaly created meshes and then passes corresponding "mocked" components via function props (Box and Sphere) to children.
|
|
9336
|
+
* "mocked" components are used for saying drei where to draw instances.
|
|
9226
9337
|
*/
|
|
9227
9338
|
|
|
9228
|
-
extend({
|
|
9229
|
-
InfinityPlane
|
|
9230
|
-
});
|
|
9231
|
-
const hoverZone = 0.6;
|
|
9232
9339
|
|
|
9233
|
-
const
|
|
9340
|
+
const MergedWrapper = ({
|
|
9341
|
+
children
|
|
9342
|
+
}) => {
|
|
9343
|
+
return (
|
|
9344
|
+
/*#__PURE__*/
|
|
9345
|
+
// Default raycast of merged should be turned off, because custom raycast is used in primitivesMerged
|
|
9346
|
+
React__default.createElement(Merged, {
|
|
9347
|
+
meshes: [cylMesh, sphereMesh],
|
|
9348
|
+
limit: 10000,
|
|
9349
|
+
raycast: null
|
|
9350
|
+
}, (Cylinder, Sphere) => /*#__PURE__*/React__default.createElement(ContextWrapper, {
|
|
9351
|
+
cylinder: Cylinder,
|
|
9352
|
+
sphere: Sphere
|
|
9353
|
+
}, children))
|
|
9354
|
+
);
|
|
9355
|
+
};
|
|
9356
|
+
|
|
9357
|
+
const lineStart = new THREE.Vector3();
|
|
9358
|
+
const lineEnd = new THREE.Vector3();
|
|
9359
|
+
const pointOnRay = new THREE.Vector3();
|
|
9360
|
+
const lineCoef = 1.2;
|
|
9361
|
+
|
|
9362
|
+
function getParentSketch(child) {
|
|
9363
|
+
const parent = child.parent;
|
|
9364
|
+
if (!parent) return null;
|
|
9365
|
+
if (parent.name === 'sketch') return parent;
|
|
9366
|
+
return getParentSketch(parent);
|
|
9367
|
+
}
|
|
9368
|
+
|
|
9369
|
+
const Line = ({
|
|
9370
|
+
start,
|
|
9371
|
+
end,
|
|
9372
|
+
width = lineWidth,
|
|
9373
|
+
materialProps,
|
|
9374
|
+
meshProps,
|
|
9375
|
+
notInteractive,
|
|
9376
|
+
scalePlus
|
|
9377
|
+
}) => {
|
|
9234
9378
|
const {
|
|
9235
|
-
|
|
9236
|
-
|
|
9379
|
+
position,
|
|
9380
|
+
quaternion
|
|
9381
|
+
} = React__default.useMemo(() => {
|
|
9382
|
+
const dir = end.clone().sub(start).normalize();
|
|
9383
|
+
return {
|
|
9384
|
+
position: new THREE.Vector3().lerpVectors(start, end, 0.5),
|
|
9385
|
+
quaternion: new THREE.Quaternion().setFromUnitVectors(new THREE.Vector3(0, 1, 0), dir)
|
|
9386
|
+
};
|
|
9387
|
+
}, [start, end]); // TODO: make lineRaycast global function
|
|
9388
|
+
|
|
9389
|
+
const lineRaycast = React__default.useCallback(function (raycaster, intersects) {
|
|
9390
|
+
const sketchGroup = getParentSketch(this);
|
|
9391
|
+
|
|
9392
|
+
if (sketchGroup === null || (sketchGroup == null ? void 0 : sketchGroup.name) !== 'sketch') {
|
|
9393
|
+
console.warn('Line is not a child of sketch group');
|
|
9394
|
+
return;
|
|
9395
|
+
}
|
|
9396
|
+
|
|
9397
|
+
lineStart.copy(start);
|
|
9398
|
+
lineEnd.copy(end);
|
|
9399
|
+
lineStart.applyMatrix4(sketchGroup.matrixWorld);
|
|
9400
|
+
lineEnd.applyMatrix4(sketchGroup.matrixWorld);
|
|
9401
|
+
const dist = Math.sqrt(raycaster.ray.distanceSqToSegment(lineStart, lineEnd, pointOnRay));
|
|
9402
|
+
const sketchScale = getScale();
|
|
9403
|
+
|
|
9404
|
+
if (dist < lineCoef * sketchScale) {
|
|
9405
|
+
intersects.push({
|
|
9406
|
+
distance: dist,
|
|
9407
|
+
point: pointOnRay,
|
|
9408
|
+
face: null,
|
|
9409
|
+
object: this
|
|
9410
|
+
});
|
|
9411
|
+
}
|
|
9412
|
+
}, [start, end]);
|
|
9413
|
+
const {
|
|
9414
|
+
Cylinder
|
|
9415
|
+
} = React__default.useContext(MeshContext);
|
|
9416
|
+
const ref = useScale(scale => {
|
|
9417
|
+
const scale_ = scalePlus ? scale + 0.01 : scale;
|
|
9418
|
+
return [width * scale_, start.distanceTo(end), width * scale_];
|
|
9419
|
+
}); // We need initial scale to remove flickering of recently created objects
|
|
9420
|
+
|
|
9421
|
+
const initialScale = React__default.useMemo(() => {
|
|
9422
|
+
const scale = getScale();
|
|
9423
|
+
return [width * scale, start.distanceTo(end), width * scale]; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
9424
|
+
}, []);
|
|
9425
|
+
return /*#__PURE__*/React__default.createElement(Cylinder, _extends({
|
|
9426
|
+
ref: ref,
|
|
9427
|
+
scale: initialScale
|
|
9428
|
+
}, materialProps, meshProps, {
|
|
9429
|
+
position: position,
|
|
9430
|
+
quaternion: quaternion,
|
|
9431
|
+
raycast: notInteractive ? null : lineRaycast
|
|
9432
|
+
}));
|
|
9433
|
+
};
|
|
9434
|
+
|
|
9435
|
+
const pointPos = new THREE.Vector3();
|
|
9436
|
+
const pointCoef = 1.3; // Coefficient for increased interaction area
|
|
9437
|
+
|
|
9438
|
+
function pointRaycast(raycaster, intersects) {
|
|
9439
|
+
this.getWorldPosition(pointPos);
|
|
9440
|
+
const dist = raycaster.ray.distanceToPoint(pointPos);
|
|
9441
|
+
const sketchScale = getScale();
|
|
9442
|
+
|
|
9443
|
+
if (dist < pointCoef * sketchScale) {
|
|
9444
|
+
intersects.push({
|
|
9445
|
+
distance: dist,
|
|
9446
|
+
point: pointPos.clone(),
|
|
9447
|
+
face: null,
|
|
9448
|
+
object: this
|
|
9449
|
+
});
|
|
9450
|
+
}
|
|
9451
|
+
}
|
|
9452
|
+
|
|
9453
|
+
const Point = ({
|
|
9454
|
+
position,
|
|
9455
|
+
size = pointSize,
|
|
9456
|
+
materialProps,
|
|
9457
|
+
meshProps,
|
|
9458
|
+
scalePlus
|
|
9459
|
+
}) => {
|
|
9460
|
+
const {
|
|
9461
|
+
Sphere
|
|
9462
|
+
} = React__default.useContext(MeshContext);
|
|
9463
|
+
const ref = useScale(scale => {
|
|
9464
|
+
const scale_ = scalePlus ? scale + 0.01 : scale;
|
|
9465
|
+
return [size * scale_, size * scale_, size * scale_];
|
|
9466
|
+
}); // We need initial scale to remove flickering of recently created objects
|
|
9467
|
+
|
|
9468
|
+
const initialScale = React__default.useMemo(() => {
|
|
9469
|
+
const scale = getScale();
|
|
9470
|
+
return [size * scale, size * scale, size * scale]; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
9471
|
+
}, []);
|
|
9472
|
+
return /*#__PURE__*/React__default.createElement(Sphere, _extends({
|
|
9473
|
+
scale: initialScale
|
|
9474
|
+
}, materialProps, meshProps, {
|
|
9475
|
+
position: position,
|
|
9476
|
+
ref: ref,
|
|
9477
|
+
raycast: pointRaycast
|
|
9478
|
+
}));
|
|
9479
|
+
};
|
|
9480
|
+
|
|
9481
|
+
function ownKeys$9(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
9482
|
+
|
|
9483
|
+
function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$9(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
9484
|
+
/*
|
|
9485
|
+
* !polygonOffset!
|
|
9486
|
+
* For correct drawing of objects that lie in the same plane, polygonOffset is used.
|
|
9487
|
+
* https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glPolygonOffset.xhtml
|
|
9488
|
+
* offset = factor * DZ + r * units
|
|
9489
|
+
* Where DZ is a measurement of the change in depth relative to the screen area of the polygon,
|
|
9490
|
+
* and r is an implementation-specific value to create a constant depth offset.
|
|
9491
|
+
* The offset is added before the depth test is performed and before the value is written into the depth buffer.
|
|
9492
|
+
*
|
|
9493
|
+
* Factor parameter is redundant for this purpose, so only units parameter is used.
|
|
9494
|
+
*/
|
|
9495
|
+
|
|
9496
|
+
extend({
|
|
9497
|
+
InfinityPlane
|
|
9498
|
+
});
|
|
9499
|
+
const hoverZone = 0.6;
|
|
9500
|
+
|
|
9501
|
+
const CCLine = props => {
|
|
9502
|
+
const {
|
|
9503
|
+
drawingId
|
|
9237
9504
|
} = React__default.useContext(ViewContext);
|
|
9238
9505
|
const {
|
|
9239
9506
|
objId
|
|
@@ -9242,8 +9509,7 @@ const CCLine = props => {
|
|
|
9242
9509
|
const {
|
|
9243
9510
|
handlers,
|
|
9244
9511
|
color
|
|
9245
|
-
} = useHandlersAndColor(drawingId, objId);
|
|
9246
|
-
const scale = useSketchState(drawingId, pluginId, state => state.scale); // TODO: put useUserData into useHandlersAndColor ?
|
|
9512
|
+
} = useHandlersAndColor(drawingId, objId); // TODO: put useUserData into useHandlersAndColor ?
|
|
9247
9513
|
|
|
9248
9514
|
const userData = useUserData(objId);
|
|
9249
9515
|
const point1 = useDrawing(drawingId, drawing => drawing.structure.tree[line.children[0]]);
|
|
@@ -9252,34 +9518,24 @@ const CCLine = props => {
|
|
|
9252
9518
|
const end = convertToVector(point2.members.pos);
|
|
9253
9519
|
const {
|
|
9254
9520
|
renderOrder,
|
|
9255
|
-
polygonOffsetUnits
|
|
9521
|
+
polygonOffsetUnits,
|
|
9522
|
+
isHovered,
|
|
9523
|
+
isSelected
|
|
9256
9524
|
} = useGeomParams(objId);
|
|
9257
9525
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line, {
|
|
9258
9526
|
start: start,
|
|
9259
9527
|
end: end,
|
|
9260
|
-
|
|
9261
|
-
meshProps: {
|
|
9262
|
-
renderOrder
|
|
9263
|
-
},
|
|
9264
|
-
materialProps: {
|
|
9265
|
-
side: THREE.DoubleSide,
|
|
9266
|
-
polygonOffset: true,
|
|
9267
|
-
polygonOffsetUnits: polygonOffsetUnits,
|
|
9268
|
-
color
|
|
9269
|
-
}
|
|
9270
|
-
}), /*#__PURE__*/React__default.createElement(Line, {
|
|
9271
|
-
start: start,
|
|
9272
|
-
end: end,
|
|
9273
|
-
scale: scale,
|
|
9274
|
-
width: lineWidth + hoverZone,
|
|
9275
|
-
meshProps: _objectSpread$7(_objectSpread$7({
|
|
9528
|
+
scalePlus: isHovered || isSelected,
|
|
9529
|
+
meshProps: _objectSpread$9(_objectSpread$9({
|
|
9276
9530
|
renderOrder
|
|
9277
9531
|
}, handlers), {}, {
|
|
9278
9532
|
userData
|
|
9279
9533
|
}),
|
|
9280
9534
|
materialProps: {
|
|
9281
|
-
|
|
9282
|
-
|
|
9535
|
+
side: THREE.DoubleSide,
|
|
9536
|
+
polygonOffset: true,
|
|
9537
|
+
polygonOffsetUnits: polygonOffsetUnits,
|
|
9538
|
+
color: numberToHexColor(color)
|
|
9283
9539
|
}
|
|
9284
9540
|
}), /*#__PURE__*/React__default.createElement(CCPoint, {
|
|
9285
9541
|
key: point1.id,
|
|
@@ -9292,8 +9548,7 @@ const CCLine = props => {
|
|
|
9292
9548
|
|
|
9293
9549
|
const CCPoint = props => {
|
|
9294
9550
|
const {
|
|
9295
|
-
drawingId
|
|
9296
|
-
pluginId
|
|
9551
|
+
drawingId
|
|
9297
9552
|
} = React__default.useContext(ViewContext);
|
|
9298
9553
|
const {
|
|
9299
9554
|
objId
|
|
@@ -9306,40 +9561,33 @@ const CCPoint = props => {
|
|
|
9306
9561
|
const userData = useUserData(objId);
|
|
9307
9562
|
const {
|
|
9308
9563
|
renderOrder,
|
|
9309
|
-
polygonOffsetUnits
|
|
9564
|
+
polygonOffsetUnits,
|
|
9565
|
+
isHovered,
|
|
9566
|
+
isSelected
|
|
9310
9567
|
} = useGeomParams(objId);
|
|
9311
9568
|
const position = convertToVector(point.members.pos);
|
|
9312
|
-
const scale = useSketchState(drawingId, pluginId, state => state.scale);
|
|
9313
9569
|
React__default.useEffect(() => {
|
|
9314
9570
|
setSnapToPoint(objId, new THREE.Vector3(position.x, position.y, position.z));
|
|
9315
9571
|
return () => deleteSnapToPoint(objId);
|
|
9316
9572
|
}, [objId, position.x, position.y, position.z]);
|
|
9317
|
-
return /*#__PURE__*/React__default.createElement(
|
|
9318
|
-
position: position,
|
|
9319
|
-
|
|
9320
|
-
|
|
9573
|
+
return /*#__PURE__*/React__default.createElement(Point, {
|
|
9574
|
+
position: position // It's not possible to change polygonOffset in drei/Merged component,
|
|
9575
|
+
// so we have to increase size of hovered or selected point to make the point not occluded buy other ones
|
|
9576
|
+
,
|
|
9577
|
+
scalePlus: isHovered || isSelected,
|
|
9578
|
+
meshProps: _objectSpread$9(_objectSpread$9({
|
|
9321
9579
|
renderOrder
|
|
9322
|
-
},
|
|
9580
|
+
}, handlers), {}, {
|
|
9581
|
+
userData
|
|
9582
|
+
}),
|
|
9323
9583
|
materialProps: {
|
|
9324
9584
|
side: THREE.DoubleSide,
|
|
9325
9585
|
polygonOffset: true,
|
|
9326
9586
|
polygonOffsetUnits: polygonOffsetUnits,
|
|
9327
9587
|
// Put hovered point upper then not hovered (check comment in the beginnig of this file about polygonOffset).
|
|
9328
|
-
color: color
|
|
9588
|
+
color: numberToHexColor(color)
|
|
9329
9589
|
}
|
|
9330
|
-
})
|
|
9331
|
-
position: position,
|
|
9332
|
-
scale: scale,
|
|
9333
|
-
size: pointSize + hoverZone,
|
|
9334
|
-
meshProps: _objectSpread$7({
|
|
9335
|
-
userData,
|
|
9336
|
-
renderOrder
|
|
9337
|
-
}, handlers),
|
|
9338
|
-
materialProps: {
|
|
9339
|
-
transparent: true,
|
|
9340
|
-
opacity: 0
|
|
9341
|
-
}
|
|
9342
|
-
}));
|
|
9590
|
+
});
|
|
9343
9591
|
};
|
|
9344
9592
|
|
|
9345
9593
|
const CCArc = props => {
|
|
@@ -9364,7 +9612,6 @@ const CCArc = props => {
|
|
|
9364
9612
|
const point = [p1, p2, p3].find(p => p.name === pointName);
|
|
9365
9613
|
return convertToVector(point.members.pos);
|
|
9366
9614
|
}, [p1, p2, p3]);
|
|
9367
|
-
const scale = useSketchState(drawingId, pluginId, state => state.scale);
|
|
9368
9615
|
const startPoint = React__default.useMemo(() => getArcPointPos('startPoint'), [getArcPointPos]);
|
|
9369
9616
|
const endPoint = React__default.useMemo(() => getArcPointPos('endPoint'), [getArcPointPos]);
|
|
9370
9617
|
const centerPoint = React__default.useMemo(() => getArcPointPos('center'), [getArcPointPos]);
|
|
@@ -9373,36 +9620,23 @@ const CCArc = props => {
|
|
|
9373
9620
|
renderOrder,
|
|
9374
9621
|
polygonOffsetUnits
|
|
9375
9622
|
} = useGeomParams(objId);
|
|
9623
|
+
const scale = useSketchState(drawingId, pluginId, state => state.scale);
|
|
9376
9624
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Arc, {
|
|
9377
9625
|
start: startPoint,
|
|
9378
9626
|
end: endPoint,
|
|
9379
9627
|
center: centerPoint,
|
|
9380
|
-
scale: scale,
|
|
9381
9628
|
clockwise: clockwise,
|
|
9382
|
-
meshProps: {
|
|
9383
|
-
renderOrder
|
|
9384
|
-
|
|
9629
|
+
meshProps: _objectSpread$9({
|
|
9630
|
+
renderOrder,
|
|
9631
|
+
userData
|
|
9632
|
+
}, handlers),
|
|
9385
9633
|
materialProps: {
|
|
9386
9634
|
side: THREE.DoubleSide,
|
|
9387
9635
|
polygonOffset: true,
|
|
9388
9636
|
polygonOffsetUnits: polygonOffsetUnits,
|
|
9389
9637
|
color: color
|
|
9390
|
-
}
|
|
9391
|
-
|
|
9392
|
-
start: startPoint,
|
|
9393
|
-
end: endPoint,
|
|
9394
|
-
center: centerPoint,
|
|
9395
|
-
scale: scale,
|
|
9396
|
-
clockwise: clockwise,
|
|
9397
|
-
width: arcWidth + hoverZone,
|
|
9398
|
-
meshProps: _objectSpread$7({
|
|
9399
|
-
renderOrder,
|
|
9400
|
-
userData
|
|
9401
|
-
}, handlers),
|
|
9402
|
-
materialProps: {
|
|
9403
|
-
transparent: true,
|
|
9404
|
-
opacity: 0
|
|
9405
|
-
}
|
|
9638
|
+
},
|
|
9639
|
+
scale: scale
|
|
9406
9640
|
}), arc.children.map(childId => /*#__PURE__*/React__default.createElement(CCPoint, {
|
|
9407
9641
|
key: childId,
|
|
9408
9642
|
objId: childId
|
|
@@ -9449,7 +9683,7 @@ const CCCircle = props => {
|
|
|
9449
9683
|
radius: radius,
|
|
9450
9684
|
scale: scale,
|
|
9451
9685
|
width: arcWidth + hoverZone,
|
|
9452
|
-
meshProps: _objectSpread$
|
|
9686
|
+
meshProps: _objectSpread$9(_objectSpread$9({}, handlers), {}, {
|
|
9453
9687
|
renderOrder,
|
|
9454
9688
|
userData
|
|
9455
9689
|
}),
|
|
@@ -9528,7 +9762,7 @@ const SketchPlane = ({
|
|
|
9528
9762
|
objId
|
|
9529
9763
|
}
|
|
9530
9764
|
})), /*#__PURE__*/React__default.createElement("gridHelper", {
|
|
9531
|
-
args: [step * linesCount, linesCount, 0x000000,
|
|
9765
|
+
args: [step * linesCount, linesCount, 0x000000, 0x888888],
|
|
9532
9766
|
quaternion: planeQuaternion,
|
|
9533
9767
|
onUpdate: update
|
|
9534
9768
|
}));
|
|
@@ -9603,10 +9837,11 @@ const Sketch = ({
|
|
|
9603
9837
|
drawnObjectsRef
|
|
9604
9838
|
});
|
|
9605
9839
|
}, [set]);
|
|
9606
|
-
return /*#__PURE__*/React__default.createElement(
|
|
9840
|
+
return /*#__PURE__*/React__default.createElement(MergedWrapper, null, isActive && /*#__PURE__*/React__default.createElement(SketchPlane, {
|
|
9607
9841
|
objId: objId
|
|
9608
9842
|
}), drawnObjects && /*#__PURE__*/React__default.createElement("group", {
|
|
9609
|
-
ref: drawnObjectsRef
|
|
9843
|
+
ref: drawnObjectsRef,
|
|
9844
|
+
name: "sketch"
|
|
9610
9845
|
}, drawnObjects, isActive && containerIds && containerIds.length === 0 && /*#__PURE__*/React__default.createElement(Constraints$2, {
|
|
9611
9846
|
sketchId: objId
|
|
9612
9847
|
})));
|
|
@@ -9641,10 +9876,8 @@ const TmpPoint = props => {
|
|
|
9641
9876
|
} = React__default.useContext(ViewContext);
|
|
9642
9877
|
const point = useSketchState(drawingId, pluginId, state => state.tmpObjects[props.objId]);
|
|
9643
9878
|
const color = getColor$1(point.class);
|
|
9644
|
-
|
|
9645
|
-
return /*#__PURE__*/React__default.createElement(Point, {
|
|
9879
|
+
return /*#__PURE__*/React__default.createElement(Point$1, {
|
|
9646
9880
|
position: point.position,
|
|
9647
|
-
scale: scale,
|
|
9648
9881
|
materialProps: {
|
|
9649
9882
|
side: THREE.DoubleSide,
|
|
9650
9883
|
polygonOffset: true,
|
|
@@ -9661,13 +9894,11 @@ const TmpLine = props => {
|
|
|
9661
9894
|
} = React__default.useContext(ViewContext);
|
|
9662
9895
|
const line = useSketchState(drawingId, pluginId, state => state.tmpObjects[props.objId]);
|
|
9663
9896
|
const color = getColor$1(line.class);
|
|
9664
|
-
const scale = useSketchState(drawingId, pluginId, state => state.scale);
|
|
9665
9897
|
const start = useSketchState(drawingId, pluginId, state => state.tmpObjects[line.startPId]).position;
|
|
9666
9898
|
const end = useSketchState(drawingId, pluginId, state => state.tmpObjects[line.endPId]).position;
|
|
9667
|
-
return /*#__PURE__*/React__default.createElement(Line, {
|
|
9899
|
+
return /*#__PURE__*/React__default.createElement(Line$1, {
|
|
9668
9900
|
start: start,
|
|
9669
9901
|
end: end,
|
|
9670
|
-
scale: scale,
|
|
9671
9902
|
materialProps: {
|
|
9672
9903
|
color
|
|
9673
9904
|
}
|
|
@@ -9688,10 +9919,9 @@ const TmpArc = props => {
|
|
|
9688
9919
|
const end = useSketchState(drawingId, pluginId, state => state.tmpObjects[arc.endPId]).position;
|
|
9689
9920
|
|
|
9690
9921
|
if (arc.drawAsLine) {
|
|
9691
|
-
return /*#__PURE__*/React__default.createElement(Line, {
|
|
9922
|
+
return /*#__PURE__*/React__default.createElement(Line$1, {
|
|
9692
9923
|
start: start,
|
|
9693
9924
|
end: end,
|
|
9694
|
-
scale: scale,
|
|
9695
9925
|
materialProps: {
|
|
9696
9926
|
color: getColor$1(CCClasses.CCLine)
|
|
9697
9927
|
}
|
|
@@ -9860,6 +10090,7 @@ const RubberBandRectangle = () => {
|
|
|
9860
10090
|
function useSetScale(drawingId, pluginId) {
|
|
9861
10091
|
useFrame(args => {
|
|
9862
10092
|
const plugin = getPlugin(drawingId, pluginId);
|
|
10093
|
+
if (!plugin) return;
|
|
9863
10094
|
const state = plugin.state;
|
|
9864
10095
|
const sketchObj = getDrawing(drawingId).structure.tree[plugin.objectId];
|
|
9865
10096
|
const sketchMatrix = MathUtils.convertToMatrix4(sketchObj.coordinateSystem);
|
|
@@ -9873,7 +10104,9 @@ function useSetScale(drawingId, pluginId) {
|
|
|
9873
10104
|
plugin.set({
|
|
9874
10105
|
step: newStep,
|
|
9875
10106
|
scale: newScale
|
|
9876
|
-
});
|
|
10107
|
+
}); // Old way to set scale, needed for circles. (Should be remove when circles will be implemented via Merged component)
|
|
10108
|
+
|
|
10109
|
+
setScale(newScale); // More efficient way to set scale, used buy lines and points.
|
|
9877
10110
|
}
|
|
9878
10111
|
});
|
|
9879
10112
|
} // Turn off all handlers and hide sketch selection if global selection is active
|
|
@@ -9888,7 +10121,7 @@ function useHandleGSelection(drawingId, pluginId, activeHandler) {
|
|
|
9888
10121
|
const prevSelected = React__default.useRef([]);
|
|
9889
10122
|
React__default.useEffect(() => {
|
|
9890
10123
|
// Disable all handlers if global selection is active
|
|
9891
|
-
if (activeSelection && !prevHandler.current) {
|
|
10124
|
+
if (activeSelection && activeSelection !== 'UseRef' && !prevHandler.current) {
|
|
9892
10125
|
prevHandler.current = activeHandler;
|
|
9893
10126
|
prevSelected.current = getSketchState(drawingId, pluginId).selected;
|
|
9894
10127
|
set({
|
|
@@ -9905,6 +10138,22 @@ function useHandleGSelection(drawingId, pluginId, activeHandler) {
|
|
|
9905
10138
|
}, [drawingId, pluginId, activeSelection, activeHandler, set]);
|
|
9906
10139
|
}
|
|
9907
10140
|
|
|
10141
|
+
function useUseRef(drawingId, sketchId) {
|
|
10142
|
+
const itemsUseRef = useDrawing(drawingId, d => {
|
|
10143
|
+
var _d$selection$refs$Use;
|
|
10144
|
+
|
|
10145
|
+
return (_d$selection$refs$Use = d.selection.refs['UseRef']) == null ? void 0 : _d$selection$refs$Use.items;
|
|
10146
|
+
});
|
|
10147
|
+
React__default.useEffect(() => {
|
|
10148
|
+
if (itemsUseRef && itemsUseRef.length > 0) {
|
|
10149
|
+
const selApi = getDrawing(drawingId).api.selection;
|
|
10150
|
+
selApi.setItems('UseRef', []);
|
|
10151
|
+
const ids = itemsUseRef.map(item => item.data.graphicId);
|
|
10152
|
+
ccAPI.sketcher.createReferenceGeometry(drawingId, sketchId, ids);
|
|
10153
|
+
}
|
|
10154
|
+
}, [drawingId, sketchId, itemsUseRef]);
|
|
10155
|
+
}
|
|
10156
|
+
|
|
9908
10157
|
const getSketchBounds = boundsMember => {
|
|
9909
10158
|
const [min, max] = boundsMember.members.map(memb => convertToVector(memb));
|
|
9910
10159
|
const box = new THREE.Box3(min, max);
|
|
@@ -9997,10 +10246,13 @@ const DrawingMode = ({
|
|
|
9997
10246
|
set({
|
|
9998
10247
|
activeHandler: HandlersList.DRAG
|
|
9999
10248
|
});
|
|
10000
|
-
return () =>
|
|
10001
|
-
|
|
10002
|
-
|
|
10003
|
-
|
|
10249
|
+
return () => {
|
|
10250
|
+
const plugin = getPlugin(drawingId, pluginId);
|
|
10251
|
+
plugin && plugin.set({
|
|
10252
|
+
activeHandler: undefined
|
|
10253
|
+
});
|
|
10254
|
+
};
|
|
10255
|
+
}, [drawingId, pluginId, set]);
|
|
10004
10256
|
useSetScale(drawingId, pluginId);
|
|
10005
10257
|
const activeHandler = useSketchState(drawingId, pluginId, state => state.activeHandler);
|
|
10006
10258
|
const currentHandler = React__default.useRef();
|
|
@@ -10021,6 +10273,7 @@ const DrawingMode = ({
|
|
|
10021
10273
|
currentHandler.current = activeHandler;
|
|
10022
10274
|
}, [drawingId, pluginId, activeHandler]);
|
|
10023
10275
|
useHandleGSelection(drawingId, pluginId, activeHandler);
|
|
10276
|
+
useUseRef(drawingId, sketchId);
|
|
10024
10277
|
const dimId = useDimensionSetId(drawingId, sketchId);
|
|
10025
10278
|
const [, dimView] = useEmbeddedPlugin(Plugin, drawingId, pluginId, dimId, setDimId); // SketcherDimensionSet has it's own cSys that will be applied in Plugin.tsx, so apply inverse Sketch cSys.
|
|
10026
10279
|
// TODO: remove it when parent plugin matrix won't be applied for embedded one.
|
|
@@ -10067,7 +10320,11 @@ const ViewImpl$d = ({
|
|
|
10067
10320
|
drawingId,
|
|
10068
10321
|
pluginId,
|
|
10069
10322
|
isActive
|
|
10070
|
-
}), [drawingId, pluginId, isActive]);
|
|
10323
|
+
}), [drawingId, pluginId, isActive]); // Reset scale on unmount
|
|
10324
|
+
|
|
10325
|
+
React__default.useEffect(() => {
|
|
10326
|
+
return () => setScale(1);
|
|
10327
|
+
}, []);
|
|
10071
10328
|
|
|
10072
10329
|
if (planeSelection) {
|
|
10073
10330
|
return null;
|
|
@@ -10097,40 +10354,6 @@ const View$d = ({
|
|
|
10097
10354
|
}));
|
|
10098
10355
|
};
|
|
10099
10356
|
|
|
10100
|
-
const UseRef = () => {
|
|
10101
|
-
const {
|
|
10102
|
-
Group,
|
|
10103
|
-
Label,
|
|
10104
|
-
Selection,
|
|
10105
|
-
Button
|
|
10106
|
-
} = useBuerli(buerli => buerli.options.elements);
|
|
10107
|
-
const {
|
|
10108
|
-
drawingId,
|
|
10109
|
-
pluginId
|
|
10110
|
-
} = React__default.useContext(RootContext);
|
|
10111
|
-
const sketchId = usePlugin(drawingId, pluginId, plugin => plugin.objectId);
|
|
10112
|
-
const [selId, setSelId] = React__default.useState();
|
|
10113
|
-
const createUseRef = React__default.useCallback(() => {
|
|
10114
|
-
if (!selId) return;
|
|
10115
|
-
const items = getDrawing(drawingId).selection.refs[selId].items;
|
|
10116
|
-
const selApi = getDrawing(drawingId).api.selection;
|
|
10117
|
-
selApi.setItems(selId, []);
|
|
10118
|
-
selApi.activateSelector(null);
|
|
10119
|
-
if (items.length === 0) return;
|
|
10120
|
-
const ids = items.map(item => item.data.graphicId);
|
|
10121
|
-
ccAPI.sketcher.createReferenceGeometry(drawingId, sketchId, ids);
|
|
10122
|
-
}, [selId, drawingId, sketchId]);
|
|
10123
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Group, null, /*#__PURE__*/React__default.createElement(Label, null, "Create UseRef"), /*#__PURE__*/React__default.createElement(Selection, {
|
|
10124
|
-
key: "useRefSelection",
|
|
10125
|
-
drawingId: drawingId,
|
|
10126
|
-
onCreated: setSelId,
|
|
10127
|
-
filter: (scope, data) => lineSegmentsFilter(scope, data) || loopFilter(scope, data) || pointFilter(scope, data),
|
|
10128
|
-
caption: "Select geometry..."
|
|
10129
|
-
})), /*#__PURE__*/React__default.createElement(Button, {
|
|
10130
|
-
onClick: createUseRef
|
|
10131
|
-
}, "Create"));
|
|
10132
|
-
};
|
|
10133
|
-
|
|
10134
10357
|
const constraintClasses = {
|
|
10135
10358
|
fixation: CCClasses.CC2DFixationConstraint,
|
|
10136
10359
|
horizontality: CCClasses.CC2DHorizontalConstraint,
|
|
@@ -10156,8 +10379,7 @@ const constraintClasses = {
|
|
|
10156
10379
|
};
|
|
10157
10380
|
const Constraints$1 = () => {
|
|
10158
10381
|
const {
|
|
10159
|
-
Button
|
|
10160
|
-
ButtonGroup
|
|
10382
|
+
Button
|
|
10161
10383
|
} = useBuerli(buerli => buerli.options.elements);
|
|
10162
10384
|
const {
|
|
10163
10385
|
drawingId,
|
|
@@ -10194,7 +10416,12 @@ const Constraints$1 = () => {
|
|
|
10194
10416
|
}
|
|
10195
10417
|
}
|
|
10196
10418
|
}, [drawingId, set, selected, sketchId]);
|
|
10197
|
-
return allowedConstraints && allowedConstraints.length > 0 ? /*#__PURE__*/React__default.createElement(
|
|
10419
|
+
return allowedConstraints && allowedConstraints.length > 0 ? /*#__PURE__*/React__default.createElement(AntdButton.Group, {
|
|
10420
|
+
style: {
|
|
10421
|
+
flexWrap: 'wrap',
|
|
10422
|
+
height: 'unset !important'
|
|
10423
|
+
}
|
|
10424
|
+
}, allowedConstraints.map(constraintName => /*#__PURE__*/React__default.createElement(Button, {
|
|
10198
10425
|
key: constraintName,
|
|
10199
10426
|
titleText: constraintName,
|
|
10200
10427
|
size: 'small',
|
|
@@ -10231,7 +10458,8 @@ const HButton = _ref => {
|
|
|
10231
10458
|
} = React__default.useContext(RootContext);
|
|
10232
10459
|
const set = getPlugin(drawingId, pluginId).set;
|
|
10233
10460
|
const activeHandler = useSketchState(drawingId, pluginId, state => state.activeHandler);
|
|
10234
|
-
const
|
|
10461
|
+
const activeSelector = useDrawing(drawingId, drawing => drawing.selection.active);
|
|
10462
|
+
const disabled = Boolean(activeSelector) && activeSelector !== 'UseRef';
|
|
10235
10463
|
const isActive = activeHandler === handlerName;
|
|
10236
10464
|
return /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
10237
10465
|
style: {
|
|
@@ -10244,7 +10472,7 @@ const HButton = _ref => {
|
|
|
10244
10472
|
key: handlerName,
|
|
10245
10473
|
value: handlerName,
|
|
10246
10474
|
checked: isActive,
|
|
10247
|
-
disabled:
|
|
10475
|
+
disabled: disabled,
|
|
10248
10476
|
onClick: () => {
|
|
10249
10477
|
if (isActive) {
|
|
10250
10478
|
set({
|
|
@@ -10282,6 +10510,7 @@ const SubGroup$1 = ({
|
|
|
10282
10510
|
} = useBuerli(buerli => buerli.options.elements);
|
|
10283
10511
|
const [lastHandler, setLastHandler] = React__default.useState(handlers[0]);
|
|
10284
10512
|
const menu = /*#__PURE__*/React__default.createElement(Menu, null, /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
10513
|
+
key: "menuItem",
|
|
10285
10514
|
style: {
|
|
10286
10515
|
backgroundColor: 'initial',
|
|
10287
10516
|
padding: '0px 5px',
|
|
@@ -10321,6 +10550,8 @@ const Handlers = () => {
|
|
|
10321
10550
|
handlerName: HandlersList.FILLET
|
|
10322
10551
|
}), /*#__PURE__*/React__default.createElement(HButton, {
|
|
10323
10552
|
handlerName: HandlersList.TRIM
|
|
10553
|
+
}), /*#__PURE__*/React__default.createElement(HButton, {
|
|
10554
|
+
handlerName: HandlersList.USEREF
|
|
10324
10555
|
}));
|
|
10325
10556
|
};
|
|
10326
10557
|
|
|
@@ -10513,9 +10744,372 @@ const useRollbackBar = (drawingId, partId) => {
|
|
|
10513
10744
|
}
|
|
10514
10745
|
|
|
10515
10746
|
return {
|
|
10516
|
-
rollbackBarIndex: -1
|
|
10747
|
+
rollbackBarIndex: -1
|
|
10748
|
+
};
|
|
10749
|
+
}, [drawingId, opSeqId, opSeqChildren]);
|
|
10750
|
+
};
|
|
10751
|
+
|
|
10752
|
+
const _excluded$3 = ["items", "children"];
|
|
10753
|
+
const Menu = _ref => {
|
|
10754
|
+
let {
|
|
10755
|
+
items,
|
|
10756
|
+
children
|
|
10757
|
+
} = _ref,
|
|
10758
|
+
props = _objectWithoutProperties(_ref, _excluded$3);
|
|
10759
|
+
|
|
10760
|
+
const onItemClick = React__default.useCallback(e => {
|
|
10761
|
+
e.domEvent.stopPropagation();
|
|
10762
|
+
let item = items[e.keyPath.pop()];
|
|
10763
|
+
|
|
10764
|
+
if (item.children) {
|
|
10765
|
+
item = item.children[e.keyPath.pop()];
|
|
10766
|
+
}
|
|
10767
|
+
item.callback(e.domEvent);
|
|
10768
|
+
}, [items]);
|
|
10769
|
+
const menu = /*#__PURE__*/React__default.createElement(Menu$1, {
|
|
10770
|
+
onClick: onItemClick
|
|
10771
|
+
}, Object.keys(items).map(key => {
|
|
10772
|
+
const item = items[key];
|
|
10773
|
+
|
|
10774
|
+
if (item.children) {
|
|
10775
|
+
const smItem = item;
|
|
10776
|
+
return /*#__PURE__*/React__default.createElement(Menu$1.SubMenu, {
|
|
10777
|
+
title: smItem.caption,
|
|
10778
|
+
key: key,
|
|
10779
|
+
icon: smItem.icon
|
|
10780
|
+
}, Object.keys(smItem.children).map(chKey => {
|
|
10781
|
+
const chItem = smItem.children[chKey];
|
|
10782
|
+
return /*#__PURE__*/React__default.createElement(Menu$1.Item, {
|
|
10783
|
+
key: chKey,
|
|
10784
|
+
icon: chItem.icon
|
|
10785
|
+
}, chItem.caption);
|
|
10786
|
+
}));
|
|
10787
|
+
} else {
|
|
10788
|
+
const item_ = item;
|
|
10789
|
+
return /*#__PURE__*/React__default.createElement(Menu$1.Item, {
|
|
10790
|
+
key: key,
|
|
10791
|
+
icon: item_.icon
|
|
10792
|
+
}, item_.caption);
|
|
10793
|
+
}
|
|
10794
|
+
}));
|
|
10795
|
+
return /*#__PURE__*/React__default.createElement(Dropdown, _extends({
|
|
10796
|
+
overlay: menu,
|
|
10797
|
+
placement: "bottomCenter"
|
|
10798
|
+
}, props), children ? children : /*#__PURE__*/React__default.createElement("div", {
|
|
10799
|
+
style: {
|
|
10800
|
+
width: '24px',
|
|
10801
|
+
cursor: 'pointer',
|
|
10802
|
+
textAlign: 'center'
|
|
10803
|
+
},
|
|
10804
|
+
onClick: e => e.stopPropagation()
|
|
10805
|
+
}, "..."));
|
|
10806
|
+
};
|
|
10807
|
+
|
|
10808
|
+
const NameEdit = ({
|
|
10809
|
+
drawingId,
|
|
10810
|
+
objId,
|
|
10811
|
+
setEditName,
|
|
10812
|
+
name
|
|
10813
|
+
}) => {
|
|
10814
|
+
const ref = React__default.useRef(null);
|
|
10815
|
+
const onEnter = React__default.useCallback(async e => {
|
|
10816
|
+
if (e.target.value !== '') {
|
|
10817
|
+
await ccAPI.common.setObjectName(drawingId, objId, e.target.value);
|
|
10818
|
+
}
|
|
10819
|
+
|
|
10820
|
+
setEditName(false);
|
|
10821
|
+
}, [drawingId, objId, setEditName]);
|
|
10822
|
+
const onKeyPress = React__default.useCallback(e => {
|
|
10823
|
+
if (e.key !== 'Escape') return;
|
|
10824
|
+
setEditName(false);
|
|
10825
|
+
}, [setEditName]);
|
|
10826
|
+
React__default.useEffect(() => {
|
|
10827
|
+
var _ref$current;
|
|
10828
|
+
|
|
10829
|
+
(_ref$current = ref.current) == null ? void 0 : _ref$current.focus({
|
|
10830
|
+
cursor: 'all'
|
|
10831
|
+
});
|
|
10832
|
+
}, []);
|
|
10833
|
+
return /*#__PURE__*/React__default.createElement(Input, {
|
|
10834
|
+
ref: ref,
|
|
10835
|
+
onPressEnter: onEnter,
|
|
10836
|
+
defaultValue: name,
|
|
10837
|
+
size: "small",
|
|
10838
|
+
onKeyDown: onKeyPress,
|
|
10839
|
+
onBlur: () => setEditName(false)
|
|
10840
|
+
});
|
|
10841
|
+
};
|
|
10842
|
+
|
|
10843
|
+
const FlexRow = styled.div`
|
|
10844
|
+
display: flex;
|
|
10845
|
+
flex-direction: row;
|
|
10846
|
+
`;
|
|
10847
|
+
const FlexReverseRow = styled.div`
|
|
10848
|
+
display: flex;
|
|
10849
|
+
flex-direction: row-reverse;
|
|
10850
|
+
`;
|
|
10851
|
+
const Link = styled.a`
|
|
10852
|
+
color: #4f4f4f;
|
|
10853
|
+
&:hover {
|
|
10854
|
+
text-decoration: underline;
|
|
10855
|
+
text-decoration-color: #4f4f4f;
|
|
10856
|
+
color: #4f4f4f;
|
|
10857
|
+
}
|
|
10858
|
+
`;
|
|
10859
|
+
const HoveredDiv = styled.div`
|
|
10860
|
+
width: 100%;
|
|
10861
|
+
display: flex;
|
|
10862
|
+
justify-content: space-between;
|
|
10863
|
+
cursor: default;
|
|
10864
|
+
background-color: ${props => props.hovered ? '#f0f0f0' : undefined};
|
|
10865
|
+
border-bottom: ${props => props.bordered ? '1px solid #f0f0f0' : undefined};
|
|
10866
|
+
padding: ${props => props.bordered ? '4px 10px' : undefined};
|
|
10867
|
+
&:hover {
|
|
10868
|
+
background-color: #f0f0f0;
|
|
10869
|
+
}
|
|
10870
|
+
`;
|
|
10871
|
+
|
|
10872
|
+
const {
|
|
10873
|
+
Text: Text$3
|
|
10874
|
+
} = Typography;
|
|
10875
|
+
const EntityName = ({
|
|
10876
|
+
name,
|
|
10877
|
+
disabled,
|
|
10878
|
+
strong,
|
|
10879
|
+
onClick,
|
|
10880
|
+
onMouseEnter,
|
|
10881
|
+
onMouseLeave
|
|
10882
|
+
}) => {
|
|
10883
|
+
return /*#__PURE__*/React__default.createElement(Link, {
|
|
10884
|
+
onClick: onClick,
|
|
10885
|
+
onMouseEnter: onMouseEnter,
|
|
10886
|
+
onMouseLeave: onMouseLeave
|
|
10887
|
+
}, /*#__PURE__*/React__default.createElement(Text$3, {
|
|
10888
|
+
disabled: disabled,
|
|
10889
|
+
strong: strong
|
|
10890
|
+
}, name));
|
|
10891
|
+
};
|
|
10892
|
+
|
|
10893
|
+
const Indent = () => {
|
|
10894
|
+
return /*#__PURE__*/React__default.createElement("span", {
|
|
10895
|
+
className: "ant-tree-indent"
|
|
10896
|
+
}, /*#__PURE__*/React__default.createElement("span", {
|
|
10897
|
+
className: "ant-tree-indent-unit"
|
|
10898
|
+
}));
|
|
10899
|
+
};
|
|
10900
|
+
const Indents = ({
|
|
10901
|
+
level
|
|
10902
|
+
}) => {
|
|
10903
|
+
const arr = Array.from(Array(level).keys());
|
|
10904
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, arr.map(i => /*#__PURE__*/React__default.createElement(Indent, {
|
|
10905
|
+
key: i
|
|
10906
|
+
})));
|
|
10907
|
+
};
|
|
10908
|
+
const CollapseButton = ({
|
|
10909
|
+
collapsed,
|
|
10910
|
+
onClick
|
|
10911
|
+
}) => {
|
|
10912
|
+
return /*#__PURE__*/React__default.createElement("span", {
|
|
10913
|
+
className: "ant-tree-switcher",
|
|
10914
|
+
onClick: onClick
|
|
10915
|
+
}, /*#__PURE__*/React__default.createElement("span", {
|
|
10916
|
+
role: "img",
|
|
10917
|
+
"aria-label": "caret-down",
|
|
10918
|
+
className: "anticon anticon-caret-down ant-tree-switcher-icon"
|
|
10919
|
+
}, collapsed ? /*#__PURE__*/React__default.createElement(CaretRightOutlined, null) : /*#__PURE__*/React__default.createElement(CaretDownOutlined, null)));
|
|
10920
|
+
};
|
|
10921
|
+
|
|
10922
|
+
function useMenuItems$4(drawingId, pluginId, objectId, setRename) {
|
|
10923
|
+
const {
|
|
10924
|
+
set,
|
|
10925
|
+
objectId: sketchId
|
|
10926
|
+
} = getPlugin(drawingId, pluginId);
|
|
10927
|
+
return React__default.useMemo(() => {
|
|
10928
|
+
return {
|
|
10929
|
+
rename: {
|
|
10930
|
+
caption: 'rename',
|
|
10931
|
+
icon: /*#__PURE__*/React__default.createElement(EditOutlined, null),
|
|
10932
|
+
callback: () => {
|
|
10933
|
+
setRename(true);
|
|
10934
|
+
}
|
|
10935
|
+
},
|
|
10936
|
+
delete: {
|
|
10937
|
+
caption: 'delete',
|
|
10938
|
+
icon: /*#__PURE__*/React__default.createElement(DeleteOutlined, null),
|
|
10939
|
+
callback: () => {
|
|
10940
|
+
ccAPI.sketcher.removeObjects(drawingId, sketchId, [objectId]);
|
|
10941
|
+
const tree = getDrawing(drawingId).structure.tree;
|
|
10942
|
+
set(state_ => {
|
|
10943
|
+
const selected = state_.selected.filter(id => id !== objectId && tree[id].parent !== objectId);
|
|
10944
|
+
return {
|
|
10945
|
+
selected
|
|
10946
|
+
};
|
|
10947
|
+
});
|
|
10948
|
+
}
|
|
10949
|
+
}
|
|
10950
|
+
};
|
|
10951
|
+
}, [drawingId, sketchId, objectId, set, setRename]);
|
|
10952
|
+
}
|
|
10953
|
+
|
|
10954
|
+
const {
|
|
10955
|
+
Text: Text$2
|
|
10956
|
+
} = Typography;
|
|
10957
|
+
|
|
10958
|
+
const ObjTitle = ({
|
|
10959
|
+
objId,
|
|
10960
|
+
withMenu
|
|
10961
|
+
}) => {
|
|
10962
|
+
const {
|
|
10963
|
+
drawingId,
|
|
10964
|
+
pluginId
|
|
10965
|
+
} = React__default.useContext(RootContext);
|
|
10966
|
+
const name = useDrawing(drawingId, d => d.structure.tree[objId].name) || '';
|
|
10967
|
+
const objClass = useDrawing(drawingId, d => d.structure.tree[objId].class);
|
|
10968
|
+
const isHovered = useSketchState(drawingId, pluginId, s => s.hovered === objId);
|
|
10969
|
+
const isSelected = useSketchState(drawingId, pluginId, s => s.selected.indexOf(objId) !== -1);
|
|
10970
|
+
const color = isSelected ? '#ffa500' : isHovered ? '#28d79f' : undefined; // TODO: Rename resources so that they have more generic names, i.e. 'CC_Point' instead of 'drawPoint', etc
|
|
10971
|
+
|
|
10972
|
+
const imgName = React__default.useMemo(() => {
|
|
10973
|
+
switch (objClass) {
|
|
10974
|
+
case CCClasses.CCPoint:
|
|
10975
|
+
return HandlersList.DRAWPOINT;
|
|
10976
|
+
|
|
10977
|
+
case CCClasses.CCLine:
|
|
10978
|
+
return HandlersList.DRAWLINE;
|
|
10979
|
+
|
|
10980
|
+
case CCClasses.CCArc:
|
|
10981
|
+
return HandlersList.DRAWARCCENTER;
|
|
10982
|
+
|
|
10983
|
+
case CCClasses.CCCircle:
|
|
10984
|
+
return HandlersList.DRAWCIRCLE;
|
|
10985
|
+
|
|
10986
|
+
default:
|
|
10987
|
+
return objClass;
|
|
10988
|
+
}
|
|
10989
|
+
}, [objClass]);
|
|
10990
|
+
const [rename, setRename] = React__default.useState(false);
|
|
10991
|
+
const [isMenuHovered, setIsMenuHovered] = React__default.useState(false);
|
|
10992
|
+
const menuItems = useMenuItems$4(drawingId, pluginId, objId, setRename);
|
|
10993
|
+
const activeHandler = useSketchState(drawingId, pluginId, state => state.activeHandler);
|
|
10994
|
+
const globalSelection = useTreeObjSelection(drawingId, objId);
|
|
10995
|
+
const onClickSel = globalSelection.handlers.onClick; // TODO: Implement global selection in onClick? Not sure if needed...
|
|
10996
|
+
|
|
10997
|
+
const onClick = React__default.useCallback(() => {
|
|
10998
|
+
if (activeHandler === HandlersList.DRAG) {
|
|
10999
|
+
select(drawingId, pluginId, objId);
|
|
11000
|
+
} else if (!activeHandler) {
|
|
11001
|
+
// if no handler is active, some selector should be active
|
|
11002
|
+
onClickSel && onClickSel();
|
|
11003
|
+
}
|
|
11004
|
+
}, [drawingId, pluginId, objId, activeHandler, onClickSel]);
|
|
11005
|
+
const onMouseEnter = React__default.useCallback(() => {
|
|
11006
|
+
hover(drawingId, pluginId, objId);
|
|
11007
|
+
}, [drawingId, pluginId, objId]);
|
|
11008
|
+
const onMouseLeave = React__default.useCallback(() => {
|
|
11009
|
+
unhover(drawingId, pluginId, objId);
|
|
11010
|
+
}, [drawingId, pluginId, objId]);
|
|
11011
|
+
const nameComponent = rename ? /*#__PURE__*/React__default.createElement(NameEdit, {
|
|
11012
|
+
drawingId: drawingId,
|
|
11013
|
+
objId: objId,
|
|
11014
|
+
setEditName: setRename,
|
|
11015
|
+
name: name
|
|
11016
|
+
}) : /*#__PURE__*/React__default.createElement(EntityName, {
|
|
11017
|
+
name: name,
|
|
11018
|
+
onClick: onClick,
|
|
11019
|
+
onMouseEnter: onMouseEnter,
|
|
11020
|
+
onMouseLeave: onMouseLeave
|
|
11021
|
+
});
|
|
11022
|
+
return /*#__PURE__*/React__default.createElement(HoveredDiv, {
|
|
11023
|
+
hovered: isMenuHovered,
|
|
11024
|
+
style: {
|
|
11025
|
+
backgroundColor: color
|
|
11026
|
+
}
|
|
11027
|
+
}, /*#__PURE__*/React__default.createElement(Space, null, imgName && resources[imgName] && /*#__PURE__*/React__default.createElement("img", {
|
|
11028
|
+
style: {
|
|
11029
|
+
width: 18,
|
|
11030
|
+
height: 18,
|
|
11031
|
+
verticalAlign: '-4px'
|
|
11032
|
+
},
|
|
11033
|
+
src: resources[imgName]
|
|
11034
|
+
}), nameComponent), withMenu && /*#__PURE__*/React__default.createElement(Menu, {
|
|
11035
|
+
items: menuItems,
|
|
11036
|
+
onVisibleChange: setIsMenuHovered
|
|
11037
|
+
}));
|
|
11038
|
+
};
|
|
11039
|
+
|
|
11040
|
+
const SketchObj = ({
|
|
11041
|
+
objId,
|
|
11042
|
+
level
|
|
11043
|
+
}) => {
|
|
11044
|
+
const {
|
|
11045
|
+
drawingId
|
|
11046
|
+
} = React__default.useContext(RootContext);
|
|
11047
|
+
const children = useDrawing(drawingId, d => d.structure.tree[objId].children || []);
|
|
11048
|
+
const [collapsed, setCollapsed] = React__default.useState(true);
|
|
11049
|
+
return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(FlexRow, null, /*#__PURE__*/React__default.createElement(Indents, {
|
|
11050
|
+
level: level
|
|
11051
|
+
}), children.length > 0 ? /*#__PURE__*/React__default.createElement(CollapseButton, {
|
|
11052
|
+
collapsed: collapsed,
|
|
11053
|
+
onClick: () => setCollapsed(x => !x)
|
|
11054
|
+
}) : /*#__PURE__*/React__default.createElement(Indent, null), /*#__PURE__*/React__default.createElement(ObjTitle, {
|
|
11055
|
+
objId: objId,
|
|
11056
|
+
withMenu: level === 0
|
|
11057
|
+
})), children.map(childId => /*#__PURE__*/React__default.createElement("div", {
|
|
11058
|
+
key: childId,
|
|
11059
|
+
style: {
|
|
11060
|
+
display: collapsed ? 'none' : 'block'
|
|
11061
|
+
}
|
|
11062
|
+
}, /*#__PURE__*/React__default.createElement(SketchObj, {
|
|
11063
|
+
objId: childId,
|
|
11064
|
+
level: level + 1
|
|
11065
|
+
}))));
|
|
11066
|
+
};
|
|
11067
|
+
|
|
11068
|
+
const Details = () => {
|
|
11069
|
+
const {
|
|
11070
|
+
Collapse
|
|
11071
|
+
} = useBuerli(buerli => buerli.options.elements);
|
|
11072
|
+
const {
|
|
11073
|
+
drawingId,
|
|
11074
|
+
pluginId
|
|
11075
|
+
} = React__default.useContext(RootContext);
|
|
11076
|
+
const sketchId = usePlugin(drawingId, pluginId, plugin => plugin.objectId);
|
|
11077
|
+
const sketchChildren = useDrawing(drawingId, drawing => drawing.structure.tree[sketchId].children);
|
|
11078
|
+
const {
|
|
11079
|
+
geometry,
|
|
11080
|
+
constraints,
|
|
11081
|
+
isTrimActive
|
|
11082
|
+
} = React__default.useMemo(() => {
|
|
11083
|
+
const tree = getDrawing(drawingId).structure.tree;
|
|
11084
|
+
const geometry_ = (sketchChildren == null ? void 0 : sketchChildren.filter(id => isSketchGeometry(tree[id].class))) || [];
|
|
11085
|
+
const constraints_ = (sketchChildren == null ? void 0 : sketchChildren.filter(id => is2DConstraint(tree[id].class))) || [];
|
|
11086
|
+
const isTrimActive_ = (sketchChildren == null ? void 0 : sketchChildren.findIndex(id => tree[id].class === CCClasses.CCContainer)) !== -1;
|
|
11087
|
+
return {
|
|
11088
|
+
geometry: geometry_,
|
|
11089
|
+
constraints: constraints_,
|
|
11090
|
+
isTrimActive: isTrimActive_
|
|
10517
11091
|
};
|
|
10518
|
-
}, [drawingId,
|
|
11092
|
+
}, [drawingId, sketchChildren]);
|
|
11093
|
+
return /*#__PURE__*/React__default.createElement(Collapse, {
|
|
11094
|
+
header: "Details",
|
|
11095
|
+
isActive: false
|
|
11096
|
+
}, geometry.length === 0 && /*#__PURE__*/React__default.createElement(Text$2, {
|
|
11097
|
+
strong: true
|
|
11098
|
+
}, "The sketch is empty"), geometry.length > 0 && isTrimActive && /*#__PURE__*/React__default.createElement(Text$2, {
|
|
11099
|
+
strong: true
|
|
11100
|
+
}, "Trim is active"), geometry.length > 0 && !isTrimActive && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Text$2, {
|
|
11101
|
+
strong: true
|
|
11102
|
+
}, "Geometry"), !isTrimActive && geometry.map(childId => /*#__PURE__*/React__default.createElement(SketchObj, {
|
|
11103
|
+
objId: childId,
|
|
11104
|
+
key: childId,
|
|
11105
|
+
level: 0
|
|
11106
|
+
}))), constraints.length > 0 && !isTrimActive && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Text$2, {
|
|
11107
|
+
strong: true
|
|
11108
|
+
}, "Constraints"), constraints.map(childId => /*#__PURE__*/React__default.createElement(SketchObj, {
|
|
11109
|
+
objId: childId,
|
|
11110
|
+
key: childId,
|
|
11111
|
+
level: 0
|
|
11112
|
+
}))));
|
|
10519
11113
|
};
|
|
10520
11114
|
|
|
10521
11115
|
const PlaneSelectionMode = ({
|
|
@@ -10553,12 +11147,19 @@ const PlaneSelectionMode = ({
|
|
|
10553
11147
|
}); // Make planes invisible again
|
|
10554
11148
|
|
|
10555
11149
|
return () => {
|
|
10556
|
-
const
|
|
10557
|
-
|
|
10558
|
-
|
|
10559
|
-
|
|
10560
|
-
|
|
10561
|
-
|
|
11150
|
+
const drawing_ = getDrawing(drawingId);
|
|
11151
|
+
|
|
11152
|
+
if (drawing_) {
|
|
11153
|
+
var _drawing_$structure$t, _drawing_$structure$t2;
|
|
11154
|
+
|
|
11155
|
+
const pluginApi_ = drawing_.api.plugin;
|
|
11156
|
+
const planeId = (_drawing_$structure$t = drawing_.structure.tree[sketchId]) == null ? void 0 : (_drawing_$structure$t2 = _drawing_$structure$t.members) == null ? void 0 : _drawing_$structure$t2.planeReference.value;
|
|
11157
|
+
wereInvisible.forEach(id => {
|
|
11158
|
+
if (id !== planeId) {
|
|
11159
|
+
pluginApi_.setVisiblePlugin(id, false);
|
|
11160
|
+
}
|
|
11161
|
+
});
|
|
11162
|
+
}
|
|
10562
11163
|
}; // Should always happen just once
|
|
10563
11164
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
10564
11165
|
}, []);
|
|
@@ -10666,7 +11267,7 @@ const SketchMode = ({
|
|
|
10666
11267
|
});
|
|
10667
11268
|
}
|
|
10668
11269
|
})), /*#__PURE__*/React__default.createElement(MousePos, null), /*#__PURE__*/React__default.createElement(Collapse, {
|
|
10669
|
-
header: "Patterns
|
|
11270
|
+
header: "Patterns",
|
|
10670
11271
|
isActive: false
|
|
10671
11272
|
}, /*#__PURE__*/React__default.createElement(Tabs, {
|
|
10672
11273
|
tabBarGutter: 0,
|
|
@@ -10691,13 +11292,7 @@ const SketchMode = ({
|
|
|
10691
11292
|
tooltip: "Mirror copy pattern."
|
|
10692
11293
|
}),
|
|
10693
11294
|
key: "Mirror"
|
|
10694
|
-
}, /*#__PURE__*/React__default.createElement(MirrorPattern, null)), /*#__PURE__*/React__default.createElement(
|
|
10695
|
-
tab: /*#__PURE__*/React__default.createElement(TabIcon, {
|
|
10696
|
-
url: resources['useRef'],
|
|
10697
|
-
tooltip: "Use reference."
|
|
10698
|
-
}),
|
|
10699
|
-
key: "UseRef"
|
|
10700
|
-
}, /*#__PURE__*/React__default.createElement(UseRef, null))))));
|
|
11295
|
+
}, /*#__PURE__*/React__default.createElement(MirrorPattern, null)))), /*#__PURE__*/React__default.createElement(Details, null)));
|
|
10701
11296
|
};
|
|
10702
11297
|
|
|
10703
11298
|
const RootImpl$f = ({
|
|
@@ -10707,22 +11302,23 @@ const RootImpl$f = ({
|
|
|
10707
11302
|
const objectId = usePlugin(drawingId, pluginId, plugin => plugin.objectId);
|
|
10708
11303
|
const sketch = useDrawing(drawingId, drawing => drawing.structure.tree[objectId]);
|
|
10709
11304
|
const planeSelected = sketch.members.planeReference.value !== 0;
|
|
10710
|
-
const {
|
|
10711
|
-
set
|
|
10712
|
-
} = getPlugin(drawingId, pluginId);
|
|
10713
11305
|
React__default.useEffect(() => {
|
|
10714
11306
|
// Reset some fields in state and force sketch visibility when sketch is unmounted.
|
|
10715
11307
|
return () => {
|
|
10716
|
-
const
|
|
10717
|
-
|
|
10718
|
-
|
|
10719
|
-
|
|
10720
|
-
|
|
10721
|
-
|
|
10722
|
-
|
|
10723
|
-
|
|
11308
|
+
const plugin = getPlugin(drawingId, pluginId); // Only do stuff if plugin exists in the store when unmounting
|
|
11309
|
+
|
|
11310
|
+
if (plugin) {
|
|
11311
|
+
const pluginApi = getDrawing(drawingId).api.plugin;
|
|
11312
|
+
pluginApi.setVisiblePlugin(pluginId, true);
|
|
11313
|
+
plugin.set({
|
|
11314
|
+
tmpObjects: {},
|
|
11315
|
+
selected: [],
|
|
11316
|
+
hovered: UNDEFINEDID,
|
|
11317
|
+
highlighted: []
|
|
11318
|
+
});
|
|
11319
|
+
}
|
|
10724
11320
|
};
|
|
10725
|
-
}, [drawingId, pluginId
|
|
11321
|
+
}, [drawingId, pluginId]);
|
|
10726
11322
|
React__default.useEffect(() => {
|
|
10727
11323
|
if (!planeSelected) {
|
|
10728
11324
|
return;
|
|
@@ -10980,7 +11576,7 @@ const ViewImpl$c = ({
|
|
|
10980
11576
|
handlers
|
|
10981
11577
|
} = useTreeObjSelection(drawingId, objectId);
|
|
10982
11578
|
const color = getColor(isHovered, isSelected, direction, workAxisObj.members.Type.value);
|
|
10983
|
-
const ref = useScale(position.clone(), sf => [3 * sf, 3 * sf, 3 * sf]);
|
|
11579
|
+
const ref = useScale$1(position.clone(), sf => [3 * sf, 3 * sf, 3 * sf]);
|
|
10984
11580
|
return /*#__PURE__*/React__default.createElement(HUD, null, /*#__PURE__*/React__default.createElement("group", {
|
|
10985
11581
|
ref: ref,
|
|
10986
11582
|
position: position
|
|
@@ -11501,7 +12097,7 @@ const ViewImpl$a = ({
|
|
|
11501
12097
|
handlers
|
|
11502
12098
|
} = useTreeObjSelection(drawingId, objectId);
|
|
11503
12099
|
const color = isHovered ? 0x28d79f : isSelected ? 0xa70b0b : 0x111111;
|
|
11504
|
-
const ref = useScale(position.clone(), sf => [3 * sf, 3 * sf, 3 * sf]);
|
|
12100
|
+
const ref = useScale$1(position.clone(), sf => [3 * sf, 3 * sf, 3 * sf]);
|
|
11505
12101
|
return /*#__PURE__*/React__default.createElement(HUD, null, /*#__PURE__*/React__default.createElement("group", {
|
|
11506
12102
|
ref: ref,
|
|
11507
12103
|
position: position
|
|
@@ -11542,9 +12138,9 @@ var index$c = /*#__PURE__*/Object.freeze({
|
|
|
11542
12138
|
description: description$c
|
|
11543
12139
|
});
|
|
11544
12140
|
|
|
11545
|
-
function ownKeys$
|
|
12141
|
+
function ownKeys$8(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
11546
12142
|
|
|
11547
|
-
function _objectSpread$
|
|
12143
|
+
function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$8(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
11548
12144
|
|
|
11549
12145
|
const NumInput = ({
|
|
11550
12146
|
onChange,
|
|
@@ -11605,7 +12201,7 @@ const CSysEditor = ({
|
|
|
11605
12201
|
const [z, setZ] = React__default.useState(() => userValue[csysRow].z);
|
|
11606
12202
|
React__default.useEffect(() => {
|
|
11607
12203
|
setUserValue(val => {
|
|
11608
|
-
const newVal = [_objectSpread$
|
|
12204
|
+
const newVal = [_objectSpread$8({}, val[0]), _objectSpread$8({}, val[1]), _objectSpread$8({}, val[2]), _objectSpread$8({}, val[3])];
|
|
11609
12205
|
newVal[csysRow] = {
|
|
11610
12206
|
x,
|
|
11611
12207
|
y,
|
|
@@ -12216,36 +12812,36 @@ function ViewImpl$8({
|
|
|
12216
12812
|
length: zAxisLength + scale * 10,
|
|
12217
12813
|
width: arrowWidth,
|
|
12218
12814
|
color: 0x11116f
|
|
12219
|
-
}), /*#__PURE__*/React__default.createElement(Point$
|
|
12815
|
+
}), /*#__PURE__*/React__default.createElement(Point$2, {
|
|
12220
12816
|
position: origin,
|
|
12221
12817
|
radius: originPointWidth,
|
|
12222
12818
|
color: 0x111111
|
|
12223
|
-
}), axisPoints.map(point => /*#__PURE__*/React__default.createElement(Point$
|
|
12819
|
+
}), axisPoints.map(point => /*#__PURE__*/React__default.createElement(Point$2, {
|
|
12224
12820
|
key: point.key,
|
|
12225
12821
|
position: point.position,
|
|
12226
12822
|
radius: axisPointWidth,
|
|
12227
12823
|
color: point.color
|
|
12228
|
-
})), /*#__PURE__*/React__default.createElement(Point$
|
|
12824
|
+
})), /*#__PURE__*/React__default.createElement(Point$2, {
|
|
12229
12825
|
position: xMin,
|
|
12230
12826
|
radius: boundaryPointWidth,
|
|
12231
12827
|
color: 0x6f1111
|
|
12232
|
-
}), /*#__PURE__*/React__default.createElement(Point$
|
|
12828
|
+
}), /*#__PURE__*/React__default.createElement(Point$2, {
|
|
12233
12829
|
position: xMax,
|
|
12234
12830
|
radius: boundaryPointWidth,
|
|
12235
12831
|
color: 0x6f1111
|
|
12236
|
-
}), /*#__PURE__*/React__default.createElement(Point$
|
|
12832
|
+
}), /*#__PURE__*/React__default.createElement(Point$2, {
|
|
12237
12833
|
position: yMin,
|
|
12238
12834
|
radius: boundaryPointWidth,
|
|
12239
12835
|
color: 0x116f11
|
|
12240
|
-
}), /*#__PURE__*/React__default.createElement(Point$
|
|
12836
|
+
}), /*#__PURE__*/React__default.createElement(Point$2, {
|
|
12241
12837
|
position: yMax,
|
|
12242
12838
|
radius: boundaryPointWidth,
|
|
12243
12839
|
color: 0x116f11
|
|
12244
|
-
}), /*#__PURE__*/React__default.createElement(Point$
|
|
12840
|
+
}), /*#__PURE__*/React__default.createElement(Point$2, {
|
|
12245
12841
|
position: zMin,
|
|
12246
12842
|
radius: boundaryPointWidth,
|
|
12247
12843
|
color: 0x11116f
|
|
12248
|
-
}), /*#__PURE__*/React__default.createElement(Point$
|
|
12844
|
+
}), /*#__PURE__*/React__default.createElement(Point$2, {
|
|
12249
12845
|
position: zMax,
|
|
12250
12846
|
radius: boundaryPointWidth,
|
|
12251
12847
|
color: 0x11116f
|
|
@@ -12943,6 +13539,47 @@ const CSysDisplayValidator = ({
|
|
|
12943
13539
|
}, children);
|
|
12944
13540
|
};
|
|
12945
13541
|
|
|
13542
|
+
function useFeaturesIds(drawingId, curNodeId) {
|
|
13543
|
+
const curClass = useDrawing(drawingId, d => {
|
|
13544
|
+
var _d$structure$tree$cur;
|
|
13545
|
+
|
|
13546
|
+
return (_d$structure$tree$cur = d.structure.tree[curNodeId]) == null ? void 0 : _d$structure$tree$cur.class;
|
|
13547
|
+
});
|
|
13548
|
+
const prodId = useDrawing(drawingId, d => {
|
|
13549
|
+
if (curClass === CCClasses.CCProductReference || curClass === CCClasses.CCProductReferenceET) {
|
|
13550
|
+
const node = d.structure.tree[curNodeId];
|
|
13551
|
+
return node.members.productId.value;
|
|
13552
|
+
}
|
|
13553
|
+
|
|
13554
|
+
return curNodeId;
|
|
13555
|
+
});
|
|
13556
|
+
const opSeqId = useOperationSequence(drawingId, prodId);
|
|
13557
|
+
const opSeqChildren = useDrawing(drawingId, d => {
|
|
13558
|
+
var _d$structure$tree;
|
|
13559
|
+
|
|
13560
|
+
return (_d$structure$tree = d.structure.tree[opSeqId || -1]) == null ? void 0 : _d$structure$tree.children;
|
|
13561
|
+
});
|
|
13562
|
+
const tree = getDrawing(drawingId).structure.tree;
|
|
13563
|
+
const featureIds = (opSeqChildren == null ? void 0 : opSeqChildren.map(refId => tree[refId].members.refObj.value)) || [];
|
|
13564
|
+
return featureIds;
|
|
13565
|
+
}
|
|
13566
|
+
function getFeaturesIds(drawingId, curNodeId) {
|
|
13567
|
+
var _tree$prodId, _tree;
|
|
13568
|
+
|
|
13569
|
+
const tree = getDrawing(drawingId).structure.tree;
|
|
13570
|
+
const curClass = tree[curNodeId].class;
|
|
13571
|
+
const prodId = curClass === CCClasses.CCProductReference || curClass === CCClasses.CCProductReferenceET ? tree[curNodeId].members.productId.value : curNodeId;
|
|
13572
|
+
const prodChildren = (_tree$prodId = tree[prodId]) == null ? void 0 : _tree$prodId.children;
|
|
13573
|
+
const opSeqId = prodChildren == null ? void 0 : prodChildren.find(id => {
|
|
13574
|
+
var _tree$id;
|
|
13575
|
+
|
|
13576
|
+
return ((_tree$id = tree[id]) == null ? void 0 : _tree$id.class) === CCClasses.CCOperationSequence;
|
|
13577
|
+
});
|
|
13578
|
+
const opSeqChildren = (_tree = tree[opSeqId || -1]) == null ? void 0 : _tree.children;
|
|
13579
|
+
const featureIds = (opSeqChildren == null ? void 0 : opSeqChildren.map(refId => tree[refId].members.refObj.value)) || [];
|
|
13580
|
+
return featureIds;
|
|
13581
|
+
}
|
|
13582
|
+
|
|
12946
13583
|
const getFlipMatrix = (flip, xAxis, yAxis) => {
|
|
12947
13584
|
switch (flip) {
|
|
12948
13585
|
case FlipType.FLIP_X:
|
|
@@ -13285,9 +13922,8 @@ const CSysDisplayImpl = ({
|
|
|
13285
13922
|
const productId = ((_tree$id$members = tree[id].members) == null ? void 0 : (_tree$id$members$prod = _tree$id$members.productId) == null ? void 0 : _tree$id$members$prod.value) || tree[id].id;
|
|
13286
13923
|
|
|
13287
13924
|
if (prToCsysMap[productId] === undefined) {
|
|
13288
|
-
|
|
13289
|
-
|
|
13290
|
-
const csysIds = ((_tree$productId$featu = tree[productId].features) == null ? void 0 : _tree$productId$featu.filter(featureId => tree[featureId].class === CCClasses.CCWorkCoordSystem)) || [];
|
|
13925
|
+
const features = getFeaturesIds(drawingId, productId);
|
|
13926
|
+
const csysIds = (features == null ? void 0 : features.filter(featureId => tree[featureId].class === CCClasses.CCWorkCoordSystem)) || [];
|
|
13291
13927
|
prToCsysMap[productId] = csysIds;
|
|
13292
13928
|
}
|
|
13293
13929
|
|
|
@@ -15059,61 +15695,6 @@ const FileUtils = {
|
|
|
15059
15695
|
}
|
|
15060
15696
|
};
|
|
15061
15697
|
|
|
15062
|
-
const _excluded$3 = ["items", "children"];
|
|
15063
|
-
const Menu = _ref => {
|
|
15064
|
-
let {
|
|
15065
|
-
items,
|
|
15066
|
-
children
|
|
15067
|
-
} = _ref,
|
|
15068
|
-
props = _objectWithoutProperties(_ref, _excluded$3);
|
|
15069
|
-
|
|
15070
|
-
const onItemClick = React__default.useCallback(e => {
|
|
15071
|
-
e.domEvent.stopPropagation();
|
|
15072
|
-
let item = items[e.keyPath.pop()];
|
|
15073
|
-
|
|
15074
|
-
if (item.children) {
|
|
15075
|
-
item = item.children[e.keyPath.pop()];
|
|
15076
|
-
}
|
|
15077
|
-
item.callback(e.domEvent);
|
|
15078
|
-
}, [items]);
|
|
15079
|
-
const menu = /*#__PURE__*/React__default.createElement(Menu$1, {
|
|
15080
|
-
onClick: onItemClick
|
|
15081
|
-
}, Object.keys(items).map(key => {
|
|
15082
|
-
const item = items[key];
|
|
15083
|
-
|
|
15084
|
-
if (item.children) {
|
|
15085
|
-
const smItem = item;
|
|
15086
|
-
return /*#__PURE__*/React__default.createElement(Menu$1.SubMenu, {
|
|
15087
|
-
title: smItem.caption,
|
|
15088
|
-
key: key,
|
|
15089
|
-
icon: smItem.icon
|
|
15090
|
-
}, Object.keys(smItem.children).map(chKey => {
|
|
15091
|
-
const chItem = smItem.children[chKey];
|
|
15092
|
-
return /*#__PURE__*/React__default.createElement(Menu$1.Item, {
|
|
15093
|
-
key: chKey,
|
|
15094
|
-
icon: chItem.icon
|
|
15095
|
-
}, chItem.caption);
|
|
15096
|
-
}));
|
|
15097
|
-
} else {
|
|
15098
|
-
const item_ = item;
|
|
15099
|
-
return /*#__PURE__*/React__default.createElement(Menu$1.Item, {
|
|
15100
|
-
key: key,
|
|
15101
|
-
icon: item_.icon
|
|
15102
|
-
}, item_.caption);
|
|
15103
|
-
}
|
|
15104
|
-
}));
|
|
15105
|
-
return /*#__PURE__*/React__default.createElement(Dropdown, _extends({
|
|
15106
|
-
overlay: menu,
|
|
15107
|
-
placement: "bottomCenter"
|
|
15108
|
-
}, props), children ? children : /*#__PURE__*/React__default.createElement("div", {
|
|
15109
|
-
style: {
|
|
15110
|
-
width: '24px',
|
|
15111
|
-
cursor: 'pointer'
|
|
15112
|
-
},
|
|
15113
|
-
onClick: e => e.stopPropagation()
|
|
15114
|
-
}, "..."));
|
|
15115
|
-
};
|
|
15116
|
-
|
|
15117
15698
|
const zoomToFit = drawingId => {
|
|
15118
15699
|
var _getCamera;
|
|
15119
15700
|
|
|
@@ -15143,9 +15724,9 @@ const zoomToFit = drawingId => {
|
|
|
15143
15724
|
camApi.setZoom('fit', bounds);
|
|
15144
15725
|
};
|
|
15145
15726
|
|
|
15146
|
-
function ownKeys$
|
|
15727
|
+
function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
15147
15728
|
|
|
15148
|
-
function _objectSpread$
|
|
15729
|
+
function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$7(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
15149
15730
|
const appApi = (set, get) => ({
|
|
15150
15731
|
assemblyTree: {
|
|
15151
15732
|
startProdEditing: (drawingId, objId) => {
|
|
@@ -15154,7 +15735,7 @@ const appApi = (set, get) => ({
|
|
|
15154
15735
|
const curNode = api.getState().drawing.refs[drawingId].structure.currentNode;
|
|
15155
15736
|
res = state.assemblyTree.prodStack;
|
|
15156
15737
|
curNode && res.push(curNode);
|
|
15157
|
-
return _objectSpread$
|
|
15738
|
+
return _objectSpread$7(_objectSpread$7({}, state), {}, {
|
|
15158
15739
|
assemblyTree: {
|
|
15159
15740
|
prodStack: [...res]
|
|
15160
15741
|
}
|
|
@@ -15169,7 +15750,7 @@ const appApi = (set, get) => ({
|
|
|
15169
15750
|
set(state => {
|
|
15170
15751
|
const res = state.assemblyTree.prodStack;
|
|
15171
15752
|
res.pop();
|
|
15172
|
-
return _objectSpread$
|
|
15753
|
+
return _objectSpread$7(_objectSpread$7({}, state), {}, {
|
|
15173
15754
|
assemblyTree: {
|
|
15174
15755
|
prodStack: [...res]
|
|
15175
15756
|
}
|
|
@@ -15178,7 +15759,7 @@ const appApi = (set, get) => ({
|
|
|
15178
15759
|
ccAPI.assemblyBuilder.setCurrentNode(drawingId, prevProd).then(() => zoomToFit(drawingId)).catch();
|
|
15179
15760
|
},
|
|
15180
15761
|
clearProdStack: () => {
|
|
15181
|
-
set(state => _objectSpread$
|
|
15762
|
+
set(state => _objectSpread$7(_objectSpread$7({}, state), {}, {
|
|
15182
15763
|
assemblyTree: {
|
|
15183
15764
|
prodStack: []
|
|
15184
15765
|
}
|
|
@@ -15274,43 +15855,8 @@ function useMenuItems$3(drawingId, prodId, setEditName, pluginId) {
|
|
|
15274
15855
|
return res;
|
|
15275
15856
|
}
|
|
15276
15857
|
|
|
15277
|
-
const NameEdit = ({
|
|
15278
|
-
drawingId,
|
|
15279
|
-
objId,
|
|
15280
|
-
setEditName,
|
|
15281
|
-
name
|
|
15282
|
-
}) => {
|
|
15283
|
-
const ref = React__default.useRef(null);
|
|
15284
|
-
const onEnter = React__default.useCallback(async e => {
|
|
15285
|
-
if (e.target.value !== '') {
|
|
15286
|
-
await ccAPI.common.setObjectName(drawingId, objId, e.target.value);
|
|
15287
|
-
}
|
|
15288
|
-
|
|
15289
|
-
setEditName(false);
|
|
15290
|
-
}, [drawingId, objId, setEditName]);
|
|
15291
|
-
const onKeyPress = React__default.useCallback(e => {
|
|
15292
|
-
if (e.key !== 'Escape') return;
|
|
15293
|
-
setEditName(false);
|
|
15294
|
-
}, [setEditName]);
|
|
15295
|
-
React__default.useEffect(() => {
|
|
15296
|
-
var _ref$current;
|
|
15297
|
-
|
|
15298
|
-
(_ref$current = ref.current) == null ? void 0 : _ref$current.focus({
|
|
15299
|
-
cursor: 'all'
|
|
15300
|
-
});
|
|
15301
|
-
}, []);
|
|
15302
|
-
return /*#__PURE__*/React__default.createElement(Input, {
|
|
15303
|
-
ref: ref,
|
|
15304
|
-
onPressEnter: onEnter,
|
|
15305
|
-
defaultValue: name,
|
|
15306
|
-
size: "small",
|
|
15307
|
-
onKeyDown: onKeyPress,
|
|
15308
|
-
onBlur: () => setEditName(false)
|
|
15309
|
-
});
|
|
15310
|
-
};
|
|
15311
|
-
|
|
15312
15858
|
const {
|
|
15313
|
-
Text: Text$
|
|
15859
|
+
Text: Text$1
|
|
15314
15860
|
} = Typography; // TODO: use Name from Feature.tsx
|
|
15315
15861
|
|
|
15316
15862
|
const Name = ({
|
|
@@ -15319,7 +15865,7 @@ const Name = ({
|
|
|
15319
15865
|
strong,
|
|
15320
15866
|
onClick
|
|
15321
15867
|
}) => {
|
|
15322
|
-
return /*#__PURE__*/React__default.createElement(Text$
|
|
15868
|
+
return /*#__PURE__*/React__default.createElement(Text$1, {
|
|
15323
15869
|
disabled: disabled,
|
|
15324
15870
|
strong: strong,
|
|
15325
15871
|
style: {
|
|
@@ -15407,7 +15953,7 @@ const NewProd = ({
|
|
|
15407
15953
|
ref: inputRef,
|
|
15408
15954
|
suffix: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Space, null, /*#__PURE__*/React__default.createElement(InputButton, {
|
|
15409
15955
|
type: "apply",
|
|
15410
|
-
onClick: () =>
|
|
15956
|
+
onClick: () => setCreateMode(false)
|
|
15411
15957
|
}), /*#__PURE__*/React__default.createElement(InputButton, {
|
|
15412
15958
|
type: "cancel",
|
|
15413
15959
|
onClick: () => setCreateMode(false)
|
|
@@ -15444,13 +15990,16 @@ const ProdTable = ({
|
|
|
15444
15990
|
dataIndex: 'prodId',
|
|
15445
15991
|
render
|
|
15446
15992
|
}];
|
|
15447
|
-
}, [drawingId, pluginId, setCreateMode]); //
|
|
15993
|
+
}, [drawingId, pluginId, setCreateMode]); // Reset selectedProduct when plugin is closed
|
|
15448
15994
|
|
|
15449
15995
|
React__default.useEffect(() => {
|
|
15450
|
-
return () =>
|
|
15451
|
-
|
|
15452
|
-
|
|
15453
|
-
|
|
15996
|
+
return () => {
|
|
15997
|
+
const plugin = getPlugin(drawingId, pluginId);
|
|
15998
|
+
plugin && plugin.set({
|
|
15999
|
+
selectedProduct: null
|
|
16000
|
+
});
|
|
16001
|
+
};
|
|
16002
|
+
}, [drawingId, pluginId]);
|
|
15454
16003
|
const keyHandler = React__default.useCallback(e => {
|
|
15455
16004
|
if (e.key === 'Escape') {
|
|
15456
16005
|
set({
|
|
@@ -15919,6 +16468,25 @@ const useIsDisabled = (drawingId, featureId) => {
|
|
|
15919
16468
|
return featureIndex > rollbackBarIndex || actFeatIdx >= 0 && actFeatIdx < featureIndex;
|
|
15920
16469
|
};
|
|
15921
16470
|
|
|
16471
|
+
/**
|
|
16472
|
+
* Validator for FeatureList component. Checks drawing and currentProduct existance.
|
|
16473
|
+
*
|
|
16474
|
+
* @param drawingId
|
|
16475
|
+
* @returns
|
|
16476
|
+
*/
|
|
16477
|
+
|
|
16478
|
+
const FeatureListValidator = ({
|
|
16479
|
+
drawingId,
|
|
16480
|
+
children
|
|
16481
|
+
}) => {
|
|
16482
|
+
const warnings = {};
|
|
16483
|
+
useDrawingVerifier(drawingId, warnings);
|
|
16484
|
+
useRootOrProdVerifier(drawingId, warnings);
|
|
16485
|
+
return /*#__PURE__*/React__default.createElement(ErrorBoundary, {
|
|
16486
|
+
warnings: warnings
|
|
16487
|
+
}, children);
|
|
16488
|
+
};
|
|
16489
|
+
|
|
15922
16490
|
/**
|
|
15923
16491
|
* Goal of this component is to manage visibility of individual features when interacting with RollbackBar
|
|
15924
16492
|
* TODO: change the component name?
|
|
@@ -15955,8 +16523,6 @@ const VisibilityController = ({
|
|
|
15955
16523
|
const FtVisibilityControllerImpl = ({
|
|
15956
16524
|
drawingId
|
|
15957
16525
|
}) => {
|
|
15958
|
-
var _operationSequence$ch;
|
|
15959
|
-
|
|
15960
16526
|
const activeSelId = useDrawing(drawingId, d => d.selection.active);
|
|
15961
16527
|
const featuresToHide = React__default.useRef([]);
|
|
15962
16528
|
React__default.useEffect(() => {
|
|
@@ -15985,15 +16551,7 @@ const FtVisibilityControllerImpl = ({
|
|
|
15985
16551
|
};
|
|
15986
16552
|
}, [drawingId, activeSelId]);
|
|
15987
16553
|
const curPartId = useDrawing(drawingId, d => d.structure.currentProduct || d.structure.root);
|
|
15988
|
-
const
|
|
15989
|
-
operationSequence
|
|
15990
|
-
} = useRollbackBar(drawingId, curPartId);
|
|
15991
|
-
const tree = getDrawing(drawingId).structure.tree;
|
|
15992
|
-
const features = operationSequence == null ? void 0 : (_operationSequence$ch = operationSequence.children) == null ? void 0 : _operationSequence$ch.map(id => {
|
|
15993
|
-
var _tree$id, _tree$id$members, _tree$id$members$refO;
|
|
15994
|
-
|
|
15995
|
-
return (_tree$id = tree[id]) == null ? void 0 : (_tree$id$members = _tree$id.members) == null ? void 0 : (_tree$id$members$refO = _tree$id$members.refObj) == null ? void 0 : _tree$id$members$refO.value;
|
|
15996
|
-
});
|
|
16554
|
+
const features = useFeaturesIds(drawingId, curPartId);
|
|
15997
16555
|
return features ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, features.map(id => /*#__PURE__*/React__default.createElement(VisibilityController, {
|
|
15998
16556
|
key: id,
|
|
15999
16557
|
drawingId: drawingId,
|
|
@@ -16004,72 +16562,27 @@ const FtVisibilityControllerImpl = ({
|
|
|
16004
16562
|
const FtVisibilityController = ({
|
|
16005
16563
|
drawingId
|
|
16006
16564
|
}) => {
|
|
16007
|
-
return /*#__PURE__*/React__default.createElement(
|
|
16565
|
+
return /*#__PURE__*/React__default.createElement(FeatureListValidator, {
|
|
16566
|
+
drawingId: drawingId
|
|
16567
|
+
}, /*#__PURE__*/React__default.createElement(FtVisibilityControllerImpl, {
|
|
16008
16568
|
drawingId: drawingId
|
|
16009
16569
|
}));
|
|
16010
16570
|
};
|
|
16011
16571
|
|
|
16012
16572
|
var FtVisibilityController$1 = FtVisibilityController;
|
|
16013
16573
|
|
|
16014
|
-
function ownKeys$
|
|
16574
|
+
function ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
16015
16575
|
|
|
16016
|
-
function _objectSpread$
|
|
16576
|
+
function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
16017
16577
|
|
|
16018
16578
|
const Divider = props => {
|
|
16019
16579
|
return /*#__PURE__*/React__default.createElement(Divider$1, _extends({}, props, {
|
|
16020
|
-
style: _objectSpread$
|
|
16580
|
+
style: _objectSpread$6({
|
|
16021
16581
|
margin: '0'
|
|
16022
16582
|
}, props.style)
|
|
16023
16583
|
}));
|
|
16024
16584
|
};
|
|
16025
16585
|
|
|
16026
|
-
const FlexRow = styled.div`
|
|
16027
|
-
display: flex;
|
|
16028
|
-
flex-direction: row;
|
|
16029
|
-
`;
|
|
16030
|
-
const FlexReverseRow = styled.div`
|
|
16031
|
-
display: flex;
|
|
16032
|
-
flex-direction: row-reverse;
|
|
16033
|
-
`;
|
|
16034
|
-
const Link = styled.a`
|
|
16035
|
-
color: #4f4f4f;
|
|
16036
|
-
&:hover {
|
|
16037
|
-
text-decoration: underline;
|
|
16038
|
-
text-decoration-color: #4f4f4f;
|
|
16039
|
-
color: #4f4f4f;
|
|
16040
|
-
}
|
|
16041
|
-
`;
|
|
16042
|
-
const HoveredDiv = styled.div`
|
|
16043
|
-
width: 100%;
|
|
16044
|
-
display: flex;
|
|
16045
|
-
justify-content: space-between;
|
|
16046
|
-
cursor: default;
|
|
16047
|
-
&:hover {
|
|
16048
|
-
background-color: #fbfbfb;
|
|
16049
|
-
}
|
|
16050
|
-
`;
|
|
16051
|
-
|
|
16052
|
-
const {
|
|
16053
|
-
Text: Text$1
|
|
16054
|
-
} = Typography;
|
|
16055
|
-
const EntityName = ({
|
|
16056
|
-
name,
|
|
16057
|
-
disabled,
|
|
16058
|
-
strong,
|
|
16059
|
-
onClick,
|
|
16060
|
-
onMouseEnter,
|
|
16061
|
-
onMouseLeave
|
|
16062
|
-
}) => {
|
|
16063
|
-
return /*#__PURE__*/React__default.createElement(Link, {
|
|
16064
|
-
onClick: onClick,
|
|
16065
|
-
onMouseEnter: onMouseEnter,
|
|
16066
|
-
onMouseLeave: onMouseLeave
|
|
16067
|
-
}, /*#__PURE__*/React__default.createElement(Text$1, {
|
|
16068
|
-
disabled: disabled,
|
|
16069
|
-
strong: strong
|
|
16070
|
-
}, name));
|
|
16071
|
-
};
|
|
16072
|
-
|
|
16073
16586
|
function useMenuItems$2(drawingId, featureId, isActive, setEditName) {
|
|
16074
16587
|
return React__default.useMemo(() => {
|
|
16075
16588
|
return {
|
|
@@ -16093,35 +16606,92 @@ function useMenuItems$2(drawingId, featureId, isActive, setEditName) {
|
|
|
16093
16606
|
}, [drawingId, featureId, isActive, setEditName]);
|
|
16094
16607
|
}
|
|
16095
16608
|
|
|
16096
|
-
function useIsCustom(drawingId,
|
|
16609
|
+
function useIsCustom(drawingId, featureRefId) {
|
|
16610
|
+
const curProduct = useDrawing(drawingId, d => d.structure.currentProduct);
|
|
16611
|
+
const opSeqId = useOperationSequence(drawingId, curProduct);
|
|
16612
|
+
const opSeqChildren = useDrawing(drawingId, d => {
|
|
16613
|
+
var _d$structure$tree;
|
|
16614
|
+
|
|
16615
|
+
return (_d$structure$tree = d.structure.tree[opSeqId || -1]) == null ? void 0 : _d$structure$tree.children;
|
|
16616
|
+
}) || []; // First 7 elements in operationSequence are features created by default (origin, x,y,z axes and planes) => they're not custom
|
|
16617
|
+
|
|
16618
|
+
return opSeqChildren.indexOf(featureRefId) > 6;
|
|
16619
|
+
}
|
|
16620
|
+
|
|
16621
|
+
function usePrecheckErrorId(drawingId, featureId) {
|
|
16097
16622
|
const curProduct = useDrawing(drawingId, d => d.structure.currentProduct);
|
|
16098
16623
|
const opSeqId = useOperationSequence(drawingId, curProduct) || -1;
|
|
16099
|
-
const opSeqChildren = useDrawing(drawingId, d =>
|
|
16100
|
-
|
|
16101
|
-
|
|
16102
|
-
|
|
16103
|
-
|
|
16104
|
-
|
|
16105
|
-
|
|
16624
|
+
const opSeqChildren = useDrawing(drawingId, d => {
|
|
16625
|
+
var _d$structure$tree$opS;
|
|
16626
|
+
|
|
16627
|
+
return (_d$structure$tree$opS = d.structure.tree[opSeqId]) == null ? void 0 : _d$structure$tree$opS.children;
|
|
16628
|
+
}) || [];
|
|
16629
|
+
const refId = opSeqChildren.find(chId => {
|
|
16630
|
+
var _ref_$members;
|
|
16631
|
+
|
|
16632
|
+
const ref_ = getDrawing(drawingId).structure.tree[chId];
|
|
16633
|
+
return featureId === (ref_ == null ? void 0 : (_ref_$members = ref_.members) == null ? void 0 : _ref_$members.refObj.value);
|
|
16634
|
+
});
|
|
16635
|
+
const refChildren = useDrawing(drawingId, d => {
|
|
16636
|
+
var _d$structure$tree2;
|
|
16637
|
+
|
|
16638
|
+
return (_d$structure$tree2 = d.structure.tree[refId || -1]) == null ? void 0 : _d$structure$tree2.children;
|
|
16639
|
+
}) || [];
|
|
16640
|
+
const errorId = refChildren.find(chId => {
|
|
16641
|
+
var _getDrawing$structure;
|
|
16642
|
+
|
|
16643
|
+
return ((_getDrawing$structure = getDrawing(drawingId).structure.tree[chId]) == null ? void 0 : _getDrawing$structure.class) === CCClasses.BMError;
|
|
16644
|
+
}) || null;
|
|
16645
|
+
return errorId;
|
|
16646
|
+
}
|
|
16647
|
+
|
|
16648
|
+
const ErrorWrapper = styled.div`
|
|
16649
|
+
cursor: pointer;
|
|
16650
|
+
margin-right: 4px;
|
|
16651
|
+
`;
|
|
16652
|
+
|
|
16653
|
+
const PrecheckError = ({
|
|
16654
|
+
drawingId,
|
|
16655
|
+
errorId
|
|
16656
|
+
}) => {
|
|
16657
|
+
var _error$members;
|
|
16658
|
+
|
|
16659
|
+
const error = useDrawing(drawingId, d => d.structure.tree[errorId]);
|
|
16660
|
+
const title = (error == null ? void 0 : (_error$members = error.members) == null ? void 0 : _error$members.errorMessage.value) || '';
|
|
16661
|
+
return /*#__PURE__*/React__default.createElement(ErrorWrapper, null, /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
16662
|
+
title: title
|
|
16663
|
+
}, /*#__PURE__*/React__default.createElement(ExclamationCircleTwoTone, {
|
|
16664
|
+
twoToneColor: "#ff5f5f"
|
|
16665
|
+
})));
|
|
16666
|
+
};
|
|
16106
16667
|
|
|
16107
|
-
|
|
16668
|
+
function useHasView(drawingId, featureId) {
|
|
16669
|
+
const [hasGraphics, setHasGraphics] = React__default.useState(false);
|
|
16670
|
+
const ftClass = useDrawing(drawingId, d => d.structure.tree[featureId].class);
|
|
16671
|
+
useFeaturePluginDef(ftClass, plugin => setHasGraphics(Boolean(plugin == null ? void 0 : plugin.View)));
|
|
16672
|
+
return hasGraphics;
|
|
16108
16673
|
}
|
|
16109
16674
|
|
|
16110
16675
|
const Feature = ({
|
|
16111
16676
|
drawingId,
|
|
16112
|
-
|
|
16677
|
+
featureRefId
|
|
16113
16678
|
}) => {
|
|
16114
|
-
const
|
|
16115
|
-
|
|
16116
|
-
|
|
16117
|
-
|
|
16679
|
+
const featureId = useDrawing(drawingId, d => {
|
|
16680
|
+
var _d$structure$tree$fea, _d$structure$tree$fea2;
|
|
16681
|
+
|
|
16682
|
+
return (_d$structure$tree$fea = d.structure.tree[featureRefId]) == null ? void 0 : (_d$structure$tree$fea2 = _d$structure$tree$fea.members) == null ? void 0 : _d$structure$tree$fea2.refObj.value;
|
|
16683
|
+
});
|
|
16684
|
+
const name = useDrawing(drawingId, d => {
|
|
16685
|
+
var _d$structure$tree$fea3;
|
|
16118
16686
|
|
|
16119
|
-
return (_d$
|
|
16687
|
+
return (_d$structure$tree$fea3 = d.structure.tree[featureId]) == null ? void 0 : _d$structure$tree$fea3.name;
|
|
16120
16688
|
});
|
|
16121
|
-
const
|
|
16689
|
+
const visible = useDrawing(drawingId, d => d.plugin.visible.indexOf(featureId) >= 0);
|
|
16690
|
+
const hasGraphics = useHasView(drawingId, featureId);
|
|
16122
16691
|
const isActive = useDrawing(drawingId, d => d.plugin.active.feature === featureId);
|
|
16123
|
-
const isCustom = useIsCustom(drawingId,
|
|
16692
|
+
const isCustom = useIsCustom(drawingId, featureRefId);
|
|
16124
16693
|
const disabled = useIsDisabled(drawingId, featureId);
|
|
16694
|
+
const errorId = usePrecheckErrorId(drawingId, featureId);
|
|
16125
16695
|
const [rename, setRename] = React__default.useState(false);
|
|
16126
16696
|
const onNameClick = React__default.useCallback(() => {
|
|
16127
16697
|
!disabled && getDrawing(drawingId).api.plugin.setActiveFeature(featureId);
|
|
@@ -16142,6 +16712,7 @@ const Feature = ({
|
|
|
16142
16712
|
const pluginApi = getDrawing(drawingId).api.plugin;
|
|
16143
16713
|
pluginApi.setVisiblePlugin(featureId, !visible);
|
|
16144
16714
|
}, [drawingId, visible, featureId, disabled, rename]);
|
|
16715
|
+
const [isMenuHovered, setIsMenuHovered] = React__default.useState(false);
|
|
16145
16716
|
const menuItems = useMenuItems$2(drawingId, featureId, isActive, setRename);
|
|
16146
16717
|
const eyeComponent = React__default.useMemo(() => {
|
|
16147
16718
|
if (!hasGraphics) return /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -16164,51 +16735,20 @@ const Feature = ({
|
|
|
16164
16735
|
});
|
|
16165
16736
|
}, [hasGraphics, visible, disabled, onEyeClick]);
|
|
16166
16737
|
return /*#__PURE__*/React__default.createElement(HoveredDiv, {
|
|
16167
|
-
|
|
16168
|
-
|
|
16169
|
-
padding: '4px 10px'
|
|
16170
|
-
},
|
|
16738
|
+
hovered: isMenuHovered,
|
|
16739
|
+
bordered: true,
|
|
16171
16740
|
title: String(featureId)
|
|
16172
|
-
}, /*#__PURE__*/React__default.createElement(Space,
|
|
16173
|
-
|
|
16174
|
-
|
|
16175
|
-
};
|
|
16176
|
-
|
|
16177
|
-
function useFeaturesIds(drawingId, curNodeId) {
|
|
16178
|
-
const curClass = useDrawing(drawingId, d => d.structure.tree[curNodeId].class);
|
|
16179
|
-
const prodId = useDrawing(drawingId, d => {
|
|
16180
|
-
if (curClass === CCClasses.CCProductReference || curClass === CCClasses.CCProductReferenceET) {
|
|
16181
|
-
const node = d.structure.tree[curNodeId];
|
|
16182
|
-
return node.members.productId.value;
|
|
16741
|
+
}, /*#__PURE__*/React__default.createElement(Space, {
|
|
16742
|
+
style: {
|
|
16743
|
+
flex: 1
|
|
16183
16744
|
}
|
|
16184
|
-
|
|
16185
|
-
|
|
16186
|
-
|
|
16187
|
-
|
|
16188
|
-
|
|
16189
|
-
|
|
16190
|
-
|
|
16191
|
-
});
|
|
16192
|
-
return featuresIds;
|
|
16193
|
-
}
|
|
16194
|
-
|
|
16195
|
-
/**
|
|
16196
|
-
* Validator for FeatureList component. Checks drawing and currentProduct existance.
|
|
16197
|
-
*
|
|
16198
|
-
* @param drawingId
|
|
16199
|
-
* @returns
|
|
16200
|
-
*/
|
|
16201
|
-
|
|
16202
|
-
const FeatureListValidator = ({
|
|
16203
|
-
drawingId,
|
|
16204
|
-
children
|
|
16205
|
-
}) => {
|
|
16206
|
-
const warnings = {};
|
|
16207
|
-
useDrawingVerifier(drawingId, warnings);
|
|
16208
|
-
useRootOrProdVerifier(drawingId, warnings);
|
|
16209
|
-
return /*#__PURE__*/React__default.createElement(ErrorBoundary, {
|
|
16210
|
-
warnings: warnings
|
|
16211
|
-
}, children);
|
|
16745
|
+
}, eyeComponent, nameComponent), errorId && /*#__PURE__*/React__default.createElement(PrecheckError, {
|
|
16746
|
+
drawingId: drawingId,
|
|
16747
|
+
errorId: errorId
|
|
16748
|
+
}), isCustom && /*#__PURE__*/React__default.createElement(Menu, {
|
|
16749
|
+
items: menuItems,
|
|
16750
|
+
onVisibleChange: setIsMenuHovered
|
|
16751
|
+
}));
|
|
16212
16752
|
};
|
|
16213
16753
|
|
|
16214
16754
|
const _excluded$1 = ["children"];
|
|
@@ -16222,7 +16762,7 @@ const SortableCont = SortableContainer(_ref => {
|
|
|
16222
16762
|
});
|
|
16223
16763
|
const SortableItem = SortableElement(({
|
|
16224
16764
|
drawingId,
|
|
16225
|
-
|
|
16765
|
+
featureRefId,
|
|
16226
16766
|
isRollbackBar
|
|
16227
16767
|
}) => {
|
|
16228
16768
|
if (isRollbackBar) return /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -16248,36 +16788,53 @@ const SortableItem = SortableElement(({
|
|
|
16248
16788
|
}
|
|
16249
16789
|
}));else return /*#__PURE__*/React__default.createElement(Feature, {
|
|
16250
16790
|
drawingId: drawingId,
|
|
16251
|
-
|
|
16791
|
+
featureRefId: featureRefId
|
|
16252
16792
|
});
|
|
16253
16793
|
});
|
|
16254
16794
|
|
|
16255
16795
|
const Item$1 = ({
|
|
16256
16796
|
drawingId,
|
|
16257
|
-
|
|
16797
|
+
featureRefId
|
|
16258
16798
|
}) => {
|
|
16259
16799
|
const curPartId = useDrawing(drawingId, d => d.structure.currentProduct || d.structure.root);
|
|
16260
|
-
const
|
|
16800
|
+
const opSeqId = useOperationSequence(drawingId, curPartId);
|
|
16801
|
+
const idx = useDrawing(drawingId, d => {
|
|
16802
|
+
var _d$structure$tree, _d$structure$tree$chi;
|
|
16803
|
+
|
|
16804
|
+
return (_d$structure$tree = d.structure.tree[opSeqId || -1]) == null ? void 0 : (_d$structure$tree$chi = _d$structure$tree.children) == null ? void 0 : _d$structure$tree$chi.indexOf(featureRefId);
|
|
16805
|
+
}) || -1;
|
|
16806
|
+
const featureId = useDrawing(drawingId, d => {
|
|
16807
|
+
var _d$structure$tree$fea, _d$structure$tree$fea2;
|
|
16808
|
+
|
|
16809
|
+
return (_d$structure$tree$fea = d.structure.tree[featureRefId]) == null ? void 0 : (_d$structure$tree$fea2 = _d$structure$tree$fea.members) == null ? void 0 : _d$structure$tree$fea2.refObj.value;
|
|
16810
|
+
});
|
|
16261
16811
|
const objClass = useDrawing(drawingId, d => {
|
|
16262
|
-
var _d$structure$tree$
|
|
16812
|
+
var _d$structure$tree$fea3;
|
|
16263
16813
|
|
|
16264
|
-
return ((_d$structure$tree$
|
|
16814
|
+
return ((_d$structure$tree$fea3 = d.structure.tree[featureId]) == null ? void 0 : _d$structure$tree$fea3.class) || '';
|
|
16265
16815
|
});
|
|
16266
|
-
const
|
|
16816
|
+
const isFeatureActive = useDrawing(drawingId, d => d.plugin.active.feature !== null) || false;
|
|
16267
16817
|
const isRollbackBar = objClass === CCClasses.CCRollbackBar;
|
|
16818
|
+
const isDisabled = !isRollbackBar || isFeatureActive;
|
|
16268
16819
|
return /*#__PURE__*/React__default.createElement(SortableItem, {
|
|
16269
16820
|
drawingId: drawingId,
|
|
16270
|
-
|
|
16821
|
+
featureRefId: featureRefId,
|
|
16271
16822
|
isRollbackBar: isRollbackBar,
|
|
16272
|
-
disabled:
|
|
16823
|
+
disabled: isDisabled,
|
|
16273
16824
|
index: idx
|
|
16274
16825
|
});
|
|
16275
16826
|
};
|
|
16276
16827
|
|
|
16277
16828
|
const List$2 = ({
|
|
16278
|
-
featureIds,
|
|
16279
16829
|
drawingId
|
|
16280
16830
|
}) => {
|
|
16831
|
+
const curPartId = useDrawing(drawingId, d => d.structure.currentProduct || d.structure.root);
|
|
16832
|
+
const opSeqId = useOperationSequence(drawingId, curPartId);
|
|
16833
|
+
const featureRefIds = useDrawing(drawingId, d => {
|
|
16834
|
+
var _d$structure$tree2;
|
|
16835
|
+
|
|
16836
|
+
return (_d$structure$tree2 = d.structure.tree[opSeqId || -1]) == null ? void 0 : _d$structure$tree2.children;
|
|
16837
|
+
}) || [];
|
|
16281
16838
|
return /*#__PURE__*/React__default.createElement(SortableCont, {
|
|
16282
16839
|
helperClass: "row-dragging",
|
|
16283
16840
|
lockAxis: "y",
|
|
@@ -16285,11 +16842,8 @@ const List$2 = ({
|
|
|
16285
16842
|
oldIndex,
|
|
16286
16843
|
newIndex
|
|
16287
16844
|
}) => {
|
|
16288
|
-
var _object$features;
|
|
16289
|
-
|
|
16290
16845
|
const rootId_ = getDrawing(drawingId).structure.currentProduct;
|
|
16291
|
-
const
|
|
16292
|
-
const features = (_object$features = object == null ? void 0 : object.features) != null ? _object$features : [];
|
|
16846
|
+
const features = getFeaturesIds(drawingId, rootId_);
|
|
16293
16847
|
const offset = 4;
|
|
16294
16848
|
const move = ccAPI.feature.rollback.calculateMovement(oldIndex, newIndex, features, offset);
|
|
16295
16849
|
|
|
@@ -16299,30 +16853,19 @@ const List$2 = ({
|
|
|
16299
16853
|
ccAPI.feature.rollback.moveBefore(drawingId, move.featureId).catch();
|
|
16300
16854
|
}
|
|
16301
16855
|
}
|
|
16302
|
-
},
|
|
16303
|
-
key:
|
|
16856
|
+
}, featureRefIds.map(refId => /*#__PURE__*/React__default.createElement(Item$1, {
|
|
16857
|
+
key: refId,
|
|
16304
16858
|
drawingId: drawingId,
|
|
16305
|
-
|
|
16859
|
+
featureRefId: refId
|
|
16306
16860
|
})));
|
|
16307
16861
|
};
|
|
16308
16862
|
|
|
16309
|
-
const FeatureListImpl = ({
|
|
16310
|
-
drawingId
|
|
16311
|
-
}) => {
|
|
16312
|
-
const curPartId = useDrawing(drawingId, d => d.structure.currentProduct || d.structure.root);
|
|
16313
|
-
const featuresIds = useFeaturesIds(drawingId, curPartId);
|
|
16314
|
-
return /*#__PURE__*/React__default.createElement(List$2, {
|
|
16315
|
-
drawingId: drawingId,
|
|
16316
|
-
featureIds: featuresIds
|
|
16317
|
-
});
|
|
16318
|
-
};
|
|
16319
|
-
|
|
16320
16863
|
const FeatureList = ({
|
|
16321
16864
|
drawingId
|
|
16322
16865
|
}) => {
|
|
16323
16866
|
return /*#__PURE__*/React__default.createElement(FeatureListValidator, {
|
|
16324
16867
|
drawingId: drawingId
|
|
16325
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
16868
|
+
}, /*#__PURE__*/React__default.createElement(List$2, {
|
|
16326
16869
|
drawingId: drawingId
|
|
16327
16870
|
}));
|
|
16328
16871
|
};
|
|
@@ -16348,35 +16891,6 @@ function useMenuItems$1(drawingId, objectId, setRename) {
|
|
|
16348
16891
|
}, [drawingId, objectId, setRename]);
|
|
16349
16892
|
}
|
|
16350
16893
|
|
|
16351
|
-
const Indent = () => {
|
|
16352
|
-
return /*#__PURE__*/React__default.createElement("span", {
|
|
16353
|
-
className: "ant-tree-indent"
|
|
16354
|
-
}, /*#__PURE__*/React__default.createElement("span", {
|
|
16355
|
-
className: "ant-tree-indent-unit"
|
|
16356
|
-
}));
|
|
16357
|
-
};
|
|
16358
|
-
const Indents = ({
|
|
16359
|
-
level
|
|
16360
|
-
}) => {
|
|
16361
|
-
const arr = Array.from(Array(level).keys());
|
|
16362
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, arr.map(i => /*#__PURE__*/React__default.createElement(Indent, {
|
|
16363
|
-
key: i
|
|
16364
|
-
})));
|
|
16365
|
-
};
|
|
16366
|
-
const CollapseButton = ({
|
|
16367
|
-
collapsed,
|
|
16368
|
-
onClick
|
|
16369
|
-
}) => {
|
|
16370
|
-
return /*#__PURE__*/React__default.createElement("span", {
|
|
16371
|
-
className: "ant-tree-switcher",
|
|
16372
|
-
onClick: onClick
|
|
16373
|
-
}, /*#__PURE__*/React__default.createElement("span", {
|
|
16374
|
-
role: "img",
|
|
16375
|
-
"aria-label": "caret-down",
|
|
16376
|
-
className: "anticon anticon-caret-down ant-tree-switcher-icon"
|
|
16377
|
-
}, collapsed ? /*#__PURE__*/React__default.createElement(CaretRightOutlined, null) : /*#__PURE__*/React__default.createElement(CaretDownOutlined, null)));
|
|
16378
|
-
};
|
|
16379
|
-
|
|
16380
16894
|
function setProductsHidden(drawingId, prodId, hidden) {
|
|
16381
16895
|
var _getDrawing$structure;
|
|
16382
16896
|
|
|
@@ -16425,6 +16939,7 @@ const NodeTitle = ({
|
|
|
16425
16939
|
const referedObj = useDrawing(drawingId, d => d.structure.tree[referedId]);
|
|
16426
16940
|
const name = referedObj.name;
|
|
16427
16941
|
const [rename, setRename] = React__default.useState(false);
|
|
16942
|
+
const [isMenuHovered, setIsMenuHovered] = React__default.useState(false);
|
|
16428
16943
|
const menuItems = useMenuItems$1(drawingId, refId, setRename);
|
|
16429
16944
|
const nameComponent = rename ? /*#__PURE__*/React__default.createElement(NameEdit, {
|
|
16430
16945
|
drawingId: drawingId,
|
|
@@ -16437,11 +16952,14 @@ const NodeTitle = ({
|
|
|
16437
16952
|
onClick: onClick,
|
|
16438
16953
|
name: name
|
|
16439
16954
|
}));
|
|
16440
|
-
return /*#__PURE__*/React__default.createElement(HoveredDiv,
|
|
16955
|
+
return /*#__PURE__*/React__default.createElement(HoveredDiv, {
|
|
16956
|
+
hovered: isMenuHovered
|
|
16957
|
+
}, /*#__PURE__*/React__default.createElement(Space, null, /*#__PURE__*/React__default.createElement(EyeIcon, {
|
|
16441
16958
|
drawingId: drawingId,
|
|
16442
16959
|
refId: refId
|
|
16443
16960
|
}), referedObj.class === CCClasses.CCAssembly ? /*#__PURE__*/React__default.createElement(AppstoreOutlined, null) : /*#__PURE__*/React__default.createElement(FileOutlined, null), nameComponent), /*#__PURE__*/React__default.createElement(Menu, {
|
|
16444
|
-
items: menuItems
|
|
16961
|
+
items: menuItems,
|
|
16962
|
+
onVisibleChange: setIsMenuHovered
|
|
16445
16963
|
}));
|
|
16446
16964
|
};
|
|
16447
16965
|
|
|
@@ -16537,6 +17055,7 @@ const AssemblyTreeHeader = ({
|
|
|
16537
17055
|
const currNode = useCurrentNode(drawingId);
|
|
16538
17056
|
const objDetails = useObjectDetails(drawingId, (currNode == null ? void 0 : currNode.id) || -1);
|
|
16539
17057
|
const showBackBtn = React__default.useMemo(() => pStackNotEmpty || !objDetails.isRoot && (objDetails.isAssemblyNode || objDetails.isAssembly), [objDetails.isAssembly, objDetails.isAssemblyNode, objDetails.isRoot, pStackNotEmpty]);
|
|
17058
|
+
const isFeatureActive = useDrawing(drawingId, d => d.plugin.active.feature !== null) || false;
|
|
16540
17059
|
const name = currProd ? currProd.name : currNode ? currNode.name : '';
|
|
16541
17060
|
const [rename, setRename] = React__default.useState(false);
|
|
16542
17061
|
const [showNameChoice, setShowNameChoice] = React__default.useState(false);
|
|
@@ -16567,6 +17086,19 @@ const AssemblyTreeHeader = ({
|
|
|
16567
17086
|
title: 'Export node as ' + type,
|
|
16568
17087
|
placement: "right"
|
|
16569
17088
|
}, type))));
|
|
17089
|
+
const exportComponent = isFeatureActive ? /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
17090
|
+
title: "All features should be closed before exporting",
|
|
17091
|
+
placement: "left"
|
|
17092
|
+
}, /*#__PURE__*/React__default.createElement(Button, {
|
|
17093
|
+
icon: /*#__PURE__*/React__default.createElement(ExportOutlined, null),
|
|
17094
|
+
size: "small",
|
|
17095
|
+
disabled: true
|
|
17096
|
+
})) : /*#__PURE__*/React__default.createElement(Dropdown, {
|
|
17097
|
+
overlay: menu
|
|
17098
|
+
}, /*#__PURE__*/React__default.createElement(Button, {
|
|
17099
|
+
icon: /*#__PURE__*/React__default.createElement(ExportOutlined, null),
|
|
17100
|
+
size: "small"
|
|
17101
|
+
}));
|
|
16570
17102
|
const nameComponent = rename ? /*#__PURE__*/React__default.createElement(NameEdit, {
|
|
16571
17103
|
drawingId: drawingId,
|
|
16572
17104
|
objId: (currProd == null ? void 0 : currProd.id) || -1,
|
|
@@ -16581,12 +17113,7 @@ const AssemblyTreeHeader = ({
|
|
|
16581
17113
|
size: "small",
|
|
16582
17114
|
icon: /*#__PURE__*/React__default.createElement(LeftOutlined, null),
|
|
16583
17115
|
onClick: () => api.assemblyTree.goBack(drawingId)
|
|
16584
|
-
}), nameComponent), /*#__PURE__*/React__default.createElement(Space, null, /*#__PURE__*/React__default.createElement(
|
|
16585
|
-
overlay: menu
|
|
16586
|
-
}, /*#__PURE__*/React__default.createElement(Button, {
|
|
16587
|
-
icon: /*#__PURE__*/React__default.createElement(ExportOutlined, null),
|
|
16588
|
-
size: "small"
|
|
16589
|
-
})), mode === EditMode.Assembly && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
17116
|
+
}), nameComponent), /*#__PURE__*/React__default.createElement(Space, null, exportComponent, mode === EditMode.Assembly && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
16590
17117
|
title: "Convert to subassembly"
|
|
16591
17118
|
}, /*#__PURE__*/React__default.createElement(Button, {
|
|
16592
17119
|
onClick: () => setShowNameChoice(true),
|
|
@@ -16767,6 +17294,7 @@ const Entity = ({
|
|
|
16767
17294
|
const isActive = useDrawing(drawingId, d => d.plugin.active.feature === constraintId);
|
|
16768
17295
|
const hover = useComponentInteraction(drawingId, state => state.api);
|
|
16769
17296
|
const [rename, setRename] = React__default.useState(false);
|
|
17297
|
+
const [isMenuHovered, setIsMenuHovered] = React__default.useState(false);
|
|
16770
17298
|
const menuItems = useMenuItems$2(drawingId, constraintId, isActive, setRename);
|
|
16771
17299
|
const onNameClick = React__default.useCallback(() => {
|
|
16772
17300
|
getDrawing(drawingId).api.plugin.setActiveFeature(constraintId);
|
|
@@ -16790,12 +17318,11 @@ const Entity = ({
|
|
|
16790
17318
|
onMouseLeave: onMouseLeave
|
|
16791
17319
|
});
|
|
16792
17320
|
return /*#__PURE__*/React__default.createElement(HoveredDiv, {
|
|
16793
|
-
|
|
16794
|
-
|
|
16795
|
-
padding: '4px 10px'
|
|
16796
|
-
}
|
|
17321
|
+
hovered: isMenuHovered,
|
|
17322
|
+
bordered: true
|
|
16797
17323
|
}, /*#__PURE__*/React__default.createElement(Space, null, nameComponent), /*#__PURE__*/React__default.createElement(Menu, {
|
|
16798
|
-
items: menuItems
|
|
17324
|
+
items: menuItems,
|
|
17325
|
+
onVisibleChange: setIsMenuHovered
|
|
16799
17326
|
}));
|
|
16800
17327
|
}; // TODO: Create external component
|
|
16801
17328
|
|
|
@@ -16929,7 +17456,8 @@ const ColorPicker = ({
|
|
|
16929
17456
|
const geomApi = getDrawing(drawingId).api.geometry;
|
|
16930
17457
|
geomApi.setConfig(solidId, {
|
|
16931
17458
|
meshes: {
|
|
16932
|
-
color: undefined
|
|
17459
|
+
color: undefined,
|
|
17460
|
+
opacity: undefined
|
|
16933
17461
|
}
|
|
16934
17462
|
});
|
|
16935
17463
|
setShowPicker(false);
|
|
@@ -16939,7 +17467,8 @@ const ColorPicker = ({
|
|
|
16939
17467
|
const geomApi = getDrawing(drawingId).api.geometry;
|
|
16940
17468
|
geomApi.setConfig(solidId, {
|
|
16941
17469
|
meshes: {
|
|
16942
|
-
color: undefined
|
|
17470
|
+
color: undefined,
|
|
17471
|
+
opacity: undefined
|
|
16943
17472
|
}
|
|
16944
17473
|
});
|
|
16945
17474
|
setUColor({
|
|
@@ -17045,12 +17574,11 @@ const Solid = ({
|
|
|
17045
17574
|
}) || -1;
|
|
17046
17575
|
const ccSolid = useDrawing(drawingId, d => d.structure.tree[solidOwner]);
|
|
17047
17576
|
const [rename, setRename] = React__default.useState(false);
|
|
17577
|
+
const [isMenuHovered, setIsMenuHovered] = React__default.useState(false);
|
|
17048
17578
|
const menuItems = useMenuItems(setRename);
|
|
17049
17579
|
return /*#__PURE__*/React__default.createElement(HoveredDiv, {
|
|
17050
|
-
|
|
17051
|
-
|
|
17052
|
-
padding: '4px 10px'
|
|
17053
|
-
}
|
|
17580
|
+
hovered: isMenuHovered,
|
|
17581
|
+
bordered: true
|
|
17054
17582
|
}, /*#__PURE__*/React__default.createElement(Space, null, /*#__PURE__*/React__default.createElement(EyeComponent, {
|
|
17055
17583
|
drawingId: drawingId,
|
|
17056
17584
|
solidId: solidId
|
|
@@ -17063,7 +17591,8 @@ const Solid = ({
|
|
|
17063
17591
|
drawingId: drawingId,
|
|
17064
17592
|
solidId: solidId
|
|
17065
17593
|
}), /*#__PURE__*/React__default.createElement(Menu, {
|
|
17066
|
-
items: menuItems
|
|
17594
|
+
items: menuItems,
|
|
17595
|
+
onVisibleChange: setIsMenuHovered
|
|
17067
17596
|
})));
|
|
17068
17597
|
}; // TODO: Create external component
|
|
17069
17598
|
|
|
@@ -17212,9 +17741,9 @@ const Spinner = styled.div`
|
|
|
17212
17741
|
transform: translateZ(0);
|
|
17213
17742
|
`;
|
|
17214
17743
|
|
|
17215
|
-
function ownKeys$
|
|
17744
|
+
function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
17216
17745
|
|
|
17217
|
-
function _objectSpread$
|
|
17746
|
+
function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
17218
17747
|
const LoadingWrapper = styled.div`
|
|
17219
17748
|
position: absolute;
|
|
17220
17749
|
display: flex;
|
|
@@ -17235,7 +17764,7 @@ const LoadingScreen = ({
|
|
|
17235
17764
|
children
|
|
17236
17765
|
}) => {
|
|
17237
17766
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
17238
|
-
style: _objectSpread$
|
|
17767
|
+
style: _objectSpread$5(_objectSpread$5({}, style), {}, {
|
|
17239
17768
|
position: 'relative'
|
|
17240
17769
|
})
|
|
17241
17770
|
}, isLoading && /*#__PURE__*/React__default.createElement(LoadingWrapper, null, /*#__PURE__*/React__default.createElement(Spinner, null), /*#__PURE__*/React__default.createElement("div", null, "Loading...")), children);
|
|
@@ -17379,9 +17908,9 @@ const useResize = (x, y, width, height, onResize) => {
|
|
|
17379
17908
|
|
|
17380
17909
|
const _excluded = ["id", "modalState", "dispatch", "visible", "children", "title", "initialWidth", "initialHeight", "initialX", "initialY", "resizable", "minPosition", "maxPosition"];
|
|
17381
17910
|
|
|
17382
|
-
function ownKeys$
|
|
17911
|
+
function ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
17383
17912
|
|
|
17384
|
-
function _objectSpread$
|
|
17913
|
+
function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
17385
17914
|
const modalStyle = {
|
|
17386
17915
|
margin: 0,
|
|
17387
17916
|
paddingBottom: 0,
|
|
@@ -17451,7 +17980,7 @@ function DraggableModalInnerNonMemo(_ref) {
|
|
|
17451
17980
|
width,
|
|
17452
17981
|
height
|
|
17453
17982
|
} = modalState;
|
|
17454
|
-
const style = useMemo(() => _objectSpread$
|
|
17983
|
+
const style = useMemo(() => _objectSpread$4(_objectSpread$4({}, modalStyle), {}, {
|
|
17455
17984
|
top: y,
|
|
17456
17985
|
left: x,
|
|
17457
17986
|
height: resizable ? height : 'auto'
|
|
@@ -17461,14 +17990,14 @@ function DraggableModalInnerNonMemo(_ref) {
|
|
|
17461
17990
|
type: 'focus',
|
|
17462
17991
|
id
|
|
17463
17992
|
}), [id, dispatch]);
|
|
17464
|
-
const onDragWithID = useCallback(args => dispatch(_objectSpread$
|
|
17993
|
+
const onDragWithID = useCallback(args => dispatch(_objectSpread$4(_objectSpread$4({
|
|
17465
17994
|
type: 'drag',
|
|
17466
17995
|
id
|
|
17467
17996
|
}, args), {}, {
|
|
17468
17997
|
minPosition,
|
|
17469
17998
|
maxPosition
|
|
17470
17999
|
})), [dispatch, id, minPosition, maxPosition]);
|
|
17471
|
-
const onResizeWithID = useCallback(args => dispatch(_objectSpread$
|
|
18000
|
+
const onResizeWithID = useCallback(args => dispatch(_objectSpread$4({
|
|
17472
18001
|
type: 'resize',
|
|
17473
18002
|
id
|
|
17474
18003
|
}, args)), [dispatch, id]);
|
|
@@ -17507,9 +18036,9 @@ const getWindowSize = () => ({
|
|
|
17507
18036
|
|
|
17508
18037
|
const clamp = (min, max, value) => Math.max(min, Math.min(max, value));
|
|
17509
18038
|
|
|
17510
|
-
function ownKeys$
|
|
18039
|
+
function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
17511
18040
|
|
|
17512
|
-
function _objectSpread$
|
|
18041
|
+
function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
17513
18042
|
|
|
17514
18043
|
const mapObject = (o, f) => Object.assign({}, ...Object.keys(o).map(k => ({
|
|
17515
18044
|
[k]: f(o[k])
|
|
@@ -17609,10 +18138,10 @@ const draggableModalReducer = (state, action) => {
|
|
|
17609
18138
|
switch (action.type) {
|
|
17610
18139
|
case 'resize':
|
|
17611
18140
|
const size = clampResize(state.windowSize.width, state.windowSize.height, action.x, action.y, action.width, action.height);
|
|
17612
|
-
return _objectSpread$
|
|
18141
|
+
return _objectSpread$3(_objectSpread$3({}, state), {}, {
|
|
17613
18142
|
maxZIndex: getNextZIndex(state, action.id),
|
|
17614
|
-
modals: _objectSpread$
|
|
17615
|
-
[action.id]: _objectSpread$
|
|
18143
|
+
modals: _objectSpread$3(_objectSpread$3({}, state.modals), {}, {
|
|
18144
|
+
[action.id]: _objectSpread$3(_objectSpread$3(_objectSpread$3({}, state.modals[action.id]), size), {}, {
|
|
17616
18145
|
zIndex: getNextZIndex(state, action.id)
|
|
17617
18146
|
})
|
|
17618
18147
|
})
|
|
@@ -17620,10 +18149,10 @@ const draggableModalReducer = (state, action) => {
|
|
|
17620
18149
|
|
|
17621
18150
|
case 'drag':
|
|
17622
18151
|
const modal = state.modals[action.id];
|
|
17623
|
-
return _objectSpread$
|
|
18152
|
+
return _objectSpread$3(_objectSpread$3({}, state), {}, {
|
|
17624
18153
|
maxZIndex: getNextZIndex(state, action.id),
|
|
17625
|
-
modals: _objectSpread$
|
|
17626
|
-
[action.id]: _objectSpread$
|
|
18154
|
+
modals: _objectSpread$3(_objectSpread$3({}, state.modals), {}, {
|
|
18155
|
+
[action.id]: _objectSpread$3(_objectSpread$3(_objectSpread$3({}, state.modals[action.id]), clampDrag(action.x, action.y, state.modals[action.id].width || 0, state.modals[action.id].height || 0, modal.maxPosition.x ? Math.min(modal.maxPosition.x, state.windowSize.width) : state.windowSize.width, modal.maxPosition.y ? Math.min(modal.maxPosition.y, state.windowSize.height) : state.windowSize.height, ((_action$minPosition = action.minPosition) == null ? void 0 : _action$minPosition.x) || 0, ((_action$minPosition2 = action.minPosition) == null ? void 0 : _action$minPosition2.y) || 0)), {}, {
|
|
17627
18156
|
zIndex: getNextZIndex(state, action.id)
|
|
17628
18157
|
})
|
|
17629
18158
|
})
|
|
@@ -17643,10 +18172,10 @@ const draggableModalReducer = (state, action) => {
|
|
|
17643
18172
|
// modalState.height || 0,
|
|
17644
18173
|
// )
|
|
17645
18174
|
|
|
17646
|
-
return _objectSpread$
|
|
18175
|
+
return _objectSpread$3(_objectSpread$3({}, state), {}, {
|
|
17647
18176
|
maxZIndex: state.maxZIndex + 1,
|
|
17648
|
-
modals: _objectSpread$
|
|
17649
|
-
[action.id]: _objectSpread$
|
|
18177
|
+
modals: _objectSpread$3(_objectSpread$3({}, state.modals), {}, {
|
|
18178
|
+
[action.id]: _objectSpread$3(_objectSpread$3(_objectSpread$3({}, modalState_), position), {}, {
|
|
17650
18179
|
// ...size,
|
|
17651
18180
|
zIndex: state.maxZIndex + 1,
|
|
17652
18181
|
visible: true
|
|
@@ -17657,10 +18186,10 @@ const draggableModalReducer = (state, action) => {
|
|
|
17657
18186
|
|
|
17658
18187
|
case 'focus':
|
|
17659
18188
|
const modalState = state.modals[action.id];
|
|
17660
|
-
return _objectSpread$
|
|
18189
|
+
return _objectSpread$3(_objectSpread$3({}, state), {}, {
|
|
17661
18190
|
maxZIndex: state.maxZIndex + 1,
|
|
17662
|
-
modals: _objectSpread$
|
|
17663
|
-
[action.id]: _objectSpread$
|
|
18191
|
+
modals: _objectSpread$3(_objectSpread$3({}, state.modals), {}, {
|
|
18192
|
+
[action.id]: _objectSpread$3(_objectSpread$3({}, modalState), {}, {
|
|
17664
18193
|
zIndex: state.maxZIndex + 1
|
|
17665
18194
|
})
|
|
17666
18195
|
})
|
|
@@ -17669,9 +18198,9 @@ const draggableModalReducer = (state, action) => {
|
|
|
17669
18198
|
case 'hide':
|
|
17670
18199
|
{
|
|
17671
18200
|
const modalState_ = state.modals[action.id];
|
|
17672
|
-
return _objectSpread$
|
|
17673
|
-
modals: _objectSpread$
|
|
17674
|
-
[action.id]: _objectSpread$
|
|
18201
|
+
return _objectSpread$3(_objectSpread$3({}, state), {}, {
|
|
18202
|
+
modals: _objectSpread$3(_objectSpread$3({}, state.modals), {}, {
|
|
18203
|
+
[action.id]: _objectSpread$3(_objectSpread$3({}, modalState_), {}, {
|
|
17675
18204
|
visible: false
|
|
17676
18205
|
})
|
|
17677
18206
|
})
|
|
@@ -17679,26 +18208,26 @@ const draggableModalReducer = (state, action) => {
|
|
|
17679
18208
|
}
|
|
17680
18209
|
|
|
17681
18210
|
case 'mount':
|
|
17682
|
-
const initialState = getInitialModalState(_objectSpread$
|
|
17683
|
-
return _objectSpread$
|
|
18211
|
+
const initialState = getInitialModalState(_objectSpread$3({}, action.intialState));
|
|
18212
|
+
return _objectSpread$3(_objectSpread$3({}, state), {}, {
|
|
17684
18213
|
maxZIndex: state.maxZIndex + 1,
|
|
17685
|
-
modals: _objectSpread$
|
|
17686
|
-
[action.id]: _objectSpread$
|
|
18214
|
+
modals: _objectSpread$3(_objectSpread$3({}, state.modals), {}, {
|
|
18215
|
+
[action.id]: _objectSpread$3(_objectSpread$3(_objectSpread$3({}, state.modals[action.id]), initialState), {}, {
|
|
17687
18216
|
zIndex: state.maxZIndex + 1
|
|
17688
18217
|
})
|
|
17689
18218
|
})
|
|
17690
18219
|
});
|
|
17691
18220
|
|
|
17692
18221
|
case 'unmount':
|
|
17693
|
-
const modalsClone = _objectSpread$
|
|
18222
|
+
const modalsClone = _objectSpread$3({}, state.modals);
|
|
17694
18223
|
|
|
17695
18224
|
delete modalsClone[action.id];
|
|
17696
|
-
return _objectSpread$
|
|
18225
|
+
return _objectSpread$3(_objectSpread$3({}, state), {}, {
|
|
17697
18226
|
modals: modalsClone
|
|
17698
18227
|
});
|
|
17699
18228
|
|
|
17700
18229
|
case 'windowResize':
|
|
17701
|
-
return _objectSpread$
|
|
18230
|
+
return _objectSpread$3(_objectSpread$3({}, state), {}, {
|
|
17702
18231
|
windowSize: action.size,
|
|
17703
18232
|
modals: mapObject(state.modals, modalState_ => {
|
|
17704
18233
|
if (!modalState_.visible) {
|
|
@@ -17714,24 +18243,24 @@ const draggableModalReducer = (state, action) => {
|
|
|
17714
18243
|
// modalState.height || 0,
|
|
17715
18244
|
// )
|
|
17716
18245
|
|
|
17717
|
-
return _objectSpread$
|
|
18246
|
+
return _objectSpread$3(_objectSpread$3({}, modalState_), position);
|
|
17718
18247
|
})
|
|
17719
18248
|
});
|
|
17720
18249
|
|
|
17721
18250
|
case 'updateMinPosition':
|
|
17722
|
-
return _objectSpread$
|
|
17723
|
-
modals: _objectSpread$
|
|
17724
|
-
[action.id]: _objectSpread$
|
|
17725
|
-
minPosition: _objectSpread$
|
|
18251
|
+
return _objectSpread$3(_objectSpread$3({}, state), {}, {
|
|
18252
|
+
modals: _objectSpread$3(_objectSpread$3({}, state.modals), {}, {
|
|
18253
|
+
[action.id]: _objectSpread$3(_objectSpread$3({}, state.modals[action.id]), {}, {
|
|
18254
|
+
minPosition: _objectSpread$3(_objectSpread$3({}, state.modals[action.id].minPosition), action.value)
|
|
17726
18255
|
})
|
|
17727
18256
|
})
|
|
17728
18257
|
});
|
|
17729
18258
|
|
|
17730
18259
|
case 'updateMaxPosition':
|
|
17731
|
-
return _objectSpread$
|
|
17732
|
-
modals: _objectSpread$
|
|
17733
|
-
[action.id]: _objectSpread$
|
|
17734
|
-
maxPosition: _objectSpread$
|
|
18260
|
+
return _objectSpread$3(_objectSpread$3({}, state), {}, {
|
|
18261
|
+
modals: _objectSpread$3(_objectSpread$3({}, state.modals), {}, {
|
|
18262
|
+
[action.id]: _objectSpread$3(_objectSpread$3({}, state.modals[action.id]), {}, {
|
|
18263
|
+
maxPosition: _objectSpread$3(_objectSpread$3({}, state.modals[action.id].maxPosition), action.value)
|
|
17735
18264
|
})
|
|
17736
18265
|
})
|
|
17737
18266
|
});
|
|
@@ -17744,9 +18273,9 @@ const draggableModalReducer = (state, action) => {
|
|
|
17744
18273
|
var css_248z = "/**\n * NOTE: This is not compiled.\n */\n\n.ant-design-draggable-modal {\n pointer-events: none;\n overflow: hidden !important;\n}\n\n.ant-design-draggable-modal .ant-modal {\n display: flex;\n max-width: none;\n transform-origin: 50% 50% !important;\n}\n\n.ant-design-draggable-modal .ant-modal-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n.ant-design-draggable-modal .ant-modal-header {\n flex: 0;\n padding: 0;\n}\n\n.ant-design-draggable-modal .ant-modal-footer {\n flex: 0;\n padding: 16px;\n}\n\n.ant-design-draggable-modal .ant-design-draggable-modal-title {\n cursor: move;\n padding: 16px;\n}\n\n.ant-design-draggable-modal .ant-design-draggable-modal-title::before {\n content: '\\00a0';\n}\n\n.ant-design-draggable-modal .ant-modal-body {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n}\n\n.ant-design-draggable-modal-resize-handle-inner {\n width: 12px;\n right: 14px;\n border: 2px solid grey;\n height: 12px;\n bottom: 14px;\n position: absolute;\n border-top: 0;\n border-left: 0;\n}\n\n.ant-design-draggable-modal-resize-handle {\n right: -10px;\n width: 44px;\n bottom: -10px;\n cursor: se-resize;\n height: 44px;\n position: absolute;\n}\n";
|
|
17745
18274
|
styleInject(css_248z);
|
|
17746
18275
|
|
|
17747
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
18276
|
+
function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
17748
18277
|
|
|
17749
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
18278
|
+
function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
17750
18279
|
const DraggableModal = props => {
|
|
17751
18280
|
// Get the unique ID of this modal.
|
|
17752
18281
|
const id = useUID(); // Get modal provider.
|
|
@@ -17781,7 +18310,7 @@ const DraggableModal = props => {
|
|
|
17781
18310
|
maxPosition
|
|
17782
18311
|
} = props;
|
|
17783
18312
|
React.useEffect(() => {
|
|
17784
|
-
const value = _objectSpread({
|
|
18313
|
+
const value = _objectSpread$2({
|
|
17785
18314
|
x: null,
|
|
17786
18315
|
y: null
|
|
17787
18316
|
}, maxPosition);
|
|
@@ -17796,7 +18325,7 @@ const DraggableModal = props => {
|
|
|
17796
18325
|
minPosition
|
|
17797
18326
|
} = props;
|
|
17798
18327
|
React.useEffect(() => {
|
|
17799
|
-
const value = _objectSpread({
|
|
18328
|
+
const value = _objectSpread$2({
|
|
17800
18329
|
x: null,
|
|
17801
18330
|
y: null
|
|
17802
18331
|
}, minPosition);
|
|
@@ -17862,15 +18391,17 @@ const FPluginWindow = ({
|
|
|
17862
18391
|
const FeaturePlugin = ({
|
|
17863
18392
|
drawingId
|
|
17864
18393
|
}) => {
|
|
17865
|
-
const activeFeature = useDrawing(drawingId, d => d.plugin.active.feature);
|
|
18394
|
+
const activeFeature = useDrawing(drawingId, d => d.plugin.active.feature); // Feature plugins are lazy loaded, so it's possible that recently activated feature plugins hasn't been created yet
|
|
18395
|
+
|
|
18396
|
+
const isCreated = usePluginExists(drawingId, activeFeature || -1);
|
|
17866
18397
|
const name = useDrawing(drawingId, d => {
|
|
17867
|
-
if (!activeFeature) return '';
|
|
18398
|
+
if (!activeFeature || !isCreated) return '';
|
|
17868
18399
|
const objId = d.plugin.refs[activeFeature].objectId;
|
|
17869
18400
|
const plugin = d.structure.tree[objId];
|
|
17870
18401
|
return (plugin == null ? void 0 : plugin.name) || '';
|
|
17871
18402
|
});
|
|
17872
18403
|
const pluginAPI = getDrawing(drawingId).api.plugin;
|
|
17873
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(DraggableModalProvider, null, activeFeature && /*#__PURE__*/React__default.createElement(DraggableModal, {
|
|
18404
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(DraggableModalProvider, null, activeFeature && isCreated && /*#__PURE__*/React__default.createElement(DraggableModal, {
|
|
17874
18405
|
visible: true,
|
|
17875
18406
|
cancelButtonProps: {
|
|
17876
18407
|
hidden: true
|
|
@@ -17999,7 +18530,7 @@ const ViewPlugButtons = ({
|
|
|
17999
18530
|
}));
|
|
18000
18531
|
};
|
|
18001
18532
|
|
|
18002
|
-
const Icon = ({
|
|
18533
|
+
const Icon$1 = ({
|
|
18003
18534
|
url
|
|
18004
18535
|
}) => {
|
|
18005
18536
|
return /*#__PURE__*/React__default.createElement("svg", {
|
|
@@ -18048,20 +18579,20 @@ const useOptionCommands = drawingId => {
|
|
|
18048
18579
|
const commands = React__default.useMemo(() => {
|
|
18049
18580
|
return [{
|
|
18050
18581
|
label: 'Zoom fit',
|
|
18051
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18582
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18052
18583
|
url: img$q
|
|
18053
18584
|
}),
|
|
18054
18585
|
command: () => zoomToFit(drawingId)
|
|
18055
18586
|
}, {
|
|
18056
18587
|
label: 'Meshes',
|
|
18057
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18588
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18058
18589
|
url: img$p
|
|
18059
18590
|
}),
|
|
18060
18591
|
isChecked: showFaces,
|
|
18061
18592
|
command: () => setShowFaces(!showFaces)
|
|
18062
18593
|
}, {
|
|
18063
18594
|
label: 'Wireframe',
|
|
18064
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18595
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18065
18596
|
url: img$n
|
|
18066
18597
|
}),
|
|
18067
18598
|
isChecked: showWireframe,
|
|
@@ -18069,14 +18600,14 @@ const useOptionCommands = drawingId => {
|
|
|
18069
18600
|
command: () => setShowWireframe(!showWireframe)
|
|
18070
18601
|
}, {
|
|
18071
18602
|
label: 'Edges',
|
|
18072
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18603
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18073
18604
|
url: img$o
|
|
18074
18605
|
}),
|
|
18075
18606
|
isChecked: showEdges,
|
|
18076
18607
|
command: () => setShowEdges(!showEdges)
|
|
18077
18608
|
}, {
|
|
18078
18609
|
label: 'Vertices',
|
|
18079
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18610
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18080
18611
|
url: img$E
|
|
18081
18612
|
}),
|
|
18082
18613
|
isChecked: showVertices,
|
|
@@ -18172,136 +18703,136 @@ const PartModeCmds = (drawingId, rootId) => {
|
|
|
18172
18703
|
return {
|
|
18173
18704
|
Sketch: {
|
|
18174
18705
|
label: 'Sketch',
|
|
18175
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18706
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18176
18707
|
url: img$w
|
|
18177
18708
|
}),
|
|
18178
18709
|
callback: wrapper(() => ccAPI.sketcher.createSketch(drawingId, rootId))
|
|
18179
18710
|
},
|
|
18180
18711
|
Work: [{
|
|
18181
18712
|
label: 'Workpoint',
|
|
18182
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18713
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18183
18714
|
url: img$m
|
|
18184
18715
|
}),
|
|
18185
18716
|
callback: wrapper(() => featureApi.createWorkPoint(drawingId, rootId))
|
|
18186
18717
|
}, {
|
|
18187
18718
|
label: 'Workaxis',
|
|
18188
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18719
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18189
18720
|
url: img$l
|
|
18190
18721
|
}),
|
|
18191
18722
|
callback: wrapper(() => featureApi.createWorkAxis(drawingId, rootId))
|
|
18192
18723
|
}, {
|
|
18193
18724
|
label: 'Workplane',
|
|
18194
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18725
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18195
18726
|
url: img$k
|
|
18196
18727
|
}),
|
|
18197
18728
|
callback: wrapper(() => featureApi.createWorkPlane(drawingId, rootId))
|
|
18198
18729
|
}, {
|
|
18199
18730
|
label: 'WCsys',
|
|
18200
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18731
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18201
18732
|
url: img$j
|
|
18202
18733
|
}),
|
|
18203
18734
|
callback: wrapper(() => featureApi.createWorkCoordSystem(drawingId, rootId))
|
|
18204
18735
|
}],
|
|
18205
18736
|
Solid: [{
|
|
18206
18737
|
label: 'Extrusion',
|
|
18207
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18738
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18208
18739
|
url: img$G
|
|
18209
18740
|
}),
|
|
18210
18741
|
callback: wrapper(() => featureApi.createExtrusion(drawingId, rootId))
|
|
18211
18742
|
}, {
|
|
18212
18743
|
label: 'Revolve',
|
|
18213
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18744
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18214
18745
|
url: img$F
|
|
18215
18746
|
}),
|
|
18216
18747
|
callback: wrapper(() => featureApi.createRevolve(drawingId, rootId))
|
|
18217
18748
|
}],
|
|
18218
18749
|
Boolean: {
|
|
18219
18750
|
label: 'Boolean',
|
|
18220
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18751
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18221
18752
|
url: img$i
|
|
18222
18753
|
}),
|
|
18223
18754
|
callback: wrapper(() => featureApi.createBooleanOperation(drawingId, rootId))
|
|
18224
18755
|
},
|
|
18225
18756
|
Slice: {
|
|
18226
18757
|
label: 'Slice',
|
|
18227
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18758
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18228
18759
|
url: img$f
|
|
18229
18760
|
}),
|
|
18230
18761
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, CCClasses.CCSlice, 'Slice'))
|
|
18231
18762
|
},
|
|
18232
18763
|
Edge: [{
|
|
18233
18764
|
label: 'Fillet',
|
|
18234
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18765
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18235
18766
|
url: img$h
|
|
18236
18767
|
}),
|
|
18237
18768
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, CCClasses.CCConstantRadiusFillet, 'Fillet'))
|
|
18238
18769
|
}, {
|
|
18239
18770
|
label: 'Chamfer',
|
|
18240
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18771
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18241
18772
|
url: img$g
|
|
18242
18773
|
}),
|
|
18243
18774
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, CCClasses.CCChamfer, 'Chamfer'))
|
|
18244
18775
|
}],
|
|
18245
18776
|
Patterns: [{
|
|
18246
18777
|
label: 'Linear pattern',
|
|
18247
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18778
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18248
18779
|
url: img$e
|
|
18249
18780
|
}),
|
|
18250
18781
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, CCClasses.CCLinearPattern, 'Linear pattern'))
|
|
18251
18782
|
}, {
|
|
18252
18783
|
label: 'Circular pattern',
|
|
18253
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18784
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18254
18785
|
url: img$d
|
|
18255
18786
|
}),
|
|
18256
18787
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, CCClasses.CCCircularPattern, 'Circular pattern'))
|
|
18257
18788
|
}],
|
|
18258
18789
|
Translation: [{
|
|
18259
18790
|
label: 'Translation',
|
|
18260
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18791
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18261
18792
|
url: img$c
|
|
18262
18793
|
}),
|
|
18263
18794
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, CCClasses.CCTranslation, 'Translate'))
|
|
18264
18795
|
}, {
|
|
18265
18796
|
label: 'Rotation',
|
|
18266
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18797
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18267
18798
|
url: img$b
|
|
18268
18799
|
}),
|
|
18269
18800
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, CCClasses.CCRotation, 'Rotate'))
|
|
18270
18801
|
}, {
|
|
18271
18802
|
label: 'Transformation by Csys',
|
|
18272
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18803
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18273
18804
|
url: img$a
|
|
18274
18805
|
}),
|
|
18275
18806
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, CCClasses.CCTransformationByCSys, 'Transform by Csys'))
|
|
18276
18807
|
}],
|
|
18277
18808
|
BasicShapes: [{
|
|
18278
18809
|
label: 'Add Box',
|
|
18279
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18810
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18280
18811
|
url: img$n
|
|
18281
18812
|
}),
|
|
18282
18813
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, 'CC_Box', 'Box'))
|
|
18283
18814
|
}, {
|
|
18284
18815
|
label: 'Add Sphere',
|
|
18285
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18816
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18286
18817
|
url: img$9
|
|
18287
18818
|
}),
|
|
18288
18819
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, 'CC_Sphere', 'Sphere'))
|
|
18289
18820
|
}, {
|
|
18290
18821
|
label: 'Add Cylinder',
|
|
18291
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18822
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18292
18823
|
url: img$8
|
|
18293
18824
|
}),
|
|
18294
18825
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, 'CC_Cylinder', 'Cylinder'))
|
|
18295
18826
|
}, {
|
|
18296
18827
|
label: 'Add Cone',
|
|
18297
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18828
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18298
18829
|
url: img$7
|
|
18299
18830
|
}),
|
|
18300
18831
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, 'CC_Cone', 'Cone'))
|
|
18301
18832
|
}],
|
|
18302
18833
|
Import: {
|
|
18303
18834
|
label: 'Import',
|
|
18304
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18835
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18305
18836
|
url: img$r
|
|
18306
18837
|
}),
|
|
18307
18838
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, CCClasses.CCImport, 'Import'))
|
|
@@ -18356,49 +18887,49 @@ const AssemblyModeCmds = (drawingId, rootId) => {
|
|
|
18356
18887
|
return {
|
|
18357
18888
|
FastenedOrigin: {
|
|
18358
18889
|
label: 'Add Fastened Origin',
|
|
18359
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18890
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18360
18891
|
url: img$6
|
|
18361
18892
|
}),
|
|
18362
18893
|
callback: wrapper(addFastenedOrigin)
|
|
18363
18894
|
},
|
|
18364
18895
|
Fastened: {
|
|
18365
18896
|
label: 'Add Fastened',
|
|
18366
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18897
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18367
18898
|
url: img$5
|
|
18368
18899
|
}),
|
|
18369
18900
|
callback: wrapper(addFastened)
|
|
18370
18901
|
},
|
|
18371
18902
|
Slider: {
|
|
18372
18903
|
label: 'Add Slider',
|
|
18373
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18904
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18374
18905
|
url: img$4
|
|
18375
18906
|
}),
|
|
18376
18907
|
callback: wrapper(addSlider)
|
|
18377
18908
|
},
|
|
18378
18909
|
Revolute: {
|
|
18379
18910
|
label: 'Add Revolute',
|
|
18380
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18911
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18381
18912
|
url: img$3
|
|
18382
18913
|
}),
|
|
18383
18914
|
callback: wrapper(addRevolute)
|
|
18384
18915
|
},
|
|
18385
18916
|
Cylindrical: {
|
|
18386
18917
|
label: 'Add Cylindrical',
|
|
18387
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18918
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18388
18919
|
url: img$2
|
|
18389
18920
|
}),
|
|
18390
18921
|
callback: wrapper(addCylindrical)
|
|
18391
18922
|
},
|
|
18392
18923
|
Planar: {
|
|
18393
18924
|
label: 'Add Planar',
|
|
18394
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18925
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18395
18926
|
url: img$1
|
|
18396
18927
|
}),
|
|
18397
18928
|
callback: wrapper(addPlanar)
|
|
18398
18929
|
},
|
|
18399
18930
|
Parallel: {
|
|
18400
18931
|
label: 'Add Parallel',
|
|
18401
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18932
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18402
18933
|
url: img
|
|
18403
18934
|
}),
|
|
18404
18935
|
callback: wrapper(addParallel)
|
|
@@ -18646,6 +19177,258 @@ const HoveredConstraintDisplay = ({
|
|
|
18646
19177
|
}))));
|
|
18647
19178
|
};
|
|
18648
19179
|
|
|
19180
|
+
function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
19181
|
+
|
|
19182
|
+
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
19183
|
+
|
|
19184
|
+
function createApi(set) {
|
|
19185
|
+
return {
|
|
19186
|
+
setMsg: (msgId, msg) => set(prev => _objectSpread$1(_objectSpread$1({}, prev), {}, {
|
|
19187
|
+
msgs: _objectSpread$1(_objectSpread$1({}, prev.msgs), {}, {
|
|
19188
|
+
[msgId]: msg
|
|
19189
|
+
})
|
|
19190
|
+
})),
|
|
19191
|
+
deleteMsg: msgId => set(prev => {
|
|
19192
|
+
const newMsgs = _objectSpread$1({}, prev.msgs);
|
|
19193
|
+
|
|
19194
|
+
delete newMsgs[msgId];
|
|
19195
|
+
return _objectSpread$1(_objectSpread$1({}, prev), {}, {
|
|
19196
|
+
msgs: newMsgs
|
|
19197
|
+
});
|
|
19198
|
+
}),
|
|
19199
|
+
setShown: () => {
|
|
19200
|
+
set(prev => {
|
|
19201
|
+
const msgs = _objectSpread$1({}, prev.msgs);
|
|
19202
|
+
|
|
19203
|
+
Object.keys(msgs).forEach(msgId => {
|
|
19204
|
+
msgs[msgId].isShown = true;
|
|
19205
|
+
});
|
|
19206
|
+
return _objectSpread$1(_objectSpread$1({}, prev), {}, {
|
|
19207
|
+
msgs
|
|
19208
|
+
});
|
|
19209
|
+
});
|
|
19210
|
+
}
|
|
19211
|
+
};
|
|
19212
|
+
} // Buerli can store only single message in store.
|
|
19213
|
+
// But it will be convenient for the user to save all messages
|
|
19214
|
+
// and provide possibility to look through all messages came from the server.
|
|
19215
|
+
|
|
19216
|
+
|
|
19217
|
+
const useMsgStore = create((set, get) => ({
|
|
19218
|
+
msgs: {},
|
|
19219
|
+
api: createApi(set)
|
|
19220
|
+
}));
|
|
19221
|
+
|
|
19222
|
+
const blankZIndex = 1000;
|
|
19223
|
+
const BlankDiv = ({
|
|
19224
|
+
onClick
|
|
19225
|
+
}) => {
|
|
19226
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
19227
|
+
onClick: onClick,
|
|
19228
|
+
style: {
|
|
19229
|
+
zIndex: blankZIndex,
|
|
19230
|
+
position: 'fixed',
|
|
19231
|
+
top: 0,
|
|
19232
|
+
left: 0,
|
|
19233
|
+
bottom: 0,
|
|
19234
|
+
right: 0
|
|
19235
|
+
}
|
|
19236
|
+
});
|
|
19237
|
+
};
|
|
19238
|
+
|
|
19239
|
+
function getBorderColor(msg) {
|
|
19240
|
+
if (msg.isShown) return '#dddddd';
|
|
19241
|
+
if (msg.type === 'success') return '#b7eb8f';
|
|
19242
|
+
if (msg.type === 'error') return '#ffccc7';
|
|
19243
|
+
if (msg.type === 'warning') return '#ffe58f';
|
|
19244
|
+
if (msg.type === 'busy' || msg.type === 'info') return '#91d5ff';
|
|
19245
|
+
return '#91d5ff';
|
|
19246
|
+
}
|
|
19247
|
+
|
|
19248
|
+
function getBackGrColor(msg) {
|
|
19249
|
+
if (msg.isShown) return '#ffffff';
|
|
19250
|
+
if (msg.type === 'success') return '#f6ffed';
|
|
19251
|
+
if (msg.type === 'error') return '#fff2f0';
|
|
19252
|
+
if (msg.type === 'warning') return '#fffbe6';
|
|
19253
|
+
if (msg.type === 'busy' || msg.type === 'info') return '#e6f7ff';
|
|
19254
|
+
return '#e6f7ff';
|
|
19255
|
+
}
|
|
19256
|
+
|
|
19257
|
+
const MessageWrapper = styled.div`
|
|
19258
|
+
border: 1px solid ${props => getBorderColor(props.msg)};
|
|
19259
|
+
background-color: ${props => getBackGrColor(props.msg)};
|
|
19260
|
+
padding: 8px 15px;
|
|
19261
|
+
margin-bottom: 4px;
|
|
19262
|
+
`;
|
|
19263
|
+
const FlexContainer = styled.div`
|
|
19264
|
+
display: flex;
|
|
19265
|
+
align-items: center;
|
|
19266
|
+
`;
|
|
19267
|
+
const MessageText = styled.div`
|
|
19268
|
+
flex-grow: 1;
|
|
19269
|
+
overflow: auto;
|
|
19270
|
+
overflow-wrap: break-word;
|
|
19271
|
+
max-height: 300px;
|
|
19272
|
+
&::-webkit-scrollbar {
|
|
19273
|
+
width: 12px;
|
|
19274
|
+
}
|
|
19275
|
+
&::-webkit-scrollbar-thumb {
|
|
19276
|
+
border-radius: 10px;
|
|
19277
|
+
background-clip: padding-box;
|
|
19278
|
+
background-color: #d7d7d7;
|
|
19279
|
+
border: 3px solid rgba(0, 0, 0, 0); // Invisible boreder to emulate margin
|
|
19280
|
+
}
|
|
19281
|
+
`;
|
|
19282
|
+
const iconStyle = {
|
|
19283
|
+
marginRight: '8px'
|
|
19284
|
+
};
|
|
19285
|
+
const CloseButton = styled.button`
|
|
19286
|
+
margin-left: 8px;
|
|
19287
|
+
padding: 0;
|
|
19288
|
+
overflow: hidden;
|
|
19289
|
+
font-size: 12px;
|
|
19290
|
+
line-height: 12px;
|
|
19291
|
+
background-color: transparent;
|
|
19292
|
+
border: none;
|
|
19293
|
+
outline: none;
|
|
19294
|
+
cursor: pointer;
|
|
19295
|
+
`;
|
|
19296
|
+
const Time = styled.div`
|
|
19297
|
+
font-size: 0.7rem;
|
|
19298
|
+
color: #adadad;
|
|
19299
|
+
margin-left: 20px;
|
|
19300
|
+
`;
|
|
19301
|
+
|
|
19302
|
+
function getTime(timestamp) {
|
|
19303
|
+
const date = new Date(timestamp);
|
|
19304
|
+
return date.toLocaleTimeString(undefined, {
|
|
19305
|
+
hour: 'numeric',
|
|
19306
|
+
minute: '2-digit',
|
|
19307
|
+
hour12: false
|
|
19308
|
+
});
|
|
19309
|
+
}
|
|
19310
|
+
|
|
19311
|
+
const Icon = ({
|
|
19312
|
+
type
|
|
19313
|
+
}) => {
|
|
19314
|
+
if (type === 'success') return /*#__PURE__*/React__default.createElement(CheckCircleTwoTone, {
|
|
19315
|
+
twoToneColor: "#52c41a",
|
|
19316
|
+
style: iconStyle
|
|
19317
|
+
});
|
|
19318
|
+
if (type === 'error') return /*#__PURE__*/React__default.createElement(CloseCircleTwoTone, {
|
|
19319
|
+
twoToneColor: "#ff4d4f",
|
|
19320
|
+
style: iconStyle
|
|
19321
|
+
});
|
|
19322
|
+
if (type === 'warning') return /*#__PURE__*/React__default.createElement(ExclamationCircleTwoTone, {
|
|
19323
|
+
twoToneColor: "#faad14",
|
|
19324
|
+
style: iconStyle
|
|
19325
|
+
});
|
|
19326
|
+
if (type === 'busy' || type === 'info') return /*#__PURE__*/React__default.createElement(InfoCircleTwoTone, {
|
|
19327
|
+
twoToneColor: "#1890ff",
|
|
19328
|
+
style: iconStyle
|
|
19329
|
+
});
|
|
19330
|
+
return null;
|
|
19331
|
+
};
|
|
19332
|
+
|
|
19333
|
+
const Message = ({
|
|
19334
|
+
msgId
|
|
19335
|
+
}) => {
|
|
19336
|
+
const msg = useMsgStore(s => s.msgs[msgId]) || {};
|
|
19337
|
+
const msgApi = useMsgStore(s => s.api);
|
|
19338
|
+
const type = msg.type === 'busy' ? 'info' : msg.type;
|
|
19339
|
+
return /*#__PURE__*/React__default.createElement(MessageWrapper, {
|
|
19340
|
+
msg: msg
|
|
19341
|
+
}, /*#__PURE__*/React__default.createElement(FlexContainer, null, /*#__PURE__*/React__default.createElement(Icon, {
|
|
19342
|
+
type: type
|
|
19343
|
+
}), /*#__PURE__*/React__default.createElement(MessageText, null, `${msg.title} ${msg.text}`), /*#__PURE__*/React__default.createElement(CloseButton, {
|
|
19344
|
+
onClick: () => msgApi.deleteMsg(msgId)
|
|
19345
|
+
}, /*#__PURE__*/React__default.createElement(CloseOutlined, null))), /*#__PURE__*/React__default.createElement(Time, null, getTime(msg.timestamp)));
|
|
19346
|
+
};
|
|
19347
|
+
|
|
19348
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
19349
|
+
|
|
19350
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
19351
|
+
const MsgListWrapper = styled.div`
|
|
19352
|
+
max-height: 500px;
|
|
19353
|
+
max-width: 400px;
|
|
19354
|
+
min-width: 300px;
|
|
19355
|
+
overflow-y: auto;
|
|
19356
|
+
&::-webkit-scrollbar {
|
|
19357
|
+
width: 12px;
|
|
19358
|
+
}
|
|
19359
|
+
&::-webkit-scrollbar-thumb {
|
|
19360
|
+
border-radius: 10px;
|
|
19361
|
+
background-clip: padding-box;
|
|
19362
|
+
background-color: #cfcfcf;
|
|
19363
|
+
border: 3px solid rgba(0, 0, 0, 0); // Invisible boreder to emulate margin
|
|
19364
|
+
}
|
|
19365
|
+
z-index: ${blankZIndex + 1};
|
|
19366
|
+
`;
|
|
19367
|
+
const MessageList = ({
|
|
19368
|
+
drawingId
|
|
19369
|
+
}) => {
|
|
19370
|
+
const msgsIds = useMsgStore(s => {
|
|
19371
|
+
// Return array of messages with fresh messages in the beginning
|
|
19372
|
+
return Object.keys(s.msgs).sort((id1, id2) => s.msgs[id2].timestamp - s.msgs[id1].timestamp);
|
|
19373
|
+
});
|
|
19374
|
+
const msgsApi = useMsgStore(s => s.api); // Set isShow = true for all messages in store on unmount
|
|
19375
|
+
|
|
19376
|
+
React__default.useEffect(() => {
|
|
19377
|
+
return () => msgsApi.setShown();
|
|
19378
|
+
}, [msgsApi]);
|
|
19379
|
+
return /*#__PURE__*/React__default.createElement(MsgListWrapper, null, msgsIds.map(msgId => /*#__PURE__*/React__default.createElement(Message, {
|
|
19380
|
+
msgId: msgId,
|
|
19381
|
+
key: msgId
|
|
19382
|
+
})));
|
|
19383
|
+
};
|
|
19384
|
+
const Messages = ({
|
|
19385
|
+
drawingId
|
|
19386
|
+
}) => {
|
|
19387
|
+
const [showList, setShowList] = React__default.useState(false);
|
|
19388
|
+
const [showBadge, setShowBadge] = React__default.useState(false);
|
|
19389
|
+
const timestamp = useBuerli(state => state.message.timestamp);
|
|
19390
|
+
const msg = useBuerli(state => state.message.data);
|
|
19391
|
+
const msgsApi = useMsgStore(s => s.api);
|
|
19392
|
+
const msgsLen = useMsgStore(s => Object.keys(s.msgs).length);
|
|
19393
|
+
React__default.useEffect(() => setShowBadge(true), [timestamp]); // Add recent message to msgs store
|
|
19394
|
+
|
|
19395
|
+
React__default.useEffect(() => {
|
|
19396
|
+
if (timestamp && msg && (msg.text || msg.title)) {
|
|
19397
|
+
msgsApi.setMsg(msg.id, _objectSpread(_objectSpread({}, msg), {}, {
|
|
19398
|
+
timestamp,
|
|
19399
|
+
isShown: false
|
|
19400
|
+
}));
|
|
19401
|
+
}
|
|
19402
|
+
}, [timestamp, msg, msgsApi]); // Hide list when there is no cached messages
|
|
19403
|
+
|
|
19404
|
+
React__default.useEffect(() => {
|
|
19405
|
+
if (msgsLen === 0) setShowList(false);
|
|
19406
|
+
}, [msgsLen]);
|
|
19407
|
+
const onClick = React__default.useCallback(() => {
|
|
19408
|
+
setShowList(s => !s);
|
|
19409
|
+
setShowBadge(false);
|
|
19410
|
+
}, []);
|
|
19411
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
19412
|
+
style: {
|
|
19413
|
+
display: 'flex',
|
|
19414
|
+
flexDirection: 'column',
|
|
19415
|
+
alignItems: 'flex-end'
|
|
19416
|
+
}
|
|
19417
|
+
}, showList && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(MessageList, {
|
|
19418
|
+
drawingId: drawingId
|
|
19419
|
+
}), /*#__PURE__*/React__default.createElement(BlankDiv, {
|
|
19420
|
+
onClick: () => setShowList(false)
|
|
19421
|
+
})), /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
19422
|
+
title: "Messages"
|
|
19423
|
+
}, /*#__PURE__*/React__default.createElement(Badge, {
|
|
19424
|
+
dot: showBadge
|
|
19425
|
+
}, /*#__PURE__*/React__default.createElement(Button, {
|
|
19426
|
+
size: "small",
|
|
19427
|
+
icon: /*#__PURE__*/React__default.createElement(UnorderedListOutlined, null),
|
|
19428
|
+
onClick: onClick
|
|
19429
|
+
}))));
|
|
19430
|
+
};
|
|
19431
|
+
|
|
18649
19432
|
const EditDrawing = ({
|
|
18650
19433
|
drawingId
|
|
18651
19434
|
}) => {
|
|
@@ -18676,7 +19459,7 @@ const EditDrawing = ({
|
|
|
18676
19459
|
}
|
|
18677
19460
|
}), /*#__PURE__*/React__default.createElement("div", {
|
|
18678
19461
|
style: {
|
|
18679
|
-
|
|
19462
|
+
flexGrow: 1,
|
|
18680
19463
|
overflow: 'hidden'
|
|
18681
19464
|
}
|
|
18682
19465
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -18784,7 +19567,15 @@ const Drawing = ({
|
|
|
18784
19567
|
}
|
|
18785
19568
|
}), /*#__PURE__*/React__default.createElement(EditDrawing, {
|
|
18786
19569
|
drawingId: drawingId
|
|
18787
|
-
})
|
|
19570
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
19571
|
+
style: {
|
|
19572
|
+
position: 'absolute',
|
|
19573
|
+
bottom: '4px',
|
|
19574
|
+
right: '4px'
|
|
19575
|
+
}
|
|
19576
|
+
}, /*#__PURE__*/React__default.createElement(Messages, {
|
|
19577
|
+
drawingId: drawingId
|
|
19578
|
+
}))));
|
|
18788
19579
|
};
|
|
18789
19580
|
|
|
18790
19581
|
const CAD = ({
|