ketcher-react 2.26.0-rc.1 → 2.26.0-rc.2

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.
@@ -3733,7 +3733,7 @@ var zoom = {
3733
3733
 
3734
3734
  var openHelpLink = function openHelpLink() {
3735
3735
  var _window$open;
3736
- return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v2.26.0-rc.1\n", "/documentation/help.md#ketcher-overview"))) === null || _window$open === void 0 ? void 0 : _window$open.focus();
3736
+ return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v2.26.0-rc.2\n", "/documentation/help.md#ketcher-overview"))) === null || _window$open === void 0 ? void 0 : _window$open.focus();
3737
3737
  };
3738
3738
  var help = {
3739
3739
  help: {
@@ -8040,7 +8040,7 @@ var style$1 = {
8040
8040
  text: text
8041
8041
  };
8042
8042
 
8043
- var _templateObject$d, _templateObject2$9, _templateObject3$7;
8043
+ var _templateObject$c, _templateObject2$8, _templateObject3$6;
8044
8044
  var StyledButton$1 = styled('button', {
8045
8045
  shouldForwardProp: function shouldForwardProp(prop) {
8046
8046
  return prop !== 'isActive';
@@ -8073,9 +8073,9 @@ var StyledButton$1 = styled('button', {
8073
8073
  }
8074
8074
  };
8075
8075
  });
8076
- var IconStyles = css(_templateObject$d || (_templateObject$d = _taggedTemplateLiteral(["\n width: 100%;\n height: 100%;\n"])));
8077
- var StyledIcon = styled(Icon)(_templateObject2$9 || (_templateObject2$9 = _taggedTemplateLiteral(["\n ", ";\n"])), IconStyles);
8078
- var StyledCustomIcon = styled('img')(_templateObject3$7 || (_templateObject3$7 = _taggedTemplateLiteral(["\n ", ";\n"])), IconStyles);
8076
+ var IconStyles = css(_templateObject$c || (_templateObject$c = _taggedTemplateLiteral(["\n width: 100%;\n height: 100%;\n"])));
8077
+ var StyledIcon = styled(Icon)(_templateObject2$8 || (_templateObject2$8 = _taggedTemplateLiteral(["\n ", ";\n"])), IconStyles);
8078
+ var StyledCustomIcon = styled('img')(_templateObject3$6 || (_templateObject3$6 = _taggedTemplateLiteral(["\n ", ";\n"])), IconStyles);
8079
8079
 
8080
8080
  var IconButtonBase = function IconButtonBase(_ref) {
8081
8081
  var onClick = _ref.onClick,
@@ -8165,8 +8165,8 @@ var Button = function Button(_ref) {
8165
8165
  }));
8166
8166
  };
8167
8167
 
8168
- var _templateObject$c;
8169
- var Container$2 = styled.div(_templateObject$c || (_templateObject$c = _taggedTemplateLiteral(["\n ", "\n"])), function (props) {
8168
+ var _templateObject$b;
8169
+ var Container$2 = styled.div(_templateObject$b || (_templateObject$b = _taggedTemplateLiteral(["\n ", "\n"])), function (props) {
8170
8170
  if (props.fullsize) {
8171
8171
  return "\n > svg {\n height: 100%;\n width: 100%;\n }\n ";
8172
8172
  } else {
@@ -8423,10 +8423,10 @@ var Dialog = function Dialog(props) {
8423
8423
  }));
8424
8424
  };
8425
8425
 
8426
- var _templateObject$b, _templateObject2$8, _templateObject3$6, _templateObject4$4, _templateObject5$3, _templateObject6$2;
8427
- var Container = styled.div(_templateObject$b || (_templateObject$b = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n align-items: start;\n gap: 16px;\n padding: 8px;\n background: #ffffff;\n border: 1px solid #cad3dd;\n border-radius: 4px;\n box-shadow: 0px 1px 1px rgba(197, 203, 207, 0.7);\n"])));
8428
- var Header$1 = styled.div(_templateObject2$8 || (_templateObject2$8 = _taggedTemplateLiteral(["\n font-weight: 600;\n"])));
8429
- var Content = styled.div(_templateObject3$6 || (_templateObject3$6 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n gap: 4px;\n"])));
8426
+ var _templateObject$a, _templateObject2$7, _templateObject3$5, _templateObject4$4, _templateObject5$3, _templateObject6$2;
8427
+ var Container = styled.div(_templateObject$a || (_templateObject$a = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n align-items: start;\n gap: 16px;\n padding: 8px;\n background: #ffffff;\n border: 1px solid #cad3dd;\n border-radius: 4px;\n box-shadow: 0px 1px 1px rgba(197, 203, 207, 0.7);\n"])));
8428
+ var Header$1 = styled.div(_templateObject2$7 || (_templateObject2$7 = _taggedTemplateLiteral(["\n font-weight: 600;\n"])));
8429
+ var Content = styled.div(_templateObject3$5 || (_templateObject3$5 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n gap: 4px;\n"])));
8430
8430
  var ContentLine = styled.div(_templateObject4$4 || (_templateObject4$4 = _taggedTemplateLiteral(["\n height: 24px;\n display: flex;\n align-items: center;\n gap: 8px;\n white-space: nowrap;\n"])));
8431
8431
  var RatioBar = styled.div(_templateObject5$3 || (_templateObject5$3 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 36px;\n border-right: 0.5px solid #b4b9d6;\n background: ", ";\n"])), function (_ref) {
8432
8432
  var ratio = _ref.ratio;
@@ -8434,20 +8434,12 @@ var RatioBar = styled.div(_templateObject5$3 || (_templateObject5$3 = _taggedTem
8434
8434
  });
8435
8435
  var MonomerName = styled.div(_templateObject6$2 || (_templateObject6$2 = _taggedTemplateLiteral(["\n flex: 1;\n"])));
8436
8436
 
8437
- var _templateObject$a, _templateObject2$7, _templateObject3$5;
8438
- var UnstyledAmbiguousMonomerPreview = function UnstyledAmbiguousMonomerPreview(_ref) {
8437
+ var AmbiguousMonomerPreview = function AmbiguousMonomerPreview(_ref) {
8439
8438
  var className = _ref.className,
8440
8439
  preview = _ref.preview;
8441
8440
  var monomer = preview.monomer,
8442
- presetMonomers = preview.presetMonomers,
8443
- style = preview.style;
8441
+ presetMonomers = preview.presetMonomers;
8444
8442
  var isAlternatives = monomer.subtype === 'alternatives';
8445
- var ContainerDynamic = useMemo(function () {
8446
- if (!style) {
8447
- return styled(Container)(_templateObject$a || (_templateObject$a = _taggedTemplateLiteral([""])));
8448
- }
8449
- return styled(Container)(_templateObject2$7 || (_templateObject2$7 = _taggedTemplateLiteral(["\n top: ", ";\n left: ", ";\n right: ", ";\n transform: ", ";\n "])), (style === null || style === void 0 ? void 0 : style.top) || '', (style === null || style === void 0 ? void 0 : style.left) || '', (style === null || style === void 0 ? void 0 : style.right) || '', style.transform || '');
8450
- }, [style]);
8451
8443
  var header = isAlternatives ? 'Alternatives' : 'Mixed';
8452
8444
  var aminoAcidFallback = monomer.label === 'X' ? 'Any amino acid' : null;
8453
8445
  var baseFallback = monomer.label === 'N' ? 'Any base' : null;
@@ -8501,7 +8493,7 @@ var UnstyledAmbiguousMonomerPreview = function UnstyledAmbiguousMonomerPreview(_
8501
8493
  }
8502
8494
  return sortedData.slice(0, 5);
8503
8495
  }, [previewData, isAlternatives]);
8504
- return jsxs(ContainerDynamic, {
8496
+ return jsxs(Container, {
8505
8497
  className: className,
8506
8498
  "data-testid": "polymer-library-preview",
8507
8499
  children: [jsx(Header$1, {
@@ -8518,7 +8510,6 @@ var UnstyledAmbiguousMonomerPreview = function UnstyledAmbiguousMonomerPreview(_
8518
8510
  })]
8519
8511
  });
8520
8512
  };
8521
- var AmbiguousMonomerPreview = styled(UnstyledAmbiguousMonomerPreview)(_templateObject3$5 || (_templateObject3$5 = _taggedTemplateLiteral(["\n z-index: 5;\n position: absolute;\n"])));
8522
8513
 
8523
8514
  var PreviewType;
8524
8515
  (function (PreviewType) {
@@ -12948,12 +12939,16 @@ function calculateAmbiguousMonomerPreviewLeft(initialLeft) {
12948
12939
  return initialLeft + PREVIEW_WIDTH / 2 > canvasWrapperRight ? canvasWrapperRight - PREVIEW_WIDTH : initialLeft - PREVIEW_WIDTH / 2 < canvasWrapperLeft ? canvasWrapperLeft : initialLeft - PREVIEW_WIDTH / 2;
12949
12940
  }
12950
12941
  var calculateBondPreviewPosition = function calculateBondPreviewPosition(bond, bondCoordinates) {
12951
- var _firstMonomer$rendere, _secondMonomer$render;
12942
+ var _firstMonomer$rendere, _secondMonomer$render, _ZoomTool$instance;
12952
12943
  var firstMonomer = bond.firstMonomer,
12953
12944
  secondMonomer = bond.secondMonomer;
12954
12945
  assert_1(secondMonomer);
12955
12946
  var firstMonomerCoordinates = (_firstMonomer$rendere = firstMonomer.renderer) === null || _firstMonomer$rendere === void 0 ? void 0 : _firstMonomer$rendere.rootBoundingClientRect;
12956
12947
  var secondMonomerCoordinates = (_secondMonomer$render = secondMonomer.renderer) === null || _secondMonomer$render === void 0 ? void 0 : _secondMonomer$render.rootBoundingClientRect;
12948
+ var canvasWrapperBoundingClientRect = (_ZoomTool$instance = ZoomTool.instance) === null || _ZoomTool$instance === void 0 || (_ZoomTool$instance = _ZoomTool$instance.canvasWrapper.node()) === null || _ZoomTool$instance === void 0 ? void 0 : _ZoomTool$instance.getBoundingClientRect();
12949
+ var canvasWrapperBottom = (canvasWrapperBoundingClientRect === null || canvasWrapperBoundingClientRect === void 0 ? void 0 : canvasWrapperBoundingClientRect.bottom) || 0;
12950
+ var canvasWrapperTop = (canvasWrapperBoundingClientRect === null || canvasWrapperBoundingClientRect === void 0 ? void 0 : canvasWrapperBoundingClientRect.top) || 0;
12951
+ var canvasWrapperRight = (canvasWrapperBoundingClientRect === null || canvasWrapperBoundingClientRect === void 0 ? void 0 : canvasWrapperBoundingClientRect.right) || 0;
12957
12952
  assert_1(firstMonomerCoordinates);
12958
12953
  assert_1(secondMonomerCoordinates);
12959
12954
  var left = Math.min(bondCoordinates.left, firstMonomerCoordinates.left, secondMonomerCoordinates.left);
@@ -12964,26 +12959,30 @@ var calculateBondPreviewPosition = function calculateBondPreviewPosition(bond, b
12964
12959
  var height = bottom - top;
12965
12960
  var style = {};
12966
12961
  if (width > height) {
12962
+ var leftValue = left + width / 2;
12967
12963
  var topValue;
12968
- if (top > preview.height + preview.gap) {
12964
+ if (top + canvasWrapperTop > preview.height) {
12969
12965
  topValue = top - preview.heightForBond - preview.gap;
12970
12966
  } else {
12971
12967
  topValue = bottom + preview.gap;
12972
12968
  }
12973
12969
  style = {
12974
12970
  top: "".concat(topValue, "px"),
12975
- left: "".concat(left + width / 2, "px")
12971
+ left: "".concat(leftValue, "px"),
12972
+ transform: "translate(".concat(leftValue + preview.width > canvasWrapperRight ? '-100%' : leftValue > preview.width / 2 ? '-50%' : 0, ", 0)")
12976
12973
  };
12977
12974
  } else {
12978
- var leftValue;
12975
+ var _topValue = top + height / 2;
12976
+ var _leftValue;
12979
12977
  if (left > preview.widthForBond + preview.gap) {
12980
- leftValue = left - preview.widthForBond / 2 - preview.gap;
12978
+ _leftValue = left - preview.widthForBond / 2 - preview.gap;
12981
12979
  } else {
12982
- leftValue = right + preview.widthForBond / 2 + preview.gap;
12980
+ _leftValue = right + preview.widthForBond / 2 + preview.gap;
12983
12981
  }
12984
12982
  style = {
12985
- top: "".concat(top + height / 2, "px"),
12986
- left: "".concat(leftValue, "px")
12983
+ top: "".concat(_topValue, "px"),
12984
+ left: "".concat(_leftValue, "px"),
12985
+ transform: "translate(".concat(_leftValue > preview.width / 2 ? '-50%' : 0, ", ").concat(_topValue + preview.height / 2 > canvasWrapperBottom ? '-100%' : _topValue > preview.height / 2 ? '-50%' : 0, ")")
12987
12986
  };
12988
12987
  }
12989
12988
  return style;
@@ -18113,7 +18112,7 @@ var SelectTool = function () {
18113
18112
  xy0: currentPosition
18114
18113
  };
18115
18114
  }
18116
- if (!ci || ci.map === 'atoms') {
18115
+ if (!ci || ci.map === 'atoms' && !event.ctrlKey) {
18117
18116
  atomLongtapEvent(this, rnd);
18118
18117
  }
18119
18118
  var sel = closestToSel(ci);
@@ -18246,6 +18245,7 @@ var SelectTool = function () {
18246
18245
  return;
18247
18246
  }
18248
18247
  this.isMouseDown = false;
18248
+ this.isReadyForCopy = false;
18249
18249
  var editor = this.editor;
18250
18250
  var selected = editor.selection();
18251
18251
  var struct = editor.render.ctab;
@@ -24352,12 +24352,13 @@ function selectStereoFlagsIfNecessary(atoms, expAtoms) {
24352
24352
  }
24353
24353
  var _origin = new WeakMap();
24354
24354
  var Editor$3 = function () {
24355
- function Editor(clientArea, options) {
24355
+ function Editor(clientArea, options, serverSettings) {
24356
24356
  _classCallCheck$2(this, Editor);
24357
24357
  _classPrivateFieldInitSpec(this, _origin, {
24358
24358
  writable: true,
24359
24359
  value: void 0
24360
24360
  });
24361
+ _defineProperty$1(this, "serverSettings", {});
24361
24362
  this.render = new Render(clientArea, Object.assign({
24362
24363
  microModeScale: SCALE
24363
24364
  }, options), options.reuseRestructIfExist !== false);
@@ -24369,6 +24370,7 @@ var Editor$3 = function () {
24369
24370
  this.highlights = new Highlighter(this);
24370
24371
  this.renderAndRecoordinateStruct = this.renderAndRecoordinateStruct.bind(this);
24371
24372
  this.setOptions = this.setOptions.bind(this);
24373
+ this.setServerSettings(serverSettings);
24372
24374
  this.lastCursorPosition = {
24373
24375
  x: 0,
24374
24376
  y: 0
@@ -24508,6 +24510,11 @@ var Editor$3 = function () {
24508
24510
  this.render.update();
24509
24511
  return this.render.options;
24510
24512
  }
24513
+ }, {
24514
+ key: "setServerSettings",
24515
+ value: function setServerSettings(serverSettings) {
24516
+ this.serverSettings = serverSettings;
24517
+ }
24511
24518
  }, {
24512
24519
  key: "updateToolAfterOptionsChange",
24513
24520
  value: function updateToolAfterOptionsChange(wasViewOnlyEnabled) {
@@ -25155,6 +25162,7 @@ function ButtonGroup(_ref) {
25155
25162
  },
25156
25163
  className: clsx(classes$F.button, _defineProperty$1({}, classes$F.selected, buttonValue === value)),
25157
25164
  style: {
25165
+ display: 'flex',
25158
25166
  flex: '1 0 25%',
25159
25167
  margin: '2px',
25160
25168
  borderRadius: '3px'
@@ -26937,7 +26945,7 @@ var InfoTooltip$1 = connect(function (store) {
26937
26945
  };
26938
26946
  })(InfoTooltip);
26939
26947
 
26940
- var _excluded$o = ["Tag", "className", "indigoVerification", "struct", "tool", "toolOpts", "options", "onInit", "onSelectionChange", "onElementEdit", "onEnhancedStereoEdit", "onQuickEdit", "onBondEdit", "onZoomIn", "onZoomOut", "onRgroupEdit", "onSgroupEdit", "onRemoveFG", "onMessage", "onAromatizeStruct", "onDearomatizeStruct", "onAttachEdit", "onCipChange", "onConfirm", "onShowInfo", "onApiSettings", "showAttachmentPoints", "onUpdateFloatingTools", "onShowMacromoleculesErrorMessage"];
26948
+ var _excluded$o = ["Tag", "className", "indigoVerification", "struct", "tool", "toolOpts", "options", "onInit", "onSelectionChange", "onElementEdit", "onEnhancedStereoEdit", "onQuickEdit", "onBondEdit", "onZoomIn", "onZoomOut", "onRgroupEdit", "onSgroupEdit", "onRemoveFG", "onMessage", "onAromatizeStruct", "onDearomatizeStruct", "onAttachEdit", "onCipChange", "onConfirm", "onShowInfo", "onApiSettings", "showAttachmentPoints", "onUpdateFloatingTools", "onShowMacromoleculesErrorMessage", "serverSettings"];
26941
26949
  function ownKeys$F(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26942
26950
  function _objectSpread$F(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$F(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$F(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26943
26951
  function _callSuper$9(t, o, e) { return o = _getPrototypeOf$2(o), _possibleConstructorReturn$2(t, _isNativeReflectConstruct$9() ? Reflect.construct(o, e || [], _getPrototypeOf$2(t).constructor) : o.apply(t, e)); }
@@ -26957,7 +26965,10 @@ function setupEditor(editor, props) {
26957
26965
  });
26958
26966
  }
26959
26967
  }
26960
- if (oldProps.options && options !== oldProps.options) editor.options(options);
26968
+ if (oldProps.options && options !== oldProps.options) {
26969
+ editor.options(options);
26970
+ editor.setServerSettings(props.serverSettings);
26971
+ }
26961
26972
  Object.keys(editor.event).forEach(function (name) {
26962
26973
  var eventName = "on".concat(upperFirst(name));
26963
26974
  if (props[eventName] !== oldProps[eventName]) {
@@ -27055,7 +27066,7 @@ var StructEditor = function (_Component) {
27055
27066
  key: "componentDidMount",
27056
27067
  value: function componentDidMount() {
27057
27068
  var _this4 = this;
27058
- this.editor = new Editor$3(this.editorRef.current, _objectSpread$F({}, this.props.options));
27069
+ this.editor = new Editor$3(this.editorRef.current, _objectSpread$F({}, this.props.options), _objectSpread$F({}, this.props.serverSettings));
27059
27070
  var ketcher = ketcherProvider.getKetcher();
27060
27071
  if (ketcher !== null && ketcher !== void 0 && ketcher.editor.macromoleculeConvertionError) {
27061
27072
  this.props.onShowMacromoleculesErrorMessage(ketcher.editor.macromoleculeConvertionError);
@@ -27181,6 +27192,7 @@ var StructEditor = function (_Component) {
27181
27192
  _this$props.showAttachmentPoints;
27182
27193
  _this$props.onUpdateFloatingTools;
27183
27194
  _this$props.onShowMacromoleculesErrorMessage;
27195
+ _this$props.serverSettings;
27184
27196
  var props = _objectWithoutProperties(_this$props, _excluded$o);
27185
27197
  var _this$state = this.state,
27186
27198
  _this$state$clientX = _this$state.clientX,
@@ -28515,12 +28527,11 @@ var SaveButton$1 = function SaveButton(props) {
28515
28527
  var server = props.server,
28516
28528
  _props$filename = props.filename,
28517
28529
  filename = _props$filename === void 0 ? 'unnamed' : _props$filename,
28518
- outputFormat = props.outputFormat,
28519
- bondThickness = props.bondThickness,
28520
28530
  data = props.data,
28521
28531
  type = props.type,
28522
28532
  _props$mode = props.mode,
28523
28533
  mode = _props$mode === void 0 ? 'saveFile' : _props$mode,
28534
+ options = props.options,
28524
28535
  _props$onSave = props.onSave,
28525
28536
  onSave = _props$onSave === void 0 ? noop : _props$onSave,
28526
28537
  _props$onError = props.onError,
@@ -28545,12 +28556,9 @@ var SaveButton$1 = function SaveButton(props) {
28545
28556
  };
28546
28557
  var saveImage = function saveImage() {
28547
28558
  var ketcherInstance = getKetcherInstance();
28548
- if (outputFormat) {
28549
- ketcherInstance.generateImage(data, {
28550
- outputFormat: outputFormat,
28551
- bondThickness: bondThickness || defaultBondThickness
28552
- }).then(function (blob) {
28553
- saveAs(blob, "".concat(filename, ".").concat(outputFormat));
28559
+ if (options !== null && options !== void 0 && options.outputFormat) {
28560
+ ketcherInstance.generateImage(data, options).then(function (blob) {
28561
+ saveAs(blob, "".concat(filename, ".").concat(options.outputFormat));
28554
28562
  onSave();
28555
28563
  })["catch"](function (e) {
28556
28564
  KetcherLogger.error('savebutton.tsx::SaveButton::saveImage', e);
@@ -28992,7 +29000,7 @@ var SettingsDialog = function SettingsDialog(props) {
28992
29000
  var ACSStyleButton = jsx("button", {
28993
29001
  className: classes$x.acsStyleButton,
28994
29002
  onClick: onACSStyle,
28995
- children: "ACS Style"
29003
+ children: "Set ACS Settings"
28996
29004
  }, "acsstylebutton");
28997
29005
  var tabs = [generalTab, stereoTab, atomsTab, bondsTab, serverTab, threeDViewerTab, debuggingTab];
28998
29006
  return jsx(Dialog, {
@@ -31469,12 +31477,13 @@ var SaveDialog = function (_Component) {
31469
31477
  isLoading = _this$state2.isLoading,
31470
31478
  structStr = _this$state2.structStr;
31471
31479
  var _this$props3 = _this.props,
31472
- formState = _this$props3.formState,
31473
- bondThickness = _this$props3.bondThickness;
31480
+ options = _this$props3.options,
31481
+ formState = _this$props3.formState;
31474
31482
  var _formState$result2 = formState.result,
31475
31483
  filename = _formState$result2.filename,
31476
31484
  format = _formState$result2.format;
31477
31485
  var isCleanStruct = _this.props.struct.isBlank();
31486
+ options.outputFormat = imageFormat;
31478
31487
  var savingStruct = _this.isBinaryCdxFormat(format) && !isLoading ? b64toBlob(structStr) : structStr;
31479
31488
  var isMoleculeContain = _this.props.struct.atoms.size && _this.props.struct.bonds.size;
31480
31489
  var buttons = [jsx("button", {
@@ -31497,10 +31506,9 @@ var SaveDialog = function (_Component) {
31497
31506
  if (_this.isImageFormat(format)) {
31498
31507
  buttons.push( jsx(SaveButton$1, {
31499
31508
  mode: "saveImage",
31509
+ options: options,
31500
31510
  data: structStr,
31501
31511
  filename: filename,
31502
- outputFormat: imageFormat,
31503
- bondThickness: bondThickness,
31504
31512
  type: "image/".concat(format, "+xml"),
31505
31513
  onSave: _this.props.onOk,
31506
31514
  disabled: disableControls || !formState.valid || isCleanStruct || !_this.props.server,
@@ -34041,7 +34049,7 @@ function initEditor(dispatch, getState) {
34041
34049
  return function (dispatch) {
34042
34050
  var state = global.currentState;
34043
34051
  var activeTool = state.actionState.activeTool.tool;
34044
- if (activeTool === 'select') return;
34052
+ if (activeTool === 'select' && !force) return;
34045
34053
  var selectMode = state.toolbar.visibleTools.select;
34046
34054
  var resetOption = state.options.settings.resetToSelect;
34047
34055
  if (resetOption === true || resetOption === activeTool || force === true)
@@ -34247,8 +34255,10 @@ var mapDispatchToProps$1 = function mapDispatchToProps(dispatch) {
34247
34255
  });
34248
34256
  };
34249
34257
  var Editor$1 = connect(function (state) {
34258
+ var serverSettings = state.options.getServerSettings();
34250
34259
  return {
34251
34260
  options: state.options.settings,
34261
+ serverSettings: serverSettings,
34252
34262
  indigoVerification: state.requestsStatuses.indigoVerification
34253
34263
  };
34254
34264
  }, mapDispatchToProps$1)(StructEditor);
@@ -34773,8 +34783,8 @@ var KetcherBuilder = function () {
34773
34783
  cleanup = initApp(element, appRoot, staticResourcesUrl, {
34774
34784
  buttons: buttons || {},
34775
34785
  errorHandler: errorHandler || null,
34776
- version: "2.26.0-rc.1" ,
34777
- buildDate: "2024-10-04T18:52:31" ,
34786
+ version: "2.26.0-rc.2" ,
34787
+ buildDate: "2024-10-14T19:59:25" ,
34778
34788
  buildNumber: '',
34779
34789
  customButtons: customButtons || []
34780
34790
  }, structService, resolve, togglerComponent);