ketcher-react 2.26.0-rc.6 → 2.27.0-rc.1
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/components/MonomerPreview/AmbiguousMonomerPreview/AmbiguousMonomerPreview.d.ts +3 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.js +183 -83
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +183 -83
- package/dist/index.modern.js.map +1 -1
- package/dist/script/editor/Editor.d.ts +1 -1
- package/dist/script/editor/highlighter.d.ts +1 -0
- package/dist/script/ui/views/components/ContextMenu/contextMenu.types.d.ts +6 -6
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3798,7 +3798,7 @@ var zoom = {
|
|
|
3798
3798
|
|
|
3799
3799
|
var openHelpLink = function openHelpLink() {
|
|
3800
3800
|
var _window$open;
|
|
3801
|
-
return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v2.
|
|
3801
|
+
return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v2.27.0-rc.1\n", "/documentation/help.md#ketcher-overview"))) === null || _window$open === void 0 ? void 0 : _window$open.focus();
|
|
3802
3802
|
};
|
|
3803
3803
|
var help = {
|
|
3804
3804
|
help: {
|
|
@@ -8315,11 +8315,6 @@ var DetailsContainer = styled__default["default"].div({
|
|
|
8315
8315
|
overflowX: 'hidden',
|
|
8316
8316
|
overflowY: 'auto',
|
|
8317
8317
|
transition: 'all .3s'
|
|
8318
|
-
}, function (_ref) {
|
|
8319
|
-
var expanded = _ref.expanded;
|
|
8320
|
-
return {
|
|
8321
|
-
maxHeight: expanded ? '9999px' : '0'
|
|
8322
|
-
};
|
|
8323
8318
|
});
|
|
8324
8319
|
|
|
8325
8320
|
var Accordion$1 = function Accordion(_ref) {
|
|
@@ -8334,7 +8329,7 @@ var Accordion$1 = function Accordion(_ref) {
|
|
|
8334
8329
|
children: [jsxRuntime.jsx(SummaryContainer, {
|
|
8335
8330
|
onClick: onSummaryClick,
|
|
8336
8331
|
children: summary
|
|
8337
|
-
}), jsxRuntime.jsx(DetailsContainer, {
|
|
8332
|
+
}), expanded && jsxRuntime.jsx(DetailsContainer, {
|
|
8338
8333
|
"data-testid": dataTestIdDetails,
|
|
8339
8334
|
expanded: expanded,
|
|
8340
8335
|
children: details
|
|
@@ -8501,7 +8496,8 @@ var MonomerName = styled__default["default"].div(_templateObject6$2 || (_templat
|
|
|
8501
8496
|
|
|
8502
8497
|
var AmbiguousMonomerPreview = function AmbiguousMonomerPreview(_ref) {
|
|
8503
8498
|
var className = _ref.className,
|
|
8504
|
-
preview = _ref.preview
|
|
8499
|
+
preview = _ref.preview,
|
|
8500
|
+
style = _ref.style;
|
|
8505
8501
|
var monomer = preview.monomer,
|
|
8506
8502
|
presetMonomers = preview.presetMonomers;
|
|
8507
8503
|
var isAlternatives = monomer.subtype === 'alternatives';
|
|
@@ -8559,6 +8555,7 @@ var AmbiguousMonomerPreview = function AmbiguousMonomerPreview(_ref) {
|
|
|
8559
8555
|
return sortedData.slice(0, 5);
|
|
8560
8556
|
}, [previewData, isAlternatives]);
|
|
8561
8557
|
return jsxRuntime.jsxs(Container, {
|
|
8558
|
+
style: style,
|
|
8562
8559
|
className: className,
|
|
8563
8560
|
"data-testid": "polymer-library-preview",
|
|
8564
8561
|
children: [jsxRuntime.jsx(Header$1, {
|
|
@@ -14625,7 +14622,7 @@ var groupDescriptors = groups.reduce(function (accum, group, index) {
|
|
|
14625
14622
|
var rGroupOptions = makeItems(['rgroup-label', 'rgroup-fragment', 'rgroup-attpoints']);
|
|
14626
14623
|
var shapeOptions = makeItems(['shape-ellipse', 'shape-rectangle', 'shape-line']);
|
|
14627
14624
|
var selectOptions$2 = makeItems(['select-rectangle', 'select-lasso', 'select-fragment']);
|
|
14628
|
-
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-
|
|
14625
|
+
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', ketcherCore.MULTITAIL_ARROW_TOOL_NAME]);
|
|
14629
14626
|
var mappingOptions = makeItems(['reaction-map', 'reaction-unmap', 'reaction-automap']);
|
|
14630
14627
|
|
|
14631
14628
|
var classes$M = {"scroll":"ArrowScroll-module_scroll__h9kCx","button":"ArrowScroll-module_button__ygMgL","down":"ArrowScroll-module_down__yDzZX","up":"ArrowScroll-module_up__Q1ubd"};
|
|
@@ -15410,14 +15407,16 @@ var UndoRedo = function UndoRedo(_ref) {
|
|
|
15410
15407
|
iconName: "undo",
|
|
15411
15408
|
disabled: disabledButtons.includes('undo'),
|
|
15412
15409
|
isHidden: hiddenButtons.includes('undo'),
|
|
15413
|
-
shortcut: shortcuts.undo
|
|
15410
|
+
shortcut: shortcuts.undo,
|
|
15411
|
+
testId: "undo"
|
|
15414
15412
|
}), jsxRuntime.jsx(TopToolbarIconButton, {
|
|
15415
15413
|
title: "Redo",
|
|
15416
15414
|
onClick: onRedo,
|
|
15417
15415
|
iconName: "redo",
|
|
15418
15416
|
disabled: disabledButtons.includes('redo'),
|
|
15419
15417
|
isHidden: hiddenButtons.includes('redo'),
|
|
15420
|
-
shortcut: shortcuts.redo
|
|
15418
|
+
shortcut: shortcuts.redo,
|
|
15419
|
+
testId: "redo"
|
|
15421
15420
|
}), jsxRuntime.jsx(Divider$1, {})]
|
|
15422
15421
|
});
|
|
15423
15422
|
};
|
|
@@ -16215,22 +16214,34 @@ function getElementsInRectangle(restruct, p0, p1) {
|
|
|
16215
16214
|
var bottomLeftPosition = new ketcherCore.Vec2(x0, y1);
|
|
16216
16215
|
var polygon = [topLeftPosition, topRightPosition, bottomRightPosition, bottomLeftPosition];
|
|
16217
16216
|
restruct.bonds.forEach(function (bond, bid) {
|
|
16218
|
-
if (
|
|
16217
|
+
if (ketcherCore.FunctionalGroup.isBondInContractedFunctionalGroup(bond.b, sGroups, functionalGroups)) {
|
|
16219
16218
|
return;
|
|
16220
16219
|
}
|
|
16221
|
-
var
|
|
16222
|
-
|
|
16223
|
-
|
|
16224
|
-
|
|
16220
|
+
var center;
|
|
16221
|
+
if (bond.b.isExternalBondBetweenMonomers(struct)) {
|
|
16222
|
+
var firstMonomer = struct.getGroupFromAtomId(bond.b.begin);
|
|
16223
|
+
var secondMonomer = struct.getGroupFromAtomId(bond.b.end);
|
|
16224
|
+
assert_1(firstMonomer);
|
|
16225
|
+
assert_1(secondMonomer);
|
|
16226
|
+
center = firstMonomer.pp && secondMonomer.pp ? ketcherCore.Vec2.centre(firstMonomer.pp, secondMonomer.pp) : bond.b.center;
|
|
16227
|
+
} else {
|
|
16228
|
+
center = bond.b.center;
|
|
16229
|
+
}
|
|
16230
|
+
if (center.x > x0 && center.x < x1 && center.y > y0 && center.y < y1) {
|
|
16225
16231
|
bondList.push(bid);
|
|
16226
16232
|
}
|
|
16227
16233
|
});
|
|
16228
16234
|
restruct.atoms.forEach(function (atom, aid) {
|
|
16229
16235
|
var relatedFGId = ketcherCore.FunctionalGroup.findFunctionalGroupByAtom(functionalGroups, aid);
|
|
16230
|
-
var
|
|
16231
|
-
if (
|
|
16232
|
-
|
|
16233
|
-
|
|
16236
|
+
var sGroup = struct.sgroups.get(relatedFGId);
|
|
16237
|
+
if (struct.isAtomFromMacromolecule(aid)) {
|
|
16238
|
+
if (sGroup && sGroup.pp && sGroup.pp.x > x0 && sGroup.pp.x < x1 && sGroup.pp.y > y0 && sGroup.pp.y < y1) {
|
|
16239
|
+
atomList.push(aid);
|
|
16240
|
+
}
|
|
16241
|
+
} else {
|
|
16242
|
+
if (atom.a.pp.x > x0 && atom.a.pp.x < x1 && atom.a.pp.y > y0 && atom.a.pp.y < y1 && (!ketcherCore.FunctionalGroup.isAtomInContractedFunctionalGroup(atom.a, sGroups, functionalGroups, true) || aid === (sGroup === null || sGroup === void 0 ? void 0 : sGroup.atoms[0]))) {
|
|
16243
|
+
atomList.push(aid);
|
|
16244
|
+
}
|
|
16234
16245
|
}
|
|
16235
16246
|
});
|
|
16236
16247
|
var rxnArrowsList = [];
|
|
@@ -16325,22 +16336,34 @@ function getElementsInPolygon(restruct, rr) {
|
|
|
16325
16336
|
r[i] = new ketcherCore.Vec2(rr[i].x, rr[i].y);
|
|
16326
16337
|
}
|
|
16327
16338
|
restruct.bonds.forEach(function (bond, bid) {
|
|
16328
|
-
if (
|
|
16339
|
+
if (ketcherCore.FunctionalGroup.isBondInContractedFunctionalGroup(bond.b, sGroups, functionalGroups)) {
|
|
16329
16340
|
return;
|
|
16330
16341
|
}
|
|
16331
|
-
var
|
|
16332
|
-
|
|
16333
|
-
|
|
16334
|
-
|
|
16342
|
+
var center;
|
|
16343
|
+
if (bond.b.isExternalBondBetweenMonomers(struct)) {
|
|
16344
|
+
var firstMonomer = struct.getGroupFromAtomId(bond.b.begin);
|
|
16345
|
+
var secondMonomer = struct.getGroupFromAtomId(bond.b.end);
|
|
16346
|
+
assert_1(firstMonomer);
|
|
16347
|
+
assert_1(secondMonomer);
|
|
16348
|
+
center = firstMonomer !== null && firstMonomer !== void 0 && firstMonomer.pp && secondMonomer !== null && secondMonomer !== void 0 && secondMonomer.pp ? ketcherCore.Vec2.centre(firstMonomer.pp, secondMonomer.pp) : bond.b.center;
|
|
16349
|
+
} else {
|
|
16350
|
+
center = bond.b.center;
|
|
16351
|
+
}
|
|
16352
|
+
if (isPointInPolygon(r, center)) {
|
|
16335
16353
|
bondList.push(bid);
|
|
16336
16354
|
}
|
|
16337
16355
|
});
|
|
16338
16356
|
restruct.atoms.forEach(function (atom, aid) {
|
|
16339
16357
|
var relatedFGId = ketcherCore.FunctionalGroup.findFunctionalGroupByAtom(functionalGroups, aid);
|
|
16340
|
-
var
|
|
16341
|
-
if (
|
|
16342
|
-
|
|
16343
|
-
|
|
16358
|
+
var sGroup = struct.sgroups.get(relatedFGId);
|
|
16359
|
+
if (struct.isAtomFromMacromolecule(aid)) {
|
|
16360
|
+
if (sGroup && sGroup.pp && isPointInPolygon(r, sGroup.pp)) {
|
|
16361
|
+
atomList.push(aid);
|
|
16362
|
+
}
|
|
16363
|
+
} else {
|
|
16364
|
+
if (isPointInPolygon(r, atom.a.pp) && (!ketcherCore.FunctionalGroup.isAtomInContractedFunctionalGroup(atom.a, sGroups, functionalGroups, true) || aid === (sGroup === null || sGroup === void 0 ? void 0 : sGroup.atoms[0]))) {
|
|
16365
|
+
atomList.push(aid);
|
|
16366
|
+
}
|
|
16344
16367
|
}
|
|
16345
16368
|
});
|
|
16346
16369
|
var rxnArrowsList = [];
|
|
@@ -21527,7 +21550,12 @@ var EnhancedStereoTool = function () {
|
|
|
21527
21550
|
}
|
|
21528
21551
|
var action = stereoAtoms.reduce(function (acc, stereoAtom) {
|
|
21529
21552
|
var _struct$atoms$get;
|
|
21530
|
-
|
|
21553
|
+
var frid = (_struct$atoms$get = struct.atoms.get(stereoAtom)) === null || _struct$atoms$get === void 0 ? void 0 : _struct$atoms$get.fragment;
|
|
21554
|
+
var frag = frid !== undefined ? restruct.molecule.frags.get(frid) : null;
|
|
21555
|
+
if (frag && frag.stereoAtoms) {
|
|
21556
|
+
return acc.mergeWith(ketcherCore.fromStereoFlagUpdate(restruct, frid));
|
|
21557
|
+
}
|
|
21558
|
+
return acc;
|
|
21531
21559
|
}, ketcherCore.fromAtomsAttrs(restruct, stereoAtoms, {
|
|
21532
21560
|
stereoLabel: stereoLabel
|
|
21533
21561
|
}, false));
|
|
@@ -23563,23 +23591,26 @@ var Highlighter = function () {
|
|
|
23563
23591
|
args.forEach(function (arg) {
|
|
23564
23592
|
var atoms = arg.atoms,
|
|
23565
23593
|
bonds = arg.bonds,
|
|
23594
|
+
rgroupAttachmentPoints = arg.rgroupAttachmentPoints,
|
|
23566
23595
|
color = arg.color;
|
|
23567
23596
|
if (typeof color !== 'string') {
|
|
23568
23597
|
return;
|
|
23569
23598
|
}
|
|
23570
|
-
if (!atoms && !bonds) {
|
|
23599
|
+
if (!atoms && !bonds && !rgroupAttachmentPoints) {
|
|
23571
23600
|
return;
|
|
23572
23601
|
}
|
|
23573
23602
|
var restruct = _this.editor.render.ctab;
|
|
23574
|
-
var _getValidInputOnly = getValidInputOnly(restruct.molecule, atoms, bonds),
|
|
23603
|
+
var _getValidInputOnly = getValidInputOnly(restruct.molecule, atoms, bonds, rgroupAttachmentPoints),
|
|
23575
23604
|
validAtoms = _getValidInputOnly.validAtoms,
|
|
23576
|
-
validBonds = _getValidInputOnly.validBonds
|
|
23577
|
-
|
|
23605
|
+
validBonds = _getValidInputOnly.validBonds,
|
|
23606
|
+
validRgroupAttachmentPoints = _getValidInputOnly.validRgroupAttachmentPoints;
|
|
23607
|
+
if (validAtoms.length === 0 && validBonds.length === 0 && validRgroupAttachmentPoints.length === 0) {
|
|
23578
23608
|
return;
|
|
23579
23609
|
}
|
|
23580
23610
|
createdHighlights.push({
|
|
23581
23611
|
atoms: validAtoms,
|
|
23582
23612
|
bonds: validBonds,
|
|
23613
|
+
rgroupAttachmentPoints: validRgroupAttachmentPoints,
|
|
23583
23614
|
color: color
|
|
23584
23615
|
});
|
|
23585
23616
|
});
|
|
@@ -23595,15 +23626,19 @@ var Highlighter = function () {
|
|
|
23595
23626
|
}]);
|
|
23596
23627
|
return Highlighter;
|
|
23597
23628
|
}();
|
|
23598
|
-
function getValidInputOnly(struct, atoms, bonds) {
|
|
23629
|
+
function getValidInputOnly(struct, atoms, bonds, rgroupAttachmentPoints) {
|
|
23599
23630
|
if (!Array.isArray(atoms)) {
|
|
23600
23631
|
atoms = [];
|
|
23601
23632
|
}
|
|
23602
23633
|
if (!Array.isArray(bonds)) {
|
|
23603
23634
|
bonds = [];
|
|
23604
23635
|
}
|
|
23636
|
+
if (!Array.isArray(rgroupAttachmentPoints)) {
|
|
23637
|
+
rgroupAttachmentPoints = [];
|
|
23638
|
+
}
|
|
23605
23639
|
var structAtoms = struct.atoms,
|
|
23606
|
-
structBonds = struct.bonds
|
|
23640
|
+
structBonds = struct.bonds,
|
|
23641
|
+
structRgroupAttachmentPoints = struct.rgroupAttachmentPoints;
|
|
23607
23642
|
if (atoms.length > 0) {
|
|
23608
23643
|
atoms = atoms.filter(function (aid) {
|
|
23609
23644
|
return structAtoms.has(aid);
|
|
@@ -23614,9 +23649,15 @@ function getValidInputOnly(struct, atoms, bonds) {
|
|
|
23614
23649
|
return structBonds.has(bid);
|
|
23615
23650
|
});
|
|
23616
23651
|
}
|
|
23652
|
+
if (rgroupAttachmentPoints.length > 0) {
|
|
23653
|
+
rgroupAttachmentPoints = rgroupAttachmentPoints.filter(function (rgroupAPId) {
|
|
23654
|
+
return structRgroupAttachmentPoints.has(rgroupAPId);
|
|
23655
|
+
});
|
|
23656
|
+
}
|
|
23617
23657
|
return {
|
|
23618
23658
|
validAtoms: atoms,
|
|
23619
|
-
validBonds: bonds
|
|
23659
|
+
validBonds: bonds,
|
|
23660
|
+
validRgroupAttachmentPoints: rgroupAttachmentPoints
|
|
23620
23661
|
};
|
|
23621
23662
|
}
|
|
23622
23663
|
|
|
@@ -24402,7 +24443,7 @@ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedec
|
|
|
24402
24443
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
24403
24444
|
var SCALE = ketcherCore.provideEditorSettings().microModeScale;
|
|
24404
24445
|
var HISTORY_SIZE = 32;
|
|
24405
|
-
var structObjects = ['atoms', 'bonds', 'frags', 'sgroups', 'sgroupData', 'rgroups', 'rxnArrows', 'rxnPluses', 'enhancedFlags', 'simpleObjects', 'texts', ketcherCore.IMAGE_KEY, ketcherCore.MULTITAIL_ARROW_KEY];
|
|
24446
|
+
var structObjects = ['atoms', 'bonds', 'frags', 'sgroups', 'sgroupData', 'rgroups', 'rxnArrows', 'rxnPluses', 'enhancedFlags', 'simpleObjects', 'texts', 'rgroupAttachmentPoints', ketcherCore.IMAGE_KEY, ketcherCore.MULTITAIL_ARROW_KEY];
|
|
24406
24447
|
var highlightTargets = ['atoms', 'bonds', 'rxnArrows', 'rxnPluses', 'functionalGroups', 'frags', 'merge', 'rgroups', 'rgroupAttachmentPoints', 'sgroups', 'sgroupData', 'enhancedFlags', 'simpleObjects', 'texts', ketcherCore.IMAGE_KEY, ketcherCore.MULTITAIL_ARROW_KEY];
|
|
24407
24448
|
function selectStereoFlagsIfNecessary(atoms, expAtoms) {
|
|
24408
24449
|
var atomsOfFragments = {};
|
|
@@ -24646,21 +24687,13 @@ var Editor$3 = function () {
|
|
|
24646
24687
|
if (arguments.length === 0) {
|
|
24647
24688
|
return this._selection;
|
|
24648
24689
|
}
|
|
24649
|
-
var struct = this.struct();
|
|
24650
24690
|
var ReStruct = this.render.ctab;
|
|
24651
24691
|
var selectAll = false;
|
|
24652
24692
|
this._selection = null;
|
|
24653
24693
|
if (ci === 'all') {
|
|
24654
24694
|
selectAll = true;
|
|
24655
24695
|
ci = structObjects.reduce(function (res, key) {
|
|
24656
|
-
|
|
24657
|
-
restructItemsIds = restructItemsIds.filter(function (restructItemId) {
|
|
24658
|
-
return !struct.isTargetFromMacromolecule({
|
|
24659
|
-
map: key,
|
|
24660
|
-
id: restructItemId
|
|
24661
|
-
});
|
|
24662
|
-
});
|
|
24663
|
-
res[key] = restructItemsIds;
|
|
24696
|
+
res[key] = Array.from(ReStruct[key].keys());
|
|
24664
24697
|
return res;
|
|
24665
24698
|
}, {});
|
|
24666
24699
|
}
|
|
@@ -25583,15 +25616,20 @@ var AtomMenuItems = function AtomMenuItems(props) {
|
|
|
25583
25616
|
var atomIds = ((_props$propsFromTrigg6 = props.propsFromTrigger) === null || _props$propsFromTrigg6 === void 0 ? void 0 : _props$propsFromTrigg6.atomIds) || [];
|
|
25584
25617
|
editor.highlights.create({
|
|
25585
25618
|
atoms: atomIds,
|
|
25619
|
+
rgroupAttachmentPoints: [],
|
|
25586
25620
|
bonds: [],
|
|
25587
25621
|
color: color === '' ? 'transparent' : color
|
|
25588
25622
|
});
|
|
25589
25623
|
};
|
|
25590
25624
|
if (isAtomSuperatomLeavingGroup && onlyOneAtomSelected) {
|
|
25591
|
-
return jsxRuntime.
|
|
25592
|
-
|
|
25593
|
-
|
|
25594
|
-
|
|
25625
|
+
return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
25626
|
+
children: [jsxRuntime.jsx(HighlightMenu, {
|
|
25627
|
+
onHighlight: highlightAtomWithColor
|
|
25628
|
+
}), jsxRuntime.jsx(reactContexify.Item, _objectSpread$O(_objectSpread$O({}, props), {}, {
|
|
25629
|
+
onClick: handleDelete,
|
|
25630
|
+
children: "Delete"
|
|
25631
|
+
}))]
|
|
25632
|
+
});
|
|
25595
25633
|
}
|
|
25596
25634
|
return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
25597
25635
|
children: [jsxRuntime.jsx(reactContexify.Item, _objectSpread$O(_objectSpread$O({}, props), {}, {
|
|
@@ -25705,6 +25743,7 @@ var useBondSGroupAttach = function useBondSGroupAttach() {
|
|
|
25705
25743
|
SGroupTool.sgroupDialog(editor, null);
|
|
25706
25744
|
}, [getKetcherInstance]);
|
|
25707
25745
|
var hidden = React.useCallback(function (_ref2) {
|
|
25746
|
+
var _struct$sgroups$get;
|
|
25708
25747
|
var props = _ref2.props;
|
|
25709
25748
|
var editor = getKetcherInstance().editor;
|
|
25710
25749
|
var struct = editor.render.ctab;
|
|
@@ -25714,6 +25753,12 @@ var useBondSGroupAttach = function useBondSGroupAttach() {
|
|
|
25714
25753
|
}
|
|
25715
25754
|
var bond = struct.bonds.get(bondIds[0]);
|
|
25716
25755
|
var attachedSGroups = bond.b.getAttachedSGroups(struct.molecule);
|
|
25756
|
+
var _attachedSGroups = _slicedToArray__default["default"](attachedSGroups, 1),
|
|
25757
|
+
sgGroupId = _attachedSGroups[0];
|
|
25758
|
+
var sgroup = (_struct$sgroups$get = struct.sgroups.get(sgGroupId)) === null || _struct$sgroups$get === void 0 ? void 0 : _struct$sgroups$get.item;
|
|
25759
|
+
if (sgroup !== null && sgroup !== void 0 && sgroup.isSuperatomWithoutLabel) {
|
|
25760
|
+
return false;
|
|
25761
|
+
}
|
|
25717
25762
|
return attachedSGroups.size > 0;
|
|
25718
25763
|
}, [getKetcherInstance]);
|
|
25719
25764
|
return [handler, hidden];
|
|
@@ -25741,8 +25786,17 @@ var useBondSGroupEdit = function useBondSGroupEdit() {
|
|
|
25741
25786
|
return sGroupsRef.current.size > 1;
|
|
25742
25787
|
}, [getKetcherInstance]);
|
|
25743
25788
|
var hidden = React.useCallback(function () {
|
|
25789
|
+
var _struct$sgroups$get;
|
|
25790
|
+
var editor = getKetcherInstance().editor;
|
|
25791
|
+
var struct = editor.render.ctab;
|
|
25792
|
+
var _sGroupsRef$current = _slicedToArray__default["default"](sGroupsRef.current, 1),
|
|
25793
|
+
sgGroupId = _sGroupsRef$current[0];
|
|
25794
|
+
var sgroup = (_struct$sgroups$get = struct.sgroups.get(sgGroupId)) === null || _struct$sgroups$get === void 0 ? void 0 : _struct$sgroups$get.item;
|
|
25795
|
+
if (sgroup !== null && sgroup !== void 0 && sgroup.isSuperatomWithoutLabel) {
|
|
25796
|
+
return true;
|
|
25797
|
+
}
|
|
25744
25798
|
return sGroupsRef.current.size === 0;
|
|
25745
|
-
}, []);
|
|
25799
|
+
}, [getKetcherInstance]);
|
|
25746
25800
|
return [handler, disabled, hidden];
|
|
25747
25801
|
};
|
|
25748
25802
|
|
|
@@ -25858,6 +25912,7 @@ var BondMenuItems = function BondMenuItems(props) {
|
|
|
25858
25912
|
editor.highlights.create({
|
|
25859
25913
|
atoms: [],
|
|
25860
25914
|
bonds: bondIds,
|
|
25915
|
+
rgroupAttachmentPoints: [],
|
|
25861
25916
|
color: color === '' ? 'transparent' : color
|
|
25862
25917
|
});
|
|
25863
25918
|
};
|
|
@@ -26048,12 +26103,14 @@ var SelectionMenuItems = function SelectionMenuItems(props) {
|
|
|
26048
26103
|
atomStereoDisabled = _useAtomStereo2[1];
|
|
26049
26104
|
var handleDelete = useDelete$1();
|
|
26050
26105
|
var highlightBondWithColor = function highlightBondWithColor(color) {
|
|
26051
|
-
var _props$propsFromTrigg, _props$propsFromTrigg2;
|
|
26106
|
+
var _props$propsFromTrigg, _props$propsFromTrigg2, _props$propsFromTrigg3;
|
|
26052
26107
|
var bondIds = ((_props$propsFromTrigg = props.propsFromTrigger) === null || _props$propsFromTrigg === void 0 ? void 0 : _props$propsFromTrigg.bondIds) || [];
|
|
26053
26108
|
var atomIds = ((_props$propsFromTrigg2 = props.propsFromTrigger) === null || _props$propsFromTrigg2 === void 0 ? void 0 : _props$propsFromTrigg2.atomIds) || [];
|
|
26109
|
+
var rgroupAttachmentPoints = ((_props$propsFromTrigg3 = props.propsFromTrigger) === null || _props$propsFromTrigg3 === void 0 ? void 0 : _props$propsFromTrigg3.rgroupAttachmentPoints) || [];
|
|
26054
26110
|
editor.highlights.create({
|
|
26055
26111
|
atoms: atomIds,
|
|
26056
26112
|
bonds: bondIds,
|
|
26113
|
+
rgroupAttachmentPoints: rgroupAttachmentPoints,
|
|
26057
26114
|
color: color === '' ? 'transparent' : color
|
|
26058
26115
|
});
|
|
26059
26116
|
};
|
|
@@ -26175,19 +26232,34 @@ var useRGroupAttachmentPointEdit = function useRGroupAttachmentPointEdit() {
|
|
|
26175
26232
|
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; }
|
|
26176
26233
|
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__default["default"](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; }
|
|
26177
26234
|
var RGroupAttachmentPointMenuItems = function RGroupAttachmentPointMenuItems(props) {
|
|
26235
|
+
var _useAppContext = useAppContext(),
|
|
26236
|
+
getKetcherInstance = _useAppContext.getKetcherInstance;
|
|
26178
26237
|
var handleRemove = useDelete();
|
|
26179
26238
|
var _useRGroupAttachmentP = useRGroupAttachmentPointEdit(),
|
|
26180
26239
|
_useRGroupAttachmentP2 = _slicedToArray__default["default"](_useRGroupAttachmentP, 3),
|
|
26181
26240
|
handleEditRGroupAttachmentPoint = _useRGroupAttachmentP2[0],
|
|
26182
26241
|
rgroupAttachmentPointDisabled = _useRGroupAttachmentP2[1],
|
|
26183
26242
|
rgroupAttachmentPointHidden = _useRGroupAttachmentP2[2];
|
|
26243
|
+
var editor = getKetcherInstance().editor;
|
|
26244
|
+
var highlight = function highlight(color) {
|
|
26245
|
+
var _props$propsFromTrigg;
|
|
26246
|
+
var rgroupAttachmentPoints = ((_props$propsFromTrigg = props.propsFromTrigger) === null || _props$propsFromTrigg === void 0 ? void 0 : _props$propsFromTrigg.rgroupAttachmentPoints) || [];
|
|
26247
|
+
editor.highlights.create({
|
|
26248
|
+
rgroupAttachmentPoints: rgroupAttachmentPoints,
|
|
26249
|
+
atoms: [],
|
|
26250
|
+
bonds: [],
|
|
26251
|
+
color: color === '' ? 'transparent' : color
|
|
26252
|
+
});
|
|
26253
|
+
};
|
|
26184
26254
|
return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
26185
26255
|
children: [jsxRuntime.jsx(reactContexify.Item, _objectSpread$K(_objectSpread$K({}, props), {}, {
|
|
26186
26256
|
disabled: rgroupAttachmentPointDisabled,
|
|
26187
26257
|
hidden: rgroupAttachmentPointHidden,
|
|
26188
26258
|
onClick: handleEditRGroupAttachmentPoint,
|
|
26189
26259
|
children: "Edit..."
|
|
26190
|
-
})), jsxRuntime.jsx(
|
|
26260
|
+
})), jsxRuntime.jsx(HighlightMenu, {
|
|
26261
|
+
onHighlight: highlight
|
|
26262
|
+
}), jsxRuntime.jsx(reactContexify.Item, _objectSpread$K(_objectSpread$K({}, props), {}, {
|
|
26191
26263
|
onClick: handleRemove,
|
|
26192
26264
|
children: "Remove"
|
|
26193
26265
|
}))]
|
|
@@ -26291,10 +26363,14 @@ var useMonomerExpansionHandlers = function useMonomerExpansionHandlers() {
|
|
|
26291
26363
|
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; }
|
|
26292
26364
|
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__default["default"](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; }
|
|
26293
26365
|
var MacromoleculeMenuItems = function MacromoleculeMenuItems(props) {
|
|
26366
|
+
var _props$propsFromTrigg;
|
|
26294
26367
|
var _useMonomerExpansionH = useMonomerExpansionHandlers(),
|
|
26295
26368
|
_useMonomerExpansionH2 = _slicedToArray__default["default"](_useMonomerExpansionH, 2),
|
|
26296
26369
|
action = _useMonomerExpansionH2[0],
|
|
26297
26370
|
_hidden = _useMonomerExpansionH2[1];
|
|
26371
|
+
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;
|
|
26372
|
+
var expandText = multipleMonomersSelected ? 'Expand monomers' : 'Expand monomer';
|
|
26373
|
+
var collapseText = multipleMonomersSelected ? 'Collapse monomers' : 'Collapse monomer';
|
|
26298
26374
|
return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
26299
26375
|
children: [jsxRuntime.jsx(reactContexify.Item, _objectSpread$I(_objectSpread$I({}, props), {}, {
|
|
26300
26376
|
hidden: function hidden(params) {
|
|
@@ -26303,7 +26379,7 @@ var MacromoleculeMenuItems = function MacromoleculeMenuItems(props) {
|
|
|
26303
26379
|
onClick: function onClick(params) {
|
|
26304
26380
|
return action(params, true);
|
|
26305
26381
|
},
|
|
26306
|
-
children:
|
|
26382
|
+
children: expandText
|
|
26307
26383
|
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$I(_objectSpread$I({}, props), {}, {
|
|
26308
26384
|
hidden: function hidden(params) {
|
|
26309
26385
|
return _hidden(params, false);
|
|
@@ -26311,7 +26387,7 @@ var MacromoleculeMenuItems = function MacromoleculeMenuItems(props) {
|
|
|
26311
26387
|
onClick: function onClick(params) {
|
|
26312
26388
|
return action(params, false);
|
|
26313
26389
|
},
|
|
26314
|
-
children:
|
|
26390
|
+
children: collapseText
|
|
26315
26391
|
}))]
|
|
26316
26392
|
});
|
|
26317
26393
|
};
|
|
@@ -26474,24 +26550,46 @@ function getMenuPropsForClosestItem(editor, closestItem) {
|
|
|
26474
26550
|
case 'bonds':
|
|
26475
26551
|
{
|
|
26476
26552
|
var functionalGroup = ketcherCore.FunctionalGroup.findFunctionalGroupByBond(struct, struct.functionalGroups, closestItem.id, true);
|
|
26477
|
-
|
|
26478
|
-
|
|
26479
|
-
|
|
26480
|
-
|
|
26481
|
-
|
|
26482
|
-
|
|
26483
|
-
|
|
26553
|
+
var noFunctionalGroup = functionalGroup === null || (functionalGroup === null || functionalGroup === void 0 ? void 0 : functionalGroup.relatedSGroup.isSuperatomWithoutLabel);
|
|
26554
|
+
var isMonomer = (functionalGroup === null || functionalGroup === void 0 ? void 0 : functionalGroup.relatedSGroup) instanceof ketcherCore.MonomerMicromolecule;
|
|
26555
|
+
if (noFunctionalGroup) {
|
|
26556
|
+
return {
|
|
26557
|
+
id: CONTEXT_MENU_ID.FOR_BONDS,
|
|
26558
|
+
bondIds: [closestItem.id]
|
|
26559
|
+
};
|
|
26560
|
+
} else if (isMonomer) {
|
|
26561
|
+
return {
|
|
26562
|
+
id: CONTEXT_MENU_ID.FOR_MACROMOLECULE,
|
|
26563
|
+
functionalGroups: [functionalGroup]
|
|
26564
|
+
};
|
|
26565
|
+
} else {
|
|
26566
|
+
return {
|
|
26567
|
+
id: CONTEXT_MENU_ID.FOR_FUNCTIONAL_GROUPS,
|
|
26568
|
+
functionalGroups: [functionalGroup]
|
|
26569
|
+
};
|
|
26570
|
+
}
|
|
26484
26571
|
}
|
|
26485
26572
|
case 'atoms':
|
|
26486
26573
|
{
|
|
26487
26574
|
var _functionalGroup = ketcherCore.FunctionalGroup.findFunctionalGroupByAtom(struct.functionalGroups, closestItem.id, true);
|
|
26488
|
-
|
|
26489
|
-
|
|
26490
|
-
|
|
26491
|
-
|
|
26492
|
-
|
|
26493
|
-
|
|
26494
|
-
|
|
26575
|
+
var _noFunctionalGroup = _functionalGroup === null || (_functionalGroup === null || _functionalGroup === void 0 ? void 0 : _functionalGroup.relatedSGroup.isSuperatomWithoutLabel);
|
|
26576
|
+
var _isMonomer = (_functionalGroup === null || _functionalGroup === void 0 ? void 0 : _functionalGroup.relatedSGroup) instanceof ketcherCore.MonomerMicromolecule;
|
|
26577
|
+
if (_noFunctionalGroup) {
|
|
26578
|
+
return {
|
|
26579
|
+
id: CONTEXT_MENU_ID.FOR_ATOMS,
|
|
26580
|
+
atomIds: [closestItem.id]
|
|
26581
|
+
};
|
|
26582
|
+
} else if (_isMonomer) {
|
|
26583
|
+
return {
|
|
26584
|
+
id: CONTEXT_MENU_ID.FOR_MACROMOLECULE,
|
|
26585
|
+
functionalGroups: [_functionalGroup]
|
|
26586
|
+
};
|
|
26587
|
+
} else {
|
|
26588
|
+
return {
|
|
26589
|
+
id: CONTEXT_MENU_ID.FOR_FUNCTIONAL_GROUPS,
|
|
26590
|
+
functionalGroups: [_functionalGroup]
|
|
26591
|
+
};
|
|
26592
|
+
}
|
|
26495
26593
|
}
|
|
26496
26594
|
case 'sgroups':
|
|
26497
26595
|
case 'functionalGroups':
|
|
@@ -26572,7 +26670,8 @@ function getMenuPropsForSelection(selection, selectedFunctionalGroups) {
|
|
|
26572
26670
|
return {
|
|
26573
26671
|
id: CONTEXT_MENU_ID.FOR_SELECTION,
|
|
26574
26672
|
bondIds: bonds,
|
|
26575
|
-
atomIds: atoms
|
|
26673
|
+
atomIds: atoms,
|
|
26674
|
+
rgroupAttachmentPoints: rgroupAttachmentPoints
|
|
26576
26675
|
};
|
|
26577
26676
|
}
|
|
26578
26677
|
}
|
|
@@ -26873,16 +26972,17 @@ var InfoPanel = function InfoPanel(props) {
|
|
|
26873
26972
|
return isAmbiguousMonomer ? jsxRuntime.jsx(AmbiguousMonomerPreview, {
|
|
26874
26973
|
preview: {
|
|
26875
26974
|
type: exports.PreviewType.AmbiguousMonomer,
|
|
26876
|
-
monomer: sGroup.monomer.variantMonomerItem
|
|
26877
|
-
|
|
26878
|
-
|
|
26879
|
-
|
|
26880
|
-
|
|
26881
|
-
|
|
26882
|
-
|
|
26883
|
-
|
|
26884
|
-
|
|
26885
|
-
}
|
|
26975
|
+
monomer: sGroup.monomer.variantMonomerItem
|
|
26976
|
+
},
|
|
26977
|
+
style: {
|
|
26978
|
+
position: 'absolute',
|
|
26979
|
+
left: "".concat(clientX - 50, "px"),
|
|
26980
|
+
top: calculateAmbiguousMonomerPreviewTop(sGroup.monomer.variantMonomerItem)({
|
|
26981
|
+
left: clientX - 50,
|
|
26982
|
+
top: clientY - 65,
|
|
26983
|
+
bottom: clientY - 25
|
|
26984
|
+
}),
|
|
26985
|
+
transform: 'translate(-50%, 0)'
|
|
26886
26986
|
}
|
|
26887
26987
|
}) : showMolecule ? jsxRuntime.jsx("div", {
|
|
26888
26988
|
style: {
|
|
@@ -34849,8 +34949,8 @@ var KetcherBuilder = function () {
|
|
|
34849
34949
|
cleanup = initApp(element, appRoot, staticResourcesUrl, {
|
|
34850
34950
|
buttons: buttons || {},
|
|
34851
34951
|
errorHandler: errorHandler || null,
|
|
34852
|
-
version: "2.
|
|
34853
|
-
buildDate: "2024-
|
|
34952
|
+
version: "2.27.0-rc.1" ,
|
|
34953
|
+
buildDate: "2024-11-05T14:46:09" ,
|
|
34854
34954
|
buildNumber: '',
|
|
34855
34955
|
customButtons: customButtons || []
|
|
34856
34956
|
}, structService, resolve, togglerComponent);
|