ketcher-react 3.5.0-rc.3 → 3.5.0-rc.4
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/Editor.d.ts +1 -1
- package/dist/MicromoleculesEditor.d.ts +1 -0
- package/dist/cjs/Editor.d.ts +1 -1
- package/dist/cjs/MicromoleculesEditor.d.ts +1 -0
- package/dist/cjs/components/StructRender/types.d.ts +1 -2
- package/dist/cjs/contexts/appContext.d.ts +1 -2
- package/dist/cjs/index.js +618 -564
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/{index.modern-c9d28966.js → index.modern-2314b276.js} +66 -40
- package/dist/cjs/index.modern-2314b276.js.map +1 -0
- package/dist/cjs/script/builders/ketcher/ButtonName.d.ts +1 -1
- package/dist/cjs/script/builders/ketcher/KetcherBuilder.d.ts +4 -7
- package/dist/cjs/script/editor/Editor.d.ts +2 -1
- package/dist/cjs/script/editor/tool/arrow/arrow.types.d.ts +1 -4
- package/dist/cjs/script/editor/tool/arrow/multitailArrowMoveTool.d.ts +1 -1
- package/dist/cjs/script/editor/tool/arrow/reactionArrowMoveTool.d.ts +1 -1
- package/dist/cjs/script/index.d.ts +5 -5
- package/dist/cjs/script/ui/App/initApp.d.ts +2 -4
- package/dist/cjs/script/ui/dialog/template/template-attach.d.ts +2 -0
- package/dist/cjs/script/ui/state/hotkeys.d.ts +1 -1
- package/dist/cjs/script/ui/views/components/ContextMenu/ContextMenuTrigger.utils.d.ts +2 -2
- package/dist/cjs/script/ui/views/components/ContextMenu/contextMenu.types.d.ts +8 -8
- package/dist/cjs/script/ui/views/modal/Modal.container.d.ts +2 -2
- package/dist/cjs/script/ui/views/modal/Modal.d.ts +2 -2
- package/dist/cjs/script/ui/views/modal/modal.types.d.ts +4 -1
- package/dist/cjs/script/ui/views/toolbars/toolbar.types.d.ts +1 -1
- package/dist/components/StructRender/types.d.ts +1 -2
- package/dist/contexts/appContext.d.ts +1 -2
- package/dist/index.js +620 -566
- package/dist/index.js.map +1 -1
- package/dist/{index.modern-cfbb3cc4.js → index.modern-723c68e1.js} +65 -39
- package/dist/index.modern-723c68e1.js.map +1 -0
- package/dist/script/builders/ketcher/ButtonName.d.ts +1 -1
- package/dist/script/builders/ketcher/KetcherBuilder.d.ts +4 -7
- package/dist/script/editor/Editor.d.ts +2 -1
- package/dist/script/editor/tool/arrow/arrow.types.d.ts +1 -4
- package/dist/script/editor/tool/arrow/multitailArrowMoveTool.d.ts +1 -1
- package/dist/script/editor/tool/arrow/reactionArrowMoveTool.d.ts +1 -1
- package/dist/script/index.d.ts +5 -5
- package/dist/script/ui/App/initApp.d.ts +2 -4
- package/dist/script/ui/dialog/template/template-attach.d.ts +2 -0
- package/dist/script/ui/state/hotkeys.d.ts +1 -1
- package/dist/script/ui/views/components/ContextMenu/ContextMenuTrigger.utils.d.ts +2 -2
- package/dist/script/ui/views/components/ContextMenu/contextMenu.types.d.ts +8 -8
- package/dist/script/ui/views/modal/Modal.container.d.ts +2 -2
- package/dist/script/ui/views/modal/Modal.d.ts +2 -2
- package/dist/script/ui/views/modal/modal.types.d.ts +4 -1
- package/dist/script/ui/views/toolbars/toolbar.types.d.ts +1 -1
- package/package.json +1 -1
- package/dist/cjs/index.modern-c9d28966.js.map +0 -1
- package/dist/index.modern-cfbb3cc4.js.map +0 -1
package/dist/cjs/index.js
CHANGED
|
@@ -21,13 +21,13 @@ var _defineProperty$1 = require('@babel/runtime/helpers/defineProperty');
|
|
|
21
21
|
var _slicedToArray$1 = require('@babel/runtime/helpers/slicedToArray');
|
|
22
22
|
var jsxRuntime = require('react/jsx-runtime');
|
|
23
23
|
var React = require('react');
|
|
24
|
+
var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
|
|
25
|
+
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
24
26
|
require('intersection-observer');
|
|
25
27
|
require('element-closest-polyfill');
|
|
26
28
|
require('regenerator-runtime/runtime');
|
|
27
29
|
require('url-search-params-polyfill');
|
|
28
30
|
require('whatwg-fetch');
|
|
29
|
-
var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
|
|
30
|
-
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
31
31
|
var _classCallCheck$2 = require('@babel/runtime/helpers/classCallCheck');
|
|
32
32
|
var _createClass$2 = require('@babel/runtime/helpers/createClass');
|
|
33
33
|
var ketcherCore = require('ketcher-core');
|
|
@@ -150,6 +150,7 @@ function createApi(structServiceProvider, defaultOptions) {
|
|
|
150
150
|
var structService = structServiceProvider.createStructService(defaultOptions);
|
|
151
151
|
var info = structService.info();
|
|
152
152
|
return Object.assign(info, {
|
|
153
|
+
addKetcherId: structService.addKetcherId.bind(structService),
|
|
153
154
|
info: structService.info.bind(structService),
|
|
154
155
|
convert: structService.convert.bind(structService),
|
|
155
156
|
layout: structService.layout.bind(structService),
|
|
@@ -260,48 +261,43 @@ function copyImageToClipboard() {
|
|
|
260
261
|
}
|
|
261
262
|
function _copyImageToClipboard() {
|
|
262
263
|
_copyImageToClipboard = _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee() {
|
|
263
|
-
var state, editor,
|
|
264
|
+
var state, editor, options, struct, errorHandler, ketcher, ketSerializer, structStr, image, item;
|
|
264
265
|
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
|
|
265
266
|
while (1) switch (_context.prev = _context.next) {
|
|
266
267
|
case 0:
|
|
267
268
|
state = global.currentState;
|
|
268
269
|
editor = state.editor;
|
|
269
|
-
server = state.server;
|
|
270
270
|
options = state.options;
|
|
271
271
|
struct = editor.structSelected();
|
|
272
272
|
errorHandler = editor.errorHandler;
|
|
273
|
-
_context.prev =
|
|
274
|
-
|
|
275
|
-
|
|
273
|
+
_context.prev = 5;
|
|
274
|
+
ketcher = ketcherCore.ketcherProvider.getKetcher(editor.ketcherId);
|
|
275
|
+
ketSerializer = new ketcherCore.KetSerializer();
|
|
276
|
+
structStr = ketSerializer.serialize(struct);
|
|
276
277
|
_context.next = 11;
|
|
277
|
-
return service.getStructureFromStructAsync(struct);
|
|
278
|
-
case 11:
|
|
279
|
-
structStr = _context.sent;
|
|
280
|
-
ketcher = new ketcherCore.Ketcher(editor, server, {}, factory);
|
|
281
|
-
_context.next = 15;
|
|
282
278
|
return ketcher.generateImage(structStr, {
|
|
283
279
|
outputFormat: 'png',
|
|
284
280
|
backgroundColor: '255, 255, 255',
|
|
285
281
|
bondThickness: options.settings.bondThickness || ketcherCore.defaultBondThickness
|
|
286
282
|
});
|
|
287
|
-
case
|
|
283
|
+
case 11:
|
|
288
284
|
image = _context.sent;
|
|
289
285
|
item = new ClipboardItem(_defineProperty__default["default"]({}, image.type, image));
|
|
290
|
-
_context.next =
|
|
286
|
+
_context.next = 15;
|
|
291
287
|
return navigator.clipboard.write([item]);
|
|
292
|
-
case
|
|
293
|
-
_context.next =
|
|
288
|
+
case 15:
|
|
289
|
+
_context.next = 21;
|
|
294
290
|
break;
|
|
295
|
-
case
|
|
296
|
-
_context.prev =
|
|
297
|
-
_context.t0 = _context["catch"](
|
|
291
|
+
case 17:
|
|
292
|
+
_context.prev = 17;
|
|
293
|
+
_context.t0 = _context["catch"](5);
|
|
298
294
|
ketcherCore.KetcherLogger.error('copyImageToClipboard.js::copyImageToClipboard', _context.t0);
|
|
299
295
|
errorHandler('This feature is not available in your browser');
|
|
300
|
-
case
|
|
296
|
+
case 21:
|
|
301
297
|
case "end":
|
|
302
298
|
return _context.stop();
|
|
303
299
|
}
|
|
304
|
-
}, _callee, null, [[
|
|
300
|
+
}, _callee, null, [[5, 17]]);
|
|
305
301
|
}));
|
|
306
302
|
return _copyImageToClipboard.apply(this, arguments);
|
|
307
303
|
}
|
|
@@ -704,8 +700,8 @@ function exec(action) {
|
|
|
704
700
|
return enabled;
|
|
705
701
|
}
|
|
706
702
|
|
|
707
|
-
function ownKeys$
|
|
708
|
-
function _objectSpread$
|
|
703
|
+
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; }
|
|
704
|
+
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__default["default"](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; }
|
|
709
705
|
var MeasurementUnits;
|
|
710
706
|
(function (MeasurementUnits) {
|
|
711
707
|
MeasurementUnits["Px"] = "px";
|
|
@@ -1047,7 +1043,7 @@ var optionsSchema = {
|
|
|
1047
1043
|
title: 'Settings',
|
|
1048
1044
|
type: 'object',
|
|
1049
1045
|
required: [],
|
|
1050
|
-
properties: _objectSpread$
|
|
1046
|
+
properties: _objectSpread$1w(_objectSpread$1w(_objectSpread$1w(_objectSpread$1w(_objectSpread$1w({}, editor), render), server), debug), miew)
|
|
1051
1047
|
};
|
|
1052
1048
|
function getDefaultOptions() {
|
|
1053
1049
|
if (!optionsSchema.properties) return {};
|
|
@@ -1230,8 +1226,8 @@ function prefetchRender(tmpls, baseUrl, cacheEl) {
|
|
|
1230
1226
|
});
|
|
1231
1227
|
}
|
|
1232
1228
|
|
|
1233
|
-
function ownKeys$
|
|
1234
|
-
function _objectSpread$
|
|
1229
|
+
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; }
|
|
1230
|
+
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__default["default"](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; }
|
|
1235
1231
|
var initOptionsState = {
|
|
1236
1232
|
app: {
|
|
1237
1233
|
server: false,
|
|
@@ -1261,7 +1257,7 @@ var initOptionsState = {
|
|
|
1261
1257
|
getServerSettings: function getServerSettings() {
|
|
1262
1258
|
var seriliazedServerOptions = getSerilizedServerOptions(this.settings);
|
|
1263
1259
|
var defaultServerOptions = fp.pick(SERVER_OPTIONS, this.settings);
|
|
1264
|
-
return _objectSpread$
|
|
1260
|
+
return _objectSpread$1v(_objectSpread$1v({}, defaultServerOptions), seriliazedServerOptions);
|
|
1265
1261
|
}
|
|
1266
1262
|
};
|
|
1267
1263
|
function getSerilizedServerOptions(options) {
|
|
@@ -1285,7 +1281,7 @@ function getSerilizedServerOptions(options) {
|
|
|
1285
1281
|
'reaction-component-margin-size-unit': options.reactionComponentMarginSizeUnit
|
|
1286
1282
|
};
|
|
1287
1283
|
if (options.imageResolution === '600') {
|
|
1288
|
-
newOptions = _objectSpread$
|
|
1284
|
+
newOptions = _objectSpread$1v(_objectSpread$1v({}, newOptions), {}, {
|
|
1289
1285
|
'render-output-sheet-width': 11,
|
|
1290
1286
|
'render-output-sheet-height': 8.5
|
|
1291
1287
|
});
|
|
@@ -1363,29 +1359,29 @@ function optionsReducer() {
|
|
|
1363
1359
|
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|
1364
1360
|
var type = action.type,
|
|
1365
1361
|
data = action.data;
|
|
1366
|
-
if (type === 'APP_OPTIONS') return _objectSpread$
|
|
1367
|
-
app: _objectSpread$
|
|
1362
|
+
if (type === 'APP_OPTIONS') return _objectSpread$1v(_objectSpread$1v({}, state), {}, {
|
|
1363
|
+
app: _objectSpread$1v(_objectSpread$1v({}, state.app), data)
|
|
1368
1364
|
});
|
|
1369
1365
|
if (type === 'SAVE_SETTINGS') {
|
|
1370
|
-
return _objectSpread$
|
|
1371
|
-
settings: _objectSpread$
|
|
1366
|
+
return _objectSpread$1v(_objectSpread$1v({}, state), {}, {
|
|
1367
|
+
settings: _objectSpread$1v(_objectSpread$1v({}, state.settings), data)
|
|
1372
1368
|
});
|
|
1373
1369
|
}
|
|
1374
|
-
if (type === 'SAVE_CHECK_OPTS') return _objectSpread$
|
|
1370
|
+
if (type === 'SAVE_CHECK_OPTS') return _objectSpread$1v(_objectSpread$1v({}, state), {}, {
|
|
1375
1371
|
check: data
|
|
1376
1372
|
});
|
|
1377
|
-
if (type === 'CHANGE_ANALYSE') return _objectSpread$
|
|
1378
|
-
analyse: _objectSpread$
|
|
1373
|
+
if (type === 'CHANGE_ANALYSE') return _objectSpread$1v(_objectSpread$1v({}, state), {}, {
|
|
1374
|
+
analyse: _objectSpread$1v(_objectSpread$1v(_objectSpread$1v({}, state.analyse), data), {}, {
|
|
1379
1375
|
loading: false
|
|
1380
1376
|
})
|
|
1381
1377
|
});
|
|
1382
|
-
if (type === 'ANALYSE_LOADING') return _objectSpread$
|
|
1383
|
-
analyse: _objectSpread$
|
|
1378
|
+
if (type === 'ANALYSE_LOADING') return _objectSpread$1v(_objectSpread$1v({}, state), {}, {
|
|
1379
|
+
analyse: _objectSpread$1v(_objectSpread$1v({}, state.analyse), {}, {
|
|
1384
1380
|
loading: true
|
|
1385
1381
|
})
|
|
1386
1382
|
});
|
|
1387
|
-
if (recognizeActions.includes(type)) return _objectSpread$
|
|
1388
|
-
recognize: _objectSpread$
|
|
1383
|
+
if (recognizeActions.includes(type)) return _objectSpread$1v(_objectSpread$1v({}, state), {}, {
|
|
1384
|
+
recognize: _objectSpread$1v(_objectSpread$1v({}, state.recognize), data)
|
|
1389
1385
|
});
|
|
1390
1386
|
return state;
|
|
1391
1387
|
}
|
|
@@ -1689,8 +1685,8 @@ function getSdataDefault() {
|
|
|
1689
1685
|
return schema[context][fieldName] ? schema[context][fieldName].properties.fieldValue["default"] : '';
|
|
1690
1686
|
}
|
|
1691
1687
|
|
|
1692
|
-
function ownKeys$
|
|
1693
|
-
function _objectSpread$
|
|
1688
|
+
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; }
|
|
1689
|
+
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__default["default"](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; }
|
|
1694
1690
|
var initSdata = function initSdata(schema) {
|
|
1695
1691
|
var isCustomShema = schema.key === 'Custom';
|
|
1696
1692
|
var context = isCustomShema ? getSdataDefault(sdataCustomSchema, 'context') : getSdataDefault(sdataSchema);
|
|
@@ -1728,7 +1724,7 @@ var onContextChange = function onContextChange(state, payload) {
|
|
|
1728
1724
|
var fValue = fieldValue;
|
|
1729
1725
|
if (fValue === state.result.fieldValue) fValue = getSdataDefault(sdataCustomSchema, 'fieldValue');
|
|
1730
1726
|
return {
|
|
1731
|
-
result: _objectSpread$
|
|
1727
|
+
result: _objectSpread$1u(_objectSpread$1u({}, payload), {}, {
|
|
1732
1728
|
context: context,
|
|
1733
1729
|
fieldName: fieldName,
|
|
1734
1730
|
fieldValue: fValue
|
|
@@ -1742,7 +1738,7 @@ var onFieldNameChange = function onFieldNameChange(state, payload) {
|
|
|
1742
1738
|
if (sdataSchema[context][fieldName]) fieldValue = getSdataDefault(sdataSchema, context, fieldName);
|
|
1743
1739
|
if (fieldValue === state.result.fieldValue && sdataSchema[context][state.result.fieldName]) fieldValue = '';
|
|
1744
1740
|
return {
|
|
1745
|
-
result: _objectSpread$
|
|
1741
|
+
result: _objectSpread$1u(_objectSpread$1u({}, payload), {}, {
|
|
1746
1742
|
fieldName: fieldName,
|
|
1747
1743
|
fieldValue: fieldValue
|
|
1748
1744
|
})
|
|
@@ -1750,7 +1746,7 @@ var onFieldNameChange = function onFieldNameChange(state, payload) {
|
|
|
1750
1746
|
};
|
|
1751
1747
|
function sdataReducer(state, action) {
|
|
1752
1748
|
if (action.data.result.init) {
|
|
1753
|
-
return correctErrors(_objectSpread$
|
|
1749
|
+
return correctErrors(_objectSpread$1u(_objectSpread$1u({}, state), {}, {
|
|
1754
1750
|
result: Object.assign({}, state.result, action.data.result)
|
|
1755
1751
|
}), action.data);
|
|
1756
1752
|
}
|
|
@@ -1758,7 +1754,7 @@ function sdataReducer(state, action) {
|
|
|
1758
1754
|
var actionFieldName = action.data.result.fieldName;
|
|
1759
1755
|
var newstate = null;
|
|
1760
1756
|
if (actionContext !== state.result.context) newstate = onContextChange(state, action.data.result);else if (actionFieldName !== state.result.fieldName) newstate = onFieldNameChange(state, action.data.result);
|
|
1761
|
-
newstate = newstate || _objectSpread$
|
|
1757
|
+
newstate = newstate || _objectSpread$1u(_objectSpread$1u({}, state), {}, {
|
|
1762
1758
|
result: Object.assign({}, state.result, action.data.result)
|
|
1763
1759
|
});
|
|
1764
1760
|
return correctErrors(newstate, action.data);
|
|
@@ -1898,8 +1894,8 @@ function formReducer(state, action) {
|
|
|
1898
1894
|
var INDIGO_VERIFICATION = 'INDIGO_VERIFICATION';
|
|
1899
1895
|
var ANALYZING_FILE = 'ANALYZING_FILE';
|
|
1900
1896
|
|
|
1901
|
-
function ownKeys$
|
|
1902
|
-
function _objectSpread$
|
|
1897
|
+
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; }
|
|
1898
|
+
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__default["default"](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; }
|
|
1903
1899
|
function indigoVerification(data) {
|
|
1904
1900
|
return {
|
|
1905
1901
|
type: INDIGO_VERIFICATION,
|
|
@@ -1924,13 +1920,13 @@ function requestReducer () {
|
|
|
1924
1920
|
switch (type) {
|
|
1925
1921
|
case INDIGO_VERIFICATION:
|
|
1926
1922
|
{
|
|
1927
|
-
return _objectSpread$
|
|
1923
|
+
return _objectSpread$1t(_objectSpread$1t({}, state), {}, {
|
|
1928
1924
|
indigoVerification: data
|
|
1929
1925
|
});
|
|
1930
1926
|
}
|
|
1931
1927
|
case ANALYZING_FILE:
|
|
1932
1928
|
{
|
|
1933
|
-
return _objectSpread$
|
|
1929
|
+
return _objectSpread$1t(_objectSpread$1t({}, state), {}, {
|
|
1934
1930
|
isAnalyzingFile: data
|
|
1935
1931
|
});
|
|
1936
1932
|
}
|
|
@@ -1948,8 +1944,8 @@ var supportedSGroupTypes = {
|
|
|
1948
1944
|
queryComponent: 'queryComponent'
|
|
1949
1945
|
};
|
|
1950
1946
|
|
|
1951
|
-
function ownKeys$
|
|
1952
|
-
function _objectSpread$
|
|
1947
|
+
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; }
|
|
1948
|
+
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__default["default"](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; }
|
|
1953
1949
|
var atom = {
|
|
1954
1950
|
title: 'Atom',
|
|
1955
1951
|
type: 'object',
|
|
@@ -2181,7 +2177,7 @@ var sgroup = {
|
|
|
2181
2177
|
title: 'SGroup',
|
|
2182
2178
|
type: 'object',
|
|
2183
2179
|
required: ['type'],
|
|
2184
|
-
oneOf: [_objectSpread$
|
|
2180
|
+
oneOf: [_objectSpread$1s({}, sdataCustomSchema), {
|
|
2185
2181
|
key: 'MUL',
|
|
2186
2182
|
title: 'Multiple group',
|
|
2187
2183
|
type: 'object',
|
|
@@ -2293,12 +2289,12 @@ function matchCharge(charge) {
|
|
|
2293
2289
|
|
|
2294
2290
|
var _excluded$B = ["aromaticity", "ringMembership", "ringSize", "connectivity", "chirality", "customQuery"],
|
|
2295
2291
|
_excluded2$7 = ["type", "radiobuttons"];
|
|
2296
|
-
function ownKeys$
|
|
2297
|
-
function _objectSpread$
|
|
2292
|
+
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; }
|
|
2293
|
+
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__default["default"](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; }
|
|
2298
2294
|
var DefaultStereoGroupNumber = 1;
|
|
2299
2295
|
function fromElement(selem) {
|
|
2300
2296
|
if (selem.label === 'R#') {
|
|
2301
|
-
return _objectSpread$
|
|
2297
|
+
return _objectSpread$1r({
|
|
2302
2298
|
type: 'rlabel',
|
|
2303
2299
|
values: fromRlabel(selem.rglabel)
|
|
2304
2300
|
}, selem);
|
|
@@ -2554,7 +2550,7 @@ function fromBond(sbond) {
|
|
|
2554
2550
|
}
|
|
2555
2551
|
function toBond(bond) {
|
|
2556
2552
|
var isCustomQuery = bond.customQuery !== '';
|
|
2557
|
-
return _objectSpread$
|
|
2553
|
+
return _objectSpread$1r({
|
|
2558
2554
|
topology: bond.topology,
|
|
2559
2555
|
reactingCenterStatus: bond.center,
|
|
2560
2556
|
customQuery: !isCustomQuery ? null : bond.customQuery
|
|
@@ -2650,7 +2646,7 @@ function toSgroup(sgroup) {
|
|
|
2650
2646
|
var type = sgroup.type,
|
|
2651
2647
|
radiobuttons = sgroup.radiobuttons,
|
|
2652
2648
|
props = _objectWithoutProperties__default["default"](sgroup, _excluded2$7);
|
|
2653
|
-
var attrs = _objectSpread$
|
|
2649
|
+
var attrs = _objectSpread$1r({}, props);
|
|
2654
2650
|
var absolute = 'absolute';
|
|
2655
2651
|
var attached = 'attached';
|
|
2656
2652
|
switch (radiobuttons) {
|
|
@@ -3222,8 +3218,8 @@ var tools = typeSchema$1["enum"].reduce(function (res, type, i) {
|
|
|
3222
3218
|
|
|
3223
3219
|
var _excluded$A = ["rescale", "fragment"],
|
|
3224
3220
|
_excluded2$6 = ["isPaste", "method"];
|
|
3225
|
-
function ownKeys$
|
|
3226
|
-
function _objectSpread$
|
|
3221
|
+
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; }
|
|
3222
|
+
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__default["default"](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; }
|
|
3227
3223
|
function onAction(action) {
|
|
3228
3224
|
if (action && action.dialog) {
|
|
3229
3225
|
return {
|
|
@@ -3294,7 +3290,7 @@ function load(struct, options) {
|
|
|
3294
3290
|
errorHandler = editor.errorHandler;
|
|
3295
3291
|
options = options || {};
|
|
3296
3292
|
_options2 = options, isPaste = _options2.isPaste, method = _options2.method, otherOptions = _objectWithoutProperties__default["default"](_options2, _excluded2$6);
|
|
3297
|
-
otherOptions = _objectSpread$
|
|
3293
|
+
otherOptions = _objectSpread$1q(_objectSpread$1q({}, serverSettings), otherOptions);
|
|
3298
3294
|
dispatch(setAnalyzingFile(true));
|
|
3299
3295
|
_context.prev = 9;
|
|
3300
3296
|
_context.next = 12;
|
|
@@ -3409,8 +3405,8 @@ function openInfoModalWithCustomMessage(message) {
|
|
|
3409
3405
|
};
|
|
3410
3406
|
}
|
|
3411
3407
|
|
|
3412
|
-
function ownKeys$
|
|
3413
|
-
function _objectSpread$
|
|
3408
|
+
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; }
|
|
3409
|
+
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__default["default"](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; }
|
|
3414
3410
|
function checkServer() {
|
|
3415
3411
|
return function (dispatch, getState) {
|
|
3416
3412
|
var _getState = getState(),
|
|
@@ -3551,7 +3547,7 @@ function serverCall(editor, server, method, options, struct) {
|
|
|
3551
3547
|
resetStereoFlagsPosition(currentStruct);
|
|
3552
3548
|
}
|
|
3553
3549
|
var ketSerializer = new ketcherCore.KetSerializer();
|
|
3554
|
-
var serializedStruct = ketSerializer.serialize(currentStruct, undefined, _objectSpread$
|
|
3550
|
+
var serializedStruct = ketSerializer.serialize(currentStruct, undefined, _objectSpread$1p(_objectSpread$1p({}, selection), {}, {
|
|
3555
3551
|
atoms: selectedAtoms,
|
|
3556
3552
|
bonds: selectedBonds
|
|
3557
3553
|
}));
|
|
@@ -3810,7 +3806,7 @@ var zoom = {
|
|
|
3810
3806
|
|
|
3811
3807
|
var openHelpLink = function openHelpLink() {
|
|
3812
3808
|
var _window$open;
|
|
3813
|
-
return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v3.5.0-rc.
|
|
3809
|
+
return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v3.5.0-rc.4\n", "/documentation/help.md#ketcher-overview"))) === null || _window$open === void 0 ? void 0 : _window$open.focus();
|
|
3814
3810
|
};
|
|
3815
3811
|
var help = {
|
|
3816
3812
|
help: {
|
|
@@ -3910,8 +3906,8 @@ var fullscreen = {
|
|
|
3910
3906
|
}
|
|
3911
3907
|
};
|
|
3912
3908
|
|
|
3913
|
-
function ownKeys$
|
|
3914
|
-
function _objectSpread$
|
|
3909
|
+
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; }
|
|
3910
|
+
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__default["default"](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; }
|
|
3915
3911
|
var disableIfViewOnly = function disableIfViewOnly(editor) {
|
|
3916
3912
|
return !!editor.render.options.viewOnlyMode;
|
|
3917
3913
|
};
|
|
@@ -3920,13 +3916,13 @@ var updateConfigItem = function updateConfigItem(item) {
|
|
|
3920
3916
|
return item;
|
|
3921
3917
|
} else if (typeof item.disabled === 'function') {
|
|
3922
3918
|
var originalDisabled = item.disabled;
|
|
3923
|
-
return _objectSpread$
|
|
3919
|
+
return _objectSpread$1o(_objectSpread$1o({}, item), {}, {
|
|
3924
3920
|
disabled: function disabled() {
|
|
3925
3921
|
return disableIfViewOnly(arguments.length <= 0 ? undefined : arguments[0]) || originalDisabled.apply(void 0, arguments);
|
|
3926
3922
|
}
|
|
3927
3923
|
});
|
|
3928
3924
|
} else {
|
|
3929
|
-
return _objectSpread$
|
|
3925
|
+
return _objectSpread$1o(_objectSpread$1o({}, item), {}, {
|
|
3930
3926
|
disabled: disableIfViewOnly
|
|
3931
3927
|
});
|
|
3932
3928
|
}
|
|
@@ -3989,8 +3985,11 @@ var config = {
|
|
|
3989
3985
|
undo: {
|
|
3990
3986
|
shortcut: 'Mod+z',
|
|
3991
3987
|
title: 'Undo',
|
|
3992
|
-
action:
|
|
3993
|
-
|
|
3988
|
+
action: {
|
|
3989
|
+
thunk: function thunk(_, getState) {
|
|
3990
|
+
var editor = getState().editor;
|
|
3991
|
+
editor.undo();
|
|
3992
|
+
}
|
|
3994
3993
|
},
|
|
3995
3994
|
disabled: function disabled(editor) {
|
|
3996
3995
|
return editor.historySize().undo === 0;
|
|
@@ -4002,8 +4001,11 @@ var config = {
|
|
|
4002
4001
|
redo: {
|
|
4003
4002
|
shortcut: ['Mod+Shift+z', 'Mod+y'],
|
|
4004
4003
|
title: 'Redo',
|
|
4005
|
-
action:
|
|
4006
|
-
|
|
4004
|
+
action: {
|
|
4005
|
+
thunk: function thunk(_, getState) {
|
|
4006
|
+
var editor = getState().editor;
|
|
4007
|
+
editor.redo();
|
|
4008
|
+
}
|
|
4007
4009
|
},
|
|
4008
4010
|
disabled: function disabled(editor) {
|
|
4009
4011
|
return editor.historySize().redo === 0;
|
|
@@ -4242,11 +4244,11 @@ var config = {
|
|
|
4242
4244
|
}
|
|
4243
4245
|
}
|
|
4244
4246
|
};
|
|
4245
|
-
var configWithNonViewOnlyActionsDisabled = Object.entries(_objectSpread$
|
|
4247
|
+
var configWithNonViewOnlyActionsDisabled = Object.entries(_objectSpread$1o(_objectSpread$1o(_objectSpread$1o(_objectSpread$1o(_objectSpread$1o(_objectSpread$1o(_objectSpread$1o(_objectSpread$1o(_objectSpread$1o(_objectSpread$1o({}, config), config$1), debugObj), tools), atoms), zoom), templates), functionalGroupsLib), fullscreen), help)).reduce(function (acc, _ref2) {
|
|
4246
4248
|
var _ref3 = _slicedToArray__default["default"](_ref2, 2),
|
|
4247
4249
|
key = _ref3[0],
|
|
4248
4250
|
item = _ref3[1];
|
|
4249
|
-
return _objectSpread$
|
|
4251
|
+
return _objectSpread$1o(_objectSpread$1o({}, acc), {}, _defineProperty__default["default"]({}, key, updateConfigItem(item)));
|
|
4250
4252
|
}, {});
|
|
4251
4253
|
function hasSelection(editor) {
|
|
4252
4254
|
var selection = editor.selection();
|
|
@@ -8261,12 +8263,12 @@ var IconButtonBase = function IconButtonBase(_ref) {
|
|
|
8261
8263
|
};
|
|
8262
8264
|
|
|
8263
8265
|
var _excluded$z = ["iconName"];
|
|
8264
|
-
function ownKeys$
|
|
8265
|
-
function _objectSpread$
|
|
8266
|
+
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; }
|
|
8267
|
+
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__default["default"](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; }
|
|
8266
8268
|
var IconButton = function IconButton(_ref) {
|
|
8267
8269
|
var iconName = _ref.iconName,
|
|
8268
8270
|
props = _objectWithoutProperties__default["default"](_ref, _excluded$z);
|
|
8269
|
-
return jsxRuntime.jsx(IconButtonBase, _objectSpread$
|
|
8271
|
+
return jsxRuntime.jsx(IconButtonBase, _objectSpread$1n(_objectSpread$1n({}, props), {}, {
|
|
8270
8272
|
children: jsxRuntime.jsx(StyledIcon$1, {
|
|
8271
8273
|
name: iconName
|
|
8272
8274
|
})
|
|
@@ -8274,12 +8276,12 @@ var IconButton = function IconButton(_ref) {
|
|
|
8274
8276
|
};
|
|
8275
8277
|
|
|
8276
8278
|
var _excluded$y = ["link"];
|
|
8277
|
-
function ownKeys$
|
|
8278
|
-
function _objectSpread$
|
|
8279
|
+
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; }
|
|
8280
|
+
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__default["default"](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; }
|
|
8279
8281
|
var IconButtonCustomIcon = function IconButtonCustomIcon(_ref) {
|
|
8280
8282
|
var link = _ref.link,
|
|
8281
8283
|
props = _objectWithoutProperties__default["default"](_ref, _excluded$y);
|
|
8282
|
-
return jsxRuntime.jsx(IconButtonBase, _objectSpread$
|
|
8284
|
+
return jsxRuntime.jsx(IconButtonBase, _objectSpread$1m(_objectSpread$1m({}, props), {}, {
|
|
8283
8285
|
children: jsxRuntime.jsx(StyledCustomIcon, {
|
|
8284
8286
|
src: link,
|
|
8285
8287
|
alt: props.title
|
|
@@ -8310,12 +8312,12 @@ var StyledButton = styled__default["default"].button({
|
|
|
8310
8312
|
});
|
|
8311
8313
|
|
|
8312
8314
|
var _excluded$x = ["children"];
|
|
8313
|
-
function ownKeys$
|
|
8314
|
-
function _objectSpread$
|
|
8315
|
+
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; }
|
|
8316
|
+
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__default["default"](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; }
|
|
8315
8317
|
var Button = function Button(_ref) {
|
|
8316
8318
|
var children = _ref.children,
|
|
8317
8319
|
props = _objectWithoutProperties__default["default"](_ref, _excluded$x);
|
|
8318
|
-
return jsxRuntime.jsx(StyledButton, _objectSpread$
|
|
8320
|
+
return jsxRuntime.jsx(StyledButton, _objectSpread$1l(_objectSpread$1l({}, props), {}, {
|
|
8319
8321
|
children: children
|
|
8320
8322
|
}));
|
|
8321
8323
|
};
|
|
@@ -8382,10 +8384,10 @@ var StyledInput$1 = styled__default["default"].input({
|
|
|
8382
8384
|
}
|
|
8383
8385
|
});
|
|
8384
8386
|
|
|
8385
|
-
function ownKeys$
|
|
8386
|
-
function _objectSpread$
|
|
8387
|
+
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; }
|
|
8388
|
+
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__default["default"](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; }
|
|
8387
8389
|
var Input$2 = function Input(props) {
|
|
8388
|
-
return jsxRuntime.jsx(StyledInput$1, _objectSpread$
|
|
8390
|
+
return jsxRuntime.jsx(StyledInput$1, _objectSpread$1k({}, props));
|
|
8389
8391
|
};
|
|
8390
8392
|
|
|
8391
8393
|
var Container$1 = styled__default["default"].div({
|
|
@@ -8469,8 +8471,8 @@ var InfoModal$1 = function InfoModal(_ref) {
|
|
|
8469
8471
|
var styles$h = {"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"};
|
|
8470
8472
|
|
|
8471
8473
|
var _excluded$w = ["children", "title", "params", "result", "valid", "buttons", "headerContent", "footerContent", "className", "buttonsNameMap", "needMargin", "withDivider", "focusable"];
|
|
8472
|
-
function ownKeys$
|
|
8473
|
-
function _objectSpread$
|
|
8474
|
+
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; }
|
|
8475
|
+
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__default["default"](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; }
|
|
8474
8476
|
var Dialog = function Dialog(props) {
|
|
8475
8477
|
var children = props.children,
|
|
8476
8478
|
title = props.title,
|
|
@@ -8525,7 +8527,7 @@ var Dialog = function Dialog(props) {
|
|
|
8525
8527
|
event.stopPropagation();
|
|
8526
8528
|
}
|
|
8527
8529
|
};
|
|
8528
|
-
return jsxRuntime.jsxs("div", _objectSpread$
|
|
8530
|
+
return jsxRuntime.jsxs("div", _objectSpread$1j(_objectSpread$1j({
|
|
8529
8531
|
ref: dialogRef,
|
|
8530
8532
|
role: "dialog",
|
|
8531
8533
|
onSubmit: function onSubmit(event) {
|
|
@@ -11099,8 +11101,8 @@ var errors = {
|
|
|
11099
11101
|
codes: codes_1
|
|
11100
11102
|
};
|
|
11101
11103
|
|
|
11102
|
-
function ownKeys$
|
|
11103
|
-
function _objectSpread$
|
|
11104
|
+
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; }
|
|
11105
|
+
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(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; }
|
|
11104
11106
|
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; }
|
|
11105
11107
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
11106
11108
|
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); } }
|
|
@@ -11528,7 +11530,7 @@ var AssertionError = /*#__PURE__*/function (_Error, _inspect$custom) {
|
|
|
11528
11530
|
// the minimum depth. Otherwise those values would be too verbose compared
|
|
11529
11531
|
// to the actual error message which contains a combined view of these two
|
|
11530
11532
|
// input values.
|
|
11531
|
-
return inspect(this, _objectSpread$
|
|
11533
|
+
return inspect(this, _objectSpread$1i(_objectSpread$1i({}, ctx), {}, {
|
|
11532
11534
|
customInspect: false,
|
|
11533
11535
|
depth: 0
|
|
11534
11536
|
}));
|
|
@@ -13420,8 +13422,8 @@ function usePortalStyle(_ref) {
|
|
|
13420
13422
|
return [portalStyle];
|
|
13421
13423
|
}
|
|
13422
13424
|
|
|
13423
|
-
function ownKeys$
|
|
13424
|
-
function _objectSpread$
|
|
13425
|
+
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; }
|
|
13426
|
+
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__default["default"](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; }
|
|
13425
13427
|
var ToolbarMultiToolItem = function ToolbarMultiToolItem(props) {
|
|
13426
13428
|
var id = props.id,
|
|
13427
13429
|
options = props.options,
|
|
@@ -13496,7 +13498,7 @@ var ToolbarMultiToolItem = function ToolbarMultiToolItem(props) {
|
|
|
13496
13498
|
ref: ref,
|
|
13497
13499
|
className: classes$N.root,
|
|
13498
13500
|
"data-testid": "".concat(id, "-drop-down-button"),
|
|
13499
|
-
children: [jsxRuntime.jsx(ActionButton, _objectSpread$
|
|
13501
|
+
children: [jsxRuntime.jsx(ActionButton, _objectSpread$1h(_objectSpread$1h({}, actionButtonProps), {}, {
|
|
13500
13502
|
className: className,
|
|
13501
13503
|
name: iconName,
|
|
13502
13504
|
action: configWithNonViewOnlyActionsDisabled[currentId],
|
|
@@ -13605,8 +13607,8 @@ var TemplatesList = function TemplatesList(props) {
|
|
|
13605
13607
|
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"};
|
|
13606
13608
|
|
|
13607
13609
|
var _excluded$v = ["className"];
|
|
13608
|
-
function ownKeys$
|
|
13609
|
-
function _objectSpread$
|
|
13610
|
+
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; }
|
|
13611
|
+
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__default["default"](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; }
|
|
13610
13612
|
var Group$1 = function Group(_ref) {
|
|
13611
13613
|
var children = _ref.children,
|
|
13612
13614
|
className = _ref.className;
|
|
@@ -13622,22 +13624,22 @@ var BottomToolbar = function BottomToolbar(props) {
|
|
|
13622
13624
|
"data-testid": "bottom-toolbar",
|
|
13623
13625
|
className: clsx__default["default"](classes$M.root, className),
|
|
13624
13626
|
children: jsxRuntime.jsxs(Group$1, {
|
|
13625
|
-
children: [jsxRuntime.jsx(TemplatesList, _objectSpread$
|
|
13627
|
+
children: [jsxRuntime.jsx(TemplatesList, _objectSpread$1g({}, rest)), jsxRuntime.jsx(ToolbarGroupItem, _objectSpread$1g({
|
|
13626
13628
|
id: "template-lib"
|
|
13627
13629
|
}, rest))]
|
|
13628
13630
|
})
|
|
13629
13631
|
});
|
|
13630
13632
|
};
|
|
13631
13633
|
|
|
13632
|
-
function ownKeys$
|
|
13633
|
-
function _objectSpread$
|
|
13634
|
+
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; }
|
|
13635
|
+
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__default["default"](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; }
|
|
13634
13636
|
function openDialog(dispatch, dialogName, props) {
|
|
13635
13637
|
return new Promise(function (resolve, reject) {
|
|
13636
13638
|
dispatch({
|
|
13637
13639
|
type: 'MODAL_OPEN',
|
|
13638
13640
|
data: {
|
|
13639
13641
|
name: dialogName,
|
|
13640
|
-
prop: _objectSpread$
|
|
13642
|
+
prop: _objectSpread$1f(_objectSpread$1f({}, props), {}, {
|
|
13641
13643
|
onResult: resolve,
|
|
13642
13644
|
onCancel: reject
|
|
13643
13645
|
})
|
|
@@ -13656,14 +13658,14 @@ function modalReducer() {
|
|
|
13656
13658
|
return null;
|
|
13657
13659
|
}
|
|
13658
13660
|
var formState = formReducer(state.form, action);
|
|
13659
|
-
return _objectSpread$
|
|
13661
|
+
return _objectSpread$1f(_objectSpread$1f({}, state), {}, {
|
|
13660
13662
|
form: formState
|
|
13661
13663
|
});
|
|
13662
13664
|
}
|
|
13663
13665
|
switch (type) {
|
|
13664
13666
|
case 'MODAL_CLOSE':
|
|
13665
13667
|
if (state !== null && state !== void 0 && state.parentModal) {
|
|
13666
|
-
state.parentModal.prop = _objectSpread$
|
|
13668
|
+
state.parentModal.prop = _objectSpread$1f(_objectSpread$1f(_objectSpread$1f({}, state.parentModal.prop), state.parentModal.form.result), {}, {
|
|
13667
13669
|
isRestoredModal: true
|
|
13668
13670
|
});
|
|
13669
13671
|
return state.parentModal;
|
|
@@ -13681,8 +13683,8 @@ function modalReducer() {
|
|
|
13681
13683
|
}
|
|
13682
13684
|
}
|
|
13683
13685
|
|
|
13684
|
-
function ownKeys$
|
|
13685
|
-
function _objectSpread$
|
|
13686
|
+
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; }
|
|
13687
|
+
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__default["default"](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; }
|
|
13686
13688
|
function selectTmpl(tmpl) {
|
|
13687
13689
|
return {
|
|
13688
13690
|
type: 'TMPL_SELECT',
|
|
@@ -13790,7 +13792,7 @@ function saveUserTmpl(struct) {
|
|
|
13790
13792
|
var name = _ref.name,
|
|
13791
13793
|
attach = _ref.attach;
|
|
13792
13794
|
tmpl.struct.name = name.trim();
|
|
13793
|
-
tmpl.props = _objectSpread$
|
|
13795
|
+
tmpl.props = _objectSpread$1e(_objectSpread$1e({}, attach), {}, {
|
|
13794
13796
|
group: 'User Templates'
|
|
13795
13797
|
});
|
|
13796
13798
|
var lib = getState().templates.lib.concat(tmpl);
|
|
@@ -13830,7 +13832,7 @@ function templatesReducer() {
|
|
|
13830
13832
|
if (tmplActions.includes(action.type)) return Object.assign({}, state, action.data);
|
|
13831
13833
|
if (attachActions.includes(action.type)) {
|
|
13832
13834
|
var attach = Object.assign({}, state.attach, action.data);
|
|
13833
|
-
return _objectSpread$
|
|
13835
|
+
return _objectSpread$1e(_objectSpread$1e({}, state), {}, {
|
|
13834
13836
|
attach: attach
|
|
13835
13837
|
});
|
|
13836
13838
|
}
|
|
@@ -13839,7 +13841,7 @@ function templatesReducer() {
|
|
|
13839
13841
|
var lib = currentState.lib.filter(function (value) {
|
|
13840
13842
|
return value !== action.data.tmpl;
|
|
13841
13843
|
});
|
|
13842
|
-
return _objectSpread$
|
|
13844
|
+
return _objectSpread$1e(_objectSpread$1e({}, currentState), {}, {
|
|
13843
13845
|
lib: lib
|
|
13844
13846
|
});
|
|
13845
13847
|
}
|
|
@@ -13901,8 +13903,8 @@ function abbreviationLookupReducer() {
|
|
|
13901
13903
|
}
|
|
13902
13904
|
}
|
|
13903
13905
|
|
|
13904
|
-
function ownKeys$
|
|
13905
|
-
function _objectSpread$
|
|
13906
|
+
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; }
|
|
13907
|
+
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__default["default"](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; }
|
|
13906
13908
|
var initialState$3 = {
|
|
13907
13909
|
cursorPosition: {
|
|
13908
13910
|
x: 0,
|
|
@@ -13927,7 +13929,7 @@ function commonReducer() {
|
|
|
13927
13929
|
switch (action.type) {
|
|
13928
13930
|
case COMMON_ACTIONS.COMMON_UPDATE_CURSOR_POSITION:
|
|
13929
13931
|
{
|
|
13930
|
-
return _objectSpread$
|
|
13932
|
+
return _objectSpread$1d(_objectSpread$1d({}, state), {}, {
|
|
13931
13933
|
cursorPosition: {
|
|
13932
13934
|
x: action.data.x,
|
|
13933
13935
|
y: action.data.y
|
|
@@ -13940,8 +13942,8 @@ function commonReducer() {
|
|
|
13940
13942
|
}
|
|
13941
13943
|
|
|
13942
13944
|
var _excluded$u = ["type", "action"];
|
|
13943
|
-
function ownKeys$
|
|
13944
|
-
function _objectSpread$
|
|
13945
|
+
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; }
|
|
13946
|
+
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__default["default"](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; }
|
|
13945
13947
|
function execute(activeTool, _ref) {
|
|
13946
13948
|
var action = _ref.action,
|
|
13947
13949
|
editor = _ref.editor,
|
|
@@ -13999,7 +14001,7 @@ function actionStateReducer () {
|
|
|
13999
14001
|
}
|
|
14000
14002
|
case 'ACTION':
|
|
14001
14003
|
{
|
|
14002
|
-
activeTool = execute(state && state.activeTool, _objectSpread$
|
|
14004
|
+
activeTool = execute(state && state.activeTool, _objectSpread$1c(_objectSpread$1c({}, params), {}, {
|
|
14003
14005
|
action: action
|
|
14004
14006
|
}));
|
|
14005
14007
|
if (activeTool.tool === 'select') {
|
|
@@ -14295,8 +14297,8 @@ function setFunctionalGroupsTooltip(_ref) {
|
|
|
14295
14297
|
showTooltip(editor, infoPanelData);
|
|
14296
14298
|
}
|
|
14297
14299
|
|
|
14298
|
-
function ownKeys$
|
|
14299
|
-
function _objectSpread$
|
|
14300
|
+
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; }
|
|
14301
|
+
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__default["default"](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; }
|
|
14300
14302
|
var initialState$2 = {
|
|
14301
14303
|
lib: [],
|
|
14302
14304
|
functionalGroupInfo: null,
|
|
@@ -14309,9 +14311,9 @@ var functionalGroupsReducer = function functionalGroupsReducer() {
|
|
|
14309
14311
|
payload = _ref.payload;
|
|
14310
14312
|
switch (type) {
|
|
14311
14313
|
case 'FG_INIT':
|
|
14312
|
-
return _objectSpread$
|
|
14314
|
+
return _objectSpread$1b(_objectSpread$1b({}, state), payload);
|
|
14313
14315
|
case 'FG_HIGHLIGHT':
|
|
14314
|
-
return _objectSpread$
|
|
14316
|
+
return _objectSpread$1b(_objectSpread$1b({}, state), {}, {
|
|
14315
14317
|
functionalGroupInfo: payload
|
|
14316
14318
|
});
|
|
14317
14319
|
default:
|
|
@@ -14369,8 +14371,8 @@ function initFGTemplates() {
|
|
|
14369
14371
|
|
|
14370
14372
|
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$$$$";
|
|
14371
14373
|
|
|
14372
|
-
function ownKeys$
|
|
14373
|
-
function _objectSpread$
|
|
14374
|
+
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; }
|
|
14375
|
+
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__default["default"](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; }
|
|
14374
14376
|
var initialState$1 = {
|
|
14375
14377
|
lib: [],
|
|
14376
14378
|
mode: MODES.FG
|
|
@@ -14382,7 +14384,7 @@ var saltsAndSolventsReducer = function saltsAndSolventsReducer() {
|
|
|
14382
14384
|
payload = _ref.payload;
|
|
14383
14385
|
switch (type) {
|
|
14384
14386
|
case 'SALTS_AND_SOLVENTS_INIT':
|
|
14385
|
-
return _objectSpread$
|
|
14387
|
+
return _objectSpread$1a(_objectSpread$1a({}, state), payload);
|
|
14386
14388
|
default:
|
|
14387
14389
|
return state;
|
|
14388
14390
|
}
|
|
@@ -14431,8 +14433,8 @@ function initSaltsAndSolventsTemplates() {
|
|
|
14431
14433
|
}();
|
|
14432
14434
|
}
|
|
14433
14435
|
|
|
14434
|
-
function ownKeys$
|
|
14435
|
-
function _objectSpread$
|
|
14436
|
+
function ownKeys$19(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; }
|
|
14437
|
+
function _objectSpread$19(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$19(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$19(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14436
14438
|
var initial = {
|
|
14437
14439
|
freqAtoms: [],
|
|
14438
14440
|
currentAtom: 0,
|
|
@@ -14452,7 +14454,7 @@ function updateVisibleTools(visibleTool, activeTool) {
|
|
|
14452
14454
|
if (key === 'shape' && menuHeight > 900) return res;
|
|
14453
14455
|
if (!key.match(regExp) || menuHeight > 700) res[key] = visibleTool[key];
|
|
14454
14456
|
return res;
|
|
14455
|
-
}, _objectSpread$
|
|
14457
|
+
}, _objectSpread$19({}, activeTool));
|
|
14456
14458
|
}
|
|
14457
14459
|
function initResize() {
|
|
14458
14460
|
return function (dispatch, getState) {
|
|
@@ -14476,41 +14478,41 @@ function toolbarReducer () {
|
|
|
14476
14478
|
case 'ACTION':
|
|
14477
14479
|
{
|
|
14478
14480
|
var visibleTool = toolInMenu(action.action);
|
|
14479
|
-
return visibleTool ? _objectSpread$
|
|
14481
|
+
return visibleTool ? _objectSpread$19(_objectSpread$19({}, state), {}, {
|
|
14480
14482
|
opened: null,
|
|
14481
|
-
visibleTools: _objectSpread$
|
|
14482
|
-
}) : _objectSpread$
|
|
14483
|
+
visibleTools: _objectSpread$19(_objectSpread$19({}, state.visibleTools), visibleTool)
|
|
14484
|
+
}) : _objectSpread$19(_objectSpread$19({}, state), {}, {
|
|
14483
14485
|
opened: null
|
|
14484
14486
|
});
|
|
14485
14487
|
}
|
|
14486
14488
|
case 'ADD_ATOMS':
|
|
14487
14489
|
{
|
|
14488
14490
|
var newState = addFreqAtom(data, state.freqAtoms, state.currentAtom);
|
|
14489
|
-
return _objectSpread$
|
|
14491
|
+
return _objectSpread$19(_objectSpread$19({}, state), newState);
|
|
14490
14492
|
}
|
|
14491
14493
|
case 'CLEAR_VISIBLE':
|
|
14492
14494
|
{
|
|
14493
14495
|
var activeTool = toolInMenu(action.data);
|
|
14494
14496
|
var correctTools = updateVisibleTools(state.visibleTools, activeTool);
|
|
14495
|
-
return _objectSpread$
|
|
14497
|
+
return _objectSpread$19(_objectSpread$19({}, state), {}, {
|
|
14496
14498
|
opened: null,
|
|
14497
|
-
visibleTools: _objectSpread$
|
|
14499
|
+
visibleTools: _objectSpread$19({}, correctTools)
|
|
14498
14500
|
});
|
|
14499
14501
|
}
|
|
14500
14502
|
case 'OPENED':
|
|
14501
14503
|
{
|
|
14502
|
-
return data.isSelected && state.opened ? _objectSpread$
|
|
14504
|
+
return data.isSelected && state.opened ? _objectSpread$19(_objectSpread$19({}, state), {}, {
|
|
14503
14505
|
opened: null
|
|
14504
|
-
}) : _objectSpread$
|
|
14506
|
+
}) : _objectSpread$19(_objectSpread$19({}, state), {}, {
|
|
14505
14507
|
opened: data.menuName
|
|
14506
14508
|
});
|
|
14507
14509
|
}
|
|
14508
14510
|
case 'UPDATE':
|
|
14509
|
-
return _objectSpread$
|
|
14511
|
+
return _objectSpread$19(_objectSpread$19({}, state), {}, {
|
|
14510
14512
|
opened: null
|
|
14511
14513
|
});
|
|
14512
14514
|
case 'MODAL_OPEN':
|
|
14513
|
-
return _objectSpread$
|
|
14515
|
+
return _objectSpread$19(_objectSpread$19({}, state), {}, {
|
|
14514
14516
|
opened: null
|
|
14515
14517
|
});
|
|
14516
14518
|
default:
|
|
@@ -14553,8 +14555,8 @@ function hiddenAncestor(el, base) {
|
|
|
14553
14555
|
return findEl;
|
|
14554
14556
|
}
|
|
14555
14557
|
|
|
14556
|
-
function ownKeys$
|
|
14557
|
-
function _objectSpread$
|
|
14558
|
+
function ownKeys$18(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; }
|
|
14559
|
+
function _objectSpread$18(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$18(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$18(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14558
14560
|
var initialState = {
|
|
14559
14561
|
visible: false,
|
|
14560
14562
|
rotateHandlePosition: {
|
|
@@ -14576,7 +14578,7 @@ var floatingToolsReducer = function floatingToolsReducer() {
|
|
|
14576
14578
|
payload = _ref.payload;
|
|
14577
14579
|
switch (type) {
|
|
14578
14580
|
case 'UPDATE_FLOATING_TOOLS':
|
|
14579
|
-
return _objectSpread$
|
|
14581
|
+
return _objectSpread$18(_objectSpread$18({}, state), payload);
|
|
14580
14582
|
default:
|
|
14581
14583
|
return state;
|
|
14582
14584
|
}
|
|
@@ -14584,8 +14586,8 @@ var floatingToolsReducer = function floatingToolsReducer() {
|
|
|
14584
14586
|
|
|
14585
14587
|
var _excluded$t = ["type"],
|
|
14586
14588
|
_excluded2$5 = ["buttons", "customButtons"];
|
|
14587
|
-
function ownKeys$
|
|
14588
|
-
function _objectSpread$
|
|
14589
|
+
function ownKeys$17(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; }
|
|
14590
|
+
function _objectSpread$17(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$17(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$17(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14589
14591
|
var SET_SERVER = 'SET_SERVER';
|
|
14590
14592
|
var shared = redux.combineReducers({
|
|
14591
14593
|
common: commonReducer,
|
|
@@ -14619,17 +14621,17 @@ function getRootReducer(setEditor) {
|
|
|
14619
14621
|
{
|
|
14620
14622
|
action.type;
|
|
14621
14623
|
var data = _objectWithoutProperties__default["default"](action, _excluded$t);
|
|
14622
|
-
if (data) state = _objectSpread$
|
|
14624
|
+
if (data) state = _objectSpread$17(_objectSpread$17({}, state), data);
|
|
14623
14625
|
}
|
|
14624
14626
|
case SET_SERVER:
|
|
14625
14627
|
{
|
|
14626
|
-
state = _objectSpread$
|
|
14628
|
+
state = _objectSpread$17(_objectSpread$17({}, state), {}, {
|
|
14627
14629
|
server: action.server || state.server
|
|
14628
14630
|
});
|
|
14629
14631
|
}
|
|
14630
14632
|
}
|
|
14631
|
-
var sh = shared(state, _objectSpread$
|
|
14632
|
-
var finalState = sh === state.shared ? state : _objectSpread$
|
|
14633
|
+
var sh = shared(state, _objectSpread$17(_objectSpread$17({}, action), fp.pick(['editor', 'server', 'options'], state)));
|
|
14634
|
+
var finalState = sh === state.shared ? state : _objectSpread$17(_objectSpread$17({}, state), sh);
|
|
14633
14635
|
global.currentState = finalState;
|
|
14634
14636
|
return finalState;
|
|
14635
14637
|
};
|
|
@@ -14726,8 +14728,8 @@ function useSettingsContext() {
|
|
|
14726
14728
|
return React__default["default"].useContext(settingsContext);
|
|
14727
14729
|
}
|
|
14728
14730
|
|
|
14729
|
-
function ownKeys$
|
|
14730
|
-
function _objectSpread$
|
|
14731
|
+
function ownKeys$16(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; }
|
|
14732
|
+
function _objectSpread$16(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$16(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$16(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14731
14733
|
var throttleMilliseconds = 100;
|
|
14732
14734
|
function useThrottleResizeObserver() {
|
|
14733
14735
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -14741,11 +14743,11 @@ function useThrottleResizeObserver() {
|
|
|
14741
14743
|
var onResize = React.useMemo(function () {
|
|
14742
14744
|
return _.throttle(setSize, throttleMilliseconds);
|
|
14743
14745
|
}, []);
|
|
14744
|
-
var _useResizeObserver = useResizeObserver__default["default"](_objectSpread$
|
|
14746
|
+
var _useResizeObserver = useResizeObserver__default["default"](_objectSpread$16({
|
|
14745
14747
|
onResize: onResize
|
|
14746
14748
|
}, options)),
|
|
14747
14749
|
ref = _useResizeObserver.ref;
|
|
14748
|
-
return _objectSpread$
|
|
14750
|
+
return _objectSpread$16({
|
|
14749
14751
|
ref: ref
|
|
14750
14752
|
}, size);
|
|
14751
14753
|
}
|
|
@@ -14779,7 +14781,6 @@ var useInterval = function useInterval(callback, delay) {
|
|
|
14779
14781
|
var useSubscriptionOnEvents = function useSubscriptionOnEvents() {
|
|
14780
14782
|
var dispatch = reactRedux.useDispatch();
|
|
14781
14783
|
var _useAppContext = useAppContext(),
|
|
14782
|
-
getKetcherInstance = _useAppContext.getKetcherInstance,
|
|
14783
14784
|
ketcherId = _useAppContext.ketcherId;
|
|
14784
14785
|
var loadingHandler = function loadingHandler() {
|
|
14785
14786
|
dispatch(indigoVerification(true));
|
|
@@ -14799,10 +14800,10 @@ var useSubscriptionOnEvents = function useSubscriptionOnEvents() {
|
|
|
14799
14800
|
};
|
|
14800
14801
|
React.useEffect(function () {
|
|
14801
14802
|
var subscribeOnInit = function subscribeOnInit() {
|
|
14802
|
-
subscribe(
|
|
14803
|
+
subscribe(ketcherCore.ketcherProvider.getKetcher(ketcherId));
|
|
14803
14804
|
};
|
|
14804
14805
|
var unsubscribeOnUnMount = function unsubscribeOnUnMount() {
|
|
14805
|
-
unsubscribe(
|
|
14806
|
+
unsubscribe(ketcherCore.ketcherProvider.getKetcher(ketcherId));
|
|
14806
14807
|
};
|
|
14807
14808
|
var initEventName = ketcherInitEventName(ketcherId);
|
|
14808
14809
|
window.addEventListener(initEventName, subscribeOnInit);
|
|
@@ -14877,13 +14878,13 @@ var mediaSizes$2 = {
|
|
|
14877
14878
|
};
|
|
14878
14879
|
|
|
14879
14880
|
var _excluded$s = ["height"];
|
|
14880
|
-
function ownKeys$
|
|
14881
|
-
function _objectSpread$
|
|
14881
|
+
function ownKeys$15(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; }
|
|
14882
|
+
function _objectSpread$15(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$15(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$15(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14882
14883
|
var Bond$1 = function Bond(props) {
|
|
14883
14884
|
var height = props.height,
|
|
14884
14885
|
rest = _objectWithoutProperties__default["default"](props, _excluded$s);
|
|
14885
14886
|
if (height && height <= mediaSizes$2.bondCollapsableHeight) {
|
|
14886
|
-
return jsxRuntime.jsx(ToolbarMultiToolItem, _objectSpread$
|
|
14887
|
+
return jsxRuntime.jsx(ToolbarMultiToolItem, _objectSpread$15({
|
|
14887
14888
|
id: "bonds",
|
|
14888
14889
|
options: groupOptions,
|
|
14889
14890
|
variant: "grouped",
|
|
@@ -14891,35 +14892,35 @@ var Bond$1 = function Bond(props) {
|
|
|
14891
14892
|
}, rest));
|
|
14892
14893
|
}
|
|
14893
14894
|
return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
14894
|
-
children: [jsxRuntime.jsx(ToolbarMultiToolItem, _objectSpread$
|
|
14895
|
+
children: [jsxRuntime.jsx(ToolbarMultiToolItem, _objectSpread$15({
|
|
14895
14896
|
id: "bond-common",
|
|
14896
14897
|
options: bondCommon
|
|
14897
|
-
}, rest)), jsxRuntime.jsx(ToolbarMultiToolItem, _objectSpread$
|
|
14898
|
+
}, rest)), jsxRuntime.jsx(ToolbarMultiToolItem, _objectSpread$15({
|
|
14898
14899
|
id: "bond-stereo",
|
|
14899
14900
|
options: bondStereo
|
|
14900
|
-
}, rest)), jsxRuntime.jsx(ToolbarMultiToolItem, _objectSpread$
|
|
14901
|
+
}, rest)), jsxRuntime.jsx(ToolbarMultiToolItem, _objectSpread$15({
|
|
14901
14902
|
id: "bond-query",
|
|
14902
14903
|
options: bondQuery
|
|
14903
|
-
}, rest)), jsxRuntime.jsx(ToolbarMultiToolItem, _objectSpread$
|
|
14904
|
+
}, rest)), jsxRuntime.jsx(ToolbarMultiToolItem, _objectSpread$15({
|
|
14904
14905
|
id: "bond-special",
|
|
14905
14906
|
options: bondSpecial
|
|
14906
14907
|
}, rest))]
|
|
14907
14908
|
});
|
|
14908
14909
|
};
|
|
14909
14910
|
|
|
14910
|
-
function ownKeys$
|
|
14911
|
-
function _objectSpread$
|
|
14911
|
+
function ownKeys$14(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; }
|
|
14912
|
+
function _objectSpread$14(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$14(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$14(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14912
14913
|
var RGroup$1 = function RGroup(props) {
|
|
14913
|
-
return jsxRuntime.jsx(ToolbarGroupItem, _objectSpread$
|
|
14914
|
+
return jsxRuntime.jsx(ToolbarGroupItem, _objectSpread$14({
|
|
14914
14915
|
id: "rgroup",
|
|
14915
14916
|
options: rGroupOptions
|
|
14916
14917
|
}, props));
|
|
14917
14918
|
};
|
|
14918
14919
|
|
|
14919
|
-
function ownKeys$
|
|
14920
|
-
function _objectSpread$
|
|
14920
|
+
function ownKeys$13(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; }
|
|
14921
|
+
function _objectSpread$13(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$13(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$13(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14921
14922
|
var Shape = function Shape(props) {
|
|
14922
|
-
return jsxRuntime.jsx(ToolbarGroupItem, _objectSpread$
|
|
14923
|
+
return jsxRuntime.jsx(ToolbarGroupItem, _objectSpread$13({
|
|
14923
14924
|
id: "shapes",
|
|
14924
14925
|
options: shapeOptions
|
|
14925
14926
|
}, props));
|
|
@@ -14928,8 +14929,8 @@ var Shape = function Shape(props) {
|
|
|
14928
14929
|
var classes$K = {"button-common-styles":"LeftToolbar-module_button-common-styles__WgnON","scrollbar":"LeftToolbar-module_scrollbar__OBwid","group":"LeftToolbar-module_group__0s41t","root":"LeftToolbar-module_root__yhhZm","buttons":"LeftToolbar-module_buttons__lnIjn","borderOff":"LeftToolbar-module_borderOff__om425","groupItem":"LeftToolbar-module_groupItem__OqQu0"};
|
|
14929
14930
|
|
|
14930
14931
|
var _excluded$r = ["className"];
|
|
14931
|
-
function ownKeys$
|
|
14932
|
-
function _objectSpread$
|
|
14932
|
+
function ownKeys$12(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; }
|
|
14933
|
+
function _objectSpread$12(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$12(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$12(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14933
14934
|
var LeftToolbar = function LeftToolbar(props) {
|
|
14934
14935
|
var _scrollRef$current;
|
|
14935
14936
|
var className = props.className,
|
|
@@ -14955,7 +14956,7 @@ var LeftToolbar = function LeftToolbar(props) {
|
|
|
14955
14956
|
var id = _ref.id,
|
|
14956
14957
|
options = _ref.options,
|
|
14957
14958
|
dataTestId = _ref.dataTestId;
|
|
14958
|
-
return ToolbarGroupItem(_objectSpread$
|
|
14959
|
+
return ToolbarGroupItem(_objectSpread$12({
|
|
14959
14960
|
id: id,
|
|
14960
14961
|
options: options,
|
|
14961
14962
|
dataTestId: dataTestId
|
|
@@ -14992,16 +14993,16 @@ var LeftToolbar = function LeftToolbar(props) {
|
|
|
14992
14993
|
children: visibleItems.map(function (item) {
|
|
14993
14994
|
switch (item.id) {
|
|
14994
14995
|
case 'bond-common':
|
|
14995
|
-
return React.createElement(Bond$1, _objectSpread$
|
|
14996
|
+
return React.createElement(Bond$1, _objectSpread$12(_objectSpread$12({}, rest), {}, {
|
|
14996
14997
|
height: height,
|
|
14997
14998
|
key: item.id
|
|
14998
14999
|
}));
|
|
14999
15000
|
case 'rgroup':
|
|
15000
|
-
return React.createElement(RGroup$1, _objectSpread$
|
|
15001
|
+
return React.createElement(RGroup$1, _objectSpread$12(_objectSpread$12({}, rest), {}, {
|
|
15001
15002
|
key: item.id
|
|
15002
15003
|
}));
|
|
15003
15004
|
case 'shapes':
|
|
15004
|
-
return React.createElement(Shape, _objectSpread$
|
|
15005
|
+
return React.createElement(Shape, _objectSpread$12(_objectSpread$12({}, rest), {}, {
|
|
15005
15006
|
key: item.id
|
|
15006
15007
|
}));
|
|
15007
15008
|
case 'bonds':
|
|
@@ -15131,14 +15132,14 @@ var LeftToolbarContainer = reactRedux.connect(mapStateToProps$k, mapDispatchToPr
|
|
|
15131
15132
|
var classes$J = {"button-common-styles":"Atom-module_button-common-styles__j3EUJ","scrollbar":"Atom-module_scrollbar__iO-Ni","atom":"Atom-module_atom__g2RUu"};
|
|
15132
15133
|
|
|
15133
15134
|
var _excluded$q = ["el", "shortcut", "selected"];
|
|
15134
|
-
function ownKeys$
|
|
15135
|
-
function _objectSpread$
|
|
15135
|
+
function ownKeys$11(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; }
|
|
15136
|
+
function _objectSpread$11(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$11(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$11(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15136
15137
|
function Atom$1(_ref) {
|
|
15137
15138
|
var el = _ref.el,
|
|
15138
15139
|
shortcut = _ref.shortcut,
|
|
15139
15140
|
selected = _ref.selected,
|
|
15140
15141
|
props = _objectWithoutProperties__default["default"](_ref, _excluded$q);
|
|
15141
|
-
return jsxRuntime.jsx("button", _objectSpread$
|
|
15142
|
+
return jsxRuntime.jsx("button", _objectSpread$11(_objectSpread$11({
|
|
15142
15143
|
title: shortcut ? "".concat(el.title, " (").concat(shortcut, ")") : el.title,
|
|
15143
15144
|
className: clsx__default["default"](classes$J.atom, {
|
|
15144
15145
|
selected: selected
|
|
@@ -15203,8 +15204,8 @@ var HorizontalDivider = function HorizontalDivider() {
|
|
|
15203
15204
|
};
|
|
15204
15205
|
|
|
15205
15206
|
var _excluded$p = ["className"];
|
|
15206
|
-
function ownKeys
|
|
15207
|
-
function _objectSpread
|
|
15207
|
+
function ownKeys$10(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; }
|
|
15208
|
+
function _objectSpread$10(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$10(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$10(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15208
15209
|
var Group = function Group(_ref) {
|
|
15209
15210
|
var children = _ref.children,
|
|
15210
15211
|
className = _ref.className;
|
|
@@ -15275,7 +15276,7 @@ var RightToolbar = function RightToolbar(props) {
|
|
|
15275
15276
|
status: status,
|
|
15276
15277
|
active: active,
|
|
15277
15278
|
onAction: onAction
|
|
15278
|
-
}), jsxRuntime.jsx(ToolbarGroupItem, _objectSpread
|
|
15279
|
+
}), jsxRuntime.jsx(ToolbarGroupItem, _objectSpread$10({
|
|
15279
15280
|
id: "period-table"
|
|
15280
15281
|
}, rest))]
|
|
15281
15282
|
})
|
|
@@ -15285,11 +15286,11 @@ var RightToolbar = function RightToolbar(props) {
|
|
|
15285
15286
|
className: classes$I.groupItem,
|
|
15286
15287
|
children: jsxRuntime.jsxs("div", {
|
|
15287
15288
|
ref: sizeRef,
|
|
15288
|
-
children: [jsxRuntime.jsx(ToolbarGroupItem, _objectSpread
|
|
15289
|
+
children: [jsxRuntime.jsx(ToolbarGroupItem, _objectSpread$10({
|
|
15289
15290
|
id: "any-atom"
|
|
15290
15291
|
}, rest)), jsxRuntime.jsx("div", {
|
|
15291
15292
|
className: classes$I.button,
|
|
15292
|
-
children: jsxRuntime.jsx(ToolbarGroupItem, _objectSpread
|
|
15293
|
+
children: jsxRuntime.jsx(ToolbarGroupItem, _objectSpread$10({
|
|
15293
15294
|
id: "extended-table"
|
|
15294
15295
|
}, rest))
|
|
15295
15296
|
})]
|
|
@@ -15932,7 +15933,11 @@ var TopToolbar = function TopToolbar(_ref) {
|
|
|
15932
15933
|
resizeRef = _useResizeObserver.ref,
|
|
15933
15934
|
_useResizeObserver$wi = _useResizeObserver.width,
|
|
15934
15935
|
width = _useResizeObserver$wi === void 0 ? 50 : _useResizeObserver$wi;
|
|
15935
|
-
var
|
|
15936
|
+
var _useAppContext = useAppContext(),
|
|
15937
|
+
ketcherId = _useAppContext.ketcherId;
|
|
15938
|
+
var ketcher = React.useMemo(function () {
|
|
15939
|
+
return ketcherCore.ketcherProvider.getKetcher(ketcherId);
|
|
15940
|
+
}, [ketcherId]);
|
|
15936
15941
|
var onCustomAction = React.useCallback(function (name) {
|
|
15937
15942
|
return ketcher.sendCustomAction(name);
|
|
15938
15943
|
}, [ketcher]);
|
|
@@ -16234,8 +16239,8 @@ var selectAbbreviationLookupValue = function selectAbbreviationLookupValue(state
|
|
|
16234
16239
|
return (_state$abbreviationLo = state.abbreviationLookup.lookupValue) !== null && _state$abbreviationLo !== void 0 ? _state$abbreviationLo : '';
|
|
16235
16240
|
};
|
|
16236
16241
|
|
|
16237
|
-
function ownKeys
|
|
16238
|
-
function _objectSpread
|
|
16242
|
+
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; }
|
|
16243
|
+
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__default["default"](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; }
|
|
16239
16244
|
var destinationVectorMapping = {
|
|
16240
16245
|
ArrowUp: new ketcherCore.Vec2(0, -1),
|
|
16241
16246
|
ArrowDown: new ketcherCore.Vec2(0, 1),
|
|
@@ -16260,7 +16265,7 @@ function moveSelectedItems(editor, key, isShiftPressed) {
|
|
|
16260
16265
|
if (isClose) {
|
|
16261
16266
|
var moveStep = isShiftPressed ? getFasterStep(destinationVectorInCanvas) : destinationVectorInCanvas;
|
|
16262
16267
|
editor.render.setViewBox(function (prev) {
|
|
16263
|
-
return _objectSpread
|
|
16268
|
+
return _objectSpread$$(_objectSpread$$({}, prev), {}, {
|
|
16264
16269
|
minX: prev.minX + moveStep.x,
|
|
16265
16270
|
minY: prev.minY + moveStep.y
|
|
16266
16271
|
});
|
|
@@ -17178,8 +17183,8 @@ function filterNotPartOfSuperatomWithoutLabel(itemsToFilter, struct) {
|
|
|
17178
17183
|
function _createForOfIteratorHelper$e(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$e(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
17179
17184
|
function _unsupportedIterableToArray$e(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$e(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$e(o, minLen); }
|
|
17180
17185
|
function _arrayLikeToArray$e(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
17181
|
-
function ownKeys$
|
|
17182
|
-
function _objectSpread$
|
|
17186
|
+
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; }
|
|
17187
|
+
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__default["default"](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; }
|
|
17183
17188
|
var searchMaps = ['atoms', 'bonds', 'sgroups', 'functionalGroups', 'sgroupData'];
|
|
17184
17189
|
var SGroupTool = function () {
|
|
17185
17190
|
function SGroupTool(editor) {
|
|
@@ -17198,7 +17203,7 @@ var SGroupTool = function () {
|
|
|
17198
17203
|
atoms: selection.atoms,
|
|
17199
17204
|
bonds: selection.bonds
|
|
17200
17205
|
}, molecule);
|
|
17201
|
-
selection = _objectSpread$
|
|
17206
|
+
selection = _objectSpread$_(_objectSpread$_({}, selection), {}, {
|
|
17202
17207
|
atoms: filteredAtomsAndBonds.atoms,
|
|
17203
17208
|
bonds: filteredAtomsAndBonds.bonds
|
|
17204
17209
|
});
|
|
@@ -17554,7 +17559,7 @@ var SGroupTool = function () {
|
|
|
17554
17559
|
atoms: selection.atoms,
|
|
17555
17560
|
bonds: selection.bonds
|
|
17556
17561
|
}, molecule);
|
|
17557
|
-
selection = _objectSpread$
|
|
17562
|
+
selection = _objectSpread$_(_objectSpread$_({}, selection), {}, {
|
|
17558
17563
|
atoms: filteredAtomsAndBonds.atoms,
|
|
17559
17564
|
bonds: filteredAtomsAndBonds.bonds
|
|
17560
17565
|
});
|
|
@@ -18254,8 +18259,8 @@ var createCopyOfSelected = function createCopyOfSelected(editor, point) {
|
|
|
18254
18259
|
function _createForOfIteratorHelper$c(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$c(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
18255
18260
|
function _unsupportedIterableToArray$c(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$c(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$c(o, minLen); }
|
|
18256
18261
|
function _arrayLikeToArray$c(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
18257
|
-
function ownKeys$
|
|
18258
|
-
function _objectSpread$
|
|
18262
|
+
function ownKeys$Z(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; }
|
|
18263
|
+
function _objectSpread$Z(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$Z(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$Z(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
18259
18264
|
function _classPrivateFieldInitSpec$1(obj, privateMap, value) { _checkPrivateRedeclaration$1(obj, privateMap); privateMap.set(obj, value); }
|
|
18260
18265
|
function _checkPrivateRedeclaration$1(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
18261
18266
|
var Direction;
|
|
@@ -18303,7 +18308,7 @@ var SelectTool = function () {
|
|
|
18303
18308
|
var molecule = ctab.molecule;
|
|
18304
18309
|
var map = getMapsForClosestItem(_classPrivateFieldGet__default["default"](this, _lassoHelper).fragment || event.altKey);
|
|
18305
18310
|
var ci = this.editor.findItem(event, map, null);
|
|
18306
|
-
var selected = _objectSpread$
|
|
18311
|
+
var selected = _objectSpread$Z(_objectSpread$Z({}, (ci === null || ci === void 0 ? void 0 : ci.map) === 'atoms' && {
|
|
18307
18312
|
atoms: [ci.id]
|
|
18308
18313
|
}), (ci === null || ci === void 0 ? void 0 : ci.map) === 'bonds' && {
|
|
18309
18314
|
bonds: [ci.id]
|
|
@@ -18590,7 +18595,7 @@ var SelectTool = function () {
|
|
|
18590
18595
|
} else if (ci.map === 'texts') {
|
|
18591
18596
|
editor.selection(closestToSel(ci));
|
|
18592
18597
|
var text = molecule.texts.get(ci.id);
|
|
18593
|
-
var dialog = editor.event.elementEdit.dispatch(_objectSpread$
|
|
18598
|
+
var dialog = editor.event.elementEdit.dispatch(_objectSpread$Z(_objectSpread$Z({}, text), {}, {
|
|
18594
18599
|
type: 'text'
|
|
18595
18600
|
}));
|
|
18596
18601
|
dialog.then(function (_ref) {
|
|
@@ -18696,28 +18701,28 @@ var SelectTool = function () {
|
|
|
18696
18701
|
var render = this.editor.render;
|
|
18697
18702
|
if (closeEdges.includes(Direction.RIGHT)) {
|
|
18698
18703
|
render.setViewBox(function (prev) {
|
|
18699
|
-
return _objectSpread$
|
|
18704
|
+
return _objectSpread$Z(_objectSpread$Z({}, prev), {}, {
|
|
18700
18705
|
minX: prev.minX + MOVE_STEP
|
|
18701
18706
|
});
|
|
18702
18707
|
});
|
|
18703
18708
|
}
|
|
18704
18709
|
if (closeEdges.includes(Direction.LEFT)) {
|
|
18705
18710
|
render.setViewBox(function (prev) {
|
|
18706
|
-
return _objectSpread$
|
|
18711
|
+
return _objectSpread$Z(_objectSpread$Z({}, prev), {}, {
|
|
18707
18712
|
minX: prev.minX - MOVE_STEP
|
|
18708
18713
|
});
|
|
18709
18714
|
});
|
|
18710
18715
|
}
|
|
18711
18716
|
if (closeEdges.includes(Direction.DOWN)) {
|
|
18712
18717
|
render.setViewBox(function (prev) {
|
|
18713
|
-
return _objectSpread$
|
|
18718
|
+
return _objectSpread$Z(_objectSpread$Z({}, prev), {}, {
|
|
18714
18719
|
minY: prev.minY + MOVE_STEP
|
|
18715
18720
|
});
|
|
18716
18721
|
});
|
|
18717
18722
|
}
|
|
18718
18723
|
if (closeEdges.includes(Direction.TOP)) {
|
|
18719
18724
|
render.setViewBox(function (prev) {
|
|
18720
|
-
return _objectSpread$
|
|
18725
|
+
return _objectSpread$Z(_objectSpread$Z({}, prev), {}, {
|
|
18721
18726
|
minY: prev.minY - MOVE_STEP
|
|
18722
18727
|
});
|
|
18723
18728
|
});
|
|
@@ -18927,8 +18932,8 @@ var TemplatePreview = function () {
|
|
|
18927
18932
|
function _createForOfIteratorHelper$b(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$b(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
18928
18933
|
function _unsupportedIterableToArray$b(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$b(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$b(o, minLen); }
|
|
18929
18934
|
function _arrayLikeToArray$b(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
18930
|
-
function ownKeys$
|
|
18931
|
-
function _objectSpread$
|
|
18935
|
+
function ownKeys$Y(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; }
|
|
18936
|
+
function _objectSpread$Y(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$Y(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$Y(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
18932
18937
|
function getBondFlipSign(struct, bond) {
|
|
18933
18938
|
var _struct$atoms$get, _struct$halfBonds$get;
|
|
18934
18939
|
var xy0 = new ketcherCore.Vec2();
|
|
@@ -19091,7 +19096,7 @@ var TemplateTool = function () {
|
|
|
19091
19096
|
this.event = event;
|
|
19092
19097
|
(_this$templatePreview = this.templatePreview) === null || _this$templatePreview === void 0 || _this$templatePreview.hidePreview();
|
|
19093
19098
|
if (this.functionalGroups.size) {
|
|
19094
|
-
this.targetGroupsIds = getGroupIdsFromItemArrays(this.struct, _objectSpread$
|
|
19099
|
+
this.targetGroupsIds = getGroupIdsFromItemArrays(this.struct, _objectSpread$Y(_objectSpread$Y({}, ((_this$closestItem2 = this.closestItem) === null || _this$closestItem2 === void 0 ? void 0 : _this$closestItem2.map) === 'atoms' && {
|
|
19095
19100
|
atoms: [this.closestItem.id]
|
|
19096
19101
|
}), ((_this$closestItem3 = this.closestItem) === null || _this$closestItem3 === void 0 ? void 0 : _this$closestItem3.map) === 'bonds' && {
|
|
19097
19102
|
bonds: [this.closestItem.id]
|
|
@@ -19440,8 +19445,8 @@ function getTargetAtomId(struct, ci) {
|
|
|
19440
19445
|
}
|
|
19441
19446
|
}
|
|
19442
19447
|
|
|
19443
|
-
function ownKeys$
|
|
19444
|
-
function _objectSpread$
|
|
19448
|
+
function ownKeys$X(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; }
|
|
19449
|
+
function _objectSpread$X(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$X(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$X(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
19445
19450
|
function handleHotkeyOverItem(props) {
|
|
19446
19451
|
if (props.newAction.tool === 'eraser') {
|
|
19447
19452
|
handleEraser(props);
|
|
@@ -19665,7 +19670,7 @@ function handleAtomTool(_ref10) {
|
|
|
19665
19670
|
var hoveredItemId = _ref10.hoveredItemId,
|
|
19666
19671
|
newAction = _ref10.newAction,
|
|
19667
19672
|
editor = _ref10.editor;
|
|
19668
|
-
var atomProps = _objectSpread$
|
|
19673
|
+
var atomProps = _objectSpread$X({}, newAction.opts);
|
|
19669
19674
|
var updatedAtoms = ketcherCore.fromAtomsAttrs(editor.render.ctab, hoveredItemId, atomProps, true);
|
|
19670
19675
|
editor.update(updatedAtoms);
|
|
19671
19676
|
}
|
|
@@ -19673,7 +19678,7 @@ function handleSgroupsTool(_ref11) {
|
|
|
19673
19678
|
var hoveredItemId = _ref11.hoveredItemId,
|
|
19674
19679
|
newAction = _ref11.newAction,
|
|
19675
19680
|
editor = _ref11.editor;
|
|
19676
|
-
var atomProps = _objectSpread$
|
|
19681
|
+
var atomProps = _objectSpread$X({}, newAction.opts);
|
|
19677
19682
|
var action = new ketcherCore.Action();
|
|
19678
19683
|
var ctab = editor.render.ctab;
|
|
19679
19684
|
var sGroup = ctab.molecule.sgroups.get(hoveredItemId);
|
|
@@ -19950,7 +19955,7 @@ function checkGroupOnTool(group, actionTool) {
|
|
|
19950
19955
|
return index;
|
|
19951
19956
|
}
|
|
19952
19957
|
var rxnTextPlain = /\$RXN\n+\s+0\s+0\s+0\n*/;
|
|
19953
|
-
function initClipboard(dispatch) {
|
|
19958
|
+
function initClipboard(dispatch, getState) {
|
|
19954
19959
|
var formats = Object.keys(ketcherCore.formatProperties).map(function (format) {
|
|
19955
19960
|
return ketcherCore.formatProperties[format].mime;
|
|
19956
19961
|
});
|
|
@@ -19963,11 +19968,11 @@ function initClipboard(dispatch) {
|
|
|
19963
19968
|
return {
|
|
19964
19969
|
formats: formats,
|
|
19965
19970
|
focused: function focused() {
|
|
19966
|
-
var state =
|
|
19971
|
+
var state = getState();
|
|
19967
19972
|
return !state.modal;
|
|
19968
19973
|
},
|
|
19969
19974
|
onLegacyCut: function onLegacyCut() {
|
|
19970
|
-
var state =
|
|
19975
|
+
var state = getState();
|
|
19971
19976
|
var editor = state.editor;
|
|
19972
19977
|
var data = legacyClipData(editor);
|
|
19973
19978
|
if (data) debAction({
|
|
@@ -19978,38 +19983,38 @@ function initClipboard(dispatch) {
|
|
|
19978
19983
|
},
|
|
19979
19984
|
onCut: function onCut() {
|
|
19980
19985
|
return _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee2() {
|
|
19981
|
-
var ketcherInstance, result;
|
|
19986
|
+
var state, ketcherInstance, result;
|
|
19982
19987
|
return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
|
|
19983
19988
|
while (1) switch (_context2.prev = _context2.next) {
|
|
19984
19989
|
case 0:
|
|
19985
|
-
|
|
19986
|
-
|
|
19990
|
+
state = getState();
|
|
19991
|
+
ketcherInstance = ketcherCore.ketcherProvider.getKetcher(state.editor.ketcherId);
|
|
19992
|
+
_context2.next = 4;
|
|
19987
19993
|
return ketcherCore.runAsyncAction( _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee() {
|
|
19988
|
-
var
|
|
19994
|
+
var editor, data;
|
|
19989
19995
|
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
|
|
19990
19996
|
while (1) switch (_context.prev = _context.next) {
|
|
19991
19997
|
case 0:
|
|
19992
|
-
|
|
19993
|
-
|
|
19994
|
-
_context.next = 4;
|
|
19998
|
+
editor = getState().editor;
|
|
19999
|
+
_context.next = 3;
|
|
19995
20000
|
return clipData(editor);
|
|
19996
|
-
case
|
|
20001
|
+
case 3:
|
|
19997
20002
|
data = _context.sent;
|
|
19998
20003
|
if (data) debAction({
|
|
19999
20004
|
tool: 'eraser',
|
|
20000
20005
|
opts: 1
|
|
20001
20006
|
});else editor.selection(null);
|
|
20002
20007
|
return _context.abrupt("return", data);
|
|
20003
|
-
case
|
|
20008
|
+
case 6:
|
|
20004
20009
|
case "end":
|
|
20005
20010
|
return _context.stop();
|
|
20006
20011
|
}
|
|
20007
20012
|
}, _callee);
|
|
20008
20013
|
})), ketcherInstance.eventBus);
|
|
20009
|
-
case
|
|
20014
|
+
case 4:
|
|
20010
20015
|
result = _context2.sent;
|
|
20011
20016
|
return _context2.abrupt("return", result);
|
|
20012
|
-
case
|
|
20017
|
+
case 6:
|
|
20013
20018
|
case "end":
|
|
20014
20019
|
return _context2.stop();
|
|
20015
20020
|
}
|
|
@@ -20018,35 +20023,35 @@ function initClipboard(dispatch) {
|
|
|
20018
20023
|
},
|
|
20019
20024
|
onCopy: function onCopy() {
|
|
20020
20025
|
return _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee4() {
|
|
20021
|
-
var ketcherInstance, result;
|
|
20026
|
+
var state, ketcherInstance, result;
|
|
20022
20027
|
return _regeneratorRuntime__default["default"].wrap(function _callee4$(_context4) {
|
|
20023
20028
|
while (1) switch (_context4.prev = _context4.next) {
|
|
20024
20029
|
case 0:
|
|
20025
|
-
|
|
20026
|
-
|
|
20030
|
+
state = getState();
|
|
20031
|
+
ketcherInstance = ketcherCore.ketcherProvider.getKetcher(state.editor.ketcherId);
|
|
20032
|
+
_context4.next = 4;
|
|
20027
20033
|
return ketcherCore.runAsyncAction( _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee3() {
|
|
20028
|
-
var
|
|
20034
|
+
var editor, data;
|
|
20029
20035
|
return _regeneratorRuntime__default["default"].wrap(function _callee3$(_context3) {
|
|
20030
20036
|
while (1) switch (_context3.prev = _context3.next) {
|
|
20031
20037
|
case 0:
|
|
20032
|
-
|
|
20033
|
-
|
|
20034
|
-
_context3.next = 4;
|
|
20038
|
+
editor = getState().editor;
|
|
20039
|
+
_context3.next = 3;
|
|
20035
20040
|
return clipData(editor);
|
|
20036
|
-
case
|
|
20041
|
+
case 3:
|
|
20037
20042
|
data = _context3.sent;
|
|
20038
20043
|
editor.selection(null);
|
|
20039
20044
|
return _context3.abrupt("return", data);
|
|
20040
|
-
case
|
|
20045
|
+
case 6:
|
|
20041
20046
|
case "end":
|
|
20042
20047
|
return _context3.stop();
|
|
20043
20048
|
}
|
|
20044
20049
|
}, _callee3);
|
|
20045
20050
|
})), ketcherInstance.eventBus);
|
|
20046
|
-
case
|
|
20051
|
+
case 4:
|
|
20047
20052
|
result = _context4.sent;
|
|
20048
20053
|
return _context4.abrupt("return", result);
|
|
20049
|
-
case
|
|
20054
|
+
case 6:
|
|
20050
20055
|
case "end":
|
|
20051
20056
|
return _context4.stop();
|
|
20052
20057
|
}
|
|
@@ -20055,12 +20060,13 @@ function initClipboard(dispatch) {
|
|
|
20055
20060
|
},
|
|
20056
20061
|
onPaste: function onPaste(data, isSmarts) {
|
|
20057
20062
|
return _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee6() {
|
|
20058
|
-
var ketcherInstance, result;
|
|
20063
|
+
var state, ketcherInstance, result;
|
|
20059
20064
|
return _regeneratorRuntime__default["default"].wrap(function _callee6$(_context6) {
|
|
20060
20065
|
while (1) switch (_context6.prev = _context6.next) {
|
|
20061
20066
|
case 0:
|
|
20062
|
-
|
|
20063
|
-
|
|
20067
|
+
state = getState();
|
|
20068
|
+
ketcherInstance = ketcherCore.ketcherProvider.getKetcher(state.editor.ketcherId);
|
|
20069
|
+
_context6.next = 4;
|
|
20064
20070
|
return ketcherCore.runAsyncAction( _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee5() {
|
|
20065
20071
|
var structStr;
|
|
20066
20072
|
return _regeneratorRuntime__default["default"].wrap(function _callee5$(_context5) {
|
|
@@ -20090,10 +20096,10 @@ function initClipboard(dispatch) {
|
|
|
20090
20096
|
}
|
|
20091
20097
|
}, _callee5);
|
|
20092
20098
|
})), ketcherInstance.eventBus);
|
|
20093
|
-
case
|
|
20099
|
+
case 4:
|
|
20094
20100
|
result = _context6.sent;
|
|
20095
20101
|
return _context6.abrupt("return", result);
|
|
20096
|
-
case
|
|
20102
|
+
case 6:
|
|
20097
20103
|
case "end":
|
|
20098
20104
|
return _context6.stop();
|
|
20099
20105
|
}
|
|
@@ -20153,9 +20159,9 @@ function _clipData() {
|
|
|
20153
20159
|
_context7.prev = 5;
|
|
20154
20160
|
serializer = new ketcherCore.KetSerializer();
|
|
20155
20161
|
ket = serializer.serialize(struct);
|
|
20156
|
-
ketcherInstance = ketcherCore.ketcherProvider.getKetcher();
|
|
20162
|
+
ketcherInstance = ketcherCore.ketcherProvider.getKetcher(editor.ketcherId);
|
|
20157
20163
|
_context7.next = 11;
|
|
20158
|
-
return ketcherCore.getStructure(ketcherCore.SupportedFormat.molAuto, ketcherInstance.formatterFactory, struct);
|
|
20164
|
+
return ketcherCore.getStructure(editor.ketcherId, ketcherCore.SupportedFormat.molAuto, ketcherInstance.formatterFactory, struct);
|
|
20159
20165
|
case 11:
|
|
20160
20166
|
data = _context7.sent;
|
|
20161
20167
|
res[ketcherCore.ChemicalMimeType.KET] = ket;
|
|
@@ -20255,8 +20261,8 @@ var LoadingCircles = function LoadingCircles() {
|
|
|
20255
20261
|
});
|
|
20256
20262
|
};
|
|
20257
20263
|
|
|
20258
|
-
function ownKeys$
|
|
20259
|
-
function _objectSpread$
|
|
20264
|
+
function ownKeys$W(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; }
|
|
20265
|
+
function _objectSpread$W(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$W(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$W(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
20260
20266
|
function _createForOfIteratorHelper$a(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$a(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
20261
20267
|
function _unsupportedIterableToArray$a(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$a(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$a(o, minLen); }
|
|
20262
20268
|
function _arrayLikeToArray$a(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
@@ -20648,7 +20654,7 @@ function findClosestItem(restruct, pos, maps, skip, options) {
|
|
|
20648
20654
|
var minDist = res ? res.dist : null;
|
|
20649
20655
|
var item = findMaps[mp](restruct, pos, skip, minDist, options);
|
|
20650
20656
|
if (item !== null) {
|
|
20651
|
-
var enrichedItem = _objectSpread$
|
|
20657
|
+
var enrichedItem = _objectSpread$W({
|
|
20652
20658
|
map: mp
|
|
20653
20659
|
}, item);
|
|
20654
20660
|
if (mp === 'sgroupData') {
|
|
@@ -22015,8 +22021,8 @@ var EraserTool = function () {
|
|
|
22015
22021
|
return EraserTool;
|
|
22016
22022
|
}();
|
|
22017
22023
|
|
|
22018
|
-
function ownKeys$
|
|
22019
|
-
function _objectSpread$
|
|
22024
|
+
function ownKeys$V(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; }
|
|
22025
|
+
function _objectSpread$V(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$V(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$V(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
22020
22026
|
var HandTool = function () {
|
|
22021
22027
|
function HandTool(editor) {
|
|
22022
22028
|
_classCallCheck__default["default"](this, HandTool);
|
|
@@ -22061,7 +22067,7 @@ var HandTool = function () {
|
|
|
22061
22067
|
var diff = ketcherCore.Vec2.diff(this.endPos, this.begPos).scaled(1 / rnd.options.zoom);
|
|
22062
22068
|
this.begPos = this.endPos;
|
|
22063
22069
|
rnd.setViewBox(function (prev) {
|
|
22064
|
-
return _objectSpread$
|
|
22070
|
+
return _objectSpread$V(_objectSpread$V({}, prev), {}, {
|
|
22065
22071
|
minX: prev.minX - diff.x,
|
|
22066
22072
|
minY: prev.minY - diff.y
|
|
22067
22073
|
});
|
|
@@ -22104,8 +22110,8 @@ var HandTool = function () {
|
|
|
22104
22110
|
return HandTool;
|
|
22105
22111
|
}();
|
|
22106
22112
|
|
|
22107
|
-
function ownKeys$
|
|
22108
|
-
function _objectSpread$
|
|
22113
|
+
function ownKeys$U(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; }
|
|
22114
|
+
function _objectSpread$U(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$U(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$U(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
22109
22115
|
var isMovePreviewCalculationInProgress = false;
|
|
22110
22116
|
var debouncedSetAndHoverMergeItems = _.debounce(function (editor, pasteItems, pasteToolInstance) {
|
|
22111
22117
|
var needResetTool = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
@@ -22238,7 +22244,7 @@ var PasteTool = function () {
|
|
|
22238
22244
|
}, {
|
|
22239
22245
|
key: "mouseup",
|
|
22240
22246
|
value: function mouseup() {
|
|
22241
|
-
var idsOfItemsMerged = this.mergeItems && _objectSpread$
|
|
22247
|
+
var idsOfItemsMerged = this.mergeItems && _objectSpread$U(_objectSpread$U({}, this.mergeItems.atoms && {
|
|
22242
22248
|
atoms: Array.from(this.mergeItems.atoms.values())
|
|
22243
22249
|
}), this.mergeItems.bonds && {
|
|
22244
22250
|
bonds: Array.from(this.mergeItems.bonds.values())
|
|
@@ -22265,6 +22271,7 @@ var PasteTool = function () {
|
|
|
22265
22271
|
if (!this.isSingleContractedGroup || !this.mergeItems) {
|
|
22266
22272
|
dropAndMerge(this.editor, this.mergeItems, action);
|
|
22267
22273
|
}
|
|
22274
|
+
this.editor.tool('select');
|
|
22268
22275
|
}
|
|
22269
22276
|
}
|
|
22270
22277
|
}, {
|
|
@@ -22535,8 +22542,8 @@ var RGroupFragmentTool = function () {
|
|
|
22535
22542
|
return RGroupFragmentTool;
|
|
22536
22543
|
}();
|
|
22537
22544
|
|
|
22538
|
-
function ownKeys$
|
|
22539
|
-
function _objectSpread$
|
|
22545
|
+
function ownKeys$T(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; }
|
|
22546
|
+
function _objectSpread$T(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$T(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$T(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
22540
22547
|
var ReactionArrowAddTool = function () {
|
|
22541
22548
|
function ReactionArrowAddTool(editor, mode) {
|
|
22542
22549
|
_classCallCheck__default["default"](this, ReactionArrowAddTool);
|
|
@@ -22571,7 +22578,7 @@ var ReactionArrowAddTool = function () {
|
|
|
22571
22578
|
var diff = current.sub(this.dragCtx.p0);
|
|
22572
22579
|
if (!this.dragCtx.action) {
|
|
22573
22580
|
var action = ketcherCore.fromArrowAddition(this.reStruct, [this.dragCtx.p0, this.dragCtx.p0], this.mode);
|
|
22574
|
-
this.dragCtx = _objectSpread$
|
|
22581
|
+
this.dragCtx = _objectSpread$T(_objectSpread$T({}, this.dragCtx), {}, {
|
|
22575
22582
|
itemId: action.operations[0].data.id,
|
|
22576
22583
|
action: action
|
|
22577
22584
|
});
|
|
@@ -22615,7 +22622,7 @@ var ReactionArrowAddTool = function () {
|
|
|
22615
22622
|
p1 = _item$pos[1];
|
|
22616
22623
|
p1 = this.getArrowWithMinimalLengthEnd(p0, p1);
|
|
22617
22624
|
this.editor.update(ketcherCore.fromArrowDeletion(this.reStruct, dragContext.itemId), true);
|
|
22618
|
-
return _objectSpread$
|
|
22625
|
+
return _objectSpread$T(_objectSpread$T({}, dragContext), {}, {
|
|
22619
22626
|
action: ketcherCore.fromArrowAddition(this.reStruct, [p0, p1], this.mode)
|
|
22620
22627
|
});
|
|
22621
22628
|
}
|
|
@@ -22994,8 +23001,8 @@ function normalizeAngle(angle) {
|
|
|
22994
23001
|
return angleWithinFullCircle;
|
|
22995
23002
|
}
|
|
22996
23003
|
|
|
22997
|
-
function ownKeys$
|
|
22998
|
-
function _objectSpread$
|
|
23004
|
+
function ownKeys$S(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; }
|
|
23005
|
+
function _objectSpread$S(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$S(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$S(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
22999
23006
|
var SNAP_ANGLES_RELATIVE_TO_FIXED_BOND = [Math.PI / 2, -Math.PI / 2, 2 * Math.PI / 3, -(2 * Math.PI) / 3, Math.PI];
|
|
23000
23007
|
var MAX_SNAP_DELTA = Math.PI / 18;
|
|
23001
23008
|
var ANGLE_INDICATOR_VISIBLE_DELTA = Math.PI / 9;
|
|
@@ -23072,7 +23079,7 @@ var RotateTool = function () {
|
|
|
23072
23079
|
get: function get() {
|
|
23073
23080
|
var _this$snapInfo;
|
|
23074
23081
|
if ((_this$snapInfo = this.snapInfo) !== null && _this$snapInfo !== void 0 && _this$snapInfo.snapAngleDrawingProps) {
|
|
23075
|
-
return _objectSpread$
|
|
23082
|
+
return _objectSpread$S({
|
|
23076
23083
|
snapMode: this.snapInfo.snapMode
|
|
23077
23084
|
}, this.snapInfo.snapAngleDrawingProps);
|
|
23078
23085
|
}
|
|
@@ -24610,8 +24617,8 @@ var RotateController = function () {
|
|
|
24610
24617
|
return RotateController;
|
|
24611
24618
|
}();
|
|
24612
24619
|
|
|
24613
|
-
function ownKeys$
|
|
24614
|
-
function _objectSpread$
|
|
24620
|
+
function ownKeys$R(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; }
|
|
24621
|
+
function _objectSpread$R(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$R(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$R(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
24615
24622
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
|
24616
24623
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
24617
24624
|
var SCALE = ketcherCore.provideEditorSettings().microModeScale;
|
|
@@ -24643,7 +24650,7 @@ function selectStereoFlagsIfNecessary(atoms, explicitlySelectedAtoms) {
|
|
|
24643
24650
|
}
|
|
24644
24651
|
var _origin = new WeakMap();
|
|
24645
24652
|
var Editor$3 = function () {
|
|
24646
|
-
function Editor(clientArea, options, serverSettings) {
|
|
24653
|
+
function Editor(ketcherId, clientArea, options, serverSettings, prevEditor) {
|
|
24647
24654
|
_classCallCheck__default["default"](this, Editor);
|
|
24648
24655
|
_classPrivateFieldInitSpec(this, _origin, {
|
|
24649
24656
|
writable: true,
|
|
@@ -24652,7 +24659,8 @@ var Editor$3 = function () {
|
|
|
24652
24659
|
_defineProperty__default["default"](this, "serverSettings", {});
|
|
24653
24660
|
this.render = new ketcherCore.Render(clientArea, Object.assign({
|
|
24654
24661
|
microModeScale: SCALE
|
|
24655
|
-
}, options), options.reuseRestructIfExist !== false);
|
|
24662
|
+
}, options), prevEditor === null || prevEditor === void 0 ? void 0 : prevEditor.render, options.reuseRestructIfExist !== false);
|
|
24663
|
+
this.ketcherId = ketcherId;
|
|
24656
24664
|
this._selection = null;
|
|
24657
24665
|
this._tool = null;
|
|
24658
24666
|
this.historyStack = [];
|
|
@@ -24795,7 +24803,7 @@ var Editor$3 = function () {
|
|
|
24795
24803
|
key: "setOptions",
|
|
24796
24804
|
value: function setOptions(opts) {
|
|
24797
24805
|
var options = JSON.parse(opts);
|
|
24798
|
-
this.event.apiSettings.dispatch(_objectSpread$
|
|
24806
|
+
this.event.apiSettings.dispatch(_objectSpread$R({}, options));
|
|
24799
24807
|
var wasViewOnlyEnabled = !!this.render.options.viewOnlyMode;
|
|
24800
24808
|
var result = this.render.updateOptions(opts);
|
|
24801
24809
|
this.updateToolAfterOptionsChange(wasViewOnlyEnabled);
|
|
@@ -24833,7 +24841,7 @@ var Editor$3 = function () {
|
|
|
24833
24841
|
if (!wasViewOnlyEnabled && isViewOnlyEnabled === true || wasViewOnlyEnabled && isViewOnlyEnabled === false) {
|
|
24834
24842
|
this.tool('select');
|
|
24835
24843
|
this.event.change.dispatch('force');
|
|
24836
|
-
ketcherCore.ketcherProvider.getKetcher().changeEvent.dispatch('force');
|
|
24844
|
+
ketcherCore.ketcherProvider.getKetcher(this.ketcherId).changeEvent.dispatch('force');
|
|
24837
24845
|
}
|
|
24838
24846
|
}
|
|
24839
24847
|
}, {
|
|
@@ -24867,7 +24875,7 @@ var Editor$3 = function () {
|
|
|
24867
24875
|
var structBbox = struct.getCoordBoundingBox();
|
|
24868
24876
|
var newScrollCoordinates = ketcherCore.Coordinates.modelToCanvas(isFitMinZoom ? new ketcherCore.Vec2(structBbox.min.x + (structBbox.max.x - structBbox.min.x) / 2, structBbox.min.y + (structBbox.max.y - structBbox.min.y) / 2) : new ketcherCore.Vec2(structBbox.min.x, structBbox.min.y)).sub(new ketcherCore.Vec2(this.render.viewBox.width / 2, this.render.viewBox.height / 2));
|
|
24869
24877
|
this.render.setViewBox(function (viewBox) {
|
|
24870
|
-
return _objectSpread$
|
|
24878
|
+
return _objectSpread$R(_objectSpread$R({}, viewBox), {}, {
|
|
24871
24879
|
minX: newScrollCoordinates.x,
|
|
24872
24880
|
minY: newScrollCoordinates.y
|
|
24873
24881
|
});
|
|
@@ -24990,7 +24998,7 @@ var Editor$3 = function () {
|
|
|
24990
24998
|
}
|
|
24991
24999
|
this.historyPtr = this.historyStack.length;
|
|
24992
25000
|
this.event.change.dispatch(action);
|
|
24993
|
-
ketcherCore.ketcherProvider.getKetcher().changeEvent.dispatch(action);
|
|
25001
|
+
ketcherCore.ketcherProvider.getKetcher(this.ketcherId).changeEvent.dispatch(action);
|
|
24994
25002
|
}
|
|
24995
25003
|
this.render.update(false, null);
|
|
24996
25004
|
}
|
|
@@ -25007,7 +25015,7 @@ var Editor$3 = function () {
|
|
|
25007
25015
|
key: "undo",
|
|
25008
25016
|
value: function undo() {
|
|
25009
25017
|
ketcherCore.KetcherLogger.log('Editor.undo(), start, ', this.historyPtr, this.historyStack);
|
|
25010
|
-
var ketcherChangeEvent = ketcherCore.ketcherProvider.getKetcher().changeEvent;
|
|
25018
|
+
var ketcherChangeEvent = ketcherCore.ketcherProvider.getKetcher(this.ketcherId).changeEvent;
|
|
25011
25019
|
if (this.historyPtr === 0) {
|
|
25012
25020
|
throw new Error('Undo stack is empty');
|
|
25013
25021
|
}
|
|
@@ -25033,7 +25041,7 @@ var Editor$3 = function () {
|
|
|
25033
25041
|
key: "redo",
|
|
25034
25042
|
value: function redo() {
|
|
25035
25043
|
ketcherCore.KetcherLogger.log('Editor.redo(), start, ', this.historyPtr, this.historyStack);
|
|
25036
|
-
var ketcherChangeEvent = ketcherCore.ketcherProvider.getKetcher().changeEvent;
|
|
25044
|
+
var ketcherChangeEvent = ketcherCore.ketcherProvider.getKetcher(this.ketcherId).changeEvent;
|
|
25037
25045
|
if (this.historyPtr === this.historyStack.length) {
|
|
25038
25046
|
throw new Error('Redo stack is empty');
|
|
25039
25047
|
}
|
|
@@ -25078,7 +25086,7 @@ var Editor$3 = function () {
|
|
|
25078
25086
|
return customOnChangeHandler(action, handler);
|
|
25079
25087
|
};
|
|
25080
25088
|
subscriber.handler = subscribeFuncWrapper;
|
|
25081
|
-
ketcherCore.ketcherProvider.getKetcher().changeEvent.add(subscribeFuncWrapper);
|
|
25089
|
+
ketcherCore.ketcherProvider.getKetcher(this.ketcherId).changeEvent.add(subscribeFuncWrapper);
|
|
25082
25090
|
break;
|
|
25083
25091
|
}
|
|
25084
25092
|
default:
|
|
@@ -25337,7 +25345,7 @@ var ContextMenuTriggerType;
|
|
|
25337
25345
|
|
|
25338
25346
|
var useAtomEdit = function useAtomEdit() {
|
|
25339
25347
|
var _useAppContext = useAppContext(),
|
|
25340
|
-
|
|
25348
|
+
ketcherId = _useAppContext.ketcherId;
|
|
25341
25349
|
var handler = React.useCallback( function () {
|
|
25342
25350
|
var _ref2 = _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee(_ref) {
|
|
25343
25351
|
var props, editor, molecule, atomIds, atoms, newAtom;
|
|
@@ -25345,7 +25353,7 @@ var useAtomEdit = function useAtomEdit() {
|
|
|
25345
25353
|
while (1) switch (_context.prev = _context.next) {
|
|
25346
25354
|
case 0:
|
|
25347
25355
|
props = _ref.props;
|
|
25348
|
-
editor =
|
|
25356
|
+
editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
25349
25357
|
molecule = editor.render.ctab;
|
|
25350
25358
|
atomIds = (props === null || props === void 0 ? void 0 : props.atomIds) || [];
|
|
25351
25359
|
atoms = mapAtomIdsToAtoms(atomIds, molecule);
|
|
@@ -25364,7 +25372,7 @@ var useAtomEdit = function useAtomEdit() {
|
|
|
25364
25372
|
return function (_x) {
|
|
25365
25373
|
return _ref2.apply(this, arguments);
|
|
25366
25374
|
};
|
|
25367
|
-
}(), [
|
|
25375
|
+
}(), [ketcherId]);
|
|
25368
25376
|
var disabled = React.useCallback(function (_ref3) {
|
|
25369
25377
|
var props = _ref3.props;
|
|
25370
25378
|
var atomIds = props === null || props === void 0 ? void 0 : props.atomIds;
|
|
@@ -25400,7 +25408,7 @@ function onlyHasProperty(checkedObject, key) {
|
|
|
25400
25408
|
|
|
25401
25409
|
var useAtomStereo = function useAtomStereo() {
|
|
25402
25410
|
var _useAppContext = useAppContext(),
|
|
25403
|
-
|
|
25411
|
+
ketcherId = _useAppContext.ketcherId;
|
|
25404
25412
|
var stereoAtomIdsRef = React.useRef();
|
|
25405
25413
|
var handler = React.useCallback( function () {
|
|
25406
25414
|
var _ref2 = _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee(_ref) {
|
|
@@ -25415,7 +25423,7 @@ var useAtomStereo = function useAtomStereo() {
|
|
|
25415
25423
|
}
|
|
25416
25424
|
return _context.abrupt("return");
|
|
25417
25425
|
case 3:
|
|
25418
|
-
editor =
|
|
25426
|
+
editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
25419
25427
|
_context.prev = 4;
|
|
25420
25428
|
_context.next = 7;
|
|
25421
25429
|
return EnhancedStereoTool.changeAtomsStereoAction(editor, stereoAtomIdsRef.current);
|
|
@@ -25437,23 +25445,23 @@ var useAtomStereo = function useAtomStereo() {
|
|
|
25437
25445
|
return function (_x) {
|
|
25438
25446
|
return _ref2.apply(this, arguments);
|
|
25439
25447
|
};
|
|
25440
|
-
}(), [
|
|
25448
|
+
}(), [ketcherId]);
|
|
25441
25449
|
var disabled = React.useCallback(function (_ref3) {
|
|
25442
25450
|
var props = _ref3.props;
|
|
25443
|
-
var editor =
|
|
25451
|
+
var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
25444
25452
|
var stereoAtomIds = ketcherCore.findStereoAtoms(editor.struct(), props === null || props === void 0 ? void 0 : props.atomIds);
|
|
25445
25453
|
stereoAtomIdsRef.current = stereoAtomIds;
|
|
25446
25454
|
if (Array.isArray(stereoAtomIds) && stereoAtomIds.length !== 0) {
|
|
25447
25455
|
return false;
|
|
25448
25456
|
}
|
|
25449
25457
|
return true;
|
|
25450
|
-
}, [
|
|
25458
|
+
}, [ketcherId]);
|
|
25451
25459
|
return [handler, disabled];
|
|
25452
25460
|
};
|
|
25453
25461
|
|
|
25454
25462
|
var useDelete$1 = function useDelete() {
|
|
25455
25463
|
var _useAppContext = useAppContext(),
|
|
25456
|
-
|
|
25464
|
+
ketcherId = _useAppContext.ketcherId;
|
|
25457
25465
|
var handler = React.useCallback( function () {
|
|
25458
25466
|
var _ref2 = _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee(_ref) {
|
|
25459
25467
|
var props, editor, molecule, itemsToDelete, action;
|
|
@@ -25461,7 +25469,7 @@ var useDelete$1 = function useDelete() {
|
|
|
25461
25469
|
while (1) switch (_context.prev = _context.next) {
|
|
25462
25470
|
case 0:
|
|
25463
25471
|
props = _ref.props;
|
|
25464
|
-
editor =
|
|
25472
|
+
editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
25465
25473
|
molecule = editor.render.ctab;
|
|
25466
25474
|
itemsToDelete = editor.selection() || {
|
|
25467
25475
|
bonds: props === null || props === void 0 ? void 0 : props.bondIds,
|
|
@@ -25480,7 +25488,7 @@ var useDelete$1 = function useDelete() {
|
|
|
25480
25488
|
return function (_x) {
|
|
25481
25489
|
return _ref2.apply(this, arguments);
|
|
25482
25490
|
};
|
|
25483
|
-
}(), [
|
|
25491
|
+
}(), [ketcherId]);
|
|
25484
25492
|
return handler;
|
|
25485
25493
|
};
|
|
25486
25494
|
|
|
@@ -25529,7 +25537,7 @@ function ButtonGroup(_ref) {
|
|
|
25529
25537
|
|
|
25530
25538
|
var useAddAttachmentPoint = function useAddAttachmentPoint() {
|
|
25531
25539
|
var _useAppContext = useAppContext(),
|
|
25532
|
-
|
|
25540
|
+
ketcherId = _useAppContext.ketcherId;
|
|
25533
25541
|
var handler = React.useCallback( function () {
|
|
25534
25542
|
var _ref2 = _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee(_ref) {
|
|
25535
25543
|
var _props$atomIds;
|
|
@@ -25538,7 +25546,7 @@ var useAddAttachmentPoint = function useAddAttachmentPoint() {
|
|
|
25538
25546
|
while (1) switch (_context.prev = _context.next) {
|
|
25539
25547
|
case 0:
|
|
25540
25548
|
props = _ref.props;
|
|
25541
|
-
editor =
|
|
25549
|
+
editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
25542
25550
|
restruct = editor.render.ctab;
|
|
25543
25551
|
struct = editor.struct();
|
|
25544
25552
|
atomId = props === null || props === void 0 || (_props$atomIds = props.atomIds) === null || _props$atomIds === void 0 ? void 0 : _props$atomIds[0];
|
|
@@ -25614,13 +25622,13 @@ var useAddAttachmentPoint = function useAddAttachmentPoint() {
|
|
|
25614
25622
|
return function (_x) {
|
|
25615
25623
|
return _ref2.apply(this, arguments);
|
|
25616
25624
|
};
|
|
25617
|
-
}(), [
|
|
25625
|
+
}(), [ketcherId]);
|
|
25618
25626
|
return [handler];
|
|
25619
25627
|
};
|
|
25620
25628
|
|
|
25621
25629
|
var useRemoveAttachmentPoint = function useRemoveAttachmentPoint() {
|
|
25622
25630
|
var _useAppContext = useAppContext(),
|
|
25623
|
-
|
|
25631
|
+
ketcherId = _useAppContext.ketcherId;
|
|
25624
25632
|
var handler = React.useCallback( function () {
|
|
25625
25633
|
var _ref2 = _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee(_ref) {
|
|
25626
25634
|
var _props$atomIds;
|
|
@@ -25629,7 +25637,7 @@ var useRemoveAttachmentPoint = function useRemoveAttachmentPoint() {
|
|
|
25629
25637
|
while (1) switch (_context.prev = _context.next) {
|
|
25630
25638
|
case 0:
|
|
25631
25639
|
props = _ref.props;
|
|
25632
|
-
editor =
|
|
25640
|
+
editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
25633
25641
|
restruct = editor.render.ctab;
|
|
25634
25642
|
struct = editor.struct();
|
|
25635
25643
|
atomId = props === null || props === void 0 || (_props$atomIds = props.atomIds) === null || _props$atomIds === void 0 ? void 0 : _props$atomIds[0];
|
|
@@ -25661,7 +25669,7 @@ var useRemoveAttachmentPoint = function useRemoveAttachmentPoint() {
|
|
|
25661
25669
|
return function (_x) {
|
|
25662
25670
|
return _ref2.apply(this, arguments);
|
|
25663
25671
|
};
|
|
25664
|
-
}(), [
|
|
25672
|
+
}(), [ketcherId]);
|
|
25665
25673
|
return [handler];
|
|
25666
25674
|
};
|
|
25667
25675
|
|
|
@@ -25738,8 +25746,8 @@ var HighlightMenu = function HighlightMenu(_ref) {
|
|
|
25738
25746
|
function _createForOfIteratorHelper$1(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$1(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
25739
25747
|
function _unsupportedIterableToArray$1(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$1(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); }
|
|
25740
25748
|
function _arrayLikeToArray$1(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
25741
|
-
function ownKeys$
|
|
25742
|
-
function _objectSpread$
|
|
25749
|
+
function ownKeys$Q(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; }
|
|
25750
|
+
function _objectSpread$Q(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$Q(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$Q(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
25743
25751
|
var _atom$properties = atom.properties,
|
|
25744
25752
|
ringBondCount = _atom$properties.ringBondCount,
|
|
25745
25753
|
hCount = _atom$properties.hCount,
|
|
@@ -25822,8 +25830,9 @@ var AtomMenuItems = function AtomMenuItems(props) {
|
|
|
25822
25830
|
stereoDisabled = _useAtomStereo2[1];
|
|
25823
25831
|
var handleDelete = useDelete$1();
|
|
25824
25832
|
var _useAppContext = useAppContext(),
|
|
25825
|
-
|
|
25826
|
-
var
|
|
25833
|
+
ketcherId = _useAppContext.ketcherId;
|
|
25834
|
+
var ketcher = ketcherCore.ketcherProvider.getKetcher(ketcherId);
|
|
25835
|
+
var editor = ketcher.editor;
|
|
25827
25836
|
var struct = editor.struct();
|
|
25828
25837
|
var getPropertyValue = function getPropertyValue(key) {
|
|
25829
25838
|
var _props$propsFromTrigg;
|
|
@@ -25847,7 +25856,7 @@ var AtomMenuItems = function AtomMenuItems(props) {
|
|
|
25847
25856
|
atoms: atomIds,
|
|
25848
25857
|
editor: editor,
|
|
25849
25858
|
changeAtomPromise: Promise.resolve(properties.includes(key) ? {
|
|
25850
|
-
queryProperties: _objectSpread$
|
|
25859
|
+
queryProperties: _objectSpread$Q(_objectSpread$Q({}, getPropertyValue('queryProperties')), {}, _defineProperty__default["default"]({}, key, value))
|
|
25851
25860
|
} : _defineProperty__default["default"]({}, key, value))
|
|
25852
25861
|
});
|
|
25853
25862
|
}
|
|
@@ -25900,21 +25909,21 @@ var AtomMenuItems = function AtomMenuItems(props) {
|
|
|
25900
25909
|
return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
25901
25910
|
children: [jsxRuntime.jsx(HighlightMenu, {
|
|
25902
25911
|
onHighlight: highlightAtomWithColor
|
|
25903
|
-
}), jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
25912
|
+
}), jsxRuntime.jsx(reactContexify.Item, _objectSpread$Q(_objectSpread$Q({}, props), {}, {
|
|
25904
25913
|
onClick: handleDelete,
|
|
25905
25914
|
children: "Delete"
|
|
25906
25915
|
}))]
|
|
25907
25916
|
});
|
|
25908
25917
|
}
|
|
25909
25918
|
return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
25910
|
-
children: [jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
25919
|
+
children: [jsxRuntime.jsx(reactContexify.Item, _objectSpread$Q(_objectSpread$Q({}, props), {}, {
|
|
25911
25920
|
onClick: handleEdit,
|
|
25912
25921
|
children: (_props$propsFromTrigg7 = props.propsFromTrigger) !== null && _props$propsFromTrigg7 !== void 0 && _props$propsFromTrigg7.extraItemsSelected ? 'Edit selected atoms...' : 'Edit...'
|
|
25913
|
-
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
25922
|
+
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$Q(_objectSpread$Q({}, props), {}, {
|
|
25914
25923
|
disabled: stereoDisabled,
|
|
25915
25924
|
onClick: handleStereo,
|
|
25916
25925
|
children: "Enhanced stereochemistry..."
|
|
25917
|
-
})), jsxRuntime.jsx(reactContexify.Submenu, _objectSpread$
|
|
25926
|
+
})), jsxRuntime.jsx(reactContexify.Submenu, _objectSpread$Q(_objectSpread$Q({}, props), {}, {
|
|
25918
25927
|
label: "Query properties",
|
|
25919
25928
|
style: {
|
|
25920
25929
|
overflow: 'visible'
|
|
@@ -25923,7 +25932,7 @@ var AtomMenuItems = function AtomMenuItems(props) {
|
|
|
25923
25932
|
var title = _ref2.title,
|
|
25924
25933
|
buttons = _ref2.buttons,
|
|
25925
25934
|
key = _ref2.key;
|
|
25926
|
-
return React.createElement(reactContexify.Submenu, _objectSpread$
|
|
25935
|
+
return React.createElement(reactContexify.Submenu, _objectSpread$Q(_objectSpread$Q({}, props), {}, {
|
|
25927
25936
|
label: title,
|
|
25928
25937
|
key: key,
|
|
25929
25938
|
className: styles$f.sameGroup
|
|
@@ -25935,16 +25944,16 @@ var AtomMenuItems = function AtomMenuItems(props) {
|
|
|
25935
25944
|
}
|
|
25936
25945
|
}));
|
|
25937
25946
|
})
|
|
25938
|
-
})), onlyOneAtomSelected && !atomInSgroupWithLabel && !maxAttachmentPointsAmount && !isAtomSuperatomLeavingGroup && jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
25947
|
+
})), onlyOneAtomSelected && !atomInSgroupWithLabel && !maxAttachmentPointsAmount && !isAtomSuperatomLeavingGroup && jsxRuntime.jsx(reactContexify.Item, _objectSpread$Q(_objectSpread$Q({}, props), {}, {
|
|
25939
25948
|
onClick: handleAddAttachmentPoint,
|
|
25940
25949
|
disabled: isAddAttachmentPointDisabled,
|
|
25941
25950
|
children: "Add attachment point"
|
|
25942
25951
|
})), jsxRuntime.jsx(HighlightMenu, {
|
|
25943
25952
|
onHighlight: highlightAtomWithColor
|
|
25944
|
-
}), isAtomSuperatomAttachmentPoint && atomFreeAttachmentPoints.length > 0 && jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
25953
|
+
}), isAtomSuperatomAttachmentPoint && atomFreeAttachmentPoints.length > 0 && jsxRuntime.jsx(reactContexify.Item, _objectSpread$Q(_objectSpread$Q({}, props), {}, {
|
|
25945
25954
|
onClick: handleRemoveAttachmentPoint,
|
|
25946
25955
|
children: "Remove attachment point"
|
|
25947
|
-
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
25956
|
+
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$Q(_objectSpread$Q({}, props), {}, {
|
|
25948
25957
|
onClick: handleDelete,
|
|
25949
25958
|
children: "Delete"
|
|
25950
25959
|
}))]
|
|
@@ -25953,7 +25962,7 @@ var AtomMenuItems = function AtomMenuItems(props) {
|
|
|
25953
25962
|
|
|
25954
25963
|
var useBondEdit = function useBondEdit() {
|
|
25955
25964
|
var _useAppContext = useAppContext(),
|
|
25956
|
-
|
|
25965
|
+
ketcherId = _useAppContext.ketcherId;
|
|
25957
25966
|
var handler = React.useCallback( function () {
|
|
25958
25967
|
var _ref2 = _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee(_ref) {
|
|
25959
25968
|
var props, editor, bondIds, molecule, bonds, changeBondPromise;
|
|
@@ -25961,7 +25970,7 @@ var useBondEdit = function useBondEdit() {
|
|
|
25961
25970
|
while (1) switch (_context.prev = _context.next) {
|
|
25962
25971
|
case 0:
|
|
25963
25972
|
props = _ref.props;
|
|
25964
|
-
editor =
|
|
25973
|
+
editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
25965
25974
|
bondIds = (props === null || props === void 0 ? void 0 : props.bondIds) || [];
|
|
25966
25975
|
molecule = editor.render.ctab;
|
|
25967
25976
|
_context.prev = 4;
|
|
@@ -25990,7 +25999,7 @@ var useBondEdit = function useBondEdit() {
|
|
|
25990
25999
|
return function (_x) {
|
|
25991
26000
|
return _ref2.apply(this, arguments);
|
|
25992
26001
|
};
|
|
25993
|
-
}(), [
|
|
26002
|
+
}(), [ketcherId]);
|
|
25994
26003
|
var disabled = React.useCallback(function (_ref3) {
|
|
25995
26004
|
var props = _ref3.props;
|
|
25996
26005
|
var selectedBondIds = props === null || props === void 0 ? void 0 : props.bondIds;
|
|
@@ -26004,10 +26013,10 @@ var useBondEdit = function useBondEdit() {
|
|
|
26004
26013
|
|
|
26005
26014
|
var useBondSGroupAttach = function useBondSGroupAttach() {
|
|
26006
26015
|
var _useAppContext = useAppContext(),
|
|
26007
|
-
|
|
26016
|
+
ketcherId = _useAppContext.ketcherId;
|
|
26008
26017
|
var handler = React.useCallback(function (_ref) {
|
|
26009
26018
|
var props = _ref.props;
|
|
26010
|
-
var editor =
|
|
26019
|
+
var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
26011
26020
|
var struct = editor.render.ctab;
|
|
26012
26021
|
var bondId = props.bondIds[0];
|
|
26013
26022
|
var bond = struct.bonds.get(bondId);
|
|
@@ -26017,11 +26026,11 @@ var useBondSGroupAttach = function useBondSGroupAttach() {
|
|
|
26017
26026
|
};
|
|
26018
26027
|
editor.selection(selection);
|
|
26019
26028
|
SGroupTool.sgroupDialog(editor, null);
|
|
26020
|
-
}, [
|
|
26029
|
+
}, [ketcherId]);
|
|
26021
26030
|
var hidden = React.useCallback(function (_ref2) {
|
|
26022
26031
|
var _struct$sgroups$get;
|
|
26023
26032
|
var props = _ref2.props;
|
|
26024
|
-
var editor =
|
|
26033
|
+
var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
26025
26034
|
var struct = editor.render.ctab;
|
|
26026
26035
|
var bondIds = props.bondIds;
|
|
26027
26036
|
if (bondIds.length > 1) {
|
|
@@ -26036,22 +26045,22 @@ var useBondSGroupAttach = function useBondSGroupAttach() {
|
|
|
26036
26045
|
return false;
|
|
26037
26046
|
}
|
|
26038
26047
|
return attachedSGroups.size > 0;
|
|
26039
|
-
}, [
|
|
26048
|
+
}, [ketcherId]);
|
|
26040
26049
|
return [handler, hidden];
|
|
26041
26050
|
};
|
|
26042
26051
|
|
|
26043
26052
|
var useBondSGroupEdit = function useBondSGroupEdit() {
|
|
26044
26053
|
var _useAppContext = useAppContext(),
|
|
26045
|
-
|
|
26054
|
+
ketcherId = _useAppContext.ketcherId;
|
|
26046
26055
|
var sGroupsRef = React.useRef(new ketcherCore.Pile());
|
|
26047
26056
|
var handler = React.useCallback(function () {
|
|
26048
|
-
var editor =
|
|
26057
|
+
var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
26049
26058
|
var sGroups = Array.from(sGroupsRef.current);
|
|
26050
26059
|
SGroupTool.sgroupDialog(editor, sGroups[0]);
|
|
26051
|
-
}, [
|
|
26060
|
+
}, [ketcherId]);
|
|
26052
26061
|
var disabled = React.useCallback(function (_ref) {
|
|
26053
26062
|
var props = _ref.props;
|
|
26054
|
-
var editor =
|
|
26063
|
+
var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
26055
26064
|
var struct = editor.render.ctab;
|
|
26056
26065
|
var bondIds = props.bondIds;
|
|
26057
26066
|
if (bondIds.length > 1) {
|
|
@@ -26060,10 +26069,10 @@ var useBondSGroupEdit = function useBondSGroupEdit() {
|
|
|
26060
26069
|
var bond = struct.bonds.get(bondIds[0]);
|
|
26061
26070
|
sGroupsRef.current = bond.b.getAttachedSGroups(struct.molecule);
|
|
26062
26071
|
return sGroupsRef.current.size > 1;
|
|
26063
|
-
}, [
|
|
26072
|
+
}, [ketcherId]);
|
|
26064
26073
|
var hidden = React.useCallback(function () {
|
|
26065
26074
|
var _struct$sgroups$get;
|
|
26066
|
-
var editor =
|
|
26075
|
+
var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
26067
26076
|
var struct = editor.render.ctab;
|
|
26068
26077
|
var _sGroupsRef$current = _slicedToArray__default["default"](sGroupsRef.current, 1),
|
|
26069
26078
|
sgGroupId = _sGroupsRef$current[0];
|
|
@@ -26072,18 +26081,18 @@ var useBondSGroupEdit = function useBondSGroupEdit() {
|
|
|
26072
26081
|
return true;
|
|
26073
26082
|
}
|
|
26074
26083
|
return sGroupsRef.current.size === 0;
|
|
26075
|
-
}, [
|
|
26084
|
+
}, [ketcherId]);
|
|
26076
26085
|
return [handler, disabled, hidden];
|
|
26077
26086
|
};
|
|
26078
26087
|
|
|
26079
26088
|
var useBondTypeChange = function useBondTypeChange() {
|
|
26080
26089
|
var _useAppContext = useAppContext(),
|
|
26081
|
-
|
|
26090
|
+
ketcherId = _useAppContext.ketcherId;
|
|
26082
26091
|
var handler = React.useCallback(function (_ref) {
|
|
26083
26092
|
var _molecule$bonds$get;
|
|
26084
26093
|
var id = _ref.id,
|
|
26085
26094
|
props = _ref.props;
|
|
26086
|
-
var editor =
|
|
26095
|
+
var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
26087
26096
|
var molecule = editor.render.ctab;
|
|
26088
26097
|
var bondIds = (props === null || props === void 0 ? void 0 : props.bondIds) || [];
|
|
26089
26098
|
var bondProps = tools[id].action.opts;
|
|
@@ -26094,11 +26103,11 @@ var useBondTypeChange = function useBondTypeChange() {
|
|
|
26094
26103
|
bondProps.reactingCenterStatus = 0;
|
|
26095
26104
|
}
|
|
26096
26105
|
editor.update(ketcherCore.fromBondsAttrs(molecule, bondIds, bondProps));
|
|
26097
|
-
}, [
|
|
26106
|
+
}, [ketcherId]);
|
|
26098
26107
|
var disabled = React.useCallback(function (_ref2) {
|
|
26099
26108
|
var props = _ref2.props;
|
|
26100
26109
|
var selectedBondIds = props === null || props === void 0 ? void 0 : props.bondIds;
|
|
26101
|
-
var editor =
|
|
26110
|
+
var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
26102
26111
|
if (Array.isArray(selectedBondIds) && selectedBondIds.length !== 0) {
|
|
26103
26112
|
if (editor.struct().isBondFromMacromolecule(selectedBondIds[0])) {
|
|
26104
26113
|
return true;
|
|
@@ -26112,10 +26121,10 @@ var useBondTypeChange = function useBondTypeChange() {
|
|
|
26112
26121
|
|
|
26113
26122
|
var useChangeBondDirection = function useChangeBondDirection(props) {
|
|
26114
26123
|
var _useAppContext = useAppContext(),
|
|
26115
|
-
|
|
26124
|
+
ketcherId = _useAppContext.ketcherId;
|
|
26116
26125
|
var changeDirection = function changeDirection() {
|
|
26117
|
-
var
|
|
26118
|
-
var editor = (
|
|
26126
|
+
var _ketcherProvider$getK, _props$propsFromTrigg;
|
|
26127
|
+
var editor = (_ketcherProvider$getK = ketcherCore.ketcherProvider.getKetcher(ketcherId)) === null || _ketcherProvider$getK === void 0 ? void 0 : _ketcherProvider$getK.editor;
|
|
26119
26128
|
var bondIds = ((_props$propsFromTrigg = props.propsFromTrigger) === null || _props$propsFromTrigg === void 0 ? void 0 : _props$propsFromTrigg.bondIds) || [];
|
|
26120
26129
|
var bondId = bondIds[0];
|
|
26121
26130
|
var molecule = editor === null || editor === void 0 ? void 0 : editor.render.ctab.molecule;
|
|
@@ -26131,13 +26140,13 @@ var useChangeBondDirection = function useChangeBondDirection(props) {
|
|
|
26131
26140
|
};
|
|
26132
26141
|
};
|
|
26133
26142
|
|
|
26134
|
-
function ownKeys$
|
|
26135
|
-
function _objectSpread$
|
|
26143
|
+
function ownKeys$P(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; }
|
|
26144
|
+
function _objectSpread$P(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$P(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$P(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
26136
26145
|
var nonQueryBondNames = getNonQueryBondNames(tools);
|
|
26137
26146
|
var BondMenuItems = function BondMenuItems(props) {
|
|
26138
26147
|
var _props$propsFromTrigg3;
|
|
26139
26148
|
var _useAppContext = useAppContext(),
|
|
26140
|
-
|
|
26149
|
+
ketcherId = _useAppContext.ketcherId;
|
|
26141
26150
|
var _useState = React.useState(null),
|
|
26142
26151
|
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
26143
26152
|
bondData = _useState2[0],
|
|
@@ -26165,10 +26174,10 @@ var BondMenuItems = function BondMenuItems(props) {
|
|
|
26165
26174
|
});
|
|
26166
26175
|
var _useChangeBondDirecti = useChangeBondDirection(props),
|
|
26167
26176
|
changeDirection = _useChangeBondDirecti.changeDirection;
|
|
26168
|
-
var editor =
|
|
26177
|
+
var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
26169
26178
|
React.useEffect(function () {
|
|
26170
|
-
var
|
|
26171
|
-
var editor = (
|
|
26179
|
+
var _ketcherProvider$getK, _props$propsFromTrigg;
|
|
26180
|
+
var editor = (_ketcherProvider$getK = ketcherCore.ketcherProvider.getKetcher(ketcherId)) === null || _ketcherProvider$getK === void 0 ? void 0 : _ketcherProvider$getK.editor;
|
|
26172
26181
|
var bondIds = ((_props$propsFromTrigg = props.propsFromTrigger) === null || _props$propsFromTrigg === void 0 ? void 0 : _props$propsFromTrigg.bondIds) || [];
|
|
26173
26182
|
if (bondIds.length > 0 && editor) {
|
|
26174
26183
|
var bond = editor.render.ctab.molecule.bonds.get(bondIds[0]);
|
|
@@ -26181,7 +26190,7 @@ var BondMenuItems = function BondMenuItems(props) {
|
|
|
26181
26190
|
setBondData(null);
|
|
26182
26191
|
}
|
|
26183
26192
|
}
|
|
26184
|
-
}, [props.propsFromTrigger,
|
|
26193
|
+
}, [props.propsFromTrigger, ketcherId]);
|
|
26185
26194
|
var highlightBondWithColor = function highlightBondWithColor(color) {
|
|
26186
26195
|
var _props$propsFromTrigg2;
|
|
26187
26196
|
var bondIds = ((_props$propsFromTrigg2 = props.propsFromTrigger) === null || _props$propsFromTrigg2 === void 0 ? void 0 : _props$propsFromTrigg2.bondIds) || [];
|
|
@@ -26194,14 +26203,14 @@ var BondMenuItems = function BondMenuItems(props) {
|
|
|
26194
26203
|
};
|
|
26195
26204
|
var shouldShowChangeDirection = bondData && (bondData.type === 9 && bondData.stereo === 0 || bondData.type === 1 && bondData.stereo === 1 || bondData.type === 1 && bondData.stereo === 6 || bondData.type === 1 && bondData.stereo === 4);
|
|
26196
26205
|
return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
26197
|
-
children: [jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
26206
|
+
children: [jsxRuntime.jsx(reactContexify.Item, _objectSpread$P(_objectSpread$P({}, props), {}, {
|
|
26198
26207
|
onClick: handleEdit,
|
|
26199
26208
|
disabled: isDisabled,
|
|
26200
26209
|
children: (_props$propsFromTrigg3 = props.propsFromTrigger) !== null && _props$propsFromTrigg3 !== void 0 && _props$propsFromTrigg3.extraItemsSelected ? 'Edit selected bonds...' : 'Edit...'
|
|
26201
26210
|
})), bondNamesWithoutEmptyValue.map(function (name, i) {
|
|
26202
26211
|
var iconName = getIconName(name);
|
|
26203
26212
|
var classNames = styles$f.sameGroup + (i === bondNamesWithoutEmptyValue.length - 1 ? styles$f.devider : '');
|
|
26204
|
-
return React.createElement(reactContexify.Item, _objectSpread$
|
|
26213
|
+
return React.createElement(reactContexify.Item, _objectSpread$P(_objectSpread$P({
|
|
26205
26214
|
className: classNames
|
|
26206
26215
|
}, props), {}, {
|
|
26207
26216
|
id: name,
|
|
@@ -26214,7 +26223,7 @@ var BondMenuItems = function BondMenuItems(props) {
|
|
|
26214
26223
|
}), jsxRuntime.jsx("span", {
|
|
26215
26224
|
children: formatTitle(tools[name].title)
|
|
26216
26225
|
}));
|
|
26217
|
-
}), jsxRuntime.jsx(reactContexify.Submenu, _objectSpread$
|
|
26226
|
+
}), jsxRuntime.jsx(reactContexify.Submenu, _objectSpread$P(_objectSpread$P({}, props), {}, {
|
|
26218
26227
|
label: "Query bonds",
|
|
26219
26228
|
className: styles$f.subMenu,
|
|
26220
26229
|
children: queryBondNames.map(function (name) {
|
|
@@ -26232,21 +26241,21 @@ var BondMenuItems = function BondMenuItems(props) {
|
|
|
26232
26241
|
})]
|
|
26233
26242
|
}, name);
|
|
26234
26243
|
})
|
|
26235
|
-
})), shouldShowChangeDirection && jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
26244
|
+
})), shouldShowChangeDirection && jsxRuntime.jsx(reactContexify.Item, _objectSpread$P(_objectSpread$P({}, props), {}, {
|
|
26236
26245
|
onClick: changeDirection,
|
|
26237
26246
|
children: "Change direction"
|
|
26238
|
-
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
26247
|
+
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$P(_objectSpread$P({}, props), {}, {
|
|
26239
26248
|
hidden: sGroupAttachHidden,
|
|
26240
26249
|
onClick: handleSGroupAttach,
|
|
26241
26250
|
children: "Attach S-Group..."
|
|
26242
26251
|
})), jsxRuntime.jsx(HighlightMenu, {
|
|
26243
26252
|
onHighlight: highlightBondWithColor
|
|
26244
|
-
}), jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
26253
|
+
}), jsxRuntime.jsx(reactContexify.Item, _objectSpread$P(_objectSpread$P({}, props), {}, {
|
|
26245
26254
|
hidden: sGroupEditHidden,
|
|
26246
26255
|
disabled: sGroupEditDisabled,
|
|
26247
26256
|
onClick: handleSGroupEdit,
|
|
26248
26257
|
children: "Edit S-Group..."
|
|
26249
|
-
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
26258
|
+
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$P(_objectSpread$P({}, props), {}, {
|
|
26250
26259
|
onClick: handleDelete,
|
|
26251
26260
|
children: "Delete"
|
|
26252
26261
|
}))]
|
|
@@ -26255,11 +26264,11 @@ var BondMenuItems = function BondMenuItems(props) {
|
|
|
26255
26264
|
|
|
26256
26265
|
var useFunctionalGroupEoc = function useFunctionalGroupEoc() {
|
|
26257
26266
|
var _useAppContext = useAppContext(),
|
|
26258
|
-
|
|
26267
|
+
ketcherId = _useAppContext.ketcherId;
|
|
26259
26268
|
var dispatch = reactRedux.useDispatch();
|
|
26260
26269
|
var handler = React.useCallback(function (_ref, toExpand) {
|
|
26261
26270
|
var props = _ref.props;
|
|
26262
|
-
var editor =
|
|
26271
|
+
var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
26263
26272
|
var molecule = editor.render.ctab;
|
|
26264
26273
|
var selectedFunctionalGroups = props === null || props === void 0 ? void 0 : props.functionalGroups;
|
|
26265
26274
|
var action = new ketcherCore.Action();
|
|
@@ -26274,7 +26283,7 @@ var useFunctionalGroupEoc = function useFunctionalGroupEoc() {
|
|
|
26274
26283
|
group: null,
|
|
26275
26284
|
id: null
|
|
26276
26285
|
});
|
|
26277
|
-
}, [dispatch,
|
|
26286
|
+
}, [dispatch, ketcherId]);
|
|
26278
26287
|
var hidden = React.useCallback(function (_ref2, toExpand) {
|
|
26279
26288
|
var _props$functionalGrou;
|
|
26280
26289
|
var props = _ref2.props;
|
|
@@ -26287,11 +26296,11 @@ var useFunctionalGroupEoc = function useFunctionalGroupEoc() {
|
|
|
26287
26296
|
|
|
26288
26297
|
var useFunctionalGroupRemove = function useFunctionalGroupRemove() {
|
|
26289
26298
|
var _useAppContext = useAppContext(),
|
|
26290
|
-
|
|
26299
|
+
ketcherId = _useAppContext.ketcherId;
|
|
26291
26300
|
var dispatch = reactRedux.useDispatch();
|
|
26292
26301
|
var handler = React.useCallback(function (_ref) {
|
|
26293
26302
|
var props = _ref.props;
|
|
26294
|
-
var editor =
|
|
26303
|
+
var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
26295
26304
|
var selectedFunctionalGroups = props === null || props === void 0 ? void 0 : props.functionalGroups;
|
|
26296
26305
|
var action = new ketcherCore.Action();
|
|
26297
26306
|
selectedFunctionalGroups === null || selectedFunctionalGroups === void 0 || selectedFunctionalGroups.forEach(function (functionalGroup) {
|
|
@@ -26302,12 +26311,12 @@ var useFunctionalGroupRemove = function useFunctionalGroupRemove() {
|
|
|
26302
26311
|
group: null,
|
|
26303
26312
|
id: null
|
|
26304
26313
|
});
|
|
26305
|
-
}, [dispatch,
|
|
26314
|
+
}, [dispatch, ketcherId]);
|
|
26306
26315
|
return handler;
|
|
26307
26316
|
};
|
|
26308
26317
|
|
|
26309
|
-
function ownKeys$
|
|
26310
|
-
function _objectSpread$
|
|
26318
|
+
function ownKeys$O(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; }
|
|
26319
|
+
function _objectSpread$O(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$O(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$O(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
26311
26320
|
var FunctionalGroupMenuItems = function FunctionalGroupMenuItems(props) {
|
|
26312
26321
|
var _useFunctionalGroupEo = useFunctionalGroupEoc(),
|
|
26313
26322
|
_useFunctionalGroupEo2 = _slicedToArray__default["default"](_useFunctionalGroupEo, 2),
|
|
@@ -26315,7 +26324,7 @@ var FunctionalGroupMenuItems = function FunctionalGroupMenuItems(props) {
|
|
|
26315
26324
|
ExpandOrContractHidden = _useFunctionalGroupEo2[1];
|
|
26316
26325
|
var handleRemove = useFunctionalGroupRemove();
|
|
26317
26326
|
return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
26318
|
-
children: [jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
26327
|
+
children: [jsxRuntime.jsx(reactContexify.Item, _objectSpread$O(_objectSpread$O({}, props), {}, {
|
|
26319
26328
|
hidden: function hidden(params) {
|
|
26320
26329
|
return ExpandOrContractHidden(params, true);
|
|
26321
26330
|
},
|
|
@@ -26323,7 +26332,7 @@ var FunctionalGroupMenuItems = function FunctionalGroupMenuItems(props) {
|
|
|
26323
26332
|
return handleExpandOrContract(params, true);
|
|
26324
26333
|
},
|
|
26325
26334
|
children: "Expand Abbreviation"
|
|
26326
|
-
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
26335
|
+
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$O(_objectSpread$O({}, props), {}, {
|
|
26327
26336
|
hidden: function hidden(params) {
|
|
26328
26337
|
return ExpandOrContractHidden(params, false);
|
|
26329
26338
|
},
|
|
@@ -26331,20 +26340,20 @@ var FunctionalGroupMenuItems = function FunctionalGroupMenuItems(props) {
|
|
|
26331
26340
|
return handleExpandOrContract(params, false);
|
|
26332
26341
|
},
|
|
26333
26342
|
children: "Contract Abbreviation"
|
|
26334
|
-
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
26343
|
+
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$O(_objectSpread$O({}, props), {}, {
|
|
26335
26344
|
onClick: handleRemove,
|
|
26336
26345
|
children: "Remove Abbreviation"
|
|
26337
26346
|
}))]
|
|
26338
26347
|
});
|
|
26339
26348
|
};
|
|
26340
26349
|
|
|
26341
|
-
function ownKeys$
|
|
26342
|
-
function _objectSpread$
|
|
26350
|
+
function ownKeys$N(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; }
|
|
26351
|
+
function _objectSpread$N(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$N(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$N(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
26343
26352
|
var bondNames = getBondNames(tools);
|
|
26344
26353
|
var SelectionMenuItems = function SelectionMenuItems(props) {
|
|
26345
26354
|
var _useAppContext = useAppContext(),
|
|
26346
|
-
|
|
26347
|
-
var editor =
|
|
26355
|
+
ketcherId = _useAppContext.ketcherId;
|
|
26356
|
+
var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
26348
26357
|
var _useBondEdit = useBondEdit(),
|
|
26349
26358
|
_useBondEdit2 = _slicedToArray__default["default"](_useBondEdit, 2),
|
|
26350
26359
|
handleBondEdit = _useBondEdit2[0],
|
|
@@ -26375,15 +26384,15 @@ var SelectionMenuItems = function SelectionMenuItems(props) {
|
|
|
26375
26384
|
});
|
|
26376
26385
|
};
|
|
26377
26386
|
return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
26378
|
-
children: [jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
26387
|
+
children: [jsxRuntime.jsx(reactContexify.Item, _objectSpread$N(_objectSpread$N({}, props), {}, {
|
|
26379
26388
|
disabled: bondEditDisabled,
|
|
26380
26389
|
onClick: handleBondEdit,
|
|
26381
26390
|
children: "Edit selected bonds..."
|
|
26382
|
-
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
26391
|
+
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$N(_objectSpread$N({}, props), {}, {
|
|
26383
26392
|
disabled: atomEditDisabled,
|
|
26384
26393
|
onClick: handleAtomEdit,
|
|
26385
26394
|
children: "Edit selected atoms..."
|
|
26386
|
-
})), jsxRuntime.jsx(reactContexify.Submenu, _objectSpread$
|
|
26395
|
+
})), jsxRuntime.jsx(reactContexify.Submenu, _objectSpread$N(_objectSpread$N({}, props), {}, {
|
|
26387
26396
|
label: "Bond type",
|
|
26388
26397
|
disabled: bondTypeChangeDisabled,
|
|
26389
26398
|
className: styles$f.subMenu,
|
|
@@ -26400,13 +26409,13 @@ var SelectionMenuItems = function SelectionMenuItems(props) {
|
|
|
26400
26409
|
})]
|
|
26401
26410
|
}, name);
|
|
26402
26411
|
})
|
|
26403
|
-
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
26412
|
+
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$N(_objectSpread$N({}, props), {}, {
|
|
26404
26413
|
disabled: atomStereoDisabled,
|
|
26405
26414
|
onClick: handleAtomStereo,
|
|
26406
26415
|
children: "Enhanced stereochemistry..."
|
|
26407
26416
|
})), jsxRuntime.jsx(HighlightMenu, {
|
|
26408
26417
|
onHighlight: highlightBondWithColor
|
|
26409
|
-
}), jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
26418
|
+
}), jsxRuntime.jsx(reactContexify.Item, _objectSpread$N(_objectSpread$N({}, props), {}, {
|
|
26410
26419
|
onClick: handleDelete,
|
|
26411
26420
|
children: "Delete"
|
|
26412
26421
|
}))]
|
|
@@ -26415,7 +26424,7 @@ var SelectionMenuItems = function SelectionMenuItems(props) {
|
|
|
26415
26424
|
|
|
26416
26425
|
var useDelete = function useDelete() {
|
|
26417
26426
|
var _useAppContext = useAppContext(),
|
|
26418
|
-
|
|
26427
|
+
ketcherId = _useAppContext.ketcherId;
|
|
26419
26428
|
var handler = React.useCallback( function () {
|
|
26420
26429
|
var _ref2 = _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee(_ref) {
|
|
26421
26430
|
var props, editor, restruct, pointsToDelete, action;
|
|
@@ -26423,7 +26432,7 @@ var useDelete = function useDelete() {
|
|
|
26423
26432
|
while (1) switch (_context.prev = _context.next) {
|
|
26424
26433
|
case 0:
|
|
26425
26434
|
props = _ref.props;
|
|
26426
|
-
editor =
|
|
26435
|
+
editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
26427
26436
|
restruct = editor.render.ctab;
|
|
26428
26437
|
pointsToDelete = (props === null || props === void 0 ? void 0 : props.rgroupAttachmentPoints) || [];
|
|
26429
26438
|
action = pointsToDelete.reduce(function (previousAction, currentPoint) {
|
|
@@ -26441,7 +26450,7 @@ var useDelete = function useDelete() {
|
|
|
26441
26450
|
return function (_x) {
|
|
26442
26451
|
return _ref2.apply(this, arguments);
|
|
26443
26452
|
};
|
|
26444
|
-
}(), [
|
|
26453
|
+
}(), [ketcherId]);
|
|
26445
26454
|
return handler;
|
|
26446
26455
|
};
|
|
26447
26456
|
|
|
@@ -26461,25 +26470,25 @@ var getAtomIdByProps = function getAtomIdByProps(props, ketcher) {
|
|
|
26461
26470
|
};
|
|
26462
26471
|
var useRGroupAttachmentPointEdit = function useRGroupAttachmentPointEdit() {
|
|
26463
26472
|
var _useAppContext = useAppContext(),
|
|
26464
|
-
|
|
26473
|
+
ketcherId = _useAppContext.ketcherId;
|
|
26465
26474
|
var handler = React.useCallback(function (_ref) {
|
|
26466
26475
|
var props = _ref.props;
|
|
26467
|
-
var ketcher =
|
|
26476
|
+
var ketcher = ketcherCore.ketcherProvider.getKetcher(ketcherId);
|
|
26468
26477
|
var restruct = ketcher.editor.render.ctab;
|
|
26469
26478
|
var atomId = getAtomIdByProps(props, ketcher);
|
|
26470
26479
|
var atom = restruct.molecule.atoms.get(atomId);
|
|
26471
26480
|
assert_1(atom != null);
|
|
26472
26481
|
editRGroupAttachmentPoint(ketcher.editor, atom, atomId);
|
|
26473
|
-
}, [
|
|
26482
|
+
}, [ketcherId]);
|
|
26474
26483
|
var disabled = React.useCallback(function (_ref2) {
|
|
26475
26484
|
var props = _ref2.props;
|
|
26476
|
-
var ketcher =
|
|
26485
|
+
var ketcher = ketcherCore.ketcherProvider.getKetcher(ketcherId);
|
|
26477
26486
|
var restruct = ketcher.editor.render.ctab;
|
|
26478
26487
|
var atomId = getAtomIdByProps(props, ketcher);
|
|
26479
26488
|
var atom = restruct.molecule.atoms.get(atomId);
|
|
26480
26489
|
assert_1(atom != null);
|
|
26481
26490
|
return atom.isRGroupAttachmentPointEditDisabled;
|
|
26482
|
-
}, [
|
|
26491
|
+
}, [ketcherId]);
|
|
26483
26492
|
var hidden = React.useCallback(function (_ref3) {
|
|
26484
26493
|
var _props$atomIds2;
|
|
26485
26494
|
var props = _ref3.props;
|
|
@@ -26489,18 +26498,18 @@ var useRGroupAttachmentPointEdit = function useRGroupAttachmentPointEdit() {
|
|
|
26489
26498
|
return [handler, disabled, hidden];
|
|
26490
26499
|
};
|
|
26491
26500
|
|
|
26492
|
-
function ownKeys$
|
|
26493
|
-
function _objectSpread$
|
|
26501
|
+
function ownKeys$M(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; }
|
|
26502
|
+
function _objectSpread$M(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$M(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$M(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
26494
26503
|
var RGroupAttachmentPointMenuItems = function RGroupAttachmentPointMenuItems(props) {
|
|
26495
26504
|
var _useAppContext = useAppContext(),
|
|
26496
|
-
|
|
26505
|
+
ketcherId = _useAppContext.ketcherId;
|
|
26497
26506
|
var handleRemove = useDelete();
|
|
26498
26507
|
var _useRGroupAttachmentP = useRGroupAttachmentPointEdit(),
|
|
26499
26508
|
_useRGroupAttachmentP2 = _slicedToArray__default["default"](_useRGroupAttachmentP, 3),
|
|
26500
26509
|
handleEditRGroupAttachmentPoint = _useRGroupAttachmentP2[0],
|
|
26501
26510
|
rgroupAttachmentPointDisabled = _useRGroupAttachmentP2[1],
|
|
26502
26511
|
rgroupAttachmentPointHidden = _useRGroupAttachmentP2[2];
|
|
26503
|
-
var editor =
|
|
26512
|
+
var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
26504
26513
|
var highlight = function highlight(color) {
|
|
26505
26514
|
var _props$propsFromTrigg;
|
|
26506
26515
|
var rgroupAttachmentPoints = ((_props$propsFromTrigg = props.propsFromTrigger) === null || _props$propsFromTrigg === void 0 ? void 0 : _props$propsFromTrigg.rgroupAttachmentPoints) || [];
|
|
@@ -26512,14 +26521,14 @@ var RGroupAttachmentPointMenuItems = function RGroupAttachmentPointMenuItems(pro
|
|
|
26512
26521
|
});
|
|
26513
26522
|
};
|
|
26514
26523
|
return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
26515
|
-
children: [jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
26524
|
+
children: [jsxRuntime.jsx(reactContexify.Item, _objectSpread$M(_objectSpread$M({}, props), {}, {
|
|
26516
26525
|
disabled: rgroupAttachmentPointDisabled,
|
|
26517
26526
|
hidden: rgroupAttachmentPointHidden,
|
|
26518
26527
|
onClick: handleEditRGroupAttachmentPoint,
|
|
26519
26528
|
children: "Edit..."
|
|
26520
26529
|
})), jsxRuntime.jsx(HighlightMenu, {
|
|
26521
26530
|
onHighlight: highlight
|
|
26522
|
-
}), jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
26531
|
+
}), jsxRuntime.jsx(reactContexify.Item, _objectSpread$M(_objectSpread$M({}, props), {}, {
|
|
26523
26532
|
onClick: handleRemove,
|
|
26524
26533
|
children: "Remove"
|
|
26525
26534
|
}))]
|
|
@@ -26534,19 +26543,19 @@ function updateEditor(editor, action) {
|
|
|
26534
26543
|
}
|
|
26535
26544
|
var useMultitailArrowTailsAdd = function useMultitailArrowTailsAdd() {
|
|
26536
26545
|
var _useAppContext = useAppContext(),
|
|
26537
|
-
|
|
26546
|
+
ketcherId = _useAppContext.ketcherId;
|
|
26538
26547
|
var addTail = React.useCallback(function (_ref) {
|
|
26539
26548
|
var props = _ref.props;
|
|
26540
|
-
var editor =
|
|
26549
|
+
var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
26541
26550
|
var operation = ketcherCore.fromMultitailArrowTailAdd(editor.render.ctab, props === null || props === void 0 ? void 0 : props.itemId);
|
|
26542
26551
|
updateEditor(editor, operation);
|
|
26543
|
-
}, [
|
|
26552
|
+
}, [ketcherId]);
|
|
26544
26553
|
var isAddTailDisabled = React.useCallback(function (_ref2) {
|
|
26545
26554
|
var props = _ref2.props;
|
|
26546
|
-
var editor =
|
|
26555
|
+
var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
26547
26556
|
var multitailArrow = editor.render.ctab.molecule.multitailArrows.get(props === null || props === void 0 ? void 0 : props.itemId);
|
|
26548
26557
|
return !!multitailArrow && !ketcherCore.MultitailArrow.canAddTail(multitailArrow.getTailsMaxDistance().distance);
|
|
26549
|
-
}, [
|
|
26558
|
+
}, [ketcherId]);
|
|
26550
26559
|
return {
|
|
26551
26560
|
addTail: addTail,
|
|
26552
26561
|
isAddTailDisabled: isAddTailDisabled
|
|
@@ -26554,13 +26563,13 @@ var useMultitailArrowTailsAdd = function useMultitailArrowTailsAdd() {
|
|
|
26554
26563
|
};
|
|
26555
26564
|
var useMultitailArrowTailsRemove = function useMultitailArrowTailsRemove() {
|
|
26556
26565
|
var _useAppContext2 = useAppContext(),
|
|
26557
|
-
|
|
26566
|
+
ketcherId = _useAppContext2.ketcherId;
|
|
26558
26567
|
var removeTail = React.useCallback(function (_ref3) {
|
|
26559
26568
|
var props = _ref3.props;
|
|
26560
|
-
var editor =
|
|
26569
|
+
var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
26561
26570
|
var operation = ketcherCore.fromMultitailArrowTailRemove(editor.render.ctab, props === null || props === void 0 ? void 0 : props.itemId, props === null || props === void 0 ? void 0 : props.tailId);
|
|
26562
26571
|
updateEditor(editor, operation);
|
|
26563
|
-
}, [
|
|
26572
|
+
}, [ketcherId]);
|
|
26564
26573
|
var removeTailHidden = React.useCallback(function (_ref4) {
|
|
26565
26574
|
var props = _ref4.props;
|
|
26566
26575
|
return (props === null || props === void 0 ? void 0 : props.tailId) === null;
|
|
@@ -26571,8 +26580,8 @@ var useMultitailArrowTailsRemove = function useMultitailArrowTailsRemove() {
|
|
|
26571
26580
|
};
|
|
26572
26581
|
};
|
|
26573
26582
|
|
|
26574
|
-
function ownKeys$
|
|
26575
|
-
function _objectSpread$
|
|
26583
|
+
function ownKeys$L(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; }
|
|
26584
|
+
function _objectSpread$L(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$L(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$L(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
26576
26585
|
function MultitailArrowMenuItems(props) {
|
|
26577
26586
|
var _useMultitailArrowTai = useMultitailArrowTailsAdd(),
|
|
26578
26587
|
addTail = _useMultitailArrowTai.addTail,
|
|
@@ -26581,11 +26590,11 @@ function MultitailArrowMenuItems(props) {
|
|
|
26581
26590
|
removeTail = _useMultitailArrowTai2.removeTail,
|
|
26582
26591
|
removeTailHidden = _useMultitailArrowTai2.removeTailHidden;
|
|
26583
26592
|
return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
26584
|
-
children: [jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
26593
|
+
children: [jsxRuntime.jsx(reactContexify.Item, _objectSpread$L(_objectSpread$L({}, props), {}, {
|
|
26585
26594
|
onClick: removeTail,
|
|
26586
26595
|
hidden: removeTailHidden,
|
|
26587
26596
|
children: "Remove tail"
|
|
26588
|
-
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
26597
|
+
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$L(_objectSpread$L({}, props), {}, {
|
|
26589
26598
|
onClick: addTail,
|
|
26590
26599
|
disabled: isAddTailDisabled,
|
|
26591
26600
|
children: "Add new tail"
|
|
@@ -26598,10 +26607,10 @@ var canExpandMonomer = function canExpandMonomer(functionalGroup) {
|
|
|
26598
26607
|
};
|
|
26599
26608
|
var useMonomerExpansionHandlers = function useMonomerExpansionHandlers() {
|
|
26600
26609
|
var _useAppContext = useAppContext(),
|
|
26601
|
-
|
|
26610
|
+
ketcherId = _useAppContext.ketcherId;
|
|
26602
26611
|
var action = React.useCallback(function (_ref, toExpand) {
|
|
26603
26612
|
var props = _ref.props;
|
|
26604
|
-
var editor =
|
|
26613
|
+
var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
26605
26614
|
var molecule = editor.render.ctab;
|
|
26606
26615
|
var selectedFunctionalGroups = props === null || props === void 0 ? void 0 : props.functionalGroups;
|
|
26607
26616
|
var action = new ketcherCore.Action();
|
|
@@ -26615,7 +26624,7 @@ var useMonomerExpansionHandlers = function useMonomerExpansionHandlers() {
|
|
|
26615
26624
|
});
|
|
26616
26625
|
editor.update(action);
|
|
26617
26626
|
editor.rotateController.rerender();
|
|
26618
|
-
}, [
|
|
26627
|
+
}, [ketcherId]);
|
|
26619
26628
|
var hidden = React.useCallback(function (_ref2, toExpand) {
|
|
26620
26629
|
var _props$functionalGrou;
|
|
26621
26630
|
var props = _ref2.props;
|
|
@@ -26626,8 +26635,8 @@ var useMonomerExpansionHandlers = function useMonomerExpansionHandlers() {
|
|
|
26626
26635
|
return [action, hidden];
|
|
26627
26636
|
};
|
|
26628
26637
|
|
|
26629
|
-
function ownKeys$
|
|
26630
|
-
function _objectSpread$
|
|
26638
|
+
function ownKeys$K(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; }
|
|
26639
|
+
function _objectSpread$K(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$K(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$K(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
26631
26640
|
var MacromoleculeMenuItems = function MacromoleculeMenuItems(props) {
|
|
26632
26641
|
var _props$propsFromTrigg, _props$propsFromTrigg2;
|
|
26633
26642
|
var _useMonomerExpansionH = useMonomerExpansionHandlers(),
|
|
@@ -26641,7 +26650,7 @@ var MacromoleculeMenuItems = function MacromoleculeMenuItems(props) {
|
|
|
26641
26650
|
var expandText = multipleMonomersSelected ? 'Expand monomers' : 'Expand monomer';
|
|
26642
26651
|
var collapseText = multipleMonomersSelected ? 'Collapse monomers' : 'Collapse monomer';
|
|
26643
26652
|
return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
26644
|
-
children: [jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
26653
|
+
children: [jsxRuntime.jsx(reactContexify.Item, _objectSpread$K(_objectSpread$K({}, props), {}, {
|
|
26645
26654
|
hidden: function hidden(params) {
|
|
26646
26655
|
return _hidden(params, true);
|
|
26647
26656
|
},
|
|
@@ -26650,7 +26659,7 @@ var MacromoleculeMenuItems = function MacromoleculeMenuItems(props) {
|
|
|
26650
26659
|
},
|
|
26651
26660
|
disabled: expandingDisabled,
|
|
26652
26661
|
children: expandText
|
|
26653
|
-
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$
|
|
26662
|
+
})), jsxRuntime.jsx(reactContexify.Item, _objectSpread$K(_objectSpread$K({}, props), {}, {
|
|
26654
26663
|
hidden: function hidden(params) {
|
|
26655
26664
|
return _hidden(params, false);
|
|
26656
26665
|
},
|
|
@@ -26662,15 +26671,15 @@ var MacromoleculeMenuItems = function MacromoleculeMenuItems(props) {
|
|
|
26662
26671
|
});
|
|
26663
26672
|
};
|
|
26664
26673
|
|
|
26665
|
-
function ownKeys$
|
|
26666
|
-
function _objectSpread$
|
|
26674
|
+
function ownKeys$J(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; }
|
|
26675
|
+
function _objectSpread$J(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$J(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$J(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
26667
26676
|
var props = {
|
|
26668
26677
|
animation: false,
|
|
26669
26678
|
className: styles$f.contextMenu
|
|
26670
26679
|
};
|
|
26671
26680
|
var ContextMenu = function ContextMenu() {
|
|
26672
26681
|
var _useAppContext = useAppContext(),
|
|
26673
|
-
|
|
26682
|
+
ketcherId = _useAppContext.ketcherId;
|
|
26674
26683
|
var adjustSubmenuPosition = function adjustSubmenuPosition(submenuElement) {
|
|
26675
26684
|
var rect = submenuElement.getBoundingClientRect();
|
|
26676
26685
|
var ketcherRootElement = document.querySelector(KETCHER_ROOT_NODE_CSS_SELECTOR);
|
|
@@ -26731,7 +26740,7 @@ var ContextMenu = function ContextMenu() {
|
|
|
26731
26740
|
contextMenuElement.style.top = "".concat(top, "px");
|
|
26732
26741
|
};
|
|
26733
26742
|
var trackVisibility = React.useCallback(function (id, visible) {
|
|
26734
|
-
var editor =
|
|
26743
|
+
var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
26735
26744
|
if (visible) {
|
|
26736
26745
|
editor.hoverIcon.hide();
|
|
26737
26746
|
var contextMenuElement = document.querySelector('.contexify:last-of-type');
|
|
@@ -26748,49 +26757,49 @@ var ContextMenu = function ContextMenu() {
|
|
|
26748
26757
|
}
|
|
26749
26758
|
}
|
|
26750
26759
|
editor.contextMenu[id] = visible;
|
|
26751
|
-
}, [
|
|
26760
|
+
}, [ketcherId]);
|
|
26752
26761
|
var ketcherEditorRootElement = document.querySelector(KETCHER_ROOT_NODE_CSS_SELECTOR);
|
|
26753
26762
|
return ketcherEditorRootElement ? ReactDOM.createPortal(jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
26754
|
-
children: [jsxRuntime.jsx(reactContexify.Menu, _objectSpread$
|
|
26755
|
-
id: CONTEXT_MENU_ID.FOR_BONDS,
|
|
26763
|
+
children: [jsxRuntime.jsx(reactContexify.Menu, _objectSpread$J(_objectSpread$J({}, props), {}, {
|
|
26764
|
+
id: CONTEXT_MENU_ID.FOR_BONDS + ketcherId,
|
|
26756
26765
|
onVisibilityChange: function onVisibilityChange(visible) {
|
|
26757
|
-
return trackVisibility(CONTEXT_MENU_ID.FOR_BONDS, visible);
|
|
26766
|
+
return trackVisibility(CONTEXT_MENU_ID.FOR_BONDS + ketcherId, visible);
|
|
26758
26767
|
},
|
|
26759
26768
|
children: jsxRuntime.jsx(BondMenuItems, {})
|
|
26760
|
-
})), jsxRuntime.jsx(reactContexify.Menu, _objectSpread$
|
|
26761
|
-
id: CONTEXT_MENU_ID.FOR_ATOMS,
|
|
26769
|
+
})), jsxRuntime.jsx(reactContexify.Menu, _objectSpread$J(_objectSpread$J({}, props), {}, {
|
|
26770
|
+
id: CONTEXT_MENU_ID.FOR_ATOMS + ketcherId,
|
|
26762
26771
|
onVisibilityChange: function onVisibilityChange(visible) {
|
|
26763
|
-
return trackVisibility(CONTEXT_MENU_ID.FOR_ATOMS, visible);
|
|
26772
|
+
return trackVisibility(CONTEXT_MENU_ID.FOR_ATOMS + ketcherId, visible);
|
|
26764
26773
|
},
|
|
26765
26774
|
children: jsxRuntime.jsx(AtomMenuItems, {})
|
|
26766
|
-
})), jsxRuntime.jsx(reactContexify.Menu, _objectSpread$
|
|
26767
|
-
id: CONTEXT_MENU_ID.FOR_SELECTION,
|
|
26775
|
+
})), jsxRuntime.jsx(reactContexify.Menu, _objectSpread$J(_objectSpread$J({}, props), {}, {
|
|
26776
|
+
id: CONTEXT_MENU_ID.FOR_SELECTION + ketcherId,
|
|
26768
26777
|
onVisibilityChange: function onVisibilityChange(visible) {
|
|
26769
|
-
return trackVisibility(CONTEXT_MENU_ID.FOR_SELECTION, visible);
|
|
26778
|
+
return trackVisibility(CONTEXT_MENU_ID.FOR_SELECTION + ketcherId, visible);
|
|
26770
26779
|
},
|
|
26771
26780
|
children: jsxRuntime.jsx(SelectionMenuItems, {})
|
|
26772
|
-
})), jsxRuntime.jsx(reactContexify.Menu, _objectSpread$
|
|
26773
|
-
id: CONTEXT_MENU_ID.FOR_FUNCTIONAL_GROUPS,
|
|
26781
|
+
})), jsxRuntime.jsx(reactContexify.Menu, _objectSpread$J(_objectSpread$J({}, props), {}, {
|
|
26782
|
+
id: CONTEXT_MENU_ID.FOR_FUNCTIONAL_GROUPS + ketcherId,
|
|
26774
26783
|
onVisibilityChange: function onVisibilityChange(visible) {
|
|
26775
|
-
return trackVisibility(CONTEXT_MENU_ID.FOR_FUNCTIONAL_GROUPS, visible);
|
|
26784
|
+
return trackVisibility(CONTEXT_MENU_ID.FOR_FUNCTIONAL_GROUPS + ketcherId, visible);
|
|
26776
26785
|
},
|
|
26777
26786
|
children: jsxRuntime.jsx(FunctionalGroupMenuItems, {})
|
|
26778
|
-
})), jsxRuntime.jsx(reactContexify.Menu, _objectSpread$
|
|
26779
|
-
id: CONTEXT_MENU_ID.FOR_R_GROUP_ATTACHMENT_POINT,
|
|
26787
|
+
})), jsxRuntime.jsx(reactContexify.Menu, _objectSpread$J(_objectSpread$J({}, props), {}, {
|
|
26788
|
+
id: CONTEXT_MENU_ID.FOR_R_GROUP_ATTACHMENT_POINT + ketcherId,
|
|
26780
26789
|
onVisibilityChange: function onVisibilityChange(visible) {
|
|
26781
|
-
return trackVisibility(CONTEXT_MENU_ID.FOR_R_GROUP_ATTACHMENT_POINT, visible);
|
|
26790
|
+
return trackVisibility(CONTEXT_MENU_ID.FOR_R_GROUP_ATTACHMENT_POINT + ketcherId, visible);
|
|
26782
26791
|
},
|
|
26783
26792
|
children: jsxRuntime.jsx(RGroupAttachmentPointMenuItems, {})
|
|
26784
|
-
})), jsxRuntime.jsx(reactContexify.Menu, _objectSpread$
|
|
26785
|
-
id: CONTEXT_MENU_ID.FOR_MULTITAIL_ARROW,
|
|
26793
|
+
})), jsxRuntime.jsx(reactContexify.Menu, _objectSpread$J(_objectSpread$J({}, props), {}, {
|
|
26794
|
+
id: CONTEXT_MENU_ID.FOR_MULTITAIL_ARROW + ketcherId,
|
|
26786
26795
|
onVisibilityChange: function onVisibilityChange(visible) {
|
|
26787
|
-
return trackVisibility(CONTEXT_MENU_ID.FOR_MULTITAIL_ARROW, visible);
|
|
26796
|
+
return trackVisibility(CONTEXT_MENU_ID.FOR_MULTITAIL_ARROW + ketcherId, visible);
|
|
26788
26797
|
},
|
|
26789
26798
|
children: jsxRuntime.jsx(MultitailArrowMenuItems, {})
|
|
26790
|
-
})), jsxRuntime.jsx(reactContexify.Menu, _objectSpread$
|
|
26791
|
-
id: CONTEXT_MENU_ID.FOR_MACROMOLECULE,
|
|
26799
|
+
})), jsxRuntime.jsx(reactContexify.Menu, _objectSpread$J(_objectSpread$J({}, props), {}, {
|
|
26800
|
+
id: CONTEXT_MENU_ID.FOR_MACROMOLECULE + ketcherId,
|
|
26792
26801
|
onVisibilityChange: function onVisibilityChange(visible) {
|
|
26793
|
-
return trackVisibility(CONTEXT_MENU_ID.FOR_MACROMOLECULE, visible);
|
|
26802
|
+
return trackVisibility(CONTEXT_MENU_ID.FOR_MACROMOLECULE + ketcherId, visible);
|
|
26794
26803
|
},
|
|
26795
26804
|
children: jsxRuntime.jsx(MacromoleculeMenuItems, {})
|
|
26796
26805
|
}))]
|
|
@@ -26814,7 +26823,7 @@ var getIsItemInSelection = function getIsItemInSelection(_ref) {
|
|
|
26814
26823
|
return item.map in selection && Array.isArray(selection[item.map]) && selection[item.map].includes(item.id);
|
|
26815
26824
|
}
|
|
26816
26825
|
};
|
|
26817
|
-
function getMenuPropsForClosestItem(editor, closestItem) {
|
|
26826
|
+
function getMenuPropsForClosestItem(editor, closestItem, ketcherId) {
|
|
26818
26827
|
var struct = editor.struct();
|
|
26819
26828
|
switch (closestItem.map) {
|
|
26820
26829
|
case 'bonds':
|
|
@@ -26824,17 +26833,17 @@ function getMenuPropsForClosestItem(editor, closestItem) {
|
|
|
26824
26833
|
var isMonomer = (functionalGroup === null || functionalGroup === void 0 ? void 0 : functionalGroup.relatedSGroup) instanceof ketcherCore.MonomerMicromolecule;
|
|
26825
26834
|
if (noFunctionalGroup) {
|
|
26826
26835
|
return {
|
|
26827
|
-
id: CONTEXT_MENU_ID.FOR_BONDS,
|
|
26836
|
+
id: CONTEXT_MENU_ID.FOR_BONDS + ketcherId,
|
|
26828
26837
|
bondIds: [closestItem.id]
|
|
26829
26838
|
};
|
|
26830
26839
|
} else if (isMonomer) {
|
|
26831
26840
|
return {
|
|
26832
|
-
id: CONTEXT_MENU_ID.FOR_MACROMOLECULE,
|
|
26841
|
+
id: CONTEXT_MENU_ID.FOR_MACROMOLECULE + ketcherId,
|
|
26833
26842
|
functionalGroups: [functionalGroup]
|
|
26834
26843
|
};
|
|
26835
26844
|
} else {
|
|
26836
26845
|
return {
|
|
26837
|
-
id: CONTEXT_MENU_ID.FOR_FUNCTIONAL_GROUPS,
|
|
26846
|
+
id: CONTEXT_MENU_ID.FOR_FUNCTIONAL_GROUPS + ketcherId,
|
|
26838
26847
|
functionalGroups: [functionalGroup]
|
|
26839
26848
|
};
|
|
26840
26849
|
}
|
|
@@ -26846,17 +26855,17 @@ function getMenuPropsForClosestItem(editor, closestItem) {
|
|
|
26846
26855
|
var _isMonomer = (_functionalGroup === null || _functionalGroup === void 0 ? void 0 : _functionalGroup.relatedSGroup) instanceof ketcherCore.MonomerMicromolecule;
|
|
26847
26856
|
if (_noFunctionalGroup) {
|
|
26848
26857
|
return {
|
|
26849
|
-
id: CONTEXT_MENU_ID.FOR_ATOMS,
|
|
26858
|
+
id: CONTEXT_MENU_ID.FOR_ATOMS + ketcherId,
|
|
26850
26859
|
atomIds: [closestItem.id]
|
|
26851
26860
|
};
|
|
26852
26861
|
} else if (_isMonomer) {
|
|
26853
26862
|
return {
|
|
26854
|
-
id: CONTEXT_MENU_ID.FOR_MACROMOLECULE,
|
|
26863
|
+
id: CONTEXT_MENU_ID.FOR_MACROMOLECULE + ketcherId,
|
|
26855
26864
|
functionalGroups: [_functionalGroup]
|
|
26856
26865
|
};
|
|
26857
26866
|
} else {
|
|
26858
26867
|
return {
|
|
26859
|
-
id: CONTEXT_MENU_ID.FOR_FUNCTIONAL_GROUPS,
|
|
26868
|
+
id: CONTEXT_MENU_ID.FOR_FUNCTIONAL_GROUPS + ketcherId,
|
|
26860
26869
|
functionalGroups: [_functionalGroup]
|
|
26861
26870
|
};
|
|
26862
26871
|
}
|
|
@@ -26867,7 +26876,7 @@ function getMenuPropsForClosestItem(editor, closestItem) {
|
|
|
26867
26876
|
var sGroup = struct.sgroups.get(closestItem.id);
|
|
26868
26877
|
var _functionalGroup2 = ketcherCore.FunctionalGroup.findFunctionalGroupBySGroup(struct.functionalGroups, sGroup);
|
|
26869
26878
|
return _functionalGroup2 ? {
|
|
26870
|
-
id: sGroup instanceof ketcherCore.MonomerMicromolecule ? CONTEXT_MENU_ID.FOR_MACROMOLECULE : CONTEXT_MENU_ID.FOR_FUNCTIONAL_GROUPS,
|
|
26879
|
+
id: sGroup instanceof ketcherCore.MonomerMicromolecule ? CONTEXT_MENU_ID.FOR_MACROMOLECULE + ketcherId : CONTEXT_MENU_ID.FOR_FUNCTIONAL_GROUPS + ketcherId,
|
|
26871
26880
|
functionalGroups: [_functionalGroup2]
|
|
26872
26881
|
} : null;
|
|
26873
26882
|
}
|
|
@@ -26876,7 +26885,7 @@ function getMenuPropsForClosestItem(editor, closestItem) {
|
|
|
26876
26885
|
var _struct$rgroupAttachm;
|
|
26877
26886
|
var atomId = (_struct$rgroupAttachm = struct.rgroupAttachmentPoints.get(closestItem.id)) === null || _struct$rgroupAttachm === void 0 ? void 0 : _struct$rgroupAttachm.atomId;
|
|
26878
26887
|
return {
|
|
26879
|
-
id: CONTEXT_MENU_ID.FOR_R_GROUP_ATTACHMENT_POINT,
|
|
26888
|
+
id: CONTEXT_MENU_ID.FOR_R_GROUP_ATTACHMENT_POINT + ketcherId,
|
|
26880
26889
|
rgroupAttachmentPoints: [closestItem.id],
|
|
26881
26890
|
atomIds: typeof atomId === 'number' ? [atomId] : undefined
|
|
26882
26891
|
};
|
|
@@ -26887,7 +26896,7 @@ function getMenuPropsForClosestItem(editor, closestItem) {
|
|
|
26887
26896
|
var closestItemTyped = closestItem;
|
|
26888
26897
|
var tailId = closestItemTyped === null || closestItemTyped === void 0 || (_closestItemTyped$ref = closestItemTyped.ref) === null || _closestItemTyped$ref === void 0 ? void 0 : _closestItemTyped$ref.tailId;
|
|
26889
26898
|
return {
|
|
26890
|
-
id: CONTEXT_MENU_ID.FOR_MULTITAIL_ARROW,
|
|
26899
|
+
id: CONTEXT_MENU_ID.FOR_MULTITAIL_ARROW + ketcherId,
|
|
26891
26900
|
itemId: closestItem.id,
|
|
26892
26901
|
tailId: typeof tailId === 'number' ? tailId : null
|
|
26893
26902
|
};
|
|
@@ -26897,7 +26906,7 @@ function getMenuPropsForClosestItem(editor, closestItem) {
|
|
|
26897
26906
|
}
|
|
26898
26907
|
}
|
|
26899
26908
|
var IGNORED_MAPS_LIST = ['enhancedFlags'];
|
|
26900
|
-
function getMenuPropsForSelection(selection, selectedFunctionalGroups) {
|
|
26909
|
+
function getMenuPropsForSelection(selection, selectedFunctionalGroups, ketcherId) {
|
|
26901
26910
|
if (!selection) {
|
|
26902
26911
|
return null;
|
|
26903
26912
|
}
|
|
@@ -26910,35 +26919,35 @@ function getMenuPropsForSelection(selection, selectedFunctionalGroups) {
|
|
|
26910
26919
|
return fg.relatedSGroup instanceof ketcherCore.MonomerMicromolecule;
|
|
26911
26920
|
})) {
|
|
26912
26921
|
return {
|
|
26913
|
-
id: CONTEXT_MENU_ID.FOR_MACROMOLECULE,
|
|
26922
|
+
id: CONTEXT_MENU_ID.FOR_MACROMOLECULE + ketcherId,
|
|
26914
26923
|
functionalGroups: functionalGroups
|
|
26915
26924
|
};
|
|
26916
26925
|
}
|
|
26917
26926
|
return {
|
|
26918
|
-
id: CONTEXT_MENU_ID.FOR_FUNCTIONAL_GROUPS,
|
|
26927
|
+
id: CONTEXT_MENU_ID.FOR_FUNCTIONAL_GROUPS + ketcherId,
|
|
26919
26928
|
functionalGroups: functionalGroups
|
|
26920
26929
|
};
|
|
26921
26930
|
} else if (bonds && !atoms && !rgroupAttachmentPoints) {
|
|
26922
26931
|
return {
|
|
26923
|
-
id: CONTEXT_MENU_ID.FOR_BONDS,
|
|
26932
|
+
id: CONTEXT_MENU_ID.FOR_BONDS + ketcherId,
|
|
26924
26933
|
bondIds: bonds,
|
|
26925
26934
|
extraItemsSelected: !onlyHasProperty(selection, 'bonds', IGNORED_MAPS_LIST)
|
|
26926
26935
|
};
|
|
26927
26936
|
} else if (atoms && !bonds && !rgroupAttachmentPoints) {
|
|
26928
26937
|
return {
|
|
26929
|
-
id: CONTEXT_MENU_ID.FOR_ATOMS,
|
|
26938
|
+
id: CONTEXT_MENU_ID.FOR_ATOMS + ketcherId,
|
|
26930
26939
|
atomIds: atoms,
|
|
26931
26940
|
extraItemsSelected: !onlyHasProperty(selection, 'atoms', IGNORED_MAPS_LIST)
|
|
26932
26941
|
};
|
|
26933
26942
|
} else if (rgroupAttachmentPoints && !bonds && !atoms) {
|
|
26934
26943
|
return {
|
|
26935
|
-
id: CONTEXT_MENU_ID.FOR_R_GROUP_ATTACHMENT_POINT,
|
|
26944
|
+
id: CONTEXT_MENU_ID.FOR_R_GROUP_ATTACHMENT_POINT + ketcherId,
|
|
26936
26945
|
rgroupAttachmentPoints: rgroupAttachmentPoints,
|
|
26937
26946
|
extraItemsSelected: !onlyHasProperty(selection, 'rgroupAttachmentPoints', IGNORED_MAPS_LIST)
|
|
26938
26947
|
};
|
|
26939
26948
|
} else {
|
|
26940
26949
|
return {
|
|
26941
|
-
id: CONTEXT_MENU_ID.FOR_SELECTION,
|
|
26950
|
+
id: CONTEXT_MENU_ID.FOR_SELECTION + ketcherId,
|
|
26942
26951
|
bondIds: bonds,
|
|
26943
26952
|
atomIds: atoms,
|
|
26944
26953
|
rgroupAttachmentPoints: rgroupAttachmentPoints
|
|
@@ -26946,15 +26955,17 @@ function getMenuPropsForSelection(selection, selectedFunctionalGroups) {
|
|
|
26946
26955
|
}
|
|
26947
26956
|
}
|
|
26948
26957
|
|
|
26958
|
+
function ownKeys$I(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; }
|
|
26959
|
+
function _objectSpread$I(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$I(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$I(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
26949
26960
|
var ContextMenuTrigger = function ContextMenuTrigger(_ref) {
|
|
26950
26961
|
var children = _ref.children;
|
|
26951
26962
|
var _useAppContext = useAppContext(),
|
|
26952
|
-
|
|
26963
|
+
ketcherId = _useAppContext.ketcherId;
|
|
26953
26964
|
var _useContextMenu = reactContexify.useContextMenu(),
|
|
26954
26965
|
show = _useContextMenu.show;
|
|
26955
26966
|
var getSelectedGroupsInfo = React.useCallback(function () {
|
|
26956
26967
|
var _editor$selection;
|
|
26957
|
-
var editor =
|
|
26968
|
+
var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
26958
26969
|
var struct = editor.struct();
|
|
26959
26970
|
var selectedAtomIds = (_editor$selection = editor.selection()) === null || _editor$selection === void 0 ? void 0 : _editor$selection.atoms;
|
|
26960
26971
|
var selectedFunctionalGroups = new Map();
|
|
@@ -26971,10 +26982,11 @@ var ContextMenuTrigger = function ContextMenuTrigger(_ref) {
|
|
|
26971
26982
|
selectedFunctionalGroups: selectedFunctionalGroups,
|
|
26972
26983
|
selectedSGroupsIds: selectedSGroupsIds
|
|
26973
26984
|
};
|
|
26974
|
-
}, [
|
|
26985
|
+
}, [ketcherId]);
|
|
26975
26986
|
var handleDisplay = React.useCallback(function (event) {
|
|
26976
26987
|
event.preventDefault();
|
|
26977
|
-
var
|
|
26988
|
+
var ketcher = ketcherCore.ketcherProvider.getKetcher(ketcherId);
|
|
26989
|
+
var editor = ketcher.editor;
|
|
26978
26990
|
if (editor.render.options.viewOnlyMode) {
|
|
26979
26991
|
return;
|
|
26980
26992
|
}
|
|
@@ -27024,21 +27036,23 @@ var ContextMenuTrigger = function ContextMenuTrigger(_ref) {
|
|
|
27024
27036
|
}
|
|
27025
27037
|
case ContextMenuTriggerType.ClosestItem:
|
|
27026
27038
|
{
|
|
27027
|
-
showProps = getMenuPropsForClosestItem(editor, closestItem);
|
|
27039
|
+
showProps = getMenuPropsForClosestItem(editor, closestItem, ketcherId);
|
|
27028
27040
|
break;
|
|
27029
27041
|
}
|
|
27030
27042
|
case ContextMenuTriggerType.Selection:
|
|
27031
27043
|
{
|
|
27032
|
-
showProps = getMenuPropsForSelection(selection, selectedFunctionalGroups);
|
|
27044
|
+
showProps = getMenuPropsForSelection(selection, selectedFunctionalGroups, ketcherId);
|
|
27033
27045
|
break;
|
|
27034
27046
|
}
|
|
27035
27047
|
}
|
|
27036
27048
|
showProps && show({
|
|
27037
27049
|
id: showProps.id,
|
|
27038
27050
|
event: event,
|
|
27039
|
-
props: showProps
|
|
27051
|
+
props: _objectSpread$I(_objectSpread$I({}, showProps), {}, {
|
|
27052
|
+
ketcherId: ketcherId
|
|
27053
|
+
})
|
|
27040
27054
|
});
|
|
27041
|
-
}, [
|
|
27055
|
+
}, [getSelectedGroupsInfo, show, ketcherId]);
|
|
27042
27056
|
return jsxRuntime.jsx("div", {
|
|
27043
27057
|
style: {
|
|
27044
27058
|
height: '100%'
|
|
@@ -27385,7 +27399,7 @@ var InfoTooltip$1 = reactRedux.connect(function (store) {
|
|
|
27385
27399
|
};
|
|
27386
27400
|
})(InfoTooltip);
|
|
27387
27401
|
|
|
27388
|
-
var _excluded$o = ["Tag", "className", "
|
|
27402
|
+
var _excluded$o = ["Tag", "className", "ketcherId", "struct", "indigoVerification", "tool", "toolOpts", "options", "onInit", "onSelectionChange", "onElementEdit", "onEnhancedStereoEdit", "onQuickEdit", "onBondEdit", "onZoomIn", "onZoomOut", "onZoomChanged", "onRgroupEdit", "onSgroupEdit", "onRemoveFG", "onMessage", "onAromatizeStruct", "onDearomatizeStruct", "onAttachEdit", "onCipChange", "onConfirm", "onShowInfo", "onApiSettings", "showAttachmentPoints", "onUpdateFloatingTools", "onShowMacromoleculesErrorMessage", "serverSettings"];
|
|
27389
27403
|
function ownKeys$G(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; }
|
|
27390
27404
|
function _objectSpread$G(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$G(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$G(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
27391
27405
|
function _callSuper$9(t, o, e) { return o = _getPrototypeOf__default["default"](o), _possibleConstructorReturn__default["default"](t, _isNativeReflectConstruct$9() ? Reflect.construct(o, e || [], _getPrototypeOf__default["default"](t).constructor) : o.apply(t, e)); }
|
|
@@ -27506,8 +27520,10 @@ var StructEditor = function (_Component) {
|
|
|
27506
27520
|
key: "componentDidMount",
|
|
27507
27521
|
value: function componentDidMount() {
|
|
27508
27522
|
var _this4 = this;
|
|
27509
|
-
|
|
27510
|
-
var ketcher = ketcherCore.ketcherProvider.getKetcher();
|
|
27523
|
+
var prevKetcher = this.props.prevKetcherId ? ketcherCore.ketcherProvider.getKetcher(this.props.prevKetcherId) : undefined;
|
|
27524
|
+
var ketcher = ketcherCore.ketcherProvider.getKetcher(this.props.ketcherId);
|
|
27525
|
+
this.editor = new Editor$3(this.props.ketcherId, this.editorRef.current, _objectSpread$G({}, this.props.options), _objectSpread$G({}, this.props.serverSettings), prevKetcher === null || prevKetcher === void 0 ? void 0 : prevKetcher.editor);
|
|
27526
|
+
ketcher.addEditor(this.editor);
|
|
27511
27527
|
if (ketcher !== null && ketcher !== void 0 && ketcher.editor.macromoleculeConvertionError) {
|
|
27512
27528
|
this.props.onShowMacromoleculesErrorMessage(ketcher.editor.macromoleculeConvertionError);
|
|
27513
27529
|
ketcher.editor.clearMacromoleculeConvertionError();
|
|
@@ -27604,9 +27620,10 @@ var StructEditor = function (_Component) {
|
|
|
27604
27620
|
var _this$props = this.props,
|
|
27605
27621
|
_this$props$Tag = _this$props.Tag,
|
|
27606
27622
|
Tag = _this$props$Tag === void 0 ? 'div' : _this$props$Tag,
|
|
27607
|
-
className = _this$props.className
|
|
27608
|
-
|
|
27623
|
+
className = _this$props.className;
|
|
27624
|
+
_this$props.ketcherId;
|
|
27609
27625
|
_this$props.struct;
|
|
27626
|
+
var indigoVerification = _this$props.indigoVerification;
|
|
27610
27627
|
_this$props.tool;
|
|
27611
27628
|
_this$props.toolOpts;
|
|
27612
27629
|
_this$props.options;
|
|
@@ -28570,10 +28587,9 @@ function CustomQueryField(props) {
|
|
|
28570
28587
|
className: clsx__default["default"](_defineProperty__default["default"](_defineProperty__default["default"]({}, classes$A.dataError, dataError), classes$A.inputWrapper, true)),
|
|
28571
28588
|
children: jsxRuntime.jsx(Input$1, _objectSpread$E(_objectSpread$E({
|
|
28572
28589
|
type: "textarea",
|
|
28573
|
-
"data-testid": "
|
|
28590
|
+
"data-testid": "custom-query-value",
|
|
28574
28591
|
name: name,
|
|
28575
|
-
schema: desc
|
|
28576
|
-
"data-testId": "custom-query-value"
|
|
28592
|
+
schema: desc
|
|
28577
28593
|
}, fieldOpts), rest))
|
|
28578
28594
|
}), dataError && anchorEl && jsxRuntime.jsx(ErrorPopover, {
|
|
28579
28595
|
anchorEl: anchorEl,
|
|
@@ -29007,7 +29023,7 @@ var SaveButton$1 = function SaveButton(props) {
|
|
|
29007
29023
|
disabled = props.disabled,
|
|
29008
29024
|
testId = props.testId;
|
|
29009
29025
|
var _useAppContext = useAppContext(),
|
|
29010
|
-
|
|
29026
|
+
ketcherId = _useAppContext.ketcherId;
|
|
29011
29027
|
var saveFile = function saveFile() {
|
|
29012
29028
|
if (data) {
|
|
29013
29029
|
try {
|
|
@@ -29022,7 +29038,7 @@ var SaveButton$1 = function SaveButton(props) {
|
|
|
29022
29038
|
}
|
|
29023
29039
|
};
|
|
29024
29040
|
var saveImage = function saveImage() {
|
|
29025
|
-
var ketcherInstance =
|
|
29041
|
+
var ketcherInstance = ketcherCore.ketcherProvider.getKetcher(ketcherId);
|
|
29026
29042
|
if (options !== null && options !== void 0 && options.outputFormat) {
|
|
29027
29043
|
ketcherInstance.generateImage(data, options).then(function (blob) {
|
|
29028
29044
|
fileSaver$1.saveAs(blob, "".concat(filename, ".").concat(options.outputFormat));
|
|
@@ -30064,7 +30080,11 @@ function RecognizeDialog(prop) {
|
|
|
30064
30080
|
fragment: fragment
|
|
30065
30081
|
} : null;
|
|
30066
30082
|
};
|
|
30067
|
-
var
|
|
30083
|
+
var _useAppContext = useAppContext(),
|
|
30084
|
+
ketcherId = _useAppContext.ketcherId;
|
|
30085
|
+
var ketcher = React.useMemo(function () {
|
|
30086
|
+
return ketcherCore.ketcherProvider.getKetcher(ketcherId);
|
|
30087
|
+
}, [ketcherId]);
|
|
30068
30088
|
React.useEffect(function () {
|
|
30069
30089
|
onRecognize(file, version);
|
|
30070
30090
|
}, [file, version]);
|
|
@@ -30278,7 +30298,11 @@ var MiewDialog = function MiewDialog(_ref) {
|
|
|
30278
30298
|
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
30279
30299
|
isInitialized = _useState2[0],
|
|
30280
30300
|
setIsIsInitialized = _useState2[1];
|
|
30281
|
-
var
|
|
30301
|
+
var _useAppContext = useAppContext(),
|
|
30302
|
+
ketcherId = _useAppContext.ketcherId;
|
|
30303
|
+
var ketcher = React.useMemo(function () {
|
|
30304
|
+
return ketcherCore.ketcherProvider.getKetcher(ketcherId);
|
|
30305
|
+
}, [ketcherId]);
|
|
30282
30306
|
var isDisabled = React.useMemo(function () {
|
|
30283
30307
|
return !isInitialized || (ketcher === null || ketcher === void 0 ? void 0 : ketcher.editor.render.options.viewOnlyMode) === true;
|
|
30284
30308
|
}, [ketcher, isInitialized]);
|
|
@@ -31448,7 +31472,11 @@ var Open = function Open(props) {
|
|
|
31448
31472
|
_useState12 = _slicedToArray__default["default"](_useState11, 2),
|
|
31449
31473
|
isLoading = _useState12[0],
|
|
31450
31474
|
setIsLoading = _useState12[1];
|
|
31451
|
-
var
|
|
31475
|
+
var _useAppContext = useAppContext(),
|
|
31476
|
+
ketcherId = _useAppContext.ketcherId;
|
|
31477
|
+
var ketcher = React.useMemo(function () {
|
|
31478
|
+
return ketcherCore.ketcherProvider.getKetcher(ketcherId);
|
|
31479
|
+
}, [ketcherId]);
|
|
31452
31480
|
React.useEffect(function () {
|
|
31453
31481
|
if (server) {
|
|
31454
31482
|
fileOpener(server).then(function (chosenOpener) {
|
|
@@ -33126,8 +33154,8 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
33126
33154
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
33127
33155
|
var RemoveFG = function RemoveFG(props) {
|
|
33128
33156
|
var _useAppContext = useAppContext(),
|
|
33129
|
-
|
|
33130
|
-
var editor =
|
|
33157
|
+
ketcherId = _useAppContext.ketcherId;
|
|
33158
|
+
var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
|
|
33131
33159
|
var fgIds = props.fgIds;
|
|
33132
33160
|
var remove = function remove() {
|
|
33133
33161
|
if (fgIds.length > 0) {
|
|
@@ -33453,9 +33481,17 @@ var Attach = function (_Component) {
|
|
|
33453
33481
|
_this.tmpl = initTmpl(props.tmpl);
|
|
33454
33482
|
onInit(_this.tmpl.struct.name, _this.tmpl.props);
|
|
33455
33483
|
_this.onResult = _this.onResult.bind(_assertThisInitialized__default["default"](_this));
|
|
33484
|
+
var ketcher = ketcherCore.ketcherProvider.getKetcher(props.ketcherId);
|
|
33485
|
+
_this.oldKetcherEditor = ketcher.editor;
|
|
33456
33486
|
return _this;
|
|
33457
33487
|
}
|
|
33458
33488
|
_createClass__default["default"](Attach, [{
|
|
33489
|
+
key: "componentWillUnmount",
|
|
33490
|
+
value: function componentWillUnmount() {
|
|
33491
|
+
var ketcher = ketcherCore.ketcherProvider.getKetcher(this.props.ketcherId);
|
|
33492
|
+
ketcher.addEditor(this.oldKetcherEditor);
|
|
33493
|
+
}
|
|
33494
|
+
}, {
|
|
33459
33495
|
key: "onResult",
|
|
33460
33496
|
value: function onResult() {
|
|
33461
33497
|
var _this$props = this.props,
|
|
@@ -33523,6 +33559,7 @@ var Attach = function (_Component) {
|
|
|
33523
33559
|
children: [jsxRuntime.jsx(Editor$2, {
|
|
33524
33560
|
children: jsxRuntime.jsx(StructEditor, {
|
|
33525
33561
|
className: "structEditor",
|
|
33562
|
+
ketcherId: this.props.ketcherId,
|
|
33526
33563
|
struct: struct,
|
|
33527
33564
|
onAttachEdit: onAttachEdit,
|
|
33528
33565
|
tool: "attach",
|
|
@@ -34556,7 +34593,7 @@ var mapDispatchToProps$2 = function mapDispatchToProps(dispatch) {
|
|
|
34556
34593
|
}
|
|
34557
34594
|
};
|
|
34558
34595
|
};
|
|
34559
|
-
var mergeProps = function mergeProps(stateProps, dispatchProps) {
|
|
34596
|
+
var mergeProps = function mergeProps(stateProps, dispatchProps, ownProps) {
|
|
34560
34597
|
var prop = stateProps.modal && stateProps.modal.prop;
|
|
34561
34598
|
var initProps = prop ? fp.omit(['onResult', 'onCancel'], prop) : {};
|
|
34562
34599
|
return _objectSpread$5(_objectSpread$5({
|
|
@@ -34570,7 +34607,7 @@ var mergeProps = function mergeProps(stateProps, dispatchProps) {
|
|
|
34570
34607
|
if (prop && prop.onCancel) prop.onCancel();
|
|
34571
34608
|
dispatchProps.onCancel();
|
|
34572
34609
|
}
|
|
34573
|
-
});
|
|
34610
|
+
}, ownProps);
|
|
34574
34611
|
};
|
|
34575
34612
|
var ModalContainer = reactRedux.connect(mapStateToProps, mapDispatchToProps$2, mergeProps)(Modal);
|
|
34576
34613
|
|
|
@@ -34607,18 +34644,38 @@ function initEditor(dispatch, getState) {
|
|
|
34607
34644
|
};
|
|
34608
34645
|
var resetToSelect = function resetToSelect() {
|
|
34609
34646
|
var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
34610
|
-
return function (
|
|
34611
|
-
var
|
|
34612
|
-
|
|
34613
|
-
|
|
34614
|
-
|
|
34615
|
-
|
|
34616
|
-
|
|
34617
|
-
|
|
34618
|
-
|
|
34619
|
-
|
|
34620
|
-
|
|
34621
|
-
|
|
34647
|
+
return function () {
|
|
34648
|
+
var _ref = _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee(dispatch) {
|
|
34649
|
+
var _state$actionState;
|
|
34650
|
+
var state, activeTool, selectMode, resetOption;
|
|
34651
|
+
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
|
|
34652
|
+
while (1) switch (_context.prev = _context.next) {
|
|
34653
|
+
case 0:
|
|
34654
|
+
state = getState();
|
|
34655
|
+
activeTool = (_state$actionState = state.actionState) === null || _state$actionState === void 0 ? void 0 : _state$actionState.activeTool.tool;
|
|
34656
|
+
if (!(!activeTool || activeTool === 'select' && !force)) {
|
|
34657
|
+
_context.next = 4;
|
|
34658
|
+
break;
|
|
34659
|
+
}
|
|
34660
|
+
return _context.abrupt("return");
|
|
34661
|
+
case 4:
|
|
34662
|
+
selectMode = state.toolbar.visibleTools.select;
|
|
34663
|
+
resetOption = state.options.settings.resetToSelect;
|
|
34664
|
+
if (resetOption === true || resetOption === activeTool || force === true)
|
|
34665
|
+
dispatch({
|
|
34666
|
+
type: 'ACTION',
|
|
34667
|
+
action: configWithNonViewOnlyActionsDisabled[selectMode].action
|
|
34668
|
+
});else updateAction();
|
|
34669
|
+
case 7:
|
|
34670
|
+
case "end":
|
|
34671
|
+
return _context.stop();
|
|
34672
|
+
}
|
|
34673
|
+
}, _callee);
|
|
34674
|
+
}));
|
|
34675
|
+
return function (_x) {
|
|
34676
|
+
return _ref.apply(this, arguments);
|
|
34677
|
+
};
|
|
34678
|
+
}();
|
|
34622
34679
|
};
|
|
34623
34680
|
return {
|
|
34624
34681
|
onInit: function onInit(editor) {
|
|
@@ -34665,10 +34722,10 @@ function initEditor(dispatch, getState) {
|
|
|
34665
34722
|
var params = {
|
|
34666
34723
|
type: 'atom',
|
|
34667
34724
|
values: elem.values,
|
|
34668
|
-
disabledIds: Array.from(rgroups.entries()).reduce(function (acc,
|
|
34669
|
-
var
|
|
34670
|
-
rgid =
|
|
34671
|
-
rg =
|
|
34725
|
+
disabledIds: Array.from(rgroups.entries()).reduce(function (acc, _ref2) {
|
|
34726
|
+
var _ref3 = _slicedToArray__default["default"](_ref2, 2),
|
|
34727
|
+
rgid = _ref3[0],
|
|
34728
|
+
rg = _ref3[1];
|
|
34672
34729
|
if (rg.frags.has(elem.fragId)) acc.push(rgid);
|
|
34673
34730
|
return acc;
|
|
34674
34731
|
}, [])
|
|
@@ -34686,8 +34743,8 @@ function initEditor(dispatch, getState) {
|
|
|
34686
34743
|
}
|
|
34687
34744
|
return dlg.then(toElement);
|
|
34688
34745
|
},
|
|
34689
|
-
onEnhancedStereoEdit: function onEnhancedStereoEdit(
|
|
34690
|
-
var init = _extends__default["default"]({}, (_objectDestructuringEmpty__default["default"](
|
|
34746
|
+
onEnhancedStereoEdit: function onEnhancedStereoEdit(_ref4) {
|
|
34747
|
+
var init = _extends__default["default"]({}, (_objectDestructuringEmpty__default["default"](_ref4), _ref4));
|
|
34691
34748
|
return sleep(0).then(function () {
|
|
34692
34749
|
init = fromStereoLabel(init.stereoLabel);
|
|
34693
34750
|
return openDialog(dispatch, 'enhancedStereo', {
|
|
@@ -35125,6 +35182,9 @@ var App = function App(props) {
|
|
|
35125
35182
|
var dispatch = reactRedux.useDispatch();
|
|
35126
35183
|
var checkServer = props.checkServer;
|
|
35127
35184
|
useSubscriptionOnEvents();
|
|
35185
|
+
var _useAppContext = useAppContext(),
|
|
35186
|
+
ketcherId = _useAppContext.ketcherId,
|
|
35187
|
+
prevKetcherId = _useAppContext.prevKetcherId;
|
|
35128
35188
|
React.useEffect(function () {
|
|
35129
35189
|
checkServer();
|
|
35130
35190
|
dispatch(initFGTemplates());
|
|
@@ -35133,6 +35193,7 @@ var App = function App(props) {
|
|
|
35133
35193
|
dispatch(initLib([]));
|
|
35134
35194
|
dispatch(initSaltsAndSolvents([]));
|
|
35135
35195
|
dispatch(initFGroups([]));
|
|
35196
|
+
ketcherCore.ketcherProvider.removeKetcherInstance(ketcherId);
|
|
35136
35197
|
};
|
|
35137
35198
|
}, []);
|
|
35138
35199
|
var Editor = Editor$1;
|
|
@@ -35141,6 +35202,8 @@ var App = function App(props) {
|
|
|
35141
35202
|
children: jsxRuntime.jsxs("div", {
|
|
35142
35203
|
className: classes$1.app,
|
|
35143
35204
|
children: [jsxRuntime.jsx(AppHiddenContainer, {}), jsxRuntime.jsx(Editor, {
|
|
35205
|
+
prevKetcherId: prevKetcherId,
|
|
35206
|
+
ketcherId: ketcherId,
|
|
35144
35207
|
className: classes$1.canvas
|
|
35145
35208
|
}), jsxRuntime.jsx(TopToolbarContainer, {
|
|
35146
35209
|
className: classes$1.top,
|
|
@@ -35151,7 +35214,9 @@ var App = function App(props) {
|
|
|
35151
35214
|
className: classes$1.bottom
|
|
35152
35215
|
}), jsxRuntime.jsx(RightToolbarContainer, {
|
|
35153
35216
|
className: classes$1.right
|
|
35154
|
-
}), jsxRuntime.jsx(AppClipArea, {}), jsxRuntime.jsx(ModalContainer, {
|
|
35217
|
+
}), jsxRuntime.jsx(AppClipArea, {}), jsxRuntime.jsx(ModalContainer, {
|
|
35218
|
+
ketcherId: ketcherId
|
|
35219
|
+
}), jsxRuntime.jsx(AbbreviationLookupContainer, {})]
|
|
35155
35220
|
})
|
|
35156
35221
|
});
|
|
35157
35222
|
};
|
|
@@ -35201,19 +35266,12 @@ function handleRightClick(getState) {
|
|
|
35201
35266
|
}
|
|
35202
35267
|
}
|
|
35203
35268
|
|
|
35204
|
-
function initApp(element, appRoot, staticResourcesUrl, options, server, resolve, togglerComponent) {
|
|
35205
|
-
var ketcherRef = null;
|
|
35206
|
-
var setKetcher = function setKetcher(ketcher) {
|
|
35207
|
-
ketcherRef = ketcher;
|
|
35208
|
-
};
|
|
35209
|
-
var ketcherId = _.uniqueId();
|
|
35269
|
+
function initApp(prevKetcherId, ketcherId, element, appRoot, staticResourcesUrl, options, server, resolve, togglerComponent) {
|
|
35210
35270
|
var getServerSetter;
|
|
35211
35271
|
var setEditor = function setEditor(editor) {
|
|
35212
35272
|
var setServer = getServerSetter();
|
|
35213
35273
|
resolve({
|
|
35214
35274
|
editor: editor,
|
|
35215
|
-
setKetcher: setKetcher,
|
|
35216
|
-
ketcherId: ketcherId,
|
|
35217
35275
|
setServer: setServer
|
|
35218
35276
|
});
|
|
35219
35277
|
};
|
|
@@ -35238,10 +35296,8 @@ function initApp(element, appRoot, staticResourcesUrl, options, server, resolve,
|
|
|
35238
35296
|
},
|
|
35239
35297
|
children: jsxRuntime.jsx(appContext.Provider, {
|
|
35240
35298
|
value: {
|
|
35241
|
-
|
|
35242
|
-
|
|
35243
|
-
},
|
|
35244
|
-
ketcherId: ketcherId
|
|
35299
|
+
ketcherId: ketcherId,
|
|
35300
|
+
prevKetcherId: prevKetcherId
|
|
35245
35301
|
},
|
|
35246
35302
|
children: jsxRuntime.jsx(AppContainer, {
|
|
35247
35303
|
togglerComponent: togglerComponent
|
|
@@ -35279,35 +35335,23 @@ var KetcherBuilder = function () {
|
|
|
35279
35335
|
function KetcherBuilder() {
|
|
35280
35336
|
_classCallCheck__default["default"](this, KetcherBuilder);
|
|
35281
35337
|
this.structService = null;
|
|
35282
|
-
this.editor = null;
|
|
35283
35338
|
this.serviceMode = null;
|
|
35284
35339
|
this.formatterFactory = null;
|
|
35285
35340
|
}
|
|
35286
35341
|
_createClass__default["default"](KetcherBuilder, [{
|
|
35287
35342
|
key: "appendApiAsync",
|
|
35288
|
-
value: function () {
|
|
35289
|
-
|
|
35290
|
-
|
|
35291
|
-
|
|
35292
|
-
|
|
35293
|
-
this.structService = createApi(structServiceProvider, ketcherCore.DefaultStructServiceOptions);
|
|
35294
|
-
case 1:
|
|
35295
|
-
case "end":
|
|
35296
|
-
return _context.stop();
|
|
35297
|
-
}
|
|
35298
|
-
}, _callee, this);
|
|
35299
|
-
}));
|
|
35300
|
-
function appendApiAsync(_x) {
|
|
35301
|
-
return _appendApiAsync.apply(this, arguments);
|
|
35302
|
-
}
|
|
35303
|
-
return appendApiAsync;
|
|
35304
|
-
}()
|
|
35343
|
+
value: function appendApiAsync(structServiceProvider) {
|
|
35344
|
+
this.structService = createApi(structServiceProvider, ketcherCore.DefaultStructServiceOptions);
|
|
35345
|
+
this.formatterFactory = new ketcherCore.FormatterFactory(this.structService);
|
|
35346
|
+
return this.structService;
|
|
35347
|
+
}
|
|
35305
35348
|
}, {
|
|
35306
35349
|
key: "reinitializeApi",
|
|
35307
|
-
value: function reinitializeApi(structServiceProvider, setStructServiceToStore) {
|
|
35350
|
+
value: function reinitializeApi(ketcherId, structServiceProvider, setStructServiceToStore) {
|
|
35308
35351
|
var _this = this;
|
|
35309
35352
|
var oldStructService = this.structService;
|
|
35310
35353
|
this.structService = createApi(structServiceProvider, ketcherCore.DefaultStructServiceOptions);
|
|
35354
|
+
this.structService.addKetcherId(ketcherId);
|
|
35311
35355
|
window.addEventListener(STRUCT_SERVICE_INITIALIZED_EVENT, function () {
|
|
35312
35356
|
var _oldStructService$des;
|
|
35313
35357
|
oldStructService === null || oldStructService === void 0 || (_oldStructService$des = oldStructService.destroy) === null || _oldStructService$des === void 0 || _oldStructService$des.call(oldStructService);
|
|
@@ -35315,7 +35359,7 @@ var KetcherBuilder = function () {
|
|
|
35315
35359
|
ketcherCore.KetcherLogger.warn('Structure service is not reinitialized');
|
|
35316
35360
|
return;
|
|
35317
35361
|
}
|
|
35318
|
-
var ketcher = ketcherCore.ketcherProvider.getKetcher();
|
|
35362
|
+
var ketcher = ketcherCore.ketcherProvider.getKetcher(ketcherId);
|
|
35319
35363
|
ketcher.reinitializeIndigo(_this.structService);
|
|
35320
35364
|
IndigoProvider.setIndigo(_this.structService);
|
|
35321
35365
|
setStructServiceToStore(_this.structService);
|
|
@@ -35332,47 +35376,41 @@ var KetcherBuilder = function () {
|
|
|
35332
35376
|
}, {
|
|
35333
35377
|
key: "appendUiAsync",
|
|
35334
35378
|
value: function () {
|
|
35335
|
-
var _appendUiAsync = _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function
|
|
35336
|
-
var structService, cleanup, _yield$Promise, editor,
|
|
35337
|
-
return _regeneratorRuntime__default["default"].wrap(function
|
|
35338
|
-
while (1) switch (
|
|
35379
|
+
var _appendUiAsync = _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee(prevKetcherId, ketcherId, element, appRoot, staticResourcesUrl, errorHandler, buttons, togglerComponent, customButtons) {
|
|
35380
|
+
var structService, cleanup, _yield$Promise, editor, setServer;
|
|
35381
|
+
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
|
|
35382
|
+
while (1) switch (_context.prev = _context.next) {
|
|
35339
35383
|
case 0:
|
|
35340
35384
|
structService = this.structService;
|
|
35341
35385
|
cleanup = null;
|
|
35342
|
-
|
|
35386
|
+
_context.next = 4;
|
|
35343
35387
|
return new Promise(function (resolve) {
|
|
35344
|
-
cleanup = initApp(element, appRoot, staticResourcesUrl, {
|
|
35388
|
+
cleanup = initApp(prevKetcherId, ketcherId, element, appRoot, staticResourcesUrl, {
|
|
35345
35389
|
buttons: buttons || {},
|
|
35346
35390
|
errorHandler: errorHandler || null,
|
|
35347
|
-
version: "3.5.0-rc.
|
|
35348
|
-
buildDate: "2025-06-
|
|
35391
|
+
version: "3.5.0-rc.4" ,
|
|
35392
|
+
buildDate: "2025-06-18T16:34:40" ,
|
|
35349
35393
|
buildNumber: '',
|
|
35350
35394
|
customButtons: customButtons || []
|
|
35351
35395
|
}, structService, resolve, togglerComponent);
|
|
35352
35396
|
});
|
|
35353
35397
|
case 4:
|
|
35354
|
-
_yield$Promise =
|
|
35398
|
+
_yield$Promise = _context.sent;
|
|
35355
35399
|
editor = _yield$Promise.editor;
|
|
35356
|
-
setKetcher = _yield$Promise.setKetcher;
|
|
35357
|
-
ketcherId = _yield$Promise.ketcherId;
|
|
35358
35400
|
setServer = _yield$Promise.setServer;
|
|
35359
|
-
|
|
35360
|
-
this.editor.errorHandler = errorHandler && typeof errorHandler === 'function' ? errorHandler :
|
|
35401
|
+
editor.errorHandler = errorHandler && typeof errorHandler === 'function' ? errorHandler :
|
|
35361
35402
|
function () {};
|
|
35362
|
-
|
|
35363
|
-
return _context2.abrupt("return", {
|
|
35364
|
-
setKetcher: setKetcher,
|
|
35365
|
-
ketcherId: ketcherId,
|
|
35403
|
+
return _context.abrupt("return", {
|
|
35366
35404
|
cleanup: cleanup,
|
|
35367
35405
|
setServer: setServer
|
|
35368
35406
|
});
|
|
35369
|
-
case
|
|
35407
|
+
case 9:
|
|
35370
35408
|
case "end":
|
|
35371
|
-
return
|
|
35409
|
+
return _context.stop();
|
|
35372
35410
|
}
|
|
35373
|
-
},
|
|
35411
|
+
}, _callee, this);
|
|
35374
35412
|
}));
|
|
35375
|
-
function appendUiAsync(_x2, _x3, _x4, _x5, _x6, _x7, _x8) {
|
|
35413
|
+
function appendUiAsync(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8, _x9) {
|
|
35376
35414
|
return _appendUiAsync.apply(this, arguments);
|
|
35377
35415
|
}
|
|
35378
35416
|
return appendUiAsync;
|
|
@@ -35389,11 +35427,11 @@ var KetcherBuilder = function () {
|
|
|
35389
35427
|
if (!this.formatterFactory) {
|
|
35390
35428
|
throw new Error('You should append StructureServiceFactory before building');
|
|
35391
35429
|
}
|
|
35392
|
-
var ketcher = new ketcherCore.Ketcher(this.
|
|
35430
|
+
var ketcher = new ketcherCore.Ketcher(this.structService, this.formatterFactory);
|
|
35393
35431
|
ketcher[this.serviceMode] = true;
|
|
35394
35432
|
var userInput = document.location.search;
|
|
35395
35433
|
if (userInput === '__proto__' || userInput === 'constructor' || userInput === 'prototype') {
|
|
35396
|
-
return;
|
|
35434
|
+
return ketcher;
|
|
35397
35435
|
}
|
|
35398
35436
|
var params = new URLSearchParams(document.location.search);
|
|
35399
35437
|
var initialMol = params.get('moll');
|
|
@@ -35401,7 +35439,7 @@ var KetcherBuilder = function () {
|
|
|
35401
35439
|
ketcher.setMolecule(initialMol);
|
|
35402
35440
|
}
|
|
35403
35441
|
IndigoProvider.setIndigo(this.structService);
|
|
35404
|
-
ketcherCore.ketcherProvider.
|
|
35442
|
+
ketcherCore.ketcherProvider.addKetcherInstance(ketcher);
|
|
35405
35443
|
return ketcher;
|
|
35406
35444
|
}
|
|
35407
35445
|
}]);
|
|
@@ -35413,36 +35451,29 @@ function buildKetcherAsync(_x) {
|
|
|
35413
35451
|
}
|
|
35414
35452
|
function _buildKetcherAsync() {
|
|
35415
35453
|
_buildKetcherAsync = _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee(_ref) {
|
|
35416
|
-
var element, appRoot, staticResourcesUrl, structServiceProvider, buttons, errorHandler, togglerComponent, customButtons, builder, _yield$builder$append,
|
|
35454
|
+
var element, appRoot, staticResourcesUrl, structServiceProvider, buttons, errorHandler, togglerComponent, customButtons, prevKetcherId, builder, structService, ketcher, _yield$builder$append, cleanup, setServer;
|
|
35417
35455
|
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
|
|
35418
35456
|
while (1) switch (_context.prev = _context.next) {
|
|
35419
35457
|
case 0:
|
|
35420
|
-
element = _ref.element, appRoot = _ref.appRoot, staticResourcesUrl = _ref.staticResourcesUrl, structServiceProvider = _ref.structServiceProvider, buttons = _ref.buttons, errorHandler = _ref.errorHandler, togglerComponent = _ref.togglerComponent, customButtons = _ref.customButtons;
|
|
35458
|
+
element = _ref.element, appRoot = _ref.appRoot, staticResourcesUrl = _ref.staticResourcesUrl, structServiceProvider = _ref.structServiceProvider, buttons = _ref.buttons, errorHandler = _ref.errorHandler, togglerComponent = _ref.togglerComponent, customButtons = _ref.customButtons, prevKetcherId = _ref.ketcherId;
|
|
35421
35459
|
builder = new KetcherBuilder();
|
|
35422
|
-
|
|
35423
|
-
return builder.appendApiAsync(structServiceProvider);
|
|
35424
|
-
case 4:
|
|
35460
|
+
structService = builder.appendApiAsync(structServiceProvider);
|
|
35425
35461
|
builder.appendServiceMode(structServiceProvider.mode);
|
|
35426
|
-
|
|
35427
|
-
|
|
35428
|
-
|
|
35462
|
+
ketcher = builder.build();
|
|
35463
|
+
structService.addKetcherId(ketcher.id);
|
|
35464
|
+
_context.next = 8;
|
|
35465
|
+
return builder.appendUiAsync(prevKetcherId, ketcher.id, element, appRoot, staticResourcesUrl, errorHandler, buttons, togglerComponent, customButtons);
|
|
35466
|
+
case 8:
|
|
35429
35467
|
_yield$builder$append = _context.sent;
|
|
35430
|
-
setKetcher = _yield$builder$append.setKetcher;
|
|
35431
|
-
ketcherId = _yield$builder$append.ketcherId;
|
|
35432
35468
|
cleanup = _yield$builder$append.cleanup;
|
|
35433
35469
|
setServer = _yield$builder$append.setServer;
|
|
35434
|
-
ketcher = builder.build();
|
|
35435
|
-
if (ketcher) {
|
|
35436
|
-
setKetcher(ketcher);
|
|
35437
|
-
}
|
|
35438
35470
|
return _context.abrupt("return", {
|
|
35439
35471
|
ketcher: ketcher,
|
|
35440
|
-
ketcherId: ketcherId,
|
|
35441
35472
|
cleanup: cleanup,
|
|
35442
35473
|
builder: builder,
|
|
35443
35474
|
setServer: setServer
|
|
35444
35475
|
});
|
|
35445
|
-
case
|
|
35476
|
+
case 12:
|
|
35446
35477
|
case "end":
|
|
35447
35478
|
return _context.stop();
|
|
35448
35479
|
}
|
|
@@ -35474,31 +35505,48 @@ function MicromoleculesEditor(props) {
|
|
|
35474
35505
|
width = _useResizeObserver.width;
|
|
35475
35506
|
React.useEffect(function () {
|
|
35476
35507
|
var _ketcherBuilderRef$cu;
|
|
35477
|
-
|
|
35508
|
+
if (!props.ketcherId) {
|
|
35509
|
+
return;
|
|
35510
|
+
}
|
|
35511
|
+
(_ketcherBuilderRef$cu = ketcherBuilderRef.current) === null || _ketcherBuilderRef$cu === void 0 || _ketcherBuilderRef$cu.reinitializeApi(props.ketcherId, props.structServiceProvider, setServerRef.current);
|
|
35478
35512
|
}, [structServiceProvider]);
|
|
35479
|
-
var initKetcher = function
|
|
35480
|
-
var
|
|
35481
|
-
|
|
35482
|
-
|
|
35483
|
-
|
|
35484
|
-
|
|
35513
|
+
var initKetcher = function () {
|
|
35514
|
+
var _ref = _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee() {
|
|
35515
|
+
var _initPromiseRef$curre;
|
|
35516
|
+
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
|
|
35517
|
+
while (1) switch (_context.prev = _context.next) {
|
|
35518
|
+
case 0:
|
|
35519
|
+
appRootRef.current = client.createRoot(rootElRef.current);
|
|
35520
|
+
initPromiseRef.current = buildKetcherAsync(_objectSpread$1(_objectSpread$1({}, props), {}, {
|
|
35521
|
+
element: rootElRef.current,
|
|
35522
|
+
appRoot: appRootRef.current
|
|
35523
|
+
}));
|
|
35524
|
+
(_initPromiseRef$curre = initPromiseRef.current) === null || _initPromiseRef$curre === void 0 || _initPromiseRef$curre.then(function (_ref2) {
|
|
35525
|
+
var _props$onSetKetcherId;
|
|
35526
|
+
var ketcher = _ref2.ketcher,
|
|
35527
|
+
cleanup = _ref2.cleanup,
|
|
35528
|
+
builder = _ref2.builder,
|
|
35529
|
+
setServer = _ref2.setServer;
|
|
35530
|
+
cleanupRef.current = cleanup;
|
|
35531
|
+
ketcherBuilderRef.current = builder;
|
|
35532
|
+
setServerRef.current = setServer;
|
|
35533
|
+
(_props$onSetKetcherId = props.onSetKetcherId) === null || _props$onSetKetcherId === void 0 || _props$onSetKetcherId.call(props, ketcher.id);
|
|
35534
|
+
if (typeof props.onInit === 'function' && ketcher) {
|
|
35535
|
+
props.onInit(ketcher);
|
|
35536
|
+
var ketcherInitEvent = new Event(ketcherInitEventName(ketcher.id));
|
|
35537
|
+
window.dispatchEvent(ketcherInitEvent);
|
|
35538
|
+
}
|
|
35539
|
+
});
|
|
35540
|
+
case 3:
|
|
35541
|
+
case "end":
|
|
35542
|
+
return _context.stop();
|
|
35543
|
+
}
|
|
35544
|
+
}, _callee);
|
|
35485
35545
|
}));
|
|
35486
|
-
|
|
35487
|
-
|
|
35488
|
-
|
|
35489
|
-
|
|
35490
|
-
builder = _ref.builder,
|
|
35491
|
-
setServer = _ref.setServer;
|
|
35492
|
-
cleanupRef.current = cleanup;
|
|
35493
|
-
ketcherBuilderRef.current = builder;
|
|
35494
|
-
setServerRef.current = setServer;
|
|
35495
|
-
if (typeof props.onInit === 'function' && ketcher) {
|
|
35496
|
-
props.onInit(ketcher);
|
|
35497
|
-
var ketcherInitEvent = new Event(ketcherInitEventName(ketcherId));
|
|
35498
|
-
window.dispatchEvent(ketcherInitEvent);
|
|
35499
|
-
}
|
|
35500
|
-
});
|
|
35501
|
-
};
|
|
35546
|
+
return function initKetcher() {
|
|
35547
|
+
return _ref.apply(this, arguments);
|
|
35548
|
+
};
|
|
35549
|
+
}();
|
|
35502
35550
|
React.useEffect(function () {
|
|
35503
35551
|
if (initPromiseRef.current === null) {
|
|
35504
35552
|
initKetcher();
|
|
@@ -35635,9 +35683,8 @@ var ModeControl = function ModeControl(_ref3) {
|
|
|
35635
35683
|
|
|
35636
35684
|
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; }
|
|
35637
35685
|
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__default["default"](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; }
|
|
35638
|
-
var MacromoleculesEditorComponent = React.lazy(
|
|
35639
|
-
function () {
|
|
35640
|
-
return Promise.resolve().then(function () { return require('./index.modern-c9d28966.js'); });
|
|
35686
|
+
var MacromoleculesEditorComponent = React.lazy(function () {
|
|
35687
|
+
return Promise.resolve().then(function () { return require('./index.modern-2314b276.js'); });
|
|
35641
35688
|
});
|
|
35642
35689
|
var Editor = function Editor(props) {
|
|
35643
35690
|
var _useState = React.useState(false),
|
|
@@ -35652,6 +35699,10 @@ var Editor = function Editor(props) {
|
|
|
35652
35699
|
_useState6 = _slicedToArray__default["default"](_useState5, 2),
|
|
35653
35700
|
macromoleculesEditor = _useState6[0],
|
|
35654
35701
|
setMacromoleculesEditor = _useState6[1];
|
|
35702
|
+
var _useState7 = React.useState(''),
|
|
35703
|
+
_useState8 = _slicedToArray__default["default"](_useState7, 2),
|
|
35704
|
+
ketcherId = _useState8[0],
|
|
35705
|
+
setKetcherId = _useState8[1];
|
|
35655
35706
|
var togglePolymerEditor = function togglePolymerEditor(toggleValue) {
|
|
35656
35707
|
setShowPolymerEditor(toggleValue);
|
|
35657
35708
|
window.isPolymerEditorTurnedOn = toggleValue;
|
|
@@ -35694,8 +35745,9 @@ var Editor = function Editor(props) {
|
|
|
35694
35745
|
className: styles.switchingLoader,
|
|
35695
35746
|
children: jsxRuntime.jsx(LoadingCircles, {})
|
|
35696
35747
|
}),
|
|
35697
|
-
children: jsxRuntime.jsx(MacromoleculesEditorComponent, {
|
|
35748
|
+
children: ketcherId && jsxRuntime.jsx(MacromoleculesEditorComponent, {
|
|
35698
35749
|
togglerComponent: togglerComponent,
|
|
35750
|
+
ketcherId: ketcherId,
|
|
35699
35751
|
isMacromoleculesEditorTurnedOn: showPolymerEditor,
|
|
35700
35752
|
onInit: onInitMacromoleculesEditor
|
|
35701
35753
|
})
|
|
@@ -35706,6 +35758,8 @@ var Editor = function Editor(props) {
|
|
|
35706
35758
|
display: showPolymerEditor ? 'none' : undefined
|
|
35707
35759
|
},
|
|
35708
35760
|
children: jsxRuntime.jsx(MicromoleculesEditor, _objectSpread(_objectSpread({}, props), {}, {
|
|
35761
|
+
ketcherId: ketcherId,
|
|
35762
|
+
onSetKetcherId: setKetcherId,
|
|
35709
35763
|
togglerComponent: togglerComponent,
|
|
35710
35764
|
onInit: onInitMoleculesEditor
|
|
35711
35765
|
}))
|