ketcher-react 2.26.0-rc.9 → 2.27.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.9\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.27.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: {
@@ -8250,11 +8250,6 @@ var DetailsContainer = styled.div({
8250
8250
  overflowX: 'hidden',
8251
8251
  overflowY: 'auto',
8252
8252
  transition: 'all .3s'
8253
- }, function (_ref) {
8254
- var expanded = _ref.expanded;
8255
- return {
8256
- maxHeight: expanded ? '9999px' : '0'
8257
- };
8258
8253
  });
8259
8254
 
8260
8255
  var Accordion$1 = function Accordion(_ref) {
@@ -8269,7 +8264,7 @@ var Accordion$1 = function Accordion(_ref) {
8269
8264
  children: [jsx(SummaryContainer, {
8270
8265
  onClick: onSummaryClick,
8271
8266
  children: summary
8272
- }), jsx(DetailsContainer, {
8267
+ }), expanded && jsx(DetailsContainer, {
8273
8268
  "data-testid": dataTestIdDetails,
8274
8269
  expanded: expanded,
8275
8270
  children: details
@@ -8436,7 +8431,8 @@ var MonomerName = styled.div(_templateObject6$2 || (_templateObject6$2 = _tagged
8436
8431
 
8437
8432
  var AmbiguousMonomerPreview = function AmbiguousMonomerPreview(_ref) {
8438
8433
  var className = _ref.className,
8439
- preview = _ref.preview;
8434
+ preview = _ref.preview,
8435
+ style = _ref.style;
8440
8436
  var monomer = preview.monomer,
8441
8437
  presetMonomers = preview.presetMonomers;
8442
8438
  var isAlternatives = monomer.subtype === 'alternatives';
@@ -8494,6 +8490,7 @@ var AmbiguousMonomerPreview = function AmbiguousMonomerPreview(_ref) {
8494
8490
  return sortedData.slice(0, 5);
8495
8491
  }, [previewData, isAlternatives]);
8496
8492
  return jsxs(Container, {
8493
+ style: style,
8497
8494
  className: className,
8498
8495
  "data-testid": "polymer-library-preview",
8499
8496
  children: [jsx(Header$1, {
@@ -14560,7 +14557,7 @@ var groupDescriptors = groups.reduce(function (accum, group, index) {
14560
14557
  var rGroupOptions = makeItems(['rgroup-label', 'rgroup-fragment', 'rgroup-attpoints']);
14561
14558
  var shapeOptions = makeItems(['shape-ellipse', 'shape-rectangle', 'shape-line']);
14562
14559
  var selectOptions$2 = makeItems(['select-rectangle', 'select-lasso', 'select-fragment']);
14563
- var arrowsOptions = makeItems(['reaction-arrow-open-angle', 'reaction-arrow-filled-triangle', 'reaction-arrow-filled-bow', 'reaction-arrow-dashed-open-angle', 'reaction-arrow-failed', 'reaction-arrow-retrosynthetic', 'reaction-arrow-both-ends-filled-triangle', 'reaction-arrow-equilibrium-filled-half-bow', 'reaction-arrow-equilibrium-filled-triangle', 'reaction-arrow-equilibrium-open-angle', 'reaction-arrow-unbalanced-equilibrium-filled-half-bow', 'reaction-arrow-unbalanced-equilibrium-open-half-angle', 'reaction-arrow-unbalanced-equilibrium-large-filled-half-bow', 'reaction-arrow-unbalanced-equilibrium-filled-half-triangle', 'reaction-arrow-elliptical-arc-arrow-open-angle', 'reaction-arrow-elliptical-arc-arrow-filled-triangle', 'reaction-arrow-elliptical-arc-arrow-filled-bow', 'reaction-arrow-elliptical-arc-arrow-open-half-angle', MULTITAIL_ARROW_TOOL_NAME]);
14560
+ var arrowsOptions = makeItems(['reaction-arrow-open-angle', 'reaction-arrow-filled-triangle', 'reaction-arrow-filled-bow', 'reaction-arrow-dashed-open-angle', 'reaction-arrow-failed', 'reaction-arrow-retrosynthetic', 'reaction-arrow-both-ends-filled-triangle', 'reaction-arrow-equilibrium-filled-half-bow', 'reaction-arrow-equilibrium-filled-triangle', 'reaction-arrow-equilibrium-open-angle', 'reaction-arrow-unbalanced-equilibrium-filled-half-bow', 'reaction-arrow-unbalanced-equilibrium-open-half-angle', 'reaction-arrow-unbalanced-equilibrium-large-filled-half-bow', 'reaction-arrow-unbalanced-equilibrium-filled-half-triangle', 'reaction-arrow-elliptical-arc-arrow-filled-bow', 'reaction-arrow-elliptical-arc-arrow-filled-triangle', 'reaction-arrow-elliptical-arc-arrow-open-angle', 'reaction-arrow-elliptical-arc-arrow-open-half-angle', MULTITAIL_ARROW_TOOL_NAME]);
14564
14561
  var mappingOptions = makeItems(['reaction-map', 'reaction-unmap', 'reaction-automap']);
14565
14562
 
14566
14563
  var classes$M = {"scroll":"ArrowScroll-module_scroll__h9kCx","button":"ArrowScroll-module_button__ygMgL","down":"ArrowScroll-module_down__yDzZX","up":"ArrowScroll-module_up__Q1ubd"};
@@ -15345,14 +15342,16 @@ var UndoRedo = function UndoRedo(_ref) {
15345
15342
  iconName: "undo",
15346
15343
  disabled: disabledButtons.includes('undo'),
15347
15344
  isHidden: hiddenButtons.includes('undo'),
15348
- shortcut: shortcuts.undo
15345
+ shortcut: shortcuts.undo,
15346
+ testId: "undo"
15349
15347
  }), jsx(TopToolbarIconButton, {
15350
15348
  title: "Redo",
15351
15349
  onClick: onRedo,
15352
15350
  iconName: "redo",
15353
15351
  disabled: disabledButtons.includes('redo'),
15354
15352
  isHidden: hiddenButtons.includes('redo'),
15355
- shortcut: shortcuts.redo
15353
+ shortcut: shortcuts.redo,
15354
+ testId: "redo"
15356
15355
  }), jsx(Divider$1, {})]
15357
15356
  });
15358
15357
  };
@@ -21486,7 +21485,12 @@ var EnhancedStereoTool = function () {
21486
21485
  }
21487
21486
  var action = stereoAtoms.reduce(function (acc, stereoAtom) {
21488
21487
  var _struct$atoms$get;
21489
- return acc.mergeWith(fromStereoFlagUpdate(restruct, (_struct$atoms$get = struct.atoms.get(stereoAtom)) === null || _struct$atoms$get === void 0 ? void 0 : _struct$atoms$get.fragment));
21488
+ var frid = (_struct$atoms$get = struct.atoms.get(stereoAtom)) === null || _struct$atoms$get === void 0 ? void 0 : _struct$atoms$get.fragment;
21489
+ var frag = frid !== undefined ? restruct.molecule.frags.get(frid) : null;
21490
+ if (frag && frag.stereoAtoms) {
21491
+ return acc.mergeWith(fromStereoFlagUpdate(restruct, frid));
21492
+ }
21493
+ return acc;
21490
21494
  }, fromAtomsAttrs(restruct, stereoAtoms, {
21491
21495
  stereoLabel: stereoLabel
21492
21496
  }, false));
@@ -23522,23 +23526,26 @@ var Highlighter = function () {
23522
23526
  args.forEach(function (arg) {
23523
23527
  var atoms = arg.atoms,
23524
23528
  bonds = arg.bonds,
23529
+ rgroupAttachmentPoints = arg.rgroupAttachmentPoints,
23525
23530
  color = arg.color;
23526
23531
  if (typeof color !== 'string') {
23527
23532
  return;
23528
23533
  }
23529
- if (!atoms && !bonds) {
23534
+ if (!atoms && !bonds && !rgroupAttachmentPoints) {
23530
23535
  return;
23531
23536
  }
23532
23537
  var restruct = _this.editor.render.ctab;
23533
- var _getValidInputOnly = getValidInputOnly(restruct.molecule, atoms, bonds),
23538
+ var _getValidInputOnly = getValidInputOnly(restruct.molecule, atoms, bonds, rgroupAttachmentPoints),
23534
23539
  validAtoms = _getValidInputOnly.validAtoms,
23535
- validBonds = _getValidInputOnly.validBonds;
23536
- if (validAtoms.length === 0 && validBonds.length === 0) {
23540
+ validBonds = _getValidInputOnly.validBonds,
23541
+ validRgroupAttachmentPoints = _getValidInputOnly.validRgroupAttachmentPoints;
23542
+ if (validAtoms.length === 0 && validBonds.length === 0 && validRgroupAttachmentPoints.length === 0) {
23537
23543
  return;
23538
23544
  }
23539
23545
  createdHighlights.push({
23540
23546
  atoms: validAtoms,
23541
23547
  bonds: validBonds,
23548
+ rgroupAttachmentPoints: validRgroupAttachmentPoints,
23542
23549
  color: color
23543
23550
  });
23544
23551
  });
@@ -23554,15 +23561,19 @@ var Highlighter = function () {
23554
23561
  }]);
23555
23562
  return Highlighter;
23556
23563
  }();
23557
- function getValidInputOnly(struct, atoms, bonds) {
23564
+ function getValidInputOnly(struct, atoms, bonds, rgroupAttachmentPoints) {
23558
23565
  if (!Array.isArray(atoms)) {
23559
23566
  atoms = [];
23560
23567
  }
23561
23568
  if (!Array.isArray(bonds)) {
23562
23569
  bonds = [];
23563
23570
  }
23571
+ if (!Array.isArray(rgroupAttachmentPoints)) {
23572
+ rgroupAttachmentPoints = [];
23573
+ }
23564
23574
  var structAtoms = struct.atoms,
23565
- structBonds = struct.bonds;
23575
+ structBonds = struct.bonds,
23576
+ structRgroupAttachmentPoints = struct.rgroupAttachmentPoints;
23566
23577
  if (atoms.length > 0) {
23567
23578
  atoms = atoms.filter(function (aid) {
23568
23579
  return structAtoms.has(aid);
@@ -23573,9 +23584,15 @@ function getValidInputOnly(struct, atoms, bonds) {
23573
23584
  return structBonds.has(bid);
23574
23585
  });
23575
23586
  }
23587
+ if (rgroupAttachmentPoints.length > 0) {
23588
+ rgroupAttachmentPoints = rgroupAttachmentPoints.filter(function (rgroupAPId) {
23589
+ return structRgroupAttachmentPoints.has(rgroupAPId);
23590
+ });
23591
+ }
23576
23592
  return {
23577
23593
  validAtoms: atoms,
23578
- validBonds: bonds
23594
+ validBonds: bonds,
23595
+ validRgroupAttachmentPoints: rgroupAttachmentPoints
23579
23596
  };
23580
23597
  }
23581
23598
 
@@ -24361,7 +24378,7 @@ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedec
24361
24378
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
24362
24379
  var SCALE = provideEditorSettings().microModeScale;
24363
24380
  var HISTORY_SIZE = 32;
24364
- var structObjects = ['atoms', 'bonds', 'frags', 'sgroups', 'sgroupData', 'rgroups', 'rxnArrows', 'rxnPluses', 'enhancedFlags', 'simpleObjects', 'texts', IMAGE_KEY, MULTITAIL_ARROW_KEY];
24381
+ var structObjects = ['atoms', 'bonds', 'frags', 'sgroups', 'sgroupData', 'rgroups', 'rxnArrows', 'rxnPluses', 'enhancedFlags', 'simpleObjects', 'texts', 'rgroupAttachmentPoints', IMAGE_KEY, MULTITAIL_ARROW_KEY];
24365
24382
  var highlightTargets = ['atoms', 'bonds', 'rxnArrows', 'rxnPluses', 'functionalGroups', 'frags', 'merge', 'rgroups', 'rgroupAttachmentPoints', 'sgroups', 'sgroupData', 'enhancedFlags', 'simpleObjects', 'texts', IMAGE_KEY, MULTITAIL_ARROW_KEY];
24366
24383
  function selectStereoFlagsIfNecessary(atoms, expAtoms) {
24367
24384
  var atomsOfFragments = {};
@@ -25534,15 +25551,20 @@ var AtomMenuItems = function AtomMenuItems(props) {
25534
25551
  var atomIds = ((_props$propsFromTrigg6 = props.propsFromTrigger) === null || _props$propsFromTrigg6 === void 0 ? void 0 : _props$propsFromTrigg6.atomIds) || [];
25535
25552
  editor.highlights.create({
25536
25553
  atoms: atomIds,
25554
+ rgroupAttachmentPoints: [],
25537
25555
  bonds: [],
25538
25556
  color: color === '' ? 'transparent' : color
25539
25557
  });
25540
25558
  };
25541
25559
  if (isAtomSuperatomLeavingGroup && onlyOneAtomSelected) {
25542
- return jsx(Item, _objectSpread$O(_objectSpread$O({}, props), {}, {
25543
- onClick: handleDelete,
25544
- children: "Delete"
25545
- }));
25560
+ return jsxs(Fragment, {
25561
+ children: [jsx(HighlightMenu, {
25562
+ onHighlight: highlightAtomWithColor
25563
+ }), jsx(Item, _objectSpread$O(_objectSpread$O({}, props), {}, {
25564
+ onClick: handleDelete,
25565
+ children: "Delete"
25566
+ }))]
25567
+ });
25546
25568
  }
25547
25569
  return jsxs(Fragment, {
25548
25570
  children: [jsx(Item, _objectSpread$O(_objectSpread$O({}, props), {}, {
@@ -25656,6 +25678,7 @@ var useBondSGroupAttach = function useBondSGroupAttach() {
25656
25678
  SGroupTool.sgroupDialog(editor, null);
25657
25679
  }, [getKetcherInstance]);
25658
25680
  var hidden = useCallback(function (_ref2) {
25681
+ var _struct$sgroups$get;
25659
25682
  var props = _ref2.props;
25660
25683
  var editor = getKetcherInstance().editor;
25661
25684
  var struct = editor.render.ctab;
@@ -25665,6 +25688,12 @@ var useBondSGroupAttach = function useBondSGroupAttach() {
25665
25688
  }
25666
25689
  var bond = struct.bonds.get(bondIds[0]);
25667
25690
  var attachedSGroups = bond.b.getAttachedSGroups(struct.molecule);
25691
+ var _attachedSGroups = _slicedToArray$1(attachedSGroups, 1),
25692
+ sgGroupId = _attachedSGroups[0];
25693
+ var sgroup = (_struct$sgroups$get = struct.sgroups.get(sgGroupId)) === null || _struct$sgroups$get === void 0 ? void 0 : _struct$sgroups$get.item;
25694
+ if (sgroup !== null && sgroup !== void 0 && sgroup.isSuperatomWithoutLabel) {
25695
+ return false;
25696
+ }
25668
25697
  return attachedSGroups.size > 0;
25669
25698
  }, [getKetcherInstance]);
25670
25699
  return [handler, hidden];
@@ -25692,8 +25721,17 @@ var useBondSGroupEdit = function useBondSGroupEdit() {
25692
25721
  return sGroupsRef.current.size > 1;
25693
25722
  }, [getKetcherInstance]);
25694
25723
  var hidden = useCallback(function () {
25724
+ var _struct$sgroups$get;
25725
+ var editor = getKetcherInstance().editor;
25726
+ var struct = editor.render.ctab;
25727
+ var _sGroupsRef$current = _slicedToArray$1(sGroupsRef.current, 1),
25728
+ sgGroupId = _sGroupsRef$current[0];
25729
+ var sgroup = (_struct$sgroups$get = struct.sgroups.get(sgGroupId)) === null || _struct$sgroups$get === void 0 ? void 0 : _struct$sgroups$get.item;
25730
+ if (sgroup !== null && sgroup !== void 0 && sgroup.isSuperatomWithoutLabel) {
25731
+ return true;
25732
+ }
25695
25733
  return sGroupsRef.current.size === 0;
25696
- }, []);
25734
+ }, [getKetcherInstance]);
25697
25735
  return [handler, disabled, hidden];
25698
25736
  };
25699
25737
 
@@ -25809,6 +25847,7 @@ var BondMenuItems = function BondMenuItems(props) {
25809
25847
  editor.highlights.create({
25810
25848
  atoms: [],
25811
25849
  bonds: bondIds,
25850
+ rgroupAttachmentPoints: [],
25812
25851
  color: color === '' ? 'transparent' : color
25813
25852
  });
25814
25853
  };
@@ -25999,12 +26038,14 @@ var SelectionMenuItems = function SelectionMenuItems(props) {
25999
26038
  atomStereoDisabled = _useAtomStereo2[1];
26000
26039
  var handleDelete = useDelete$1();
26001
26040
  var highlightBondWithColor = function highlightBondWithColor(color) {
26002
- var _props$propsFromTrigg, _props$propsFromTrigg2;
26041
+ var _props$propsFromTrigg, _props$propsFromTrigg2, _props$propsFromTrigg3;
26003
26042
  var bondIds = ((_props$propsFromTrigg = props.propsFromTrigger) === null || _props$propsFromTrigg === void 0 ? void 0 : _props$propsFromTrigg.bondIds) || [];
26004
26043
  var atomIds = ((_props$propsFromTrigg2 = props.propsFromTrigger) === null || _props$propsFromTrigg2 === void 0 ? void 0 : _props$propsFromTrigg2.atomIds) || [];
26044
+ var rgroupAttachmentPoints = ((_props$propsFromTrigg3 = props.propsFromTrigger) === null || _props$propsFromTrigg3 === void 0 ? void 0 : _props$propsFromTrigg3.rgroupAttachmentPoints) || [];
26005
26045
  editor.highlights.create({
26006
26046
  atoms: atomIds,
26007
26047
  bonds: bondIds,
26048
+ rgroupAttachmentPoints: rgroupAttachmentPoints,
26008
26049
  color: color === '' ? 'transparent' : color
26009
26050
  });
26010
26051
  };
@@ -26126,19 +26167,34 @@ var useRGroupAttachmentPointEdit = function useRGroupAttachmentPointEdit() {
26126
26167
  function ownKeys$K(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; }
26127
26168
  function _objectSpread$K(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$K(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$K(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26128
26169
  var RGroupAttachmentPointMenuItems = function RGroupAttachmentPointMenuItems(props) {
26170
+ var _useAppContext = useAppContext(),
26171
+ getKetcherInstance = _useAppContext.getKetcherInstance;
26129
26172
  var handleRemove = useDelete();
26130
26173
  var _useRGroupAttachmentP = useRGroupAttachmentPointEdit(),
26131
26174
  _useRGroupAttachmentP2 = _slicedToArray$1(_useRGroupAttachmentP, 3),
26132
26175
  handleEditRGroupAttachmentPoint = _useRGroupAttachmentP2[0],
26133
26176
  rgroupAttachmentPointDisabled = _useRGroupAttachmentP2[1],
26134
26177
  rgroupAttachmentPointHidden = _useRGroupAttachmentP2[2];
26178
+ var editor = getKetcherInstance().editor;
26179
+ var highlight = function highlight(color) {
26180
+ var _props$propsFromTrigg;
26181
+ var rgroupAttachmentPoints = ((_props$propsFromTrigg = props.propsFromTrigger) === null || _props$propsFromTrigg === void 0 ? void 0 : _props$propsFromTrigg.rgroupAttachmentPoints) || [];
26182
+ editor.highlights.create({
26183
+ rgroupAttachmentPoints: rgroupAttachmentPoints,
26184
+ atoms: [],
26185
+ bonds: [],
26186
+ color: color === '' ? 'transparent' : color
26187
+ });
26188
+ };
26135
26189
  return jsxs(Fragment, {
26136
26190
  children: [jsx(Item, _objectSpread$K(_objectSpread$K({}, props), {}, {
26137
26191
  disabled: rgroupAttachmentPointDisabled,
26138
26192
  hidden: rgroupAttachmentPointHidden,
26139
26193
  onClick: handleEditRGroupAttachmentPoint,
26140
26194
  children: "Edit..."
26141
- })), jsx(Item, _objectSpread$K(_objectSpread$K({}, props), {}, {
26195
+ })), jsx(HighlightMenu, {
26196
+ onHighlight: highlight
26197
+ }), jsx(Item, _objectSpread$K(_objectSpread$K({}, props), {}, {
26142
26198
  onClick: handleRemove,
26143
26199
  children: "Remove"
26144
26200
  }))]
@@ -26242,10 +26298,14 @@ var useMonomerExpansionHandlers = function useMonomerExpansionHandlers() {
26242
26298
  function ownKeys$I(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; }
26243
26299
  function _objectSpread$I(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$I(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$I(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26244
26300
  var MacromoleculeMenuItems = function MacromoleculeMenuItems(props) {
26301
+ var _props$propsFromTrigg;
26245
26302
  var _useMonomerExpansionH = useMonomerExpansionHandlers(),
26246
26303
  _useMonomerExpansionH2 = _slicedToArray$1(_useMonomerExpansionH, 2),
26247
26304
  action = _useMonomerExpansionH2[0],
26248
26305
  _hidden = _useMonomerExpansionH2[1];
26306
+ 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;
26307
+ var expandText = multipleMonomersSelected ? 'Expand monomers' : 'Expand monomer';
26308
+ var collapseText = multipleMonomersSelected ? 'Collapse monomers' : 'Collapse monomer';
26249
26309
  return jsxs(Fragment, {
26250
26310
  children: [jsx(Item, _objectSpread$I(_objectSpread$I({}, props), {}, {
26251
26311
  hidden: function hidden(params) {
@@ -26254,7 +26314,7 @@ var MacromoleculeMenuItems = function MacromoleculeMenuItems(props) {
26254
26314
  onClick: function onClick(params) {
26255
26315
  return action(params, true);
26256
26316
  },
26257
- children: "Expand monomer"
26317
+ children: expandText
26258
26318
  })), jsx(Item, _objectSpread$I(_objectSpread$I({}, props), {}, {
26259
26319
  hidden: function hidden(params) {
26260
26320
  return _hidden(params, false);
@@ -26262,7 +26322,7 @@ var MacromoleculeMenuItems = function MacromoleculeMenuItems(props) {
26262
26322
  onClick: function onClick(params) {
26263
26323
  return action(params, false);
26264
26324
  },
26265
- children: "Collapse monomer"
26325
+ children: collapseText
26266
26326
  }))]
26267
26327
  });
26268
26328
  };
@@ -26545,7 +26605,8 @@ function getMenuPropsForSelection(selection, selectedFunctionalGroups) {
26545
26605
  return {
26546
26606
  id: CONTEXT_MENU_ID.FOR_SELECTION,
26547
26607
  bondIds: bonds,
26548
- atomIds: atoms
26608
+ atomIds: atoms,
26609
+ rgroupAttachmentPoints: rgroupAttachmentPoints
26549
26610
  };
26550
26611
  }
26551
26612
  }
@@ -26846,16 +26907,17 @@ var InfoPanel = function InfoPanel(props) {
26846
26907
  return isAmbiguousMonomer ? jsx(AmbiguousMonomerPreview, {
26847
26908
  preview: {
26848
26909
  type: PreviewType.AmbiguousMonomer,
26849
- monomer: sGroup.monomer.variantMonomerItem,
26850
- style: {
26851
- left: "".concat(clientX - 50, "px"),
26852
- top: calculateAmbiguousMonomerPreviewTop(sGroup.monomer.variantMonomerItem)({
26853
- left: clientX - 50,
26854
- top: clientY - 65,
26855
- bottom: clientY - 25
26856
- }),
26857
- transform: 'translate(-50%, 0)'
26858
- }
26910
+ monomer: sGroup.monomer.variantMonomerItem
26911
+ },
26912
+ style: {
26913
+ position: 'absolute',
26914
+ left: "".concat(clientX - 50, "px"),
26915
+ top: calculateAmbiguousMonomerPreviewTop(sGroup.monomer.variantMonomerItem)({
26916
+ left: clientX - 50,
26917
+ top: clientY - 65,
26918
+ bottom: clientY - 25
26919
+ }),
26920
+ transform: 'translate(-50%, 0)'
26859
26921
  }
26860
26922
  }) : showMolecule ? jsx("div", {
26861
26923
  style: {
@@ -34822,8 +34884,8 @@ var KetcherBuilder = function () {
34822
34884
  cleanup = initApp(element, appRoot, staticResourcesUrl, {
34823
34885
  buttons: buttons || {},
34824
34886
  errorHandler: errorHandler || null,
34825
- version: "2.26.0-rc.9" ,
34826
- buildDate: "2024-11-11T12:08:18" ,
34887
+ version: "2.27.0-rc.2" ,
34888
+ buildDate: "2024-11-12T19:33:40" ,
34827
34889
  buildNumber: '',
34828
34890
  customButtons: customButtons || []
34829
34891
  }, structService, resolve, togglerComponent);