ketcher-react 3.4.0-rc.1 → 3.4.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
@@ -3810,7 +3810,7 @@ var zoom = {
3810
3810
 
3811
3811
  var openHelpLink = function openHelpLink() {
3812
3812
  var _window$open;
3813
- return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v3.4.0-rc.1\n", "/documentation/help.md#ketcher-overview"))) === null || _window$open === void 0 ? void 0 : _window$open.focus();
3813
+ return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v3.4.0-rc.2\n", "/documentation/help.md#ketcher-overview"))) === null || _window$open === void 0 ? void 0 : _window$open.focus();
3814
3814
  };
3815
3815
  var help = {
3816
3816
  help: {
@@ -24599,18 +24599,26 @@ var SCALE = ketcherCore.provideEditorSettings().microModeScale;
24599
24599
  var HISTORY_SIZE = 32;
24600
24600
  var structObjects = ['atoms', 'bonds', 'frags', 'sgroups', 'sgroupData', 'rgroups', 'rxnArrows', 'rxnPluses', 'enhancedFlags', 'simpleObjects', 'texts', 'rgroupAttachmentPoints', ketcherCore.IMAGE_KEY, ketcherCore.MULTITAIL_ARROW_KEY];
24601
24601
  var highlightTargets = ['atoms', 'bonds', 'rxnArrows', 'rxnPluses', 'functionalGroups', 'frags', 'merge', 'rgroups', 'rgroupAttachmentPoints', 'sgroups', 'sgroupData', 'enhancedFlags', 'simpleObjects', 'texts', ketcherCore.IMAGE_KEY, ketcherCore.MULTITAIL_ARROW_KEY];
24602
- function selectStereoFlagsIfNecessary(atoms, expAtoms) {
24603
- var atomsOfFragments = {};
24602
+ function selectStereoFlagsIfNecessary(atoms, explicitlySelectedAtoms) {
24603
+ var fragmentToAtoms = new Map();
24604
24604
  atoms.forEach(function (atom, atomId) {
24605
- atomsOfFragments[atom.fragment] ? atomsOfFragments[atom.fragment].push(atomId) : atomsOfFragments[atom.fragment] = [atomId];
24605
+ var _fragmentToAtoms$get;
24606
+ var atomFragment = atom.fragment;
24607
+ if (atomFragment === -1) {
24608
+ return;
24609
+ }
24610
+ var currentAtoms = (_fragmentToAtoms$get = fragmentToAtoms.get(atomFragment)) !== null && _fragmentToAtoms$get !== void 0 ? _fragmentToAtoms$get : [];
24611
+ var updatedAtoms = currentAtoms.concat(atomId);
24612
+ fragmentToAtoms.set(atomFragment, updatedAtoms);
24606
24613
  });
24607
24614
  var stereoFlags = [];
24608
- Object.keys(atomsOfFragments).forEach(function (fragId) {
24609
- var shouldSelSFlag = true;
24610
- atomsOfFragments[fragId].forEach(function (atomId) {
24611
- if (!expAtoms.includes(atomId)) shouldSelSFlag = false;
24615
+ fragmentToAtoms.forEach(function (fragmentAtoms, fragmentId) {
24616
+ var shouldSelectStereoFlag = fragmentAtoms.every(function (atomId) {
24617
+ return explicitlySelectedAtoms.includes(atomId);
24612
24618
  });
24613
- shouldSelSFlag && stereoFlags.push(Number(fragId));
24619
+ if (shouldSelectStereoFlag) {
24620
+ stereoFlags = stereoFlags.concat(fragmentId);
24621
+ }
24614
24622
  });
24615
24623
  return stereoFlags;
24616
24624
  }
@@ -26560,6 +26568,9 @@ function MultitailArrowMenuItems(props) {
26560
26568
  });
26561
26569
  }
26562
26570
 
26571
+ var canExpandMonomer = function canExpandMonomer(functionalGroup) {
26572
+ return functionalGroup.relatedSGroup instanceof ketcherCore.MonomerMicromolecule && !(functionalGroup.relatedSGroup.monomer instanceof ketcherCore.AmbiguousMonomer) && !(functionalGroup.relatedSGroup.monomer instanceof ketcherCore.UnresolvedMonomer);
26573
+ };
26563
26574
  var useMonomerExpansionHandlers = function useMonomerExpansionHandlers() {
26564
26575
  var _useAppContext = useAppContext(),
26565
26576
  getKetcherInstance = _useAppContext.getKetcherInstance;
@@ -26570,6 +26581,9 @@ var useMonomerExpansionHandlers = function useMonomerExpansionHandlers() {
26570
26581
  var selectedFunctionalGroups = props === null || props === void 0 ? void 0 : props.functionalGroups;
26571
26582
  var action = new ketcherCore.Action();
26572
26583
  selectedFunctionalGroups === null || selectedFunctionalGroups === void 0 || selectedFunctionalGroups.forEach(function (fg) {
26584
+ if (!canExpandMonomer(fg)) {
26585
+ return;
26586
+ }
26573
26587
  action.mergeWith(ketcherCore.setExpandMonomerSGroup(molecule, fg.relatedSGroupId, {
26574
26588
  expanded: toExpand
26575
26589
  }));
@@ -26590,12 +26604,15 @@ var useMonomerExpansionHandlers = function useMonomerExpansionHandlers() {
26590
26604
  function ownKeys$J(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; }
26591
26605
  function _objectSpread$J(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$J(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$J(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26592
26606
  var MacromoleculeMenuItems = function MacromoleculeMenuItems(props) {
26593
- var _props$propsFromTrigg;
26607
+ var _props$propsFromTrigg, _props$propsFromTrigg2;
26594
26608
  var _useMonomerExpansionH = useMonomerExpansionHandlers(),
26595
26609
  _useMonomerExpansionH2 = _slicedToArray__default["default"](_useMonomerExpansionH, 2),
26596
26610
  action = _useMonomerExpansionH2[0],
26597
26611
  _hidden = _useMonomerExpansionH2[1];
26598
- var multipleMonomersSelected = (props === null || props === void 0 || (_props$propsFromTrigg = props.propsFromTrigger) === null || _props$propsFromTrigg === void 0 ? void 0 : _props$propsFromTrigg.functionalGroups) && props.propsFromTrigger.functionalGroups.length > 1;
26612
+ var multipleMonomersSelected = (props === null || props === void 0 || (_props$propsFromTrigg = props.propsFromTrigger) === null || _props$propsFromTrigg === void 0 ? void 0 : _props$propsFromTrigg.functionalGroups) !== undefined && props.propsFromTrigger.functionalGroups.length > 1;
26613
+ var expandingDisabled = ((_props$propsFromTrigg2 = props.propsFromTrigger) === null || _props$propsFromTrigg2 === void 0 ? void 0 : _props$propsFromTrigg2.functionalGroups) !== undefined && props.propsFromTrigger.functionalGroups.every(function (fg) {
26614
+ return !canExpandMonomer(fg);
26615
+ });
26599
26616
  var expandText = multipleMonomersSelected ? 'Expand monomers' : 'Expand monomer';
26600
26617
  var collapseText = multipleMonomersSelected ? 'Collapse monomers' : 'Collapse monomer';
26601
26618
  return jsxRuntime.jsxs(jsxRuntime.Fragment, {
@@ -26606,6 +26623,7 @@ var MacromoleculeMenuItems = function MacromoleculeMenuItems(props) {
26606
26623
  onClick: function onClick(params) {
26607
26624
  return action(params, true);
26608
26625
  },
26626
+ disabled: expandingDisabled,
26609
26627
  children: expandText
26610
26628
  })), jsxRuntime.jsx(reactContexify.Item, _objectSpread$J(_objectSpread$J({}, props), {}, {
26611
26629
  hidden: function hidden(params) {
@@ -35258,8 +35276,8 @@ var KetcherBuilder = function () {
35258
35276
  cleanup = initApp(element, appRoot, staticResourcesUrl, {
35259
35277
  buttons: buttons || {},
35260
35278
  errorHandler: errorHandler || null,
35261
- version: "3.4.0-rc.1" ,
35262
- buildDate: "2025-05-01T08:13:25" ,
35279
+ version: "3.4.0-rc.2" ,
35280
+ buildDate: "2025-05-09T17:24:54" ,
35263
35281
  buildNumber: '',
35264
35282
  customButtons: customButtons || []
35265
35283
  }, structService, resolve, togglerComponent);
@@ -35551,7 +35569,7 @@ var ModeControl = function ModeControl(_ref3) {
35551
35569
  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; }
35552
35570
  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; }
35553
35571
  var MacromoleculesEditor = React.lazy(function () {
35554
- return Promise.resolve().then(function () { return require('./index.modern-a314d918.js'); });
35572
+ return Promise.resolve().then(function () { return require('./index.modern-a1a24bea.js'); });
35555
35573
  });
35556
35574
  var Editor = function Editor(props) {
35557
35575
  var _useState = React.useState(false),