ketcher-react 2.7.0-rc.3 → 2.7.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.
@@ -24,7 +24,7 @@ import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
24
24
  import _regeneratorRuntime from '@babel/runtime/regenerator';
25
25
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
26
26
  import _createClass from '@babel/runtime/helpers/createClass';
27
- import { KetSerializer, MolSerializer, Ketcher, FormatterFactory, StereLabelStyleType, StereoColoringType, Bond as Bond$2, Elements, AtomList, StereoLabel, findStereoAtoms, RxnArrowMode, SimpleObjectMode, SGroup, Pile, getStereoAtomsMap, identifyStructFormat, SupportedFormat, ChemicalMimeType, SdfSerializer, FunctionalGroupsProvider, SaltsAndSolventsProvider, KetcherAsyncEvents, ElementColor, formatProperties, fromAtomsAttrs, Vec2, FunctionalGroup, Fragment as Fragment$1, OperationType, fracAngle, Action, fromSgroupDeletion, fromFragmentDeletion, fromAtomAddition, fromBondAddition, Atom as Atom$2, bondChangingAction, fromBondsAttrs, fromChain, getItemsToFuse, getHoverToFuse, fromItemsFuse, fromStereoFlagUpdate, Scale, checkOverlapping, fromSeveralSgroupAddition, SgContexts, fromSgroupAction, fromSimpleObjectResizing, fromArrowResizing, fromMultipleMove, fromTextDeletion, fromTextUpdating, fromOneAtomDeletion, fromOneBondDeletion, fromArrowDeletion, fromPlusDeletion, fromSimpleObjectDeletion, fromPaste, RGroup as RGroup$2, fromRGroupFragment, fromUpdateIfThen, fromRGroupAttrs, fromArrowAddition, fromPlusAddition, fromRotate, fromFlip, fromBondAlign, fromSimpleObjectAddition, fromTemplateOnBondAction, fromTemplateOnCanvas, fromTemplateOnAtom, fromTextCreation, fromHighlightCreate, fromHighlightClear, fromNewCanvas, Struct, Render, fromDescriptorsAlign, setExpandSGroup, getPropertiesByFormat, StereoFlag, getPropertiesByImgFormat, Generics, TextCommand } from 'ketcher-core';
27
+ import { KetSerializer, MolSerializer, Ketcher, FormatterFactory, StereLabelStyleType, StereoColoringType, Bond as Bond$2, Elements, AtomList, StereoLabel, findStereoAtoms, RxnArrowMode, SimpleObjectMode, SGroup, Pile, getStereoAtomsMap, identifyStructFormat, SupportedFormat, ChemicalMimeType, SdfSerializer, FunctionalGroupsProvider, Render, SaltsAndSolventsProvider, KetcherAsyncEvents, ElementColor, formatProperties, fromAtomsAttrs, Vec2, FunctionalGroup, Fragment as Fragment$1, OperationType, fracAngle, Action, fromSgroupDeletion, fromFragmentDeletion, fromAtomAddition, fromBondAddition, Atom as Atom$2, bondChangingAction, fromBondsAttrs, fromChain, getItemsToFuse, getHoverToFuse, fromItemsFuse, fromStereoFlagUpdate, Scale, checkOverlapping, fromSeveralSgroupAddition, SgContexts, fromSgroupAction, fromSimpleObjectResizing, fromArrowResizing, fromMultipleMove, fromTextDeletion, fromTextUpdating, fromOneAtomDeletion, fromOneBondDeletion, fromArrowDeletion, fromPlusDeletion, fromSimpleObjectDeletion, fromPaste, RGroup as RGroup$2, fromRGroupFragment, fromUpdateIfThen, fromRGroupAttrs, fromArrowAddition, fromPlusAddition, fromRotate, fromFlip, fromBondAlign, fromSimpleObjectAddition, fromTemplateOnBondAction, fromTemplateOnCanvas, fromTemplateOnAtom, fromTextCreation, fromHighlightCreate, fromHighlightClear, fromNewCanvas, Struct, fromDescriptorsAlign, setExpandSGroup, getPropertiesByFormat, StereoFlag, getPropertiesByImgFormat, Generics, TextCommand } from 'ketcher-core';
28
28
  import * as React from 'react';
29
29
  import React__default, { createRef, Component, useState, useEffect, useRef, useMemo, createElement, forwardRef, useCallback, useLayoutEffect, Fragment as Fragment$2 } from 'react';
30
30
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
@@ -34,13 +34,13 @@ import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
34
34
  import clsx from 'clsx';
35
35
  import _typeof from '@babel/runtime/helpers/typeof';
36
36
  import Ajv from 'ajv';
37
- import { pick, range, capitalize, omit, without, findLastIndex, findIndex, pickBy, isEmpty, isEqual, throttle, debounce, xor, upperFirst, escapeRegExp, flow, filter, reduce } from 'lodash/fp';
37
+ import { pick, range, capitalize, omit, without, findLastIndex, findIndex, pickBy, isEmpty, isEqual, escapeRegExp, flow, filter, reduce, throttle, debounce, xor, upperFirst } from 'lodash/fp';
38
38
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
39
39
  import ReactDOM from 'react-dom';
40
40
  import { connect, useDispatch, useSelector, Provider } from 'react-redux';
41
41
  import { combineReducers, createStore as createStore$1, applyMiddleware } from 'redux';
42
42
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
43
- import { logger } from 'redux-logger';
43
+ import 'redux-logger';
44
44
  import thunk from 'redux-thunk';
45
45
  import { throttle as throttle$1, inRange, isEqual as isEqual$1, range as range$1 } from 'lodash';
46
46
  import useResizeObserver from 'use-resize-observer/polyfilled';
@@ -366,7 +366,6 @@ function _copy(cb, data) {
366
366
  cb.setData(fmt, data[fmt]);
367
367
  });
368
368
  } catch (ex) {
369
- console.info("Could not write exact type ".concat(curFmt));
370
369
  }
371
370
  }
372
371
  }
@@ -397,8 +396,8 @@ function exec(action) {
397
396
  return enabled;
398
397
  }
399
398
 
400
- function ownKeys$15(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
401
- function _objectSpread$15(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$15(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$15(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
399
+ function ownKeys$16(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
400
+ function _objectSpread$16(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$16(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$16(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
402
401
  var editor = {
403
402
  resetToSelect: {
404
403
  title: 'Reset to Select Tool',
@@ -646,7 +645,7 @@ var optionsSchema = {
646
645
  title: 'Settings',
647
646
  type: 'object',
648
647
  required: [],
649
- properties: _objectSpread$15(_objectSpread$15(_objectSpread$15(_objectSpread$15(_objectSpread$15({}, editor), render), server), debug), miew)
648
+ properties: _objectSpread$16(_objectSpread$16(_objectSpread$16(_objectSpread$16(_objectSpread$16({}, editor), render), server), debug), miew)
650
649
  };
651
650
  function getDefaultOptions() {
652
651
  if (!optionsSchema.properties) return {};
@@ -692,7 +691,6 @@ var storage = {
692
691
  try {
693
692
  item = JSON.parse(localStorage.getItem(key));
694
693
  } catch (ex) {
695
- console.info('LocalStorage:', ex.name);
696
694
  }
697
695
  return item;
698
696
  },
@@ -702,15 +700,14 @@ var storage = {
702
700
  localStorage.setItem(key, JSON.stringify(data));
703
701
  isSet = true;
704
702
  } catch (ex) {
705
- console.info('LocalStorage:', ex.name);
706
703
  isSet = false;
707
704
  }
708
705
  return isSet;
709
706
  }
710
707
  };
711
708
 
712
- function ownKeys$14(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
713
- function _objectSpread$14(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$14(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$14(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
709
+ function ownKeys$15(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
710
+ function _objectSpread$15(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$15(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$15(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
714
711
  var initOptionsState = {
715
712
  app: {
716
713
  server: false,
@@ -807,27 +804,27 @@ function optionsReducer() {
807
804
  var action = arguments.length > 1 ? arguments[1] : undefined;
808
805
  var type = action.type,
809
806
  data = action.data;
810
- if (type === 'APP_OPTIONS') return _objectSpread$14(_objectSpread$14({}, state), {}, {
811
- app: _objectSpread$14(_objectSpread$14({}, state.app), data)
807
+ if (type === 'APP_OPTIONS') return _objectSpread$15(_objectSpread$15({}, state), {}, {
808
+ app: _objectSpread$15(_objectSpread$15({}, state.app), data)
812
809
  });
813
- if (type === 'SAVE_SETTINGS') return _objectSpread$14(_objectSpread$14({}, state), {}, {
810
+ if (type === 'SAVE_SETTINGS') return _objectSpread$15(_objectSpread$15({}, state), {}, {
814
811
  settings: data
815
812
  });
816
- if (type === 'SAVE_CHECK_OPTS') return _objectSpread$14(_objectSpread$14({}, state), {}, {
813
+ if (type === 'SAVE_CHECK_OPTS') return _objectSpread$15(_objectSpread$15({}, state), {}, {
817
814
  check: data
818
815
  });
819
- if (type === 'CHANGE_ANALYSE') return _objectSpread$14(_objectSpread$14({}, state), {}, {
820
- analyse: _objectSpread$14(_objectSpread$14(_objectSpread$14({}, state.analyse), data), {}, {
816
+ if (type === 'CHANGE_ANALYSE') return _objectSpread$15(_objectSpread$15({}, state), {}, {
817
+ analyse: _objectSpread$15(_objectSpread$15(_objectSpread$15({}, state.analyse), data), {}, {
821
818
  loading: false
822
819
  })
823
820
  });
824
- if (type === 'ANALYSE_LOADING') return _objectSpread$14(_objectSpread$14({}, state), {}, {
825
- analyse: _objectSpread$14(_objectSpread$14({}, state.analyse), {}, {
821
+ if (type === 'ANALYSE_LOADING') return _objectSpread$15(_objectSpread$15({}, state), {}, {
822
+ analyse: _objectSpread$15(_objectSpread$15({}, state.analyse), {}, {
826
823
  loading: true
827
824
  })
828
825
  });
829
- if (recognizeActions.includes(type)) return _objectSpread$14(_objectSpread$14({}, state), {}, {
830
- recognize: _objectSpread$14(_objectSpread$14({}, state.recognize), data)
826
+ if (recognizeActions.includes(type)) return _objectSpread$15(_objectSpread$15({}, state), {}, {
827
+ recognize: _objectSpread$15(_objectSpread$15({}, state.recognize), data)
831
828
  });
832
829
  return state;
833
830
  }
@@ -837,7 +834,6 @@ function constant(schema, prop) {
837
834
  return desc.constant || desc["enum"][0];
838
835
  }
839
836
  function mapOf(schema, prop) {
840
- console.assert(schema.oneOf);
841
837
  return schema.oneOf.reduce(function (res, desc) {
842
838
  res[constant(desc, prop)] = desc;
843
839
  return res;
@@ -1131,8 +1127,8 @@ function getSdataDefault() {
1131
1127
  return schema[context][fieldName] ? schema[context][fieldName].properties.fieldValue["default"] : '';
1132
1128
  }
1133
1129
 
1134
- function ownKeys$13(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1135
- function _objectSpread$13(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$13(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$13(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1130
+ function ownKeys$14(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1131
+ function _objectSpread$14(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$14(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$14(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1136
1132
  var initSdata = function initSdata(schema) {
1137
1133
  var isCustomShema = schema.key === 'Custom';
1138
1134
  var context = isCustomShema ? getSdataDefault(sdataCustomSchema, 'context') : getSdataDefault(sdataSchema);
@@ -1153,7 +1149,7 @@ var initSdata = function initSdata(schema) {
1153
1149
  };
1154
1150
  function sdataReducer(state, action) {
1155
1151
  if (action.data.result.init) {
1156
- return correctErrors(_objectSpread$13(_objectSpread$13({}, state), {}, {
1152
+ return correctErrors(_objectSpread$14(_objectSpread$14({}, state), {}, {
1157
1153
  result: Object.assign({}, state.result, action.data.result)
1158
1154
  }), action.data);
1159
1155
  }
@@ -1161,7 +1157,7 @@ function sdataReducer(state, action) {
1161
1157
  var actionFieldName = action.data.result.fieldName;
1162
1158
  var newstate = null;
1163
1159
  if (actionContext !== state.result.context) newstate = onContextChange(state, action.data.result);else if (actionFieldName !== state.result.fieldName) newstate = onFieldNameChange(state, action.data.result);
1164
- newstate = newstate || _objectSpread$13(_objectSpread$13({}, state), {}, {
1160
+ newstate = newstate || _objectSpread$14(_objectSpread$14({}, state), {}, {
1165
1161
  result: Object.assign({}, state.result, action.data.result)
1166
1162
  });
1167
1163
  return correctErrors(newstate, action.data);
@@ -1185,7 +1181,7 @@ var onContextChange = function onContextChange(state, payload) {
1185
1181
  var fValue = fieldValue;
1186
1182
  if (fValue === state.result.fieldValue) fValue = getSdataDefault(sdataCustomSchema, 'fieldValue');
1187
1183
  return {
1188
- result: _objectSpread$13(_objectSpread$13({}, payload), {}, {
1184
+ result: _objectSpread$14(_objectSpread$14({}, payload), {}, {
1189
1185
  context: context,
1190
1186
  fieldName: fieldName,
1191
1187
  fieldValue: fValue
@@ -1199,7 +1195,7 @@ var onFieldNameChange = function onFieldNameChange(state, payload) {
1199
1195
  if (sdataSchema[context][fieldName]) fieldValue = getSdataDefault(sdataSchema, context, fieldName);
1200
1196
  if (fieldValue === state.result.fieldValue && sdataSchema[context][state.result.fieldName]) fieldValue = '';
1201
1197
  return {
1202
- result: _objectSpread$13(_objectSpread$13({}, payload), {}, {
1198
+ result: _objectSpread$14(_objectSpread$14({}, payload), {}, {
1203
1199
  fieldName: fieldName,
1204
1200
  fieldValue: fieldValue
1205
1201
  })
@@ -1337,8 +1333,8 @@ function formReducer(state, action, formName) {
1337
1333
  var INDIGO_VERIFICATION = 'INDIGO_VERIFICATION';
1338
1334
  var ANALYZING_FILE = 'ANALYZING_FILE';
1339
1335
 
1340
- function ownKeys$12(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1341
- function _objectSpread$12(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$12(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$12(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1336
+ function ownKeys$13(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1337
+ function _objectSpread$13(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$13(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$13(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1342
1338
  function indigoVerification(data) {
1343
1339
  return {
1344
1340
  type: INDIGO_VERIFICATION,
@@ -1363,13 +1359,13 @@ function requestReducer () {
1363
1359
  switch (type) {
1364
1360
  case INDIGO_VERIFICATION:
1365
1361
  {
1366
- return _objectSpread$12(_objectSpread$12({}, state), {}, {
1362
+ return _objectSpread$13(_objectSpread$13({}, state), {}, {
1367
1363
  indigoVerification: data
1368
1364
  });
1369
1365
  }
1370
1366
  case ANALYZING_FILE:
1371
1367
  {
1372
- return _objectSpread$12(_objectSpread$12({}, state), {}, {
1368
+ return _objectSpread$13(_objectSpread$13({}, state), {}, {
1373
1369
  isAnalyzingFile: data
1374
1370
  });
1375
1371
  }
@@ -1642,12 +1638,12 @@ var attachSchema = {
1642
1638
  };
1643
1639
 
1644
1640
  var _excluded$E = ["type", "radiobuttons"];
1645
- function ownKeys$11(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1646
- function _objectSpread$11(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$11(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$11(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1641
+ function ownKeys$12(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1642
+ function _objectSpread$12(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$12(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$12(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1647
1643
  var DefaultStereoGroupNumber = 1;
1648
1644
  function fromElement(selem) {
1649
1645
  if (selem.label === 'R#') {
1650
- return _objectSpread$11({
1646
+ return _objectSpread$12({
1651
1647
  type: 'rlabel',
1652
1648
  values: fromRlabel(selem.rglabel)
1653
1649
  }, selem);
@@ -1807,7 +1803,7 @@ function fromBond(sbond) {
1807
1803
  };
1808
1804
  }
1809
1805
  function toBond(bond) {
1810
- return _objectSpread$11({
1806
+ return _objectSpread$12({
1811
1807
  topology: bond.topology,
1812
1808
  reactingCenterStatus: bond.center
1813
1809
  }, toBondType(bond.type));
@@ -1897,7 +1893,7 @@ function toSgroup(sgroup) {
1897
1893
  var type = sgroup.type,
1898
1894
  radiobuttons = sgroup.radiobuttons,
1899
1895
  props = _objectWithoutProperties(sgroup, _excluded$E);
1900
- var attrs = _objectSpread$11({}, props);
1896
+ var attrs = _objectSpread$12({}, props);
1901
1897
  var absolute = 'absolute';
1902
1898
  var attached = 'attached';
1903
1899
  switch (radiobuttons) {
@@ -2398,8 +2394,8 @@ var tools$1 = typeSchema$1["enum"].reduce(function (res, type, i) {
2398
2394
  }, toolActions);
2399
2395
 
2400
2396
  var _excluded$D = ["rescale", "fragment"];
2401
- function ownKeys$10(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2402
- function _objectSpread$10(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$10(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$10(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2397
+ function ownKeys$11(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2398
+ function _objectSpread$11(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$11(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$11(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2403
2399
  function onAction(action) {
2404
2400
  if (action && action.dialog) {
2405
2401
  return {
@@ -2449,7 +2445,7 @@ function load(struct, options) {
2449
2445
  server = state.server;
2450
2446
  errorHandler = editor.errorHandler;
2451
2447
  options = options || {};
2452
- options = _objectSpread$10(_objectSpread$10({}, options), {}, {
2448
+ options = _objectSpread$11(_objectSpread$11({}, options), {}, {
2453
2449
  'dearomatize-on-load': editor.options()['dearomatize-on-load']
2454
2450
  });
2455
2451
  dispatch(setAnalyzingFile(true));
@@ -2877,7 +2873,7 @@ var zoom = {
2877
2873
 
2878
2874
  var openHelpLink = function openHelpLink() {
2879
2875
  var _window$open;
2880
- return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v2.7.0-rc.3\n", "/documentation/help.md#ketcher-overview"))) === null || _window$open === void 0 ? void 0 : _window$open.focus();
2876
+ return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v2.7.0-rc.4\n", "/documentation/help.md#ketcher-overview"))) === null || _window$open === void 0 ? void 0 : _window$open.focus();
2881
2877
  };
2882
2878
  var help = {
2883
2879
  help: {
@@ -2938,9 +2934,9 @@ var fullscreen = {
2938
2934
  }
2939
2935
  };
2940
2936
 
2941
- function ownKeys$$(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2942
- function _objectSpread$$(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$$(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$$(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2943
- var config = _objectSpread$$(_objectSpread$$(_objectSpread$$(_objectSpread$$(_objectSpread$$(_objectSpread$$(_objectSpread$$(_objectSpread$$(_objectSpread$$({
2937
+ function ownKeys$10(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2938
+ function _objectSpread$10(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$10(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$10(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2939
+ var config = _objectSpread$10(_objectSpread$10(_objectSpread$10(_objectSpread$10(_objectSpread$10(_objectSpread$10(_objectSpread$10(_objectSpread$10(_objectSpread$10({
2944
2940
  clear: {
2945
2941
  shortcut: 'Mod+Delete',
2946
2942
  title: 'Clear Canvas',
@@ -6846,13 +6842,13 @@ function findIconByName(name) {
6846
6842
  }
6847
6843
 
6848
6844
  var _excluded$C = ["name"];
6849
- function ownKeys$_(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6850
- function _objectSpread$_(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$_(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$_(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6845
+ function ownKeys$$(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6846
+ function _objectSpread$$(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$$(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$$(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6851
6847
  function Icon(_ref) {
6852
6848
  var name = _ref.name,
6853
6849
  props = _objectWithoutProperties(_ref, _excluded$C);
6854
6850
  var Component = findIconByName(name);
6855
- return jsx(Component, _objectSpread$_({}, props));
6851
+ return jsx(Component, _objectSpread$$({}, props));
6856
6852
  }
6857
6853
 
6858
6854
  var classes$N = {"button-common-styles":"ActionButton-module_button-common-styles__y-hng","scrollbar":"ActionButton-module_scrollbar__lD3MH","button":"ActionButton-module_button__nfoWQ","selected":"ActionButton-module_selected__kPCxA"};
@@ -7148,8 +7144,8 @@ function usePortalStyle(_ref) {
7148
7144
  return [portalStyle];
7149
7145
  }
7150
7146
 
7151
- function ownKeys$Z(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7152
- function _objectSpread$Z(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$Z(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$Z(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7147
+ function ownKeys$_(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7148
+ function _objectSpread$_(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$_(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$_(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7153
7149
  var ToolbarMultiToolItem = function ToolbarMultiToolItem(props) {
7154
7150
  var id = props.id,
7155
7151
  options = props.options,
@@ -7211,7 +7207,7 @@ var ToolbarMultiToolItem = function ToolbarMultiToolItem(props) {
7211
7207
  return displayMultiToolItem ? jsxs("div", {
7212
7208
  ref: ref,
7213
7209
  className: classes$L.root,
7214
- children: [jsx(ActionButton, _objectSpread$Z(_objectSpread$Z({}, actionButtonProps), {}, {
7210
+ children: [jsx(ActionButton, _objectSpread$_(_objectSpread$_({}, actionButtonProps), {}, {
7215
7211
  className: className,
7216
7212
  name: currentId,
7217
7213
  action: config[currentId],
@@ -7311,8 +7307,8 @@ var TemplatesList = function TemplatesList(props) {
7311
7307
  var classes$K = {"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"};
7312
7308
 
7313
7309
  var _excluded$B = ["className"];
7314
- function ownKeys$Y(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7315
- function _objectSpread$Y(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$Y(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$Y(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7310
+ function ownKeys$Z(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7311
+ function _objectSpread$Z(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$Z(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$Z(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7316
7312
  var Group$1 = function Group(_ref) {
7317
7313
  var children = _ref.children,
7318
7314
  className = _ref.className;
@@ -7338,7 +7334,7 @@ var BottomToolbar = function BottomToolbar(props) {
7338
7334
  onAction: onAction
7339
7335
  })
7340
7336
  }), jsx(Group$1, {
7341
- children: jsx(ToolbarGroupItem, _objectSpread$Y({
7337
+ children: jsx(ToolbarGroupItem, _objectSpread$Z({
7342
7338
  id: "template-lib"
7343
7339
  }, rest))
7344
7340
  })]
@@ -7433,15 +7429,15 @@ function prefetchRender(tmpls, baseUrl, cacheEl) {
7433
7429
  });
7434
7430
  }
7435
7431
 
7436
- function ownKeys$X(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7437
- function _objectSpread$X(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$X(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$X(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7432
+ function ownKeys$Y(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7433
+ function _objectSpread$Y(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$Y(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$Y(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7438
7434
  function openDialog(dispatch, dialogName, props) {
7439
7435
  return new Promise(function (resolve, reject) {
7440
7436
  dispatch({
7441
7437
  type: 'MODAL_OPEN',
7442
7438
  data: {
7443
7439
  name: dialogName,
7444
- prop: _objectSpread$X(_objectSpread$X({}, props), {}, {
7440
+ prop: _objectSpread$Y(_objectSpread$Y({}, props), {}, {
7445
7441
  onResult: resolve,
7446
7442
  onCancel: reject
7447
7443
  })
@@ -7459,7 +7455,7 @@ function modalReducer() {
7459
7455
  return null;
7460
7456
  }
7461
7457
  var formState = formReducer(state.form, action, state.name);
7462
- return _objectSpread$X(_objectSpread$X({}, state), {}, {
7458
+ return _objectSpread$Y(_objectSpread$Y({}, state), {}, {
7463
7459
  form: formState
7464
7460
  });
7465
7461
  }
@@ -7477,8 +7473,8 @@ function modalReducer() {
7477
7473
  }
7478
7474
  }
7479
7475
 
7480
- function ownKeys$W(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7481
- function _objectSpread$W(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$W(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$W(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7476
+ function ownKeys$X(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7477
+ function _objectSpread$X(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$X(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$X(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7482
7478
  function selectTmpl(tmpl) {
7483
7479
  return {
7484
7480
  type: 'TMPL_SELECT',
@@ -7578,7 +7574,7 @@ function saveUserTmpl(struct) {
7578
7574
  var name = _ref.name,
7579
7575
  attach = _ref.attach;
7580
7576
  tmpl.struct.name = name.trim();
7581
- tmpl.props = _objectSpread$W(_objectSpread$W({}, attach), {}, {
7577
+ tmpl.props = _objectSpread$X(_objectSpread$X({}, attach), {}, {
7582
7578
  group: 'User Templates'
7583
7579
  });
7584
7580
  var lib = getState().templates.lib.concat(tmpl);
@@ -7617,7 +7613,7 @@ function templatesReducer() {
7617
7613
  if (tmplActions.includes(action.type)) return Object.assign({}, state, action.data);
7618
7614
  if (attachActions.includes(action.type)) {
7619
7615
  var attach = Object.assign({}, state.attach, action.data);
7620
- return _objectSpread$W(_objectSpread$W({}, state), {}, {
7616
+ return _objectSpread$X(_objectSpread$X({}, state), {}, {
7621
7617
  attach: attach
7622
7618
  });
7623
7619
  }
@@ -7626,7 +7622,7 @@ function templatesReducer() {
7626
7622
  var lib = currentState.lib.filter(function (value) {
7627
7623
  return value !== action.data.tmpl;
7628
7624
  });
7629
- return _objectSpread$W(_objectSpread$W({}, currentState), {}, {
7625
+ return _objectSpread$X(_objectSpread$X({}, currentState), {}, {
7630
7626
  lib: lib
7631
7627
  });
7632
7628
  }
@@ -7634,8 +7630,8 @@ function templatesReducer() {
7634
7630
  }
7635
7631
 
7636
7632
  var _excluded$A = ["type", "action"];
7637
- function ownKeys$V(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7638
- function _objectSpread$V(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$V(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$V(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7633
+ function ownKeys$W(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7634
+ function _objectSpread$W(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$W(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$W(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7639
7635
  function execute(activeTool, _ref) {
7640
7636
  var action = _ref.action,
7641
7637
  editor = _ref.editor,
@@ -7647,9 +7643,7 @@ function execute(activeTool, _ref) {
7647
7643
  }
7648
7644
  } else if (typeof action === 'function') {
7649
7645
  action(editor, server, options);
7650
- } else {
7651
- console.info('no action');
7652
- }
7646
+ } else ;
7653
7647
  return activeTool;
7654
7648
  }
7655
7649
  function selected(actObj, activeTool, _ref2) {
@@ -7691,7 +7685,7 @@ function actionStateReducer () {
7691
7685
  case 'INIT':
7692
7686
  action = config['select-rectangle'].action;
7693
7687
  case 'ACTION':
7694
- activeTool = execute(state && state.activeTool, _objectSpread$V(_objectSpread$V({}, params), {}, {
7688
+ activeTool = execute(state && state.activeTool, _objectSpread$W(_objectSpread$W({}, params), {}, {
7695
7689
  action: action
7696
7690
  }));
7697
7691
  case 'UPDATE':
@@ -7707,8 +7701,8 @@ function actionStateReducer () {
7707
7701
  }
7708
7702
  }
7709
7703
 
7710
- function ownKeys$U(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7711
- function _objectSpread$U(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$U(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$U(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7704
+ function ownKeys$V(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7705
+ function _objectSpread$V(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$V(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$V(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7712
7706
  var initialState$1 = {
7713
7707
  lib: [],
7714
7708
  functionalGroupInfo: null,
@@ -7721,9 +7715,9 @@ var functionalGroupsReducer = function functionalGroupsReducer() {
7721
7715
  payload = _ref.payload;
7722
7716
  switch (type) {
7723
7717
  case 'FG_INIT':
7724
- return _objectSpread$U(_objectSpread$U({}, state), payload);
7718
+ return _objectSpread$V(_objectSpread$V({}, state), payload);
7725
7719
  case 'FG_HIGHLIGHT':
7726
- return _objectSpread$U(_objectSpread$U({}, state), {}, {
7720
+ return _objectSpread$V(_objectSpread$V({}, state), {}, {
7727
7721
  functionalGroupInfo: payload
7728
7722
  });
7729
7723
  default:
@@ -7786,6 +7780,148 @@ function initFGTemplates(baseUrl) {
7786
7780
  }();
7787
7781
  }
7788
7782
 
7783
+ function ownKeys$U(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7784
+ function _objectSpread$U(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$U(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$U(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7785
+ var renderCache = new Map();
7786
+ var RenderStruct = function () {
7787
+ function RenderStruct() {
7788
+ _classCallCheck(this, RenderStruct);
7789
+ }
7790
+ _createClass(RenderStruct, null, [{
7791
+ key: "prepareStruct",
7792
+ value:
7793
+ function prepareStruct(struct) {
7794
+ if (struct.sgroups.size > 0) {
7795
+ var newStruct = struct.clone();
7796
+ newStruct.sgroups["delete"](0);
7797
+ return newStruct;
7798
+ }
7799
+ return struct;
7800
+ }
7801
+ }, {
7802
+ key: "render",
7803
+ value: function render(el, struct) {
7804
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
7805
+ if (el && struct) {
7806
+ var _options$cachePrefix = options.cachePrefix,
7807
+ cachePrefix = _options$cachePrefix === void 0 ? '' : _options$cachePrefix;
7808
+ var cacheKey = "".concat(cachePrefix).concat(struct.name);
7809
+ if (renderCache.has(cacheKey)) {
7810
+ el.innerHTML = renderCache.get(cacheKey);
7811
+ return;
7812
+ }
7813
+ var preparedStruct = this.prepareStruct(struct);
7814
+ preparedStruct.initHalfBonds();
7815
+ preparedStruct.initNeighbors();
7816
+ preparedStruct.setImplicitHydrogen();
7817
+ preparedStruct.markFragments();
7818
+ var rnd = new Render(el, _objectSpread$U({
7819
+ autoScale: true
7820
+ }, options));
7821
+ rnd.setMolecule(preparedStruct);
7822
+ rnd.update(true, options.viewSz);
7823
+ renderCache.set(cacheKey, rnd.clientArea.innerHTML);
7824
+ }
7825
+ }
7826
+ }]);
7827
+ return RenderStruct;
7828
+ }();
7829
+
7830
+ function fileOpener(server) {
7831
+ return new Promise(function (resolve, reject) {
7832
+ if (global.FileReader) {
7833
+ resolve(throughFileReader);
7834
+ } else if (global.ActiveXObject) {
7835
+ try {
7836
+ var fso = new ActiveXObject('Scripting.FileSystemObject');
7837
+ resolve(function (file) {
7838
+ return Promise.resolve(throughFileSystemObject(fso, file));
7839
+ });
7840
+ } catch (e) {
7841
+ reject(e);
7842
+ }
7843
+ } else if (server) {
7844
+ resolve(server.then(function () {
7845
+ throw Error("Server doesn't still support echo method");
7846
+ }));
7847
+ } else {
7848
+ reject(new Error('Your browser does not support opening files locally'));
7849
+ }
7850
+ });
7851
+ }
7852
+ function throughFileReader(file) {
7853
+ var isCDX = file.name.endsWith('cdx');
7854
+ return new Promise(function (resolve, reject) {
7855
+ var rd = new FileReader();
7856
+ rd.onload = function () {
7857
+ var content = isCDX ? rd.result.slice(37) : rd.result;
7858
+ if (file.msClose) file.msClose();
7859
+ resolve(content);
7860
+ };
7861
+ rd.onerror = function (event) {
7862
+ reject(event);
7863
+ };
7864
+ isCDX ? rd.readAsDataURL(file) : rd.readAsText(file, 'UTF-8');
7865
+ });
7866
+ }
7867
+ function throughFileSystemObject(fso, file) {
7868
+ var fd = fso.OpenTextFile(file.name, 1);
7869
+ var content = fd.ReadAll();
7870
+ fd.Close();
7871
+ return content;
7872
+ }
7873
+
7874
+ var GREEK_SIMBOLS = {
7875
+ Alpha: 'A',
7876
+ alpha: 'α',
7877
+ Beta: 'B',
7878
+ beta: 'β',
7879
+ Gamma: 'Г',
7880
+ gamma: 'γ'
7881
+ };
7882
+ var greekRe = new RegExp('\\b' + Object.keys(GREEK_SIMBOLS).join('\\b|\\b') + '\\b', 'g');
7883
+ function greekify(str) {
7884
+ return str.replace(greekRe, function (sym) {
7885
+ return GREEK_SIMBOLS[sym];
7886
+ });
7887
+ }
7888
+ function filterLib(lib, filter$1) {
7889
+ var trimmedFilter = filter$1.trim();
7890
+ var re = new RegExp(escapeRegExp(greekify(trimmedFilter)), 'i');
7891
+ return flow(filter(function (item) {
7892
+ return !trimmedFilter || re.test(greekify(item.struct.name)) || re.test(greekify(item.props.group));
7893
+ }), reduce(function (res, item) {
7894
+ if (!res[item.props.group]) res[item.props.group] = [item];else res[item.props.group].push(item);
7895
+ return res;
7896
+ }, {}))(lib);
7897
+ }
7898
+ function filterFGLib(lib, filter$1) {
7899
+ var trimmedFilter = filter$1.trim();
7900
+ var re = new RegExp(escapeRegExp(greekify(trimmedFilter)), 'i');
7901
+ var searchFunction = function searchFunction(item) {
7902
+ var fields = [item.struct.name, item.props.abbreviation, item.props.name].filter(Boolean);
7903
+ return fields.some(function (field) {
7904
+ return re.test(greekify(field));
7905
+ });
7906
+ };
7907
+ return flow(filter(function (item) {
7908
+ return !trimmedFilter || searchFunction(item);
7909
+ }), reduce(function (res, item) {
7910
+ if (!res[item.props.group]) res[item.props.group] = [item];else res[item.props.group].push(item);
7911
+ return res;
7912
+ }, {}))(lib);
7913
+ }
7914
+ var getSelectOptionsFromSchema = function getSelectOptionsFromSchema(schema) {
7915
+ return schema["enum"].reduce(function (options, value, index) {
7916
+ var _schema$enumNames$ind, _schema$enumNames;
7917
+ options.push({
7918
+ value: value,
7919
+ label: (_schema$enumNames$ind = schema === null || schema === void 0 ? void 0 : (_schema$enumNames = schema.enumNames) === null || _schema$enumNames === void 0 ? void 0 : _schema$enumNames[index]) !== null && _schema$enumNames$ind !== void 0 ? _schema$enumNames$ind : value
7920
+ });
7921
+ return options;
7922
+ }, []);
7923
+ };
7924
+
7789
7925
  function ownKeys$T(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7790
7926
  function _objectSpread$T(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$T(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$T(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7791
7927
  var initialState = {
@@ -7812,22 +7948,37 @@ var initSaltsAndSolvents = function initSaltsAndSolvents(lib) {
7812
7948
  }
7813
7949
  };
7814
7950
  };
7951
+ var prerenderPartOfStructures = function prerenderPartOfStructures(saltsAndSolvents, settings) {
7952
+ var part = saltsAndSolvents.slice(0, 50);
7953
+ part.forEach(function (struct) {
7954
+ var div = document.createElement('div');
7955
+ div.style.width = '100px';
7956
+ div.style.height = '100px';
7957
+ div.style.display = 'none';
7958
+ document.body.appendChild(div);
7959
+ RenderStruct.render(div, struct, _objectSpread$T(_objectSpread$T({}, settings), {}, {
7960
+ autoScaleMargin: 15
7961
+ }));
7962
+ div.remove();
7963
+ });
7964
+ };
7815
7965
  function initSaltsAndSolventsTemplates(baseUrl) {
7816
7966
  return function () {
7817
- var _ref2 = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(dispatch) {
7818
- var fileName, url, saltsAndSolventsProvider, functionalGroupsProvider, sdfSerializer, text, templates, saltsAndSolvents;
7967
+ var _ref2 = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(dispatch, getState) {
7968
+ var fileName, settings, url, saltsAndSolventsProvider, functionalGroupsProvider, sdfSerializer, text, templates, saltsAndSolvents;
7819
7969
  return _regeneratorRuntime.wrap(function _callee$(_context) {
7820
7970
  while (1) {
7821
7971
  switch (_context.prev = _context.next) {
7822
7972
  case 0:
7823
7973
  fileName = 'salts-and-solvents.sdf';
7974
+ settings = getState().options.settings;
7824
7975
  url = "".concat(baseUrl, "/templates/").concat(fileName);
7825
7976
  saltsAndSolventsProvider = SaltsAndSolventsProvider.getInstance();
7826
7977
  functionalGroupsProvider = FunctionalGroupsProvider.getInstance();
7827
7978
  sdfSerializer = new SdfSerializer();
7828
- _context.next = 7;
7979
+ _context.next = 8;
7829
7980
  return prefetchStatic(url);
7830
- case 7:
7981
+ case 8:
7831
7982
  text = _context.sent;
7832
7983
  templates = sdfSerializer.deserialize(text);
7833
7984
  saltsAndSolvents = templates.reduce(function (acc, _ref3) {
@@ -7837,20 +7988,21 @@ function initSaltsAndSolventsTemplates(baseUrl) {
7837
7988
  acc.push(struct);
7838
7989
  return acc;
7839
7990
  }, []);
7991
+ prerenderPartOfStructures(saltsAndSolvents, settings);
7840
7992
  saltsAndSolventsProvider.setSaltsAndSolventsList(saltsAndSolvents);
7841
7993
  functionalGroupsProvider.addToFunctionalGroupsList(saltsAndSolvents);
7842
7994
  dispatch(initSaltsAndSolvents(templates));
7843
7995
  dispatch(appUpdate({
7844
7996
  saltsAndSolvents: true
7845
7997
  }));
7846
- case 14:
7998
+ case 16:
7847
7999
  case "end":
7848
8000
  return _context.stop();
7849
8001
  }
7850
8002
  }
7851
8003
  }, _callee);
7852
8004
  }));
7853
- return function (_x) {
8005
+ return function (_x, _x2) {
7854
8006
  return _ref2.apply(this, arguments);
7855
8007
  };
7856
8008
  }();
@@ -8032,9 +8184,6 @@ function createStore (options, server, setEditor) {
8032
8184
  templates: initTmplsState
8033
8185
  };
8034
8186
  var middleware = [thunk];
8035
- if (process.env.KETCHER_ENABLE_REDUX_LOGGER === 'true') {
8036
- middleware.push(logger);
8037
- }
8038
8187
  var rootReducer = getRootReducer(setEditor);
8039
8188
  return createStore$1(rootReducer, initState, applyMiddleware.apply(void 0, middleware));
8040
8189
  }
@@ -9621,7 +9770,6 @@ var TopToolbar = function TopToolbar(_ref) {
9621
9770
  isCollapsed: width < collapseLimit
9622
9771
  }), jsx(SystemControls, {
9623
9772
  onHistoryClick: function onHistoryClick() {
9624
- console.log('History button clicked');
9625
9773
  },
9626
9774
  onSettingsOpen: onSettingsOpen,
9627
9775
  onFullscreen: onFullscreen,
@@ -12398,7 +12546,6 @@ function sgroupDialog(editor, id, defaultType) {
12398
12546
  var type = sg ? sg.type : defaultType;
12399
12547
  var eventName = type === 'DAT' ? 'sdataEdit' : 'sgroupEdit';
12400
12548
  if (!selection.atoms && !selection.bonds && !sg) {
12401
- console.info('There is no selection or sgroup');
12402
12549
  return;
12403
12550
  }
12404
12551
  var attrs;
@@ -13276,7 +13423,6 @@ var EraserTool = function () {
13276
13423
  } else if (ci.map === 'texts') {
13277
13424
  this.editor.update(fromTextDeletion(restruct, ci.id));
13278
13425
  } else {
13279
- console.error('EraserTool: unable to delete the object ' + ci.map + '[' + ci.id + ']');
13280
13426
  return;
13281
13427
  }
13282
13428
  this.editor.selection(null);
@@ -15352,7 +15498,6 @@ function domEventSetup(editor, clientArea) {
15352
15498
  }
15353
15499
  function recoordinate(editor, rp
15354
15500
  ) {
15355
- console.assert(rp, 'Reference point not specified');
15356
15501
  if (rp) {
15357
15502
  editor.render.setScrollOffset(rp.x, rp.y);
15358
15503
  } else {
@@ -15588,42 +15733,10 @@ var Cursor = function Cursor(_ref) {
15588
15733
  };
15589
15734
 
15590
15735
  var _excluded$r = ["struct", "Tag"];
15591
- function _createSuper$a(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$a(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
15592
- function _isNativeReflectConstruct$a() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
15593
15736
  function ownKeys$E(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15594
15737
  function _objectSpread$E(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$E(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$E(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15595
- function prepareStruct(struct) {
15596
- if (struct.sgroups.size > 0) {
15597
- var newStruct = struct.clone();
15598
- newStruct.sgroups["delete"](0);
15599
- return newStruct;
15600
- }
15601
- return struct;
15602
- }
15603
- var renderCache = new Map();
15604
- function renderStruct(el, struct) {
15605
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
15606
- if (el && struct) {
15607
- var _options$cachePrefix = options.cachePrefix,
15608
- cachePrefix = _options$cachePrefix === void 0 ? '' : _options$cachePrefix;
15609
- var cacheKey = "".concat(cachePrefix).concat(struct.name);
15610
- if (renderCache.has(cacheKey)) {
15611
- el.innerHTML = renderCache.get(cacheKey);
15612
- return;
15613
- }
15614
- var preparedStruct = prepareStruct(struct);
15615
- preparedStruct.initHalfBonds();
15616
- preparedStruct.initNeighbors();
15617
- preparedStruct.setImplicitHydrogen();
15618
- preparedStruct.markFragments();
15619
- var rnd = new Render(el, _objectSpread$E({
15620
- autoScale: true
15621
- }, options));
15622
- rnd.setMolecule(preparedStruct);
15623
- rnd.update(true, options.viewSz);
15624
- renderCache.set(cacheKey, rnd.clientArea.innerHTML);
15625
- }
15626
- }
15738
+ function _createSuper$a(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$a(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
15739
+ function _isNativeReflectConstruct$a() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
15627
15740
  var StructRender = function (_Component) {
15628
15741
  _inherits(StructRender, _Component);
15629
15742
  var _super = _createSuper$a(StructRender);
@@ -15660,7 +15773,7 @@ var StructRender = function (_Component) {
15660
15773
  el === null || el === void 0 ? void 0 : el.childNodes.forEach(function (node) {
15661
15774
  node.remove();
15662
15775
  });
15663
- renderStruct(el, parsedStruct, options);
15776
+ RenderStruct.render(el, parsedStruct, options);
15664
15777
  }
15665
15778
  }, {
15666
15779
  key: "componentDidMount",
@@ -16565,103 +16678,6 @@ var Select = function Select(_ref2) {
16565
16678
 
16566
16679
  var classes$z = {"button-common-styles":"form-module_button-common-styles__BvKSn","scrollbar":"form-module_scrollbar__MgLtc","dataError":"form-module_dataError__IXK1h","inputWrapper":"form-module_inputWrapper__sIDHH"};
16567
16680
 
16568
- function fileOpener(server) {
16569
- return new Promise(function (resolve, reject) {
16570
- if (global.FileReader) {
16571
- resolve(throughFileReader);
16572
- } else if (global.ActiveXObject) {
16573
- try {
16574
- var fso = new ActiveXObject('Scripting.FileSystemObject');
16575
- resolve(function (file) {
16576
- return Promise.resolve(throughFileSystemObject(fso, file));
16577
- });
16578
- } catch (e) {
16579
- reject(e);
16580
- }
16581
- } else if (server) {
16582
- resolve(server.then(function () {
16583
- throw Error("Server doesn't still support echo method");
16584
- }));
16585
- } else {
16586
- reject(new Error('Your browser does not support opening files locally'));
16587
- }
16588
- });
16589
- }
16590
- function throughFileReader(file) {
16591
- var isCDX = file.name.endsWith('cdx');
16592
- return new Promise(function (resolve, reject) {
16593
- var rd = new FileReader();
16594
- rd.onload = function () {
16595
- var content = isCDX ? rd.result.slice(37) : rd.result;
16596
- if (file.msClose) file.msClose();
16597
- resolve(content);
16598
- };
16599
- rd.onerror = function (event) {
16600
- reject(event);
16601
- };
16602
- isCDX ? rd.readAsDataURL(file) : rd.readAsText(file, 'UTF-8');
16603
- });
16604
- }
16605
- function throughFileSystemObject(fso, file) {
16606
- var fd = fso.OpenTextFile(file.name, 1);
16607
- var content = fd.ReadAll();
16608
- fd.Close();
16609
- return content;
16610
- }
16611
-
16612
- var GREEK_SIMBOLS = {
16613
- Alpha: 'A',
16614
- alpha: 'α',
16615
- Beta: 'B',
16616
- beta: 'β',
16617
- Gamma: 'Г',
16618
- gamma: 'γ'
16619
- };
16620
- var greekRe = new RegExp('\\b' + Object.keys(GREEK_SIMBOLS).join('\\b|\\b') + '\\b', 'g');
16621
- function greekify(str) {
16622
- return str.replace(greekRe, function (sym) {
16623
- return GREEK_SIMBOLS[sym];
16624
- });
16625
- }
16626
- function filterLib(lib, filter$1) {
16627
- console.warn('Filter', filter$1);
16628
- var trimmedFilter = filter$1.trim();
16629
- var re = new RegExp(escapeRegExp(greekify(trimmedFilter)), 'i');
16630
- return flow(filter(function (item) {
16631
- return !trimmedFilter || re.test(greekify(item.struct.name)) || re.test(greekify(item.props.group));
16632
- }), reduce(function (res, item) {
16633
- if (!res[item.props.group]) res[item.props.group] = [item];else res[item.props.group].push(item);
16634
- return res;
16635
- }, {}))(lib);
16636
- }
16637
- function filterFGLib(lib, filter$1) {
16638
- console.warn('Filter', filter$1);
16639
- var trimmedFilter = filter$1.trim();
16640
- var re = new RegExp(escapeRegExp(greekify(trimmedFilter)), 'i');
16641
- var searchFunction = function searchFunction(item) {
16642
- var fields = [item.struct.name, item.props.abbreviation, item.props.name].filter(Boolean);
16643
- return fields.some(function (field) {
16644
- return re.test(greekify(field));
16645
- });
16646
- };
16647
- return flow(filter(function (item) {
16648
- return !trimmedFilter || searchFunction(item);
16649
- }), reduce(function (res, item) {
16650
- if (!res[item.props.group]) res[item.props.group] = [item];else res[item.props.group].push(item);
16651
- return res;
16652
- }, {}))(lib);
16653
- }
16654
- var getSelectOptionsFromSchema = function getSelectOptionsFromSchema(schema) {
16655
- return schema["enum"].reduce(function (options, value, index) {
16656
- var _schema$enumNames$ind, _schema$enumNames;
16657
- options.push({
16658
- value: value,
16659
- label: (_schema$enumNames$ind = schema === null || schema === void 0 ? void 0 : (_schema$enumNames = schema.enumNames) === null || _schema$enumNames === void 0 ? void 0 : _schema$enumNames[index]) !== null && _schema$enumNames$ind !== void 0 ? _schema$enumNames$ind : value
16660
- });
16661
- return options;
16662
- }, []);
16663
- };
16664
-
16665
16681
  var _excluded$o = ["schema", "result", "customValid"],
16666
16682
  _excluded2$3 = ["labelPos", "title", "children"],
16667
16683
  _excluded3 = ["name", "onChange", "component", "labelPos", "className"],
@@ -17691,7 +17707,6 @@ var mapDispatchToProps$b = function mapDispatchToProps(dispatch, ownProps) {
17691
17707
  result: JSON.parse(newOpts)
17692
17708
  }));
17693
17709
  } catch (ex) {
17694
- console.info('Bad file');
17695
17710
  }
17696
17711
  },
17697
17712
  onReset: function onReset() {
@@ -18395,7 +18410,7 @@ var MiewDialog = function MiewDialog(_ref) {
18395
18410
  }).then(function () {
18396
18411
  return miew.setOptions(miewOpts);
18397
18412
  })["catch"](function (ex) {
18398
- return console.error(ex.message);
18413
+ return (void 0);
18399
18414
  });
18400
18415
  }, [miewOpts, server, struct]);
18401
18416
  var exportCML = useCallback(function () {
@@ -21229,6 +21244,45 @@ var EmptySearchResult = function EmptySearchResult(_ref) {
21229
21244
  });
21230
21245
  };
21231
21246
 
21247
+ var SALTS_AND_SOLVENTS = 'Salts and Solvents';
21248
+ var batchDelay = 300;
21249
+ function useSaltsAndSolvents(saltsAndSolvents, filter) {
21250
+ var _useState = useState(true),
21251
+ _useState2 = _slicedToArray(_useState, 2),
21252
+ isFirstRender = _useState2[0],
21253
+ setIsFirstRender = _useState2[1];
21254
+ var timerId = useRef(null);
21255
+ var _useState3 = useState(saltsAndSolvents[SALTS_AND_SOLVENTS]),
21256
+ _useState4 = _slicedToArray(_useState3, 2),
21257
+ filteredSaltsAndSolvents = _useState4[0],
21258
+ setFilteredSaltsAndSolvents = _useState4[1];
21259
+ var addToSaSWithBatches = useCallback(function (fullFilteredArray) {
21260
+ var batchSize = 16;
21261
+ setFilteredSaltsAndSolvents(function (filteredSaltsAndSolvents) {
21262
+ return [].concat(_toConsumableArray(filteredSaltsAndSolvents !== null && filteredSaltsAndSolvents !== void 0 ? filteredSaltsAndSolvents : []), _toConsumableArray(fullFilteredArray.splice(0, batchSize)));
21263
+ });
21264
+ if (fullFilteredArray.length > 0) {
21265
+ timerId.current = setTimeout(function () {
21266
+ return addToSaSWithBatches(fullFilteredArray);
21267
+ }, batchDelay);
21268
+ }
21269
+ }, []);
21270
+ useEffect(function () {
21271
+ var filteredSaS = filterFGLib(saltsAndSolvents, filter)[SALTS_AND_SOLVENTS];
21272
+ addToSaSWithBatches(filteredSaS);
21273
+ }, [saltsAndSolvents, addToSaSWithBatches]);
21274
+ useEffect(function () {
21275
+ if (isFirstRender) {
21276
+ setIsFirstRender(false);
21277
+ return;
21278
+ }
21279
+ clearTimeout(timerId.current);
21280
+ var filteredSaS = filterFGLib(saltsAndSolvents, filter)[SALTS_AND_SOLVENTS];
21281
+ setFilteredSaltsAndSolvents(filteredSaS);
21282
+ }, [saltsAndSolvents, filter]);
21283
+ return filteredSaltsAndSolvents;
21284
+ }
21285
+
21232
21286
  var _excluded$1 = ["children", "value", "index"],
21233
21287
  _excluded2 = ["filter", "onFilter", "onChangeGroup", "mode", "initialTab", "functionalGroups", "lib", "saltsAndSolvents"];
21234
21288
  function ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -21266,7 +21320,6 @@ var filterLibSelector = createSelector(function (props) {
21266
21320
  return props.filter;
21267
21321
  }, filterLib);
21268
21322
  var FUNCTIONAL_GROUPS = 'Functional Groups';
21269
- var SALTS_AND_SOLVENTS = 'Salts and Solvents';
21270
21323
  var HeaderContent = function HeaderContent() {
21271
21324
  return jsxs("div", {
21272
21325
  className: classes$8.dialogHeader,
@@ -21320,21 +21373,15 @@ var TemplateDialog = function TemplateDialog(props) {
21320
21373
  _useState4 = _slicedToArray(_useState3, 2),
21321
21374
  expandedAccordions = _useState4[0],
21322
21375
  setExpandedAccordions = _useState4[1];
21376
+ var filteredSaltsAndSolvents = useSaltsAndSolvents(saltsAndSolvents, filter);
21323
21377
  var _useState5 = useState(functionalGroups[FUNCTIONAL_GROUPS]),
21324
21378
  _useState6 = _slicedToArray(_useState5, 2),
21325
21379
  filteredFG = _useState6[0],
21326
21380
  setFilteredFG = _useState6[1];
21327
- var _useState7 = useState(saltsAndSolvents[SALTS_AND_SOLVENTS]),
21328
- _useState8 = _slicedToArray(_useState7, 2),
21329
- filteredSaltsAndSolvents = _useState8[0],
21330
- setFilteredSaltsAndSolvents = _useState8[1];
21331
21381
  var filteredTemplateLib = filterLibSelector(props);
21332
21382
  useEffect(function () {
21333
21383
  setFilteredFG(filterFGLib(functionalGroups, filter)[FUNCTIONAL_GROUPS]);
21334
21384
  }, [functionalGroups, filter]);
21335
- useEffect(function () {
21336
- setFilteredSaltsAndSolvents(filterFGLib(saltsAndSolvents, filter)[SALTS_AND_SOLVENTS]);
21337
- }, [saltsAndSolvents, filter]);
21338
21385
  var handleTabChange = function handleTabChange(_, tab) {
21339
21386
  setTab(tab);
21340
21387
  props.onSelect(null);
@@ -22241,8 +22288,8 @@ var KetcherBuilder = function () {
22241
22288
  initApp(element, staticResourcesUrl, {
22242
22289
  buttons: buttons || {},
22243
22290
  errorHandler: errorHandler || null,
22244
- version: "2.7.0-rc.2" ,
22245
- buildDate: "2022-12-16T15:41:03" ,
22291
+ version: "2.7.0-rc.4" ,
22292
+ buildDate: "2022-12-20T17:00:39" ,
22246
22293
  buildNumber: ''
22247
22294
  }, structService, resolve);
22248
22295
  });