ketcher-react 3.2.0-rc.1 → 3.2.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.js CHANGED
@@ -3808,7 +3808,7 @@ var zoom = {
3808
3808
 
3809
3809
  var openHelpLink = function openHelpLink() {
3810
3810
  var _window$open;
3811
- return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v3.2.0-rc.1\n", "/documentation/help.md#ketcher-overview"))) === null || _window$open === void 0 ? void 0 : _window$open.focus();
3811
+ return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v3.2.0-rc.3\n", "/documentation/help.md#ketcher-overview"))) === null || _window$open === void 0 ? void 0 : _window$open.focus();
3812
3812
  };
3813
3813
  var help = {
3814
3814
  help: {
@@ -24548,6 +24548,7 @@ var Editor$3 = function () {
24548
24548
  bondEdit: new subscription.PipelineSubscription(),
24549
24549
  zoomIn: new subscription.PipelineSubscription(),
24550
24550
  zoomOut: new subscription.PipelineSubscription(),
24551
+ zoomChanged: new subscription.PipelineSubscription(),
24551
24552
  rgroupEdit: new subscription.PipelineSubscription(),
24552
24553
  sgroupEdit: new subscription.PipelineSubscription(),
24553
24554
  sdataEdit: new subscription.PipelineSubscription(),
@@ -24648,18 +24649,19 @@ var Editor$3 = function () {
24648
24649
  }
24649
24650
  }, {
24650
24651
  key: "structToAddFragment",
24651
- value: function structToAddFragment(value, x, y) {
24652
+ value: function structToAddFragment(struct, x, y) {
24652
24653
  if (x != null && y != null) {
24653
24654
  var position = new ketcherCore.Vec2(x, y);
24654
- var _fromPaste = ketcherCore.fromPaste(this.render.ctab, value, position, 0),
24655
+ var _fromPaste = ketcherCore.fromPaste(this.render.ctab, struct, position, 0, false, true),
24655
24656
  _fromPaste2 = _slicedToArray__default["default"](_fromPaste, 1),
24656
24657
  action = _fromPaste2[0];
24657
24658
  this.update(action, true);
24658
- return this.render.ctab.molecule;
24659
24659
  } else {
24660
- var superStruct = value.mergeInto(this.render.ctab.molecule.clone());
24661
- return this.renderAndRecoordinateStruct(superStruct);
24660
+ var superStruct = struct.mergeInto(this.render.ctab.molecule.clone());
24661
+ this.renderAndRecoordinateStruct(superStruct);
24662
24662
  }
24663
+ this.centerViewportAccordingToStruct();
24664
+ return this.render.ctab.molecule;
24663
24665
  }
24664
24666
  }, {
24665
24667
  key: "setOptions",
@@ -24729,16 +24731,31 @@ var Editor$3 = function () {
24729
24731
  var action = ketcherCore.fromMultipleMove(structure, structureToMove, shiftVector);
24730
24732
  this.update(action, true);
24731
24733
  }
24734
+ }, {
24735
+ key: "centerViewportAccordingToStruct",
24736
+ value: function centerViewportAccordingToStruct() {
24737
+ var struct = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.struct();
24738
+ var isFitMinZoom = this.zoomAccordingContent(struct);
24739
+ var structBbox = struct.getCoordBoundingBox();
24740
+ var newScrollCoordinates = ketcherCore.Coordinates.modelToCanvas(isFitMinZoom ? new ketcherCore.Vec2(structBbox.min.x + (structBbox.max.x - structBbox.min.x) / 2, structBbox.min.y + (structBbox.max.y - structBbox.min.y) / 2) : new ketcherCore.Vec2(structBbox.min.x, structBbox.min.y)).sub(new ketcherCore.Vec2(this.render.viewBox.width / 2, this.render.viewBox.height / 2));
24741
+ this.render.setViewBox(function (viewBox) {
24742
+ return _objectSpread$Q(_objectSpread$Q({}, viewBox), {}, {
24743
+ minX: newScrollCoordinates.x,
24744
+ minY: newScrollCoordinates.y
24745
+ });
24746
+ });
24747
+ }
24732
24748
  }, {
24733
24749
  key: "positionStruct",
24734
24750
  value: function positionStruct(x, y) {
24735
- var structure = this.render.ctab;
24736
- var structCenter = getStructCenter(structure);
24737
- var viewBoxCenter = new ketcherCore.Vec2(this.render.viewBox.minX + x, this.render.viewBox.minY + y);
24738
- var shiftVector = viewBoxCenter.sub(structCenter);
24739
- var structureToMove = getSelectionMap(structure);
24740
- var action = ketcherCore.fromMultipleMove(structure, structureToMove, shiftVector);
24751
+ var struct = this.struct();
24752
+ var reStruct = this.render.ctab;
24753
+ var structBbox = struct.getCoordBoundingBox();
24754
+ var shiftVector = new ketcherCore.Vec2(x, y).sub(structBbox.min);
24755
+ var structureToMove = getSelectionMap(reStruct);
24756
+ var action = ketcherCore.fromMultipleMove(reStruct, structureToMove, shiftVector);
24741
24757
  this.update(action, true);
24758
+ this.centerViewportAccordingToStruct();
24742
24759
  }
24743
24760
  }, {
24744
24761
  key: "zoomAccordingContent",
@@ -24754,15 +24771,17 @@ var Editor$3 = function () {
24754
24771
  };
24755
24772
  var clientAreaBoundingBox = this.render.clientArea.getBoundingClientRect();
24756
24773
  if (parsedStructSizeInPixels.width + MARGIN_IN_PIXELS < clientAreaBoundingBox.width && parsedStructSizeInPixels.height + MARGIN_IN_PIXELS < clientAreaBoundingBox.height) {
24757
- return;
24774
+ return true;
24758
24775
  }
24759
24776
  var newZoomValue = this.render.options.zoom / (parsedStructSizeInPixels.height - clientAreaBoundingBox.height > parsedStructSizeInPixels.width - clientAreaBoundingBox.width ? parsedStructSizeInPixels.height / clientAreaBoundingBox.height : parsedStructSizeInPixels.width / clientAreaBoundingBox.width);
24760
24777
  if (newZoomValue >= MAX_ZOOM_VALUE) {
24761
24778
  this.zoom(MAX_ZOOM_VALUE);
24762
- return;
24779
+ return true;
24763
24780
  }
24764
24781
  newZoomValue -= MARGIN_IN_PIXELS / clientAreaBoundingBox.width;
24765
24782
  this.zoom(newZoomValue < MIN_ZOOM_VALUE ? MIN_ZOOM_VALUE : Number(newZoomValue.toFixed(2)));
24783
+ this.event.zoomChanged.dispatch();
24784
+ return newZoomValue > MIN_ZOOM_VALUE;
24766
24785
  }
24767
24786
  }, {
24768
24787
  key: "selection",
@@ -27217,7 +27236,7 @@ var InfoTooltip$1 = reactRedux.connect(function (store) {
27217
27236
  };
27218
27237
  })(InfoTooltip);
27219
27238
 
27220
- 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"];
27239
+ var _excluded$o = ["Tag", "className", "indigoVerification", "struct", "tool", "toolOpts", "options", "onInit", "onSelectionChange", "onElementEdit", "onEnhancedStereoEdit", "onQuickEdit", "onBondEdit", "onZoomIn", "onZoomOut", "onZoomChanged", "onRgroupEdit", "onSgroupEdit", "onRemoveFG", "onMessage", "onAromatizeStruct", "onDearomatizeStruct", "onAttachEdit", "onCipChange", "onConfirm", "onShowInfo", "onApiSettings", "showAttachmentPoints", "onUpdateFloatingTools", "onShowMacromoleculesErrorMessage", "serverSettings"];
27221
27240
  function ownKeys$G(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; }
27222
27241
  function _objectSpread$G(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$G(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$G(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
27223
27242
  function _callSuper$9(t, o, e) { return o = _getPrototypeOf__default["default"](o), _possibleConstructorReturn__default["default"](t, _isNativeReflectConstruct$9() ? Reflect.construct(o, e || [], _getPrototypeOf__default["default"](t).constructor) : o.apply(t, e)); }
@@ -27450,6 +27469,7 @@ var StructEditor = function (_Component) {
27450
27469
  _this$props.onBondEdit;
27451
27470
  _this$props.onZoomIn;
27452
27471
  _this$props.onZoomOut;
27472
+ _this$props.onZoomChanged;
27453
27473
  _this$props.onRgroupEdit;
27454
27474
  _this$props.onSgroupEdit;
27455
27475
  _this$props.onRemoveFG;
@@ -34559,6 +34579,7 @@ function initEditor(dispatch, getState) {
34559
34579
  }),
34560
34580
  onZoomIn: updateAction,
34561
34581
  onZoomOut: updateAction,
34582
+ onZoomChanged: updateAction,
34562
34583
  onShowMacromoleculesErrorMessage: function onShowMacromoleculesErrorMessage(payload) {
34563
34584
  return dispatch(openInfoModalWithCustomMessage(payload));
34564
34585
  }
@@ -35110,8 +35131,8 @@ var KetcherBuilder = function () {
35110
35131
  cleanup = initApp(element, appRoot, staticResourcesUrl, {
35111
35132
  buttons: buttons || {},
35112
35133
  errorHandler: errorHandler || null,
35113
- version: "3.2.0-rc.1" ,
35114
- buildDate: "2025-03-04T14:36:10" ,
35134
+ version: "3.2.0-rc.3" ,
35135
+ buildDate: "2025-03-19T14:14:17" ,
35115
35136
  buildNumber: '',
35116
35137
  customButtons: customButtons || []
35117
35138
  }, structService, resolve, togglerComponent);
@@ -35403,7 +35424,7 @@ var ModeControl = function ModeControl(_ref3) {
35403
35424
  function ownKeys(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; }
35404
35425
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
35405
35426
  var MacromoleculesEditor = React.lazy(function () {
35406
- return Promise.resolve().then(function () { return require('./index.modern-dc72bcd6.js'); });
35427
+ return Promise.resolve().then(function () { return require('./index.modern-429c1d39.js'); });
35407
35428
  });
35408
35429
  var Editor = function Editor(props) {
35409
35430
  var _useState = React.useState(false),