@buerli.io/react-cad 0.0.22-beta.0 → 0.0.23-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/BlankDiv.d.ts +4 -0
- package/build/components/UI/CAD/common/primitives.d.ts +4 -1
- package/build/components/UI/CAD/store/CADActions.d.ts +4 -0
- package/build/components/UI/CAD/store/CADStore.d.ts +4 -0
- package/build/index.cjs.js +1857 -1008
- package/build/index.js +1862 -1013
- 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,37 +1,38 @@
|
|
|
1
|
-
import { useDrawing, CameraHelper, useBuerli, usePlugin, useCamera, useEmbeddedPlugin, useGeometryInteraction, GlobalTransform,
|
|
1
|
+
import { useDrawing, CameraHelper, useBuerli, getCamera, usePlugin, useCamera, useEmbeddedPlugin, useGeometryInteraction, GlobalTransform, 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
|
-
import { getDrawing, createGraphicItem, GraphicType, MemberType, MathUtils, getPlugin, NOID, BuerliScope, Measure, MeasureResultType
|
|
4
|
+
import { getDrawing, createGraphicItem, GraphicType, MemberType, MathUtils, api, getPlugin, NOID, BuerliScope, Measure, MeasureResultType } from '@buerli.io/core';
|
|
5
5
|
import { CCClasses, ccAPI, ReorientedType, FlipType, BooleanOperationType, ExtrusionType, ChamferType, WorkAxisType, WorkPlaneType, WorkPointType, WorkCoordSystemType, DataType } from '@buerli.io/classcad';
|
|
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
|
|
9
|
+
import { Html, useCursor, Merged } from '@react-three/drei';
|
|
10
|
+
import create from 'zustand';
|
|
11
|
+
import vanilla from 'zustand/vanilla';
|
|
12
|
+
import 'antd/dist/antd.css';
|
|
13
|
+
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
14
|
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
12
15
|
import Switch from 'antd/lib/switch';
|
|
16
|
+
import AntdButton from 'antd/lib/button';
|
|
13
17
|
import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
|
|
14
18
|
import styled, { keyframes } from 'styled-components';
|
|
15
19
|
import Tooltip from 'antd/lib/tooltip';
|
|
16
20
|
import RadioGroupImpl from 'antd/lib/radio/group';
|
|
17
21
|
import RadioButtonImpl from 'antd/lib/radio/radioButton';
|
|
22
|
+
import { Menu as Menu$1, Dropdown, Input, Typography, Space, Table, Tabs, Divider as Divider$1, Button, Tooltip as Tooltip$1, Modal, Badge } from 'antd';
|
|
18
23
|
import guid from 'uuid';
|
|
19
24
|
import shallow from 'zustand/shallow';
|
|
20
25
|
import { Geometry } from 'three-stdlib';
|
|
21
26
|
import SelectImpl from 'antd/lib/select';
|
|
22
27
|
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
|
-
import create from 'zustand';
|
|
26
|
-
import vanilla from 'zustand/vanilla';
|
|
27
28
|
import { useUID } from 'react-uid';
|
|
28
29
|
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);
|
|
@@ -867,6 +878,133 @@ const isAngular = dim => {
|
|
|
867
878
|
return dim.class === CCClasses.CCAngularDimension || dim.class === CCClasses.CCAngularFeatureDimension || dim.class === CCClasses.CCAngularRefDimension;
|
|
868
879
|
};
|
|
869
880
|
|
|
881
|
+
const zoomToFit = drawingId => {
|
|
882
|
+
var _getCamera;
|
|
883
|
+
|
|
884
|
+
const drawing = getDrawing(drawingId);
|
|
885
|
+
const camApi = (_getCamera = getCamera(drawingId)) == null ? void 0 : _getCamera.api;
|
|
886
|
+
|
|
887
|
+
if (!drawing || !camApi) {
|
|
888
|
+
return;
|
|
889
|
+
}
|
|
890
|
+
|
|
891
|
+
const {
|
|
892
|
+
structure,
|
|
893
|
+
api: drawingApi
|
|
894
|
+
} = drawing;
|
|
895
|
+
const {
|
|
896
|
+
root,
|
|
897
|
+
currentProduct,
|
|
898
|
+
currentNode
|
|
899
|
+
} = structure;
|
|
900
|
+
let currRoot = currentNode || currentProduct || root;
|
|
901
|
+
|
|
902
|
+
if (currentProduct && structure.tree[currentProduct].class === 'CC_Part') {
|
|
903
|
+
currRoot = currentProduct;
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
const bounds = drawingApi.structure.calculateProductBounds(currRoot);
|
|
907
|
+
camApi.setZoom('fit', bounds);
|
|
908
|
+
};
|
|
909
|
+
|
|
910
|
+
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; }
|
|
911
|
+
|
|
912
|
+
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; }
|
|
913
|
+
const appApi = (set, get) => ({
|
|
914
|
+
assemblyTree: {
|
|
915
|
+
startProdEditing: (drawingId, objId) => {
|
|
916
|
+
set(state => {
|
|
917
|
+
let res = [];
|
|
918
|
+
const curNode = api.getState().drawing.refs[drawingId].structure.currentNode;
|
|
919
|
+
res = state.assemblyTree.prodStack;
|
|
920
|
+
curNode && res.push(curNode);
|
|
921
|
+
return _objectSpread$k(_objectSpread$k({}, state), {}, {
|
|
922
|
+
assemblyTree: {
|
|
923
|
+
prodStack: [...res]
|
|
924
|
+
}
|
|
925
|
+
});
|
|
926
|
+
});
|
|
927
|
+
ccAPI.assemblyBuilder.setCurrentNode(drawingId, objId).then(() => zoomToFit(drawingId)).catch();
|
|
928
|
+
},
|
|
929
|
+
goBack: drawingId => {
|
|
930
|
+
const prodStack = get().assemblyTree.prodStack;
|
|
931
|
+
const prevProd = prodStack[prodStack.length - 1];
|
|
932
|
+
if (!prevProd) return;
|
|
933
|
+
set(state => {
|
|
934
|
+
const res = state.assemblyTree.prodStack;
|
|
935
|
+
res.pop();
|
|
936
|
+
return _objectSpread$k(_objectSpread$k({}, state), {}, {
|
|
937
|
+
assemblyTree: {
|
|
938
|
+
prodStack: [...res]
|
|
939
|
+
}
|
|
940
|
+
});
|
|
941
|
+
});
|
|
942
|
+
ccAPI.assemblyBuilder.setCurrentNode(drawingId, prevProd).then(() => zoomToFit(drawingId)).catch();
|
|
943
|
+
},
|
|
944
|
+
clearProdStack: () => {
|
|
945
|
+
set(state => _objectSpread$k(_objectSpread$k({}, state), {}, {
|
|
946
|
+
assemblyTree: {
|
|
947
|
+
prodStack: []
|
|
948
|
+
}
|
|
949
|
+
}));
|
|
950
|
+
}
|
|
951
|
+
},
|
|
952
|
+
blankDiv: {
|
|
953
|
+
show: callback => {
|
|
954
|
+
set(state => _objectSpread$k(_objectSpread$k({}, state), {}, {
|
|
955
|
+
blankDiv: {
|
|
956
|
+
isActive: true,
|
|
957
|
+
onClose: callback
|
|
958
|
+
}
|
|
959
|
+
}));
|
|
960
|
+
},
|
|
961
|
+
hide: () => {
|
|
962
|
+
set(state => _objectSpread$k(_objectSpread$k({}, state), {}, {
|
|
963
|
+
blankDiv: {
|
|
964
|
+
isActive: false,
|
|
965
|
+
onClose: undefined
|
|
966
|
+
}
|
|
967
|
+
}));
|
|
968
|
+
}
|
|
969
|
+
}
|
|
970
|
+
});
|
|
971
|
+
|
|
972
|
+
const createAppState = (set, get) => ({
|
|
973
|
+
assemblyTree: {
|
|
974
|
+
prodStack: []
|
|
975
|
+
},
|
|
976
|
+
blankDiv: {
|
|
977
|
+
isActive: false,
|
|
978
|
+
onClose: undefined
|
|
979
|
+
},
|
|
980
|
+
api: appApi(set, get)
|
|
981
|
+
});
|
|
982
|
+
|
|
983
|
+
const CADApi = vanilla((set, get) => createAppState(set, get));
|
|
984
|
+
const useCADStore = create(CADApi);
|
|
985
|
+
const getCADState = CADApi.getState;
|
|
986
|
+
|
|
987
|
+
const blankZIndex = 1000;
|
|
988
|
+
const BlankDiv = () => {
|
|
989
|
+
const isActive = useCADStore(s => s.blankDiv.isActive);
|
|
990
|
+
const onClick = React__default.useCallback(() => {
|
|
991
|
+
const cadState = getCADState();
|
|
992
|
+
cadState.blankDiv.onClose && cadState.blankDiv.onClose();
|
|
993
|
+
cadState.api.blankDiv.hide();
|
|
994
|
+
}, []);
|
|
995
|
+
return isActive ? /*#__PURE__*/React__default.createElement("div", {
|
|
996
|
+
onClick: onClick,
|
|
997
|
+
style: {
|
|
998
|
+
zIndex: blankZIndex,
|
|
999
|
+
position: 'fixed',
|
|
1000
|
+
top: 0,
|
|
1001
|
+
left: 0,
|
|
1002
|
+
bottom: 0,
|
|
1003
|
+
right: 0
|
|
1004
|
+
}
|
|
1005
|
+
}) : null;
|
|
1006
|
+
};
|
|
1007
|
+
|
|
870
1008
|
const mainColor = 0x424242;
|
|
871
1009
|
const lineWidth$1 = 0.5;
|
|
872
1010
|
const arrowSize = 5;
|
|
@@ -890,7 +1028,7 @@ const TextValue = ({
|
|
|
890
1028
|
backgroundColor: backgroundColor ? `#${backgroundColor.toString(16)}` : undefined,
|
|
891
1029
|
color: `#${mainColor.toString(16)}`,
|
|
892
1030
|
fontSize: '17px',
|
|
893
|
-
cursor: '
|
|
1031
|
+
cursor: 'text'
|
|
894
1032
|
}
|
|
895
1033
|
}, value)));
|
|
896
1034
|
};
|
|
@@ -927,6 +1065,12 @@ const DimValue = ({
|
|
|
927
1065
|
return expr ? expr + ' (' + value.toFixed(2) + ')' : value.toFixed(2);
|
|
928
1066
|
}, [master, dimension, memberName]);
|
|
929
1067
|
const [editMode, setEditMode] = React__default.useState(false);
|
|
1068
|
+
React__default.useEffect(() => {
|
|
1069
|
+
if (editMode) {
|
|
1070
|
+
getCADState().api.blankDiv.show(() => setEditMode(false));
|
|
1071
|
+
return () => getCADState().api.blankDiv.hide();
|
|
1072
|
+
}
|
|
1073
|
+
}, [editMode, setEditMode]);
|
|
930
1074
|
const update = React__default.useCallback(() => {
|
|
931
1075
|
const master_ = getDrawing(drawingId).structure.tree[masterId];
|
|
932
1076
|
|
|
@@ -969,7 +1113,7 @@ const DimValue = ({
|
|
|
969
1113
|
return /*#__PURE__*/React__default.createElement("group", {
|
|
970
1114
|
position: position
|
|
971
1115
|
}, /*#__PURE__*/React__default.createElement(Html, {
|
|
972
|
-
zIndexRange: [
|
|
1116
|
+
zIndexRange: [blankZIndex + 1, blankZIndex + 1],
|
|
973
1117
|
style: {
|
|
974
1118
|
marginTop: '22px'
|
|
975
1119
|
},
|
|
@@ -984,7 +1128,7 @@ const DimValue = ({
|
|
|
984
1128
|
backgroundColor: backgroundColor ? `#${backgroundColor.toString(16)}` : undefined,
|
|
985
1129
|
color: `#${mainColor.toString(16)}`,
|
|
986
1130
|
fontSize: '17px',
|
|
987
|
-
cursor: '
|
|
1131
|
+
cursor: 'text'
|
|
988
1132
|
}
|
|
989
1133
|
}, caption) : /*#__PURE__*/React__default.createElement("div", {
|
|
990
1134
|
style: {
|
|
@@ -996,14 +1140,14 @@ const DimValue = ({
|
|
|
996
1140
|
allowExpr: true
|
|
997
1141
|
})))));
|
|
998
1142
|
};
|
|
999
|
-
const Line$
|
|
1143
|
+
const Line$2 = ({
|
|
1000
1144
|
start,
|
|
1001
1145
|
end
|
|
1002
1146
|
}) => {
|
|
1003
1147
|
const position = React__default.useMemo(() => new THREE.Vector3().lerpVectors(start, end, 0.5), [start, end]);
|
|
1004
1148
|
const quaternion = React__default.useMemo(() => new THREE.Quaternion().setFromUnitVectors(new THREE.Vector3(0, 1, 0), end.clone().sub(start).normalize()), [start, end]);
|
|
1005
1149
|
const lineLength = start.distanceTo(end);
|
|
1006
|
-
const ref = useScale(position, scaleF => [lineWidth$1 * scaleF, lineLength, lineWidth$1 * scaleF]);
|
|
1150
|
+
const ref = useScale$1(position, scaleF => [lineWidth$1 * scaleF, lineLength, lineWidth$1 * scaleF]);
|
|
1007
1151
|
return lineLength === 0 ? null : /*#__PURE__*/React__default.createElement("mesh", {
|
|
1008
1152
|
ref: ref,
|
|
1009
1153
|
position: position,
|
|
@@ -1026,7 +1170,7 @@ const Arrow$1 = ({
|
|
|
1026
1170
|
// Move arrow that end of the arrow will be at props.end
|
|
1027
1171
|
geomRef.current && geomRef.current.translate(0, -0.5, 0);
|
|
1028
1172
|
}, [geomRef]);
|
|
1029
|
-
const ref = useScale(position, sf => [arrowSize * sf, arrowSize * 2 * sf, arrowSize * sf]);
|
|
1173
|
+
const ref = useScale$1(position, sf => [arrowSize * sf, arrowSize * 2 * sf, arrowSize * sf]);
|
|
1030
1174
|
return /*#__PURE__*/React__default.createElement("mesh", {
|
|
1031
1175
|
ref: ref,
|
|
1032
1176
|
position: position,
|
|
@@ -1055,7 +1199,7 @@ const Arc$1 = ({
|
|
|
1055
1199
|
lines.push(linePos);
|
|
1056
1200
|
}
|
|
1057
1201
|
|
|
1058
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, lines.map((line, i) => /*#__PURE__*/React__default.createElement(Line$
|
|
1202
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, lines.map((line, i) => /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1059
1203
|
key: i,
|
|
1060
1204
|
start: line[0],
|
|
1061
1205
|
end: line[1]
|
|
@@ -1082,7 +1226,9 @@ const PositionHandler = ({
|
|
|
1082
1226
|
const {
|
|
1083
1227
|
camera
|
|
1084
1228
|
} = useThree();
|
|
1085
|
-
const ref = useScale(position, sf => [hRadius$1 * sf, hRadius$1 * sf, hRadius$1 * sf]);
|
|
1229
|
+
const ref = useScale$1(position, sf => [hRadius$1 * sf, hRadius$1 * sf, hRadius$1 * sf]);
|
|
1230
|
+
const [isHovered, setIsHovered] = React__default.useState(false);
|
|
1231
|
+
useCursor(isHovered, 'move');
|
|
1086
1232
|
const onPointerDown = React__default.useCallback(e => {
|
|
1087
1233
|
if (e.buttons !== 1) // Continue only if 'primary' mouse button is pressed
|
|
1088
1234
|
return;
|
|
@@ -1122,6 +1268,10 @@ const PositionHandler = ({
|
|
|
1122
1268
|
te.target.releasePointerCapture(te.pointerId);
|
|
1123
1269
|
te.stopPropagation();
|
|
1124
1270
|
}, [dimId, drawingId, position, setPState]);
|
|
1271
|
+
const onPointerOver = React__default.useCallback(e => {
|
|
1272
|
+
setIsHovered(true);
|
|
1273
|
+
e.stopPropagation();
|
|
1274
|
+
}, []);
|
|
1125
1275
|
const onPointerMove = React__default.useCallback(e => {
|
|
1126
1276
|
if (isPressed.current) {
|
|
1127
1277
|
isDragged.current = true;
|
|
@@ -1131,12 +1281,18 @@ const PositionHandler = ({
|
|
|
1131
1281
|
|
|
1132
1282
|
e.stopPropagation();
|
|
1133
1283
|
}, [setPosition, globalToLocalM, camera]);
|
|
1284
|
+
const onPointerOut = React__default.useCallback(e => {
|
|
1285
|
+
setIsHovered(false);
|
|
1286
|
+
e.stopPropagation();
|
|
1287
|
+
}, []);
|
|
1134
1288
|
return /*#__PURE__*/React__default.createElement("mesh", {
|
|
1135
1289
|
ref: ref,
|
|
1136
1290
|
position: position,
|
|
1137
1291
|
onPointerDown: onPointerDown,
|
|
1138
1292
|
onPointerMove: onPointerMove,
|
|
1139
|
-
onPointerUp: onPointerUp
|
|
1293
|
+
onPointerUp: onPointerUp,
|
|
1294
|
+
onPointerOver: onPointerOver,
|
|
1295
|
+
onPointerOut: onPointerOut
|
|
1140
1296
|
}, /*#__PURE__*/React__default.createElement("sphereGeometry", {
|
|
1141
1297
|
args: [1.5, 16, 16]
|
|
1142
1298
|
}), /*#__PURE__*/React__default.createElement("meshBasicMaterial", {
|
|
@@ -1187,16 +1343,16 @@ const LinearDim = ({
|
|
|
1187
1343
|
endDir: endD
|
|
1188
1344
|
};
|
|
1189
1345
|
}, [members, tmpDimP]);
|
|
1190
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$
|
|
1346
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1191
1347
|
start: startFoot,
|
|
1192
1348
|
end: tmpDimP
|
|
1193
|
-
}), /*#__PURE__*/React__default.createElement(Line$
|
|
1349
|
+
}), /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1194
1350
|
start: tmpDimP,
|
|
1195
1351
|
end: endFoot
|
|
1196
|
-
}), /*#__PURE__*/React__default.createElement(Line$
|
|
1352
|
+
}), /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1197
1353
|
start: startP,
|
|
1198
1354
|
end: startFoot
|
|
1199
|
-
}), /*#__PURE__*/React__default.createElement(Line$
|
|
1355
|
+
}), /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1200
1356
|
start: endP,
|
|
1201
1357
|
end: endFoot
|
|
1202
1358
|
}), /*#__PURE__*/React__default.createElement(Arrow$1, {
|
|
@@ -1242,10 +1398,10 @@ const RadialDim = ({
|
|
|
1242
1398
|
dir: outside ? dir_.multiplyScalar(-1) : dir_
|
|
1243
1399
|
};
|
|
1244
1400
|
}, [members, tmpDimP]);
|
|
1245
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$
|
|
1401
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1246
1402
|
start: centerP,
|
|
1247
1403
|
end: endP
|
|
1248
|
-
}), /*#__PURE__*/React__default.createElement(Line$
|
|
1404
|
+
}), /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1249
1405
|
start: endP,
|
|
1250
1406
|
end: dimP
|
|
1251
1407
|
}), /*#__PURE__*/React__default.createElement(Arrow$1, {
|
|
@@ -1289,10 +1445,10 @@ const DiametralDim = ({
|
|
|
1289
1445
|
dirEnd: outside ? dir.clone().multiplyScalar(-1) : dir
|
|
1290
1446
|
};
|
|
1291
1447
|
}, [members, tmpDimP]);
|
|
1292
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$
|
|
1448
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1293
1449
|
start: startP,
|
|
1294
1450
|
end: tmpDimP
|
|
1295
|
-
}), /*#__PURE__*/React__default.createElement(Line$
|
|
1451
|
+
}), /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1296
1452
|
start: tmpDimP,
|
|
1297
1453
|
end: endP
|
|
1298
1454
|
}), /*#__PURE__*/React__default.createElement(Arrow$1, {
|
|
@@ -1368,10 +1524,10 @@ const AngularDim = ({
|
|
|
1368
1524
|
endL2: extendCrn ? corner : end
|
|
1369
1525
|
};
|
|
1370
1526
|
}, [members, tmpDimP]);
|
|
1371
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$
|
|
1527
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1372
1528
|
start: startL1,
|
|
1373
1529
|
end: startFoot
|
|
1374
|
-
}), /*#__PURE__*/React__default.createElement(Line$
|
|
1530
|
+
}), /*#__PURE__*/React__default.createElement(Line$2, {
|
|
1375
1531
|
start: endFoot,
|
|
1376
1532
|
end: endL2
|
|
1377
1533
|
}), /*#__PURE__*/React__default.createElement(Arc$1, {
|
|
@@ -1446,13 +1602,14 @@ var DimGraphics$1 = DimGraphics;
|
|
|
1446
1602
|
/**
|
|
1447
1603
|
* @see https://reactjs.org/docs/error-boundaries.html
|
|
1448
1604
|
*/
|
|
1449
|
-
|
|
1605
|
+
const isDev = process.env.NODE_ENV === 'development';
|
|
1450
1606
|
/**
|
|
1451
1607
|
* Wrapper for components which are exported from package.
|
|
1452
1608
|
* It's intended to catch all errors and show friendly fallback to the user instead of error log.
|
|
1453
1609
|
* By default it returns null in error case. You have to pass showHtml prop to show message to the user.
|
|
1454
1610
|
* TODO: implement message showing.
|
|
1455
1611
|
*/
|
|
1612
|
+
|
|
1456
1613
|
class ErrorBoundary extends React__default.Component {
|
|
1457
1614
|
constructor(props) {
|
|
1458
1615
|
super(props);
|
|
@@ -1481,7 +1638,7 @@ class ErrorBoundary extends React__default.Component {
|
|
|
1481
1638
|
Object.values(warns).forEach(w => {
|
|
1482
1639
|
if (w) {
|
|
1483
1640
|
hasWarning = true;
|
|
1484
|
-
console.warn(w.caption);
|
|
1641
|
+
isDev && console.warn(w.caption);
|
|
1485
1642
|
}
|
|
1486
1643
|
});
|
|
1487
1644
|
}
|
|
@@ -1929,9 +2086,9 @@ var index$w = /*#__PURE__*/Object.freeze({
|
|
|
1929
2086
|
useDimensionSetId: useDimensionSetId
|
|
1930
2087
|
});
|
|
1931
2088
|
|
|
1932
|
-
function ownKeys$
|
|
2089
|
+
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; }
|
|
1933
2090
|
|
|
1934
|
-
function _objectSpread$
|
|
2091
|
+
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; }
|
|
1935
2092
|
/**
|
|
1936
2093
|
* Implies the following data structure:
|
|
1937
2094
|
* data: {
|
|
@@ -2034,7 +2191,7 @@ function useMateSelection(drawingId, matePath, csysId) {
|
|
|
2034
2191
|
}));
|
|
2035
2192
|
const handlers = React__default.useMemo(() => {
|
|
2036
2193
|
if (isSelectable) {
|
|
2037
|
-
return _objectSpread$
|
|
2194
|
+
return _objectSpread$j(_objectSpread$j({}, hHandlers), sHandlers);
|
|
2038
2195
|
}
|
|
2039
2196
|
|
|
2040
2197
|
return {};
|
|
@@ -2050,9 +2207,9 @@ function useMateSelection(drawingId, matePath, csysId) {
|
|
|
2050
2207
|
}, [isHovered, isSelected, isSelectable, handlers]);
|
|
2051
2208
|
}
|
|
2052
2209
|
|
|
2053
|
-
function ownKeys$
|
|
2210
|
+
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; }
|
|
2054
2211
|
|
|
2055
|
-
function _objectSpread$
|
|
2212
|
+
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; }
|
|
2056
2213
|
/**
|
|
2057
2214
|
* Implies the following data structure:
|
|
2058
2215
|
* data: {
|
|
@@ -2071,7 +2228,8 @@ const createTreeObjSelItem = (productId, object) => {
|
|
|
2071
2228
|
data: {
|
|
2072
2229
|
object
|
|
2073
2230
|
},
|
|
2074
|
-
label
|
|
2231
|
+
label,
|
|
2232
|
+
removeCondition: d => d.structure.tree[object.id] === undefined
|
|
2075
2233
|
};
|
|
2076
2234
|
};
|
|
2077
2235
|
|
|
@@ -2180,7 +2338,7 @@ function useTreeObjSelection(drawingId, objId) {
|
|
|
2180
2338
|
const isSelected = useIsSelected(drawingId, objId);
|
|
2181
2339
|
const handlers = React__default.useMemo(() => {
|
|
2182
2340
|
if (isSelectable) {
|
|
2183
|
-
return _objectSpread$
|
|
2341
|
+
return _objectSpread$i(_objectSpread$i({}, hHandlers), sHandlers);
|
|
2184
2342
|
}
|
|
2185
2343
|
|
|
2186
2344
|
return {};
|
|
@@ -5004,7 +5162,7 @@ const Root$g = ({
|
|
|
5004
5162
|
}));
|
|
5005
5163
|
};
|
|
5006
5164
|
|
|
5007
|
-
const Point$
|
|
5165
|
+
const Point$2 = ({
|
|
5008
5166
|
position,
|
|
5009
5167
|
radius,
|
|
5010
5168
|
color,
|
|
@@ -5076,7 +5234,7 @@ const OriginPoint = ({
|
|
|
5076
5234
|
handlers,
|
|
5077
5235
|
userData
|
|
5078
5236
|
}) => {
|
|
5079
|
-
return /*#__PURE__*/React__default.createElement(Point$
|
|
5237
|
+
return /*#__PURE__*/React__default.createElement(Point$2, {
|
|
5080
5238
|
position: position ? position.clone() : new THREE.Vector3(),
|
|
5081
5239
|
radius: 2,
|
|
5082
5240
|
color: color,
|
|
@@ -5117,7 +5275,7 @@ const Csys = ({
|
|
|
5117
5275
|
userData
|
|
5118
5276
|
}) => {
|
|
5119
5277
|
const position = new THREE.Vector3().setFromMatrixPosition(matrix);
|
|
5120
|
-
const ref = useScale(position.clone(), sf => [2 * sf, 2 * sf, 2 * sf]);
|
|
5278
|
+
const ref = useScale$1(position.clone(), sf => [2 * sf, 2 * sf, 2 * sf]);
|
|
5121
5279
|
return /*#__PURE__*/React__default.createElement("group", _extends({
|
|
5122
5280
|
matrix: matrix,
|
|
5123
5281
|
matrixAutoUpdate: false
|
|
@@ -5156,7 +5314,7 @@ const SelectedCsys = ({
|
|
|
5156
5314
|
userData
|
|
5157
5315
|
}) => {
|
|
5158
5316
|
const position = new THREE.Vector3().setFromMatrixPosition(matrix);
|
|
5159
|
-
const ref = useScale(position.clone(), sf => [2 * sf, 2 * sf, 2 * sf]);
|
|
5317
|
+
const ref = useScale$1(position.clone(), sf => [2 * sf, 2 * sf, 2 * sf]);
|
|
5160
5318
|
return /*#__PURE__*/React__default.createElement("group", _extends({
|
|
5161
5319
|
matrix: matrix,
|
|
5162
5320
|
matrixAutoUpdate: false
|
|
@@ -5231,7 +5389,7 @@ const Distance = ({
|
|
|
5231
5389
|
setShowValue(true);
|
|
5232
5390
|
}
|
|
5233
5391
|
});
|
|
5234
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$
|
|
5392
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$2, {
|
|
5235
5393
|
start: start,
|
|
5236
5394
|
end: end
|
|
5237
5395
|
}), /*#__PURE__*/React__default.createElement(Arrow$1, {
|
|
@@ -5318,10 +5476,10 @@ const Angle = ({
|
|
|
5318
5476
|
setShowValue(true);
|
|
5319
5477
|
}
|
|
5320
5478
|
});
|
|
5321
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$
|
|
5479
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$2, {
|
|
5322
5480
|
start: center,
|
|
5323
5481
|
end: end1
|
|
5324
|
-
}), /*#__PURE__*/React__default.createElement(Line$
|
|
5482
|
+
}), /*#__PURE__*/React__default.createElement(Line$2, {
|
|
5325
5483
|
start: center,
|
|
5326
5484
|
end: end2
|
|
5327
5485
|
}), /*#__PURE__*/React__default.createElement("group", {
|
|
@@ -5348,7 +5506,7 @@ const Position = ({
|
|
|
5348
5506
|
pos,
|
|
5349
5507
|
result
|
|
5350
5508
|
}) => {
|
|
5351
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Point$
|
|
5509
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Point$2, {
|
|
5352
5510
|
position: pos,
|
|
5353
5511
|
radius: 1.5,
|
|
5354
5512
|
color: 0xaf1111
|
|
@@ -5363,7 +5521,7 @@ const Vector = ({
|
|
|
5363
5521
|
end
|
|
5364
5522
|
}) => {
|
|
5365
5523
|
const dir = end.clone().sub(start);
|
|
5366
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$
|
|
5524
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$2, {
|
|
5367
5525
|
start: start,
|
|
5368
5526
|
end: end
|
|
5369
5527
|
}), /*#__PURE__*/React__default.createElement(Arrow$1, {
|
|
@@ -5490,6 +5648,7 @@ let HandlersList;
|
|
|
5490
5648
|
HandlersList["FILLET"] = "fillet";
|
|
5491
5649
|
HandlersList["HOVER"] = "hover";
|
|
5492
5650
|
HandlersList["TRIM"] = "trim";
|
|
5651
|
+
HandlersList["USEREF"] = "useReference";
|
|
5493
5652
|
HandlersList["GSELECTION"] = "globalSelection";
|
|
5494
5653
|
})(HandlersList || (HandlersList = {}));
|
|
5495
5654
|
|
|
@@ -5526,7 +5685,7 @@ const calcPreviewValue = (dir0, dir1, sector, reflex) => {
|
|
|
5526
5685
|
|
|
5527
5686
|
const hRadius = 6;
|
|
5528
5687
|
const TmpPositionHandler = props => {
|
|
5529
|
-
const ref = useScale(props.position, sf => [hRadius * sf, hRadius * sf, hRadius * sf]);
|
|
5688
|
+
const ref = useScale$1(props.position, sf => [hRadius * sf, hRadius * sf, hRadius * sf]);
|
|
5530
5689
|
return /*#__PURE__*/React__default.createElement("mesh", {
|
|
5531
5690
|
ref: ref,
|
|
5532
5691
|
position: props.position
|
|
@@ -5638,10 +5797,10 @@ const TmpAngularDim = props => {
|
|
|
5638
5797
|
};
|
|
5639
5798
|
}, [dir0, dir1, center, dimPos, reflex]);
|
|
5640
5799
|
const text = radiansToDegrees(previewValue).toFixed(2);
|
|
5641
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$
|
|
5800
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line$2, {
|
|
5642
5801
|
start: cornerP,
|
|
5643
5802
|
end: startFoot
|
|
5644
|
-
}), /*#__PURE__*/React__default.createElement(Line$
|
|
5803
|
+
}), /*#__PURE__*/React__default.createElement(Line$2, {
|
|
5645
5804
|
start: endFoot,
|
|
5646
5805
|
end: cornerP
|
|
5647
5806
|
}), /*#__PURE__*/React__default.createElement(Arc$1, {
|
|
@@ -5702,9 +5861,9 @@ function getSketchState(drawingId, pluginId) {
|
|
|
5702
5861
|
return plugin.state;
|
|
5703
5862
|
}
|
|
5704
5863
|
|
|
5705
|
-
function ownKeys$
|
|
5864
|
+
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; }
|
|
5706
5865
|
|
|
5707
|
-
function _objectSpread$
|
|
5866
|
+
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; }
|
|
5708
5867
|
function CreateAngle(drawingId, pluginId) {
|
|
5709
5868
|
const {
|
|
5710
5869
|
set
|
|
@@ -5754,8 +5913,8 @@ function CreateAngle(drawingId, pluginId) {
|
|
|
5754
5913
|
set(state_ => {
|
|
5755
5914
|
const tmpAngularDimension = state_.tmpObjects[tmpDimensionId];
|
|
5756
5915
|
return {
|
|
5757
|
-
tmpObjects: _objectSpread$
|
|
5758
|
-
[tmpDimensionId]: _objectSpread$
|
|
5916
|
+
tmpObjects: _objectSpread$h(_objectSpread$h({}, state_.tmpObjects), {}, {
|
|
5917
|
+
[tmpDimensionId]: _objectSpread$h(_objectSpread$h({}, tmpAngularDimension), params)
|
|
5759
5918
|
})
|
|
5760
5919
|
};
|
|
5761
5920
|
});
|
|
@@ -5802,7 +5961,7 @@ function CreateAngle(drawingId, pluginId) {
|
|
|
5802
5961
|
const center = linesInfo.center;
|
|
5803
5962
|
const dimPos = center.clone().addScaledVector(dir0.clone().add(dir1).normalize(), 10);
|
|
5804
5963
|
|
|
5805
|
-
const tmpAngularDimension = _objectSpread$
|
|
5964
|
+
const tmpAngularDimension = _objectSpread$h(_objectSpread$h({
|
|
5806
5965
|
class: CCClasses.CCAngularDimension,
|
|
5807
5966
|
id: tmpDimensionId
|
|
5808
5967
|
}, linesInfo), {}, {
|
|
@@ -5882,12 +6041,105 @@ function CreateAngle(drawingId, pluginId) {
|
|
|
5882
6041
|
};
|
|
5883
6042
|
}
|
|
5884
6043
|
|
|
5885
|
-
function ownKeys$
|
|
6044
|
+
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; }
|
|
5886
6045
|
|
|
5887
|
-
function _objectSpread$
|
|
5888
|
-
|
|
5889
|
-
|
|
6046
|
+
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; }
|
|
6047
|
+
let timerId;
|
|
6048
|
+
const hover = (drawingId, pluginId, hoveredId) => {
|
|
6049
|
+
const {
|
|
6050
|
+
state,
|
|
6051
|
+
set
|
|
6052
|
+
} = getPlugin(drawingId, pluginId);
|
|
6053
|
+
const tree = getDrawing(drawingId).structure.tree;
|
|
6054
|
+
const hoveredObject = tree[hoveredId];
|
|
6055
|
+
|
|
6056
|
+
if (!hoveredObject || hoveredObject && hoveredObject.class === CCClasses.CCSketch || state.rubberBandRectangle) {
|
|
6057
|
+
return;
|
|
6058
|
+
}
|
|
6059
|
+
|
|
6060
|
+
if (is2DConstraint(hoveredObject)) {
|
|
6061
|
+
const constraintEntities = hoveredObject.members.entities.members.map(entity => entity.value);
|
|
6062
|
+
set(state_ => {
|
|
6063
|
+
const highlighted = state_.highlighted;
|
|
6064
|
+
const highlightedConstraints = highlighted.filter(id => is2DConstraint(tree[id]) && id !== hoveredId);
|
|
6065
|
+
return {
|
|
6066
|
+
hovered: hoveredId,
|
|
6067
|
+
highlighted: [...highlightedConstraints, hoveredId, ...constraintEntities]
|
|
6068
|
+
};
|
|
6069
|
+
});
|
|
6070
|
+
} else {
|
|
6071
|
+
const linkedConstraints = Object.values(tree).filter(obj => is2DConstraint(obj)).filter(obj => obj.members.entities.members.some(entity => entity.value === hoveredId)).map(obj => obj.id);
|
|
6072
|
+
const constraintsToGeometry = {};
|
|
6073
|
+
linkedConstraints.forEach(id => {
|
|
6074
|
+
constraintsToGeometry[id] = hoveredId;
|
|
6075
|
+
});
|
|
6076
|
+
set(state_ => {
|
|
6077
|
+
return {
|
|
6078
|
+
hovered: hoveredId,
|
|
6079
|
+
highlighted: [hoveredId, ...linkedConstraints],
|
|
6080
|
+
constraintsToGeometry: _objectSpread$g(_objectSpread$g({}, state_.constraintsToGeometry), constraintsToGeometry)
|
|
6081
|
+
};
|
|
6082
|
+
});
|
|
6083
|
+
}
|
|
6084
|
+
|
|
6085
|
+
if (timerId) {
|
|
6086
|
+
window.clearTimeout(timerId);
|
|
6087
|
+
timerId = undefined;
|
|
6088
|
+
}
|
|
6089
|
+
};
|
|
6090
|
+
const unhover = (drawingId, pluginId, hoveredId) => {
|
|
6091
|
+
const {
|
|
6092
|
+
state,
|
|
6093
|
+
set
|
|
6094
|
+
} = getPlugin(drawingId, pluginId);
|
|
6095
|
+
const tree = getDrawing(drawingId).structure.tree;
|
|
6096
|
+
const hoveredObject = tree[hoveredId];
|
|
6097
|
+
|
|
6098
|
+
if (!hoveredObject || hoveredObject && hoveredObject.class === CCClasses.CCSketch || state.rubberBandRectangle) {
|
|
6099
|
+
return;
|
|
6100
|
+
}
|
|
6101
|
+
|
|
6102
|
+
set(state_ => {
|
|
6103
|
+
const highlighted = state_.highlighted;
|
|
6104
|
+
const highlightedConstraints = highlighted.filter(id => is2DConstraint(tree[id]));
|
|
6105
|
+
return {
|
|
6106
|
+
hovered: state_.hovered === hoveredId ? UNDEFINEDID : state_.hovered,
|
|
6107
|
+
highlighted: highlightedConstraints
|
|
6108
|
+
};
|
|
6109
|
+
});
|
|
6110
|
+
|
|
6111
|
+
if (timerId) {
|
|
6112
|
+
window.clearTimeout(timerId);
|
|
6113
|
+
}
|
|
6114
|
+
|
|
6115
|
+
timerId = window.setTimeout(() => {
|
|
6116
|
+
set({
|
|
6117
|
+
highlighted: []
|
|
6118
|
+
});
|
|
6119
|
+
}, 1000);
|
|
6120
|
+
};
|
|
6121
|
+
const select = (drawingId, pluginId, selectedId) => {
|
|
6122
|
+
const {
|
|
6123
|
+
set
|
|
6124
|
+
} = getPlugin(drawingId, pluginId);
|
|
6125
|
+
set(state => {
|
|
6126
|
+
const curSelected = state.selected;
|
|
6127
|
+
|
|
6128
|
+
if (curSelected.indexOf(selectedId) >= 0) {
|
|
6129
|
+
const newSelected = curSelected.filter(id => id !== selectedId);
|
|
6130
|
+
return {
|
|
6131
|
+
selected: newSelected
|
|
6132
|
+
};
|
|
6133
|
+
} else {
|
|
6134
|
+
curSelected.push(selectedId);
|
|
6135
|
+
return {
|
|
6136
|
+
selected: [...curSelected]
|
|
6137
|
+
};
|
|
6138
|
+
}
|
|
6139
|
+
});
|
|
6140
|
+
};
|
|
5890
6141
|
|
|
6142
|
+
function Hover(drawingId, pluginId) {
|
|
5891
6143
|
const filter = object => true;
|
|
5892
6144
|
|
|
5893
6145
|
const destructor = () => {
|
|
@@ -5900,81 +6152,14 @@ function Hover(drawingId, pluginId) {
|
|
|
5900
6152
|
};
|
|
5901
6153
|
|
|
5902
6154
|
const onPointerOver = e => {
|
|
5903
|
-
const {
|
|
5904
|
-
state,
|
|
5905
|
-
set
|
|
5906
|
-
} = getPlugin(drawingId, pluginId);
|
|
5907
6155
|
const hoveredId = e.object.userData.objId;
|
|
5908
|
-
|
|
5909
|
-
const hoveredObject = tree[hoveredId];
|
|
6156
|
+
hover(drawingId, pluginId, hoveredId);
|
|
5910
6157
|
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
6158
|
};
|
|
5946
6159
|
|
|
5947
6160
|
const onPointerOut = e => {
|
|
5948
|
-
const {
|
|
5949
|
-
state,
|
|
5950
|
-
set
|
|
5951
|
-
} = getPlugin(drawingId, pluginId);
|
|
5952
6161
|
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);
|
|
6162
|
+
unhover(drawingId, pluginId, hoveredId);
|
|
5978
6163
|
e.stopPropagation();
|
|
5979
6164
|
};
|
|
5980
6165
|
|
|
@@ -6073,9 +6258,9 @@ const snapDraggedPoints = (diff, drawingId) => {
|
|
|
6073
6258
|
return snapResult;
|
|
6074
6259
|
};
|
|
6075
6260
|
|
|
6076
|
-
function ownKeys$
|
|
6261
|
+
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; }
|
|
6077
6262
|
|
|
6078
|
-
function _objectSpread$
|
|
6263
|
+
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; }
|
|
6079
6264
|
|
|
6080
6265
|
const artifDelay = 16;
|
|
6081
6266
|
|
|
@@ -6262,22 +6447,8 @@ function Drag(drawingId, pluginId) {
|
|
|
6262
6447
|
return;
|
|
6263
6448
|
}
|
|
6264
6449
|
|
|
6265
|
-
|
|
6266
|
-
|
|
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
|
-
});
|
|
6280
|
-
}
|
|
6450
|
+
select(drawingId, pluginId, pressedId);
|
|
6451
|
+
}
|
|
6281
6452
|
|
|
6282
6453
|
clearIgnoreList();
|
|
6283
6454
|
clearDraggedPoints();
|
|
@@ -6363,7 +6534,7 @@ function Drag(drawingId, pluginId) {
|
|
|
6363
6534
|
name: HandlersList.DRAG,
|
|
6364
6535
|
filter,
|
|
6365
6536
|
onDestruct: destructor,
|
|
6366
|
-
pointerHandlers: _objectSpread$
|
|
6537
|
+
pointerHandlers: _objectSpread$f({
|
|
6367
6538
|
onPointerDown,
|
|
6368
6539
|
onPointerUp,
|
|
6369
6540
|
onPointerMove
|
|
@@ -6375,9 +6546,9 @@ function Drag(drawingId, pluginId) {
|
|
|
6375
6546
|
};
|
|
6376
6547
|
}
|
|
6377
6548
|
|
|
6378
|
-
function ownKeys$
|
|
6549
|
+
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; }
|
|
6379
6550
|
|
|
6380
|
-
function _objectSpread$
|
|
6551
|
+
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; }
|
|
6381
6552
|
function DrawPoint(drawingId, pluginId) {
|
|
6382
6553
|
const {
|
|
6383
6554
|
set
|
|
@@ -6446,8 +6617,8 @@ function DrawPoint(drawingId, pluginId) {
|
|
|
6446
6617
|
set(state => {
|
|
6447
6618
|
const tmpPoint = state.tmpObjects[tmpPointId];
|
|
6448
6619
|
return {
|
|
6449
|
-
tmpObjects: _objectSpread$
|
|
6450
|
-
[tmpPointId]: _objectSpread$
|
|
6620
|
+
tmpObjects: _objectSpread$e(_objectSpread$e({}, state.tmpObjects), {}, {
|
|
6621
|
+
[tmpPointId]: _objectSpread$e(_objectSpread$e({}, tmpPoint), {}, {
|
|
6451
6622
|
position: mousePos
|
|
6452
6623
|
})
|
|
6453
6624
|
})
|
|
@@ -6469,9 +6640,9 @@ function DrawPoint(drawingId, pluginId) {
|
|
|
6469
6640
|
};
|
|
6470
6641
|
}
|
|
6471
6642
|
|
|
6472
|
-
function ownKeys$
|
|
6643
|
+
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; }
|
|
6473
6644
|
|
|
6474
|
-
function _objectSpread$
|
|
6645
|
+
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; }
|
|
6475
6646
|
function DrawLine(drawingId, pluginId) {
|
|
6476
6647
|
// Global hooks:
|
|
6477
6648
|
const {
|
|
@@ -6557,7 +6728,7 @@ function DrawLine(drawingId, pluginId) {
|
|
|
6557
6728
|
endPId: tmpEndP.id
|
|
6558
6729
|
};
|
|
6559
6730
|
return {
|
|
6560
|
-
tmpObjects: _objectSpread$
|
|
6731
|
+
tmpObjects: _objectSpread$d(_objectSpread$d({}, state.tmpObjects), {}, {
|
|
6561
6732
|
[tmpStartP.id]: tmpStartP,
|
|
6562
6733
|
[tmpLine.id]: tmpLine
|
|
6563
6734
|
})
|
|
@@ -6595,8 +6766,8 @@ function DrawLine(drawingId, pluginId) {
|
|
|
6595
6766
|
const tmpStartP = state.tmpObjects[tmpStartPId];
|
|
6596
6767
|
const tmpEndP = state.tmpObjects[tmpEndPId];
|
|
6597
6768
|
return {
|
|
6598
|
-
tmpObjects: _objectSpread$
|
|
6599
|
-
[tmpStartPId]: _objectSpread$
|
|
6769
|
+
tmpObjects: _objectSpread$d(_objectSpread$d({}, state.tmpObjects), {}, {
|
|
6770
|
+
[tmpStartPId]: _objectSpread$d(_objectSpread$d({}, tmpStartP), {}, {
|
|
6600
6771
|
position: tmpEndP.position.clone()
|
|
6601
6772
|
})
|
|
6602
6773
|
})
|
|
@@ -6618,8 +6789,8 @@ function DrawLine(drawingId, pluginId) {
|
|
|
6618
6789
|
set(state => {
|
|
6619
6790
|
const tmpEndP = state.tmpObjects[tmpEndPId];
|
|
6620
6791
|
return {
|
|
6621
|
-
tmpObjects: _objectSpread$
|
|
6622
|
-
[tmpEndPId]: _objectSpread$
|
|
6792
|
+
tmpObjects: _objectSpread$d(_objectSpread$d({}, state.tmpObjects), {}, {
|
|
6793
|
+
[tmpEndPId]: _objectSpread$d(_objectSpread$d({}, tmpEndP), {}, {
|
|
6623
6794
|
position: mousePos
|
|
6624
6795
|
})
|
|
6625
6796
|
})
|
|
@@ -6644,9 +6815,9 @@ function DrawLine(drawingId, pluginId) {
|
|
|
6644
6815
|
};
|
|
6645
6816
|
}
|
|
6646
6817
|
|
|
6647
|
-
function ownKeys$
|
|
6818
|
+
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; }
|
|
6648
6819
|
|
|
6649
|
-
function _objectSpread$
|
|
6820
|
+
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; }
|
|
6650
6821
|
function DrawRectangle(drawingId, pluginId) {
|
|
6651
6822
|
// Global hooks:
|
|
6652
6823
|
const {
|
|
@@ -6702,7 +6873,7 @@ function DrawRectangle(drawingId, pluginId) {
|
|
|
6702
6873
|
set(state => {
|
|
6703
6874
|
const tmpPoint11 = state.tmpObjects[tmpPoint11Id];
|
|
6704
6875
|
|
|
6705
|
-
const tmpPoint00 = _objectSpread$
|
|
6876
|
+
const tmpPoint00 = _objectSpread$c(_objectSpread$c({}, state.tmpObjects[tmpPoint00Id]), {}, {
|
|
6706
6877
|
position: tmpPoint11.position.clone()
|
|
6707
6878
|
});
|
|
6708
6879
|
|
|
@@ -6770,7 +6941,7 @@ function DrawRectangle(drawingId, pluginId) {
|
|
|
6770
6941
|
endPId: tmpPoint11.id
|
|
6771
6942
|
};
|
|
6772
6943
|
return {
|
|
6773
|
-
tmpObjects: _objectSpread$
|
|
6944
|
+
tmpObjects: _objectSpread$c(_objectSpread$c({}, state.tmpObjects), {}, {
|
|
6774
6945
|
[tmpPoint00.id]: tmpPoint00,
|
|
6775
6946
|
[tmpPoint01.id]: tmpPoint01,
|
|
6776
6947
|
[tmpPoint10.id]: tmpPoint10,
|
|
@@ -6798,7 +6969,7 @@ function DrawRectangle(drawingId, pluginId) {
|
|
|
6798
6969
|
const tmpPoint11 = state.tmpObjects[tmpPoint11Id];
|
|
6799
6970
|
return {
|
|
6800
6971
|
tmpObjects: {
|
|
6801
|
-
[tmpPoint00Id]: _objectSpread$
|
|
6972
|
+
[tmpPoint00Id]: _objectSpread$c(_objectSpread$c({}, tmpPoint00), {}, {
|
|
6802
6973
|
position: tmpPoint11.position.clone()
|
|
6803
6974
|
})
|
|
6804
6975
|
}
|
|
@@ -6822,8 +6993,8 @@ function DrawRectangle(drawingId, pluginId) {
|
|
|
6822
6993
|
if (additionIndex === 0) {
|
|
6823
6994
|
const tmpPoint00 = state.tmpObjects[tmpPoint00Id];
|
|
6824
6995
|
return {
|
|
6825
|
-
tmpObjects: _objectSpread$
|
|
6826
|
-
[tmpPoint00Id]: _objectSpread$
|
|
6996
|
+
tmpObjects: _objectSpread$c(_objectSpread$c({}, state.tmpObjects), {}, {
|
|
6997
|
+
[tmpPoint00Id]: _objectSpread$c(_objectSpread$c({}, tmpPoint00), {}, {
|
|
6827
6998
|
position: snappedPos
|
|
6828
6999
|
})
|
|
6829
7000
|
})
|
|
@@ -6834,14 +7005,14 @@ function DrawRectangle(drawingId, pluginId) {
|
|
|
6834
7005
|
const tmpPoint10 = state.tmpObjects[tmpPoint10Id];
|
|
6835
7006
|
const tmpPoint11 = state.tmpObjects[tmpPoint11Id];
|
|
6836
7007
|
return {
|
|
6837
|
-
tmpObjects: _objectSpread$
|
|
6838
|
-
[tmpPoint01Id]: _objectSpread$
|
|
7008
|
+
tmpObjects: _objectSpread$c(_objectSpread$c({}, state.tmpObjects), {}, {
|
|
7009
|
+
[tmpPoint01Id]: _objectSpread$c(_objectSpread$c({}, tmpPoint01), {}, {
|
|
6839
7010
|
position: new THREE.Vector3(startPos.x, snappedPos.y, startPos.z)
|
|
6840
7011
|
}),
|
|
6841
|
-
[tmpPoint10Id]: _objectSpread$
|
|
7012
|
+
[tmpPoint10Id]: _objectSpread$c(_objectSpread$c({}, tmpPoint10), {}, {
|
|
6842
7013
|
position: new THREE.Vector3(snappedPos.x, startPos.y, startPos.z)
|
|
6843
7014
|
}),
|
|
6844
|
-
[tmpPoint11Id]: _objectSpread$
|
|
7015
|
+
[tmpPoint11Id]: _objectSpread$c(_objectSpread$c({}, tmpPoint11), {}, {
|
|
6845
7016
|
position: new THREE.Vector3(snappedPos.x, snappedPos.y, startPos.z)
|
|
6846
7017
|
})
|
|
6847
7018
|
})
|
|
@@ -6867,17 +7038,35 @@ function DrawRectangle(drawingId, pluginId) {
|
|
|
6867
7038
|
};
|
|
6868
7039
|
}
|
|
6869
7040
|
|
|
7041
|
+
let scale = 1;
|
|
7042
|
+
function setScale(newScale) {
|
|
7043
|
+
scale = newScale;
|
|
7044
|
+
}
|
|
7045
|
+
function getScale() {
|
|
7046
|
+
return scale;
|
|
7047
|
+
} // The hook sets scale vector to a refered object in useFrame
|
|
7048
|
+
|
|
7049
|
+
function useScale(getVector) {
|
|
7050
|
+
const ref = React__default.useRef();
|
|
7051
|
+
useFrame(args => {
|
|
7052
|
+
if (ref.current) {
|
|
7053
|
+
const newScale = getVector ? getVector(scale) : [scale, scale, scale];
|
|
7054
|
+
ref.current.scale.set(...newScale);
|
|
7055
|
+
}
|
|
7056
|
+
});
|
|
7057
|
+
return ref;
|
|
7058
|
+
}
|
|
7059
|
+
|
|
6870
7060
|
const lineWidth = 0.2;
|
|
6871
7061
|
const pointSize = 0.5;
|
|
6872
7062
|
const arcWidth = 0.2;
|
|
6873
7063
|
const radSegments = 32;
|
|
6874
|
-
const tubeSegments = 6;
|
|
6875
|
-
const cylGeom = new THREE.CylinderGeometry(1, 1, 1, 6);
|
|
6876
|
-
const Line = ({
|
|
7064
|
+
const tubeSegments$1 = 6;
|
|
7065
|
+
const cylGeom$1 = new THREE.CylinderGeometry(1, 1, 1, 6);
|
|
7066
|
+
const Line$1 = ({
|
|
6877
7067
|
start,
|
|
6878
7068
|
end,
|
|
6879
7069
|
width = lineWidth,
|
|
6880
|
-
scale = 1,
|
|
6881
7070
|
materialProps,
|
|
6882
7071
|
meshProps
|
|
6883
7072
|
}) => {
|
|
@@ -6891,24 +7080,26 @@ const Line = ({
|
|
|
6891
7080
|
quaternion: new THREE.Quaternion().setFromUnitVectors(new THREE.Vector3(0, 1, 0), dir)
|
|
6892
7081
|
};
|
|
6893
7082
|
}, [start, end]);
|
|
7083
|
+
const ref = useScale(scale => [width * scale, start.distanceTo(end), width * scale]);
|
|
6894
7084
|
return /*#__PURE__*/React__default.createElement("mesh", _extends({}, meshProps, {
|
|
7085
|
+
ref: ref,
|
|
6895
7086
|
position: position,
|
|
6896
7087
|
quaternion: quaternion,
|
|
6897
|
-
geometry: cylGeom
|
|
6898
|
-
scale: [width * scale, start.distanceTo(end), width * scale]
|
|
7088
|
+
geometry: cylGeom$1
|
|
6899
7089
|
}), /*#__PURE__*/React__default.createElement("meshBasicMaterial", materialProps));
|
|
6900
7090
|
};
|
|
6901
|
-
const Point = ({
|
|
7091
|
+
const Point$1 = ({
|
|
6902
7092
|
position,
|
|
6903
7093
|
size = pointSize,
|
|
6904
|
-
scale = 1,
|
|
6905
7094
|
materialProps,
|
|
6906
7095
|
meshProps
|
|
6907
7096
|
}) => {
|
|
7097
|
+
const ref = useScale(scale => [size * scale, size * scale, size * scale]);
|
|
6908
7098
|
return /*#__PURE__*/React__default.createElement("mesh", _extends({}, meshProps, {
|
|
6909
|
-
position: position
|
|
7099
|
+
position: position,
|
|
7100
|
+
ref: ref
|
|
6910
7101
|
}), /*#__PURE__*/React__default.createElement("sphereGeometry", {
|
|
6911
|
-
args: [
|
|
7102
|
+
args: [1, tubeSegments$1, tubeSegments$1]
|
|
6912
7103
|
}), /*#__PURE__*/React__default.createElement("meshBasicMaterial", materialProps));
|
|
6913
7104
|
};
|
|
6914
7105
|
function getArcAngles(params) {
|
|
@@ -6968,7 +7159,7 @@ const Arc = ({
|
|
|
6968
7159
|
position: center,
|
|
6969
7160
|
quaternion: quaternion
|
|
6970
7161
|
}), /*#__PURE__*/React__default.createElement("torusGeometry", {
|
|
6971
|
-
args: [radius, width * scale, tubeSegments, radSegments, thetaLength]
|
|
7162
|
+
args: [radius, width * scale, tubeSegments$1, radSegments, thetaLength]
|
|
6972
7163
|
}), /*#__PURE__*/React__default.createElement("meshBasicMaterial", _extends({}, materialProps, {
|
|
6973
7164
|
side: clockwise ? THREE.DoubleSide : THREE.FrontSide
|
|
6974
7165
|
})));
|
|
@@ -6984,13 +7175,13 @@ const Circle = ({
|
|
|
6984
7175
|
return /*#__PURE__*/React__default.createElement("mesh", _extends({}, meshProps, {
|
|
6985
7176
|
position: center
|
|
6986
7177
|
}), /*#__PURE__*/React__default.createElement("torusGeometry", {
|
|
6987
|
-
args: [radius, width * scale, tubeSegments, radSegments]
|
|
7178
|
+
args: [radius, width * scale, tubeSegments$1, radSegments]
|
|
6988
7179
|
}), /*#__PURE__*/React__default.createElement("meshBasicMaterial", materialProps));
|
|
6989
7180
|
};
|
|
6990
7181
|
|
|
6991
|
-
function ownKeys$
|
|
7182
|
+
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; }
|
|
6992
7183
|
|
|
6993
|
-
function _objectSpread$
|
|
7184
|
+
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; }
|
|
6994
7185
|
function DrawArc(drawingId, pluginId, arcType) {
|
|
6995
7186
|
// Global hooks:
|
|
6996
7187
|
const {
|
|
@@ -7046,7 +7237,7 @@ function DrawArc(drawingId, pluginId, arcType) {
|
|
|
7046
7237
|
additionIndex = 0;
|
|
7047
7238
|
lastAddedEndPointId = UNDEFINEDID;
|
|
7048
7239
|
set(state => {
|
|
7049
|
-
const tmpStartP = _objectSpread$
|
|
7240
|
+
const tmpStartP = _objectSpread$b(_objectSpread$b({}, state.tmpObjects[tmpStartPId]), {}, {
|
|
7050
7241
|
position: lastMousePos.clone()
|
|
7051
7242
|
});
|
|
7052
7243
|
|
|
@@ -7061,24 +7252,24 @@ function DrawArc(drawingId, pluginId, arcType) {
|
|
|
7061
7252
|
set(state => {
|
|
7062
7253
|
const tmpStartP = state.tmpObjects[tmpStartPId];
|
|
7063
7254
|
|
|
7064
|
-
const tmpEndP = _objectSpread$
|
|
7255
|
+
const tmpEndP = _objectSpread$b(_objectSpread$b({}, state.tmpObjects[tmpEndPId]), {}, {
|
|
7065
7256
|
position: lastMousePos.clone()
|
|
7066
7257
|
});
|
|
7067
7258
|
|
|
7068
7259
|
const centerPos = calculateCenterPoint(tmpStartP.position, lastMousePos, lastMousePos);
|
|
7069
7260
|
|
|
7070
|
-
const tmpCenterP = _objectSpread$
|
|
7261
|
+
const tmpCenterP = _objectSpread$b(_objectSpread$b({}, state.tmpObjects[tmpCenterPId]), {}, {
|
|
7071
7262
|
position: centerPos ? centerPos : lastMousePos.clone()
|
|
7072
7263
|
});
|
|
7073
7264
|
|
|
7074
|
-
const tmpArc = _objectSpread$
|
|
7265
|
+
const tmpArc = _objectSpread$b(_objectSpread$b({}, state.tmpObjects[tmpArcId]), {}, {
|
|
7075
7266
|
// In case centerPos couldn't be calculated, the arc should be drawn as a line
|
|
7076
7267
|
drawAsLine: centerPos === undefined,
|
|
7077
7268
|
clockwise: false
|
|
7078
7269
|
});
|
|
7079
7270
|
|
|
7080
7271
|
return {
|
|
7081
|
-
tmpObjects: _objectSpread$
|
|
7272
|
+
tmpObjects: _objectSpread$b(_objectSpread$b({}, state.tmpObjects), {}, {
|
|
7082
7273
|
[tmpEndP.id]: tmpEndP,
|
|
7083
7274
|
[tmpCenterP.id]: tmpCenterP,
|
|
7084
7275
|
[tmpArc.id]: tmpArc
|
|
@@ -7199,7 +7390,7 @@ function DrawArc(drawingId, pluginId, arcType) {
|
|
|
7199
7390
|
clockwise: false
|
|
7200
7391
|
};
|
|
7201
7392
|
return {
|
|
7202
|
-
tmpObjects: _objectSpread$
|
|
7393
|
+
tmpObjects: _objectSpread$b(_objectSpread$b({}, state.tmpObjects), {}, {
|
|
7203
7394
|
[tmpEndP.id]: tmpEndP,
|
|
7204
7395
|
[tmpCenterP.id]: tmpCenterP,
|
|
7205
7396
|
[tmpArc.id]: tmpArc
|
|
@@ -7228,7 +7419,7 @@ function DrawArc(drawingId, pluginId, arcType) {
|
|
|
7228
7419
|
clockwise: false
|
|
7229
7420
|
};
|
|
7230
7421
|
return {
|
|
7231
|
-
tmpObjects: _objectSpread$
|
|
7422
|
+
tmpObjects: _objectSpread$b(_objectSpread$b({}, state.tmpObjects), {}, {
|
|
7232
7423
|
[tmpCenterP.id]: tmpCenterP,
|
|
7233
7424
|
[tmpArc.id]: tmpArc
|
|
7234
7425
|
})
|
|
@@ -7286,11 +7477,11 @@ function DrawArc(drawingId, pluginId, arcType) {
|
|
|
7286
7477
|
const tmpEndP = state.tmpObjects[tmpEndPId];
|
|
7287
7478
|
const tmpCenterP = state.tmpObjects[tmpCenterPId];
|
|
7288
7479
|
return {
|
|
7289
|
-
tmpObjects: _objectSpread$
|
|
7290
|
-
[tmpStartPId]: _objectSpread$
|
|
7480
|
+
tmpObjects: _objectSpread$b(_objectSpread$b({}, state.tmpObjects), {}, {
|
|
7481
|
+
[tmpStartPId]: _objectSpread$b(_objectSpread$b({}, tmpStartP), {}, {
|
|
7291
7482
|
position: tmpEndP.position.clone()
|
|
7292
7483
|
}),
|
|
7293
|
-
[tmpCenterPId]: _objectSpread$
|
|
7484
|
+
[tmpCenterPId]: _objectSpread$b(_objectSpread$b({}, tmpCenterP), {}, {
|
|
7294
7485
|
position: tmpEndP.position.clone()
|
|
7295
7486
|
})
|
|
7296
7487
|
})
|
|
@@ -7314,8 +7505,8 @@ function DrawArc(drawingId, pluginId, arcType) {
|
|
|
7314
7505
|
if (additionIndex === 0) {
|
|
7315
7506
|
const tmpStartP = state.tmpObjects[tmpStartPId];
|
|
7316
7507
|
return {
|
|
7317
|
-
tmpObjects: _objectSpread$
|
|
7318
|
-
[tmpStartPId]: _objectSpread$
|
|
7508
|
+
tmpObjects: _objectSpread$b(_objectSpread$b({}, state.tmpObjects), {}, {
|
|
7509
|
+
[tmpStartPId]: _objectSpread$b(_objectSpread$b({}, tmpStartP), {}, {
|
|
7319
7510
|
position: lastMousePos.clone()
|
|
7320
7511
|
})
|
|
7321
7512
|
})
|
|
@@ -7327,14 +7518,14 @@ function DrawArc(drawingId, pluginId, arcType) {
|
|
|
7327
7518
|
const tmpCenterP = state.tmpObjects[tmpCenterPId];
|
|
7328
7519
|
const centerPos = calculateCenterPoint(tmpStartP.position, lastMousePos, lastMousePos);
|
|
7329
7520
|
return {
|
|
7330
|
-
tmpObjects: _objectSpread$
|
|
7331
|
-
[tmpEndPId]: _objectSpread$
|
|
7521
|
+
tmpObjects: _objectSpread$b(_objectSpread$b({}, state.tmpObjects), {}, {
|
|
7522
|
+
[tmpEndPId]: _objectSpread$b(_objectSpread$b({}, tmpEndP), {}, {
|
|
7332
7523
|
position: lastMousePos.clone()
|
|
7333
7524
|
}),
|
|
7334
|
-
[tmpCenterPId]: _objectSpread$
|
|
7525
|
+
[tmpCenterPId]: _objectSpread$b(_objectSpread$b({}, tmpCenterP), {}, {
|
|
7335
7526
|
position: centerPos ? centerPos : lastMousePos.clone()
|
|
7336
7527
|
}),
|
|
7337
|
-
[tmpArcId]: _objectSpread$
|
|
7528
|
+
[tmpArcId]: _objectSpread$b(_objectSpread$b({}, tmpArc), {}, {
|
|
7338
7529
|
// In case centerPos couldn't be calculated, the arc should be drawn as a line
|
|
7339
7530
|
drawAsLine: centerPos === undefined,
|
|
7340
7531
|
clockwise: false
|
|
@@ -7348,14 +7539,14 @@ function DrawArc(drawingId, pluginId, arcType) {
|
|
|
7348
7539
|
const tmpCenterP = state.tmpObjects[tmpCenterPId];
|
|
7349
7540
|
const centerPos = calculateCenterPoint(tmpStartP.position, tmpEndP.position, lastMousePos);
|
|
7350
7541
|
return {
|
|
7351
|
-
tmpObjects: _objectSpread$
|
|
7352
|
-
[tmpEndPId]: _objectSpread$
|
|
7542
|
+
tmpObjects: _objectSpread$b(_objectSpread$b({}, state.tmpObjects), {}, {
|
|
7543
|
+
[tmpEndPId]: _objectSpread$b(_objectSpread$b({}, tmpEndP), {}, {
|
|
7353
7544
|
position: arcType === HandlersList.DRAWARCTANGENT ? lastMousePos.clone() : tmpEndP.position
|
|
7354
7545
|
}),
|
|
7355
|
-
[tmpCenterPId]: _objectSpread$
|
|
7546
|
+
[tmpCenterPId]: _objectSpread$b(_objectSpread$b({}, tmpCenterP), {}, {
|
|
7356
7547
|
position: centerPos ? centerPos : lastMousePos.clone()
|
|
7357
7548
|
}),
|
|
7358
|
-
[tmpArcId]: _objectSpread$
|
|
7549
|
+
[tmpArcId]: _objectSpread$b(_objectSpread$b({}, tmpArc), {}, {
|
|
7359
7550
|
// In case centerPos couldn't be calculated, the arc should be drawn as a line
|
|
7360
7551
|
drawAsLine: centerPos === undefined,
|
|
7361
7552
|
clockwise: evaluateClockwise(tmpStartP.position, tmpEndP.position, lastMousePos)
|
|
@@ -7383,9 +7574,9 @@ function DrawArc(drawingId, pluginId, arcType) {
|
|
|
7383
7574
|
};
|
|
7384
7575
|
}
|
|
7385
7576
|
|
|
7386
|
-
function ownKeys$
|
|
7577
|
+
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; }
|
|
7387
7578
|
|
|
7388
|
-
function _objectSpread$
|
|
7579
|
+
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; }
|
|
7389
7580
|
function DrawCircle(drawingId, pluginId) {
|
|
7390
7581
|
const {
|
|
7391
7582
|
set
|
|
@@ -7432,7 +7623,7 @@ function DrawCircle(drawingId, pluginId) {
|
|
|
7432
7623
|
} else {
|
|
7433
7624
|
additionIndex = 0;
|
|
7434
7625
|
set(state => {
|
|
7435
|
-
const tmpCenterP = _objectSpread$
|
|
7626
|
+
const tmpCenterP = _objectSpread$a(_objectSpread$a({}, state.tmpObjects[tmpCenterPId]), {}, {
|
|
7436
7627
|
position: lastMousePos.clone()
|
|
7437
7628
|
});
|
|
7438
7629
|
|
|
@@ -7466,7 +7657,7 @@ function DrawCircle(drawingId, pluginId) {
|
|
|
7466
7657
|
radius: 0.001
|
|
7467
7658
|
};
|
|
7468
7659
|
return {
|
|
7469
|
-
tmpObjects: _objectSpread$
|
|
7660
|
+
tmpObjects: _objectSpread$a(_objectSpread$a({}, state.tmpObjects), {}, {
|
|
7470
7661
|
[tmpCenterP.id]: tmpCenterP,
|
|
7471
7662
|
[tmpCircle.id]: tmpCircle
|
|
7472
7663
|
})
|
|
@@ -7487,7 +7678,7 @@ function DrawCircle(drawingId, pluginId) {
|
|
|
7487
7678
|
const tmpCenterP = state.tmpObjects[tmpCenterPId];
|
|
7488
7679
|
return {
|
|
7489
7680
|
tmpObjects: {
|
|
7490
|
-
[tmpCenterPId]: _objectSpread$
|
|
7681
|
+
[tmpCenterPId]: _objectSpread$a(_objectSpread$a({}, tmpCenterP), {}, {
|
|
7491
7682
|
position: e.point.clone().applyMatrix4(getGlobalToLocalMatrix(drawingId, sketchId))
|
|
7492
7683
|
})
|
|
7493
7684
|
}
|
|
@@ -7511,8 +7702,8 @@ function DrawCircle(drawingId, pluginId) {
|
|
|
7511
7702
|
if (additionIndex === 0) {
|
|
7512
7703
|
const tmpCenterP = state.tmpObjects[tmpCenterPId];
|
|
7513
7704
|
return {
|
|
7514
|
-
tmpObjects: _objectSpread$
|
|
7515
|
-
[tmpCenterPId]: _objectSpread$
|
|
7705
|
+
tmpObjects: _objectSpread$a(_objectSpread$a({}, state.tmpObjects), {}, {
|
|
7706
|
+
[tmpCenterPId]: _objectSpread$a(_objectSpread$a({}, tmpCenterP), {}, {
|
|
7516
7707
|
position: snappedPos || localPos
|
|
7517
7708
|
})
|
|
7518
7709
|
})
|
|
@@ -7521,8 +7712,8 @@ function DrawCircle(drawingId, pluginId) {
|
|
|
7521
7712
|
const tmpCenterP = state.tmpObjects[tmpCenterPId];
|
|
7522
7713
|
const tmpCircle = state.tmpObjects[tmpCircleId];
|
|
7523
7714
|
return {
|
|
7524
|
-
tmpObjects: _objectSpread$
|
|
7525
|
-
[tmpCircleId]: _objectSpread$
|
|
7715
|
+
tmpObjects: _objectSpread$a(_objectSpread$a({}, state.tmpObjects), {}, {
|
|
7716
|
+
[tmpCircleId]: _objectSpread$a(_objectSpread$a({}, tmpCircle), {}, {
|
|
7526
7717
|
radius: Math.max(tmpCenterP.position.distanceTo(localPos), 0.001)
|
|
7527
7718
|
})
|
|
7528
7719
|
})
|
|
@@ -8020,9 +8211,9 @@ function recognizeFilletByArc(object, tree, sketchId) {
|
|
|
8020
8211
|
};
|
|
8021
8212
|
}
|
|
8022
8213
|
|
|
8023
|
-
function ownKeys$
|
|
8214
|
+
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; }
|
|
8024
8215
|
|
|
8025
|
-
function _objectSpread$
|
|
8216
|
+
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; }
|
|
8026
8217
|
function Fillet(drawingId, pluginId) {
|
|
8027
8218
|
const actions = getDrawing(drawingId).api;
|
|
8028
8219
|
const plugin = getPlugin(drawingId, pluginId);
|
|
@@ -8171,7 +8362,7 @@ function Fillet(drawingId, pluginId) {
|
|
|
8171
8362
|
return;
|
|
8172
8363
|
}
|
|
8173
8364
|
|
|
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$
|
|
8365
|
+
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$9(_objectSpread$9({}, data.params), {}, {
|
|
8175
8366
|
radius: 1
|
|
8176
8367
|
})).mid, data.params.end);
|
|
8177
8368
|
set({
|
|
@@ -8267,6 +8458,32 @@ function Trim(drawingId, pluginId) {
|
|
|
8267
8458
|
};
|
|
8268
8459
|
}
|
|
8269
8460
|
|
|
8461
|
+
function UseRef(drawingId, pluginId) {
|
|
8462
|
+
// UseRef shouldn't work with any of sketch objects
|
|
8463
|
+
const filter = object => false;
|
|
8464
|
+
|
|
8465
|
+
const filterSel = (scope, data) => lineSegmentsFilter(scope, data) || loopFilter(scope, data) || pointFilter(scope, data);
|
|
8466
|
+
|
|
8467
|
+
let remove = undefined;
|
|
8468
|
+
|
|
8469
|
+
const constructor = () => {
|
|
8470
|
+
const selApi = getDrawing(drawingId).api.selection;
|
|
8471
|
+
remove = selApi.createSelector('UseRef', filterSel, true);
|
|
8472
|
+
};
|
|
8473
|
+
|
|
8474
|
+
const destructor = () => {
|
|
8475
|
+
remove && remove();
|
|
8476
|
+
};
|
|
8477
|
+
|
|
8478
|
+
return {
|
|
8479
|
+
name: HandlersList.USEREF,
|
|
8480
|
+
filter,
|
|
8481
|
+
onConstruct: constructor,
|
|
8482
|
+
onDestruct: destructor,
|
|
8483
|
+
pointerHandlers: {}
|
|
8484
|
+
};
|
|
8485
|
+
}
|
|
8486
|
+
|
|
8270
8487
|
const Handlers$1 = {
|
|
8271
8488
|
[HandlersList.CREATEANGLE]: CreateAngle,
|
|
8272
8489
|
[HandlersList.DRAG]: Drag,
|
|
@@ -8276,6 +8493,7 @@ const Handlers$1 = {
|
|
|
8276
8493
|
[HandlersList.DRAWRECTANGLE]: DrawRectangle,
|
|
8277
8494
|
[HandlersList.FILLET]: Fillet,
|
|
8278
8495
|
[HandlersList.TRIM]: Trim,
|
|
8496
|
+
[HandlersList.USEREF]: UseRef,
|
|
8279
8497
|
[HandlersList.DRAWARCCENTER]: (drawingId, pluginId) => DrawArc(drawingId, pluginId, HandlersList.DRAWARCCENTER),
|
|
8280
8498
|
[HandlersList.DRAWARCMIDDLE]: (drawingId, pluginId) => DrawArc(drawingId, pluginId, HandlersList.DRAWARCMIDDLE),
|
|
8281
8499
|
[HandlersList.DRAWARCTANGENT]: (drawingId, pluginId) => DrawArc(drawingId, pluginId, HandlersList.DRAWARCTANGENT)
|
|
@@ -8736,10 +8954,10 @@ const resources = {
|
|
|
8736
8954
|
[HandlersList.DRAWCIRCLE]: img$y,
|
|
8737
8955
|
[HandlersList.FILLET]: img$x,
|
|
8738
8956
|
[HandlersList.TRIM]: img$w,
|
|
8957
|
+
[HandlersList.USEREF]: img$s,
|
|
8739
8958
|
[Patterns.RECTANGULAR]: img$v,
|
|
8740
8959
|
[Patterns.CIRCULAR]: img$u,
|
|
8741
|
-
[Patterns.MIRROR]: img$t
|
|
8742
|
-
['useRef']: img$s
|
|
8960
|
+
[Patterns.MIRROR]: img$t
|
|
8743
8961
|
};
|
|
8744
8962
|
const textures = {};
|
|
8745
8963
|
const textureLoader = new THREE.TextureLoader();
|
|
@@ -8827,11 +9045,14 @@ const useGeomParams = objId => {
|
|
|
8827
9045
|
|
|
8828
9046
|
if (isHovered || isSelected || isHighlighted) {
|
|
8829
9047
|
renderOrder_ += 1;
|
|
8830
|
-
}
|
|
9048
|
+
} // TODO: returning isHovered and isSelected is a workaround for changing scale of the hovered point. (return scale coef instead?)
|
|
9049
|
+
|
|
8831
9050
|
|
|
8832
9051
|
return {
|
|
8833
9052
|
renderOrder: renderOrder_,
|
|
8834
|
-
polygonOffsetUnits: offsetUnits
|
|
9053
|
+
polygonOffsetUnits: offsetUnits,
|
|
9054
|
+
isHovered,
|
|
9055
|
+
isSelected
|
|
8835
9056
|
};
|
|
8836
9057
|
};
|
|
8837
9058
|
|
|
@@ -8986,6 +9207,17 @@ const useUserData = objId => {
|
|
|
8986
9207
|
return React__default.useMemo(() => ({
|
|
8987
9208
|
objId
|
|
8988
9209
|
}), [objId]);
|
|
9210
|
+
}; // Fix for interaction until drei support undefined as pointer handlers
|
|
9211
|
+
|
|
9212
|
+
const defaultHandlers = {
|
|
9213
|
+
onPointerOver: () => null,
|
|
9214
|
+
// onPointerEnter: () => null,
|
|
9215
|
+
onPointerDown: () => null,
|
|
9216
|
+
onPointerMove: () => null,
|
|
9217
|
+
onPointerUp: () => null,
|
|
9218
|
+
onPointerCancel: () => null,
|
|
9219
|
+
onPointerOut: () => null // onPointerLeave: () => null,
|
|
9220
|
+
|
|
8989
9221
|
};
|
|
8990
9222
|
const useHandlersAndColor = (drawingId, objId) => {
|
|
8991
9223
|
const activeSelection = useDrawing(drawingId, d => d.selection.active);
|
|
@@ -8994,7 +9226,7 @@ const useHandlersAndColor = (drawingId, objId) => {
|
|
|
8994
9226
|
const handlers = activeSelection ? globalSelection.handlers : sketchHandlers;
|
|
8995
9227
|
const color = useColor(objId, globalSelection.isHovered);
|
|
8996
9228
|
return React__default.useMemo(() => ({
|
|
8997
|
-
handlers,
|
|
9229
|
+
handlers: handlers || defaultHandlers,
|
|
8998
9230
|
color
|
|
8999
9231
|
}), [handlers, color]);
|
|
9000
9232
|
};
|
|
@@ -9210,9 +9442,190 @@ class InfinityPlane extends THREE.Object3D {
|
|
|
9210
9442
|
|
|
9211
9443
|
}
|
|
9212
9444
|
|
|
9213
|
-
|
|
9445
|
+
// InstancedMesh from three.js use the single mesh but applies different transformations to different instances of the mesh
|
|
9446
|
+
// which allows to render multiple objects in the same render call, so we have separate render call for each mesh
|
|
9447
|
+
// (in our case there're 2 render calls: one for Boxes and another for Spheres).
|
|
9214
9448
|
|
|
9215
|
-
|
|
9449
|
+
const material = new THREE.MeshBasicMaterial();
|
|
9450
|
+
const tubeSegments = 6;
|
|
9451
|
+
const cylGeom = new THREE.CylinderGeometry(1, 1, 1, tubeSegments);
|
|
9452
|
+
const cylMesh = new THREE.Mesh(cylGeom, material);
|
|
9453
|
+
const widthSegments = 12;
|
|
9454
|
+
const heightSegments = 12;
|
|
9455
|
+
const sphereGeom = new THREE.SphereGeometry(1, widthSegments, heightSegments);
|
|
9456
|
+
const sphereMesh = new THREE.Mesh(sphereGeom, material); // We use context to store "mocked" objects.
|
|
9457
|
+
|
|
9458
|
+
const MeshContext = /*#__PURE__*/React__default.createContext({
|
|
9459
|
+
Cylinder: null,
|
|
9460
|
+
Sphere: null
|
|
9461
|
+
});
|
|
9462
|
+
|
|
9463
|
+
const ContextWrapper = ({
|
|
9464
|
+
cylinder,
|
|
9465
|
+
sphere,
|
|
9466
|
+
children
|
|
9467
|
+
}) => {
|
|
9468
|
+
const contextVal = React__default.useMemo(() => {
|
|
9469
|
+
return {
|
|
9470
|
+
Cylinder: cylinder,
|
|
9471
|
+
Sphere: sphere
|
|
9472
|
+
};
|
|
9473
|
+
}, [cylinder, sphere]);
|
|
9474
|
+
return /*#__PURE__*/React__default.createElement(MeshContext.Provider, {
|
|
9475
|
+
value: contextVal
|
|
9476
|
+
}, children);
|
|
9477
|
+
};
|
|
9478
|
+
/**
|
|
9479
|
+
* Component which implements InstancedMesh from three.js.
|
|
9480
|
+
* Merged component from drei takes globaly created meshes and then passes corresponding "mocked" components via function props (Box and Sphere) to children.
|
|
9481
|
+
* "mocked" components are used for saying drei where to draw instances.
|
|
9482
|
+
*/
|
|
9483
|
+
|
|
9484
|
+
|
|
9485
|
+
const MergedWrapper = ({
|
|
9486
|
+
children
|
|
9487
|
+
}) => {
|
|
9488
|
+
return (
|
|
9489
|
+
/*#__PURE__*/
|
|
9490
|
+
// Default raycast of merged should be turned off, because custom raycast is used in primitivesMerged
|
|
9491
|
+
React__default.createElement(Merged, {
|
|
9492
|
+
meshes: [cylMesh, sphereMesh],
|
|
9493
|
+
limit: 10000,
|
|
9494
|
+
raycast: null
|
|
9495
|
+
}, (Cylinder, Sphere) => /*#__PURE__*/React__default.createElement(ContextWrapper, {
|
|
9496
|
+
cylinder: Cylinder,
|
|
9497
|
+
sphere: Sphere
|
|
9498
|
+
}, children))
|
|
9499
|
+
);
|
|
9500
|
+
};
|
|
9501
|
+
|
|
9502
|
+
const lineStart = new THREE.Vector3();
|
|
9503
|
+
const lineEnd = new THREE.Vector3();
|
|
9504
|
+
const pointOnRay = new THREE.Vector3();
|
|
9505
|
+
const lineCoef = 1.2;
|
|
9506
|
+
|
|
9507
|
+
function getParentSketch(child) {
|
|
9508
|
+
const parent = child.parent;
|
|
9509
|
+
if (!parent) return null;
|
|
9510
|
+
if (parent.name === 'sketch') return parent;
|
|
9511
|
+
return getParentSketch(parent);
|
|
9512
|
+
}
|
|
9513
|
+
|
|
9514
|
+
const Line = ({
|
|
9515
|
+
start,
|
|
9516
|
+
end,
|
|
9517
|
+
width = lineWidth,
|
|
9518
|
+
materialProps,
|
|
9519
|
+
meshProps,
|
|
9520
|
+
notInteractive,
|
|
9521
|
+
scalePlus
|
|
9522
|
+
}) => {
|
|
9523
|
+
const {
|
|
9524
|
+
position,
|
|
9525
|
+
quaternion
|
|
9526
|
+
} = React__default.useMemo(() => {
|
|
9527
|
+
const dir = end.clone().sub(start).normalize();
|
|
9528
|
+
return {
|
|
9529
|
+
position: new THREE.Vector3().lerpVectors(start, end, 0.5),
|
|
9530
|
+
quaternion: new THREE.Quaternion().setFromUnitVectors(new THREE.Vector3(0, 1, 0), dir)
|
|
9531
|
+
};
|
|
9532
|
+
}, [start, end]); // TODO: make lineRaycast global function
|
|
9533
|
+
|
|
9534
|
+
const lineRaycast = React__default.useCallback(function (raycaster, intersects) {
|
|
9535
|
+
const sketchGroup = getParentSketch(this);
|
|
9536
|
+
|
|
9537
|
+
if (sketchGroup === null || (sketchGroup == null ? void 0 : sketchGroup.name) !== 'sketch') {
|
|
9538
|
+
console.warn('Line is not a child of sketch group');
|
|
9539
|
+
return;
|
|
9540
|
+
}
|
|
9541
|
+
|
|
9542
|
+
lineStart.copy(start);
|
|
9543
|
+
lineEnd.copy(end);
|
|
9544
|
+
lineStart.applyMatrix4(sketchGroup.matrixWorld);
|
|
9545
|
+
lineEnd.applyMatrix4(sketchGroup.matrixWorld);
|
|
9546
|
+
const dist = Math.sqrt(raycaster.ray.distanceSqToSegment(lineStart, lineEnd, pointOnRay));
|
|
9547
|
+
const sketchScale = getScale();
|
|
9548
|
+
|
|
9549
|
+
if (dist < lineCoef * sketchScale) {
|
|
9550
|
+
intersects.push({
|
|
9551
|
+
distance: dist,
|
|
9552
|
+
point: pointOnRay,
|
|
9553
|
+
face: null,
|
|
9554
|
+
object: this
|
|
9555
|
+
});
|
|
9556
|
+
}
|
|
9557
|
+
}, [start, end]);
|
|
9558
|
+
const {
|
|
9559
|
+
Cylinder
|
|
9560
|
+
} = React__default.useContext(MeshContext);
|
|
9561
|
+
const ref = useScale(scale => {
|
|
9562
|
+
const scale_ = scalePlus ? scale + 0.01 : scale;
|
|
9563
|
+
return [width * scale_, start.distanceTo(end), width * scale_];
|
|
9564
|
+
}); // We need initial scale to remove flickering of recently created objects
|
|
9565
|
+
|
|
9566
|
+
const initialScale = React__default.useMemo(() => {
|
|
9567
|
+
const scale = getScale();
|
|
9568
|
+
return [width * scale, start.distanceTo(end), width * scale]; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
9569
|
+
}, []);
|
|
9570
|
+
return /*#__PURE__*/React__default.createElement(Cylinder, _extends({
|
|
9571
|
+
ref: ref,
|
|
9572
|
+
scale: initialScale
|
|
9573
|
+
}, materialProps, meshProps, {
|
|
9574
|
+
position: position,
|
|
9575
|
+
quaternion: quaternion,
|
|
9576
|
+
raycast: notInteractive ? null : lineRaycast
|
|
9577
|
+
}));
|
|
9578
|
+
};
|
|
9579
|
+
|
|
9580
|
+
const pointPos = new THREE.Vector3();
|
|
9581
|
+
const pointCoef = 1.3; // Coefficient for increased interaction area
|
|
9582
|
+
|
|
9583
|
+
function pointRaycast(raycaster, intersects) {
|
|
9584
|
+
this.getWorldPosition(pointPos);
|
|
9585
|
+
const dist = raycaster.ray.distanceToPoint(pointPos);
|
|
9586
|
+
const sketchScale = getScale();
|
|
9587
|
+
|
|
9588
|
+
if (dist < pointCoef * sketchScale) {
|
|
9589
|
+
intersects.push({
|
|
9590
|
+
distance: dist,
|
|
9591
|
+
point: pointPos.clone(),
|
|
9592
|
+
face: null,
|
|
9593
|
+
object: this
|
|
9594
|
+
});
|
|
9595
|
+
}
|
|
9596
|
+
}
|
|
9597
|
+
|
|
9598
|
+
const Point = ({
|
|
9599
|
+
position,
|
|
9600
|
+
size = pointSize,
|
|
9601
|
+
materialProps,
|
|
9602
|
+
meshProps,
|
|
9603
|
+
scalePlus
|
|
9604
|
+
}) => {
|
|
9605
|
+
const {
|
|
9606
|
+
Sphere
|
|
9607
|
+
} = React__default.useContext(MeshContext);
|
|
9608
|
+
const ref = useScale(scale => {
|
|
9609
|
+
const scale_ = scalePlus ? scale + 0.01 : scale;
|
|
9610
|
+
return [size * scale_, size * scale_, size * scale_];
|
|
9611
|
+
}); // We need initial scale to remove flickering of recently created objects
|
|
9612
|
+
|
|
9613
|
+
const initialScale = React__default.useMemo(() => {
|
|
9614
|
+
const scale = getScale();
|
|
9615
|
+
return [size * scale, size * scale, size * scale]; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
9616
|
+
}, []);
|
|
9617
|
+
return /*#__PURE__*/React__default.createElement(Sphere, _extends({
|
|
9618
|
+
scale: initialScale
|
|
9619
|
+
}, materialProps, meshProps, {
|
|
9620
|
+
position: position,
|
|
9621
|
+
ref: ref,
|
|
9622
|
+
raycast: pointRaycast
|
|
9623
|
+
}));
|
|
9624
|
+
};
|
|
9625
|
+
|
|
9626
|
+
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; }
|
|
9627
|
+
|
|
9628
|
+
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; }
|
|
9216
9629
|
/*
|
|
9217
9630
|
* !polygonOffset!
|
|
9218
9631
|
* For correct drawing of objects that lie in the same plane, polygonOffset is used.
|
|
@@ -9220,9 +9633,9 @@ function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) {
|
|
|
9220
9633
|
* offset = factor * DZ + r * units
|
|
9221
9634
|
* Where DZ is a measurement of the change in depth relative to the screen area of the polygon,
|
|
9222
9635
|
* and r is an implementation-specific value to create a constant depth offset.
|
|
9223
|
-
.
|
|
9224
9636
|
* The offset is added before the depth test is performed and before the value is written into the depth buffer.
|
|
9225
|
-
*
|
|
9637
|
+
*
|
|
9638
|
+
* Factor parameter is redundant for this purpose, so only units parameter is used.
|
|
9226
9639
|
*/
|
|
9227
9640
|
|
|
9228
9641
|
extend({
|
|
@@ -9232,8 +9645,7 @@ const hoverZone = 0.6;
|
|
|
9232
9645
|
|
|
9233
9646
|
const CCLine = props => {
|
|
9234
9647
|
const {
|
|
9235
|
-
drawingId
|
|
9236
|
-
pluginId
|
|
9648
|
+
drawingId
|
|
9237
9649
|
} = React__default.useContext(ViewContext);
|
|
9238
9650
|
const {
|
|
9239
9651
|
objId
|
|
@@ -9242,8 +9654,7 @@ const CCLine = props => {
|
|
|
9242
9654
|
const {
|
|
9243
9655
|
handlers,
|
|
9244
9656
|
color
|
|
9245
|
-
} = useHandlersAndColor(drawingId, objId);
|
|
9246
|
-
const scale = useSketchState(drawingId, pluginId, state => state.scale); // TODO: put useUserData into useHandlersAndColor ?
|
|
9657
|
+
} = useHandlersAndColor(drawingId, objId); // TODO: put useUserData into useHandlersAndColor ?
|
|
9247
9658
|
|
|
9248
9659
|
const userData = useUserData(objId);
|
|
9249
9660
|
const point1 = useDrawing(drawingId, drawing => drawing.structure.tree[line.children[0]]);
|
|
@@ -9252,34 +9663,24 @@ const CCLine = props => {
|
|
|
9252
9663
|
const end = convertToVector(point2.members.pos);
|
|
9253
9664
|
const {
|
|
9254
9665
|
renderOrder,
|
|
9255
|
-
polygonOffsetUnits
|
|
9666
|
+
polygonOffsetUnits,
|
|
9667
|
+
isHovered,
|
|
9668
|
+
isSelected
|
|
9256
9669
|
} = useGeomParams(objId);
|
|
9257
9670
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Line, {
|
|
9258
9671
|
start: start,
|
|
9259
9672
|
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({
|
|
9673
|
+
scalePlus: isHovered || isSelected,
|
|
9674
|
+
meshProps: _objectSpread$8(_objectSpread$8({
|
|
9276
9675
|
renderOrder
|
|
9277
9676
|
}, handlers), {}, {
|
|
9278
9677
|
userData
|
|
9279
9678
|
}),
|
|
9280
9679
|
materialProps: {
|
|
9281
|
-
|
|
9282
|
-
|
|
9680
|
+
side: THREE.DoubleSide,
|
|
9681
|
+
polygonOffset: true,
|
|
9682
|
+
polygonOffsetUnits: polygonOffsetUnits,
|
|
9683
|
+
color: numberToHexColor(color)
|
|
9283
9684
|
}
|
|
9284
9685
|
}), /*#__PURE__*/React__default.createElement(CCPoint, {
|
|
9285
9686
|
key: point1.id,
|
|
@@ -9292,8 +9693,7 @@ const CCLine = props => {
|
|
|
9292
9693
|
|
|
9293
9694
|
const CCPoint = props => {
|
|
9294
9695
|
const {
|
|
9295
|
-
drawingId
|
|
9296
|
-
pluginId
|
|
9696
|
+
drawingId
|
|
9297
9697
|
} = React__default.useContext(ViewContext);
|
|
9298
9698
|
const {
|
|
9299
9699
|
objId
|
|
@@ -9306,40 +9706,33 @@ const CCPoint = props => {
|
|
|
9306
9706
|
const userData = useUserData(objId);
|
|
9307
9707
|
const {
|
|
9308
9708
|
renderOrder,
|
|
9309
|
-
polygonOffsetUnits
|
|
9709
|
+
polygonOffsetUnits,
|
|
9710
|
+
isHovered,
|
|
9711
|
+
isSelected
|
|
9310
9712
|
} = useGeomParams(objId);
|
|
9311
9713
|
const position = convertToVector(point.members.pos);
|
|
9312
|
-
const scale = useSketchState(drawingId, pluginId, state => state.scale);
|
|
9313
9714
|
React__default.useEffect(() => {
|
|
9314
9715
|
setSnapToPoint(objId, new THREE.Vector3(position.x, position.y, position.z));
|
|
9315
9716
|
return () => deleteSnapToPoint(objId);
|
|
9316
9717
|
}, [objId, position.x, position.y, position.z]);
|
|
9317
|
-
return /*#__PURE__*/React__default.createElement(
|
|
9318
|
-
position: position,
|
|
9319
|
-
|
|
9320
|
-
|
|
9718
|
+
return /*#__PURE__*/React__default.createElement(Point, {
|
|
9719
|
+
position: position // It's not possible to change polygonOffset in drei/Merged component,
|
|
9720
|
+
// so we have to increase size of hovered or selected point to make the point not occluded buy other ones
|
|
9721
|
+
,
|
|
9722
|
+
scalePlus: isHovered || isSelected,
|
|
9723
|
+
meshProps: _objectSpread$8(_objectSpread$8({
|
|
9321
9724
|
renderOrder
|
|
9322
|
-
},
|
|
9725
|
+
}, handlers), {}, {
|
|
9726
|
+
userData
|
|
9727
|
+
}),
|
|
9323
9728
|
materialProps: {
|
|
9324
9729
|
side: THREE.DoubleSide,
|
|
9325
9730
|
polygonOffset: true,
|
|
9326
9731
|
polygonOffsetUnits: polygonOffsetUnits,
|
|
9327
9732
|
// Put hovered point upper then not hovered (check comment in the beginnig of this file about polygonOffset).
|
|
9328
|
-
color: color
|
|
9329
|
-
}
|
|
9330
|
-
}), /*#__PURE__*/React__default.createElement(Point, {
|
|
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
|
|
9733
|
+
color: numberToHexColor(color)
|
|
9341
9734
|
}
|
|
9342
|
-
})
|
|
9735
|
+
});
|
|
9343
9736
|
};
|
|
9344
9737
|
|
|
9345
9738
|
const CCArc = props => {
|
|
@@ -9364,7 +9757,6 @@ const CCArc = props => {
|
|
|
9364
9757
|
const point = [p1, p2, p3].find(p => p.name === pointName);
|
|
9365
9758
|
return convertToVector(point.members.pos);
|
|
9366
9759
|
}, [p1, p2, p3]);
|
|
9367
|
-
const scale = useSketchState(drawingId, pluginId, state => state.scale);
|
|
9368
9760
|
const startPoint = React__default.useMemo(() => getArcPointPos('startPoint'), [getArcPointPos]);
|
|
9369
9761
|
const endPoint = React__default.useMemo(() => getArcPointPos('endPoint'), [getArcPointPos]);
|
|
9370
9762
|
const centerPoint = React__default.useMemo(() => getArcPointPos('center'), [getArcPointPos]);
|
|
@@ -9373,37 +9765,24 @@ const CCArc = props => {
|
|
|
9373
9765
|
renderOrder,
|
|
9374
9766
|
polygonOffsetUnits
|
|
9375
9767
|
} = useGeomParams(objId);
|
|
9768
|
+
const scale = useSketchState(drawingId, pluginId, state => state.scale);
|
|
9376
9769
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Arc, {
|
|
9377
9770
|
start: startPoint,
|
|
9378
9771
|
end: endPoint,
|
|
9379
9772
|
center: centerPoint,
|
|
9380
|
-
scale: scale,
|
|
9381
9773
|
clockwise: clockwise,
|
|
9382
|
-
meshProps: {
|
|
9383
|
-
renderOrder
|
|
9384
|
-
|
|
9774
|
+
meshProps: _objectSpread$8({
|
|
9775
|
+
renderOrder,
|
|
9776
|
+
userData
|
|
9777
|
+
}, handlers),
|
|
9385
9778
|
materialProps: {
|
|
9386
9779
|
side: THREE.DoubleSide,
|
|
9387
9780
|
polygonOffset: true,
|
|
9388
9781
|
polygonOffsetUnits: polygonOffsetUnits,
|
|
9389
9782
|
color: color
|
|
9390
|
-
}
|
|
9391
|
-
|
|
9392
|
-
|
|
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
|
-
}
|
|
9406
|
-
}), arc.children.map(childId => /*#__PURE__*/React__default.createElement(CCPoint, {
|
|
9783
|
+
},
|
|
9784
|
+
scale: scale
|
|
9785
|
+
}), arc.children.map(childId => /*#__PURE__*/React__default.createElement(CCPoint, {
|
|
9407
9786
|
key: childId,
|
|
9408
9787
|
objId: childId
|
|
9409
9788
|
})));
|
|
@@ -9449,7 +9828,7 @@ const CCCircle = props => {
|
|
|
9449
9828
|
radius: radius,
|
|
9450
9829
|
scale: scale,
|
|
9451
9830
|
width: arcWidth + hoverZone,
|
|
9452
|
-
meshProps: _objectSpread$
|
|
9831
|
+
meshProps: _objectSpread$8(_objectSpread$8({}, handlers), {}, {
|
|
9453
9832
|
renderOrder,
|
|
9454
9833
|
userData
|
|
9455
9834
|
}),
|
|
@@ -9528,7 +9907,7 @@ const SketchPlane = ({
|
|
|
9528
9907
|
objId
|
|
9529
9908
|
}
|
|
9530
9909
|
})), /*#__PURE__*/React__default.createElement("gridHelper", {
|
|
9531
|
-
args: [step * linesCount, linesCount, 0x000000,
|
|
9910
|
+
args: [step * linesCount, linesCount, 0x000000, 0x888888],
|
|
9532
9911
|
quaternion: planeQuaternion,
|
|
9533
9912
|
onUpdate: update
|
|
9534
9913
|
}));
|
|
@@ -9603,10 +9982,11 @@ const Sketch = ({
|
|
|
9603
9982
|
drawnObjectsRef
|
|
9604
9983
|
});
|
|
9605
9984
|
}, [set]);
|
|
9606
|
-
return /*#__PURE__*/React__default.createElement(
|
|
9985
|
+
return /*#__PURE__*/React__default.createElement(MergedWrapper, null, isActive && /*#__PURE__*/React__default.createElement(SketchPlane, {
|
|
9607
9986
|
objId: objId
|
|
9608
9987
|
}), drawnObjects && /*#__PURE__*/React__default.createElement("group", {
|
|
9609
|
-
ref: drawnObjectsRef
|
|
9988
|
+
ref: drawnObjectsRef,
|
|
9989
|
+
name: "sketch"
|
|
9610
9990
|
}, drawnObjects, isActive && containerIds && containerIds.length === 0 && /*#__PURE__*/React__default.createElement(Constraints$2, {
|
|
9611
9991
|
sketchId: objId
|
|
9612
9992
|
})));
|
|
@@ -9641,10 +10021,8 @@ const TmpPoint = props => {
|
|
|
9641
10021
|
} = React__default.useContext(ViewContext);
|
|
9642
10022
|
const point = useSketchState(drawingId, pluginId, state => state.tmpObjects[props.objId]);
|
|
9643
10023
|
const color = getColor$1(point.class);
|
|
9644
|
-
|
|
9645
|
-
return /*#__PURE__*/React__default.createElement(Point, {
|
|
10024
|
+
return /*#__PURE__*/React__default.createElement(Point$1, {
|
|
9646
10025
|
position: point.position,
|
|
9647
|
-
scale: scale,
|
|
9648
10026
|
materialProps: {
|
|
9649
10027
|
side: THREE.DoubleSide,
|
|
9650
10028
|
polygonOffset: true,
|
|
@@ -9661,13 +10039,11 @@ const TmpLine = props => {
|
|
|
9661
10039
|
} = React__default.useContext(ViewContext);
|
|
9662
10040
|
const line = useSketchState(drawingId, pluginId, state => state.tmpObjects[props.objId]);
|
|
9663
10041
|
const color = getColor$1(line.class);
|
|
9664
|
-
const scale = useSketchState(drawingId, pluginId, state => state.scale);
|
|
9665
10042
|
const start = useSketchState(drawingId, pluginId, state => state.tmpObjects[line.startPId]).position;
|
|
9666
10043
|
const end = useSketchState(drawingId, pluginId, state => state.tmpObjects[line.endPId]).position;
|
|
9667
|
-
return /*#__PURE__*/React__default.createElement(Line, {
|
|
10044
|
+
return /*#__PURE__*/React__default.createElement(Line$1, {
|
|
9668
10045
|
start: start,
|
|
9669
10046
|
end: end,
|
|
9670
|
-
scale: scale,
|
|
9671
10047
|
materialProps: {
|
|
9672
10048
|
color
|
|
9673
10049
|
}
|
|
@@ -9688,10 +10064,9 @@ const TmpArc = props => {
|
|
|
9688
10064
|
const end = useSketchState(drawingId, pluginId, state => state.tmpObjects[arc.endPId]).position;
|
|
9689
10065
|
|
|
9690
10066
|
if (arc.drawAsLine) {
|
|
9691
|
-
return /*#__PURE__*/React__default.createElement(Line, {
|
|
10067
|
+
return /*#__PURE__*/React__default.createElement(Line$1, {
|
|
9692
10068
|
start: start,
|
|
9693
10069
|
end: end,
|
|
9694
|
-
scale: scale,
|
|
9695
10070
|
materialProps: {
|
|
9696
10071
|
color: getColor$1(CCClasses.CCLine)
|
|
9697
10072
|
}
|
|
@@ -9860,6 +10235,7 @@ const RubberBandRectangle = () => {
|
|
|
9860
10235
|
function useSetScale(drawingId, pluginId) {
|
|
9861
10236
|
useFrame(args => {
|
|
9862
10237
|
const plugin = getPlugin(drawingId, pluginId);
|
|
10238
|
+
if (!plugin) return;
|
|
9863
10239
|
const state = plugin.state;
|
|
9864
10240
|
const sketchObj = getDrawing(drawingId).structure.tree[plugin.objectId];
|
|
9865
10241
|
const sketchMatrix = MathUtils.convertToMatrix4(sketchObj.coordinateSystem);
|
|
@@ -9873,7 +10249,9 @@ function useSetScale(drawingId, pluginId) {
|
|
|
9873
10249
|
plugin.set({
|
|
9874
10250
|
step: newStep,
|
|
9875
10251
|
scale: newScale
|
|
9876
|
-
});
|
|
10252
|
+
}); // Old way to set scale, needed for circles. (Should be remove when circles will be implemented via Merged component)
|
|
10253
|
+
|
|
10254
|
+
setScale(newScale); // More efficient way to set scale, used buy lines and points.
|
|
9877
10255
|
}
|
|
9878
10256
|
});
|
|
9879
10257
|
} // Turn off all handlers and hide sketch selection if global selection is active
|
|
@@ -9888,7 +10266,7 @@ function useHandleGSelection(drawingId, pluginId, activeHandler) {
|
|
|
9888
10266
|
const prevSelected = React__default.useRef([]);
|
|
9889
10267
|
React__default.useEffect(() => {
|
|
9890
10268
|
// Disable all handlers if global selection is active
|
|
9891
|
-
if (activeSelection && !prevHandler.current) {
|
|
10269
|
+
if (activeSelection && activeSelection !== 'UseRef' && !prevHandler.current) {
|
|
9892
10270
|
prevHandler.current = activeHandler;
|
|
9893
10271
|
prevSelected.current = getSketchState(drawingId, pluginId).selected;
|
|
9894
10272
|
set({
|
|
@@ -9903,6 +10281,23 @@ function useHandleGSelection(drawingId, pluginId, activeHandler) {
|
|
|
9903
10281
|
prevHandler.current = undefined;
|
|
9904
10282
|
}
|
|
9905
10283
|
}, [drawingId, pluginId, activeSelection, activeHandler, set]);
|
|
10284
|
+
} // Creates reference geometry in the sketch for all the graphic objects appearing in the 'UseRef' selection; the selection is reset after each triggering
|
|
10285
|
+
|
|
10286
|
+
|
|
10287
|
+
function useUseRef(drawingId, sketchId) {
|
|
10288
|
+
const itemsUseRef = useDrawing(drawingId, d => {
|
|
10289
|
+
var _d$selection$refs$Use;
|
|
10290
|
+
|
|
10291
|
+
return (_d$selection$refs$Use = d.selection.refs['UseRef']) == null ? void 0 : _d$selection$refs$Use.items;
|
|
10292
|
+
});
|
|
10293
|
+
React__default.useEffect(() => {
|
|
10294
|
+
if (itemsUseRef && itemsUseRef.length > 0) {
|
|
10295
|
+
const selApi = getDrawing(drawingId).api.selection;
|
|
10296
|
+
selApi.setItems('UseRef', []);
|
|
10297
|
+
const ids = itemsUseRef.map(item => item.data.graphicId);
|
|
10298
|
+
ccAPI.sketcher.createReferenceGeometry(drawingId, sketchId, ids);
|
|
10299
|
+
}
|
|
10300
|
+
}, [drawingId, sketchId, itemsUseRef]);
|
|
9906
10301
|
}
|
|
9907
10302
|
|
|
9908
10303
|
const getSketchBounds = boundsMember => {
|
|
@@ -9997,10 +10392,13 @@ const DrawingMode = ({
|
|
|
9997
10392
|
set({
|
|
9998
10393
|
activeHandler: HandlersList.DRAG
|
|
9999
10394
|
});
|
|
10000
|
-
return () =>
|
|
10001
|
-
|
|
10002
|
-
|
|
10003
|
-
|
|
10395
|
+
return () => {
|
|
10396
|
+
const plugin = getPlugin(drawingId, pluginId);
|
|
10397
|
+
plugin && plugin.set({
|
|
10398
|
+
activeHandler: undefined
|
|
10399
|
+
});
|
|
10400
|
+
};
|
|
10401
|
+
}, [drawingId, pluginId, set]);
|
|
10004
10402
|
useSetScale(drawingId, pluginId);
|
|
10005
10403
|
const activeHandler = useSketchState(drawingId, pluginId, state => state.activeHandler);
|
|
10006
10404
|
const currentHandler = React__default.useRef();
|
|
@@ -10021,6 +10419,7 @@ const DrawingMode = ({
|
|
|
10021
10419
|
currentHandler.current = activeHandler;
|
|
10022
10420
|
}, [drawingId, pluginId, activeHandler]);
|
|
10023
10421
|
useHandleGSelection(drawingId, pluginId, activeHandler);
|
|
10422
|
+
useUseRef(drawingId, sketchId);
|
|
10024
10423
|
const dimId = useDimensionSetId(drawingId, sketchId);
|
|
10025
10424
|
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
10425
|
// TODO: remove it when parent plugin matrix won't be applied for embedded one.
|
|
@@ -10067,7 +10466,11 @@ const ViewImpl$d = ({
|
|
|
10067
10466
|
drawingId,
|
|
10068
10467
|
pluginId,
|
|
10069
10468
|
isActive
|
|
10070
|
-
}), [drawingId, pluginId, isActive]);
|
|
10469
|
+
}), [drawingId, pluginId, isActive]); // Reset scale on unmount
|
|
10470
|
+
|
|
10471
|
+
React__default.useEffect(() => {
|
|
10472
|
+
return () => setScale(1);
|
|
10473
|
+
}, []);
|
|
10071
10474
|
|
|
10072
10475
|
if (planeSelection) {
|
|
10073
10476
|
return null;
|
|
@@ -10097,40 +10500,6 @@ const View$d = ({
|
|
|
10097
10500
|
}));
|
|
10098
10501
|
};
|
|
10099
10502
|
|
|
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
10503
|
const constraintClasses = {
|
|
10135
10504
|
fixation: CCClasses.CC2DFixationConstraint,
|
|
10136
10505
|
horizontality: CCClasses.CC2DHorizontalConstraint,
|
|
@@ -10156,8 +10525,7 @@ const constraintClasses = {
|
|
|
10156
10525
|
};
|
|
10157
10526
|
const Constraints$1 = () => {
|
|
10158
10527
|
const {
|
|
10159
|
-
Button
|
|
10160
|
-
ButtonGroup
|
|
10528
|
+
Button
|
|
10161
10529
|
} = useBuerli(buerli => buerli.options.elements);
|
|
10162
10530
|
const {
|
|
10163
10531
|
drawingId,
|
|
@@ -10194,7 +10562,12 @@ const Constraints$1 = () => {
|
|
|
10194
10562
|
}
|
|
10195
10563
|
}
|
|
10196
10564
|
}, [drawingId, set, selected, sketchId]);
|
|
10197
|
-
return allowedConstraints && allowedConstraints.length > 0 ? /*#__PURE__*/React__default.createElement(
|
|
10565
|
+
return allowedConstraints && allowedConstraints.length > 0 ? /*#__PURE__*/React__default.createElement(AntdButton.Group, {
|
|
10566
|
+
style: {
|
|
10567
|
+
flexWrap: 'wrap',
|
|
10568
|
+
height: 'unset !important'
|
|
10569
|
+
}
|
|
10570
|
+
}, allowedConstraints.map(constraintName => /*#__PURE__*/React__default.createElement(Button, {
|
|
10198
10571
|
key: constraintName,
|
|
10199
10572
|
titleText: constraintName,
|
|
10200
10573
|
size: 'small',
|
|
@@ -10231,7 +10604,8 @@ const HButton = _ref => {
|
|
|
10231
10604
|
} = React__default.useContext(RootContext);
|
|
10232
10605
|
const set = getPlugin(drawingId, pluginId).set;
|
|
10233
10606
|
const activeHandler = useSketchState(drawingId, pluginId, state => state.activeHandler);
|
|
10234
|
-
const
|
|
10607
|
+
const activeSelector = useDrawing(drawingId, drawing => drawing.selection.active);
|
|
10608
|
+
const disabled = Boolean(activeSelector) && activeSelector !== 'UseRef';
|
|
10235
10609
|
const isActive = activeHandler === handlerName;
|
|
10236
10610
|
return /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
10237
10611
|
style: {
|
|
@@ -10244,7 +10618,7 @@ const HButton = _ref => {
|
|
|
10244
10618
|
key: handlerName,
|
|
10245
10619
|
value: handlerName,
|
|
10246
10620
|
checked: isActive,
|
|
10247
|
-
disabled:
|
|
10621
|
+
disabled: disabled,
|
|
10248
10622
|
onClick: () => {
|
|
10249
10623
|
if (isActive) {
|
|
10250
10624
|
set({
|
|
@@ -10282,6 +10656,7 @@ const SubGroup$1 = ({
|
|
|
10282
10656
|
} = useBuerli(buerli => buerli.options.elements);
|
|
10283
10657
|
const [lastHandler, setLastHandler] = React__default.useState(handlers[0]);
|
|
10284
10658
|
const menu = /*#__PURE__*/React__default.createElement(Menu, null, /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
10659
|
+
key: "menuItem",
|
|
10285
10660
|
style: {
|
|
10286
10661
|
backgroundColor: 'initial',
|
|
10287
10662
|
padding: '0px 5px',
|
|
@@ -10321,6 +10696,8 @@ const Handlers = () => {
|
|
|
10321
10696
|
handlerName: HandlersList.FILLET
|
|
10322
10697
|
}), /*#__PURE__*/React__default.createElement(HButton, {
|
|
10323
10698
|
handlerName: HandlersList.TRIM
|
|
10699
|
+
}), /*#__PURE__*/React__default.createElement(HButton, {
|
|
10700
|
+
handlerName: HandlersList.USEREF
|
|
10324
10701
|
}));
|
|
10325
10702
|
};
|
|
10326
10703
|
|
|
@@ -10518,110 +10895,489 @@ const useRollbackBar = (drawingId, partId) => {
|
|
|
10518
10895
|
}, [drawingId, opSeqId, opSeqChildren]);
|
|
10519
10896
|
};
|
|
10520
10897
|
|
|
10521
|
-
const
|
|
10898
|
+
const _excluded$3 = ["items", "children"];
|
|
10899
|
+
const Menu = _ref => {
|
|
10900
|
+
let {
|
|
10901
|
+
items,
|
|
10902
|
+
children
|
|
10903
|
+
} = _ref,
|
|
10904
|
+
props = _objectWithoutProperties(_ref, _excluded$3);
|
|
10905
|
+
|
|
10906
|
+
const onItemClick = React__default.useCallback(e => {
|
|
10907
|
+
e.domEvent.stopPropagation();
|
|
10908
|
+
let item = items[e.keyPath.pop()];
|
|
10909
|
+
|
|
10910
|
+
if (item.children) {
|
|
10911
|
+
item = item.children[e.keyPath.pop()];
|
|
10912
|
+
}
|
|
10913
|
+
item.callback(e.domEvent);
|
|
10914
|
+
}, [items]);
|
|
10915
|
+
const menu = /*#__PURE__*/React__default.createElement(Menu$1, {
|
|
10916
|
+
onClick: onItemClick
|
|
10917
|
+
}, Object.keys(items).map(key => {
|
|
10918
|
+
const item = items[key];
|
|
10919
|
+
|
|
10920
|
+
if (item.children) {
|
|
10921
|
+
const smItem = item;
|
|
10922
|
+
return /*#__PURE__*/React__default.createElement(Menu$1.SubMenu, {
|
|
10923
|
+
title: smItem.caption,
|
|
10924
|
+
key: key,
|
|
10925
|
+
icon: smItem.icon
|
|
10926
|
+
}, Object.keys(smItem.children).map(chKey => {
|
|
10927
|
+
const chItem = smItem.children[chKey];
|
|
10928
|
+
return /*#__PURE__*/React__default.createElement(Menu$1.Item, {
|
|
10929
|
+
key: chKey,
|
|
10930
|
+
icon: chItem.icon
|
|
10931
|
+
}, chItem.caption);
|
|
10932
|
+
}));
|
|
10933
|
+
} else {
|
|
10934
|
+
const item_ = item;
|
|
10935
|
+
return /*#__PURE__*/React__default.createElement(Menu$1.Item, {
|
|
10936
|
+
key: key,
|
|
10937
|
+
icon: item_.icon
|
|
10938
|
+
}, item_.caption);
|
|
10939
|
+
}
|
|
10940
|
+
}));
|
|
10941
|
+
return /*#__PURE__*/React__default.createElement(Dropdown, _extends({
|
|
10942
|
+
overlay: menu,
|
|
10943
|
+
placement: "bottomCenter"
|
|
10944
|
+
}, props), children ? children : /*#__PURE__*/React__default.createElement("div", {
|
|
10945
|
+
style: {
|
|
10946
|
+
width: '24px',
|
|
10947
|
+
cursor: 'pointer',
|
|
10948
|
+
textAlign: 'center'
|
|
10949
|
+
},
|
|
10950
|
+
onClick: e => e.stopPropagation()
|
|
10951
|
+
}, "..."));
|
|
10952
|
+
};
|
|
10953
|
+
|
|
10954
|
+
const NameEdit = ({
|
|
10522
10955
|
drawingId,
|
|
10523
|
-
|
|
10956
|
+
objId,
|
|
10957
|
+
setEditName,
|
|
10958
|
+
name
|
|
10524
10959
|
}) => {
|
|
10525
|
-
const
|
|
10526
|
-
|
|
10527
|
-
|
|
10528
|
-
|
|
10529
|
-
|
|
10530
|
-
const sketchId = usePlugin(drawingId, pluginId, plugin => plugin.objectId);
|
|
10531
|
-
const curProduct = useDrawing(drawingId, d => d.structure.currentProduct);
|
|
10532
|
-
const opSeqId = useOperationSequence(drawingId, curProduct) || -1;
|
|
10533
|
-
const opSeqChildren = useDrawing(drawingId, d => d.structure.tree[opSeqId].children || []); // Makes base planes visible when just created, and turns them off after initialization (i.e. selecting a plane)
|
|
10960
|
+
const ref = React__default.useRef(null);
|
|
10961
|
+
const onEnter = React__default.useCallback(async e => {
|
|
10962
|
+
if (e.target.value !== '') {
|
|
10963
|
+
await ccAPI.common.setObjectName(drawingId, objId, e.target.value);
|
|
10964
|
+
}
|
|
10534
10965
|
|
|
10966
|
+
setEditName(false);
|
|
10967
|
+
}, [drawingId, objId, setEditName]);
|
|
10968
|
+
const onKeyPress = React__default.useCallback(e => {
|
|
10969
|
+
if (e.key !== 'Escape') return;
|
|
10970
|
+
setEditName(false);
|
|
10971
|
+
}, [setEditName]);
|
|
10535
10972
|
React__default.useEffect(() => {
|
|
10536
|
-
|
|
10537
|
-
// Should probably never happen, but just in case...
|
|
10538
|
-
return;
|
|
10539
|
-
}
|
|
10973
|
+
var _ref$current;
|
|
10540
10974
|
|
|
10541
|
-
|
|
10542
|
-
|
|
10543
|
-
|
|
10975
|
+
getCADState().api.blankDiv.show(() => setEditName(false));
|
|
10976
|
+
(_ref$current = ref.current) == null ? void 0 : _ref$current.focus({
|
|
10977
|
+
cursor: 'all'
|
|
10978
|
+
}); // Deactivate BlankDiv on dismount
|
|
10544
10979
|
|
|
10545
|
-
|
|
10546
|
-
|
|
10547
|
-
const wereInvisible = [];
|
|
10548
|
-
basePlaneIds.forEach(id => {
|
|
10549
|
-
if (drawing.plugin.visible.indexOf(id) === -1) {
|
|
10550
|
-
wereInvisible.push(id);
|
|
10551
|
-
pluginApi.setVisiblePlugin(id, true);
|
|
10552
|
-
}
|
|
10553
|
-
}); // Make planes invisible again
|
|
10980
|
+
return () => getCADState().api.blankDiv.hide();
|
|
10981
|
+
}, [setEditName]); // When BlankDiv is active, increase zIndex so this element would overlap it
|
|
10554
10982
|
|
|
10555
|
-
|
|
10556
|
-
|
|
10557
|
-
|
|
10558
|
-
|
|
10559
|
-
|
|
10560
|
-
}
|
|
10561
|
-
});
|
|
10562
|
-
}; // Should always happen just once
|
|
10563
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
10564
|
-
}, []);
|
|
10565
|
-
return /*#__PURE__*/React__default.createElement(Group, null, /*#__PURE__*/React__default.createElement(Label, null, "Select sketcher plane"), /*#__PURE__*/React__default.createElement(Selection, {
|
|
10566
|
-
drawingId: drawingId,
|
|
10567
|
-
filter: (scope, data) => {
|
|
10568
|
-
return scope === TreeObjScope && data.object.class === CCClasses.CCWorkPlane || scope === BuerliScope && data === GraphicType.PLANE;
|
|
10569
|
-
},
|
|
10570
|
-
onChange: items => {
|
|
10571
|
-
if (items.length !== 0) {
|
|
10572
|
-
if (items[0].scope === TreeObjScope) {
|
|
10573
|
-
ccAPI.sketcher.setWorkPlane(drawingId, sketchId, items[0].data.object.id);
|
|
10574
|
-
} else {
|
|
10575
|
-
ccAPI.sketcher.createAndSetWorkPlane(drawingId, sketchId, items[0].data.graphicId);
|
|
10576
|
-
}
|
|
10577
|
-
}
|
|
10983
|
+
const showBlankDiv = useCADStore(s => s.blankDiv.isActive);
|
|
10984
|
+
const zIndex = showBlankDiv ? blankZIndex + 1 : 0;
|
|
10985
|
+
return /*#__PURE__*/React__default.createElement(Input, {
|
|
10986
|
+
style: {
|
|
10987
|
+
zIndex
|
|
10578
10988
|
},
|
|
10579
|
-
|
|
10580
|
-
|
|
10989
|
+
ref: ref,
|
|
10990
|
+
onPressEnter: onEnter,
|
|
10991
|
+
defaultValue: name,
|
|
10992
|
+
size: "small",
|
|
10993
|
+
onKeyDown: onKeyPress,
|
|
10994
|
+
onBlur: () => setEditName(false)
|
|
10995
|
+
});
|
|
10581
10996
|
};
|
|
10582
10997
|
|
|
10583
|
-
const
|
|
10584
|
-
|
|
10585
|
-
|
|
10586
|
-
|
|
10587
|
-
|
|
10588
|
-
|
|
10589
|
-
|
|
10590
|
-
|
|
10591
|
-
|
|
10592
|
-
|
|
10593
|
-
|
|
10594
|
-
|
|
10595
|
-
|
|
10596
|
-
|
|
10597
|
-
}
|
|
10598
|
-
|
|
10998
|
+
const FlexRow = styled.div`
|
|
10999
|
+
display: flex;
|
|
11000
|
+
flex-direction: row;
|
|
11001
|
+
`;
|
|
11002
|
+
const FlexReverseRow = styled.div`
|
|
11003
|
+
display: flex;
|
|
11004
|
+
flex-direction: row-reverse;
|
|
11005
|
+
`;
|
|
11006
|
+
const Link = styled.a`
|
|
11007
|
+
color: #4f4f4f;
|
|
11008
|
+
&:hover {
|
|
11009
|
+
text-decoration: underline;
|
|
11010
|
+
text-decoration-color: #4f4f4f;
|
|
11011
|
+
color: #4f4f4f;
|
|
11012
|
+
}
|
|
11013
|
+
`;
|
|
11014
|
+
const HoveredDiv = styled.div`
|
|
11015
|
+
width: 100%;
|
|
11016
|
+
display: flex;
|
|
11017
|
+
justify-content: space-between;
|
|
11018
|
+
cursor: default;
|
|
11019
|
+
background-color: ${props => props.hovered ? '#f0f0f0' : undefined};
|
|
11020
|
+
border-bottom: ${props => props.bordered ? '1px solid #f0f0f0' : undefined};
|
|
11021
|
+
padding: ${props => props.bordered ? '4px 10px' : undefined};
|
|
11022
|
+
&:hover {
|
|
11023
|
+
background-color: #f0f0f0;
|
|
11024
|
+
}
|
|
11025
|
+
`;
|
|
10599
11026
|
|
|
10600
|
-
const
|
|
10601
|
-
|
|
10602
|
-
|
|
11027
|
+
const {
|
|
11028
|
+
Text: Text$3
|
|
11029
|
+
} = Typography;
|
|
11030
|
+
const EntityName = ({
|
|
11031
|
+
name,
|
|
11032
|
+
disabled,
|
|
11033
|
+
strong,
|
|
11034
|
+
onClick,
|
|
11035
|
+
onMouseEnter,
|
|
11036
|
+
onMouseLeave
|
|
10603
11037
|
}) => {
|
|
10604
|
-
|
|
10605
|
-
|
|
10606
|
-
|
|
10607
|
-
|
|
10608
|
-
|
|
10609
|
-
|
|
10610
|
-
|
|
10611
|
-
|
|
10612
|
-
marginRight: '3px',
|
|
10613
|
-
marginLeft: '3px'
|
|
10614
|
-
}
|
|
10615
|
-
}, /*#__PURE__*/React__default.createElement("img", {
|
|
10616
|
-
style: {
|
|
10617
|
-
width: 24,
|
|
10618
|
-
height: 24
|
|
10619
|
-
},
|
|
10620
|
-
src: url
|
|
10621
|
-
})));
|
|
11038
|
+
return /*#__PURE__*/React__default.createElement(Link, {
|
|
11039
|
+
onClick: onClick,
|
|
11040
|
+
onMouseEnter: onMouseEnter,
|
|
11041
|
+
onMouseLeave: onMouseLeave
|
|
11042
|
+
}, /*#__PURE__*/React__default.createElement(Text$3, {
|
|
11043
|
+
disabled: disabled,
|
|
11044
|
+
strong: strong
|
|
11045
|
+
}, name));
|
|
10622
11046
|
};
|
|
10623
11047
|
|
|
10624
|
-
const
|
|
11048
|
+
const Indent = () => {
|
|
11049
|
+
return /*#__PURE__*/React__default.createElement("span", {
|
|
11050
|
+
className: "ant-tree-indent"
|
|
11051
|
+
}, /*#__PURE__*/React__default.createElement("span", {
|
|
11052
|
+
className: "ant-tree-indent-unit"
|
|
11053
|
+
}));
|
|
11054
|
+
};
|
|
11055
|
+
const Indents = ({
|
|
11056
|
+
level
|
|
11057
|
+
}) => {
|
|
11058
|
+
const arr = Array.from(Array(level).keys());
|
|
11059
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, arr.map(i => /*#__PURE__*/React__default.createElement(Indent, {
|
|
11060
|
+
key: i
|
|
11061
|
+
})));
|
|
11062
|
+
};
|
|
11063
|
+
const CollapseButton = ({
|
|
11064
|
+
collapsed,
|
|
11065
|
+
onClick
|
|
11066
|
+
}) => {
|
|
11067
|
+
return /*#__PURE__*/React__default.createElement("span", {
|
|
11068
|
+
className: "ant-tree-switcher",
|
|
11069
|
+
onClick: onClick
|
|
11070
|
+
}, /*#__PURE__*/React__default.createElement("span", {
|
|
11071
|
+
role: "img",
|
|
11072
|
+
"aria-label": "caret-down",
|
|
11073
|
+
className: "anticon anticon-caret-down ant-tree-switcher-icon"
|
|
11074
|
+
}, collapsed ? /*#__PURE__*/React__default.createElement(CaretRightOutlined, null) : /*#__PURE__*/React__default.createElement(CaretDownOutlined, null)));
|
|
11075
|
+
};
|
|
11076
|
+
|
|
11077
|
+
function useMenuItems$4(drawingId, pluginId, objectId, setRename) {
|
|
11078
|
+
const {
|
|
11079
|
+
set,
|
|
11080
|
+
objectId: sketchId
|
|
11081
|
+
} = getPlugin(drawingId, pluginId);
|
|
11082
|
+
return React__default.useMemo(() => {
|
|
11083
|
+
return {
|
|
11084
|
+
rename: {
|
|
11085
|
+
caption: 'rename',
|
|
11086
|
+
icon: /*#__PURE__*/React__default.createElement(EditOutlined, null),
|
|
11087
|
+
callback: () => {
|
|
11088
|
+
setRename(true);
|
|
11089
|
+
}
|
|
11090
|
+
},
|
|
11091
|
+
delete: {
|
|
11092
|
+
caption: 'delete',
|
|
11093
|
+
icon: /*#__PURE__*/React__default.createElement(DeleteOutlined, null),
|
|
11094
|
+
callback: () => {
|
|
11095
|
+
ccAPI.sketcher.removeObjects(drawingId, sketchId, [objectId]);
|
|
11096
|
+
const tree = getDrawing(drawingId).structure.tree;
|
|
11097
|
+
set(state_ => {
|
|
11098
|
+
const selected = state_.selected.filter(id => id !== objectId && tree[id].parent !== objectId);
|
|
11099
|
+
return {
|
|
11100
|
+
selected
|
|
11101
|
+
};
|
|
11102
|
+
});
|
|
11103
|
+
}
|
|
11104
|
+
}
|
|
11105
|
+
};
|
|
11106
|
+
}, [drawingId, sketchId, objectId, set, setRename]);
|
|
11107
|
+
}
|
|
11108
|
+
|
|
11109
|
+
const {
|
|
11110
|
+
Text: Text$2
|
|
11111
|
+
} = Typography;
|
|
11112
|
+
|
|
11113
|
+
const ObjTitle = ({
|
|
11114
|
+
objId,
|
|
11115
|
+
withMenu
|
|
11116
|
+
}) => {
|
|
11117
|
+
const {
|
|
11118
|
+
drawingId,
|
|
11119
|
+
pluginId
|
|
11120
|
+
} = React__default.useContext(RootContext);
|
|
11121
|
+
const name = useDrawing(drawingId, d => d.structure.tree[objId].name) || '';
|
|
11122
|
+
const objClass = useDrawing(drawingId, d => d.structure.tree[objId].class);
|
|
11123
|
+
const isHovered = useSketchState(drawingId, pluginId, s => s.hovered === objId);
|
|
11124
|
+
const isSelected = useSketchState(drawingId, pluginId, s => s.selected.indexOf(objId) !== -1);
|
|
11125
|
+
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
|
|
11126
|
+
|
|
11127
|
+
const imgName = React__default.useMemo(() => {
|
|
11128
|
+
switch (objClass) {
|
|
11129
|
+
case CCClasses.CCPoint:
|
|
11130
|
+
return HandlersList.DRAWPOINT;
|
|
11131
|
+
|
|
11132
|
+
case CCClasses.CCLine:
|
|
11133
|
+
return HandlersList.DRAWLINE;
|
|
11134
|
+
|
|
11135
|
+
case CCClasses.CCArc:
|
|
11136
|
+
return HandlersList.DRAWARCCENTER;
|
|
11137
|
+
|
|
11138
|
+
case CCClasses.CCCircle:
|
|
11139
|
+
return HandlersList.DRAWCIRCLE;
|
|
11140
|
+
|
|
11141
|
+
default:
|
|
11142
|
+
return objClass;
|
|
11143
|
+
}
|
|
11144
|
+
}, [objClass]);
|
|
11145
|
+
const [rename, setRename] = React__default.useState(false);
|
|
11146
|
+
const [isMenuHovered, setIsMenuHovered] = React__default.useState(false);
|
|
11147
|
+
const menuItems = useMenuItems$4(drawingId, pluginId, objId, setRename);
|
|
11148
|
+
const activeHandler = useSketchState(drawingId, pluginId, state => state.activeHandler);
|
|
11149
|
+
const globalSelection = useTreeObjSelection(drawingId, objId);
|
|
11150
|
+
const onClickSel = globalSelection.handlers.onClick; // TODO: Implement global selection in onClick? Not sure if needed...
|
|
11151
|
+
|
|
11152
|
+
const onClick = React__default.useCallback(() => {
|
|
11153
|
+
if (activeHandler === HandlersList.DRAG) {
|
|
11154
|
+
select(drawingId, pluginId, objId);
|
|
11155
|
+
} else if (!activeHandler) {
|
|
11156
|
+
// if no handler is active, some selector should be active
|
|
11157
|
+
onClickSel && onClickSel();
|
|
11158
|
+
}
|
|
11159
|
+
}, [drawingId, pluginId, objId, activeHandler, onClickSel]);
|
|
11160
|
+
const onMouseEnter = React__default.useCallback(() => {
|
|
11161
|
+
hover(drawingId, pluginId, objId);
|
|
11162
|
+
}, [drawingId, pluginId, objId]);
|
|
11163
|
+
const onMouseLeave = React__default.useCallback(() => {
|
|
11164
|
+
unhover(drawingId, pluginId, objId);
|
|
11165
|
+
}, [drawingId, pluginId, objId]);
|
|
11166
|
+
const nameComponent = rename ? /*#__PURE__*/React__default.createElement(NameEdit, {
|
|
11167
|
+
drawingId: drawingId,
|
|
11168
|
+
objId: objId,
|
|
11169
|
+
setEditName: setRename,
|
|
11170
|
+
name: name
|
|
11171
|
+
}) : /*#__PURE__*/React__default.createElement(EntityName, {
|
|
11172
|
+
name: name,
|
|
11173
|
+
onClick: onClick,
|
|
11174
|
+
onMouseEnter: onMouseEnter,
|
|
11175
|
+
onMouseLeave: onMouseLeave
|
|
11176
|
+
});
|
|
11177
|
+
return /*#__PURE__*/React__default.createElement(HoveredDiv, {
|
|
11178
|
+
hovered: isMenuHovered,
|
|
11179
|
+
style: {
|
|
11180
|
+
backgroundColor: color
|
|
11181
|
+
}
|
|
11182
|
+
}, /*#__PURE__*/React__default.createElement(Space, null, imgName && resources[imgName] && /*#__PURE__*/React__default.createElement("img", {
|
|
11183
|
+
style: {
|
|
11184
|
+
width: 18,
|
|
11185
|
+
height: 18,
|
|
11186
|
+
verticalAlign: '-4px'
|
|
11187
|
+
},
|
|
11188
|
+
src: resources[imgName]
|
|
11189
|
+
}), nameComponent), withMenu && /*#__PURE__*/React__default.createElement(Menu, {
|
|
11190
|
+
items: menuItems,
|
|
11191
|
+
onVisibleChange: setIsMenuHovered
|
|
11192
|
+
}));
|
|
11193
|
+
};
|
|
11194
|
+
|
|
11195
|
+
const SketchObj = ({
|
|
11196
|
+
objId,
|
|
11197
|
+
level
|
|
11198
|
+
}) => {
|
|
11199
|
+
const {
|
|
11200
|
+
drawingId
|
|
11201
|
+
} = React__default.useContext(RootContext);
|
|
11202
|
+
const children = useDrawing(drawingId, d => d.structure.tree[objId].children || []);
|
|
11203
|
+
const [collapsed, setCollapsed] = React__default.useState(true);
|
|
11204
|
+
return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(FlexRow, null, /*#__PURE__*/React__default.createElement(Indents, {
|
|
11205
|
+
level: level
|
|
11206
|
+
}), children.length > 0 ? /*#__PURE__*/React__default.createElement(CollapseButton, {
|
|
11207
|
+
collapsed: collapsed,
|
|
11208
|
+
onClick: () => setCollapsed(x => !x)
|
|
11209
|
+
}) : /*#__PURE__*/React__default.createElement(Indent, null), /*#__PURE__*/React__default.createElement(ObjTitle, {
|
|
11210
|
+
objId: objId,
|
|
11211
|
+
withMenu: level === 0
|
|
11212
|
+
})), children.map(childId => /*#__PURE__*/React__default.createElement("div", {
|
|
11213
|
+
key: childId,
|
|
11214
|
+
style: {
|
|
11215
|
+
display: collapsed ? 'none' : 'block'
|
|
11216
|
+
}
|
|
11217
|
+
}, /*#__PURE__*/React__default.createElement(SketchObj, {
|
|
11218
|
+
objId: childId,
|
|
11219
|
+
level: level + 1
|
|
11220
|
+
}))));
|
|
11221
|
+
};
|
|
11222
|
+
|
|
11223
|
+
const Details = () => {
|
|
11224
|
+
const {
|
|
11225
|
+
Collapse
|
|
11226
|
+
} = useBuerli(buerli => buerli.options.elements);
|
|
11227
|
+
const {
|
|
11228
|
+
drawingId,
|
|
11229
|
+
pluginId
|
|
11230
|
+
} = React__default.useContext(RootContext);
|
|
11231
|
+
const sketchId = usePlugin(drawingId, pluginId, plugin => plugin.objectId);
|
|
11232
|
+
const sketchChildren = useDrawing(drawingId, drawing => drawing.structure.tree[sketchId].children);
|
|
11233
|
+
const {
|
|
11234
|
+
geometry,
|
|
11235
|
+
constraints,
|
|
11236
|
+
isTrimActive
|
|
11237
|
+
} = React__default.useMemo(() => {
|
|
11238
|
+
const tree = getDrawing(drawingId).structure.tree;
|
|
11239
|
+
const geometry_ = (sketchChildren == null ? void 0 : sketchChildren.filter(id => isSketchGeometry(tree[id].class))) || [];
|
|
11240
|
+
const constraints_ = (sketchChildren == null ? void 0 : sketchChildren.filter(id => is2DConstraint(tree[id].class))) || [];
|
|
11241
|
+
const isTrimActive_ = (sketchChildren == null ? void 0 : sketchChildren.findIndex(id => tree[id].class === CCClasses.CCContainer)) !== -1;
|
|
11242
|
+
return {
|
|
11243
|
+
geometry: geometry_,
|
|
11244
|
+
constraints: constraints_,
|
|
11245
|
+
isTrimActive: isTrimActive_
|
|
11246
|
+
};
|
|
11247
|
+
}, [drawingId, sketchChildren]);
|
|
11248
|
+
return /*#__PURE__*/React__default.createElement(Collapse, {
|
|
11249
|
+
header: "Details",
|
|
11250
|
+
isActive: false
|
|
11251
|
+
}, geometry.length === 0 && /*#__PURE__*/React__default.createElement(Text$2, {
|
|
11252
|
+
strong: true
|
|
11253
|
+
}, "The sketch is empty"), geometry.length > 0 && isTrimActive && /*#__PURE__*/React__default.createElement(Text$2, {
|
|
11254
|
+
strong: true
|
|
11255
|
+
}, "Trim is active"), geometry.length > 0 && !isTrimActive && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Text$2, {
|
|
11256
|
+
strong: true
|
|
11257
|
+
}, "Geometry"), !isTrimActive && geometry.map(childId => /*#__PURE__*/React__default.createElement(SketchObj, {
|
|
11258
|
+
objId: childId,
|
|
11259
|
+
key: childId,
|
|
11260
|
+
level: 0
|
|
11261
|
+
}))), constraints.length > 0 && !isTrimActive && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Text$2, {
|
|
11262
|
+
strong: true
|
|
11263
|
+
}, "Constraints"), constraints.map(childId => /*#__PURE__*/React__default.createElement(SketchObj, {
|
|
11264
|
+
objId: childId,
|
|
11265
|
+
key: childId,
|
|
11266
|
+
level: 0
|
|
11267
|
+
}))));
|
|
11268
|
+
};
|
|
11269
|
+
|
|
11270
|
+
const PlaneSelectionMode = ({
|
|
11271
|
+
drawingId,
|
|
11272
|
+
pluginId
|
|
11273
|
+
}) => {
|
|
11274
|
+
const {
|
|
11275
|
+
Group,
|
|
11276
|
+
Label,
|
|
11277
|
+
Selection
|
|
11278
|
+
} = useBuerli(buerli => buerli.options.elements);
|
|
11279
|
+
const sketchId = usePlugin(drawingId, pluginId, plugin => plugin.objectId);
|
|
11280
|
+
const curProduct = useDrawing(drawingId, d => d.structure.currentProduct);
|
|
11281
|
+
const opSeqId = useOperationSequence(drawingId, curProduct) || -1;
|
|
11282
|
+
const opSeqChildren = useDrawing(drawingId, d => d.structure.tree[opSeqId].children || []); // Makes base planes visible when just created, and turns them off after initialization (i.e. selecting a plane)
|
|
11283
|
+
|
|
11284
|
+
React__default.useEffect(() => {
|
|
11285
|
+
if (opSeqChildren.length < 7) {
|
|
11286
|
+
// Should probably never happen, but just in case...
|
|
11287
|
+
return;
|
|
11288
|
+
}
|
|
11289
|
+
|
|
11290
|
+
const drawing = getDrawing(drawingId);
|
|
11291
|
+
const tree = drawing.structure.tree;
|
|
11292
|
+
const pluginApi = drawing.api.plugin; // 4, 5, 6 are ids of XY-, XZ- and YZ-planes in the operation sequence array
|
|
11293
|
+
|
|
11294
|
+
const wpSeqIds = [4, 5, 6];
|
|
11295
|
+
const basePlaneIds = wpSeqIds.map(index => tree[opSeqChildren[index]].members.refObj.value);
|
|
11296
|
+
const wereInvisible = [];
|
|
11297
|
+
basePlaneIds.forEach(id => {
|
|
11298
|
+
if (drawing.plugin.visible.indexOf(id) === -1) {
|
|
11299
|
+
wereInvisible.push(id);
|
|
11300
|
+
pluginApi.setVisiblePlugin(id, true);
|
|
11301
|
+
}
|
|
11302
|
+
}); // Make planes invisible again
|
|
11303
|
+
|
|
11304
|
+
return () => {
|
|
11305
|
+
const drawing_ = getDrawing(drawingId);
|
|
11306
|
+
|
|
11307
|
+
if (drawing_) {
|
|
11308
|
+
var _drawing_$structure$t, _drawing_$structure$t2;
|
|
11309
|
+
|
|
11310
|
+
const pluginApi_ = drawing_.api.plugin;
|
|
11311
|
+
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;
|
|
11312
|
+
wereInvisible.forEach(id => {
|
|
11313
|
+
if (id !== planeId) {
|
|
11314
|
+
pluginApi_.setVisiblePlugin(id, false);
|
|
11315
|
+
}
|
|
11316
|
+
});
|
|
11317
|
+
}
|
|
11318
|
+
}; // Should always happen just once
|
|
11319
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11320
|
+
}, []);
|
|
11321
|
+
return /*#__PURE__*/React__default.createElement(Group, null, /*#__PURE__*/React__default.createElement(Label, null, "Select sketcher plane"), /*#__PURE__*/React__default.createElement(Selection, {
|
|
11322
|
+
drawingId: drawingId,
|
|
11323
|
+
filter: (scope, data) => {
|
|
11324
|
+
return scope === TreeObjScope && data.object.class === CCClasses.CCWorkPlane || scope === BuerliScope && data === GraphicType.PLANE;
|
|
11325
|
+
},
|
|
11326
|
+
onChange: items => {
|
|
11327
|
+
if (items.length !== 0) {
|
|
11328
|
+
if (items[0].scope === TreeObjScope) {
|
|
11329
|
+
ccAPI.sketcher.setWorkPlane(drawingId, sketchId, items[0].data.object.id);
|
|
11330
|
+
} else {
|
|
11331
|
+
ccAPI.sketcher.createAndSetWorkPlane(drawingId, sketchId, items[0].data.graphicId);
|
|
11332
|
+
}
|
|
11333
|
+
}
|
|
11334
|
+
},
|
|
11335
|
+
defaultActive: true
|
|
11336
|
+
}));
|
|
11337
|
+
};
|
|
11338
|
+
|
|
11339
|
+
const MousePos = () => {
|
|
11340
|
+
const {
|
|
11341
|
+
Group,
|
|
11342
|
+
Label
|
|
11343
|
+
} = useBuerli(buerli => buerli.options.elements);
|
|
11344
|
+
const {
|
|
11345
|
+
drawingId,
|
|
11346
|
+
pluginId
|
|
11347
|
+
} = React__default.useContext(RootContext);
|
|
11348
|
+
const pos = useSketchState(drawingId, pluginId, state => state.mousePos);
|
|
11349
|
+
return pos ? /*#__PURE__*/React__default.createElement(Group, null, /*#__PURE__*/React__default.createElement(Label, null, "Mouse:"), /*#__PURE__*/React__default.createElement(Label, {
|
|
11350
|
+
flex: "inherit"
|
|
11351
|
+
}, "X:"), /*#__PURE__*/React__default.createElement(Label, null, pos.x.toFixed(2)), /*#__PURE__*/React__default.createElement(Label, {
|
|
11352
|
+
flex: "inherit"
|
|
11353
|
+
}, "Y:"), /*#__PURE__*/React__default.createElement(Label, null, pos.y.toFixed(2))) : null;
|
|
11354
|
+
};
|
|
11355
|
+
|
|
11356
|
+
const TabIcon = ({
|
|
11357
|
+
url,
|
|
11358
|
+
tooltip
|
|
11359
|
+
}) => {
|
|
11360
|
+
const {
|
|
11361
|
+
Tooltip
|
|
11362
|
+
} = useBuerli(b => b.options.elements);
|
|
11363
|
+
return /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
11364
|
+
title: tooltip,
|
|
11365
|
+
placement: "top"
|
|
11366
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
11367
|
+
style: {
|
|
11368
|
+
marginRight: '3px',
|
|
11369
|
+
marginLeft: '3px'
|
|
11370
|
+
}
|
|
11371
|
+
}, /*#__PURE__*/React__default.createElement("img", {
|
|
11372
|
+
style: {
|
|
11373
|
+
width: 24,
|
|
11374
|
+
height: 24
|
|
11375
|
+
},
|
|
11376
|
+
src: url
|
|
11377
|
+
})));
|
|
11378
|
+
};
|
|
11379
|
+
|
|
11380
|
+
const SketchMode = ({
|
|
10625
11381
|
drawingId,
|
|
10626
11382
|
pluginId
|
|
10627
11383
|
}) => {
|
|
@@ -10666,7 +11422,7 @@ const SketchMode = ({
|
|
|
10666
11422
|
});
|
|
10667
11423
|
}
|
|
10668
11424
|
})), /*#__PURE__*/React__default.createElement(MousePos, null), /*#__PURE__*/React__default.createElement(Collapse, {
|
|
10669
|
-
header: "Patterns
|
|
11425
|
+
header: "Patterns",
|
|
10670
11426
|
isActive: false
|
|
10671
11427
|
}, /*#__PURE__*/React__default.createElement(Tabs, {
|
|
10672
11428
|
tabBarGutter: 0,
|
|
@@ -10691,13 +11447,7 @@ const SketchMode = ({
|
|
|
10691
11447
|
tooltip: "Mirror copy pattern."
|
|
10692
11448
|
}),
|
|
10693
11449
|
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))))));
|
|
11450
|
+
}, /*#__PURE__*/React__default.createElement(MirrorPattern, null)))), /*#__PURE__*/React__default.createElement(Details, null)));
|
|
10701
11451
|
};
|
|
10702
11452
|
|
|
10703
11453
|
const RootImpl$f = ({
|
|
@@ -10707,22 +11457,23 @@ const RootImpl$f = ({
|
|
|
10707
11457
|
const objectId = usePlugin(drawingId, pluginId, plugin => plugin.objectId);
|
|
10708
11458
|
const sketch = useDrawing(drawingId, drawing => drawing.structure.tree[objectId]);
|
|
10709
11459
|
const planeSelected = sketch.members.planeReference.value !== 0;
|
|
10710
|
-
const {
|
|
10711
|
-
set
|
|
10712
|
-
} = getPlugin(drawingId, pluginId);
|
|
10713
11460
|
React__default.useEffect(() => {
|
|
10714
11461
|
// Reset some fields in state and force sketch visibility when sketch is unmounted.
|
|
10715
11462
|
return () => {
|
|
10716
|
-
const
|
|
10717
|
-
|
|
10718
|
-
|
|
10719
|
-
|
|
10720
|
-
|
|
10721
|
-
|
|
10722
|
-
|
|
10723
|
-
|
|
11463
|
+
const plugin = getPlugin(drawingId, pluginId); // Only do stuff if plugin exists in the store when unmounting
|
|
11464
|
+
|
|
11465
|
+
if (plugin) {
|
|
11466
|
+
const pluginApi = getDrawing(drawingId).api.plugin;
|
|
11467
|
+
pluginApi.setVisiblePlugin(pluginId, true);
|
|
11468
|
+
plugin.set({
|
|
11469
|
+
tmpObjects: {},
|
|
11470
|
+
selected: [],
|
|
11471
|
+
hovered: UNDEFINEDID,
|
|
11472
|
+
highlighted: []
|
|
11473
|
+
});
|
|
11474
|
+
}
|
|
10724
11475
|
};
|
|
10725
|
-
}, [drawingId, pluginId
|
|
11476
|
+
}, [drawingId, pluginId]);
|
|
10726
11477
|
React__default.useEffect(() => {
|
|
10727
11478
|
if (!planeSelected) {
|
|
10728
11479
|
return;
|
|
@@ -10980,7 +11731,7 @@ const ViewImpl$c = ({
|
|
|
10980
11731
|
handlers
|
|
10981
11732
|
} = useTreeObjSelection(drawingId, objectId);
|
|
10982
11733
|
const color = getColor(isHovered, isSelected, direction, workAxisObj.members.Type.value);
|
|
10983
|
-
const ref = useScale(position.clone(), sf => [3 * sf, 3 * sf, 3 * sf]);
|
|
11734
|
+
const ref = useScale$1(position.clone(), sf => [3 * sf, 3 * sf, 3 * sf]);
|
|
10984
11735
|
return /*#__PURE__*/React__default.createElement(HUD, null, /*#__PURE__*/React__default.createElement("group", {
|
|
10985
11736
|
ref: ref,
|
|
10986
11737
|
position: position
|
|
@@ -11501,7 +12252,7 @@ const ViewImpl$a = ({
|
|
|
11501
12252
|
handlers
|
|
11502
12253
|
} = useTreeObjSelection(drawingId, objectId);
|
|
11503
12254
|
const color = isHovered ? 0x28d79f : isSelected ? 0xa70b0b : 0x111111;
|
|
11504
|
-
const ref = useScale(position.clone(), sf => [3 * sf, 3 * sf, 3 * sf]);
|
|
12255
|
+
const ref = useScale$1(position.clone(), sf => [3 * sf, 3 * sf, 3 * sf]);
|
|
11505
12256
|
return /*#__PURE__*/React__default.createElement(HUD, null, /*#__PURE__*/React__default.createElement("group", {
|
|
11506
12257
|
ref: ref,
|
|
11507
12258
|
position: position
|
|
@@ -11542,9 +12293,9 @@ var index$c = /*#__PURE__*/Object.freeze({
|
|
|
11542
12293
|
description: description$c
|
|
11543
12294
|
});
|
|
11544
12295
|
|
|
11545
|
-
function ownKeys$
|
|
12296
|
+
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; }
|
|
11546
12297
|
|
|
11547
|
-
function _objectSpread$
|
|
12298
|
+
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; }
|
|
11548
12299
|
|
|
11549
12300
|
const NumInput = ({
|
|
11550
12301
|
onChange,
|
|
@@ -11605,7 +12356,7 @@ const CSysEditor = ({
|
|
|
11605
12356
|
const [z, setZ] = React__default.useState(() => userValue[csysRow].z);
|
|
11606
12357
|
React__default.useEffect(() => {
|
|
11607
12358
|
setUserValue(val => {
|
|
11608
|
-
const newVal = [_objectSpread$
|
|
12359
|
+
const newVal = [_objectSpread$7({}, val[0]), _objectSpread$7({}, val[1]), _objectSpread$7({}, val[2]), _objectSpread$7({}, val[3])];
|
|
11609
12360
|
newVal[csysRow] = {
|
|
11610
12361
|
x,
|
|
11611
12362
|
y,
|
|
@@ -12216,36 +12967,36 @@ function ViewImpl$8({
|
|
|
12216
12967
|
length: zAxisLength + scale * 10,
|
|
12217
12968
|
width: arrowWidth,
|
|
12218
12969
|
color: 0x11116f
|
|
12219
|
-
}), /*#__PURE__*/React__default.createElement(Point$
|
|
12970
|
+
}), /*#__PURE__*/React__default.createElement(Point$2, {
|
|
12220
12971
|
position: origin,
|
|
12221
12972
|
radius: originPointWidth,
|
|
12222
12973
|
color: 0x111111
|
|
12223
|
-
}), axisPoints.map(point => /*#__PURE__*/React__default.createElement(Point$
|
|
12974
|
+
}), axisPoints.map(point => /*#__PURE__*/React__default.createElement(Point$2, {
|
|
12224
12975
|
key: point.key,
|
|
12225
12976
|
position: point.position,
|
|
12226
12977
|
radius: axisPointWidth,
|
|
12227
12978
|
color: point.color
|
|
12228
|
-
})), /*#__PURE__*/React__default.createElement(Point$
|
|
12979
|
+
})), /*#__PURE__*/React__default.createElement(Point$2, {
|
|
12229
12980
|
position: xMin,
|
|
12230
12981
|
radius: boundaryPointWidth,
|
|
12231
12982
|
color: 0x6f1111
|
|
12232
|
-
}), /*#__PURE__*/React__default.createElement(Point$
|
|
12983
|
+
}), /*#__PURE__*/React__default.createElement(Point$2, {
|
|
12233
12984
|
position: xMax,
|
|
12234
12985
|
radius: boundaryPointWidth,
|
|
12235
12986
|
color: 0x6f1111
|
|
12236
|
-
}), /*#__PURE__*/React__default.createElement(Point$
|
|
12987
|
+
}), /*#__PURE__*/React__default.createElement(Point$2, {
|
|
12237
12988
|
position: yMin,
|
|
12238
12989
|
radius: boundaryPointWidth,
|
|
12239
12990
|
color: 0x116f11
|
|
12240
|
-
}), /*#__PURE__*/React__default.createElement(Point$
|
|
12991
|
+
}), /*#__PURE__*/React__default.createElement(Point$2, {
|
|
12241
12992
|
position: yMax,
|
|
12242
12993
|
radius: boundaryPointWidth,
|
|
12243
12994
|
color: 0x116f11
|
|
12244
|
-
}), /*#__PURE__*/React__default.createElement(Point$
|
|
12995
|
+
}), /*#__PURE__*/React__default.createElement(Point$2, {
|
|
12245
12996
|
position: zMin,
|
|
12246
12997
|
radius: boundaryPointWidth,
|
|
12247
12998
|
color: 0x11116f
|
|
12248
|
-
}), /*#__PURE__*/React__default.createElement(Point$
|
|
12999
|
+
}), /*#__PURE__*/React__default.createElement(Point$2, {
|
|
12249
13000
|
position: zMax,
|
|
12250
13001
|
radius: boundaryPointWidth,
|
|
12251
13002
|
color: 0x11116f
|
|
@@ -12943,6 +13694,47 @@ const CSysDisplayValidator = ({
|
|
|
12943
13694
|
}, children);
|
|
12944
13695
|
};
|
|
12945
13696
|
|
|
13697
|
+
function useFeaturesIds(drawingId, curNodeId) {
|
|
13698
|
+
const curClass = useDrawing(drawingId, d => {
|
|
13699
|
+
var _d$structure$tree$cur;
|
|
13700
|
+
|
|
13701
|
+
return (_d$structure$tree$cur = d.structure.tree[curNodeId]) == null ? void 0 : _d$structure$tree$cur.class;
|
|
13702
|
+
});
|
|
13703
|
+
const prodId = useDrawing(drawingId, d => {
|
|
13704
|
+
if (curClass === CCClasses.CCProductReference || curClass === CCClasses.CCProductReferenceET) {
|
|
13705
|
+
const node = d.structure.tree[curNodeId];
|
|
13706
|
+
return node.members.productId.value;
|
|
13707
|
+
}
|
|
13708
|
+
|
|
13709
|
+
return curNodeId;
|
|
13710
|
+
});
|
|
13711
|
+
const opSeqId = useOperationSequence(drawingId, prodId);
|
|
13712
|
+
const opSeqChildren = useDrawing(drawingId, d => {
|
|
13713
|
+
var _d$structure$tree;
|
|
13714
|
+
|
|
13715
|
+
return (_d$structure$tree = d.structure.tree[opSeqId || -1]) == null ? void 0 : _d$structure$tree.children;
|
|
13716
|
+
});
|
|
13717
|
+
const tree = getDrawing(drawingId).structure.tree;
|
|
13718
|
+
const featureIds = (opSeqChildren == null ? void 0 : opSeqChildren.map(refId => tree[refId].members.refObj.value)) || [];
|
|
13719
|
+
return featureIds;
|
|
13720
|
+
}
|
|
13721
|
+
function getFeaturesIds(drawingId, curNodeId) {
|
|
13722
|
+
var _tree$prodId, _tree;
|
|
13723
|
+
|
|
13724
|
+
const tree = getDrawing(drawingId).structure.tree;
|
|
13725
|
+
const curClass = tree[curNodeId].class;
|
|
13726
|
+
const prodId = curClass === CCClasses.CCProductReference || curClass === CCClasses.CCProductReferenceET ? tree[curNodeId].members.productId.value : curNodeId;
|
|
13727
|
+
const prodChildren = (_tree$prodId = tree[prodId]) == null ? void 0 : _tree$prodId.children;
|
|
13728
|
+
const opSeqId = prodChildren == null ? void 0 : prodChildren.find(id => {
|
|
13729
|
+
var _tree$id;
|
|
13730
|
+
|
|
13731
|
+
return ((_tree$id = tree[id]) == null ? void 0 : _tree$id.class) === CCClasses.CCOperationSequence;
|
|
13732
|
+
});
|
|
13733
|
+
const opSeqChildren = (_tree = tree[opSeqId || -1]) == null ? void 0 : _tree.children;
|
|
13734
|
+
const featureIds = (opSeqChildren == null ? void 0 : opSeqChildren.map(refId => tree[refId].members.refObj.value)) || [];
|
|
13735
|
+
return featureIds;
|
|
13736
|
+
}
|
|
13737
|
+
|
|
12946
13738
|
const getFlipMatrix = (flip, xAxis, yAxis) => {
|
|
12947
13739
|
switch (flip) {
|
|
12948
13740
|
case FlipType.FLIP_X:
|
|
@@ -13285,9 +14077,8 @@ const CSysDisplayImpl = ({
|
|
|
13285
14077
|
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
14078
|
|
|
13287
14079
|
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)) || [];
|
|
14080
|
+
const features = getFeaturesIds(drawingId, productId);
|
|
14081
|
+
const csysIds = (features == null ? void 0 : features.filter(featureId => tree[featureId].class === CCClasses.CCWorkCoordSystem)) || [];
|
|
13291
14082
|
prToCsysMap[productId] = csysIds;
|
|
13292
14083
|
}
|
|
13293
14084
|
|
|
@@ -14987,216 +15778,77 @@ function readFile(file, type) {
|
|
|
14987
15778
|
break;
|
|
14988
15779
|
|
|
14989
15780
|
case 'Text':
|
|
14990
|
-
reader.readAsText(file);
|
|
14991
|
-
break;
|
|
14992
|
-
|
|
14993
|
-
case 'ArrayBuffer':
|
|
14994
|
-
default:
|
|
14995
|
-
reader.readAsArrayBuffer(file);
|
|
14996
|
-
break;
|
|
14997
|
-
}
|
|
14998
|
-
});
|
|
14999
|
-
}
|
|
15000
|
-
/**
|
|
15001
|
-
* Simple helper functions for file interaction.
|
|
15002
|
-
*/
|
|
15003
|
-
|
|
15004
|
-
|
|
15005
|
-
const FileUtils = {
|
|
15006
|
-
/**
|
|
15007
|
-
* Loads a file from the file system.
|
|
15008
|
-
* It uses @see document and is therefore directly dependent on the DOM.
|
|
15009
|
-
*
|
|
15010
|
-
* @param onLoad The callback.
|
|
15011
|
-
* @param type The content type.
|
|
15012
|
-
*/
|
|
15013
|
-
loadFile: (onLoad, type, multiple) => {
|
|
15014
|
-
const handler = event => {
|
|
15015
|
-
if (event.target && event.target.files) {
|
|
15016
|
-
const files = [...event.target.files];
|
|
15017
|
-
const promises = files.map(f => readFile(f, type));
|
|
15018
|
-
Promise.all(promises).then(res => onLoad(res)).catch();
|
|
15019
|
-
event.target.value = '';
|
|
15020
|
-
}
|
|
15021
|
-
};
|
|
15022
|
-
|
|
15023
|
-
const loaderId = '________buerli-react-cad________';
|
|
15024
|
-
const loaderSelector = `#${loaderId}`;
|
|
15025
|
-
let loader = document.querySelector(loaderSelector);
|
|
15026
|
-
|
|
15027
|
-
if (!loader || !loader.onchange) {
|
|
15028
|
-
loader = document.createElement('input');
|
|
15029
|
-
loader.id = loaderId;
|
|
15030
|
-
loader.type = 'file';
|
|
15031
|
-
loader.multiple = multiple || false;
|
|
15032
|
-
loader.style.display = 'none';
|
|
15033
|
-
document.body.appendChild(loader);
|
|
15034
|
-
}
|
|
15035
|
-
|
|
15036
|
-
if (loader) {
|
|
15037
|
-
loader.onchange = handler;
|
|
15038
|
-
loader.click();
|
|
15039
|
-
}
|
|
15040
|
-
},
|
|
15041
|
-
exportNode: async (drawingId, objectId, type = 'of1') => {
|
|
15042
|
-
var _members$productId;
|
|
15043
|
-
|
|
15044
|
-
const structure = getDrawing(drawingId).structure;
|
|
15045
|
-
const tree = structure.tree;
|
|
15046
|
-
const isRoot = objectId === structure.root;
|
|
15047
|
-
const productId = ((_members$productId = tree[objectId].members.productId) == null ? void 0 : _members$productId.value) || objectId;
|
|
15048
|
-
const name = tree[productId].name;
|
|
15049
|
-
const data = isRoot ? await ccAPI.baseModeler.save(drawingId, type) : await ccAPI.assemblyBuilder.exportNode(drawingId, objectId, type);
|
|
15050
|
-
|
|
15051
|
-
if (data) {
|
|
15052
|
-
const link = document.createElement('a');
|
|
15053
|
-
link.href = window.URL.createObjectURL(new Blob([data], {
|
|
15054
|
-
type: 'application/octet-stream'
|
|
15055
|
-
}));
|
|
15056
|
-
link.download = `${name}.${type}`;
|
|
15057
|
-
link.click();
|
|
15058
|
-
}
|
|
15059
|
-
}
|
|
15060
|
-
};
|
|
15061
|
-
|
|
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
|
-
};
|
|
15781
|
+
reader.readAsText(file);
|
|
15782
|
+
break;
|
|
15116
15783
|
|
|
15117
|
-
|
|
15118
|
-
|
|
15784
|
+
case 'ArrayBuffer':
|
|
15785
|
+
default:
|
|
15786
|
+
reader.readAsArrayBuffer(file);
|
|
15787
|
+
break;
|
|
15788
|
+
}
|
|
15789
|
+
});
|
|
15790
|
+
}
|
|
15791
|
+
/**
|
|
15792
|
+
* Simple helper functions for file interaction.
|
|
15793
|
+
*/
|
|
15119
15794
|
|
|
15120
|
-
const drawing = getDrawing(drawingId);
|
|
15121
|
-
const camApi = (_getCamera = getCamera(drawingId)) == null ? void 0 : _getCamera.api;
|
|
15122
15795
|
|
|
15123
|
-
|
|
15124
|
-
|
|
15125
|
-
|
|
15796
|
+
const FileUtils = {
|
|
15797
|
+
/**
|
|
15798
|
+
* Loads a file from the file system.
|
|
15799
|
+
* It uses @see document and is therefore directly dependent on the DOM.
|
|
15800
|
+
*
|
|
15801
|
+
* @param onLoad The callback.
|
|
15802
|
+
* @param type The content type.
|
|
15803
|
+
*/
|
|
15804
|
+
loadFile: (onLoad, type, multiple) => {
|
|
15805
|
+
const handler = event => {
|
|
15806
|
+
if (event.target && event.target.files) {
|
|
15807
|
+
const files = [...event.target.files];
|
|
15808
|
+
const promises = files.map(f => readFile(f, type));
|
|
15809
|
+
Promise.all(promises).then(res => onLoad(res)).catch();
|
|
15810
|
+
event.target.value = '';
|
|
15811
|
+
}
|
|
15812
|
+
};
|
|
15126
15813
|
|
|
15127
|
-
|
|
15128
|
-
|
|
15129
|
-
|
|
15130
|
-
} = drawing;
|
|
15131
|
-
const {
|
|
15132
|
-
root,
|
|
15133
|
-
currentProduct,
|
|
15134
|
-
currentNode
|
|
15135
|
-
} = structure;
|
|
15136
|
-
let currRoot = currentNode || currentProduct || root;
|
|
15814
|
+
const loaderId = '________buerli-react-cad________';
|
|
15815
|
+
const loaderSelector = `#${loaderId}`;
|
|
15816
|
+
let loader = document.querySelector(loaderSelector);
|
|
15137
15817
|
|
|
15138
|
-
|
|
15139
|
-
|
|
15140
|
-
|
|
15818
|
+
if (!loader || !loader.onchange) {
|
|
15819
|
+
loader = document.createElement('input');
|
|
15820
|
+
loader.id = loaderId;
|
|
15821
|
+
loader.type = 'file';
|
|
15822
|
+
loader.multiple = multiple || false;
|
|
15823
|
+
loader.style.display = 'none';
|
|
15824
|
+
document.body.appendChild(loader);
|
|
15825
|
+
}
|
|
15141
15826
|
|
|
15142
|
-
|
|
15143
|
-
|
|
15144
|
-
|
|
15827
|
+
if (loader) {
|
|
15828
|
+
loader.onchange = handler;
|
|
15829
|
+
loader.click();
|
|
15830
|
+
}
|
|
15831
|
+
},
|
|
15832
|
+
exportNode: async (drawingId, objectId, type = 'of1') => {
|
|
15833
|
+
var _members$productId;
|
|
15145
15834
|
|
|
15146
|
-
|
|
15835
|
+
const structure = getDrawing(drawingId).structure;
|
|
15836
|
+
const tree = structure.tree;
|
|
15837
|
+
const isRoot = objectId === structure.root;
|
|
15838
|
+
const productId = ((_members$productId = tree[objectId].members.productId) == null ? void 0 : _members$productId.value) || objectId;
|
|
15839
|
+
const name = tree[productId].name;
|
|
15840
|
+
const data = isRoot ? await ccAPI.baseModeler.save(drawingId, type) : await ccAPI.assemblyBuilder.exportNode(drawingId, objectId, type);
|
|
15147
15841
|
|
|
15148
|
-
|
|
15149
|
-
const
|
|
15150
|
-
|
|
15151
|
-
|
|
15152
|
-
set(state => {
|
|
15153
|
-
let res = [];
|
|
15154
|
-
const curNode = api.getState().drawing.refs[drawingId].structure.currentNode;
|
|
15155
|
-
res = state.assemblyTree.prodStack;
|
|
15156
|
-
curNode && res.push(curNode);
|
|
15157
|
-
return _objectSpread$5(_objectSpread$5({}, state), {}, {
|
|
15158
|
-
assemblyTree: {
|
|
15159
|
-
prodStack: [...res]
|
|
15160
|
-
}
|
|
15161
|
-
});
|
|
15162
|
-
});
|
|
15163
|
-
ccAPI.assemblyBuilder.setCurrentNode(drawingId, objId).then(() => zoomToFit(drawingId)).catch();
|
|
15164
|
-
},
|
|
15165
|
-
goBack: drawingId => {
|
|
15166
|
-
const prodStack = get().assemblyTree.prodStack;
|
|
15167
|
-
const prevProd = prodStack[prodStack.length - 1];
|
|
15168
|
-
if (!prevProd) return;
|
|
15169
|
-
set(state => {
|
|
15170
|
-
const res = state.assemblyTree.prodStack;
|
|
15171
|
-
res.pop();
|
|
15172
|
-
return _objectSpread$5(_objectSpread$5({}, state), {}, {
|
|
15173
|
-
assemblyTree: {
|
|
15174
|
-
prodStack: [...res]
|
|
15175
|
-
}
|
|
15176
|
-
});
|
|
15177
|
-
});
|
|
15178
|
-
ccAPI.assemblyBuilder.setCurrentNode(drawingId, prevProd).then(() => zoomToFit(drawingId)).catch();
|
|
15179
|
-
},
|
|
15180
|
-
clearProdStack: () => {
|
|
15181
|
-
set(state => _objectSpread$5(_objectSpread$5({}, state), {}, {
|
|
15182
|
-
assemblyTree: {
|
|
15183
|
-
prodStack: []
|
|
15184
|
-
}
|
|
15842
|
+
if (data) {
|
|
15843
|
+
const link = document.createElement('a');
|
|
15844
|
+
link.href = window.URL.createObjectURL(new Blob([data], {
|
|
15845
|
+
type: 'application/octet-stream'
|
|
15185
15846
|
}));
|
|
15847
|
+
link.download = `${name}.${type}`;
|
|
15848
|
+
link.click();
|
|
15186
15849
|
}
|
|
15187
15850
|
}
|
|
15188
|
-
}
|
|
15189
|
-
|
|
15190
|
-
const createAppState = (set, get) => ({
|
|
15191
|
-
assemblyTree: {
|
|
15192
|
-
prodStack: []
|
|
15193
|
-
},
|
|
15194
|
-
api: appApi(set, get)
|
|
15195
|
-
});
|
|
15196
|
-
|
|
15197
|
-
const CADApi = vanilla((set, get) => createAppState(set, get));
|
|
15198
|
-
const useCADStore = create(CADApi);
|
|
15199
|
-
const getCADState = CADApi.getState;
|
|
15851
|
+
};
|
|
15200
15852
|
|
|
15201
15853
|
function useMenuItems$3(drawingId, prodId, setEditName, pluginId) {
|
|
15202
15854
|
const isCurrent = useDrawing(drawingId, d => d.structure.currentProduct === prodId);
|
|
@@ -15274,43 +15926,8 @@ function useMenuItems$3(drawingId, prodId, setEditName, pluginId) {
|
|
|
15274
15926
|
return res;
|
|
15275
15927
|
}
|
|
15276
15928
|
|
|
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
15929
|
const {
|
|
15313
|
-
Text: Text$
|
|
15930
|
+
Text: Text$1
|
|
15314
15931
|
} = Typography; // TODO: use Name from Feature.tsx
|
|
15315
15932
|
|
|
15316
15933
|
const Name = ({
|
|
@@ -15319,7 +15936,7 @@ const Name = ({
|
|
|
15319
15936
|
strong,
|
|
15320
15937
|
onClick
|
|
15321
15938
|
}) => {
|
|
15322
|
-
return /*#__PURE__*/React__default.createElement(Text$
|
|
15939
|
+
return /*#__PURE__*/React__default.createElement(Text$1, {
|
|
15323
15940
|
disabled: disabled,
|
|
15324
15941
|
strong: strong,
|
|
15325
15942
|
style: {
|
|
@@ -15407,7 +16024,7 @@ const NewProd = ({
|
|
|
15407
16024
|
ref: inputRef,
|
|
15408
16025
|
suffix: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Space, null, /*#__PURE__*/React__default.createElement(InputButton, {
|
|
15409
16026
|
type: "apply",
|
|
15410
|
-
onClick: () =>
|
|
16027
|
+
onClick: () => setCreateMode(false)
|
|
15411
16028
|
}), /*#__PURE__*/React__default.createElement(InputButton, {
|
|
15412
16029
|
type: "cancel",
|
|
15413
16030
|
onClick: () => setCreateMode(false)
|
|
@@ -15444,13 +16061,16 @@ const ProdTable = ({
|
|
|
15444
16061
|
dataIndex: 'prodId',
|
|
15445
16062
|
render
|
|
15446
16063
|
}];
|
|
15447
|
-
}, [drawingId, pluginId, setCreateMode]); //
|
|
16064
|
+
}, [drawingId, pluginId, setCreateMode]); // Reset selectedProduct when plugin is closed
|
|
15448
16065
|
|
|
15449
16066
|
React__default.useEffect(() => {
|
|
15450
|
-
return () =>
|
|
15451
|
-
|
|
15452
|
-
|
|
15453
|
-
|
|
16067
|
+
return () => {
|
|
16068
|
+
const plugin = getPlugin(drawingId, pluginId);
|
|
16069
|
+
plugin && plugin.set({
|
|
16070
|
+
selectedProduct: null
|
|
16071
|
+
});
|
|
16072
|
+
};
|
|
16073
|
+
}, [drawingId, pluginId]);
|
|
15454
16074
|
const keyHandler = React__default.useCallback(e => {
|
|
15455
16075
|
if (e.key === 'Escape') {
|
|
15456
16076
|
set({
|
|
@@ -15919,6 +16539,25 @@ const useIsDisabled = (drawingId, featureId) => {
|
|
|
15919
16539
|
return featureIndex > rollbackBarIndex || actFeatIdx >= 0 && actFeatIdx < featureIndex;
|
|
15920
16540
|
};
|
|
15921
16541
|
|
|
16542
|
+
/**
|
|
16543
|
+
* Validator for FeatureList component. Checks drawing and currentProduct existance.
|
|
16544
|
+
*
|
|
16545
|
+
* @param drawingId
|
|
16546
|
+
* @returns
|
|
16547
|
+
*/
|
|
16548
|
+
|
|
16549
|
+
const FeatureListValidator = ({
|
|
16550
|
+
drawingId,
|
|
16551
|
+
children
|
|
16552
|
+
}) => {
|
|
16553
|
+
const warnings = {};
|
|
16554
|
+
useDrawingVerifier(drawingId, warnings);
|
|
16555
|
+
useRootOrProdVerifier(drawingId, warnings);
|
|
16556
|
+
return /*#__PURE__*/React__default.createElement(ErrorBoundary, {
|
|
16557
|
+
warnings: warnings
|
|
16558
|
+
}, children);
|
|
16559
|
+
};
|
|
16560
|
+
|
|
15922
16561
|
/**
|
|
15923
16562
|
* Goal of this component is to manage visibility of individual features when interacting with RollbackBar
|
|
15924
16563
|
* TODO: change the component name?
|
|
@@ -15955,8 +16594,6 @@ const VisibilityController = ({
|
|
|
15955
16594
|
const FtVisibilityControllerImpl = ({
|
|
15956
16595
|
drawingId
|
|
15957
16596
|
}) => {
|
|
15958
|
-
var _operationSequence$ch;
|
|
15959
|
-
|
|
15960
16597
|
const activeSelId = useDrawing(drawingId, d => d.selection.active);
|
|
15961
16598
|
const featuresToHide = React__default.useRef([]);
|
|
15962
16599
|
React__default.useEffect(() => {
|
|
@@ -15985,15 +16622,7 @@ const FtVisibilityControllerImpl = ({
|
|
|
15985
16622
|
};
|
|
15986
16623
|
}, [drawingId, activeSelId]);
|
|
15987
16624
|
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
|
-
});
|
|
16625
|
+
const features = useFeaturesIds(drawingId, curPartId);
|
|
15997
16626
|
return features ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, features.map(id => /*#__PURE__*/React__default.createElement(VisibilityController, {
|
|
15998
16627
|
key: id,
|
|
15999
16628
|
drawingId: drawingId,
|
|
@@ -16004,70 +16633,25 @@ const FtVisibilityControllerImpl = ({
|
|
|
16004
16633
|
const FtVisibilityController = ({
|
|
16005
16634
|
drawingId
|
|
16006
16635
|
}) => {
|
|
16007
|
-
return /*#__PURE__*/React__default.createElement(
|
|
16636
|
+
return /*#__PURE__*/React__default.createElement(FeatureListValidator, {
|
|
16637
|
+
drawingId: drawingId
|
|
16638
|
+
}, /*#__PURE__*/React__default.createElement(FtVisibilityControllerImpl, {
|
|
16008
16639
|
drawingId: drawingId
|
|
16009
16640
|
}));
|
|
16010
16641
|
};
|
|
16011
16642
|
|
|
16012
16643
|
var FtVisibilityController$1 = FtVisibilityController;
|
|
16013
16644
|
|
|
16014
|
-
function ownKeys$
|
|
16015
|
-
|
|
16016
|
-
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; }
|
|
16017
|
-
|
|
16018
|
-
const Divider = props => {
|
|
16019
|
-
return /*#__PURE__*/React__default.createElement(Divider$1, _extends({}, props, {
|
|
16020
|
-
style: _objectSpread$4({
|
|
16021
|
-
margin: '0'
|
|
16022
|
-
}, props.style)
|
|
16023
|
-
}));
|
|
16024
|
-
};
|
|
16645
|
+
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; }
|
|
16025
16646
|
|
|
16026
|
-
|
|
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
|
-
`;
|
|
16647
|
+
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; }
|
|
16051
16648
|
|
|
16052
|
-
const {
|
|
16053
|
-
|
|
16054
|
-
|
|
16055
|
-
|
|
16056
|
-
|
|
16057
|
-
|
|
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));
|
|
16649
|
+
const Divider = props => {
|
|
16650
|
+
return /*#__PURE__*/React__default.createElement(Divider$1, _extends({}, props, {
|
|
16651
|
+
style: _objectSpread$6({
|
|
16652
|
+
margin: '0'
|
|
16653
|
+
}, props.style)
|
|
16654
|
+
}));
|
|
16071
16655
|
};
|
|
16072
16656
|
|
|
16073
16657
|
function useMenuItems$2(drawingId, featureId, isActive, setEditName) {
|
|
@@ -16093,35 +16677,92 @@ function useMenuItems$2(drawingId, featureId, isActive, setEditName) {
|
|
|
16093
16677
|
}, [drawingId, featureId, isActive, setEditName]);
|
|
16094
16678
|
}
|
|
16095
16679
|
|
|
16096
|
-
function useIsCustom(drawingId,
|
|
16680
|
+
function useIsCustom(drawingId, featureRefId) {
|
|
16681
|
+
const curProduct = useDrawing(drawingId, d => d.structure.currentProduct);
|
|
16682
|
+
const opSeqId = useOperationSequence(drawingId, curProduct);
|
|
16683
|
+
const opSeqChildren = useDrawing(drawingId, d => {
|
|
16684
|
+
var _d$structure$tree;
|
|
16685
|
+
|
|
16686
|
+
return (_d$structure$tree = d.structure.tree[opSeqId || -1]) == null ? void 0 : _d$structure$tree.children;
|
|
16687
|
+
}) || []; // First 7 elements in operationSequence are features created by default (origin, x,y,z axes and planes) => they're not custom
|
|
16688
|
+
|
|
16689
|
+
return opSeqChildren.indexOf(featureRefId) > 6;
|
|
16690
|
+
}
|
|
16691
|
+
|
|
16692
|
+
function usePrecheckErrorId(drawingId, featureId) {
|
|
16097
16693
|
const curProduct = useDrawing(drawingId, d => d.structure.currentProduct);
|
|
16098
16694
|
const opSeqId = useOperationSequence(drawingId, curProduct) || -1;
|
|
16099
|
-
const opSeqChildren = useDrawing(drawingId, d =>
|
|
16100
|
-
|
|
16101
|
-
|
|
16102
|
-
|
|
16103
|
-
|
|
16104
|
-
|
|
16105
|
-
|
|
16695
|
+
const opSeqChildren = useDrawing(drawingId, d => {
|
|
16696
|
+
var _d$structure$tree$opS;
|
|
16697
|
+
|
|
16698
|
+
return (_d$structure$tree$opS = d.structure.tree[opSeqId]) == null ? void 0 : _d$structure$tree$opS.children;
|
|
16699
|
+
}) || [];
|
|
16700
|
+
const refId = opSeqChildren.find(chId => {
|
|
16701
|
+
var _ref_$members;
|
|
16702
|
+
|
|
16703
|
+
const ref_ = getDrawing(drawingId).structure.tree[chId];
|
|
16704
|
+
return featureId === (ref_ == null ? void 0 : (_ref_$members = ref_.members) == null ? void 0 : _ref_$members.refObj.value);
|
|
16705
|
+
});
|
|
16706
|
+
const refChildren = useDrawing(drawingId, d => {
|
|
16707
|
+
var _d$structure$tree2;
|
|
16708
|
+
|
|
16709
|
+
return (_d$structure$tree2 = d.structure.tree[refId || -1]) == null ? void 0 : _d$structure$tree2.children;
|
|
16710
|
+
}) || [];
|
|
16711
|
+
const errorId = refChildren.find(chId => {
|
|
16712
|
+
var _getDrawing$structure;
|
|
16713
|
+
|
|
16714
|
+
return ((_getDrawing$structure = getDrawing(drawingId).structure.tree[chId]) == null ? void 0 : _getDrawing$structure.class) === CCClasses.BMError;
|
|
16715
|
+
}) || null;
|
|
16716
|
+
return errorId;
|
|
16717
|
+
}
|
|
16718
|
+
|
|
16719
|
+
const ErrorWrapper = styled.div`
|
|
16720
|
+
cursor: pointer;
|
|
16721
|
+
margin-right: 4px;
|
|
16722
|
+
`;
|
|
16723
|
+
|
|
16724
|
+
const PrecheckError = ({
|
|
16725
|
+
drawingId,
|
|
16726
|
+
errorId
|
|
16727
|
+
}) => {
|
|
16728
|
+
var _error$members;
|
|
16729
|
+
|
|
16730
|
+
const error = useDrawing(drawingId, d => d.structure.tree[errorId]);
|
|
16731
|
+
const title = (error == null ? void 0 : (_error$members = error.members) == null ? void 0 : _error$members.errorMessage.value) || '';
|
|
16732
|
+
return /*#__PURE__*/React__default.createElement(ErrorWrapper, null, /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
16733
|
+
title: title
|
|
16734
|
+
}, /*#__PURE__*/React__default.createElement(ExclamationCircleTwoTone, {
|
|
16735
|
+
twoToneColor: "#ff5f5f"
|
|
16736
|
+
})));
|
|
16737
|
+
};
|
|
16106
16738
|
|
|
16107
|
-
|
|
16739
|
+
function useHasView(drawingId, featureId) {
|
|
16740
|
+
const [hasGraphics, setHasGraphics] = React__default.useState(false);
|
|
16741
|
+
const ftClass = useDrawing(drawingId, d => d.structure.tree[featureId].class);
|
|
16742
|
+
useFeaturePluginDef(ftClass, plugin => setHasGraphics(Boolean(plugin == null ? void 0 : plugin.View)));
|
|
16743
|
+
return hasGraphics;
|
|
16108
16744
|
}
|
|
16109
16745
|
|
|
16110
16746
|
const Feature = ({
|
|
16111
16747
|
drawingId,
|
|
16112
|
-
|
|
16748
|
+
featureRefId
|
|
16113
16749
|
}) => {
|
|
16114
|
-
const
|
|
16115
|
-
|
|
16116
|
-
|
|
16117
|
-
|
|
16750
|
+
const featureId = useDrawing(drawingId, d => {
|
|
16751
|
+
var _d$structure$tree$fea, _d$structure$tree$fea2;
|
|
16752
|
+
|
|
16753
|
+
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;
|
|
16754
|
+
});
|
|
16755
|
+
const name = useDrawing(drawingId, d => {
|
|
16756
|
+
var _d$structure$tree$fea3;
|
|
16118
16757
|
|
|
16119
|
-
return (_d$
|
|
16758
|
+
return (_d$structure$tree$fea3 = d.structure.tree[featureId]) == null ? void 0 : _d$structure$tree$fea3.name;
|
|
16120
16759
|
});
|
|
16121
|
-
const
|
|
16760
|
+
const visible = useDrawing(drawingId, d => d.plugin.visible.indexOf(featureId) >= 0);
|
|
16761
|
+
const hasGraphics = useHasView(drawingId, featureId);
|
|
16122
16762
|
const isActive = useDrawing(drawingId, d => d.plugin.active.feature === featureId);
|
|
16123
|
-
const isCustom = useIsCustom(drawingId,
|
|
16763
|
+
const isCustom = useIsCustom(drawingId, featureRefId);
|
|
16124
16764
|
const disabled = useIsDisabled(drawingId, featureId);
|
|
16765
|
+
const errorId = usePrecheckErrorId(drawingId, featureId);
|
|
16125
16766
|
const [rename, setRename] = React__default.useState(false);
|
|
16126
16767
|
const onNameClick = React__default.useCallback(() => {
|
|
16127
16768
|
!disabled && getDrawing(drawingId).api.plugin.setActiveFeature(featureId);
|
|
@@ -16142,6 +16783,7 @@ const Feature = ({
|
|
|
16142
16783
|
const pluginApi = getDrawing(drawingId).api.plugin;
|
|
16143
16784
|
pluginApi.setVisiblePlugin(featureId, !visible);
|
|
16144
16785
|
}, [drawingId, visible, featureId, disabled, rename]);
|
|
16786
|
+
const [isMenuHovered, setIsMenuHovered] = React__default.useState(false);
|
|
16145
16787
|
const menuItems = useMenuItems$2(drawingId, featureId, isActive, setRename);
|
|
16146
16788
|
const eyeComponent = React__default.useMemo(() => {
|
|
16147
16789
|
if (!hasGraphics) return /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -16164,51 +16806,20 @@ const Feature = ({
|
|
|
16164
16806
|
});
|
|
16165
16807
|
}, [hasGraphics, visible, disabled, onEyeClick]);
|
|
16166
16808
|
return /*#__PURE__*/React__default.createElement(HoveredDiv, {
|
|
16167
|
-
|
|
16168
|
-
|
|
16169
|
-
padding: '4px 10px'
|
|
16170
|
-
},
|
|
16809
|
+
hovered: isMenuHovered,
|
|
16810
|
+
bordered: true,
|
|
16171
16811
|
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;
|
|
16812
|
+
}, /*#__PURE__*/React__default.createElement(Space, {
|
|
16813
|
+
style: {
|
|
16814
|
+
flex: 1
|
|
16183
16815
|
}
|
|
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);
|
|
16816
|
+
}, eyeComponent, nameComponent), errorId && /*#__PURE__*/React__default.createElement(PrecheckError, {
|
|
16817
|
+
drawingId: drawingId,
|
|
16818
|
+
errorId: errorId
|
|
16819
|
+
}), isCustom && /*#__PURE__*/React__default.createElement(Menu, {
|
|
16820
|
+
items: menuItems,
|
|
16821
|
+
onVisibleChange: setIsMenuHovered
|
|
16822
|
+
}));
|
|
16212
16823
|
};
|
|
16213
16824
|
|
|
16214
16825
|
const _excluded$1 = ["children"];
|
|
@@ -16222,7 +16833,7 @@ const SortableCont = SortableContainer(_ref => {
|
|
|
16222
16833
|
});
|
|
16223
16834
|
const SortableItem = SortableElement(({
|
|
16224
16835
|
drawingId,
|
|
16225
|
-
|
|
16836
|
+
featureRefId,
|
|
16226
16837
|
isRollbackBar
|
|
16227
16838
|
}) => {
|
|
16228
16839
|
if (isRollbackBar) return /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -16248,36 +16859,53 @@ const SortableItem = SortableElement(({
|
|
|
16248
16859
|
}
|
|
16249
16860
|
}));else return /*#__PURE__*/React__default.createElement(Feature, {
|
|
16250
16861
|
drawingId: drawingId,
|
|
16251
|
-
|
|
16862
|
+
featureRefId: featureRefId
|
|
16252
16863
|
});
|
|
16253
16864
|
});
|
|
16254
16865
|
|
|
16255
16866
|
const Item$1 = ({
|
|
16256
16867
|
drawingId,
|
|
16257
|
-
|
|
16868
|
+
featureRefId
|
|
16258
16869
|
}) => {
|
|
16259
16870
|
const curPartId = useDrawing(drawingId, d => d.structure.currentProduct || d.structure.root);
|
|
16260
|
-
const
|
|
16871
|
+
const opSeqId = useOperationSequence(drawingId, curPartId);
|
|
16872
|
+
const idx = useDrawing(drawingId, d => {
|
|
16873
|
+
var _d$structure$tree, _d$structure$tree$chi;
|
|
16874
|
+
|
|
16875
|
+
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);
|
|
16876
|
+
}) || -1;
|
|
16877
|
+
const featureId = useDrawing(drawingId, d => {
|
|
16878
|
+
var _d$structure$tree$fea, _d$structure$tree$fea2;
|
|
16879
|
+
|
|
16880
|
+
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;
|
|
16881
|
+
});
|
|
16261
16882
|
const objClass = useDrawing(drawingId, d => {
|
|
16262
|
-
var _d$structure$tree$
|
|
16883
|
+
var _d$structure$tree$fea3;
|
|
16263
16884
|
|
|
16264
|
-
return ((_d$structure$tree$
|
|
16885
|
+
return ((_d$structure$tree$fea3 = d.structure.tree[featureId]) == null ? void 0 : _d$structure$tree$fea3.class) || '';
|
|
16265
16886
|
});
|
|
16266
|
-
const
|
|
16887
|
+
const isFeatureActive = useDrawing(drawingId, d => d.plugin.active.feature !== null) || false;
|
|
16267
16888
|
const isRollbackBar = objClass === CCClasses.CCRollbackBar;
|
|
16889
|
+
const isDisabled = !isRollbackBar || isFeatureActive;
|
|
16268
16890
|
return /*#__PURE__*/React__default.createElement(SortableItem, {
|
|
16269
16891
|
drawingId: drawingId,
|
|
16270
|
-
|
|
16892
|
+
featureRefId: featureRefId,
|
|
16271
16893
|
isRollbackBar: isRollbackBar,
|
|
16272
|
-
disabled:
|
|
16894
|
+
disabled: isDisabled,
|
|
16273
16895
|
index: idx
|
|
16274
16896
|
});
|
|
16275
16897
|
};
|
|
16276
16898
|
|
|
16277
16899
|
const List$2 = ({
|
|
16278
|
-
featureIds,
|
|
16279
16900
|
drawingId
|
|
16280
16901
|
}) => {
|
|
16902
|
+
const curPartId = useDrawing(drawingId, d => d.structure.currentProduct || d.structure.root);
|
|
16903
|
+
const opSeqId = useOperationSequence(drawingId, curPartId);
|
|
16904
|
+
const featureRefIds = useDrawing(drawingId, d => {
|
|
16905
|
+
var _d$structure$tree2;
|
|
16906
|
+
|
|
16907
|
+
return (_d$structure$tree2 = d.structure.tree[opSeqId || -1]) == null ? void 0 : _d$structure$tree2.children;
|
|
16908
|
+
}) || [];
|
|
16281
16909
|
return /*#__PURE__*/React__default.createElement(SortableCont, {
|
|
16282
16910
|
helperClass: "row-dragging",
|
|
16283
16911
|
lockAxis: "y",
|
|
@@ -16285,11 +16913,8 @@ const List$2 = ({
|
|
|
16285
16913
|
oldIndex,
|
|
16286
16914
|
newIndex
|
|
16287
16915
|
}) => {
|
|
16288
|
-
var _object$features;
|
|
16289
|
-
|
|
16290
16916
|
const rootId_ = getDrawing(drawingId).structure.currentProduct;
|
|
16291
|
-
const
|
|
16292
|
-
const features = (_object$features = object == null ? void 0 : object.features) != null ? _object$features : [];
|
|
16917
|
+
const features = getFeaturesIds(drawingId, rootId_);
|
|
16293
16918
|
const offset = 4;
|
|
16294
16919
|
const move = ccAPI.feature.rollback.calculateMovement(oldIndex, newIndex, features, offset);
|
|
16295
16920
|
|
|
@@ -16299,30 +16924,19 @@ const List$2 = ({
|
|
|
16299
16924
|
ccAPI.feature.rollback.moveBefore(drawingId, move.featureId).catch();
|
|
16300
16925
|
}
|
|
16301
16926
|
}
|
|
16302
|
-
},
|
|
16303
|
-
key:
|
|
16927
|
+
}, featureRefIds.map(refId => /*#__PURE__*/React__default.createElement(Item$1, {
|
|
16928
|
+
key: refId,
|
|
16304
16929
|
drawingId: drawingId,
|
|
16305
|
-
|
|
16930
|
+
featureRefId: refId
|
|
16306
16931
|
})));
|
|
16307
16932
|
};
|
|
16308
16933
|
|
|
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
16934
|
const FeatureList = ({
|
|
16321
16935
|
drawingId
|
|
16322
16936
|
}) => {
|
|
16323
16937
|
return /*#__PURE__*/React__default.createElement(FeatureListValidator, {
|
|
16324
16938
|
drawingId: drawingId
|
|
16325
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
16939
|
+
}, /*#__PURE__*/React__default.createElement(List$2, {
|
|
16326
16940
|
drawingId: drawingId
|
|
16327
16941
|
}));
|
|
16328
16942
|
};
|
|
@@ -16348,35 +16962,6 @@ function useMenuItems$1(drawingId, objectId, setRename) {
|
|
|
16348
16962
|
}, [drawingId, objectId, setRename]);
|
|
16349
16963
|
}
|
|
16350
16964
|
|
|
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
16965
|
function setProductsHidden(drawingId, prodId, hidden) {
|
|
16381
16966
|
var _getDrawing$structure;
|
|
16382
16967
|
|
|
@@ -16425,6 +17010,7 @@ const NodeTitle = ({
|
|
|
16425
17010
|
const referedObj = useDrawing(drawingId, d => d.structure.tree[referedId]);
|
|
16426
17011
|
const name = referedObj.name;
|
|
16427
17012
|
const [rename, setRename] = React__default.useState(false);
|
|
17013
|
+
const [isMenuHovered, setIsMenuHovered] = React__default.useState(false);
|
|
16428
17014
|
const menuItems = useMenuItems$1(drawingId, refId, setRename);
|
|
16429
17015
|
const nameComponent = rename ? /*#__PURE__*/React__default.createElement(NameEdit, {
|
|
16430
17016
|
drawingId: drawingId,
|
|
@@ -16437,11 +17023,14 @@ const NodeTitle = ({
|
|
|
16437
17023
|
onClick: onClick,
|
|
16438
17024
|
name: name
|
|
16439
17025
|
}));
|
|
16440
|
-
return /*#__PURE__*/React__default.createElement(HoveredDiv,
|
|
17026
|
+
return /*#__PURE__*/React__default.createElement(HoveredDiv, {
|
|
17027
|
+
hovered: isMenuHovered
|
|
17028
|
+
}, /*#__PURE__*/React__default.createElement(Space, null, /*#__PURE__*/React__default.createElement(EyeIcon, {
|
|
16441
17029
|
drawingId: drawingId,
|
|
16442
17030
|
refId: refId
|
|
16443
17031
|
}), 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
|
|
17032
|
+
items: menuItems,
|
|
17033
|
+
onVisibleChange: setIsMenuHovered
|
|
16445
17034
|
}));
|
|
16446
17035
|
};
|
|
16447
17036
|
|
|
@@ -16537,6 +17126,7 @@ const AssemblyTreeHeader = ({
|
|
|
16537
17126
|
const currNode = useCurrentNode(drawingId);
|
|
16538
17127
|
const objDetails = useObjectDetails(drawingId, (currNode == null ? void 0 : currNode.id) || -1);
|
|
16539
17128
|
const showBackBtn = React__default.useMemo(() => pStackNotEmpty || !objDetails.isRoot && (objDetails.isAssemblyNode || objDetails.isAssembly), [objDetails.isAssembly, objDetails.isAssemblyNode, objDetails.isRoot, pStackNotEmpty]);
|
|
17129
|
+
const isFeatureActive = useDrawing(drawingId, d => d.plugin.active.feature !== null) || false;
|
|
16540
17130
|
const name = currProd ? currProd.name : currNode ? currNode.name : '';
|
|
16541
17131
|
const [rename, setRename] = React__default.useState(false);
|
|
16542
17132
|
const [showNameChoice, setShowNameChoice] = React__default.useState(false);
|
|
@@ -16567,6 +17157,19 @@ const AssemblyTreeHeader = ({
|
|
|
16567
17157
|
title: 'Export node as ' + type,
|
|
16568
17158
|
placement: "right"
|
|
16569
17159
|
}, type))));
|
|
17160
|
+
const exportComponent = isFeatureActive ? /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
17161
|
+
title: "All features should be closed before exporting",
|
|
17162
|
+
placement: "left"
|
|
17163
|
+
}, /*#__PURE__*/React__default.createElement(Button, {
|
|
17164
|
+
icon: /*#__PURE__*/React__default.createElement(ExportOutlined, null),
|
|
17165
|
+
size: "small",
|
|
17166
|
+
disabled: true
|
|
17167
|
+
})) : /*#__PURE__*/React__default.createElement(Dropdown, {
|
|
17168
|
+
overlay: menu
|
|
17169
|
+
}, /*#__PURE__*/React__default.createElement(Button, {
|
|
17170
|
+
icon: /*#__PURE__*/React__default.createElement(ExportOutlined, null),
|
|
17171
|
+
size: "small"
|
|
17172
|
+
}));
|
|
16570
17173
|
const nameComponent = rename ? /*#__PURE__*/React__default.createElement(NameEdit, {
|
|
16571
17174
|
drawingId: drawingId,
|
|
16572
17175
|
objId: (currProd == null ? void 0 : currProd.id) || -1,
|
|
@@ -16581,12 +17184,7 @@ const AssemblyTreeHeader = ({
|
|
|
16581
17184
|
size: "small",
|
|
16582
17185
|
icon: /*#__PURE__*/React__default.createElement(LeftOutlined, null),
|
|
16583
17186
|
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, {
|
|
17187
|
+
}), 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
17188
|
title: "Convert to subassembly"
|
|
16591
17189
|
}, /*#__PURE__*/React__default.createElement(Button, {
|
|
16592
17190
|
onClick: () => setShowNameChoice(true),
|
|
@@ -16767,6 +17365,7 @@ const Entity = ({
|
|
|
16767
17365
|
const isActive = useDrawing(drawingId, d => d.plugin.active.feature === constraintId);
|
|
16768
17366
|
const hover = useComponentInteraction(drawingId, state => state.api);
|
|
16769
17367
|
const [rename, setRename] = React__default.useState(false);
|
|
17368
|
+
const [isMenuHovered, setIsMenuHovered] = React__default.useState(false);
|
|
16770
17369
|
const menuItems = useMenuItems$2(drawingId, constraintId, isActive, setRename);
|
|
16771
17370
|
const onNameClick = React__default.useCallback(() => {
|
|
16772
17371
|
getDrawing(drawingId).api.plugin.setActiveFeature(constraintId);
|
|
@@ -16790,12 +17389,11 @@ const Entity = ({
|
|
|
16790
17389
|
onMouseLeave: onMouseLeave
|
|
16791
17390
|
});
|
|
16792
17391
|
return /*#__PURE__*/React__default.createElement(HoveredDiv, {
|
|
16793
|
-
|
|
16794
|
-
|
|
16795
|
-
padding: '4px 10px'
|
|
16796
|
-
}
|
|
17392
|
+
hovered: isMenuHovered,
|
|
17393
|
+
bordered: true
|
|
16797
17394
|
}, /*#__PURE__*/React__default.createElement(Space, null, nameComponent), /*#__PURE__*/React__default.createElement(Menu, {
|
|
16798
|
-
items: menuItems
|
|
17395
|
+
items: menuItems,
|
|
17396
|
+
onVisibleChange: setIsMenuHovered
|
|
16799
17397
|
}));
|
|
16800
17398
|
}; // TODO: Create external component
|
|
16801
17399
|
|
|
@@ -16929,7 +17527,8 @@ const ColorPicker = ({
|
|
|
16929
17527
|
const geomApi = getDrawing(drawingId).api.geometry;
|
|
16930
17528
|
geomApi.setConfig(solidId, {
|
|
16931
17529
|
meshes: {
|
|
16932
|
-
color: undefined
|
|
17530
|
+
color: undefined,
|
|
17531
|
+
opacity: undefined
|
|
16933
17532
|
}
|
|
16934
17533
|
});
|
|
16935
17534
|
setShowPicker(false);
|
|
@@ -16939,7 +17538,8 @@ const ColorPicker = ({
|
|
|
16939
17538
|
const geomApi = getDrawing(drawingId).api.geometry;
|
|
16940
17539
|
geomApi.setConfig(solidId, {
|
|
16941
17540
|
meshes: {
|
|
16942
|
-
color: undefined
|
|
17541
|
+
color: undefined,
|
|
17542
|
+
opacity: undefined
|
|
16943
17543
|
}
|
|
16944
17544
|
});
|
|
16945
17545
|
setUColor({
|
|
@@ -17045,12 +17645,11 @@ const Solid = ({
|
|
|
17045
17645
|
}) || -1;
|
|
17046
17646
|
const ccSolid = useDrawing(drawingId, d => d.structure.tree[solidOwner]);
|
|
17047
17647
|
const [rename, setRename] = React__default.useState(false);
|
|
17648
|
+
const [isMenuHovered, setIsMenuHovered] = React__default.useState(false);
|
|
17048
17649
|
const menuItems = useMenuItems(setRename);
|
|
17049
17650
|
return /*#__PURE__*/React__default.createElement(HoveredDiv, {
|
|
17050
|
-
|
|
17051
|
-
|
|
17052
|
-
padding: '4px 10px'
|
|
17053
|
-
}
|
|
17651
|
+
hovered: isMenuHovered,
|
|
17652
|
+
bordered: true
|
|
17054
17653
|
}, /*#__PURE__*/React__default.createElement(Space, null, /*#__PURE__*/React__default.createElement(EyeComponent, {
|
|
17055
17654
|
drawingId: drawingId,
|
|
17056
17655
|
solidId: solidId
|
|
@@ -17063,7 +17662,8 @@ const Solid = ({
|
|
|
17063
17662
|
drawingId: drawingId,
|
|
17064
17663
|
solidId: solidId
|
|
17065
17664
|
}), /*#__PURE__*/React__default.createElement(Menu, {
|
|
17066
|
-
items: menuItems
|
|
17665
|
+
items: menuItems,
|
|
17666
|
+
onVisibleChange: setIsMenuHovered
|
|
17067
17667
|
})));
|
|
17068
17668
|
}; // TODO: Create external component
|
|
17069
17669
|
|
|
@@ -17212,9 +17812,9 @@ const Spinner = styled.div`
|
|
|
17212
17812
|
transform: translateZ(0);
|
|
17213
17813
|
`;
|
|
17214
17814
|
|
|
17215
|
-
function ownKeys$
|
|
17815
|
+
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
17816
|
|
|
17217
|
-
function _objectSpread$
|
|
17817
|
+
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
17818
|
const LoadingWrapper = styled.div`
|
|
17219
17819
|
position: absolute;
|
|
17220
17820
|
display: flex;
|
|
@@ -17235,7 +17835,7 @@ const LoadingScreen = ({
|
|
|
17235
17835
|
children
|
|
17236
17836
|
}) => {
|
|
17237
17837
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
17238
|
-
style: _objectSpread$
|
|
17838
|
+
style: _objectSpread$5(_objectSpread$5({}, style), {}, {
|
|
17239
17839
|
position: 'relative'
|
|
17240
17840
|
})
|
|
17241
17841
|
}, isLoading && /*#__PURE__*/React__default.createElement(LoadingWrapper, null, /*#__PURE__*/React__default.createElement(Spinner, null), /*#__PURE__*/React__default.createElement("div", null, "Loading...")), children);
|
|
@@ -17379,9 +17979,9 @@ const useResize = (x, y, width, height, onResize) => {
|
|
|
17379
17979
|
|
|
17380
17980
|
const _excluded = ["id", "modalState", "dispatch", "visible", "children", "title", "initialWidth", "initialHeight", "initialX", "initialY", "resizable", "minPosition", "maxPosition"];
|
|
17381
17981
|
|
|
17382
|
-
function ownKeys$
|
|
17982
|
+
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
17983
|
|
|
17384
|
-
function _objectSpread$
|
|
17984
|
+
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
17985
|
const modalStyle = {
|
|
17386
17986
|
margin: 0,
|
|
17387
17987
|
paddingBottom: 0,
|
|
@@ -17451,7 +18051,7 @@ function DraggableModalInnerNonMemo(_ref) {
|
|
|
17451
18051
|
width,
|
|
17452
18052
|
height
|
|
17453
18053
|
} = modalState;
|
|
17454
|
-
const style = useMemo(() => _objectSpread$
|
|
18054
|
+
const style = useMemo(() => _objectSpread$4(_objectSpread$4({}, modalStyle), {}, {
|
|
17455
18055
|
top: y,
|
|
17456
18056
|
left: x,
|
|
17457
18057
|
height: resizable ? height : 'auto'
|
|
@@ -17461,14 +18061,14 @@ function DraggableModalInnerNonMemo(_ref) {
|
|
|
17461
18061
|
type: 'focus',
|
|
17462
18062
|
id
|
|
17463
18063
|
}), [id, dispatch]);
|
|
17464
|
-
const onDragWithID = useCallback(args => dispatch(_objectSpread$
|
|
18064
|
+
const onDragWithID = useCallback(args => dispatch(_objectSpread$4(_objectSpread$4({
|
|
17465
18065
|
type: 'drag',
|
|
17466
18066
|
id
|
|
17467
18067
|
}, args), {}, {
|
|
17468
18068
|
minPosition,
|
|
17469
18069
|
maxPosition
|
|
17470
18070
|
})), [dispatch, id, minPosition, maxPosition]);
|
|
17471
|
-
const onResizeWithID = useCallback(args => dispatch(_objectSpread$
|
|
18071
|
+
const onResizeWithID = useCallback(args => dispatch(_objectSpread$4({
|
|
17472
18072
|
type: 'resize',
|
|
17473
18073
|
id
|
|
17474
18074
|
}, args)), [dispatch, id]);
|
|
@@ -17507,9 +18107,9 @@ const getWindowSize = () => ({
|
|
|
17507
18107
|
|
|
17508
18108
|
const clamp = (min, max, value) => Math.max(min, Math.min(max, value));
|
|
17509
18109
|
|
|
17510
|
-
function ownKeys$
|
|
18110
|
+
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
18111
|
|
|
17512
|
-
function _objectSpread$
|
|
18112
|
+
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
18113
|
|
|
17514
18114
|
const mapObject = (o, f) => Object.assign({}, ...Object.keys(o).map(k => ({
|
|
17515
18115
|
[k]: f(o[k])
|
|
@@ -17609,10 +18209,10 @@ const draggableModalReducer = (state, action) => {
|
|
|
17609
18209
|
switch (action.type) {
|
|
17610
18210
|
case 'resize':
|
|
17611
18211
|
const size = clampResize(state.windowSize.width, state.windowSize.height, action.x, action.y, action.width, action.height);
|
|
17612
|
-
return _objectSpread$
|
|
18212
|
+
return _objectSpread$3(_objectSpread$3({}, state), {}, {
|
|
17613
18213
|
maxZIndex: getNextZIndex(state, action.id),
|
|
17614
|
-
modals: _objectSpread$
|
|
17615
|
-
[action.id]: _objectSpread$
|
|
18214
|
+
modals: _objectSpread$3(_objectSpread$3({}, state.modals), {}, {
|
|
18215
|
+
[action.id]: _objectSpread$3(_objectSpread$3(_objectSpread$3({}, state.modals[action.id]), size), {}, {
|
|
17616
18216
|
zIndex: getNextZIndex(state, action.id)
|
|
17617
18217
|
})
|
|
17618
18218
|
})
|
|
@@ -17620,10 +18220,10 @@ const draggableModalReducer = (state, action) => {
|
|
|
17620
18220
|
|
|
17621
18221
|
case 'drag':
|
|
17622
18222
|
const modal = state.modals[action.id];
|
|
17623
|
-
return _objectSpread$
|
|
18223
|
+
return _objectSpread$3(_objectSpread$3({}, state), {}, {
|
|
17624
18224
|
maxZIndex: getNextZIndex(state, action.id),
|
|
17625
|
-
modals: _objectSpread$
|
|
17626
|
-
[action.id]: _objectSpread$
|
|
18225
|
+
modals: _objectSpread$3(_objectSpread$3({}, state.modals), {}, {
|
|
18226
|
+
[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
18227
|
zIndex: getNextZIndex(state, action.id)
|
|
17628
18228
|
})
|
|
17629
18229
|
})
|
|
@@ -17643,10 +18243,10 @@ const draggableModalReducer = (state, action) => {
|
|
|
17643
18243
|
// modalState.height || 0,
|
|
17644
18244
|
// )
|
|
17645
18245
|
|
|
17646
|
-
return _objectSpread$
|
|
18246
|
+
return _objectSpread$3(_objectSpread$3({}, state), {}, {
|
|
17647
18247
|
maxZIndex: state.maxZIndex + 1,
|
|
17648
|
-
modals: _objectSpread$
|
|
17649
|
-
[action.id]: _objectSpread$
|
|
18248
|
+
modals: _objectSpread$3(_objectSpread$3({}, state.modals), {}, {
|
|
18249
|
+
[action.id]: _objectSpread$3(_objectSpread$3(_objectSpread$3({}, modalState_), position), {}, {
|
|
17650
18250
|
// ...size,
|
|
17651
18251
|
zIndex: state.maxZIndex + 1,
|
|
17652
18252
|
visible: true
|
|
@@ -17657,10 +18257,10 @@ const draggableModalReducer = (state, action) => {
|
|
|
17657
18257
|
|
|
17658
18258
|
case 'focus':
|
|
17659
18259
|
const modalState = state.modals[action.id];
|
|
17660
|
-
return _objectSpread$
|
|
18260
|
+
return _objectSpread$3(_objectSpread$3({}, state), {}, {
|
|
17661
18261
|
maxZIndex: state.maxZIndex + 1,
|
|
17662
|
-
modals: _objectSpread$
|
|
17663
|
-
[action.id]: _objectSpread$
|
|
18262
|
+
modals: _objectSpread$3(_objectSpread$3({}, state.modals), {}, {
|
|
18263
|
+
[action.id]: _objectSpread$3(_objectSpread$3({}, modalState), {}, {
|
|
17664
18264
|
zIndex: state.maxZIndex + 1
|
|
17665
18265
|
})
|
|
17666
18266
|
})
|
|
@@ -17669,9 +18269,9 @@ const draggableModalReducer = (state, action) => {
|
|
|
17669
18269
|
case 'hide':
|
|
17670
18270
|
{
|
|
17671
18271
|
const modalState_ = state.modals[action.id];
|
|
17672
|
-
return _objectSpread$
|
|
17673
|
-
modals: _objectSpread$
|
|
17674
|
-
[action.id]: _objectSpread$
|
|
18272
|
+
return _objectSpread$3(_objectSpread$3({}, state), {}, {
|
|
18273
|
+
modals: _objectSpread$3(_objectSpread$3({}, state.modals), {}, {
|
|
18274
|
+
[action.id]: _objectSpread$3(_objectSpread$3({}, modalState_), {}, {
|
|
17675
18275
|
visible: false
|
|
17676
18276
|
})
|
|
17677
18277
|
})
|
|
@@ -17679,26 +18279,26 @@ const draggableModalReducer = (state, action) => {
|
|
|
17679
18279
|
}
|
|
17680
18280
|
|
|
17681
18281
|
case 'mount':
|
|
17682
|
-
const initialState = getInitialModalState(_objectSpread$
|
|
17683
|
-
return _objectSpread$
|
|
18282
|
+
const initialState = getInitialModalState(_objectSpread$3({}, action.intialState));
|
|
18283
|
+
return _objectSpread$3(_objectSpread$3({}, state), {}, {
|
|
17684
18284
|
maxZIndex: state.maxZIndex + 1,
|
|
17685
|
-
modals: _objectSpread$
|
|
17686
|
-
[action.id]: _objectSpread$
|
|
18285
|
+
modals: _objectSpread$3(_objectSpread$3({}, state.modals), {}, {
|
|
18286
|
+
[action.id]: _objectSpread$3(_objectSpread$3(_objectSpread$3({}, state.modals[action.id]), initialState), {}, {
|
|
17687
18287
|
zIndex: state.maxZIndex + 1
|
|
17688
18288
|
})
|
|
17689
18289
|
})
|
|
17690
18290
|
});
|
|
17691
18291
|
|
|
17692
18292
|
case 'unmount':
|
|
17693
|
-
const modalsClone = _objectSpread$
|
|
18293
|
+
const modalsClone = _objectSpread$3({}, state.modals);
|
|
17694
18294
|
|
|
17695
18295
|
delete modalsClone[action.id];
|
|
17696
|
-
return _objectSpread$
|
|
18296
|
+
return _objectSpread$3(_objectSpread$3({}, state), {}, {
|
|
17697
18297
|
modals: modalsClone
|
|
17698
18298
|
});
|
|
17699
18299
|
|
|
17700
18300
|
case 'windowResize':
|
|
17701
|
-
return _objectSpread$
|
|
18301
|
+
return _objectSpread$3(_objectSpread$3({}, state), {}, {
|
|
17702
18302
|
windowSize: action.size,
|
|
17703
18303
|
modals: mapObject(state.modals, modalState_ => {
|
|
17704
18304
|
if (!modalState_.visible) {
|
|
@@ -17714,24 +18314,24 @@ const draggableModalReducer = (state, action) => {
|
|
|
17714
18314
|
// modalState.height || 0,
|
|
17715
18315
|
// )
|
|
17716
18316
|
|
|
17717
|
-
return _objectSpread$
|
|
18317
|
+
return _objectSpread$3(_objectSpread$3({}, modalState_), position);
|
|
17718
18318
|
})
|
|
17719
18319
|
});
|
|
17720
18320
|
|
|
17721
18321
|
case 'updateMinPosition':
|
|
17722
|
-
return _objectSpread$
|
|
17723
|
-
modals: _objectSpread$
|
|
17724
|
-
[action.id]: _objectSpread$
|
|
17725
|
-
minPosition: _objectSpread$
|
|
18322
|
+
return _objectSpread$3(_objectSpread$3({}, state), {}, {
|
|
18323
|
+
modals: _objectSpread$3(_objectSpread$3({}, state.modals), {}, {
|
|
18324
|
+
[action.id]: _objectSpread$3(_objectSpread$3({}, state.modals[action.id]), {}, {
|
|
18325
|
+
minPosition: _objectSpread$3(_objectSpread$3({}, state.modals[action.id].minPosition), action.value)
|
|
17726
18326
|
})
|
|
17727
18327
|
})
|
|
17728
18328
|
});
|
|
17729
18329
|
|
|
17730
18330
|
case 'updateMaxPosition':
|
|
17731
|
-
return _objectSpread$
|
|
17732
|
-
modals: _objectSpread$
|
|
17733
|
-
[action.id]: _objectSpread$
|
|
17734
|
-
maxPosition: _objectSpread$
|
|
18331
|
+
return _objectSpread$3(_objectSpread$3({}, state), {}, {
|
|
18332
|
+
modals: _objectSpread$3(_objectSpread$3({}, state.modals), {}, {
|
|
18333
|
+
[action.id]: _objectSpread$3(_objectSpread$3({}, state.modals[action.id]), {}, {
|
|
18334
|
+
maxPosition: _objectSpread$3(_objectSpread$3({}, state.modals[action.id].maxPosition), action.value)
|
|
17735
18335
|
})
|
|
17736
18336
|
})
|
|
17737
18337
|
});
|
|
@@ -17744,9 +18344,9 @@ const draggableModalReducer = (state, action) => {
|
|
|
17744
18344
|
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
18345
|
styleInject(css_248z);
|
|
17746
18346
|
|
|
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; }
|
|
18347
|
+
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
18348
|
|
|
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; }
|
|
18349
|
+
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
18350
|
const DraggableModal = props => {
|
|
17751
18351
|
// Get the unique ID of this modal.
|
|
17752
18352
|
const id = useUID(); // Get modal provider.
|
|
@@ -17781,7 +18381,7 @@ const DraggableModal = props => {
|
|
|
17781
18381
|
maxPosition
|
|
17782
18382
|
} = props;
|
|
17783
18383
|
React.useEffect(() => {
|
|
17784
|
-
const value = _objectSpread({
|
|
18384
|
+
const value = _objectSpread$2({
|
|
17785
18385
|
x: null,
|
|
17786
18386
|
y: null
|
|
17787
18387
|
}, maxPosition);
|
|
@@ -17796,7 +18396,7 @@ const DraggableModal = props => {
|
|
|
17796
18396
|
minPosition
|
|
17797
18397
|
} = props;
|
|
17798
18398
|
React.useEffect(() => {
|
|
17799
|
-
const value = _objectSpread({
|
|
18399
|
+
const value = _objectSpread$2({
|
|
17800
18400
|
x: null,
|
|
17801
18401
|
y: null
|
|
17802
18402
|
}, minPosition);
|
|
@@ -17862,15 +18462,17 @@ const FPluginWindow = ({
|
|
|
17862
18462
|
const FeaturePlugin = ({
|
|
17863
18463
|
drawingId
|
|
17864
18464
|
}) => {
|
|
17865
|
-
const activeFeature = useDrawing(drawingId, d => d.plugin.active.feature);
|
|
18465
|
+
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
|
|
18466
|
+
|
|
18467
|
+
const isCreated = usePluginExists(drawingId, activeFeature || -1);
|
|
17866
18468
|
const name = useDrawing(drawingId, d => {
|
|
17867
|
-
if (!activeFeature) return '';
|
|
18469
|
+
if (!activeFeature || !isCreated) return '';
|
|
17868
18470
|
const objId = d.plugin.refs[activeFeature].objectId;
|
|
17869
18471
|
const plugin = d.structure.tree[objId];
|
|
17870
18472
|
return (plugin == null ? void 0 : plugin.name) || '';
|
|
17871
18473
|
});
|
|
17872
18474
|
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, {
|
|
18475
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(DraggableModalProvider, null, activeFeature && isCreated && /*#__PURE__*/React__default.createElement(DraggableModal, {
|
|
17874
18476
|
visible: true,
|
|
17875
18477
|
cancelButtonProps: {
|
|
17876
18478
|
hidden: true
|
|
@@ -17999,7 +18601,7 @@ const ViewPlugButtons = ({
|
|
|
17999
18601
|
}));
|
|
18000
18602
|
};
|
|
18001
18603
|
|
|
18002
|
-
const Icon = ({
|
|
18604
|
+
const Icon$1 = ({
|
|
18003
18605
|
url
|
|
18004
18606
|
}) => {
|
|
18005
18607
|
return /*#__PURE__*/React__default.createElement("svg", {
|
|
@@ -18048,20 +18650,20 @@ const useOptionCommands = drawingId => {
|
|
|
18048
18650
|
const commands = React__default.useMemo(() => {
|
|
18049
18651
|
return [{
|
|
18050
18652
|
label: 'Zoom fit',
|
|
18051
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18653
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18052
18654
|
url: img$q
|
|
18053
18655
|
}),
|
|
18054
18656
|
command: () => zoomToFit(drawingId)
|
|
18055
18657
|
}, {
|
|
18056
18658
|
label: 'Meshes',
|
|
18057
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18659
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18058
18660
|
url: img$p
|
|
18059
18661
|
}),
|
|
18060
18662
|
isChecked: showFaces,
|
|
18061
18663
|
command: () => setShowFaces(!showFaces)
|
|
18062
18664
|
}, {
|
|
18063
18665
|
label: 'Wireframe',
|
|
18064
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18666
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18065
18667
|
url: img$n
|
|
18066
18668
|
}),
|
|
18067
18669
|
isChecked: showWireframe,
|
|
@@ -18069,14 +18671,14 @@ const useOptionCommands = drawingId => {
|
|
|
18069
18671
|
command: () => setShowWireframe(!showWireframe)
|
|
18070
18672
|
}, {
|
|
18071
18673
|
label: 'Edges',
|
|
18072
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18674
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18073
18675
|
url: img$o
|
|
18074
18676
|
}),
|
|
18075
18677
|
isChecked: showEdges,
|
|
18076
18678
|
command: () => setShowEdges(!showEdges)
|
|
18077
18679
|
}, {
|
|
18078
18680
|
label: 'Vertices',
|
|
18079
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18681
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18080
18682
|
url: img$E
|
|
18081
18683
|
}),
|
|
18082
18684
|
isChecked: showVertices,
|
|
@@ -18172,136 +18774,136 @@ const PartModeCmds = (drawingId, rootId) => {
|
|
|
18172
18774
|
return {
|
|
18173
18775
|
Sketch: {
|
|
18174
18776
|
label: 'Sketch',
|
|
18175
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18777
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18176
18778
|
url: img$w
|
|
18177
18779
|
}),
|
|
18178
18780
|
callback: wrapper(() => ccAPI.sketcher.createSketch(drawingId, rootId))
|
|
18179
18781
|
},
|
|
18180
18782
|
Work: [{
|
|
18181
18783
|
label: 'Workpoint',
|
|
18182
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18784
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18183
18785
|
url: img$m
|
|
18184
18786
|
}),
|
|
18185
18787
|
callback: wrapper(() => featureApi.createWorkPoint(drawingId, rootId))
|
|
18186
18788
|
}, {
|
|
18187
18789
|
label: 'Workaxis',
|
|
18188
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18790
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18189
18791
|
url: img$l
|
|
18190
18792
|
}),
|
|
18191
18793
|
callback: wrapper(() => featureApi.createWorkAxis(drawingId, rootId))
|
|
18192
18794
|
}, {
|
|
18193
18795
|
label: 'Workplane',
|
|
18194
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18796
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18195
18797
|
url: img$k
|
|
18196
18798
|
}),
|
|
18197
18799
|
callback: wrapper(() => featureApi.createWorkPlane(drawingId, rootId))
|
|
18198
18800
|
}, {
|
|
18199
18801
|
label: 'WCsys',
|
|
18200
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18802
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18201
18803
|
url: img$j
|
|
18202
18804
|
}),
|
|
18203
18805
|
callback: wrapper(() => featureApi.createWorkCoordSystem(drawingId, rootId))
|
|
18204
18806
|
}],
|
|
18205
18807
|
Solid: [{
|
|
18206
18808
|
label: 'Extrusion',
|
|
18207
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18809
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18208
18810
|
url: img$G
|
|
18209
18811
|
}),
|
|
18210
18812
|
callback: wrapper(() => featureApi.createExtrusion(drawingId, rootId))
|
|
18211
18813
|
}, {
|
|
18212
18814
|
label: 'Revolve',
|
|
18213
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18815
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18214
18816
|
url: img$F
|
|
18215
18817
|
}),
|
|
18216
18818
|
callback: wrapper(() => featureApi.createRevolve(drawingId, rootId))
|
|
18217
18819
|
}],
|
|
18218
18820
|
Boolean: {
|
|
18219
18821
|
label: 'Boolean',
|
|
18220
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18822
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18221
18823
|
url: img$i
|
|
18222
18824
|
}),
|
|
18223
18825
|
callback: wrapper(() => featureApi.createBooleanOperation(drawingId, rootId))
|
|
18224
18826
|
},
|
|
18225
18827
|
Slice: {
|
|
18226
18828
|
label: 'Slice',
|
|
18227
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18829
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18228
18830
|
url: img$f
|
|
18229
18831
|
}),
|
|
18230
18832
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, CCClasses.CCSlice, 'Slice'))
|
|
18231
18833
|
},
|
|
18232
18834
|
Edge: [{
|
|
18233
18835
|
label: 'Fillet',
|
|
18234
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18836
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18235
18837
|
url: img$h
|
|
18236
18838
|
}),
|
|
18237
18839
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, CCClasses.CCConstantRadiusFillet, 'Fillet'))
|
|
18238
18840
|
}, {
|
|
18239
18841
|
label: 'Chamfer',
|
|
18240
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18842
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18241
18843
|
url: img$g
|
|
18242
18844
|
}),
|
|
18243
18845
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, CCClasses.CCChamfer, 'Chamfer'))
|
|
18244
18846
|
}],
|
|
18245
18847
|
Patterns: [{
|
|
18246
18848
|
label: 'Linear pattern',
|
|
18247
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18849
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18248
18850
|
url: img$e
|
|
18249
18851
|
}),
|
|
18250
18852
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, CCClasses.CCLinearPattern, 'Linear pattern'))
|
|
18251
18853
|
}, {
|
|
18252
18854
|
label: 'Circular pattern',
|
|
18253
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18855
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18254
18856
|
url: img$d
|
|
18255
18857
|
}),
|
|
18256
18858
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, CCClasses.CCCircularPattern, 'Circular pattern'))
|
|
18257
18859
|
}],
|
|
18258
18860
|
Translation: [{
|
|
18259
18861
|
label: 'Translation',
|
|
18260
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18862
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18261
18863
|
url: img$c
|
|
18262
18864
|
}),
|
|
18263
18865
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, CCClasses.CCTranslation, 'Translate'))
|
|
18264
18866
|
}, {
|
|
18265
18867
|
label: 'Rotation',
|
|
18266
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18868
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18267
18869
|
url: img$b
|
|
18268
18870
|
}),
|
|
18269
18871
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, CCClasses.CCRotation, 'Rotate'))
|
|
18270
18872
|
}, {
|
|
18271
18873
|
label: 'Transformation by Csys',
|
|
18272
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18874
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18273
18875
|
url: img$a
|
|
18274
18876
|
}),
|
|
18275
18877
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, CCClasses.CCTransformationByCSys, 'Transform by Csys'))
|
|
18276
18878
|
}],
|
|
18277
18879
|
BasicShapes: [{
|
|
18278
18880
|
label: 'Add Box',
|
|
18279
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18881
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18280
18882
|
url: img$n
|
|
18281
18883
|
}),
|
|
18282
18884
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, 'CC_Box', 'Box'))
|
|
18283
18885
|
}, {
|
|
18284
18886
|
label: 'Add Sphere',
|
|
18285
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18887
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18286
18888
|
url: img$9
|
|
18287
18889
|
}),
|
|
18288
18890
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, 'CC_Sphere', 'Sphere'))
|
|
18289
18891
|
}, {
|
|
18290
18892
|
label: 'Add Cylinder',
|
|
18291
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18893
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18292
18894
|
url: img$8
|
|
18293
18895
|
}),
|
|
18294
18896
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, 'CC_Cylinder', 'Cylinder'))
|
|
18295
18897
|
}, {
|
|
18296
18898
|
label: 'Add Cone',
|
|
18297
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18899
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18298
18900
|
url: img$7
|
|
18299
18901
|
}),
|
|
18300
18902
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, 'CC_Cone', 'Cone'))
|
|
18301
18903
|
}],
|
|
18302
18904
|
Import: {
|
|
18303
18905
|
label: 'Import',
|
|
18304
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18906
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18305
18907
|
url: img$r
|
|
18306
18908
|
}),
|
|
18307
18909
|
callback: wrapper(() => featureApi.createFeature(drawingId, rootId, CCClasses.CCImport, 'Import'))
|
|
@@ -18356,49 +18958,49 @@ const AssemblyModeCmds = (drawingId, rootId) => {
|
|
|
18356
18958
|
return {
|
|
18357
18959
|
FastenedOrigin: {
|
|
18358
18960
|
label: 'Add Fastened Origin',
|
|
18359
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18961
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18360
18962
|
url: img$6
|
|
18361
18963
|
}),
|
|
18362
18964
|
callback: wrapper(addFastenedOrigin)
|
|
18363
18965
|
},
|
|
18364
18966
|
Fastened: {
|
|
18365
18967
|
label: 'Add Fastened',
|
|
18366
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18968
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18367
18969
|
url: img$5
|
|
18368
18970
|
}),
|
|
18369
18971
|
callback: wrapper(addFastened)
|
|
18370
18972
|
},
|
|
18371
18973
|
Slider: {
|
|
18372
18974
|
label: 'Add Slider',
|
|
18373
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18975
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18374
18976
|
url: img$4
|
|
18375
18977
|
}),
|
|
18376
18978
|
callback: wrapper(addSlider)
|
|
18377
18979
|
},
|
|
18378
18980
|
Revolute: {
|
|
18379
18981
|
label: 'Add Revolute',
|
|
18380
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18982
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18381
18983
|
url: img$3
|
|
18382
18984
|
}),
|
|
18383
18985
|
callback: wrapper(addRevolute)
|
|
18384
18986
|
},
|
|
18385
18987
|
Cylindrical: {
|
|
18386
18988
|
label: 'Add Cylindrical',
|
|
18387
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18989
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18388
18990
|
url: img$2
|
|
18389
18991
|
}),
|
|
18390
18992
|
callback: wrapper(addCylindrical)
|
|
18391
18993
|
},
|
|
18392
18994
|
Planar: {
|
|
18393
18995
|
label: 'Add Planar',
|
|
18394
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
18996
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18395
18997
|
url: img$1
|
|
18396
18998
|
}),
|
|
18397
18999
|
callback: wrapper(addPlanar)
|
|
18398
19000
|
},
|
|
18399
19001
|
Parallel: {
|
|
18400
19002
|
label: 'Add Parallel',
|
|
18401
|
-
icon: /*#__PURE__*/React__default.createElement(Icon, {
|
|
19003
|
+
icon: /*#__PURE__*/React__default.createElement(Icon$1, {
|
|
18402
19004
|
url: img
|
|
18403
19005
|
}),
|
|
18404
19006
|
callback: wrapper(addParallel)
|
|
@@ -18646,6 +19248,245 @@ const HoveredConstraintDisplay = ({
|
|
|
18646
19248
|
}))));
|
|
18647
19249
|
};
|
|
18648
19250
|
|
|
19251
|
+
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; }
|
|
19252
|
+
|
|
19253
|
+
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; }
|
|
19254
|
+
|
|
19255
|
+
function createApi(set) {
|
|
19256
|
+
return {
|
|
19257
|
+
setMsg: (msgId, msg) => set(prev => _objectSpread$1(_objectSpread$1({}, prev), {}, {
|
|
19258
|
+
msgs: _objectSpread$1(_objectSpread$1({}, prev.msgs), {}, {
|
|
19259
|
+
[msgId]: msg
|
|
19260
|
+
})
|
|
19261
|
+
})),
|
|
19262
|
+
deleteMsg: msgId => set(prev => {
|
|
19263
|
+
const newMsgs = _objectSpread$1({}, prev.msgs);
|
|
19264
|
+
|
|
19265
|
+
delete newMsgs[msgId];
|
|
19266
|
+
return _objectSpread$1(_objectSpread$1({}, prev), {}, {
|
|
19267
|
+
msgs: newMsgs
|
|
19268
|
+
});
|
|
19269
|
+
}),
|
|
19270
|
+
setShown: () => {
|
|
19271
|
+
set(prev => {
|
|
19272
|
+
const msgs = _objectSpread$1({}, prev.msgs);
|
|
19273
|
+
|
|
19274
|
+
Object.keys(msgs).forEach(msgId => {
|
|
19275
|
+
msgs[msgId].isShown = true;
|
|
19276
|
+
});
|
|
19277
|
+
return _objectSpread$1(_objectSpread$1({}, prev), {}, {
|
|
19278
|
+
msgs
|
|
19279
|
+
});
|
|
19280
|
+
});
|
|
19281
|
+
}
|
|
19282
|
+
};
|
|
19283
|
+
} // Buerli can store only single message in store.
|
|
19284
|
+
// But it will be convenient for the user to save all messages
|
|
19285
|
+
// and provide possibility to look through all messages came from the server.
|
|
19286
|
+
|
|
19287
|
+
|
|
19288
|
+
const useMsgStore = create((set, get) => ({
|
|
19289
|
+
msgs: {},
|
|
19290
|
+
api: createApi(set)
|
|
19291
|
+
}));
|
|
19292
|
+
|
|
19293
|
+
function getBorderColor(msg) {
|
|
19294
|
+
if (msg.isShown) return '#dddddd';
|
|
19295
|
+
if (msg.type === 'success') return '#b7eb8f';
|
|
19296
|
+
if (msg.type === 'error') return '#ffccc7';
|
|
19297
|
+
if (msg.type === 'warning') return '#ffe58f';
|
|
19298
|
+
if (msg.type === 'busy' || msg.type === 'info') return '#91d5ff';
|
|
19299
|
+
return '#91d5ff';
|
|
19300
|
+
}
|
|
19301
|
+
|
|
19302
|
+
function getBackGrColor(msg) {
|
|
19303
|
+
if (msg.isShown) return '#ffffff';
|
|
19304
|
+
if (msg.type === 'success') return '#f6ffed';
|
|
19305
|
+
if (msg.type === 'error') return '#fff2f0';
|
|
19306
|
+
if (msg.type === 'warning') return '#fffbe6';
|
|
19307
|
+
if (msg.type === 'busy' || msg.type === 'info') return '#e6f7ff';
|
|
19308
|
+
return '#e6f7ff';
|
|
19309
|
+
}
|
|
19310
|
+
|
|
19311
|
+
const MessageWrapper = styled.div`
|
|
19312
|
+
border: 1px solid ${props => getBorderColor(props.msg)};
|
|
19313
|
+
background-color: ${props => getBackGrColor(props.msg)};
|
|
19314
|
+
padding: 8px 15px;
|
|
19315
|
+
margin-bottom: 4px;
|
|
19316
|
+
`;
|
|
19317
|
+
const FlexContainer = styled.div`
|
|
19318
|
+
display: flex;
|
|
19319
|
+
align-items: center;
|
|
19320
|
+
`;
|
|
19321
|
+
const MessageText = styled.div`
|
|
19322
|
+
flex-grow: 1;
|
|
19323
|
+
overflow: auto;
|
|
19324
|
+
overflow-wrap: break-word;
|
|
19325
|
+
max-height: 300px;
|
|
19326
|
+
&::-webkit-scrollbar {
|
|
19327
|
+
width: 12px;
|
|
19328
|
+
}
|
|
19329
|
+
&::-webkit-scrollbar-thumb {
|
|
19330
|
+
border-radius: 10px;
|
|
19331
|
+
background-clip: padding-box;
|
|
19332
|
+
background-color: #d7d7d7;
|
|
19333
|
+
border: 3px solid rgba(0, 0, 0, 0); // Invisible boreder to emulate margin
|
|
19334
|
+
}
|
|
19335
|
+
`;
|
|
19336
|
+
const iconStyle = {
|
|
19337
|
+
marginRight: '8px'
|
|
19338
|
+
};
|
|
19339
|
+
const CloseButton = styled.button`
|
|
19340
|
+
margin-left: 8px;
|
|
19341
|
+
padding: 0;
|
|
19342
|
+
overflow: hidden;
|
|
19343
|
+
font-size: 12px;
|
|
19344
|
+
line-height: 12px;
|
|
19345
|
+
background-color: transparent;
|
|
19346
|
+
border: none;
|
|
19347
|
+
outline: none;
|
|
19348
|
+
cursor: pointer;
|
|
19349
|
+
`;
|
|
19350
|
+
const Time = styled.div`
|
|
19351
|
+
font-size: 0.7rem;
|
|
19352
|
+
color: #adadad;
|
|
19353
|
+
margin-left: 20px;
|
|
19354
|
+
`;
|
|
19355
|
+
|
|
19356
|
+
function getTime(timestamp) {
|
|
19357
|
+
const date = new Date(timestamp);
|
|
19358
|
+
return date.toLocaleTimeString(undefined, {
|
|
19359
|
+
hour: 'numeric',
|
|
19360
|
+
minute: '2-digit',
|
|
19361
|
+
hour12: false
|
|
19362
|
+
});
|
|
19363
|
+
}
|
|
19364
|
+
|
|
19365
|
+
const Icon = ({
|
|
19366
|
+
type
|
|
19367
|
+
}) => {
|
|
19368
|
+
if (type === 'success') return /*#__PURE__*/React__default.createElement(CheckCircleTwoTone, {
|
|
19369
|
+
twoToneColor: "#52c41a",
|
|
19370
|
+
style: iconStyle
|
|
19371
|
+
});
|
|
19372
|
+
if (type === 'error') return /*#__PURE__*/React__default.createElement(CloseCircleTwoTone, {
|
|
19373
|
+
twoToneColor: "#ff4d4f",
|
|
19374
|
+
style: iconStyle
|
|
19375
|
+
});
|
|
19376
|
+
if (type === 'warning') return /*#__PURE__*/React__default.createElement(ExclamationCircleTwoTone, {
|
|
19377
|
+
twoToneColor: "#faad14",
|
|
19378
|
+
style: iconStyle
|
|
19379
|
+
});
|
|
19380
|
+
if (type === 'busy' || type === 'info') return /*#__PURE__*/React__default.createElement(InfoCircleTwoTone, {
|
|
19381
|
+
twoToneColor: "#1890ff",
|
|
19382
|
+
style: iconStyle
|
|
19383
|
+
});
|
|
19384
|
+
return null;
|
|
19385
|
+
};
|
|
19386
|
+
|
|
19387
|
+
const Message = ({
|
|
19388
|
+
msgId
|
|
19389
|
+
}) => {
|
|
19390
|
+
const msg = useMsgStore(s => s.msgs[msgId]) || {};
|
|
19391
|
+
const msgApi = useMsgStore(s => s.api);
|
|
19392
|
+
const type = msg.type === 'busy' ? 'info' : msg.type;
|
|
19393
|
+
return /*#__PURE__*/React__default.createElement(MessageWrapper, {
|
|
19394
|
+
msg: msg
|
|
19395
|
+
}, /*#__PURE__*/React__default.createElement(FlexContainer, null, /*#__PURE__*/React__default.createElement(Icon, {
|
|
19396
|
+
type: type
|
|
19397
|
+
}), /*#__PURE__*/React__default.createElement(MessageText, null, `${msg.title} ${msg.text}`), /*#__PURE__*/React__default.createElement(CloseButton, {
|
|
19398
|
+
onClick: () => msgApi.deleteMsg(msgId)
|
|
19399
|
+
}, /*#__PURE__*/React__default.createElement(CloseOutlined, null))), /*#__PURE__*/React__default.createElement(Time, null, getTime(msg.timestamp)));
|
|
19400
|
+
};
|
|
19401
|
+
|
|
19402
|
+
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; }
|
|
19403
|
+
|
|
19404
|
+
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; }
|
|
19405
|
+
const MsgListWrapper = styled.div`
|
|
19406
|
+
max-height: 500px;
|
|
19407
|
+
max-width: 400px;
|
|
19408
|
+
min-width: 300px;
|
|
19409
|
+
overflow-y: auto;
|
|
19410
|
+
&::-webkit-scrollbar {
|
|
19411
|
+
width: 12px;
|
|
19412
|
+
}
|
|
19413
|
+
&::-webkit-scrollbar-thumb {
|
|
19414
|
+
border-radius: 10px;
|
|
19415
|
+
background-clip: padding-box;
|
|
19416
|
+
background-color: #cfcfcf;
|
|
19417
|
+
border: 3px solid rgba(0, 0, 0, 0); // Invisible boreder to emulate margin
|
|
19418
|
+
}
|
|
19419
|
+
z-index: ${blankZIndex + 1};
|
|
19420
|
+
`;
|
|
19421
|
+
const MessageList = ({
|
|
19422
|
+
drawingId
|
|
19423
|
+
}) => {
|
|
19424
|
+
const msgsIds = useMsgStore(s => {
|
|
19425
|
+
// Return array of messages with fresh messages in the beginning
|
|
19426
|
+
return Object.keys(s.msgs).sort((id1, id2) => s.msgs[id2].timestamp - s.msgs[id1].timestamp);
|
|
19427
|
+
});
|
|
19428
|
+
const msgsApi = useMsgStore(s => s.api); // Set isShow = true for all messages in store on unmount
|
|
19429
|
+
|
|
19430
|
+
React__default.useEffect(() => {
|
|
19431
|
+
return () => msgsApi.setShown();
|
|
19432
|
+
}, [msgsApi]);
|
|
19433
|
+
return /*#__PURE__*/React__default.createElement(MsgListWrapper, null, msgsIds.map(msgId => /*#__PURE__*/React__default.createElement(Message, {
|
|
19434
|
+
msgId: msgId,
|
|
19435
|
+
key: msgId
|
|
19436
|
+
})));
|
|
19437
|
+
};
|
|
19438
|
+
const Messages = ({
|
|
19439
|
+
drawingId
|
|
19440
|
+
}) => {
|
|
19441
|
+
const [showList, setShowList] = React__default.useState(false);
|
|
19442
|
+
const [showBadge, setShowBadge] = React__default.useState(false);
|
|
19443
|
+
const timestamp = useBuerli(state => state.message.timestamp);
|
|
19444
|
+
const msg = useBuerli(state => state.message.data);
|
|
19445
|
+
const msgsApi = useMsgStore(s => s.api);
|
|
19446
|
+
const msgsLen = useMsgStore(s => Object.keys(s.msgs).length);
|
|
19447
|
+
React__default.useEffect(() => setShowBadge(true), [timestamp]); // Add recent message to msgs store
|
|
19448
|
+
|
|
19449
|
+
React__default.useEffect(() => {
|
|
19450
|
+
if (timestamp && msg && (msg.text || msg.title)) {
|
|
19451
|
+
msgsApi.setMsg(msg.id, _objectSpread(_objectSpread({}, msg), {}, {
|
|
19452
|
+
timestamp,
|
|
19453
|
+
isShown: false
|
|
19454
|
+
}));
|
|
19455
|
+
}
|
|
19456
|
+
}, [timestamp, msg, msgsApi]); // Hide list when there is no cached messages
|
|
19457
|
+
|
|
19458
|
+
React__default.useEffect(() => {
|
|
19459
|
+
if (msgsLen === 0) setShowList(false);
|
|
19460
|
+
}, [msgsLen]);
|
|
19461
|
+
const onClick = React__default.useCallback(() => {
|
|
19462
|
+
if (showList) {
|
|
19463
|
+
getCADState().api.blankDiv.hide();
|
|
19464
|
+
} else {
|
|
19465
|
+
getCADState().api.blankDiv.show(() => setShowList(false));
|
|
19466
|
+
}
|
|
19467
|
+
|
|
19468
|
+
setShowList(s => !s);
|
|
19469
|
+
setShowBadge(false);
|
|
19470
|
+
}, [showList]);
|
|
19471
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
19472
|
+
style: {
|
|
19473
|
+
display: 'flex',
|
|
19474
|
+
flexDirection: 'column',
|
|
19475
|
+
alignItems: 'flex-end'
|
|
19476
|
+
}
|
|
19477
|
+
}, showList && /*#__PURE__*/React__default.createElement(MessageList, {
|
|
19478
|
+
drawingId: drawingId
|
|
19479
|
+
}), /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
19480
|
+
title: "Messages"
|
|
19481
|
+
}, /*#__PURE__*/React__default.createElement(Badge, {
|
|
19482
|
+
dot: showBadge
|
|
19483
|
+
}, /*#__PURE__*/React__default.createElement(Button, {
|
|
19484
|
+
size: "small",
|
|
19485
|
+
icon: /*#__PURE__*/React__default.createElement(UnorderedListOutlined, null),
|
|
19486
|
+
onClick: onClick
|
|
19487
|
+
}))));
|
|
19488
|
+
};
|
|
19489
|
+
|
|
18649
19490
|
const EditDrawing = ({
|
|
18650
19491
|
drawingId
|
|
18651
19492
|
}) => {
|
|
@@ -18676,7 +19517,7 @@ const EditDrawing = ({
|
|
|
18676
19517
|
}
|
|
18677
19518
|
}), /*#__PURE__*/React__default.createElement("div", {
|
|
18678
19519
|
style: {
|
|
18679
|
-
|
|
19520
|
+
flexGrow: 1,
|
|
18680
19521
|
overflow: 'hidden'
|
|
18681
19522
|
}
|
|
18682
19523
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -18784,7 +19625,15 @@ const Drawing = ({
|
|
|
18784
19625
|
}
|
|
18785
19626
|
}), /*#__PURE__*/React__default.createElement(EditDrawing, {
|
|
18786
19627
|
drawingId: drawingId
|
|
18787
|
-
})
|
|
19628
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
19629
|
+
style: {
|
|
19630
|
+
position: 'absolute',
|
|
19631
|
+
bottom: '4px',
|
|
19632
|
+
right: '4px'
|
|
19633
|
+
}
|
|
19634
|
+
}, /*#__PURE__*/React__default.createElement(Messages, {
|
|
19635
|
+
drawingId: drawingId
|
|
19636
|
+
})), /*#__PURE__*/React__default.createElement(BlankDiv, null)));
|
|
18788
19637
|
};
|
|
18789
19638
|
|
|
18790
19639
|
const CAD = ({
|