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.
@@ -1,4 +1,6 @@
1
+ import { FunctionalGroup } from 'ketcher-core';
1
2
  import { ItemEventParams, MacromoleculeContextMenuProps } from '../contextMenu.types';
2
3
  declare type Params = ItemEventParams<MacromoleculeContextMenuProps>;
4
+ export declare const canExpandMonomer: (functionalGroup: FunctionalGroup) => boolean;
3
5
  declare const useMonomerExpansionHandlers: () => readonly [({ props }: Params, toExpand: boolean) => void, ({ props }: Params, toExpand: boolean) => boolean];
4
6
  export default useMonomerExpansionHandlers;
package/dist/index.js CHANGED
@@ -3745,7 +3745,7 @@ var zoom = {
3745
3745
 
3746
3746
  var openHelpLink = function openHelpLink() {
3747
3747
  var _window$open;
3748
- 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();
3748
+ 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();
3749
3749
  };
3750
3750
  var help = {
3751
3751
  help: {
@@ -24534,18 +24534,26 @@ var SCALE = provideEditorSettings().microModeScale;
24534
24534
  var HISTORY_SIZE = 32;
24535
24535
  var structObjects = ['atoms', 'bonds', 'frags', 'sgroups', 'sgroupData', 'rgroups', 'rxnArrows', 'rxnPluses', 'enhancedFlags', 'simpleObjects', 'texts', 'rgroupAttachmentPoints', IMAGE_KEY, MULTITAIL_ARROW_KEY];
24536
24536
  var highlightTargets = ['atoms', 'bonds', 'rxnArrows', 'rxnPluses', 'functionalGroups', 'frags', 'merge', 'rgroups', 'rgroupAttachmentPoints', 'sgroups', 'sgroupData', 'enhancedFlags', 'simpleObjects', 'texts', IMAGE_KEY, MULTITAIL_ARROW_KEY];
24537
- function selectStereoFlagsIfNecessary(atoms, expAtoms) {
24538
- var atomsOfFragments = {};
24537
+ function selectStereoFlagsIfNecessary(atoms, explicitlySelectedAtoms) {
24538
+ var fragmentToAtoms = new Map();
24539
24539
  atoms.forEach(function (atom, atomId) {
24540
- atomsOfFragments[atom.fragment] ? atomsOfFragments[atom.fragment].push(atomId) : atomsOfFragments[atom.fragment] = [atomId];
24540
+ var _fragmentToAtoms$get;
24541
+ var atomFragment = atom.fragment;
24542
+ if (atomFragment === -1) {
24543
+ return;
24544
+ }
24545
+ var currentAtoms = (_fragmentToAtoms$get = fragmentToAtoms.get(atomFragment)) !== null && _fragmentToAtoms$get !== void 0 ? _fragmentToAtoms$get : [];
24546
+ var updatedAtoms = currentAtoms.concat(atomId);
24547
+ fragmentToAtoms.set(atomFragment, updatedAtoms);
24541
24548
  });
24542
24549
  var stereoFlags = [];
24543
- Object.keys(atomsOfFragments).forEach(function (fragId) {
24544
- var shouldSelSFlag = true;
24545
- atomsOfFragments[fragId].forEach(function (atomId) {
24546
- if (!expAtoms.includes(atomId)) shouldSelSFlag = false;
24550
+ fragmentToAtoms.forEach(function (fragmentAtoms, fragmentId) {
24551
+ var shouldSelectStereoFlag = fragmentAtoms.every(function (atomId) {
24552
+ return explicitlySelectedAtoms.includes(atomId);
24547
24553
  });
24548
- shouldSelSFlag && stereoFlags.push(Number(fragId));
24554
+ if (shouldSelectStereoFlag) {
24555
+ stereoFlags = stereoFlags.concat(fragmentId);
24556
+ }
24549
24557
  });
24550
24558
  return stereoFlags;
24551
24559
  }
@@ -26495,6 +26503,9 @@ function MultitailArrowMenuItems(props) {
26495
26503
  });
26496
26504
  }
26497
26505
 
26506
+ var canExpandMonomer = function canExpandMonomer(functionalGroup) {
26507
+ return functionalGroup.relatedSGroup instanceof MonomerMicromolecule && !(functionalGroup.relatedSGroup.monomer instanceof AmbiguousMonomer) && !(functionalGroup.relatedSGroup.monomer instanceof UnresolvedMonomer);
26508
+ };
26498
26509
  var useMonomerExpansionHandlers = function useMonomerExpansionHandlers() {
26499
26510
  var _useAppContext = useAppContext(),
26500
26511
  getKetcherInstance = _useAppContext.getKetcherInstance;
@@ -26505,6 +26516,9 @@ var useMonomerExpansionHandlers = function useMonomerExpansionHandlers() {
26505
26516
  var selectedFunctionalGroups = props === null || props === void 0 ? void 0 : props.functionalGroups;
26506
26517
  var action = new Action();
26507
26518
  selectedFunctionalGroups === null || selectedFunctionalGroups === void 0 || selectedFunctionalGroups.forEach(function (fg) {
26519
+ if (!canExpandMonomer(fg)) {
26520
+ return;
26521
+ }
26508
26522
  action.mergeWith(setExpandMonomerSGroup(molecule, fg.relatedSGroupId, {
26509
26523
  expanded: toExpand
26510
26524
  }));
@@ -26525,12 +26539,15 @@ var useMonomerExpansionHandlers = function useMonomerExpansionHandlers() {
26525
26539
  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; }
26526
26540
  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$1(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; }
26527
26541
  var MacromoleculeMenuItems = function MacromoleculeMenuItems(props) {
26528
- var _props$propsFromTrigg;
26542
+ var _props$propsFromTrigg, _props$propsFromTrigg2;
26529
26543
  var _useMonomerExpansionH = useMonomerExpansionHandlers(),
26530
26544
  _useMonomerExpansionH2 = _slicedToArray$1(_useMonomerExpansionH, 2),
26531
26545
  action = _useMonomerExpansionH2[0],
26532
26546
  _hidden = _useMonomerExpansionH2[1];
26533
- 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;
26547
+ 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;
26548
+ var expandingDisabled = ((_props$propsFromTrigg2 = props.propsFromTrigger) === null || _props$propsFromTrigg2 === void 0 ? void 0 : _props$propsFromTrigg2.functionalGroups) !== undefined && props.propsFromTrigger.functionalGroups.every(function (fg) {
26549
+ return !canExpandMonomer(fg);
26550
+ });
26534
26551
  var expandText = multipleMonomersSelected ? 'Expand monomers' : 'Expand monomer';
26535
26552
  var collapseText = multipleMonomersSelected ? 'Collapse monomers' : 'Collapse monomer';
26536
26553
  return jsxs(Fragment, {
@@ -26541,6 +26558,7 @@ var MacromoleculeMenuItems = function MacromoleculeMenuItems(props) {
26541
26558
  onClick: function onClick(params) {
26542
26559
  return action(params, true);
26543
26560
  },
26561
+ disabled: expandingDisabled,
26544
26562
  children: expandText
26545
26563
  })), jsx(Item, _objectSpread$J(_objectSpread$J({}, props), {}, {
26546
26564
  hidden: function hidden(params) {
@@ -35193,8 +35211,8 @@ var KetcherBuilder = function () {
35193
35211
  cleanup = initApp(element, appRoot, staticResourcesUrl, {
35194
35212
  buttons: buttons || {},
35195
35213
  errorHandler: errorHandler || null,
35196
- version: "3.4.0-rc.1" ,
35197
- buildDate: "2025-05-01T08:13:25" ,
35214
+ version: "3.4.0-rc.2" ,
35215
+ buildDate: "2025-05-09T17:24:54" ,
35198
35216
  buildNumber: '',
35199
35217
  customButtons: customButtons || []
35200
35218
  }, structService, resolve, togglerComponent);
@@ -35486,7 +35504,7 @@ var ModeControl = function ModeControl(_ref3) {
35486
35504
  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; }
35487
35505
  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$1(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; }
35488
35506
  var MacromoleculesEditor = lazy(function () {
35489
- return import('./index.modern-ac2ddbd4.js');
35507
+ return import('./index.modern-e737524e.js');
35490
35508
  });
35491
35509
  var Editor = function Editor(props) {
35492
35510
  var _useState = useState(false),