ketcher-react 3.12.0-dev.1 → 3.12.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.css +1 -1
- package/dist/cjs/index.css.map +1 -1
- package/dist/cjs/index.js +1226 -524
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/{index.modern-b232add2.js → index.modern-0386b391.js} +4 -3
- package/dist/cjs/index.modern-0386b391.js.map +1 -0
- package/dist/cjs/script/editor/Editor.d.ts +19 -2
- package/dist/cjs/script/editor/tool/sgroup.d.ts +17 -0
- package/dist/cjs/script/editor/utils/customOnChangeHandler.test.d.ts +16 -0
- package/dist/cjs/script/ui/data/schema/sdata-schema.d.ts +1 -1
- package/dist/cjs/script/ui/state/functionalGroups/index.d.ts +1 -1
- package/dist/cjs/script/ui/state/notifications/index.d.ts +17 -0
- package/dist/cjs/script/ui/state/saltsAndSolvents/index.d.ts +1 -1
- package/dist/cjs/script/ui/views/components/ContextMenu/hooks/useMarkAs.d.ts +9 -0
- package/dist/cjs/script/ui/views/components/MonomerCreationWizard/MonomerCreationWizard.constants.d.ts +2 -0
- package/dist/cjs/script/ui/views/components/MonomerCreationWizard/MonomerCreationWizard.types.d.ts +6 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.js +1228 -526
- package/dist/index.js.map +1 -1
- package/dist/{index.modern-06d576e1.js → index.modern-3f8330b9.js} +5 -4
- package/dist/index.modern-3f8330b9.js.map +1 -0
- package/dist/script/editor/Editor.d.ts +19 -2
- package/dist/script/editor/tool/sgroup.d.ts +17 -0
- package/dist/script/editor/utils/customOnChangeHandler.test.d.ts +16 -0
- package/dist/script/ui/data/schema/sdata-schema.d.ts +1 -1
- package/dist/script/ui/state/functionalGroups/index.d.ts +1 -1
- package/dist/script/ui/state/notifications/index.d.ts +17 -0
- package/dist/script/ui/state/saltsAndSolvents/index.d.ts +1 -1
- package/dist/script/ui/views/components/ContextMenu/hooks/useMarkAs.d.ts +9 -0
- package/dist/script/ui/views/components/MonomerCreationWizard/MonomerCreationWizard.constants.d.ts +2 -0
- package/dist/script/ui/views/components/MonomerCreationWizard/MonomerCreationWizard.types.d.ts +6 -1
- package/package.json +1 -1
- package/dist/cjs/index.modern-b232add2.js.map +0 -1
- package/dist/index.modern-06d576e1.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -27,7 +27,7 @@ import 'url-search-params-polyfill';
|
|
|
27
27
|
import 'whatwg-fetch';
|
|
28
28
|
import _classCallCheck$2 from '@babel/runtime/helpers/classCallCheck';
|
|
29
29
|
import _createClass$2 from '@babel/runtime/helpers/createClass';
|
|
30
|
-
import { KetSerializer, MolSerializer, KetcherLogger, ketcherProvider, defaultBondThickness, isClipboardAPIAvailable, notifyCopyCut, notifyRequestCompleted, isControlKey, StereLabelStyleType, StereoColoringType, ShowHydrogenLabels, ShowHydrogenLabelNames, SettingsManager, SdfSerializer, KETCHER_SAVED_OPTIONS_KEY, SUPERATOM_CLASS, Bond as Bond$2, Elements, AtomList, getAtomType, StereoLabel, isAttachmentBond, Atom as Atom$2, findStereoAtoms, RxnArrowMode, MULTITAIL_ARROW_TOOL_NAME, CREATE_MONOMER_TOOL_NAME, SimpleObjectMode, IMAGE_KEY, SGroup as SGroup$1, getSelectionFromStruct, identifyStructFormat, SupportedFormat, FormatterFactory, ChemicalMimeType, RenderStruct, Struct, ZoomTool, KETCHER_MACROMOLECULES_ROOT_NODE_SELECTOR, shortcutStr, MonomerMicromolecule, FunctionalGroupsProvider, SaltsAndSolventsProvider, KetcherAsyncEvents, ElementColor, generateMenuShortcuts, Vec2, Scale, fromMultipleMove, FunctionalGroup, MULTITAIL_ARROW_KEY, CoordinateTransformation, mergeMapOfItemsToSet, fromSgroupDeletion, fromFragmentDeletion, vectorUtils, fromBondAddition, Action, fromAtomAddition, fromAtomsAttrs, checkOverlapping, fromSeveralSgroupAddition, expandSGroupWithMultipleAttachmentPoint, SgContexts, Pile, fromSgroupAction, fromItemsFuse, ReBond, setExpandSGroup, fromBondsAttrs, OperationType, ReStruct, imageReferencePositionToCursor, multitailArrowReferenceLinesToCursor, multitailReferencePositionToCursor, MultitailArrowRefName, fromMultitailArrowHeadTailMove, fromMultitailArrowHeadTailsResize, fromMultitailArrowMove, fromArrowResizing, fromPaste, fromImageResize, fromSimpleObjectResizing, getItemsToFuse, getHoverToFuse, fromTextDeletion, fromTextUpdating, fromTemplateOnCanvas, fromTemplateOnBondAction, fromTemplateOnAtom, BondAttr, AtomAttr, formatProperties, runAsyncAction, getStructStringFromClipboardData, getStructure, initHotKeys, keyNorm, Fragment as Fragment$1, fromRGroupAttachmentPointUpdate, fromOneBondDeletion, bondChangingAction, fromChain, removeInfoLabelFromAtoms, fromStereoFlagUpdate, fromOneAtomDeletion, fromArrowDeletion, fromPlusDeletion, fromSimpleObjectDeletion, fromRGroupAttachmentPointDeletion, fromImageDeletion, fromMultitailArrowDeletion, notifyItemsToMergeInitializationComplete, RGroup as RGroup$2, fromRGroupFragment, fromUpdateIfThen, fromRGroupAttrs, fromArrowAddition, fromMultitailArrowCreation, fromPlusAddition, getRelSGroupsBySelection, RotateMonomerOperation, fromRotate, fromFlip, fromSimpleObjectAddition, fromTextCreation, fromImageMove, fromImageCreation, fromHighlightCreate, fromHighlightClear, getOptionsWithConvertedUnits, provideEditorSettings, fromNewCanvas, Render, Coordinates, isSingleRGroupAttachmentPoint, genericsList, getAttachmentPointLabelWithBinaryShift, AttachmentPointName, getAttachmentPointLabel, getAttachmentPointNumberFromLabel, getNextFreeAttachmentPoint, AtomLabel, AssignLeavingGroupAtomOperation, AssignAttachmentAtomOperation, setMonomerTemplatePrefix, getHELMClassByKetMonomerClass, fillNaturalAnalogueForPhosphateAndSugar, KetTemplateType, normalizeMonomerAtomsPositions, monomerFactory, MacromoleculesConverter, fromSgroupAddition, setMonomerGroupTemplatePrefix, getKetRef, KetMonomerClass, ReassignLeavingAtomOperation, ReassignAttachmentPointOperation, RemoveAttachmentPointOperation, fromDescriptorsAlign, atomGetAttr, fromBondFlipping, setExpandMonomerSGroup, fromMultitailArrowTailAdd, MultitailArrow, fromMultitailArrowTailRemove, AmbiguousMonomer, MonomerCreationAttachmentPointClickEvent, CoreEditor, compareByTitleWithNaturalFirst, getAtomCustomQuery, getFormatMimeTypeByFileName, getPropertiesByFormat, StereoFlag, getPropertiesByImgFormat, legacyCopy as legacyCopy$1, b64toBlob, Generics, TextCommand, Ketcher, DefaultStructServiceOptions } from 'ketcher-core';
|
|
30
|
+
import { KetSerializer, MolSerializer, KetcherLogger, ketcherProvider, defaultBondThickness, isClipboardAPIAvailable, notifyCopyCut, notifyRequestCompleted, isControlKey, StereLabelStyleType, StereoColoringType, ShowHydrogenLabels, ShowHydrogenLabelNames, SettingsManager, SdfSerializer, KETCHER_SAVED_OPTIONS_KEY, SUPERATOM_CLASS, Bond as Bond$2, Elements, AtomList, getAtomType, StereoLabel, isAttachmentBond, Atom as Atom$2, findStereoAtoms, RxnArrowMode, MULTITAIL_ARROW_TOOL_NAME, CREATE_MONOMER_TOOL_NAME, SimpleObjectMode, IMAGE_KEY, SGroup as SGroup$1, getSelectionFromStruct, identifyStructFormat, SupportedFormat, FormatterFactory, ChemicalMimeType, RenderStruct, Struct, ZoomTool, KETCHER_MACROMOLECULES_ROOT_NODE_SELECTOR, shortcutStr, MonomerMicromolecule, FunctionalGroupsProvider, SaltsAndSolventsProvider, KetcherAsyncEvents, ElementColor, generateMenuShortcuts, Vec2, Scale, fromMultipleMove, FunctionalGroup, MULTITAIL_ARROW_KEY, CoordinateTransformation, mergeMapOfItemsToSet, fromSgroupDeletion, fromFragmentDeletion, vectorUtils, fromBondAddition, Action, fromAtomAddition, fromAtomsAttrs, checkOverlapping, fromSeveralSgroupAddition, expandSGroupWithMultipleAttachmentPoint, SgContexts, Pile, fromSgroupAction, fromItemsFuse, ReBond, setExpandSGroup, fromBondsAttrs, OperationType, ReStruct, imageReferencePositionToCursor, multitailArrowReferenceLinesToCursor, multitailReferencePositionToCursor, MultitailArrowRefName, fromMultitailArrowHeadTailMove, fromMultitailArrowHeadTailsResize, fromMultitailArrowMove, fromArrowResizing, fromPaste, fromImageResize, fromSimpleObjectResizing, getItemsToFuse, getHoverToFuse, fromTextDeletion, fromTextUpdating, fromTemplateOnCanvas, fromTemplateOnBondAction, fromTemplateOnAtom, BondAttr, AtomAttr, formatProperties, runAsyncAction, getStructStringFromClipboardData, getStructure, initHotKeys, keyNorm, Fragment as Fragment$1, fromRGroupAttachmentPointUpdate, fromOneBondDeletion, bondChangingAction, fromChain, removeInfoLabelFromAtoms, fromStereoFlagUpdate, fromOneAtomDeletion, fromArrowDeletion, fromPlusDeletion, fromSimpleObjectDeletion, fromRGroupAttachmentPointDeletion, fromImageDeletion, fromMultitailArrowDeletion, notifyItemsToMergeInitializationComplete, RGroup as RGroup$2, fromRGroupFragment, fromUpdateIfThen, fromRGroupAttrs, fromArrowAddition, fromMultitailArrowCreation, fromPlusAddition, getRelSGroupsBySelection, RotateMonomerOperation, fromRotate, fromFlip, fromSimpleObjectAddition, fromTextCreation, fromImageMove, fromImageCreation, fromHighlightCreate, fromHighlightClear, getOptionsWithConvertedUnits, provideEditorSettings, fromNewCanvas, Render, Coordinates, isSingleRGroupAttachmentPoint, genericsList, getAttachmentPointLabelWithBinaryShift, AttachmentPointName, getAttachmentPointLabel, getAttachmentPointNumberFromLabel, getNextFreeAttachmentPoint, AtomLabel, AssignLeavingGroupAtomOperation, AssignAttachmentAtomOperation, setMonomerTemplatePrefix, getHELMClassByKetMonomerClass, fillNaturalAnalogueForPhosphateAndSugar, KetTemplateType, normalizeMonomerAtomsPositions, monomerFactory, MacromoleculesConverter, fromSgroupAddition, setMonomerGroupTemplatePrefix, getKetRef, KetMonomerClass, ReassignLeavingAtomOperation, ReassignAttachmentPointOperation, RemoveAttachmentPointOperation, MonomerCreationComponentStructureUpdateEvent, fromDescriptorsAlign, atomGetAttr, fromBondFlipping, setExpandMonomerSGroup, fromMultitailArrowTailAdd, MultitailArrow, fromMultitailArrowTailRemove, AmbiguousMonomer, MonomerCreationAttachmentPointClickEvent, CoreEditor, compareByTitleWithNaturalFirst, getAtomCustomQuery, getFormatMimeTypeByFileName, getPropertiesByFormat, StereoFlag, getPropertiesByImgFormat, legacyCopy as legacyCopy$1, b64toBlob, Generics, TextCommand, Ketcher, DefaultStructServiceOptions } from 'ketcher-core';
|
|
31
31
|
export { EditorClassName, KETCHER_MACROMOLECULES_ROOT_NODE_SELECTOR } from 'ketcher-core';
|
|
32
32
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
33
33
|
import _possibleConstructorReturn$2 from '@babel/runtime/helpers/possibleConstructorReturn';
|
|
@@ -52,7 +52,7 @@ import 'redux-logger';
|
|
|
52
52
|
import { thunk } from 'redux-thunk';
|
|
53
53
|
import useResizeObserver from 'use-resize-observer/polyfilled';
|
|
54
54
|
import { useInView } from 'react-intersection-observer';
|
|
55
|
-
import { IconButton as IconButton$1, Collapse, ClickAwayListener, Button as Button$1, Popover, ToggleButton, createFilterOptions, Autocomplete, TextField, Tooltip, MenuList, createTheme, ThemeProvider } from '@mui/material';
|
|
55
|
+
import { IconButton as IconButton$1, Collapse, ClickAwayListener, Button as Button$1, Popover, ToggleButton, createFilterOptions, Autocomplete, TextField, Tooltip, MenuList, createTheme, ThemeProvider, Snackbar } from '@mui/material';
|
|
56
56
|
import { createSelector } from 'reselect';
|
|
57
57
|
import { isIE } from 'react-device-detect';
|
|
58
58
|
import _classPrivateFieldGet from '@babel/runtime/helpers/classPrivateFieldGet';
|
|
@@ -675,8 +675,8 @@ function exec(action) {
|
|
|
675
675
|
return enabled;
|
|
676
676
|
}
|
|
677
677
|
|
|
678
|
-
function ownKeys$
|
|
679
|
-
function _objectSpread$
|
|
678
|
+
function ownKeys$1G(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; }
|
|
679
|
+
function _objectSpread$1G(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1G(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1G(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
680
680
|
var MeasurementUnits;
|
|
681
681
|
(function (MeasurementUnits) {
|
|
682
682
|
MeasurementUnits["Px"] = "px";
|
|
@@ -1018,7 +1018,7 @@ var optionsSchema = {
|
|
|
1018
1018
|
title: 'Settings',
|
|
1019
1019
|
type: 'object',
|
|
1020
1020
|
required: [],
|
|
1021
|
-
properties: _objectSpread$
|
|
1021
|
+
properties: _objectSpread$1G(_objectSpread$1G(_objectSpread$1G(_objectSpread$1G(_objectSpread$1G({}, editor), render), server), debug), miew)
|
|
1022
1022
|
};
|
|
1023
1023
|
function getDefaultOptions() {
|
|
1024
1024
|
if (!optionsSchema.properties) return {};
|
|
@@ -1201,8 +1201,8 @@ function prefetchRender(tmpls, baseUrl, cacheEl) {
|
|
|
1201
1201
|
});
|
|
1202
1202
|
}
|
|
1203
1203
|
|
|
1204
|
-
function ownKeys$
|
|
1205
|
-
function _objectSpread$
|
|
1204
|
+
function ownKeys$1F(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; }
|
|
1205
|
+
function _objectSpread$1F(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1F(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1F(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1206
1206
|
var initOptionsState = {
|
|
1207
1207
|
app: {
|
|
1208
1208
|
server: false,
|
|
@@ -1232,7 +1232,7 @@ var initOptionsState = {
|
|
|
1232
1232
|
getServerSettings: function getServerSettings() {
|
|
1233
1233
|
var seriliazedServerOptions = getSerilizedServerOptions(this.settings);
|
|
1234
1234
|
var defaultServerOptions = pick(SERVER_OPTIONS, this.settings);
|
|
1235
|
-
return _objectSpread$
|
|
1235
|
+
return _objectSpread$1F(_objectSpread$1F({}, defaultServerOptions), seriliazedServerOptions);
|
|
1236
1236
|
}
|
|
1237
1237
|
};
|
|
1238
1238
|
function getSerilizedServerOptions(options) {
|
|
@@ -1265,7 +1265,7 @@ function getSerilizedServerOptions(options) {
|
|
|
1265
1265
|
'render-stereo-style': renderStereoStyle
|
|
1266
1266
|
};
|
|
1267
1267
|
if (options.imageResolution === '600') {
|
|
1268
|
-
newOptions = _objectSpread$
|
|
1268
|
+
newOptions = _objectSpread$1F(_objectSpread$1F({}, newOptions), {}, {
|
|
1269
1269
|
'render-output-sheet-width': 11,
|
|
1270
1270
|
'render-output-sheet-height': 8.5
|
|
1271
1271
|
});
|
|
@@ -1343,29 +1343,29 @@ function optionsReducer() {
|
|
|
1343
1343
|
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|
1344
1344
|
var type = action.type,
|
|
1345
1345
|
data = action.data;
|
|
1346
|
-
if (type === 'APP_OPTIONS') return _objectSpread$
|
|
1347
|
-
app: _objectSpread$
|
|
1346
|
+
if (type === 'APP_OPTIONS') return _objectSpread$1F(_objectSpread$1F({}, state), {}, {
|
|
1347
|
+
app: _objectSpread$1F(_objectSpread$1F({}, state.app), data)
|
|
1348
1348
|
});
|
|
1349
1349
|
if (type === 'SAVE_SETTINGS') {
|
|
1350
|
-
return _objectSpread$
|
|
1351
|
-
settings: _objectSpread$
|
|
1350
|
+
return _objectSpread$1F(_objectSpread$1F({}, state), {}, {
|
|
1351
|
+
settings: _objectSpread$1F(_objectSpread$1F({}, state.settings), data)
|
|
1352
1352
|
});
|
|
1353
1353
|
}
|
|
1354
|
-
if (type === 'SAVE_CHECK_OPTS') return _objectSpread$
|
|
1354
|
+
if (type === 'SAVE_CHECK_OPTS') return _objectSpread$1F(_objectSpread$1F({}, state), {}, {
|
|
1355
1355
|
check: data
|
|
1356
1356
|
});
|
|
1357
|
-
if (type === 'CHANGE_ANALYSE') return _objectSpread$
|
|
1358
|
-
analyse: _objectSpread$
|
|
1357
|
+
if (type === 'CHANGE_ANALYSE') return _objectSpread$1F(_objectSpread$1F({}, state), {}, {
|
|
1358
|
+
analyse: _objectSpread$1F(_objectSpread$1F(_objectSpread$1F({}, state.analyse), data), {}, {
|
|
1359
1359
|
loading: false
|
|
1360
1360
|
})
|
|
1361
1361
|
});
|
|
1362
|
-
if (type === 'ANALYSE_LOADING') return _objectSpread$
|
|
1363
|
-
analyse: _objectSpread$
|
|
1362
|
+
if (type === 'ANALYSE_LOADING') return _objectSpread$1F(_objectSpread$1F({}, state), {}, {
|
|
1363
|
+
analyse: _objectSpread$1F(_objectSpread$1F({}, state.analyse), {}, {
|
|
1364
1364
|
loading: true
|
|
1365
1365
|
})
|
|
1366
1366
|
});
|
|
1367
|
-
if (recognizeActions.includes(type)) return _objectSpread$
|
|
1368
|
-
recognize: _objectSpread$
|
|
1367
|
+
if (recognizeActions.includes(type)) return _objectSpread$1F(_objectSpread$1F({}, state), {}, {
|
|
1368
|
+
recognize: _objectSpread$1F(_objectSpread$1F({}, state.recognize), data)
|
|
1369
1369
|
});
|
|
1370
1370
|
return state;
|
|
1371
1371
|
}
|
|
@@ -1658,8 +1658,8 @@ function firstKeyOf(obj) {
|
|
|
1658
1658
|
}
|
|
1659
1659
|
function getSdataDefault() {
|
|
1660
1660
|
var schema = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : sdataSchema;
|
|
1661
|
-
var context = arguments.length > 1 ? arguments[1] : undefined;
|
|
1662
|
-
var fieldName = arguments.length > 2 ? arguments[2] : undefined;
|
|
1661
|
+
var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
|
|
1662
|
+
var fieldName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
|
|
1663
1663
|
if (schema.key === 'Custom') {
|
|
1664
1664
|
var _schema$properties$co;
|
|
1665
1665
|
return (_schema$properties$co = schema.properties[context]) === null || _schema$properties$co === void 0 ? void 0 : _schema$properties$co["default"];
|
|
@@ -1669,8 +1669,8 @@ function getSdataDefault() {
|
|
|
1669
1669
|
return schema[context][fieldName] ? schema[context][fieldName].properties.fieldValue["default"] : '';
|
|
1670
1670
|
}
|
|
1671
1671
|
|
|
1672
|
-
function ownKeys$
|
|
1673
|
-
function _objectSpread$
|
|
1672
|
+
function ownKeys$1E(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; }
|
|
1673
|
+
function _objectSpread$1E(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1E(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1E(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1674
1674
|
var initSdata = function initSdata(schema) {
|
|
1675
1675
|
var isCustomShema = schema.key === 'Custom';
|
|
1676
1676
|
var context = isCustomShema ? getSdataDefault(sdataCustomSchema, 'context') : getSdataDefault(sdataSchema);
|
|
@@ -1708,7 +1708,7 @@ var onContextChange = function onContextChange(state, payload) {
|
|
|
1708
1708
|
var fValue = fieldValue;
|
|
1709
1709
|
if (fValue === state.result.fieldValue) fValue = getSdataDefault(sdataCustomSchema, 'fieldValue');
|
|
1710
1710
|
return {
|
|
1711
|
-
result: _objectSpread$
|
|
1711
|
+
result: _objectSpread$1E(_objectSpread$1E({}, payload), {}, {
|
|
1712
1712
|
context: context,
|
|
1713
1713
|
fieldName: fieldName,
|
|
1714
1714
|
fieldValue: fValue
|
|
@@ -1722,7 +1722,7 @@ var onFieldNameChange = function onFieldNameChange(state, payload) {
|
|
|
1722
1722
|
if (sdataSchema[context][fieldName]) fieldValue = getSdataDefault(sdataSchema, context, fieldName);
|
|
1723
1723
|
if (fieldValue === state.result.fieldValue && sdataSchema[context][state.result.fieldName]) fieldValue = '';
|
|
1724
1724
|
return {
|
|
1725
|
-
result: _objectSpread$
|
|
1725
|
+
result: _objectSpread$1E(_objectSpread$1E({}, payload), {}, {
|
|
1726
1726
|
fieldName: fieldName,
|
|
1727
1727
|
fieldValue: fieldValue
|
|
1728
1728
|
})
|
|
@@ -1730,29 +1730,29 @@ var onFieldNameChange = function onFieldNameChange(state, payload) {
|
|
|
1730
1730
|
};
|
|
1731
1731
|
function sdataReducer(state, action) {
|
|
1732
1732
|
if (action.data.result.init) {
|
|
1733
|
-
return correctErrors(_objectSpread$
|
|
1734
|
-
result: _objectSpread$
|
|
1733
|
+
return correctErrors(_objectSpread$1E(_objectSpread$1E({}, state), {}, {
|
|
1734
|
+
result: _objectSpread$1E(_objectSpread$1E({}, state.result), action.data.result)
|
|
1735
1735
|
}), action.data);
|
|
1736
1736
|
}
|
|
1737
1737
|
var actionContext = action.data.result.context;
|
|
1738
1738
|
var actionFieldName = action.data.result.fieldName;
|
|
1739
1739
|
var newstate = null;
|
|
1740
1740
|
if (actionContext !== state.result.context) newstate = onContextChange(state, action.data.result);else if (actionFieldName !== state.result.fieldName) newstate = onFieldNameChange(state, action.data.result);
|
|
1741
|
-
newstate = newstate || _objectSpread$
|
|
1742
|
-
result: _objectSpread$
|
|
1741
|
+
newstate = newstate || _objectSpread$1E(_objectSpread$1E({}, state), {}, {
|
|
1742
|
+
result: _objectSpread$1E(_objectSpread$1E({}, state.result), action.data.result)
|
|
1743
1743
|
});
|
|
1744
1744
|
return correctErrors(newstate, action.data);
|
|
1745
1745
|
}
|
|
1746
1746
|
function nucleotideComponentReducer(state, action) {
|
|
1747
|
-
return _objectSpread$
|
|
1748
|
-
result: _objectSpread$
|
|
1747
|
+
return _objectSpread$1E(_objectSpread$1E({}, state), {}, {
|
|
1748
|
+
result: _objectSpread$1E(_objectSpread$1E(_objectSpread$1E({}, state.result), action.data.result), {}, {
|
|
1749
1749
|
type: 'nucleotideComponent'
|
|
1750
1750
|
})
|
|
1751
1751
|
});
|
|
1752
1752
|
}
|
|
1753
1753
|
|
|
1754
|
-
function ownKeys$
|
|
1755
|
-
function _objectSpread$
|
|
1754
|
+
function ownKeys$1D(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; }
|
|
1755
|
+
function _objectSpread$1D(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1D(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1D(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1756
1756
|
var formsState = {
|
|
1757
1757
|
atomProps: {
|
|
1758
1758
|
errors: {},
|
|
@@ -1882,14 +1882,14 @@ function formReducer(state, action) {
|
|
|
1882
1882
|
var newType = (_action$data = action.data) === null || _action$data === void 0 || (_action$data = _action$data.result) === null || _action$data === void 0 ? void 0 : _action$data.type;
|
|
1883
1883
|
if (newType === 'DAT') return sdataReducer(state, action);
|
|
1884
1884
|
if (newType === 'SUP' && (state === null || state === void 0 || (_state$result = state.result) === null || _state$result === void 0 ? void 0 : _state$result.type) !== 'nucleotideComponent' && Object.values(SUPERATOM_CLASS).includes((_action$data2 = action.data) === null || _action$data2 === void 0 || (_action$data2 = _action$data2.result) === null || _action$data2 === void 0 ? void 0 : _action$data2["class"])) return nucleotideComponentReducer(state, action);
|
|
1885
|
-
return _objectSpread$
|
|
1885
|
+
return _objectSpread$1D(_objectSpread$1D({}, state), action.data);
|
|
1886
1886
|
}
|
|
1887
1887
|
|
|
1888
1888
|
var INDIGO_VERIFICATION = 'INDIGO_VERIFICATION';
|
|
1889
1889
|
var ANALYZING_FILE = 'ANALYZING_FILE';
|
|
1890
1890
|
|
|
1891
|
-
function ownKeys$
|
|
1892
|
-
function _objectSpread$
|
|
1891
|
+
function ownKeys$1C(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; }
|
|
1892
|
+
function _objectSpread$1C(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1C(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1C(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1893
1893
|
function indigoVerification(data) {
|
|
1894
1894
|
return {
|
|
1895
1895
|
type: INDIGO_VERIFICATION,
|
|
@@ -1914,13 +1914,13 @@ function requestReducer () {
|
|
|
1914
1914
|
switch (type) {
|
|
1915
1915
|
case INDIGO_VERIFICATION:
|
|
1916
1916
|
{
|
|
1917
|
-
return _objectSpread$
|
|
1917
|
+
return _objectSpread$1C(_objectSpread$1C({}, state), {}, {
|
|
1918
1918
|
indigoVerification: data
|
|
1919
1919
|
});
|
|
1920
1920
|
}
|
|
1921
1921
|
case ANALYZING_FILE:
|
|
1922
1922
|
{
|
|
1923
|
-
return _objectSpread$
|
|
1923
|
+
return _objectSpread$1C(_objectSpread$1C({}, state), {}, {
|
|
1924
1924
|
isAnalyzingFile: data
|
|
1925
1925
|
});
|
|
1926
1926
|
}
|
|
@@ -1939,8 +1939,8 @@ var supportedSGroupTypes = {
|
|
|
1939
1939
|
queryComponent: 'queryComponent'
|
|
1940
1940
|
};
|
|
1941
1941
|
|
|
1942
|
-
function ownKeys$
|
|
1943
|
-
function _objectSpread$
|
|
1942
|
+
function ownKeys$1B(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; }
|
|
1943
|
+
function _objectSpread$1B(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1B(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1B(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1944
1944
|
var atom = {
|
|
1945
1945
|
title: 'Atom',
|
|
1946
1946
|
type: 'object',
|
|
@@ -2172,7 +2172,7 @@ var sgroup = {
|
|
|
2172
2172
|
title: 'SGroup',
|
|
2173
2173
|
type: 'object',
|
|
2174
2174
|
required: ['type'],
|
|
2175
|
-
oneOf: [_objectSpread$
|
|
2175
|
+
oneOf: [_objectSpread$1B({}, sdataCustomSchema), {
|
|
2176
2176
|
key: 'MUL',
|
|
2177
2177
|
title: 'Multiple group',
|
|
2178
2178
|
type: 'object',
|
|
@@ -2321,12 +2321,12 @@ function matchCharge(charge) {
|
|
|
2321
2321
|
|
|
2322
2322
|
var _excluded$D = ["aromaticity", "ringMembership", "ringSize", "connectivity", "chirality", "customQuery"],
|
|
2323
2323
|
_excluded2$7 = ["type", "radiobuttons"];
|
|
2324
|
-
function ownKeys$
|
|
2325
|
-
function _objectSpread$
|
|
2324
|
+
function ownKeys$1A(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; }
|
|
2325
|
+
function _objectSpread$1A(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1A(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1A(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
2326
2326
|
var DefaultStereoGroupNumber = 1;
|
|
2327
2327
|
function fromElement(selem) {
|
|
2328
2328
|
if (selem.label === 'R#') {
|
|
2329
|
-
return _objectSpread$
|
|
2329
|
+
return _objectSpread$1A({
|
|
2330
2330
|
type: 'rlabel',
|
|
2331
2331
|
values: fromRlabel(selem.rglabel)
|
|
2332
2332
|
}, selem);
|
|
@@ -2435,7 +2435,7 @@ function toAtom(atom) {
|
|
|
2435
2435
|
customQuery = _atom$customQuery === void 0 ? '' : _atom$customQuery,
|
|
2436
2436
|
restAtom = _objectWithoutProperties(atom, _excluded$D);
|
|
2437
2437
|
if (customQuery && customQuery !== '') {
|
|
2438
|
-
return _objectSpread$
|
|
2438
|
+
return _objectSpread$1A(_objectSpread$1A({}, restAtom), {}, {
|
|
2439
2439
|
label: 'A',
|
|
2440
2440
|
atomList: null,
|
|
2441
2441
|
pseudo: null,
|
|
@@ -2464,7 +2464,7 @@ function toAtom(atom) {
|
|
|
2464
2464
|
}
|
|
2465
2465
|
var pch = matchCharge(restAtom.charge);
|
|
2466
2466
|
var charge = pch ? parseInt(pch[1] + pch[3] + pch[2]) : restAtom.charge;
|
|
2467
|
-
var conv = _objectSpread$
|
|
2467
|
+
var conv = _objectSpread$1A(_objectSpread$1A({}, restAtom), {}, {
|
|
2468
2468
|
isotope: restAtom.isotope ? Number(restAtom.isotope) : null,
|
|
2469
2469
|
charge: restAtom.charge && charge !== 0 ? Number(charge) : null,
|
|
2470
2470
|
alias: restAtom.alias || null,
|
|
@@ -2582,7 +2582,7 @@ function fromBond(sbond) {
|
|
|
2582
2582
|
}
|
|
2583
2583
|
function toBond(bond) {
|
|
2584
2584
|
var isCustomQuery = bond.customQuery !== '';
|
|
2585
|
-
return _objectSpread$
|
|
2585
|
+
return _objectSpread$1A({
|
|
2586
2586
|
topology: bond.topology,
|
|
2587
2587
|
reactingCenterStatus: bond.center,
|
|
2588
2588
|
customQuery: !isCustomQuery ? null : bond.customQuery
|
|
@@ -2647,7 +2647,7 @@ var bondCaptionMap = {
|
|
|
2647
2647
|
}
|
|
2648
2648
|
};
|
|
2649
2649
|
function toBondType(caption) {
|
|
2650
|
-
return _objectSpread$
|
|
2650
|
+
return _objectSpread$1A({}, bondCaptionMap[caption]);
|
|
2651
2651
|
}
|
|
2652
2652
|
function fromBondType(type, stereo) {
|
|
2653
2653
|
for (var caption in bondCaptionMap) {
|
|
@@ -2671,7 +2671,7 @@ function fromSgroup(ssgroup) {
|
|
|
2671
2671
|
fieldName: fieldName || getSdataDefault(sdataCustomSchema, 'fieldName'),
|
|
2672
2672
|
fieldValue: fieldValue || getSdataDefault(sdataCustomSchema, 'fieldValue')
|
|
2673
2673
|
} : {};
|
|
2674
|
-
return _objectSpread$
|
|
2674
|
+
return _objectSpread$1A(_objectSpread$1A({
|
|
2675
2675
|
type: type
|
|
2676
2676
|
}, ssgroup.attrs), sDataInitValue);
|
|
2677
2677
|
}
|
|
@@ -2679,7 +2679,7 @@ function toSgroup(sgroup) {
|
|
|
2679
2679
|
var type = sgroup.type,
|
|
2680
2680
|
radiobuttons = sgroup.radiobuttons,
|
|
2681
2681
|
props = _objectWithoutProperties(sgroup, _excluded2$7);
|
|
2682
|
-
var attrs = _objectSpread$
|
|
2682
|
+
var attrs = _objectSpread$1A({}, props);
|
|
2683
2683
|
var absolute = 'absolute';
|
|
2684
2684
|
var attached = 'attached';
|
|
2685
2685
|
switch (radiobuttons) {
|
|
@@ -5916,8 +5916,8 @@ var errors = {
|
|
|
5916
5916
|
codes: codes_1
|
|
5917
5917
|
};
|
|
5918
5918
|
|
|
5919
|
-
function ownKeys$
|
|
5920
|
-
function _objectSpread$
|
|
5919
|
+
function ownKeys$1z(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; }
|
|
5920
|
+
function _objectSpread$1z(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1z(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1z(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5921
5921
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5922
5922
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
5923
5923
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
@@ -6345,7 +6345,7 @@ var AssertionError = /*#__PURE__*/function (_Error, _inspect$custom) {
|
|
|
6345
6345
|
// the minimum depth. Otherwise those values would be too verbose compared
|
|
6346
6346
|
// to the actual error message which contains a combined view of these two
|
|
6347
6347
|
// input values.
|
|
6348
|
-
return inspect(this, _objectSpread$
|
|
6348
|
+
return inspect(this, _objectSpread$1z(_objectSpread$1z({}, ctx), {}, {
|
|
6349
6349
|
customInspect: false,
|
|
6350
6350
|
depth: 0
|
|
6351
6351
|
}));
|
|
@@ -7869,8 +7869,8 @@ assert.strict.strict = assert.strict;
|
|
|
7869
7869
|
|
|
7870
7870
|
var _excluded$C = ["rescale", "fragment"],
|
|
7871
7871
|
_excluded2$6 = ["isPaste", "method"];
|
|
7872
|
-
function ownKeys$
|
|
7873
|
-
function _objectSpread$
|
|
7872
|
+
function ownKeys$1y(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; }
|
|
7873
|
+
function _objectSpread$1y(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1y(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1y(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
7874
7874
|
function onAction(action) {
|
|
7875
7875
|
if (action !== null && action !== void 0 && action.dialog) {
|
|
7876
7876
|
return {
|
|
@@ -7926,7 +7926,7 @@ function load(struct, options) {
|
|
|
7926
7926
|
errorHandler = editor.errorHandler;
|
|
7927
7927
|
options = options || {};
|
|
7928
7928
|
_options2 = options, isPaste = _options2.isPaste, method = _options2.method, otherOptions = _objectWithoutProperties(_options2, _excluded2$6);
|
|
7929
|
-
otherOptions = _objectSpread$
|
|
7929
|
+
otherOptions = _objectSpread$1y(_objectSpread$1y({}, serverSettings), otherOptions);
|
|
7930
7930
|
dispatch(setAnalyzingFile(true));
|
|
7931
7931
|
_context.prev = 9;
|
|
7932
7932
|
_context.next = 12;
|
|
@@ -8070,8 +8070,8 @@ function openInfoModalWithCustomMessage(message) {
|
|
|
8070
8070
|
};
|
|
8071
8071
|
}
|
|
8072
8072
|
|
|
8073
|
-
function ownKeys$
|
|
8074
|
-
function _objectSpread$
|
|
8073
|
+
function ownKeys$1x(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; }
|
|
8074
|
+
function _objectSpread$1x(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1x(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1x(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
8075
8075
|
function checkServer() {
|
|
8076
8076
|
return function (dispatch, getState) {
|
|
8077
8077
|
var _getState = getState(),
|
|
@@ -8214,12 +8214,12 @@ function serverCall(editor, server, method, options, struct) {
|
|
|
8214
8214
|
resetStereoFlagsPosition(currentStruct);
|
|
8215
8215
|
}
|
|
8216
8216
|
var ketSerializer = new KetSerializer();
|
|
8217
|
-
var serializedStruct = ketSerializer.serialize(currentStruct, undefined, _objectSpread$
|
|
8217
|
+
var serializedStruct = ketSerializer.serialize(currentStruct, undefined, _objectSpread$1x(_objectSpread$1x({}, selection), {}, {
|
|
8218
8218
|
atoms: selectedAtoms,
|
|
8219
8219
|
bonds: selectedBonds
|
|
8220
8220
|
}));
|
|
8221
8221
|
return server.then(function () {
|
|
8222
|
-
return server[method](_objectSpread$
|
|
8222
|
+
return server[method](_objectSpread$1x(_objectSpread$1x(_objectSpread$1x({
|
|
8223
8223
|
struct: serializedStruct
|
|
8224
8224
|
}, method !== 'calculate' && method !== 'check' ? {
|
|
8225
8225
|
output_format: ChemicalMimeType.KET
|
|
@@ -8473,7 +8473,7 @@ var zoom = {
|
|
|
8473
8473
|
|
|
8474
8474
|
var openHelpLink = function openHelpLink() {
|
|
8475
8475
|
var _window$open;
|
|
8476
|
-
return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v3.12.0-
|
|
8476
|
+
return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v3.12.0-rc.2\n", "/documentation/help.md#ketcher-overview"))) === null || _window$open === void 0 ? void 0 : _window$open.focus();
|
|
8477
8477
|
};
|
|
8478
8478
|
var help = {
|
|
8479
8479
|
help: {
|
|
@@ -8616,8 +8616,8 @@ var fullscreen = {
|
|
|
8616
8616
|
}
|
|
8617
8617
|
};
|
|
8618
8618
|
|
|
8619
|
-
function ownKeys$
|
|
8620
|
-
function _objectSpread$
|
|
8619
|
+
function ownKeys$1w(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; }
|
|
8620
|
+
function _objectSpread$1w(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1w(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1w(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
8621
8621
|
var disableIfViewOnly = function disableIfViewOnly(editor) {
|
|
8622
8622
|
return !!editor.render.options.viewOnlyMode;
|
|
8623
8623
|
};
|
|
@@ -8626,13 +8626,13 @@ var updateConfigItem = function updateConfigItem(item) {
|
|
|
8626
8626
|
return item;
|
|
8627
8627
|
} else if (typeof item.disabled === 'function') {
|
|
8628
8628
|
var originalDisabled = item.disabled;
|
|
8629
|
-
return _objectSpread$
|
|
8629
|
+
return _objectSpread$1w(_objectSpread$1w({}, item), {}, {
|
|
8630
8630
|
disabled: function disabled() {
|
|
8631
8631
|
return disableIfViewOnly(arguments.length <= 0 ? undefined : arguments[0]) || originalDisabled.apply(void 0, arguments);
|
|
8632
8632
|
}
|
|
8633
8633
|
});
|
|
8634
8634
|
} else {
|
|
8635
|
-
return _objectSpread$
|
|
8635
|
+
return _objectSpread$1w(_objectSpread$1w({}, item), {}, {
|
|
8636
8636
|
disabled: disableIfViewOnly
|
|
8637
8637
|
});
|
|
8638
8638
|
}
|
|
@@ -8969,11 +8969,11 @@ var config = {
|
|
|
8969
8969
|
}
|
|
8970
8970
|
}
|
|
8971
8971
|
};
|
|
8972
|
-
var configWithNonViewOnlyActionsDisabled = Object.entries(_objectSpread$
|
|
8972
|
+
var configWithNonViewOnlyActionsDisabled = Object.entries(_objectSpread$1w(_objectSpread$1w(_objectSpread$1w(_objectSpread$1w(_objectSpread$1w(_objectSpread$1w(_objectSpread$1w(_objectSpread$1w(_objectSpread$1w(_objectSpread$1w({}, config), config$1), debugObj), tools), atoms), zoom), templates), functionalGroupsLib), fullscreen), help)).reduce(function (acc, _ref2) {
|
|
8973
8973
|
var _ref3 = _slicedToArray$1(_ref2, 2),
|
|
8974
8974
|
key = _ref3[0],
|
|
8975
8975
|
item = _ref3[1];
|
|
8976
|
-
return _objectSpread$
|
|
8976
|
+
return _objectSpread$1w(_objectSpread$1w({}, acc), {}, _defineProperty$1({}, key, updateConfigItem(item)));
|
|
8977
8977
|
}, {});
|
|
8978
8978
|
function hasSelection(editor) {
|
|
8979
8979
|
var selection = editor.selection();
|
|
@@ -13254,12 +13254,12 @@ var IconButtonBase = function IconButtonBase(_ref) {
|
|
|
13254
13254
|
};
|
|
13255
13255
|
|
|
13256
13256
|
var _excluded$B = ["iconName"];
|
|
13257
|
-
function ownKeys$
|
|
13258
|
-
function _objectSpread$
|
|
13257
|
+
function ownKeys$1v(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; }
|
|
13258
|
+
function _objectSpread$1v(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1v(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1v(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13259
13259
|
var IconButton = function IconButton(_ref) {
|
|
13260
13260
|
var iconName = _ref.iconName,
|
|
13261
13261
|
props = _objectWithoutProperties(_ref, _excluded$B);
|
|
13262
|
-
return jsx(IconButtonBase, _objectSpread$
|
|
13262
|
+
return jsx(IconButtonBase, _objectSpread$1v(_objectSpread$1v({}, props), {}, {
|
|
13263
13263
|
children: jsx(StyledIcon$1, {
|
|
13264
13264
|
name: iconName
|
|
13265
13265
|
})
|
|
@@ -13267,12 +13267,12 @@ var IconButton = function IconButton(_ref) {
|
|
|
13267
13267
|
};
|
|
13268
13268
|
|
|
13269
13269
|
var _excluded$A = ["link"];
|
|
13270
|
-
function ownKeys$
|
|
13271
|
-
function _objectSpread$
|
|
13270
|
+
function ownKeys$1u(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; }
|
|
13271
|
+
function _objectSpread$1u(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1u(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1u(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13272
13272
|
var IconButtonCustomIcon = function IconButtonCustomIcon(_ref) {
|
|
13273
13273
|
var link = _ref.link,
|
|
13274
13274
|
props = _objectWithoutProperties(_ref, _excluded$A);
|
|
13275
|
-
return jsx(IconButtonBase, _objectSpread$
|
|
13275
|
+
return jsx(IconButtonBase, _objectSpread$1u(_objectSpread$1u({}, props), {}, {
|
|
13276
13276
|
children: jsx(StyledCustomIcon, {
|
|
13277
13277
|
src: link,
|
|
13278
13278
|
alt: props.title
|
|
@@ -13303,12 +13303,12 @@ var StyledButton = styled.button({
|
|
|
13303
13303
|
});
|
|
13304
13304
|
|
|
13305
13305
|
var _excluded$z = ["children"];
|
|
13306
|
-
function ownKeys$
|
|
13307
|
-
function _objectSpread$
|
|
13306
|
+
function ownKeys$1t(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; }
|
|
13307
|
+
function _objectSpread$1t(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1t(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1t(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13308
13308
|
var Button = function Button(_ref) {
|
|
13309
13309
|
var children = _ref.children,
|
|
13310
13310
|
props = _objectWithoutProperties(_ref, _excluded$z);
|
|
13311
|
-
return jsx(StyledButton, _objectSpread$
|
|
13311
|
+
return jsx(StyledButton, _objectSpread$1t(_objectSpread$1t({}, props), {}, {
|
|
13312
13312
|
children: children
|
|
13313
13313
|
}));
|
|
13314
13314
|
};
|
|
@@ -13376,10 +13376,10 @@ var StyledInput$1 = styled.input({
|
|
|
13376
13376
|
}
|
|
13377
13377
|
});
|
|
13378
13378
|
|
|
13379
|
-
function ownKeys$
|
|
13380
|
-
function _objectSpread$
|
|
13379
|
+
function ownKeys$1s(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; }
|
|
13380
|
+
function _objectSpread$1s(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1s(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1s(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13381
13381
|
var Input$2 = function Input(props) {
|
|
13382
|
-
return jsx(StyledInput$1, _objectSpread$
|
|
13382
|
+
return jsx(StyledInput$1, _objectSpread$1s({}, props));
|
|
13383
13383
|
};
|
|
13384
13384
|
|
|
13385
13385
|
var Container$1 = styled.div({
|
|
@@ -13475,8 +13475,8 @@ var InfoModal$1 = function InfoModal(_ref) {
|
|
|
13475
13475
|
var styles$r = {"button-common-styles":"Dialog-module_button-common-styles__Xehyp","scrollbar":"Dialog-module_scrollbar__L8hUr","dialog":"Dialog-module_dialog__hiRBI","hide":"Dialog-module_hide__bbkvB","header":"Dialog-module_header__8QGek","btnContainer":"Dialog-module_btnContainer__ulrFM","buttonTop":"Dialog-module_buttonTop__91ha8","closeButton":"Dialog-module_closeButton__XyaAE","footer":"Dialog-module_footer__PliV0","ok":"Dialog-module_ok__BUQ6q","cancel":"Dialog-module_cancel__8d83c","withDivider":"Dialog-module_withDivider__YBKiQ","body":"Dialog-module_body__EWh4H","withMargin":"Dialog-module_withMargin__-zVS4"};
|
|
13476
13476
|
|
|
13477
13477
|
var _excluded$y = ["children", "title", "params", "result", "valid", "buttons", "headerContent", "footerContent", "className", "buttonsNameMap", "needMargin", "withDivider", "focusable", "primaryButtons"];
|
|
13478
|
-
function ownKeys$
|
|
13479
|
-
function _objectSpread$
|
|
13478
|
+
function ownKeys$1r(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; }
|
|
13479
|
+
function _objectSpread$1r(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1r(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1r(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13480
13480
|
var Dialog = function Dialog(props) {
|
|
13481
13481
|
var children = props.children,
|
|
13482
13482
|
title = props.title,
|
|
@@ -13539,7 +13539,7 @@ var Dialog = function Dialog(props) {
|
|
|
13539
13539
|
}
|
|
13540
13540
|
};
|
|
13541
13541
|
return (
|
|
13542
|
-
jsxs("div", _objectSpread$
|
|
13542
|
+
jsxs("div", _objectSpread$1r(_objectSpread$1r({
|
|
13543
13543
|
ref: dialogRef,
|
|
13544
13544
|
role: "dialog",
|
|
13545
13545
|
"data-testid": 'info-modal-window',
|
|
@@ -14112,8 +14112,8 @@ function usePortalStyle(_ref) {
|
|
|
14112
14112
|
return [portalStyle];
|
|
14113
14113
|
}
|
|
14114
14114
|
|
|
14115
|
-
function ownKeys$
|
|
14116
|
-
function _objectSpread$
|
|
14115
|
+
function ownKeys$1q(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; }
|
|
14116
|
+
function _objectSpread$1q(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1q(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1q(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14117
14117
|
var ToolbarMultiToolItem = function ToolbarMultiToolItem(props) {
|
|
14118
14118
|
var id = props.id,
|
|
14119
14119
|
options = props.options,
|
|
@@ -14188,7 +14188,7 @@ var ToolbarMultiToolItem = function ToolbarMultiToolItem(props) {
|
|
|
14188
14188
|
ref: ref,
|
|
14189
14189
|
className: classes$N.root,
|
|
14190
14190
|
"data-testid": "".concat(id, "-drop-down-button"),
|
|
14191
|
-
children: [jsx(ActionButton, _objectSpread$
|
|
14191
|
+
children: [jsx(ActionButton, _objectSpread$1q(_objectSpread$1q({}, actionButtonProps), {}, {
|
|
14192
14192
|
className: className,
|
|
14193
14193
|
name: iconName,
|
|
14194
14194
|
action: configWithNonViewOnlyActionsDisabled[currentId],
|
|
@@ -14297,8 +14297,8 @@ var TemplatesList = function TemplatesList(props) {
|
|
|
14297
14297
|
var classes$M = {"button-common-styles":"BottomToolbar-module_button-common-styles__PbtE9","scrollbar":"BottomToolbar-module_scrollbar__i1f8P","group":"BottomToolbar-module_group__b-pGt","root":"BottomToolbar-module_root__kjkSm"};
|
|
14298
14298
|
|
|
14299
14299
|
var _excluded$x = ["className"];
|
|
14300
|
-
function ownKeys$
|
|
14301
|
-
function _objectSpread$
|
|
14300
|
+
function ownKeys$1p(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; }
|
|
14301
|
+
function _objectSpread$1p(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1p(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1p(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14302
14302
|
var Group$2 = function Group(_ref) {
|
|
14303
14303
|
var children = _ref.children,
|
|
14304
14304
|
className = _ref.className;
|
|
@@ -14314,22 +14314,22 @@ var BottomToolbar = function BottomToolbar(props) {
|
|
|
14314
14314
|
"data-testid": "bottom-toolbar",
|
|
14315
14315
|
className: clsx(classes$M.root, className),
|
|
14316
14316
|
children: jsxs(Group$2, {
|
|
14317
|
-
children: [jsx(TemplatesList, _objectSpread$
|
|
14317
|
+
children: [jsx(TemplatesList, _objectSpread$1p({}, rest)), jsx(ToolbarGroupItem, _objectSpread$1p({
|
|
14318
14318
|
id: "template-lib"
|
|
14319
14319
|
}, rest))]
|
|
14320
14320
|
})
|
|
14321
14321
|
});
|
|
14322
14322
|
};
|
|
14323
14323
|
|
|
14324
|
-
function ownKeys$
|
|
14325
|
-
function _objectSpread$
|
|
14324
|
+
function ownKeys$1o(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; }
|
|
14325
|
+
function _objectSpread$1o(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1o(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1o(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14326
14326
|
function openDialog(dispatch, dialogName, props) {
|
|
14327
14327
|
return new Promise(function (resolve, reject) {
|
|
14328
14328
|
dispatch({
|
|
14329
14329
|
type: 'MODAL_OPEN',
|
|
14330
14330
|
data: {
|
|
14331
14331
|
name: dialogName,
|
|
14332
|
-
prop: _objectSpread$
|
|
14332
|
+
prop: _objectSpread$1o(_objectSpread$1o({}, props), {}, {
|
|
14333
14333
|
onResult: resolve,
|
|
14334
14334
|
onCancel: reject
|
|
14335
14335
|
})
|
|
@@ -14348,14 +14348,14 @@ function modalReducer() {
|
|
|
14348
14348
|
return null;
|
|
14349
14349
|
}
|
|
14350
14350
|
var formState = formReducer(state.form, action);
|
|
14351
|
-
return _objectSpread$
|
|
14351
|
+
return _objectSpread$1o(_objectSpread$1o({}, state), {}, {
|
|
14352
14352
|
form: formState
|
|
14353
14353
|
});
|
|
14354
14354
|
}
|
|
14355
14355
|
switch (type) {
|
|
14356
14356
|
case 'MODAL_CLOSE':
|
|
14357
14357
|
if (state !== null && state !== void 0 && state.parentModal) {
|
|
14358
|
-
state.parentModal.prop = _objectSpread$
|
|
14358
|
+
state.parentModal.prop = _objectSpread$1o(_objectSpread$1o(_objectSpread$1o({}, state.parentModal.prop), state.parentModal.form.result), {}, {
|
|
14359
14359
|
isRestoredModal: true
|
|
14360
14360
|
});
|
|
14361
14361
|
return state.parentModal;
|
|
@@ -14373,8 +14373,8 @@ function modalReducer() {
|
|
|
14373
14373
|
}
|
|
14374
14374
|
}
|
|
14375
14375
|
|
|
14376
|
-
function ownKeys$
|
|
14377
|
-
function _objectSpread$
|
|
14376
|
+
function ownKeys$1n(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; }
|
|
14377
|
+
function _objectSpread$1n(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1n(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1n(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14378
14378
|
function selectTmpl(tmpl) {
|
|
14379
14379
|
return {
|
|
14380
14380
|
type: 'TMPL_SELECT',
|
|
@@ -14442,7 +14442,7 @@ function editTmpl(tmpl) {
|
|
|
14442
14442
|
tmpl: tmpl
|
|
14443
14443
|
}).then(function (formData) {
|
|
14444
14444
|
tmpl.struct.name = formData ? formData.name.trim() : tmpl.struct.name;
|
|
14445
|
-
tmpl.props = formData ? _objectSpread$
|
|
14445
|
+
tmpl.props = formData ? _objectSpread$1n(_objectSpread$1n({}, tmpl.props || {}), formData.attach || {}) : tmpl.props;
|
|
14446
14446
|
if (tmpl.props.group === 'User Templates') updateLocalStore(getState().templates.lib);
|
|
14447
14447
|
}, function () {
|
|
14448
14448
|
return null;
|
|
@@ -14482,7 +14482,7 @@ function saveUserTmpl(struct) {
|
|
|
14482
14482
|
var name = _ref.name,
|
|
14483
14483
|
attach = _ref.attach;
|
|
14484
14484
|
tmpl.struct.name = name.trim();
|
|
14485
|
-
tmpl.props = _objectSpread$
|
|
14485
|
+
tmpl.props = _objectSpread$1n(_objectSpread$1n({}, attach), {}, {
|
|
14486
14486
|
group: 'User Templates'
|
|
14487
14487
|
});
|
|
14488
14488
|
var lib = getState().templates.lib.concat(tmpl);
|
|
@@ -14500,7 +14500,7 @@ function updateLocalStore(lib) {
|
|
|
14500
14500
|
}).map(function (item) {
|
|
14501
14501
|
return {
|
|
14502
14502
|
struct: ketSerializer.serialize(item.struct),
|
|
14503
|
-
props: _objectSpread$
|
|
14503
|
+
props: _objectSpread$1n({}, omit(['group'], item.props) || {})
|
|
14504
14504
|
};
|
|
14505
14505
|
});
|
|
14506
14506
|
storage.setItem('ketcher-tmpls', userLib);
|
|
@@ -14519,19 +14519,19 @@ var attachActions = ['INIT_ATTACH', 'SET_ATTACH_POINTS', 'SET_TMPL_NAME'];
|
|
|
14519
14519
|
function templatesReducer() {
|
|
14520
14520
|
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initTmplsState;
|
|
14521
14521
|
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|
14522
|
-
if (tmplActions.includes(action.type)) return _objectSpread$
|
|
14522
|
+
if (tmplActions.includes(action.type)) return _objectSpread$1n(_objectSpread$1n({}, state), action.data || {});
|
|
14523
14523
|
if (attachActions.includes(action.type)) {
|
|
14524
|
-
var attach = _objectSpread$
|
|
14525
|
-
return _objectSpread$
|
|
14524
|
+
var attach = _objectSpread$1n(_objectSpread$1n({}, state.attach), action.data || {});
|
|
14525
|
+
return _objectSpread$1n(_objectSpread$1n({}, state), {}, {
|
|
14526
14526
|
attach: attach
|
|
14527
14527
|
});
|
|
14528
14528
|
}
|
|
14529
14529
|
if (action.type === 'TMPL_DELETE') {
|
|
14530
|
-
var currentState = _objectSpread$
|
|
14530
|
+
var currentState = _objectSpread$1n({}, state);
|
|
14531
14531
|
var lib = currentState.lib.filter(function (value) {
|
|
14532
14532
|
return value !== action.data.tmpl;
|
|
14533
14533
|
});
|
|
14534
|
-
return _objectSpread$
|
|
14534
|
+
return _objectSpread$1n(_objectSpread$1n({}, currentState), {}, {
|
|
14535
14535
|
lib: lib
|
|
14536
14536
|
});
|
|
14537
14537
|
}
|
|
@@ -14593,8 +14593,8 @@ function abbreviationLookupReducer() {
|
|
|
14593
14593
|
}
|
|
14594
14594
|
}
|
|
14595
14595
|
|
|
14596
|
-
function ownKeys$
|
|
14597
|
-
function _objectSpread$
|
|
14596
|
+
function ownKeys$1m(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; }
|
|
14597
|
+
function _objectSpread$1m(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1m(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1m(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14598
14598
|
var initialState$3 = {
|
|
14599
14599
|
cursorPosition: {
|
|
14600
14600
|
x: 0,
|
|
@@ -14617,7 +14617,7 @@ function commonReducer() {
|
|
|
14617
14617
|
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState$3;
|
|
14618
14618
|
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|
14619
14619
|
if (action.type === COMMON_ACTIONS.COMMON_UPDATE_CURSOR_POSITION) {
|
|
14620
|
-
return _objectSpread$
|
|
14620
|
+
return _objectSpread$1m(_objectSpread$1m({}, state), {}, {
|
|
14621
14621
|
cursorPosition: {
|
|
14622
14622
|
x: action.data.x,
|
|
14623
14623
|
y: action.data.y
|
|
@@ -14628,8 +14628,8 @@ function commonReducer() {
|
|
|
14628
14628
|
}
|
|
14629
14629
|
|
|
14630
14630
|
var _excluded$w = ["type", "action"];
|
|
14631
|
-
function ownKeys$
|
|
14632
|
-
function _objectSpread$
|
|
14631
|
+
function ownKeys$1l(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; }
|
|
14632
|
+
function _objectSpread$1l(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1l(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1l(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14633
14633
|
function execute(activeTool, _ref) {
|
|
14634
14634
|
var action = _ref.action,
|
|
14635
14635
|
editor = _ref.editor,
|
|
@@ -14689,7 +14689,7 @@ function actionStateReducer () {
|
|
|
14689
14689
|
case 'ACTION':
|
|
14690
14690
|
{
|
|
14691
14691
|
var _activeTool;
|
|
14692
|
-
activeTool = execute(state === null || state === void 0 ? void 0 : state.activeTool, _objectSpread$
|
|
14692
|
+
activeTool = execute(state === null || state === void 0 ? void 0 : state.activeTool, _objectSpread$1l(_objectSpread$1l({}, params), {}, {
|
|
14693
14693
|
action: action
|
|
14694
14694
|
}));
|
|
14695
14695
|
if (((_activeTool = activeTool) === null || _activeTool === void 0 ? void 0 : _activeTool.tool) === 'select') {
|
|
@@ -14985,8 +14985,8 @@ function setFunctionalGroupsTooltip(_ref) {
|
|
|
14985
14985
|
showTooltip(editor, infoPanelData);
|
|
14986
14986
|
}
|
|
14987
14987
|
|
|
14988
|
-
function ownKeys$
|
|
14989
|
-
function _objectSpread$
|
|
14988
|
+
function ownKeys$1k(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; }
|
|
14989
|
+
function _objectSpread$1k(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1k(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1k(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14990
14990
|
var initialState$2 = {
|
|
14991
14991
|
lib: [],
|
|
14992
14992
|
functionalGroupInfo: null,
|
|
@@ -14994,14 +14994,14 @@ var initialState$2 = {
|
|
|
14994
14994
|
};
|
|
14995
14995
|
var functionalGroupsReducer = function functionalGroupsReducer() {
|
|
14996
14996
|
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState$2;
|
|
14997
|
-
var
|
|
14998
|
-
|
|
14999
|
-
payload =
|
|
14997
|
+
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|
14998
|
+
var type = action.type,
|
|
14999
|
+
payload = action.payload;
|
|
15000
15000
|
switch (type) {
|
|
15001
15001
|
case 'FG_INIT':
|
|
15002
|
-
return _objectSpread$
|
|
15002
|
+
return _objectSpread$1k(_objectSpread$1k({}, state), payload);
|
|
15003
15003
|
case 'FG_HIGHLIGHT':
|
|
15004
|
-
return _objectSpread$
|
|
15004
|
+
return _objectSpread$1k(_objectSpread$1k({}, state), {}, {
|
|
15005
15005
|
functionalGroupInfo: payload
|
|
15006
15006
|
});
|
|
15007
15007
|
default:
|
|
@@ -15028,7 +15028,7 @@ function notDebouncedHighlightFG(dispatch, group) {
|
|
|
15028
15028
|
var highlightFG = memoizedDebounce(notDebouncedHighlightFG, TOOLTIP_DELAY / 3, [0]);
|
|
15029
15029
|
function initFGTemplates() {
|
|
15030
15030
|
return function () {
|
|
15031
|
-
var
|
|
15031
|
+
var _ref = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(dispatch) {
|
|
15032
15032
|
var provider, sdfSerializer, templates, functionalGroups;
|
|
15033
15033
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
15034
15034
|
while (1) switch (_context.prev = _context.next) {
|
|
@@ -15036,8 +15036,8 @@ function initFGTemplates() {
|
|
|
15036
15036
|
provider = FunctionalGroupsProvider.getInstance();
|
|
15037
15037
|
sdfSerializer = new SdfSerializer();
|
|
15038
15038
|
templates = sdfSerializer.deserialize(templatesRawData$1);
|
|
15039
|
-
functionalGroups = templates.reduce(function (acc,
|
|
15040
|
-
var struct =
|
|
15039
|
+
functionalGroups = templates.reduce(function (acc, _ref2) {
|
|
15040
|
+
var struct = _ref2.struct;
|
|
15041
15041
|
return [].concat(_toConsumableArray(acc), [struct]);
|
|
15042
15042
|
}, []);
|
|
15043
15043
|
provider.setFunctionalGroupsList(functionalGroups);
|
|
@@ -15052,26 +15052,26 @@ function initFGTemplates() {
|
|
|
15052
15052
|
}, _callee);
|
|
15053
15053
|
}));
|
|
15054
15054
|
return function (_x) {
|
|
15055
|
-
return
|
|
15055
|
+
return _ref.apply(this, arguments);
|
|
15056
15056
|
};
|
|
15057
15057
|
}();
|
|
15058
15058
|
}
|
|
15059
15059
|
|
|
15060
15060
|
var templatesRawData = "acetic acid\n -INDIGO-11302219142D\n\n 4 3 0 0 0 0 0 0 0 0999 V2000\n 0.5143 0.5143 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7848 -0.2357 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8133 -0.2357 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.5143 2.0143 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 2 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 4 1 2 3 4\nM SMT 1 acetic acid\nM END\n> <name>\nacetic acid\n\n> <abbreviation>\nacetic acid\n\n> <group>\nSalts and Solvents\n\n$$$$\nacetic anhydride\n -INDIGO-11302219142D\n\n 7 6 0 0 0 0 0 0 0 0999 V2000\n 0.5143 0.5143 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7848 -0.2357 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8133 -0.2357 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.5143 2.0143 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 3.1123 0.5143 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.1124 2.0143 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 4.4114 -0.2357 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 2 0 0 0 0\n 3 5 1 0 0 0 0\n 5 6 2 0 0 0 0\n 5 7 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 acetic anhydride\nM END\n> <name>\nacetic anhydride\n\n> <abbreviation>\nacetic anhydride\n\n> <group>\nSalts and Solvents\n\n$$$$\nformic acid\n -INDIGO-11302219142D\n\n 4 3 0 0 0 0 0 0 0 0999 V2000\n 0.5143 0.5143 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7848 -0.2357 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8133 -0.2357 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.5143 2.0143 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 2 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 4 1 2 3 4\nM SMT 1 formic acid\nM END\n> <name>\nformic acid\n\n> <abbreviation>\nformic acid\n\n> <group>\nSalts and Solvents\n\n$$$$\nmethane sulphonic acid\n -INDIGO-11302219142D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n 0.5143 0.5143 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0\n 0.5143 2.0143 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.5143 -0.9857 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 2.0143 0.5143 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -0.9857 0.5143 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0 0 0 0\n 1 3 2 0 0 0 0\n 1 4 1 0 0 0 0\n 1 5 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 methane sulphonic acid\nM END\n> <name>\nmethane sulphonic acid\n\n> <abbreviation>\nmethane sulphonic acid\n\n> <group>\nSalts and Solvents\n\n$$$$\npropionic acid\n -INDIGO-11302219142D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n 0.5143 0.5143 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7848 -0.2357 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8133 -0.2357 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.5143 2.0143 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -2.0838 0.5143 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 2 0 0 0 0\n 2 5 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 propionic acid\nM END\n> <name>\npropionic acid\n\n> <abbreviation>\npropionic acid\n\n> <group>\nSalts and Solvents\n\n$$$$\n1,2-propanediol\n -INDIGO-11302219142D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n -3.3587 -3.5057 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.0597 -2.7557 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.0596 -1.2558 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7606 -3.5057 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.5384 -2.7557 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 2 4 1 0 0 0 0\n 4 5 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 1,2-propanediol\nM END\n> <name>\n1,2-propanediol\n\n> <abbreviation>\n1,2-propanediol\n\n> <group>\nSalts and Solvents\n\n$$$$\n1,3-propanediol\n -INDIGO-11302219142D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n 15.0779 -8.5508 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 16.3769 -9.3007 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 17.6759 -8.5507 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 18.9750 -9.3007 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 20.2740 -8.5507 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 1,3-propanediol\nM END\n> <name>\n1,3-propanediol\n\n> <abbreviation>\n1,3-propanediol\n\n> <group>\nSalts and Solvents\n\n$$$$\n1,4-butanediol\n -INDIGO-11302219142D\n\n 6 5 0 0 0 0 0 0 0 0999 V2000\n -0.3480 1.2991 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.9509 2.0491 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.2500 1.2991 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.5491 2.0491 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8481 1.2991 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1472 2.0491 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 1,4-butanediol\nM END\n> <name>\n1,4-butanediol\n\n> <abbreviation>\n1,4-butanediol\n\n> <group>\nSalts and Solvents\n\n$$$$\n1-butanol\n -INDIGO-11302219142D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n 0.1714 0.3286 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.4705 1.0786 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.1276 1.0786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.4266 0.3286 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -3.7257 1.0786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 1-butanol\nM END\n> <name>\n1-butanol\n\n> <abbreviation>\n1-butanol\n\n> <group>\nSalts and Solvents\n\n$$$$\n1-propanol\n -INDIGO-11302219142D\n\n 4 3 0 0 0 0 0 0 0 0999 V2000\n 0.1714 1.2286 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.1276 0.4786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.4266 1.2286 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -3.7257 0.4786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 4 1 2 3 4\nM SMT 1 1-propanol\nM END\n> <name>\n1-propanol\n\n> <abbreviation>\n1-propanol\n\n> <group>\nSalts and Solvents\n\n$$$$\n2-butanol\n -INDIGO-11302219142D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n 0.1714 1.2286 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.4705 0.4786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.1276 0.4786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.4266 1.2286 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.1714 2.7286 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 1 5 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 2-butanol\nM END\n> <name>\n2-butanol\n\n> <abbreviation>\n2-butanol\n\n> <group>\nSalts and Solvents\n\n$$$$\n2-ethylhexanol\n -INDIGO-11302219142D\n\n 9 8 0 0 0 0 0 0 0 0999 V2000\n 10.7337 0.4167 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 8.1355 0.4167 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.8365 -0.3333 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.5375 0.4167 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 8.1355 1.9167 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 9.4345 -0.3333 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.2384 -0.3333 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 9.4345 2.6667 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.9394 0.4167 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 6 1 0 0 0 0\n 2 3 1 0 0 0 0\n 2 5 1 0 0 0 0\n 2 6 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 7 1 0 0 0 0\n 5 8 1 0 0 0 0\n 7 9 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 1 9\nM SMT 1 2-ethylhexanol\nM END\n> <name>\n2-ethylhexanol\n\n> <abbreviation>\n2-ethylhexanol\n\n> <group>\nSalts and Solvents\n\n$$$$\nisopropanol\n -INDIGO-11302219142D\n\n 4 3 0 0 0 0 0 0 0 0999 V2000\n 0.1714 1.2286 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.4705 0.4786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.1276 0.4786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.1714 2.7286 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 4 1 2 3 4\nM SMT 1 2-propanol\nM END\n> <name>\nisopropanol\n\n> <abbreviation>\n2-propanol\n\n> <group>\nSalts and Solvents\n\n$$$$\n2-methoxyethanol\n -INDIGO-11302219142D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n 0.1714 0.3286 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.4705 1.0786 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.1276 1.0786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.4266 0.3286 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -3.7257 1.0786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 2-methoxyethanol\nM END\n> <name>\n2-methoxyethanol\n\n> <abbreviation>\n2-methoxyethanol\n\n> <group>\nSalts and Solvents\n\n$$$$\n2-pentanol\n -INDIGO-11302219142D\n\n 6 5 0 0 0 0 0 0 0 0999 V2000\n -5.1971 -3.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -3.8980 -2.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.5991 -3.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.3000 -2.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.0009 -3.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.3000 -1.2500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 4 6 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 2-pentanol\nM END\n> <name>\n2-pentanol\n\n> <abbreviation>\n2-pentanol\n\n> <group>\nSalts and Solvents\n\n$$$$\nbenzyl alcohol\n -INDIGO-11302219142D\n\n 8 8 0 0 0 0 0 0 0 0999 V2000\n 6.1000 0.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8010 -0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3990 -0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8010 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1000 -2.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3990 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1000 1.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3990 2.5000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 2 0 0 0 0\n 2 4 2 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 2 0 0 0 0\n 6 3 1 0 0 0 0\n 1 7 1 0 0 0 0\n 7 8 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SMT 1 benzyl alcohol\nM END\n> <name>\nbenzyl alcohol\n\n> <abbreviation>\nbenzyl alcohol\n\n> <group>\nSalts and Solvents\n\n$$$$\ncyclohexanol\n -INDIGO-11302219142D\n\n 7 7 0 0 0 0 0 0 0 0999 V2000\n 4.2990 2.0175 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 4.2990 0.5175 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0000 -0.2325 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.5981 -0.2325 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0000 -1.7325 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.5981 -1.7325 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.2990 -2.4825 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 2 4 1 0 0 0 0\n 3 5 1 0 0 0 0\n 4 6 1 0 0 0 0\n 5 7 1 0 0 0 0\n 6 7 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 cyclohexanol\nM END\n> <name>\ncyclohexanol\n\n> <abbreviation>\ncyclohexanol\n\n> <group>\nSalts and Solvents\n\n$$$$\nethanol\n -INDIGO-11302219142D\n\n 3 2 0 0 0 0 0 0 0 0999 V2000\n 0.1714 1.2286 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.1276 0.4786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.4266 1.2286 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 3 1 2 3\nM SMT 1 ethyl alcohol\nM END\n> <name>\nethanol\n\n> <abbreviation>\nethyl alcohol\n\n> <group>\nSalts and Solvents\n\n$$$$\nethylene glycol\n -INDIGO-11302219142D\n\n 4 3 0 0 0 0 0 0 0 0999 V2000\n 0.1714 1.2286 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.1276 0.4786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.4266 1.2286 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -3.7256 0.4786 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 4 1 2 3 4\nM SMT 1 ethane-1,2-diol\nM END\n> <name>\nethylene glycol\n\n> <abbreviation>\nethane-1,2-diol\n\n> <group>\nSalts and Solvents\n\n$$$$\nglycerol\n -INDIGO-11302219142D\n\n 6 5 0 0 0 0 0 0 0 0999 V2000\n 0.9915 2.6580 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 2.2906 1.9080 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.5896 2.6580 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.5897 4.1580 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8887 1.9080 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1878 2.6580 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 3 5 1 0 0 0 0\n 5 6 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 glycerol\nM END\n> <name>\nglycerol\n\n> <abbreviation>\nglycerol\n\n> <group>\nSalts and Solvents\n\n$$$$\nisoamyl alcohol\n -INDIGO-11302219142D\n\n 6 5 0 0 0 0 0 0 0 0999 V2000\n 0.1714 0.3286 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.4705 1.0786 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.1276 1.0786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.4266 0.3286 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -3.7257 1.0786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.4266 -1.1714 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 4 6 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 isoamyl alcohol\nM END\n> <name>\nisoamyl alcohol\n\n> <abbreviation>\nisoamyl alcohol\n\n> <group>\nSalts and Solvents\n\n$$$$\nisobutanol\n -INDIGO-11302219142D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n 0.1714 1.2286 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.1276 0.4786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.4266 1.2286 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -3.7257 0.4786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.4266 2.7286 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 3 5 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 isobutanol\nM END\n> <name>\nisobutanol\n\n> <abbreviation>\nisobutanol\n\n> <group>\nSalts and Solvents\n\n$$$$\nmethanol\n -INDIGO-11302219142D\n\n 2 1 0 0 0 0 0 0 0 0999 V2000\n 0.0709 0.8536 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5710 0.8536 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 2 1 2\nM SMT 1 methyl alcohol\nM END\n> <name>\nmethanol\n\n> <abbreviation>\nmethyl alcohol\n\n> <group>\nSalts and Solvents\n\n$$$$\nt-butanol\n -INDIGO-11302219142D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n 0.0709 0.8536 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5710 0.8536 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.4291 0.8536 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0709 2.3536 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0709 -0.6464 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 1 0 0 0 0\n 1 5 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 t-butanol\nM END\n> <name>\nt-butanol\n\n> <abbreviation>\nt-butanol\n\n> <group>\nSalts and Solvents\n\n$$$$\nwater\n -INDIGO-11302219142D\n\n 1 0 0 0 0 0 0 0 0 0999 V2000\n 0.7500 2.9500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 1 1\nM SMT 1 water\nM END\n> <name>\nwater\n\n> <abbreviation>\nwater\n\n> <group>\nSalts and Solvents\n\n$$$$\ncarbon dioxide\n -INDIGO-11302219142D\n\n 3 2 0 0 0 0 0 0 0 0999 V2000\n -1.2000 0.8500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.7000 0.8500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.3000 0.8500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0 0 0 0\n 1 3 2 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 3 1 2 3\nM SMT 1 carbon dioxide\nM END\n> <name>\ncarbon dioxide\n\n> <abbreviation>\ncarbon dioxide\n\n> <group>\nSalts and Solvents\n\n$$$$\nbenzene\n -INDIGO-11302219142D\n\n 6 6 0 0 0 0 0 0 0 0999 V2000\n 6.1000 0.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8010 -0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3990 -0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8010 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1000 -2.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3990 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 2 0 0 0 0\n 2 4 2 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 2 0 0 0 0\n 6 3 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 benzene\nM END\n> <name>\nbenzene\n\n> <abbreviation>\nbenzene\n\n> <group>\nSalts and Solvents\n\n$$$$\ncumene\n -INDIGO-11302219142D\n\n 9 9 0 0 0 0 0 0 0 0999 V2000\n 4.2989 1.8750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.2989 0.3750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.5981 2.6250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0000 2.6250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.5981 -0.3750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0000 -0.3750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.5981 -1.8750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0000 -1.8750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.2989 -2.6250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 1 0 0 0 0\n 2 5 2 0 0 0 0\n 2 6 1 0 0 0 0\n 5 7 1 0 0 0 0\n 6 8 2 0 0 0 0\n 7 9 2 0 0 0 0\n 8 9 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 1 9\nM SMT 1 cumene\nM END\n> <name>\ncumene\n\n> <abbreviation>\ncumene\n\n> <group>\nSalts and Solvents\n\n$$$$\nmesitylene\n -INDIGO-11302219142D\n\n 9 9 0 0 0 0 0 0 0 0999 V2000\n 1.2991 3.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2991 2.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.5980 1.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.5980 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.8971 -0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2991 -0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.2991 -0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 1.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 2 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 4 6 2 0 0 0 0\n 6 7 1 0 0 0 0\n 7 8 1 0 0 0 0\n 7 9 2 0 0 0 0\n 2 9 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 1 9\nM SMT 1 mesitylene\nM END\n> <name>\nmesitylene\n\n> <abbreviation>\nmesitylene\n\n> <group>\nSalts and Solvents\n\n$$$$\ntoluene\n -INDIGO-11302219142D\n\n 7 7 0 0 0 0 0 0 0 0999 V2000\n 6.1000 0.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8010 -0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3990 -0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8010 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1000 -2.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3990 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1000 1.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 2 0 0 0 0\n 2 4 2 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 2 0 0 0 0\n 6 3 1 0 0 0 0\n 1 7 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 toluene\nM END\n> <name>\ntoluene\n\n> <abbreviation>\ntoluene\n\n> <group>\nSalts and Solvents\n\n$$$$\nn,n-dimethylaniline\n -INDIGO-11302219142D\n\n 9 9 0 0 0 0 0 0 0 0999 V2000\n 4.2989 1.8750 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 4.2989 0.3750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.5981 -0.3750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0000 -0.3750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.5981 2.6250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0000 2.6250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.5981 -1.8750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0000 -1.8750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.2989 -2.6250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 5 1 0 0 0 0\n 1 6 1 0 0 0 0\n 2 3 2 0 0 0 0\n 2 4 1 0 0 0 0\n 3 7 1 0 0 0 0\n 4 8 2 0 0 0 0\n 7 9 2 0 0 0 0\n 8 9 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 1 9\nM SMT 1 N,N-dimethylaniline\nM END\n> <name>\nn,n-dimethylaniline\n\n> <abbreviation>\nN,N-dimethylaniline\n\n> <group>\nSalts and Solvents\n\n$$$$\npyridine\n -INDIGO-11302219142D\n\n 6 6 0 0 0 0 0 0 0 0999 V2000\n 6.1000 0.2500 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8010 -0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3990 -0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8010 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1000 -2.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3990 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 2 0 0 0 0\n 2 4 2 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 2 0 0 0 0\n 6 3 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 pyridine\nM END\n> <name>\npyridine\n\n> <abbreviation>\npyridine\n\n> <group>\nSalts and Solvents\n\n$$$$\ntriethylamine\n -INDIGO-11302219142D\n\n 7 6 0 0 0 0 0 0 0 0999 V2000\n 1.5000 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5000 1.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.2010 -0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.7990 -0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.7990 2.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.0980 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.0980 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 1 0 0 0 0\n 2 5 1 0 0 0 0\n 4 6 1 0 0 0 0\n 3 7 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 triethylamine\nM END\n> <name>\ntriethylamine\n\n> <abbreviation>\ntriethylamine\n\n> <group>\nSalts and Solvents\n\n$$$$\nacetonitrile\n -INDIGO-11302219142D\n\n 3 2 0 0 0 0 0 0 0 0999 V2000\n 1.5000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0000 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 3 0 0 0 0\n 1 3 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 3 1 2 3\nM SMT 1 acetonitrile\nM END\n> <name>\nacetonitrile\n\n> <abbreviation>\nacetonitrile\n\n> <group>\nSalts and Solvents\n\n$$$$\ndimethyl acetamide\n -INDIGO-11302219142D\n\n 6 5 0 0 0 0 0 0 0 0999 V2000\n 2.7990 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.7990 1.5000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 4.0980 -0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5000 -0.7500 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5000 -2.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.2009 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 4 6 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 dimethyl acetamide\nM END\n> <name>\ndimethyl acetamide\n\n> <abbreviation>\ndimethyl acetamide\n\n> <group>\nSalts and Solvents\n\n$$$$\ndimethyl formamide\n -INDIGO-11302219142D\n\n 6 5 0 0 0 0 0 0 0 0999 V2000\n 2.7990 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.7990 1.5000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 4.0980 -0.7500 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5000 -0.7500 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5000 -2.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.2009 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 4 6 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 DMF\nM END\n> <name>\ndimethyl formamide\n\n> <abbreviation>\nDMF\n\n> <group>\nSalts and Solvents\n\n$$$$\ndimethyl sulfoxide\n -INDIGO-11302219142D\n\n 4 3 0 0 0 0 0 0 0 0999 V2000\n 1.5000 0.0000 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0\n 0.2010 -0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.7990 -0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5000 1.5000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 2 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 4 1 2 3 4\nM SMT 1 DMSO\nM END\n> <name>\ndimethyl sulfoxide\n\n> <abbreviation>\nDMSO\n\n> <group>\nSalts and Solvents\n\n$$$$\ndimethylpropylene urea\n -INDIGO-11302219142D\n\n 9 9 0 0 0 0 0 0 0 0999 V2000\n 3.4378 2.0544 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.1388 1.3044 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 2.1387 -0.1955 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.8397 -0.9455 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4593 -0.1956 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4593 1.3044 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -1.7584 2.0545 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.8397 2.0544 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.8397 3.5545 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 6 7 1 0 0 0 0\n 6 8 1 0 0 0 0\n 2 8 1 0 0 0 0\n 8 9 2 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 1 9\nM SMT 1 dimethylpropylene urea\nM END\n> <name>\ndimethylpropylene urea\n\n> <abbreviation>\ndimethylpropylene urea\n\n> <group>\nSalts and Solvents\n\n$$$$\nformamide\n -INDIGO-11302219142D\n\n 4 3 0 0 0 0 0 0 0 0999 V2000\n 0.2485 -6.0342 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5476 -5.2841 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5476 -3.7842 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 2.8467 -6.0341 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 2 0 0 0 0\n 2 4 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 4 1 2 3 4\nM SMT 1 formamide\nM END\n> <name>\nformamide\n\n> <abbreviation>\nformamide\n\n> <group>\nSalts and Solvents\n\n$$$$\nn-methyl-2-pyrrolidone\n -INDIGO-11302219142D\n\n 7 7 0 0 0 0 0 0 0 0999 V2000\n 0.7500 2.3100 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4600 1.4300 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.9600 1.4300 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7500 3.8100 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.3860 1.8953 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 3 2 1 0 0 0 0\n 2 1 1 0 0 0 0\n 1 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 3 1 0 0 0 0\n 1 6 1 0 0 0 0\n 4 7 2 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 N-methyl-2-pyrrolidone\nM END\n> <name>\nn-methyl-2-pyrrolidone\n\n> <abbreviation>\nN-methyl-2-pyrrolidone\n\n> <group>\nSalts and Solvents\n\n$$$$\nn-methylformamide\n -INDIGO-11302219142D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n 0.1009 0.5500 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1.4000 1.3000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.4000 2.8000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 2.6990 0.5500 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0\n -1.1981 1.3000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 2 0 0 0 0\n 2 4 1 0 0 0 0\n 1 5 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 N-methylformamide\nM END\n> <name>\nn-methylformamide\n\n> <abbreviation>\nN-methylformamide\n\n> <group>\nSalts and Solvents\n\n$$$$\npropane nitrile\n -INDIGO-11302219142D\n\n 4 3 0 0 0 0 0 0 0 0999 V2000\n 6.8971 0.7500 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 4.2990 -0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.5981 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 4 3 0 0 0 0\n 2 3 1 0 0 0 0\n 2 4 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 4 1 2 3 4\nM SMT 1 propane nitrile\nM END\n> <name>\npropane nitrile\n\n> <abbreviation>\npropane nitrile\n\n> <group>\nSalts and Solvents\n\n$$$$\nsulfolane\n -INDIGO-11302219142D\n\n 7 7 0 0 0 0 0 0 0 0999 V2000\n 0.7500 2.3100 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4600 1.4300 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.9600 1.4300 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5000 3.6090 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -0.0673 3.5678 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 3 2 1 0 0 0 0\n 2 1 1 0 0 0 0\n 1 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 3 1 0 0 0 0\n 1 6 2 0 0 0 0\n 1 7 2 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 sulfolane\nM END\n> <name>\nsulfolane\n\n> <abbreviation>\nsulfolane\n\n> <group>\nSalts and Solvents\n\n$$$$\namyl acetate\n -INDIGO-11302219142D\n\n 9 8 0 0 0 0 0 0 0 0999 V2000\n 5.8307 0.3714 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.1297 -0.3786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.5316 -0.3786 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 5.8307 1.8714 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 3.2326 0.3714 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.9335 -0.3785 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.6345 0.3715 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.6646 -0.3785 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.9636 0.3715 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 2 0 0 0 0\n 3 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 6 7 1 0 0 0 0\n 7 8 1 0 0 0 0\n 8 9 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 1 9\nM SMT 1 amyl acetate\nM END\n> <name>\namyl acetate\n\n> <abbreviation>\namyl acetate\n\n> <group>\nSalts and Solvents\n\n$$$$\nbutyl acetate\n -INDIGO-11302219142D\n\n 8 7 0 0 0 0 0 0 0 0999 V2000\n 7.5466 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 8.8456 2.2500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 4.9486 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.6495 0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.2476 0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.3505 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 8.8456 0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 10.1446 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 5 1 0 0 0 0\n 1 7 1 0 0 0 0\n 2 7 2 0 0 0 0\n 3 4 1 0 0 0 0\n 3 5 1 0 0 0 0\n 4 6 1 0 0 0 0\n 7 8 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SMT 1 butyl acetate\nM END\n> <name>\nbutyl acetate\n\n> <abbreviation>\nbutyl acetate\n\n> <group>\nSalts and Solvents\n\n$$$$\ndimethyl carbonate\n -INDIGO-11302219142D\n\n 6 5 0 0 0 0 0 0 0 0999 V2000\n 0.5429 -0.3429 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.5429 1.1571 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7562 -1.0929 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8419 -1.0929 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -2.0552 -0.3429 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.1409 -0.3429 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 1 0 0 0 0\n 3 5 1 0 0 0 0\n 4 6 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 dimethyl carbonate\nM END\n> <name>\ndimethyl carbonate\n\n> <abbreviation>\ndimethyl carbonate\n\n> <group>\nSalts and Solvents\n\n$$$$\nethyl acetate\n -INDIGO-11302219142D\n\n 6 5 0 0 0 0 0 0 0 0999 V2000\n 2.7079 -0.3429 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.7079 1.1571 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 4.0070 -1.0929 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.4089 -1.0929 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.1099 -0.3429 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.1891 -1.0929 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 ethyl acetate\nM END\n> <name>\nethyl acetate\n\n> <abbreviation>\nethyl acetate\n\n> <group>\nSalts and Solvents\n\n$$$$\nethyl formate\n -INDIGO-11302219142D\n\n 6 5 0 0 0 0 0 0 0 0999 V2000\n 5.8087 -2.6404 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.8087 -1.1506 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 4.5094 -3.4018 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 3.2098 -2.6486 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.9103 -3.4018 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.1078 -3.3904 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0\n 2 1 2 0 0 0 0\n 3 1 1 0 0 0 0\n 4 3 1 0 0 0 0\n 5 4 1 0 0 0 0\n 1 6 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 ethyl formate\nM END\n> <name>\nethyl formate\n\n> <abbreviation>\nethyl formate\n\n> <group>\nSalts and Solvents\n\n$$$$\nethyl lactate\n -INDIGO-11302219142D\n\n 8 7 0 0 0 0 0 0 0 0999 V2000\n -0.3480 1.2991 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.9509 2.0491 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.2500 1.2991 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 3.5491 2.0491 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.5491 3.5491 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8480 1.2991 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1471 2.0491 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8480 -0.2009 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 2 0 0 0 0\n 4 6 1 0 0 0 0\n 6 7 1 0 0 0 0\n 6 8 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SMT 1 ethyl lactate\nM END\n> <name>\nethyl lactate\n\n> <abbreviation>\nethyl lactate\n\n> <group>\nSalts and Solvents\n\n$$$$\nethyl propionate\n -INDIGO-11302219142D\n\n 7 6 0 0 0 0 0 0 0 0999 V2000\n -0.3480 1.2991 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.9509 2.0491 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.2500 1.2991 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 3.5491 2.0491 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.5491 3.5491 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8480 1.2991 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1471 2.0491 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 2 0 0 0 0\n 4 6 1 0 0 0 0\n 6 7 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 ethyl propionate\nM END\n> <name>\nethyl propionate\n\n> <abbreviation>\nethyl propionate\n\n> <group>\nSalts and Solvents\n\n$$$$\nethylene carbonate\n -INDIGO-11302219142D\n\n 6 6 0 0 0 0 0 0 0 0999 V2000\n 1.0323 3.5259 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0323 2.0259 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.2458 1.1443 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.7823 -0.2824 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.2824 -0.2824 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.1813 1.1443 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 2 6 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 ethylene carbonate\nM END\n> <name>\nethylene carbonate\n\n> <abbreviation>\nethylene carbonate\n\n> <group>\nSalts and Solvents\n\n$$$$\nisobutyl acetate\n -INDIGO-11302219142D\n\n 8 7 0 0 0 0 0 0 0 0999 V2000\n 4.4399 -0.3429 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.4399 1.1571 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 5.7390 -1.0929 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.1409 -1.0929 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8419 -0.3429 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.5429 -1.0929 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.5429 -2.5929 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7561 -0.3429 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 6 7 1 0 0 0 0\n 6 8 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SMT 1 isobutyl acetate\nM END\n> <name>\nisobutyl acetate\n\n> <abbreviation>\nisobutyl acetate\n\n> <group>\nSalts and Solvents\n\n$$$$\nisopropyl acetate\n -INDIGO-11302219142D\n\n 7 6 0 0 0 0 0 0 0 0999 V2000\n 3.1409 -0.3429 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.1409 1.1571 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 4.4400 -1.0929 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8419 -1.0929 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.5429 -0.3429 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7561 -1.0929 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.5429 1.1571 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 5 7 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 isopropyl acetate\nM END\n> <name>\nisopropyl acetate\n\n> <abbreviation>\nisopropyl acetate\n\n> <group>\nSalts and Solvents\n\n$$$$\nmethyl acetate\n -INDIGO-11302219142D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n 0.5429 -0.3429 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.5429 1.1571 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7562 -1.0929 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8419 -1.0929 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 3.1409 -0.3429 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 1 0 0 0 0\n 4 5 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 methyl acetate\nM END\n> <name>\nmethyl acetate\n\n> <abbreviation>\nmethyl acetate\n\n> <group>\nSalts and Solvents\n\n$$$$\nmethyl formate\n -INDIGO-11302219142D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n 1.5821 -0.3429 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5821 1.1571 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 2.8812 -1.0929 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0\n 0.2831 -1.0929 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.0159 -0.3429 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 1 0 0 0 0\n 4 5 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 methyl formate\nM END\n> <name>\nmethyl formate\n\n> <abbreviation>\nmethyl formate\n\n> <group>\nSalts and Solvents\n\n$$$$\nmethyl lactate\n -INDIGO-11302219142D\n\n 7 6 0 0 0 0 0 0 0 0999 V2000\n 7.6971 -2.1071 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.3980 -2.8571 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 5.0991 -2.1071 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.0991 -0.6071 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 3.8000 -2.8571 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.5009 -2.1071 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.8000 -4.3571 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 2 0 0 0 0\n 3 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 5 7 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 methyl lactate\nM END\n> <name>\nmethyl lactate\n\n> <abbreviation>\nmethyl lactate\n\n> <group>\nSalts and Solvents\n\n$$$$\nn-octylacetate\n -INDIGO-11302219142D\n\n 12 11 0 0 0 0 0 0 0 0999 V2000\n 7.7009 4.9462 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 9.0000 5.6962 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 10.2991 4.9462 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 11.5980 5.6962 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 12.8971 4.9462 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 14.1962 5.6962 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 15.4953 4.9462 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 16.7942 5.6962 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 18.0933 4.9462 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 19.3924 5.6962 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 20.6913 4.9462 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 19.3924 7.1962 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 6 7 1 0 0 0 0\n 7 8 1 0 0 0 0\n 8 9 1 0 0 0 0\n 9 10 1 0 0 0 0\n 10 11 1 0 0 0 0\n 10 12 2 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 4 9 10 11 12\nM SMT 1 n-octylacetate\nM END\n> <name>\nn-octylacetate\n\n> <abbreviation>\nn-octylacetate\n\n> <group>\nSalts and Solvents\n\n$$$$\npropyl acetate\n -INDIGO-11302219142D\n\n 7 6 0 0 0 0 0 0 0 0999 V2000\n 6.3403 -0.1607 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 7.6395 2.0893 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 3.7423 -0.1607 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.0413 0.5893 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.4433 0.5893 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.6395 0.5893 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 8.9385 -0.1607 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 4 1 0 0 0 0\n 1 6 1 0 0 0 0\n 2 6 2 0 0 0 0\n 3 4 1 0 0 0 0\n 3 5 1 0 0 0 0\n 6 7 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 propyl acetate\nM END\n> <name>\npropyl acetate\n\n> <abbreviation>\npropyl acetate\n\n> <group>\nSalts and Solvents\n\n$$$$\npropylene carbonate\n -INDIGO-11302219142D\n\n 7 7 0 0 0 0 0 0 0 0999 V2000\n 0.5661 -1.8745 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.5661 -0.3746 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.6474 0.5071 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.1839 1.9338 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.3160 1.9338 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.1978 3.1472 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.7797 0.5071 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 2 0 0 0 0\n 5 7 1 0 0 0 0\n 2 7 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 propylene carbonate\nM END\n> <name>\npropylene carbonate\n\n> <abbreviation>\npropylene carbonate\n\n> <group>\nSalts and Solvents\n\n$$$$\nt-butyl acetate\n -INDIGO-11302219142D\n\n 8 7 0 0 0 0 0 0 0 0999 V2000\n 6.0125 -7.4927 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.7134 -6.7427 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.7134 -5.2428 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 3.4144 -7.4928 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 2.1153 -6.7428 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.8163 -5.9928 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.3653 -8.0418 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.8653 -5.4437 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 2 0 0 0 0\n 2 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 5 7 1 0 0 0 0\n 5 8 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SMT 1 t-butyl acetate\nM END\n> <name>\nt-butyl acetate\n\n> <abbreviation>\nt-butyl acetate\n\n> <group>\nSalts and Solvents\n\n$$$$\n1,2-dimethoxyethane\n -INDIGO-11302219142D\n\n 6 5 0 0 0 0 0 0 0 0999 V2000\n -0.0857 0.1714 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2133 -0.5786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.5124 0.1714 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.3848 -0.5786 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 3.8114 -0.5786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.6838 0.1714 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 1 4 1 0 0 0 0\n 3 5 1 0 0 0 0\n 4 6 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 1,2-dimethoxyethane\nM END\n> <name>\n1,2-dimethoxyethane\n\n> <abbreviation>\n1,2-dimethoxyethane\n\n> <group>\nSalts and Solvents\n\n$$$$\n1,4-dioxane\n -INDIGO-11302219142D\n\n 6 6 0 0 0 0 0 0 0 0999 V2000\n 3.9490 -2.3000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 2.6500 -3.0500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.6500 -4.5500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.9490 -5.3000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 5.2481 -4.5500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.2481 -3.0500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2 3 1 0 0 0 0\n 2 1 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 6 1 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 1,4-dioxane\nM END\n> <name>\n1,4-dioxane\n\n> <abbreviation>\n1,4-dioxane\n\n> <group>\nSalts and Solvents\n\n$$$$\n2-methyl tetrahydrofuran\n -INDIGO-11302219142D\n\n 6 6 0 0 0 0 0 0 0 0999 V2000\n 0.7500 2.3100 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4600 1.4300 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.9600 1.4300 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.3860 1.8953 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3 2 1 0 0 0 0\n 2 1 1 0 0 0 0\n 1 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 3 1 0 0 0 0\n 4 6 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 2-methyl tetrahydrofuran\nM END\n> <name>\n2-methyl tetrahydrofuran\n\n> <abbreviation>\n2-methyl tetrahydrofuran\n\n> <group>\nSalts and Solvents\n\n$$$$\nanisole\n -INDIGO-11302219142D\n\n 8 8 0 0 0 0 0 0 0 0999 V2000\n 6.1000 0.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8010 -0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3990 -0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8010 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1000 -2.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3990 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1000 1.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3990 2.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 2 0 0 0 0\n 2 4 2 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 2 0 0 0 0\n 6 3 1 0 0 0 0\n 1 7 1 0 0 0 0\n 7 8 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SMT 1 anisole\nM END\n> <name>\nanisole\n\n> <abbreviation>\nanisole\n\n> <group>\nSalts and Solvents\n\n$$$$\nbutyl carbitol\n -INDIGO-11302219142D\n\n 11 10 0 0 0 0 0 0 0 0999 V2000\n -0.2227 -3.0342 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0742 -3.7829 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.3750 -3.0387 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.6719 -3.7875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.9782 -3.0336 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 6.2751 -3.7823 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.5758 -3.0382 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 8.8728 -3.7870 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 10.1792 -3.0330 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 11.4761 -3.7817 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 12.7768 -3.0376 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 6 7 1 0 0 0 0\n 7 8 1 0 0 0 0\n 8 9 1 0 0 0 0\n 9 10 1 0 0 0 0\n 10 11 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 3 9 10 11\nM SMT 1 butyl carbitol\nM END\n> <name>\nbutyl carbitol\n\n> <abbreviation>\nbutyl carbitol\n\n> <group>\nSalts and Solvents\n\n$$$$\ncyclopentyl methyl ether\n -INDIGO-11302219142D\n\n 7 7 0 0 0 0 0 0 0 0999 V2000\n 6.1000 1.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8010 1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3990 1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.5053 1.7481 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.3855 0.7467 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.4886 -0.4632 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.9950 -0.6239 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 5 4 1 0 0 0 0\n 4 2 1 0 0 0 0\n 2 6 1 0 0 0 0\n 6 7 1 0 0 0 0\n 7 5 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 cyclopentyl methyl ether\nM END\n> <name>\ncyclopentyl methyl ether\n\n> <abbreviation>\ncyclopentyl methyl ether\n\n> <group>\nSalts and Solvents\n\n$$$$\ndibutyl ether\n -INDIGO-11302219142D\n\n 9 8 0 0 0 0 0 0 0 0999 V2000\n 5.4509 4.6471 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.7500 3.8971 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 8.0491 4.6471 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 9.3480 3.8971 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 10.6470 4.6471 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 11.9461 3.8971 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 13.2452 4.6471 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 14.5441 3.8971 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 15.8432 4.6471 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 6 7 1 0 0 0 0\n 7 8 1 0 0 0 0\n 8 9 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 1 9\nM SMT 1 dibutyl ether\nM END\n> <name>\ndibutyl ether\n\n> <abbreviation>\ndibutyl ether\n\n> <group>\nSalts and Solvents\n\n$$$$\ndiethyl ether\n -INDIGO-11302219142D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n 6.1000 1.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3990 2.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8010 2.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.5019 1.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 8.6980 1.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 2 5 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 ether\nM END\n> <name>\ndiethyl ether\n\n> <abbreviation>\nether\n\n> <group>\nSalts and Solvents\n\n$$$$\ndiethylene glycol\n -INDIGO-11302219142D\n\n 7 6 0 0 0 0 0 0 0 0999 V2000\n 7.7875 -1.4835 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.4896 -2.2328 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.1892 -1.4790 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 3.8854 -2.2317 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.5884 -1.4840 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2906 -2.2333 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 9.0845 -2.2313 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 7 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 diethylene glycol\nM END\n> <name>\ndiethylene glycol\n\n> <abbreviation>\ndiethylene glycol\n\n> <group>\nSalts and Solvents\n\n$$$$\ndiglyme\n -INDIGO-11302219142D\n\n 9 8 0 0 0 0 0 0 0 0999 V2000\n -0.0857 0.1714 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2133 -0.5786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.5124 0.1714 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.3848 -0.5786 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 3.8114 -0.5786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.6838 0.1714 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -3.9828 -0.5786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -5.2818 0.1714 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -6.5809 -0.5786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 1 4 1 0 0 0 0\n 3 5 1 0 0 0 0\n 4 6 1 0 0 0 0\n 6 7 1 0 0 0 0\n 7 8 1 0 0 0 0\n 8 9 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 1 9\nM SMT 1 diglyme\nM END\n> <name>\ndiethylene glycol dimethyl ether\n\n> <abbreviation>\ndiglyme\n\n> <group>\nSalts and Solvents\n\n$$$$\ndiisopropyl ether\n -INDIGO-11302219142D\n\n 7 6 0 0 0 0 0 0 0 0999 V2000\n 5.5971 2.8500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.2980 3.6000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.2980 5.1000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.9991 2.8500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.7000 3.6000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4009 2.8500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.7000 5.1000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 2 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 5 7 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 diisopropyl ether\nM END\n> <name>\ndiisopropyl ether\n\n> <abbreviation>\ndiisopropyl ether\n\n> <group>\nSalts and Solvents\n\n$$$$\ndimethyl ether\n -INDIGO-11302219142D\n\n 3 2 0 0 0 0 0 0 0 0999 V2000\n 4.2989 -0.3750 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 5.5980 0.3750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.9999 0.3750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 3 1 2 3\nM SMT 1 dimethyl ether\nM END\n> <name>\ndimethyl ether\n\n> <abbreviation>\ndimethyl ether\n\n> <group>\nSalts and Solvents\n\n$$$$\ndiphenyl ether\n -INDIGO-11302219142D\n\n 13 14 0 0 0 0 0 0 0 0999 V2000\n 7.1190 1.0305 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 5.8200 0.2805 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.8200 -1.2196 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.5210 -1.9696 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.2219 -1.2195 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.2219 0.2805 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.5209 1.0305 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 8.4181 0.2804 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 9.7171 1.0304 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 11.0161 0.2805 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 11.0161 -1.2194 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 9.7170 -1.9694 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 8.4180 -1.2195 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 2 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 2 0 0 0 0\n 5 6 1 0 0 0 0\n 6 7 2 0 0 0 0\n 2 7 1 0 0 0 0\n 1 8 1 0 0 0 0\n 8 9 2 0 0 0 0\n 9 10 1 0 0 0 0\n 10 11 2 0 0 0 0\n 11 12 1 0 0 0 0\n 12 13 2 0 0 0 0\n 8 13 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 5 9 10 11 12 13\nM SMT 1 diphenyl ether\nM END\n> <name>\ndiphenyl ether\n\n> <abbreviation>\ndiphenyl ether\n\n> <group>\nSalts and Solvents\n\n$$$$\nethoxybenzene\n -INDIGO-11302219142D\n\n 9 9 0 0 0 0 0 0 0 0999 V2000\n 0.0000 6.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 4.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2991 3.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2991 2.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.5980 1.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.5980 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2991 -0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 1.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 2 0 0 0 0\n 5 6 1 0 0 0 0\n 6 7 2 0 0 0 0\n 7 8 1 0 0 0 0\n 8 9 2 0 0 0 0\n 4 9 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 1 9\nM SMT 1 ethoxybenzene\nM END\n> <name>\nethoxybenzene\n\n> <abbreviation>\nethoxybenzene\n\n> <group>\nSalts and Solvents\n\n$$$$\nmethyl t-butyl ether\n -INDIGO-11302219142D\n\n 6 5 0 0 0 0 0 0 0 0999 V2000\n 6.1000 1.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8010 1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3990 1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.5019 0.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.0510 2.2990 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.5510 -0.2990 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 2 4 1 0 0 0 0\n 2 5 1 0 0 0 0\n 2 6 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 methyl t-butyl ether\nM END\n> <name>\nmethyl t-butyl ether\n\n> <abbreviation>\nmethyl t-butyl ether\n\n> <group>\nSalts and Solvents\n\n$$$$\nt-amyl methyl ether\n -INDIGO-11302219142D\n\n 7 6 0 0 0 0 0 0 0 0999 V2000\n 6.8972 0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 5.5982 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.2990 -0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8482 1.2990 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.3482 -1.2990 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 8.1962 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 7 1 0 0 0 0\n 2 3 1 0 0 0 0\n 2 4 1 0 0 0 0\n 2 5 1 0 0 0 0\n 3 6 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 t-amyl methyl ether\nM END\n> <name>\nt-amyl methyl ether\n\n> <abbreviation>\nt-amyl methyl ether\n\n> <group>\nSalts and Solvents\n\n$$$$\nt-butylethyl ether\n -INDIGO-11302219142D\n\n 7 6 0 0 0 0 0 0 0 0999 V2000\n 2.3688 -7.1130 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0698 -7.8630 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.2293 -7.1129 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.5283 -7.8629 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.8274 -8.6129 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.2783 -6.5639 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7783 -9.1620 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 4 6 1 0 0 0 0\n 4 7 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 t-butylethyl ether\nM END\n> <name>\nt-butylethyl ether\n\n> <abbreviation>\nt-butylethyl ether\n\n> <group>\nSalts and Solvents\n\n$$$$\ntetrahydrofuran\n -INDIGO-11302219142D\n\n 5 5 0 0 0 0 0 0 0 0999 V2000\n 0.7500 2.3100 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4600 1.4300 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.9600 1.4300 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3 2 1 0 0 0 0\n 2 1 1 0 0 0 0\n 1 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 3 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 THF\nM END\n> <name>\ntetrahydrofuran\n\n> <abbreviation>\nTHF\n\n> <group>\nSalts and Solvents\n\n$$$$\ntriethylene glycol\n -INDIGO-11302219142D\n\n 10 9 0 0 0 0 0 0 0 0999 V2000\n 4.1520 3.8971 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 5.4509 4.6471 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.7500 3.8971 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 8.0491 4.6471 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 9.3480 3.8971 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 10.6471 4.6471 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 11.9462 3.8971 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 13.2453 4.6471 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 14.5442 3.8971 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 15.8433 4.6471 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 6 7 1 0 0 0 0\n 7 8 1 0 0 0 0\n 8 9 1 0 0 0 0\n 9 10 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 2 9 10\nM SMT 1 triethylene glycol\nM END\n> <name>\ntriethylene glycol\n\n> <abbreviation>\ntriethylene glycol\n\n> <group>\nSalts and Solvents\n\n$$$$\n1,2,4-trichlorobenzene\n -INDIGO-11302219142D\n\n 9 9 0 0 0 0 0 0 0 0999 V2000\n 2.2506 -3.8983 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.9991 -2.5989 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.2506 -1.2994 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7485 -1.2994 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 -2.5989 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7485 -3.8983 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 -5.1978 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 0.0000 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 2.9991 0.0000 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 6 2 0 0 0 0\n 2 3 2 0 0 0 0\n 3 4 1 0 0 0 0\n 3 9 1 0 0 0 0\n 4 5 2 0 0 0 0\n 4 8 1 0 0 0 0\n 5 6 1 0 0 0 0\n 6 7 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 1 9\nM SMT 1 1,2,4-trichlorobenzene\nM END\n> <name>\n1,2,4-trichlorobenzene\n\n> <abbreviation>\n1,2,4-trichlorobenzene\n\n> <group>\nSalts and Solvents\n\n$$$$\n1,2-dichlorobenzene\n -INDIGO-11302219142D\n\n 8 8 0 0 0 0 0 0 0 0999 V2000\n 0.9558 -0.8403 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.4581 -0.8408 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.2048 0.4582 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.4555 1.7560 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.9571 1.7589 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.2065 0.4576 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.2078 3.0567 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 3.2060 3.0573 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 6 2 0 0 0 0\n 2 3 2 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 2 0 0 0 0\n 4 8 1 0 0 0 0\n 5 6 1 0 0 0 0\n 5 7 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SMT 1 1,2-dichlorobenzene\nM END\n> <name>\n1,2-dichlorobenzene\n\n> <abbreviation>\n1,2-dichlorobenzene\n\n> <group>\nSalts and Solvents\n\n$$$$\n1,2-dichloroethane\n -INDIGO-11302219142D\n\n 4 3 0 0 0 0 0 0 0 0999 V2000\n -0.2571 0.8286 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0419 1.5786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.3409 0.8286 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n -1.5562 1.5786 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 1 4 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 4 1 2 3 4\nM SMT 1 DCE\nM END\n> <name>\n1,2-dichloroethane\n\n> <abbreviation>\nDCE\n\n> <group>\nSalts and Solvents\n\n$$$$\n2,2,2-trifluoroethanol\n -INDIGO-11302219142D\n\n 6 5 0 0 0 0 0 0 0 0999 V2000\n 2.3661 -2.2500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0670 -1.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0670 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0670 1.5000 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4330 0.0000 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 2.5670 0.0000 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 3 5 1 0 0 0 0\n 3 6 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 2,2,2-trifluoroethanol\nM END\n> <name>\n2,2,2-trifluoroethanol\n\n> <abbreviation>\n2,2,2-trifluoroethanol\n\n> <group>\nSalts and Solvents\n\n$$$$\n2,3,4-trifluorotoluene\n -INDIGO-11302219142D\n\n 10 10 0 0 0 0 0 0 0 0999 V2000\n 4.0898 1.7173 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 7.0899 1.7173 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 8.5899 -0.8808 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 4.0898 -0.8807 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8398 0.4183 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8399 -2.1798 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.3399 0.4182 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.5898 -0.8807 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.3399 -2.1798 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.0899 -0.8808 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 5 1 0 0 0 0\n 2 7 1 0 0 0 0\n 3 10 1 0 0 0 0\n 4 5 2 0 0 0 0\n 4 6 1 0 0 0 0\n 4 8 1 0 0 0 0\n 5 7 1 0 0 0 0\n 6 9 2 0 0 0 0\n 7 10 2 0 0 0 0\n 9 10 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 2 9 10\nM SMT 1 2,3,4-trifluorotoluene\nM END\n> <name>\n2,3,4-trifluorotoluene\n\n> <abbreviation>\n2,3,4-trifluorotoluene\n\n> <group>\nSalts and Solvents\n\n$$$$\ncarbon tetrachloride\n -INDIGO-11302219142D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n 6.1000 0.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1000 1.7500 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1000 -1.2500 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 7.6000 0.2500 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 4.6000 0.2500 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 1 0 0 0 0\n 1 5 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 carbon tetrachloride\nM END\n> <name>\ncarbon tetrachloride\n\n> <abbreviation>\ncarbon tetrachloride\n\n> <group>\nSalts and Solvents\n\n$$$$\nchloroacetic acid\n -INDIGO-11302219142D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n 9.0626 -7.0246 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 9.0626 -5.5268 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 10.3632 -7.7759 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 6.4658 -7.0246 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 7.7666 -7.7759 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2 1 2 0 0 0 0\n 3 1 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 1 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 chloroacetic acid\nM END\n> <name>\nchloroacetic acid\n\n> <abbreviation>\nchloroacetic acid\n\n> <group>\nSalts and Solvents\n\n$$$$\nchlorobenzene\n -INDIGO-11302219142D\n\n 7 7 0 0 0 0 0 0 0 0999 V2000\n 6.1000 0.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8010 -0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3990 -0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8010 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1000 -2.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3990 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1000 1.7500 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 2 0 0 0 0\n 2 4 2 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 2 0 0 0 0\n 6 3 1 0 0 0 0\n 1 7 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 chlorobenzene\nM END\n> <name>\nchlorobenzene\n\n> <abbreviation>\nchlorobenzene\n\n> <group>\nSalts and Solvents\n\n$$$$\nchloroform\n -INDIGO-11302219142D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n 6.1000 0.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1000 1.7500 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1000 -1.2500 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 7.6000 0.2500 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0\n 4.6000 0.2500 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 1 0 0 0 0\n 1 5 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 chloroform\nM END\n> <name>\nchloroform\n\n> <abbreviation>\nchloroform\n\n> <group>\nSalts and Solvents\n\n$$$$\ndichloromethane\n -INDIGO-11302219142D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n 6.1000 0.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8010 -0.5000 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3990 -0.5000 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 6.8500 1.5490 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0\n 5.3500 1.5490 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 1 0 0 0 0\n 1 5 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 DCM\nM END\n> <name>\ndichloromethane\n\n> <abbreviation>\nDCM\n\n> <group>\nSalts and Solvents\n\n$$$$\nfluorobenzene\n -INDIGO-11302219142D\n\n 7 7 0 0 0 0 0 0 0 0999 V2000\n 1.2991 3.7500 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2991 2.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.5980 1.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.5980 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2991 -0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 1.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 2 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 2 0 0 0 0\n 5 6 1 0 0 0 0\n 6 7 2 0 0 0 0\n 2 7 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 fluorobenzene\nM END\n> <name>\nfluorobenzene\n\n> <abbreviation>\nfluorobenzene\n\n> <group>\nSalts and Solvents\n\n$$$$\nperfluorocyclic ether\n -INDIGO-11302219142D\n\n 25 25 0 0 0 0 0 0 0 0999 V2000\n -1.9038 -6.0746 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n -1.9038 -4.5746 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -3.4038 -4.5746 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n -1.9038 -3.0746 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4038 -4.5746 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4038 -6.0746 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4038 -3.0746 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0962 -4.5746 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0962 -6.0746 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0962 -3.0746 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 2.5962 -4.5746 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.5962 -6.0746 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 2.5962 -3.0746 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 4.0962 -4.5746 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.9395 -6.0662 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 3.9395 -3.0827 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 5.3099 -2.4726 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.5598 -1.1736 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 6.5233 -1.5909 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 6.3135 -3.5873 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3173 -2.4726 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 7.5271 -4.4689 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 5.5635 -4.8864 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.7677 -5.7808 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 5.4224 -6.3797 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 2 4 1 0 0 0 0\n 2 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 5 7 1 0 0 0 0\n 5 8 1 0 0 0 0\n 8 9 1 0 0 0 0\n 8 10 1 0 0 0 0\n 8 11 1 0 0 0 0\n 11 12 1 0 0 0 0\n 11 13 1 0 0 0 0\n 11 14 1 0 0 0 0\n 14 15 1 0 0 0 0\n 14 16 1 0 0 0 0\n 16 17 1 0 0 0 0\n 17 18 1 0 0 0 0\n 17 19 1 0 0 0 0\n 17 20 1 0 0 0 0\n 20 21 1 0 0 0 0\n 20 22 1 0 0 0 0\n 20 23 1 0 0 0 0\n 14 23 1 0 0 0 0\n 23 24 1 0 0 0 0\n 23 25 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 8 9 10 11 12 13 14 15 16\nM SAL 1 8 17 18 19 20 21 22 23 24\nM SAL 1 1 25\nM SMT 1 perfluorocyclic ether\nM END\n> <name>\nperfluorocyclic ether\n\n> <abbreviation>\nperfluorocyclic ether\n\n> <group>\nSalts and Solvents\n\n$$$$\nperfluorocyclohexane\n -INDIGO-11302219142D\n\n 18 18 0 0 0 0 0 0 0 0999 V2000\n 7.8482 2.0490 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 8.5982 0.7500 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 6.5491 2.7990 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 5.0490 2.7990 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 8.5982 -0.7500 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 7.8482 -2.0490 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0000 0.7500 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 3.7500 2.0490 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 5.0490 -2.7990 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 6.5491 -2.7990 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 3.7500 -2.0490 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0000 -0.7500 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 7.0982 0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.7991 1.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.0982 -0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.5000 0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.7991 -1.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.5000 -0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 13 1 0 0 0 0\n 2 13 1 0 0 0 0\n 3 14 1 0 0 0 0\n 4 14 1 0 0 0 0\n 5 15 1 0 0 0 0\n 6 15 1 0 0 0 0\n 7 16 1 0 0 0 0\n 8 16 1 0 0 0 0\n 9 17 1 0 0 0 0\n 10 17 1 0 0 0 0\n 11 18 1 0 0 0 0\n 12 18 1 0 0 0 0\n 13 14 1 0 0 0 0\n 13 15 1 0 0 0 0\n 14 16 1 0 0 0 0\n 15 17 1 0 0 0 0\n 16 18 1 0 0 0 0\n 17 18 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 8 9 10 11 12 13 14 15 16\nM SAL 1 2 17 18\nM SMT 1 perfluorocyclohexane\nM END\n> <name>\nperfluorocyclohexane\n\n> <abbreviation>\nperfluorocyclohexane\n\n> <group>\nSalts and Solvents\n\n$$$$\nperfluorohexane\n -INDIGO-11302219142D\n\n 20 19 0 0 0 0 0 0 0 0999 V2000\n 6.1472 0.9240 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 7.6472 -1.6740 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 8.9463 -0.9240 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 7.4462 1.6740 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 6.3482 -2.4240 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8482 0.1740 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 8.7453 2.4240 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 10.2453 -0.1740 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 5.0491 -3.1740 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 3.5490 -0.5760 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0000 -2.6250 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 10.0444 3.1740 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 11.5444 0.5760 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 12.0935 2.6250 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 6.8972 -0.3750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 8.1963 0.3750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.5982 -1.1250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 9.4953 1.1250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.2991 -1.8750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 10.7944 1.8750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 15 1 0 0 0 0\n 2 15 1 0 0 0 0\n 3 16 1 0 0 0 0\n 4 16 1 0 0 0 0\n 5 17 1 0 0 0 0\n 6 17 1 0 0 0 0\n 7 18 1 0 0 0 0\n 8 18 1 0 0 0 0\n 9 19 1 0 0 0 0\n 10 19 1 0 0 0 0\n 11 19 1 0 0 0 0\n 12 20 1 0 0 0 0\n 13 20 1 0 0 0 0\n 14 20 1 0 0 0 0\n 15 16 1 0 0 0 0\n 15 17 1 0 0 0 0\n 16 18 1 0 0 0 0\n 17 19 1 0 0 0 0\n 18 20 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 8 9 10 11 12 13 14 15 16\nM SAL 1 4 17 18 19 20\nM SMT 1 perfluorohexane\nM END\n> <name>\nperfluorohexane\n\n> <abbreviation>\nperfluorohexane\n\n> <group>\nSalts and Solvents\n\n$$$$\nperfluorotoluene\n -INDIGO-11302219142D\n\n 15 15 0 0 0 0 0 0 0 0999 V2000\n 3.0000 0.7500 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 8.1962 0.7500 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 5.5982 3.7500 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 7.0982 2.2500 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 4.0982 2.2500 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 8.1962 -2.2500 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0000 -2.2500 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 5.5982 -3.7500 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 5.5982 0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.2990 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.8972 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.5982 2.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.8972 -1.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.2990 -1.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.5982 -2.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 10 1 0 0 0 0\n 2 11 1 0 0 0 0\n 3 12 1 0 0 0 0\n 4 12 1 0 0 0 0\n 5 12 1 0 0 0 0\n 6 13 1 0 0 0 0\n 7 14 1 0 0 0 0\n 8 15 1 0 0 0 0\n 9 10 2 0 0 0 0\n 9 11 1 0 0 0 0\n 9 12 1 0 0 0 0\n 10 14 1 0 0 0 0\n 11 13 2 0 0 0 0\n 13 15 1 0 0 0 0\n 14 15 2 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 7 9 10 11 12 13 14 15\nM SMT 1 perfluorotoluene\nM END\n> <name>\nperfluorotoluene\n\n> <abbreviation>\nperfluorotoluene\n\n> <group>\nSalts and Solvents\n\n$$$$\ntrichloroacetic acid\n -INDIGO-11302219142D\n\n 7 6 0 0 0 0 0 0 0 0999 V2000\n 4.3154 -3.6247 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.6336 -2.8642 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.6336 -1.3688 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0543 -2.8010 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 3.1051 -4.3218 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 4.3090 -5.1835 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 6.9579 -3.6120 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 2 1 1 0 0 0 0\n 3 2 2 0 0 0 0\n 4 1 1 0 0 0 0\n 5 1 1 0 0 0 0\n 6 1 1 0 0 0 0\n 7 2 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 trichloroacetic acid\nM END\n> <name>\ntrichloroacetic acid\n\n> <abbreviation>\ntrichloroacetic acid\n\n> <group>\nSalts and Solvents\n\n$$$$\ntrichloroacetonitrile\n -INDIGO-11302219142D\n\n 6 5 0 0 0 0 0 0 0 0999 V2000\n 4.5000 0.0000 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0000 1.5000 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0000 -1.5000 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 2 4 1 0 0 0 0\n 2 5 1 0 0 0 0\n 5 6 3 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 trichloroacetonitrile\nM END\n> <name>\ntrichloroacetonitrile\n\n> <abbreviation>\ntrichloroacetonitrile\n\n> <group>\nSalts and Solvents\n\n$$$$\ntrifluoroacetic acid\n -INDIGO-11302219142D\n\n 7 6 0 0 0 0 0 0 0 0999 V2000\n 1.0500 -4.9991 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.3000 -3.7000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0500 -2.4009 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.2000 -3.7000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.7000 -3.7000 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n -1.2000 -2.2000 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n -1.2000 -5.2000 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 2 0 0 0 0\n 2 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 4 6 1 0 0 0 0\n 4 7 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 trifluoroacetic acid\nM END\n> <name>\ntrifluoroacetic acid\n\n> <abbreviation>\ntrifluoroacetic acid\n\n> <group>\nSalts and Solvents\n\n$$$$\ntrifluoromethylbenzene\n -INDIGO-11302219142D\n\n 10 10 0 0 0 0 0 0 0 0999 V2000\n 6.1000 0.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8010 -0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3990 -0.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8010 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1000 -2.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3990 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1000 1.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1000 3.2500 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 4.6000 1.7500 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 7.6000 1.7500 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 2 0 0 0 0\n 2 4 2 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 2 0 0 0 0\n 6 3 1 0 0 0 0\n 1 7 1 0 0 0 0\n 7 8 1 0 0 0 0\n 7 9 1 0 0 0 0\n 7 10 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 2 9 10\nM SMT 1 trifluoromethylbenzene\nM END\n> <name>\ntrifluoromethylbenzene\n\n> <abbreviation>\ntrifluoromethylbenzene\n\n> <group>\nSalts and Solvents\n\n$$$$\n2-methylpentane\n -INDIGO-11302219142D\n\n 6 5 0 0 0 0 0 0 0 0999 V2000\n 0.5471 -1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7520 -0.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.0509 -1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -3.3500 -0.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -4.6491 -1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -3.3500 1.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 4 6 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 2-methylpentane\nM END\n> <name>\n2-methylpentane\n\n> <abbreviation>\n2-methylpentane\n\n> <group>\nSalts and Solvents\n\n$$$$\ncis-decalin\n -INDIGO-11302219142D\n\n 12 13 0 0 1 0 0 0 0 0999 V2000\n 2.6130 -0.7481 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0\n 2.6130 -2.2234 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0\n 1.3195 -3.0026 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.3195 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.8754 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.8754 -2.9714 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 -0.7481 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.1948 -0.7481 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.1948 -2.2234 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 -2.2234 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.5583 0.8018 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0\n 2.6130 -3.6988 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 4 1 0 0 0 0\n 1 5 1 0 0 0 0\n 2 3 1 0 0 0 0\n 2 6 1 0 0 0 0\n 3 10 1 0 0 0 0\n 4 7 1 0 0 0 0\n 5 8 1 0 0 0 0\n 6 9 1 0 0 0 0\n 7 10 1 0 0 0 0\n 8 9 1 0 0 0 0\n 1 11 1 1 0 0 0\n 2 12 1 1 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 4 9 10 11 12\nM SMT 1 cis-decalin\nM END\n> <name>\ncis-decalin\n\n> <abbreviation>\ncis-decalin\n\n> <group>\nSalts and Solvents\n\n$$$$\ncyclohexane\n -INDIGO-11302219142D\n\n 6 6 0 0 0 0 0 0 0 0999 V2000\n 3.9490 -2.3000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.6500 -3.0500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.6500 -4.5500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.9490 -5.3000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.2481 -4.5500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.2481 -3.0500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2 3 1 0 0 0 0\n 2 1 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 6 1 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 cyclohexane\nM END\n> <name>\ncyclohexane\n\n> <abbreviation>\ncyclohexane\n\n> <group>\nSalts and Solvents\n\n$$$$\nisooctane\n -INDIGO-11302219142D\n\n 8 7 0 0 0 0 0 0 0 0999 V2000\n 4.6062 -2.5071 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.9052 -1.7571 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.2043 -2.5071 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 8.5033 -1.7571 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 9.8023 -2.5071 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.1552 -0.4581 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.6552 -0.4580 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 8.5033 -0.2571 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 2 6 1 0 0 0 0\n 2 7 1 0 0 0 0\n 4 8 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SMT 1 isooctane\nM END\n> <name>\nisooctane\n\n> <abbreviation>\nisooctane\n\n> <group>\nSalts and Solvents\n\n$$$$\nmethylcyclohexane\n -INDIGO-11302219142D\n\n 7 7 0 0 0 0 0 0 0 0999 V2000\n 3.9490 -2.3000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.6500 -3.0500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.6500 -4.5500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.9490 -5.3000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.2481 -4.5500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.2481 -3.0500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.9490 -0.8000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2 3 1 0 0 0 0\n 2 1 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 6 1 1 0 0 0 0\n 1 7 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 methylcyclohexane\nM END\n> <name>\nmethylcyclohexane\n\n> <abbreviation>\nmethylcyclohexane\n\n> <group>\nSalts and Solvents\n\n$$$$\nmethylcyclopentane\n -INDIGO-11302219142D\n\n 6 6 0 0 0 0 0 0 0 0999 V2000\n 4.2136 0.4041 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.4271 -0.4776 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0001 -0.4776 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.9636 -1.9041 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.4636 -1.9041 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 4.2136 1.9041 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 1 6 1 0 0 0 0\n 2 4 1 0 0 0 0\n 3 5 1 0 0 0 0\n 4 5 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 methylcyclopentane\nM END\n> <name>\nmethylcyclopentane\n\n> <abbreviation>\nmethylcyclopentane\n\n> <group>\nSalts and Solvents\n\n$$$$\nheptane\n -INDIGO-11302219142D\n\n 7 6 0 0 0 0 0 0 0 0999 V2000\n 4.6062 -2.5071 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.9052 -1.7571 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.2043 -2.5071 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 8.5033 -1.7571 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 9.8023 -2.5071 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 11.1014 -1.7571 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 12.4004 -2.5071 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 6 7 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 n-heptane\nM END\n> <name>\nheptane\n\n> <abbreviation>\nn-heptane\n\n> <group>\nSalts and Solvents\n\n$$$$\nhexane\n -INDIGO-11302219142D\n\n 6 5 0 0 0 0 0 0 0 0999 V2000\n 4.6062 -2.5071 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.9052 -1.7571 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.2043 -2.5071 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 8.5033 -1.7571 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 9.8023 -2.5071 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 11.1014 -1.7571 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 n-hexane\nM END\n> <name>\nhexane\n\n> <abbreviation>\nn-hexane\n\n> <group>\nSalts and Solvents\n\n$$$$\npentane\n -INDIGO-11302219142D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n 2.5624 -4.3230 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.1578 -4.3230 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.8600 -3.5708 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.4556 -3.5708 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2647 -3.5708 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2 3 1 0 0 0 0\n 3 1 1 0 0 0 0\n 4 2 1 0 0 0 0\n 5 1 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 pentane\nM END\n> <name>\npentane\n\n> <abbreviation>\npentane\n\n> <group>\nSalts and Solvents\n\n$$$$\n2-pentanone\n -INDIGO-11302219142D\n\n 6 5 0 0 0 0 0 0 0 0999 V2000\n -1.5971 -4.2000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.2980 -3.4500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0009 -4.2000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.3000 -3.4500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.5991 -4.2000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.3000 -1.9500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 4 6 2 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 2-pentanone\nM END\n> <name>\n2-pentanone\n\n> <abbreviation>\n2-pentanone\n\n> <group>\nSalts and Solvents\n\n$$$$\n3-pentanone\n -INDIGO-11302219142D\n\n 6 5 0 0 0 0 0 0 0 0999 V2000\n 2.6558 5.4039 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.9548 4.6539 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.2538 5.4039 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 5.2539 6.9040 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 6.5530 4.6539 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 7.8520 5.4039 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 2 0 0 0 0\n 3 5 1 0 0 0 0\n 5 6 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 3-pentanone\nM END\n> <name>\n3-pentanone\n\n> <abbreviation>\n3-pentanone\n\n> <group>\nSalts and Solvents\n\n$$$$\nacetone\n -INDIGO-11302219142D\n\n 4 3 0 0 0 0 0 0 0 0999 V2000\n 0.0571 0.3714 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.2419 -0.3786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.3562 -0.3786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0571 1.8714 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 2 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 4 1 2 3 4\nM SMT 1 propanone\nM END\n> <name>\nacetone\n\n> <abbreviation>\npropanone\n\n> <group>\nSalts and Solvents\n\n$$$$\ncyclohexanone\n -INDIGO-11302219142D\n\n 7 7 0 0 0 0 0 0 0 0999 V2000\n 0.0571 0.3714 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.2419 -0.3786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.3562 -0.3786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0571 1.8714 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.2419 -1.8786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0571 -2.6286 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.3562 -1.8786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 2 0 0 0 0\n 2 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 6 7 1 0 0 0 0\n 7 3 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 cyclohexanone\nM END\n> <name>\ncyclohexanone\n\n> <abbreviation>\ncyclohexanone\n\n> <group>\nSalts and Solvents\n\n$$$$\ncyclopentanone\n -INDIGO-11302219142D\n\n 6 6 0 0 0 0 0 0 0 0999 V2000\n 1.0323 3.5259 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0323 2.0259 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.2458 1.1443 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.7823 -0.2824 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.2824 -0.2824 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.1813 1.1443 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 2 6 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 cyclopentanone\nM END\n> <name>\ncyclopentanone\n\n> <abbreviation>\ncyclopentanone\n\n> <group>\nSalts and Solvents\n\n$$$$\nmethyl ethyl ketone\n -INDIGO-11302219142D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n 0.0571 0.3714 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.2419 -0.3786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.3562 -0.3786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0571 1.8714 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -2.5409 0.3714 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 2 0 0 0 0\n 2 5 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 MEK\nM END\n> <name>\nmethyl ethyl ketone\n\n> <abbreviation>\nMEK\n\n> <group>\nSalts and Solvents\n\n$$$$\nmethyl isobutyl ketone\n -INDIGO-11302219142D\n\n 7 6 0 0 0 0 0 0 0 0999 V2000\n 0.0571 0.3714 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.2419 -0.3786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.3562 -0.3786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0571 1.8714 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -2.5409 0.3714 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -3.8399 -0.3786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.5409 1.8714 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 2 0 0 0 0\n 2 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 5 7 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 methyl isobutyl ketone\nM END\n> <name>\nmethyl isobutyl ketone\n\n> <abbreviation>\nmethyl isobutyl ketone\n\n> <group>\nSalts and Solvents\n\n$$$$\ncarbon disulfide\n -INDIGO-11302219142D\n\n 3 2 0 0 0 0 0 0 0 0999 V2000\n 5.7990 0.0000 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0\n 2.7989 0.0000 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0\n 4.2989 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 3 2 0 0 0 0\n 2 3 2 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 3 1 2 3\nM SMT 1 carbon disulfide\nM END\n> <name>\ncarbon disulfide\n\n> <abbreviation>\ncarbon disulfide\n\n> <group>\nSalts and Solvents\n\n$$$$\nnitromethane\n -INDIGO-11302219142D\n\n 4 3 0 0 0 0 0 0 0 0999 V2000\n 1.5009 0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.8000 1.5000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 4.0991 0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 2.8000 3.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 2 4 2 0 0 0 0\nM CHG 2 2 1 3 -1\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 4 1 2 3 4\nM SMT 1 nitromethane\nM END\n> <name>\nnitromethane\n\n> <abbreviation>\nnitromethane\n\n> <group>\nSalts and Solvents\n\n$$$$\no-xylene\n -INDIGO-11302219142D\n\n 8 8 0 0 0 0 0 0 0 0999 V2000\n -2.1500 4.4750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -3.4490 3.7250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -3.4490 2.2250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.1500 1.4750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.8510 2.2250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.8510 3.7250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.1500 5.9750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4481 4.4750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 2 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 2 0 0 0 0\n 6 1 1 0 0 0 0\n 1 7 1 0 0 0 0\n 6 8 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SMT 1 o-xylene\nM END\n> <name>\no-xylene\n\n> <abbreviation>\no-xylene\n\n> <group>\nSalts and Solvents\n\n$$$$\nm-xylene\n -INDIGO-11302219142D\n\n 8 8 0 0 0 0 0 0 0 0999 V2000\n -2.1500 4.4750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -3.4490 3.7250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -3.4490 2.2250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.1500 1.4750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.8510 2.2250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.8510 3.7250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.1500 5.9750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4480 1.4750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 2 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 2 0 0 0 0\n 6 1 1 0 0 0 0\n 1 7 1 0 0 0 0\n 5 8 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SMT 1 m-xylene\nM END\n> <name>\nm-xylene\n\n> <abbreviation>\nm-xylene\n\n> <group>\nSalts and Solvents\n\n$$$$\np-xylene\n -INDIGO-11302219142D\n\n 8 8 0 0 0 0 0 0 0 0999 V2000\n -2.1500 4.4750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -3.4490 3.7250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -3.4490 2.2250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.1500 1.4750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.8510 2.2250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.8510 3.7250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.1500 5.9750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.1500 -0.0250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 2 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 2 0 0 0 0\n 6 1 1 0 0 0 0\n 1 7 1 0 0 0 0\n 4 8 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SMT 1 p-xylene\nM END\n> <name>\np-xylene\n\n> <abbreviation>\np-xylene\n\n> <group>\nSalts and Solvents\n\n$$$$\nDIPEA\n -INDIGO-11302219142D\n\n 9 8 0 0 0 0 0 0 0 0999 V2000\n -1.5490 7.3145 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -1.5490 8.8145 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.8481 6.5645 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.2500 6.5645 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -4.1471 7.3145 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.8481 5.0645 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0490 7.3145 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.2500 5.0645 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.8481 9.5645 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 1 3 1 0 0 0 0\n 1 4 1 0 0 0 0\n 3 5 1 0 0 0 0\n 3 6 1 0 0 0 0\n 4 7 1 0 0 0 0\n 4 8 1 0 0 0 0\n 2 9 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 1 9\nM SMT 1 DIPEA\nM END\n> <name>\nn,n-diisopropylethylamine\n\n> <abbreviation>\nDIPEA\n\n> <group>\nSalts and Solvents\n\n$$$$\n1,5-diazabicyclo[5.4.0]undec-7-ene\n -INDIGO-11302219142D\n\n 11 12 0 0 0 0 0 0 0 0999 V2000\n 1.6852 -0.3846 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.3514 1.0778 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 1.7286 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.3515 1.0777 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -1.6852 -0.3847 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -3.1695 -0.6090 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -3.7175 -2.0053 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.7822 -3.1781 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.2990 -2.9545 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7500 -1.5574 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7500 -1.5574 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 6 7 1 0 0 0 0\n 7 8 1 0 0 0 0\n 8 9 1 0 0 0 0\n 9 10 2 0 0 0 0\n 10 5 1 0 0 0 0\n 10 11 1 0 0 0 0\n 11 1 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 3 9 10 11\nM SMT 1 DBU\nM END\n> <name>\n1,5-diazabicyclo[5.4.0]undec-7-ene\n\n> <abbreviation>\nDBU\n\n> <group>\nSalts and Solvents\n\n$$$$\nhexamethylphosphoramide\n -INDIGO-11302219142D\n\n 11 10 0 0 0 0 0 0 0 0999 V2000\n 2.3174 -0.9012 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.6235 -1.9903 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 4.8900 -0.9145 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.5935 -3.2519 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0\n 3.5935 -4.7619 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 5.0831 -3.2205 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 6.0654 -4.1562 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.1687 -1.9999 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.1521 -3.2278 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1.3934 -4.5570 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0626 -2.3997 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 2 4 1 0 0 0 0\n 4 5 2 0 0 0 0\n 4 6 1 0 0 0 0\n 6 7 1 0 0 0 0\n 6 8 1 0 0 0 0\n 4 9 1 0 0 0 0\n 9 10 1 0 0 0 0\n 9 11 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 3 9 10 11\nM SMT 1 HMPA\nM END\n> <name>\nhexamethylphosphoramide\n\n> <abbreviation>\nHMPA\n\n> <group>\nSalts and Solvents\n\n$$$$\nhexamethylphosphorous triamide\n -INDIGO-11302219142D\n\n 10 9 0 0 0 0 0 0 0 0999 V2000\n 0.0007 0.0004 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.3000 0.7500 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1.3000 2.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.6000 0.0000 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0\n 3.9000 0.7500 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 5.1992 0.0004 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.9000 2.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.6031 -1.5008 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 3.9032 -2.2490 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.3053 -2.2531 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 2 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 5 7 1 0 0 0 0\n 4 8 1 0 0 0 0\n 8 9 1 0 0 0 0\n 8 10 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SAL 1 2 9 10\nM SMT 1 HMPT\nM END\n> <name>\nhexamethylphosphorous triamide\n\n> <abbreviation>\nHMPT\n\n> <group>\nSalts and Solvents\n\n$$$$\nheavy water\n -INDIGO-11302219142D\n\n 3 2 0 0 0 0 0 0 0 0999 V2000\n 0.0007 0.0004 0.0000 D 0 0 0 0 0 0 0 0 0 0 0 0\n 1.3000 0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 2.5993 0.0004 0.0000 D 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 3 1 2 3\nM SMT 1 D2O\nM END\n> <name>\nheavy water\n\n> <abbreviation>\nD2O\n\n> <group>\nSalts and Solvents\n\n$$$$\nTRIS\n -INDIGO-03312512502D\n\n 8 7 0 0 0 0 0 0 0 0999 V2000\n 16.0940 -10.7437 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 16.9600 -10.2437 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 17.8260 -10.7437 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 16.9600 -9.2437 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 16.9600 -11.2437 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 15.2280 -10.2437 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 18.6921 -10.2437 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 17.8260 -8.7437 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 2 4 1 0 0 0 0\n 2 5 1 0 0 0 0\n 1 6 1 0 0 0 0\n 3 7 1 0 0 0 0\n 4 8 1 0 0 0 0\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 8 1 2 3 4 5 6 7 8\nM SMT 1 TRIS\nM SDI 1 4 0.0000 0.0000 0.0000 0.0000\nM SDI 1 4 0.0000 0.0000 0.0000 0.0000\nM END\n> <name>\nTRIS\n\n> <abbreviation>\nTRIS\n\n> <group>\nSalts and Solvents\n\n$$$$\nTRIS HCl\n Ketcher 3312513372D 1 1.00000 0.00000 0\n\n 9 7 0 0 0 0 0 0 0 0999 V2000\n 15.7719 -6.6396 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 16.6379 -6.1396 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 17.5040 -6.6396 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 16.6379 -5.1396 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 16.6379 -7.1396 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 14.9059 -6.1396 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 18.3700 -6.1396 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 17.5040 -4.6396 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 16.6716 -7.9479 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0\n 2 3 1 0 0 0\n 2 4 1 0 0 0\n 2 5 1 0 0 0\n 1 6 1 0 0 0\n 3 7 1 0 0 0\n 4 8 1 0 0 0\nM CHG 2 5 1 9 -1\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 9 1 2 3 4 5 6 7 8 9\nM SMT 1 TRIS HCl\nM END\n\n> <name>\nTRIS HCl\n\n> <abbreviation>\nTRIS HCl\n\n> <group>\nSalts and Solvents\n\n$$$$\nSodium-chloride\n Ketcher 3312513392D 1 1.00000 0.00000 0\n\n 2 0 0 0 0 0 0 0 0 0999 V2000\n 16.4963 -6.3500 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 15.6713 -6.3500 0.0000 Na 0 0 0 0 0 0 0 0 0 0 0 0\nM CHG 2 1 -1 2 1\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 2 1 2\nM SMT 1 NaCl\nM END\n\n> <name>\nSodium-chloride\n\n> <abbreviation>\nNaCl\n\n> <group>\nSalts and Solvents\n\n$$$$\nSodium-acetate\n Ketcher 3312513462D 1 1.00000 0.00000 0\n\n 5 3 0 0 0 0 0 0 0 0999 V2000\n 15.0102 -10.7437 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 15.8763 -10.2437 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 16.7423 -10.7437 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 15.8763 -9.2437 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 17.5182 -10.7687 0.0000 Na 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0\n 2 3 1 0 0 0\n 2 4 2 0 0 0\nM CHG 2 3 -1 5 1\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 CH3COONa\nM END\n\n> <name>\nSodium-acetate\n\n> <abbreviation>\nCH3COONa\n\n> <group>\nSalts and Solvents\n\n$$$$\nPotassium-chloride\n Ketcher 3312513542D 1 1.00000 0.00000 0\n\n 2 0 0 0 0 0 0 0 0 0999 V2000\n 16.2390 -13.2275 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 15.4140 -13.2275 0.0000 K 0 0 0 0 0 0 0 0 0 0 0 0\nM CHG 2 1 -1 2 1\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 2 1 2\nM SMT 1 KCl\nM END\n\n> <name>\nPotassium-chloride\n\n> <abbreviation>\nKCl\n\n> <group>\nSalts and Solvents\n\n$$$$\nMonopotassium phosphate\n Ketcher 3312513582D 1 1.00000 0.00000 0\n\n 6 4 0 0 0 0 0 0 0 0999 V2000\n 15.0432 -14.6312 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0\n 15.9093 -15.1312 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 15.0432 -13.6312 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 14.1772 -15.1312 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 15.0432 -15.6312 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 16.6098 -15.1562 0.0000 K 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0\n 1 3 2 0 0 0\n 1 4 1 0 0 0\n 1 5 1 0 0 0\nM CHG 2 2 -1 6 1\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 6 1 2 3 4 5 6\nM SMT 1 KH2PO4\nM END\n\n> <name>\nMonopotassium phosphate\n\n> <abbreviation>\nKH2PO4\n\n> <group>\nSalts and Solvents\n\n$$$$\nLithium-chloride\n Ketcher 3312514 52D 1 1.00000 0.00000 0\n\n 2 0 0 0 0 0 0 0 0 0999 V2000\n 16.4828 -15.7375 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 15.6578 -15.7375 0.0000 Li 0 0 0 0 0 0 0 0 0 0 0 0\nM CHG 2 1 -1 2 1\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 2 1 2\nM SMT 1 LiCl\nM END\n\n> <name>\nLithium-chloride\n\n> <abbreviation>\nLiCl\n\n> <group>\nSalts and Solvents\n\n$$$$\nGuanidine HCl\n Ketcher 3312514 62D 1 1.00000 0.00000 0\n\n 5 3 0 0 0 0 0 0 0 0999 V2000\n 14.8573 -16.3937 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 15.7233 -15.8937 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 16.5893 -16.3937 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 15.7233 -14.8937 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 17.8653 -16.3937 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0\n 2 3 1 0 0 0\n 2 4 2 0 0 0\nM CHG 2 3 1 5 -1\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 5 1 2 3 4 5\nM SMT 1 GuHCl\nM END\n\n> <name>\nGuanidine HCl\n\n> <abbreviation>\nGuHCl\n\n> <group>\nSalts and Solvents\n\n$$$$\nDisodium phosphate\n Ketcher 3312514 72D 1 1.00000 0.00000 0\n\n 7 4 0 0 0 0 0 0 0 0999 V2000\n 15.7195 -15.6812 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0\n 16.5856 -16.1812 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 15.7195 -14.6812 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 14.8535 -16.1812 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 15.7195 -16.6812 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 17.2860 -16.2062 0.0000 Na 0 0 0 0 0 0 0 0 0 0 0 0\n 14.1860 -16.1812 0.0000 Na 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0\n 1 3 2 0 0 0\n 1 4 1 0 0 0\n 1 5 1 0 0 0\nM CHG 4 2 -1 4 -1 6 1 7 1\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 Na2HPO4\nM END\n\n> <name>\nDisodium phosphate\n\n> <abbreviation>\nNa2HPO4\n\n> <group>\nSalts and Solvents\n\n$$$$\nDisodium EDTA\n Ketcher 3312514 92D 1 1.00000 0.00000 0\n\n 22 19 0 0 0 0 0 0 0 0999 V2000\n 11.8472 -15.9313 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 12.7132 -15.4313 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 13.5792 -15.9313 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 12.7132 -14.4313 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 14.4453 -15.4313 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 15.3113 -15.9313 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 14.4453 -14.4313 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 15.3113 -13.9313 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 15.3113 -12.9313 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 16.1773 -14.4313 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 16.1773 -15.4313 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 17.0433 -15.9313 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 17.9094 -15.4313 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 17.0433 -16.9313 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 16.1773 -17.4313 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 16.1773 -18.4313 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 15.3113 -16.9313 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 18.7754 -15.9313 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 19.6414 -15.4313 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 18.7754 -16.9313 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 14.5052 -16.9313 0.0000 Na 0 0 0 0 0 0 0 0 0 0 0 0\n 20.4552 -15.4313 0.0000 Na 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0\n 2 3 1 0 0 0\n 2 4 2 0 0 0\n 3 5 1 0 0 0\n 5 6 1 0 0 0\n 5 7 1 0 0 0\n 7 8 1 0 0 0\n 8 9 2 0 0 0\n 8 10 1 0 0 0\n 6 11 1 0 0 0\n 11 12 1 0 0 0\n 12 13 1 0 0 0\n 12 14 1 0 0 0\n 14 15 1 0 0 0\n 15 16 2 0 0 0\n 15 17 1 0 0 0\n 13 18 1 0 0 0\n 18 19 1 0 0 0\n 18 20 2 0 0 0\nM CHG 4 17 -1 19 -1 21 1 22 1\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15\nM SAL 1 7 16 17 18 19 20 21 22\nM SMT 1 Disodium EDTA\nM END\n\n> <name>\nDisodium EDTA\n\n> <abbreviation>\nDisodium EDTA\n\n> <group>\nSalts and Solvents\n\n$$$$\nAmmonium-sulfate\n Ketcher 3312514102D 1 1.00000 0.00000 0\n\n 7 4 0 0 0 0 0 0 0 0999 V2000\n 15.8979 -15.6813 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0\n 16.7639 -16.1813 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 15.8979 -14.6813 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 15.0319 -16.1813 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 15.8979 -16.6813 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 13.7644 -16.2063 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 17.4894 -16.2063 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0\n 1 3 2 0 0 0\n 1 4 1 0 0 0\n 1 5 2 0 0 0\nM CHG 4 2 -1 4 -1 6 1 7 1\nM STY 1 1 SUP\nM SLB 1 1 1\nM SAL 1 7 1 2 3 4 5 6 7\nM SMT 1 (NH4)2SO4\nM END\n\n> <name>\nAmmonium-sulfate\n\n> <abbreviation>\n(NH4)2SO4\n\n> <group>\nSalts and Solvents\n\n$$$$";
|
|
15061
15061
|
|
|
15062
|
-
function ownKeys$
|
|
15063
|
-
function _objectSpread$
|
|
15062
|
+
function ownKeys$1j(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; }
|
|
15063
|
+
function _objectSpread$1j(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1j(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1j(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15064
15064
|
var initialState$1 = {
|
|
15065
15065
|
lib: [],
|
|
15066
15066
|
mode: MODES.FG
|
|
15067
15067
|
};
|
|
15068
15068
|
var saltsAndSolventsReducer = function saltsAndSolventsReducer() {
|
|
15069
15069
|
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState$1;
|
|
15070
|
-
var
|
|
15071
|
-
|
|
15072
|
-
payload =
|
|
15070
|
+
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|
15071
|
+
var type = action.type,
|
|
15072
|
+
payload = action.payload;
|
|
15073
15073
|
if (type === 'SALTS_AND_SOLVENTS_INIT') {
|
|
15074
|
-
return _objectSpread$
|
|
15074
|
+
return _objectSpread$1j(_objectSpread$1j({}, state), payload);
|
|
15075
15075
|
}
|
|
15076
15076
|
return state;
|
|
15077
15077
|
};
|
|
@@ -15085,7 +15085,7 @@ var initSaltsAndSolvents = function initSaltsAndSolvents(lib) {
|
|
|
15085
15085
|
};
|
|
15086
15086
|
function initSaltsAndSolventsTemplates() {
|
|
15087
15087
|
return function () {
|
|
15088
|
-
var
|
|
15088
|
+
var _ref = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(dispatch) {
|
|
15089
15089
|
var saltsAndSolventsProvider, functionalGroupsProvider, sdfSerializer, templates, saltsAndSolvents;
|
|
15090
15090
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
15091
15091
|
while (1) switch (_context.prev = _context.next) {
|
|
@@ -15094,9 +15094,9 @@ function initSaltsAndSolventsTemplates() {
|
|
|
15094
15094
|
functionalGroupsProvider = FunctionalGroupsProvider.getInstance();
|
|
15095
15095
|
sdfSerializer = new SdfSerializer();
|
|
15096
15096
|
templates = sdfSerializer.deserialize(templatesRawData);
|
|
15097
|
-
saltsAndSolvents = templates.reduce(function (acc,
|
|
15098
|
-
var struct =
|
|
15099
|
-
props =
|
|
15097
|
+
saltsAndSolvents = templates.reduce(function (acc, _ref2) {
|
|
15098
|
+
var struct = _ref2.struct,
|
|
15099
|
+
props = _ref2.props;
|
|
15100
15100
|
struct.abbreviation = String(props.abbreviation);
|
|
15101
15101
|
acc.push(struct);
|
|
15102
15102
|
return acc;
|
|
@@ -15114,13 +15114,13 @@ function initSaltsAndSolventsTemplates() {
|
|
|
15114
15114
|
}, _callee);
|
|
15115
15115
|
}));
|
|
15116
15116
|
return function (_x) {
|
|
15117
|
-
return
|
|
15117
|
+
return _ref.apply(this, arguments);
|
|
15118
15118
|
};
|
|
15119
15119
|
}();
|
|
15120
15120
|
}
|
|
15121
15121
|
|
|
15122
|
-
function ownKeys$
|
|
15123
|
-
function _objectSpread$
|
|
15122
|
+
function ownKeys$1i(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; }
|
|
15123
|
+
function _objectSpread$1i(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1i(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1i(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15124
15124
|
var initial = {
|
|
15125
15125
|
freqAtoms: [],
|
|
15126
15126
|
currentAtom: 0,
|
|
@@ -15141,7 +15141,7 @@ function updateVisibleTools(visibleTool, activeTool) {
|
|
|
15141
15141
|
var matchesBondGroup = regExp.exec(key);
|
|
15142
15142
|
if (!matchesBondGroup || menuHeight > 700) res[key] = visibleTool[key];
|
|
15143
15143
|
return res;
|
|
15144
|
-
}, _objectSpread$
|
|
15144
|
+
}, _objectSpread$1i({}, activeTool));
|
|
15145
15145
|
}
|
|
15146
15146
|
function initResize() {
|
|
15147
15147
|
return function (dispatch, getState) {
|
|
@@ -15165,41 +15165,41 @@ function toolbarReducer () {
|
|
|
15165
15165
|
case 'ACTION':
|
|
15166
15166
|
{
|
|
15167
15167
|
var visibleTool = toolInMenu(action.action);
|
|
15168
|
-
return visibleTool ? _objectSpread$
|
|
15168
|
+
return visibleTool ? _objectSpread$1i(_objectSpread$1i({}, state), {}, {
|
|
15169
15169
|
opened: null,
|
|
15170
|
-
visibleTools: _objectSpread$
|
|
15171
|
-
}) : _objectSpread$
|
|
15170
|
+
visibleTools: _objectSpread$1i(_objectSpread$1i({}, state.visibleTools), visibleTool)
|
|
15171
|
+
}) : _objectSpread$1i(_objectSpread$1i({}, state), {}, {
|
|
15172
15172
|
opened: null
|
|
15173
15173
|
});
|
|
15174
15174
|
}
|
|
15175
15175
|
case 'ADD_ATOMS':
|
|
15176
15176
|
{
|
|
15177
15177
|
var newState = addFreqAtom(data, state.freqAtoms, state.currentAtom);
|
|
15178
|
-
return _objectSpread$
|
|
15178
|
+
return _objectSpread$1i(_objectSpread$1i({}, state), newState);
|
|
15179
15179
|
}
|
|
15180
15180
|
case 'CLEAR_VISIBLE':
|
|
15181
15181
|
{
|
|
15182
15182
|
var activeTool = toolInMenu(action.data);
|
|
15183
15183
|
var correctTools = updateVisibleTools(state.visibleTools, activeTool);
|
|
15184
|
-
return _objectSpread$
|
|
15184
|
+
return _objectSpread$1i(_objectSpread$1i({}, state), {}, {
|
|
15185
15185
|
opened: null,
|
|
15186
|
-
visibleTools: _objectSpread$
|
|
15186
|
+
visibleTools: _objectSpread$1i({}, correctTools)
|
|
15187
15187
|
});
|
|
15188
15188
|
}
|
|
15189
15189
|
case 'OPENED':
|
|
15190
15190
|
{
|
|
15191
|
-
return data.isSelected && state.opened ? _objectSpread$
|
|
15191
|
+
return data.isSelected && state.opened ? _objectSpread$1i(_objectSpread$1i({}, state), {}, {
|
|
15192
15192
|
opened: null
|
|
15193
|
-
}) : _objectSpread$
|
|
15193
|
+
}) : _objectSpread$1i(_objectSpread$1i({}, state), {}, {
|
|
15194
15194
|
opened: data.menuName
|
|
15195
15195
|
});
|
|
15196
15196
|
}
|
|
15197
15197
|
case 'UPDATE':
|
|
15198
|
-
return _objectSpread$
|
|
15198
|
+
return _objectSpread$1i(_objectSpread$1i({}, state), {}, {
|
|
15199
15199
|
opened: null
|
|
15200
15200
|
});
|
|
15201
15201
|
case 'MODAL_OPEN':
|
|
15202
|
-
return _objectSpread$
|
|
15202
|
+
return _objectSpread$1i(_objectSpread$1i({}, state), {}, {
|
|
15203
15203
|
opened: null
|
|
15204
15204
|
});
|
|
15205
15205
|
default:
|
|
@@ -15242,8 +15242,8 @@ function hiddenAncestor(el, base) {
|
|
|
15242
15242
|
return findEl;
|
|
15243
15243
|
}
|
|
15244
15244
|
|
|
15245
|
-
function ownKeys$
|
|
15246
|
-
function _objectSpread$
|
|
15245
|
+
function ownKeys$1h(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; }
|
|
15246
|
+
function _objectSpread$1h(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1h(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1h(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15247
15247
|
var initialState = {
|
|
15248
15248
|
visible: false,
|
|
15249
15249
|
rotateHandlePosition: {
|
|
@@ -15260,15 +15260,45 @@ var updateFloatingTools = function updateFloatingTools(payload) {
|
|
|
15260
15260
|
};
|
|
15261
15261
|
var floatingToolsReducer = function floatingToolsReducer() {
|
|
15262
15262
|
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
|
|
15263
|
-
var
|
|
15264
|
-
|
|
15265
|
-
payload =
|
|
15263
|
+
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|
15264
|
+
var type = action.type,
|
|
15265
|
+
payload = action.payload;
|
|
15266
15266
|
if (type === 'UPDATE_FLOATING_TOOLS') {
|
|
15267
|
-
return _objectSpread$
|
|
15267
|
+
return _objectSpread$1h(_objectSpread$1h({}, state), payload);
|
|
15268
15268
|
}
|
|
15269
15269
|
return state;
|
|
15270
15270
|
};
|
|
15271
15271
|
|
|
15272
|
+
function ownKeys$1g(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; }
|
|
15273
|
+
function _objectSpread$1g(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1g(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1g(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15274
|
+
var initNotificationsState = {
|
|
15275
|
+
snackbarNotificationText: ''
|
|
15276
|
+
};
|
|
15277
|
+
function showSnackbarNotification(text) {
|
|
15278
|
+
return {
|
|
15279
|
+
type: 'SHOW_SNACKBAR_NOTIFICATION',
|
|
15280
|
+
data: text
|
|
15281
|
+
};
|
|
15282
|
+
}
|
|
15283
|
+
function selectSnackbarNotificationText(state) {
|
|
15284
|
+
return state.notifications.snackbarNotificationText;
|
|
15285
|
+
}
|
|
15286
|
+
function notificationsReducer() {
|
|
15287
|
+
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initNotificationsState;
|
|
15288
|
+
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|
15289
|
+
if (action.type === 'SHOW_SNACKBAR_NOTIFICATION') {
|
|
15290
|
+
return _objectSpread$1g(_objectSpread$1g({}, state), {}, {
|
|
15291
|
+
snackbarNotificationText: action.data
|
|
15292
|
+
});
|
|
15293
|
+
}
|
|
15294
|
+
if (action.type === 'HIDE_SNACKBAR_NOTIFICATION') {
|
|
15295
|
+
return _objectSpread$1g(_objectSpread$1g({}, state), {}, {
|
|
15296
|
+
snackbarNotificationText: ''
|
|
15297
|
+
});
|
|
15298
|
+
}
|
|
15299
|
+
return state;
|
|
15300
|
+
}
|
|
15301
|
+
|
|
15272
15302
|
var _excluded$v = ["type"],
|
|
15273
15303
|
_excluded2$5 = ["buttons", "customButtons"];
|
|
15274
15304
|
function ownKeys$1f(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; }
|
|
@@ -15293,7 +15323,8 @@ var shared = combineReducers({
|
|
|
15293
15323
|
functionalGroups: functionalGroupsReducer,
|
|
15294
15324
|
saltsAndSolvents: saltsAndSolventsReducer,
|
|
15295
15325
|
requestsStatuses: requestReducer,
|
|
15296
|
-
floatingTools: floatingToolsReducer
|
|
15326
|
+
floatingTools: floatingToolsReducer,
|
|
15327
|
+
notifications: notificationsReducer
|
|
15297
15328
|
});
|
|
15298
15329
|
function getRootReducer(setEditor) {
|
|
15299
15330
|
return function root(state, action) {
|
|
@@ -15336,7 +15367,8 @@ function createStore (options, server, setEditor) {
|
|
|
15336
15367
|
customButtons: customButtons
|
|
15337
15368
|
}),
|
|
15338
15369
|
server: server || Promise.reject(new Error('Standalone mode!')),
|
|
15339
|
-
templates: initTmplsState
|
|
15370
|
+
templates: initTmplsState,
|
|
15371
|
+
notifications: initNotificationsState
|
|
15340
15372
|
};
|
|
15341
15373
|
var middleware = [thunk];
|
|
15342
15374
|
var rootReducer = getRootReducer(setEditor);
|
|
@@ -18125,194 +18157,334 @@ var SGroupTool = function () {
|
|
|
18125
18157
|
}
|
|
18126
18158
|
}
|
|
18127
18159
|
}, {
|
|
18128
|
-
key: "
|
|
18129
|
-
value: function
|
|
18130
|
-
|
|
18131
|
-
|
|
18160
|
+
key: "isContractedFunctionalGroupClicked",
|
|
18161
|
+
value: function isContractedFunctionalGroupClicked(ci, functionalGroups) {
|
|
18162
|
+
return (ci === null || ci === void 0 ? void 0 : ci.map) === 'functionalGroups' && functionalGroups.size && FunctionalGroup.isContractedFunctionalGroup(ci.id, functionalGroups);
|
|
18163
|
+
}
|
|
18164
|
+
}, {
|
|
18165
|
+
key: "processSelectedAtoms",
|
|
18166
|
+
value: function processSelectedAtoms(selected, functionalGroups, struct, molecule, newSelected) {
|
|
18167
|
+
var atomsResult = [];
|
|
18168
|
+
var extraAtoms = false;
|
|
18169
|
+
if (!selected || !functionalGroups.size || !selected.atoms) {
|
|
18170
|
+
return {
|
|
18171
|
+
atomsResult: atomsResult,
|
|
18172
|
+
extraAtoms: extraAtoms
|
|
18173
|
+
};
|
|
18174
|
+
}
|
|
18132
18175
|
var sgroups = struct.sgroups;
|
|
18133
|
-
var
|
|
18134
|
-
|
|
18135
|
-
|
|
18136
|
-
|
|
18137
|
-
|
|
18138
|
-
|
|
18139
|
-
|
|
18176
|
+
var _iterator6 = _createForOfIteratorHelper$f(selected.atoms),
|
|
18177
|
+
_step6;
|
|
18178
|
+
try {
|
|
18179
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
18180
|
+
var _struct$atoms$get3;
|
|
18181
|
+
var atom = _step6.value;
|
|
18182
|
+
var atomId = FunctionalGroup.atomsInFunctionalGroup(functionalGroups, atom);
|
|
18183
|
+
if (atomId == null) {
|
|
18184
|
+
extraAtoms = true;
|
|
18185
|
+
continue;
|
|
18186
|
+
}
|
|
18187
|
+
var atomFromStruct = (_struct$atoms$get3 = struct.atoms.get(atomId)) === null || _struct$atoms$get3 === void 0 ? void 0 : _struct$atoms$get3.a;
|
|
18188
|
+
if (!atomFromStruct) {
|
|
18189
|
+
continue;
|
|
18190
|
+
}
|
|
18191
|
+
var actualSgroupId = this.getActualSgroupId(atomFromStruct);
|
|
18192
|
+
if (this.isAtomInContractedGroup(atomFromStruct, sgroups, functionalGroups)) {
|
|
18193
|
+
this.addContractedGroupToSelection(atom, actualSgroupId, molecule, struct, newSelected);
|
|
18194
|
+
}
|
|
18195
|
+
atomsResult.push(atomId);
|
|
18196
|
+
}
|
|
18197
|
+
} catch (err) {
|
|
18198
|
+
_iterator6.e(err);
|
|
18199
|
+
} finally {
|
|
18200
|
+
_iterator6.f();
|
|
18201
|
+
}
|
|
18202
|
+
return {
|
|
18203
|
+
atomsResult: atomsResult,
|
|
18204
|
+
extraAtoms: extraAtoms
|
|
18140
18205
|
};
|
|
18206
|
+
}
|
|
18207
|
+
}, {
|
|
18208
|
+
key: "getActualSgroupId",
|
|
18209
|
+
value: function getActualSgroupId(atomFromStruct) {
|
|
18141
18210
|
var actualSgroupId;
|
|
18142
|
-
var
|
|
18143
|
-
|
|
18211
|
+
var _iterator7 = _createForOfIteratorHelper$f(atomFromStruct.sgs.values()),
|
|
18212
|
+
_step7;
|
|
18213
|
+
try {
|
|
18214
|
+
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
18215
|
+
var sgId = _step7.value;
|
|
18216
|
+
actualSgroupId = sgId;
|
|
18217
|
+
}
|
|
18218
|
+
} catch (err) {
|
|
18219
|
+
_iterator7.e(err);
|
|
18220
|
+
} finally {
|
|
18221
|
+
_iterator7.f();
|
|
18222
|
+
}
|
|
18223
|
+
return actualSgroupId;
|
|
18224
|
+
}
|
|
18225
|
+
}, {
|
|
18226
|
+
key: "isAtomInContractedGroup",
|
|
18227
|
+
value: function isAtomInContractedGroup(atomFromStruct, sgroups, functionalGroups) {
|
|
18228
|
+
return FunctionalGroup.isAtomInContractedFunctionalGroup(atomFromStruct, sgroups, functionalGroups) || SGroup$1.isAtomInContractedSGroup(atomFromStruct, sgroups);
|
|
18229
|
+
}
|
|
18230
|
+
}, {
|
|
18231
|
+
key: "addContractedGroupToSelection",
|
|
18232
|
+
value: function addContractedGroupToSelection(atom, actualSgroupId, molecule, struct, newSelected) {
|
|
18233
|
+
var _struct$sgroups$get, _struct$sgroups$get2;
|
|
18234
|
+
if (actualSgroupId === undefined) {
|
|
18235
|
+
return;
|
|
18236
|
+
}
|
|
18237
|
+
var sgroupAtoms = SGroup$1.getAtoms(molecule, (_struct$sgroups$get = struct.sgroups.get(actualSgroupId)) === null || _struct$sgroups$get === void 0 ? void 0 : _struct$sgroups$get.item);
|
|
18238
|
+
var sgroupBonds = SGroup$1.getBonds(molecule, (_struct$sgroups$get2 = struct.sgroups.get(actualSgroupId)) === null || _struct$sgroups$get2 === void 0 ? void 0 : _struct$sgroups$get2.item);
|
|
18239
|
+
if (atom === sgroupAtoms[0]) {
|
|
18240
|
+
var _newSelected$atoms2, _newSelected$bonds2;
|
|
18241
|
+
(_newSelected$atoms2 = newSelected.atoms).push.apply(_newSelected$atoms2, _toConsumableArray(sgroupAtoms));
|
|
18242
|
+
(_newSelected$bonds2 = newSelected.bonds).push.apply(_newSelected$bonds2, _toConsumableArray(sgroupBonds));
|
|
18243
|
+
}
|
|
18244
|
+
}
|
|
18245
|
+
}, {
|
|
18246
|
+
key: "processSelectedBonds",
|
|
18247
|
+
value: function processSelectedBonds(selected, functionalGroups, molecule, struct) {
|
|
18144
18248
|
var bondsResult = [];
|
|
18145
|
-
var extraBonds;
|
|
18146
|
-
|
|
18147
|
-
|
|
18148
|
-
|
|
18149
|
-
|
|
18150
|
-
|
|
18151
|
-
|
|
18152
|
-
|
|
18153
|
-
|
|
18154
|
-
|
|
18155
|
-
|
|
18156
|
-
|
|
18157
|
-
|
|
18158
|
-
|
|
18159
|
-
|
|
18160
|
-
|
|
18161
|
-
|
|
18162
|
-
|
|
18163
|
-
|
|
18164
|
-
|
|
18165
|
-
|
|
18166
|
-
actualSgroupId = sgId;
|
|
18167
|
-
}
|
|
18168
|
-
} catch (err) {
|
|
18169
|
-
_iterator7.e(err);
|
|
18170
|
-
} finally {
|
|
18171
|
-
_iterator7.f();
|
|
18172
|
-
}
|
|
18173
|
-
}
|
|
18174
|
-
if (atomFromStruct && (FunctionalGroup.isAtomInContractedFunctionalGroup(atomFromStruct, sgroups, functionalGroups) || SGroup$1.isAtomInContractedSGroup(atomFromStruct, sgroups))) {
|
|
18175
|
-
var _struct$sgroups$get, _struct$sgroups$get2, _newSelected$atoms2, _newSelected$bonds2;
|
|
18176
|
-
var sgroupAtoms = actualSgroupId !== undefined && SGroup$1.getAtoms(molecule, (_struct$sgroups$get = struct.sgroups.get(actualSgroupId)) === null || _struct$sgroups$get === void 0 ? void 0 : _struct$sgroups$get.item);
|
|
18177
|
-
var sgroupBonds = actualSgroupId !== undefined && SGroup$1.getBonds(molecule, (_struct$sgroups$get2 = struct.sgroups.get(actualSgroupId)) === null || _struct$sgroups$get2 === void 0 ? void 0 : _struct$sgroups$get2.item);
|
|
18178
|
-
atom === sgroupAtoms[0] && (_newSelected$atoms2 = newSelected.atoms).push.apply(_newSelected$atoms2, _toConsumableArray(sgroupAtoms)) && (_newSelected$bonds2 = newSelected.bonds).push.apply(_newSelected$bonds2, _toConsumableArray(sgroupBonds));
|
|
18179
|
-
}
|
|
18180
|
-
if (atomFromStruct) {
|
|
18181
|
-
atomsResult.push(atomId);
|
|
18182
|
-
}
|
|
18249
|
+
var extraBonds = false;
|
|
18250
|
+
if (!selected || !functionalGroups.size || !selected.bonds) {
|
|
18251
|
+
return {
|
|
18252
|
+
bondsResult: bondsResult,
|
|
18253
|
+
extraBonds: extraBonds
|
|
18254
|
+
};
|
|
18255
|
+
}
|
|
18256
|
+
var _iterator8 = _createForOfIteratorHelper$f(selected.bonds),
|
|
18257
|
+
_step8;
|
|
18258
|
+
try {
|
|
18259
|
+
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
|
18260
|
+
var _struct$bonds$get2;
|
|
18261
|
+
var bond = _step8.value;
|
|
18262
|
+
var bondId = FunctionalGroup.bondsInFunctionalGroup(molecule, functionalGroups, bond);
|
|
18263
|
+
if (bondId === null) {
|
|
18264
|
+
extraBonds = true;
|
|
18265
|
+
continue;
|
|
18266
|
+
}
|
|
18267
|
+
var bondFromStruct = (_struct$bonds$get2 = struct.bonds.get(bondId)) === null || _struct$bonds$get2 === void 0 ? void 0 : _struct$bonds$get2.b;
|
|
18268
|
+
if (bondFromStruct) {
|
|
18269
|
+
bondsResult.push(bondId);
|
|
18183
18270
|
}
|
|
18184
|
-
} catch (err) {
|
|
18185
|
-
_iterator6.e(err);
|
|
18186
|
-
} finally {
|
|
18187
|
-
_iterator6.f();
|
|
18188
18271
|
}
|
|
18272
|
+
} catch (err) {
|
|
18273
|
+
_iterator8.e(err);
|
|
18274
|
+
} finally {
|
|
18275
|
+
_iterator8.f();
|
|
18189
18276
|
}
|
|
18190
|
-
|
|
18191
|
-
|
|
18192
|
-
|
|
18193
|
-
|
|
18194
|
-
|
|
18195
|
-
|
|
18196
|
-
|
|
18197
|
-
|
|
18198
|
-
|
|
18199
|
-
|
|
18200
|
-
|
|
18201
|
-
|
|
18202
|
-
|
|
18203
|
-
|
|
18204
|
-
|
|
18205
|
-
|
|
18206
|
-
|
|
18207
|
-
|
|
18208
|
-
|
|
18209
|
-
|
|
18277
|
+
return {
|
|
18278
|
+
bondsResult: bondsResult,
|
|
18279
|
+
extraBonds: extraBonds
|
|
18280
|
+
};
|
|
18281
|
+
}
|
|
18282
|
+
}, {
|
|
18283
|
+
key: "expandFunctionalGroupSelection",
|
|
18284
|
+
value: function expandFunctionalGroupSelection(atomsResult, bondsResult, functionalGroups, molecule, struct, newSelected) {
|
|
18285
|
+
this.expandAtomsToFunctionalGroups(atomsResult, functionalGroups, molecule, struct, newSelected);
|
|
18286
|
+
this.expandBondsToFunctionalGroups(bondsResult, functionalGroups, molecule, struct, newSelected);
|
|
18287
|
+
}
|
|
18288
|
+
}, {
|
|
18289
|
+
key: "expandAtomsToFunctionalGroups",
|
|
18290
|
+
value: function expandAtomsToFunctionalGroups(atomsResult, functionalGroups, molecule, struct, newSelected) {
|
|
18291
|
+
if (!atomsResult.length) {
|
|
18292
|
+
return;
|
|
18293
|
+
}
|
|
18294
|
+
atomsResult.forEach(function (id) {
|
|
18295
|
+
var _struct$sgroups$get3, _newSelected$atoms3;
|
|
18296
|
+
var fgId = FunctionalGroup.findFunctionalGroupByAtom(functionalGroups, id);
|
|
18297
|
+
if (fgId === null) {
|
|
18298
|
+
return;
|
|
18299
|
+
}
|
|
18300
|
+
var sgroupAtoms = SGroup$1.getAtoms(molecule, (_struct$sgroups$get3 = struct.sgroups.get(fgId)) === null || _struct$sgroups$get3 === void 0 ? void 0 : _struct$sgroups$get3.item);
|
|
18301
|
+
(_newSelected$atoms3 = newSelected.atoms).push.apply(_newSelected$atoms3, _toConsumableArray(sgroupAtoms));
|
|
18302
|
+
});
|
|
18303
|
+
}
|
|
18304
|
+
}, {
|
|
18305
|
+
key: "expandBondsToFunctionalGroups",
|
|
18306
|
+
value: function expandBondsToFunctionalGroups(bondsResult, functionalGroups, molecule, struct, newSelected) {
|
|
18307
|
+
if (!bondsResult.length) {
|
|
18308
|
+
return;
|
|
18309
|
+
}
|
|
18310
|
+
bondsResult.forEach(function (id) {
|
|
18311
|
+
var _struct$sgroups$get4, _newSelected$bonds3;
|
|
18312
|
+
var fgId = FunctionalGroup.findFunctionalGroupByBond(molecule, functionalGroups, id);
|
|
18313
|
+
if (fgId === null) {
|
|
18314
|
+
return;
|
|
18210
18315
|
}
|
|
18316
|
+
var sgroupBonds = SGroup$1.getBonds(molecule, (_struct$sgroups$get4 = struct.sgroups.get(fgId)) === null || _struct$sgroups$get4 === void 0 ? void 0 : _struct$sgroups$get4.item);
|
|
18317
|
+
(_newSelected$bonds3 = newSelected.bonds).push.apply(_newSelected$bonds3, _toConsumableArray(sgroupBonds));
|
|
18318
|
+
});
|
|
18319
|
+
}
|
|
18320
|
+
}, {
|
|
18321
|
+
key: "collectFunctionalGroupIds",
|
|
18322
|
+
value: function collectFunctionalGroupIds(atomsResult, bondsResult, extraAtoms, extraBonds, functionalGroups, molecule) {
|
|
18323
|
+
if (extraAtoms || extraBonds) {
|
|
18324
|
+
return [];
|
|
18211
18325
|
}
|
|
18212
|
-
|
|
18213
|
-
|
|
18214
|
-
|
|
18326
|
+
var result = [];
|
|
18327
|
+
this.collectFunctionalGroupIdsFromAtoms(atomsResult, functionalGroups, result);
|
|
18328
|
+
this.collectFunctionalGroupIdsFromBonds(bondsResult, functionalGroups, molecule, result);
|
|
18329
|
+
return result;
|
|
18330
|
+
}
|
|
18331
|
+
}, {
|
|
18332
|
+
key: "collectFunctionalGroupIdsFromAtoms",
|
|
18333
|
+
value: function collectFunctionalGroupIdsFromAtoms(atomsResult, functionalGroups, result) {
|
|
18334
|
+
if (!atomsResult || !atomsResult.length) {
|
|
18335
|
+
return;
|
|
18336
|
+
}
|
|
18337
|
+
var _iterator9 = _createForOfIteratorHelper$f(atomsResult),
|
|
18338
|
+
_step9;
|
|
18339
|
+
try {
|
|
18340
|
+
for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
|
|
18341
|
+
var id = _step9.value;
|
|
18215
18342
|
var fgId = FunctionalGroup.findFunctionalGroupByAtom(functionalGroups, id);
|
|
18216
|
-
if (fgId
|
|
18217
|
-
|
|
18343
|
+
if (fgId !== null && !result.includes(fgId)) {
|
|
18344
|
+
result.push(fgId);
|
|
18218
18345
|
}
|
|
18219
|
-
|
|
18220
|
-
|
|
18221
|
-
|
|
18346
|
+
}
|
|
18347
|
+
} catch (err) {
|
|
18348
|
+
_iterator9.e(err);
|
|
18349
|
+
} finally {
|
|
18350
|
+
_iterator9.f();
|
|
18351
|
+
}
|
|
18352
|
+
}
|
|
18353
|
+
}, {
|
|
18354
|
+
key: "collectFunctionalGroupIdsFromBonds",
|
|
18355
|
+
value: function collectFunctionalGroupIdsFromBonds(bondsResult, functionalGroups, molecule, result) {
|
|
18356
|
+
if (!bondsResult || !bondsResult.length) {
|
|
18357
|
+
return;
|
|
18222
18358
|
}
|
|
18223
|
-
|
|
18224
|
-
|
|
18225
|
-
|
|
18359
|
+
var _iterator10 = _createForOfIteratorHelper$f(bondsResult),
|
|
18360
|
+
_step10;
|
|
18361
|
+
try {
|
|
18362
|
+
for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
|
|
18363
|
+
var id = _step10.value;
|
|
18226
18364
|
var fgId = FunctionalGroup.findFunctionalGroupByBond(molecule, functionalGroups, id);
|
|
18227
|
-
if (fgId
|
|
18228
|
-
|
|
18365
|
+
if (fgId !== null && !result.includes(fgId)) {
|
|
18366
|
+
result.push(fgId);
|
|
18229
18367
|
}
|
|
18230
|
-
|
|
18231
|
-
|
|
18232
|
-
|
|
18368
|
+
}
|
|
18369
|
+
} catch (err) {
|
|
18370
|
+
_iterator10.e(err);
|
|
18371
|
+
} finally {
|
|
18372
|
+
_iterator10.f();
|
|
18233
18373
|
}
|
|
18234
|
-
|
|
18235
|
-
|
|
18236
|
-
|
|
18374
|
+
}
|
|
18375
|
+
}, {
|
|
18376
|
+
key: "shouldRemoveSingleFunctionalGroup",
|
|
18377
|
+
value: function shouldRemoveSingleFunctionalGroup(functionalGroupIds) {
|
|
18378
|
+
return functionalGroupIds.length === 1;
|
|
18379
|
+
}
|
|
18380
|
+
}, {
|
|
18381
|
+
key: "determineSelection",
|
|
18382
|
+
value: function determineSelection(event, ci, newSelected, molecule) {
|
|
18383
|
+
if (this.lassoHelper.running(event)) {
|
|
18384
|
+
return this.handleLassoSelection(event, newSelected, molecule);
|
|
18237
18385
|
}
|
|
18238
|
-
|
|
18239
|
-
|
|
18240
|
-
|
|
18241
|
-
|
|
18242
|
-
|
|
18243
|
-
|
|
18244
|
-
|
|
18245
|
-
|
|
18246
|
-
|
|
18247
|
-
|
|
18386
|
+
return this.handleClickSelection(event, ci);
|
|
18387
|
+
}
|
|
18388
|
+
}, {
|
|
18389
|
+
key: "handleLassoSelection",
|
|
18390
|
+
value: function handleLassoSelection(event, newSelected, molecule) {
|
|
18391
|
+
var lassoSelection = this.lassoHelper.end(event);
|
|
18392
|
+
var selection = newSelected.atoms.length > 0 ? selMerge(lassoSelection, newSelected, false) : lassoSelection;
|
|
18393
|
+
var filteredAtomsAndBonds = filterNotPartOfSuperatomWithoutLabel({
|
|
18394
|
+
atoms: selection.atoms,
|
|
18395
|
+
bonds: selection.bonds
|
|
18396
|
+
}, molecule);
|
|
18397
|
+
selection = _objectSpread$15(_objectSpread$15({}, selection), {}, {
|
|
18398
|
+
atoms: filteredAtomsAndBonds.atoms,
|
|
18399
|
+
bonds: filteredAtomsAndBonds.bonds
|
|
18400
|
+
});
|
|
18401
|
+
this.editor.selection(selection);
|
|
18402
|
+
return {
|
|
18403
|
+
id: null,
|
|
18404
|
+
selection: selection
|
|
18405
|
+
};
|
|
18406
|
+
}
|
|
18407
|
+
}, {
|
|
18408
|
+
key: "handleClickSelection",
|
|
18409
|
+
value: function handleClickSelection(event, ci) {
|
|
18410
|
+
if (!ci) {
|
|
18411
|
+
return {
|
|
18412
|
+
id: null,
|
|
18413
|
+
selection: null
|
|
18414
|
+
};
|
|
18415
|
+
}
|
|
18416
|
+
this.editor.hover(this.editor.findItem(event, searchMaps), null, event);
|
|
18417
|
+
if (ci.map === 'atoms') {
|
|
18418
|
+
return {
|
|
18419
|
+
id: null,
|
|
18420
|
+
selection: {
|
|
18421
|
+
atoms: [ci.id]
|
|
18248
18422
|
}
|
|
18249
|
-
}
|
|
18250
|
-
_iterator9.e(err);
|
|
18251
|
-
} finally {
|
|
18252
|
-
_iterator9.f();
|
|
18253
|
-
}
|
|
18423
|
+
};
|
|
18254
18424
|
}
|
|
18255
|
-
if (
|
|
18256
|
-
var
|
|
18257
|
-
|
|
18258
|
-
|
|
18259
|
-
|
|
18260
|
-
|
|
18261
|
-
|
|
18262
|
-
if (_fgId2 !== null && !result.includes(_fgId2)) {
|
|
18263
|
-
result.push(_fgId2);
|
|
18264
|
-
}
|
|
18425
|
+
if (ci.map === 'bonds') {
|
|
18426
|
+
var bond = this.editor.render.ctab.bonds.get(ci.id);
|
|
18427
|
+
return {
|
|
18428
|
+
id: null,
|
|
18429
|
+
selection: {
|
|
18430
|
+
atoms: [bond === null || bond === void 0 ? void 0 : bond.b.begin, bond === null || bond === void 0 ? void 0 : bond.b.end],
|
|
18431
|
+
bonds: [ci.id]
|
|
18265
18432
|
}
|
|
18266
|
-
}
|
|
18267
|
-
|
|
18268
|
-
|
|
18269
|
-
|
|
18270
|
-
|
|
18433
|
+
};
|
|
18434
|
+
}
|
|
18435
|
+
if (ci.map === 'sgroups' || ci.map === 'sgroupData') {
|
|
18436
|
+
return {
|
|
18437
|
+
id: ci.id,
|
|
18438
|
+
selection: null
|
|
18439
|
+
};
|
|
18440
|
+
}
|
|
18441
|
+
return {
|
|
18442
|
+
id: null,
|
|
18443
|
+
selection: null
|
|
18444
|
+
};
|
|
18445
|
+
}
|
|
18446
|
+
}, {
|
|
18447
|
+
key: "shouldOpenDialog",
|
|
18448
|
+
value: function shouldOpenDialog(id, selection) {
|
|
18449
|
+
var _selection$atoms, _selection$bonds;
|
|
18450
|
+
var isAtomsOrBondsSelected = (selection === null || selection === void 0 || (_selection$atoms = selection.atoms) === null || _selection$atoms === void 0 ? void 0 : _selection$atoms.length) || (selection === null || selection === void 0 || (_selection$bonds = selection.bonds) === null || _selection$bonds === void 0 ? void 0 : _selection$bonds.length);
|
|
18451
|
+
return id !== null || isAtomsOrBondsSelected;
|
|
18452
|
+
}
|
|
18453
|
+
}, {
|
|
18454
|
+
key: "mouseup",
|
|
18455
|
+
value: function mouseup(event) {
|
|
18456
|
+
var struct = this.editor.render.ctab;
|
|
18457
|
+
var molecule = struct.molecule;
|
|
18458
|
+
var functionalGroups = molecule.functionalGroups;
|
|
18459
|
+
var ci = this.editor.findItem(event, searchMaps);
|
|
18460
|
+
var selected = this.editor.selection();
|
|
18461
|
+
if (this.isContractedFunctionalGroupClicked(ci, functionalGroups)) {
|
|
18462
|
+
return;
|
|
18271
18463
|
}
|
|
18272
|
-
|
|
18464
|
+
var newSelected = {
|
|
18465
|
+
atoms: [],
|
|
18466
|
+
bonds: []
|
|
18467
|
+
};
|
|
18468
|
+
var _this$processSelected = this.processSelectedAtoms(selected, functionalGroups, struct, molecule, newSelected),
|
|
18469
|
+
atomsResult = _this$processSelected.atomsResult,
|
|
18470
|
+
extraAtoms = _this$processSelected.extraAtoms;
|
|
18471
|
+
var _this$processSelected2 = this.processSelectedBonds(selected, functionalGroups, molecule, struct),
|
|
18472
|
+
bondsResult = _this$processSelected2.bondsResult,
|
|
18473
|
+
extraBonds = _this$processSelected2.extraBonds;
|
|
18474
|
+
this.expandFunctionalGroupSelection(atomsResult, bondsResult, functionalGroups, molecule, struct, newSelected);
|
|
18475
|
+
var functionalGroupIds = this.collectFunctionalGroupIds(atomsResult, bondsResult, extraAtoms, extraBonds, functionalGroups, molecule);
|
|
18476
|
+
if (this.shouldRemoveSingleFunctionalGroup(functionalGroupIds)) {
|
|
18273
18477
|
this.editor.selection(null);
|
|
18274
18478
|
this.lassoHelper.cancel();
|
|
18275
18479
|
this.editor.event.removeFG.dispatch({
|
|
18276
|
-
fgIds:
|
|
18480
|
+
fgIds: functionalGroupIds
|
|
18277
18481
|
});
|
|
18278
18482
|
return;
|
|
18279
18483
|
}
|
|
18280
|
-
var
|
|
18281
|
-
|
|
18282
|
-
|
|
18283
|
-
|
|
18284
|
-
var filteredAtomsAndBonds = filterNotPartOfSuperatomWithoutLabel({
|
|
18285
|
-
atoms: selection.atoms,
|
|
18286
|
-
bonds: selection.bonds
|
|
18287
|
-
}, molecule);
|
|
18288
|
-
selection = _objectSpread$15(_objectSpread$15({}, selection), {}, {
|
|
18289
|
-
atoms: filteredAtomsAndBonds.atoms,
|
|
18290
|
-
bonds: filteredAtomsAndBonds.bonds
|
|
18291
|
-
});
|
|
18292
|
-
this.editor.selection(selection);
|
|
18293
|
-
} else {
|
|
18294
|
-
if (!ci) {
|
|
18295
|
-
return;
|
|
18296
|
-
}
|
|
18297
|
-
this.editor.hover(this.editor.findItem(event, searchMaps), null, event);
|
|
18298
|
-
if (ci.map === 'atoms') {
|
|
18299
|
-
selection = {
|
|
18300
|
-
atoms: [ci.id]
|
|
18301
|
-
};
|
|
18302
|
-
} else if (ci.map === 'bonds') {
|
|
18303
|
-
var _bond = this.editor.render.ctab.bonds.get(ci.id);
|
|
18304
|
-
selection = {
|
|
18305
|
-
atoms: [_bond === null || _bond === void 0 ? void 0 : _bond.b.begin, _bond === null || _bond === void 0 ? void 0 : _bond.b.end],
|
|
18306
|
-
bonds: [ci.id]
|
|
18307
|
-
};
|
|
18308
|
-
} else if (ci.map === 'sgroups' || ci.map === 'sgroupData') {
|
|
18309
|
-
id = ci.id;
|
|
18310
|
-
} else {
|
|
18311
|
-
return;
|
|
18312
|
-
}
|
|
18313
|
-
}
|
|
18314
|
-
var isAtomsOrBondsSelected = ((_selection = selection) === null || _selection === void 0 || (_selection = _selection.atoms) === null || _selection === void 0 ? void 0 : _selection.length) || ((_selection2 = selection) === null || _selection2 === void 0 || (_selection2 = _selection2.bonds) === null || _selection2 === void 0 ? void 0 : _selection2.length);
|
|
18315
|
-
if (id !== null || isAtomsOrBondsSelected) {
|
|
18484
|
+
var _this$determineSelect = this.determineSelection(event, ci, newSelected, molecule),
|
|
18485
|
+
id = _this$determineSelect.id,
|
|
18486
|
+
selection = _this$determineSelect.selection;
|
|
18487
|
+
if (this.shouldOpenDialog(id, selection)) {
|
|
18316
18488
|
this.editor.selection(selection);
|
|
18317
18489
|
SGroupTool.sgroupDialog(this.editor, id);
|
|
18318
18490
|
}
|
|
@@ -18649,7 +18821,10 @@ function customOnChangeHandler(action, handler) {
|
|
|
18649
18821
|
return handler();
|
|
18650
18822
|
}
|
|
18651
18823
|
function handleMicroChanges(action, handler) {
|
|
18652
|
-
action.operations.
|
|
18824
|
+
if (!(action !== null && action !== void 0 && action.operations) || !Array.isArray(action.operations)) {
|
|
18825
|
+
return handler(data);
|
|
18826
|
+
}
|
|
18827
|
+
_toConsumableArray(action.operations).reverse().forEach(function (operation) {
|
|
18653
18828
|
var op = operation._inverted;
|
|
18654
18829
|
switch (op.type) {
|
|
18655
18830
|
case OperationType.ATOM_ADD:
|
|
@@ -21462,9 +21637,11 @@ function findCloseMerge(restruct, selected, options) {
|
|
|
21462
21637
|
});
|
|
21463
21638
|
selected.bonds.forEach(function (bid) {
|
|
21464
21639
|
var bond = struct.bonds.get(bid);
|
|
21465
|
-
|
|
21466
|
-
|
|
21467
|
-
|
|
21640
|
+
if (bond) {
|
|
21641
|
+
pos.bonds.set(bid, Vec2.lc2(
|
|
21642
|
+
struct.atoms.get(bond.begin).pp, 0.5,
|
|
21643
|
+
struct.atoms.get(bond.end).pp, 0.5));
|
|
21644
|
+
}
|
|
21468
21645
|
});
|
|
21469
21646
|
var result = {
|
|
21470
21647
|
atoms: new Map(),
|
|
@@ -25778,6 +25955,20 @@ var Editor$3 = function () {
|
|
|
25778
25955
|
});
|
|
25779
25956
|
this.render.update(true);
|
|
25780
25957
|
}
|
|
25958
|
+
}, {
|
|
25959
|
+
key: "setRnaComponentAtoms",
|
|
25960
|
+
value: function setRnaComponentAtoms(componentKey, atomIds, bondIds) {
|
|
25961
|
+
var currentState = this.render.monomerCreationState;
|
|
25962
|
+
if (!currentState) return;
|
|
25963
|
+
var rnaComponentAtoms = currentState.rnaComponentAtoms || new Map();
|
|
25964
|
+
rnaComponentAtoms.set(componentKey, {
|
|
25965
|
+
atoms: atomIds,
|
|
25966
|
+
bonds: bondIds
|
|
25967
|
+
});
|
|
25968
|
+
this.render.monomerCreationState = _objectSpread$V(_objectSpread$V({}, currentState), {}, {
|
|
25969
|
+
rnaComponentAtoms: rnaComponentAtoms
|
|
25970
|
+
});
|
|
25971
|
+
}
|
|
25781
25972
|
}, {
|
|
25782
25973
|
key: "isMonomerCreationWizardActive",
|
|
25783
25974
|
get: function get() {
|
|
@@ -26044,6 +26235,7 @@ var Editor$3 = function () {
|
|
|
26044
26235
|
var _this2 = this;
|
|
26045
26236
|
var forceAddNewLeavingGroupAtom = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
26046
26237
|
var leavingAtomLabel = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : AtomLabel.H;
|
|
26238
|
+
var leavingAtomPosition = arguments.length > 6 ? arguments[6] : undefined;
|
|
26047
26239
|
assert_1(this.monomerCreationState);
|
|
26048
26240
|
var potentialLeavingAtoms = this.monomerCreationState.potentialAttachmentPoints.get(atomId);
|
|
26049
26241
|
var leavingAtomId;
|
|
@@ -26073,7 +26265,7 @@ var Editor$3 = function () {
|
|
|
26073
26265
|
stereo: Bond$2.PATTERN.STEREO.NONE
|
|
26074
26266
|
}, atomId, {
|
|
26075
26267
|
label: leavingAtomLabel
|
|
26076
|
-
}),
|
|
26268
|
+
}, undefined, leavingAtomPosition),
|
|
26077
26269
|
_fromBondAddition2 = _slicedToArray$1(_fromBondAddition, 4),
|
|
26078
26270
|
bondAdditionAction = _fromBondAddition2[0],
|
|
26079
26271
|
endAtomId = _fromBondAddition2[2],
|
|
@@ -26459,18 +26651,244 @@ var Editor$3 = function () {
|
|
|
26459
26651
|
});
|
|
26460
26652
|
return potentialLeavingAtoms;
|
|
26461
26653
|
}
|
|
26654
|
+
}, {
|
|
26655
|
+
key: "getRnaComponentForAtom",
|
|
26656
|
+
value: function getRnaComponentForAtom(atomId) {
|
|
26657
|
+
var _this$monomerCreation;
|
|
26658
|
+
var rnaComponentAtoms = (_this$monomerCreation = this.monomerCreationState) === null || _this$monomerCreation === void 0 ? void 0 : _this$monomerCreation.rnaComponentAtoms;
|
|
26659
|
+
if (!rnaComponentAtoms) {
|
|
26660
|
+
return null;
|
|
26661
|
+
}
|
|
26662
|
+
var _iterator2 = _createForOfIteratorHelper$2(rnaComponentAtoms.entries()),
|
|
26663
|
+
_step2;
|
|
26664
|
+
try {
|
|
26665
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
26666
|
+
var _step2$value = _slicedToArray$1(_step2.value, 2),
|
|
26667
|
+
componentKey = _step2$value[0],
|
|
26668
|
+
componentData = _step2$value[1];
|
|
26669
|
+
if (componentData.atoms.includes(atomId)) {
|
|
26670
|
+
return componentKey;
|
|
26671
|
+
}
|
|
26672
|
+
}
|
|
26673
|
+
} catch (err) {
|
|
26674
|
+
_iterator2.e(err);
|
|
26675
|
+
} finally {
|
|
26676
|
+
_iterator2.f();
|
|
26677
|
+
}
|
|
26678
|
+
return null;
|
|
26679
|
+
}
|
|
26680
|
+
}, {
|
|
26681
|
+
key: "canAssignRnaComponent",
|
|
26682
|
+
value: function canAssignRnaComponent(bond) {
|
|
26683
|
+
var _this$monomerCreation2,
|
|
26684
|
+
_this6 = this;
|
|
26685
|
+
if (!((_this$monomerCreation2 = this.monomerCreationState) !== null && _this$monomerCreation2 !== void 0 && _this$monomerCreation2.rnaComponentAtoms)) {
|
|
26686
|
+
return false;
|
|
26687
|
+
}
|
|
26688
|
+
var beginAtomRnaComponent = this.getRnaComponentForAtom(bond.begin);
|
|
26689
|
+
var endAtomRnaComponent = this.getRnaComponentForAtom(bond.end);
|
|
26690
|
+
if (!beginAtomRnaComponent && !endAtomRnaComponent || beginAtomRnaComponent && endAtomRnaComponent && beginAtomRnaComponent !== endAtomRnaComponent) {
|
|
26691
|
+
return false;
|
|
26692
|
+
}
|
|
26693
|
+
var rnaComponentToAssign = beginAtomRnaComponent || endAtomRnaComponent;
|
|
26694
|
+
var struct = this.struct();
|
|
26695
|
+
var atomIdToStartFrom = beginAtomRnaComponent ? bond.begin : bond.end;
|
|
26696
|
+
var visitedAtomIds = new Set();
|
|
26697
|
+
var atomsToCheck = [atomIdToStartFrom];
|
|
26698
|
+
var hasConnectionToAnotherComponent = false;
|
|
26699
|
+
var hasConnectionToOriginalStructure = false;
|
|
26700
|
+
visitedAtomIds.add(atomIdToStartFrom);
|
|
26701
|
+
var _loop = function _loop() {
|
|
26702
|
+
var currentAtomId = atomsToCheck.pop();
|
|
26703
|
+
var currentAtom = isNumber(currentAtomId) ? struct.atoms.get(currentAtomId) : undefined;
|
|
26704
|
+
if (!currentAtom) {
|
|
26705
|
+
return 1;
|
|
26706
|
+
}
|
|
26707
|
+
currentAtom === null || currentAtom === void 0 || currentAtom.neighbors.forEach(function (neighbor) {
|
|
26708
|
+
var halfBond = struct.halfBonds.get(neighbor);
|
|
26709
|
+
if (hasConnectionToAnotherComponent || hasConnectionToOriginalStructure) {
|
|
26710
|
+
return;
|
|
26711
|
+
}
|
|
26712
|
+
if (!halfBond) {
|
|
26713
|
+
KetcherLogger.warn('Half-bond not found in structure');
|
|
26714
|
+
return;
|
|
26715
|
+
}
|
|
26716
|
+
var neighborAtomId = halfBond.begin === currentAtomId ? halfBond.end : halfBond.begin;
|
|
26717
|
+
if (visitedAtomIds.has(neighborAtomId)) {
|
|
26718
|
+
return;
|
|
26719
|
+
}
|
|
26720
|
+
visitedAtomIds.add(neighborAtomId);
|
|
26721
|
+
var neighborAtomRnaComponent = _this6.getRnaComponentForAtom(neighborAtomId);
|
|
26722
|
+
if (neighborAtomRnaComponent === rnaComponentToAssign) {
|
|
26723
|
+
return;
|
|
26724
|
+
}
|
|
26725
|
+
if (neighborAtomRnaComponent && neighborAtomRnaComponent !== rnaComponentToAssign) {
|
|
26726
|
+
hasConnectionToAnotherComponent = true;
|
|
26727
|
+
return;
|
|
26728
|
+
}
|
|
26729
|
+
var originalAtomId = _this6.selectedToOriginalAtomsIdMap.get(neighborAtomId);
|
|
26730
|
+
if (isNumber(originalAtomId) && _this6.originalStruct.atoms.has(originalAtomId)) {
|
|
26731
|
+
hasConnectionToOriginalStructure = true;
|
|
26732
|
+
return;
|
|
26733
|
+
}
|
|
26734
|
+
atomsToCheck.push(neighborAtomId);
|
|
26735
|
+
visitedAtomIds.add(neighborAtomId);
|
|
26736
|
+
});
|
|
26737
|
+
};
|
|
26738
|
+
while (atomsToCheck.length > 0) {
|
|
26739
|
+
if (_loop()) continue;
|
|
26740
|
+
}
|
|
26741
|
+
if (hasConnectionToAnotherComponent || hasConnectionToOriginalStructure) {
|
|
26742
|
+
return false;
|
|
26743
|
+
}
|
|
26744
|
+
return true;
|
|
26745
|
+
}
|
|
26746
|
+
}, {
|
|
26747
|
+
key: "autoAssignAtomToRnaComponent",
|
|
26748
|
+
value: function autoAssignAtomToRnaComponent(bondId) {
|
|
26749
|
+
var _this$monomerCreation3;
|
|
26750
|
+
var rnaComponentAtoms = (_this$monomerCreation3 = this.monomerCreationState) === null || _this$monomerCreation3 === void 0 ? void 0 : _this$monomerCreation3.rnaComponentAtoms;
|
|
26751
|
+
if (!rnaComponentAtoms) {
|
|
26752
|
+
return;
|
|
26753
|
+
}
|
|
26754
|
+
var struct = this.struct();
|
|
26755
|
+
var bond = struct.bonds.get(bondId);
|
|
26756
|
+
if (!bond) {
|
|
26757
|
+
KetcherLogger.warn('Bond not found in structure');
|
|
26758
|
+
return;
|
|
26759
|
+
}
|
|
26760
|
+
var beginAtomComponent = this.getRnaComponentForAtom(bond.begin);
|
|
26761
|
+
var endAtomComponent = this.getRnaComponentForAtom(bond.end);
|
|
26762
|
+
var componentToMark = beginAtomComponent || endAtomComponent;
|
|
26763
|
+
if (!componentToMark) {
|
|
26764
|
+
return;
|
|
26765
|
+
}
|
|
26766
|
+
var atomsIdsToMark = [];
|
|
26767
|
+
var bondIdsToMark = [];
|
|
26768
|
+
var bondIdsToCheck = [bondId];
|
|
26769
|
+
var visitedBonds = new Set();
|
|
26770
|
+
while (bondIdsToCheck.length > 0) {
|
|
26771
|
+
var currentBondId = bondIdsToCheck.pop();
|
|
26772
|
+
var currentBond = isNumber(currentBondId) ? struct.bonds.get(currentBondId) : undefined;
|
|
26773
|
+
if (!isNumber(currentBondId) || !currentBond || visitedBonds.has(currentBondId)) {
|
|
26774
|
+
continue;
|
|
26775
|
+
}
|
|
26776
|
+
bondIdsToMark.push(currentBondId);
|
|
26777
|
+
visitedBonds.add(currentBondId);
|
|
26778
|
+
var beginAtom = struct.atoms.get(currentBond.begin);
|
|
26779
|
+
var endAtom = struct.atoms.get(currentBond.end);
|
|
26780
|
+
var beginAtomRnaComponent = this.getRnaComponentForAtom(currentBond.begin);
|
|
26781
|
+
var endAtomRnaComponent = this.getRnaComponentForAtom(currentBond.end);
|
|
26782
|
+
var atomsToContinue = [];
|
|
26783
|
+
if (beginAtom && beginAtomRnaComponent !== componentToMark) {
|
|
26784
|
+
atomsIdsToMark.push(currentBond.begin);
|
|
26785
|
+
atomsToContinue.push(beginAtom);
|
|
26786
|
+
}
|
|
26787
|
+
if (endAtom && endAtomRnaComponent !== componentToMark) {
|
|
26788
|
+
atomsIdsToMark.push(currentBond.end);
|
|
26789
|
+
atomsToContinue.push(endAtom);
|
|
26790
|
+
}
|
|
26791
|
+
atomsToContinue.forEach(function (atom) {
|
|
26792
|
+
atom.neighbors.forEach(function (halfBondId) {
|
|
26793
|
+
var halfBond = struct.halfBonds.get(halfBondId);
|
|
26794
|
+
if (!halfBond) {
|
|
26795
|
+
KetcherLogger.warn('Half-bond not found in structure');
|
|
26796
|
+
return;
|
|
26797
|
+
}
|
|
26798
|
+
var nextBondId = halfBond.bid;
|
|
26799
|
+
var nextBond = struct.bonds.get(nextBondId);
|
|
26800
|
+
if (!nextBond || bondIdsToCheck.includes(nextBondId)) {
|
|
26801
|
+
KetcherLogger.warn('Bond not found in structure');
|
|
26802
|
+
return;
|
|
26803
|
+
}
|
|
26804
|
+
bondIdsToCheck.push(nextBondId);
|
|
26805
|
+
});
|
|
26806
|
+
});
|
|
26807
|
+
}
|
|
26808
|
+
this.addAtomsAndBondsToRnaComponent(componentToMark, atomsIdsToMark, bondIdsToMark);
|
|
26809
|
+
}
|
|
26810
|
+
}, {
|
|
26811
|
+
key: "updateRnaComponentStructureState",
|
|
26812
|
+
value: function updateRnaComponentStructureState(componentKey, updatedAtoms, updatedBonds) {
|
|
26813
|
+
var _this$monomerCreation4;
|
|
26814
|
+
(_this$monomerCreation4 = this.monomerCreationState) === null || _this$monomerCreation4 === void 0 || (_this$monomerCreation4 = _this$monomerCreation4.rnaComponentAtoms) === null || _this$monomerCreation4 === void 0 || _this$monomerCreation4.set(componentKey, {
|
|
26815
|
+
atoms: updatedAtoms,
|
|
26816
|
+
bonds: updatedBonds
|
|
26817
|
+
});
|
|
26818
|
+
var eventData = {
|
|
26819
|
+
componentKey: componentKey,
|
|
26820
|
+
atomIds: updatedAtoms,
|
|
26821
|
+
bondIds: updatedBonds
|
|
26822
|
+
};
|
|
26823
|
+
window.dispatchEvent(new CustomEvent(MonomerCreationComponentStructureUpdateEvent, {
|
|
26824
|
+
detail: eventData
|
|
26825
|
+
}));
|
|
26826
|
+
}
|
|
26827
|
+
}, {
|
|
26828
|
+
key: "addAtomsAndBondsToRnaComponent",
|
|
26829
|
+
value: function addAtomsAndBondsToRnaComponent(componentKey, atomIds, bondIds) {
|
|
26830
|
+
var _this$monomerCreation5;
|
|
26831
|
+
if (!((_this$monomerCreation5 = this.monomerCreationState) !== null && _this$monomerCreation5 !== void 0 && _this$monomerCreation5.rnaComponentAtoms)) {
|
|
26832
|
+
return;
|
|
26833
|
+
}
|
|
26834
|
+
var componentData = this.monomerCreationState.rnaComponentAtoms.get(componentKey);
|
|
26835
|
+
if (!componentData) {
|
|
26836
|
+
return;
|
|
26837
|
+
}
|
|
26838
|
+
var updatedAtoms = _toConsumableArray(componentData.atoms);
|
|
26839
|
+
var updatedBonds = _toConsumableArray(componentData.bonds);
|
|
26840
|
+
atomIds.forEach(function (atomId) {
|
|
26841
|
+
if (!updatedAtoms.includes(atomId)) {
|
|
26842
|
+
updatedAtoms.push(atomId);
|
|
26843
|
+
}
|
|
26844
|
+
});
|
|
26845
|
+
bondIds.forEach(function (bondId) {
|
|
26846
|
+
if (!updatedBonds.includes(bondId)) {
|
|
26847
|
+
updatedBonds.push(bondId);
|
|
26848
|
+
}
|
|
26849
|
+
});
|
|
26850
|
+
this.updateRnaComponentStructureState(componentKey, updatedAtoms, updatedBonds);
|
|
26851
|
+
}
|
|
26852
|
+
}, {
|
|
26853
|
+
key: "removeAtomsAndBondsFromRnaComponents",
|
|
26854
|
+
value: function removeAtomsAndBondsFromRnaComponents(atomIds, bondIds) {
|
|
26855
|
+
var _this$monomerCreation6;
|
|
26856
|
+
if (!((_this$monomerCreation6 = this.monomerCreationState) !== null && _this$monomerCreation6 !== void 0 && _this$monomerCreation6.rnaComponentAtoms)) {
|
|
26857
|
+
return;
|
|
26858
|
+
}
|
|
26859
|
+
var _iterator3 = _createForOfIteratorHelper$2(this.monomerCreationState.rnaComponentAtoms.entries()),
|
|
26860
|
+
_step3;
|
|
26861
|
+
try {
|
|
26862
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
26863
|
+
var _step3$value = _slicedToArray$1(_step3.value, 2),
|
|
26864
|
+
componentKey = _step3$value[0],
|
|
26865
|
+
componentData = _step3$value[1];
|
|
26866
|
+
var updatedAtoms = componentData.atoms.filter(function (atomId) {
|
|
26867
|
+
return !atomIds.includes(atomId);
|
|
26868
|
+
});
|
|
26869
|
+
var updatedBonds = componentData.bonds.filter(function (bondId) {
|
|
26870
|
+
return !bondIds.includes(bondId);
|
|
26871
|
+
});
|
|
26872
|
+
this.updateRnaComponentStructureState(componentKey, updatedAtoms, updatedBonds);
|
|
26873
|
+
}
|
|
26874
|
+
} catch (err) {
|
|
26875
|
+
_iterator3.e(err);
|
|
26876
|
+
} finally {
|
|
26877
|
+
_iterator3.f();
|
|
26878
|
+
}
|
|
26879
|
+
}
|
|
26462
26880
|
}, {
|
|
26463
26881
|
key: "subscribeToChangeEventInMonomerCreationWizard",
|
|
26464
26882
|
value: function subscribeToChangeEventInMonomerCreationWizard() {
|
|
26465
|
-
var
|
|
26883
|
+
var _this7 = this;
|
|
26466
26884
|
if (this.changeEventSubscriber) {
|
|
26467
26885
|
return;
|
|
26468
26886
|
}
|
|
26469
26887
|
var handleChangeEvent = function handleChangeEvent(data) {
|
|
26470
|
-
if (!
|
|
26888
|
+
if (!_this7.isMonomerCreationWizardActive || data.length === 0) {
|
|
26471
26889
|
return;
|
|
26472
26890
|
}
|
|
26473
|
-
|
|
26891
|
+
_this7.collectChangesForMonomerCreationStateInvalidation(data);
|
|
26474
26892
|
};
|
|
26475
26893
|
this.changeEventSubscriber = this.subscribe('change', handleChangeEvent);
|
|
26476
26894
|
}
|
|
@@ -26491,9 +26909,11 @@ var Editor$3 = function () {
|
|
|
26491
26909
|
var changesMap = new Map();
|
|
26492
26910
|
data.forEach(function (entry) {
|
|
26493
26911
|
switch (entry.operation) {
|
|
26912
|
+
case OperationType.ATOM_ADD:
|
|
26494
26913
|
case OperationType.ATOM_DELETE:
|
|
26495
26914
|
case OperationType.ATOM_ATTR:
|
|
26496
26915
|
case OperationType.BOND_ADD:
|
|
26916
|
+
case OperationType.BOND_DELETE:
|
|
26497
26917
|
case OperationType.BOND_ATTR:
|
|
26498
26918
|
{
|
|
26499
26919
|
if (entry.id !== undefined) {
|
|
@@ -26513,21 +26933,21 @@ var Editor$3 = function () {
|
|
|
26513
26933
|
}, {
|
|
26514
26934
|
key: "invalidateMonomerCreationWizardState",
|
|
26515
26935
|
value: function invalidateMonomerCreationWizardState(changesMap) {
|
|
26516
|
-
var
|
|
26936
|
+
var _this8 = this;
|
|
26517
26937
|
if (!this.monomerCreationState) {
|
|
26518
26938
|
return;
|
|
26519
26939
|
}
|
|
26520
|
-
var
|
|
26521
|
-
|
|
26940
|
+
var _iterator4 = _createForOfIteratorHelper$2(changesMap.entries()),
|
|
26941
|
+
_step4;
|
|
26522
26942
|
try {
|
|
26523
|
-
var
|
|
26524
|
-
var
|
|
26525
|
-
operation =
|
|
26526
|
-
ids =
|
|
26943
|
+
var _loop2 = function _loop2() {
|
|
26944
|
+
var _step4$value = _slicedToArray$1(_step4.value, 2),
|
|
26945
|
+
operation = _step4$value[0],
|
|
26946
|
+
ids = _step4$value[1];
|
|
26527
26947
|
switch (operation) {
|
|
26528
26948
|
case OperationType.ATOM_DELETE:
|
|
26529
26949
|
{
|
|
26530
|
-
var attachmentPointsToInvalidate = Array.from(
|
|
26950
|
+
var attachmentPointsToInvalidate = Array.from(_this8.monomerCreationState.assignedAttachmentPoints.entries()).filter(function (_ref11) {
|
|
26531
26951
|
var _ref12 = _slicedToArray$1(_ref11, 2),
|
|
26532
26952
|
atomPair = _ref12[1];
|
|
26533
26953
|
return ids.has(atomPair[0]) || ids.has(atomPair[1]);
|
|
@@ -26543,67 +26963,68 @@ var Editor$3 = function () {
|
|
|
26543
26963
|
attachmentAtomId = _atomPair5[0],
|
|
26544
26964
|
leavingAtomId = _atomPair5[1];
|
|
26545
26965
|
if (ids.has(attachmentAtomId)) {
|
|
26546
|
-
var
|
|
26547
|
-
(
|
|
26966
|
+
var _this8$monomerCreatio;
|
|
26967
|
+
(_this8$monomerCreatio = _this8.monomerCreationState) === null || _this8$monomerCreatio === void 0 || _this8$monomerCreatio.assignedAttachmentPoints["delete"](attachmentPointName);
|
|
26548
26968
|
} else if (ids.has(leavingAtomId)) {
|
|
26549
|
-
var potentialLeavingAtoms =
|
|
26969
|
+
var potentialLeavingAtoms = _this8.findPotentialLeavingAtoms(attachmentAtomId);
|
|
26550
26970
|
if (potentialLeavingAtoms.length === 0) {
|
|
26551
|
-
var
|
|
26552
|
-
(
|
|
26971
|
+
var _this8$monomerCreatio2;
|
|
26972
|
+
(_this8$monomerCreatio2 = _this8.monomerCreationState) === null || _this8$monomerCreatio2 === void 0 || _this8$monomerCreatio2.assignedAttachmentPoints["delete"](attachmentPointName);
|
|
26553
26973
|
} else {
|
|
26554
|
-
var
|
|
26555
|
-
var newLeavingAtomId =
|
|
26974
|
+
var _this8$monomerCreatio3;
|
|
26975
|
+
var newLeavingAtomId = _this8.struct().atoms.keyOf(potentialLeavingAtoms[0]);
|
|
26556
26976
|
assert_1(newLeavingAtomId !== null);
|
|
26557
|
-
(
|
|
26977
|
+
(_this8$monomerCreatio3 = _this8.monomerCreationState) === null || _this8$monomerCreatio3 === void 0 || _this8$monomerCreatio3.assignedAttachmentPoints.set(attachmentPointName, [attachmentAtomId, newLeavingAtomId]);
|
|
26558
26978
|
}
|
|
26559
26979
|
}
|
|
26560
26980
|
});
|
|
26561
|
-
var potentialAttachmentPointsToInvalidate = Array.from(
|
|
26981
|
+
var potentialAttachmentPointsToInvalidate = Array.from(_this8.monomerCreationState.potentialAttachmentPoints.entries());
|
|
26562
26982
|
potentialAttachmentPointsToInvalidate.forEach(function (_ref15) {
|
|
26563
26983
|
var _ref16 = _slicedToArray$1(_ref15, 2),
|
|
26564
26984
|
attachmentAtomId = _ref16[0],
|
|
26565
26985
|
leavingAtomIds = _ref16[1];
|
|
26566
26986
|
if (ids.has(attachmentAtomId)) {
|
|
26567
|
-
var
|
|
26568
|
-
(
|
|
26987
|
+
var _this8$monomerCreatio4;
|
|
26988
|
+
(_this8$monomerCreatio4 = _this8.monomerCreationState) === null || _this8$monomerCreatio4 === void 0 || _this8$monomerCreatio4.potentialAttachmentPoints["delete"](attachmentAtomId);
|
|
26569
26989
|
} else {
|
|
26570
26990
|
var updatedLeavingAtomIds = new Set(Array.from(leavingAtomIds).filter(function (id) {
|
|
26571
26991
|
return !ids.has(id);
|
|
26572
26992
|
}));
|
|
26573
26993
|
if (updatedLeavingAtomIds.size === 0) {
|
|
26574
|
-
var
|
|
26575
|
-
(
|
|
26994
|
+
var _this8$monomerCreatio5;
|
|
26995
|
+
(_this8$monomerCreatio5 = _this8.monomerCreationState) === null || _this8$monomerCreatio5 === void 0 || _this8$monomerCreatio5.potentialAttachmentPoints["delete"](attachmentAtomId);
|
|
26576
26996
|
} else {
|
|
26577
|
-
var
|
|
26578
|
-
(
|
|
26997
|
+
var _this8$monomerCreatio6;
|
|
26998
|
+
(_this8$monomerCreatio6 = _this8.monomerCreationState) === null || _this8$monomerCreatio6 === void 0 || _this8$monomerCreatio6.potentialAttachmentPoints.set(attachmentAtomId, updatedLeavingAtomIds);
|
|
26579
26999
|
}
|
|
26580
27000
|
}
|
|
26581
27001
|
});
|
|
27002
|
+
_this8.removeAtomsAndBondsFromRnaComponents([], _toConsumableArray(ids.values()));
|
|
26582
27003
|
}
|
|
26583
27004
|
break;
|
|
26584
27005
|
case OperationType.BOND_ATTR:
|
|
26585
27006
|
{
|
|
26586
|
-
var
|
|
26587
|
-
|
|
27007
|
+
var _iterator5 = _createForOfIteratorHelper$2(ids.values()),
|
|
27008
|
+
_step5;
|
|
26588
27009
|
try {
|
|
26589
|
-
var
|
|
26590
|
-
var id =
|
|
26591
|
-
var bond =
|
|
27010
|
+
var _loop3 = function _loop3() {
|
|
27011
|
+
var id = _step5.value;
|
|
27012
|
+
var bond = _this8.struct().bonds.get(id);
|
|
26592
27013
|
assert_1(bond);
|
|
26593
|
-
var attachmentPointWithBond = Array.from(
|
|
27014
|
+
var attachmentPointWithBond = Array.from(_this8.monomerCreationState.assignedAttachmentPoints.entries()).find(function (_ref17) {
|
|
26594
27015
|
var _ref18 = _slicedToArray$1(_ref17, 2),
|
|
26595
27016
|
atomPair = _ref18[1];
|
|
26596
27017
|
return bond.begin === atomPair[0] && bond.end === atomPair[1] || bond.begin === atomPair[1] && bond.end === atomPair[0];
|
|
26597
27018
|
});
|
|
26598
27019
|
if (attachmentPointWithBond) {
|
|
26599
27020
|
if (!Editor.isBondSuitableForAttachmentPoint(bond)) {
|
|
26600
|
-
|
|
27021
|
+
_this8.monomerCreationState.problematicAttachmentPoints.add(attachmentPointWithBond[0]);
|
|
26601
27022
|
} else {
|
|
26602
|
-
|
|
27023
|
+
_this8.monomerCreationState.problematicAttachmentPoints["delete"](attachmentPointWithBond[0]);
|
|
26603
27024
|
}
|
|
26604
27025
|
}
|
|
26605
27026
|
if (!Editor.isBondSuitableForAttachmentPoint(bond)) {
|
|
26606
|
-
|
|
27027
|
+
_this8.monomerCreationState.potentialAttachmentPoints.forEach(function (leavingAtomIds, attachmentAtomId) {
|
|
26607
27028
|
var updatedLeavingAtomIds = new Set(leavingAtomIds);
|
|
26608
27029
|
var bondFromAttachmentAtom = bond.begin === attachmentAtomId && leavingAtomIds.has(bond.end);
|
|
26609
27030
|
var bondToAttachmentAtom = bond.end === attachmentAtomId && leavingAtomIds.has(bond.begin);
|
|
@@ -26611,35 +27032,35 @@ var Editor$3 = function () {
|
|
|
26611
27032
|
updatedLeavingAtomIds["delete"](bondFromAttachmentAtom ? bond.end : bond.begin);
|
|
26612
27033
|
}
|
|
26613
27034
|
if (updatedLeavingAtomIds.size === 0) {
|
|
26614
|
-
var
|
|
26615
|
-
(
|
|
27035
|
+
var _this8$monomerCreatio7;
|
|
27036
|
+
(_this8$monomerCreatio7 = _this8.monomerCreationState) === null || _this8$monomerCreatio7 === void 0 || _this8$monomerCreatio7.potentialAttachmentPoints["delete"](attachmentAtomId);
|
|
26616
27037
|
} else {
|
|
26617
|
-
var
|
|
26618
|
-
(
|
|
27038
|
+
var _this8$monomerCreatio8;
|
|
27039
|
+
(_this8$monomerCreatio8 = _this8.monomerCreationState) === null || _this8$monomerCreatio8 === void 0 || _this8$monomerCreatio8.potentialAttachmentPoints.set(attachmentAtomId, updatedLeavingAtomIds);
|
|
26619
27040
|
}
|
|
26620
27041
|
});
|
|
26621
27042
|
}
|
|
26622
27043
|
};
|
|
26623
|
-
for (
|
|
26624
|
-
|
|
27044
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
27045
|
+
_loop3();
|
|
26625
27046
|
}
|
|
26626
27047
|
} catch (err) {
|
|
26627
|
-
|
|
27048
|
+
_iterator5.e(err);
|
|
26628
27049
|
} finally {
|
|
26629
|
-
|
|
27050
|
+
_iterator5.f();
|
|
26630
27051
|
}
|
|
26631
27052
|
break;
|
|
26632
27053
|
}
|
|
26633
27054
|
case OperationType.BOND_ADD:
|
|
26634
27055
|
{
|
|
26635
|
-
var
|
|
26636
|
-
|
|
27056
|
+
var _iterator6 = _createForOfIteratorHelper$2(ids.values()),
|
|
27057
|
+
_step6;
|
|
26637
27058
|
try {
|
|
26638
|
-
var
|
|
26639
|
-
var id =
|
|
26640
|
-
var bond =
|
|
27059
|
+
var _loop4 = function _loop4() {
|
|
27060
|
+
var id = _step6.value;
|
|
27061
|
+
var bond = _this8.struct().bonds.get(id);
|
|
26641
27062
|
assert_1(bond);
|
|
26642
|
-
var attachmentPointWithBondToLeavingAtom = Array.from(
|
|
27063
|
+
var attachmentPointWithBondToLeavingAtom = Array.from(_this8.monomerCreationState.assignedAttachmentPoints.entries()).find(function (_ref19) {
|
|
26643
27064
|
var _ref20 = _slicedToArray$1(_ref19, 2),
|
|
26644
27065
|
_ref20$ = _slicedToArray$1(_ref20[1], 2),
|
|
26645
27066
|
attachmentAtomId = _ref20$[0],
|
|
@@ -26649,55 +27070,72 @@ var Editor$3 = function () {
|
|
|
26649
27070
|
if (attachmentPointWithBondToLeavingAtom) {
|
|
26650
27071
|
var _attachmentPointWithB = _slicedToArray$1(attachmentPointWithBondToLeavingAtom, 1),
|
|
26651
27072
|
attachmentPointName = _attachmentPointWithB[0];
|
|
26652
|
-
|
|
27073
|
+
_this8.monomerCreationState.assignedAttachmentPoints["delete"](attachmentPointName);
|
|
26653
27074
|
}
|
|
26654
27075
|
if (Editor.isBondSuitableForAttachmentPoint(bond)) {
|
|
26655
|
-
if (
|
|
26656
|
-
var leavingAtomIds =
|
|
27076
|
+
if (_this8.monomerCreationState.potentialAttachmentPoints.has(bond.begin)) {
|
|
27077
|
+
var leavingAtomIds = _this8.monomerCreationState.potentialAttachmentPoints.get(bond.begin);
|
|
26657
27078
|
assert_1(leavingAtomIds);
|
|
26658
|
-
var endAtom =
|
|
27079
|
+
var endAtom = _this8.struct().atoms.get(bond.end);
|
|
26659
27080
|
if (endAtom && endAtom.neighbors.length === 1) {
|
|
26660
27081
|
var updatedLeavingAtomIds = new Set(leavingAtomIds);
|
|
26661
27082
|
updatedLeavingAtomIds.add(bond.end);
|
|
26662
|
-
|
|
27083
|
+
_this8.monomerCreationState.potentialAttachmentPoints.set(bond.begin, updatedLeavingAtomIds);
|
|
26663
27084
|
}
|
|
26664
27085
|
}
|
|
26665
|
-
if (
|
|
26666
|
-
var _leavingAtomIds =
|
|
27086
|
+
if (_this8.monomerCreationState.potentialAttachmentPoints.has(bond.end)) {
|
|
27087
|
+
var _leavingAtomIds = _this8.monomerCreationState.potentialAttachmentPoints.get(bond.end);
|
|
26667
27088
|
assert_1(_leavingAtomIds);
|
|
26668
|
-
var beginAtom =
|
|
27089
|
+
var beginAtom = _this8.struct().atoms.get(bond.begin);
|
|
26669
27090
|
if (beginAtom && beginAtom.neighbors.length === 1) {
|
|
26670
27091
|
var _updatedLeavingAtomIds = new Set(_leavingAtomIds);
|
|
26671
27092
|
_updatedLeavingAtomIds.add(bond.begin);
|
|
26672
|
-
|
|
27093
|
+
_this8.monomerCreationState.potentialAttachmentPoints.set(bond.end, _updatedLeavingAtomIds);
|
|
26673
27094
|
}
|
|
26674
27095
|
}
|
|
26675
27096
|
}
|
|
27097
|
+
if (_this8.canAssignRnaComponent(bond)) {
|
|
27098
|
+
_this8.autoAssignAtomToRnaComponent(id);
|
|
27099
|
+
}
|
|
26676
27100
|
};
|
|
26677
|
-
for (
|
|
26678
|
-
|
|
27101
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
27102
|
+
_loop4();
|
|
26679
27103
|
}
|
|
26680
27104
|
} catch (err) {
|
|
26681
|
-
|
|
27105
|
+
_iterator6.e(err);
|
|
26682
27106
|
} finally {
|
|
26683
|
-
|
|
27107
|
+
_iterator6.f();
|
|
26684
27108
|
}
|
|
26685
27109
|
break;
|
|
26686
27110
|
}
|
|
27111
|
+
case OperationType.BOND_DELETE:
|
|
27112
|
+
{
|
|
27113
|
+
_this8.removeAtomsAndBondsFromRnaComponents([], _toConsumableArray(ids.values()));
|
|
27114
|
+
break;
|
|
27115
|
+
}
|
|
26687
27116
|
default:
|
|
26688
27117
|
break;
|
|
26689
27118
|
}
|
|
26690
27119
|
};
|
|
26691
|
-
for (
|
|
26692
|
-
if (
|
|
27120
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
27121
|
+
if (_loop2()) continue;
|
|
26693
27122
|
}
|
|
26694
27123
|
} catch (err) {
|
|
26695
|
-
|
|
27124
|
+
_iterator4.e(err);
|
|
26696
27125
|
} finally {
|
|
26697
|
-
|
|
27126
|
+
_iterator4.f();
|
|
26698
27127
|
}
|
|
26699
27128
|
this.monomerCreationState = _objectSpread$V({}, this.monomerCreationState || {});
|
|
26700
27129
|
}
|
|
27130
|
+
}, {
|
|
27131
|
+
key: "setRnaMonomerCreationMode",
|
|
27132
|
+
value: function setRnaMonomerCreationMode(isActive) {
|
|
27133
|
+
if (!this.monomerCreationState) {
|
|
27134
|
+
KetcherLogger.warn('Monomer creation state is not initialized');
|
|
27135
|
+
return;
|
|
27136
|
+
}
|
|
27137
|
+
this.monomerCreationState.isRnaPresetMode = isActive;
|
|
27138
|
+
}
|
|
26701
27139
|
}, {
|
|
26702
27140
|
key: "selection",
|
|
26703
27141
|
value: function selection(ci) {
|
|
@@ -26899,7 +27337,20 @@ var Editor$3 = function () {
|
|
|
26899
27337
|
}, {
|
|
26900
27338
|
key: "unsubscribe",
|
|
26901
27339
|
value: function unsubscribe(eventName, subscriber) {
|
|
26902
|
-
|
|
27340
|
+
switch (eventName) {
|
|
27341
|
+
case 'change':
|
|
27342
|
+
{
|
|
27343
|
+
ketcherProvider.getKetcher(this.ketcherId).changeEvent.remove(subscriber.handler);
|
|
27344
|
+
break;
|
|
27345
|
+
}
|
|
27346
|
+
case 'libraryUpdate':
|
|
27347
|
+
{
|
|
27348
|
+
ketcherProvider.getKetcher(this.ketcherId).libraryUpdateEvent.remove(subscriber.handler);
|
|
27349
|
+
break;
|
|
27350
|
+
}
|
|
27351
|
+
default:
|
|
27352
|
+
this.event[eventName].remove(subscriber.handler);
|
|
27353
|
+
}
|
|
26903
27354
|
}
|
|
26904
27355
|
}, {
|
|
26905
27356
|
key: "findItem",
|
|
@@ -27035,17 +27486,17 @@ var Editor$3 = function () {
|
|
|
27035
27486
|
return false;
|
|
27036
27487
|
}
|
|
27037
27488
|
var adjacencyList = new Map();
|
|
27038
|
-
var
|
|
27039
|
-
|
|
27489
|
+
var _iterator7 = _createForOfIteratorHelper$2(atomIds),
|
|
27490
|
+
_step7;
|
|
27040
27491
|
try {
|
|
27041
|
-
for (
|
|
27042
|
-
var atomId =
|
|
27492
|
+
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
27493
|
+
var atomId = _step7.value;
|
|
27043
27494
|
adjacencyList.set(atomId, []);
|
|
27044
27495
|
}
|
|
27045
27496
|
} catch (err) {
|
|
27046
|
-
|
|
27497
|
+
_iterator7.e(err);
|
|
27047
27498
|
} finally {
|
|
27048
|
-
|
|
27499
|
+
_iterator7.f();
|
|
27049
27500
|
}
|
|
27050
27501
|
bondIds.forEach(function (bondId) {
|
|
27051
27502
|
var bond = struct.bonds.get(bondId);
|
|
@@ -27067,19 +27518,19 @@ var Editor$3 = function () {
|
|
|
27067
27518
|
if (nextAtomId !== undefined && !visited.has(nextAtomId)) {
|
|
27068
27519
|
var _adjacencyList$get3;
|
|
27069
27520
|
visited.add(nextAtomId);
|
|
27070
|
-
var
|
|
27071
|
-
|
|
27521
|
+
var _iterator8 = _createForOfIteratorHelper$2((_adjacencyList$get3 = adjacencyList.get(nextAtomId)) !== null && _adjacencyList$get3 !== void 0 ? _adjacencyList$get3 : []),
|
|
27522
|
+
_step8;
|
|
27072
27523
|
try {
|
|
27073
|
-
for (
|
|
27074
|
-
var neighbor =
|
|
27524
|
+
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
|
27525
|
+
var neighbor = _step8.value;
|
|
27075
27526
|
if (!visited.has(neighbor)) {
|
|
27076
27527
|
queue.push(neighbor);
|
|
27077
27528
|
}
|
|
27078
27529
|
}
|
|
27079
27530
|
} catch (err) {
|
|
27080
|
-
|
|
27531
|
+
_iterator8.e(err);
|
|
27081
27532
|
} finally {
|
|
27082
|
-
|
|
27533
|
+
_iterator8.f();
|
|
27083
27534
|
}
|
|
27084
27535
|
}
|
|
27085
27536
|
}
|
|
@@ -27245,7 +27696,7 @@ function setHover(ci, visible, render) {
|
|
|
27245
27696
|
|
|
27246
27697
|
var classes$F = {"button-common-styles":"StructEditor-module_button-common-styles__3P7PO","scrollbar":"StructEditor-module_scrollbar__SUs-o","spinnerOverlay":"StructEditor-module_spinnerOverlay__5H1IM","canvas":"StructEditor-module_canvas__LLnzh","measureLog":"StructEditor-module_measureLog__B2wuy","visible":"StructEditor-module_visible__3eFNB","intermediateCanvas":"StructEditor-module_intermediateCanvas__fR3ws","enableCursor":"StructEditor-module_enableCursor__Qla0A"};
|
|
27247
27698
|
|
|
27248
|
-
var styles$p = {"button-common-styles":"ContextMenu-module_button-common-styles__pshYr","scrollbar":"ContextMenu-module_scrollbar__fCla5","contextMenu":"ContextMenu-module_contextMenu__oqyL-","icon":"ContextMenu-module_icon__KhXEk","contextMenuText":"ContextMenu-module_contextMenuText__j0O2-","sameGroup":"ContextMenu-module_sameGroup__0DPIX","devider":"ContextMenu-module_devider__-K9Bc"};
|
|
27699
|
+
var styles$p = {"button-common-styles":"ContextMenu-module_button-common-styles__pshYr","scrollbar":"ContextMenu-module_scrollbar__fCla5","contextMenu":"ContextMenu-module_contextMenu__oqyL-","icon":"ContextMenu-module_icon__KhXEk","markAsComponentIcon":"ContextMenu-module_markAsComponentIcon__oBjcI","contextMenuText":"ContextMenu-module_contextMenuText__j0O2-","sameGroup":"ContextMenu-module_sameGroup__0DPIX","devider":"ContextMenu-module_devider__-K9Bc"};
|
|
27249
27700
|
|
|
27250
27701
|
var CONTEXT_MENU_ID;
|
|
27251
27702
|
(function (CONTEXT_MENU_ID) {
|
|
@@ -27415,6 +27866,116 @@ var useDelete$1 = function useDelete() {
|
|
|
27415
27866
|
return handler;
|
|
27416
27867
|
};
|
|
27417
27868
|
|
|
27869
|
+
var MonomerTypeSelectConfig = [{
|
|
27870
|
+
value: KetMonomerClass.AminoAcid,
|
|
27871
|
+
label: 'Amino acid',
|
|
27872
|
+
iconName: 'peptide'
|
|
27873
|
+
}, {
|
|
27874
|
+
value: KetMonomerClass.Sugar,
|
|
27875
|
+
label: 'Sugar',
|
|
27876
|
+
iconName: 'sugar'
|
|
27877
|
+
}, {
|
|
27878
|
+
value: KetMonomerClass.Base,
|
|
27879
|
+
label: 'Base',
|
|
27880
|
+
iconName: 'base'
|
|
27881
|
+
}, {
|
|
27882
|
+
value: KetMonomerClass.Phosphate,
|
|
27883
|
+
label: 'Phosphate',
|
|
27884
|
+
iconName: 'phosphate'
|
|
27885
|
+
}, {
|
|
27886
|
+
value: KetMonomerClass.RNA,
|
|
27887
|
+
label: 'Nucleotide (monomer)',
|
|
27888
|
+
iconName: 'nucleotide'
|
|
27889
|
+
}, {
|
|
27890
|
+
value: 'rnaPreset',
|
|
27891
|
+
label: 'Nucleotide (preset)',
|
|
27892
|
+
iconName: 'preset'
|
|
27893
|
+
}, {
|
|
27894
|
+
value: KetMonomerClass.CHEM,
|
|
27895
|
+
label: 'CHEM',
|
|
27896
|
+
iconName: 'chem'
|
|
27897
|
+
}];
|
|
27898
|
+
var MAX_MODIFICATION_TYPES = 5;
|
|
27899
|
+
var NotificationMessages = {
|
|
27900
|
+
defaultAttachmentPoints: 'Attachment points are set by default with hydrogens as leaving groups.',
|
|
27901
|
+
emptyMandatoryFields: 'Mandatory fields must be filled.',
|
|
27902
|
+
invalidSymbol: 'The monomer code must consist only of uppercase and lowercase letters, numbers, hyphens (-), underscores (_), and asterisks (*).',
|
|
27903
|
+
symbolExists: 'The code must be unique amongst peptide, RNA, or CHEM monomers.',
|
|
27904
|
+
editingIsNotAllowed: 'Editing of the structure is not allowed.',
|
|
27905
|
+
noAttachmentPoints: 'The monomer must have at least one attachment point.',
|
|
27906
|
+
incorrectAttachmentPointsOrder: 'Attachment point numbers must be in order, but R1 and R2 may be skipped.',
|
|
27907
|
+
creationSuccessful: 'The monomer was successfully added to the library.',
|
|
27908
|
+
creationRNASuccessful: 'The preset was successfully added to the library.',
|
|
27909
|
+
incontinuousStructure: 'All monomers must have a continuous structure.',
|
|
27910
|
+
notUniqueModificationTypes: 'Only one amino acid within a natural analogue can have the same modification type.',
|
|
27911
|
+
modificationTypeExists: 'Only one amino acid within a natural analogue can have the same modification type.',
|
|
27912
|
+
notMinimalViableStructure: 'Minimal monomer structure is two atoms connected via a single bond.',
|
|
27913
|
+
impureStructure: 'Monomer structure cannot contain S-groups, R-groups, special atoms, or any other query properties.',
|
|
27914
|
+
invalidHELMAlias: 'The HELM alias must consist only of uppercase and lowercase letters, numbers, hyphens (-), underscores (_), and asterisks (*).',
|
|
27915
|
+
notUniqueHELMAlias: 'The HELM alias must be unique amongst peptide or RNA monomers.',
|
|
27916
|
+
invalidRnaPresetStructure: 'Structure of rna preset component contains issues. Please adjust the structure.',
|
|
27917
|
+
notUniquePresetCode: 'The preset code must be unique amongst other presets.',
|
|
27918
|
+
invalidPresetCode: 'The preset code must consist only of uppercase and lowercase letters, numbers, hyphens (-), underscores (_), and asterisks (*).'
|
|
27919
|
+
};
|
|
27920
|
+
var NotificationTypes = {
|
|
27921
|
+
defaultAttachmentPoints: 'info',
|
|
27922
|
+
emptyMandatoryFields: 'error',
|
|
27923
|
+
invalidSymbol: 'error',
|
|
27924
|
+
symbolExists: 'error',
|
|
27925
|
+
editingIsNotAllowed: 'error',
|
|
27926
|
+
noAttachmentPoints: 'error',
|
|
27927
|
+
incorrectAttachmentPointsOrder: 'error',
|
|
27928
|
+
creationSuccessful: 'info',
|
|
27929
|
+
creationRNASuccessful: 'info',
|
|
27930
|
+
incontinuousStructure: 'error',
|
|
27931
|
+
notUniqueModificationTypes: 'error',
|
|
27932
|
+
modificationTypeExists: 'error',
|
|
27933
|
+
notMinimalViableStructure: 'error',
|
|
27934
|
+
impureStructure: 'error',
|
|
27935
|
+
invalidHELMAlias: 'error',
|
|
27936
|
+
notUniqueHELMAlias: 'error',
|
|
27937
|
+
invalidRnaPresetStructure: 'error',
|
|
27938
|
+
notUniquePresetCode: 'error',
|
|
27939
|
+
invalidPresetCode: 'error'
|
|
27940
|
+
};
|
|
27941
|
+
var MonomerCreationExternalNotificationAction = 'MonomerCreationExternalNotification';
|
|
27942
|
+
var MonomerCreationMarkAsComponentAction = 'MonomerCreationMarkAsComponent';
|
|
27943
|
+
|
|
27944
|
+
var useMarkAs = function useMarkAs() {
|
|
27945
|
+
var _useAppContext = useAppContext(),
|
|
27946
|
+
ketcherId = _useAppContext.ketcherId;
|
|
27947
|
+
var handler = useCallback(function (componentType) {
|
|
27948
|
+
return function (_params) {
|
|
27949
|
+
window.dispatchEvent(new CustomEvent(MonomerCreationMarkAsComponentAction, {
|
|
27950
|
+
detail: componentType
|
|
27951
|
+
}));
|
|
27952
|
+
};
|
|
27953
|
+
}, []);
|
|
27954
|
+
var isVisible = useCallback(function () {
|
|
27955
|
+
var editor = ketcherProvider.getKetcher(ketcherId).editor;
|
|
27956
|
+
if (!editor.isMonomerCreationWizardActive) {
|
|
27957
|
+
return false;
|
|
27958
|
+
}
|
|
27959
|
+
var monomerCreationState = editor.monomerCreationState;
|
|
27960
|
+
return monomerCreationState === null || monomerCreationState === void 0 ? void 0 : monomerCreationState.isRnaPresetMode;
|
|
27961
|
+
}, [ketcherId]);
|
|
27962
|
+
var isDisabled = useCallback(function () {
|
|
27963
|
+
var editor = ketcherProvider.getKetcher(ketcherId).editor;
|
|
27964
|
+
var selection = editor.selection();
|
|
27965
|
+
var struct = editor.struct();
|
|
27966
|
+
if (!(selection !== null && selection !== void 0 && selection.atoms) || selection.atoms.length === 0) {
|
|
27967
|
+
return true;
|
|
27968
|
+
}
|
|
27969
|
+
var isContinuous = Editor$3.isStructureContinuous(struct, selection);
|
|
27970
|
+
return !isContinuous;
|
|
27971
|
+
}, [ketcherId]);
|
|
27972
|
+
return {
|
|
27973
|
+
handler: handler,
|
|
27974
|
+
isVisible: isVisible,
|
|
27975
|
+
isDisabled: isDisabled
|
|
27976
|
+
};
|
|
27977
|
+
};
|
|
27978
|
+
|
|
27418
27979
|
var classes$E = {"button-common-styles":"ToggleButtonGroup-module_button-common-styles__wU4We","scrollbar":"ToggleButtonGroup-module_scrollbar__lvyIF","button":"ToggleButtonGroup-module_button__5nfNK","selected":"ToggleButtonGroup-module_selected__SAbod"};
|
|
27419
27980
|
|
|
27420
27981
|
var BUTTON_HEIGHT = 28;
|
|
@@ -27778,6 +28339,10 @@ var AtomMenuItems = function AtomMenuItems(props) {
|
|
|
27778
28339
|
handleStereo = _useAtomStereo2[0],
|
|
27779
28340
|
stereoDisabled = _useAtomStereo2[1];
|
|
27780
28341
|
var handleDelete = useDelete$1();
|
|
28342
|
+
var _useMarkAs = useMarkAs(),
|
|
28343
|
+
handleMarkAs = _useMarkAs.handler,
|
|
28344
|
+
markAsIsVisible = _useMarkAs.isVisible,
|
|
28345
|
+
markAsIsDisabled = _useMarkAs.isDisabled;
|
|
27781
28346
|
var _useAppContext = useAppContext(),
|
|
27782
28347
|
ketcherId = _useAppContext.ketcherId;
|
|
27783
28348
|
var ketcher = ketcherProvider.getKetcher(ketcherId);
|
|
@@ -27847,8 +28412,43 @@ var AtomMenuItems = function AtomMenuItems(props) {
|
|
|
27847
28412
|
}
|
|
27848
28413
|
var editMenuItemTitle = (_props$propsFromTrigg7 = props.propsFromTrigger) !== null && _props$propsFromTrigg7 !== void 0 && _props$propsFromTrigg7.extraItemsSelected ? 'Edit selected atoms...' : 'Edit...';
|
|
27849
28414
|
var disabledForMonomerCreation = editor.isMonomerCreationWizardActive;
|
|
28415
|
+
var showMarkAsMenu = markAsIsVisible();
|
|
28416
|
+
var markAsDisabled = markAsIsDisabled();
|
|
27850
28417
|
return jsxs(Fragment, {
|
|
27851
|
-
children: [
|
|
28418
|
+
children: [showMarkAsMenu && jsxs(Submenu, _objectSpread$T(_objectSpread$T({}, props), {}, {
|
|
28419
|
+
"data-testid": "Mark as a...-option",
|
|
28420
|
+
label: "Mark as a...",
|
|
28421
|
+
disabled: markAsDisabled,
|
|
28422
|
+
className: styles$p.subMenu,
|
|
28423
|
+
children: [jsxs(Item, _objectSpread$T(_objectSpread$T({}, props), {}, {
|
|
28424
|
+
"data-testid": "Mark as Base-option",
|
|
28425
|
+
onClick: handleMarkAs('base'),
|
|
28426
|
+
children: [jsx(Icon, {
|
|
28427
|
+
name: "base",
|
|
28428
|
+
className: clsx(styles$p.icon, styles$p.markAsComponentIcon)
|
|
28429
|
+
}), jsx("span", {
|
|
28430
|
+
children: "Base"
|
|
28431
|
+
})]
|
|
28432
|
+
})), jsxs(Item, _objectSpread$T(_objectSpread$T({}, props), {}, {
|
|
28433
|
+
"data-testid": "Mark as Sugar-option",
|
|
28434
|
+
onClick: handleMarkAs('sugar'),
|
|
28435
|
+
children: [jsx(Icon, {
|
|
28436
|
+
name: "sugar",
|
|
28437
|
+
className: clsx(styles$p.icon, styles$p.markAsComponentIcon)
|
|
28438
|
+
}), jsx("span", {
|
|
28439
|
+
children: "Sugar"
|
|
28440
|
+
})]
|
|
28441
|
+
})), jsxs(Item, _objectSpread$T(_objectSpread$T({}, props), {}, {
|
|
28442
|
+
"data-testid": "Mark as Phosphate-option",
|
|
28443
|
+
onClick: handleMarkAs('phosphate'),
|
|
28444
|
+
children: [jsx(Icon, {
|
|
28445
|
+
name: "phosphate",
|
|
28446
|
+
className: clsx(styles$p.icon, styles$p.markAsComponentIcon)
|
|
28447
|
+
}), jsx("span", {
|
|
28448
|
+
children: "Phosphate"
|
|
28449
|
+
})]
|
|
28450
|
+
}))]
|
|
28451
|
+
})), makeAttachmentPointMenuItems && jsxs(Fragment, {
|
|
27852
28452
|
children: [makeAttachmentPointMenuItems, jsx(Separator, {})]
|
|
27853
28453
|
}), jsxs(Item, _objectSpread$T(_objectSpread$T({}, props), {}, {
|
|
27854
28454
|
"data-testid": editMenuItemTitle.concat('-option'),
|
|
@@ -28404,6 +29004,10 @@ var SelectionMenuItems = function SelectionMenuItems(props) {
|
|
|
28404
29004
|
_useCreateMonomer2 = _slicedToArray$1(_useCreateMonomer, 2),
|
|
28405
29005
|
handleCreateMonomer = _useCreateMonomer2[0],
|
|
28406
29006
|
createMonomerDisabled = _useCreateMonomer2[1];
|
|
29007
|
+
var _useMarkAs = useMarkAs(),
|
|
29008
|
+
handleMarkAs = _useMarkAs.handler,
|
|
29009
|
+
markAsIsVisible = _useMarkAs.isVisible,
|
|
29010
|
+
markAsIsDisabled = _useMarkAs.isDisabled;
|
|
28407
29011
|
var highlightBondWithColor = function highlightBondWithColor(color) {
|
|
28408
29012
|
var _props$propsFromTrigg, _props$propsFromTrigg2, _props$propsFromTrigg3;
|
|
28409
29013
|
var bondIds = ((_props$propsFromTrigg = props.propsFromTrigger) === null || _props$propsFromTrigg === void 0 ? void 0 : _props$propsFromTrigg.bondIds) || [];
|
|
@@ -28417,8 +29021,43 @@ var SelectionMenuItems = function SelectionMenuItems(props) {
|
|
|
28417
29021
|
});
|
|
28418
29022
|
};
|
|
28419
29023
|
var options = useSelector(optionsSelector);
|
|
29024
|
+
var showMarkAsMenu = markAsIsVisible();
|
|
29025
|
+
var markAsDisabled = markAsIsDisabled();
|
|
28420
29026
|
return jsxs(Fragment, {
|
|
28421
|
-
children: [
|
|
29027
|
+
children: [showMarkAsMenu && jsxs(Submenu, _objectSpread$P(_objectSpread$P({}, props), {}, {
|
|
29028
|
+
"data-testid": "Mark as a...-option",
|
|
29029
|
+
label: "Mark as a...",
|
|
29030
|
+
disabled: markAsDisabled,
|
|
29031
|
+
className: styles$p.subMenu,
|
|
29032
|
+
children: [jsxs(Item, _objectSpread$P(_objectSpread$P({}, props), {}, {
|
|
29033
|
+
"data-testid": "Mark as Base-option",
|
|
29034
|
+
onClick: handleMarkAs('base'),
|
|
29035
|
+
children: [jsx(Icon, {
|
|
29036
|
+
name: "base",
|
|
29037
|
+
className: clsx(styles$p.icon, styles$p.markAsComponentIcon)
|
|
29038
|
+
}), jsx("span", {
|
|
29039
|
+
children: "Base"
|
|
29040
|
+
})]
|
|
29041
|
+
})), jsxs(Item, _objectSpread$P(_objectSpread$P({}, props), {}, {
|
|
29042
|
+
"data-testid": "Mark as Sugar-option",
|
|
29043
|
+
onClick: handleMarkAs('sugar'),
|
|
29044
|
+
children: [jsx(Icon, {
|
|
29045
|
+
name: "sugar",
|
|
29046
|
+
className: clsx(styles$p.icon, styles$p.markAsComponentIcon)
|
|
29047
|
+
}), jsx("span", {
|
|
29048
|
+
children: "Sugar"
|
|
29049
|
+
})]
|
|
29050
|
+
})), jsxs(Item, _objectSpread$P(_objectSpread$P({}, props), {}, {
|
|
29051
|
+
"data-testid": "Mark as Phosphate-option",
|
|
29052
|
+
onClick: handleMarkAs('phosphate'),
|
|
29053
|
+
children: [jsx(Icon, {
|
|
29054
|
+
name: "phosphate",
|
|
29055
|
+
className: clsx(styles$p.icon, styles$p.markAsComponentIcon)
|
|
29056
|
+
}), jsx("span", {
|
|
29057
|
+
children: "Phosphate"
|
|
29058
|
+
})]
|
|
29059
|
+
}))]
|
|
29060
|
+
})), jsx(Item, _objectSpread$P(_objectSpread$P({}, props), {}, {
|
|
28422
29061
|
"data-testid": "Edit selected bonds...-option",
|
|
28423
29062
|
disabled: bondEditDisabled,
|
|
28424
29063
|
onClick: handleBondEdit,
|
|
@@ -30103,78 +30742,6 @@ var AttachmentPointEditPopup = function AttachmentPointEditPopup(_ref) {
|
|
|
30103
30742
|
});
|
|
30104
30743
|
};
|
|
30105
30744
|
|
|
30106
|
-
var MonomerTypeSelectConfig = [{
|
|
30107
|
-
value: KetMonomerClass.AminoAcid,
|
|
30108
|
-
label: 'Amino acid',
|
|
30109
|
-
iconName: 'peptide'
|
|
30110
|
-
}, {
|
|
30111
|
-
value: KetMonomerClass.Sugar,
|
|
30112
|
-
label: 'Sugar',
|
|
30113
|
-
iconName: 'sugar'
|
|
30114
|
-
}, {
|
|
30115
|
-
value: KetMonomerClass.Base,
|
|
30116
|
-
label: 'Base',
|
|
30117
|
-
iconName: 'base'
|
|
30118
|
-
}, {
|
|
30119
|
-
value: KetMonomerClass.Phosphate,
|
|
30120
|
-
label: 'Phosphate',
|
|
30121
|
-
iconName: 'phosphate'
|
|
30122
|
-
}, {
|
|
30123
|
-
value: KetMonomerClass.RNA,
|
|
30124
|
-
label: 'Nucleotide (monomer)',
|
|
30125
|
-
iconName: 'nucleotide'
|
|
30126
|
-
}, {
|
|
30127
|
-
value: KetMonomerClass.CHEM,
|
|
30128
|
-
label: 'CHEM',
|
|
30129
|
-
iconName: 'chem'
|
|
30130
|
-
}, {
|
|
30131
|
-
value: 'rnaPreset',
|
|
30132
|
-
label: 'Nucleotide (preset)',
|
|
30133
|
-
iconName: 'preset'
|
|
30134
|
-
}];
|
|
30135
|
-
var MAX_MODIFICATION_TYPES = 5;
|
|
30136
|
-
var NotificationMessages = {
|
|
30137
|
-
defaultAttachmentPoints: 'Attachment points are set by default with hydrogens as leaving groups.',
|
|
30138
|
-
emptyMandatoryFields: 'Mandatory fields must be filled.',
|
|
30139
|
-
invalidSymbol: 'The monomer code must consist only of uppercase and lowercase letters, numbers, hyphens (-), underscores (_), and asterisks (*).',
|
|
30140
|
-
symbolExists: 'The code must be unique amongst peptide, RNA, or CHEM monomers.',
|
|
30141
|
-
editingIsNotAllowed: 'Editing of the structure is not allowed.',
|
|
30142
|
-
noAttachmentPoints: 'The monomer must have at least one attachment point.',
|
|
30143
|
-
incorrectAttachmentPointsOrder: 'Attachment point numbers must be in order, but R1 and R2 may be skipped.',
|
|
30144
|
-
creationSuccessful: 'The monomer was successfully added to the library.',
|
|
30145
|
-
incontinuousStructure: 'All monomers must have a continuous structure.',
|
|
30146
|
-
notUniqueModificationTypes: 'Only one amino acid within a natural analogue can have the same modification type.',
|
|
30147
|
-
modificationTypeExists: 'Only one amino acid within a natural analogue can have the same modification type.',
|
|
30148
|
-
notMinimalViableStructure: 'Minimal monomer structure is two atoms connected via a single bond.',
|
|
30149
|
-
impureStructure: 'Monomer structure cannot contain S-groups, R-groups, special atoms, or any other query properties.',
|
|
30150
|
-
invalidHELMAlias: 'The HELM alias must consist only of uppercase and lowercase letters, numbers, hyphens (-), underscores (_), and asterisks (*).',
|
|
30151
|
-
notUniqueHELMAlias: 'The HELM alias must be unique amongst peptide or RNA monomers.',
|
|
30152
|
-
invalidRnaPresetStructure: 'Structure of rna preset component contains issues. Please adjust the structure.',
|
|
30153
|
-
notUniquePresetCode: 'The preset code must be unique amongst other presets.',
|
|
30154
|
-
invalidPresetCode: 'The preset code must consist only of uppercase and lowercase letters, numbers, hyphens (-), underscores (_), and asterisks (*).'
|
|
30155
|
-
};
|
|
30156
|
-
var NotificationTypes = {
|
|
30157
|
-
defaultAttachmentPoints: 'info',
|
|
30158
|
-
emptyMandatoryFields: 'error',
|
|
30159
|
-
invalidSymbol: 'error',
|
|
30160
|
-
symbolExists: 'error',
|
|
30161
|
-
editingIsNotAllowed: 'error',
|
|
30162
|
-
noAttachmentPoints: 'error',
|
|
30163
|
-
incorrectAttachmentPointsOrder: 'error',
|
|
30164
|
-
creationSuccessful: 'info',
|
|
30165
|
-
incontinuousStructure: 'error',
|
|
30166
|
-
notUniqueModificationTypes: 'error',
|
|
30167
|
-
modificationTypeExists: 'error',
|
|
30168
|
-
notMinimalViableStructure: 'error',
|
|
30169
|
-
impureStructure: 'error',
|
|
30170
|
-
invalidHELMAlias: 'error',
|
|
30171
|
-
notUniqueHELMAlias: 'error',
|
|
30172
|
-
invalidRnaPresetStructure: 'error',
|
|
30173
|
-
notUniquePresetCode: 'error',
|
|
30174
|
-
invalidPresetCode: 'error'
|
|
30175
|
-
};
|
|
30176
|
-
var MonomerCreationExternalNotificationAction = 'MonomerCreationExternalNotification';
|
|
30177
|
-
|
|
30178
30745
|
var MONOMER_VALIDATION_RULES = [{
|
|
30179
30746
|
monomerType: KetMonomerClass.AminoAcid,
|
|
30180
30747
|
requirements: [{
|
|
@@ -30783,13 +31350,17 @@ var RnaPresetTabs = function RnaPresetTabs(props) {
|
|
|
30783
31350
|
editor: editor
|
|
30784
31351
|
});
|
|
30785
31352
|
};
|
|
30786
|
-
var handleClickCreateComponent = function
|
|
31353
|
+
var handleClickCreateComponent = useCallback(function (rnaComponentKey) {
|
|
31354
|
+
var selection = editor.selection();
|
|
31355
|
+
var atomIds = (selection === null || selection === void 0 ? void 0 : selection.atoms) || [];
|
|
31356
|
+
var bondIds = (selection === null || selection === void 0 ? void 0 : selection.bonds) || [];
|
|
30787
31357
|
wizardStateDispatch({
|
|
30788
31358
|
type: 'SetRnaPresetComponentStructure',
|
|
30789
31359
|
rnaComponentKey: rnaComponentKey,
|
|
30790
31360
|
editor: editor
|
|
30791
31361
|
});
|
|
30792
|
-
|
|
31362
|
+
editor.setRnaComponentAtoms(rnaComponentKey, atomIds, bondIds);
|
|
31363
|
+
}, [editor, wizardStateDispatch]);
|
|
30793
31364
|
var currentTabStructure = currentTabState === null || currentTabState === void 0 ? void 0 : currentTabState.structure;
|
|
30794
31365
|
useEffect(function () {
|
|
30795
31366
|
if (!currentTabStructure) {
|
|
@@ -30798,6 +31369,24 @@ var RnaPresetTabs = function RnaPresetTabs(props) {
|
|
|
30798
31369
|
applyHighlights(selectedTab, isHighlightEnabled);
|
|
30799
31370
|
editor.selection(null);
|
|
30800
31371
|
}, [applyHighlights, currentTabStructure, editor, isHighlightEnabled, selectedTab]);
|
|
31372
|
+
useEffect(function () {
|
|
31373
|
+
return function () {
|
|
31374
|
+
editor === null || editor === void 0 || editor.highlights.clear();
|
|
31375
|
+
};
|
|
31376
|
+
}, [editor === null || editor === void 0 ? void 0 : editor.highlights]);
|
|
31377
|
+
useEffect(function () {
|
|
31378
|
+
var handleMarkAsComponent = function handleMarkAsComponent(event) {
|
|
31379
|
+
var componentType = event.detail;
|
|
31380
|
+
var tabIndex = RNA_COMPONENT_KEYS.indexOf(componentType) + 1;
|
|
31381
|
+
handleClickCreateComponent(componentType);
|
|
31382
|
+
setSelectedTab(tabIndex);
|
|
31383
|
+
applyHighlights(selectedTab, isHighlightEnabled);
|
|
31384
|
+
};
|
|
31385
|
+
window.addEventListener(MonomerCreationMarkAsComponentAction, handleMarkAsComponent);
|
|
31386
|
+
return function () {
|
|
31387
|
+
window.removeEventListener(MonomerCreationMarkAsComponentAction, handleMarkAsComponent);
|
|
31388
|
+
};
|
|
31389
|
+
}, [wizardState, handleClickCreateComponent, applyHighlights, selectedTab, isHighlightEnabled]);
|
|
30801
31390
|
var hasErrorInTab = function hasErrorInTab(wizardState) {
|
|
30802
31391
|
return Object.values(wizardState.errors).some(function (errorValue) {
|
|
30803
31392
|
return Boolean(errorValue);
|
|
@@ -30939,6 +31528,18 @@ var initialRnaPresetWizardState = {
|
|
|
30939
31528
|
}
|
|
30940
31529
|
}
|
|
30941
31530
|
};
|
|
31531
|
+
var getComponentSuffix = function getComponentSuffix(componentType) {
|
|
31532
|
+
switch (componentType) {
|
|
31533
|
+
case KetMonomerClass.Base:
|
|
31534
|
+
return 'B';
|
|
31535
|
+
case KetMonomerClass.Sugar:
|
|
31536
|
+
return 'S';
|
|
31537
|
+
case KetMonomerClass.Phosphate:
|
|
31538
|
+
return 'P';
|
|
31539
|
+
default:
|
|
31540
|
+
return '';
|
|
31541
|
+
}
|
|
31542
|
+
};
|
|
30942
31543
|
var wizardReducer = function wizardReducer(state, action) {
|
|
30943
31544
|
switch (action.type) {
|
|
30944
31545
|
case 'SetFieldValue':
|
|
@@ -31040,6 +31641,14 @@ var rnaPresetWizardReducer = function rnaPresetWizardReducer(state, action) {
|
|
|
31040
31641
|
if (!action.rnaComponentKey) {
|
|
31041
31642
|
return state;
|
|
31042
31643
|
}
|
|
31644
|
+
if (action.type === 'UpdateRnaPresetComponentStructure') {
|
|
31645
|
+
return _objectSpread$G(_objectSpread$G({}, state), {}, _defineProperty$1({}, action.rnaComponentKey, _objectSpread$G(_objectSpread$G({}, state[action.rnaComponentKey]), {}, {
|
|
31646
|
+
structure: {
|
|
31647
|
+
atoms: action.atomIds,
|
|
31648
|
+
bonds: action.bondIds
|
|
31649
|
+
}
|
|
31650
|
+
})));
|
|
31651
|
+
}
|
|
31043
31652
|
var rnaComponentKey = action.rnaComponentKey,
|
|
31044
31653
|
restAction = _objectWithoutProperties(action, _excluded$o);
|
|
31045
31654
|
if (action.type === 'SetNotifications') {
|
|
@@ -31082,7 +31691,7 @@ var rnaPresetWizardReducer = function rnaPresetWizardReducer(state, action) {
|
|
|
31082
31691
|
_updatedState = _objectSpread$G(_objectSpread$G({}, _updatedState), {}, {
|
|
31083
31692
|
base: _objectSpread$G(_objectSpread$G({}, _updatedState.base), {}, {
|
|
31084
31693
|
values: _objectSpread$G(_objectSpread$G({}, _updatedState.base.values), {}, {
|
|
31085
|
-
symbol: newPresetCode
|
|
31694
|
+
symbol: newPresetCode ? newPresetCode + getComponentSuffix(KetMonomerClass.Base) : ''
|
|
31086
31695
|
})
|
|
31087
31696
|
})
|
|
31088
31697
|
});
|
|
@@ -31091,7 +31700,7 @@ var rnaPresetWizardReducer = function rnaPresetWizardReducer(state, action) {
|
|
|
31091
31700
|
_updatedState = _objectSpread$G(_objectSpread$G({}, _updatedState), {}, {
|
|
31092
31701
|
sugar: _objectSpread$G(_objectSpread$G({}, _updatedState.sugar), {}, {
|
|
31093
31702
|
values: _objectSpread$G(_objectSpread$G({}, _updatedState.sugar.values), {}, {
|
|
31094
|
-
symbol: newPresetCode
|
|
31703
|
+
symbol: newPresetCode ? newPresetCode + getComponentSuffix(KetMonomerClass.Sugar) : ''
|
|
31095
31704
|
})
|
|
31096
31705
|
})
|
|
31097
31706
|
});
|
|
@@ -31100,7 +31709,7 @@ var rnaPresetWizardReducer = function rnaPresetWizardReducer(state, action) {
|
|
|
31100
31709
|
_updatedState = _objectSpread$G(_objectSpread$G({}, _updatedState), {}, {
|
|
31101
31710
|
phosphate: _objectSpread$G(_objectSpread$G({}, _updatedState.phosphate), {}, {
|
|
31102
31711
|
values: _objectSpread$G(_objectSpread$G({}, _updatedState.phosphate.values), {}, {
|
|
31103
|
-
symbol: newPresetCode
|
|
31712
|
+
symbol: newPresetCode ? newPresetCode + getComponentSuffix(KetMonomerClass.Phosphate) : ''
|
|
31104
31713
|
})
|
|
31105
31714
|
})
|
|
31106
31715
|
});
|
|
@@ -31122,18 +31731,6 @@ var hasAllMandatoryPropertiesFilled = function hasAllMandatoryPropertiesFilled(v
|
|
|
31122
31731
|
}
|
|
31123
31732
|
return true;
|
|
31124
31733
|
};
|
|
31125
|
-
var getComponentSuffix = function getComponentSuffix(componentType) {
|
|
31126
|
-
switch (componentType) {
|
|
31127
|
-
case KetMonomerClass.Base:
|
|
31128
|
-
return 'B';
|
|
31129
|
-
case KetMonomerClass.Sugar:
|
|
31130
|
-
return 'S';
|
|
31131
|
-
case KetMonomerClass.Phosphate:
|
|
31132
|
-
return 'P';
|
|
31133
|
-
default:
|
|
31134
|
-
return '';
|
|
31135
|
-
}
|
|
31136
|
-
};
|
|
31137
31734
|
var getLeavingAtomForAttachmentPoint = function getLeavingAtomForAttachmentPoint(componentType, attachmentPointName) {
|
|
31138
31735
|
switch (componentType) {
|
|
31139
31736
|
case KetMonomerClass.Base:
|
|
@@ -31370,6 +31967,14 @@ var MonomerCreationWizard = function MonomerCreationWizard() {
|
|
|
31370
31967
|
_useState6 = _slicedToArray$1(_useState5, 2),
|
|
31371
31968
|
leavingGroupDialogMessage = _useState6[0],
|
|
31372
31969
|
setLeavingGroupDialogMessage = _useState6[1];
|
|
31970
|
+
var _useState7 = useState(null),
|
|
31971
|
+
_useState8 = _slicedToArray$1(_useState7, 2),
|
|
31972
|
+
pendingType = _useState8[0],
|
|
31973
|
+
setPendingType = _useState8[1];
|
|
31974
|
+
var _useState9 = useState(false),
|
|
31975
|
+
_useState10 = _slicedToArray$1(_useState9, 2),
|
|
31976
|
+
showTypeChangeDialog = _useState10[0],
|
|
31977
|
+
setShowTypeChangeDialog = _useState10[1];
|
|
31373
31978
|
var isRnaPresetType = type === 'rnaPreset';
|
|
31374
31979
|
var notifications = isRnaPresetType ? new Map([].concat(_toConsumableArray(rnaPresetWizardState.preset.notifications || []), _toConsumableArray(rnaPresetWizardState.sugar.notifications || []), _toConsumableArray(rnaPresetWizardState.base.notifications || []), _toConsumableArray(rnaPresetWizardState.phosphate.notifications || []))) : monomerWizardNotifications;
|
|
31375
31980
|
useEffect(function () {
|
|
@@ -31402,37 +32007,71 @@ var MonomerCreationWizard = function MonomerCreationWizard() {
|
|
|
31402
32007
|
window.removeEventListener(MonomerCreationAttachmentPointClickEvent, attachmentPointClickHandler);
|
|
31403
32008
|
};
|
|
31404
32009
|
}, []);
|
|
31405
|
-
|
|
31406
|
-
|
|
31407
|
-
|
|
31408
|
-
}
|
|
31409
|
-
|
|
31410
|
-
|
|
31411
|
-
|
|
31412
|
-
|
|
31413
|
-
|
|
31414
|
-
|
|
31415
|
-
|
|
31416
|
-
});
|
|
31417
|
-
} else {
|
|
31418
|
-
wizardStateDispatch({
|
|
31419
|
-
type: 'SetFieldValue',
|
|
31420
|
-
fieldId: 'aliasHELM',
|
|
31421
|
-
value: ''
|
|
31422
|
-
});
|
|
32010
|
+
useEffect(function () {
|
|
32011
|
+
var isValidRnaComponentKey = function isValidRnaComponentKey(key) {
|
|
32012
|
+
return key === 'base' || key === 'sugar' || key === 'phosphate';
|
|
32013
|
+
};
|
|
32014
|
+
var componentStructureUpdateHandler = function componentStructureUpdateHandler(event) {
|
|
32015
|
+
var updateData = event.detail;
|
|
32016
|
+
var componentKey = updateData.componentKey,
|
|
32017
|
+
atomIds = updateData.atomIds,
|
|
32018
|
+
bondIds = updateData.bondIds;
|
|
32019
|
+
if (!isValidRnaComponentKey(componentKey)) {
|
|
32020
|
+
return;
|
|
31423
32021
|
}
|
|
32022
|
+
rnaPresetWizardStateDispatch({
|
|
32023
|
+
type: 'UpdateRnaPresetComponentStructure',
|
|
32024
|
+
rnaComponentKey: componentKey,
|
|
32025
|
+
atomIds: atomIds,
|
|
32026
|
+
bondIds: bondIds
|
|
32027
|
+
});
|
|
32028
|
+
};
|
|
32029
|
+
window.addEventListener(MonomerCreationComponentStructureUpdateEvent, componentStructureUpdateHandler);
|
|
32030
|
+
return function () {
|
|
32031
|
+
window.removeEventListener(MonomerCreationComponentStructureUpdateEvent, componentStructureUpdateHandler);
|
|
32032
|
+
};
|
|
32033
|
+
}, []);
|
|
32034
|
+
var applyTypeChange = function applyTypeChange(newType) {
|
|
32035
|
+
setModificationTypes([]);
|
|
32036
|
+
if ((type === 'rnaPreset' || newType === 'rnaPreset') && type !== newType) {
|
|
32037
|
+
wizardStateDispatch({
|
|
32038
|
+
type: 'ResetWizard'
|
|
32039
|
+
});
|
|
32040
|
+
rnaPresetWizardStateDispatch({
|
|
32041
|
+
type: 'ResetWizard'
|
|
32042
|
+
});
|
|
32043
|
+
} else {
|
|
31424
32044
|
wizardStateDispatch({
|
|
31425
32045
|
type: 'SetFieldValue',
|
|
31426
|
-
fieldId: '
|
|
31427
|
-
value:
|
|
32046
|
+
fieldId: 'aliasHELM',
|
|
32047
|
+
value: ''
|
|
31428
32048
|
});
|
|
32049
|
+
}
|
|
32050
|
+
wizardStateDispatch({
|
|
32051
|
+
type: 'SetFieldValue',
|
|
32052
|
+
fieldId: 'type',
|
|
32053
|
+
value: newType
|
|
32054
|
+
});
|
|
32055
|
+
};
|
|
32056
|
+
var handleFieldChange = function handleFieldChange(fieldId, value) {
|
|
32057
|
+
if (fieldId === 'type') {
|
|
32058
|
+
if (type === 'rnaPreset' && value !== 'rnaPreset') {
|
|
32059
|
+
setPendingType(value);
|
|
32060
|
+
setShowTypeChangeDialog(true);
|
|
32061
|
+
return;
|
|
32062
|
+
}
|
|
32063
|
+
applyTypeChange(value);
|
|
31429
32064
|
} else {
|
|
32065
|
+
if (fieldId === 'naturalAnalogue') {
|
|
32066
|
+
setModificationTypes([]);
|
|
32067
|
+
}
|
|
31430
32068
|
wizardStateDispatch({
|
|
31431
32069
|
type: 'SetFieldValue',
|
|
31432
32070
|
fieldId: fieldId,
|
|
31433
32071
|
value: value
|
|
31434
32072
|
});
|
|
31435
32073
|
}
|
|
32074
|
+
editor.setRnaMonomerCreationMode(value === 'rnaPreset');
|
|
31436
32075
|
};
|
|
31437
32076
|
useEffect(function () {
|
|
31438
32077
|
var _editor$setMonomerCre;
|
|
@@ -31787,14 +32426,18 @@ var MonomerCreationWizard = function MonomerCreationWizard() {
|
|
|
31787
32426
|
});
|
|
31788
32427
|
var bondBetweenSugarAndBase = _toConsumableArray(bondsBetweenSugarAndBase.values())[0];
|
|
31789
32428
|
var bondBetweenSugarAndPhosphate = _toConsumableArray(bondsBetweenSugarAndPhosphate.values())[0];
|
|
31790
|
-
var
|
|
31791
|
-
var
|
|
31792
|
-
var
|
|
31793
|
-
var
|
|
31794
|
-
|
|
31795
|
-
|
|
31796
|
-
|
|
31797
|
-
|
|
32429
|
+
var sugarR3AttachmentPointAtomId = sugarStructure !== null && sugarStructure !== void 0 && (_sugarStructure$atoms5 = sugarStructure.atoms) !== null && _sugarStructure$atoms5 !== void 0 && _sugarStructure$atoms5.includes(bondBetweenSugarAndBase.begin) ? bondBetweenSugarAndBase.begin : bondBetweenSugarAndBase.end;
|
|
32430
|
+
var sugarR3AttachmentAtom = struct.atoms.get(sugarR3AttachmentPointAtomId);
|
|
32431
|
+
var sugarR2AttachmentPointAtomId = sugarStructure !== null && sugarStructure !== void 0 && (_sugarStructure$atoms6 = sugarStructure.atoms) !== null && _sugarStructure$atoms6 !== void 0 && _sugarStructure$atoms6.includes(bondBetweenSugarAndPhosphate.begin) ? bondBetweenSugarAndPhosphate.begin : bondBetweenSugarAndPhosphate.end;
|
|
32432
|
+
var sugarR2AttachmentAtom = struct.atoms.get(sugarR2AttachmentPointAtomId);
|
|
32433
|
+
var baseR1AttachmentPointAtomId = baseStructure !== null && baseStructure !== void 0 && (_baseStructure$atoms3 = baseStructure.atoms) !== null && _baseStructure$atoms3 !== void 0 && _baseStructure$atoms3.includes(bondBetweenSugarAndBase.begin) ? bondBetweenSugarAndBase.begin : bondBetweenSugarAndBase.end;
|
|
32434
|
+
var baseR1AttachmentAtom = struct.atoms.get(baseR1AttachmentPointAtomId);
|
|
32435
|
+
var phosphateR1AttachmentPointAtomId = phosphateStructure !== null && phosphateStructure !== void 0 && (_phosphateStructure$a3 = phosphateStructure.atoms) !== null && _phosphateStructure$a3 !== void 0 && _phosphateStructure$a3.includes(bondBetweenSugarAndPhosphate.begin) ? bondBetweenSugarAndPhosphate.begin : bondBetweenSugarAndPhosphate.end;
|
|
32436
|
+
var phosphateR1AttachmentAtom = struct.atoms.get(phosphateR1AttachmentPointAtomId);
|
|
32437
|
+
editor.assignConnectionPointAtom(baseR1AttachmentPointAtomId, AttachmentPointName.R1, assignedAttachmentPointsByMonomer.get(rnaPresetWizardState.base), rnaPresetWizardState.base.structure, true, getLeavingAtomForAttachmentPoint(KetMonomerClass.Base, AttachmentPointName.R1), sugarR3AttachmentAtom === null || sugarR3AttachmentAtom === void 0 ? void 0 : sugarR3AttachmentAtom.pp);
|
|
32438
|
+
editor.assignConnectionPointAtom(sugarR2AttachmentPointAtomId, AttachmentPointName.R2, assignedAttachmentPointsByMonomer.get(rnaPresetWizardState.sugar), rnaPresetWizardState.sugar.structure, true, getLeavingAtomForAttachmentPoint(KetMonomerClass.Sugar, AttachmentPointName.R2), phosphateR1AttachmentAtom === null || phosphateR1AttachmentAtom === void 0 ? void 0 : phosphateR1AttachmentAtom.pp);
|
|
32439
|
+
editor.assignConnectionPointAtom(sugarR3AttachmentPointAtomId, AttachmentPointName.R3, assignedAttachmentPointsByMonomer.get(rnaPresetWizardState.sugar), rnaPresetWizardState.sugar.structure, true, getLeavingAtomForAttachmentPoint(KetMonomerClass.Sugar, AttachmentPointName.R3), baseR1AttachmentAtom === null || baseR1AttachmentAtom === void 0 ? void 0 : baseR1AttachmentAtom.pp);
|
|
32440
|
+
editor.assignConnectionPointAtom(phosphateR1AttachmentPointAtomId, AttachmentPointName.R1, assignedAttachmentPointsByMonomer.get(rnaPresetWizardState.phosphate), rnaPresetWizardState.phosphate.structure, true, getLeavingAtomForAttachmentPoint(KetMonomerClass.Phosphate, AttachmentPointName.R1), sugarR2AttachmentAtom === null || sugarR2AttachmentAtom === void 0 ? void 0 : sugarR2AttachmentAtom.pp);
|
|
31798
32441
|
}
|
|
31799
32442
|
monomersToSave.forEach(function (monomerToSave) {
|
|
31800
32443
|
var atomIdMap = new Map();
|
|
@@ -31812,7 +32455,7 @@ var MonomerCreationWizard = function MonomerCreationWizard() {
|
|
|
31812
32455
|
}
|
|
31813
32456
|
monomerAssignedAttachmentPoints.set(attachmentPointKey, [mappedAttachmentAtomId, mappedLeavingGroupAtomId]);
|
|
31814
32457
|
});
|
|
31815
|
-
var shouldBeHidden = isRnaPresetType
|
|
32458
|
+
var shouldBeHidden = isRnaPresetType;
|
|
31816
32459
|
var valuesToSave = monomerToSave.values;
|
|
31817
32460
|
if (shouldBeHidden) {
|
|
31818
32461
|
valuesToSave = autoAssignPropertiesForHiddenMonomer(monomerToSave.values, rnaPresetWizardState.preset.name);
|
|
@@ -31836,6 +32479,7 @@ var MonomerCreationWizard = function MonomerCreationWizard() {
|
|
|
31836
32479
|
editor.finishNewMonomersCreation(monomersData, rnaPresetWizardState.preset.name);
|
|
31837
32480
|
dispatch(onAction(selectRectangleAction));
|
|
31838
32481
|
resetWizard();
|
|
32482
|
+
dispatch(showSnackbarNotification(isRnaPresetType ? NotificationMessages.creationRNASuccessful : NotificationMessages.creationSuccessful));
|
|
31839
32483
|
}
|
|
31840
32484
|
};
|
|
31841
32485
|
var ketcherEditorRootElement = document.querySelector(KETCHER_ROOT_NODE_CSS_SELECTOR);
|
|
@@ -31924,7 +32568,40 @@ var MonomerCreationWizard = function MonomerCreationWizard() {
|
|
|
31924
32568
|
children: "Submit"
|
|
31925
32569
|
})]
|
|
31926
32570
|
})]
|
|
31927
|
-
}),
|
|
32571
|
+
}), showTypeChangeDialog && ketcherEditorRootElement && createPortal(jsx("div", {
|
|
32572
|
+
className: styles$o.dialogOverlay,
|
|
32573
|
+
children: jsx(Dialog, {
|
|
32574
|
+
className: styles$o.smallDialog,
|
|
32575
|
+
title: "Confirm type change",
|
|
32576
|
+
withDivider: true,
|
|
32577
|
+
valid: function valid() {
|
|
32578
|
+
return true;
|
|
32579
|
+
},
|
|
32580
|
+
params: {
|
|
32581
|
+
onOk: function onOk() {
|
|
32582
|
+
if (pendingType !== null) {
|
|
32583
|
+
applyTypeChange(pendingType);
|
|
32584
|
+
}
|
|
32585
|
+
setPendingType(null);
|
|
32586
|
+
setShowTypeChangeDialog(false);
|
|
32587
|
+
},
|
|
32588
|
+
onCancel: function onCancel() {
|
|
32589
|
+
setPendingType(null);
|
|
32590
|
+
setShowTypeChangeDialog(false);
|
|
32591
|
+
}
|
|
32592
|
+
},
|
|
32593
|
+
buttons: ['OK', 'Cancel'],
|
|
32594
|
+
buttonsNameMap: {
|
|
32595
|
+
OK: 'Yes',
|
|
32596
|
+
Cancel: 'Cancel'
|
|
32597
|
+
},
|
|
32598
|
+
primaryButtons: ['Cancel'],
|
|
32599
|
+
children: jsx("div", {
|
|
32600
|
+
className: styles$o.DialogMessage,
|
|
32601
|
+
children: "Changing the type will result in a loss of inputted data. Do you wish to proceed?"
|
|
32602
|
+
})
|
|
32603
|
+
})
|
|
32604
|
+
}), ketcherEditorRootElement), leavingGroupDialogMessage && ketcherEditorRootElement && createPortal(jsx("div", {
|
|
31928
32605
|
className: styles$o.dialogOverlay,
|
|
31929
32606
|
children: jsx(Dialog, {
|
|
31930
32607
|
className: styles$o.smallDialog,
|
|
@@ -39702,7 +40379,7 @@ var Editor$1 = connect(function (state) {
|
|
|
39702
40379
|
};
|
|
39703
40380
|
}, mapDispatchToProps$1)(StructEditor);
|
|
39704
40381
|
|
|
39705
|
-
var classes$1 = {"app":"App-module_app__8cgyF","canvas":"App-module_canvas__taJxn","top":"App-module_top__SBeSV","left":"App-module_left__2iz-i","right":"App-module_right__U7A5Q","bottom":"App-module_bottom__tQA2B"};
|
|
40382
|
+
var classes$1 = {"app":"App-module_app__8cgyF","canvas":"App-module_canvas__taJxn","top":"App-module_top__SBeSV","left":"App-module_left__2iz-i","right":"App-module_right__U7A5Q","bottom":"App-module_bottom__tQA2B","toastNotification":"App-module_toastNotification__o-bVV","toastNotificationText":"App-module_toastNotificationText__RXYHk","toastNotificationCloseIcon":"App-module_toastNotificationCloseIcon__REXMP"};
|
|
39706
40383
|
|
|
39707
40384
|
var classes = {"lookupContainer":"AbbreviationLookup-module_lookupContainer__-JRMj","inputContainer":"AbbreviationLookup-module_inputContainer__6tJpn","input":"AbbreviationLookup-module_input__vCxY9","searchIcon":"AbbreviationLookup-module_searchIcon__DiK0c","optionItemContent":"AbbreviationLookup-module_optionItemContent__L1JlW","optionItem":"AbbreviationLookup-module_optionItem__dAhO-","noOptions":"AbbreviationLookup-module_noOptions__yKxml","listBox":"AbbreviationLookup-module_listBox__Y50AT"};
|
|
39708
40385
|
|
|
@@ -40002,10 +40679,16 @@ var muiTheme = createTheme({
|
|
|
40002
40679
|
var App = function App(props) {
|
|
40003
40680
|
var dispatch = useAppDispatch();
|
|
40004
40681
|
var checkServer = props.checkServer;
|
|
40682
|
+
var snackbarNotificationText = useSelector(selectSnackbarNotificationText);
|
|
40005
40683
|
useSubscriptionOnEvents();
|
|
40006
40684
|
var _useAppContext = useAppContext(),
|
|
40007
40685
|
ketcherId = _useAppContext.ketcherId,
|
|
40008
40686
|
prevKetcherId = _useAppContext.prevKetcherId;
|
|
40687
|
+
var handleCloseSnackbarNotification = useCallback(function () {
|
|
40688
|
+
dispatch({
|
|
40689
|
+
type: 'HIDE_SNACKBAR_NOTIFICATION'
|
|
40690
|
+
});
|
|
40691
|
+
}, [dispatch]);
|
|
40009
40692
|
useEffect(function () {
|
|
40010
40693
|
checkServer();
|
|
40011
40694
|
dispatch(initFGTemplates());
|
|
@@ -40038,7 +40721,26 @@ var App = function App(props) {
|
|
|
40038
40721
|
}),
|
|
40039
40722
|
jsx(AppClipArea, {}), jsx(ModalContainer, {
|
|
40040
40723
|
ketcherId: ketcherId
|
|
40041
|
-
}), jsx(AbbreviationLookupContainer, {})
|
|
40724
|
+
}), jsx(AbbreviationLookupContainer, {}), jsx(Snackbar, {
|
|
40725
|
+
anchorOrigin: {
|
|
40726
|
+
vertical: 'bottom',
|
|
40727
|
+
horizontal: 'center'
|
|
40728
|
+
},
|
|
40729
|
+
open: Boolean(snackbarNotificationText),
|
|
40730
|
+
onClose: handleCloseSnackbarNotification,
|
|
40731
|
+
autoHideDuration: 6000,
|
|
40732
|
+
children: jsxs("div", {
|
|
40733
|
+
className: classes$1.toastNotification,
|
|
40734
|
+
children: [jsx("div", {
|
|
40735
|
+
className: classes$1.toastNotificationText,
|
|
40736
|
+
children: snackbarNotificationText
|
|
40737
|
+
}), jsx(IconButton, {
|
|
40738
|
+
iconName: "close",
|
|
40739
|
+
className: classes$1.toastNotificationCloseIcon,
|
|
40740
|
+
onClick: handleCloseSnackbarNotification
|
|
40741
|
+
})]
|
|
40742
|
+
})
|
|
40743
|
+
})]
|
|
40042
40744
|
})
|
|
40043
40745
|
});
|
|
40044
40746
|
};
|
|
@@ -40217,8 +40919,8 @@ var KetcherBuilder = function () {
|
|
|
40217
40919
|
cleanup = initApp(prevKetcherId, ketcherId, element, appRoot, staticResourcesUrl, {
|
|
40218
40920
|
buttons: buttons || {},
|
|
40219
40921
|
errorHandler: errorHandler || null,
|
|
40220
|
-
version: "3.12.0-
|
|
40221
|
-
buildDate: "
|
|
40922
|
+
version: "3.12.0-rc.2" ,
|
|
40923
|
+
buildDate: "2026-01-27T21:17:45" ,
|
|
40222
40924
|
buildNumber: '',
|
|
40223
40925
|
customButtons: customButtons || []
|
|
40224
40926
|
}, structService, resolve, togglerComponent);
|
|
@@ -40519,7 +41221,7 @@ var ModeControl = function ModeControl(_ref3) {
|
|
|
40519
41221
|
function ownKeys(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; }
|
|
40520
41222
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
40521
41223
|
var MacromoleculesEditorComponent = lazy(function () {
|
|
40522
|
-
return import('./index.modern-
|
|
41224
|
+
return import('./index.modern-3f8330b9.js');
|
|
40523
41225
|
});
|
|
40524
41226
|
var Editor = function Editor(props) {
|
|
40525
41227
|
var _useState = useState(false),
|