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.
Files changed (51) hide show
  1. package/dist/Editor.d.ts +1 -1
  2. package/dist/MicromoleculesEditor.d.ts +1 -0
  3. package/dist/cjs/Editor.d.ts +1 -1
  4. package/dist/cjs/MicromoleculesEditor.d.ts +1 -0
  5. package/dist/cjs/components/StructRender/types.d.ts +1 -2
  6. package/dist/cjs/contexts/appContext.d.ts +1 -2
  7. package/dist/cjs/index.js +618 -564
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/{index.modern-c9d28966.js → index.modern-2314b276.js} +66 -40
  10. package/dist/cjs/index.modern-2314b276.js.map +1 -0
  11. package/dist/cjs/script/builders/ketcher/ButtonName.d.ts +1 -1
  12. package/dist/cjs/script/builders/ketcher/KetcherBuilder.d.ts +4 -7
  13. package/dist/cjs/script/editor/Editor.d.ts +2 -1
  14. package/dist/cjs/script/editor/tool/arrow/arrow.types.d.ts +1 -4
  15. package/dist/cjs/script/editor/tool/arrow/multitailArrowMoveTool.d.ts +1 -1
  16. package/dist/cjs/script/editor/tool/arrow/reactionArrowMoveTool.d.ts +1 -1
  17. package/dist/cjs/script/index.d.ts +5 -5
  18. package/dist/cjs/script/ui/App/initApp.d.ts +2 -4
  19. package/dist/cjs/script/ui/dialog/template/template-attach.d.ts +2 -0
  20. package/dist/cjs/script/ui/state/hotkeys.d.ts +1 -1
  21. package/dist/cjs/script/ui/views/components/ContextMenu/ContextMenuTrigger.utils.d.ts +2 -2
  22. package/dist/cjs/script/ui/views/components/ContextMenu/contextMenu.types.d.ts +8 -8
  23. package/dist/cjs/script/ui/views/modal/Modal.container.d.ts +2 -2
  24. package/dist/cjs/script/ui/views/modal/Modal.d.ts +2 -2
  25. package/dist/cjs/script/ui/views/modal/modal.types.d.ts +4 -1
  26. package/dist/cjs/script/ui/views/toolbars/toolbar.types.d.ts +1 -1
  27. package/dist/components/StructRender/types.d.ts +1 -2
  28. package/dist/contexts/appContext.d.ts +1 -2
  29. package/dist/index.js +620 -566
  30. package/dist/index.js.map +1 -1
  31. package/dist/{index.modern-cfbb3cc4.js → index.modern-723c68e1.js} +65 -39
  32. package/dist/index.modern-723c68e1.js.map +1 -0
  33. package/dist/script/builders/ketcher/ButtonName.d.ts +1 -1
  34. package/dist/script/builders/ketcher/KetcherBuilder.d.ts +4 -7
  35. package/dist/script/editor/Editor.d.ts +2 -1
  36. package/dist/script/editor/tool/arrow/arrow.types.d.ts +1 -4
  37. package/dist/script/editor/tool/arrow/multitailArrowMoveTool.d.ts +1 -1
  38. package/dist/script/editor/tool/arrow/reactionArrowMoveTool.d.ts +1 -1
  39. package/dist/script/index.d.ts +5 -5
  40. package/dist/script/ui/App/initApp.d.ts +2 -4
  41. package/dist/script/ui/dialog/template/template-attach.d.ts +2 -0
  42. package/dist/script/ui/state/hotkeys.d.ts +1 -1
  43. package/dist/script/ui/views/components/ContextMenu/ContextMenuTrigger.utils.d.ts +2 -2
  44. package/dist/script/ui/views/components/ContextMenu/contextMenu.types.d.ts +8 -8
  45. package/dist/script/ui/views/modal/Modal.container.d.ts +2 -2
  46. package/dist/script/ui/views/modal/Modal.d.ts +2 -2
  47. package/dist/script/ui/views/modal/modal.types.d.ts +4 -1
  48. package/dist/script/ui/views/toolbars/toolbar.types.d.ts +1 -1
  49. package/package.json +1 -1
  50. package/dist/cjs/index.modern-c9d28966.js.map +0 -1
  51. 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, server, options, struct, errorHandler, factory, service, structStr, ketcher, image, item;
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 = 6;
274
- factory = new ketcherCore.FormatterFactory(server);
275
- service = factory.create('ket', options);
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 15:
283
+ case 11:
288
284
  image = _context.sent;
289
285
  item = new ClipboardItem(_defineProperty__default["default"]({}, image.type, image));
290
- _context.next = 19;
286
+ _context.next = 15;
291
287
  return navigator.clipboard.write([item]);
292
- case 19:
293
- _context.next = 25;
288
+ case 15:
289
+ _context.next = 21;
294
290
  break;
295
- case 21:
296
- _context.prev = 21;
297
- _context.t0 = _context["catch"](6);
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 25:
296
+ case 21:
301
297
  case "end":
302
298
  return _context.stop();
303
299
  }
304
- }, _callee, null, [[6, 21]]);
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$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; }
708
- 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; }
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$1v(_objectSpread$1v(_objectSpread$1v(_objectSpread$1v(_objectSpread$1v({}, editor), render), server), debug), miew)
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$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; }
1234
- 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; }
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$1u(_objectSpread$1u({}, defaultServerOptions), seriliazedServerOptions);
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$1u(_objectSpread$1u({}, newOptions), {}, {
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$1u(_objectSpread$1u({}, state), {}, {
1367
- app: _objectSpread$1u(_objectSpread$1u({}, state.app), data)
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$1u(_objectSpread$1u({}, state), {}, {
1371
- settings: _objectSpread$1u(_objectSpread$1u({}, state.settings), data)
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$1u(_objectSpread$1u({}, state), {}, {
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$1u(_objectSpread$1u({}, state), {}, {
1378
- analyse: _objectSpread$1u(_objectSpread$1u(_objectSpread$1u({}, state.analyse), data), {}, {
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$1u(_objectSpread$1u({}, state), {}, {
1383
- analyse: _objectSpread$1u(_objectSpread$1u({}, state.analyse), {}, {
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$1u(_objectSpread$1u({}, state), {}, {
1388
- recognize: _objectSpread$1u(_objectSpread$1u({}, state.recognize), data)
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$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; }
1693
- 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; }
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$1t(_objectSpread$1t({}, payload), {}, {
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$1t(_objectSpread$1t({}, payload), {}, {
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$1t(_objectSpread$1t({}, state), {}, {
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$1t(_objectSpread$1t({}, state), {}, {
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$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; }
1902
- 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; }
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$1s(_objectSpread$1s({}, state), {}, {
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$1s(_objectSpread$1s({}, state), {}, {
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$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; }
1952
- 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; }
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$1r({}, sdataCustomSchema), {
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$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; }
2297
- 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; }
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$1q({
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$1q({
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$1q({}, props);
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$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; }
3226
- 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; }
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$1p(_objectSpread$1p({}, serverSettings), otherOptions);
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$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; }
3413
- 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; }
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$1o(_objectSpread$1o({}, selection), {}, {
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.3\n", "/documentation/help.md#ketcher-overview"))) === null || _window$open === void 0 ? void 0 : _window$open.focus();
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$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; }
3914
- 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; }
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$1n(_objectSpread$1n({}, item), {}, {
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$1n(_objectSpread$1n({}, item), {}, {
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: function action(editor) {
3993
- editor.undo();
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: function action(editor) {
4006
- editor.redo();
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$1n(_objectSpread$1n(_objectSpread$1n(_objectSpread$1n(_objectSpread$1n(_objectSpread$1n(_objectSpread$1n(_objectSpread$1n(_objectSpread$1n(_objectSpread$1n({}, config), config$1), debugObj), tools), atoms), zoom), templates), functionalGroupsLib), fullscreen), help)).reduce(function (acc, _ref2) {
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$1n(_objectSpread$1n({}, acc), {}, _defineProperty__default["default"]({}, key, updateConfigItem(item)));
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$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; }
8265
- 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; }
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$1m(_objectSpread$1m({}, props), {}, {
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$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; }
8278
- 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; }
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$1l(_objectSpread$1l({}, props), {}, {
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$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; }
8314
- 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; }
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$1k(_objectSpread$1k({}, props), {}, {
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$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; }
8386
- 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; }
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$1j({}, props));
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$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; }
8473
- 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__default["default"](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; }
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$1i(_objectSpread$1i({
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$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; }
11103
- 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(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; }
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$1h(_objectSpread$1h({}, ctx), {}, {
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$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; }
13424
- 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; }
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$1g(_objectSpread$1g({}, actionButtonProps), {}, {
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$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; }
13609
- 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; }
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$1f({}, rest)), jsxRuntime.jsx(ToolbarGroupItem, _objectSpread$1f({
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$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; }
13633
- 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; }
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$1e(_objectSpread$1e({}, props), {}, {
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$1e(_objectSpread$1e({}, state), {}, {
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$1e(_objectSpread$1e(_objectSpread$1e({}, state.parentModal.prop), state.parentModal.form.result), {}, {
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$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; }
13685
- 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; }
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$1d(_objectSpread$1d({}, attach), {}, {
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$1d(_objectSpread$1d({}, state), {}, {
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$1d(_objectSpread$1d({}, currentState), {}, {
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$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; }
13905
- 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; }
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$1c(_objectSpread$1c({}, state), {}, {
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$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; }
13944
- 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; }
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$1b(_objectSpread$1b({}, params), {}, {
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$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; }
14299
- 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; }
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$1a(_objectSpread$1a({}, state), payload);
14314
+ return _objectSpread$1b(_objectSpread$1b({}, state), payload);
14313
14315
  case 'FG_HIGHLIGHT':
14314
- return _objectSpread$1a(_objectSpread$1a({}, state), {}, {
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$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; }
14373
- 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; }
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$19(_objectSpread$19({}, state), payload);
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$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; }
14435
- 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; }
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$18({}, activeTool));
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$18(_objectSpread$18({}, state), {}, {
14481
+ return visibleTool ? _objectSpread$19(_objectSpread$19({}, state), {}, {
14480
14482
  opened: null,
14481
- visibleTools: _objectSpread$18(_objectSpread$18({}, state.visibleTools), visibleTool)
14482
- }) : _objectSpread$18(_objectSpread$18({}, state), {}, {
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$18(_objectSpread$18({}, state), newState);
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$18(_objectSpread$18({}, state), {}, {
14497
+ return _objectSpread$19(_objectSpread$19({}, state), {}, {
14496
14498
  opened: null,
14497
- visibleTools: _objectSpread$18({}, correctTools)
14499
+ visibleTools: _objectSpread$19({}, correctTools)
14498
14500
  });
14499
14501
  }
14500
14502
  case 'OPENED':
14501
14503
  {
14502
- return data.isSelected && state.opened ? _objectSpread$18(_objectSpread$18({}, state), {}, {
14504
+ return data.isSelected && state.opened ? _objectSpread$19(_objectSpread$19({}, state), {}, {
14503
14505
  opened: null
14504
- }) : _objectSpread$18(_objectSpread$18({}, state), {}, {
14506
+ }) : _objectSpread$19(_objectSpread$19({}, state), {}, {
14505
14507
  opened: data.menuName
14506
14508
  });
14507
14509
  }
14508
14510
  case 'UPDATE':
14509
- return _objectSpread$18(_objectSpread$18({}, state), {}, {
14511
+ return _objectSpread$19(_objectSpread$19({}, state), {}, {
14510
14512
  opened: null
14511
14513
  });
14512
14514
  case 'MODAL_OPEN':
14513
- return _objectSpread$18(_objectSpread$18({}, state), {}, {
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$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; }
14557
- 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; }
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$17(_objectSpread$17({}, state), payload);
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$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; }
14588
- 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; }
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$16(_objectSpread$16({}, state), data);
14624
+ if (data) state = _objectSpread$17(_objectSpread$17({}, state), data);
14623
14625
  }
14624
14626
  case SET_SERVER:
14625
14627
  {
14626
- state = _objectSpread$16(_objectSpread$16({}, state), {}, {
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$16(_objectSpread$16({}, action), fp.pick(['editor', 'server', 'options'], state)));
14632
- var finalState = sh === state.shared ? state : _objectSpread$16(_objectSpread$16({}, state), sh);
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$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; }
14730
- 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; }
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$15({
14746
+ var _useResizeObserver = useResizeObserver__default["default"](_objectSpread$16({
14745
14747
  onResize: onResize
14746
14748
  }, options)),
14747
14749
  ref = _useResizeObserver.ref;
14748
- return _objectSpread$15({
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(getKetcherInstance());
14803
+ subscribe(ketcherCore.ketcherProvider.getKetcher(ketcherId));
14803
14804
  };
14804
14805
  var unsubscribeOnUnMount = function unsubscribeOnUnMount() {
14805
- unsubscribe(getKetcherInstance());
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$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; }
14881
- 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; }
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$14({
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$14({
14895
+ children: [jsxRuntime.jsx(ToolbarMultiToolItem, _objectSpread$15({
14895
14896
  id: "bond-common",
14896
14897
  options: bondCommon
14897
- }, rest)), jsxRuntime.jsx(ToolbarMultiToolItem, _objectSpread$14({
14898
+ }, rest)), jsxRuntime.jsx(ToolbarMultiToolItem, _objectSpread$15({
14898
14899
  id: "bond-stereo",
14899
14900
  options: bondStereo
14900
- }, rest)), jsxRuntime.jsx(ToolbarMultiToolItem, _objectSpread$14({
14901
+ }, rest)), jsxRuntime.jsx(ToolbarMultiToolItem, _objectSpread$15({
14901
14902
  id: "bond-query",
14902
14903
  options: bondQuery
14903
- }, rest)), jsxRuntime.jsx(ToolbarMultiToolItem, _objectSpread$14({
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$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; }
14911
- 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; }
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$13({
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$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; }
14920
- 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; }
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$12({
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$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; }
14932
- 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; }
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$11({
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$11(_objectSpread$11({}, rest), {}, {
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$11(_objectSpread$11({}, rest), {}, {
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$11(_objectSpread$11({}, rest), {}, {
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$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; }
15135
- 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; }
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$10(_objectSpread$10({
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$$(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; }
15207
- 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; }
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 ketcher = ketcherCore.ketcherProvider.getKetcher();
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$_(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; }
16238
- 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; }
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$_(_objectSpread$_({}, prev), {}, {
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$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; }
17182
- 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; }
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$Z(_objectSpread$Z({}, selection), {}, {
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$Z(_objectSpread$Z({}, selection), {}, {
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$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; }
18258
- 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; }
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$Y(_objectSpread$Y({}, (ci === null || ci === void 0 ? void 0 : ci.map) === 'atoms' && {
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$Y(_objectSpread$Y({}, text), {}, {
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$Y(_objectSpread$Y({}, prev), {}, {
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$Y(_objectSpread$Y({}, prev), {}, {
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$Y(_objectSpread$Y({}, prev), {}, {
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$Y(_objectSpread$Y({}, prev), {}, {
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$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; }
18931
- 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; }
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$X(_objectSpread$X({}, ((_this$closestItem2 = this.closestItem) === null || _this$closestItem2 === void 0 ? void 0 : _this$closestItem2.map) === 'atoms' && {
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$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; }
19444
- 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; }
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$W({}, newAction.opts);
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$W({}, newAction.opts);
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 = global.currentState;
19971
+ var state = getState();
19967
19972
  return !state.modal;
19968
19973
  },
19969
19974
  onLegacyCut: function onLegacyCut() {
19970
- var state = global.currentState;
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
- ketcherInstance = ketcherCore.ketcherProvider.getKetcher();
19986
- _context2.next = 3;
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 state, editor, data;
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
- state = global.currentState;
19993
- editor = state.editor;
19994
- _context.next = 4;
19998
+ editor = getState().editor;
19999
+ _context.next = 3;
19995
20000
  return clipData(editor);
19996
- case 4:
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 7:
20008
+ case 6:
20004
20009
  case "end":
20005
20010
  return _context.stop();
20006
20011
  }
20007
20012
  }, _callee);
20008
20013
  })), ketcherInstance.eventBus);
20009
- case 3:
20014
+ case 4:
20010
20015
  result = _context2.sent;
20011
20016
  return _context2.abrupt("return", result);
20012
- case 5:
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
- ketcherInstance = ketcherCore.ketcherProvider.getKetcher();
20026
- _context4.next = 3;
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 state, editor, data;
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
- state = global.currentState;
20033
- editor = state.editor;
20034
- _context3.next = 4;
20038
+ editor = getState().editor;
20039
+ _context3.next = 3;
20035
20040
  return clipData(editor);
20036
- case 4:
20041
+ case 3:
20037
20042
  data = _context3.sent;
20038
20043
  editor.selection(null);
20039
20044
  return _context3.abrupt("return", data);
20040
- case 7:
20045
+ case 6:
20041
20046
  case "end":
20042
20047
  return _context3.stop();
20043
20048
  }
20044
20049
  }, _callee3);
20045
20050
  })), ketcherInstance.eventBus);
20046
- case 3:
20051
+ case 4:
20047
20052
  result = _context4.sent;
20048
20053
  return _context4.abrupt("return", result);
20049
- case 5:
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
- ketcherInstance = ketcherCore.ketcherProvider.getKetcher();
20063
- _context6.next = 3;
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 3:
20099
+ case 4:
20094
20100
  result = _context6.sent;
20095
20101
  return _context6.abrupt("return", result);
20096
- case 5:
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$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; }
20259
- 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; }
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$V({
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$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; }
22019
- 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; }
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$U(_objectSpread$U({}, prev), {}, {
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$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; }
22108
- 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; }
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$T(_objectSpread$T({}, this.mergeItems.atoms && {
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$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; }
22539
- 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; }
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$S(_objectSpread$S({}, this.dragCtx), {}, {
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$S(_objectSpread$S({}, dragContext), {}, {
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$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; }
22998
- 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; }
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$R({
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$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; }
24614
- 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; }
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$Q({}, options));
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$Q(_objectSpread$Q({}, viewBox), {}, {
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
- getKetcherInstance = _useAppContext.getKetcherInstance;
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 = getKetcherInstance().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
- }(), [getKetcherInstance]);
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
- getKetcherInstance = _useAppContext.getKetcherInstance;
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 = getKetcherInstance().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
- }(), [getKetcherInstance]);
25448
+ }(), [ketcherId]);
25441
25449
  var disabled = React.useCallback(function (_ref3) {
25442
25450
  var props = _ref3.props;
25443
- var editor = getKetcherInstance().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
- }, [getKetcherInstance]);
25458
+ }, [ketcherId]);
25451
25459
  return [handler, disabled];
25452
25460
  };
25453
25461
 
25454
25462
  var useDelete$1 = function useDelete() {
25455
25463
  var _useAppContext = useAppContext(),
25456
- getKetcherInstance = _useAppContext.getKetcherInstance;
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 = getKetcherInstance().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
- }(), [getKetcherInstance]);
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
- getKetcherInstance = _useAppContext.getKetcherInstance;
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 = getKetcherInstance().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
- }(), [getKetcherInstance]);
25625
+ }(), [ketcherId]);
25618
25626
  return [handler];
25619
25627
  };
25620
25628
 
25621
25629
  var useRemoveAttachmentPoint = function useRemoveAttachmentPoint() {
25622
25630
  var _useAppContext = useAppContext(),
25623
- getKetcherInstance = _useAppContext.getKetcherInstance;
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 = getKetcherInstance().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
- }(), [getKetcherInstance]);
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$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; }
25742
- 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; }
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
- getKetcherInstance = _useAppContext.getKetcherInstance;
25826
- var editor = getKetcherInstance().editor;
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$P(_objectSpread$P({}, getPropertyValue('queryProperties')), {}, _defineProperty__default["default"]({}, key, value))
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$P(_objectSpread$P({}, props), {}, {
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$P(_objectSpread$P({}, props), {}, {
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$P(_objectSpread$P({}, props), {}, {
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$P(_objectSpread$P({}, props), {}, {
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$P(_objectSpread$P({}, props), {}, {
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$P(_objectSpread$P({}, props), {}, {
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$P(_objectSpread$P({}, props), {}, {
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$P(_objectSpread$P({}, props), {}, {
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
- getKetcherInstance = _useAppContext.getKetcherInstance;
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 = getKetcherInstance().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
- }(), [getKetcherInstance]);
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
- getKetcherInstance = _useAppContext.getKetcherInstance;
26016
+ ketcherId = _useAppContext.ketcherId;
26008
26017
  var handler = React.useCallback(function (_ref) {
26009
26018
  var props = _ref.props;
26010
- var editor = getKetcherInstance().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
- }, [getKetcherInstance]);
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 = getKetcherInstance().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
- }, [getKetcherInstance]);
26048
+ }, [ketcherId]);
26040
26049
  return [handler, hidden];
26041
26050
  };
26042
26051
 
26043
26052
  var useBondSGroupEdit = function useBondSGroupEdit() {
26044
26053
  var _useAppContext = useAppContext(),
26045
- getKetcherInstance = _useAppContext.getKetcherInstance;
26054
+ ketcherId = _useAppContext.ketcherId;
26046
26055
  var sGroupsRef = React.useRef(new ketcherCore.Pile());
26047
26056
  var handler = React.useCallback(function () {
26048
- var editor = getKetcherInstance().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
- }, [getKetcherInstance]);
26060
+ }, [ketcherId]);
26052
26061
  var disabled = React.useCallback(function (_ref) {
26053
26062
  var props = _ref.props;
26054
- var editor = getKetcherInstance().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
- }, [getKetcherInstance]);
26072
+ }, [ketcherId]);
26064
26073
  var hidden = React.useCallback(function () {
26065
26074
  var _struct$sgroups$get;
26066
- var editor = getKetcherInstance().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
- }, [getKetcherInstance]);
26084
+ }, [ketcherId]);
26076
26085
  return [handler, disabled, hidden];
26077
26086
  };
26078
26087
 
26079
26088
  var useBondTypeChange = function useBondTypeChange() {
26080
26089
  var _useAppContext = useAppContext(),
26081
- getKetcherInstance = _useAppContext.getKetcherInstance;
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 = getKetcherInstance().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
- }, [getKetcherInstance]);
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 = getKetcherInstance().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
- getKetcherInstance = _useAppContext.getKetcherInstance;
26124
+ ketcherId = _useAppContext.ketcherId;
26116
26125
  var changeDirection = function changeDirection() {
26117
- var _getKetcherInstance, _props$propsFromTrigg;
26118
- var editor = (_getKetcherInstance = getKetcherInstance()) === null || _getKetcherInstance === void 0 ? void 0 : _getKetcherInstance.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$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; }
26135
- 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; }
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
- getKetcherInstance = _useAppContext.getKetcherInstance;
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 = getKetcherInstance().editor;
26177
+ var editor = ketcherCore.ketcherProvider.getKetcher(ketcherId).editor;
26169
26178
  React.useEffect(function () {
26170
- var _getKetcherInstance, _props$propsFromTrigg;
26171
- var editor = (_getKetcherInstance = getKetcherInstance()) === null || _getKetcherInstance === void 0 ? void 0 : _getKetcherInstance.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, getKetcherInstance]);
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$O(_objectSpread$O({}, props), {}, {
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$O(_objectSpread$O({
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$O(_objectSpread$O({}, props), {}, {
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$O(_objectSpread$O({}, props), {}, {
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$O(_objectSpread$O({}, props), {}, {
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$O(_objectSpread$O({}, props), {}, {
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$O(_objectSpread$O({}, props), {}, {
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
- getKetcherInstance = _useAppContext.getKetcherInstance;
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 = getKetcherInstance().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, getKetcherInstance]);
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
- getKetcherInstance = _useAppContext.getKetcherInstance;
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 = getKetcherInstance().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, getKetcherInstance]);
26314
+ }, [dispatch, ketcherId]);
26306
26315
  return handler;
26307
26316
  };
26308
26317
 
26309
- 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; }
26310
- 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; }
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$N(_objectSpread$N({}, props), {}, {
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$N(_objectSpread$N({}, props), {}, {
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$N(_objectSpread$N({}, props), {}, {
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$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; }
26342
- 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; }
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
- getKetcherInstance = _useAppContext.getKetcherInstance;
26347
- var editor = getKetcherInstance().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$M(_objectSpread$M({}, props), {}, {
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$M(_objectSpread$M({}, props), {}, {
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$M(_objectSpread$M({}, props), {}, {
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$M(_objectSpread$M({}, props), {}, {
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$M(_objectSpread$M({}, props), {}, {
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
- getKetcherInstance = _useAppContext.getKetcherInstance;
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 = getKetcherInstance().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
- }(), [getKetcherInstance]);
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
- getKetcherInstance = _useAppContext.getKetcherInstance;
26473
+ ketcherId = _useAppContext.ketcherId;
26465
26474
  var handler = React.useCallback(function (_ref) {
26466
26475
  var props = _ref.props;
26467
- var ketcher = getKetcherInstance();
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
- }, [getKetcherInstance]);
26482
+ }, [ketcherId]);
26474
26483
  var disabled = React.useCallback(function (_ref2) {
26475
26484
  var props = _ref2.props;
26476
- var ketcher = getKetcherInstance();
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
- }, [getKetcherInstance]);
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$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; }
26493
- 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; }
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
- getKetcherInstance = _useAppContext.getKetcherInstance;
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 = getKetcherInstance().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$L(_objectSpread$L({}, props), {}, {
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$L(_objectSpread$L({}, props), {}, {
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
- getKetcherInstance = _useAppContext.getKetcherInstance;
26546
+ ketcherId = _useAppContext.ketcherId;
26538
26547
  var addTail = React.useCallback(function (_ref) {
26539
26548
  var props = _ref.props;
26540
- var editor = getKetcherInstance().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
- }, [getKetcherInstance]);
26552
+ }, [ketcherId]);
26544
26553
  var isAddTailDisabled = React.useCallback(function (_ref2) {
26545
26554
  var props = _ref2.props;
26546
- var editor = getKetcherInstance().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
- }, [getKetcherInstance]);
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
- getKetcherInstance = _useAppContext2.getKetcherInstance;
26566
+ ketcherId = _useAppContext2.ketcherId;
26558
26567
  var removeTail = React.useCallback(function (_ref3) {
26559
26568
  var props = _ref3.props;
26560
- var editor = getKetcherInstance().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
- }, [getKetcherInstance]);
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$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; }
26575
- 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; }
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$K(_objectSpread$K({}, props), {}, {
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$K(_objectSpread$K({}, props), {}, {
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
- getKetcherInstance = _useAppContext.getKetcherInstance;
26610
+ ketcherId = _useAppContext.ketcherId;
26602
26611
  var action = React.useCallback(function (_ref, toExpand) {
26603
26612
  var props = _ref.props;
26604
- var editor = getKetcherInstance().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
- }, [getKetcherInstance]);
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$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; }
26630
- 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; }
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$J(_objectSpread$J({}, props), {}, {
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$J(_objectSpread$J({}, props), {}, {
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$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; }
26666
- 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; }
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
- getKetcherInstance = _useAppContext.getKetcherInstance;
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 = getKetcherInstance().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
- }, [getKetcherInstance]);
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$I(_objectSpread$I({}, props), {}, {
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$I(_objectSpread$I({}, props), {}, {
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$I(_objectSpread$I({}, props), {}, {
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$I(_objectSpread$I({}, props), {}, {
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$I(_objectSpread$I({}, props), {}, {
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$I(_objectSpread$I({}, props), {}, {
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$I(_objectSpread$I({}, props), {}, {
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
- getKetcherInstance = _useAppContext.getKetcherInstance;
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 = getKetcherInstance().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
- }, [getKetcherInstance]);
26985
+ }, [ketcherId]);
26975
26986
  var handleDisplay = React.useCallback(function (event) {
26976
26987
  event.preventDefault();
26977
- var editor = getKetcherInstance().editor;
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
- }, [getKetcherInstance, getSelectedGroupsInfo, show]);
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", "indigoVerification", "struct", "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"];
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
- this.editor = new Editor$3(this.editorRef.current, _objectSpread$G({}, this.props.options), _objectSpread$G({}, this.props.serverSettings));
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
- indigoVerification = _this$props.indigoVerification;
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": "atomCustomQuery",
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
- getKetcherInstance = _useAppContext.getKetcherInstance;
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 = getKetcherInstance();
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 ketcher = ketcherCore.ketcherProvider.getKetcher();
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 ketcher = ketcherCore.ketcherProvider.getKetcher();
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 ketcher = ketcherCore.ketcherProvider.getKetcher();
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
- getKetcherInstance = _useAppContext.getKetcherInstance;
33130
- var editor = getKetcherInstance().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 (dispatch) {
34611
- var state = global.currentState;
34612
- var activeTool = state.actionState.activeTool.tool;
34613
- if (activeTool === 'select' && !force) return;
34614
- var selectMode = state.toolbar.visibleTools.select;
34615
- var resetOption = state.options.settings.resetToSelect;
34616
- if (resetOption === true || resetOption === activeTool || force === true)
34617
- dispatch({
34618
- type: 'ACTION',
34619
- action: configWithNonViewOnlyActionsDisabled[selectMode].action
34620
- });else updateAction();
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, _ref) {
34669
- var _ref2 = _slicedToArray__default["default"](_ref, 2),
34670
- rgid = _ref2[0],
34671
- rg = _ref2[1];
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(_ref3) {
34690
- var init = _extends__default["default"]({}, (_objectDestructuringEmpty__default["default"](_ref3), _ref3));
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, {}), jsxRuntime.jsx(AbbreviationLookupContainer, {})]
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
- getKetcherInstance: function getKetcherInstance() {
35242
- return ketcherRef;
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
- var _appendApiAsync = _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee(structServiceProvider) {
35290
- return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
35291
- while (1) switch (_context.prev = _context.next) {
35292
- case 0:
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 _callee2(element, appRoot, staticResourcesUrl, errorHandler, buttons, togglerComponent, customButtons) {
35336
- var structService, cleanup, _yield$Promise, editor, setKetcher, ketcherId, setServer;
35337
- return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
35338
- while (1) switch (_context2.prev = _context2.next) {
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
- _context2.next = 4;
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.3" ,
35348
- buildDate: "2025-06-13T19:05:41" ,
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 = _context2.sent;
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
- this.editor = editor;
35360
- this.editor.errorHandler = errorHandler && typeof errorHandler === 'function' ? errorHandler :
35401
+ editor.errorHandler = errorHandler && typeof errorHandler === 'function' ? errorHandler :
35361
35402
  function () {};
35362
- this.formatterFactory = new ketcherCore.FormatterFactory(structService);
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 13:
35407
+ case 9:
35370
35408
  case "end":
35371
- return _context2.stop();
35409
+ return _context.stop();
35372
35410
  }
35373
- }, _callee2, this);
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.editor, this.structService, this.formatterFactory);
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.setKetcherInstance(ketcher);
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, setKetcher, ketcherId, cleanup, setServer, ketcher;
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
- _context.next = 4;
35423
- return builder.appendApiAsync(structServiceProvider);
35424
- case 4:
35460
+ structService = builder.appendApiAsync(structServiceProvider);
35425
35461
  builder.appendServiceMode(structServiceProvider.mode);
35426
- _context.next = 7;
35427
- return builder.appendUiAsync(element, appRoot, staticResourcesUrl, errorHandler, buttons, togglerComponent, customButtons);
35428
- case 7:
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 15:
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
- (_ketcherBuilderRef$cu = ketcherBuilderRef.current) === null || _ketcherBuilderRef$cu === void 0 || _ketcherBuilderRef$cu.reinitializeApi(props.structServiceProvider, setServerRef.current);
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 initKetcher() {
35480
- var _initPromiseRef$curre;
35481
- appRootRef.current = client.createRoot(rootElRef.current);
35482
- initPromiseRef.current = buildKetcherAsync(_objectSpread$1(_objectSpread$1({}, props), {}, {
35483
- element: rootElRef.current,
35484
- appRoot: appRootRef.current
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
- (_initPromiseRef$curre = initPromiseRef.current) === null || _initPromiseRef$curre === void 0 || _initPromiseRef$curre.then(function (_ref) {
35487
- var ketcher = _ref.ketcher,
35488
- ketcherId = _ref.ketcherId,
35489
- cleanup = _ref.cleanup,
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
  }))