ketcher-react 3.12.0-dev.1 → 3.12.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.css +1 -1
- package/dist/cjs/index.css.map +1 -1
- package/dist/cjs/index.js +1212 -515
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/{index.modern-b232add2.js → index.modern-4b58287a.js} +3 -3
- package/dist/cjs/index.modern-4b58287a.js.map +1 -0
- package/dist/cjs/script/editor/Editor.d.ts +18 -1
- 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 +1214 -517
- package/dist/index.js.map +1 -1
- package/dist/{index.modern-06d576e1.js → index.modern-521d26f9.js} +3 -3
- package/dist/index.modern-521d26f9.js.map +1 -0
- package/dist/script/editor/Editor.d.ts +18 -1
- 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.1\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() {
|
|
@@ -26459,18 +26650,244 @@ var Editor$3 = function () {
|
|
|
26459
26650
|
});
|
|
26460
26651
|
return potentialLeavingAtoms;
|
|
26461
26652
|
}
|
|
26653
|
+
}, {
|
|
26654
|
+
key: "getRnaComponentForAtom",
|
|
26655
|
+
value: function getRnaComponentForAtom(atomId) {
|
|
26656
|
+
var _this$monomerCreation;
|
|
26657
|
+
var rnaComponentAtoms = (_this$monomerCreation = this.monomerCreationState) === null || _this$monomerCreation === void 0 ? void 0 : _this$monomerCreation.rnaComponentAtoms;
|
|
26658
|
+
if (!rnaComponentAtoms) {
|
|
26659
|
+
return null;
|
|
26660
|
+
}
|
|
26661
|
+
var _iterator2 = _createForOfIteratorHelper$2(rnaComponentAtoms.entries()),
|
|
26662
|
+
_step2;
|
|
26663
|
+
try {
|
|
26664
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
26665
|
+
var _step2$value = _slicedToArray$1(_step2.value, 2),
|
|
26666
|
+
componentKey = _step2$value[0],
|
|
26667
|
+
componentData = _step2$value[1];
|
|
26668
|
+
if (componentData.atoms.includes(atomId)) {
|
|
26669
|
+
return componentKey;
|
|
26670
|
+
}
|
|
26671
|
+
}
|
|
26672
|
+
} catch (err) {
|
|
26673
|
+
_iterator2.e(err);
|
|
26674
|
+
} finally {
|
|
26675
|
+
_iterator2.f();
|
|
26676
|
+
}
|
|
26677
|
+
return null;
|
|
26678
|
+
}
|
|
26679
|
+
}, {
|
|
26680
|
+
key: "canAssignRnaComponent",
|
|
26681
|
+
value: function canAssignRnaComponent(bond) {
|
|
26682
|
+
var _this$monomerCreation2,
|
|
26683
|
+
_this6 = this;
|
|
26684
|
+
if (!((_this$monomerCreation2 = this.monomerCreationState) !== null && _this$monomerCreation2 !== void 0 && _this$monomerCreation2.rnaComponentAtoms)) {
|
|
26685
|
+
return false;
|
|
26686
|
+
}
|
|
26687
|
+
var beginAtomRnaComponent = this.getRnaComponentForAtom(bond.begin);
|
|
26688
|
+
var endAtomRnaComponent = this.getRnaComponentForAtom(bond.end);
|
|
26689
|
+
if (!beginAtomRnaComponent && !endAtomRnaComponent || beginAtomRnaComponent && endAtomRnaComponent && beginAtomRnaComponent !== endAtomRnaComponent) {
|
|
26690
|
+
return false;
|
|
26691
|
+
}
|
|
26692
|
+
var rnaComponentToAssign = beginAtomRnaComponent || endAtomRnaComponent;
|
|
26693
|
+
var struct = this.struct();
|
|
26694
|
+
var atomIdToStartFrom = beginAtomRnaComponent ? bond.begin : bond.end;
|
|
26695
|
+
var visitedAtomIds = new Set();
|
|
26696
|
+
var atomsToCheck = [atomIdToStartFrom];
|
|
26697
|
+
var hasConnectionToAnotherComponent = false;
|
|
26698
|
+
var hasConnectionToOriginalStructure = false;
|
|
26699
|
+
visitedAtomIds.add(atomIdToStartFrom);
|
|
26700
|
+
var _loop = function _loop() {
|
|
26701
|
+
var currentAtomId = atomsToCheck.pop();
|
|
26702
|
+
var currentAtom = isNumber(currentAtomId) ? struct.atoms.get(currentAtomId) : undefined;
|
|
26703
|
+
if (!currentAtom) {
|
|
26704
|
+
return 1;
|
|
26705
|
+
}
|
|
26706
|
+
currentAtom === null || currentAtom === void 0 || currentAtom.neighbors.forEach(function (neighbor) {
|
|
26707
|
+
var halfBond = struct.halfBonds.get(neighbor);
|
|
26708
|
+
if (hasConnectionToAnotherComponent || hasConnectionToOriginalStructure) {
|
|
26709
|
+
return;
|
|
26710
|
+
}
|
|
26711
|
+
if (!halfBond) {
|
|
26712
|
+
KetcherLogger.warn('Half-bond not found in structure');
|
|
26713
|
+
return;
|
|
26714
|
+
}
|
|
26715
|
+
var neighborAtomId = halfBond.begin === currentAtomId ? halfBond.end : halfBond.begin;
|
|
26716
|
+
if (visitedAtomIds.has(neighborAtomId)) {
|
|
26717
|
+
return;
|
|
26718
|
+
}
|
|
26719
|
+
visitedAtomIds.add(neighborAtomId);
|
|
26720
|
+
var neighborAtomRnaComponent = _this6.getRnaComponentForAtom(neighborAtomId);
|
|
26721
|
+
if (neighborAtomRnaComponent === rnaComponentToAssign) {
|
|
26722
|
+
return;
|
|
26723
|
+
}
|
|
26724
|
+
if (neighborAtomRnaComponent && neighborAtomRnaComponent !== rnaComponentToAssign) {
|
|
26725
|
+
hasConnectionToAnotherComponent = true;
|
|
26726
|
+
return;
|
|
26727
|
+
}
|
|
26728
|
+
var originalAtomId = _this6.selectedToOriginalAtomsIdMap.get(neighborAtomId);
|
|
26729
|
+
if (isNumber(originalAtomId) && _this6.originalStruct.atoms.has(originalAtomId)) {
|
|
26730
|
+
hasConnectionToOriginalStructure = true;
|
|
26731
|
+
return;
|
|
26732
|
+
}
|
|
26733
|
+
atomsToCheck.push(neighborAtomId);
|
|
26734
|
+
visitedAtomIds.add(neighborAtomId);
|
|
26735
|
+
});
|
|
26736
|
+
};
|
|
26737
|
+
while (atomsToCheck.length > 0) {
|
|
26738
|
+
if (_loop()) continue;
|
|
26739
|
+
}
|
|
26740
|
+
if (hasConnectionToAnotherComponent || hasConnectionToOriginalStructure) {
|
|
26741
|
+
return false;
|
|
26742
|
+
}
|
|
26743
|
+
return true;
|
|
26744
|
+
}
|
|
26745
|
+
}, {
|
|
26746
|
+
key: "autoAssignAtomToRnaComponent",
|
|
26747
|
+
value: function autoAssignAtomToRnaComponent(bondId) {
|
|
26748
|
+
var _this$monomerCreation3;
|
|
26749
|
+
var rnaComponentAtoms = (_this$monomerCreation3 = this.monomerCreationState) === null || _this$monomerCreation3 === void 0 ? void 0 : _this$monomerCreation3.rnaComponentAtoms;
|
|
26750
|
+
if (!rnaComponentAtoms) {
|
|
26751
|
+
return;
|
|
26752
|
+
}
|
|
26753
|
+
var struct = this.struct();
|
|
26754
|
+
var bond = struct.bonds.get(bondId);
|
|
26755
|
+
if (!bond) {
|
|
26756
|
+
KetcherLogger.warn('Bond not found in structure');
|
|
26757
|
+
return;
|
|
26758
|
+
}
|
|
26759
|
+
var beginAtomComponent = this.getRnaComponentForAtom(bond.begin);
|
|
26760
|
+
var endAtomComponent = this.getRnaComponentForAtom(bond.end);
|
|
26761
|
+
var componentToMark = beginAtomComponent || endAtomComponent;
|
|
26762
|
+
if (!componentToMark) {
|
|
26763
|
+
return;
|
|
26764
|
+
}
|
|
26765
|
+
var atomsIdsToMark = [];
|
|
26766
|
+
var bondIdsToMark = [];
|
|
26767
|
+
var bondIdsToCheck = [bondId];
|
|
26768
|
+
var visitedBonds = new Set();
|
|
26769
|
+
while (bondIdsToCheck.length > 0) {
|
|
26770
|
+
var currentBondId = bondIdsToCheck.pop();
|
|
26771
|
+
var currentBond = isNumber(currentBondId) ? struct.bonds.get(currentBondId) : undefined;
|
|
26772
|
+
if (!isNumber(currentBondId) || !currentBond || visitedBonds.has(currentBondId)) {
|
|
26773
|
+
continue;
|
|
26774
|
+
}
|
|
26775
|
+
bondIdsToMark.push(currentBondId);
|
|
26776
|
+
visitedBonds.add(currentBondId);
|
|
26777
|
+
var beginAtom = struct.atoms.get(currentBond.begin);
|
|
26778
|
+
var endAtom = struct.atoms.get(currentBond.end);
|
|
26779
|
+
var beginAtomRnaComponent = this.getRnaComponentForAtom(currentBond.begin);
|
|
26780
|
+
var endAtomRnaComponent = this.getRnaComponentForAtom(currentBond.end);
|
|
26781
|
+
var atomsToContinue = [];
|
|
26782
|
+
if (beginAtom && beginAtomRnaComponent !== componentToMark) {
|
|
26783
|
+
atomsIdsToMark.push(currentBond.begin);
|
|
26784
|
+
atomsToContinue.push(beginAtom);
|
|
26785
|
+
}
|
|
26786
|
+
if (endAtom && endAtomRnaComponent !== componentToMark) {
|
|
26787
|
+
atomsIdsToMark.push(currentBond.end);
|
|
26788
|
+
atomsToContinue.push(endAtom);
|
|
26789
|
+
}
|
|
26790
|
+
atomsToContinue.forEach(function (atom) {
|
|
26791
|
+
atom.neighbors.forEach(function (halfBondId) {
|
|
26792
|
+
var halfBond = struct.halfBonds.get(halfBondId);
|
|
26793
|
+
if (!halfBond) {
|
|
26794
|
+
KetcherLogger.warn('Half-bond not found in structure');
|
|
26795
|
+
return;
|
|
26796
|
+
}
|
|
26797
|
+
var nextBondId = halfBond.bid;
|
|
26798
|
+
var nextBond = struct.bonds.get(nextBondId);
|
|
26799
|
+
if (!nextBond || bondIdsToCheck.includes(nextBondId)) {
|
|
26800
|
+
KetcherLogger.warn('Bond not found in structure');
|
|
26801
|
+
return;
|
|
26802
|
+
}
|
|
26803
|
+
bondIdsToCheck.push(nextBondId);
|
|
26804
|
+
});
|
|
26805
|
+
});
|
|
26806
|
+
}
|
|
26807
|
+
this.addAtomsAndBondsToRnaComponent(componentToMark, atomsIdsToMark, bondIdsToMark);
|
|
26808
|
+
}
|
|
26809
|
+
}, {
|
|
26810
|
+
key: "updateRnaComponentStructureState",
|
|
26811
|
+
value: function updateRnaComponentStructureState(componentKey, updatedAtoms, updatedBonds) {
|
|
26812
|
+
var _this$monomerCreation4;
|
|
26813
|
+
(_this$monomerCreation4 = this.monomerCreationState) === null || _this$monomerCreation4 === void 0 || (_this$monomerCreation4 = _this$monomerCreation4.rnaComponentAtoms) === null || _this$monomerCreation4 === void 0 || _this$monomerCreation4.set(componentKey, {
|
|
26814
|
+
atoms: updatedAtoms,
|
|
26815
|
+
bonds: updatedBonds
|
|
26816
|
+
});
|
|
26817
|
+
var eventData = {
|
|
26818
|
+
componentKey: componentKey,
|
|
26819
|
+
atomIds: updatedAtoms,
|
|
26820
|
+
bondIds: updatedBonds
|
|
26821
|
+
};
|
|
26822
|
+
window.dispatchEvent(new CustomEvent(MonomerCreationComponentStructureUpdateEvent, {
|
|
26823
|
+
detail: eventData
|
|
26824
|
+
}));
|
|
26825
|
+
}
|
|
26826
|
+
}, {
|
|
26827
|
+
key: "addAtomsAndBondsToRnaComponent",
|
|
26828
|
+
value: function addAtomsAndBondsToRnaComponent(componentKey, atomIds, bondIds) {
|
|
26829
|
+
var _this$monomerCreation5;
|
|
26830
|
+
if (!((_this$monomerCreation5 = this.monomerCreationState) !== null && _this$monomerCreation5 !== void 0 && _this$monomerCreation5.rnaComponentAtoms)) {
|
|
26831
|
+
return;
|
|
26832
|
+
}
|
|
26833
|
+
var componentData = this.monomerCreationState.rnaComponentAtoms.get(componentKey);
|
|
26834
|
+
if (!componentData) {
|
|
26835
|
+
return;
|
|
26836
|
+
}
|
|
26837
|
+
var updatedAtoms = _toConsumableArray(componentData.atoms);
|
|
26838
|
+
var updatedBonds = _toConsumableArray(componentData.bonds);
|
|
26839
|
+
atomIds.forEach(function (atomId) {
|
|
26840
|
+
if (!updatedAtoms.includes(atomId)) {
|
|
26841
|
+
updatedAtoms.push(atomId);
|
|
26842
|
+
}
|
|
26843
|
+
});
|
|
26844
|
+
bondIds.forEach(function (bondId) {
|
|
26845
|
+
if (!updatedBonds.includes(bondId)) {
|
|
26846
|
+
updatedBonds.push(bondId);
|
|
26847
|
+
}
|
|
26848
|
+
});
|
|
26849
|
+
this.updateRnaComponentStructureState(componentKey, updatedAtoms, updatedBonds);
|
|
26850
|
+
}
|
|
26851
|
+
}, {
|
|
26852
|
+
key: "removeAtomsAndBondsFromRnaComponents",
|
|
26853
|
+
value: function removeAtomsAndBondsFromRnaComponents(atomIds, bondIds) {
|
|
26854
|
+
var _this$monomerCreation6;
|
|
26855
|
+
if (!((_this$monomerCreation6 = this.monomerCreationState) !== null && _this$monomerCreation6 !== void 0 && _this$monomerCreation6.rnaComponentAtoms)) {
|
|
26856
|
+
return;
|
|
26857
|
+
}
|
|
26858
|
+
var _iterator3 = _createForOfIteratorHelper$2(this.monomerCreationState.rnaComponentAtoms.entries()),
|
|
26859
|
+
_step3;
|
|
26860
|
+
try {
|
|
26861
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
26862
|
+
var _step3$value = _slicedToArray$1(_step3.value, 2),
|
|
26863
|
+
componentKey = _step3$value[0],
|
|
26864
|
+
componentData = _step3$value[1];
|
|
26865
|
+
var updatedAtoms = componentData.atoms.filter(function (atomId) {
|
|
26866
|
+
return !atomIds.includes(atomId);
|
|
26867
|
+
});
|
|
26868
|
+
var updatedBonds = componentData.bonds.filter(function (bondId) {
|
|
26869
|
+
return !bondIds.includes(bondId);
|
|
26870
|
+
});
|
|
26871
|
+
this.updateRnaComponentStructureState(componentKey, updatedAtoms, updatedBonds);
|
|
26872
|
+
}
|
|
26873
|
+
} catch (err) {
|
|
26874
|
+
_iterator3.e(err);
|
|
26875
|
+
} finally {
|
|
26876
|
+
_iterator3.f();
|
|
26877
|
+
}
|
|
26878
|
+
}
|
|
26462
26879
|
}, {
|
|
26463
26880
|
key: "subscribeToChangeEventInMonomerCreationWizard",
|
|
26464
26881
|
value: function subscribeToChangeEventInMonomerCreationWizard() {
|
|
26465
|
-
var
|
|
26882
|
+
var _this7 = this;
|
|
26466
26883
|
if (this.changeEventSubscriber) {
|
|
26467
26884
|
return;
|
|
26468
26885
|
}
|
|
26469
26886
|
var handleChangeEvent = function handleChangeEvent(data) {
|
|
26470
|
-
if (!
|
|
26887
|
+
if (!_this7.isMonomerCreationWizardActive || data.length === 0) {
|
|
26471
26888
|
return;
|
|
26472
26889
|
}
|
|
26473
|
-
|
|
26890
|
+
_this7.collectChangesForMonomerCreationStateInvalidation(data);
|
|
26474
26891
|
};
|
|
26475
26892
|
this.changeEventSubscriber = this.subscribe('change', handleChangeEvent);
|
|
26476
26893
|
}
|
|
@@ -26491,9 +26908,11 @@ var Editor$3 = function () {
|
|
|
26491
26908
|
var changesMap = new Map();
|
|
26492
26909
|
data.forEach(function (entry) {
|
|
26493
26910
|
switch (entry.operation) {
|
|
26911
|
+
case OperationType.ATOM_ADD:
|
|
26494
26912
|
case OperationType.ATOM_DELETE:
|
|
26495
26913
|
case OperationType.ATOM_ATTR:
|
|
26496
26914
|
case OperationType.BOND_ADD:
|
|
26915
|
+
case OperationType.BOND_DELETE:
|
|
26497
26916
|
case OperationType.BOND_ATTR:
|
|
26498
26917
|
{
|
|
26499
26918
|
if (entry.id !== undefined) {
|
|
@@ -26513,21 +26932,21 @@ var Editor$3 = function () {
|
|
|
26513
26932
|
}, {
|
|
26514
26933
|
key: "invalidateMonomerCreationWizardState",
|
|
26515
26934
|
value: function invalidateMonomerCreationWizardState(changesMap) {
|
|
26516
|
-
var
|
|
26935
|
+
var _this8 = this;
|
|
26517
26936
|
if (!this.monomerCreationState) {
|
|
26518
26937
|
return;
|
|
26519
26938
|
}
|
|
26520
|
-
var
|
|
26521
|
-
|
|
26939
|
+
var _iterator4 = _createForOfIteratorHelper$2(changesMap.entries()),
|
|
26940
|
+
_step4;
|
|
26522
26941
|
try {
|
|
26523
|
-
var
|
|
26524
|
-
var
|
|
26525
|
-
operation =
|
|
26526
|
-
ids =
|
|
26942
|
+
var _loop2 = function _loop2() {
|
|
26943
|
+
var _step4$value = _slicedToArray$1(_step4.value, 2),
|
|
26944
|
+
operation = _step4$value[0],
|
|
26945
|
+
ids = _step4$value[1];
|
|
26527
26946
|
switch (operation) {
|
|
26528
26947
|
case OperationType.ATOM_DELETE:
|
|
26529
26948
|
{
|
|
26530
|
-
var attachmentPointsToInvalidate = Array.from(
|
|
26949
|
+
var attachmentPointsToInvalidate = Array.from(_this8.monomerCreationState.assignedAttachmentPoints.entries()).filter(function (_ref11) {
|
|
26531
26950
|
var _ref12 = _slicedToArray$1(_ref11, 2),
|
|
26532
26951
|
atomPair = _ref12[1];
|
|
26533
26952
|
return ids.has(atomPair[0]) || ids.has(atomPair[1]);
|
|
@@ -26543,67 +26962,68 @@ var Editor$3 = function () {
|
|
|
26543
26962
|
attachmentAtomId = _atomPair5[0],
|
|
26544
26963
|
leavingAtomId = _atomPair5[1];
|
|
26545
26964
|
if (ids.has(attachmentAtomId)) {
|
|
26546
|
-
var
|
|
26547
|
-
(
|
|
26965
|
+
var _this8$monomerCreatio;
|
|
26966
|
+
(_this8$monomerCreatio = _this8.monomerCreationState) === null || _this8$monomerCreatio === void 0 || _this8$monomerCreatio.assignedAttachmentPoints["delete"](attachmentPointName);
|
|
26548
26967
|
} else if (ids.has(leavingAtomId)) {
|
|
26549
|
-
var potentialLeavingAtoms =
|
|
26968
|
+
var potentialLeavingAtoms = _this8.findPotentialLeavingAtoms(attachmentAtomId);
|
|
26550
26969
|
if (potentialLeavingAtoms.length === 0) {
|
|
26551
|
-
var
|
|
26552
|
-
(
|
|
26970
|
+
var _this8$monomerCreatio2;
|
|
26971
|
+
(_this8$monomerCreatio2 = _this8.monomerCreationState) === null || _this8$monomerCreatio2 === void 0 || _this8$monomerCreatio2.assignedAttachmentPoints["delete"](attachmentPointName);
|
|
26553
26972
|
} else {
|
|
26554
|
-
var
|
|
26555
|
-
var newLeavingAtomId =
|
|
26973
|
+
var _this8$monomerCreatio3;
|
|
26974
|
+
var newLeavingAtomId = _this8.struct().atoms.keyOf(potentialLeavingAtoms[0]);
|
|
26556
26975
|
assert_1(newLeavingAtomId !== null);
|
|
26557
|
-
(
|
|
26976
|
+
(_this8$monomerCreatio3 = _this8.monomerCreationState) === null || _this8$monomerCreatio3 === void 0 || _this8$monomerCreatio3.assignedAttachmentPoints.set(attachmentPointName, [attachmentAtomId, newLeavingAtomId]);
|
|
26558
26977
|
}
|
|
26559
26978
|
}
|
|
26560
26979
|
});
|
|
26561
|
-
var potentialAttachmentPointsToInvalidate = Array.from(
|
|
26980
|
+
var potentialAttachmentPointsToInvalidate = Array.from(_this8.monomerCreationState.potentialAttachmentPoints.entries());
|
|
26562
26981
|
potentialAttachmentPointsToInvalidate.forEach(function (_ref15) {
|
|
26563
26982
|
var _ref16 = _slicedToArray$1(_ref15, 2),
|
|
26564
26983
|
attachmentAtomId = _ref16[0],
|
|
26565
26984
|
leavingAtomIds = _ref16[1];
|
|
26566
26985
|
if (ids.has(attachmentAtomId)) {
|
|
26567
|
-
var
|
|
26568
|
-
(
|
|
26986
|
+
var _this8$monomerCreatio4;
|
|
26987
|
+
(_this8$monomerCreatio4 = _this8.monomerCreationState) === null || _this8$monomerCreatio4 === void 0 || _this8$monomerCreatio4.potentialAttachmentPoints["delete"](attachmentAtomId);
|
|
26569
26988
|
} else {
|
|
26570
26989
|
var updatedLeavingAtomIds = new Set(Array.from(leavingAtomIds).filter(function (id) {
|
|
26571
26990
|
return !ids.has(id);
|
|
26572
26991
|
}));
|
|
26573
26992
|
if (updatedLeavingAtomIds.size === 0) {
|
|
26574
|
-
var
|
|
26575
|
-
(
|
|
26993
|
+
var _this8$monomerCreatio5;
|
|
26994
|
+
(_this8$monomerCreatio5 = _this8.monomerCreationState) === null || _this8$monomerCreatio5 === void 0 || _this8$monomerCreatio5.potentialAttachmentPoints["delete"](attachmentAtomId);
|
|
26576
26995
|
} else {
|
|
26577
|
-
var
|
|
26578
|
-
(
|
|
26996
|
+
var _this8$monomerCreatio6;
|
|
26997
|
+
(_this8$monomerCreatio6 = _this8.monomerCreationState) === null || _this8$monomerCreatio6 === void 0 || _this8$monomerCreatio6.potentialAttachmentPoints.set(attachmentAtomId, updatedLeavingAtomIds);
|
|
26579
26998
|
}
|
|
26580
26999
|
}
|
|
26581
27000
|
});
|
|
27001
|
+
_this8.removeAtomsAndBondsFromRnaComponents([], _toConsumableArray(ids.values()));
|
|
26582
27002
|
}
|
|
26583
27003
|
break;
|
|
26584
27004
|
case OperationType.BOND_ATTR:
|
|
26585
27005
|
{
|
|
26586
|
-
var
|
|
26587
|
-
|
|
27006
|
+
var _iterator5 = _createForOfIteratorHelper$2(ids.values()),
|
|
27007
|
+
_step5;
|
|
26588
27008
|
try {
|
|
26589
|
-
var
|
|
26590
|
-
var id =
|
|
26591
|
-
var bond =
|
|
27009
|
+
var _loop3 = function _loop3() {
|
|
27010
|
+
var id = _step5.value;
|
|
27011
|
+
var bond = _this8.struct().bonds.get(id);
|
|
26592
27012
|
assert_1(bond);
|
|
26593
|
-
var attachmentPointWithBond = Array.from(
|
|
27013
|
+
var attachmentPointWithBond = Array.from(_this8.monomerCreationState.assignedAttachmentPoints.entries()).find(function (_ref17) {
|
|
26594
27014
|
var _ref18 = _slicedToArray$1(_ref17, 2),
|
|
26595
27015
|
atomPair = _ref18[1];
|
|
26596
27016
|
return bond.begin === atomPair[0] && bond.end === atomPair[1] || bond.begin === atomPair[1] && bond.end === atomPair[0];
|
|
26597
27017
|
});
|
|
26598
27018
|
if (attachmentPointWithBond) {
|
|
26599
27019
|
if (!Editor.isBondSuitableForAttachmentPoint(bond)) {
|
|
26600
|
-
|
|
27020
|
+
_this8.monomerCreationState.problematicAttachmentPoints.add(attachmentPointWithBond[0]);
|
|
26601
27021
|
} else {
|
|
26602
|
-
|
|
27022
|
+
_this8.monomerCreationState.problematicAttachmentPoints["delete"](attachmentPointWithBond[0]);
|
|
26603
27023
|
}
|
|
26604
27024
|
}
|
|
26605
27025
|
if (!Editor.isBondSuitableForAttachmentPoint(bond)) {
|
|
26606
|
-
|
|
27026
|
+
_this8.monomerCreationState.potentialAttachmentPoints.forEach(function (leavingAtomIds, attachmentAtomId) {
|
|
26607
27027
|
var updatedLeavingAtomIds = new Set(leavingAtomIds);
|
|
26608
27028
|
var bondFromAttachmentAtom = bond.begin === attachmentAtomId && leavingAtomIds.has(bond.end);
|
|
26609
27029
|
var bondToAttachmentAtom = bond.end === attachmentAtomId && leavingAtomIds.has(bond.begin);
|
|
@@ -26611,35 +27031,35 @@ var Editor$3 = function () {
|
|
|
26611
27031
|
updatedLeavingAtomIds["delete"](bondFromAttachmentAtom ? bond.end : bond.begin);
|
|
26612
27032
|
}
|
|
26613
27033
|
if (updatedLeavingAtomIds.size === 0) {
|
|
26614
|
-
var
|
|
26615
|
-
(
|
|
27034
|
+
var _this8$monomerCreatio7;
|
|
27035
|
+
(_this8$monomerCreatio7 = _this8.monomerCreationState) === null || _this8$monomerCreatio7 === void 0 || _this8$monomerCreatio7.potentialAttachmentPoints["delete"](attachmentAtomId);
|
|
26616
27036
|
} else {
|
|
26617
|
-
var
|
|
26618
|
-
(
|
|
27037
|
+
var _this8$monomerCreatio8;
|
|
27038
|
+
(_this8$monomerCreatio8 = _this8.monomerCreationState) === null || _this8$monomerCreatio8 === void 0 || _this8$monomerCreatio8.potentialAttachmentPoints.set(attachmentAtomId, updatedLeavingAtomIds);
|
|
26619
27039
|
}
|
|
26620
27040
|
});
|
|
26621
27041
|
}
|
|
26622
27042
|
};
|
|
26623
|
-
for (
|
|
26624
|
-
|
|
27043
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
27044
|
+
_loop3();
|
|
26625
27045
|
}
|
|
26626
27046
|
} catch (err) {
|
|
26627
|
-
|
|
27047
|
+
_iterator5.e(err);
|
|
26628
27048
|
} finally {
|
|
26629
|
-
|
|
27049
|
+
_iterator5.f();
|
|
26630
27050
|
}
|
|
26631
27051
|
break;
|
|
26632
27052
|
}
|
|
26633
27053
|
case OperationType.BOND_ADD:
|
|
26634
27054
|
{
|
|
26635
|
-
var
|
|
26636
|
-
|
|
27055
|
+
var _iterator6 = _createForOfIteratorHelper$2(ids.values()),
|
|
27056
|
+
_step6;
|
|
26637
27057
|
try {
|
|
26638
|
-
var
|
|
26639
|
-
var id =
|
|
26640
|
-
var bond =
|
|
27058
|
+
var _loop4 = function _loop4() {
|
|
27059
|
+
var id = _step6.value;
|
|
27060
|
+
var bond = _this8.struct().bonds.get(id);
|
|
26641
27061
|
assert_1(bond);
|
|
26642
|
-
var attachmentPointWithBondToLeavingAtom = Array.from(
|
|
27062
|
+
var attachmentPointWithBondToLeavingAtom = Array.from(_this8.monomerCreationState.assignedAttachmentPoints.entries()).find(function (_ref19) {
|
|
26643
27063
|
var _ref20 = _slicedToArray$1(_ref19, 2),
|
|
26644
27064
|
_ref20$ = _slicedToArray$1(_ref20[1], 2),
|
|
26645
27065
|
attachmentAtomId = _ref20$[0],
|
|
@@ -26649,55 +27069,72 @@ var Editor$3 = function () {
|
|
|
26649
27069
|
if (attachmentPointWithBondToLeavingAtom) {
|
|
26650
27070
|
var _attachmentPointWithB = _slicedToArray$1(attachmentPointWithBondToLeavingAtom, 1),
|
|
26651
27071
|
attachmentPointName = _attachmentPointWithB[0];
|
|
26652
|
-
|
|
27072
|
+
_this8.monomerCreationState.assignedAttachmentPoints["delete"](attachmentPointName);
|
|
26653
27073
|
}
|
|
26654
27074
|
if (Editor.isBondSuitableForAttachmentPoint(bond)) {
|
|
26655
|
-
if (
|
|
26656
|
-
var leavingAtomIds =
|
|
27075
|
+
if (_this8.monomerCreationState.potentialAttachmentPoints.has(bond.begin)) {
|
|
27076
|
+
var leavingAtomIds = _this8.monomerCreationState.potentialAttachmentPoints.get(bond.begin);
|
|
26657
27077
|
assert_1(leavingAtomIds);
|
|
26658
|
-
var endAtom =
|
|
27078
|
+
var endAtom = _this8.struct().atoms.get(bond.end);
|
|
26659
27079
|
if (endAtom && endAtom.neighbors.length === 1) {
|
|
26660
27080
|
var updatedLeavingAtomIds = new Set(leavingAtomIds);
|
|
26661
27081
|
updatedLeavingAtomIds.add(bond.end);
|
|
26662
|
-
|
|
27082
|
+
_this8.monomerCreationState.potentialAttachmentPoints.set(bond.begin, updatedLeavingAtomIds);
|
|
26663
27083
|
}
|
|
26664
27084
|
}
|
|
26665
|
-
if (
|
|
26666
|
-
var _leavingAtomIds =
|
|
27085
|
+
if (_this8.monomerCreationState.potentialAttachmentPoints.has(bond.end)) {
|
|
27086
|
+
var _leavingAtomIds = _this8.monomerCreationState.potentialAttachmentPoints.get(bond.end);
|
|
26667
27087
|
assert_1(_leavingAtomIds);
|
|
26668
|
-
var beginAtom =
|
|
27088
|
+
var beginAtom = _this8.struct().atoms.get(bond.begin);
|
|
26669
27089
|
if (beginAtom && beginAtom.neighbors.length === 1) {
|
|
26670
27090
|
var _updatedLeavingAtomIds = new Set(_leavingAtomIds);
|
|
26671
27091
|
_updatedLeavingAtomIds.add(bond.begin);
|
|
26672
|
-
|
|
27092
|
+
_this8.monomerCreationState.potentialAttachmentPoints.set(bond.end, _updatedLeavingAtomIds);
|
|
26673
27093
|
}
|
|
26674
27094
|
}
|
|
26675
27095
|
}
|
|
27096
|
+
if (_this8.canAssignRnaComponent(bond)) {
|
|
27097
|
+
_this8.autoAssignAtomToRnaComponent(id);
|
|
27098
|
+
}
|
|
26676
27099
|
};
|
|
26677
|
-
for (
|
|
26678
|
-
|
|
27100
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
27101
|
+
_loop4();
|
|
26679
27102
|
}
|
|
26680
27103
|
} catch (err) {
|
|
26681
|
-
|
|
27104
|
+
_iterator6.e(err);
|
|
26682
27105
|
} finally {
|
|
26683
|
-
|
|
27106
|
+
_iterator6.f();
|
|
26684
27107
|
}
|
|
26685
27108
|
break;
|
|
26686
27109
|
}
|
|
27110
|
+
case OperationType.BOND_DELETE:
|
|
27111
|
+
{
|
|
27112
|
+
_this8.removeAtomsAndBondsFromRnaComponents([], _toConsumableArray(ids.values()));
|
|
27113
|
+
break;
|
|
27114
|
+
}
|
|
26687
27115
|
default:
|
|
26688
27116
|
break;
|
|
26689
27117
|
}
|
|
26690
27118
|
};
|
|
26691
|
-
for (
|
|
26692
|
-
if (
|
|
27119
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
27120
|
+
if (_loop2()) continue;
|
|
26693
27121
|
}
|
|
26694
27122
|
} catch (err) {
|
|
26695
|
-
|
|
27123
|
+
_iterator4.e(err);
|
|
26696
27124
|
} finally {
|
|
26697
|
-
|
|
27125
|
+
_iterator4.f();
|
|
26698
27126
|
}
|
|
26699
27127
|
this.monomerCreationState = _objectSpread$V({}, this.monomerCreationState || {});
|
|
26700
27128
|
}
|
|
27129
|
+
}, {
|
|
27130
|
+
key: "setRnaMonomerCreationMode",
|
|
27131
|
+
value: function setRnaMonomerCreationMode(isActive) {
|
|
27132
|
+
if (!this.monomerCreationState) {
|
|
27133
|
+
KetcherLogger.warn('Monomer creation state is not initialized');
|
|
27134
|
+
return;
|
|
27135
|
+
}
|
|
27136
|
+
this.monomerCreationState.isRnaPresetMode = isActive;
|
|
27137
|
+
}
|
|
26701
27138
|
}, {
|
|
26702
27139
|
key: "selection",
|
|
26703
27140
|
value: function selection(ci) {
|
|
@@ -26899,7 +27336,20 @@ var Editor$3 = function () {
|
|
|
26899
27336
|
}, {
|
|
26900
27337
|
key: "unsubscribe",
|
|
26901
27338
|
value: function unsubscribe(eventName, subscriber) {
|
|
26902
|
-
|
|
27339
|
+
switch (eventName) {
|
|
27340
|
+
case 'change':
|
|
27341
|
+
{
|
|
27342
|
+
ketcherProvider.getKetcher(this.ketcherId).changeEvent.remove(subscriber.handler);
|
|
27343
|
+
break;
|
|
27344
|
+
}
|
|
27345
|
+
case 'libraryUpdate':
|
|
27346
|
+
{
|
|
27347
|
+
ketcherProvider.getKetcher(this.ketcherId).libraryUpdateEvent.remove(subscriber.handler);
|
|
27348
|
+
break;
|
|
27349
|
+
}
|
|
27350
|
+
default:
|
|
27351
|
+
this.event[eventName].remove(subscriber.handler);
|
|
27352
|
+
}
|
|
26903
27353
|
}
|
|
26904
27354
|
}, {
|
|
26905
27355
|
key: "findItem",
|
|
@@ -27035,17 +27485,17 @@ var Editor$3 = function () {
|
|
|
27035
27485
|
return false;
|
|
27036
27486
|
}
|
|
27037
27487
|
var adjacencyList = new Map();
|
|
27038
|
-
var
|
|
27039
|
-
|
|
27488
|
+
var _iterator7 = _createForOfIteratorHelper$2(atomIds),
|
|
27489
|
+
_step7;
|
|
27040
27490
|
try {
|
|
27041
|
-
for (
|
|
27042
|
-
var atomId =
|
|
27491
|
+
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
27492
|
+
var atomId = _step7.value;
|
|
27043
27493
|
adjacencyList.set(atomId, []);
|
|
27044
27494
|
}
|
|
27045
27495
|
} catch (err) {
|
|
27046
|
-
|
|
27496
|
+
_iterator7.e(err);
|
|
27047
27497
|
} finally {
|
|
27048
|
-
|
|
27498
|
+
_iterator7.f();
|
|
27049
27499
|
}
|
|
27050
27500
|
bondIds.forEach(function (bondId) {
|
|
27051
27501
|
var bond = struct.bonds.get(bondId);
|
|
@@ -27067,19 +27517,19 @@ var Editor$3 = function () {
|
|
|
27067
27517
|
if (nextAtomId !== undefined && !visited.has(nextAtomId)) {
|
|
27068
27518
|
var _adjacencyList$get3;
|
|
27069
27519
|
visited.add(nextAtomId);
|
|
27070
|
-
var
|
|
27071
|
-
|
|
27520
|
+
var _iterator8 = _createForOfIteratorHelper$2((_adjacencyList$get3 = adjacencyList.get(nextAtomId)) !== null && _adjacencyList$get3 !== void 0 ? _adjacencyList$get3 : []),
|
|
27521
|
+
_step8;
|
|
27072
27522
|
try {
|
|
27073
|
-
for (
|
|
27074
|
-
var neighbor =
|
|
27523
|
+
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
|
27524
|
+
var neighbor = _step8.value;
|
|
27075
27525
|
if (!visited.has(neighbor)) {
|
|
27076
27526
|
queue.push(neighbor);
|
|
27077
27527
|
}
|
|
27078
27528
|
}
|
|
27079
27529
|
} catch (err) {
|
|
27080
|
-
|
|
27530
|
+
_iterator8.e(err);
|
|
27081
27531
|
} finally {
|
|
27082
|
-
|
|
27532
|
+
_iterator8.f();
|
|
27083
27533
|
}
|
|
27084
27534
|
}
|
|
27085
27535
|
}
|
|
@@ -27245,7 +27695,7 @@ function setHover(ci, visible, render) {
|
|
|
27245
27695
|
|
|
27246
27696
|
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
27697
|
|
|
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"};
|
|
27698
|
+
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
27699
|
|
|
27250
27700
|
var CONTEXT_MENU_ID;
|
|
27251
27701
|
(function (CONTEXT_MENU_ID) {
|
|
@@ -27415,6 +27865,116 @@ var useDelete$1 = function useDelete() {
|
|
|
27415
27865
|
return handler;
|
|
27416
27866
|
};
|
|
27417
27867
|
|
|
27868
|
+
var MonomerTypeSelectConfig = [{
|
|
27869
|
+
value: KetMonomerClass.AminoAcid,
|
|
27870
|
+
label: 'Amino acid',
|
|
27871
|
+
iconName: 'peptide'
|
|
27872
|
+
}, {
|
|
27873
|
+
value: KetMonomerClass.Sugar,
|
|
27874
|
+
label: 'Sugar',
|
|
27875
|
+
iconName: 'sugar'
|
|
27876
|
+
}, {
|
|
27877
|
+
value: KetMonomerClass.Base,
|
|
27878
|
+
label: 'Base',
|
|
27879
|
+
iconName: 'base'
|
|
27880
|
+
}, {
|
|
27881
|
+
value: KetMonomerClass.Phosphate,
|
|
27882
|
+
label: 'Phosphate',
|
|
27883
|
+
iconName: 'phosphate'
|
|
27884
|
+
}, {
|
|
27885
|
+
value: KetMonomerClass.RNA,
|
|
27886
|
+
label: 'Nucleotide (monomer)',
|
|
27887
|
+
iconName: 'nucleotide'
|
|
27888
|
+
}, {
|
|
27889
|
+
value: 'rnaPreset',
|
|
27890
|
+
label: 'Nucleotide (preset)',
|
|
27891
|
+
iconName: 'preset'
|
|
27892
|
+
}, {
|
|
27893
|
+
value: KetMonomerClass.CHEM,
|
|
27894
|
+
label: 'CHEM',
|
|
27895
|
+
iconName: 'chem'
|
|
27896
|
+
}];
|
|
27897
|
+
var MAX_MODIFICATION_TYPES = 5;
|
|
27898
|
+
var NotificationMessages = {
|
|
27899
|
+
defaultAttachmentPoints: 'Attachment points are set by default with hydrogens as leaving groups.',
|
|
27900
|
+
emptyMandatoryFields: 'Mandatory fields must be filled.',
|
|
27901
|
+
invalidSymbol: 'The monomer code must consist only of uppercase and lowercase letters, numbers, hyphens (-), underscores (_), and asterisks (*).',
|
|
27902
|
+
symbolExists: 'The code must be unique amongst peptide, RNA, or CHEM monomers.',
|
|
27903
|
+
editingIsNotAllowed: 'Editing of the structure is not allowed.',
|
|
27904
|
+
noAttachmentPoints: 'The monomer must have at least one attachment point.',
|
|
27905
|
+
incorrectAttachmentPointsOrder: 'Attachment point numbers must be in order, but R1 and R2 may be skipped.',
|
|
27906
|
+
creationSuccessful: 'The monomer was successfully added to the library.',
|
|
27907
|
+
creationRNASuccessful: 'The preset was successfully added to the library.',
|
|
27908
|
+
incontinuousStructure: 'All monomers must have a continuous structure.',
|
|
27909
|
+
notUniqueModificationTypes: 'Only one amino acid within a natural analogue can have the same modification type.',
|
|
27910
|
+
modificationTypeExists: 'Only one amino acid within a natural analogue can have the same modification type.',
|
|
27911
|
+
notMinimalViableStructure: 'Minimal monomer structure is two atoms connected via a single bond.',
|
|
27912
|
+
impureStructure: 'Monomer structure cannot contain S-groups, R-groups, special atoms, or any other query properties.',
|
|
27913
|
+
invalidHELMAlias: 'The HELM alias must consist only of uppercase and lowercase letters, numbers, hyphens (-), underscores (_), and asterisks (*).',
|
|
27914
|
+
notUniqueHELMAlias: 'The HELM alias must be unique amongst peptide or RNA monomers.',
|
|
27915
|
+
invalidRnaPresetStructure: 'Structure of rna preset component contains issues. Please adjust the structure.',
|
|
27916
|
+
notUniquePresetCode: 'The preset code must be unique amongst other presets.',
|
|
27917
|
+
invalidPresetCode: 'The preset code must consist only of uppercase and lowercase letters, numbers, hyphens (-), underscores (_), and asterisks (*).'
|
|
27918
|
+
};
|
|
27919
|
+
var NotificationTypes = {
|
|
27920
|
+
defaultAttachmentPoints: 'info',
|
|
27921
|
+
emptyMandatoryFields: 'error',
|
|
27922
|
+
invalidSymbol: 'error',
|
|
27923
|
+
symbolExists: 'error',
|
|
27924
|
+
editingIsNotAllowed: 'error',
|
|
27925
|
+
noAttachmentPoints: 'error',
|
|
27926
|
+
incorrectAttachmentPointsOrder: 'error',
|
|
27927
|
+
creationSuccessful: 'info',
|
|
27928
|
+
creationRNASuccessful: 'info',
|
|
27929
|
+
incontinuousStructure: 'error',
|
|
27930
|
+
notUniqueModificationTypes: 'error',
|
|
27931
|
+
modificationTypeExists: 'error',
|
|
27932
|
+
notMinimalViableStructure: 'error',
|
|
27933
|
+
impureStructure: 'error',
|
|
27934
|
+
invalidHELMAlias: 'error',
|
|
27935
|
+
notUniqueHELMAlias: 'error',
|
|
27936
|
+
invalidRnaPresetStructure: 'error',
|
|
27937
|
+
notUniquePresetCode: 'error',
|
|
27938
|
+
invalidPresetCode: 'error'
|
|
27939
|
+
};
|
|
27940
|
+
var MonomerCreationExternalNotificationAction = 'MonomerCreationExternalNotification';
|
|
27941
|
+
var MonomerCreationMarkAsComponentAction = 'MonomerCreationMarkAsComponent';
|
|
27942
|
+
|
|
27943
|
+
var useMarkAs = function useMarkAs() {
|
|
27944
|
+
var _useAppContext = useAppContext(),
|
|
27945
|
+
ketcherId = _useAppContext.ketcherId;
|
|
27946
|
+
var handler = useCallback(function (componentType) {
|
|
27947
|
+
return function (_params) {
|
|
27948
|
+
window.dispatchEvent(new CustomEvent(MonomerCreationMarkAsComponentAction, {
|
|
27949
|
+
detail: componentType
|
|
27950
|
+
}));
|
|
27951
|
+
};
|
|
27952
|
+
}, []);
|
|
27953
|
+
var isVisible = useCallback(function () {
|
|
27954
|
+
var editor = ketcherProvider.getKetcher(ketcherId).editor;
|
|
27955
|
+
if (!editor.isMonomerCreationWizardActive) {
|
|
27956
|
+
return false;
|
|
27957
|
+
}
|
|
27958
|
+
var monomerCreationState = editor.monomerCreationState;
|
|
27959
|
+
return monomerCreationState === null || monomerCreationState === void 0 ? void 0 : monomerCreationState.isRnaPresetMode;
|
|
27960
|
+
}, [ketcherId]);
|
|
27961
|
+
var isDisabled = useCallback(function () {
|
|
27962
|
+
var editor = ketcherProvider.getKetcher(ketcherId).editor;
|
|
27963
|
+
var selection = editor.selection();
|
|
27964
|
+
var struct = editor.struct();
|
|
27965
|
+
if (!(selection !== null && selection !== void 0 && selection.atoms) || selection.atoms.length === 0) {
|
|
27966
|
+
return true;
|
|
27967
|
+
}
|
|
27968
|
+
var isContinuous = Editor$3.isStructureContinuous(struct, selection);
|
|
27969
|
+
return !isContinuous;
|
|
27970
|
+
}, [ketcherId]);
|
|
27971
|
+
return {
|
|
27972
|
+
handler: handler,
|
|
27973
|
+
isVisible: isVisible,
|
|
27974
|
+
isDisabled: isDisabled
|
|
27975
|
+
};
|
|
27976
|
+
};
|
|
27977
|
+
|
|
27418
27978
|
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
27979
|
|
|
27420
27980
|
var BUTTON_HEIGHT = 28;
|
|
@@ -27778,6 +28338,10 @@ var AtomMenuItems = function AtomMenuItems(props) {
|
|
|
27778
28338
|
handleStereo = _useAtomStereo2[0],
|
|
27779
28339
|
stereoDisabled = _useAtomStereo2[1];
|
|
27780
28340
|
var handleDelete = useDelete$1();
|
|
28341
|
+
var _useMarkAs = useMarkAs(),
|
|
28342
|
+
handleMarkAs = _useMarkAs.handler,
|
|
28343
|
+
markAsIsVisible = _useMarkAs.isVisible,
|
|
28344
|
+
markAsIsDisabled = _useMarkAs.isDisabled;
|
|
27781
28345
|
var _useAppContext = useAppContext(),
|
|
27782
28346
|
ketcherId = _useAppContext.ketcherId;
|
|
27783
28347
|
var ketcher = ketcherProvider.getKetcher(ketcherId);
|
|
@@ -27847,8 +28411,43 @@ var AtomMenuItems = function AtomMenuItems(props) {
|
|
|
27847
28411
|
}
|
|
27848
28412
|
var editMenuItemTitle = (_props$propsFromTrigg7 = props.propsFromTrigger) !== null && _props$propsFromTrigg7 !== void 0 && _props$propsFromTrigg7.extraItemsSelected ? 'Edit selected atoms...' : 'Edit...';
|
|
27849
28413
|
var disabledForMonomerCreation = editor.isMonomerCreationWizardActive;
|
|
28414
|
+
var showMarkAsMenu = markAsIsVisible();
|
|
28415
|
+
var markAsDisabled = markAsIsDisabled();
|
|
27850
28416
|
return jsxs(Fragment, {
|
|
27851
|
-
children: [
|
|
28417
|
+
children: [showMarkAsMenu && jsxs(Submenu, _objectSpread$T(_objectSpread$T({}, props), {}, {
|
|
28418
|
+
"data-testid": "Mark as a...-option",
|
|
28419
|
+
label: "Mark as a...",
|
|
28420
|
+
disabled: markAsDisabled,
|
|
28421
|
+
className: styles$p.subMenu,
|
|
28422
|
+
children: [jsxs(Item, _objectSpread$T(_objectSpread$T({}, props), {}, {
|
|
28423
|
+
"data-testid": "Mark as Base-option",
|
|
28424
|
+
onClick: handleMarkAs('base'),
|
|
28425
|
+
children: [jsx(Icon, {
|
|
28426
|
+
name: "base",
|
|
28427
|
+
className: clsx(styles$p.icon, styles$p.markAsComponentIcon)
|
|
28428
|
+
}), jsx("span", {
|
|
28429
|
+
children: "Base"
|
|
28430
|
+
})]
|
|
28431
|
+
})), jsxs(Item, _objectSpread$T(_objectSpread$T({}, props), {}, {
|
|
28432
|
+
"data-testid": "Mark as Sugar-option",
|
|
28433
|
+
onClick: handleMarkAs('sugar'),
|
|
28434
|
+
children: [jsx(Icon, {
|
|
28435
|
+
name: "sugar",
|
|
28436
|
+
className: clsx(styles$p.icon, styles$p.markAsComponentIcon)
|
|
28437
|
+
}), jsx("span", {
|
|
28438
|
+
children: "Sugar"
|
|
28439
|
+
})]
|
|
28440
|
+
})), jsxs(Item, _objectSpread$T(_objectSpread$T({}, props), {}, {
|
|
28441
|
+
"data-testid": "Mark as Phosphate-option",
|
|
28442
|
+
onClick: handleMarkAs('phosphate'),
|
|
28443
|
+
children: [jsx(Icon, {
|
|
28444
|
+
name: "phosphate",
|
|
28445
|
+
className: clsx(styles$p.icon, styles$p.markAsComponentIcon)
|
|
28446
|
+
}), jsx("span", {
|
|
28447
|
+
children: "Phosphate"
|
|
28448
|
+
})]
|
|
28449
|
+
}))]
|
|
28450
|
+
})), makeAttachmentPointMenuItems && jsxs(Fragment, {
|
|
27852
28451
|
children: [makeAttachmentPointMenuItems, jsx(Separator, {})]
|
|
27853
28452
|
}), jsxs(Item, _objectSpread$T(_objectSpread$T({}, props), {}, {
|
|
27854
28453
|
"data-testid": editMenuItemTitle.concat('-option'),
|
|
@@ -28404,6 +29003,10 @@ var SelectionMenuItems = function SelectionMenuItems(props) {
|
|
|
28404
29003
|
_useCreateMonomer2 = _slicedToArray$1(_useCreateMonomer, 2),
|
|
28405
29004
|
handleCreateMonomer = _useCreateMonomer2[0],
|
|
28406
29005
|
createMonomerDisabled = _useCreateMonomer2[1];
|
|
29006
|
+
var _useMarkAs = useMarkAs(),
|
|
29007
|
+
handleMarkAs = _useMarkAs.handler,
|
|
29008
|
+
markAsIsVisible = _useMarkAs.isVisible,
|
|
29009
|
+
markAsIsDisabled = _useMarkAs.isDisabled;
|
|
28407
29010
|
var highlightBondWithColor = function highlightBondWithColor(color) {
|
|
28408
29011
|
var _props$propsFromTrigg, _props$propsFromTrigg2, _props$propsFromTrigg3;
|
|
28409
29012
|
var bondIds = ((_props$propsFromTrigg = props.propsFromTrigger) === null || _props$propsFromTrigg === void 0 ? void 0 : _props$propsFromTrigg.bondIds) || [];
|
|
@@ -28417,8 +29020,43 @@ var SelectionMenuItems = function SelectionMenuItems(props) {
|
|
|
28417
29020
|
});
|
|
28418
29021
|
};
|
|
28419
29022
|
var options = useSelector(optionsSelector);
|
|
29023
|
+
var showMarkAsMenu = markAsIsVisible();
|
|
29024
|
+
var markAsDisabled = markAsIsDisabled();
|
|
28420
29025
|
return jsxs(Fragment, {
|
|
28421
|
-
children: [
|
|
29026
|
+
children: [showMarkAsMenu && jsxs(Submenu, _objectSpread$P(_objectSpread$P({}, props), {}, {
|
|
29027
|
+
"data-testid": "Mark as a...-option",
|
|
29028
|
+
label: "Mark as a...",
|
|
29029
|
+
disabled: markAsDisabled,
|
|
29030
|
+
className: styles$p.subMenu,
|
|
29031
|
+
children: [jsxs(Item, _objectSpread$P(_objectSpread$P({}, props), {}, {
|
|
29032
|
+
"data-testid": "Mark as Base-option",
|
|
29033
|
+
onClick: handleMarkAs('base'),
|
|
29034
|
+
children: [jsx(Icon, {
|
|
29035
|
+
name: "base",
|
|
29036
|
+
className: clsx(styles$p.icon, styles$p.markAsComponentIcon)
|
|
29037
|
+
}), jsx("span", {
|
|
29038
|
+
children: "Base"
|
|
29039
|
+
})]
|
|
29040
|
+
})), jsxs(Item, _objectSpread$P(_objectSpread$P({}, props), {}, {
|
|
29041
|
+
"data-testid": "Mark as Sugar-option",
|
|
29042
|
+
onClick: handleMarkAs('sugar'),
|
|
29043
|
+
children: [jsx(Icon, {
|
|
29044
|
+
name: "sugar",
|
|
29045
|
+
className: clsx(styles$p.icon, styles$p.markAsComponentIcon)
|
|
29046
|
+
}), jsx("span", {
|
|
29047
|
+
children: "Sugar"
|
|
29048
|
+
})]
|
|
29049
|
+
})), jsxs(Item, _objectSpread$P(_objectSpread$P({}, props), {}, {
|
|
29050
|
+
"data-testid": "Mark as Phosphate-option",
|
|
29051
|
+
onClick: handleMarkAs('phosphate'),
|
|
29052
|
+
children: [jsx(Icon, {
|
|
29053
|
+
name: "phosphate",
|
|
29054
|
+
className: clsx(styles$p.icon, styles$p.markAsComponentIcon)
|
|
29055
|
+
}), jsx("span", {
|
|
29056
|
+
children: "Phosphate"
|
|
29057
|
+
})]
|
|
29058
|
+
}))]
|
|
29059
|
+
})), jsx(Item, _objectSpread$P(_objectSpread$P({}, props), {}, {
|
|
28422
29060
|
"data-testid": "Edit selected bonds...-option",
|
|
28423
29061
|
disabled: bondEditDisabled,
|
|
28424
29062
|
onClick: handleBondEdit,
|
|
@@ -30103,78 +30741,6 @@ var AttachmentPointEditPopup = function AttachmentPointEditPopup(_ref) {
|
|
|
30103
30741
|
});
|
|
30104
30742
|
};
|
|
30105
30743
|
|
|
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
30744
|
var MONOMER_VALIDATION_RULES = [{
|
|
30179
30745
|
monomerType: KetMonomerClass.AminoAcid,
|
|
30180
30746
|
requirements: [{
|
|
@@ -30783,13 +31349,17 @@ var RnaPresetTabs = function RnaPresetTabs(props) {
|
|
|
30783
31349
|
editor: editor
|
|
30784
31350
|
});
|
|
30785
31351
|
};
|
|
30786
|
-
var handleClickCreateComponent = function
|
|
31352
|
+
var handleClickCreateComponent = useCallback(function (rnaComponentKey) {
|
|
31353
|
+
var selection = editor.selection();
|
|
31354
|
+
var atomIds = (selection === null || selection === void 0 ? void 0 : selection.atoms) || [];
|
|
31355
|
+
var bondIds = (selection === null || selection === void 0 ? void 0 : selection.bonds) || [];
|
|
30787
31356
|
wizardStateDispatch({
|
|
30788
31357
|
type: 'SetRnaPresetComponentStructure',
|
|
30789
31358
|
rnaComponentKey: rnaComponentKey,
|
|
30790
31359
|
editor: editor
|
|
30791
31360
|
});
|
|
30792
|
-
|
|
31361
|
+
editor.setRnaComponentAtoms(rnaComponentKey, atomIds, bondIds);
|
|
31362
|
+
}, [editor, wizardStateDispatch]);
|
|
30793
31363
|
var currentTabStructure = currentTabState === null || currentTabState === void 0 ? void 0 : currentTabState.structure;
|
|
30794
31364
|
useEffect(function () {
|
|
30795
31365
|
if (!currentTabStructure) {
|
|
@@ -30798,6 +31368,24 @@ var RnaPresetTabs = function RnaPresetTabs(props) {
|
|
|
30798
31368
|
applyHighlights(selectedTab, isHighlightEnabled);
|
|
30799
31369
|
editor.selection(null);
|
|
30800
31370
|
}, [applyHighlights, currentTabStructure, editor, isHighlightEnabled, selectedTab]);
|
|
31371
|
+
useEffect(function () {
|
|
31372
|
+
return function () {
|
|
31373
|
+
editor === null || editor === void 0 || editor.highlights.clear();
|
|
31374
|
+
};
|
|
31375
|
+
}, [editor === null || editor === void 0 ? void 0 : editor.highlights]);
|
|
31376
|
+
useEffect(function () {
|
|
31377
|
+
var handleMarkAsComponent = function handleMarkAsComponent(event) {
|
|
31378
|
+
var componentType = event.detail;
|
|
31379
|
+
var tabIndex = RNA_COMPONENT_KEYS.indexOf(componentType) + 1;
|
|
31380
|
+
handleClickCreateComponent(componentType);
|
|
31381
|
+
setSelectedTab(tabIndex);
|
|
31382
|
+
applyHighlights(selectedTab, isHighlightEnabled);
|
|
31383
|
+
};
|
|
31384
|
+
window.addEventListener(MonomerCreationMarkAsComponentAction, handleMarkAsComponent);
|
|
31385
|
+
return function () {
|
|
31386
|
+
window.removeEventListener(MonomerCreationMarkAsComponentAction, handleMarkAsComponent);
|
|
31387
|
+
};
|
|
31388
|
+
}, [wizardState, handleClickCreateComponent, applyHighlights, selectedTab, isHighlightEnabled]);
|
|
30801
31389
|
var hasErrorInTab = function hasErrorInTab(wizardState) {
|
|
30802
31390
|
return Object.values(wizardState.errors).some(function (errorValue) {
|
|
30803
31391
|
return Boolean(errorValue);
|
|
@@ -30939,6 +31527,18 @@ var initialRnaPresetWizardState = {
|
|
|
30939
31527
|
}
|
|
30940
31528
|
}
|
|
30941
31529
|
};
|
|
31530
|
+
var getComponentSuffix = function getComponentSuffix(componentType) {
|
|
31531
|
+
switch (componentType) {
|
|
31532
|
+
case KetMonomerClass.Base:
|
|
31533
|
+
return 'B';
|
|
31534
|
+
case KetMonomerClass.Sugar:
|
|
31535
|
+
return 'S';
|
|
31536
|
+
case KetMonomerClass.Phosphate:
|
|
31537
|
+
return 'P';
|
|
31538
|
+
default:
|
|
31539
|
+
return '';
|
|
31540
|
+
}
|
|
31541
|
+
};
|
|
30942
31542
|
var wizardReducer = function wizardReducer(state, action) {
|
|
30943
31543
|
switch (action.type) {
|
|
30944
31544
|
case 'SetFieldValue':
|
|
@@ -31040,6 +31640,14 @@ var rnaPresetWizardReducer = function rnaPresetWizardReducer(state, action) {
|
|
|
31040
31640
|
if (!action.rnaComponentKey) {
|
|
31041
31641
|
return state;
|
|
31042
31642
|
}
|
|
31643
|
+
if (action.type === 'UpdateRnaPresetComponentStructure') {
|
|
31644
|
+
return _objectSpread$G(_objectSpread$G({}, state), {}, _defineProperty$1({}, action.rnaComponentKey, _objectSpread$G(_objectSpread$G({}, state[action.rnaComponentKey]), {}, {
|
|
31645
|
+
structure: {
|
|
31646
|
+
atoms: action.atomIds,
|
|
31647
|
+
bonds: action.bondIds
|
|
31648
|
+
}
|
|
31649
|
+
})));
|
|
31650
|
+
}
|
|
31043
31651
|
var rnaComponentKey = action.rnaComponentKey,
|
|
31044
31652
|
restAction = _objectWithoutProperties(action, _excluded$o);
|
|
31045
31653
|
if (action.type === 'SetNotifications') {
|
|
@@ -31082,7 +31690,7 @@ var rnaPresetWizardReducer = function rnaPresetWizardReducer(state, action) {
|
|
|
31082
31690
|
_updatedState = _objectSpread$G(_objectSpread$G({}, _updatedState), {}, {
|
|
31083
31691
|
base: _objectSpread$G(_objectSpread$G({}, _updatedState.base), {}, {
|
|
31084
31692
|
values: _objectSpread$G(_objectSpread$G({}, _updatedState.base.values), {}, {
|
|
31085
|
-
symbol: newPresetCode
|
|
31693
|
+
symbol: newPresetCode ? newPresetCode + getComponentSuffix(KetMonomerClass.Base) : ''
|
|
31086
31694
|
})
|
|
31087
31695
|
})
|
|
31088
31696
|
});
|
|
@@ -31091,7 +31699,7 @@ var rnaPresetWizardReducer = function rnaPresetWizardReducer(state, action) {
|
|
|
31091
31699
|
_updatedState = _objectSpread$G(_objectSpread$G({}, _updatedState), {}, {
|
|
31092
31700
|
sugar: _objectSpread$G(_objectSpread$G({}, _updatedState.sugar), {}, {
|
|
31093
31701
|
values: _objectSpread$G(_objectSpread$G({}, _updatedState.sugar.values), {}, {
|
|
31094
|
-
symbol: newPresetCode
|
|
31702
|
+
symbol: newPresetCode ? newPresetCode + getComponentSuffix(KetMonomerClass.Sugar) : ''
|
|
31095
31703
|
})
|
|
31096
31704
|
})
|
|
31097
31705
|
});
|
|
@@ -31100,7 +31708,7 @@ var rnaPresetWizardReducer = function rnaPresetWizardReducer(state, action) {
|
|
|
31100
31708
|
_updatedState = _objectSpread$G(_objectSpread$G({}, _updatedState), {}, {
|
|
31101
31709
|
phosphate: _objectSpread$G(_objectSpread$G({}, _updatedState.phosphate), {}, {
|
|
31102
31710
|
values: _objectSpread$G(_objectSpread$G({}, _updatedState.phosphate.values), {}, {
|
|
31103
|
-
symbol: newPresetCode
|
|
31711
|
+
symbol: newPresetCode ? newPresetCode + getComponentSuffix(KetMonomerClass.Phosphate) : ''
|
|
31104
31712
|
})
|
|
31105
31713
|
})
|
|
31106
31714
|
});
|
|
@@ -31122,18 +31730,6 @@ var hasAllMandatoryPropertiesFilled = function hasAllMandatoryPropertiesFilled(v
|
|
|
31122
31730
|
}
|
|
31123
31731
|
return true;
|
|
31124
31732
|
};
|
|
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
31733
|
var getLeavingAtomForAttachmentPoint = function getLeavingAtomForAttachmentPoint(componentType, attachmentPointName) {
|
|
31138
31734
|
switch (componentType) {
|
|
31139
31735
|
case KetMonomerClass.Base:
|
|
@@ -31370,6 +31966,14 @@ var MonomerCreationWizard = function MonomerCreationWizard() {
|
|
|
31370
31966
|
_useState6 = _slicedToArray$1(_useState5, 2),
|
|
31371
31967
|
leavingGroupDialogMessage = _useState6[0],
|
|
31372
31968
|
setLeavingGroupDialogMessage = _useState6[1];
|
|
31969
|
+
var _useState7 = useState(null),
|
|
31970
|
+
_useState8 = _slicedToArray$1(_useState7, 2),
|
|
31971
|
+
pendingType = _useState8[0],
|
|
31972
|
+
setPendingType = _useState8[1];
|
|
31973
|
+
var _useState9 = useState(false),
|
|
31974
|
+
_useState10 = _slicedToArray$1(_useState9, 2),
|
|
31975
|
+
showTypeChangeDialog = _useState10[0],
|
|
31976
|
+
setShowTypeChangeDialog = _useState10[1];
|
|
31373
31977
|
var isRnaPresetType = type === 'rnaPreset';
|
|
31374
31978
|
var notifications = isRnaPresetType ? new Map([].concat(_toConsumableArray(rnaPresetWizardState.preset.notifications || []), _toConsumableArray(rnaPresetWizardState.sugar.notifications || []), _toConsumableArray(rnaPresetWizardState.base.notifications || []), _toConsumableArray(rnaPresetWizardState.phosphate.notifications || []))) : monomerWizardNotifications;
|
|
31375
31979
|
useEffect(function () {
|
|
@@ -31402,37 +32006,71 @@ var MonomerCreationWizard = function MonomerCreationWizard() {
|
|
|
31402
32006
|
window.removeEventListener(MonomerCreationAttachmentPointClickEvent, attachmentPointClickHandler);
|
|
31403
32007
|
};
|
|
31404
32008
|
}, []);
|
|
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
|
-
});
|
|
32009
|
+
useEffect(function () {
|
|
32010
|
+
var isValidRnaComponentKey = function isValidRnaComponentKey(key) {
|
|
32011
|
+
return key === 'base' || key === 'sugar' || key === 'phosphate';
|
|
32012
|
+
};
|
|
32013
|
+
var componentStructureUpdateHandler = function componentStructureUpdateHandler(event) {
|
|
32014
|
+
var updateData = event.detail;
|
|
32015
|
+
var componentKey = updateData.componentKey,
|
|
32016
|
+
atomIds = updateData.atomIds,
|
|
32017
|
+
bondIds = updateData.bondIds;
|
|
32018
|
+
if (!isValidRnaComponentKey(componentKey)) {
|
|
32019
|
+
return;
|
|
31423
32020
|
}
|
|
32021
|
+
rnaPresetWizardStateDispatch({
|
|
32022
|
+
type: 'UpdateRnaPresetComponentStructure',
|
|
32023
|
+
rnaComponentKey: componentKey,
|
|
32024
|
+
atomIds: atomIds,
|
|
32025
|
+
bondIds: bondIds
|
|
32026
|
+
});
|
|
32027
|
+
};
|
|
32028
|
+
window.addEventListener(MonomerCreationComponentStructureUpdateEvent, componentStructureUpdateHandler);
|
|
32029
|
+
return function () {
|
|
32030
|
+
window.removeEventListener(MonomerCreationComponentStructureUpdateEvent, componentStructureUpdateHandler);
|
|
32031
|
+
};
|
|
32032
|
+
}, []);
|
|
32033
|
+
var applyTypeChange = function applyTypeChange(newType) {
|
|
32034
|
+
setModificationTypes([]);
|
|
32035
|
+
if ((type === 'rnaPreset' || newType === 'rnaPreset') && type !== newType) {
|
|
32036
|
+
wizardStateDispatch({
|
|
32037
|
+
type: 'ResetWizard'
|
|
32038
|
+
});
|
|
32039
|
+
rnaPresetWizardStateDispatch({
|
|
32040
|
+
type: 'ResetWizard'
|
|
32041
|
+
});
|
|
32042
|
+
} else {
|
|
31424
32043
|
wizardStateDispatch({
|
|
31425
32044
|
type: 'SetFieldValue',
|
|
31426
|
-
fieldId: '
|
|
31427
|
-
value:
|
|
32045
|
+
fieldId: 'aliasHELM',
|
|
32046
|
+
value: ''
|
|
31428
32047
|
});
|
|
32048
|
+
}
|
|
32049
|
+
wizardStateDispatch({
|
|
32050
|
+
type: 'SetFieldValue',
|
|
32051
|
+
fieldId: 'type',
|
|
32052
|
+
value: newType
|
|
32053
|
+
});
|
|
32054
|
+
};
|
|
32055
|
+
var handleFieldChange = function handleFieldChange(fieldId, value) {
|
|
32056
|
+
if (fieldId === 'type') {
|
|
32057
|
+
if (type === 'rnaPreset' && value !== 'rnaPreset') {
|
|
32058
|
+
setPendingType(value);
|
|
32059
|
+
setShowTypeChangeDialog(true);
|
|
32060
|
+
return;
|
|
32061
|
+
}
|
|
32062
|
+
applyTypeChange(value);
|
|
31429
32063
|
} else {
|
|
32064
|
+
if (fieldId === 'naturalAnalogue') {
|
|
32065
|
+
setModificationTypes([]);
|
|
32066
|
+
}
|
|
31430
32067
|
wizardStateDispatch({
|
|
31431
32068
|
type: 'SetFieldValue',
|
|
31432
32069
|
fieldId: fieldId,
|
|
31433
32070
|
value: value
|
|
31434
32071
|
});
|
|
31435
32072
|
}
|
|
32073
|
+
editor.setRnaMonomerCreationMode(value === 'rnaPreset');
|
|
31436
32074
|
};
|
|
31437
32075
|
useEffect(function () {
|
|
31438
32076
|
var _editor$setMonomerCre;
|
|
@@ -31812,7 +32450,7 @@ var MonomerCreationWizard = function MonomerCreationWizard() {
|
|
|
31812
32450
|
}
|
|
31813
32451
|
monomerAssignedAttachmentPoints.set(attachmentPointKey, [mappedAttachmentAtomId, mappedLeavingGroupAtomId]);
|
|
31814
32452
|
});
|
|
31815
|
-
var shouldBeHidden = isRnaPresetType
|
|
32453
|
+
var shouldBeHidden = isRnaPresetType;
|
|
31816
32454
|
var valuesToSave = monomerToSave.values;
|
|
31817
32455
|
if (shouldBeHidden) {
|
|
31818
32456
|
valuesToSave = autoAssignPropertiesForHiddenMonomer(monomerToSave.values, rnaPresetWizardState.preset.name);
|
|
@@ -31836,6 +32474,7 @@ var MonomerCreationWizard = function MonomerCreationWizard() {
|
|
|
31836
32474
|
editor.finishNewMonomersCreation(monomersData, rnaPresetWizardState.preset.name);
|
|
31837
32475
|
dispatch(onAction(selectRectangleAction));
|
|
31838
32476
|
resetWizard();
|
|
32477
|
+
dispatch(showSnackbarNotification(isRnaPresetType ? NotificationMessages.creationRNASuccessful : NotificationMessages.creationSuccessful));
|
|
31839
32478
|
}
|
|
31840
32479
|
};
|
|
31841
32480
|
var ketcherEditorRootElement = document.querySelector(KETCHER_ROOT_NODE_CSS_SELECTOR);
|
|
@@ -31924,7 +32563,40 @@ var MonomerCreationWizard = function MonomerCreationWizard() {
|
|
|
31924
32563
|
children: "Submit"
|
|
31925
32564
|
})]
|
|
31926
32565
|
})]
|
|
31927
|
-
}),
|
|
32566
|
+
}), showTypeChangeDialog && ketcherEditorRootElement && createPortal(jsx("div", {
|
|
32567
|
+
className: styles$o.dialogOverlay,
|
|
32568
|
+
children: jsx(Dialog, {
|
|
32569
|
+
className: styles$o.smallDialog,
|
|
32570
|
+
title: "Confirm type change",
|
|
32571
|
+
withDivider: true,
|
|
32572
|
+
valid: function valid() {
|
|
32573
|
+
return true;
|
|
32574
|
+
},
|
|
32575
|
+
params: {
|
|
32576
|
+
onOk: function onOk() {
|
|
32577
|
+
if (pendingType !== null) {
|
|
32578
|
+
applyTypeChange(pendingType);
|
|
32579
|
+
}
|
|
32580
|
+
setPendingType(null);
|
|
32581
|
+
setShowTypeChangeDialog(false);
|
|
32582
|
+
},
|
|
32583
|
+
onCancel: function onCancel() {
|
|
32584
|
+
setPendingType(null);
|
|
32585
|
+
setShowTypeChangeDialog(false);
|
|
32586
|
+
}
|
|
32587
|
+
},
|
|
32588
|
+
buttons: ['OK', 'Cancel'],
|
|
32589
|
+
buttonsNameMap: {
|
|
32590
|
+
OK: 'Yes',
|
|
32591
|
+
Cancel: 'Cancel'
|
|
32592
|
+
},
|
|
32593
|
+
primaryButtons: ['Cancel'],
|
|
32594
|
+
children: jsx("div", {
|
|
32595
|
+
className: styles$o.DialogMessage,
|
|
32596
|
+
children: "Changing the type will result in a loss of inputted data. Do you wish to proceed?"
|
|
32597
|
+
})
|
|
32598
|
+
})
|
|
32599
|
+
}), ketcherEditorRootElement), leavingGroupDialogMessage && ketcherEditorRootElement && createPortal(jsx("div", {
|
|
31928
32600
|
className: styles$o.dialogOverlay,
|
|
31929
32601
|
children: jsx(Dialog, {
|
|
31930
32602
|
className: styles$o.smallDialog,
|
|
@@ -39702,7 +40374,7 @@ var Editor$1 = connect(function (state) {
|
|
|
39702
40374
|
};
|
|
39703
40375
|
}, mapDispatchToProps$1)(StructEditor);
|
|
39704
40376
|
|
|
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"};
|
|
40377
|
+
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
40378
|
|
|
39707
40379
|
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
40380
|
|
|
@@ -40002,10 +40674,16 @@ var muiTheme = createTheme({
|
|
|
40002
40674
|
var App = function App(props) {
|
|
40003
40675
|
var dispatch = useAppDispatch();
|
|
40004
40676
|
var checkServer = props.checkServer;
|
|
40677
|
+
var snackbarNotificationText = useSelector(selectSnackbarNotificationText);
|
|
40005
40678
|
useSubscriptionOnEvents();
|
|
40006
40679
|
var _useAppContext = useAppContext(),
|
|
40007
40680
|
ketcherId = _useAppContext.ketcherId,
|
|
40008
40681
|
prevKetcherId = _useAppContext.prevKetcherId;
|
|
40682
|
+
var handleCloseSnackbarNotification = useCallback(function () {
|
|
40683
|
+
dispatch({
|
|
40684
|
+
type: 'HIDE_SNACKBAR_NOTIFICATION'
|
|
40685
|
+
});
|
|
40686
|
+
}, [dispatch]);
|
|
40009
40687
|
useEffect(function () {
|
|
40010
40688
|
checkServer();
|
|
40011
40689
|
dispatch(initFGTemplates());
|
|
@@ -40038,7 +40716,26 @@ var App = function App(props) {
|
|
|
40038
40716
|
}),
|
|
40039
40717
|
jsx(AppClipArea, {}), jsx(ModalContainer, {
|
|
40040
40718
|
ketcherId: ketcherId
|
|
40041
|
-
}), jsx(AbbreviationLookupContainer, {})
|
|
40719
|
+
}), jsx(AbbreviationLookupContainer, {}), jsx(Snackbar, {
|
|
40720
|
+
anchorOrigin: {
|
|
40721
|
+
vertical: 'bottom',
|
|
40722
|
+
horizontal: 'center'
|
|
40723
|
+
},
|
|
40724
|
+
open: Boolean(snackbarNotificationText),
|
|
40725
|
+
onClose: handleCloseSnackbarNotification,
|
|
40726
|
+
autoHideDuration: 6000,
|
|
40727
|
+
children: jsxs("div", {
|
|
40728
|
+
className: classes$1.toastNotification,
|
|
40729
|
+
children: [jsx("div", {
|
|
40730
|
+
className: classes$1.toastNotificationText,
|
|
40731
|
+
children: snackbarNotificationText
|
|
40732
|
+
}), jsx(IconButton, {
|
|
40733
|
+
iconName: "close",
|
|
40734
|
+
className: classes$1.toastNotificationCloseIcon,
|
|
40735
|
+
onClick: handleCloseSnackbarNotification
|
|
40736
|
+
})]
|
|
40737
|
+
})
|
|
40738
|
+
})]
|
|
40042
40739
|
})
|
|
40043
40740
|
});
|
|
40044
40741
|
};
|
|
@@ -40217,8 +40914,8 @@ var KetcherBuilder = function () {
|
|
|
40217
40914
|
cleanup = initApp(prevKetcherId, ketcherId, element, appRoot, staticResourcesUrl, {
|
|
40218
40915
|
buttons: buttons || {},
|
|
40219
40916
|
errorHandler: errorHandler || null,
|
|
40220
|
-
version: "3.12.0-
|
|
40221
|
-
buildDate: "
|
|
40917
|
+
version: "3.12.0-rc.1" ,
|
|
40918
|
+
buildDate: "2026-01-08T17:45:33" ,
|
|
40222
40919
|
buildNumber: '',
|
|
40223
40920
|
customButtons: customButtons || []
|
|
40224
40921
|
}, structService, resolve, togglerComponent);
|
|
@@ -40519,7 +41216,7 @@ var ModeControl = function ModeControl(_ref3) {
|
|
|
40519
41216
|
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
41217
|
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
41218
|
var MacromoleculesEditorComponent = lazy(function () {
|
|
40522
|
-
return import('./index.modern-
|
|
41219
|
+
return import('./index.modern-521d26f9.js');
|
|
40523
41220
|
});
|
|
40524
41221
|
var Editor = function Editor(props) {
|
|
40525
41222
|
var _useState = useState(false),
|