ketcher-react 2.8.0-rc.4 → 2.8.0-rc.6
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/index.js +50 -54
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +50 -54
- package/dist/index.modern.js.map +1 -1
- package/dist/script/editor/tool/bond.d.ts +2 -1
- package/dist/script/ui/action/index.d.ts +3 -0
- package/dist/script/ui/action/templates.d.ts +3 -0
- package/package.json +1 -1
package/dist/index.modern.js
CHANGED
|
@@ -2928,7 +2928,10 @@ var templateLib = {
|
|
|
2928
2928
|
shortcut: 'Shift+t',
|
|
2929
2929
|
title: 'Custom Templates',
|
|
2930
2930
|
action: {
|
|
2931
|
-
dialog: 'templates'
|
|
2931
|
+
dialog: 'templates',
|
|
2932
|
+
prop: {
|
|
2933
|
+
tab: null
|
|
2934
|
+
}
|
|
2932
2935
|
},
|
|
2933
2936
|
selected: function selected(editor) {
|
|
2934
2937
|
return editor._tool.mode === 'classic';
|
|
@@ -3008,7 +3011,7 @@ var zoom = {
|
|
|
3008
3011
|
|
|
3009
3012
|
var openHelpLink = function openHelpLink() {
|
|
3010
3013
|
var _window$open;
|
|
3011
|
-
return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v2.8.0-rc.
|
|
3014
|
+
return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v2.8.0-rc.6\n", "/documentation/help.md#ketcher-overview"))) === null || _window$open === void 0 ? void 0 : _window$open.focus();
|
|
3012
3015
|
};
|
|
3013
3016
|
var help = {
|
|
3014
3017
|
help: {
|
|
@@ -10851,7 +10854,7 @@ var BondTool = function () {
|
|
|
10851
10854
|
existingBondId = _this$getExistingBond2[0],
|
|
10852
10855
|
bond = _this$getExistingBond2[1];
|
|
10853
10856
|
dragCtx.action = fromBondAddition(rnd.ctab, this.bondProps, beginAtom, endAtom, beginPos, endPos)[0];
|
|
10854
|
-
if (existingBondId) {
|
|
10857
|
+
if (existingBondId !== null) {
|
|
10855
10858
|
this.dragCtx.existedBond = bond;
|
|
10856
10859
|
this.dragCtx.action.mergeWith(fromOneBondDeletion(rnd.ctab, existingBondId));
|
|
10857
10860
|
}
|
|
@@ -11285,7 +11288,7 @@ function getElementsInRectangle(restruct, p0, p1) {
|
|
|
11285
11288
|
var y1 = Math.max(p0.y, p1.y);
|
|
11286
11289
|
restruct.bonds.forEach(function (bond, bid) {
|
|
11287
11290
|
var centre = Vec2.lc2(restruct.atoms.get(bond.b.begin).a.pp, 0.5, restruct.atoms.get(bond.b.end).a.pp, 0.5);
|
|
11288
|
-
if (centre.x > x0 && centre.x < x1 && centre.y > y0 && centre.y < y1 && !FunctionalGroup.isBondInContractedFunctionalGroup(bond.b, sGroups, functionalGroups
|
|
11291
|
+
if (centre.x > x0 && centre.x < x1 && centre.y > y0 && centre.y < y1 && !FunctionalGroup.isBondInContractedFunctionalGroup(bond.b, sGroups, functionalGroups)) {
|
|
11289
11292
|
bondList.push(bid);
|
|
11290
11293
|
}
|
|
11291
11294
|
});
|
|
@@ -11363,7 +11366,7 @@ function getElementsInPolygon(restruct, rr) {
|
|
|
11363
11366
|
}
|
|
11364
11367
|
restruct.bonds.forEach(function (bond, bid) {
|
|
11365
11368
|
var centre = Vec2.lc2(restruct.atoms.get(bond.b.begin).a.pp, 0.5, restruct.atoms.get(bond.b.end).a.pp, 0.5);
|
|
11366
|
-
if (isPointInPolygon(r, centre) && !FunctionalGroup.isBondInContractedFunctionalGroup(bond.b, sGroups, functionalGroups
|
|
11369
|
+
if (isPointInPolygon(r, centre) && !FunctionalGroup.isBondInContractedFunctionalGroup(bond.b, sGroups, functionalGroups)) {
|
|
11367
11370
|
bondList.push(bid);
|
|
11368
11371
|
}
|
|
11369
11372
|
});
|
|
@@ -11687,7 +11690,7 @@ var SGroupTool = function () {
|
|
|
11687
11690
|
var _struct$bonds$get;
|
|
11688
11691
|
var bondId = FunctionalGroup.bondsInFunctionalGroup(molecule, functionalGroups, ci.id);
|
|
11689
11692
|
var bondFromStruct = bondId !== null && ((_struct$bonds$get = struct.bonds.get(bondId)) === null || _struct$bonds$get === void 0 ? void 0 : _struct$bonds$get.b);
|
|
11690
|
-
if (bondFromStruct && !FunctionalGroup.isBondInContractedFunctionalGroup(bondFromStruct, sgroups, functionalGroups
|
|
11693
|
+
if (bondFromStruct && !FunctionalGroup.isBondInContractedFunctionalGroup(bondFromStruct, sgroups, functionalGroups)) {
|
|
11691
11694
|
bondResult.push(bondId);
|
|
11692
11695
|
}
|
|
11693
11696
|
}
|
|
@@ -12475,8 +12478,8 @@ var SelectTool = function () {
|
|
|
12475
12478
|
var _struct$bonds$get;
|
|
12476
12479
|
var bondId = FunctionalGroup.bondsInFunctionalGroup(molecule, functionalGroups, ci.id);
|
|
12477
12480
|
var bondFromStruct = bondId !== null && ((_struct$bonds$get = struct.bonds.get(bondId)) === null || _struct$bonds$get === void 0 ? void 0 : _struct$bonds$get.b);
|
|
12478
|
-
if (
|
|
12479
|
-
bondFromStruct, sgroups, functionalGroups
|
|
12481
|
+
if (bondFromStruct && !FunctionalGroup.isBondInContractedFunctionalGroup(
|
|
12482
|
+
bondFromStruct, sgroups, functionalGroups)) bondResult.push(bondId);
|
|
12480
12483
|
}
|
|
12481
12484
|
if (atomResult.length > 0) {
|
|
12482
12485
|
var _iterator7 = _createForOfIteratorHelper$9(atomResult),
|
|
@@ -12752,7 +12755,7 @@ var EraserTool = function () {
|
|
|
12752
12755
|
var bond = _step3.value;
|
|
12753
12756
|
var bondId = FunctionalGroup.bondsInFunctionalGroup(molecule, functionalGroups, bond);
|
|
12754
12757
|
var bondFromStruct = bondId !== null && ((_struct$bonds$get = struct.bonds.get(bondId)) === null || _struct$bonds$get === void 0 ? void 0 : _struct$bonds$get.b);
|
|
12755
|
-
if (bondFromStruct && !FunctionalGroup.isBondInContractedFunctionalGroup(bondFromStruct, sgroups, functionalGroups
|
|
12758
|
+
if (bondFromStruct && !FunctionalGroup.isBondInContractedFunctionalGroup(bondFromStruct, sgroups, functionalGroups)) {
|
|
12756
12759
|
bondsResult.push(bondId);
|
|
12757
12760
|
}
|
|
12758
12761
|
}
|
|
@@ -12844,7 +12847,7 @@ var EraserTool = function () {
|
|
|
12844
12847
|
var _restruct$bonds$get;
|
|
12845
12848
|
var bondId = FunctionalGroup.bondsInFunctionalGroup(molecule, functionalGroups, ci.id);
|
|
12846
12849
|
var bondFromStruct = bondId !== null && ((_restruct$bonds$get = restruct.bonds.get(bondId)) === null || _restruct$bonds$get === void 0 ? void 0 : _restruct$bonds$get.b);
|
|
12847
|
-
if (bondFromStruct && !FunctionalGroup.isBondInContractedFunctionalGroup(bondFromStruct, sgroups, functionalGroups
|
|
12850
|
+
if (bondFromStruct && !FunctionalGroup.isBondInContractedFunctionalGroup(bondFromStruct, sgroups, functionalGroups)) {
|
|
12848
12851
|
bondResult.push(bondId);
|
|
12849
12852
|
}
|
|
12850
12853
|
}
|
|
@@ -14252,38 +14255,28 @@ var TemplateTool = function () {
|
|
|
14252
14255
|
});
|
|
14253
14256
|
return true;
|
|
14254
14257
|
}
|
|
14255
|
-
var action;
|
|
14258
|
+
var action, functionalGroupRemoveAction;
|
|
14256
14259
|
var pasteItems = null;
|
|
14257
14260
|
if (SGroup.isSaltOrSolvent(this.template.molecule.name)) {
|
|
14258
14261
|
addSaltsAndSolventsOnCanvasWithoutMerge(restruct, this.template, dragCtx, this.editor);
|
|
14259
14262
|
return true;
|
|
14260
14263
|
} else if (((_ci = ci) === null || _ci === void 0 ? void 0 : _ci.map) === 'functionalGroups' && FunctionalGroup.isContractedFunctionalGroup(ci.id, functionalGroups) && this.mode === 'fg') {
|
|
14261
|
-
|
|
14262
|
-
var
|
|
14263
|
-
|
|
14264
|
-
|
|
14265
|
-
|
|
14266
|
-
|
|
14267
|
-
|
|
14268
|
-
|
|
14269
|
-
|
|
14270
|
-
|
|
14271
|
-
|
|
14272
|
-
var targetPos = ((_this$editor$struct$a2 = this.editor.struct().atoms.get(groupAttachmentAtomId)) === null || _this$editor$struct$a2 === void 0 ? void 0 : _this$editor$struct$a2.pp) || dragCtx.xy0;
|
|
14273
|
-
var eventPos = this.editor.render.page2obj(event);
|
|
14274
|
-
var dist = Vec2.dist(targetPos, eventPos);
|
|
14275
|
-
ci = {
|
|
14276
|
-
map: 'atoms',
|
|
14277
|
-
dist: dist,
|
|
14278
|
-
id: groupAttachmentAtomId
|
|
14279
|
-
};
|
|
14280
|
-
}
|
|
14281
|
-
}
|
|
14282
|
-
this.editor.update(fromFragmentDeletion(this.editor.render.ctab, {
|
|
14283
|
-
atoms: _toConsumableArray(SGroup.getAtoms(struct, closestGroup)),
|
|
14284
|
-
bonds: _toConsumableArray(SGroup.getBonds(struct, closestGroup))
|
|
14264
|
+
functionalGroupRemoveAction = new Action();
|
|
14265
|
+
var _struct = this.editor.struct();
|
|
14266
|
+
var _restruct = this.editor.render.ctab;
|
|
14267
|
+
var functionalGroupToReplace = _struct.sgroups.get(ci.id);
|
|
14268
|
+
var attachmentAtomId = functionalGroupToReplace.getAttAtomId(_struct);
|
|
14269
|
+
var atomsWithoutAttachmentAtom = SGroup.getAtoms(_struct, functionalGroupToReplace).filter(function (id) {
|
|
14270
|
+
return id !== attachmentAtomId;
|
|
14271
|
+
});
|
|
14272
|
+
functionalGroupRemoveAction.mergeWith(fromSgroupDeletion(_restruct, ci.id));
|
|
14273
|
+
functionalGroupRemoveAction.mergeWith(fromFragmentDeletion(_restruct, {
|
|
14274
|
+
atoms: atomsWithoutAttachmentAtom
|
|
14285
14275
|
}));
|
|
14286
|
-
|
|
14276
|
+
ci = {
|
|
14277
|
+
map: 'atoms',
|
|
14278
|
+
id: attachmentAtomId
|
|
14279
|
+
};
|
|
14287
14280
|
}
|
|
14288
14281
|
if (!dragCtx.action) {
|
|
14289
14282
|
if (!ci) {
|
|
@@ -14315,6 +14308,9 @@ var TemplateTool = function () {
|
|
|
14315
14308
|
var _fromTemplateOnAtom4 = _slicedToArray(_fromTemplateOnAtom3, 2);
|
|
14316
14309
|
action = _fromTemplateOnAtom4[0];
|
|
14317
14310
|
pasteItems = _fromTemplateOnAtom4[1];
|
|
14311
|
+
if (functionalGroupRemoveAction) {
|
|
14312
|
+
action = functionalGroupRemoveAction.mergeWith(action);
|
|
14313
|
+
}
|
|
14318
14314
|
dragCtx.action = action;
|
|
14319
14315
|
} else if (ci.map === 'bonds' && this.mode !== 'fg') {
|
|
14320
14316
|
var _promise = fromTemplateOnBondAction(restruct, this.template, ci.id, this.editor.event, dragCtx.sign1 * dragCtx.sign2 > 0, true);
|
|
@@ -15236,7 +15232,7 @@ function findClosestBond(restruct, pos, skip, minDist, scale) {
|
|
|
15236
15232
|
if (bid === skipId) return;
|
|
15237
15233
|
var a1 = restruct.atoms.get(bond.b.begin).a;
|
|
15238
15234
|
var a2 = restruct.atoms.get(bond.b.end).a;
|
|
15239
|
-
if (FunctionalGroup.isBondInContractedFunctionalGroup(bond.b, sGroups, functionalGroups
|
|
15235
|
+
if (FunctionalGroup.isBondInContractedFunctionalGroup(bond.b, sGroups, functionalGroups)) return null;
|
|
15240
15236
|
var mid = Vec2.lc2(a1.pp, 0.5, a2.pp, 0.5);
|
|
15241
15237
|
var cdist = Vec2.dist(pos, mid);
|
|
15242
15238
|
if (cdist < minCDist) {
|
|
@@ -15246,7 +15242,7 @@ function findClosestBond(restruct, pos, skip, minDist, scale) {
|
|
|
15246
15242
|
});
|
|
15247
15243
|
restruct.bonds.forEach(function (bond, bid) {
|
|
15248
15244
|
if (bid === skipId) return;
|
|
15249
|
-
if (FunctionalGroup.isBondInContractedFunctionalGroup(bond.b, sGroups, functionalGroups
|
|
15245
|
+
if (FunctionalGroup.isBondInContractedFunctionalGroup(bond.b, sGroups, functionalGroups)) return null;
|
|
15250
15246
|
var hb = restruct.molecule.halfBonds.get(bond.b.hb1);
|
|
15251
15247
|
var dir = hb.dir;
|
|
15252
15248
|
var norm = hb.norm;
|
|
@@ -22713,19 +22709,15 @@ var TemplateDialog = function TemplateDialog(props) {
|
|
|
22713
22709
|
onSelect = props.onSelect,
|
|
22714
22710
|
rest = _objectWithoutProperties(props, _excluded2);
|
|
22715
22711
|
var searchInputRef = useRef(null);
|
|
22716
|
-
var _useState = useState(
|
|
22712
|
+
var _useState = useState([props.group]),
|
|
22717
22713
|
_useState2 = _slicedToArray(_useState, 2),
|
|
22718
|
-
|
|
22719
|
-
|
|
22720
|
-
var _useState3 = useState([props.group]),
|
|
22721
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
22722
|
-
expandedAccordions = _useState4[0],
|
|
22723
|
-
setExpandedAccordions = _useState4[1];
|
|
22714
|
+
expandedAccordions = _useState2[0],
|
|
22715
|
+
setExpandedAccordions = _useState2[1];
|
|
22724
22716
|
var filteredSaltsAndSolvents = useSaltsAndSolvents(saltsAndSolvents, filter);
|
|
22725
|
-
var
|
|
22726
|
-
|
|
22727
|
-
filteredFG =
|
|
22728
|
-
setFilteredFG =
|
|
22717
|
+
var _useState3 = useState(functionalGroups[FUNCTIONAL_GROUPS]),
|
|
22718
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
22719
|
+
filteredFG = _useState4[0],
|
|
22720
|
+
setFilteredFG = _useState4[1];
|
|
22729
22721
|
var filteredTemplateLib = filterLibSelector(props);
|
|
22730
22722
|
useEffect(function () {
|
|
22731
22723
|
setFilteredFG(filterFGLib(functionalGroups, filter)[FUNCTIONAL_GROUPS]);
|
|
@@ -22735,6 +22727,11 @@ var TemplateDialog = function TemplateDialog(props) {
|
|
|
22735
22727
|
(_searchInputRef$curre = searchInputRef.current) === null || _searchInputRef$curre === void 0 ? void 0 : _searchInputRef$curre.focus();
|
|
22736
22728
|
onSelect(null);
|
|
22737
22729
|
}, [tab, onSelect]);
|
|
22730
|
+
useEffect(function () {
|
|
22731
|
+
if (initialTab !== null) {
|
|
22732
|
+
onTabChange(initialTab);
|
|
22733
|
+
}
|
|
22734
|
+
}, [initialTab, onTabChange]);
|
|
22738
22735
|
var handleAccordionChange = function handleAccordionChange(accordion) {
|
|
22739
22736
|
return function (_, isExpanded) {
|
|
22740
22737
|
setExpandedAccordions(isExpanded ? [].concat(_toConsumableArray(expandedAccordions), [accordion]) : _toConsumableArray(expandedAccordions).filter(function (expandedAccordion) {
|
|
@@ -22743,7 +22740,6 @@ var TemplateDialog = function TemplateDialog(props) {
|
|
|
22743
22740
|
};
|
|
22744
22741
|
};
|
|
22745
22742
|
var handleTabChange = function handleTabChange(value) {
|
|
22746
|
-
setThisInitialTab(null);
|
|
22747
22743
|
onTabChange(value);
|
|
22748
22744
|
};
|
|
22749
22745
|
var sdfSerializer = new SdfSerializer();
|
|
@@ -22780,7 +22776,7 @@ var TemplateDialog = function TemplateDialog(props) {
|
|
|
22780
22776
|
className: classes$8.searchIcon
|
|
22781
22777
|
})]
|
|
22782
22778
|
}), jsxs(Tabs$1, {
|
|
22783
|
-
value:
|
|
22779
|
+
value: tab,
|
|
22784
22780
|
onChange: function onChange(_, value) {
|
|
22785
22781
|
return handleTabChange(value);
|
|
22786
22782
|
},
|
|
@@ -22896,7 +22892,7 @@ var onModalClose = function onModalClose(props, dispatch) {
|
|
|
22896
22892
|
var TemplatesDialog = connect(function (store) {
|
|
22897
22893
|
var _store$modal, _store$modal$prop, _store$editor, _store$editor$render;
|
|
22898
22894
|
return _objectSpread$4(_objectSpread$4({}, omit(['attach'], store.templates)), {}, {
|
|
22899
|
-
initialTab: (
|
|
22895
|
+
initialTab: (_store$modal = store.modal) === null || _store$modal === void 0 ? void 0 : (_store$modal$prop = _store$modal.prop) === null || _store$modal$prop === void 0 ? void 0 : _store$modal$prop.tab,
|
|
22900
22896
|
renderOptions: (_store$editor = store.editor) === null || _store$editor === void 0 ? void 0 : (_store$editor$render = _store$editor.render) === null || _store$editor$render === void 0 ? void 0 : _store$editor$render.options,
|
|
22901
22897
|
functionalGroups: functionalGroupsSelector(store),
|
|
22902
22898
|
saltsAndSolvents: saltsAndSolventsSelector(store)
|
|
@@ -23662,8 +23658,8 @@ var KetcherBuilder = function () {
|
|
|
23662
23658
|
initApp(element, staticResourcesUrl, {
|
|
23663
23659
|
buttons: buttons || {},
|
|
23664
23660
|
errorHandler: errorHandler || null,
|
|
23665
|
-
version: "2.8.0-rc.
|
|
23666
|
-
buildDate: "2023-
|
|
23661
|
+
version: "2.8.0-rc.6" ,
|
|
23662
|
+
buildDate: "2023-03-09T13:41:33" ,
|
|
23667
23663
|
buildNumber: ''
|
|
23668
23664
|
}, structService, resolve);
|
|
23669
23665
|
});
|