ketcher-macromolecules 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/components/modal/ConfirmationDialog/ConfirmationDialog.d.ts +1 -1
- package/dist/components/modal/modalContainer/types.d.ts +1 -0
- package/dist/index.js +64 -4
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +65 -5
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ConfirmationDialogProps } from "../modalContainer";
|
|
2
|
-
export declare const ConfirmationDialog: ({ confirmationText, onConfirm, isModalOpen, onClose, }: ConfirmationDialogProps) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare const ConfirmationDialog: ({ title, confirmationText, onConfirm, isModalOpen, onClose, }: ConfirmationDialogProps) => import("@emotion/react/jsx-runtime").JSX.Element;
|
package/dist/index.js
CHANGED
|
@@ -9186,7 +9186,8 @@ var ConfirmationText = _styled__default["default"]("p", process.env.NODE_ENV ===
|
|
|
9186
9186
|
});
|
|
9187
9187
|
|
|
9188
9188
|
var ConfirmationDialog = function ConfirmationDialog(_ref) {
|
|
9189
|
-
var
|
|
9189
|
+
var title = _ref.title,
|
|
9190
|
+
confirmationText = _ref.confirmationText,
|
|
9190
9191
|
onConfirm = _ref.onConfirm,
|
|
9191
9192
|
isModalOpen = _ref.isModalOpen,
|
|
9192
9193
|
onClose = _ref.onClose;
|
|
@@ -9196,7 +9197,7 @@ var ConfirmationDialog = function ConfirmationDialog(_ref) {
|
|
|
9196
9197
|
};
|
|
9197
9198
|
return jsxRuntime.jsxs(Modal, {
|
|
9198
9199
|
isOpen: isModalOpen,
|
|
9199
|
-
title:
|
|
9200
|
+
title: title || 'Confirm your action',
|
|
9200
9201
|
onClose: onClose,
|
|
9201
9202
|
children: [jsxRuntime.jsx(Modal.Content, {
|
|
9202
9203
|
children: jsxRuntime.jsx(ConfirmationText, {
|
|
@@ -10650,8 +10651,61 @@ var SequenceItemContextMenu = function SequenceItemContextMenu(_ref) {
|
|
|
10650
10651
|
editor.events.establishHydrogenBond.dispatch(props.sequenceItemRenderer);
|
|
10651
10652
|
break;
|
|
10652
10653
|
case SequenceItemContextMenuNames.deleteHydrogenBond:
|
|
10653
|
-
|
|
10654
|
-
|
|
10654
|
+
{
|
|
10655
|
+
var _props$sequenceItemRe3;
|
|
10656
|
+
var sequenceViewModel = ketcherCore.SequenceRenderer.sequenceViewModel;
|
|
10657
|
+
var monomerToChain = sequenceViewModel.chainsCollection.monomerToChain;
|
|
10658
|
+
var antisenseChainToSelectedNodeMap = new Map();
|
|
10659
|
+
var selectedTwoStrandedNodes = selections !== null && selections !== void 0 && selections.length ? selections.reduce(function (acc, selectionRange) {
|
|
10660
|
+
return [].concat(_toConsumableArray__default["default"](acc), _toConsumableArray__default["default"](selectionRange));
|
|
10661
|
+
}, []).map(function (nodeSelection) {
|
|
10662
|
+
return nodeSelection.twoStrandedNode;
|
|
10663
|
+
}) : [(_props$sequenceItemRe3 = props.sequenceItemRenderer) === null || _props$sequenceItemRe3 === void 0 ? void 0 : _props$sequenceItemRe3.twoStrandedNode];
|
|
10664
|
+
selectedTwoStrandedNodes.forEach(function (selectedTwoStrandedNode) {
|
|
10665
|
+
if (selectedTwoStrandedNode.antisenseChain && selectedTwoStrandedNode.antisenseNode && !(selectedTwoStrandedNode.antisenseNode instanceof ketcherCore.EmptySequenceNode || selectedTwoStrandedNode.antisenseNode instanceof ketcherCore.BackBoneSequenceNode)) {
|
|
10666
|
+
if (!antisenseChainToSelectedNodeMap.has(selectedTwoStrandedNode.antisenseChain)) {
|
|
10667
|
+
antisenseChainToSelectedNodeMap.set(selectedTwoStrandedNode.antisenseChain, new Set());
|
|
10668
|
+
}
|
|
10669
|
+
var antisenseChainSelectedNodes = antisenseChainToSelectedNodeMap.get(selectedTwoStrandedNode.antisenseChain);
|
|
10670
|
+
if (!antisenseChainSelectedNodes) {
|
|
10671
|
+
return;
|
|
10672
|
+
}
|
|
10673
|
+
antisenseChainSelectedNodes.add(selectedTwoStrandedNode);
|
|
10674
|
+
}
|
|
10675
|
+
});
|
|
10676
|
+
var isGoingToDeleteAllHydrogenBondsForAnyChain = false;
|
|
10677
|
+
antisenseChainToSelectedNodeMap.forEach(function (selectedTwoStrandedNodes, chain) {
|
|
10678
|
+
var firstSelectedTwoStrandedNode = _toConsumableArray__default["default"](selectedTwoStrandedNodes.values())[0];
|
|
10679
|
+
var senseChain = firstSelectedTwoStrandedNode.chain;
|
|
10680
|
+
var selectedAntisenseNodes = new Set(_toConsumableArray__default["default"](selectedTwoStrandedNodes.values()).map(function (node) {
|
|
10681
|
+
return node.antisenseNode;
|
|
10682
|
+
}));
|
|
10683
|
+
var hasMoreHydrogenConnectionsThanSelected = chain.nodes.some(function (node) {
|
|
10684
|
+
return !selectedAntisenseNodes.has(node) && node.monomers.some(function (monomer) {
|
|
10685
|
+
return monomer.hydrogenBonds.some(function (hydrogenBond) {
|
|
10686
|
+
var anotherMonomer = hydrogenBond.getAnotherMonomer(monomer);
|
|
10687
|
+
var anotherChain = anotherMonomer && monomerToChain.get(anotherMonomer);
|
|
10688
|
+
return anotherChain === senseChain;
|
|
10689
|
+
});
|
|
10690
|
+
});
|
|
10691
|
+
});
|
|
10692
|
+
if (!hasMoreHydrogenConnectionsThanSelected) {
|
|
10693
|
+
isGoingToDeleteAllHydrogenBondsForAnyChain = true;
|
|
10694
|
+
}
|
|
10695
|
+
});
|
|
10696
|
+
if (isGoingToDeleteAllHydrogenBondsForAnyChain) {
|
|
10697
|
+
editor.events.openConfirmationDialog.dispatch({
|
|
10698
|
+
title: 'Deletion of all Hydrogen Bonds',
|
|
10699
|
+
confirmationText: 'Deleting all hydrogen bonds will cause the separation of two chains. Do you wish to proceed?',
|
|
10700
|
+
onConfirm: function onConfirm() {
|
|
10701
|
+
editor.events.deleteHydrogenBond.dispatch(props.sequenceItemRenderer);
|
|
10702
|
+
}
|
|
10703
|
+
});
|
|
10704
|
+
} else {
|
|
10705
|
+
editor.events.deleteHydrogenBond.dispatch(props.sequenceItemRenderer);
|
|
10706
|
+
}
|
|
10707
|
+
break;
|
|
10708
|
+
}
|
|
10655
10709
|
}
|
|
10656
10710
|
};
|
|
10657
10711
|
var ketcherEditorRootElement = document.querySelector(ketcherReact.KETCHER_MACROMOLECULES_ROOT_NODE_SELECTOR);
|
|
@@ -11954,6 +12008,7 @@ var EditorEvents = function EditorEvents() {
|
|
|
11954
12008
|
var activeTool = useAppSelector(selectEditorActiveTool);
|
|
11955
12009
|
var dispatch = useAppDispatch();
|
|
11956
12010
|
var presets = useAppSelector(selectAllPresets);
|
|
12011
|
+
var hasAtLeastOneAntisense = useAppSelector(hasAntisenseChains);
|
|
11957
12012
|
var handleMonomersLibraryUpdate = React.useCallback(function () {
|
|
11958
12013
|
dispatch(loadMonomerLibrary(editor === null || editor === void 0 ? void 0 : editor.monomersLibrary));
|
|
11959
12014
|
}, [editor]);
|
|
@@ -12151,6 +12206,11 @@ var EditorEvents = function EditorEvents() {
|
|
|
12151
12206
|
editor === null || editor === void 0 || editor.events.mouseLeavePolymerBond.remove(handleClosePreview);
|
|
12152
12207
|
};
|
|
12153
12208
|
}, [editor, activeTool, handleOpenPreview, handleClosePreview]);
|
|
12209
|
+
React.useEffect(function () {
|
|
12210
|
+
if (!hasAtLeastOneAntisense) {
|
|
12211
|
+
editor === null || editor === void 0 || editor.events.resetSequenceEditMode.dispatch();
|
|
12212
|
+
}
|
|
12213
|
+
}, [hasAtLeastOneAntisense]);
|
|
12154
12214
|
return jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
12155
12215
|
};
|
|
12156
12216
|
|