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.modern.js
CHANGED
|
@@ -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.
|
|
3736
|
+
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();
|
|
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-
|
|
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
|
};
|
|
@@ -16150,22 +16149,34 @@ function getElementsInRectangle(restruct, p0, p1) {
|
|
|
16150
16149
|
var bottomLeftPosition = new Vec2(x0, y1);
|
|
16151
16150
|
var polygon = [topLeftPosition, topRightPosition, bottomRightPosition, bottomLeftPosition];
|
|
16152
16151
|
restruct.bonds.forEach(function (bond, bid) {
|
|
16153
|
-
if (
|
|
16152
|
+
if (FunctionalGroup.isBondInContractedFunctionalGroup(bond.b, sGroups, functionalGroups)) {
|
|
16154
16153
|
return;
|
|
16155
16154
|
}
|
|
16156
|
-
var
|
|
16157
|
-
|
|
16158
|
-
|
|
16159
|
-
|
|
16155
|
+
var center;
|
|
16156
|
+
if (bond.b.isExternalBondBetweenMonomers(struct)) {
|
|
16157
|
+
var firstMonomer = struct.getGroupFromAtomId(bond.b.begin);
|
|
16158
|
+
var secondMonomer = struct.getGroupFromAtomId(bond.b.end);
|
|
16159
|
+
assert_1(firstMonomer);
|
|
16160
|
+
assert_1(secondMonomer);
|
|
16161
|
+
center = firstMonomer.pp && secondMonomer.pp ? Vec2.centre(firstMonomer.pp, secondMonomer.pp) : bond.b.center;
|
|
16162
|
+
} else {
|
|
16163
|
+
center = bond.b.center;
|
|
16164
|
+
}
|
|
16165
|
+
if (center.x > x0 && center.x < x1 && center.y > y0 && center.y < y1) {
|
|
16160
16166
|
bondList.push(bid);
|
|
16161
16167
|
}
|
|
16162
16168
|
});
|
|
16163
16169
|
restruct.atoms.forEach(function (atom, aid) {
|
|
16164
16170
|
var relatedFGId = FunctionalGroup.findFunctionalGroupByAtom(functionalGroups, aid);
|
|
16165
|
-
var
|
|
16166
|
-
if (
|
|
16167
|
-
|
|
16168
|
-
|
|
16171
|
+
var sGroup = struct.sgroups.get(relatedFGId);
|
|
16172
|
+
if (struct.isAtomFromMacromolecule(aid)) {
|
|
16173
|
+
if (sGroup && sGroup.pp && sGroup.pp.x > x0 && sGroup.pp.x < x1 && sGroup.pp.y > y0 && sGroup.pp.y < y1) {
|
|
16174
|
+
atomList.push(aid);
|
|
16175
|
+
}
|
|
16176
|
+
} else {
|
|
16177
|
+
if (atom.a.pp.x > x0 && atom.a.pp.x < x1 && atom.a.pp.y > y0 && atom.a.pp.y < y1 && (!FunctionalGroup.isAtomInContractedFunctionalGroup(atom.a, sGroups, functionalGroups, true) || aid === (sGroup === null || sGroup === void 0 ? void 0 : sGroup.atoms[0]))) {
|
|
16178
|
+
atomList.push(aid);
|
|
16179
|
+
}
|
|
16169
16180
|
}
|
|
16170
16181
|
});
|
|
16171
16182
|
var rxnArrowsList = [];
|
|
@@ -16260,22 +16271,34 @@ function getElementsInPolygon(restruct, rr) {
|
|
|
16260
16271
|
r[i] = new Vec2(rr[i].x, rr[i].y);
|
|
16261
16272
|
}
|
|
16262
16273
|
restruct.bonds.forEach(function (bond, bid) {
|
|
16263
|
-
if (
|
|
16274
|
+
if (FunctionalGroup.isBondInContractedFunctionalGroup(bond.b, sGroups, functionalGroups)) {
|
|
16264
16275
|
return;
|
|
16265
16276
|
}
|
|
16266
|
-
var
|
|
16267
|
-
|
|
16268
|
-
|
|
16269
|
-
|
|
16277
|
+
var center;
|
|
16278
|
+
if (bond.b.isExternalBondBetweenMonomers(struct)) {
|
|
16279
|
+
var firstMonomer = struct.getGroupFromAtomId(bond.b.begin);
|
|
16280
|
+
var secondMonomer = struct.getGroupFromAtomId(bond.b.end);
|
|
16281
|
+
assert_1(firstMonomer);
|
|
16282
|
+
assert_1(secondMonomer);
|
|
16283
|
+
center = firstMonomer !== null && firstMonomer !== void 0 && firstMonomer.pp && secondMonomer !== null && secondMonomer !== void 0 && secondMonomer.pp ? Vec2.centre(firstMonomer.pp, secondMonomer.pp) : bond.b.center;
|
|
16284
|
+
} else {
|
|
16285
|
+
center = bond.b.center;
|
|
16286
|
+
}
|
|
16287
|
+
if (isPointInPolygon(r, center)) {
|
|
16270
16288
|
bondList.push(bid);
|
|
16271
16289
|
}
|
|
16272
16290
|
});
|
|
16273
16291
|
restruct.atoms.forEach(function (atom, aid) {
|
|
16274
16292
|
var relatedFGId = FunctionalGroup.findFunctionalGroupByAtom(functionalGroups, aid);
|
|
16275
|
-
var
|
|
16276
|
-
if (
|
|
16277
|
-
|
|
16278
|
-
|
|
16293
|
+
var sGroup = struct.sgroups.get(relatedFGId);
|
|
16294
|
+
if (struct.isAtomFromMacromolecule(aid)) {
|
|
16295
|
+
if (sGroup && sGroup.pp && isPointInPolygon(r, sGroup.pp)) {
|
|
16296
|
+
atomList.push(aid);
|
|
16297
|
+
}
|
|
16298
|
+
} else {
|
|
16299
|
+
if (isPointInPolygon(r, atom.a.pp) && (!FunctionalGroup.isAtomInContractedFunctionalGroup(atom.a, sGroups, functionalGroups, true) || aid === (sGroup === null || sGroup === void 0 ? void 0 : sGroup.atoms[0]))) {
|
|
16300
|
+
atomList.push(aid);
|
|
16301
|
+
}
|
|
16279
16302
|
}
|
|
16280
16303
|
});
|
|
16281
16304
|
var rxnArrowsList = [];
|
|
@@ -21462,7 +21485,12 @@ var EnhancedStereoTool = function () {
|
|
|
21462
21485
|
}
|
|
21463
21486
|
var action = stereoAtoms.reduce(function (acc, stereoAtom) {
|
|
21464
21487
|
var _struct$atoms$get;
|
|
21465
|
-
|
|
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;
|
|
21466
21494
|
}, fromAtomsAttrs(restruct, stereoAtoms, {
|
|
21467
21495
|
stereoLabel: stereoLabel
|
|
21468
21496
|
}, false));
|
|
@@ -23498,23 +23526,26 @@ var Highlighter = function () {
|
|
|
23498
23526
|
args.forEach(function (arg) {
|
|
23499
23527
|
var atoms = arg.atoms,
|
|
23500
23528
|
bonds = arg.bonds,
|
|
23529
|
+
rgroupAttachmentPoints = arg.rgroupAttachmentPoints,
|
|
23501
23530
|
color = arg.color;
|
|
23502
23531
|
if (typeof color !== 'string') {
|
|
23503
23532
|
return;
|
|
23504
23533
|
}
|
|
23505
|
-
if (!atoms && !bonds) {
|
|
23534
|
+
if (!atoms && !bonds && !rgroupAttachmentPoints) {
|
|
23506
23535
|
return;
|
|
23507
23536
|
}
|
|
23508
23537
|
var restruct = _this.editor.render.ctab;
|
|
23509
|
-
var _getValidInputOnly = getValidInputOnly(restruct.molecule, atoms, bonds),
|
|
23538
|
+
var _getValidInputOnly = getValidInputOnly(restruct.molecule, atoms, bonds, rgroupAttachmentPoints),
|
|
23510
23539
|
validAtoms = _getValidInputOnly.validAtoms,
|
|
23511
|
-
validBonds = _getValidInputOnly.validBonds
|
|
23512
|
-
|
|
23540
|
+
validBonds = _getValidInputOnly.validBonds,
|
|
23541
|
+
validRgroupAttachmentPoints = _getValidInputOnly.validRgroupAttachmentPoints;
|
|
23542
|
+
if (validAtoms.length === 0 && validBonds.length === 0 && validRgroupAttachmentPoints.length === 0) {
|
|
23513
23543
|
return;
|
|
23514
23544
|
}
|
|
23515
23545
|
createdHighlights.push({
|
|
23516
23546
|
atoms: validAtoms,
|
|
23517
23547
|
bonds: validBonds,
|
|
23548
|
+
rgroupAttachmentPoints: validRgroupAttachmentPoints,
|
|
23518
23549
|
color: color
|
|
23519
23550
|
});
|
|
23520
23551
|
});
|
|
@@ -23530,15 +23561,19 @@ var Highlighter = function () {
|
|
|
23530
23561
|
}]);
|
|
23531
23562
|
return Highlighter;
|
|
23532
23563
|
}();
|
|
23533
|
-
function getValidInputOnly(struct, atoms, bonds) {
|
|
23564
|
+
function getValidInputOnly(struct, atoms, bonds, rgroupAttachmentPoints) {
|
|
23534
23565
|
if (!Array.isArray(atoms)) {
|
|
23535
23566
|
atoms = [];
|
|
23536
23567
|
}
|
|
23537
23568
|
if (!Array.isArray(bonds)) {
|
|
23538
23569
|
bonds = [];
|
|
23539
23570
|
}
|
|
23571
|
+
if (!Array.isArray(rgroupAttachmentPoints)) {
|
|
23572
|
+
rgroupAttachmentPoints = [];
|
|
23573
|
+
}
|
|
23540
23574
|
var structAtoms = struct.atoms,
|
|
23541
|
-
structBonds = struct.bonds
|
|
23575
|
+
structBonds = struct.bonds,
|
|
23576
|
+
structRgroupAttachmentPoints = struct.rgroupAttachmentPoints;
|
|
23542
23577
|
if (atoms.length > 0) {
|
|
23543
23578
|
atoms = atoms.filter(function (aid) {
|
|
23544
23579
|
return structAtoms.has(aid);
|
|
@@ -23549,9 +23584,15 @@ function getValidInputOnly(struct, atoms, bonds) {
|
|
|
23549
23584
|
return structBonds.has(bid);
|
|
23550
23585
|
});
|
|
23551
23586
|
}
|
|
23587
|
+
if (rgroupAttachmentPoints.length > 0) {
|
|
23588
|
+
rgroupAttachmentPoints = rgroupAttachmentPoints.filter(function (rgroupAPId) {
|
|
23589
|
+
return structRgroupAttachmentPoints.has(rgroupAPId);
|
|
23590
|
+
});
|
|
23591
|
+
}
|
|
23552
23592
|
return {
|
|
23553
23593
|
validAtoms: atoms,
|
|
23554
|
-
validBonds: bonds
|
|
23594
|
+
validBonds: bonds,
|
|
23595
|
+
validRgroupAttachmentPoints: rgroupAttachmentPoints
|
|
23555
23596
|
};
|
|
23556
23597
|
}
|
|
23557
23598
|
|
|
@@ -24337,7 +24378,7 @@ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedec
|
|
|
24337
24378
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
24338
24379
|
var SCALE = provideEditorSettings().microModeScale;
|
|
24339
24380
|
var HISTORY_SIZE = 32;
|
|
24340
|
-
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];
|
|
24341
24382
|
var highlightTargets = ['atoms', 'bonds', 'rxnArrows', 'rxnPluses', 'functionalGroups', 'frags', 'merge', 'rgroups', 'rgroupAttachmentPoints', 'sgroups', 'sgroupData', 'enhancedFlags', 'simpleObjects', 'texts', IMAGE_KEY, MULTITAIL_ARROW_KEY];
|
|
24342
24383
|
function selectStereoFlagsIfNecessary(atoms, expAtoms) {
|
|
24343
24384
|
var atomsOfFragments = {};
|
|
@@ -24581,21 +24622,13 @@ var Editor$3 = function () {
|
|
|
24581
24622
|
if (arguments.length === 0) {
|
|
24582
24623
|
return this._selection;
|
|
24583
24624
|
}
|
|
24584
|
-
var struct = this.struct();
|
|
24585
24625
|
var ReStruct = this.render.ctab;
|
|
24586
24626
|
var selectAll = false;
|
|
24587
24627
|
this._selection = null;
|
|
24588
24628
|
if (ci === 'all') {
|
|
24589
24629
|
selectAll = true;
|
|
24590
24630
|
ci = structObjects.reduce(function (res, key) {
|
|
24591
|
-
|
|
24592
|
-
restructItemsIds = restructItemsIds.filter(function (restructItemId) {
|
|
24593
|
-
return !struct.isTargetFromMacromolecule({
|
|
24594
|
-
map: key,
|
|
24595
|
-
id: restructItemId
|
|
24596
|
-
});
|
|
24597
|
-
});
|
|
24598
|
-
res[key] = restructItemsIds;
|
|
24631
|
+
res[key] = Array.from(ReStruct[key].keys());
|
|
24599
24632
|
return res;
|
|
24600
24633
|
}, {});
|
|
24601
24634
|
}
|
|
@@ -25518,15 +25551,20 @@ var AtomMenuItems = function AtomMenuItems(props) {
|
|
|
25518
25551
|
var atomIds = ((_props$propsFromTrigg6 = props.propsFromTrigger) === null || _props$propsFromTrigg6 === void 0 ? void 0 : _props$propsFromTrigg6.atomIds) || [];
|
|
25519
25552
|
editor.highlights.create({
|
|
25520
25553
|
atoms: atomIds,
|
|
25554
|
+
rgroupAttachmentPoints: [],
|
|
25521
25555
|
bonds: [],
|
|
25522
25556
|
color: color === '' ? 'transparent' : color
|
|
25523
25557
|
});
|
|
25524
25558
|
};
|
|
25525
25559
|
if (isAtomSuperatomLeavingGroup && onlyOneAtomSelected) {
|
|
25526
|
-
return
|
|
25527
|
-
|
|
25528
|
-
|
|
25529
|
-
|
|
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
|
+
});
|
|
25530
25568
|
}
|
|
25531
25569
|
return jsxs(Fragment, {
|
|
25532
25570
|
children: [jsx(Item, _objectSpread$O(_objectSpread$O({}, props), {}, {
|
|
@@ -25640,6 +25678,7 @@ var useBondSGroupAttach = function useBondSGroupAttach() {
|
|
|
25640
25678
|
SGroupTool.sgroupDialog(editor, null);
|
|
25641
25679
|
}, [getKetcherInstance]);
|
|
25642
25680
|
var hidden = useCallback(function (_ref2) {
|
|
25681
|
+
var _struct$sgroups$get;
|
|
25643
25682
|
var props = _ref2.props;
|
|
25644
25683
|
var editor = getKetcherInstance().editor;
|
|
25645
25684
|
var struct = editor.render.ctab;
|
|
@@ -25649,6 +25688,12 @@ var useBondSGroupAttach = function useBondSGroupAttach() {
|
|
|
25649
25688
|
}
|
|
25650
25689
|
var bond = struct.bonds.get(bondIds[0]);
|
|
25651
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
|
+
}
|
|
25652
25697
|
return attachedSGroups.size > 0;
|
|
25653
25698
|
}, [getKetcherInstance]);
|
|
25654
25699
|
return [handler, hidden];
|
|
@@ -25676,8 +25721,17 @@ var useBondSGroupEdit = function useBondSGroupEdit() {
|
|
|
25676
25721
|
return sGroupsRef.current.size > 1;
|
|
25677
25722
|
}, [getKetcherInstance]);
|
|
25678
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
|
+
}
|
|
25679
25733
|
return sGroupsRef.current.size === 0;
|
|
25680
|
-
}, []);
|
|
25734
|
+
}, [getKetcherInstance]);
|
|
25681
25735
|
return [handler, disabled, hidden];
|
|
25682
25736
|
};
|
|
25683
25737
|
|
|
@@ -25793,6 +25847,7 @@ var BondMenuItems = function BondMenuItems(props) {
|
|
|
25793
25847
|
editor.highlights.create({
|
|
25794
25848
|
atoms: [],
|
|
25795
25849
|
bonds: bondIds,
|
|
25850
|
+
rgroupAttachmentPoints: [],
|
|
25796
25851
|
color: color === '' ? 'transparent' : color
|
|
25797
25852
|
});
|
|
25798
25853
|
};
|
|
@@ -25983,12 +26038,14 @@ var SelectionMenuItems = function SelectionMenuItems(props) {
|
|
|
25983
26038
|
atomStereoDisabled = _useAtomStereo2[1];
|
|
25984
26039
|
var handleDelete = useDelete$1();
|
|
25985
26040
|
var highlightBondWithColor = function highlightBondWithColor(color) {
|
|
25986
|
-
var _props$propsFromTrigg, _props$propsFromTrigg2;
|
|
26041
|
+
var _props$propsFromTrigg, _props$propsFromTrigg2, _props$propsFromTrigg3;
|
|
25987
26042
|
var bondIds = ((_props$propsFromTrigg = props.propsFromTrigger) === null || _props$propsFromTrigg === void 0 ? void 0 : _props$propsFromTrigg.bondIds) || [];
|
|
25988
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) || [];
|
|
25989
26045
|
editor.highlights.create({
|
|
25990
26046
|
atoms: atomIds,
|
|
25991
26047
|
bonds: bondIds,
|
|
26048
|
+
rgroupAttachmentPoints: rgroupAttachmentPoints,
|
|
25992
26049
|
color: color === '' ? 'transparent' : color
|
|
25993
26050
|
});
|
|
25994
26051
|
};
|
|
@@ -26110,19 +26167,34 @@ var useRGroupAttachmentPointEdit = function useRGroupAttachmentPointEdit() {
|
|
|
26110
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; }
|
|
26111
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; }
|
|
26112
26169
|
var RGroupAttachmentPointMenuItems = function RGroupAttachmentPointMenuItems(props) {
|
|
26170
|
+
var _useAppContext = useAppContext(),
|
|
26171
|
+
getKetcherInstance = _useAppContext.getKetcherInstance;
|
|
26113
26172
|
var handleRemove = useDelete();
|
|
26114
26173
|
var _useRGroupAttachmentP = useRGroupAttachmentPointEdit(),
|
|
26115
26174
|
_useRGroupAttachmentP2 = _slicedToArray$1(_useRGroupAttachmentP, 3),
|
|
26116
26175
|
handleEditRGroupAttachmentPoint = _useRGroupAttachmentP2[0],
|
|
26117
26176
|
rgroupAttachmentPointDisabled = _useRGroupAttachmentP2[1],
|
|
26118
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
|
+
};
|
|
26119
26189
|
return jsxs(Fragment, {
|
|
26120
26190
|
children: [jsx(Item, _objectSpread$K(_objectSpread$K({}, props), {}, {
|
|
26121
26191
|
disabled: rgroupAttachmentPointDisabled,
|
|
26122
26192
|
hidden: rgroupAttachmentPointHidden,
|
|
26123
26193
|
onClick: handleEditRGroupAttachmentPoint,
|
|
26124
26194
|
children: "Edit..."
|
|
26125
|
-
})), jsx(
|
|
26195
|
+
})), jsx(HighlightMenu, {
|
|
26196
|
+
onHighlight: highlight
|
|
26197
|
+
}), jsx(Item, _objectSpread$K(_objectSpread$K({}, props), {}, {
|
|
26126
26198
|
onClick: handleRemove,
|
|
26127
26199
|
children: "Remove"
|
|
26128
26200
|
}))]
|
|
@@ -26226,10 +26298,14 @@ var useMonomerExpansionHandlers = function useMonomerExpansionHandlers() {
|
|
|
26226
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; }
|
|
26227
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; }
|
|
26228
26300
|
var MacromoleculeMenuItems = function MacromoleculeMenuItems(props) {
|
|
26301
|
+
var _props$propsFromTrigg;
|
|
26229
26302
|
var _useMonomerExpansionH = useMonomerExpansionHandlers(),
|
|
26230
26303
|
_useMonomerExpansionH2 = _slicedToArray$1(_useMonomerExpansionH, 2),
|
|
26231
26304
|
action = _useMonomerExpansionH2[0],
|
|
26232
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';
|
|
26233
26309
|
return jsxs(Fragment, {
|
|
26234
26310
|
children: [jsx(Item, _objectSpread$I(_objectSpread$I({}, props), {}, {
|
|
26235
26311
|
hidden: function hidden(params) {
|
|
@@ -26238,7 +26314,7 @@ var MacromoleculeMenuItems = function MacromoleculeMenuItems(props) {
|
|
|
26238
26314
|
onClick: function onClick(params) {
|
|
26239
26315
|
return action(params, true);
|
|
26240
26316
|
},
|
|
26241
|
-
children:
|
|
26317
|
+
children: expandText
|
|
26242
26318
|
})), jsx(Item, _objectSpread$I(_objectSpread$I({}, props), {}, {
|
|
26243
26319
|
hidden: function hidden(params) {
|
|
26244
26320
|
return _hidden(params, false);
|
|
@@ -26246,7 +26322,7 @@ var MacromoleculeMenuItems = function MacromoleculeMenuItems(props) {
|
|
|
26246
26322
|
onClick: function onClick(params) {
|
|
26247
26323
|
return action(params, false);
|
|
26248
26324
|
},
|
|
26249
|
-
children:
|
|
26325
|
+
children: collapseText
|
|
26250
26326
|
}))]
|
|
26251
26327
|
});
|
|
26252
26328
|
};
|
|
@@ -26409,24 +26485,46 @@ function getMenuPropsForClosestItem(editor, closestItem) {
|
|
|
26409
26485
|
case 'bonds':
|
|
26410
26486
|
{
|
|
26411
26487
|
var functionalGroup = FunctionalGroup.findFunctionalGroupByBond(struct, struct.functionalGroups, closestItem.id, true);
|
|
26412
|
-
|
|
26413
|
-
|
|
26414
|
-
|
|
26415
|
-
|
|
26416
|
-
|
|
26417
|
-
|
|
26418
|
-
|
|
26488
|
+
var noFunctionalGroup = functionalGroup === null || (functionalGroup === null || functionalGroup === void 0 ? void 0 : functionalGroup.relatedSGroup.isSuperatomWithoutLabel);
|
|
26489
|
+
var isMonomer = (functionalGroup === null || functionalGroup === void 0 ? void 0 : functionalGroup.relatedSGroup) instanceof MonomerMicromolecule;
|
|
26490
|
+
if (noFunctionalGroup) {
|
|
26491
|
+
return {
|
|
26492
|
+
id: CONTEXT_MENU_ID.FOR_BONDS,
|
|
26493
|
+
bondIds: [closestItem.id]
|
|
26494
|
+
};
|
|
26495
|
+
} else if (isMonomer) {
|
|
26496
|
+
return {
|
|
26497
|
+
id: CONTEXT_MENU_ID.FOR_MACROMOLECULE,
|
|
26498
|
+
functionalGroups: [functionalGroup]
|
|
26499
|
+
};
|
|
26500
|
+
} else {
|
|
26501
|
+
return {
|
|
26502
|
+
id: CONTEXT_MENU_ID.FOR_FUNCTIONAL_GROUPS,
|
|
26503
|
+
functionalGroups: [functionalGroup]
|
|
26504
|
+
};
|
|
26505
|
+
}
|
|
26419
26506
|
}
|
|
26420
26507
|
case 'atoms':
|
|
26421
26508
|
{
|
|
26422
26509
|
var _functionalGroup = FunctionalGroup.findFunctionalGroupByAtom(struct.functionalGroups, closestItem.id, true);
|
|
26423
|
-
|
|
26424
|
-
|
|
26425
|
-
|
|
26426
|
-
|
|
26427
|
-
|
|
26428
|
-
|
|
26429
|
-
|
|
26510
|
+
var _noFunctionalGroup = _functionalGroup === null || (_functionalGroup === null || _functionalGroup === void 0 ? void 0 : _functionalGroup.relatedSGroup.isSuperatomWithoutLabel);
|
|
26511
|
+
var _isMonomer = (_functionalGroup === null || _functionalGroup === void 0 ? void 0 : _functionalGroup.relatedSGroup) instanceof MonomerMicromolecule;
|
|
26512
|
+
if (_noFunctionalGroup) {
|
|
26513
|
+
return {
|
|
26514
|
+
id: CONTEXT_MENU_ID.FOR_ATOMS,
|
|
26515
|
+
atomIds: [closestItem.id]
|
|
26516
|
+
};
|
|
26517
|
+
} else if (_isMonomer) {
|
|
26518
|
+
return {
|
|
26519
|
+
id: CONTEXT_MENU_ID.FOR_MACROMOLECULE,
|
|
26520
|
+
functionalGroups: [_functionalGroup]
|
|
26521
|
+
};
|
|
26522
|
+
} else {
|
|
26523
|
+
return {
|
|
26524
|
+
id: CONTEXT_MENU_ID.FOR_FUNCTIONAL_GROUPS,
|
|
26525
|
+
functionalGroups: [_functionalGroup]
|
|
26526
|
+
};
|
|
26527
|
+
}
|
|
26430
26528
|
}
|
|
26431
26529
|
case 'sgroups':
|
|
26432
26530
|
case 'functionalGroups':
|
|
@@ -26507,7 +26605,8 @@ function getMenuPropsForSelection(selection, selectedFunctionalGroups) {
|
|
|
26507
26605
|
return {
|
|
26508
26606
|
id: CONTEXT_MENU_ID.FOR_SELECTION,
|
|
26509
26607
|
bondIds: bonds,
|
|
26510
|
-
atomIds: atoms
|
|
26608
|
+
atomIds: atoms,
|
|
26609
|
+
rgroupAttachmentPoints: rgroupAttachmentPoints
|
|
26511
26610
|
};
|
|
26512
26611
|
}
|
|
26513
26612
|
}
|
|
@@ -26808,16 +26907,17 @@ var InfoPanel = function InfoPanel(props) {
|
|
|
26808
26907
|
return isAmbiguousMonomer ? jsx(AmbiguousMonomerPreview, {
|
|
26809
26908
|
preview: {
|
|
26810
26909
|
type: PreviewType.AmbiguousMonomer,
|
|
26811
|
-
monomer: sGroup.monomer.variantMonomerItem
|
|
26812
|
-
|
|
26813
|
-
|
|
26814
|
-
|
|
26815
|
-
|
|
26816
|
-
|
|
26817
|
-
|
|
26818
|
-
|
|
26819
|
-
|
|
26820
|
-
}
|
|
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)'
|
|
26821
26921
|
}
|
|
26822
26922
|
}) : showMolecule ? jsx("div", {
|
|
26823
26923
|
style: {
|
|
@@ -34784,8 +34884,8 @@ var KetcherBuilder = function () {
|
|
|
34784
34884
|
cleanup = initApp(element, appRoot, staticResourcesUrl, {
|
|
34785
34885
|
buttons: buttons || {},
|
|
34786
34886
|
errorHandler: errorHandler || null,
|
|
34787
|
-
version: "2.
|
|
34788
|
-
buildDate: "2024-
|
|
34887
|
+
version: "2.27.0-rc.1" ,
|
|
34888
|
+
buildDate: "2024-11-05T14:46:09" ,
|
|
34789
34889
|
buildNumber: '',
|
|
34790
34890
|
customButtons: customButtons || []
|
|
34791
34891
|
}, structService, resolve, togglerComponent);
|