ketcher-react 3.2.0-rc.1 → 3.2.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.
- package/dist/cjs/index.js +39 -18
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/{index.modern-dc72bcd6.js → index.modern-88e692a5.js} +65 -5
- package/dist/cjs/index.modern-88e692a5.js.map +1 -0
- package/dist/cjs/script/editor/Editor.d.ts +4 -2
- package/dist/cjs/script/ui/state/editor/index.d.ts +1 -0
- package/dist/index.js +40 -19
- package/dist/index.js.map +1 -1
- package/dist/{index.modern-17b0bd64.js → index.modern-ef6b0e2f.js} +66 -6
- package/dist/index.modern-ef6b0e2f.js.map +1 -0
- package/dist/script/editor/Editor.d.ts +4 -2
- package/dist/script/ui/state/editor/index.d.ts +1 -0
- package/package.json +1 -1
- package/dist/cjs/index.modern-dc72bcd6.js.map +0 -1
- package/dist/index.modern-17b0bd64.js.map +0 -1
|
@@ -12328,7 +12328,8 @@ var ConfirmationText = _styled__default["default"]("p", process.env.NODE_ENV ===
|
|
|
12328
12328
|
});
|
|
12329
12329
|
|
|
12330
12330
|
var ConfirmationDialog = function ConfirmationDialog(_ref) {
|
|
12331
|
-
var
|
|
12331
|
+
var title = _ref.title,
|
|
12332
|
+
confirmationText = _ref.confirmationText,
|
|
12332
12333
|
onConfirm = _ref.onConfirm,
|
|
12333
12334
|
isModalOpen = _ref.isModalOpen,
|
|
12334
12335
|
onClose = _ref.onClose;
|
|
@@ -12338,7 +12339,7 @@ var ConfirmationDialog = function ConfirmationDialog(_ref) {
|
|
|
12338
12339
|
};
|
|
12339
12340
|
return jsxRuntime.jsxs(Modal, {
|
|
12340
12341
|
isOpen: isModalOpen,
|
|
12341
|
-
title:
|
|
12342
|
+
title: title || 'Confirm your action',
|
|
12342
12343
|
onClose: onClose,
|
|
12343
12344
|
children: [jsxRuntime.jsx(Modal.Content, {
|
|
12344
12345
|
children: jsxRuntime.jsx(ConfirmationText, {
|
|
@@ -13792,8 +13793,61 @@ var SequenceItemContextMenu = function SequenceItemContextMenu(_ref) {
|
|
|
13792
13793
|
editor.events.establishHydrogenBond.dispatch(props.sequenceItemRenderer);
|
|
13793
13794
|
break;
|
|
13794
13795
|
case SequenceItemContextMenuNames.deleteHydrogenBond:
|
|
13795
|
-
|
|
13796
|
-
|
|
13796
|
+
{
|
|
13797
|
+
var _props$sequenceItemRe3;
|
|
13798
|
+
var sequenceViewModel = ketcherCore.SequenceRenderer.sequenceViewModel;
|
|
13799
|
+
var monomerToChain = sequenceViewModel.chainsCollection.monomerToChain;
|
|
13800
|
+
var antisenseChainToSelectedNodeMap = new Map();
|
|
13801
|
+
var selectedTwoStrandedNodes = selections !== null && selections !== void 0 && selections.length ? selections.reduce(function (acc, selectionRange) {
|
|
13802
|
+
return [].concat(_toConsumableArray__default["default"](acc), _toConsumableArray__default["default"](selectionRange));
|
|
13803
|
+
}, []).map(function (nodeSelection) {
|
|
13804
|
+
return nodeSelection.twoStrandedNode;
|
|
13805
|
+
}) : [(_props$sequenceItemRe3 = props.sequenceItemRenderer) === null || _props$sequenceItemRe3 === void 0 ? void 0 : _props$sequenceItemRe3.twoStrandedNode];
|
|
13806
|
+
selectedTwoStrandedNodes.forEach(function (selectedTwoStrandedNode) {
|
|
13807
|
+
if (selectedTwoStrandedNode.antisenseChain && selectedTwoStrandedNode.antisenseNode && !(selectedTwoStrandedNode.antisenseNode instanceof ketcherCore.EmptySequenceNode || selectedTwoStrandedNode.antisenseNode instanceof ketcherCore.BackBoneSequenceNode)) {
|
|
13808
|
+
if (!antisenseChainToSelectedNodeMap.has(selectedTwoStrandedNode.antisenseChain)) {
|
|
13809
|
+
antisenseChainToSelectedNodeMap.set(selectedTwoStrandedNode.antisenseChain, new Set());
|
|
13810
|
+
}
|
|
13811
|
+
var antisenseChainSelectedNodes = antisenseChainToSelectedNodeMap.get(selectedTwoStrandedNode.antisenseChain);
|
|
13812
|
+
if (!antisenseChainSelectedNodes) {
|
|
13813
|
+
return;
|
|
13814
|
+
}
|
|
13815
|
+
antisenseChainSelectedNodes.add(selectedTwoStrandedNode);
|
|
13816
|
+
}
|
|
13817
|
+
});
|
|
13818
|
+
var isGoingToDeleteAllHydrogenBondsForAnyChain = false;
|
|
13819
|
+
antisenseChainToSelectedNodeMap.forEach(function (selectedTwoStrandedNodes, chain) {
|
|
13820
|
+
var firstSelectedTwoStrandedNode = _toConsumableArray__default["default"](selectedTwoStrandedNodes.values())[0];
|
|
13821
|
+
var senseChain = firstSelectedTwoStrandedNode.chain;
|
|
13822
|
+
var selectedAntisenseNodes = new Set(_toConsumableArray__default["default"](selectedTwoStrandedNodes.values()).map(function (node) {
|
|
13823
|
+
return node.antisenseNode;
|
|
13824
|
+
}));
|
|
13825
|
+
var hasMoreHydrogenConnectionsThanSelected = chain.nodes.some(function (node) {
|
|
13826
|
+
return !selectedAntisenseNodes.has(node) && node.monomers.some(function (monomer) {
|
|
13827
|
+
return monomer.hydrogenBonds.some(function (hydrogenBond) {
|
|
13828
|
+
var anotherMonomer = hydrogenBond.getAnotherMonomer(monomer);
|
|
13829
|
+
var anotherChain = anotherMonomer && monomerToChain.get(anotherMonomer);
|
|
13830
|
+
return anotherChain === senseChain;
|
|
13831
|
+
});
|
|
13832
|
+
});
|
|
13833
|
+
});
|
|
13834
|
+
if (!hasMoreHydrogenConnectionsThanSelected) {
|
|
13835
|
+
isGoingToDeleteAllHydrogenBondsForAnyChain = true;
|
|
13836
|
+
}
|
|
13837
|
+
});
|
|
13838
|
+
if (isGoingToDeleteAllHydrogenBondsForAnyChain) {
|
|
13839
|
+
editor.events.openConfirmationDialog.dispatch({
|
|
13840
|
+
title: 'Deletion of all Hydrogen Bonds',
|
|
13841
|
+
confirmationText: 'Deleting all hydrogen bonds will cause the separation of two chains. Do you wish to proceed?',
|
|
13842
|
+
onConfirm: function onConfirm() {
|
|
13843
|
+
editor.events.deleteHydrogenBond.dispatch(props.sequenceItemRenderer);
|
|
13844
|
+
}
|
|
13845
|
+
});
|
|
13846
|
+
} else {
|
|
13847
|
+
editor.events.deleteHydrogenBond.dispatch(props.sequenceItemRenderer);
|
|
13848
|
+
}
|
|
13849
|
+
break;
|
|
13850
|
+
}
|
|
13797
13851
|
}
|
|
13798
13852
|
};
|
|
13799
13853
|
var ketcherEditorRootElement = document.querySelector(ketcherReact.KETCHER_MACROMOLECULES_ROOT_NODE_SELECTOR);
|
|
@@ -15096,6 +15150,7 @@ var EditorEvents = function EditorEvents() {
|
|
|
15096
15150
|
var activeTool = useAppSelector(selectEditorActiveTool);
|
|
15097
15151
|
var dispatch = useAppDispatch();
|
|
15098
15152
|
var presets = useAppSelector(selectAllPresets);
|
|
15153
|
+
var hasAtLeastOneAntisense = useAppSelector(hasAntisenseChains);
|
|
15099
15154
|
var handleMonomersLibraryUpdate = React.useCallback(function () {
|
|
15100
15155
|
dispatch(loadMonomerLibrary(editor === null || editor === void 0 ? void 0 : editor.monomersLibrary));
|
|
15101
15156
|
}, [editor]);
|
|
@@ -15293,6 +15348,11 @@ var EditorEvents = function EditorEvents() {
|
|
|
15293
15348
|
editor === null || editor === void 0 || editor.events.mouseLeavePolymerBond.remove(handleClosePreview);
|
|
15294
15349
|
};
|
|
15295
15350
|
}, [editor, activeTool, handleOpenPreview, handleClosePreview]);
|
|
15351
|
+
React.useEffect(function () {
|
|
15352
|
+
if (!hasAtLeastOneAntisense) {
|
|
15353
|
+
editor === null || editor === void 0 || editor.events.resetSequenceEditMode.dispatch();
|
|
15354
|
+
}
|
|
15355
|
+
}, [hasAtLeastOneAntisense]);
|
|
15296
15356
|
return jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
15297
15357
|
};
|
|
15298
15358
|
|
|
@@ -15694,4 +15754,4 @@ function Editor(_ref2) {
|
|
|
15694
15754
|
}
|
|
15695
15755
|
|
|
15696
15756
|
exports["default"] = EditorContainer;
|
|
15697
|
-
//# sourceMappingURL=index.modern-
|
|
15757
|
+
//# sourceMappingURL=index.modern-88e692a5.js.map
|