ketcher-react 3.1.0-rc.9 → 3.2.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.
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.1.0-rc.9\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.2\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(),
@@ -24618,10 +24619,14 @@ var Editor$3 = function () {
24618
24619
  key: "renderAndRecoordinateStruct",
24619
24620
  value: function renderAndRecoordinateStruct(struct) {
24620
24621
  var needToCenterStruct = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
24622
+ var x = arguments.length > 2 ? arguments[2] : undefined;
24623
+ var y = arguments.length > 3 ? arguments[3] : undefined;
24621
24624
  var action = ketcherCore.fromNewCanvas(this.render.ctab, struct);
24622
24625
  this.update(action);
24623
24626
  if (needToCenterStruct) {
24624
24627
  this.centerStruct();
24628
+ } else if (x != null && y != null) {
24629
+ this.positionStruct(x, y);
24625
24630
  }
24626
24631
  return this.render.ctab.molecule;
24627
24632
  }
@@ -24629,22 +24634,34 @@ var Editor$3 = function () {
24629
24634
  key: "struct",
24630
24635
  value: function struct(value) {
24631
24636
  var needToCenterStruct = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
24637
+ var x = arguments.length > 2 ? arguments[2] : undefined;
24638
+ var y = arguments.length > 3 ? arguments[3] : undefined;
24632
24639
  if (arguments.length === 0) {
24633
24640
  return this.render.ctab.molecule;
24634
24641
  }
24635
24642
  ketcherCore.KetcherLogger.log('Editor.struct(), start', value, needToCenterStruct);
24636
24643
  this.selection(null);
24637
24644
  var struct = value || new ketcherCore.Struct();
24638
- var molecule = this.renderAndRecoordinateStruct(struct, needToCenterStruct);
24645
+ var molecule = this.renderAndRecoordinateStruct(struct, needToCenterStruct, x, y);
24639
24646
  this.hoverIcon.create();
24640
24647
  ketcherCore.KetcherLogger.log('Editor.struct(), end');
24641
24648
  return molecule;
24642
24649
  }
24643
24650
  }, {
24644
24651
  key: "structToAddFragment",
24645
- value: function structToAddFragment(value) {
24646
- var superStruct = value.mergeInto(this.render.ctab.molecule.clone());
24647
- return this.renderAndRecoordinateStruct(superStruct);
24652
+ value: function structToAddFragment(struct, x, y) {
24653
+ if (x != null && y != null) {
24654
+ var position = new ketcherCore.Vec2(x, y);
24655
+ var _fromPaste = ketcherCore.fromPaste(this.render.ctab, struct, position, 0, false, true),
24656
+ _fromPaste2 = _slicedToArray__default["default"](_fromPaste, 1),
24657
+ action = _fromPaste2[0];
24658
+ this.update(action, true);
24659
+ } else {
24660
+ var superStruct = struct.mergeInto(this.render.ctab.molecule.clone());
24661
+ this.renderAndRecoordinateStruct(superStruct);
24662
+ }
24663
+ this.centerViewportAccordingToStruct();
24664
+ return this.render.ctab.molecule;
24648
24665
  }
24649
24666
  }, {
24650
24667
  key: "setOptions",
@@ -24714,6 +24731,32 @@ var Editor$3 = function () {
24714
24731
  var action = ketcherCore.fromMultipleMove(structure, structureToMove, shiftVector);
24715
24732
  this.update(action, true);
24716
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
+ }
24748
+ }, {
24749
+ key: "positionStruct",
24750
+ value: function positionStruct(x, y) {
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);
24757
+ this.update(action, true);
24758
+ this.centerViewportAccordingToStruct();
24759
+ }
24717
24760
  }, {
24718
24761
  key: "zoomAccordingContent",
24719
24762
  value: function zoomAccordingContent(struct) {
@@ -24728,15 +24771,17 @@ var Editor$3 = function () {
24728
24771
  };
24729
24772
  var clientAreaBoundingBox = this.render.clientArea.getBoundingClientRect();
24730
24773
  if (parsedStructSizeInPixels.width + MARGIN_IN_PIXELS < clientAreaBoundingBox.width && parsedStructSizeInPixels.height + MARGIN_IN_PIXELS < clientAreaBoundingBox.height) {
24731
- return;
24774
+ return true;
24732
24775
  }
24733
24776
  var newZoomValue = this.render.options.zoom / (parsedStructSizeInPixels.height - clientAreaBoundingBox.height > parsedStructSizeInPixels.width - clientAreaBoundingBox.width ? parsedStructSizeInPixels.height / clientAreaBoundingBox.height : parsedStructSizeInPixels.width / clientAreaBoundingBox.width);
24734
24777
  if (newZoomValue >= MAX_ZOOM_VALUE) {
24735
24778
  this.zoom(MAX_ZOOM_VALUE);
24736
- return;
24779
+ return true;
24737
24780
  }
24738
24781
  newZoomValue -= MARGIN_IN_PIXELS / clientAreaBoundingBox.width;
24739
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;
24740
24785
  }
24741
24786
  }, {
24742
24787
  key: "selection",
@@ -27191,7 +27236,7 @@ var InfoTooltip$1 = reactRedux.connect(function (store) {
27191
27236
  };
27192
27237
  })(InfoTooltip);
27193
27238
 
27194
- 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"];
27195
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; }
27196
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; }
27197
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)); }
@@ -27424,6 +27469,7 @@ var StructEditor = function (_Component) {
27424
27469
  _this$props.onBondEdit;
27425
27470
  _this$props.onZoomIn;
27426
27471
  _this$props.onZoomOut;
27472
+ _this$props.onZoomChanged;
27427
27473
  _this$props.onRgroupEdit;
27428
27474
  _this$props.onSgroupEdit;
27429
27475
  _this$props.onRemoveFG;
@@ -34533,6 +34579,7 @@ function initEditor(dispatch, getState) {
34533
34579
  }),
34534
34580
  onZoomIn: updateAction,
34535
34581
  onZoomOut: updateAction,
34582
+ onZoomChanged: updateAction,
34536
34583
  onShowMacromoleculesErrorMessage: function onShowMacromoleculesErrorMessage(payload) {
34537
34584
  return dispatch(openInfoModalWithCustomMessage(payload));
34538
34585
  }
@@ -35084,8 +35131,8 @@ var KetcherBuilder = function () {
35084
35131
  cleanup = initApp(element, appRoot, staticResourcesUrl, {
35085
35132
  buttons: buttons || {},
35086
35133
  errorHandler: errorHandler || null,
35087
- version: "3.1.0-rc.9" ,
35088
- buildDate: "2025-03-11T17:54:08" ,
35134
+ version: "3.2.0-rc.2" ,
35135
+ buildDate: "2025-03-17T18:47:38" ,
35089
35136
  buildNumber: '',
35090
35137
  customButtons: customButtons || []
35091
35138
  }, structService, resolve, togglerComponent);
@@ -35377,7 +35424,7 @@ var ModeControl = function ModeControl(_ref3) {
35377
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; }
35378
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; }
35379
35426
  var MacromoleculesEditor = React.lazy(function () {
35380
- return Promise.resolve().then(function () { return require('./index.modern-692d4305.js'); });
35427
+ return Promise.resolve().then(function () { return require('./index.modern-88e692a5.js'); });
35381
35428
  });
35382
35429
  var Editor = function Editor(props) {
35383
35430
  var _useState = React.useState(false),