@buerli.io/react-cad 0.7.1-beta.1 → 0.7.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.
@@ -398,12 +398,9 @@ function findObject(drawingId, id, unrollRefs = false) {
398
398
  }
399
399
  return undefined;
400
400
  }
401
- function componentToHex(x) {
402
- const hex = x.toString(16);
403
- return hex.length == 1 ? '0' + hex : hex;
404
- }
405
401
  function rgbToHex(color) {
406
- return '#' + componentToHex(color.r) + componentToHex(color.g) + componentToHex(color.b);
402
+ // Provide values as RGB values, which will *not* be gamma corrected by three.js
403
+ return '#' + new THREE__namespace.Color(color.r / 255, color.g / 255, color.b / 255).getHexString();
407
404
  }
408
405
  function fmod(num, denom) {
409
406
  let k = Math.floor(num / denom);
@@ -588,10 +585,17 @@ const NumOrExpr = ({
588
585
  prefix
589
586
  }) => {
590
587
  const [state, setState] = React.useState({
591
- isExpr: typeof valOrExpr === 'string' && !isDegValue(valOrExpr) && allowExpr,
588
+ isExpr: typeof defaults === 'string' && !isDegValue(defaults) && allowExpr,
592
589
  defaultVal: getDefNumValue(defaults),
593
590
  defaultExpr: getDefExprValue(defaults)
594
591
  });
592
+ React.useEffect(() => {
593
+ setState({
594
+ isExpr: typeof defaults === 'string' && !isDegValue(defaults) && allowExpr,
595
+ defaultVal: getDefNumValue(defaults),
596
+ defaultExpr: getDefExprValue(defaults)
597
+ });
598
+ }, [defaults, allowExpr]);
595
599
  const {
596
600
  isExpr,
597
601
  defaultVal,
@@ -2299,7 +2303,7 @@ const Dimension = ({
2299
2303
  allowExpr: true
2300
2304
  })));
2301
2305
  };
2302
- function RootImpl$y({
2306
+ function RootImpl$z({
2303
2307
  drawingId,
2304
2308
  pluginId
2305
2309
  }) {
@@ -2317,14 +2321,14 @@ function RootImpl$y({
2317
2321
  dimId: dimId
2318
2322
  })));
2319
2323
  }
2320
- const Root$y = ({
2324
+ const Root$z = ({
2321
2325
  drawingId,
2322
2326
  pluginId
2323
2327
  }) => {
2324
2328
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
2325
2329
  drawingId: drawingId,
2326
2330
  pluginId: pluginId
2327
- }, /*#__PURE__*/React.createElement(RootImpl$y, {
2331
+ }, /*#__PURE__*/React.createElement(RootImpl$z, {
2328
2332
  drawingId: drawingId,
2329
2333
  pluginId: pluginId
2330
2334
  }));
@@ -2333,7 +2337,7 @@ const Root$y = ({
2333
2337
  const initialState = {
2334
2338
  selected: []
2335
2339
  };
2336
- const description$y = {
2340
+ const description$z = {
2337
2341
  name: 'Dimensions',
2338
2342
  version: '1.0.0',
2339
2343
  author: 'Ledas',
@@ -2343,12 +2347,12 @@ const description$y = {
2343
2347
  initialState
2344
2348
  };
2345
2349
  const Plugin = {
2346
- Root: Root$y,
2350
+ Root: Root$z,
2347
2351
  View: View$f,
2348
- description: description$y
2352
+ description: description$z
2349
2353
  };
2350
2354
 
2351
- var index$y = /*#__PURE__*/Object.freeze({
2355
+ var index$z = /*#__PURE__*/Object.freeze({
2352
2356
  __proto__: null,
2353
2357
  Plugin: Plugin,
2354
2358
  useDimensionSetId: useDimensionSetId
@@ -2585,7 +2589,7 @@ function useHover$1(drawingId, objId) {
2585
2589
  onPointerOver
2586
2590
  }), [onPointerOut, onPointerOver]);
2587
2591
  }
2588
- function useIsSketchActive(drawingId) {
2592
+ function useIsSketchActive$1(drawingId) {
2589
2593
  const activeId = react.useDrawing(drawingId, d => {
2590
2594
  var _d$plugin$refs;
2591
2595
  return (_d$plugin$refs = d.plugin.refs[d.plugin.active.feature || -1]) == null ? void 0 : _d$plugin$refs.id;
@@ -2602,7 +2606,7 @@ function useIsGHovered(drawingId, objId) {
2602
2606
  return ((_d$interaction$hovere = d.interaction.hovered) == null ? void 0 : _d$interaction$hovere.objectId) === objId;
2603
2607
  }) || false;
2604
2608
  const isSelActive = react.useDrawing(drawingId, d => d.selection.active !== null) || false;
2605
- const isSketchActive = useIsSketchActive(drawingId);
2609
+ const isSketchActive = useIsSketchActive$1(drawingId);
2606
2610
  return !isSelActive && !isSketchActive && isHovered;
2607
2611
  }
2608
2612
  function useIsGSelected(drawingId, objId) {
@@ -2611,7 +2615,7 @@ function useIsGSelected(drawingId, objId) {
2611
2615
  return ((_d$interaction$select = d.interaction.selected) == null ? void 0 : _d$interaction$select.findIndex(info => info.objectId === objId)) !== -1;
2612
2616
  }) || false;
2613
2617
  const isSelActive = react.useDrawing(drawingId, d => d.selection.active !== null) || false;
2614
- const isSketchActive = useIsSketchActive(drawingId);
2618
+ const isSketchActive = useIsSketchActive$1(drawingId);
2615
2619
  return !isSelActive && !isSketchActive && isGSelected;
2616
2620
  }
2617
2621
  function useIsSHovered(drawingId, objId) {
@@ -3893,11 +3897,11 @@ function useSelectorsOrder(drawingId) {
3893
3897
  }), [addSelector, removeSelector, switchToNext]);
3894
3898
  }
3895
3899
 
3896
- var Members$s;
3900
+ var Members$t;
3897
3901
  (function (Members) {
3898
3902
  Members["Body1"] = "Body1";
3899
3903
  Members["Body2"] = "Body2";
3900
- })(Members$s || (Members$s = {}));
3904
+ })(Members$t || (Members$t = {}));
3901
3905
  const typesCaptions$5 = {
3902
3906
  [classcad.BooleanOperationType.INTERSECTION]: 'Intersection',
3903
3907
  [classcad.BooleanOperationType.SUBTRACTION]: 'Subtraction',
@@ -3920,7 +3924,7 @@ function useBoolTypeStore(drawingId, objId) {
3920
3924
  isChanged
3921
3925
  });
3922
3926
  }
3923
- function RootImpl$x({
3927
+ function RootImpl$y({
3924
3928
  drawingId,
3925
3929
  pluginId
3926
3930
  }) {
@@ -3928,8 +3932,8 @@ function RootImpl$x({
3928
3932
  objectId
3929
3933
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
3930
3934
  const type = useBoolTypeStore(drawingId, objectId);
3931
- const body1 = useIdParam(drawingId, objectId, Members$s.Body1);
3932
- const body2 = useRefsParam(drawingId, objectId, Members$s.Body2);
3935
+ const body1 = useIdParam(drawingId, objectId, Members$t.Body1);
3936
+ const body2 = useRefsParam(drawingId, objectId, Members$t.Body2);
3933
3937
  const update = React.useCallback(() => {
3934
3938
  return classcad.ccAPI.feature.updateBooleanOperation(drawingId, objectId, type.serverValue, [body1.serverValue, ...body2.serverValue]);
3935
3939
  }, [drawingId, objectId, type, body1, body2]);
@@ -3962,20 +3966,20 @@ function RootImpl$x({
3962
3966
  selectorsOrder: selOrder
3963
3967
  }));
3964
3968
  }
3965
- const Root$x = ({
3969
+ const Root$y = ({
3966
3970
  drawingId,
3967
3971
  pluginId
3968
3972
  }) => {
3969
3973
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
3970
3974
  drawingId: drawingId,
3971
3975
  pluginId: pluginId
3972
- }, /*#__PURE__*/React.createElement(RootImpl$x, {
3976
+ }, /*#__PURE__*/React.createElement(RootImpl$y, {
3973
3977
  drawingId: drawingId,
3974
3978
  pluginId: pluginId
3975
3979
  }));
3976
3980
  };
3977
3981
 
3978
- const description$x = {
3982
+ const description$y = {
3979
3983
  name: 'Boolean',
3980
3984
  version: '1.0.0',
3981
3985
  author: 'Ledas',
@@ -3992,10 +3996,10 @@ const description$x = {
3992
3996
  }
3993
3997
  };
3994
3998
 
3995
- var index$x = /*#__PURE__*/Object.freeze({
3999
+ var index$y = /*#__PURE__*/Object.freeze({
3996
4000
  __proto__: null,
3997
- Root: Root$x,
3998
- description: description$x
4001
+ Root: Root$y,
4002
+ description: description$y
3999
4003
  });
4000
4004
 
4001
4005
  function ownKeys$n(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -4181,6 +4185,20 @@ const PointEditor = ({
4181
4185
  const [x, setX] = React.useState(parsedDefaults[0]);
4182
4186
  const [y, setY] = React.useState(parsedDefaults[1]);
4183
4187
  const [z, setZ] = React.useState(parsedDefaults[2]);
4188
+
4189
+ // Reset components to defaults if the latter have changed (for example, if 'undo' operation was called); This shouldn't react to actual components changes!
4190
+ React.useEffect(() => {
4191
+ if (x !== parsedDefaults[0]) {
4192
+ setX(parsedDefaults[0]);
4193
+ }
4194
+ if (y !== parsedDefaults[1]) {
4195
+ setY(parsedDefaults[1]);
4196
+ }
4197
+ if (z !== parsedDefaults[2]) {
4198
+ setZ(parsedDefaults[2]);
4199
+ }
4200
+ // eslint-disable-next-line react-hooks/exhaustive-deps
4201
+ }, [parsedDefaults]);
4184
4202
  React.useEffect(() => {
4185
4203
  if (typeof x === 'string' || typeof y === 'string' || typeof z === 'string') {
4186
4204
  setUserValue({
@@ -4223,14 +4241,14 @@ const PointEditor = ({
4223
4241
  displayVals: [0, 0, 0]
4224
4242
  });
4225
4243
  React.useEffect(() => {
4226
- if (userValue.isExpr && !(angle && isDegValue(userValue.value))) {
4244
+ if (defaults.isExpr && !(angle && isDegValue(defaults.value))) {
4227
4245
  const curProdId = core.getDrawing(drawingId).structure.currentProduct;
4228
4246
  const tree = core.getDrawing(drawingId).structure.tree;
4229
4247
  const exprSetId = tree[curProdId].expressionSet;
4230
- classcad.ccAPI.common.evaluateExpression(drawingId, exprSetId, userValue.value).then(res => setDisplayState(state => {
4248
+ classcad.ccAPI.common.evaluateExpression(drawingId, exprSetId, defaults.value).then(res => setDisplayState(state => {
4231
4249
  const res_ = res;
4232
4250
  const newVals = res_ !== null ? [res_.x, res_.y, res_.z] : [...state.displayVals];
4233
- const parsedPoint = parsePoint(userValue);
4251
+ const parsedPoint = parsePoint(defaults);
4234
4252
  parsedPoint.forEach((val, i) => {
4235
4253
  if (typeof val === 'string' && isDegValue(val)) {
4236
4254
  newVals[i] = val;
@@ -4241,13 +4259,12 @@ const PointEditor = ({
4241
4259
  });
4242
4260
  })).catch();
4243
4261
  } else {
4244
- const value = userValue.value;
4262
+ const value = defaults.value;
4245
4263
  setDisplayState(state => _objectSpread$n(_objectSpread$n({}, state), {}, {
4246
4264
  displayVals: [value.x, value.y, value.z]
4247
4265
  }));
4248
4266
  }
4249
- // eslint-disable-next-line react-hooks/exhaustive-deps
4250
- }, []);
4267
+ }, [drawingId, defaults, angle]);
4251
4268
  const onCollapse = React.useCallback(() => {
4252
4269
  if (userValue.isExpr) {
4253
4270
  const curProdId = core.getDrawing(drawingId).structure.currentProduct;
@@ -4409,9 +4426,9 @@ function usePointParam(drawingId, objId, memberName, options = {
4409
4426
  }, undefined, undefined, options_);
4410
4427
  }
4411
4428
 
4412
- var img$10 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADcSURBVEhL3ZTbDcMgDEVJlsgonabfnanfmaajdIlSS0aU+lWEsaLmCCkhMfheB2fJOadI1nIN49wJlv0Jo0xGURPUrZ05wkskH1OuOl+3ctfQE3bERxaLbnyJ+2WFUSYMy4G9shO63lBqvDJQBVbtThNfi39qHDAhqyOqPSY+fcDV4b63xwunFTjsbTAPa7thXFonQidXdURaq4vEIBhJmnnQAf8l8Eoi3hJp+1bGE3ATAH/odQCACcOHKwHRK3qa4AARdwemJdCw+oCgabQJd3BEieby/yUKTpDSG4InWqXAb1/sAAAAAElFTkSuQmCC";
4429
+ var img$11 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADcSURBVEhL3ZTbDcMgDEVJlsgonabfnanfmaajdIlSS0aU+lWEsaLmCCkhMfheB2fJOadI1nIN49wJlv0Jo0xGURPUrZ05wkskH1OuOl+3ctfQE3bERxaLbnyJ+2WFUSYMy4G9shO63lBqvDJQBVbtThNfi39qHDAhqyOqPSY+fcDV4b63xwunFTjsbTAPa7thXFonQidXdURaq4vEIBhJmnnQAf8l8Eoi3hJp+1bGE3ATAH/odQCACcOHKwHRK3qa4AARdwemJdCw+oCgabQJd3BEieby/yUKTpDSG4InWqXAb1/sAAAAAElFTkSuQmCC";
4413
4430
 
4414
- var img$$ = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADjSURBVEhL3ZbbDcIwDEXTLsEoTMM3M/HNNIzCEgRLDpbrRx1iRTyOIrVR09x7ncrqUmstM1nbdRq/LzB4Bsv13u621NOh3b344zOAIuBoc4fLcYXRJhYfShAa78cQELsnxdwShcXtRG5h+s2ECDzmQ9jv632HQ2xaBd8FNc63B04BaANaRi9DqGdkKxBiNDu0ya3xFkYhdBkpB18/nkCURVcJeVtAN2SBWJA6A3Lt2QdGBHZC6EepBAB437EPuF8Rx7TcuSybICT148VDeAczPUFKgFx79oFUiXr47hL1MFmglCeKs2HMN70YFwAAAABJRU5ErkJggg==";
4431
+ var img$10 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADjSURBVEhL3ZbbDcIwDEXTLsEoTMM3M/HNNIzCEgRLDpbrRx1iRTyOIrVR09x7ncrqUmstM1nbdRq/LzB4Bsv13u621NOh3b344zOAIuBoc4fLcYXRJhYfShAa78cQELsnxdwShcXtRG5h+s2ECDzmQ9jv632HQ2xaBd8FNc63B04BaANaRi9DqGdkKxBiNDu0ya3xFkYhdBkpB18/nkCURVcJeVtAN2SBWJA6A3Lt2QdGBHZC6EepBAB437EPuF8Rx7TcuSybICT148VDeAczPUFKgFx79oFUiXr47hL1MFmglCeKs2HMN70YFwAAAABJRU5ErkJggg==";
4415
4432
 
4416
4433
  const invert = (value, inverted) => {
4417
4434
  return inverted ? 1 - value : value;
@@ -4427,7 +4444,7 @@ const BooleanEditor = ({
4427
4444
  Checkbox
4428
4445
  } = react.useBuerli(buerli => buerli.options.elements);
4429
4446
  const icon_ = Array.isArray(icon) ? true : Boolean(icon);
4430
- const icons = Array.isArray(icon) && icon.length == 2 ? icon : [img$10, img$$];
4447
+ const icons = Array.isArray(icon) && icon.length == 2 ? icon : [img$11, img$10];
4431
4448
  const {
4432
4449
  setUserValue,
4433
4450
  userValue,
@@ -4480,7 +4497,7 @@ function useBoolParam(drawingId, objId, memberName) {
4480
4497
  });
4481
4498
  }
4482
4499
 
4483
- var Members$r;
4500
+ var Members$s;
4484
4501
  (function (Members) {
4485
4502
  Members["Type"] = "extrudeType";
4486
4503
  Members["Direction"] = "extrudeDir";
@@ -4488,7 +4505,7 @@ var Members$r;
4488
4505
  Members["Limit2"] = "limit2";
4489
4506
  Members["taperAngle"] = "taperAngle";
4490
4507
  Members["capEnds"] = "capEnds";
4491
- })(Members$r || (Members$r = {}));
4508
+ })(Members$s || (Members$s = {}));
4492
4509
  var RegionMembers$2;
4493
4510
  (function (RegionMembers) {
4494
4511
  RegionMembers["Curves"] = "curves";
@@ -4499,7 +4516,7 @@ const typesCaptions$4 = {
4499
4516
  [classcad.ExtrusionType.SYMMETRIC]: 'Symmetric',
4500
4517
  [classcad.ExtrusionType.UP]: 'Up'
4501
4518
  };
4502
- const RootImpl$w = ({
4519
+ const RootImpl$x = ({
4503
4520
  drawingId,
4504
4521
  pluginId
4505
4522
  }) => {
@@ -4511,14 +4528,14 @@ const RootImpl$w = ({
4511
4528
  return (_drawing$structure$tr = drawing.structure.tree[objectId]) == null ? void 0 : (_drawing$structure$tr2 = _drawing$structure$tr.members) == null ? void 0 : _drawing$structure$tr2.region.value;
4512
4529
  });
4513
4530
  const region = useRefsParam(drawingId, sketchRegionId, RegionMembers$2.Curves);
4514
- const type = useTypeParam(drawingId, objectId, Members$r.Type);
4515
- const limit1 = useNumParam(drawingId, objectId, Members$r.Limit1);
4516
- const limit2 = useNumParam(drawingId, objectId, Members$r.Limit2);
4517
- const taperAngle = useNumParam(drawingId, objectId, Members$r.taperAngle, {
4531
+ const type = useTypeParam(drawingId, objectId, Members$s.Type);
4532
+ const limit1 = useNumParam(drawingId, objectId, Members$s.Limit1);
4533
+ const limit2 = useNumParam(drawingId, objectId, Members$s.Limit2);
4534
+ const taperAngle = useNumParam(drawingId, objectId, Members$s.taperAngle, {
4518
4535
  angle: true
4519
4536
  });
4520
- const direction = usePointParam(drawingId, objectId, Members$r.Direction);
4521
- const capEnds = useBoolParam(drawingId, objectId, Members$r.capEnds);
4537
+ const direction = usePointParam(drawingId, objectId, Members$s.Direction);
4538
+ const capEnds = useBoolParam(drawingId, objectId, Members$s.capEnds);
4522
4539
  const sketchId = React.useRef(NOCCID);
4523
4540
  React.useEffect(() => {
4524
4541
  var _tree$sketchGeometryI;
@@ -4597,20 +4614,20 @@ const RootImpl$w = ({
4597
4614
  inverted: true
4598
4615
  }));
4599
4616
  };
4600
- const Root$w = ({
4617
+ const Root$x = ({
4601
4618
  drawingId,
4602
4619
  pluginId
4603
4620
  }) => {
4604
4621
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
4605
4622
  drawingId: drawingId,
4606
4623
  pluginId: pluginId
4607
- }, /*#__PURE__*/React.createElement(RootImpl$w, {
4624
+ }, /*#__PURE__*/React.createElement(RootImpl$x, {
4608
4625
  drawingId: drawingId,
4609
4626
  pluginId: pluginId
4610
4627
  }));
4611
4628
  };
4612
4629
 
4613
- const description$w = {
4630
+ const description$x = {
4614
4631
  name: 'Extrusion',
4615
4632
  version: '1.0.0',
4616
4633
  author: 'Ledas',
@@ -4620,24 +4637,24 @@ const description$w = {
4620
4637
  initialState: addMembers
4621
4638
  };
4622
4639
 
4623
- var index$w = /*#__PURE__*/Object.freeze({
4640
+ var index$x = /*#__PURE__*/Object.freeze({
4624
4641
  __proto__: null,
4625
- Root: Root$w,
4626
- description: description$w
4642
+ Root: Root$x,
4643
+ description: description$x
4627
4644
  });
4628
4645
 
4629
- var Members$q;
4646
+ var Members$r;
4630
4647
  (function (Members) {
4631
4648
  Members["Axis"] = "references";
4632
4649
  Members["Inverted"] = "inverted";
4633
4650
  Members["StartAngle"] = "startAngle";
4634
4651
  Members["EndAngle"] = "endAngle";
4635
- })(Members$q || (Members$q = {}));
4652
+ })(Members$r || (Members$r = {}));
4636
4653
  var RegionMembers$1;
4637
4654
  (function (RegionMembers) {
4638
4655
  RegionMembers["Curves"] = "curves";
4639
4656
  })(RegionMembers$1 || (RegionMembers$1 = {}));
4640
- const RootImpl$v = ({
4657
+ const RootImpl$w = ({
4641
4658
  drawingId,
4642
4659
  pluginId
4643
4660
  }) => {
@@ -4649,14 +4666,14 @@ const RootImpl$v = ({
4649
4666
  return (_drawing$structure$tr = drawing.structure.tree[objectId]) == null ? void 0 : (_drawing$structure$tr2 = _drawing$structure$tr.members) == null ? void 0 : _drawing$structure$tr2.region.value;
4650
4667
  });
4651
4668
  const region = useRefsParam(drawingId, sketchRegionId, RegionMembers$1.Curves);
4652
- const axis = useRefsParam(drawingId, objectId, Members$q.Axis);
4653
- const startAngle = useNumParam(drawingId, objectId, Members$q.StartAngle, {
4669
+ const axis = useRefsParam(drawingId, objectId, Members$r.Axis);
4670
+ const startAngle = useNumParam(drawingId, objectId, Members$r.StartAngle, {
4654
4671
  angle: true
4655
4672
  });
4656
- const endAngle = useNumParam(drawingId, objectId, Members$q.EndAngle, {
4673
+ const endAngle = useNumParam(drawingId, objectId, Members$r.EndAngle, {
4657
4674
  angle: true
4658
4675
  });
4659
- const inverted = useBoolParam(drawingId, objectId, Members$q.Inverted);
4676
+ const inverted = useBoolParam(drawingId, objectId, Members$r.Inverted);
4660
4677
  const sketchId = React.useRef(NOCCID);
4661
4678
  React.useEffect(() => {
4662
4679
  var _tree$sketchGeometryI;
@@ -4707,20 +4724,20 @@ const RootImpl$v = ({
4707
4724
  icon: true
4708
4725
  })));
4709
4726
  };
4710
- const Root$v = ({
4727
+ const Root$w = ({
4711
4728
  drawingId,
4712
4729
  pluginId
4713
4730
  }) => {
4714
4731
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
4715
4732
  drawingId: drawingId,
4716
4733
  pluginId: pluginId
4717
- }, /*#__PURE__*/React.createElement(RootImpl$v, {
4734
+ }, /*#__PURE__*/React.createElement(RootImpl$w, {
4718
4735
  drawingId: drawingId,
4719
4736
  pluginId: pluginId
4720
4737
  }));
4721
4738
  };
4722
4739
 
4723
- const description$v = {
4740
+ const description$w = {
4724
4741
  name: 'Revolve',
4725
4742
  version: '1.0.0',
4726
4743
  author: 'Ledas',
@@ -4730,30 +4747,30 @@ const description$v = {
4730
4747
  initialState: addMembers
4731
4748
  };
4732
4749
 
4733
- var index$v = /*#__PURE__*/Object.freeze({
4750
+ var index$w = /*#__PURE__*/Object.freeze({
4734
4751
  __proto__: null,
4735
- Root: Root$v,
4736
- description: description$v
4752
+ Root: Root$w,
4753
+ description: description$w
4737
4754
  });
4738
4755
 
4739
- var Members$p;
4756
+ var Members$q;
4740
4757
  (function (Members) {
4741
4758
  Members["CSys"] = "references";
4742
4759
  Members["Width"] = "width";
4743
4760
  Members["Height"] = "height";
4744
4761
  Members["Length"] = "length";
4745
- })(Members$p || (Members$p = {}));
4746
- function RootImpl$u({
4762
+ })(Members$q || (Members$q = {}));
4763
+ function RootImpl$v({
4747
4764
  drawingId,
4748
4765
  pluginId
4749
4766
  }) {
4750
4767
  const {
4751
4768
  objectId
4752
4769
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
4753
- const csys = useRefsParam(drawingId, objectId, Members$p.CSys);
4754
- const width = useNumParam(drawingId, objectId, Members$p.Width);
4755
- const height = useNumParam(drawingId, objectId, Members$p.Height);
4756
- const length = useNumParam(drawingId, objectId, Members$p.Length);
4770
+ const csys = useRefsParam(drawingId, objectId, Members$q.CSys);
4771
+ const width = useNumParam(drawingId, objectId, Members$q.Width);
4772
+ const height = useNumParam(drawingId, objectId, Members$q.Height);
4773
+ const length = useNumParam(drawingId, objectId, Members$q.Length);
4757
4774
  const update = React.useCallback(() => {
4758
4775
  return classcad.ccAPI.feature.updateBox(drawingId, objectId, csys.serverValue, width.serverValue, length.serverValue, height.serverValue);
4759
4776
  }, [drawingId, objectId, csys, width, height, length]);
@@ -4802,20 +4819,20 @@ function RootImpl$u({
4802
4819
  allowExpr: true
4803
4820
  }));
4804
4821
  }
4805
- const Root$u = ({
4822
+ const Root$v = ({
4806
4823
  drawingId,
4807
4824
  pluginId
4808
4825
  }) => {
4809
4826
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
4810
4827
  drawingId: drawingId,
4811
4828
  pluginId: pluginId
4812
- }, /*#__PURE__*/React.createElement(RootImpl$u, {
4829
+ }, /*#__PURE__*/React.createElement(RootImpl$v, {
4813
4830
  drawingId: drawingId,
4814
4831
  pluginId: pluginId
4815
4832
  }));
4816
4833
  };
4817
4834
 
4818
- const description$u = {
4835
+ const description$v = {
4819
4836
  name: 'Box',
4820
4837
  version: '1.0.0',
4821
4838
  author: 'Ledas',
@@ -4824,26 +4841,26 @@ const description$u = {
4824
4841
  global: false
4825
4842
  };
4826
4843
 
4827
- var index$u = /*#__PURE__*/Object.freeze({
4844
+ var index$v = /*#__PURE__*/Object.freeze({
4828
4845
  __proto__: null,
4829
- Root: Root$u,
4830
- description: description$u
4846
+ Root: Root$v,
4847
+ description: description$v
4831
4848
  });
4832
4849
 
4833
- var Members$o;
4850
+ var Members$p;
4834
4851
  (function (Members) {
4835
4852
  Members["CSys"] = "references";
4836
4853
  Members["Radius"] = "radius";
4837
- })(Members$o || (Members$o = {}));
4838
- function RootImpl$t({
4854
+ })(Members$p || (Members$p = {}));
4855
+ function RootImpl$u({
4839
4856
  drawingId,
4840
4857
  pluginId
4841
4858
  }) {
4842
4859
  const {
4843
4860
  objectId
4844
4861
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
4845
- const csys = useRefsParam(drawingId, objectId, Members$o.CSys);
4846
- const radius = useNumParam(drawingId, objectId, Members$o.Radius);
4862
+ const csys = useRefsParam(drawingId, objectId, Members$p.CSys);
4863
+ const radius = useNumParam(drawingId, objectId, Members$p.Radius);
4847
4864
  const update = React.useCallback(() => {
4848
4865
  return classcad.ccAPI.feature.updateSphere(drawingId, objectId, csys.userValue, radius.userValue);
4849
4866
  }, [drawingId, objectId, csys, radius]);
@@ -4872,20 +4889,20 @@ function RootImpl$t({
4872
4889
  allowExpr: true
4873
4890
  }));
4874
4891
  }
4875
- const Root$t = ({
4892
+ const Root$u = ({
4876
4893
  drawingId,
4877
4894
  pluginId
4878
4895
  }) => {
4879
4896
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
4880
4897
  drawingId: drawingId,
4881
4898
  pluginId: pluginId
4882
- }, /*#__PURE__*/React.createElement(RootImpl$t, {
4899
+ }, /*#__PURE__*/React.createElement(RootImpl$u, {
4883
4900
  drawingId: drawingId,
4884
4901
  pluginId: pluginId
4885
4902
  }));
4886
4903
  };
4887
4904
 
4888
- const description$t = {
4905
+ const description$u = {
4889
4906
  name: 'Sphere',
4890
4907
  version: '1.0.0',
4891
4908
  author: 'Ledas',
@@ -4894,28 +4911,28 @@ const description$t = {
4894
4911
  global: false
4895
4912
  };
4896
4913
 
4897
- var index$t = /*#__PURE__*/Object.freeze({
4914
+ var index$u = /*#__PURE__*/Object.freeze({
4898
4915
  __proto__: null,
4899
- Root: Root$t,
4900
- description: description$t
4916
+ Root: Root$u,
4917
+ description: description$u
4901
4918
  });
4902
4919
 
4903
- var Members$n;
4920
+ var Members$o;
4904
4921
  (function (Members) {
4905
4922
  Members["CSys"] = "references";
4906
4923
  Members["Diameter"] = "diameter";
4907
4924
  Members["Height"] = "height";
4908
- })(Members$n || (Members$n = {}));
4909
- function RootImpl$s({
4925
+ })(Members$o || (Members$o = {}));
4926
+ function RootImpl$t({
4910
4927
  drawingId,
4911
4928
  pluginId
4912
4929
  }) {
4913
4930
  const {
4914
4931
  objectId
4915
4932
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
4916
- const csys = useRefsParam(drawingId, objectId, Members$n.CSys);
4917
- const diameter = useNumParam(drawingId, objectId, Members$n.Diameter);
4918
- const height = useNumParam(drawingId, objectId, Members$n.Height);
4933
+ const csys = useRefsParam(drawingId, objectId, Members$o.CSys);
4934
+ const diameter = useNumParam(drawingId, objectId, Members$o.Diameter);
4935
+ const height = useNumParam(drawingId, objectId, Members$o.Height);
4919
4936
  const update = React.useCallback(() => {
4920
4937
  return classcad.ccAPI.feature.updateCylinder(drawingId, objectId, csys.serverValue, diameter.serverValue, height.serverValue);
4921
4938
  }, [drawingId, objectId, csys, diameter, height]);
@@ -4954,20 +4971,20 @@ function RootImpl$s({
4954
4971
  allowExpr: true
4955
4972
  }));
4956
4973
  }
4957
- const Root$s = ({
4974
+ const Root$t = ({
4958
4975
  drawingId,
4959
4976
  pluginId
4960
4977
  }) => {
4961
4978
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
4962
4979
  drawingId: drawingId,
4963
4980
  pluginId: pluginId
4964
- }, /*#__PURE__*/React.createElement(RootImpl$s, {
4981
+ }, /*#__PURE__*/React.createElement(RootImpl$t, {
4965
4982
  drawingId: drawingId,
4966
4983
  pluginId: pluginId
4967
4984
  }));
4968
4985
  };
4969
4986
 
4970
- const description$s = {
4987
+ const description$t = {
4971
4988
  name: 'Cylinder',
4972
4989
  version: '1.0.0',
4973
4990
  author: 'Ledas',
@@ -4976,30 +4993,30 @@ const description$s = {
4976
4993
  global: false
4977
4994
  };
4978
4995
 
4979
- var index$s = /*#__PURE__*/Object.freeze({
4996
+ var index$t = /*#__PURE__*/Object.freeze({
4980
4997
  __proto__: null,
4981
- Root: Root$s,
4982
- description: description$s
4998
+ Root: Root$t,
4999
+ description: description$t
4983
5000
  });
4984
5001
 
4985
- var Members$m;
5002
+ var Members$n;
4986
5003
  (function (Members) {
4987
5004
  Members["CSys"] = "references";
4988
5005
  Members["BDiameter"] = "bDiameter";
4989
5006
  Members["TDiameter"] = "tDiameter";
4990
5007
  Members["Height"] = "height";
4991
- })(Members$m || (Members$m = {}));
4992
- function RootImpl$r({
5008
+ })(Members$n || (Members$n = {}));
5009
+ function RootImpl$s({
4993
5010
  drawingId,
4994
5011
  pluginId
4995
5012
  }) {
4996
5013
  const {
4997
5014
  objectId
4998
5015
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
4999
- const csys = useRefsParam(drawingId, objectId, Members$m.CSys);
5000
- const bDiameter = useNumParam(drawingId, objectId, Members$m.BDiameter);
5001
- const tDiameter = useNumParam(drawingId, objectId, Members$m.TDiameter);
5002
- const height = useNumParam(drawingId, objectId, Members$m.Height);
5016
+ const csys = useRefsParam(drawingId, objectId, Members$n.CSys);
5017
+ const bDiameter = useNumParam(drawingId, objectId, Members$n.BDiameter);
5018
+ const tDiameter = useNumParam(drawingId, objectId, Members$n.TDiameter);
5019
+ const height = useNumParam(drawingId, objectId, Members$n.Height);
5003
5020
  const update = React.useCallback(() => {
5004
5021
  return classcad.ccAPI.feature.updateCone(drawingId, objectId, csys.serverValue, bDiameter.serverValue, tDiameter.serverValue, height.serverValue);
5005
5022
  }, [drawingId, objectId, csys, bDiameter, tDiameter, height]);
@@ -5048,20 +5065,20 @@ function RootImpl$r({
5048
5065
  allowExpr: true
5049
5066
  }));
5050
5067
  }
5051
- const Root$r = ({
5068
+ const Root$s = ({
5052
5069
  drawingId,
5053
5070
  pluginId
5054
5071
  }) => {
5055
5072
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
5056
5073
  drawingId: drawingId,
5057
5074
  pluginId: pluginId
5058
- }, /*#__PURE__*/React.createElement(RootImpl$r, {
5075
+ }, /*#__PURE__*/React.createElement(RootImpl$s, {
5059
5076
  drawingId: drawingId,
5060
5077
  pluginId: pluginId
5061
5078
  }));
5062
5079
  };
5063
5080
 
5064
- const description$r = {
5081
+ const description$s = {
5065
5082
  name: 'Cone',
5066
5083
  version: '1.0.0',
5067
5084
  author: 'Ledas',
@@ -5070,26 +5087,26 @@ const description$r = {
5070
5087
  global: false
5071
5088
  };
5072
5089
 
5073
- var index$r = /*#__PURE__*/Object.freeze({
5090
+ var index$s = /*#__PURE__*/Object.freeze({
5074
5091
  __proto__: null,
5075
- Root: Root$r,
5076
- description: description$r
5092
+ Root: Root$s,
5093
+ description: description$s
5077
5094
  });
5078
5095
 
5079
- var Members$l;
5096
+ var Members$m;
5080
5097
  (function (Members) {
5081
5098
  Members["References"] = "References";
5082
5099
  Members["Radius"] = "radius";
5083
- })(Members$l || (Members$l = {}));
5084
- const RootImpl$q = ({
5100
+ })(Members$m || (Members$m = {}));
5101
+ const RootImpl$r = ({
5085
5102
  drawingId,
5086
5103
  pluginId
5087
5104
  }) => {
5088
5105
  const {
5089
5106
  objectId
5090
5107
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
5091
- const refs = useRefsParam(drawingId, objectId, Members$l.References);
5092
- const radius = useNumParam(drawingId, objectId, Members$l.Radius);
5108
+ const refs = useRefsParam(drawingId, objectId, Members$m.References);
5109
+ const radius = useNumParam(drawingId, objectId, Members$m.Radius);
5093
5110
  const update = React.useCallback(() => {
5094
5111
  return classcad.ccAPI.feature.updateFillet(drawingId, objectId, refs.serverValue, radius.serverValue);
5095
5112
  }, [drawingId, objectId, refs, radius]);
@@ -5112,20 +5129,20 @@ const RootImpl$q = ({
5112
5129
  allowExpr: true
5113
5130
  }));
5114
5131
  };
5115
- const Root$q = ({
5132
+ const Root$r = ({
5116
5133
  drawingId,
5117
5134
  pluginId
5118
5135
  }) => {
5119
5136
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
5120
5137
  drawingId: drawingId,
5121
5138
  pluginId: pluginId
5122
- }, /*#__PURE__*/React.createElement(RootImpl$q, {
5139
+ }, /*#__PURE__*/React.createElement(RootImpl$r, {
5123
5140
  drawingId: drawingId,
5124
5141
  pluginId: pluginId
5125
5142
  }));
5126
5143
  };
5127
5144
 
5128
- const description$q = {
5145
+ const description$r = {
5129
5146
  name: 'Fillet',
5130
5147
  version: '1.0.0',
5131
5148
  author: 'Ledas',
@@ -5135,26 +5152,26 @@ const description$q = {
5135
5152
  initialState: addMembers
5136
5153
  };
5137
5154
 
5138
- var index$q = /*#__PURE__*/Object.freeze({
5155
+ var index$r = /*#__PURE__*/Object.freeze({
5139
5156
  __proto__: null,
5140
- Root: Root$q,
5141
- description: description$q
5157
+ Root: Root$r,
5158
+ description: description$r
5142
5159
  });
5143
5160
 
5144
- var Members$k;
5161
+ var Members$l;
5145
5162
  (function (Members) {
5146
5163
  Members["Type"] = "subType";
5147
5164
  Members["Angle"] = "angle";
5148
5165
  Members["References"] = "References";
5149
5166
  Members["Offset1"] = "offset1";
5150
5167
  Members["Offset2"] = "offset2";
5151
- })(Members$k || (Members$k = {}));
5168
+ })(Members$l || (Members$l = {}));
5152
5169
  const typesCaptions$3 = {
5153
5170
  [classcad.ChamferType.DISTANCE_AND_ANGLE]: 'Distance and angle',
5154
5171
  [classcad.ChamferType.EQUAL_DISTANCE]: 'Equal distance',
5155
5172
  [classcad.ChamferType.TWO_DISTANCES]: 'Two distances'
5156
5173
  };
5157
- const RootImpl$p = ({
5174
+ const RootImpl$q = ({
5158
5175
  drawingId,
5159
5176
  pluginId
5160
5177
  }) => {
@@ -5164,11 +5181,11 @@ const RootImpl$p = ({
5164
5181
  const {
5165
5182
  objectId
5166
5183
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
5167
- const type = useTypeParam(drawingId, objectId, Members$k.Type);
5168
- const refs = useRefsParam(drawingId, objectId, Members$k.References);
5169
- const offset1 = useNumParam(drawingId, objectId, Members$k.Offset1);
5170
- const offset2 = useNumParam(drawingId, objectId, Members$k.Offset2);
5171
- const angle = useNumParam(drawingId, objectId, Members$k.Angle, {
5184
+ const type = useTypeParam(drawingId, objectId, Members$l.Type);
5185
+ const refs = useRefsParam(drawingId, objectId, Members$l.References);
5186
+ const offset1 = useNumParam(drawingId, objectId, Members$l.Offset1);
5187
+ const offset2 = useNumParam(drawingId, objectId, Members$l.Offset2);
5188
+ const angle = useNumParam(drawingId, objectId, Members$l.Angle, {
5172
5189
  angle: true
5173
5190
  });
5174
5191
  const switchDirections = React.useCallback(() => {
@@ -5206,7 +5223,7 @@ const RootImpl$p = ({
5206
5223
  param: offset1,
5207
5224
  allowExpr: true
5208
5225
  }, type.userValue === classcad.ChamferType.TWO_DISTANCES && /*#__PURE__*/React.createElement(Button, {
5209
- iconSrc: img$10,
5226
+ iconSrc: img$11,
5210
5227
  onClick: switchDirections
5211
5228
  })), type.userValue === classcad.ChamferType.TWO_DISTANCES && /*#__PURE__*/React.createElement(NumberEditor, {
5212
5229
  drawingId: drawingId,
@@ -5220,20 +5237,20 @@ const RootImpl$p = ({
5220
5237
  allowExpr: true
5221
5238
  }));
5222
5239
  };
5223
- const Root$p = ({
5240
+ const Root$q = ({
5224
5241
  drawingId,
5225
5242
  pluginId
5226
5243
  }) => {
5227
5244
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
5228
5245
  drawingId: drawingId,
5229
5246
  pluginId: pluginId
5230
- }, /*#__PURE__*/React.createElement(RootImpl$p, {
5247
+ }, /*#__PURE__*/React.createElement(RootImpl$q, {
5231
5248
  drawingId: drawingId,
5232
5249
  pluginId: pluginId
5233
5250
  }));
5234
5251
  };
5235
5252
 
5236
- const description$p = {
5253
+ const description$q = {
5237
5254
  name: 'Chamfer',
5238
5255
  version: '1.0.0',
5239
5256
  author: 'Ledas',
@@ -5243,30 +5260,30 @@ const description$p = {
5243
5260
  initialState: addMembers
5244
5261
  };
5245
5262
 
5246
- var index$p = /*#__PURE__*/Object.freeze({
5263
+ var index$q = /*#__PURE__*/Object.freeze({
5247
5264
  __proto__: null,
5248
- Root: Root$p,
5249
- description: description$p
5265
+ Root: Root$q,
5266
+ description: description$q
5250
5267
  });
5251
5268
 
5252
- var Members$j;
5269
+ var Members$k;
5253
5270
  (function (Members) {
5254
5271
  Members["SolidReferences"] = "bodiesToTransform";
5255
5272
  Members["AxisReferences"] = "references";
5256
5273
  Members["Distance"] = "translationDistance";
5257
5274
  Members["Inverted"] = "inverted";
5258
- })(Members$j || (Members$j = {}));
5259
- function RootImpl$o({
5275
+ })(Members$k || (Members$k = {}));
5276
+ function RootImpl$p({
5260
5277
  drawingId,
5261
5278
  pluginId
5262
5279
  }) {
5263
5280
  const {
5264
5281
  objectId
5265
5282
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
5266
- const solidRefs = useRefsParam(drawingId, objectId, Members$j.SolidReferences);
5267
- const axisRefs = useRefsParam(drawingId, objectId, Members$j.AxisReferences);
5268
- const distance = useNumParam(drawingId, objectId, Members$j.Distance);
5269
- const inverted = useBoolParam(drawingId, objectId, Members$j.Inverted);
5283
+ const solidRefs = useRefsParam(drawingId, objectId, Members$k.SolidReferences);
5284
+ const axisRefs = useRefsParam(drawingId, objectId, Members$k.AxisReferences);
5285
+ const distance = useNumParam(drawingId, objectId, Members$k.Distance);
5286
+ const inverted = useBoolParam(drawingId, objectId, Members$k.Inverted);
5270
5287
  const update = React.useCallback(() => {
5271
5288
  return classcad.ccAPI.feature.updateTransformation(drawingId, objectId, solidRefs.serverValue, axisRefs.serverValue, inverted.serverValue, distance.serverValue);
5272
5289
  }, [drawingId, objectId, solidRefs, axisRefs, inverted, distance]);
@@ -5301,20 +5318,20 @@ function RootImpl$o({
5301
5318
  allowExpr: true
5302
5319
  }));
5303
5320
  }
5304
- const Root$o = ({
5321
+ const Root$p = ({
5305
5322
  drawingId,
5306
5323
  pluginId
5307
5324
  }) => {
5308
5325
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
5309
5326
  drawingId: drawingId,
5310
5327
  pluginId: pluginId
5311
- }, /*#__PURE__*/React.createElement(RootImpl$o, {
5328
+ }, /*#__PURE__*/React.createElement(RootImpl$p, {
5312
5329
  drawingId: drawingId,
5313
5330
  pluginId: pluginId
5314
5331
  }));
5315
5332
  };
5316
5333
 
5317
- const description$o = {
5334
+ const description$p = {
5318
5335
  name: 'Translate',
5319
5336
  version: '1.0.0',
5320
5337
  author: 'Ledas',
@@ -5324,32 +5341,32 @@ const description$o = {
5324
5341
  initialState: {}
5325
5342
  };
5326
5343
 
5327
- var index$o = /*#__PURE__*/Object.freeze({
5344
+ var index$p = /*#__PURE__*/Object.freeze({
5328
5345
  __proto__: null,
5329
- Root: Root$o,
5330
- description: description$o
5346
+ Root: Root$p,
5347
+ description: description$p
5331
5348
  });
5332
5349
 
5333
- var Members$i;
5350
+ var Members$j;
5334
5351
  (function (Members) {
5335
5352
  Members["SolidReferences"] = "bodiesToTransform";
5336
5353
  Members["AxisReferences"] = "references";
5337
5354
  Members["Angle"] = "rotationAngle";
5338
5355
  Members["Inverted"] = "inverted";
5339
- })(Members$i || (Members$i = {}));
5340
- function RootImpl$n({
5356
+ })(Members$j || (Members$j = {}));
5357
+ function RootImpl$o({
5341
5358
  drawingId,
5342
5359
  pluginId
5343
5360
  }) {
5344
5361
  const {
5345
5362
  objectId
5346
5363
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
5347
- const solidRefs = useRefsParam(drawingId, objectId, Members$i.SolidReferences);
5348
- const axisRefs = useRefsParam(drawingId, objectId, Members$i.AxisReferences);
5349
- const angle = useNumParam(drawingId, objectId, Members$i.Angle, {
5364
+ const solidRefs = useRefsParam(drawingId, objectId, Members$j.SolidReferences);
5365
+ const axisRefs = useRefsParam(drawingId, objectId, Members$j.AxisReferences);
5366
+ const angle = useNumParam(drawingId, objectId, Members$j.Angle, {
5350
5367
  angle: true
5351
5368
  });
5352
- const inverted = useBoolParam(drawingId, objectId, Members$i.Inverted);
5369
+ const inverted = useBoolParam(drawingId, objectId, Members$j.Inverted);
5353
5370
  const update = React.useCallback(() => {
5354
5371
  return classcad.ccAPI.feature.updateTransformation(drawingId, objectId, solidRefs.serverValue, axisRefs.serverValue, inverted.serverValue, angle.serverValue);
5355
5372
  }, [drawingId, objectId, solidRefs, axisRefs, inverted, angle]);
@@ -5384,20 +5401,20 @@ function RootImpl$n({
5384
5401
  allowExpr: true
5385
5402
  }));
5386
5403
  }
5387
- const Root$n = ({
5404
+ const Root$o = ({
5388
5405
  drawingId,
5389
5406
  pluginId
5390
5407
  }) => {
5391
5408
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
5392
5409
  drawingId: drawingId,
5393
5410
  pluginId: pluginId
5394
- }, /*#__PURE__*/React.createElement(RootImpl$n, {
5411
+ }, /*#__PURE__*/React.createElement(RootImpl$o, {
5395
5412
  drawingId: drawingId,
5396
5413
  pluginId: pluginId
5397
5414
  }));
5398
5415
  };
5399
5416
 
5400
- const description$n = {
5417
+ const description$o = {
5401
5418
  name: 'Rotate',
5402
5419
  version: '1.0.0',
5403
5420
  author: 'Ledas',
@@ -5407,26 +5424,26 @@ const description$n = {
5407
5424
  initialState: {}
5408
5425
  };
5409
5426
 
5410
- var index$n = /*#__PURE__*/Object.freeze({
5427
+ var index$o = /*#__PURE__*/Object.freeze({
5411
5428
  __proto__: null,
5412
- Root: Root$n,
5413
- description: description$n
5429
+ Root: Root$o,
5430
+ description: description$o
5414
5431
  });
5415
5432
 
5416
- var Members$h;
5433
+ var Members$i;
5417
5434
  (function (Members) {
5418
5435
  Members["SolidReferences"] = "bodiesToTransform";
5419
5436
  Members["CsysReferences"] = "references";
5420
- })(Members$h || (Members$h = {}));
5421
- function RootImpl$m({
5437
+ })(Members$i || (Members$i = {}));
5438
+ function RootImpl$n({
5422
5439
  drawingId,
5423
5440
  pluginId
5424
5441
  }) {
5425
5442
  const {
5426
5443
  objectId
5427
5444
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
5428
- const solidRefs = useRefsParam(drawingId, objectId, Members$h.SolidReferences);
5429
- const csysRefs = useRefsParam(drawingId, objectId, Members$h.CsysReferences);
5445
+ const solidRefs = useRefsParam(drawingId, objectId, Members$i.SolidReferences);
5446
+ const csysRefs = useRefsParam(drawingId, objectId, Members$i.CsysReferences);
5430
5447
  const selOrder = useSelectorsOrder(drawingId);
5431
5448
  const update = React.useCallback(() => {
5432
5449
  return classcad.ccAPI.feature.updateTransformation(drawingId, objectId, solidRefs.userValue, csysRefs.userValue, 0, {
@@ -5465,20 +5482,20 @@ function RootImpl$m({
5465
5482
  selectorsOrder: selOrder
5466
5483
  }));
5467
5484
  }
5468
- const Root$m = ({
5485
+ const Root$n = ({
5469
5486
  drawingId,
5470
5487
  pluginId
5471
5488
  }) => {
5472
5489
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
5473
5490
  drawingId: drawingId,
5474
5491
  pluginId: pluginId
5475
- }, /*#__PURE__*/React.createElement(RootImpl$m, {
5492
+ }, /*#__PURE__*/React.createElement(RootImpl$n, {
5476
5493
  drawingId: drawingId,
5477
5494
  pluginId: pluginId
5478
5495
  }));
5479
5496
  };
5480
5497
 
5481
- const description$m = {
5498
+ const description$n = {
5482
5499
  name: 'TransformByCsys',
5483
5500
  version: '1.0.0',
5484
5501
  author: 'Ledas',
@@ -5488,28 +5505,28 @@ const description$m = {
5488
5505
  initialState: {}
5489
5506
  };
5490
5507
 
5491
- var index$m = /*#__PURE__*/Object.freeze({
5508
+ var index$n = /*#__PURE__*/Object.freeze({
5492
5509
  __proto__: null,
5493
- Root: Root$m,
5494
- description: description$m
5510
+ Root: Root$n,
5511
+ description: description$n
5495
5512
  });
5496
5513
 
5497
- var Members$g;
5514
+ var Members$h;
5498
5515
  (function (Members) {
5499
5516
  Members["CutDirection"] = "cutDirection";
5500
5517
  Members["BodiesToCut"] = "bodiesToCut";
5501
5518
  Members["WorkPlaneReference"] = "workPlaneReference";
5502
- })(Members$g || (Members$g = {}));
5503
- function RootImpl$l({
5519
+ })(Members$h || (Members$h = {}));
5520
+ function RootImpl$m({
5504
5521
  drawingId,
5505
5522
  pluginId
5506
5523
  }) {
5507
5524
  const {
5508
5525
  objectId
5509
5526
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
5510
- const cutDirection = useBoolParam(drawingId, objectId, Members$g.CutDirection);
5511
- const bodiesToCut = useRefsParam(drawingId, objectId, Members$g.BodiesToCut);
5512
- const workplaneId = useIdParam(drawingId, objectId, Members$g.WorkPlaneReference);
5527
+ const cutDirection = useBoolParam(drawingId, objectId, Members$h.CutDirection);
5528
+ const bodiesToCut = useRefsParam(drawingId, objectId, Members$h.BodiesToCut);
5529
+ const workplaneId = useIdParam(drawingId, objectId, Members$h.WorkPlaneReference);
5513
5530
  const update = React.useCallback(() => {
5514
5531
  return classcad.ccAPI.feature.updateSlice(drawingId, objectId, bodiesToCut.serverValue, workplaneId.serverValue, cutDirection.serverValue);
5515
5532
  }, [drawingId, objectId, bodiesToCut, cutDirection, workplaneId]);
@@ -5538,20 +5555,20 @@ function RootImpl$l({
5538
5555
  icon: true
5539
5556
  })));
5540
5557
  }
5541
- const Root$l = ({
5558
+ const Root$m = ({
5542
5559
  drawingId,
5543
5560
  pluginId
5544
5561
  }) => {
5545
5562
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
5546
5563
  drawingId: drawingId,
5547
5564
  pluginId: pluginId
5548
- }, /*#__PURE__*/React.createElement(RootImpl$l, {
5565
+ }, /*#__PURE__*/React.createElement(RootImpl$m, {
5549
5566
  drawingId: drawingId,
5550
5567
  pluginId: pluginId
5551
5568
  }));
5552
5569
  };
5553
5570
 
5554
- const description$l = {
5571
+ const description$m = {
5555
5572
  name: 'Slice',
5556
5573
  version: '1.0.0',
5557
5574
  author: 'Ledas',
@@ -5561,28 +5578,28 @@ const description$l = {
5561
5578
  initialState: {}
5562
5579
  };
5563
5580
 
5564
- var index$l = /*#__PURE__*/Object.freeze({
5581
+ var index$m = /*#__PURE__*/Object.freeze({
5565
5582
  __proto__: null,
5566
- Root: Root$l,
5567
- description: description$l
5583
+ Root: Root$m,
5584
+ description: description$m
5568
5585
  });
5569
5586
 
5570
- var Members$f;
5587
+ var Members$g;
5571
5588
  (function (Members) {
5572
5589
  Members["Inverted"] = "inverted";
5573
5590
  Members["BodyToCut"] = "bodyToCut";
5574
5591
  Members["SheetBody"] = "sheetBody";
5575
- })(Members$f || (Members$f = {}));
5576
- function RootImpl$k({
5592
+ })(Members$g || (Members$g = {}));
5593
+ function RootImpl$l({
5577
5594
  drawingId,
5578
5595
  pluginId
5579
5596
  }) {
5580
5597
  const {
5581
5598
  objectId
5582
5599
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
5583
- const inverted = useBoolParam(drawingId, objectId, Members$f.Inverted);
5584
- const bodyToCut = useIdParam(drawingId, objectId, Members$f.BodyToCut);
5585
- const sheetBody = useIdParam(drawingId, objectId, Members$f.SheetBody);
5600
+ const inverted = useBoolParam(drawingId, objectId, Members$g.Inverted);
5601
+ const bodyToCut = useIdParam(drawingId, objectId, Members$g.BodyToCut);
5602
+ const sheetBody = useIdParam(drawingId, objectId, Members$g.SheetBody);
5586
5603
  const update = React.useCallback(() => {
5587
5604
  return classcad.ccAPI.feature.updateSliceBySheet(drawingId, objectId, bodyToCut.serverValue, sheetBody.serverValue, inverted.serverValue);
5588
5605
  }, [drawingId, objectId, bodyToCut, inverted, sheetBody]);
@@ -5614,20 +5631,20 @@ function RootImpl$k({
5614
5631
  icon: true
5615
5632
  })));
5616
5633
  }
5617
- const Root$k = ({
5634
+ const Root$l = ({
5618
5635
  drawingId,
5619
5636
  pluginId
5620
5637
  }) => {
5621
5638
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
5622
5639
  drawingId: drawingId,
5623
5640
  pluginId: pluginId
5624
- }, /*#__PURE__*/React.createElement(RootImpl$k, {
5641
+ }, /*#__PURE__*/React.createElement(RootImpl$l, {
5625
5642
  drawingId: drawingId,
5626
5643
  pluginId: pluginId
5627
5644
  }));
5628
5645
  };
5629
5646
 
5630
- const description$k = {
5647
+ const description$l = {
5631
5648
  name: 'SliceBySheet',
5632
5649
  version: '1.0.0',
5633
5650
  author: 'AWV',
@@ -5637,13 +5654,13 @@ const description$k = {
5637
5654
  initialState: {}
5638
5655
  };
5639
5656
 
5640
- var index$k = /*#__PURE__*/Object.freeze({
5657
+ var index$l = /*#__PURE__*/Object.freeze({
5641
5658
  __proto__: null,
5642
- Root: Root$k,
5643
- description: description$k
5659
+ Root: Root$l,
5660
+ description: description$l
5644
5661
  });
5645
5662
 
5646
- var Members$e;
5663
+ var Members$f;
5647
5664
  (function (Members) {
5648
5665
  Members["SolidReferences"] = "toPattern";
5649
5666
  Members["Axis1References"] = "references";
@@ -5655,24 +5672,24 @@ var Members$e;
5655
5672
  Members["Inverted2"] = "inverted2";
5656
5673
  Members["Count2"] = "secondDirInstanceCount";
5657
5674
  Members["Merged"] = "merged";
5658
- })(Members$e || (Members$e = {}));
5659
- function RootImpl$j({
5675
+ })(Members$f || (Members$f = {}));
5676
+ function RootImpl$k({
5660
5677
  drawingId,
5661
5678
  pluginId
5662
5679
  }) {
5663
5680
  const {
5664
5681
  objectId
5665
5682
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
5666
- const solidRefs = useRefsParam(drawingId, objectId, Members$e.SolidReferences);
5667
- const axis1Refs = useRefsParam(drawingId, objectId, Members$e.Axis1References);
5668
- const axis2Refs = useRefsParam(drawingId, objectId, Members$e.Axis2References);
5669
- const dist1 = useNumParam(drawingId, objectId, Members$e.Distance1);
5670
- const dist2 = useNumParam(drawingId, objectId, Members$e.Distance2);
5671
- const count1 = useNumParam(drawingId, objectId, Members$e.Count1);
5672
- const count2 = useNumParam(drawingId, objectId, Members$e.Count2);
5673
- const inverted1 = useBoolParam(drawingId, objectId, Members$e.Inverted1);
5674
- const inverted2 = useBoolParam(drawingId, objectId, Members$e.Inverted2);
5675
- const merged = useBoolParam(drawingId, objectId, Members$e.Merged);
5683
+ const solidRefs = useRefsParam(drawingId, objectId, Members$f.SolidReferences);
5684
+ const axis1Refs = useRefsParam(drawingId, objectId, Members$f.Axis1References);
5685
+ const axis2Refs = useRefsParam(drawingId, objectId, Members$f.Axis2References);
5686
+ const dist1 = useNumParam(drawingId, objectId, Members$f.Distance1);
5687
+ const dist2 = useNumParam(drawingId, objectId, Members$f.Distance2);
5688
+ const count1 = useNumParam(drawingId, objectId, Members$f.Count1);
5689
+ const count2 = useNumParam(drawingId, objectId, Members$f.Count2);
5690
+ const inverted1 = useBoolParam(drawingId, objectId, Members$f.Inverted1);
5691
+ const inverted2 = useBoolParam(drawingId, objectId, Members$f.Inverted2);
5692
+ const merged = useBoolParam(drawingId, objectId, Members$f.Merged);
5676
5693
  const update = React.useCallback(() => {
5677
5694
  const params1 = [inverted1.serverValue, dist1.serverValue, count1.serverValue, merged.serverValue];
5678
5695
  const axis2Refs_ = axis2Refs.serverValue.length > 0 ? axis2Refs.serverValue : null;
@@ -5744,20 +5761,20 @@ function RootImpl$j({
5744
5761
  param: merged
5745
5762
  }));
5746
5763
  }
5747
- const Root$j = ({
5764
+ const Root$k = ({
5748
5765
  drawingId,
5749
5766
  pluginId
5750
5767
  }) => {
5751
5768
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
5752
5769
  drawingId: drawingId,
5753
5770
  pluginId: pluginId
5754
- }, /*#__PURE__*/React.createElement(RootImpl$j, {
5771
+ }, /*#__PURE__*/React.createElement(RootImpl$k, {
5755
5772
  drawingId: drawingId,
5756
5773
  pluginId: pluginId
5757
5774
  }));
5758
5775
  };
5759
5776
 
5760
- const description$j = {
5777
+ const description$k = {
5761
5778
  name: 'Linear pattern',
5762
5779
  version: '1.0.0',
5763
5780
  author: 'Ledas',
@@ -5767,13 +5784,13 @@ const description$j = {
5767
5784
  initialState: {}
5768
5785
  };
5769
5786
 
5770
- var index$j = /*#__PURE__*/Object.freeze({
5787
+ var index$k = /*#__PURE__*/Object.freeze({
5771
5788
  __proto__: null,
5772
- Root: Root$j,
5773
- description: description$j
5789
+ Root: Root$k,
5790
+ description: description$k
5774
5791
  });
5775
5792
 
5776
- var Members$d;
5793
+ var Members$e;
5777
5794
  (function (Members) {
5778
5795
  Members["SolidReferences"] = "toPattern";
5779
5796
  Members["AxisReferences"] = "references";
@@ -5781,22 +5798,22 @@ var Members$d;
5781
5798
  Members["Inverted"] = "inverted";
5782
5799
  Members["Count"] = "instanceCount";
5783
5800
  Members["Merged"] = "merged";
5784
- })(Members$d || (Members$d = {}));
5785
- function RootImpl$i({
5801
+ })(Members$e || (Members$e = {}));
5802
+ function RootImpl$j({
5786
5803
  drawingId,
5787
5804
  pluginId
5788
5805
  }) {
5789
5806
  const {
5790
5807
  objectId
5791
5808
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
5792
- const solidRefs = useRefsParam(drawingId, objectId, Members$d.SolidReferences);
5793
- const axisRefs = useRefsParam(drawingId, objectId, Members$d.AxisReferences);
5794
- const angle = useNumParam(drawingId, objectId, Members$d.Angle, {
5809
+ const solidRefs = useRefsParam(drawingId, objectId, Members$e.SolidReferences);
5810
+ const axisRefs = useRefsParam(drawingId, objectId, Members$e.AxisReferences);
5811
+ const angle = useNumParam(drawingId, objectId, Members$e.Angle, {
5795
5812
  angle: true
5796
5813
  });
5797
- const count = useNumParam(drawingId, objectId, Members$d.Count);
5798
- const inverted = useBoolParam(drawingId, objectId, Members$d.Inverted);
5799
- const merged = useBoolParam(drawingId, objectId, Members$d.Merged);
5814
+ const count = useNumParam(drawingId, objectId, Members$e.Count);
5815
+ const inverted = useBoolParam(drawingId, objectId, Members$e.Inverted);
5816
+ const merged = useBoolParam(drawingId, objectId, Members$e.Merged);
5800
5817
  const update = React.useCallback(() => {
5801
5818
  const params = [inverted.serverValue, angle.serverValue, count.serverValue, merged.serverValue];
5802
5819
  return classcad.ccAPI.feature.updatePattern(drawingId, objectId, solidRefs.serverValue, axisRefs.serverValue, params, null, null);
@@ -5843,20 +5860,20 @@ function RootImpl$i({
5843
5860
  param: merged
5844
5861
  }));
5845
5862
  }
5846
- const Root$i = ({
5863
+ const Root$j = ({
5847
5864
  drawingId,
5848
5865
  pluginId
5849
5866
  }) => {
5850
5867
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
5851
5868
  drawingId: drawingId,
5852
5869
  pluginId: pluginId
5853
- }, /*#__PURE__*/React.createElement(RootImpl$i, {
5870
+ }, /*#__PURE__*/React.createElement(RootImpl$j, {
5854
5871
  drawingId: drawingId,
5855
5872
  pluginId: pluginId
5856
5873
  }));
5857
5874
  };
5858
5875
 
5859
- const description$i = {
5876
+ const description$j = {
5860
5877
  name: 'Circular pattern',
5861
5878
  version: '1.0.0',
5862
5879
  author: 'Ledas',
@@ -5866,26 +5883,26 @@ const description$i = {
5866
5883
  initialState: {}
5867
5884
  };
5868
5885
 
5869
- var index$i = /*#__PURE__*/Object.freeze({
5886
+ var index$j = /*#__PURE__*/Object.freeze({
5870
5887
  __proto__: null,
5871
- Root: Root$i,
5872
- description: description$i
5888
+ Root: Root$j,
5889
+ description: description$j
5873
5890
  });
5874
5891
 
5875
- var Members$c;
5892
+ var Members$d;
5876
5893
  (function (Members) {
5877
5894
  Members["SolidReferences"] = "toPattern";
5878
5895
  Members["FaceReferences"] = "references";
5879
- })(Members$c || (Members$c = {}));
5880
- const RootImpl$h = ({
5896
+ })(Members$d || (Members$d = {}));
5897
+ const RootImpl$i = ({
5881
5898
  drawingId,
5882
5899
  pluginId
5883
5900
  }) => {
5884
5901
  const {
5885
5902
  objectId
5886
5903
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
5887
- const solidRefs = useRefsParam(drawingId, objectId, Members$c.SolidReferences);
5888
- const faceRefs = useRefsParam(drawingId, objectId, Members$c.FaceReferences);
5904
+ const solidRefs = useRefsParam(drawingId, objectId, Members$d.SolidReferences);
5905
+ const faceRefs = useRefsParam(drawingId, objectId, Members$d.FaceReferences);
5889
5906
  const update = React.useCallback(() => {
5890
5907
  return classcad.ccAPI.feature.updateMirror(drawingId, objectId, solidRefs.serverValue, faceRefs.serverValue);
5891
5908
  }, [drawingId, objectId, solidRefs, faceRefs]);
@@ -5910,20 +5927,20 @@ const RootImpl$h = ({
5910
5927
  customIdPicker: pickGrOrObjId
5911
5928
  }));
5912
5929
  };
5913
- const Root$h = ({
5930
+ const Root$i = ({
5914
5931
  drawingId,
5915
5932
  pluginId
5916
5933
  }) => {
5917
5934
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
5918
5935
  drawingId: drawingId,
5919
5936
  pluginId: pluginId
5920
- }, /*#__PURE__*/React.createElement(RootImpl$h, {
5937
+ }, /*#__PURE__*/React.createElement(RootImpl$i, {
5921
5938
  drawingId: drawingId,
5922
5939
  pluginId: pluginId
5923
5940
  }));
5924
5941
  };
5925
5942
 
5926
- const description$h = {
5943
+ const description$i = {
5927
5944
  name: 'Mirror',
5928
5945
  version: '1.0.0',
5929
5946
  author: 'AWV',
@@ -5933,10 +5950,10 @@ const description$h = {
5933
5950
  initialState: {}
5934
5951
  };
5935
5952
 
5936
- var index$h = /*#__PURE__*/Object.freeze({
5953
+ var index$i = /*#__PURE__*/Object.freeze({
5937
5954
  __proto__: null,
5938
- Root: Root$h,
5939
- description: description$h
5955
+ Root: Root$i,
5956
+ description: description$i
5940
5957
  });
5941
5958
 
5942
5959
  const defaultNumberOfDigits = 3;
@@ -5995,7 +6012,7 @@ const vectorToString = (point, digits) => `${point.toArray().map(n => core.MathU
5995
6012
  function ownKeys$l(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5996
6013
  function _objectSpread$l(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$l(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$l(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5997
6014
  const Excluded = [core.GraphicType.LOOP].concat(core.EntityTypes);
5998
- const RootImpl$g = ({
6015
+ const RootImpl$h = ({
5999
6016
  drawingId,
6000
6017
  pluginId
6001
6018
  }) => {
@@ -6101,11 +6118,11 @@ const Output = ({
6101
6118
  }, `${item.asString}`));
6102
6119
  }));
6103
6120
  };
6104
- const Root$g = ({
6121
+ const Root$h = ({
6105
6122
  drawingId,
6106
6123
  pluginId
6107
6124
  }) => {
6108
- return /*#__PURE__*/React.createElement(ErrorBoundary, null, /*#__PURE__*/React.createElement(RootImpl$g, {
6125
+ return /*#__PURE__*/React.createElement(ErrorBoundary, null, /*#__PURE__*/React.createElement(RootImpl$h, {
6109
6126
  drawingId: drawingId,
6110
6127
  pluginId: pluginId
6111
6128
  }));
@@ -6570,7 +6587,7 @@ const View$e = ({
6570
6587
  }));
6571
6588
  };
6572
6589
 
6573
- const description$g = {
6590
+ const description$h = {
6574
6591
  name: 'Measure',
6575
6592
  version: '0.0.1',
6576
6593
  author: 'AWV',
@@ -6582,11 +6599,11 @@ const description$g = {
6582
6599
  }
6583
6600
  };
6584
6601
 
6585
- var index$g = /*#__PURE__*/Object.freeze({
6602
+ var index$h = /*#__PURE__*/Object.freeze({
6586
6603
  __proto__: null,
6587
- Root: Root$g,
6604
+ Root: Root$h,
6588
6605
  View: View$e,
6589
- description: description$g
6606
+ description: description$h
6590
6607
  });
6591
6608
 
6592
6609
  // TODO use it as key in object
@@ -6837,7 +6854,7 @@ const getInitialState = () => {
6837
6854
  needsUpdate: 0
6838
6855
  };
6839
6856
  };
6840
- const description$f = {
6857
+ const description$g = {
6841
6858
  name: 'Sketcher',
6842
6859
  version: '1.0.0',
6843
6860
  author: 'Ledas',
@@ -6849,7 +6866,7 @@ const description$f = {
6849
6866
 
6850
6867
  function getSketchState(drawingId, pluginId) {
6851
6868
  const plugin = core.getPlugin(drawingId, pluginId);
6852
- if (!plugin || plugin.name !== description$f.name) {
6869
+ if (!plugin || plugin.name !== description$g.name) {
6853
6870
  window.console.error('Wrong arguments are passed into getSketchState.');
6854
6871
  }
6855
6872
  return plugin.state;
@@ -8922,102 +8939,102 @@ function DrawCircle(drawingId, pluginId) {
8922
8939
  };
8923
8940
  }
8924
8941
 
8925
- var img$_ = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M98.6501 57.944V63.1826H71.546V80.9483H28.9538V63.1826H1.84961V57.944H28.9538V38.3561H36.0145V33.8008C36.0145 26.0568 42.3919 19.4515 50.3638 19.4515C58.3356 19.4515 64.713 25.829 64.713 33.8008V38.3561H71.7738V57.944H98.6501ZM66.9907 76.393V42.9114H59.9299V33.8008C59.9299 28.5622 55.6024 24.0069 50.136 24.0069C44.6696 24.0069 40.5698 28.5622 40.5698 33.8008V42.9114H33.5091V76.393H66.9907Z' fill='black'/%3e%3cpath d='M66.9918 42.9114V76.393H33.5103V42.9114H40.571V33.8008C40.571 28.5622 44.8985 24.0068 50.3649 24.0068C55.8313 24.0068 60.1589 28.3344 60.1589 33.8008V42.9114H66.9918ZM56.7424 40.6338V34.0285C56.7424 30.612 53.7814 27.6511 50.3649 27.6511C46.9484 27.6511 43.9875 30.612 43.9875 34.0285V40.6338H56.7424ZM55.6036 65.9158V56.5774C55.6036 53.6164 53.3259 51.3388 50.3649 51.3388C47.404 51.3388 45.1263 53.6164 45.1263 56.5774V65.9158H55.6036Z' fill='%239D9D9C'/%3e%3cpath d='M56.7412 34.0286V40.6338H43.9863V34.0286C43.9863 30.6121 46.9473 27.6511 50.3638 27.6511C53.7803 27.6511 56.7412 30.3843 56.7412 34.0286ZM52.1859 36.0785V34.0286C52.1859 33.1175 51.2748 32.2064 50.3638 32.2064C49.4527 32.2064 48.5416 32.8897 48.5416 34.0286V36.0785H52.1859Z' fill='black'/%3e%3cpath d='M55.6027 56.5774V65.9158H45.1255V56.5774C45.1255 53.6164 47.4031 51.3387 50.3641 51.3387C53.0973 51.3387 55.6027 53.6164 55.6027 56.5774Z' fill='black'/%3e%3c/svg%3e";
8926
- var fixation = img$_;
8942
+ var img$$ = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M98.6501 57.944V63.1826H71.546V80.9483H28.9538V63.1826H1.84961V57.944H28.9538V38.3561H36.0145V33.8008C36.0145 26.0568 42.3919 19.4515 50.3638 19.4515C58.3356 19.4515 64.713 25.829 64.713 33.8008V38.3561H71.7738V57.944H98.6501ZM66.9907 76.393V42.9114H59.9299V33.8008C59.9299 28.5622 55.6024 24.0069 50.136 24.0069C44.6696 24.0069 40.5698 28.5622 40.5698 33.8008V42.9114H33.5091V76.393H66.9907Z' fill='black'/%3e%3cpath d='M66.9918 42.9114V76.393H33.5103V42.9114H40.571V33.8008C40.571 28.5622 44.8985 24.0068 50.3649 24.0068C55.8313 24.0068 60.1589 28.3344 60.1589 33.8008V42.9114H66.9918ZM56.7424 40.6338V34.0285C56.7424 30.612 53.7814 27.6511 50.3649 27.6511C46.9484 27.6511 43.9875 30.612 43.9875 34.0285V40.6338H56.7424ZM55.6036 65.9158V56.5774C55.6036 53.6164 53.3259 51.3388 50.3649 51.3388C47.404 51.3388 45.1263 53.6164 45.1263 56.5774V65.9158H55.6036Z' fill='%239D9D9C'/%3e%3cpath d='M56.7412 34.0286V40.6338H43.9863V34.0286C43.9863 30.6121 46.9473 27.6511 50.3638 27.6511C53.7803 27.6511 56.7412 30.3843 56.7412 34.0286ZM52.1859 36.0785V34.0286C52.1859 33.1175 51.2748 32.2064 50.3638 32.2064C49.4527 32.2064 48.5416 32.8897 48.5416 34.0286V36.0785H52.1859Z' fill='black'/%3e%3cpath d='M55.6027 56.5774V65.9158H45.1255V56.5774C45.1255 53.6164 47.4031 51.3387 50.3641 51.3387C53.0973 51.3387 55.6027 53.6164 55.6027 56.5774Z' fill='black'/%3e%3c/svg%3e";
8943
+ var fixation = img$$;
8927
8944
 
8928
- var img$Z = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M93.7715 47.5999H6.8291V53H93.7715V47.5999Z' fill='black'/%3e%3c/svg%3e";
8929
- var horizontality = img$Z;
8945
+ var img$_ = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M93.7715 47.5999H6.8291V53H93.7715V47.5999Z' fill='black'/%3e%3c/svg%3e";
8946
+ var horizontality = img$_;
8930
8947
 
8931
- var img$Y = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M53 12H47.6006V88.5999H53V12Z' fill='black'/%3e%3c/svg%3e";
8932
- var verticality = img$Y;
8948
+ var img$Z = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M53 12H47.6006V88.5999H53V12Z' fill='black'/%3e%3c/svg%3e";
8949
+ var verticality = img$Z;
8933
8950
 
8934
- var img$X = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M44.05 49.7792L50 55.6417L55.95 49.7792L50 43.9167L44.05 49.7792ZM54.8167 40.8458L80.0333 16L84 19.9083L58.7833 44.7542L63.6 49.5L58.7833 54.2458L84 79.0917L80.0333 83L54.8167 58.1542L50 62.9L45.1833 58.1542L19.9667 83L16 79.0917L41.2167 54.2458L36.4 49.5L50.2833 35.8208L54.8167 40.8458Z' fill='black'/%3e%3c/svg%3e";
8935
- var coincident = img$X;
8951
+ var img$Y = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M44.05 49.7792L50 55.6417L55.95 49.7792L50 43.9167L44.05 49.7792ZM54.8167 40.8458L80.0333 16L84 19.9083L58.7833 44.7542L63.6 49.5L58.7833 54.2458L84 79.0917L80.0333 83L54.8167 58.1542L50 62.9L45.1833 58.1542L19.9667 83L16 79.0917L41.2167 54.2458L36.4 49.5L50.2833 35.8208L54.8167 40.8458Z' fill='black'/%3e%3c/svg%3e";
8952
+ var coincident = img$Y;
8936
8953
 
8937
- var img$W = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M63 46C67.3243 46 71.973 46.8784 75 50C78.027 53.1216 80.5 59.2635 80.5 63.5C80.5 67.9595 77.2703 71.973 74.2432 75.0946C71.2162 78.2162 67.1081 80 63 80C58.6757 80 54.7838 78.2162 51.7568 75.0946C48.7297 71.973 46.5 67.7365 46.5 63.5C46.5 59.0406 46.973 54.1216 50 51C52.8108 47.8784 58.6757 46 63 46Z' fill='%239D9D9C'/%3e%3cpath d='M46.796 63.1473C46.796 67.5666 48.5637 71.5439 51.6572 74.6374C54.7507 77.7309 58.949 79.4986 63.1473 79.4986C67.5666 79.4986 71.5439 77.7309 74.6374 74.6374C77.7309 71.5439 79.4986 67.3456 79.4986 63.1473C79.4986 58.728 77.7309 54.7507 74.6374 51.6572C71.5439 48.5637 67.3456 46.796 63.1473 46.796C58.728 46.796 54.7507 48.5637 51.6572 51.6572C48.5637 54.7507 46.796 58.728 46.796 63.1473ZM63.1473 83.9178C57.8442 83.9178 52.5411 81.9292 48.5637 77.7309C43.9235 73.0906 41.9348 66.4617 42.5977 60.4957L14.0935 89L11 85.9065L85.9065 11L89 14.0935L60.4957 42.5977C66.6827 41.7139 73.0906 43.7025 77.7309 48.5637C85.9065 56.7394 85.9065 69.7762 77.7309 77.9518C73.7535 81.9292 68.4504 83.9178 63.1473 83.9178Z' fill='black'/%3e%3c/svg%3e";
8938
- var tangency = img$W;
8954
+ var img$X = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M63 46C67.3243 46 71.973 46.8784 75 50C78.027 53.1216 80.5 59.2635 80.5 63.5C80.5 67.9595 77.2703 71.973 74.2432 75.0946C71.2162 78.2162 67.1081 80 63 80C58.6757 80 54.7838 78.2162 51.7568 75.0946C48.7297 71.973 46.5 67.7365 46.5 63.5C46.5 59.0406 46.973 54.1216 50 51C52.8108 47.8784 58.6757 46 63 46Z' fill='%239D9D9C'/%3e%3cpath d='M46.796 63.1473C46.796 67.5666 48.5637 71.5439 51.6572 74.6374C54.7507 77.7309 58.949 79.4986 63.1473 79.4986C67.5666 79.4986 71.5439 77.7309 74.6374 74.6374C77.7309 71.5439 79.4986 67.3456 79.4986 63.1473C79.4986 58.728 77.7309 54.7507 74.6374 51.6572C71.5439 48.5637 67.3456 46.796 63.1473 46.796C58.728 46.796 54.7507 48.5637 51.6572 51.6572C48.5637 54.7507 46.796 58.728 46.796 63.1473ZM63.1473 83.9178C57.8442 83.9178 52.5411 81.9292 48.5637 77.7309C43.9235 73.0906 41.9348 66.4617 42.5977 60.4957L14.0935 89L11 85.9065L85.9065 11L89 14.0935L60.4957 42.5977C66.6827 41.7139 73.0906 43.7025 77.7309 48.5637C85.9065 56.7394 85.9065 69.7762 77.7309 77.9518C73.7535 81.9292 68.4504 83.9178 63.1473 83.9178Z' fill='black'/%3e%3c/svg%3e";
8955
+ var tangency = img$X;
8939
8956
 
8940
- var img$V = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M88 36.7379L36.7561 88L33 84.2621L84.2439 33L88 36.7379Z' fill='black'/%3e%3cpath d='M67 16.0777L15.7561 68L12 64.1942L63.2439 12L67 16.0777Z' fill='black'/%3e%3c/svg%3e";
8941
- var parallelity = img$V;
8957
+ var img$W = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M88 36.7379L36.7561 88L33 84.2621L84.2439 33L88 36.7379Z' fill='black'/%3e%3cpath d='M67 16.0777L15.7561 68L12 64.1942L63.2439 12L67 16.0777Z' fill='black'/%3e%3c/svg%3e";
8958
+ var parallelity = img$W;
8942
8959
 
8943
- var img$U = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12 75H50.5M88 75H50.5M50.5 75V24.5' stroke='black' stroke-width='5'/%3e%3c/svg%3e";
8944
- var perpendicularity = img$U;
8960
+ var img$V = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12 75H50.5M88 75H50.5M50.5 75V24.5' stroke='black' stroke-width='5'/%3e%3c/svg%3e";
8961
+ var perpendicularity = img$V;
8945
8962
 
8946
- var img$T = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M60.4698 20.5082L56.6826 16.7236L16.9448 56.4895L20.7321 60.2741L60.4698 20.5082Z' fill='black'/%3e%3cpath d='M82.8491 21.6999L79.0635 17.9143L18.115 78.8628L21.9006 82.6484L82.8491 21.6999Z' fill='black'/%3e%3cpath d='M83.9996 44.0778L80.2124 40.2932L40.4746 80.0591L44.2619 83.8437L83.9996 44.0778Z' fill='black'/%3e%3c/svg%3e";
8947
- var colinear = img$T;
8963
+ var img$U = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M60.4698 20.5082L56.6826 16.7236L16.9448 56.4895L20.7321 60.2741L60.4698 20.5082Z' fill='black'/%3e%3cpath d='M82.8491 21.6999L79.0635 17.9143L18.115 78.8628L21.9006 82.6484L82.8491 21.6999Z' fill='black'/%3e%3cpath d='M83.9996 44.0778L80.2124 40.2932L40.4746 80.0591L44.2619 83.8437L83.9996 44.0778Z' fill='black'/%3e%3c/svg%3e";
8964
+ var colinear = img$U;
8948
8965
 
8949
- var img$S = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='50' cy='50' r='32.5' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3ccircle cx='50' cy='50' r='19.5' stroke='black' stroke-width='5'/%3e%3crect x='44' y='44' width='12' height='12' fill='white' stroke='black' stroke-width='4'/%3e%3c/svg%3e";
8950
- var concentric = img$S;
8966
+ var img$T = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='50' cy='50' r='32.5' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3ccircle cx='50' cy='50' r='19.5' stroke='black' stroke-width='5'/%3e%3crect x='44' y='44' width='12' height='12' fill='white' stroke='black' stroke-width='4'/%3e%3c/svg%3e";
8967
+ var concentric = img$T;
8951
8968
 
8952
- var img$R = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M34.6614 51.5994L48.7943 65.8707L62.9272 51.5994L48.7943 37.3281L34.6614 51.5994ZM69.75 51.5994L48.7943 72.7603L40.2658 64.1483L15.8987 89L12 84.817L36.6108 60.2114L27.8386 51.5994L48.7943 30.4385L57.3228 39.0505L85.1013 11L89 14.9369L61.2215 43.2334L69.75 51.5994Z' fill='black'/%3e%3c/svg%3e";
8953
- var midpoint = img$R;
8969
+ var img$S = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M34.6614 51.5994L48.7943 65.8707L62.9272 51.5994L48.7943 37.3281L34.6614 51.5994ZM69.75 51.5994L48.7943 72.7603L40.2658 64.1483L15.8987 89L12 84.817L36.6108 60.2114L27.8386 51.5994L48.7943 30.4385L57.3228 39.0505L85.1013 11L89 14.9369L61.2215 43.2334L69.75 51.5994Z' fill='black'/%3e%3c/svg%3e";
8970
+ var midpoint = img$S;
8954
8971
 
8955
- var img$Q = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M87.5 27L80 52.5L89 78.5H63V27H87.5Z' fill='%239D9D9C'/%3e%3cpath d='M53 79H48V84H53V79Z' fill='black'/%3e%3cpath d='M53 71H48V75H53V71Z' fill='black'/%3e%3cpath d='M53 61H48V66H53V61Z' fill='black'/%3e%3cpath d='M53 53H48V57H53V53Z' fill='black'/%3e%3cpath d='M53 43H48V48H53V43Z' fill='black'/%3e%3cpath d='M53 34H48V39H53V34Z' fill='black'/%3e%3cpath d='M53 25H48V30H53V25Z' fill='black'/%3e%3cpath d='M53 16H48V21H53V16Z' fill='black'/%3e%3cpath d='M38 27L38.5 78L13.5 77L20.5 52L12.5 27.5L38 27Z' fill='%239D9D9C'/%3e%3cpath d='M14.2877 28.4358L21.9726 52.3891L14.2877 76.5642H37.5753V28.4358H14.2877ZM42 24V81H8L17.0822 52.3891L8 24H42Z' fill='black'/%3e%3cpath d='M63.6259 76.5642H86.7551L78.8912 52.3891L86.5238 28.214H63.3946V76.5642H63.6259ZM59 81V24H93L83.7483 52.3891L92.7687 81H59Z' fill='black'/%3e%3c/svg%3e";
8956
- var symmetric = img$Q;
8972
+ var img$R = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M87.5 27L80 52.5L89 78.5H63V27H87.5Z' fill='%239D9D9C'/%3e%3cpath d='M53 79H48V84H53V79Z' fill='black'/%3e%3cpath d='M53 71H48V75H53V71Z' fill='black'/%3e%3cpath d='M53 61H48V66H53V61Z' fill='black'/%3e%3cpath d='M53 53H48V57H53V53Z' fill='black'/%3e%3cpath d='M53 43H48V48H53V43Z' fill='black'/%3e%3cpath d='M53 34H48V39H53V34Z' fill='black'/%3e%3cpath d='M53 25H48V30H53V25Z' fill='black'/%3e%3cpath d='M53 16H48V21H53V16Z' fill='black'/%3e%3cpath d='M38 27L38.5 78L13.5 77L20.5 52L12.5 27.5L38 27Z' fill='%239D9D9C'/%3e%3cpath d='M14.2877 28.4358L21.9726 52.3891L14.2877 76.5642H37.5753V28.4358H14.2877ZM42 24V81H8L17.0822 52.3891L8 24H42Z' fill='black'/%3e%3cpath d='M63.6259 76.5642H86.7551L78.8912 52.3891L86.5238 28.214H63.3946V76.5642H63.6259ZM59 81V24H93L83.7483 52.3891L92.7687 81H59Z' fill='black'/%3e%3c/svg%3e";
8973
+ var symmetric = img$R;
8957
8974
 
8958
- var img$P = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M87.0685 59.9326H13.5317V66.7416H87.0685V59.9326Z' fill='black'/%3e%3cpath d='M87.0685 34.0582H13.5317V40.8672H87.0685V34.0582Z' fill='black'/%3e%3c/svg%3e";
8959
- var equal = img$P;
8975
+ var img$Q = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M87.0685 59.9326H13.5317V66.7416H87.0685V59.9326Z' fill='black'/%3e%3cpath d='M87.0685 34.0582H13.5317V40.8672H87.0685V34.0582Z' fill='black'/%3e%3c/svg%3e";
8976
+ var equal = img$Q;
8960
8977
 
8961
- var img$O = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M80 50H19' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M74 59L82 50.3692L74 42' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M26 42L19 50.3692V50.6308L25.75 59' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M5 30V70' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M96 30V70' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3c/svg%3e";
8962
- var hdimension = img$O;
8978
+ var img$P = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M80 50H19' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M74 59L82 50.3692L74 42' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M26 42L19 50.3692V50.6308L25.75 59' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M5 30V70' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M96 30V70' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3c/svg%3e";
8979
+ var hdimension = img$P;
8963
8980
 
8964
- var img$N = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M31 95H69' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M50 21V81' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M58 27L49.8769 20L42 27' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M42 74L50.1231 81L58 74.25' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M31 6H69' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3c/svg%3e";
8965
- var vdimension = img$N;
8981
+ var img$O = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M31 95H69' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M50 21V81' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M58 27L49.8769 20L42 27' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M42 74L50.1231 81L58 74.25' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M31 6H69' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3c/svg%3e";
8982
+ var vdimension = img$O;
8966
8983
 
8967
- var img$M = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M68.0001 32L31.2217 69L34.2036 66' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M69 40L68.3478 30.6522L59 30' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M30 59L30.8696 68.3478L40 69' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M10 65L34 89' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M65 10L89 34' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3c/svg%3e";
8968
- var dimension = img$M;
8984
+ var img$N = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M68.0001 32L31.2217 69L34.2036 66' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M69 40L68.3478 30.6522L59 30' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M30 59L30.8696 68.3478L40 69' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M10 65L34 89' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3cpath d='M65 10L89 34' stroke='black' stroke-width='4' stroke-miterlimit='10'/%3e%3c/svg%3e";
8985
+ var dimension = img$N;
8969
8986
 
8970
- var img$L = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='50' cy='50' r='35.5' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3crect x='43.5' y='43.5' width='12' height='12' fill='white' stroke='black' stroke-width='5'/%3e%3cline x1='55.2322' y1='43.2322' x2='73.2322' y2='25.2322' stroke='black' stroke-width='5'/%3e%3c/svg%3e";
8971
- var radius = img$L;
8987
+ var img$M = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='50' cy='50' r='35.5' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3crect x='43.5' y='43.5' width='12' height='12' fill='white' stroke='black' stroke-width='5'/%3e%3cline x1='55.2322' y1='43.2322' x2='73.2322' y2='25.2322' stroke='black' stroke-width='5'/%3e%3c/svg%3e";
8988
+ var radius = img$M;
8972
8989
 
8973
- var img$K = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M49.8772 47C40.8772 47 34.5 54.036 34.5 54.036L27.5 42.7085C27.5 42.7085 36.2983 33 49.8772 33C63.4562 33 71.6769 42 71.6769 42L64.6502 53C64.6502 53 58.8772 47 49.8772 47Z' fill='%23C4C4C4'/%3e%3cpath d='M34.5 54.036L48.9999 77.5L64.6502 53C64.6502 53 58.8772 47 49.8772 47C40.8772 47 34.5 54.036 34.5 54.036Z' fill='%23C4C4C4'/%3e%3cpath d='M15.1406 22.7083L48.9999 77.5M48.9999 77.5L84.0002 22.7083M48.9999 77.5L34.5 54.036M48.9999 77.5L64.6502 53M34.5 54.036C34.5 54.036 40.8772 47 49.8772 47C58.8772 47 64.6502 53 64.6502 53M34.5 54.036L27.5 42.7085C27.5 42.7085 36.2983 33 49.8772 33C63.4562 33 71.6769 42 71.6769 42L64.6502 53' stroke='black' stroke-width='4'/%3e%3c/svg%3e";
8974
- var angle = img$K;
8990
+ var img$L = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M49.8772 47C40.8772 47 34.5 54.036 34.5 54.036L27.5 42.7085C27.5 42.7085 36.2983 33 49.8772 33C63.4562 33 71.6769 42 71.6769 42L64.6502 53C64.6502 53 58.8772 47 49.8772 47Z' fill='%23C4C4C4'/%3e%3cpath d='M34.5 54.036L48.9999 77.5L64.6502 53C64.6502 53 58.8772 47 49.8772 47C40.8772 47 34.5 54.036 34.5 54.036Z' fill='%23C4C4C4'/%3e%3cpath d='M15.1406 22.7083L48.9999 77.5M48.9999 77.5L84.0002 22.7083M48.9999 77.5L34.5 54.036M48.9999 77.5L64.6502 53M34.5 54.036C34.5 54.036 40.8772 47 49.8772 47C58.8772 47 64.6502 53 64.6502 53M34.5 54.036L27.5 42.7085C27.5 42.7085 36.2983 33 49.8772 33C63.4562 33 71.6769 42 71.6769 42L64.6502 53' stroke='black' stroke-width='4'/%3e%3c/svg%3e";
8991
+ var angle = img$L;
8975
8992
 
8976
- var img$J = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M65 16.5L15.5 66H80.5M80.5 66L74 59M80.5 66L75 73' stroke='black' stroke-width='5'/%3e%3cpath d='M55.9524 46.4372L53 51L48.5 42.5H58.5L55.9524 46.4372Z' fill='black'/%3e%3cpath d='M56.5 61.5C56.5 61.5 59.5 58.5 59.5 54C59.5 49.5 55.5 46 55.5 46M53 51L58.5 42.5H48.5L53 51Z' stroke='black' stroke-width='2'/%3e%3cpath d='M77.0859 82.5469L79.2188 78.625H81.9141L78.6016 84.2656L82 90H79.2734L77.0859 86.0156L74.8984 90H72.1719L75.5703 84.2656L72.2578 78.625H74.9531L77.0859 82.5469Z' fill='black'/%3e%3c/svg%3e";
8977
- var angleox = img$J;
8993
+ var img$K = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M65 16.5L15.5 66H80.5M80.5 66L74 59M80.5 66L75 73' stroke='black' stroke-width='5'/%3e%3cpath d='M55.9524 46.4372L53 51L48.5 42.5H58.5L55.9524 46.4372Z' fill='black'/%3e%3cpath d='M56.5 61.5C56.5 61.5 59.5 58.5 59.5 54C59.5 49.5 55.5 46 55.5 46M53 51L58.5 42.5H48.5L53 51Z' stroke='black' stroke-width='2'/%3e%3cpath d='M77.0859 82.5469L79.2188 78.625H81.9141L78.6016 84.2656L82 90H79.2734L77.0859 86.0156L74.8984 90H72.1719L75.5703 84.2656L72.2578 78.625H74.9531L77.0859 82.5469Z' fill='black'/%3e%3c/svg%3e";
8994
+ var angleox = img$K;
8978
8995
 
8979
- var img$I = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3crect x='18.5' y='18.5' width='64' height='64' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M60.5352 58.7656C59.5859 59.9023 58.2441 60.7871 56.5098 61.4199C54.7754 62.041 52.8535 62.3516 50.7441 62.3516C48.5293 62.3516 46.584 61.8711 44.9082 60.9102C43.2441 59.9375 41.9551 58.5312 41.041 56.6914C40.1387 54.8516 39.6758 52.6895 39.6523 50.2051V48.4648C39.6523 45.9102 40.0801 43.7012 40.9355 41.8379C41.8027 39.9629 43.0449 38.5332 44.6621 37.5488C46.291 36.5527 48.1953 36.0547 50.375 36.0547C53.4102 36.0547 55.7832 36.7812 57.4941 38.2344C59.2051 39.6758 60.2188 41.7793 60.5352 44.5449H55.4023C55.168 43.0801 54.6465 42.0078 53.8379 41.3281C53.041 40.6484 51.9395 40.3086 50.5332 40.3086C48.7402 40.3086 47.375 40.9824 46.4375 42.3301C45.5 43.6777 45.0254 45.6816 45.0137 48.3418V49.9766C45.0137 52.6602 45.5234 54.6875 46.543 56.0586C47.5625 57.4297 49.0566 58.1152 51.0254 58.1152C53.0059 58.1152 54.418 57.6934 55.2617 56.8496V52.4375H50.4629V48.5527H60.5352V58.7656Z' fill='black'/%3e%3c/svg%3e";
8980
- var rigidSet = img$I;
8996
+ var img$J = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3crect x='18.5' y='18.5' width='64' height='64' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M60.5352 58.7656C59.5859 59.9023 58.2441 60.7871 56.5098 61.4199C54.7754 62.041 52.8535 62.3516 50.7441 62.3516C48.5293 62.3516 46.584 61.8711 44.9082 60.9102C43.2441 59.9375 41.9551 58.5312 41.041 56.6914C40.1387 54.8516 39.6758 52.6895 39.6523 50.2051V48.4648C39.6523 45.9102 40.0801 43.7012 40.9355 41.8379C41.8027 39.9629 43.0449 38.5332 44.6621 37.5488C46.291 36.5527 48.1953 36.0547 50.375 36.0547C53.4102 36.0547 55.7832 36.7812 57.4941 38.2344C59.2051 39.6758 60.2188 41.7793 60.5352 44.5449H55.4023C55.168 43.0801 54.6465 42.0078 53.8379 41.3281C53.041 40.6484 51.9395 40.3086 50.5332 40.3086C48.7402 40.3086 47.375 40.9824 46.4375 42.3301C45.5 43.6777 45.0254 45.6816 45.0137 48.3418V49.9766C45.0137 52.6602 45.5234 54.6875 46.543 56.0586C47.5625 57.4297 49.0566 58.1152 51.0254 58.1152C53.0059 58.1152 54.418 57.6934 55.2617 56.8496V52.4375H50.4629V48.5527H60.5352V58.7656Z' fill='black'/%3e%3c/svg%3e";
8997
+ var rigidSet = img$J;
8981
8998
 
8982
- var img$H = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M54 53V79.6063L46 84V57.6378L54 53Z' fill='%239D9D9C'/%3e%3cpath d='M52.5 49L43.5 54L21 40.25L29.5 34.5L52.5 49Z' fill='%239D9D9C'/%3e%3cpath d='M42.5 56.5V84.5L18 70.6667V44L42.5 56.5Z' fill='%239D9D9C'/%3e%3cpath d='M82.1815 79.7636V36.9565L67.967 45.1793V87.9864L82.1815 79.7636ZM79.2904 33.087L42.9109 11.3207L28.6964 19.5435L65.5578 40.8261L79.2904 33.087ZM53.9934 79.2799V52.9185L46.2838 57.5136V83.6331L53.9934 79.2799ZM63.1485 45.1793L26.2871 23.6549V31.6359L27.7327 30.9103H27.9736L29.1782 30.1848L59.0528 48.0815V82.1821L55.6799 83.6331L63.1485 87.9864V45.1793ZM41.4653 57.5136L18.8185 44.4538V70.5734L41.4653 83.6331V57.5136ZM21.2277 40.1005L43.8746 53.1603L51.3432 48.8071L29.1782 35.5054L21.2277 40.1005ZM21.4686 34.538V18.3342L22.6733 17.6087L41.7063 6.72554L42.9109 6L87 32.1196V82.6658L65.5578 95L50.8614 86.5353L43.6337 90.6467L14 73.2337V38.8913L15.2046 38.1658L21.4686 34.538Z' fill='black'/%3e%3c/svg%3e";
8999
+ var img$I = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M54 53V79.6063L46 84V57.6378L54 53Z' fill='%239D9D9C'/%3e%3cpath d='M52.5 49L43.5 54L21 40.25L29.5 34.5L52.5 49Z' fill='%239D9D9C'/%3e%3cpath d='M42.5 56.5V84.5L18 70.6667V44L42.5 56.5Z' fill='%239D9D9C'/%3e%3cpath d='M82.1815 79.7636V36.9565L67.967 45.1793V87.9864L82.1815 79.7636ZM79.2904 33.087L42.9109 11.3207L28.6964 19.5435L65.5578 40.8261L79.2904 33.087ZM53.9934 79.2799V52.9185L46.2838 57.5136V83.6331L53.9934 79.2799ZM63.1485 45.1793L26.2871 23.6549V31.6359L27.7327 30.9103H27.9736L29.1782 30.1848L59.0528 48.0815V82.1821L55.6799 83.6331L63.1485 87.9864V45.1793ZM41.4653 57.5136L18.8185 44.4538V70.5734L41.4653 83.6331V57.5136ZM21.2277 40.1005L43.8746 53.1603L51.3432 48.8071L29.1782 35.5054L21.2277 40.1005ZM21.4686 34.538V18.3342L22.6733 17.6087L41.7063 6.72554L42.9109 6L87 32.1196V82.6658L65.5578 95L50.8614 86.5353L43.6337 90.6467L14 73.2337V38.8913L15.2046 38.1658L21.4686 34.538Z' fill='black'/%3e%3c/svg%3e";
8983
9000
 
8984
- var img$G = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M46.9476 18C64.6143 18 79 32.5294 79 50.3726C79 68.2157 64.6143 83 46.9476 83C39.3762 83 32.5619 80.451 27.0095 76.1176C29.281 75.3529 31.8048 74.3333 34.0762 72.549C37.1048 70 39.1238 67.1961 40.1333 64.1373C42.1524 65.1569 44.4238 65.6667 46.9476 65.6667C55.2762 65.6667 62.0905 58.7843 62.0905 50.3726C62.0905 41.9608 55.2762 35.5 46.9476 35.5C44.1714 35.5 41.2714 36.7255 39 38C37.9905 35.1961 35.2762 31.7941 32.5 29.5C30.2286 27.7157 28.0238 26.5098 25.5 26C31.3048 21.1569 39.1238 18 46.9476 18Z' fill='%239D9D9C'/%3e%3cpath d='M31.5682 68.64C29.1136 70.6 26.6591 71.72 24.4773 72C24.2045 72 23.9318 72 23.6591 72C22.5682 72 21.75 71.72 21.4773 71.16L21.2045 70.6C20.9318 70.04 20.9318 68.92 21.2045 67.8C22.0227 65.56 23.6591 63.32 25.8409 61.36C28.2955 59.4 31.2955 58 33.4773 58C34.2955 58 35.1136 58 35.6591 58.84C36.2045 59.4 35.9318 60.52 35.9318 61.36C35.9318 63.88 34.0227 66.68 31.5682 68.64Z' fill='white'/%3e%3cpath d='M20.3098 30.8104C20.8464 30.2701 21.9197 30 22.993 30C25.1395 30.2701 27.8226 31.3506 29.9691 33.2414C32.3839 35.1323 34.2621 37.5634 34.7988 39.7243C35.0671 40.5347 35.0671 41.345 34.7988 41.8853L34.5304 42.1554C33.9938 42.6956 33.1889 42.9658 32.6523 42.9658C30.2374 43.2359 27.286 41.8853 24.8712 39.7243C22.7246 38.1036 21.1148 35.9426 20.3098 33.7817C20.0415 33.2414 19.7732 31.6207 20.3098 30.8104Z' fill='white'/%3e%3cpath d='M24.4306 71.3333C26.4499 71.0808 28.7216 70.0707 30.9933 68.303C33.265 66.5354 35.0319 64.0101 35.2843 61.9899C35.5367 61.4848 35.5367 60.4747 35.0319 59.7172C34.5271 59.2121 33.5174 58.9596 33.0126 58.9596C30.9933 58.9596 28.2168 59.9697 25.9451 61.9899C23.9258 63.7576 22.1589 65.7778 21.654 67.798C21.4016 68.8081 21.4016 69.8182 21.654 70.3232L21.9065 70.5758C22.4113 71.0808 22.9161 71.3333 23.9258 71.3333C23.9258 71.3333 24.1782 71.3333 24.4306 71.3333ZM20.8968 31.4343C20.1396 32.4444 20.6444 33.7071 20.8968 34.4646C21.654 36.4848 23.1685 38.5051 25.1878 40.0202C27.4595 42.0404 30.4885 43.0505 32.5078 43.0505C33.0126 43.0505 34.0223 42.798 34.2747 42.2929L34.5271 42.0404C34.7795 41.5354 34.7795 40.7778 34.5271 40.0202C34.0223 38 32.2554 35.7273 29.9837 33.9596C27.9644 32.1919 25.4402 31.1818 23.4209 30.9293C22.4113 30.6768 21.4016 30.9293 20.8968 31.4343ZM84 50.6263C84 71.0808 67.3408 88 46.8953 88C35.2843 88 24.9354 82.697 18.1203 74.3636C17.8679 74.1111 17.8679 74.1111 17.6154 73.8586C17.6154 73.6061 17.363 73.6061 17.363 73.3535L17.1106 73.101C17.1106 72.8485 16.8582 72.8485 16.8582 72.596C16.101 70.8283 16.101 68.8081 16.8582 66.2828C17.8679 63.5051 19.8872 60.4747 22.9161 58.202C26.1975 55.6768 29.9837 54.1616 33.265 54.1616C35.5368 54.1616 37.5561 54.9192 39.0705 56.4343L39.3229 56.6869C39.5754 56.6869 39.5754 56.9394 39.5754 57.1919C41.3422 59.4646 44.1188 60.7273 47.1477 60.7273C52.7008 60.7273 57.2442 56.1818 57.2442 50.6263C57.2442 45.0707 52.7008 40.5253 47.1477 40.5253C43.8664 40.5253 40.8374 42.0404 39.0705 44.5657C38.8181 44.8182 38.8181 45.0707 38.5657 45.3232C37.3036 46.8384 35.5367 47.8485 33.0126 47.8485C32.7602 47.8485 32.7602 47.8485 32.5078 47.8485C29.2264 47.8485 25.4402 46.3333 22.4113 43.8081C19.6347 41.5354 17.6154 38.7576 16.6058 35.9798C15.5961 32.9495 15.8486 30.1717 17.363 28.1515L17.6154 27.6465L17.8679 27.3939C24.683 18.8081 35.2843 13 47.1477 13C67.3408 13.2525 84 29.9192 84 50.6263ZM78.9517 50.6263C78.9517 32.9495 64.5642 18.5556 46.8953 18.5556C39.0705 18.5556 31.7506 21.3333 26.1975 26.1313C28.7216 26.6364 31.2457 27.899 33.5174 29.6667C36.294 31.9394 38.3133 34.7172 39.3229 37.495C41.5947 36.2323 44.1188 35.4747 47.1477 35.4747C55.4774 35.4747 62.2925 42.2929 62.2925 50.6263C62.2925 58.9596 55.4774 65.7778 47.1477 65.7778C44.6236 65.7778 42.3519 65.2727 40.3326 64.2626C39.5754 67.0404 37.3036 70.0707 34.2747 72.596C32.003 74.3636 29.7313 75.6263 27.2071 76.1313C32.7602 80.4242 39.5754 82.9495 47.1477 82.9495C64.5642 82.697 78.9517 68.303 78.9517 50.6263Z' fill='black'/%3e%3c/svg%3e";
9001
+ var img$H = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M46.9476 18C64.6143 18 79 32.5294 79 50.3726C79 68.2157 64.6143 83 46.9476 83C39.3762 83 32.5619 80.451 27.0095 76.1176C29.281 75.3529 31.8048 74.3333 34.0762 72.549C37.1048 70 39.1238 67.1961 40.1333 64.1373C42.1524 65.1569 44.4238 65.6667 46.9476 65.6667C55.2762 65.6667 62.0905 58.7843 62.0905 50.3726C62.0905 41.9608 55.2762 35.5 46.9476 35.5C44.1714 35.5 41.2714 36.7255 39 38C37.9905 35.1961 35.2762 31.7941 32.5 29.5C30.2286 27.7157 28.0238 26.5098 25.5 26C31.3048 21.1569 39.1238 18 46.9476 18Z' fill='%239D9D9C'/%3e%3cpath d='M31.5682 68.64C29.1136 70.6 26.6591 71.72 24.4773 72C24.2045 72 23.9318 72 23.6591 72C22.5682 72 21.75 71.72 21.4773 71.16L21.2045 70.6C20.9318 70.04 20.9318 68.92 21.2045 67.8C22.0227 65.56 23.6591 63.32 25.8409 61.36C28.2955 59.4 31.2955 58 33.4773 58C34.2955 58 35.1136 58 35.6591 58.84C36.2045 59.4 35.9318 60.52 35.9318 61.36C35.9318 63.88 34.0227 66.68 31.5682 68.64Z' fill='white'/%3e%3cpath d='M20.3098 30.8104C20.8464 30.2701 21.9197 30 22.993 30C25.1395 30.2701 27.8226 31.3506 29.9691 33.2414C32.3839 35.1323 34.2621 37.5634 34.7988 39.7243C35.0671 40.5347 35.0671 41.345 34.7988 41.8853L34.5304 42.1554C33.9938 42.6956 33.1889 42.9658 32.6523 42.9658C30.2374 43.2359 27.286 41.8853 24.8712 39.7243C22.7246 38.1036 21.1148 35.9426 20.3098 33.7817C20.0415 33.2414 19.7732 31.6207 20.3098 30.8104Z' fill='white'/%3e%3cpath d='M24.4306 71.3333C26.4499 71.0808 28.7216 70.0707 30.9933 68.303C33.265 66.5354 35.0319 64.0101 35.2843 61.9899C35.5367 61.4848 35.5367 60.4747 35.0319 59.7172C34.5271 59.2121 33.5174 58.9596 33.0126 58.9596C30.9933 58.9596 28.2168 59.9697 25.9451 61.9899C23.9258 63.7576 22.1589 65.7778 21.654 67.798C21.4016 68.8081 21.4016 69.8182 21.654 70.3232L21.9065 70.5758C22.4113 71.0808 22.9161 71.3333 23.9258 71.3333C23.9258 71.3333 24.1782 71.3333 24.4306 71.3333ZM20.8968 31.4343C20.1396 32.4444 20.6444 33.7071 20.8968 34.4646C21.654 36.4848 23.1685 38.5051 25.1878 40.0202C27.4595 42.0404 30.4885 43.0505 32.5078 43.0505C33.0126 43.0505 34.0223 42.798 34.2747 42.2929L34.5271 42.0404C34.7795 41.5354 34.7795 40.7778 34.5271 40.0202C34.0223 38 32.2554 35.7273 29.9837 33.9596C27.9644 32.1919 25.4402 31.1818 23.4209 30.9293C22.4113 30.6768 21.4016 30.9293 20.8968 31.4343ZM84 50.6263C84 71.0808 67.3408 88 46.8953 88C35.2843 88 24.9354 82.697 18.1203 74.3636C17.8679 74.1111 17.8679 74.1111 17.6154 73.8586C17.6154 73.6061 17.363 73.6061 17.363 73.3535L17.1106 73.101C17.1106 72.8485 16.8582 72.8485 16.8582 72.596C16.101 70.8283 16.101 68.8081 16.8582 66.2828C17.8679 63.5051 19.8872 60.4747 22.9161 58.202C26.1975 55.6768 29.9837 54.1616 33.265 54.1616C35.5368 54.1616 37.5561 54.9192 39.0705 56.4343L39.3229 56.6869C39.5754 56.6869 39.5754 56.9394 39.5754 57.1919C41.3422 59.4646 44.1188 60.7273 47.1477 60.7273C52.7008 60.7273 57.2442 56.1818 57.2442 50.6263C57.2442 45.0707 52.7008 40.5253 47.1477 40.5253C43.8664 40.5253 40.8374 42.0404 39.0705 44.5657C38.8181 44.8182 38.8181 45.0707 38.5657 45.3232C37.3036 46.8384 35.5367 47.8485 33.0126 47.8485C32.7602 47.8485 32.7602 47.8485 32.5078 47.8485C29.2264 47.8485 25.4402 46.3333 22.4113 43.8081C19.6347 41.5354 17.6154 38.7576 16.6058 35.9798C15.5961 32.9495 15.8486 30.1717 17.363 28.1515L17.6154 27.6465L17.8679 27.3939C24.683 18.8081 35.2843 13 47.1477 13C67.3408 13.2525 84 29.9192 84 50.6263ZM78.9517 50.6263C78.9517 32.9495 64.5642 18.5556 46.8953 18.5556C39.0705 18.5556 31.7506 21.3333 26.1975 26.1313C28.7216 26.6364 31.2457 27.899 33.5174 29.6667C36.294 31.9394 38.3133 34.7172 39.3229 37.495C41.5947 36.2323 44.1188 35.4747 47.1477 35.4747C55.4774 35.4747 62.2925 42.2929 62.2925 50.6263C62.2925 58.9596 55.4774 65.7778 47.1477 65.7778C44.6236 65.7778 42.3519 65.2727 40.3326 64.2626C39.5754 67.0404 37.3036 70.0707 34.2747 72.596C32.003 74.3636 29.7313 75.6263 27.2071 76.1313C32.7602 80.4242 39.5754 82.9495 47.1477 82.9495C64.5642 82.697 78.9517 68.303 78.9517 50.6263Z' fill='black'/%3e%3c/svg%3e";
8985
9002
 
8986
- var img$F = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M54.5901 49.2615V54.9931H48.7076H42.8252V49.2615V43.5299H48.7076H54.5901V49.2615Z' fill='white'/%3e%3cpath d='M48.7074 54.9931V79.8303M42.825 43.5299L34.0766 35.0832L42.825 43.5299ZM42.825 43.5299V49.2615V43.5299ZM42.825 43.5299H48.7074H42.825ZM42.825 54.9931L34.0766 64.1437L42.825 54.9931ZM42.825 54.9931V49.2615V54.9931ZM42.825 54.9931H48.7074H42.825ZM54.5899 54.9931L63.0365 64.1437L54.5899 54.9931ZM54.5899 54.9931V49.2615V54.9931ZM54.5899 54.9931H48.7074H54.5899ZM54.5899 43.5299L63.0365 35.0832L54.5899 43.5299ZM54.5899 43.5299V49.2615V43.5299ZM54.5899 43.5299H48.7074H54.5899ZM54.5899 49.2615H79.1253H54.5899ZM42.825 49.2615H17.9878H42.825ZM48.7074 43.5299V18.9944V43.5299Z' stroke='black' stroke-width='4'/%3e%3c/svg%3e";
9003
+ var img$G = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M54.5901 49.2615V54.9931H48.7076H42.8252V49.2615V43.5299H48.7076H54.5901V49.2615Z' fill='white'/%3e%3cpath d='M48.7074 54.9931V79.8303M42.825 43.5299L34.0766 35.0832L42.825 43.5299ZM42.825 43.5299V49.2615V43.5299ZM42.825 43.5299H48.7074H42.825ZM42.825 54.9931L34.0766 64.1437L42.825 54.9931ZM42.825 54.9931V49.2615V54.9931ZM42.825 54.9931H48.7074H42.825ZM54.5899 54.9931L63.0365 64.1437L54.5899 54.9931ZM54.5899 54.9931V49.2615V54.9931ZM54.5899 54.9931H48.7074H54.5899ZM54.5899 43.5299L63.0365 35.0832L54.5899 43.5299ZM54.5899 43.5299V49.2615V43.5299ZM54.5899 43.5299H48.7074H54.5899ZM54.5899 49.2615H79.1253H54.5899ZM42.825 49.2615H17.9878H42.825ZM48.7074 43.5299V18.9944V43.5299Z' stroke='black' stroke-width='4'/%3e%3c/svg%3e";
8987
9004
 
8988
- var img$E = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M82 23.5C82 25.8684 80.0541 28 77.3784 28C76.6486 28 75.9189 27.7632 75.1892 27.5263C74.2162 27.0526 73.4865 26.1053 73.2432 25.1579C73 24.6842 73 24.2105 73 23.5C73 21.1316 74.9459 19 77.6216 19C80.0541 19 82 21.1316 82 23.5Z' fill='%239D9D9C'/%3e%3cpath d='M73.359 25.2051C73.6026 26.1795 74.5769 27.1538 75.3077 27.641C76.0385 28.1282 76.7692 28.1282 77.5 28.1282C79.9359 28.1282 82.1282 26.1795 82.1282 23.5C82.1282 20.8205 80.1795 18.8718 77.5 18.8718C75.0641 18.8718 72.8718 20.8205 72.8718 23.5C73.1154 23.9872 73.1154 24.7179 73.359 25.2051ZM77.5 14C82.6154 14 87 18.141 87 23.5C87 28.859 82.859 33 77.5 33C76.0385 33 74.3333 32.5128 73.1154 31.7821C72.8718 31.7821 72.6282 31.5385 72.6282 31.2949C71.1667 30.5641 70.1923 29.1026 69.2179 27.641C68.9744 27.3974 68.9744 26.9103 68.7308 26.6667C68.2436 25.6923 68 24.4744 68 23.2564C68.2436 18.3846 72.3846 14 77.5 14Z' fill='black'/%3e%3cpath d='M69.5946 28C70.3243 29.4516 71.5405 30.6613 73 31.629L31.4054 73C30.4324 71.5484 29.2162 70.3387 28 69.6129L69.5946 28Z' fill='black'/%3e%3cpath d='M19 77.6216C19 75.1892 20.8947 73 23.5 73C24.2105 73 24.6842 73.2432 25.3947 73.2432C26.3421 73.7297 27.2895 74.4595 27.5263 75.4324C27.7632 75.9189 28 76.6487 28 77.3784C28 79.8108 26.1053 82 23.5 82C20.8947 82 19 80.0541 19 77.6216Z' fill='%239D9D9C'/%3e%3cpath d='M23.5 81.8846C25.9359 81.8846 28.1282 79.9359 28.1282 77.2564C28.1282 76.5256 27.8846 75.7949 27.641 75.3077C27.1538 74.3333 26.4231 73.6026 25.4487 73.1154C24.9615 72.8718 24.2308 72.8718 23.5 72.8718C21.0641 72.8718 18.8718 74.8205 18.8718 77.5C19.1154 79.9359 21.0641 81.8846 23.5 81.8846ZM32.0256 73.359C32.7564 74.5769 33 76.0385 33 77.5C33 82.6154 28.859 87 23.5 87C18.3846 87 14 82.859 14 77.5C14 72.141 18.141 68 23.5 68C24.7179 68 25.9359 68.2436 27.1538 68.7308C27.3974 68.9744 27.641 68.9744 27.8846 69.2179C29.3462 69.9487 30.5641 71.1667 31.2949 72.6282C31.7821 72.8718 32.0256 73.1154 32.0256 73.359Z' fill='black'/%3e%3c/svg%3e";
8989
- var line$1 = img$E;
9005
+ var img$F = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M82 23.5C82 25.8684 80.0541 28 77.3784 28C76.6486 28 75.9189 27.7632 75.1892 27.5263C74.2162 27.0526 73.4865 26.1053 73.2432 25.1579C73 24.6842 73 24.2105 73 23.5C73 21.1316 74.9459 19 77.6216 19C80.0541 19 82 21.1316 82 23.5Z' fill='%239D9D9C'/%3e%3cpath d='M73.359 25.2051C73.6026 26.1795 74.5769 27.1538 75.3077 27.641C76.0385 28.1282 76.7692 28.1282 77.5 28.1282C79.9359 28.1282 82.1282 26.1795 82.1282 23.5C82.1282 20.8205 80.1795 18.8718 77.5 18.8718C75.0641 18.8718 72.8718 20.8205 72.8718 23.5C73.1154 23.9872 73.1154 24.7179 73.359 25.2051ZM77.5 14C82.6154 14 87 18.141 87 23.5C87 28.859 82.859 33 77.5 33C76.0385 33 74.3333 32.5128 73.1154 31.7821C72.8718 31.7821 72.6282 31.5385 72.6282 31.2949C71.1667 30.5641 70.1923 29.1026 69.2179 27.641C68.9744 27.3974 68.9744 26.9103 68.7308 26.6667C68.2436 25.6923 68 24.4744 68 23.2564C68.2436 18.3846 72.3846 14 77.5 14Z' fill='black'/%3e%3cpath d='M69.5946 28C70.3243 29.4516 71.5405 30.6613 73 31.629L31.4054 73C30.4324 71.5484 29.2162 70.3387 28 69.6129L69.5946 28Z' fill='black'/%3e%3cpath d='M19 77.6216C19 75.1892 20.8947 73 23.5 73C24.2105 73 24.6842 73.2432 25.3947 73.2432C26.3421 73.7297 27.2895 74.4595 27.5263 75.4324C27.7632 75.9189 28 76.6487 28 77.3784C28 79.8108 26.1053 82 23.5 82C20.8947 82 19 80.0541 19 77.6216Z' fill='%239D9D9C'/%3e%3cpath d='M23.5 81.8846C25.9359 81.8846 28.1282 79.9359 28.1282 77.2564C28.1282 76.5256 27.8846 75.7949 27.641 75.3077C27.1538 74.3333 26.4231 73.6026 25.4487 73.1154C24.9615 72.8718 24.2308 72.8718 23.5 72.8718C21.0641 72.8718 18.8718 74.8205 18.8718 77.5C19.1154 79.9359 21.0641 81.8846 23.5 81.8846ZM32.0256 73.359C32.7564 74.5769 33 76.0385 33 77.5C33 82.6154 28.859 87 23.5 87C18.3846 87 14 82.859 14 77.5C14 72.141 18.141 68 23.5 68C24.7179 68 25.9359 68.2436 27.1538 68.7308C27.3974 68.9744 27.641 68.9744 27.8846 69.2179C29.3462 69.9487 30.5641 71.1667 31.2949 72.6282C31.7821 72.8718 32.0256 73.1154 32.0256 73.359Z' fill='black'/%3e%3c/svg%3e";
9006
+ var line$1 = img$F;
8990
9007
 
8991
- var img$D = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3crect x='12.5' y='22.5' width='77' height='53' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3ccircle cx='89' cy='24' r='8.5' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3ccircle cx='13' cy='76' r='8.5' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3c/svg%3e";
8992
- var rectangle2points = img$D;
9008
+ var img$E = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3crect x='12.5' y='22.5' width='77' height='53' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3ccircle cx='89' cy='24' r='8.5' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3ccircle cx='13' cy='76' r='8.5' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3c/svg%3e";
9009
+ var rectangle2points = img$E;
8993
9010
 
8994
- var img$C = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M45 17.5C45 14.6053 47.3158 12 50.5 12C53.3947 12 56 14.3158 56 17.5C56 20.3947 53.6842 23 50.5 23C47.3158 22.7105 45 20.3947 45 17.5Z' fill='%239D9D9C'/%3e%3cpath d='M84 53.72C84 71.92 68.8594 87 50 87V62.82H58.5V45.5H50V27C54.25 27 57.7031 24.64 59.2969 21C75 25 84 38.64 84 53.72Z' fill='%239D9D9C'/%3e%3cpath d='M46.4 49.9565V57.5217H53.8571V49.9565H46.4ZM50 63H41V45H50H59V63H50V63Z' fill='black'/%3e%3cpath d='M37 15H31V20H37V15Z' fill='black'/%3e%3cpath d='M16 15H10V20H16V15Z' fill='black'/%3e%3cpath d='M26 15H21V20H26V15Z' fill='black'/%3e%3cpath d='M89 53.1728C89 74.4228 71.7059 92 50.2193 92V89.3765V86.7531C68.5615 86.7531 83.7594 71.7994 83.7594 53.1728C83.7594 37.9568 73.5401 25.1019 59.6524 21.1667C58.0802 24.8395 54.4118 27.463 50.2193 27.463C44.7166 27.463 40 23.0031 40 17.2315C40 11.7222 44.4545 7 50.2193 7C55.4599 7 59.6524 10.9352 60.1765 15.9198C76.6845 20.3796 89 35.3333 89 53.1728ZM50.2193 12.2469C47.5989 12.2469 45.2406 14.3457 45.2406 17.2315C45.2406 19.8549 47.3369 22.216 50.2193 22.216C52.8396 22.216 55.1979 20.1173 55.1979 17.2315C55.1979 14.3457 53.1016 12.2469 50.2193 12.2469Z' fill='black'/%3e%3c/svg%3e";
8995
- var arcTangential = img$C;
9011
+ var img$D = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M45 17.5C45 14.6053 47.3158 12 50.5 12C53.3947 12 56 14.3158 56 17.5C56 20.3947 53.6842 23 50.5 23C47.3158 22.7105 45 20.3947 45 17.5Z' fill='%239D9D9C'/%3e%3cpath d='M84 53.72C84 71.92 68.8594 87 50 87V62.82H58.5V45.5H50V27C54.25 27 57.7031 24.64 59.2969 21C75 25 84 38.64 84 53.72Z' fill='%239D9D9C'/%3e%3cpath d='M46.4 49.9565V57.5217H53.8571V49.9565H46.4ZM50 63H41V45H50H59V63H50V63Z' fill='black'/%3e%3cpath d='M37 15H31V20H37V15Z' fill='black'/%3e%3cpath d='M16 15H10V20H16V15Z' fill='black'/%3e%3cpath d='M26 15H21V20H26V15Z' fill='black'/%3e%3cpath d='M89 53.1728C89 74.4228 71.7059 92 50.2193 92V89.3765V86.7531C68.5615 86.7531 83.7594 71.7994 83.7594 53.1728C83.7594 37.9568 73.5401 25.1019 59.6524 21.1667C58.0802 24.8395 54.4118 27.463 50.2193 27.463C44.7166 27.463 40 23.0031 40 17.2315C40 11.7222 44.4545 7 50.2193 7C55.4599 7 59.6524 10.9352 60.1765 15.9198C76.6845 20.3796 89 35.3333 89 53.1728ZM50.2193 12.2469C47.5989 12.2469 45.2406 14.3457 45.2406 17.2315C45.2406 19.8549 47.3369 22.216 50.2193 22.216C52.8396 22.216 55.1979 20.1173 55.1979 17.2315C55.1979 14.3457 53.1016 12.2469 50.2193 12.2469Z' fill='black'/%3e%3c/svg%3e";
9012
+ var arcTangential = img$D;
8996
9013
 
8997
- var img$B = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cmask id='path-1-inside-1' fill='white'%3e%3cpath d='M10.6184 60.8555C10.6184 50.4737 14.7426 40.5171 22.0836 33.1761C29.4246 25.8351 39.3812 21.7109 49.7629 21.7109C60.1447 21.7109 70.1013 25.8351 77.4423 33.1761C84.7833 40.5171 88.9074 50.4737 88.9074 60.8554L49.7629 60.8555L10.6184 60.8555Z'/%3e%3c/mask%3e%3cpath d='M10.6184 60.8555C10.6184 50.4737 14.7426 40.5171 22.0836 33.1761C29.4246 25.8351 39.3812 21.7109 49.7629 21.7109C60.1447 21.7109 70.1013 25.8351 77.4423 33.1761C84.7833 40.5171 88.9074 50.4737 88.9074 60.8554L49.7629 60.8555L10.6184 60.8555Z' stroke='black' stroke-width='12' mask='url(%23path-1-inside-1)'/%3e%3cpath d='M82.9238 60.8556C82.9238 52.0608 79.43 43.6262 73.2112 37.4074C66.9924 31.1885 58.5578 27.6948 49.763 27.6948C40.9683 27.6948 32.5337 31.1885 26.3149 37.4074C20.096 43.6262 16.6023 52.0608 16.6023 60.8556L49.763 60.8556H82.9238Z' fill='%23C4C4C4'/%3e%3ccircle cx='13.5545' cy='60.8554' r='7.04754' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3ccircle cx='86.4455' cy='60.8554' r='7.04754' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3crect x='43.5242' y='53.8079' width='12.4774' height='12.4774' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3c/svg%3e";
8998
- var arcCenter = img$B;
9014
+ var img$C = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cmask id='path-1-inside-1' fill='white'%3e%3cpath d='M10.6184 60.8555C10.6184 50.4737 14.7426 40.5171 22.0836 33.1761C29.4246 25.8351 39.3812 21.7109 49.7629 21.7109C60.1447 21.7109 70.1013 25.8351 77.4423 33.1761C84.7833 40.5171 88.9074 50.4737 88.9074 60.8554L49.7629 60.8555L10.6184 60.8555Z'/%3e%3c/mask%3e%3cpath d='M10.6184 60.8555C10.6184 50.4737 14.7426 40.5171 22.0836 33.1761C29.4246 25.8351 39.3812 21.7109 49.7629 21.7109C60.1447 21.7109 70.1013 25.8351 77.4423 33.1761C84.7833 40.5171 88.9074 50.4737 88.9074 60.8554L49.7629 60.8555L10.6184 60.8555Z' stroke='black' stroke-width='12' mask='url(%23path-1-inside-1)'/%3e%3cpath d='M82.9238 60.8556C82.9238 52.0608 79.43 43.6262 73.2112 37.4074C66.9924 31.1885 58.5578 27.6948 49.763 27.6948C40.9683 27.6948 32.5337 31.1885 26.3149 37.4074C20.096 43.6262 16.6023 52.0608 16.6023 60.8556L49.763 60.8556H82.9238Z' fill='%23C4C4C4'/%3e%3ccircle cx='13.5545' cy='60.8554' r='7.04754' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3ccircle cx='86.4455' cy='60.8554' r='7.04754' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3crect x='43.5242' y='53.8079' width='12.4774' height='12.4774' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3c/svg%3e";
9015
+ var arcCenter = img$C;
8999
9016
 
9000
- var img$A = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M84 63.5C84 58.9694 83.1076 54.4832 81.3738 50.2974C79.6401 46.1117 77.0988 42.3084 73.8952 39.1048C70.6916 35.9012 66.8883 33.3599 62.7026 31.6262C58.5168 29.8924 54.0306 29 49.5 29C44.9694 29 40.4832 29.8924 36.2974 31.6262C32.1117 33.3599 28.3084 35.9012 25.1048 39.1048C21.9012 42.3084 19.3599 46.1117 17.6262 50.2974C15.8924 54.4832 15 58.9694 15 63.5L49.5 63.5H84Z' fill='%23C4C4C4'/%3e%3cpath d='M84 63.5C84 58.9694 83.1076 54.4832 81.3738 50.2974C79.6401 46.1117 77.0988 42.3084 73.8952 39.1048C70.6916 35.9012 66.8883 33.3599 62.7026 31.6262C58.5168 29.8924 54.0306 29 49.5 29C44.9694 29 40.4832 29.8924 36.2974 31.6262C32.1117 33.3599 28.3084 35.9012 25.1048 39.1048C21.9012 42.3084 19.3599 46.1117 17.6262 50.2974C15.8924 54.4832 15 58.9694 15 63.5' stroke='black' stroke-width='5'/%3e%3ccircle cx='17.5' cy='63.5' r='8' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3ccircle cx='81.5' cy='63.5' r='8' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3ccircle cx='49.5' cy='31.5' r='8' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3c/svg%3e";
9001
- var arc3points = img$A;
9017
+ var img$B = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M84 63.5C84 58.9694 83.1076 54.4832 81.3738 50.2974C79.6401 46.1117 77.0988 42.3084 73.8952 39.1048C70.6916 35.9012 66.8883 33.3599 62.7026 31.6262C58.5168 29.8924 54.0306 29 49.5 29C44.9694 29 40.4832 29.8924 36.2974 31.6262C32.1117 33.3599 28.3084 35.9012 25.1048 39.1048C21.9012 42.3084 19.3599 46.1117 17.6262 50.2974C15.8924 54.4832 15 58.9694 15 63.5L49.5 63.5H84Z' fill='%23C4C4C4'/%3e%3cpath d='M84 63.5C84 58.9694 83.1076 54.4832 81.3738 50.2974C79.6401 46.1117 77.0988 42.3084 73.8952 39.1048C70.6916 35.9012 66.8883 33.3599 62.7026 31.6262C58.5168 29.8924 54.0306 29 49.5 29C44.9694 29 40.4832 29.8924 36.2974 31.6262C32.1117 33.3599 28.3084 35.9012 25.1048 39.1048C21.9012 42.3084 19.3599 46.1117 17.6262 50.2974C15.8924 54.4832 15 58.9694 15 63.5' stroke='black' stroke-width='5'/%3e%3ccircle cx='17.5' cy='63.5' r='8' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3ccircle cx='81.5' cy='63.5' r='8' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3ccircle cx='49.5' cy='31.5' r='8' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3c/svg%3e";
9018
+ var arc3points = img$B;
9002
9019
 
9003
- var img$z = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M49.7712 85C30.6811 85 15 68.9977 15 49.6349C15 30.2721 30.5448 15 49.9076 15C56.4528 15 63.3478 16.7601 68.5294 20.0327C67.984 21.3963 67.1569 23.2443 67.1569 24.6078C67.1569 30.3349 71.2225 34.6732 77.2222 34.6732C78.5858 34.6732 80.249 34.3036 81.3399 33.7582C83.5216 38.3943 85 44.3169 85 49.7712C85 69.1341 68.8613 85 49.7712 85ZM58.4641 58.4641V41.0784H41.0784V58.4641H58.4641Z' fill='%239D9D9C'/%3e%3cpath d='M55 46H46V55H55V46Z' fill='white'/%3e%3cpath d='M72 25C72 21.8421 74.3158 19 77.5 19C80.3947 19 83 21.5263 83 25C83 28.1579 80.6842 31 77.5 31C74.3158 31 72 28.1579 72 25Z' fill='%239D9D9C'/%3e%3cpath d='M77.4136 30.0678C80.0915 30.0678 82.5017 27.8983 82.5017 24.9153C82.5017 22.2034 80.3593 19.7627 77.4136 19.7627C74.7356 19.7627 72.3254 21.9322 72.3254 24.9153C72.5932 27.6271 74.7356 30.0678 77.4136 30.0678ZM50.6339 84.5763C69.3797 84.5763 84.6441 69.1186 84.6441 49.8644C84.6441 44.4407 83.3051 39.2881 81.1627 34.678C80.0915 34.9492 78.7525 35.4915 77.6814 35.4915C72.0576 35.4915 67.2373 30.8814 67.2373 24.9153C67.2373 23.2881 67.5051 21.9322 68.3085 20.5763C63.2203 17.322 57.061 15.4237 50.6339 15.4237C31.8881 15.4237 16.3559 30.8814 16.3559 50.1356C16.3559 69.3898 31.6203 84.5763 50.6339 84.5763ZM71.522 16.2373C73.1288 15.1525 75.2712 14.339 77.4136 14.339C83.0373 14.339 87.8576 18.9492 87.8576 24.9153C87.8576 27.3559 86.7864 29.7966 85.4475 31.4237C88.3932 37.1186 90 43.3559 90 49.8644C90 72.1017 72.3254 90 50.6339 90C28.9424 90 11 72.1017 11 49.8644C11 27.6271 28.6746 10 50.6339 10C58.4 10 65.6305 12.4407 71.522 16.2373Z' fill='black'/%3e%3cpath d='M46.2174 53.7826H53.7826V46.2174H46.2174V53.7826ZM41 41H59V59H41V41V41Z' fill='black'/%3e%3c/svg%3e";
9004
- var circleCenterRadius = img$z;
9020
+ var img$A = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M49.7712 85C30.6811 85 15 68.9977 15 49.6349C15 30.2721 30.5448 15 49.9076 15C56.4528 15 63.3478 16.7601 68.5294 20.0327C67.984 21.3963 67.1569 23.2443 67.1569 24.6078C67.1569 30.3349 71.2225 34.6732 77.2222 34.6732C78.5858 34.6732 80.249 34.3036 81.3399 33.7582C83.5216 38.3943 85 44.3169 85 49.7712C85 69.1341 68.8613 85 49.7712 85ZM58.4641 58.4641V41.0784H41.0784V58.4641H58.4641Z' fill='%239D9D9C'/%3e%3cpath d='M55 46H46V55H55V46Z' fill='white'/%3e%3cpath d='M72 25C72 21.8421 74.3158 19 77.5 19C80.3947 19 83 21.5263 83 25C83 28.1579 80.6842 31 77.5 31C74.3158 31 72 28.1579 72 25Z' fill='%239D9D9C'/%3e%3cpath d='M77.4136 30.0678C80.0915 30.0678 82.5017 27.8983 82.5017 24.9153C82.5017 22.2034 80.3593 19.7627 77.4136 19.7627C74.7356 19.7627 72.3254 21.9322 72.3254 24.9153C72.5932 27.6271 74.7356 30.0678 77.4136 30.0678ZM50.6339 84.5763C69.3797 84.5763 84.6441 69.1186 84.6441 49.8644C84.6441 44.4407 83.3051 39.2881 81.1627 34.678C80.0915 34.9492 78.7525 35.4915 77.6814 35.4915C72.0576 35.4915 67.2373 30.8814 67.2373 24.9153C67.2373 23.2881 67.5051 21.9322 68.3085 20.5763C63.2203 17.322 57.061 15.4237 50.6339 15.4237C31.8881 15.4237 16.3559 30.8814 16.3559 50.1356C16.3559 69.3898 31.6203 84.5763 50.6339 84.5763ZM71.522 16.2373C73.1288 15.1525 75.2712 14.339 77.4136 14.339C83.0373 14.339 87.8576 18.9492 87.8576 24.9153C87.8576 27.3559 86.7864 29.7966 85.4475 31.4237C88.3932 37.1186 90 43.3559 90 49.8644C90 72.1017 72.3254 90 50.6339 90C28.9424 90 11 72.1017 11 49.8644C11 27.6271 28.6746 10 50.6339 10C58.4 10 65.6305 12.4407 71.522 16.2373Z' fill='black'/%3e%3cpath d='M46.2174 53.7826H53.7826V46.2174H46.2174V53.7826ZM41 41H59V59H41V41V41Z' fill='black'/%3e%3c/svg%3e";
9021
+ var circleCenterRadius = img$A;
9005
9022
 
9006
- var img$y = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M61.8771 19.8479C71.6505 19.8479 79.795 27.6795 79.795 37.6715V61.9765V71.4284V75.7493V79.5301H75.9942H71.6505H62.1486H37.7152H28.2133H23.8696H20.0688V75.7493V71.4284V61.9765V37.6715V28.2196V23.8987V20.118H23.8696H28.2133H37.7152H61.8771V19.8479Z' fill='%239D9D9C'/%3e%3cpath d='M84.2997 84.2994H62.0418H38.1941H16.2012V62.0415V38.1937V16.2008H38.4591H62.3068C65.7515 16.2008 69.1962 16.9957 72.1109 18.5856C73.4358 19.3805 74.7606 20.1754 75.8205 20.9704C77.1454 22.0303 78.4703 23.3551 79.5302 24.68C80.3251 25.7399 81.385 27.0648 81.915 28.3897C83.5048 31.3044 84.2997 34.7491 84.2997 38.4587V62.3065V84.2994V84.2994ZM79.5302 38.4587C79.5302 28.9196 71.5809 20.9704 62.0418 20.9704H38.1941H28.92H24.6804H20.9707V24.68V28.9196V38.1937V62.0415V71.3156V75.5552V79.2649H24.6804H28.92H38.1941H62.0418H71.316H75.5556H79.2652V75.5552V71.3156V62.0415V38.4587H79.5302Z' fill='black'/%3e%3c/svg%3e";
9007
- var filletSketch = img$y;
9023
+ var img$z = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M61.8771 19.8479C71.6505 19.8479 79.795 27.6795 79.795 37.6715V61.9765V71.4284V75.7493V79.5301H75.9942H71.6505H62.1486H37.7152H28.2133H23.8696H20.0688V75.7493V71.4284V61.9765V37.6715V28.2196V23.8987V20.118H23.8696H28.2133H37.7152H61.8771V19.8479Z' fill='%239D9D9C'/%3e%3cpath d='M84.2997 84.2994H62.0418H38.1941H16.2012V62.0415V38.1937V16.2008H38.4591H62.3068C65.7515 16.2008 69.1962 16.9957 72.1109 18.5856C73.4358 19.3805 74.7606 20.1754 75.8205 20.9704C77.1454 22.0303 78.4703 23.3551 79.5302 24.68C80.3251 25.7399 81.385 27.0648 81.915 28.3897C83.5048 31.3044 84.2997 34.7491 84.2997 38.4587V62.3065V84.2994V84.2994ZM79.5302 38.4587C79.5302 28.9196 71.5809 20.9704 62.0418 20.9704H38.1941H28.92H24.6804H20.9707V24.68V28.9196V38.1937V62.0415V71.3156V75.5552V79.2649H24.6804H28.92H38.1941H62.0418H71.316H75.5556H79.2652V75.5552V71.3156V62.0415V38.4587H79.5302Z' fill='black'/%3e%3c/svg%3e";
9024
+ var filletSketch = img$z;
9008
9025
 
9009
- var img$x = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M43.5 70L18 81L21 61L27.5 56.5L43.5 70Z' fill='white'/%3e%3cpath d='M90 84V91H10V87.5L20.8949 84H90Z' fill='black'/%3e%3cpath d='M67 18L79 30.1141L43.5 66L31 53.5L67 18Z' fill='%239D9D9C'/%3e%3cpath d='M78.3496 29.9585L67.2276 18.9046L32.0081 53.6017L43.1301 64.6556L78.3496 29.9585ZM23.0488 62.8133L19.0325 78.166L34.1707 73.8672L39.1138 68.9544L27.6829 57.9004L23.0488 62.8133ZM11 84L17.1789 59.7427L25.2114 51.7593L67.2276 10L87 29.6515L37.2602 79.3942L20.8862 84H11Z' fill='black'/%3e%3cpath d='M21 84L10 88L10.6286 84H21Z' fill='black'/%3e%3c/svg%3e";
9026
+ var img$y = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M43.5 70L18 81L21 61L27.5 56.5L43.5 70Z' fill='white'/%3e%3cpath d='M90 84V91H10V87.5L20.8949 84H90Z' fill='black'/%3e%3cpath d='M67 18L79 30.1141L43.5 66L31 53.5L67 18Z' fill='%239D9D9C'/%3e%3cpath d='M78.3496 29.9585L67.2276 18.9046L32.0081 53.6017L43.1301 64.6556L78.3496 29.9585ZM23.0488 62.8133L19.0325 78.166L34.1707 73.8672L39.1138 68.9544L27.6829 57.9004L23.0488 62.8133ZM11 84L17.1789 59.7427L25.2114 51.7593L67.2276 10L87 29.6515L37.2602 79.3942L20.8862 84H11Z' fill='black'/%3e%3cpath d='M21 84L10 88L10.6286 84H21Z' fill='black'/%3e%3c/svg%3e";
9010
9027
 
9011
- var img$w = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3crect x='12.5' y='10.5' width='19' height='19' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3crect x='12.5' y='70.5' width='19' height='19' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3crect x='69.5' y='70.5' width='19' height='19' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M21.5 62V47.5' stroke='black' stroke-width='3'/%3e%3cpath d='M26 47H17L21.5 39L26 47Z' fill='black' stroke='black'/%3e%3cpath d='M39 80.5L53.5 80.5' stroke='black' stroke-width='3'/%3e%3cpath d='M54 85L54 76L62 80.5L54 85Z' fill='black' stroke='black'/%3e%3c/svg%3e";
9012
- var copyRect = img$w;
9028
+ var img$x = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3crect x='12.5' y='10.5' width='19' height='19' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3crect x='12.5' y='70.5' width='19' height='19' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3crect x='69.5' y='70.5' width='19' height='19' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M21.5 62V47.5' stroke='black' stroke-width='3'/%3e%3cpath d='M26 47H17L21.5 39L26 47Z' fill='black' stroke='black'/%3e%3cpath d='M39 80.5L53.5 80.5' stroke='black' stroke-width='3'/%3e%3cpath d='M54 85L54 76L62 80.5L54 85Z' fill='black' stroke='black'/%3e%3c/svg%3e";
9029
+ var copyRect = img$x;
9013
9030
 
9014
- var img$v = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3crect x='56.5' y='40.5' width='19' height='19' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3crect x='24.5' y='70.5' width='19' height='19' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3crect x='24.5' y='10.5' width='19' height='19' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M64 23L64 26L59 23L64 20L64 23Z' fill='black'/%3e%3cpath d='M70 32C70 32 69.9661 27.6452 68.5 25.5C67.0339 23.3548 64 23 64 23M64 26L64 20L59 23L64 26Z' stroke='black' stroke-width='2'/%3e%3cpath d='M67.0001 73.9992L64.0001 73.9984L67 69L70.0001 74L67.0001 73.9992Z' fill='black'/%3e%3cpath d='M58.0001 80C58.0001 80 62.1802 80 64.5 78.5C66.8198 77 67.0001 73.9992 67.0001 73.9992M64.0001 73.9984L70.0001 74L67 69L64.0001 73.9984Z' stroke='black' stroke-width='2'/%3e%3ccircle cx='34' cy='50' r='6.5' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3c/svg%3e";
9015
- var copyCirc = img$v;
9031
+ var img$w = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3crect x='56.5' y='40.5' width='19' height='19' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3crect x='24.5' y='70.5' width='19' height='19' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3crect x='24.5' y='10.5' width='19' height='19' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M64 23L64 26L59 23L64 20L64 23Z' fill='black'/%3e%3cpath d='M70 32C70 32 69.9661 27.6452 68.5 25.5C67.0339 23.3548 64 23 64 23M64 26L64 20L59 23L64 26Z' stroke='black' stroke-width='2'/%3e%3cpath d='M67.0001 73.9992L64.0001 73.9984L67 69L70.0001 74L67.0001 73.9992Z' fill='black'/%3e%3cpath d='M58.0001 80C58.0001 80 62.1802 80 64.5 78.5C66.8198 77 67.0001 73.9992 67.0001 73.9992M64.0001 73.9984L70.0001 74L67 69L64.0001 73.9984Z' stroke='black' stroke-width='2'/%3e%3ccircle cx='34' cy='50' r='6.5' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3c/svg%3e";
9032
+ var copyCirc = img$w;
9016
9033
 
9017
- var img$u = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cline x1='49.5' y1='16' x2='49.5' y2='85' stroke='black' stroke-width='5'/%3e%3crect x='11.5' y='37.5' width='25' height='25' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3crect x='63.5' y='37.5' width='25' height='25' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3c/svg%3e";
9034
+ var img$v = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cline x1='49.5' y1='16' x2='49.5' y2='85' stroke='black' stroke-width='5'/%3e%3crect x='11.5' y='37.5' width='25' height='25' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3crect x='63.5' y='37.5' width='25' height='25' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3c/svg%3e";
9018
9035
 
9019
- var img$t = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3crect x='18.5' y='18.5' width='64' height='64' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M48.6562 36.4062V53.2637C48.6562 56.0645 47.7773 58.2793 46.0195 59.9082C44.2734 61.5371 41.8828 62.3516 38.8477 62.3516C35.8594 62.3516 33.4863 61.5605 31.7285 59.9785C29.9707 58.3965 29.0742 56.2227 29.0391 53.457V36.4062H34.3125V53.2988C34.3125 54.9746 34.7109 56.1992 35.5078 56.9727C36.3164 57.7344 37.4297 58.1152 38.8477 58.1152C41.8125 58.1152 43.3184 56.5566 43.3652 53.4395V36.4062H48.6562ZM66.252 55.2852C66.252 54.2891 65.9004 53.5273 65.1973 53C64.4941 52.4609 63.2285 51.8984 61.4004 51.3125C59.5723 50.7148 58.125 50.1289 57.0586 49.5547C54.1523 47.9844 52.6992 45.8691 52.6992 43.209C52.6992 41.8262 53.0859 40.5957 53.8594 39.5176C54.6445 38.4277 55.7637 37.5781 57.2168 36.9688C58.6816 36.3594 60.3223 36.0547 62.1387 36.0547C63.9668 36.0547 65.5957 36.3887 67.0254 37.0566C68.4551 37.7129 69.5625 38.6445 70.3477 39.8516C71.1445 41.0586 71.543 42.4297 71.543 43.9648H66.2695C66.2695 42.793 65.9004 41.8848 65.1621 41.2402C64.4238 40.584 63.3867 40.2559 62.0508 40.2559C60.7617 40.2559 59.7598 40.5312 59.0449 41.082C58.3301 41.6211 57.9727 42.3359 57.9727 43.2266C57.9727 44.0586 58.3887 44.7559 59.2207 45.3184C60.0645 45.8809 61.3008 46.4082 62.9297 46.9004C65.9297 47.8027 68.1152 48.9219 69.4863 50.2578C70.8574 51.5938 71.543 53.2578 71.543 55.25C71.543 57.4648 70.7051 59.2051 69.0293 60.4707C67.3535 61.7246 65.0977 62.3516 62.2617 62.3516C60.293 62.3516 58.5 61.9941 56.8828 61.2793C55.2656 60.5527 54.0293 59.5625 53.1738 58.3086C52.3301 57.0547 51.9082 55.6016 51.9082 53.9492H57.1992C57.1992 56.7734 58.8867 58.1855 62.2617 58.1855C63.5156 58.1855 64.4941 57.9336 65.1973 57.4297C65.9004 56.9141 66.252 56.1992 66.252 55.2852Z' fill='black'/%3e%3c/svg%3e";
9020
- var useReference = img$t;
9036
+ var img$u = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3crect x='18.5' y='18.5' width='64' height='64' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M48.6562 36.4062V53.2637C48.6562 56.0645 47.7773 58.2793 46.0195 59.9082C44.2734 61.5371 41.8828 62.3516 38.8477 62.3516C35.8594 62.3516 33.4863 61.5605 31.7285 59.9785C29.9707 58.3965 29.0742 56.2227 29.0391 53.457V36.4062H34.3125V53.2988C34.3125 54.9746 34.7109 56.1992 35.5078 56.9727C36.3164 57.7344 37.4297 58.1152 38.8477 58.1152C41.8125 58.1152 43.3184 56.5566 43.3652 53.4395V36.4062H48.6562ZM66.252 55.2852C66.252 54.2891 65.9004 53.5273 65.1973 53C64.4941 52.4609 63.2285 51.8984 61.4004 51.3125C59.5723 50.7148 58.125 50.1289 57.0586 49.5547C54.1523 47.9844 52.6992 45.8691 52.6992 43.209C52.6992 41.8262 53.0859 40.5957 53.8594 39.5176C54.6445 38.4277 55.7637 37.5781 57.2168 36.9688C58.6816 36.3594 60.3223 36.0547 62.1387 36.0547C63.9668 36.0547 65.5957 36.3887 67.0254 37.0566C68.4551 37.7129 69.5625 38.6445 70.3477 39.8516C71.1445 41.0586 71.543 42.4297 71.543 43.9648H66.2695C66.2695 42.793 65.9004 41.8848 65.1621 41.2402C64.4238 40.584 63.3867 40.2559 62.0508 40.2559C60.7617 40.2559 59.7598 40.5312 59.0449 41.082C58.3301 41.6211 57.9727 42.3359 57.9727 43.2266C57.9727 44.0586 58.3887 44.7559 59.2207 45.3184C60.0645 45.8809 61.3008 46.4082 62.9297 46.9004C65.9297 47.8027 68.1152 48.9219 69.4863 50.2578C70.8574 51.5938 71.543 53.2578 71.543 55.25C71.543 57.4648 70.7051 59.2051 69.0293 60.4707C67.3535 61.7246 65.0977 62.3516 62.2617 62.3516C60.293 62.3516 58.5 61.9941 56.8828 61.2793C55.2656 60.5527 54.0293 59.5625 53.1738 58.3086C52.3301 57.0547 51.9082 55.6016 51.9082 53.9492H57.1992C57.1992 56.7734 58.8867 58.1855 62.2617 58.1855C63.5156 58.1855 64.4941 57.9336 65.1973 57.4297C65.9004 56.9141 66.252 56.1992 66.252 55.2852Z' fill='black'/%3e%3c/svg%3e";
9037
+ var useReference = img$u;
9021
9038
 
9022
9039
  const RootContext = /*#__PURE__*/React.createContext({
9023
9040
  drawingId: -1,
@@ -9105,7 +9122,7 @@ const SketchGroup = ({
9105
9122
 
9106
9123
  function useSketchState(drawingId, pluginId, sel, equalityFn) {
9107
9124
  return react.usePlugin(drawingId, pluginId, plugin => {
9108
- if (plugin && plugin.name === description$f.name) {
9125
+ if (plugin && plugin.name === description$g.name) {
9109
9126
  return sel(plugin.state);
9110
9127
  } else {
9111
9128
  window.console.error('Wrong arguments are passed into useSketchState.');
@@ -9629,10 +9646,10 @@ const resources = {
9629
9646
  [classcad.CCClasses.CC2DAngleOXConstraint]: angleox,
9630
9647
  [classcad.CCClasses.CCRigidSet]: rigidSet,
9631
9648
  [classcad.CCClasses.CCUse]: useReference,
9632
- [classcad.CCClasses.CCExtrusion]: img$H,
9633
- [classcad.CCClasses.CCRevolve]: img$G,
9634
- [classcad.CCClasses.CCRevolve]: img$G,
9635
- [HandlersList.DRAWPOINT]: img$F,
9649
+ [classcad.CCClasses.CCExtrusion]: img$I,
9650
+ [classcad.CCClasses.CCRevolve]: img$H,
9651
+ [classcad.CCClasses.CCRevolve]: img$H,
9652
+ [HandlersList.DRAWPOINT]: img$G,
9636
9653
  [HandlersList.DRAWLINE]: line$1,
9637
9654
  [HandlersList.DRAWRECTANGLE]: rectangle2points,
9638
9655
  [HandlersList.DRAWARCTANGENT]: arcTangential,
@@ -9640,11 +9657,11 @@ const resources = {
9640
9657
  [HandlersList.DRAWARCMIDDLE]: arc3points,
9641
9658
  [HandlersList.DRAWCIRCLE]: circleCenterRadius,
9642
9659
  [HandlersList.FILLET]: filletSketch,
9643
- [HandlersList.TRIM]: img$x,
9660
+ [HandlersList.TRIM]: img$y,
9644
9661
  [HandlersList.USEREF]: useReference,
9645
9662
  [Patterns.RECTANGULAR]: copyRect,
9646
9663
  [Patterns.CIRCULAR]: copyCirc,
9647
- [Patterns.MIRROR]: img$u
9664
+ [Patterns.MIRROR]: img$v
9648
9665
  };
9649
9666
  const textures = {};
9650
9667
  const textureLoader = new THREE__namespace.TextureLoader();
@@ -12306,17 +12323,6 @@ function useInteractionReset(drawingId, pluginId) {
12306
12323
  }
12307
12324
  }, [drawingId, pluginId, children]);
12308
12325
  }
12309
- const getSketchBounds = boundsMember => {
12310
- const [min, max] = boundsMember.members.map(memb => convertToVector(memb));
12311
- const box = new THREE__namespace.Box3(min, max);
12312
- const sphere = new THREE__namespace.Sphere();
12313
- box.getBoundingSphere(sphere);
12314
- return {
12315
- center: sphere.center,
12316
- radius: sphere.radius,
12317
- box
12318
- };
12319
- };
12320
12326
 
12321
12327
  // Changes cursor if it's set in plugin state
12322
12328
  function useChangeCursor() {
@@ -12327,32 +12333,6 @@ function useChangeCursor() {
12327
12333
  const cursor = useSketchState(drawingId, pluginId, s => s.cursor);
12328
12334
  drei.useCursor(cursor !== null, cursor || '');
12329
12335
  }
12330
-
12331
- // This component is used only to contain the sketcher's bounding box
12332
- const SketchBounds = ({
12333
- drawingId,
12334
- pluginId
12335
- }) => {
12336
- const sketchId = react.usePlugin(drawingId, pluginId, plugin => plugin.objectId);
12337
- const boundsMember = react.useDrawing(drawingId, d => {
12338
- var _d$structure$tree$ske2, _d$structure$tree$ske3;
12339
- return (_d$structure$tree$ske2 = d.structure.tree[sketchId]) == null ? void 0 : (_d$structure$tree$ske3 = _d$structure$tree$ske2.members) == null ? void 0 : _d$structure$tree$ske3.boundingBox;
12340
- });
12341
- const ref = React.useRef(null);
12342
- React.useEffect(() => {
12343
- var _ref$current, _ref$current$bounding;
12344
- if (ref.current && ref.current.boundingBox === null) {
12345
- ref.current.computeBoundingBox();
12346
- }
12347
- const {
12348
- box
12349
- } = getSketchBounds(boundsMember);
12350
- (_ref$current = ref.current) == null ? void 0 : (_ref$current$bounding = _ref$current.boundingBox) == null ? void 0 : _ref$current$bounding.copy(box);
12351
- }, [boundsMember]);
12352
- return /*#__PURE__*/React.createElement("mesh", null, /*#__PURE__*/React.createElement("bufferGeometry", {
12353
- ref: ref
12354
- }));
12355
- };
12356
12336
  const DrawingMode = ({
12357
12337
  drawingId,
12358
12338
  pluginId
@@ -12363,49 +12343,7 @@ const DrawingMode = ({
12363
12343
  set
12364
12344
  } = core.getPlugin(drawingId, pluginId);
12365
12345
  useChangeCursor();
12366
- const camera = fiber.useThree(state => state.camera);
12367
12346
  const camControls = fiber.useThree(state => state.controls);
12368
- const boundsControls = drei.useBounds();
12369
- const boundsMember = react.useDrawing(drawingId, d => {
12370
- var _d$structure$tree$ske4, _d$structure$tree$ske5;
12371
- return (_d$structure$tree$ske4 = d.structure.tree[sketchId]) == null ? void 0 : (_d$structure$tree$ske5 = _d$structure$tree$ske4.members) == null ? void 0 : _d$structure$tree$ske5.boundingBox;
12372
- });
12373
-
12374
- // Set camera in front of sketch and adjast zoom to make visible all sketch objects after sketch enabling
12375
- React.useEffect(() => {
12376
- var _getDrawing$structure, _getDrawing$structure2, _getDrawing$structure3, _plane$members;
12377
- const planeRef = (_getDrawing$structure = core.getDrawing(drawingId).structure.tree[sketchId]) == null ? void 0 : (_getDrawing$structure2 = _getDrawing$structure.members) == null ? void 0 : (_getDrawing$structure3 = _getDrawing$structure2.planeReference) == null ? void 0 : _getDrawing$structure3.value;
12378
- const bounds = getSketchBounds(boundsMember);
12379
- const plane = core.getDrawing(drawingId).structure.tree[planeRef];
12380
- const normal = convertToVector(plane == null ? void 0 : (_plane$members = plane.members) == null ? void 0 : _plane$members.Normal);
12381
- const csys = core.getDrawing(drawingId).structure.tree[sketchId].coordinateSystem;
12382
- const transformMatrix = csys ? core.MathUtils.convertToMatrix3(csys) : new THREE__namespace.Matrix3();
12383
- const upVector = new THREE__namespace.Vector3(0, 1, 0).applyMatrix3(transformMatrix).normalize();
12384
-
12385
- // If box.min === box.max add (1,1,0) to box.max to make box not empty
12386
- const box = bounds.box;
12387
- if (box.min.distanceTo(box.max) < tolerance$4) {
12388
- box.set(box.min, box.min.clone().add(new THREE__namespace.Vector3(1000, 1000, 1000)));
12389
- }
12390
-
12391
- // Convert local box coordinates to global
12392
- const matrix4 = csys ? core.MathUtils.convertToMatrix4(csys) : new THREE__namespace.Matrix4();
12393
- const globCenter = bounds.center.clone().applyMatrix4(matrix4);
12394
- const globBox = box.clone().applyMatrix4(matrix4);
12395
- camera.position.copy(globCenter.clone().addScaledVector(normal, (bounds.radius || 1) * 100 * 2));
12396
- camera.up.copy(upVector);
12397
- camControls.target.copy(globCenter);
12398
- camControls == null ? void 0 : camControls.update();
12399
-
12400
- // Set sketch bounds to camera bounds
12401
- boundsControls == null ? void 0 : boundsControls.refresh(globBox).fit();
12402
-
12403
- // Reset camera bounds when sketch is disabled
12404
- return () => {
12405
- boundsControls == null ? void 0 : boundsControls.refresh().fit();
12406
- };
12407
- // eslint-disable-next-line react-hooks/exhaustive-deps
12408
- }, []);
12409
12347
 
12410
12348
  // Add handlers to pluginState when sketcher is enabled
12411
12349
  React.useEffect(() => {
@@ -12505,10 +12443,7 @@ const DrawingMode = ({
12505
12443
  // SketcherDimensionSet has it's own cSys that will be applied in Plugin.tsx, so apply inverse Sketch cSys.
12506
12444
  // TODO: remove it when parent plugin matrix won't be applied for embedded one.
12507
12445
  const inverseM = getGlobalToLocalMatrix(drawingId, sketchId);
12508
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SketchBounds, {
12509
- drawingId: drawingId,
12510
- pluginId: pluginId
12511
- }), /*#__PURE__*/React.createElement(TmpGraphics, null), /*#__PURE__*/React.createElement(Sketch, {
12446
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TmpGraphics, null), /*#__PURE__*/React.createElement(Sketch, {
12512
12447
  key: sketchId,
12513
12448
  objId: sketchId
12514
12449
  }), /*#__PURE__*/React.createElement(MousePosition, null), /*#__PURE__*/React.createElement(RubberBandRectangle, null), /*#__PURE__*/React.createElement("group", {
@@ -12530,16 +12465,13 @@ const ViewOnlyMode = ({
12530
12465
  return (_drawing$structure$tr = drawing.structure.tree[sketchId]) == null ? void 0 : _drawing$structure$tr.coordinateSystem;
12531
12466
  });
12532
12467
  const transformMatrix = React.useMemo(() => csys ? core.MathUtils.convertToMatrix4(csys) : new THREE__namespace.Matrix4(), [csys]);
12533
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SketchBounds, {
12534
- drawingId: drawingId,
12535
- pluginId: pluginId
12536
- }), /*#__PURE__*/React.createElement(HUD, null, /*#__PURE__*/React.createElement("group", {
12468
+ return /*#__PURE__*/React.createElement(HUD, null, /*#__PURE__*/React.createElement("group", {
12537
12469
  matrix: transformMatrix,
12538
12470
  matrixAutoUpdate: false
12539
12471
  }, /*#__PURE__*/React.createElement(Sketch, {
12540
12472
  key: sketchId,
12541
12473
  objId: sketchId
12542
- }))));
12474
+ })));
12543
12475
  };
12544
12476
  const ViewImpl$d = ({
12545
12477
  drawingId,
@@ -12767,12 +12699,12 @@ const useCurrentProduct = drawingId => {
12767
12699
  return currProd;
12768
12700
  };
12769
12701
 
12770
- let EditMode;
12702
+ exports.EditMode = void 0;
12771
12703
  (function (EditMode) {
12772
12704
  EditMode[EditMode["None"] = 0] = "None";
12773
12705
  EditMode[EditMode["Part"] = 1] = "Part";
12774
12706
  EditMode[EditMode["Assembly"] = 2] = "Assembly";
12775
- })(EditMode || (EditMode = {}));
12707
+ })(exports.EditMode || (exports.EditMode = {}));
12776
12708
  const useEditMode = drawingId => {
12777
12709
  const rootId = useDrawingCCId(drawingId, d => d.structure.root);
12778
12710
  const currProdId = useDrawingCCId(drawingId, d => d.structure.currentProduct);
@@ -12788,7 +12720,7 @@ const useEditMode = drawingId => {
12788
12720
  const isPartRoot = classcad.ccUtils.base.isA(rootClass, classcad.CCClasses.CCPart);
12789
12721
  const isPartEdit = classcad.ccUtils.base.isA(currProdClass, classcad.CCClasses.CCPart);
12790
12722
  const isAsmEdit = classcad.ccUtils.base.isA(currProdClass, classcad.CCClasses.CCAssembly);
12791
- const mode = isPartEdit || isPartRoot ? EditMode.Part : isAsmEdit ? EditMode.Assembly : EditMode.None;
12723
+ const mode = isPartEdit || isPartRoot ? exports.EditMode.Part : isAsmEdit ? exports.EditMode.Assembly : exports.EditMode.None;
12792
12724
  return mode;
12793
12725
  }, [rootClass, currProdClass]);
12794
12726
  };
@@ -12819,6 +12751,18 @@ const useIsLoading = drawingId => {
12819
12751
  return loads.length > 0;
12820
12752
  };
12821
12753
 
12754
+ const useIsSketchActive = drawingId => {
12755
+ const activeId = react.useDrawing(drawingId, d => {
12756
+ var _d$plugin$refs;
12757
+ return (_d$plugin$refs = d.plugin.refs[d.plugin.active.feature || -1]) == null ? void 0 : _d$plugin$refs.objectId;
12758
+ });
12759
+ const objClass = useDrawingStr(drawingId, d => {
12760
+ var _d$structure$tree;
12761
+ return (_d$structure$tree = d.structure.tree[activeId || -1]) == null ? void 0 : _d$structure$tree.class;
12762
+ });
12763
+ return classcad.ccUtils.base.isA(objClass, classcad.CCClasses.CCSketch);
12764
+ };
12765
+
12822
12766
  const useOperationSequence = (drawingId, partId) => {
12823
12767
  const children = react.useDrawing(drawingId, d => {
12824
12768
  var _d$structure$tree$par;
@@ -13570,9 +13514,9 @@ const useRetainVisibility = (drawingId, pluginId) => {
13570
13514
  }, [drawingId, pluginId]);
13571
13515
  };
13572
13516
 
13573
- var img$s = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAB9SURBVEhL7ZFBCsAgDAT7HP//l77HCrsHCbaJiUKFDHtJgjsHr7qZFKikQOV/gruUFg4GnAK7JiSwOKIChLcRFIgHvqBKsFLQgraexQIEnWCLAEHzmQJ0gqM+GVUCCuyIUoS3EVEBt++EBFx94hRwMDAtmCUFKilQ2Syo9QGcSz3H8BHMoQAAAABJRU5ErkJggg==";
13517
+ var img$t = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAB9SURBVEhL7ZFBCsAgDAT7HP//l77HCrsHCbaJiUKFDHtJgjsHr7qZFKikQOV/gruUFg4GnAK7JiSwOKIChLcRFIgHvqBKsFLQgraexQIEnWCLAEHzmQJ0gqM+GVUCCuyIUoS3EVEBt++EBFx94hRwMDAtmCUFKilQ2Syo9QGcSz3H8BHMoQAAAABJRU5ErkJggg==";
13574
13518
 
13575
- var img$r = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABzSURBVEhL7Y1BCsAwCAT7nLy837SFLCFsY0woQQ8OexF155LDBBOUu7zBsEYkQW3fdYQR9O01WFgsCai6BespAQRUSsGRjreA6obBqYKrgIomwcMIVUAVZvD2wU/QQ10tWE9JgUkKTFJgkgKTGII/HBaIPHzTFiPbxQ1UAAAAAElFTkSuQmCC";
13519
+ var img$s = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABzSURBVEhL7Y1BCsAwCAT7nLy837SFLCFsY0woQQ8OexF155LDBBOUu7zBsEYkQW3fdYQR9O01WFgsCai6BespAQRUSsGRjreA6obBqYKrgIomwcMIVUAVZvD2wU/QQ10tWE9JgUkKTFJgkgKTGII/HBaIPHzTFiPbxQ1UAAAAAElFTkSuQmCC";
13576
13520
 
13577
13521
  const noSameSketchFilter = (drawingId, sketchId, objectId) => {
13578
13522
  const parentSketchId = getAncestorIdByClass(drawingId, objectId, classcad.CCClasses.CCSketch);
@@ -13640,7 +13584,7 @@ const PositionSelection = ({
13640
13584
  customUnSelect: noDeselect ? () => void {} : undefined
13641
13585
  }), children);
13642
13586
  };
13643
- var Members$b;
13587
+ var Members$c;
13644
13588
  (function (Members) {
13645
13589
  Members["PlaneReference"] = "planeReference";
13646
13590
  Members["AxisReference"] = "axisReference";
@@ -13648,19 +13592,19 @@ var Members$b;
13648
13592
  Members["AxisIsX"] = "axisIsX";
13649
13593
  Members["PlaneInverted"] = "planeInverted";
13650
13594
  Members["AxisInverted"] = "axisInverted";
13651
- })(Members$b || (Members$b = {}));
13595
+ })(Members$c || (Members$c = {}));
13652
13596
  const Position = () => {
13653
13597
  const {
13654
13598
  drawingId,
13655
13599
  pluginId
13656
13600
  } = React.useContext(RootContext);
13657
13601
  const sketchId = react.usePlugin(drawingId, pluginId, plugin => plugin.objectId);
13658
- const planeId = usePositionParam(drawingId, sketchId, Members$b.PlaneReference);
13659
- const axisId = usePositionParam(drawingId, sketchId, Members$b.AxisReference);
13660
- const originId = usePositionParam(drawingId, sketchId, Members$b.OriginReference);
13661
- const isXAxis = useBoolParam(drawingId, sketchId, Members$b.AxisIsX);
13662
- const planeInverted = useBoolParam(drawingId, sketchId, Members$b.PlaneInverted);
13663
- const axisInverted = useBoolParam(drawingId, sketchId, Members$b.AxisInverted);
13602
+ const planeId = usePositionParam(drawingId, sketchId, Members$c.PlaneReference);
13603
+ const axisId = usePositionParam(drawingId, sketchId, Members$c.AxisReference);
13604
+ const originId = usePositionParam(drawingId, sketchId, Members$c.OriginReference);
13605
+ const isXAxis = useBoolParam(drawingId, sketchId, Members$c.AxisIsX);
13606
+ const planeInverted = useBoolParam(drawingId, sketchId, Members$c.PlaneInverted);
13607
+ const axisInverted = useBoolParam(drawingId, sketchId, Members$c.AxisInverted);
13664
13608
  const onPlaneChange = React.useCallback(value => {
13665
13609
  classcad.ccAPI.sketcher.setSketchRefs(drawingId, sketchId, value || null, Boolean(planeInverted.serverValue), axisId.value || null, Boolean(isXAxis.serverValue), Boolean(axisInverted.serverValue), originId.value || null);
13666
13610
  }, [drawingId, sketchId, planeInverted, axisId, isXAxis, axisInverted, originId]);
@@ -13705,7 +13649,7 @@ const Position = () => {
13705
13649
  filter: axisFilter_
13706
13650
  }, /*#__PURE__*/React.createElement(BooleanEditor, {
13707
13651
  param: isXAxis,
13708
- icon: [img$r, img$s]
13652
+ icon: [img$s, img$t]
13709
13653
  }), /*#__PURE__*/React.createElement(BooleanEditor, {
13710
13654
  param: axisInverted,
13711
13655
  icon: true
@@ -14049,7 +13993,7 @@ const SketchMode = ({
14049
13993
  value: contextValue
14050
13994
  }, /*#__PURE__*/React.createElement(Handlers, null), /*#__PURE__*/React.createElement(Constraints$2, null), /*#__PURE__*/React.createElement(CopyPatterns, null), /*#__PURE__*/React.createElement(Details, null), /*#__PURE__*/React.createElement(Regions, null), /*#__PURE__*/React.createElement(Position, null)));
14051
13995
  };
14052
- const RootImpl$f = ({
13996
+ const RootImpl$g = ({
14053
13997
  drawingId,
14054
13998
  pluginId
14055
13999
  }) => {
@@ -14106,24 +14050,24 @@ const RootImpl$f = ({
14106
14050
  pluginId: pluginId
14107
14051
  }));
14108
14052
  };
14109
- const Root$f = ({
14053
+ const Root$g = ({
14110
14054
  drawingId,
14111
14055
  pluginId
14112
14056
  }) => {
14113
14057
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
14114
14058
  drawingId: drawingId,
14115
14059
  pluginId: pluginId
14116
- }, /*#__PURE__*/React.createElement(RootImpl$f, {
14060
+ }, /*#__PURE__*/React.createElement(RootImpl$g, {
14117
14061
  drawingId: drawingId,
14118
14062
  pluginId: pluginId
14119
14063
  }));
14120
14064
  };
14121
14065
 
14122
- var index$f = /*#__PURE__*/Object.freeze({
14066
+ var index$g = /*#__PURE__*/Object.freeze({
14123
14067
  __proto__: null,
14124
- Root: Root$f,
14068
+ Root: Root$g,
14125
14069
  View: View$d,
14126
- description: description$f
14070
+ description: description$g
14127
14071
  });
14128
14072
 
14129
14073
  function useRefsReset(type, refs) {
@@ -14172,13 +14116,13 @@ function useIsUncommited(drawingId, objId) {
14172
14116
  return isUncommited;
14173
14117
  }
14174
14118
 
14175
- var Members$a;
14119
+ var Members$b;
14176
14120
  (function (Members) {
14177
14121
  Members["Type"] = "Type";
14178
14122
  Members["Position"] = "Position";
14179
14123
  Members["References"] = "References";
14180
14124
  Members["Direction"] = "Direction";
14181
- })(Members$a || (Members$a = {}));
14125
+ })(Members$b || (Members$b = {}));
14182
14126
  const typesCaptions$2 = {
14183
14127
  [classcad.WorkAxisType.WA_2PLANES]: '2 Planes',
14184
14128
  [classcad.WorkAxisType.WA_2POINTS]: '2 Points',
@@ -14189,17 +14133,17 @@ const typesCaptions$2 = {
14189
14133
  [classcad.WorkAxisType.WA_USERDEFINED]: 'Custom'
14190
14134
  };
14191
14135
  const readOnlyTypes$3 = [classcad.WorkAxisType.WA_FIXED];
14192
- const RootImpl$e = ({
14136
+ const RootImpl$f = ({
14193
14137
  drawingId,
14194
14138
  pluginId
14195
14139
  }) => {
14196
14140
  const {
14197
14141
  objectId
14198
14142
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
14199
- const type = useTypeParam(drawingId, objectId, Members$a.Type);
14200
- const refs = useRefsParam(drawingId, objectId, Members$a.References);
14201
- const position = usePointParam(drawingId, objectId, Members$a.Position);
14202
- const direction = usePointParam(drawingId, objectId, Members$a.Direction);
14143
+ const type = useTypeParam(drawingId, objectId, Members$b.Type);
14144
+ const refs = useRefsParam(drawingId, objectId, Members$b.References);
14145
+ const position = usePointParam(drawingId, objectId, Members$b.Position);
14146
+ const direction = usePointParam(drawingId, objectId, Members$b.Direction);
14203
14147
  const isUncommited = useIsUncommited(drawingId, objectId);
14204
14148
  const selOrder = useSelectorsOrder(drawingId);
14205
14149
  useRefsReset(type, refs);
@@ -14270,14 +14214,14 @@ const RootImpl$e = ({
14270
14214
  selectorsOrder: selOrder
14271
14215
  })));
14272
14216
  };
14273
- const Root$e = ({
14217
+ const Root$f = ({
14274
14218
  drawingId,
14275
14219
  pluginId
14276
14220
  }) => {
14277
14221
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
14278
14222
  drawingId: drawingId,
14279
14223
  pluginId: pluginId
14280
- }, /*#__PURE__*/React.createElement(RootImpl$e, {
14224
+ }, /*#__PURE__*/React.createElement(RootImpl$f, {
14281
14225
  drawingId: drawingId,
14282
14226
  pluginId: pluginId
14283
14227
  }));
@@ -14380,7 +14324,7 @@ const View$c = ({
14380
14324
  }));
14381
14325
  };
14382
14326
 
14383
- const description$e = {
14327
+ const description$f = {
14384
14328
  name: 'WorkAxis',
14385
14329
  version: '1.0.0',
14386
14330
  author: 'Ledas',
@@ -14390,11 +14334,11 @@ const description$e = {
14390
14334
  initialState: addMembers
14391
14335
  };
14392
14336
 
14393
- var index$e = /*#__PURE__*/Object.freeze({
14337
+ var index$f = /*#__PURE__*/Object.freeze({
14394
14338
  __proto__: null,
14395
- Root: Root$e,
14339
+ Root: Root$f,
14396
14340
  View: View$c,
14397
- description: description$e
14341
+ description: description$f
14398
14342
  });
14399
14343
 
14400
14344
  function linePlaneAngle(drawingId, refsParam) {
@@ -14459,7 +14403,7 @@ const validators = {
14459
14403
  [classcad.WorkPlaneType.WP_3POINTS]: wp3Points
14460
14404
  };
14461
14405
 
14462
- var Members$9;
14406
+ var Members$a;
14463
14407
  (function (Members) {
14464
14408
  Members["Type"] = "Type";
14465
14409
  Members["Offset"] = "Offset";
@@ -14467,7 +14411,7 @@ var Members$9;
14467
14411
  Members["Position"] = "Position";
14468
14412
  Members["Normal"] = "Normal";
14469
14413
  Members["References"] = "References";
14470
- })(Members$9 || (Members$9 = {}));
14414
+ })(Members$a || (Members$a = {}));
14471
14415
  const readOnlyTypes$2 = [classcad.WorkPlaneType.WP_XYPLANE, classcad.WorkPlaneType.WP_XZPLANE, classcad.WorkPlaneType.WP_YZPLANE, classcad.WorkPlaneType.WP_2CURVES, classcad.WorkPlaneType.WP_FIXED];
14472
14416
  const typesCaptions$1 = {
14473
14417
  [classcad.WorkPlaneType.WP_XYPLANE]: 'XY-Plane',
@@ -14483,21 +14427,21 @@ const typesCaptions$1 = {
14483
14427
  [classcad.WorkPlaneType.WP_POINTFACE]: 'Point and plane',
14484
14428
  [classcad.WorkPlaneType.WP_LINEPLANEANGLE]: 'Line, plane and angle'
14485
14429
  };
14486
- const RootImpl$d = ({
14430
+ const RootImpl$e = ({
14487
14431
  drawingId,
14488
14432
  pluginId
14489
14433
  }) => {
14490
14434
  const {
14491
14435
  objectId
14492
14436
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
14493
- const type = useTypeParam(drawingId, objectId, Members$9.Type);
14494
- const refs = useRefsParam(drawingId, objectId, Members$9.References);
14495
- const offset = useNumParam(drawingId, objectId, Members$9.Offset);
14496
- const angle = useNumParam(drawingId, objectId, Members$9.Angle, {
14437
+ const type = useTypeParam(drawingId, objectId, Members$a.Type);
14438
+ const refs = useRefsParam(drawingId, objectId, Members$a.References);
14439
+ const offset = useNumParam(drawingId, objectId, Members$a.Offset);
14440
+ const angle = useNumParam(drawingId, objectId, Members$a.Angle, {
14497
14441
  angle: true
14498
14442
  });
14499
- const position = usePointParam(drawingId, objectId, Members$9.Position);
14500
- const normal = usePointParam(drawingId, objectId, Members$9.Normal);
14443
+ const position = usePointParam(drawingId, objectId, Members$a.Position);
14444
+ const normal = usePointParam(drawingId, objectId, Members$a.Normal);
14501
14445
  const isUncommited = useIsUncommited(drawingId, objectId);
14502
14446
  useRefsReset(type, refs);
14503
14447
  useRetainVisibility(drawingId, pluginId);
@@ -14537,7 +14481,7 @@ const RootImpl$d = ({
14537
14481
  validator: validate,
14538
14482
  forceUpdateEnabled: isUncommited
14539
14483
  }, /*#__PURE__*/React.createElement(TypeEditor, {
14540
- caption: Members$9.Type,
14484
+ caption: Members$a.Type,
14541
14485
  param: type,
14542
14486
  types: typesCaptions$1,
14543
14487
  readonlyTypes: readOnlyTypes$2
@@ -14632,24 +14576,24 @@ const RootImpl$d = ({
14632
14576
  selectorsOrder: selOrder
14633
14577
  })), !isReadonly && type.userValue !== classcad.WorkPlaneType.WP_LINEPLANEANGLE && /*#__PURE__*/React.createElement(NumberEditor, {
14634
14578
  drawingId: drawingId,
14635
- caption: Members$9.Offset,
14579
+ caption: Members$a.Offset,
14636
14580
  param: offset,
14637
14581
  allowExpr: true
14638
14582
  }), type.userValue === classcad.WorkPlaneType.WP_LINEPLANEANGLE && /*#__PURE__*/React.createElement(NumberEditor, {
14639
14583
  drawingId: drawingId,
14640
- caption: Members$9.Angle,
14584
+ caption: Members$a.Angle,
14641
14585
  param: angle,
14642
14586
  allowExpr: true
14643
14587
  }));
14644
14588
  };
14645
- const Root$d = ({
14589
+ const Root$e = ({
14646
14590
  drawingId,
14647
14591
  pluginId
14648
14592
  }) => {
14649
14593
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
14650
14594
  drawingId: drawingId,
14651
14595
  pluginId: pluginId
14652
- }, /*#__PURE__*/React.createElement(RootImpl$d, {
14596
+ }, /*#__PURE__*/React.createElement(RootImpl$e, {
14653
14597
  drawingId: drawingId,
14654
14598
  pluginId: pluginId
14655
14599
  }));
@@ -14762,7 +14706,7 @@ const View$b = ({
14762
14706
  }));
14763
14707
  };
14764
14708
 
14765
- const description$d = {
14709
+ const description$e = {
14766
14710
  name: 'WorkPlane',
14767
14711
  version: '1.0.0',
14768
14712
  author: 'Ledas',
@@ -14772,19 +14716,19 @@ const description$d = {
14772
14716
  initialState: addMembers
14773
14717
  };
14774
14718
 
14775
- var index$d = /*#__PURE__*/Object.freeze({
14719
+ var index$e = /*#__PURE__*/Object.freeze({
14776
14720
  __proto__: null,
14777
- Root: Root$d,
14721
+ Root: Root$e,
14778
14722
  View: View$b,
14779
- description: description$d
14723
+ description: description$e
14780
14724
  });
14781
14725
 
14782
- var Members$8;
14726
+ var Members$9;
14783
14727
  (function (Members) {
14784
14728
  Members["Type"] = "Type";
14785
14729
  Members["Position"] = "Position";
14786
14730
  Members["References"] = "References";
14787
- })(Members$8 || (Members$8 = {}));
14731
+ })(Members$9 || (Members$9 = {}));
14788
14732
  const readOnlyTypes$1 = [classcad.WorkPointType.WPT_FIXED];
14789
14733
  const typesCaptions = {
14790
14734
  [classcad.WorkPointType.WPT_2POINTS]: 'Midpoint',
@@ -14797,16 +14741,16 @@ const typesCaptions = {
14797
14741
  [classcad.WorkPointType.WPT_INTERSECTION]: 'Intersection',
14798
14742
  [classcad.WorkPointType.WPT_USERDEFINED]: 'Custom'
14799
14743
  };
14800
- const RootImpl$c = ({
14744
+ const RootImpl$d = ({
14801
14745
  drawingId,
14802
14746
  pluginId
14803
14747
  }) => {
14804
14748
  const {
14805
14749
  objectId
14806
14750
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
14807
- const type = useTypeParam(drawingId, objectId, Members$8.Type);
14808
- const refs = useRefsParam(drawingId, objectId, Members$8.References);
14809
- const position = usePointParam(drawingId, objectId, Members$8.Position);
14751
+ const type = useTypeParam(drawingId, objectId, Members$9.Type);
14752
+ const refs = useRefsParam(drawingId, objectId, Members$9.References);
14753
+ const position = usePointParam(drawingId, objectId, Members$9.Position);
14810
14754
  const isUncommited = useIsUncommited(drawingId, objectId);
14811
14755
  const selOrder = useSelectorsOrder(drawingId);
14812
14756
  useRefsReset(type, refs);
@@ -14884,14 +14828,14 @@ const RootImpl$c = ({
14884
14828
  maxLen: 3
14885
14829
  }));
14886
14830
  };
14887
- const Root$c = ({
14831
+ const Root$d = ({
14888
14832
  drawingId,
14889
14833
  pluginId
14890
14834
  }) => {
14891
14835
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
14892
14836
  drawingId: drawingId,
14893
14837
  pluginId: pluginId
14894
- }, /*#__PURE__*/React.createElement(RootImpl$c, {
14838
+ }, /*#__PURE__*/React.createElement(RootImpl$d, {
14895
14839
  drawingId: drawingId,
14896
14840
  pluginId: pluginId
14897
14841
  }));
@@ -14959,7 +14903,7 @@ const View$a = ({
14959
14903
  }));
14960
14904
  };
14961
14905
 
14962
- const description$c = {
14906
+ const description$d = {
14963
14907
  name: 'WorkPoint',
14964
14908
  version: '1.0.0',
14965
14909
  author: 'Ledas',
@@ -14969,11 +14913,11 @@ const description$c = {
14969
14913
  initialState: addMembers
14970
14914
  };
14971
14915
 
14972
- var index$c = /*#__PURE__*/Object.freeze({
14916
+ var index$d = /*#__PURE__*/Object.freeze({
14973
14917
  __proto__: null,
14974
- Root: Root$c,
14918
+ Root: Root$d,
14975
14919
  View: View$a,
14976
- description: description$c
14920
+ description: description$d
14977
14921
  });
14978
14922
 
14979
14923
  function ownKeys$9(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -15024,13 +14968,26 @@ const CSysEditor = ({
15024
14968
  validator
15025
14969
  }) => {
15026
14970
  const {
15027
- userValue,
15028
14971
  setUserValue,
15029
14972
  defaults
15030
14973
  } = param;
15031
- const [x, setX] = React.useState(() => userValue[csysRow].x);
15032
- const [y, setY] = React.useState(() => userValue[csysRow].y);
15033
- const [z, setZ] = React.useState(() => userValue[csysRow].z);
14974
+ const [x, setX] = React.useState(() => defaults[csysRow].x);
14975
+ const [y, setY] = React.useState(() => defaults[csysRow].y);
14976
+ const [z, setZ] = React.useState(() => defaults[csysRow].z);
14977
+
14978
+ // Update component values on defaults change; This shouldn't react to actual components changes!
14979
+ React.useEffect(() => {
14980
+ if (x !== defaults[csysRow].x) {
14981
+ setX(defaults[csysRow].x);
14982
+ }
14983
+ if (y !== defaults[csysRow].y) {
14984
+ setY(defaults[csysRow].y);
14985
+ }
14986
+ if (z !== defaults[csysRow].z) {
14987
+ setZ(defaults[csysRow].z);
14988
+ }
14989
+ // eslint-disable-next-line react-hooks/exhaustive-deps
14990
+ }, [defaults, csysRow]);
15034
14991
  React.useEffect(() => {
15035
14992
  setUserValue(val => {
15036
14993
  const newVal = [_objectSpread$9({}, val[0]), _objectSpread$9({}, val[1]), _objectSpread$9({}, val[2]), _objectSpread$9({}, val[3])];
@@ -15116,14 +15073,14 @@ function useCSysParam(drawingId, objId) {
15116
15073
  });
15117
15074
  }
15118
15075
 
15119
- var Members$7;
15076
+ var Members$8;
15120
15077
  (function (Members) {
15121
15078
  Members["References"] = "References";
15122
15079
  Members["Offset"] = "Offset";
15123
15080
  Members["Rotation"] = "Rotation";
15124
15081
  Members["Inverted"] = "Inverted";
15125
15082
  Members["Type"] = "Type";
15126
- })(Members$7 || (Members$7 = {}));
15083
+ })(Members$8 || (Members$8 = {}));
15127
15084
  const readOnlyTypes = [classcad.WorkCoordSystemType.WCS_FIXED];
15128
15085
  const typeCaptions = {
15129
15086
  [classcad.WorkCoordSystemType.WCS_FIXED]: 'Fixed',
@@ -15152,21 +15109,21 @@ const getObjectDirection = (drawingId, obj) => {
15152
15109
  const matrix = core.getDrawing(drawingId).api.structure.calculateGlobalTransformation(obj.id);
15153
15110
  return dir.applyMatrix4(matrix).normalize();
15154
15111
  };
15155
- function RootImpl$b({
15112
+ function RootImpl$c({
15156
15113
  drawingId,
15157
15114
  pluginId
15158
15115
  }) {
15159
15116
  const {
15160
15117
  objectId
15161
15118
  } = react.usePlugin(drawingId, pluginId, pluginState => pluginState);
15162
- const type = useTypeParam(drawingId, objectId, Members$7.Type);
15163
- const refs = useRefsParam(drawingId, objectId, Members$7.References);
15119
+ const type = useTypeParam(drawingId, objectId, Members$8.Type);
15120
+ const refs = useRefsParam(drawingId, objectId, Members$8.References);
15164
15121
  const csys = useCSysParam(drawingId, objectId);
15165
- const offset = usePointParam(drawingId, objectId, Members$7.Offset);
15166
- const rotation = usePointParam(drawingId, objectId, Members$7.Rotation, {
15122
+ const offset = usePointParam(drawingId, objectId, Members$8.Offset);
15123
+ const rotation = usePointParam(drawingId, objectId, Members$8.Rotation, {
15167
15124
  angle: true
15168
15125
  });
15169
- const inverted = useBoolParam(drawingId, objectId, Members$7.Inverted);
15126
+ const inverted = useBoolParam(drawingId, objectId, Members$8.Inverted);
15170
15127
  const isUncommited = useIsUncommited(drawingId, objectId);
15171
15128
  const {
15172
15129
  defaults: refsDefaults,
@@ -15342,7 +15299,7 @@ function RootImpl$b({
15342
15299
  validator: validate,
15343
15300
  forceUpdateEnabled: isUncommited
15344
15301
  }, /*#__PURE__*/React.createElement(TypeEditor, {
15345
- caption: Members$7.Type,
15302
+ caption: Members$8.Type,
15346
15303
  param: type,
15347
15304
  types: typeCaptions,
15348
15305
  readonlyTypes: readOnlyTypes
@@ -15392,14 +15349,14 @@ function RootImpl$b({
15392
15349
  param: rotation
15393
15350
  })));
15394
15351
  }
15395
- const Root$b = ({
15352
+ const Root$c = ({
15396
15353
  drawingId,
15397
15354
  pluginId
15398
15355
  }) => {
15399
15356
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
15400
15357
  drawingId: drawingId,
15401
15358
  pluginId: pluginId
15402
- }, /*#__PURE__*/React.createElement(RootImpl$b, {
15359
+ }, /*#__PURE__*/React.createElement(RootImpl$c, {
15403
15360
  drawingId: drawingId,
15404
15361
  pluginId: pluginId
15405
15362
  }));
@@ -15517,7 +15474,7 @@ const View$9 = ({
15517
15474
  }));
15518
15475
  };
15519
15476
 
15520
- const description$b = {
15477
+ const description$c = {
15521
15478
  name: 'WorkCoordSystem',
15522
15479
  version: '1.0.0',
15523
15480
  author: 'Ledas',
@@ -15533,11 +15490,11 @@ const description$b = {
15533
15490
  }
15534
15491
  };
15535
15492
 
15536
- var index$b = /*#__PURE__*/Object.freeze({
15493
+ var index$c = /*#__PURE__*/Object.freeze({
15537
15494
  __proto__: null,
15538
- Root: Root$b,
15495
+ Root: Root$c,
15539
15496
  View: View$9,
15540
- description: description$b
15497
+ description: description$c
15541
15498
  });
15542
15499
 
15543
15500
  const Caption = ({
@@ -15806,7 +15763,7 @@ function View$8({
15806
15763
  }));
15807
15764
  }
15808
15765
 
15809
- function RootImpl$a({
15766
+ function RootImpl$b({
15810
15767
  drawingId,
15811
15768
  pluginId
15812
15769
  }) {
@@ -15856,17 +15813,17 @@ function RootImpl$a({
15856
15813
  })
15857
15814
  })));
15858
15815
  }
15859
- function Root$a({
15816
+ function Root$b({
15860
15817
  drawingId,
15861
15818
  pluginId
15862
15819
  }) {
15863
- return /*#__PURE__*/React.createElement(ErrorBoundary, null, /*#__PURE__*/React.createElement(RootImpl$a, {
15820
+ return /*#__PURE__*/React.createElement(ErrorBoundary, null, /*#__PURE__*/React.createElement(RootImpl$b, {
15864
15821
  drawingId: drawingId,
15865
15822
  pluginId: pluginId
15866
15823
  }));
15867
15824
  }
15868
15825
 
15869
- const description$a = {
15826
+ const description$b = {
15870
15827
  name: 'BoundingBoxInfo',
15871
15828
  version: '1.0.0',
15872
15829
  author: 'Ledas',
@@ -15878,11 +15835,11 @@ const description$a = {
15878
15835
  }
15879
15836
  };
15880
15837
 
15881
- var index$a = /*#__PURE__*/Object.freeze({
15838
+ var index$b = /*#__PURE__*/Object.freeze({
15882
15839
  __proto__: null,
15883
- Root: Root$a,
15840
+ Root: Root$b,
15884
15841
  View: View$8,
15885
- description: description$a
15842
+ description: description$b
15886
15843
  });
15887
15844
 
15888
15845
  const ExpressionEditor = ({
@@ -15901,6 +15858,15 @@ const ExpressionEditor = ({
15901
15858
  // displayed expression & value
15902
15859
  const [expressionD, setExpressionD] = React.useState(expression.length !== 0 ? expression : initValue);
15903
15860
  const [valueD, setValueD] = React.useState(initValue);
15861
+
15862
+ // Update displayed expression when its member values change; This shouldn't react to actual expressionD changes!
15863
+ React.useEffect(() => {
15864
+ const newExpr = expression.length !== 0 ? expression : value.toString();
15865
+ if (newExpr !== expressionD) {
15866
+ setExpressionD(newExpr);
15867
+ }
15868
+ // eslint-disable-next-line react-hooks/exhaustive-deps
15869
+ }, [expression, value]);
15904
15870
  React.useEffect(() => {
15905
15871
  setValueD(value.toString());
15906
15872
  }, [value]);
@@ -16002,7 +15968,7 @@ const ExpressionsValidator = ({
16002
15968
  };
16003
15969
 
16004
15970
  const nameRegex = /[a-zA-Z_][a-zA-Z0-9_]*/g;
16005
- const RootImpl$9 = ({
15971
+ const RootImpl$a = ({
16006
15972
  drawingId,
16007
15973
  pluginId
16008
15974
  }) => {
@@ -16174,19 +16140,19 @@ const RootImpl$9 = ({
16174
16140
  onChange: e => setShowHidden(e.target.checked)
16175
16141
  }, " Show hidden "));
16176
16142
  };
16177
- const Root$9 = ({
16143
+ const Root$a = ({
16178
16144
  drawingId,
16179
16145
  pluginId
16180
16146
  }) => {
16181
16147
  return /*#__PURE__*/React.createElement(ExpressionsValidator, {
16182
16148
  drawingId: drawingId
16183
- }, /*#__PURE__*/React.createElement(RootImpl$9, {
16149
+ }, /*#__PURE__*/React.createElement(RootImpl$a, {
16184
16150
  drawingId: drawingId,
16185
16151
  pluginId: pluginId
16186
16152
  }));
16187
16153
  };
16188
16154
 
16189
- const description$9 = {
16155
+ const description$a = {
16190
16156
  name: 'Expressions',
16191
16157
  version: '1.0.0',
16192
16158
  author: 'Ledas',
@@ -16195,30 +16161,30 @@ const description$9 = {
16195
16161
  initialState: {}
16196
16162
  };
16197
16163
 
16198
- var index$9 = /*#__PURE__*/Object.freeze({
16164
+ var index$a = /*#__PURE__*/Object.freeze({
16199
16165
  __proto__: null,
16200
- Root: Root$9,
16201
- description: description$9
16166
+ Root: Root$a,
16167
+ description: description$a
16202
16168
  });
16203
16169
 
16204
- var Members$6;
16170
+ var Members$7;
16205
16171
  (function (Members) {
16206
16172
  Members["MateReference"] = "firstRefMate";
16207
16173
  Members["XOffset"] = "xOffset";
16208
16174
  Members["YOffset"] = "yOffset";
16209
16175
  Members["ZOffset"] = "zOffset";
16210
- })(Members$6 || (Members$6 = {}));
16211
- function RootImpl$8({
16176
+ })(Members$7 || (Members$7 = {}));
16177
+ function RootImpl$9({
16212
16178
  drawingId,
16213
16179
  pluginId
16214
16180
  }) {
16215
16181
  const {
16216
16182
  objectId
16217
16183
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
16218
- const mateRef = useMateParam(drawingId, objectId, Members$6.MateReference);
16219
- const xOffset = useNumParam(drawingId, objectId, Members$6.XOffset);
16220
- const yOffset = useNumParam(drawingId, objectId, Members$6.YOffset);
16221
- const zOffset = useNumParam(drawingId, objectId, Members$6.ZOffset);
16184
+ const mateRef = useMateParam(drawingId, objectId, Members$7.MateReference);
16185
+ const xOffset = useNumParam(drawingId, objectId, Members$7.XOffset);
16186
+ const yOffset = useNumParam(drawingId, objectId, Members$7.YOffset);
16187
+ const zOffset = useNumParam(drawingId, objectId, Members$7.ZOffset);
16222
16188
  const update = React.useCallback(async () => {
16223
16189
  return classcad.ccAPI.assemblyBuilder.updateFastenedOriginConstraints(drawingId, [{
16224
16190
  constrId: objectId,
@@ -16256,14 +16222,14 @@ function RootImpl$8({
16256
16222
  caption: "Offset Z"
16257
16223
  }));
16258
16224
  }
16259
- const Root$8 = ({
16225
+ const Root$9 = ({
16260
16226
  drawingId,
16261
16227
  pluginId
16262
16228
  }) => {
16263
16229
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
16264
16230
  drawingId: drawingId,
16265
16231
  pluginId: pluginId
16266
- }, /*#__PURE__*/React.createElement(RootImpl$8, {
16232
+ }, /*#__PURE__*/React.createElement(RootImpl$9, {
16267
16233
  drawingId: drawingId,
16268
16234
  pluginId: pluginId
16269
16235
  }));
@@ -16789,7 +16755,7 @@ const View$7 = ({
16789
16755
  }));
16790
16756
  };
16791
16757
 
16792
- const description$8 = {
16758
+ const description$9 = {
16793
16759
  name: 'Fastened Origin',
16794
16760
  version: '1.0.0',
16795
16761
  author: 'Ledas',
@@ -16798,33 +16764,33 @@ const description$8 = {
16798
16764
  global: false
16799
16765
  };
16800
16766
 
16801
- var index$8 = /*#__PURE__*/Object.freeze({
16767
+ var index$9 = /*#__PURE__*/Object.freeze({
16802
16768
  __proto__: null,
16803
- Root: Root$8,
16769
+ Root: Root$9,
16804
16770
  View: View$7,
16805
- description: description$8
16771
+ description: description$9
16806
16772
  });
16807
16773
 
16808
- var Members$5;
16774
+ var Members$6;
16809
16775
  (function (Members) {
16810
16776
  Members["Mate1Reference"] = "firstRefMate";
16811
16777
  Members["Mate2Reference"] = "secondRefMate";
16812
16778
  Members["XOffset"] = "xOffset";
16813
16779
  Members["YOffset"] = "yOffset";
16814
16780
  Members["ZOffset"] = "zOffset";
16815
- })(Members$5 || (Members$5 = {}));
16816
- function RootImpl$7({
16781
+ })(Members$6 || (Members$6 = {}));
16782
+ function RootImpl$8({
16817
16783
  drawingId,
16818
16784
  pluginId
16819
16785
  }) {
16820
16786
  const {
16821
16787
  objectId
16822
16788
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
16823
- const mate1Ref = useMateParam(drawingId, objectId, Members$5.Mate1Reference);
16824
- const mate2Ref = useMateParam(drawingId, objectId, Members$5.Mate2Reference);
16825
- const xOffset = useNumParam(drawingId, objectId, Members$5.XOffset);
16826
- const yOffset = useNumParam(drawingId, objectId, Members$5.YOffset);
16827
- const zOffset = useNumParam(drawingId, objectId, Members$5.ZOffset);
16789
+ const mate1Ref = useMateParam(drawingId, objectId, Members$6.Mate1Reference);
16790
+ const mate2Ref = useMateParam(drawingId, objectId, Members$6.Mate2Reference);
16791
+ const xOffset = useNumParam(drawingId, objectId, Members$6.XOffset);
16792
+ const yOffset = useNumParam(drawingId, objectId, Members$6.YOffset);
16793
+ const zOffset = useNumParam(drawingId, objectId, Members$6.ZOffset);
16828
16794
  const selOrder = useSelectorsOrder(drawingId);
16829
16795
  const update = React.useCallback(async () => {
16830
16796
  return classcad.ccAPI.assemblyBuilder.updateFastenedConstraints(drawingId, [{
@@ -16871,14 +16837,14 @@ function RootImpl$7({
16871
16837
  caption: "Offset Z"
16872
16838
  }));
16873
16839
  }
16874
- const Root$7 = ({
16840
+ const Root$8 = ({
16875
16841
  drawingId,
16876
16842
  pluginId
16877
16843
  }) => {
16878
16844
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
16879
16845
  drawingId: drawingId,
16880
16846
  pluginId: pluginId
16881
- }, /*#__PURE__*/React.createElement(RootImpl$7, {
16847
+ }, /*#__PURE__*/React.createElement(RootImpl$8, {
16882
16848
  drawingId: drawingId,
16883
16849
  pluginId: pluginId
16884
16850
  }));
@@ -16908,7 +16874,7 @@ const View$6 = ({
16908
16874
  }));
16909
16875
  };
16910
16876
 
16911
- const description$7 = {
16877
+ const description$8 = {
16912
16878
  name: 'Fastened',
16913
16879
  version: '1.0.0',
16914
16880
  author: 'Ledas',
@@ -16917,11 +16883,11 @@ const description$7 = {
16917
16883
  global: false
16918
16884
  };
16919
16885
 
16920
- var index$7 = /*#__PURE__*/Object.freeze({
16886
+ var index$8 = /*#__PURE__*/Object.freeze({
16921
16887
  __proto__: null,
16922
- Root: Root$7,
16888
+ Root: Root$8,
16923
16889
  View: View$6,
16924
- description: description$7
16890
+ description: description$8
16925
16891
  });
16926
16892
 
16927
16893
  function validateLimits(limits, name) {
@@ -17402,7 +17368,7 @@ const LimitedValue = ({
17402
17368
  })));
17403
17369
  };
17404
17370
 
17405
- var Members$4;
17371
+ var Members$5;
17406
17372
  (function (Members) {
17407
17373
  Members["Mate1Reference"] = "firstRefMate";
17408
17374
  Members["Mate2Reference"] = "secondRefMate";
@@ -17410,8 +17376,8 @@ var Members$4;
17410
17376
  Members["YOffset"] = "yOffset";
17411
17377
  Members["ZOffsetValue"] = "zOffsetValue";
17412
17378
  Members["ZOffsetLimits"] = "zOffsetLimits";
17413
- })(Members$4 || (Members$4 = {}));
17414
- function RootImpl$6({
17379
+ })(Members$5 || (Members$5 = {}));
17380
+ function RootImpl$7({
17415
17381
  drawingId,
17416
17382
  pluginId
17417
17383
  }) {
@@ -17421,12 +17387,12 @@ function RootImpl$6({
17421
17387
  const {
17422
17388
  objectId
17423
17389
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
17424
- const [limitsCollapsed, setLimitsCollapsed] = useCollapsed(drawingId, objectId, [Members$4.ZOffsetLimits]);
17425
- const mate1Ref = useMateParam(drawingId, objectId, Members$4.Mate1Reference);
17426
- const mate2Ref = useMateParam(drawingId, objectId, Members$4.Mate2Reference);
17427
- const xOffset = useNumParam(drawingId, objectId, Members$4.XOffset);
17428
- const yOffset = useNumParam(drawingId, objectId, Members$4.YOffset);
17429
- const zOffsetLimits = useLimitsParam(drawingId, objectId, Members$4.ZOffsetLimits, {
17390
+ const [limitsCollapsed, setLimitsCollapsed] = useCollapsed(drawingId, objectId, [Members$5.ZOffsetLimits]);
17391
+ const mate1Ref = useMateParam(drawingId, objectId, Members$5.Mate1Reference);
17392
+ const mate2Ref = useMateParam(drawingId, objectId, Members$5.Mate2Reference);
17393
+ const xOffset = useNumParam(drawingId, objectId, Members$5.XOffset);
17394
+ const yOffset = useNumParam(drawingId, objectId, Members$5.YOffset);
17395
+ const zOffsetLimits = useLimitsParam(drawingId, objectId, Members$5.ZOffsetLimits, {
17430
17396
  forceNoLimits: limitsCollapsed
17431
17397
  });
17432
17398
  const selOrder = useSelectorsOrder(drawingId);
@@ -17494,21 +17460,21 @@ function RootImpl$6({
17494
17460
  }, /*#__PURE__*/React.createElement(LimitedValue, {
17495
17461
  drawingId: drawingId,
17496
17462
  objId: objectId,
17497
- memberName: Members$4.ZOffsetValue,
17498
- limitsName: Members$4.ZOffsetLimits,
17463
+ memberName: Members$5.ZOffsetValue,
17464
+ limitsName: Members$5.ZOffsetLimits,
17499
17465
  onUpdate: updateValue,
17500
17466
  caption: "Offset Z",
17501
17467
  disabled: disableVals
17502
17468
  })));
17503
17469
  }
17504
- const Root$6 = ({
17470
+ const Root$7 = ({
17505
17471
  drawingId,
17506
17472
  pluginId
17507
17473
  }) => {
17508
17474
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
17509
17475
  drawingId: drawingId,
17510
17476
  pluginId: pluginId
17511
- }, /*#__PURE__*/React.createElement(RootImpl$6, {
17477
+ }, /*#__PURE__*/React.createElement(RootImpl$7, {
17512
17478
  drawingId: drawingId,
17513
17479
  pluginId: pluginId
17514
17480
  }));
@@ -17538,7 +17504,7 @@ const View$5 = ({
17538
17504
  }));
17539
17505
  };
17540
17506
 
17541
- const description$6 = {
17507
+ const description$7 = {
17542
17508
  name: 'Slider',
17543
17509
  version: '1.0.0',
17544
17510
  author: 'Ledas',
@@ -17547,22 +17513,22 @@ const description$6 = {
17547
17513
  global: false
17548
17514
  };
17549
17515
 
17550
- var index$6 = /*#__PURE__*/Object.freeze({
17516
+ var index$7 = /*#__PURE__*/Object.freeze({
17551
17517
  __proto__: null,
17552
- Root: Root$6,
17518
+ Root: Root$7,
17553
17519
  View: View$5,
17554
- description: description$6
17520
+ description: description$7
17555
17521
  });
17556
17522
 
17557
- var Members$3;
17523
+ var Members$4;
17558
17524
  (function (Members) {
17559
17525
  Members["Mate1Reference"] = "firstRefMate";
17560
17526
  Members["Mate2Reference"] = "secondRefMate";
17561
17527
  Members["ZOffset"] = "zOffset";
17562
17528
  Members["ZRotationValue"] = "zRotationValue";
17563
17529
  Members["ZRotationLimits"] = "zRotationLimits";
17564
- })(Members$3 || (Members$3 = {}));
17565
- function RootImpl$5({
17530
+ })(Members$4 || (Members$4 = {}));
17531
+ function RootImpl$6({
17566
17532
  drawingId,
17567
17533
  pluginId
17568
17534
  }) {
@@ -17572,11 +17538,11 @@ function RootImpl$5({
17572
17538
  const {
17573
17539
  objectId
17574
17540
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
17575
- const [limitsCollapsed, setLimitsCollapsed] = useCollapsed(drawingId, objectId, [Members$3.ZRotationLimits]);
17576
- const mate1Ref = useMateParam(drawingId, objectId, Members$3.Mate1Reference);
17577
- const mate2Ref = useMateParam(drawingId, objectId, Members$3.Mate2Reference);
17578
- const zOffset = useNumParam(drawingId, objectId, Members$3.ZOffset);
17579
- const zRotationLimits = useLimitsParam(drawingId, objectId, Members$3.ZRotationLimits, {
17541
+ const [limitsCollapsed, setLimitsCollapsed] = useCollapsed(drawingId, objectId, [Members$4.ZRotationLimits]);
17542
+ const mate1Ref = useMateParam(drawingId, objectId, Members$4.Mate1Reference);
17543
+ const mate2Ref = useMateParam(drawingId, objectId, Members$4.Mate2Reference);
17544
+ const zOffset = useNumParam(drawingId, objectId, Members$4.ZOffset);
17545
+ const zRotationLimits = useLimitsParam(drawingId, objectId, Members$4.ZRotationLimits, {
17580
17546
  angle: true,
17581
17547
  forceNoLimits: limitsCollapsed
17582
17548
  });
@@ -17639,22 +17605,22 @@ function RootImpl$5({
17639
17605
  }, /*#__PURE__*/React.createElement(LimitedValue, {
17640
17606
  drawingId: drawingId,
17641
17607
  objId: objectId,
17642
- memberName: Members$3.ZRotationValue,
17643
- limitsName: Members$3.ZRotationLimits,
17608
+ memberName: Members$4.ZRotationValue,
17609
+ limitsName: Members$4.ZRotationLimits,
17644
17610
  onUpdate: updateValue,
17645
17611
  caption: "Rotation Z",
17646
17612
  angle: true,
17647
17613
  disabled: disableVals
17648
17614
  })));
17649
17615
  }
17650
- const Root$5 = ({
17616
+ const Root$6 = ({
17651
17617
  drawingId,
17652
17618
  pluginId
17653
17619
  }) => {
17654
17620
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
17655
17621
  drawingId: drawingId,
17656
17622
  pluginId: pluginId
17657
- }, /*#__PURE__*/React.createElement(RootImpl$5, {
17623
+ }, /*#__PURE__*/React.createElement(RootImpl$6, {
17658
17624
  drawingId: drawingId,
17659
17625
  pluginId: pluginId
17660
17626
  }));
@@ -17684,7 +17650,7 @@ const View$4 = ({
17684
17650
  }));
17685
17651
  };
17686
17652
 
17687
- const description$5 = {
17653
+ const description$6 = {
17688
17654
  name: 'Revolute',
17689
17655
  version: '1.0.0',
17690
17656
  author: 'Ledas',
@@ -17693,14 +17659,14 @@ const description$5 = {
17693
17659
  global: false
17694
17660
  };
17695
17661
 
17696
- var index$5 = /*#__PURE__*/Object.freeze({
17662
+ var index$6 = /*#__PURE__*/Object.freeze({
17697
17663
  __proto__: null,
17698
- Root: Root$5,
17664
+ Root: Root$6,
17699
17665
  View: View$4,
17700
- description: description$5
17666
+ description: description$6
17701
17667
  });
17702
17668
 
17703
- var Members$2;
17669
+ var Members$3;
17704
17670
  (function (Members) {
17705
17671
  Members["Mate1Reference"] = "firstRefMate";
17706
17672
  Members["Mate2Reference"] = "secondRefMate";
@@ -17708,8 +17674,8 @@ var Members$2;
17708
17674
  Members["ZOffsetLimits"] = "zOffsetLimits";
17709
17675
  Members["ZRotationValue"] = "zRotationValue";
17710
17676
  Members["ZRotationLimits"] = "zRotationLimits";
17711
- })(Members$2 || (Members$2 = {}));
17712
- function RootImpl$4({
17677
+ })(Members$3 || (Members$3 = {}));
17678
+ function RootImpl$5({
17713
17679
  drawingId,
17714
17680
  pluginId
17715
17681
  }) {
@@ -17719,13 +17685,13 @@ function RootImpl$4({
17719
17685
  const {
17720
17686
  objectId
17721
17687
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
17722
- const [limitsCollapsed, setLimitsCollapsed] = useCollapsed(drawingId, objectId, [Members$2.ZOffsetLimits, Members$2.ZRotationLimits]);
17723
- const mate1Ref = useMateParam(drawingId, objectId, Members$2.Mate1Reference);
17724
- const mate2Ref = useMateParam(drawingId, objectId, Members$2.Mate2Reference);
17725
- const zOffsetLimits = useLimitsParam(drawingId, objectId, Members$2.ZOffsetLimits, {
17688
+ const [limitsCollapsed, setLimitsCollapsed] = useCollapsed(drawingId, objectId, [Members$3.ZOffsetLimits, Members$3.ZRotationLimits]);
17689
+ const mate1Ref = useMateParam(drawingId, objectId, Members$3.Mate1Reference);
17690
+ const mate2Ref = useMateParam(drawingId, objectId, Members$3.Mate2Reference);
17691
+ const zOffsetLimits = useLimitsParam(drawingId, objectId, Members$3.ZOffsetLimits, {
17726
17692
  forceNoLimits: limitsCollapsed
17727
17693
  });
17728
- const zRotationLimits = useLimitsParam(drawingId, objectId, Members$2.ZRotationLimits, {
17694
+ const zRotationLimits = useLimitsParam(drawingId, objectId, Members$3.ZRotationLimits, {
17729
17695
  angle: true,
17730
17696
  forceNoLimits: limitsCollapsed
17731
17697
  });
@@ -17794,30 +17760,30 @@ function RootImpl$4({
17794
17760
  }, /*#__PURE__*/React.createElement(LimitedValue, {
17795
17761
  drawingId: drawingId,
17796
17762
  objId: objectId,
17797
- memberName: Members$2.ZOffsetValue,
17798
- limitsName: Members$2.ZOffsetLimits,
17763
+ memberName: Members$3.ZOffsetValue,
17764
+ limitsName: Members$3.ZOffsetLimits,
17799
17765
  onUpdate: updateOffset,
17800
17766
  caption: "Offset Z",
17801
17767
  disabled: disableVals
17802
17768
  }), /*#__PURE__*/React.createElement(LimitedValue, {
17803
17769
  drawingId: drawingId,
17804
17770
  objId: objectId,
17805
- memberName: Members$2.ZRotationValue,
17806
- limitsName: Members$2.ZRotationLimits,
17771
+ memberName: Members$3.ZRotationValue,
17772
+ limitsName: Members$3.ZRotationLimits,
17807
17773
  onUpdate: updateRotation,
17808
17774
  caption: "Rotation Z",
17809
17775
  angle: true,
17810
17776
  disabled: disableVals
17811
17777
  })));
17812
17778
  }
17813
- const Root$4 = ({
17779
+ const Root$5 = ({
17814
17780
  drawingId,
17815
17781
  pluginId
17816
17782
  }) => {
17817
17783
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
17818
17784
  drawingId: drawingId,
17819
17785
  pluginId: pluginId
17820
- }, /*#__PURE__*/React.createElement(RootImpl$4, {
17786
+ }, /*#__PURE__*/React.createElement(RootImpl$5, {
17821
17787
  drawingId: drawingId,
17822
17788
  pluginId: pluginId
17823
17789
  }));
@@ -17847,7 +17813,7 @@ const View$3 = ({
17847
17813
  }));
17848
17814
  };
17849
17815
 
17850
- const description$4 = {
17816
+ const description$5 = {
17851
17817
  name: 'Cylindrical',
17852
17818
  version: '1.0.0',
17853
17819
  author: 'Ledas',
@@ -17856,14 +17822,14 @@ const description$4 = {
17856
17822
  global: false
17857
17823
  };
17858
17824
 
17859
- var index$4 = /*#__PURE__*/Object.freeze({
17825
+ var index$5 = /*#__PURE__*/Object.freeze({
17860
17826
  __proto__: null,
17861
- Root: Root$4,
17827
+ Root: Root$5,
17862
17828
  View: View$3,
17863
- description: description$4
17829
+ description: description$5
17864
17830
  });
17865
17831
 
17866
- var Members$1;
17832
+ var Members$2;
17867
17833
  (function (Members) {
17868
17834
  Members["Mate1Reference"] = "firstRefMate";
17869
17835
  Members["Mate2Reference"] = "secondRefMate";
@@ -17874,8 +17840,8 @@ var Members$1;
17874
17840
  Members["YOffsetLimits"] = "yOffsetLimits";
17875
17841
  Members["ZRotationValue"] = "zRotationValue";
17876
17842
  Members["ZRotationLimits"] = "zRotationLimits";
17877
- })(Members$1 || (Members$1 = {}));
17878
- function RootImpl$3({
17843
+ })(Members$2 || (Members$2 = {}));
17844
+ function RootImpl$4({
17879
17845
  drawingId,
17880
17846
  pluginId
17881
17847
  }) {
@@ -17885,17 +17851,17 @@ function RootImpl$3({
17885
17851
  const {
17886
17852
  objectId
17887
17853
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
17888
- const [limitsCollapsed, setLimitsCollapsed] = useCollapsed(drawingId, objectId, [Members$1.XOffsetLimits, Members$1.YOffsetLimits, Members$1.ZRotationLimits]);
17889
- const mate1Ref = useMateParam(drawingId, objectId, Members$1.Mate1Reference);
17890
- const mate2Ref = useMateParam(drawingId, objectId, Members$1.Mate2Reference);
17891
- const zOffset = useNumParam(drawingId, objectId, Members$1.ZOffset);
17892
- const xOffsetLimits = useLimitsParam(drawingId, objectId, Members$1.XOffsetLimits, {
17854
+ const [limitsCollapsed, setLimitsCollapsed] = useCollapsed(drawingId, objectId, [Members$2.XOffsetLimits, Members$2.YOffsetLimits, Members$2.ZRotationLimits]);
17855
+ const mate1Ref = useMateParam(drawingId, objectId, Members$2.Mate1Reference);
17856
+ const mate2Ref = useMateParam(drawingId, objectId, Members$2.Mate2Reference);
17857
+ const zOffset = useNumParam(drawingId, objectId, Members$2.ZOffset);
17858
+ const xOffsetLimits = useLimitsParam(drawingId, objectId, Members$2.XOffsetLimits, {
17893
17859
  forceNoLimits: limitsCollapsed
17894
17860
  });
17895
- const yOffsetLimits = useLimitsParam(drawingId, objectId, Members$1.YOffsetLimits, {
17861
+ const yOffsetLimits = useLimitsParam(drawingId, objectId, Members$2.YOffsetLimits, {
17896
17862
  forceNoLimits: limitsCollapsed
17897
17863
  });
17898
- const zRotationLimits = useLimitsParam(drawingId, objectId, Members$1.ZRotationLimits, {
17864
+ const zRotationLimits = useLimitsParam(drawingId, objectId, Members$2.ZRotationLimits, {
17899
17865
  angle: true,
17900
17866
  forceNoLimits: limitsCollapsed
17901
17867
  });
@@ -17982,38 +17948,38 @@ function RootImpl$3({
17982
17948
  }, /*#__PURE__*/React.createElement(LimitedValue, {
17983
17949
  drawingId: drawingId,
17984
17950
  objId: objectId,
17985
- memberName: Members$1.XOffsetValue,
17986
- limitsName: Members$1.XOffsetLimits,
17951
+ memberName: Members$2.XOffsetValue,
17952
+ limitsName: Members$2.XOffsetLimits,
17987
17953
  onUpdate: updateXOffset,
17988
17954
  caption: "Offset X",
17989
17955
  disabled: disableVals
17990
17956
  }), /*#__PURE__*/React.createElement(LimitedValue, {
17991
17957
  drawingId: drawingId,
17992
17958
  objId: objectId,
17993
- memberName: Members$1.YOffsetValue,
17994
- limitsName: Members$1.YOffsetLimits,
17959
+ memberName: Members$2.YOffsetValue,
17960
+ limitsName: Members$2.YOffsetLimits,
17995
17961
  onUpdate: updateYOffset,
17996
17962
  caption: "Offset Y",
17997
17963
  disabled: disableVals
17998
17964
  }), /*#__PURE__*/React.createElement(LimitedValue, {
17999
17965
  drawingId: drawingId,
18000
17966
  objId: objectId,
18001
- memberName: Members$1.ZRotationValue,
18002
- limitsName: Members$1.ZRotationLimits,
17967
+ memberName: Members$2.ZRotationValue,
17968
+ limitsName: Members$2.ZRotationLimits,
18003
17969
  onUpdate: updateRotation,
18004
17970
  caption: "Rotation Z",
18005
17971
  angle: true,
18006
17972
  disabled: disableVals
18007
17973
  })));
18008
17974
  }
18009
- const Root$3 = ({
17975
+ const Root$4 = ({
18010
17976
  drawingId,
18011
17977
  pluginId
18012
17978
  }) => {
18013
17979
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
18014
17980
  drawingId: drawingId,
18015
17981
  pluginId: pluginId
18016
- }, /*#__PURE__*/React.createElement(RootImpl$3, {
17982
+ }, /*#__PURE__*/React.createElement(RootImpl$4, {
18017
17983
  drawingId: drawingId,
18018
17984
  pluginId: pluginId
18019
17985
  }));
@@ -18043,7 +18009,7 @@ const View$2 = ({
18043
18009
  }));
18044
18010
  };
18045
18011
 
18046
- const description$3 = {
18012
+ const description$4 = {
18047
18013
  name: 'Planar',
18048
18014
  version: '1.0.0',
18049
18015
  author: 'Ledas',
@@ -18052,14 +18018,14 @@ const description$3 = {
18052
18018
  global: false
18053
18019
  };
18054
18020
 
18055
- var index$3 = /*#__PURE__*/Object.freeze({
18021
+ var index$4 = /*#__PURE__*/Object.freeze({
18056
18022
  __proto__: null,
18057
- Root: Root$3,
18023
+ Root: Root$4,
18058
18024
  View: View$2,
18059
- description: description$3
18025
+ description: description$4
18060
18026
  });
18061
18027
 
18062
- var Members;
18028
+ var Members$1;
18063
18029
  (function (Members) {
18064
18030
  Members["Mate1Reference"] = "firstRefMate";
18065
18031
  Members["Mate2Reference"] = "secondRefMate";
@@ -18071,8 +18037,8 @@ var Members;
18071
18037
  Members["ZOffsetLimits"] = "zOffsetLimits";
18072
18038
  Members["ZRotationValue"] = "zRotationValue";
18073
18039
  Members["ZRotationLimits"] = "zRotationLimits";
18074
- })(Members || (Members = {}));
18075
- function RootImpl$2({
18040
+ })(Members$1 || (Members$1 = {}));
18041
+ function RootImpl$3({
18076
18042
  drawingId,
18077
18043
  pluginId
18078
18044
  }) {
@@ -18082,19 +18048,19 @@ function RootImpl$2({
18082
18048
  const {
18083
18049
  objectId
18084
18050
  } = react.usePlugin(drawingId, pluginId, plugin => plugin);
18085
- const [limitsCollapsed, setLimitsCollapsed] = useCollapsed(drawingId, objectId, [Members.XOffsetLimits, Members.YOffsetLimits, Members.ZOffsetLimits, Members.ZRotationLimits]);
18086
- const mate1Ref = useMateParam(drawingId, objectId, Members.Mate1Reference);
18087
- const mate2Ref = useMateParam(drawingId, objectId, Members.Mate2Reference);
18088
- const xOffsetLimits = useLimitsParam(drawingId, objectId, Members.XOffsetLimits, {
18051
+ const [limitsCollapsed, setLimitsCollapsed] = useCollapsed(drawingId, objectId, [Members$1.XOffsetLimits, Members$1.YOffsetLimits, Members$1.ZOffsetLimits, Members$1.ZRotationLimits]);
18052
+ const mate1Ref = useMateParam(drawingId, objectId, Members$1.Mate1Reference);
18053
+ const mate2Ref = useMateParam(drawingId, objectId, Members$1.Mate2Reference);
18054
+ const xOffsetLimits = useLimitsParam(drawingId, objectId, Members$1.XOffsetLimits, {
18089
18055
  forceNoLimits: limitsCollapsed
18090
18056
  });
18091
- const yOffsetLimits = useLimitsParam(drawingId, objectId, Members.YOffsetLimits, {
18057
+ const yOffsetLimits = useLimitsParam(drawingId, objectId, Members$1.YOffsetLimits, {
18092
18058
  forceNoLimits: limitsCollapsed
18093
18059
  });
18094
- const zOffsetLimits = useLimitsParam(drawingId, objectId, Members.ZOffsetLimits, {
18060
+ const zOffsetLimits = useLimitsParam(drawingId, objectId, Members$1.ZOffsetLimits, {
18095
18061
  forceNoLimits: limitsCollapsed
18096
18062
  });
18097
- const zRotationLimits = useLimitsParam(drawingId, objectId, Members.ZRotationLimits, {
18063
+ const zRotationLimits = useLimitsParam(drawingId, objectId, Members$1.ZRotationLimits, {
18098
18064
  angle: true,
18099
18065
  forceNoLimits: limitsCollapsed
18100
18066
  });
@@ -18187,46 +18153,46 @@ function RootImpl$2({
18187
18153
  }, /*#__PURE__*/React.createElement(LimitedValue, {
18188
18154
  drawingId: drawingId,
18189
18155
  objId: objectId,
18190
- memberName: Members.XOffsetValue,
18191
- limitsName: Members.XOffsetLimits,
18156
+ memberName: Members$1.XOffsetValue,
18157
+ limitsName: Members$1.XOffsetLimits,
18192
18158
  onUpdate: updateXOffset,
18193
18159
  caption: "Offset X",
18194
18160
  disabled: disableVals
18195
18161
  }), /*#__PURE__*/React.createElement(LimitedValue, {
18196
18162
  drawingId: drawingId,
18197
18163
  objId: objectId,
18198
- memberName: Members.YOffsetValue,
18199
- limitsName: Members.YOffsetLimits,
18164
+ memberName: Members$1.YOffsetValue,
18165
+ limitsName: Members$1.YOffsetLimits,
18200
18166
  onUpdate: updateYOffset,
18201
18167
  caption: "Offset Y",
18202
18168
  disabled: disableVals
18203
18169
  }), /*#__PURE__*/React.createElement(LimitedValue, {
18204
18170
  drawingId: drawingId,
18205
18171
  objId: objectId,
18206
- memberName: Members.ZOffsetValue,
18207
- limitsName: Members.ZOffsetLimits,
18172
+ memberName: Members$1.ZOffsetValue,
18173
+ limitsName: Members$1.ZOffsetLimits,
18208
18174
  onUpdate: updateZOffset,
18209
18175
  caption: "Offset Z",
18210
18176
  disabled: disableVals
18211
18177
  }), /*#__PURE__*/React.createElement(LimitedValue, {
18212
18178
  drawingId: drawingId,
18213
18179
  objId: objectId,
18214
- memberName: Members.ZRotationValue,
18215
- limitsName: Members.ZRotationLimits,
18180
+ memberName: Members$1.ZRotationValue,
18181
+ limitsName: Members$1.ZRotationLimits,
18216
18182
  onUpdate: updateRotation,
18217
18183
  caption: "Rotation Z",
18218
18184
  angle: true,
18219
18185
  disabled: disableVals
18220
18186
  })));
18221
18187
  }
18222
- const Root$2 = ({
18188
+ const Root$3 = ({
18223
18189
  drawingId,
18224
18190
  pluginId
18225
18191
  }) => {
18226
18192
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
18227
18193
  drawingId: drawingId,
18228
18194
  pluginId: pluginId
18229
- }, /*#__PURE__*/React.createElement(RootImpl$2, {
18195
+ }, /*#__PURE__*/React.createElement(RootImpl$3, {
18230
18196
  drawingId: drawingId,
18231
18197
  pluginId: pluginId
18232
18198
  }));
@@ -18256,7 +18222,7 @@ const View$1 = ({
18256
18222
  }));
18257
18223
  };
18258
18224
 
18259
- const description$2 = {
18225
+ const description$3 = {
18260
18226
  name: 'Parallel',
18261
18227
  version: '1.0.0',
18262
18228
  author: 'Ledas',
@@ -18265,14 +18231,14 @@ const description$2 = {
18265
18231
  global: false
18266
18232
  };
18267
18233
 
18268
- var index$2 = /*#__PURE__*/Object.freeze({
18234
+ var index$3 = /*#__PURE__*/Object.freeze({
18269
18235
  __proto__: null,
18270
- Root: Root$2,
18236
+ Root: Root$3,
18271
18237
  View: View$1,
18272
- description: description$2
18238
+ description: description$3
18273
18239
  });
18274
18240
 
18275
- var img$q = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M9 95H91' stroke='black' stroke-width='5' stroke-miterlimit='10'/%3e%3cpath d='M50 21V84' stroke='black' stroke-width='5' stroke-miterlimit='10'/%3e%3cpath d='M33 69L50.2615 84L67 69.5357' stroke='black' stroke-width='5' stroke-miterlimit='10'/%3e%3cline x1='89.5' y1='97' x2='89.5' y2='85' stroke='black' stroke-width='3'/%3e%3cline x1='10.5' y1='84' x2='10.5' y2='97' stroke='black' stroke-width='3'/%3e%3c/svg%3e";
18241
+ var img$r = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M9 95H91' stroke='black' stroke-width='5' stroke-miterlimit='10'/%3e%3cpath d='M50 21V84' stroke='black' stroke-width='5' stroke-miterlimit='10'/%3e%3cpath d='M33 69L50.2615 84L67 69.5357' stroke='black' stroke-width='5' stroke-miterlimit='10'/%3e%3cline x1='89.5' y1='97' x2='89.5' y2='85' stroke='black' stroke-width='3'/%3e%3cline x1='10.5' y1='84' x2='10.5' y2='97' stroke='black' stroke-width='3'/%3e%3c/svg%3e";
18276
18242
 
18277
18243
  function useFileParam() {
18278
18244
  const [userValue, setUserValue] = React.useState(undefined);
@@ -18287,7 +18253,7 @@ function useFileParam() {
18287
18253
  isChanged
18288
18254
  });
18289
18255
  }
18290
- function RootImpl$1({
18256
+ function RootImpl$2({
18291
18257
  drawingId,
18292
18258
  pluginId
18293
18259
  }) {
@@ -18374,7 +18340,7 @@ function RootImpl$1({
18374
18340
  verticalAlign: 'top'
18375
18341
  }
18376
18342
  }, /*#__PURE__*/React.createElement("image", {
18377
- href: img$q,
18343
+ href: img$r,
18378
18344
  width: "14",
18379
18345
  height: "14"
18380
18346
  })), /*#__PURE__*/React.createElement("input", {
@@ -18387,20 +18353,20 @@ function RootImpl$1({
18387
18353
  onChange: onChange
18388
18354
  }))));
18389
18355
  }
18390
- const Root$1 = ({
18356
+ const Root$2 = ({
18391
18357
  drawingId,
18392
18358
  pluginId
18393
18359
  }) => {
18394
18360
  return /*#__PURE__*/React.createElement(FtPluginValidator, {
18395
18361
  drawingId: drawingId,
18396
18362
  pluginId: pluginId
18397
- }, /*#__PURE__*/React.createElement(RootImpl$1, {
18363
+ }, /*#__PURE__*/React.createElement(RootImpl$2, {
18398
18364
  drawingId: drawingId,
18399
18365
  pluginId: pluginId
18400
18366
  }));
18401
18367
  };
18402
18368
 
18403
- const description$1 = {
18369
+ const description$2 = {
18404
18370
  name: 'Import',
18405
18371
  version: '1.0.0',
18406
18372
  author: 'Ledas',
@@ -18409,6 +18375,64 @@ const description$1 = {
18409
18375
  global: false
18410
18376
  };
18411
18377
 
18378
+ var index$2 = /*#__PURE__*/Object.freeze({
18379
+ __proto__: null,
18380
+ Root: Root$2,
18381
+ description: description$2
18382
+ });
18383
+
18384
+ var Members;
18385
+ (function (Members) {
18386
+ Members["BodiesToDelete"] = "bodiesToDelete";
18387
+ })(Members || (Members = {}));
18388
+ function RootImpl$1({
18389
+ drawingId,
18390
+ pluginId
18391
+ }) {
18392
+ const {
18393
+ objectId
18394
+ } = react.usePlugin(drawingId, pluginId, plugin => plugin);
18395
+ const bodiesToDelete = useRefsParam(drawingId, objectId, Members.BodiesToDelete);
18396
+ const update = React.useCallback(() => {
18397
+ return classcad.ccAPI.feature.updateEntityDeletion(drawingId, objectId, bodiesToDelete.serverValue);
18398
+ }, [drawingId, objectId, bodiesToDelete]);
18399
+ return /*#__PURE__*/React.createElement(PluginForm, {
18400
+ drawingId: drawingId,
18401
+ update: update,
18402
+ params: {
18403
+ bodiesToCut: bodiesToDelete
18404
+ }
18405
+ }, /*#__PURE__*/React.createElement(RefsEditor, {
18406
+ drawingId: drawingId,
18407
+ param: bodiesToDelete,
18408
+ caption: "Solids",
18409
+ filter: core.solidFilter,
18410
+ customIdPicker: pickOwnerId
18411
+ }));
18412
+ }
18413
+ const Root$1 = ({
18414
+ drawingId,
18415
+ pluginId
18416
+ }) => {
18417
+ return /*#__PURE__*/React.createElement(FtPluginValidator, {
18418
+ drawingId: drawingId,
18419
+ pluginId: pluginId
18420
+ }, /*#__PURE__*/React.createElement(RootImpl$1, {
18421
+ drawingId: drawingId,
18422
+ pluginId: pluginId
18423
+ }));
18424
+ };
18425
+
18426
+ const description$1 = {
18427
+ name: 'EntityDeletion',
18428
+ version: '1.0.0',
18429
+ author: 'AWV',
18430
+ persistent: true,
18431
+ visible: false,
18432
+ global: false,
18433
+ initialState: {}
18434
+ };
18435
+
18412
18436
  var index$1 = /*#__PURE__*/Object.freeze({
18413
18437
  __proto__: null,
18414
18438
  Root: Root$1,
@@ -19247,6 +19271,103 @@ const FtVisibilityController = ({
19247
19271
  };
19248
19272
  var FtVisibilityController$1 = FtVisibilityController;
19249
19273
 
19274
+ const RecalcIfChanged = ({
19275
+ drawingId,
19276
+ objectId,
19277
+ recalc
19278
+ }) => {
19279
+ const position = react.useDrawing(drawingId, d => {
19280
+ var _d$structure$tree$obj, _d$structure$tree$obj2;
19281
+ return (_d$structure$tree$obj = d.structure.tree[objectId]) == null ? void 0 : (_d$structure$tree$obj2 = _d$structure$tree$obj.members) == null ? void 0 : _d$structure$tree$obj2.Position;
19282
+ });
19283
+ const curPosition = react.useDrawing(drawingId, d => {
19284
+ var _d$structure$tree$obj3, _d$structure$tree$obj4;
19285
+ return (_d$structure$tree$obj3 = d.structure.tree[objectId]) == null ? void 0 : (_d$structure$tree$obj4 = _d$structure$tree$obj3.members) == null ? void 0 : _d$structure$tree$obj4.curPosition;
19286
+ });
19287
+ const sketchBB = react.useDrawing(drawingId, d => {
19288
+ var _d$structure$tree$obj5, _d$structure$tree$obj6;
19289
+ return (_d$structure$tree$obj5 = d.structure.tree[objectId]) == null ? void 0 : (_d$structure$tree$obj6 = _d$structure$tree$obj5.members) == null ? void 0 : _d$structure$tree$obj6.boundingBox;
19290
+ });
19291
+ React.useEffect(() => {
19292
+ recalc();
19293
+ // eslint-disable-next-line react-hooks/exhaustive-deps
19294
+ }, [position, curPosition, sketchBB]);
19295
+ return null;
19296
+ };
19297
+
19298
+ /**
19299
+ * Contains combined visible plugin geometry bounding box
19300
+ */
19301
+ const PluginGeometryBounds = ({
19302
+ drawingId
19303
+ }) => {
19304
+ const curPartId = react.useDrawing(drawingId, d => d.structure.currentProduct || d.structure.root);
19305
+ const opSeqId = useOperationSequence(drawingId, curPartId) || NOCCID;
19306
+ const featureRefIds = useDrawingArr(drawingId, d => {
19307
+ var _d$structure$tree$opS;
19308
+ return (_d$structure$tree$opS = d.structure.tree[opSeqId]) == null ? void 0 : _d$structure$tree$opS.children;
19309
+ });
19310
+ const visible = useDrawingArr(drawingId, d => d.plugin.visible);
19311
+ const [needsRecalc, setNeedsRecalc] = React.useState(0);
19312
+ const recalc = React.useCallback(() => {
19313
+ setNeedsRecalc(val => val + 1);
19314
+ }, []);
19315
+ const {
19316
+ bb,
19317
+ features
19318
+ } = React.useMemo(() => {
19319
+ const tree = core.getDrawing(drawingId).structure.tree;
19320
+ const featureIds = featureRefIds.map(refId => {
19321
+ var _tree$refId, _tree$refId$members, _tree$refId$members$r;
19322
+ return (_tree$refId = tree[refId]) == null ? void 0 : (_tree$refId$members = _tree$refId.members) == null ? void 0 : (_tree$refId$members$r = _tree$refId$members.refObj) == null ? void 0 : _tree$refId$members$r.value;
19323
+ });
19324
+ const visibleFeatureIds = featureIds.filter(id => visible.indexOf(id) !== -1);
19325
+ const bb_ = new THREE__namespace.Box3();
19326
+ visibleFeatureIds.forEach(id => {
19327
+ const obj = tree[id];
19328
+ const objClass = obj.class;
19329
+ switch (objClass) {
19330
+ case classcad.CCClasses.CCWorkPoint:
19331
+ case classcad.CCClasses.CCWorkAxis:
19332
+ case classcad.CCClasses.CCWorkCoordSystem:
19333
+ {
19334
+ var _obj$members;
19335
+ bb_.expandByPoint(convertToVector((_obj$members = obj.members) == null ? void 0 : _obj$members.Position));
19336
+ break;
19337
+ }
19338
+ case classcad.CCClasses.CCWorkPlane:
19339
+ {
19340
+ var _obj$members2;
19341
+ bb_.expandByPoint(convertToVector((_obj$members2 = obj.members) == null ? void 0 : _obj$members2.curPosition));
19342
+ break;
19343
+ }
19344
+ case classcad.CCClasses.CCSketch:
19345
+ {
19346
+ var _obj$members3;
19347
+ const sketchBB = (_obj$members3 = obj.members) == null ? void 0 : _obj$members3.boundingBox;
19348
+ const [min, max] = sketchBB.members.map(memb => convertToVector(memb));
19349
+ bb_.expandByPoint(min);
19350
+ bb_.expandByPoint(max);
19351
+ break;
19352
+ }
19353
+ }
19354
+ });
19355
+ return {
19356
+ bb: bb_,
19357
+ features: visibleFeatureIds
19358
+ };
19359
+ // eslint-disable-next-line react-hooks/exhaustive-deps
19360
+ }, [drawingId, featureRefIds, visible, needsRecalc]);
19361
+ return /*#__PURE__*/React.createElement(React.Fragment, null, !bb.isEmpty() && /*#__PURE__*/React.createElement("mesh", null, /*#__PURE__*/React.createElement("bufferGeometry", {
19362
+ boundingBox: bb
19363
+ })), features.map(id => /*#__PURE__*/React.createElement(RecalcIfChanged, {
19364
+ key: id,
19365
+ drawingId: drawingId,
19366
+ objectId: id,
19367
+ recalc: recalc
19368
+ })));
19369
+ };
19370
+
19250
19371
  const mateNames$1 = ['firstRefMate', 'secondRefMate'];
19251
19372
  const getCSysKey = uData => uData.csysId.toString() + ', ' + uData.matePath.toString();
19252
19373
  const HoveredConstraintDisplay = ({
@@ -19752,6 +19873,52 @@ const Outline = /*#__PURE__*/React.forwardRef(function Outline(_ref, forwardRef)
19752
19873
  });
19753
19874
  });
19754
19875
 
19876
+ const useVisibleSolids = drawingId => {
19877
+ const curNodeId = react.useDrawing(drawingId, d => d.structure.currentNode);
19878
+ const curProdId = react.useDrawing(drawingId, d => d.structure.currentProduct);
19879
+ const solidsIds = useDrawingArr(drawingId, d => {
19880
+ var _d$structure$tree$cur;
19881
+ return (_d$structure$tree$cur = d.structure.tree[curProdId]) == null ? void 0 : _d$structure$tree$cur.solids;
19882
+ });
19883
+
19884
+ // This useDrawing is used ONLY for reactiveness, since we don't want to react to all the tree changes, and reacting to current node's children changes should be enough
19885
+ react.useDrawing(drawingId, d => {
19886
+ var _d$structure$tree$cur2;
19887
+ return (_d$structure$tree$cur2 = d.structure.tree[curNodeId]) == null ? void 0 : _d$structure$tree$cur2.children;
19888
+ });
19889
+ const tree = core.getDrawing(drawingId).structure.tree;
19890
+ const descendants = curNodeId ? getDescendants(tree, curNodeId) : [];
19891
+ const partDescendants = descendants.filter((id, i) => {
19892
+ var _node$members, _node$members$product;
19893
+ const node = tree[id];
19894
+ if (node && !classcad.ccUtils.base.isA(node.class, classcad.CCClasses.IProductReference)) {
19895
+ return false;
19896
+ }
19897
+ const product = tree[(_node$members = node.members) == null ? void 0 : (_node$members$product = _node$members.productId) == null ? void 0 : _node$members$product.value];
19898
+ if (product && !classcad.ccUtils.base.isA(product.class, classcad.CCClasses.CCPart)) {
19899
+ return false;
19900
+ }
19901
+ if (descendants.indexOf(id) !== i) {
19902
+ return false;
19903
+ }
19904
+ return true;
19905
+ });
19906
+ let solids = [];
19907
+ partDescendants.forEach(id => {
19908
+ var _node$members2, _node$members2$produc;
19909
+ const node = tree[id];
19910
+ const product = tree[(_node$members2 = node.members) == null ? void 0 : (_node$members2$produc = _node$members2.productId) == null ? void 0 : _node$members2$produc.value];
19911
+ const solids_ = product == null ? void 0 : product.solids;
19912
+ solids_ && solids.push(...solids_);
19913
+ });
19914
+ if (solids.length === 0) {
19915
+ // Use currentProduct solids if no other solids are available.
19916
+ solids = solidsIds;
19917
+ }
19918
+ const solidsUnique = solids.filter((id, i) => solids.indexOf(id) === i);
19919
+ return solidsUnique;
19920
+ };
19921
+
19755
19922
  const mateNames = ['firstRefMate', 'secondRefMate'];
19756
19923
  const getMateRefIds = (drawingId, constrId) => {
19757
19924
  var _tree$constrId;
@@ -21721,7 +21888,7 @@ const ModelTreeHeader = ({
21721
21888
  display: 'flex',
21722
21889
  alignItems: 'center'
21723
21890
  }
21724
- }, exportComponent, mode === EditMode.Assembly && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(antd.Tooltip, {
21891
+ }, exportComponent, mode === exports.EditMode.Assembly && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(antd.Tooltip, {
21725
21892
  title: "Convert to subassembly"
21726
21893
  }, /*#__PURE__*/React.createElement(antd.Button, {
21727
21894
  style: {
@@ -21790,20 +21957,20 @@ const ModelTreeImpl = ({
21790
21957
  flexDirection: 'column',
21791
21958
  height: '100%'
21792
21959
  }
21793
- }, mode !== EditMode.None && /*#__PURE__*/React.createElement(ModelTreeHeader, {
21960
+ }, mode !== exports.EditMode.None && /*#__PURE__*/React.createElement(ModelTreeHeader, {
21794
21961
  drawingId: drawingId
21795
21962
  }), /*#__PURE__*/React.createElement("div", {
21796
21963
  style: {
21797
21964
  overflowY: 'auto'
21798
21965
  }
21799
- }, mode === EditMode.Part && /*#__PURE__*/React.createElement(FeatureList, {
21966
+ }, mode === exports.EditMode.Part && /*#__PURE__*/React.createElement(FeatureList, {
21800
21967
  drawingId: drawingId
21801
- }), mode === EditMode.Assembly && children.map(childId => /*#__PURE__*/React.createElement(AssemblyNode, {
21968
+ }), mode === exports.EditMode.Assembly && children.map(childId => /*#__PURE__*/React.createElement(AssemblyNode, {
21802
21969
  drawingId: drawingId,
21803
21970
  nodeId: childId,
21804
21971
  key: childId,
21805
21972
  level: 0
21806
- }))), mode === EditMode.None && /*#__PURE__*/React.createElement(ListPlaceholder, null));
21973
+ }))), mode === exports.EditMode.None && /*#__PURE__*/React.createElement(ListPlaceholder, null));
21807
21974
  };
21808
21975
 
21809
21976
  /**
@@ -21824,50 +21991,7 @@ const ModelTree = ({
21824
21991
  }));
21825
21992
  };
21826
21993
 
21827
- const useVisibleSolids = drawingId => {
21828
- const curNodeId = react.useDrawing(drawingId, d => d.structure.currentNode);
21829
- const curProdId = react.useDrawing(drawingId, d => d.structure.currentProduct);
21830
- const solidsIds = useDrawingArr(drawingId, d => d.structure.tree[curProdId].solids);
21831
-
21832
- // This useDrawing is used ONLY for reactiveness, since we don't want to react to all the tree changes, and reacting to current node's children changes should be enough
21833
- react.useDrawing(drawingId, d => {
21834
- var _d$structure$tree$cur;
21835
- return (_d$structure$tree$cur = d.structure.tree[curNodeId]) == null ? void 0 : _d$structure$tree$cur.children;
21836
- });
21837
- const tree = core.getDrawing(drawingId).structure.tree;
21838
- const descendants = curNodeId ? getDescendants(tree, curNodeId) : [];
21839
- const partDescendants = descendants.filter((id, i) => {
21840
- var _node$members, _node$members$product;
21841
- const node = tree[id];
21842
- if (node && !classcad.ccUtils.base.isA(node.class, classcad.CCClasses.IProductReference)) {
21843
- return false;
21844
- }
21845
- const product = tree[(_node$members = node.members) == null ? void 0 : (_node$members$product = _node$members.productId) == null ? void 0 : _node$members$product.value];
21846
- if (product && !classcad.ccUtils.base.isA(product.class, classcad.CCClasses.CCPart)) {
21847
- return false;
21848
- }
21849
- if (descendants.indexOf(id) !== i) {
21850
- return false;
21851
- }
21852
- return true;
21853
- });
21854
- let solids = [];
21855
- partDescendants.forEach(id => {
21856
- var _node$members2, _node$members2$produc;
21857
- const node = tree[id];
21858
- const product = tree[(_node$members2 = node.members) == null ? void 0 : (_node$members2$produc = _node$members2.productId) == null ? void 0 : _node$members2$produc.value];
21859
- const solids_ = product == null ? void 0 : product.solids;
21860
- solids_ && solids.push(...solids_);
21861
- });
21862
- if (solids.length === 0) {
21863
- // Use currentProduct solids if no other solids are available.
21864
- solids = solidsIds;
21865
- }
21866
- const solidsUnique = solids.filter((id, i) => solids.indexOf(id) === i);
21867
- return solidsUnique;
21868
- };
21869
-
21870
- function useMenuItems(setEditName) {
21994
+ function useMenuItems(drawingId, solidId, setEditName) {
21871
21995
  return React.useMemo(() => {
21872
21996
  return {
21873
21997
  rename: {
@@ -21876,9 +22000,32 @@ function useMenuItems(setEditName) {
21876
22000
  callback: () => {
21877
22001
  setEditName(true);
21878
22002
  }
22003
+ },
22004
+ delete: {
22005
+ caption: 'delete',
22006
+ icon: /*#__PURE__*/React.createElement(icons.DeleteOutlined, null),
22007
+ callback: () => {
22008
+ var _drawing$graphic$cont, _drawing$structure$tr;
22009
+ const drawing = core.getDrawing(drawingId);
22010
+ const curProdId = drawing.structure.currentProduct;
22011
+ if (!curProdId) {
22012
+ return;
22013
+ }
22014
+ const solidOwner = (_drawing$graphic$cont = drawing.graphic.containers[solidId]) == null ? void 0 : _drawing$graphic$cont.owner;
22015
+ const selectedInfo = drawing.interaction.selected || [];
22016
+ const curSolids = ((_drawing$structure$tr = drawing.structure.tree[curProdId]) == null ? void 0 : _drawing$structure$tr.solids) || [];
22017
+ const selectedSolids = selectedInfo.filter(info => info.graphicId && curSolids.indexOf(info.graphicId) !== -1).map(info => info.objectId);
22018
+ const ids = selectedSolids.indexOf(solidOwner) === -1 && curSolids.indexOf(solidId) !== -1 ? [...selectedSolids, solidOwner] : selectedSolids;
22019
+ classcad.ccAPI.feature.createFeature(drawingId, curProdId, 'CC_EntityDeletion', 'Entity Deletion').then(res => {
22020
+ if (res) {
22021
+ classcad.ccAPI.feature.updateEntityDeletion(drawingId, res, ids);
22022
+ }
22023
+ }).catch(console.warn);
22024
+ drawing.api.interaction.setSelected([]);
22025
+ }
21879
22026
  }
21880
22027
  };
21881
- }, [setEditName]);
22028
+ }, [drawingId, solidId, setEditName]);
21882
22029
  }
21883
22030
 
21884
22031
  var css_248z$1 = "/*\n The only way to customize color picker from react-colorful is using css classes, so we need this file here.\n*/\n.colorPicker {\n border: 1px solid rgb(200, 200, 200);\n border-radius: 4px;\n padding: 4px;\n background-color: rgb(250, 250, 250);\n}\n\n.colorPicker .react-colorful {\n width: 150px;\n height: 150px;\n}\n\n.colorPicker .react-colorful__hue {\n height: 16px;\n}\n\n.colorPicker .react-colorful__pointer {\n width: 20px;\n height: 20px;\n}\n\n.colorPicker .react-colorful__saturation {\n border-radius: 4px 4px 0 0;\n}\n\n.colorPicker .react-colorful__last-control {\n border-radius: 0 0 4px 4px;\n}\n\n.colorPicker-dropdown {\n color: transparent;\n}\n\n.colorPicker-dropdown .ant-dropdown-menu-root {\n padding: 0px;\n background-color: transparent;\n box-shadow: none;\n}\n\n.colorPicker-dropdown .ant-dropdown-menu-root .ant-dropdown-menu-item {\n padding: 0px;\n color: transparent;\n background-color: transparent;\n}\n";
@@ -22019,16 +22166,6 @@ const ColorPicker = ({
22019
22166
  });
22020
22167
  const [showPicker, setShowPicker] = React.useState(false);
22021
22168
 
22022
- // Update user color and opacity if they were changed on server
22023
- React.useEffect(() => {
22024
- setUColor({
22025
- r,
22026
- g,
22027
- b,
22028
- a: opacity
22029
- });
22030
- }, [r, g, b, opacity]);
22031
-
22032
22169
  // Set the origin color and opacity foreach solid, if it is not set yet. It will be used to reset the color in case of user canceled the input.
22033
22170
  React.useEffect(() => {
22034
22171
  if (!showPicker) {
@@ -22296,7 +22433,7 @@ const Solid = ({
22296
22433
  underlined: isHovered,
22297
22434
  strong: isSelected
22298
22435
  });
22299
- const menuItems = useMenuItems(setRename);
22436
+ const menuItems = useMenuItems(drawingId, solidId, setRename);
22300
22437
  return /*#__PURE__*/React.createElement(HoveredDiv, {
22301
22438
  style: {
22302
22439
  flex: 1,
@@ -22415,39 +22552,41 @@ const SideBar = ({
22415
22552
  var css_248z = ".toolbar-dropdown .ant-dropdown-menu-root {\n margin-left: -24px;\n}\n";
22416
22553
  styleInject(css_248z);
22417
22554
 
22418
- var img$p = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M54.59 49.2615V54.9931H48.7075H42.8251V49.2615V43.5299H48.7075H54.59V49.2615Z' fill='%23C4C4C4'/%3e%3cpath d='M42.8251 43.5299L34.0767 35.0832M42.8251 43.5299V49.2615M42.8251 43.5299H48.7075M42.8251 54.9931L34.0767 64.1437M42.8251 54.9931V49.2615M42.8251 54.9931H48.7075M54.59 54.9931L63.0366 64.1437M54.59 54.9931V49.2615M54.59 54.9931H48.7075M54.59 43.5299L63.0366 35.0832M54.59 43.5299V49.2615M54.59 43.5299H48.7075M54.59 49.2615H79.1254M42.8251 49.2615H17.9879M48.7075 43.5299L48.7075 18.9944M48.7075 54.9931L48.7075 79.8303' stroke='black' stroke-width='4'/%3e%3c/svg%3e";
22555
+ var img$q = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M54.59 49.2615V54.9931H48.7075H42.8251V49.2615V43.5299H48.7075H54.59V49.2615Z' fill='%23C4C4C4'/%3e%3cpath d='M42.8251 43.5299L34.0767 35.0832M42.8251 43.5299V49.2615M42.8251 43.5299H48.7075M42.8251 54.9931L34.0767 64.1437M42.8251 54.9931V49.2615M42.8251 54.9931H48.7075M54.59 54.9931L63.0366 64.1437M54.59 54.9931V49.2615M54.59 54.9931H48.7075M54.59 43.5299L63.0366 35.0832M54.59 43.5299V49.2615M54.59 43.5299H48.7075M54.59 49.2615H79.1254M42.8251 49.2615H17.9879M48.7075 43.5299L48.7075 18.9944M48.7075 54.9931L48.7075 79.8303' stroke='black' stroke-width='4'/%3e%3c/svg%3e";
22556
+
22557
+ var img$p = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg clip-path='url(%23clip0)'%3e%3cpath d='M23.3951 -18.3953C26.7929 -27.63 31.0227 -40.7314 31.0227 -40.7314L38.6065 -18.3796L31.0008 -18.3874L23.3951 -18.3953Z' fill='%23C4C4C4'/%3e%3cpath d='M30.9497 33.7484L31.0008 -18.3874M31.0008 -18.3874L23.3951 -18.3953C26.7929 -27.63 31.0227 -40.7314 31.0227 -40.7314L38.6065 -18.3796L31.0008 -18.3874Z' stroke='%23C4C4C4' stroke-width='5'/%3e%3cpath d='M-19.6068 58.8999C-29.4464 58.8234 -43.2064 59.2709 -43.2064 59.2709L-24.7335 44.5785L-22.1701 51.7392L-19.6068 58.8999Z' fill='%23C4C4C4'/%3e%3cpath d='M26.9146 34.1651L-22.1701 51.7392M-22.1701 51.7392L-19.6068 58.8999C-29.4464 58.8234 -43.2064 59.2709 -43.2064 59.2709L-24.7335 44.5785L-22.1701 51.7392Z' stroke='%23C4C4C4' stroke-width='5'/%3e%3cpath d='M71.7906 62.6511C76.2149 71.4403 82.8953 83.4781 82.8953 83.4781L61.3896 73.7508L66.5901 68.201L71.7906 62.6511Z' fill='black'/%3e%3cpath d='M28.5445 32.5543L66.5901 68.201M66.5901 68.201L71.7906 62.6511C76.2149 71.4403 82.8953 83.4781 82.8953 83.4781L61.3896 73.7508L66.5901 68.201Z' stroke='black' stroke-width='5'/%3e%3ccircle cx='30.9862' cy='33.7406' r='14.6466' transform='rotate(10.304 30.9862 33.7406)' fill='%23C4C4C4'/%3e%3c/g%3e%3cdefs%3e%3cclipPath id='clip0'%3e%3crect width='100' height='100' fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e";
22419
22558
 
22420
- var img$o = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg clip-path='url(%23clip0)'%3e%3cpath d='M23.3951 -18.3953C26.7929 -27.63 31.0227 -40.7314 31.0227 -40.7314L38.6065 -18.3796L31.0008 -18.3874L23.3951 -18.3953Z' fill='%23C4C4C4'/%3e%3cpath d='M30.9497 33.7484L31.0008 -18.3874M31.0008 -18.3874L23.3951 -18.3953C26.7929 -27.63 31.0227 -40.7314 31.0227 -40.7314L38.6065 -18.3796L31.0008 -18.3874Z' stroke='%23C4C4C4' stroke-width='5'/%3e%3cpath d='M-19.6068 58.8999C-29.4464 58.8234 -43.2064 59.2709 -43.2064 59.2709L-24.7335 44.5785L-22.1701 51.7392L-19.6068 58.8999Z' fill='%23C4C4C4'/%3e%3cpath d='M26.9146 34.1651L-22.1701 51.7392M-22.1701 51.7392L-19.6068 58.8999C-29.4464 58.8234 -43.2064 59.2709 -43.2064 59.2709L-24.7335 44.5785L-22.1701 51.7392Z' stroke='%23C4C4C4' stroke-width='5'/%3e%3cpath d='M71.7906 62.6511C76.2149 71.4403 82.8953 83.4781 82.8953 83.4781L61.3896 73.7508L66.5901 68.201L71.7906 62.6511Z' fill='black'/%3e%3cpath d='M28.5445 32.5543L66.5901 68.201M66.5901 68.201L71.7906 62.6511C76.2149 71.4403 82.8953 83.4781 82.8953 83.4781L61.3896 73.7508L66.5901 68.201Z' stroke='black' stroke-width='5'/%3e%3ccircle cx='30.9862' cy='33.7406' r='14.6466' transform='rotate(10.304 30.9862 33.7406)' fill='%23C4C4C4'/%3e%3c/g%3e%3cdefs%3e%3cclipPath id='clip0'%3e%3crect width='100' height='100' fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e";
22559
+ var img$o = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M76 68H24V32H50H76V50.3396V68Z' fill='%239D9D9C'/%3e%3cpath d='M50 32V50.3396H76M50 32H24V68H76V50.3396L50 32ZM50 32H76V50.3396L50 32Z' stroke='black' stroke-width='5'/%3e%3c/svg%3e";
22421
22560
 
22422
- var img$n = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M76 68H24V32H50H76V50.3396V68Z' fill='%239D9D9C'/%3e%3cpath d='M50 32V50.3396H76M50 32H24V68H76V50.3396L50 32ZM50 32H76V50.3396L50 32Z' stroke='black' stroke-width='5'/%3e%3c/svg%3e";
22561
+ var img$n = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M50.0022 18.8763L56.8295 30.8519H50.0029H42.9422L50.0022 18.8763Z' fill='black'/%3e%3cpath d='M50.0044 58.7949L50.0029 30.8519M50.0029 30.8519H56.8295L50.0022 18.8763L42.9422 30.8519H50.0029Z' stroke='black' stroke-width='5'/%3e%3cpath d='M13.575 80.0459L20.5325 68.1455L23.9458 74.0575L27.4762 80.1723L13.575 80.0459Z' fill='black'/%3e%3cpath d='M48.1444 60.0847L23.9458 74.0575M23.9458 74.0575L20.5325 68.1455L13.575 80.0459L27.4762 80.1723L23.9458 74.0575Z' stroke='black' stroke-width='5'/%3e%3cpath d='M86.5163 80.2449L72.7315 80.1697L76.1448 74.2577L79.6751 68.1429L86.5163 80.2449Z' fill='black'/%3e%3cpath d='M51.9447 60.2875L76.1448 74.2577M76.1448 74.2577L72.7315 80.1697L86.5163 80.2449L79.6751 68.1429L76.1448 74.2577Z' stroke='black' stroke-width='5'/%3e%3ccircle cx='50.0032' cy='58.4568' r='9.47496' fill='black'/%3e%3c/svg%3e";
22423
22562
 
22424
- var img$m = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M50.0022 18.8763L56.8295 30.8519H50.0029H42.9422L50.0022 18.8763Z' fill='black'/%3e%3cpath d='M50.0044 58.7949L50.0029 30.8519M50.0029 30.8519H56.8295L50.0022 18.8763L42.9422 30.8519H50.0029Z' stroke='black' stroke-width='5'/%3e%3cpath d='M13.575 80.0459L20.5325 68.1455L23.9458 74.0575L27.4762 80.1723L13.575 80.0459Z' fill='black'/%3e%3cpath d='M48.1444 60.0847L23.9458 74.0575M23.9458 74.0575L20.5325 68.1455L13.575 80.0459L27.4762 80.1723L23.9458 74.0575Z' stroke='black' stroke-width='5'/%3e%3cpath d='M86.5163 80.2449L72.7315 80.1697L76.1448 74.2577L79.6751 68.1429L86.5163 80.2449Z' fill='black'/%3e%3cpath d='M51.9447 60.2875L76.1448 74.2577M76.1448 74.2577L72.7315 80.1697L86.5163 80.2449L79.6751 68.1429L76.1448 74.2577Z' stroke='black' stroke-width='5'/%3e%3ccircle cx='50.0032' cy='58.4568' r='9.47496' fill='black'/%3e%3c/svg%3e";
22563
+ var img$m = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M61 69.5C71.7696 69.5 80.5 60.7696 80.5 50C80.5 39.2304 71.7696 30.5 61 30.5C50.2304 30.5 41.5 39.2304 41.5 50C41.5 60.7696 50.2304 69.5 61 69.5Z' fill='%239D9D9C' stroke='black' stroke-width='5'/%3e%3cpath d='M39 69.5C49.7696 69.5 58.5 60.7696 58.5 50C58.5 39.2304 49.7696 30.5 39 30.5C28.2304 30.5 19.5 39.2304 19.5 50C19.5 60.7696 28.2304 69.5 39 69.5Z' stroke='black' stroke-width='5'/%3e%3c/svg%3e";
22425
22564
 
22426
- var img$l = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M61 69.5C71.7696 69.5 80.5 60.7696 80.5 50C80.5 39.2304 71.7696 30.5 61 30.5C50.2304 30.5 41.5 39.2304 41.5 50C41.5 60.7696 50.2304 69.5 61 69.5Z' fill='%239D9D9C' stroke='black' stroke-width='5'/%3e%3cpath d='M39 69.5C49.7696 69.5 58.5 60.7696 58.5 50C58.5 39.2304 49.7696 30.5 39 30.5C28.2304 30.5 19.5 39.2304 19.5 50C19.5 60.7696 28.2304 69.5 39 69.5Z' stroke='black' stroke-width='5'/%3e%3c/svg%3e";
22565
+ var img$l = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M80 64.2836C80 65.2687 80.5 66.0149 80.5 67L79 67.7313L73 71.1791L52.5 83.5C52.25 77.3433 50.5 71.1791 49 66.2537L77.5 49.5C78.25 51.9627 79.25 55.0448 79.5 58C80 59.9701 79.75 62.0672 80 64.2836Z' fill='%239D9D9C'/%3e%3cpath d='M63.1637 25C68.6959 30.4337 74.731 38.5843 78 49.6988L49.5848 66C46.3158 55.3795 40.5322 47.2289 35 41.3012L63.1637 25Z' fill='white'/%3e%3cpath d='M64.5 25L35.1739 42C30.4534 37.0476 24.9814 32.981 22 31L42.5 19H43.6211L50.5 15C50.9969 15.2476 53.0062 16.2571 54 17C55.2422 17.7429 56.7609 19.0143 58.5 20.5C59.7422 21.7381 62.5124 23.019 64.5 25Z' fill='%239D9D9C'/%3e%3cpath d='M20 35C22.8 36.7225 27.4273 40.0628 31.5 44C39.3909 51.6283 46.7273 64.5445 48 82.7539C48 82.7539 48 82.7539 48 83L20 67.4974V35Z' fill='%239D9D9C'/%3e%3cpath d='M35.3986 41.5077C40.8007 47.4154 46.4484 55.5385 49.6406 66.1231C51.3594 71.0462 52.3416 76.7077 52.5872 82.8615L73.2135 71.0462L79.1068 67.6L80.089 67.1077C80.089 66.1231 80.089 65.1385 80.089 64.1538C79.8434 61.9385 79.8434 59.9692 79.3523 58C78.8612 55.0462 78.3701 52.3385 77.6335 49.8769C74.4413 38.8 68.7936 30.9231 63.1459 25.2615C61.1815 23.2923 59.4626 21.8154 57.7438 20.3385C56.0249 18.8615 54.306 17.8769 53.0783 16.8923C52.0961 16.1538 51.3594 15.9077 50.6228 15.4154L44.2384 19.1077L43.5018 19.3538L23.121 31.1692C26.5587 33.3846 30.9786 36.5846 35.3986 41.5077ZM16 29.9385L50.3772 10C50.6228 10 51.1139 10.2462 51.605 10.4923C51.605 10.4923 51.8505 10.4923 52.0961 10.7385C52.0961 10.7385 52.3416 10.7385 52.3416 10.9846C52.5872 11.2308 53.0783 11.2308 53.5694 11.7231C53.5694 11.7231 53.8149 11.7231 53.8149 11.9692C54.0605 11.9692 54.0605 12.2154 54.306 12.2154C60.4448 15.9077 75.1779 26.7385 81.8078 47.1692C83.7722 53.0769 85 59.7231 85 67.3538C85 67.6 85 67.6 85 67.8462C85 68.0923 85 68.3385 85 68.5846C85 69.0769 85 69.8154 84.7545 70.0615L50.6228 90L16 70.0615V29.9385ZM31.2242 43.9692C27.2954 40.0308 23.6121 37.0769 20.911 35.6V67.1077L47.9217 82.6154C47.9217 82.6154 47.9217 82.6154 47.9217 82.3692C46.694 64.1539 38.8363 51.8462 31.2242 43.9692Z' fill='black'/%3e%3c/svg%3e";
22427
22566
 
22428
- var img$k = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M80 64.2836C80 65.2687 80.5 66.0149 80.5 67L79 67.7313L73 71.1791L52.5 83.5C52.25 77.3433 50.5 71.1791 49 66.2537L77.5 49.5C78.25 51.9627 79.25 55.0448 79.5 58C80 59.9701 79.75 62.0672 80 64.2836Z' fill='%239D9D9C'/%3e%3cpath d='M63.1637 25C68.6959 30.4337 74.731 38.5843 78 49.6988L49.5848 66C46.3158 55.3795 40.5322 47.2289 35 41.3012L63.1637 25Z' fill='white'/%3e%3cpath d='M64.5 25L35.1739 42C30.4534 37.0476 24.9814 32.981 22 31L42.5 19H43.6211L50.5 15C50.9969 15.2476 53.0062 16.2571 54 17C55.2422 17.7429 56.7609 19.0143 58.5 20.5C59.7422 21.7381 62.5124 23.019 64.5 25Z' fill='%239D9D9C'/%3e%3cpath d='M20 35C22.8 36.7225 27.4273 40.0628 31.5 44C39.3909 51.6283 46.7273 64.5445 48 82.7539C48 82.7539 48 82.7539 48 83L20 67.4974V35Z' fill='%239D9D9C'/%3e%3cpath d='M35.3986 41.5077C40.8007 47.4154 46.4484 55.5385 49.6406 66.1231C51.3594 71.0462 52.3416 76.7077 52.5872 82.8615L73.2135 71.0462L79.1068 67.6L80.089 67.1077C80.089 66.1231 80.089 65.1385 80.089 64.1538C79.8434 61.9385 79.8434 59.9692 79.3523 58C78.8612 55.0462 78.3701 52.3385 77.6335 49.8769C74.4413 38.8 68.7936 30.9231 63.1459 25.2615C61.1815 23.2923 59.4626 21.8154 57.7438 20.3385C56.0249 18.8615 54.306 17.8769 53.0783 16.8923C52.0961 16.1538 51.3594 15.9077 50.6228 15.4154L44.2384 19.1077L43.5018 19.3538L23.121 31.1692C26.5587 33.3846 30.9786 36.5846 35.3986 41.5077ZM16 29.9385L50.3772 10C50.6228 10 51.1139 10.2462 51.605 10.4923C51.605 10.4923 51.8505 10.4923 52.0961 10.7385C52.0961 10.7385 52.3416 10.7385 52.3416 10.9846C52.5872 11.2308 53.0783 11.2308 53.5694 11.7231C53.5694 11.7231 53.8149 11.7231 53.8149 11.9692C54.0605 11.9692 54.0605 12.2154 54.306 12.2154C60.4448 15.9077 75.1779 26.7385 81.8078 47.1692C83.7722 53.0769 85 59.7231 85 67.3538C85 67.6 85 67.6 85 67.8462C85 68.0923 85 68.3385 85 68.5846C85 69.0769 85 69.8154 84.7545 70.0615L50.6228 90L16 70.0615V29.9385ZM31.2242 43.9692C27.2954 40.0308 23.6121 37.0769 20.911 35.6V67.1077L47.9217 82.6154C47.9217 82.6154 47.9217 82.6154 47.9217 82.3692C46.694 64.1539 38.8363 51.8462 31.2242 43.9692Z' fill='black'/%3e%3c/svg%3e";
22567
+ var img$k = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M83.5 47.5L84 69.5L53 88V65.4255L83.5 47.5Z' fill='%239D9D9C'/%3e%3cpath d='M72.2041 27L82 42.2927L50.9796 60L42 44.439L72.2041 27Z' fill='white'/%3e%3cpath d='M69 23L38.5 41.5L20 29.5686L50.1017 12L69 23Z' fill='%239D9D9C'/%3e%3cpath d='M48 64.5236V88L17 69.2408V34L36.5496 44.822L48 64.5236Z' fill='%239D9D9C'/%3e%3cpath d='M83.266 69.5323V48.1723L53.2305 65.6985V87.0585L83.266 69.5323ZM38.4858 40.2308L68.5213 22.9785L50.5 12.2985L20.4645 29.8246L38.4858 40.2308ZM72.617 26.8123L42.0355 44.3385L51.3191 60.2215L82.4468 42.4215L72.617 26.8123ZM50.5 95L12 72.8185V28.1815L50.5 6L69.6135 17.2277L70.1596 17.5015L72.0709 18.5969L75.3475 20.5138L75.6206 20.7877L89 42.1477V43.5169V47.3508V50.9108V72.8185L50.5 95ZM47.7695 64.8769L36.5745 45.4338L17.461 34.48V69.5323L47.7695 87.0585V64.8769V64.8769Z' fill='black'/%3e%3c/svg%3e";
22429
22568
 
22430
- var img$j = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M83.5 47.5L84 69.5L53 88V65.4255L83.5 47.5Z' fill='%239D9D9C'/%3e%3cpath d='M72.2041 27L82 42.2927L50.9796 60L42 44.439L72.2041 27Z' fill='white'/%3e%3cpath d='M69 23L38.5 41.5L20 29.5686L50.1017 12L69 23Z' fill='%239D9D9C'/%3e%3cpath d='M48 64.5236V88L17 69.2408V34L36.5496 44.822L48 64.5236Z' fill='%239D9D9C'/%3e%3cpath d='M83.266 69.5323V48.1723L53.2305 65.6985V87.0585L83.266 69.5323ZM38.4858 40.2308L68.5213 22.9785L50.5 12.2985L20.4645 29.8246L38.4858 40.2308ZM72.617 26.8123L42.0355 44.3385L51.3191 60.2215L82.4468 42.4215L72.617 26.8123ZM50.5 95L12 72.8185V28.1815L50.5 6L69.6135 17.2277L70.1596 17.5015L72.0709 18.5969L75.3475 20.5138L75.6206 20.7877L89 42.1477V43.5169V47.3508V50.9108V72.8185L50.5 95ZM47.7695 64.8769L36.5745 45.4338L17.461 34.48V69.5323L47.7695 87.0585V64.8769V64.8769Z' fill='black'/%3e%3c/svg%3e";
22569
+ var img$j = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M50.5 85L19.5 67V57L50.5 73.5L80.5 57V67L50.5 85Z' fill='%239D9D9C'/%3e%3cpath d='M50.5 58.5L19.5 41.5V33L50.5 15L80.5 33V41.5L50.5 58.5Z' fill='%239D9D9C'/%3e%3cpath d='M50.5 85L19.5 67V57L50.5 73.5M50.5 85V73.5M50.5 85L80.5 67V57L50.5 73.5M50.5 58.5L19.5 41.5V33M50.5 58.5L80.5 41.5V33M50.5 58.5V49M19.5 33L50.5 15L80.5 33M19.5 33L50.5 49M80.5 33L50.5 49' stroke='black' stroke-width='5'/%3e%3cpath d='M7 42.5L50.5 66L90.5 42.5' stroke='black' stroke-width='4' stroke-dasharray='6 6'/%3e%3c/svg%3e";
22431
22570
 
22432
- var img$i = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M50.5 85L19.5 67V57L50.5 73.5L80.5 57V67L50.5 85Z' fill='%239D9D9C'/%3e%3cpath d='M50.5 58.5L19.5 41.5V33L50.5 15L80.5 33V41.5L50.5 58.5Z' fill='%239D9D9C'/%3e%3cpath d='M50.5 85L19.5 67V57L50.5 73.5M50.5 85V73.5M50.5 85L80.5 67V57L50.5 73.5M50.5 58.5L19.5 41.5V33M50.5 58.5L80.5 41.5V33M50.5 58.5V49M19.5 33L50.5 15L80.5 33M19.5 33L50.5 49M80.5 33L50.5 49' stroke='black' stroke-width='5'/%3e%3cpath d='M7 42.5L50.5 66L90.5 42.5' stroke='black' stroke-width='4' stroke-dasharray='6 6'/%3e%3c/svg%3e";
22571
+ var img$i = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M51.0063 73.336C53.4802 75.0704 56.9902 77.2291 56.9902 77.2291L50.998 81.1099L51.0022 77.223L51.0063 73.336Z' fill='black'/%3e%3cpath d='M37.0301 77.2088L51.0022 77.223M51.0022 77.223L51.0063 73.336C53.4802 75.0704 56.9902 77.2291 56.9902 77.2291L50.998 81.1099L51.0022 77.223Z' stroke='black' stroke-width='5'/%3e%3cpath d='M18.1688 46.008C19.9005 43.5323 22.0554 40.02 22.0554 40.02L25.9427 46.008H22.0557H18.1688Z' fill='black'/%3e%3cpath d='M22.0565 59.98L22.0557 46.008M22.0557 46.008H18.1688C19.9005 43.5323 22.0554 40.02 22.0554 40.02L25.9427 46.008H22.0557Z' stroke='black' stroke-width='5'/%3e%3cpath d='M13.074 69.4348V86.926H31.038V69.4348H13.074Z' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M68.962 69.4348V86.926H86.9261V69.4348H68.962Z' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M13.074 13.074V30.5653H31.038V13.074H13.074Z' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3c/svg%3e";
22433
22572
 
22434
- var img$h = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M51.0063 73.336C53.4802 75.0704 56.9902 77.2291 56.9902 77.2291L50.998 81.1099L51.0022 77.223L51.0063 73.336Z' fill='black'/%3e%3cpath d='M37.0301 77.2088L51.0022 77.223M51.0022 77.223L51.0063 73.336C53.4802 75.0704 56.9902 77.2291 56.9902 77.2291L50.998 81.1099L51.0022 77.223Z' stroke='black' stroke-width='5'/%3e%3cpath d='M18.1688 46.008C19.9005 43.5323 22.0554 40.02 22.0554 40.02L25.9427 46.008H22.0557H18.1688Z' fill='black'/%3e%3cpath d='M22.0565 59.98L22.0557 46.008M22.0557 46.008H18.1688C19.9005 43.5323 22.0554 40.02 22.0554 40.02L25.9427 46.008H22.0557Z' stroke='black' stroke-width='5'/%3e%3cpath d='M13.074 69.4348V86.926H31.038V69.4348H13.074Z' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M68.962 69.4348V86.926H86.9261V69.4348H68.962Z' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M13.074 13.074V30.5653H31.038V13.074H13.074Z' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3c/svg%3e";
22573
+ var img$h = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M24.5872 29.3655V10.7394H43.4203V29.3655H24.5872Z' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M56.4585 59.313V40.6869H75.2916V59.313H56.4585Z' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M24.5872 88.9692V70.343H43.4203V88.9692H24.5872Z' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3ccircle cx='33.9004' cy='50' r='7.01998' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M66.9687 69.0801L64.6302 73.0889H66.9687H69.0891L66.9687 69.0801Z' fill='black'/%3e%3cpath d='M57.9614 80.0566C57.9614 80.0566 61.8547 80.0566 64.6302 78.2571C67.4056 76.4577 66.9687 73.0889 66.9687 73.0889M66.9687 73.0889H69.0891L66.9687 69.0801L64.6302 73.0889H66.9687Z' stroke='black' stroke-width='3'/%3e%3cpath d='M59.377 23.2311L63.3858 25.5696L63.3858 23.2311L63.3858 21.1106L59.377 23.2311Z' fill='black'/%3e%3cpath d='M70.3535 32.2383C70.3535 32.2383 70.3535 28.345 68.554 25.5696C66.7546 22.7942 63.3858 23.2311 63.3858 23.2311M63.3858 23.2311L63.3858 21.1106L59.377 23.2311L63.3858 25.5696L63.3858 23.2311Z' stroke='black' stroke-width='3'/%3e%3c/svg%3e";
22435
22574
 
22436
- var img$g = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M24.5872 29.3655V10.7394H43.4203V29.3655H24.5872Z' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M56.4585 59.313V40.6869H75.2916V59.313H56.4585Z' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M24.5872 88.9692V70.343H43.4203V88.9692H24.5872Z' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3ccircle cx='33.9004' cy='50' r='7.01998' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M66.9687 69.0801L64.6302 73.0889H66.9687H69.0891L66.9687 69.0801Z' fill='black'/%3e%3cpath d='M57.9614 80.0566C57.9614 80.0566 61.8547 80.0566 64.6302 78.2571C67.4056 76.4577 66.9687 73.0889 66.9687 73.0889M66.9687 73.0889H69.0891L66.9687 69.0801L64.6302 73.0889H66.9687Z' stroke='black' stroke-width='3'/%3e%3cpath d='M59.377 23.2311L63.3858 25.5696L63.3858 23.2311L63.3858 21.1106L59.377 23.2311Z' fill='black'/%3e%3cpath d='M70.3535 32.2383C70.3535 32.2383 70.3535 28.345 68.554 25.5696C66.7546 22.7942 63.3858 23.2311 63.3858 23.2311M63.3858 23.2311L63.3858 21.1106L59.377 23.2311L63.3858 25.5696L63.3858 23.2311Z' stroke='black' stroke-width='3'/%3e%3c/svg%3e";
22575
+ var img$g = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M11.7271 44.9991V11.5911H44.4269V44.9991H11.7271Z' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M54.225 87.1429V53.7348H86.9248V87.1429H54.225Z' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M70.7374 34.5093C71.9639 38.3422 73.9238 43.5731 73.9238 43.5731L65.0733 39.8339L67.9054 37.1716L70.7374 34.5093Z' fill='black'/%3e%3cpath d='M53.8624 22.2349L67.9054 37.1716M67.9054 37.1716L70.7374 34.5093C71.9639 38.3422 73.9238 43.5731 73.9238 43.5731L65.0733 39.8339L67.9054 37.1716Z' stroke='black' stroke-width='3'/%3e%3cpath d='M40.0838 64.9367C41.3102 68.7697 43.2701 74.0005 43.2701 74.0005L34.4196 70.2613L37.2517 67.599L40.0838 64.9367Z' fill='black'/%3e%3cpath d='M23.2087 52.6623L37.2517 67.599M37.2517 67.599L40.0838 64.9367C41.3102 68.7697 43.2701 74.0005 43.2701 74.0005L34.4196 70.2613L37.2517 67.599Z' stroke='black' stroke-width='3'/%3e%3c/svg%3e";
22437
22576
 
22438
- var img$f = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M11.7271 44.9991V11.5911H44.4269V44.9991H11.7271Z' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M54.225 87.1429V53.7348H86.9248V87.1429H54.225Z' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M70.7374 34.5093C71.9639 38.3422 73.9238 43.5731 73.9238 43.5731L65.0733 39.8339L67.9054 37.1716L70.7374 34.5093Z' fill='black'/%3e%3cpath d='M53.8624 22.2349L67.9054 37.1716M67.9054 37.1716L70.7374 34.5093C71.9639 38.3422 73.9238 43.5731 73.9238 43.5731L65.0733 39.8339L67.9054 37.1716Z' stroke='black' stroke-width='3'/%3e%3cpath d='M40.0838 64.9367C41.3102 68.7697 43.2701 74.0005 43.2701 74.0005L34.4196 70.2613L37.2517 67.599L40.0838 64.9367Z' fill='black'/%3e%3cpath d='M23.2087 52.6623L37.2517 67.599M37.2517 67.599L40.0838 64.9367C41.3102 68.7697 43.2701 74.0005 43.2701 74.0005L34.4196 70.2613L37.2517 67.599Z' stroke='black' stroke-width='3'/%3e%3c/svg%3e";
22577
+ var img$f = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M48.87 15.5356L25.5355 38.8701L49.5772 62.9118L72.9117 39.5772L48.87 15.5356Z' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M62.0025 72.2212L69.8723 68.4292L66.8718 76.8386L64.6776 74.8257L62.0025 72.2212Z' fill='black'/%3e%3cpath d='M32.4696 74.8257C32.4696 74.8257 41.5741 81.7231 50.2894 80.9647C59.0047 80.2063 64.6776 74.8257 64.6776 74.8257M64.6776 74.8257L62.0025 72.2212L69.8723 68.4292L66.8718 76.8386L64.6776 74.8257Z' stroke='black' stroke-width='3'/%3e%3c/svg%3e";
22439
22578
 
22440
- var img$e = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M48.87 15.5356L25.5355 38.8701L49.5772 62.9118L72.9117 39.5772L48.87 15.5356Z' fill='%23C4C4C4' stroke='black' stroke-width='5'/%3e%3cpath d='M62.0025 72.2212L69.8723 68.4292L66.8718 76.8386L64.6776 74.8257L62.0025 72.2212Z' fill='black'/%3e%3cpath d='M32.4696 74.8257C32.4696 74.8257 41.5741 81.7231 50.2894 80.9647C59.0047 80.2063 64.6776 74.8257 64.6776 74.8257M64.6776 74.8257L62.0025 72.2212L69.8723 68.4292L66.8718 76.8386L64.6776 74.8257Z' stroke='black' stroke-width='3'/%3e%3c/svg%3e";
22579
+ var img$e = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3cpath d='M73 35H27V81H73V35Z' fill='url(%23pattern0)'/%3e%3cpath d='M76.7543 68.9546C79.0345 72.2706 82.4203 76.7135 82.4203 76.7135L72.8674 75.687L74.8108 72.3208L76.7543 68.9546Z' fill='black'/%3e%3cpath d='M57.0555 62.071L74.8108 72.3208M74.8108 72.3208L76.7543 68.9546C79.0345 72.2706 82.4203 76.7135 82.4203 76.7135L72.8674 75.687L74.8108 72.3208Z' stroke='black' stroke-width='3'/%3e%3cpath d='M46.1127 29.1424C47.8443 25.5097 49.9991 20.3561 49.9991 20.3561L53.8866 29.1424H49.9996H46.1127Z' fill='black'/%3e%3cpath d='M50.0008 49.6439L49.9996 29.1424M49.9996 29.1424H46.1127C47.8443 25.5097 49.9991 20.3561 49.9991 20.3561L53.8866 29.1424H49.9996Z' stroke='black' stroke-width='3'/%3e%3cpath d='M27.4698 75.6876C23.4579 76.0043 17.9174 76.715 17.9174 76.715L23.5828 68.9552L25.5263 72.3214L27.4698 75.6876Z' fill='black'/%3e%3cpath d='M43.2806 62.0696L25.5263 72.3214M25.5263 72.3214L27.4698 75.6876C23.4579 76.0043 17.9174 76.715 17.9174 76.715L23.5828 68.9552L25.5263 72.3214Z' stroke='black' stroke-width='3'/%3e%3cpath d='M36.0513 49.8615L49.7913 41.8235L64.2183 49.8615V66.1434L49.7913 74.0439L36.0513 66.1434V49.8615Z' fill='%23C4C4C4'/%3e%3cpath d='M36.0513 49.8615L49.7913 57.8994M36.0513 49.8615L49.7913 41.8235L64.2183 49.8615M36.0513 49.8615V66.1434L49.7913 74.0439M49.7913 57.8994V74.0439M49.7913 57.8994L64.2183 49.8615M49.7913 74.0439L64.2183 66.1434V49.8615' stroke='black' stroke-width='4'/%3e%3cdefs%3e%3cpattern id='pattern0' patternContentUnits='objectBoundingBox' width='1' height='1'%3e%3cuse xlink:href='%23image0' transform='scale(0.01)'/%3e%3c/pattern%3e%3cimage id='image0' width='100' height='100' xlink:href='data:image/png%3bbase64%2ciVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8%2bIDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjRDNDczMDE4QjE3MzExRTY5Mjc0REVFOTVERDJGNTg3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjRDNDczMDE5QjE3MzExRTY5Mjc0REVFOTVERDJGNTg3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NEM0NzMwMTZCMTczMTFFNjkyNzRERUU5NUREMkY1ODciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NEM0NzMwMTdCMTczMTFFNjkyNzRERUU5NUREMkY1ODciLz4gPC9yZGY6RGVzY3JpcHRpb24%2bIDwvcmRmOlJERj4gPC94OnhtcG1ldGE%2bIDw/eHBhY2tldCBlbmQ9InIiPz6Uw7%2boAAALkklEQVR42uydCXAT1xmAV5ZsybawJcuXjDkcfGJjS5YpJSnJUFKSmR7DMG1DMi0FGpMZmoSb9EpCrjahhQIBUgiFlmQKZBJKOi1tTElmSIGktQ7f%2bMI2NpIv3bJl6%2bz/W5spsaU1Bh0r%2b/0z/6xtPe%2b%2b9z69/d//9v3/crxeL0WEPRJDuoAAIUKAECBECBAChAgBQoAQIUAIECIECJFAwgvGSTgcTkQqn3%2biGS/8OOgeUA/oTtD3WjYURGSBLhjrgpygnCQCQADGYjgcAF067qN/g24GKCoCJDwgMuHwOuhavHSgvgE9AfoLANNHgIQGBB8OW7GTQYV3%2bG9W0FdwJAEYBwESPBir4LAPNOcuT9EGuh2g/JUAuTcQi%2bDwO9AVTP2wUMJXub0Up9kwKme4jaFUgW4DMA0EyNRASODwMuhToNxA5UR8btP2Col4gSguc2wYmBy6fdV6i2nUXcBwejfoW6AvAhgDAcIMAqfhm0B3g4oDlYuN4ejWlYgsy%2bckFviz5pe6bE2nGs1il8ebyXA5I%2bjzoEcBjIsAmQjjEdpOLAx4HYqyL5%2bb2LR2oUgex2W%2bqMPt9Z6oN6o%2b7RkuhhYKGIri7WsrQLlIgPhA5NIgvs1ULic5Tg23p7wUAVc4lfMP2t22vdWDrV0Wp3ySoh%2bC7gAwbTMSCIBIgsMvQbfgXShQOWFcTOuWckk8GO7se6lj/eBo9wGVfnTI6cllGlig%2b0FfAzCWGQEEQOD62XrQX4GmByrH5VCDjxUm937zvlklwZoyYFP/dsNa/16zWQqzMglDUXQmfw76RwDjmbZAAMbX4HAQlOn24fiqNL5uY2mKTMDjcEMxPbW7PK5jtcaaz3V2nFbHMRRV0sswV6YVEAAxl/ItAD7GVC5LyKvZWZE6LyORJwrHUoduyGUE%2b9KttblKJyl6BnQXgOmOaiAAIgEbAvocxTDTiefFdD4tT/HK0wU5VARE2WfvOKwxUCMuL9P17fSX6g0AY48qIPSy%2bBqsPOicwP9HmVblJnWtzksq40ZmBf//3iJ0w7kWS835dss86BKmEdpNf8nOjl/mZyUQgKGgfMviDzC1vyxNoIFRsSgxNiaOYpHYHJ5RGC31NQMjMqZVAhC0K8/evszPKiAAIgN%2b/DXoOqb1pNR4bv2OitTMuUmxqRSLBfyWAbAvfeDHlDCZDdCTOCPDZX7WACk42YI2ApfFZwUqA551T%2bUisf2B2Ql5VBTJlVvDrW/XGePB82fyg3CZ/7Xm9flvsAWIl2G5w/bIfGHrE0XJcl4Mh4pGcXm81J%2bbzOqPOm15XoZnMQDknhsY8k0OsnRB%2b5rCZFm0wkDBumMbsC2hvlbIgaj7R8oqq7S9H98cuh6tQLDu2AZsS8jhh6NBTo9XerzOKH2/xfKl5xdsl3aTo3dvtd5kGnUXhm00hrOB0LCi56/04xM%2b5TPylOJkPlfARhDmUffIAZWh4bphtBx%2bDeuXJyS3LD6XcxNmVbcC2flG/ahi0yWd610wlG4WxTii8X630aTBugEMRaDpO7YN2xg1QMQCrv74yqzZK%2bcL1TjL8r/MQAkv3LDKn/xI2/2Zzt4eaRjXtMNtT1Zpuy902GRYN4YZoxrbhm2MqlsWzkzWFYvkq3JnDe9X6lUtRoffDQijbu%2bcgyo9dSaBBw6jRJo9K1YSThDdVqf%2bt9V63cCwi9EBLEjhqzeXpxSJ%2bFx5KOsTchsCDUjYfX96OQDR7asetFocnnx/5fqhQ3Zd7nPJ0wXKn8hSShNiY2JDWa8hp8dxRGOog5kTLpFIGOrfvK1CkpQriiufVkY9XxwnfesbWdKLXbamdxrMErAd/h5O8aCDFBsvao2r85K6V%2bUmlQbbfcFFxPOtltq/tFnmgslQMIzw3rULk40r5gmLwulBhXWWhQ1bCQ18KDvR/Yc6o/LKreES6B/%2b%2bHLQUWKYIosv3LB1PF2eEiNLE8wLkk/UcUhtwAdUpQx1HFmWndCwoURcDsY77NNzHhUBgRkKd5MsRfHd/CTLPqW%2b6abFKfNXbtjlydnzn0EK7IoG/JecjARe8t1cr2/IZQI70XXL5mR07OYlxaq3V6TmpcZzFRFbFYjkzCY9gZf0%2brIMWc3ASNebKoMbANznr1yP1Snb9knv6NKsBGVlqViGQO/k/CMur/tYrUEDszg02AFhJMbGtG0ul/BLUvlyKsLCo1ggZXBLOrYyizrfZqk912rJhltWyoRpDgysq9phxec6%2b8ATRcn9j%2bYIi5m2vv/9hrX%2b7HVzhpvBTnA5lP77Bcm6b%2bFGCpYstfEolggabzDkpY/OFzoPawxKet2IN9Eoe9PeaTSlAbyWrQpJYmEKf/btn4PT2b1fpR%2bxOTxM01jHkrGNFOKyeF6MhGKR8CiWCU53dy5OVfTQ/kF/AP/ACtPnl68NUDAdVW1RSArAmfOCPWrtMDsYbztZQl4t2Ik50kSegmKh8CiWCjqI%2b5dnStCDPlZr5KMD6a9cm8lR/swl3TAOMi/D9iIBj9MJ/o1XkRFfSrFYeBTLBQx57uLMeOrMdbPmH522XH/LGgAiIeA0lkOZVy1I6lydH/mNFBFbywrFMswPFopkR1ZIeWAzlLTdntQHhMmC8ujDWYLvFUQHjKgYIbcLLte/sDRNQceBmAM9p8CNFGAnMsCvUFBRJlEZpw6GXHr4YWnh/eCXjP/swexE1cGvS0sARlo0ti1qEwdwfJ71hPrPFvKi9%2bE9RTI5ECBECBAChAgBQoAQIUAIECIECAFCuoAAIUKAECBE2AREb3enY2zFdO00bBu2MRTnDskDKqfHOxvjQPDp3uZy9saBTFXGxY1womaE0MLBGIuxOJBGkwZjL6JVsO6nGk3qyeJG2ARkB6jfdEZjcSAdNhnGXuAOkmiDcVU73Ip1/2eHTR4oboRu%2bw7WAGnZULAXDhh/fpwKsAHB4fbOeVNtyN38SW89xmSwHQTW8dmPdfWH1IY8R4AtSHRbsc15dB%2bwx4ZAhfrhUJl/ovkI5UutscxfOQyMee5ynxvjQDbJ2JdaA%2bNGDmsMdZpJ4kZAPqV8qZvUrLYhdAUfonzJZwKlM%2bJiHMhTF7VDH7RYatlgXjBuBOuy8aJ2GGCgnQi0oRtjC9dAOx8MNoyQGXXMkgN6Fn7ErKG7KV9qowmCcSAftFpKK6u0HdAJnZGCgXEjG6u0nVgXhkxA2IYXQQvptoVEQrovi84r9RLcxjAP%2bx561ExsKcaB/HcsDqRme4Vk/t3GgUxVMG7kN9WDXVqba7KEAKcpXwKznlDXKSwb5ehMbI8DmEOUL8Wf33i9HquzbOsXcSCLxCFL8YdxI0drDRo6xR8TDNz3hSmYrk7LpRM6dyG%2bZuLHoP0BivFheqyorLplgOlyQzDNyxdJMOHcJoCBdiLQhAKTYG4A/Uo4YYRthIyDglk%2bT8BoeZ9iSBMLRjYNHMq0D9ssmCY2oUjy5TiQqcpY3IhSP2JzMseNUL40sa9CPa2RsGcR29tL58XdBWDehiPO4f0mUrY6PHmvfDZALRDFqbYqJPlTTaSst7tt%2b5SDrR3m0CdSjmogt4FphcN36FTj%2bCaEIn/l2uk4kOVzE1U/KhbJY2MmTzV%2bssGkutw9VOxlTkvbiKM0GKnGg7LexNJk/C%2bBBkxEicn415eIrDB6hk5fN3%2bps9cUJqvB2Yw/1WASOSdPxv8C6O9JMv7JwaCH/Cp6/gwOGgZtGtzjAkThb0b4m5jJB0QICIO8rmLqYBbRyzDLg3TKf1G%2bNyHUh6K%2bM%2bmVR6tpwz//Lk/RThvs86GsZzD6Mioe4UJHnqONPSbIH5rCv2JqqJ%2bCFocaxrQ06nc4WrIo32vzfsj0ZQX9E%2bjPAETYHiXP9BdLLqHty5JxH12jlzuqw12nGQ2EhsKhRwqOGFwBwJzsp2f8q1eJBE/IviwChAgBQoAQIUAIECIECAFChAAhQIgQIEQCyv8EGACQZFkbz7/GOQAAAABJRU5ErkJggg=='/%3e%3c/defs%3e%3c/svg%3e";
22441
22580
 
22442
- var img$d = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3cpath d='M73 35H27V81H73V35Z' fill='url(%23pattern0)'/%3e%3cpath d='M76.7543 68.9546C79.0345 72.2706 82.4203 76.7135 82.4203 76.7135L72.8674 75.687L74.8108 72.3208L76.7543 68.9546Z' fill='black'/%3e%3cpath d='M57.0555 62.071L74.8108 72.3208M74.8108 72.3208L76.7543 68.9546C79.0345 72.2706 82.4203 76.7135 82.4203 76.7135L72.8674 75.687L74.8108 72.3208Z' stroke='black' stroke-width='3'/%3e%3cpath d='M46.1127 29.1424C47.8443 25.5097 49.9991 20.3561 49.9991 20.3561L53.8866 29.1424H49.9996H46.1127Z' fill='black'/%3e%3cpath d='M50.0008 49.6439L49.9996 29.1424M49.9996 29.1424H46.1127C47.8443 25.5097 49.9991 20.3561 49.9991 20.3561L53.8866 29.1424H49.9996Z' stroke='black' stroke-width='3'/%3e%3cpath d='M27.4698 75.6876C23.4579 76.0043 17.9174 76.715 17.9174 76.715L23.5828 68.9552L25.5263 72.3214L27.4698 75.6876Z' fill='black'/%3e%3cpath d='M43.2806 62.0696L25.5263 72.3214M25.5263 72.3214L27.4698 75.6876C23.4579 76.0043 17.9174 76.715 17.9174 76.715L23.5828 68.9552L25.5263 72.3214Z' stroke='black' stroke-width='3'/%3e%3cpath d='M36.0513 49.8615L49.7913 41.8235L64.2183 49.8615V66.1434L49.7913 74.0439L36.0513 66.1434V49.8615Z' fill='%23C4C4C4'/%3e%3cpath d='M36.0513 49.8615L49.7913 57.8994M36.0513 49.8615L49.7913 41.8235L64.2183 49.8615M36.0513 49.8615V66.1434L49.7913 74.0439M49.7913 57.8994V74.0439M49.7913 57.8994L64.2183 49.8615M49.7913 74.0439L64.2183 66.1434V49.8615' stroke='black' stroke-width='4'/%3e%3cdefs%3e%3cpattern id='pattern0' patternContentUnits='objectBoundingBox' width='1' height='1'%3e%3cuse xlink:href='%23image0' transform='scale(0.01)'/%3e%3c/pattern%3e%3cimage id='image0' width='100' height='100' xlink:href='data:image/png%3bbase64%2ciVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8%2bIDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjRDNDczMDE4QjE3MzExRTY5Mjc0REVFOTVERDJGNTg3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjRDNDczMDE5QjE3MzExRTY5Mjc0REVFOTVERDJGNTg3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NEM0NzMwMTZCMTczMTFFNjkyNzRERUU5NUREMkY1ODciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NEM0NzMwMTdCMTczMTFFNjkyNzRERUU5NUREMkY1ODciLz4gPC9yZGY6RGVzY3JpcHRpb24%2bIDwvcmRmOlJERj4gPC94OnhtcG1ldGE%2bIDw/eHBhY2tldCBlbmQ9InIiPz6Uw7%2boAAALkklEQVR42uydCXAT1xmAV5ZsybawJcuXjDkcfGJjS5YpJSnJUFKSmR7DMG1DMi0FGpMZmoSb9EpCrjahhQIBUgiFlmQKZBJKOi1tTElmSIGktQ7f%2bMI2NpIv3bJl6%2bz/W5spsaU1Bh0r%2b/0z/6xtPe%2b%2b9z69/d//9v3/crxeL0WEPRJDuoAAIUKAECBECBAChAgBQoAQIUAIECIECJFAwgvGSTgcTkQqn3%2biGS/8OOgeUA/oTtD3WjYURGSBLhjrgpygnCQCQADGYjgcAF067qN/g24GKCoCJDwgMuHwOuhavHSgvgE9AfoLANNHgIQGBB8OW7GTQYV3%2bG9W0FdwJAEYBwESPBir4LAPNOcuT9EGuh2g/JUAuTcQi%2bDwO9AVTP2wUMJXub0Up9kwKme4jaFUgW4DMA0EyNRASODwMuhToNxA5UR8btP2Col4gSguc2wYmBy6fdV6i2nUXcBwejfoW6AvAhgDAcIMAqfhm0B3g4oDlYuN4ejWlYgsy%2bckFviz5pe6bE2nGs1il8ebyXA5I%2bjzoEcBjIsAmQjjEdpOLAx4HYqyL5%2bb2LR2oUgex2W%2bqMPt9Z6oN6o%2b7RkuhhYKGIri7WsrQLlIgPhA5NIgvs1ULic5Tg23p7wUAVc4lfMP2t22vdWDrV0Wp3ySoh%2bC7gAwbTMSCIBIgsMvQbfgXShQOWFcTOuWckk8GO7se6lj/eBo9wGVfnTI6cllGlig%2b0FfAzCWGQEEQOD62XrQX4GmByrH5VCDjxUm937zvlklwZoyYFP/dsNa/16zWQqzMglDUXQmfw76RwDjmbZAAMbX4HAQlOn24fiqNL5uY2mKTMDjcEMxPbW7PK5jtcaaz3V2nFbHMRRV0sswV6YVEAAxl/ItAD7GVC5LyKvZWZE6LyORJwrHUoduyGUE%2b9KttblKJyl6BnQXgOmOaiAAIgEbAvocxTDTiefFdD4tT/HK0wU5VARE2WfvOKwxUCMuL9P17fSX6g0AY48qIPSy%2bBqsPOicwP9HmVblJnWtzksq40ZmBf//3iJ0w7kWS835dss86BKmEdpNf8nOjl/mZyUQgKGgfMviDzC1vyxNoIFRsSgxNiaOYpHYHJ5RGC31NQMjMqZVAhC0K8/evszPKiAAIgN%2b/DXoOqb1pNR4bv2OitTMuUmxqRSLBfyWAbAvfeDHlDCZDdCTOCPDZX7WACk42YI2ApfFZwUqA551T%2bUisf2B2Ql5VBTJlVvDrW/XGePB82fyg3CZ/7Xm9flvsAWIl2G5w/bIfGHrE0XJcl4Mh4pGcXm81J%2bbzOqPOm15XoZnMQDknhsY8k0OsnRB%2b5rCZFm0wkDBumMbsC2hvlbIgaj7R8oqq7S9H98cuh6tQLDu2AZsS8jhh6NBTo9XerzOKH2/xfKl5xdsl3aTo3dvtd5kGnUXhm00hrOB0LCi56/04xM%2b5TPylOJkPlfARhDmUffIAZWh4bphtBx%2bDeuXJyS3LD6XcxNmVbcC2flG/ahi0yWd610wlG4WxTii8X630aTBugEMRaDpO7YN2xg1QMQCrv74yqzZK%2bcL1TjL8r/MQAkv3LDKn/xI2/2Zzt4eaRjXtMNtT1Zpuy902GRYN4YZoxrbhm2MqlsWzkzWFYvkq3JnDe9X6lUtRoffDQijbu%2bcgyo9dSaBBw6jRJo9K1YSThDdVqf%2bt9V63cCwi9EBLEjhqzeXpxSJ%2bFx5KOsTchsCDUjYfX96OQDR7asetFocnnx/5fqhQ3Zd7nPJ0wXKn8hSShNiY2JDWa8hp8dxRGOog5kTLpFIGOrfvK1CkpQriiufVkY9XxwnfesbWdKLXbamdxrMErAd/h5O8aCDFBsvao2r85K6V%2bUmlQbbfcFFxPOtltq/tFnmgslQMIzw3rULk40r5gmLwulBhXWWhQ1bCQ18KDvR/Yc6o/LKreES6B/%2b%2bHLQUWKYIosv3LB1PF2eEiNLE8wLkk/UcUhtwAdUpQx1HFmWndCwoURcDsY77NNzHhUBgRkKd5MsRfHd/CTLPqW%2b6abFKfNXbtjlydnzn0EK7IoG/JecjARe8t1cr2/IZQI70XXL5mR07OYlxaq3V6TmpcZzFRFbFYjkzCY9gZf0%2brIMWc3ASNebKoMbANznr1yP1Snb9knv6NKsBGVlqViGQO/k/CMur/tYrUEDszg02AFhJMbGtG0ul/BLUvlyKsLCo1ggZXBLOrYyizrfZqk912rJhltWyoRpDgysq9phxec6%2b8ATRcn9j%2bYIi5m2vv/9hrX%2b7HVzhpvBTnA5lP77Bcm6b%2bFGCpYstfEolggabzDkpY/OFzoPawxKet2IN9Eoe9PeaTSlAbyWrQpJYmEKf/btn4PT2b1fpR%2bxOTxM01jHkrGNFOKyeF6MhGKR8CiWCU53dy5OVfTQ/kF/AP/ACtPnl68NUDAdVW1RSArAmfOCPWrtMDsYbztZQl4t2Ik50kSegmKh8CiWCjqI%2b5dnStCDPlZr5KMD6a9cm8lR/swl3TAOMi/D9iIBj9MJ/o1XkRFfSrFYeBTLBQx57uLMeOrMdbPmH522XH/LGgAiIeA0lkOZVy1I6lydH/mNFBFbywrFMswPFopkR1ZIeWAzlLTdntQHhMmC8ujDWYLvFUQHjKgYIbcLLte/sDRNQceBmAM9p8CNFGAnMsCvUFBRJlEZpw6GXHr4YWnh/eCXjP/swexE1cGvS0sARlo0ti1qEwdwfJ71hPrPFvKi9%2bE9RTI5ECBECBAChAgBQoAQIUAIECIECAFCuoAAIUKAECBE2AREb3enY2zFdO00bBu2MRTnDskDKqfHOxvjQPDp3uZy9saBTFXGxY1womaE0MLBGIuxOJBGkwZjL6JVsO6nGk3qyeJG2ARkB6jfdEZjcSAdNhnGXuAOkmiDcVU73Ip1/2eHTR4oboRu%2bw7WAGnZULAXDhh/fpwKsAHB4fbOeVNtyN38SW89xmSwHQTW8dmPdfWH1IY8R4AtSHRbsc15dB%2bwx4ZAhfrhUJl/ovkI5UutscxfOQyMee5ynxvjQDbJ2JdaA%2bNGDmsMdZpJ4kZAPqV8qZvUrLYhdAUfonzJZwKlM%2bJiHMhTF7VDH7RYatlgXjBuBOuy8aJ2GGCgnQi0oRtjC9dAOx8MNoyQGXXMkgN6Fn7ErKG7KV9qowmCcSAftFpKK6u0HdAJnZGCgXEjG6u0nVgXhkxA2IYXQQvptoVEQrovi84r9RLcxjAP%2bx561ExsKcaB/HcsDqRme4Vk/t3GgUxVMG7kN9WDXVqba7KEAKcpXwKznlDXKSwb5ehMbI8DmEOUL8Wf33i9HquzbOsXcSCLxCFL8YdxI0drDRo6xR8TDNz3hSmYrk7LpRM6dyG%2bZuLHoP0BivFheqyorLplgOlyQzDNyxdJMOHcJoCBdiLQhAKTYG4A/Uo4YYRthIyDglk%2bT8BoeZ9iSBMLRjYNHMq0D9ssmCY2oUjy5TiQqcpY3IhSP2JzMseNUL40sa9CPa2RsGcR29tL58XdBWDehiPO4f0mUrY6PHmvfDZALRDFqbYqJPlTTaSst7tt%2b5SDrR3m0CdSjmogt4FphcN36FTj%2bCaEIn/l2uk4kOVzE1U/KhbJY2MmTzV%2bssGkutw9VOxlTkvbiKM0GKnGg7LexNJk/C%2bBBkxEicn415eIrDB6hk5fN3%2bps9cUJqvB2Yw/1WASOSdPxv8C6O9JMv7JwaCH/Cp6/gwOGgZtGtzjAkThb0b4m5jJB0QICIO8rmLqYBbRyzDLg3TKf1G%2bNyHUh6K%2bM%2bmVR6tpwz//Lk/RThvs86GsZzD6Mioe4UJHnqONPSbIH5rCv2JqqJ%2bCFocaxrQ06nc4WrIo32vzfsj0ZQX9E%2bjPAETYHiXP9BdLLqHty5JxH12jlzuqw12nGQ2EhsKhRwqOGFwBwJzsp2f8q1eJBE/IviwChAgBQoAQIUAIECIECAFChAAhQIgQIEQCyv8EGACQZFkbz7/GOQAAAABJRU5ErkJggg=='/%3e%3c/defs%3e%3c/svg%3e";
22581
+ var img$d = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M49 51V84L20 67.2513V34.5L49 51Z' fill='%239D9D9C'/%3e%3cpath d='M80 36L81 68L53 84L52 51.5L80 36Z' fill='%239D9D9C'/%3e%3cpath d='M78 31.5L51 47.5L23 31.5L51 14.5L78 31.5Z' fill='%239D9D9C'/%3e%3cpath d='M85 30V70L50.3772 90L16 70V30L50.3772 10L85 30ZM80.089 67.284V35.9259L52.8327 51.7284V83.3333L80.089 67.284ZM50.6228 47.284L77.879 31.4815L50.6228 15.679L23.6121 31.4815L50.6228 47.284ZM48.1673 83.0864V51.4815L21.1566 35.679V67.284L48.1673 83.0864Z' fill='black'/%3e%3c/svg%3e";
22443
22582
 
22444
- var img$c = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M49 51V84L20 67.2513V34.5L49 51Z' fill='%239D9D9C'/%3e%3cpath d='M80 36L81 68L53 84L52 51.5L80 36Z' fill='%239D9D9C'/%3e%3cpath d='M78 31.5L51 47.5L23 31.5L51 14.5L78 31.5Z' fill='%239D9D9C'/%3e%3cpath d='M85 30V70L50.3772 90L16 70V30L50.3772 10L85 30ZM80.089 67.284V35.9259L52.8327 51.7284V83.3333L80.089 67.284ZM50.6228 47.284L77.879 31.4815L50.6228 15.679L23.6121 31.4815L50.6228 47.284ZM48.1673 83.0864V51.4815L21.1566 35.679V67.284L48.1673 83.0864Z' fill='black'/%3e%3c/svg%3e";
22583
+ var img$c = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M83.6772 50C83.6772 68.5993 68.5994 83.6771 50 83.6771C31.4007 83.6771 16.3229 68.5993 16.3229 50C16.3229 31.4006 31.4007 16.3228 50 16.3228C68.5994 16.3228 83.6772 31.4006 83.6772 50Z' fill='%23C4C4C4' stroke='black' stroke-width='4'/%3e%3cpath d='M83.5552 50.2295C83.5552 51.5641 82.6873 52.8856 81.001 54.1186C79.3147 55.3516 76.843 56.4719 73.7271 57.4156C70.6112 58.3593 66.9122 59.1079 62.8411 59.6186C58.77 60.1293 54.4066 60.3922 50.0001 60.3922C45.5935 60.3922 41.2302 60.1293 37.1591 59.6186C33.088 59.1079 29.3889 58.3593 26.273 57.4156C23.1571 56.4719 20.6855 55.3516 18.9992 54.1186C17.3129 52.8856 16.4449 51.5641 16.4449 50.2295' stroke='black' stroke-width='4'/%3e%3c/svg%3e";
22445
22584
 
22446
- var img$b = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M83.6772 50C83.6772 68.5993 68.5994 83.6771 50 83.6771C31.4007 83.6771 16.3229 68.5993 16.3229 50C16.3229 31.4006 31.4007 16.3228 50 16.3228C68.5994 16.3228 83.6772 31.4006 83.6772 50Z' fill='%23C4C4C4' stroke='black' stroke-width='4'/%3e%3cpath d='M83.5552 50.2295C83.5552 51.5641 82.6873 52.8856 81.001 54.1186C79.3147 55.3516 76.843 56.4719 73.7271 57.4156C70.6112 58.3593 66.9122 59.1079 62.8411 59.6186C58.77 60.1293 54.4066 60.3922 50.0001 60.3922C45.5935 60.3922 41.2302 60.1293 37.1591 59.6186C33.088 59.1079 29.3889 58.3593 26.273 57.4156C23.1571 56.4719 20.6855 55.3516 18.9992 54.1186C17.3129 52.8856 16.4449 51.5641 16.4449 50.2295' stroke='black' stroke-width='4'/%3e%3c/svg%3e";
22585
+ var img$b = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M77.5 24.5V76.5618C77.5 76.5618 71.8057 90.5 49.0014 90.5C26.1971 90.5 22.5 76.5618 22.5 76.5618V24.5C22.5 24.5 26.5014 14 49.0014 14C71.5014 14 77.5 24.5 77.5 24.5Z' fill='%23C4C4C4'/%3e%3cpath d='M77.5 24.5V76.5618C77.5 76.5618 71.8057 90.5 49.0014 90.5C26.1971 90.5 22.5 76.5618 22.5 76.5618V24.5M77.5 24.5C77.5 24.5 71.5014 14 49.0014 14C26.5014 14 22.5 24.5 22.5 24.5M77.5 24.5C77.5 24.5 71.5 34.5 49.0014 34.5C26.5028 34.5 22.5 24.5 22.5 24.5' stroke='black' stroke-width='4'/%3e%3c/svg%3e";
22447
22586
 
22448
- var img$a = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M77.5 24.5V76.5618C77.5 76.5618 71.8057 90.5 49.0014 90.5C26.1971 90.5 22.5 76.5618 22.5 76.5618V24.5C22.5 24.5 26.5014 14 49.0014 14C71.5014 14 77.5 24.5 77.5 24.5Z' fill='%23C4C4C4'/%3e%3cpath d='M77.5 24.5V76.5618C77.5 76.5618 71.8057 90.5 49.0014 90.5C26.1971 90.5 22.5 76.5618 22.5 76.5618V24.5M77.5 24.5C77.5 24.5 71.5014 14 49.0014 14C26.5014 14 22.5 24.5 22.5 24.5M77.5 24.5C77.5 24.5 71.5 34.5 49.0014 34.5C26.5028 34.5 22.5 24.5 22.5 24.5' stroke='black' stroke-width='4'/%3e%3c/svg%3e";
22587
+ var img$a = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M49.0014 90.5C26.1971 90.5 22.5 76.5618 22.5 76.5618L49.0014 14L77.5 76.5618C77.5 76.5618 71.8057 90.5 49.0014 90.5Z' fill='%23C4C4C4' stroke='black' stroke-width='4'/%3e%3c/svg%3e";
22449
22588
 
22450
- var img$9 = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M49.0014 90.5C26.1971 90.5 22.5 76.5618 22.5 76.5618L49.0014 14L77.5 76.5618C77.5 76.5618 71.8057 90.5 49.0014 90.5Z' fill='%23C4C4C4' stroke='black' stroke-width='4'/%3e%3c/svg%3e";
22589
+ var img$9 = "data:image/svg+xml,%3csvg width='100' height='100' viewBox='0 0 100 100' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M50.1373 15C69.3529 15 86.5 30.6471 86.5 50.1373C86.5 69.6274 69.0784 86 49.8627 86C30.6471 86 15 69.3529 15 50.1373C15 30.9216 30.6471 15 50.1373 15Z' fill='%239D9D9C'/%3e%3cpath d='M85.5085 50.6373C85.5085 31.4169 69.8576 15.4915 50.6373 15.4915C31.4169 15.4915 15.4915 31.1424 15.4915 50.6373C15.4915 70.1322 31.1424 85.5085 50.6373 85.5085C70.1322 85.5085 85.5085 69.8576 85.5085 50.6373ZM50.6373 10C72.878 10 91 28.122 91 50.6373C91 72.878 72.878 91 50.6373 91C28.3966 91 10 72.878 10 50.3627C10 28.122 28.122 10 50.6373 10Z' fill='black'/%3e%3cpath d='M50.1382 54.0081L36.8699 67L33 63.1301L45.9919 50.1382L33 36.8699L36.8699 33L50.1382 45.9919L63.1301 33L67 36.8699L54.0081 50.1382L67 63.1301L65.065 65.065L63.1301 67L50.1382 54.0081Z' fill='black'/%3e%3c/svg%3e";
22451
22590
 
22452
22591
  const Icon = ({
22453
22592
  url
@@ -22486,150 +22625,157 @@ const PartModeCmds = (drawingId, rootId) => {
22486
22625
  Sketch: {
22487
22626
  label: 'Sketch',
22488
22627
  icon: /*#__PURE__*/React.createElement(Icon, {
22489
- url: img$x
22628
+ url: img$y
22490
22629
  }),
22491
22630
  callback: wrapper(() => classcad.ccAPI.sketcher.createSketch(drawingId, rootId))
22492
22631
  },
22493
22632
  Work: [{
22494
22633
  label: 'Workpoint',
22495
22634
  icon: /*#__PURE__*/React.createElement(Icon, {
22496
- url: img$p
22635
+ url: img$q
22497
22636
  }),
22498
22637
  callback: wrapper(() => featureApi.createWorkGeometry(drawingId, rootId, classcad.CCClasses.CCWorkPoint, 'WorkPoint'))
22499
22638
  }, {
22500
22639
  label: 'Workaxis',
22501
22640
  icon: /*#__PURE__*/React.createElement(Icon, {
22502
- url: img$o
22641
+ url: img$p
22503
22642
  }),
22504
22643
  callback: wrapper(() => featureApi.createWorkGeometry(drawingId, rootId, classcad.CCClasses.CCWorkAxis, 'WorkAxis'))
22505
22644
  }, {
22506
22645
  label: 'Workplane',
22507
22646
  icon: /*#__PURE__*/React.createElement(Icon, {
22508
- url: img$n
22647
+ url: img$o
22509
22648
  }),
22510
22649
  callback: wrapper(() => featureApi.createWorkGeometry(drawingId, rootId, classcad.CCClasses.CCWorkPlane, 'WorkPlane'))
22511
22650
  }, {
22512
22651
  label: 'WCsys',
22513
22652
  icon: /*#__PURE__*/React.createElement(Icon, {
22514
- url: img$m
22653
+ url: img$n
22515
22654
  }),
22516
22655
  callback: wrapper(() => featureApi.createWorkGeometry(drawingId, rootId, classcad.CCClasses.CCWorkCoordSystem, 'WorkCoordSystem'))
22517
22656
  }],
22518
22657
  Solid: [{
22519
22658
  label: 'Extrusion',
22520
22659
  icon: /*#__PURE__*/React.createElement(Icon, {
22521
- url: img$H
22660
+ url: img$I
22522
22661
  }),
22523
22662
  callback: wrapper(() => featureApi.createExtrusion(drawingId, rootId))
22524
22663
  }, {
22525
22664
  label: 'Revolve',
22526
22665
  icon: /*#__PURE__*/React.createElement(Icon, {
22527
- url: img$G
22666
+ url: img$H
22528
22667
  }),
22529
22668
  callback: wrapper(() => featureApi.createRevolve(drawingId, rootId))
22530
22669
  }],
22531
22670
  Boolean: {
22532
22671
  label: 'Boolean',
22533
22672
  icon: /*#__PURE__*/React.createElement(Icon, {
22534
- url: img$l
22673
+ url: img$m
22535
22674
  }),
22536
22675
  callback: wrapper(() => featureApi.createBooleanOperation(drawingId, rootId))
22537
22676
  },
22538
22677
  Slice: [{
22539
22678
  label: 'Slice',
22540
22679
  icon: /*#__PURE__*/React.createElement(Icon, {
22541
- url: img$i
22680
+ url: img$j
22542
22681
  }),
22543
22682
  callback: wrapper(() => featureApi.createFeature(drawingId, rootId, classcad.CCClasses.CCSlice, 'Slice'))
22544
22683
  }, {
22545
22684
  label: 'Slice by sheet',
22546
22685
  icon: /*#__PURE__*/React.createElement(Icon, {
22547
- url: img$i
22686
+ url: img$j
22548
22687
  }),
22549
22688
  callback: wrapper(() => featureApi.createFeature(drawingId, rootId, classcad.CCClasses.CCSliceBySheet, 'Slice by sheet'))
22550
22689
  }],
22551
22690
  Edge: [{
22552
22691
  label: 'Fillet',
22553
22692
  icon: /*#__PURE__*/React.createElement(Icon, {
22554
- url: img$k
22693
+ url: img$l
22555
22694
  }),
22556
22695
  callback: wrapper(() => featureApi.createFeature(drawingId, rootId, classcad.CCClasses.CCConstantRadiusFillet, 'Fillet'))
22557
22696
  }, {
22558
22697
  label: 'Chamfer',
22559
22698
  icon: /*#__PURE__*/React.createElement(Icon, {
22560
- url: img$j
22699
+ url: img$k
22561
22700
  }),
22562
22701
  callback: wrapper(() => featureApi.createFeature(drawingId, rootId, classcad.CCClasses.CCChamfer, 'Chamfer'))
22563
22702
  }],
22564
22703
  Patterns: [{
22565
22704
  label: 'Linear pattern',
22566
22705
  icon: /*#__PURE__*/React.createElement(Icon, {
22567
- url: img$h
22706
+ url: img$i
22568
22707
  }),
22569
22708
  callback: wrapper(() => featureApi.createFeature(drawingId, rootId, classcad.CCClasses.CCLinearPattern, 'Linear pattern'))
22570
22709
  }, {
22571
22710
  label: 'Circular pattern',
22572
22711
  icon: /*#__PURE__*/React.createElement(Icon, {
22573
- url: img$g
22712
+ url: img$h
22574
22713
  }),
22575
22714
  callback: wrapper(() => featureApi.createFeature(drawingId, rootId, classcad.CCClasses.CCCircularPattern, 'Circular pattern'))
22576
22715
  }, {
22577
22716
  label: 'Mirror',
22578
22717
  icon: /*#__PURE__*/React.createElement(Icon, {
22579
- url: img$u
22718
+ url: img$v
22580
22719
  }),
22581
22720
  callback: wrapper(() => featureApi.createFeature(drawingId, rootId, classcad.CCClasses.CCMirror, 'Mirror'))
22582
22721
  }],
22583
22722
  Translation: [{
22584
22723
  label: 'Translation',
22585
22724
  icon: /*#__PURE__*/React.createElement(Icon, {
22586
- url: img$f
22725
+ url: img$g
22587
22726
  }),
22588
22727
  callback: wrapper(() => featureApi.createFeature(drawingId, rootId, classcad.CCClasses.CCTranslation, 'Translate'))
22589
22728
  }, {
22590
22729
  label: 'Rotation',
22591
22730
  icon: /*#__PURE__*/React.createElement(Icon, {
22592
- url: img$e
22731
+ url: img$f
22593
22732
  }),
22594
22733
  callback: wrapper(() => featureApi.createFeature(drawingId, rootId, classcad.CCClasses.CCRotation, 'Rotate'))
22595
22734
  }, {
22596
22735
  label: 'Transformation by Csys',
22597
22736
  icon: /*#__PURE__*/React.createElement(Icon, {
22598
- url: img$d
22737
+ url: img$e
22599
22738
  }),
22600
22739
  callback: wrapper(() => featureApi.createFeature(drawingId, rootId, classcad.CCClasses.CCTransformationByCSys, 'Transform by Csys'))
22601
22740
  }],
22602
22741
  BasicShapes: [{
22603
22742
  label: 'Add Box',
22604
22743
  icon: /*#__PURE__*/React.createElement(Icon, {
22605
- url: img$c
22744
+ url: img$d
22606
22745
  }),
22607
22746
  callback: wrapper(() => featureApi.createFeature(drawingId, rootId, 'CC_Box', 'Box'))
22608
22747
  }, {
22609
22748
  label: 'Add Sphere',
22610
22749
  icon: /*#__PURE__*/React.createElement(Icon, {
22611
- url: img$b
22750
+ url: img$c
22612
22751
  }),
22613
22752
  callback: wrapper(() => featureApi.createFeature(drawingId, rootId, 'CC_Sphere', 'Sphere'))
22614
22753
  }, {
22615
22754
  label: 'Add Cylinder',
22616
22755
  icon: /*#__PURE__*/React.createElement(Icon, {
22617
- url: img$a
22756
+ url: img$b
22618
22757
  }),
22619
22758
  callback: wrapper(() => featureApi.createFeature(drawingId, rootId, 'CC_Cylinder', 'Cylinder'))
22620
22759
  }, {
22621
22760
  label: 'Add Cone',
22622
22761
  icon: /*#__PURE__*/React.createElement(Icon, {
22623
- url: img$9
22762
+ url: img$a
22624
22763
  }),
22625
22764
  callback: wrapper(() => featureApi.createFeature(drawingId, rootId, 'CC_Cone', 'Cone'))
22626
22765
  }],
22627
22766
  Import: {
22628
22767
  label: 'Import',
22629
22768
  icon: /*#__PURE__*/React.createElement(Icon, {
22630
- url: img$q
22769
+ url: img$r
22631
22770
  }),
22632
22771
  callback: wrapper(() => featureApi.createFeature(drawingId, rootId, classcad.CCClasses.CCImport, 'Import'))
22772
+ },
22773
+ Deletion: {
22774
+ label: 'Delete Entity',
22775
+ icon: /*#__PURE__*/React.createElement(Icon, {
22776
+ url: img$9
22777
+ }),
22778
+ callback: wrapper(() => featureApi.createFeature(drawingId, rootId, classcad.CCClasses.CCEntityDeletion, 'Entity Deletion'))
22633
22779
  }
22634
22780
  };
22635
22781
  };
@@ -22889,7 +23035,7 @@ const useOptionCommands = () => {
22889
23035
  }, {
22890
23036
  label: 'Wireframe',
22891
23037
  icon: /*#__PURE__*/React.createElement(Icon, {
22892
- url: img$c
23038
+ url: img$d
22893
23039
  }),
22894
23040
  isChecked: showWireframe,
22895
23041
  isDisabled: !showFaces,
@@ -22904,7 +23050,7 @@ const useOptionCommands = () => {
22904
23050
  }, {
22905
23051
  label: 'Vertices',
22906
23052
  icon: /*#__PURE__*/React.createElement(Icon, {
22907
- url: img$F
23053
+ url: img$G
22908
23054
  }),
22909
23055
  isChecked: showVertices,
22910
23056
  command: () => setShowVertices(!showVertices)
@@ -23129,70 +23275,75 @@ const Drawing = ({
23129
23275
  })), /*#__PURE__*/React.createElement(BlankDiv, null));
23130
23276
  };
23131
23277
 
23132
- exports.Boolean = index$x;
23133
- exports.BoundingBoxInfo = index$a;
23134
- exports.Box = index$u;
23278
+ exports.Boolean = index$y;
23279
+ exports.BoundingBoxInfo = index$b;
23280
+ exports.Box = index$v;
23135
23281
  exports.CADApi = CADApi;
23136
23282
  exports.CSysDisplay = CSysDisplay;
23137
- exports.Chamfer = index$p;
23138
- exports.CircularPattern = index$i;
23139
- exports.Cone = index$r;
23283
+ exports.Chamfer = index$q;
23284
+ exports.CircularPattern = index$j;
23285
+ exports.Cone = index$s;
23140
23286
  exports.Constraints = Constraints;
23141
- exports.Cylinder = index$s;
23142
- exports.Cylindrical = index$4;
23143
- exports.Dimensions = index$y;
23287
+ exports.Cylinder = index$t;
23288
+ exports.Cylindrical = index$5;
23289
+ exports.Dimensions = index$z;
23144
23290
  exports.Drawing = Drawing;
23145
- exports.Expressions = index$9;
23146
- exports.Extrusion = index$w;
23147
- exports.Fastened = index$7;
23148
- exports.FastenedOrigin = index$8;
23291
+ exports.EntityDeletion = index$1;
23292
+ exports.Expressions = index$a;
23293
+ exports.Extrusion = index$x;
23294
+ exports.Fastened = index$8;
23295
+ exports.FastenedOrigin = index$9;
23149
23296
  exports.FeaturePlugin = FeaturePlugin;
23150
- exports.Fillet = index$q;
23297
+ exports.Fillet = index$r;
23151
23298
  exports.FtVisibilityController = FtVisibilityController$1;
23152
23299
  exports.GlobalPlugins = GlobalPlugins;
23153
23300
  exports.HUD = HUD;
23154
23301
  exports.HoveredConstraintDisplay = HoveredConstraintDisplay;
23155
- exports.Import = index$1;
23156
- exports.LinearPattern = index$j;
23302
+ exports.Import = index$2;
23303
+ exports.LinearPattern = index$k;
23157
23304
  exports.MateScope = MateScope;
23158
- exports.Measure = index$g;
23305
+ exports.Measure = index$h;
23159
23306
  exports.Menu = Menu;
23160
23307
  exports.Messages = Messages;
23161
- exports.Mirror = index$h;
23308
+ exports.Mirror = index$i;
23162
23309
  exports.ModelTree = ModelTree;
23163
23310
  exports.Outline = Outline;
23164
- exports.Parallel = index$2;
23165
- exports.Planar = index$3;
23311
+ exports.Parallel = index$3;
23312
+ exports.Planar = index$4;
23313
+ exports.PluginGeometryBounds = PluginGeometryBounds;
23166
23314
  exports.ProductManagement = index;
23167
23315
  exports.Readfile = Readfile$1;
23168
- exports.Revolute = index$5;
23169
- exports.Revolve = index$v;
23170
- exports.Rotate = index$n;
23316
+ exports.Revolute = index$6;
23317
+ exports.Revolve = index$w;
23318
+ exports.Rotate = index$o;
23171
23319
  exports.SelectedMateObj = SelectedMateObj;
23172
23320
  exports.SideBar = SideBar;
23173
- exports.Sketch = index$f;
23174
- exports.Slice = index$l;
23175
- exports.SliceBySheet = index$k;
23176
- exports.Slider = index$6;
23321
+ exports.Sketch = index$g;
23322
+ exports.Slice = index$m;
23323
+ exports.SliceBySheet = index$l;
23324
+ exports.Slider = index$7;
23177
23325
  exports.Solids = Solids;
23178
- exports.Sphere = index$t;
23326
+ exports.Sphere = index$u;
23179
23327
  exports.ToolBar = ToolBar;
23180
- exports.TransformByCsys = index$m;
23181
- exports.Translate = index$o;
23328
+ exports.TransformByCsys = index$n;
23329
+ exports.Translate = index$p;
23182
23330
  exports.TreeObjScope = TreeObjScope;
23183
23331
  exports.ViewOptionButtons = ViewOptionButtons;
23184
23332
  exports.ViewPlugButtons = ViewPlugButtons;
23185
- exports.WorkAxis = index$e;
23333
+ exports.WorkAxis = index$f;
23186
23334
  exports.WorkAxisObj = WorkAxisObj;
23187
- exports.WorkCoordSystem = index$b;
23335
+ exports.WorkCoordSystem = index$c;
23188
23336
  exports.WorkCoordSystemObj = WorkCoordSystemObj;
23189
- exports.WorkPlane = index$d;
23337
+ exports.WorkPlane = index$e;
23190
23338
  exports.WorkPlaneObj = WorkPlaneObj;
23191
- exports.WorkPoint = index$c;
23339
+ exports.WorkPoint = index$d;
23192
23340
  exports.WorkPointObj = WorkPointObj;
23193
23341
  exports.getCADState = getCADState;
23194
23342
  exports.getMateRefIds = getMateRefIds;
23195
23343
  exports.useAllObjects = useAllObjects;
23196
23344
  exports.useCADStore = useCADStore;
23345
+ exports.useEditMode = useEditMode;
23197
23346
  exports.useHasPending = useHasPending;
23198
23347
  exports.useIsLoading = useIsLoading;
23348
+ exports.useIsSketchActive = useIsSketchActive;
23349
+ exports.useVisibleSolids = useVisibleSolids;