ketcher-react 2.7.0-rc.2 → 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.
package/dist/index.js CHANGED
@@ -457,8 +457,8 @@ function exec(action) {
457
457
  return enabled;
458
458
  }
459
459
 
460
- 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; }
461
- 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__default["default"](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; }
460
+ 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; }
461
+ 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__default["default"](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; }
462
462
  var editor = {
463
463
  resetToSelect: {
464
464
  title: 'Reset to Select Tool',
@@ -706,7 +706,7 @@ var optionsSchema = {
706
706
  title: 'Settings',
707
707
  type: 'object',
708
708
  required: [],
709
- properties: _objectSpread$15(_objectSpread$15(_objectSpread$15(_objectSpread$15(_objectSpread$15({}, editor), render), server), debug), miew)
709
+ properties: _objectSpread$16(_objectSpread$16(_objectSpread$16(_objectSpread$16(_objectSpread$16({}, editor), render), server), debug), miew)
710
710
  };
711
711
  function getDefaultOptions() {
712
712
  if (!optionsSchema.properties) return {};
@@ -767,8 +767,8 @@ var storage = {
767
767
  }
768
768
  };
769
769
 
770
- 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; }
771
- 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__default["default"](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; }
770
+ 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; }
771
+ 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__default["default"](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; }
772
772
  var initOptionsState = {
773
773
  app: {
774
774
  server: false,
@@ -865,27 +865,27 @@ function optionsReducer() {
865
865
  var action = arguments.length > 1 ? arguments[1] : undefined;
866
866
  var type = action.type,
867
867
  data = action.data;
868
- if (type === 'APP_OPTIONS') return _objectSpread$14(_objectSpread$14({}, state), {}, {
869
- app: _objectSpread$14(_objectSpread$14({}, state.app), data)
868
+ if (type === 'APP_OPTIONS') return _objectSpread$15(_objectSpread$15({}, state), {}, {
869
+ app: _objectSpread$15(_objectSpread$15({}, state.app), data)
870
870
  });
871
- if (type === 'SAVE_SETTINGS') return _objectSpread$14(_objectSpread$14({}, state), {}, {
871
+ if (type === 'SAVE_SETTINGS') return _objectSpread$15(_objectSpread$15({}, state), {}, {
872
872
  settings: data
873
873
  });
874
- if (type === 'SAVE_CHECK_OPTS') return _objectSpread$14(_objectSpread$14({}, state), {}, {
874
+ if (type === 'SAVE_CHECK_OPTS') return _objectSpread$15(_objectSpread$15({}, state), {}, {
875
875
  check: data
876
876
  });
877
- if (type === 'CHANGE_ANALYSE') return _objectSpread$14(_objectSpread$14({}, state), {}, {
878
- analyse: _objectSpread$14(_objectSpread$14(_objectSpread$14({}, state.analyse), data), {}, {
877
+ if (type === 'CHANGE_ANALYSE') return _objectSpread$15(_objectSpread$15({}, state), {}, {
878
+ analyse: _objectSpread$15(_objectSpread$15(_objectSpread$15({}, state.analyse), data), {}, {
879
879
  loading: false
880
880
  })
881
881
  });
882
- if (type === 'ANALYSE_LOADING') return _objectSpread$14(_objectSpread$14({}, state), {}, {
883
- analyse: _objectSpread$14(_objectSpread$14({}, state.analyse), {}, {
882
+ if (type === 'ANALYSE_LOADING') return _objectSpread$15(_objectSpread$15({}, state), {}, {
883
+ analyse: _objectSpread$15(_objectSpread$15({}, state.analyse), {}, {
884
884
  loading: true
885
885
  })
886
886
  });
887
- if (recognizeActions.includes(type)) return _objectSpread$14(_objectSpread$14({}, state), {}, {
888
- recognize: _objectSpread$14(_objectSpread$14({}, state.recognize), data)
887
+ if (recognizeActions.includes(type)) return _objectSpread$15(_objectSpread$15({}, state), {}, {
888
+ recognize: _objectSpread$15(_objectSpread$15({}, state.recognize), data)
889
889
  });
890
890
  return state;
891
891
  }
@@ -1188,8 +1188,8 @@ function getSdataDefault() {
1188
1188
  return schema[context][fieldName] ? schema[context][fieldName].properties.fieldValue["default"] : '';
1189
1189
  }
1190
1190
 
1191
- 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; }
1192
- 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__default["default"](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; }
1191
+ 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; }
1192
+ 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__default["default"](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; }
1193
1193
  var initSdata = function initSdata(schema) {
1194
1194
  var isCustomShema = schema.key === 'Custom';
1195
1195
  var context = isCustomShema ? getSdataDefault(sdataCustomSchema, 'context') : getSdataDefault(sdataSchema);
@@ -1210,7 +1210,7 @@ var initSdata = function initSdata(schema) {
1210
1210
  };
1211
1211
  function sdataReducer(state, action) {
1212
1212
  if (action.data.result.init) {
1213
- return correctErrors(_objectSpread$13(_objectSpread$13({}, state), {}, {
1213
+ return correctErrors(_objectSpread$14(_objectSpread$14({}, state), {}, {
1214
1214
  result: Object.assign({}, state.result, action.data.result)
1215
1215
  }), action.data);
1216
1216
  }
@@ -1218,7 +1218,7 @@ function sdataReducer(state, action) {
1218
1218
  var actionFieldName = action.data.result.fieldName;
1219
1219
  var newstate = null;
1220
1220
  if (actionContext !== state.result.context) newstate = onContextChange(state, action.data.result);else if (actionFieldName !== state.result.fieldName) newstate = onFieldNameChange(state, action.data.result);
1221
- newstate = newstate || _objectSpread$13(_objectSpread$13({}, state), {}, {
1221
+ newstate = newstate || _objectSpread$14(_objectSpread$14({}, state), {}, {
1222
1222
  result: Object.assign({}, state.result, action.data.result)
1223
1223
  });
1224
1224
  return correctErrors(newstate, action.data);
@@ -1242,7 +1242,7 @@ var onContextChange = function onContextChange(state, payload) {
1242
1242
  var fValue = fieldValue;
1243
1243
  if (fValue === state.result.fieldValue) fValue = getSdataDefault(sdataCustomSchema, 'fieldValue');
1244
1244
  return {
1245
- result: _objectSpread$13(_objectSpread$13({}, payload), {}, {
1245
+ result: _objectSpread$14(_objectSpread$14({}, payload), {}, {
1246
1246
  context: context,
1247
1247
  fieldName: fieldName,
1248
1248
  fieldValue: fValue
@@ -1256,7 +1256,7 @@ var onFieldNameChange = function onFieldNameChange(state, payload) {
1256
1256
  if (sdataSchema[context][fieldName]) fieldValue = getSdataDefault(sdataSchema, context, fieldName);
1257
1257
  if (fieldValue === state.result.fieldValue && sdataSchema[context][state.result.fieldName]) fieldValue = '';
1258
1258
  return {
1259
- result: _objectSpread$13(_objectSpread$13({}, payload), {}, {
1259
+ result: _objectSpread$14(_objectSpread$14({}, payload), {}, {
1260
1260
  fieldName: fieldName,
1261
1261
  fieldValue: fieldValue
1262
1262
  })
@@ -1394,8 +1394,8 @@ function formReducer(state, action, formName) {
1394
1394
  var INDIGO_VERIFICATION = 'INDIGO_VERIFICATION';
1395
1395
  var ANALYZING_FILE = 'ANALYZING_FILE';
1396
1396
 
1397
- 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; }
1398
- 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__default["default"](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; }
1397
+ 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; }
1398
+ 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__default["default"](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; }
1399
1399
  function indigoVerification(data) {
1400
1400
  return {
1401
1401
  type: INDIGO_VERIFICATION,
@@ -1420,13 +1420,13 @@ function requestReducer () {
1420
1420
  switch (type) {
1421
1421
  case INDIGO_VERIFICATION:
1422
1422
  {
1423
- return _objectSpread$12(_objectSpread$12({}, state), {}, {
1423
+ return _objectSpread$13(_objectSpread$13({}, state), {}, {
1424
1424
  indigoVerification: data
1425
1425
  });
1426
1426
  }
1427
1427
  case ANALYZING_FILE:
1428
1428
  {
1429
- return _objectSpread$12(_objectSpread$12({}, state), {}, {
1429
+ return _objectSpread$13(_objectSpread$13({}, state), {}, {
1430
1430
  isAnalyzingFile: data
1431
1431
  });
1432
1432
  }
@@ -1699,12 +1699,12 @@ var attachSchema = {
1699
1699
  };
1700
1700
 
1701
1701
  var _excluded$E = ["type", "radiobuttons"];
1702
- 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; }
1703
- 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__default["default"](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; }
1702
+ 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; }
1703
+ 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__default["default"](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; }
1704
1704
  var DefaultStereoGroupNumber = 1;
1705
1705
  function fromElement(selem) {
1706
1706
  if (selem.label === 'R#') {
1707
- return _objectSpread$11({
1707
+ return _objectSpread$12({
1708
1708
  type: 'rlabel',
1709
1709
  values: fromRlabel(selem.rglabel)
1710
1710
  }, selem);
@@ -1864,7 +1864,7 @@ function fromBond(sbond) {
1864
1864
  };
1865
1865
  }
1866
1866
  function toBond(bond) {
1867
- return _objectSpread$11({
1867
+ return _objectSpread$12({
1868
1868
  topology: bond.topology,
1869
1869
  reactingCenterStatus: bond.center
1870
1870
  }, toBondType(bond.type));
@@ -1954,7 +1954,7 @@ function toSgroup(sgroup) {
1954
1954
  var type = sgroup.type,
1955
1955
  radiobuttons = sgroup.radiobuttons,
1956
1956
  props = _objectWithoutProperties__default["default"](sgroup, _excluded$E);
1957
- var attrs = _objectSpread$11({}, props);
1957
+ var attrs = _objectSpread$12({}, props);
1958
1958
  var absolute = 'absolute';
1959
1959
  var attached = 'attached';
1960
1960
  switch (radiobuttons) {
@@ -2455,8 +2455,8 @@ var tools$1 = typeSchema$1["enum"].reduce(function (res, type, i) {
2455
2455
  }, toolActions);
2456
2456
 
2457
2457
  var _excluded$D = ["rescale", "fragment"];
2458
- 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; }
2459
- 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__default["default"](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; }
2458
+ 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; }
2459
+ 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__default["default"](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; }
2460
2460
  function onAction(action) {
2461
2461
  if (action && action.dialog) {
2462
2462
  return {
@@ -2483,6 +2483,9 @@ function parseStruct(struct, server, options) {
2483
2483
  _options.fragment;
2484
2484
  var formatterOptions = _objectWithoutProperties__default["default"](_options, _excluded$D);
2485
2485
  var format = ketcherCore.identifyStructFormat(struct);
2486
+ if (format === ketcherCore.SupportedFormat.cdx) {
2487
+ struct = "base64::".concat(struct.replace(/\s/g, ''));
2488
+ }
2486
2489
  var factory = new ketcherCore.FormatterFactory(server);
2487
2490
  var service = factory.create(format, formatterOptions);
2488
2491
  return service.getStructureFromStringAsync(struct);
@@ -2503,7 +2506,7 @@ function load(struct, options) {
2503
2506
  server = state.server;
2504
2507
  errorHandler = editor.errorHandler;
2505
2508
  options = options || {};
2506
- options = _objectSpread$10(_objectSpread$10({}, options), {}, {
2509
+ options = _objectSpread$11(_objectSpread$11({}, options), {}, {
2507
2510
  'dearomatize-on-load': editor.options()['dearomatize-on-load']
2508
2511
  });
2509
2512
  dispatch(setAnalyzingFile(true));
@@ -2931,7 +2934,7 @@ var zoom = {
2931
2934
 
2932
2935
  var openHelpLink = function openHelpLink() {
2933
2936
  var _window$open;
2934
- return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v2.7.0-rc.2\n", "/documentation/help.md#ketcher-overview"))) === null || _window$open === void 0 ? void 0 : _window$open.focus();
2937
+ 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();
2935
2938
  };
2936
2939
  var help = {
2937
2940
  help: {
@@ -2992,9 +2995,9 @@ var fullscreen = {
2992
2995
  }
2993
2996
  };
2994
2997
 
2995
- 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; }
2996
- 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__default["default"](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; }
2997
- var config = _objectSpread$$(_objectSpread$$(_objectSpread$$(_objectSpread$$(_objectSpread$$(_objectSpread$$(_objectSpread$$(_objectSpread$$(_objectSpread$$({
2998
+ 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; }
2999
+ 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__default["default"](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; }
3000
+ var config = _objectSpread$10(_objectSpread$10(_objectSpread$10(_objectSpread$10(_objectSpread$10(_objectSpread$10(_objectSpread$10(_objectSpread$10(_objectSpread$10({
2998
3001
  clear: {
2999
3002
  shortcut: 'Mod+Delete',
3000
3003
  title: 'Clear Canvas',
@@ -6900,13 +6903,13 @@ function findIconByName(name) {
6900
6903
  }
6901
6904
 
6902
6905
  var _excluded$C = ["name"];
6903
- 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; }
6904
- 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__default["default"](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; }
6906
+ 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; }
6907
+ 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__default["default"](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; }
6905
6908
  function Icon(_ref) {
6906
6909
  var name = _ref.name,
6907
6910
  props = _objectWithoutProperties__default["default"](_ref, _excluded$C);
6908
6911
  var Component = findIconByName(name);
6909
- return jsxRuntime.jsx(Component, _objectSpread$_({}, props));
6912
+ return jsxRuntime.jsx(Component, _objectSpread$$({}, props));
6910
6913
  }
6911
6914
 
6912
6915
  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"};
@@ -7202,8 +7205,8 @@ function usePortalStyle(_ref) {
7202
7205
  return [portalStyle];
7203
7206
  }
7204
7207
 
7205
- 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; }
7206
- 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__default["default"](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; }
7208
+ 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; }
7209
+ 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__default["default"](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; }
7207
7210
  var ToolbarMultiToolItem = function ToolbarMultiToolItem(props) {
7208
7211
  var id = props.id,
7209
7212
  options = props.options,
@@ -7265,7 +7268,7 @@ var ToolbarMultiToolItem = function ToolbarMultiToolItem(props) {
7265
7268
  return displayMultiToolItem ? jsxRuntime.jsxs("div", {
7266
7269
  ref: ref,
7267
7270
  className: classes$L.root,
7268
- children: [jsxRuntime.jsx(ActionButton, _objectSpread$Z(_objectSpread$Z({}, actionButtonProps), {}, {
7271
+ children: [jsxRuntime.jsx(ActionButton, _objectSpread$_(_objectSpread$_({}, actionButtonProps), {}, {
7269
7272
  className: className,
7270
7273
  name: currentId,
7271
7274
  action: config[currentId],
@@ -7365,8 +7368,8 @@ var TemplatesList = function TemplatesList(props) {
7365
7368
  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"};
7366
7369
 
7367
7370
  var _excluded$B = ["className"];
7368
- 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; }
7369
- 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__default["default"](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; }
7371
+ 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; }
7372
+ 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__default["default"](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; }
7370
7373
  var Group$1 = function Group(_ref) {
7371
7374
  var children = _ref.children,
7372
7375
  className = _ref.className;
@@ -7392,7 +7395,7 @@ var BottomToolbar = function BottomToolbar(props) {
7392
7395
  onAction: onAction
7393
7396
  })
7394
7397
  }), jsxRuntime.jsx(Group$1, {
7395
- children: jsxRuntime.jsx(ToolbarGroupItem, _objectSpread$Y({
7398
+ children: jsxRuntime.jsx(ToolbarGroupItem, _objectSpread$Z({
7396
7399
  id: "template-lib"
7397
7400
  }, rest))
7398
7401
  })]
@@ -7487,15 +7490,15 @@ function prefetchRender(tmpls, baseUrl, cacheEl) {
7487
7490
  });
7488
7491
  }
7489
7492
 
7490
- 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; }
7491
- 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__default["default"](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; }
7493
+ 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; }
7494
+ 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__default["default"](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; }
7492
7495
  function openDialog(dispatch, dialogName, props) {
7493
7496
  return new Promise(function (resolve, reject) {
7494
7497
  dispatch({
7495
7498
  type: 'MODAL_OPEN',
7496
7499
  data: {
7497
7500
  name: dialogName,
7498
- prop: _objectSpread$X(_objectSpread$X({}, props), {}, {
7501
+ prop: _objectSpread$Y(_objectSpread$Y({}, props), {}, {
7499
7502
  onResult: resolve,
7500
7503
  onCancel: reject
7501
7504
  })
@@ -7513,7 +7516,7 @@ function modalReducer() {
7513
7516
  return null;
7514
7517
  }
7515
7518
  var formState = formReducer(state.form, action, state.name);
7516
- return _objectSpread$X(_objectSpread$X({}, state), {}, {
7519
+ return _objectSpread$Y(_objectSpread$Y({}, state), {}, {
7517
7520
  form: formState
7518
7521
  });
7519
7522
  }
@@ -7531,8 +7534,8 @@ function modalReducer() {
7531
7534
  }
7532
7535
  }
7533
7536
 
7534
- 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; }
7535
- 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__default["default"](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; }
7537
+ 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; }
7538
+ 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__default["default"](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; }
7536
7539
  function selectTmpl(tmpl) {
7537
7540
  return {
7538
7541
  type: 'TMPL_SELECT',
@@ -7632,7 +7635,7 @@ function saveUserTmpl(struct) {
7632
7635
  var name = _ref.name,
7633
7636
  attach = _ref.attach;
7634
7637
  tmpl.struct.name = name.trim();
7635
- tmpl.props = _objectSpread$W(_objectSpread$W({}, attach), {}, {
7638
+ tmpl.props = _objectSpread$X(_objectSpread$X({}, attach), {}, {
7636
7639
  group: 'User Templates'
7637
7640
  });
7638
7641
  var lib = getState().templates.lib.concat(tmpl);
@@ -7671,7 +7674,7 @@ function templatesReducer() {
7671
7674
  if (tmplActions.includes(action.type)) return Object.assign({}, state, action.data);
7672
7675
  if (attachActions.includes(action.type)) {
7673
7676
  var attach = Object.assign({}, state.attach, action.data);
7674
- return _objectSpread$W(_objectSpread$W({}, state), {}, {
7677
+ return _objectSpread$X(_objectSpread$X({}, state), {}, {
7675
7678
  attach: attach
7676
7679
  });
7677
7680
  }
@@ -7680,7 +7683,7 @@ function templatesReducer() {
7680
7683
  var lib = currentState.lib.filter(function (value) {
7681
7684
  return value !== action.data.tmpl;
7682
7685
  });
7683
- return _objectSpread$W(_objectSpread$W({}, currentState), {}, {
7686
+ return _objectSpread$X(_objectSpread$X({}, currentState), {}, {
7684
7687
  lib: lib
7685
7688
  });
7686
7689
  }
@@ -7688,8 +7691,8 @@ function templatesReducer() {
7688
7691
  }
7689
7692
 
7690
7693
  var _excluded$A = ["type", "action"];
7691
- 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; }
7692
- 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__default["default"](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; }
7694
+ 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; }
7695
+ 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__default["default"](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; }
7693
7696
  function execute(activeTool, _ref) {
7694
7697
  var action = _ref.action,
7695
7698
  editor = _ref.editor,
@@ -7743,7 +7746,7 @@ function actionStateReducer () {
7743
7746
  case 'INIT':
7744
7747
  action = config['select-rectangle'].action;
7745
7748
  case 'ACTION':
7746
- activeTool = execute(state && state.activeTool, _objectSpread$V(_objectSpread$V({}, params), {}, {
7749
+ activeTool = execute(state && state.activeTool, _objectSpread$W(_objectSpread$W({}, params), {}, {
7747
7750
  action: action
7748
7751
  }));
7749
7752
  case 'UPDATE':
@@ -7759,8 +7762,8 @@ function actionStateReducer () {
7759
7762
  }
7760
7763
  }
7761
7764
 
7762
- 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; }
7763
- 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__default["default"](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; }
7765
+ 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; }
7766
+ 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__default["default"](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; }
7764
7767
  var initialState$1 = {
7765
7768
  lib: [],
7766
7769
  functionalGroupInfo: null,
@@ -7773,9 +7776,9 @@ var functionalGroupsReducer = function functionalGroupsReducer() {
7773
7776
  payload = _ref.payload;
7774
7777
  switch (type) {
7775
7778
  case 'FG_INIT':
7776
- return _objectSpread$U(_objectSpread$U({}, state), payload);
7779
+ return _objectSpread$V(_objectSpread$V({}, state), payload);
7777
7780
  case 'FG_HIGHLIGHT':
7778
- return _objectSpread$U(_objectSpread$U({}, state), {}, {
7781
+ return _objectSpread$V(_objectSpread$V({}, state), {}, {
7779
7782
  functionalGroupInfo: payload
7780
7783
  });
7781
7784
  default:
@@ -7838,6 +7841,148 @@ function initFGTemplates(baseUrl) {
7838
7841
  }();
7839
7842
  }
7840
7843
 
7844
+ 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; }
7845
+ 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__default["default"](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; }
7846
+ var renderCache = new Map();
7847
+ var RenderStruct = function () {
7848
+ function RenderStruct() {
7849
+ _classCallCheck__default["default"](this, RenderStruct);
7850
+ }
7851
+ _createClass__default["default"](RenderStruct, null, [{
7852
+ key: "prepareStruct",
7853
+ value:
7854
+ function prepareStruct(struct) {
7855
+ if (struct.sgroups.size > 0) {
7856
+ var newStruct = struct.clone();
7857
+ newStruct.sgroups["delete"](0);
7858
+ return newStruct;
7859
+ }
7860
+ return struct;
7861
+ }
7862
+ }, {
7863
+ key: "render",
7864
+ value: function render(el, struct) {
7865
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
7866
+ if (el && struct) {
7867
+ var _options$cachePrefix = options.cachePrefix,
7868
+ cachePrefix = _options$cachePrefix === void 0 ? '' : _options$cachePrefix;
7869
+ var cacheKey = "".concat(cachePrefix).concat(struct.name);
7870
+ if (renderCache.has(cacheKey)) {
7871
+ el.innerHTML = renderCache.get(cacheKey);
7872
+ return;
7873
+ }
7874
+ var preparedStruct = this.prepareStruct(struct);
7875
+ preparedStruct.initHalfBonds();
7876
+ preparedStruct.initNeighbors();
7877
+ preparedStruct.setImplicitHydrogen();
7878
+ preparedStruct.markFragments();
7879
+ var rnd = new ketcherCore.Render(el, _objectSpread$U({
7880
+ autoScale: true
7881
+ }, options));
7882
+ rnd.setMolecule(preparedStruct);
7883
+ rnd.update(true, options.viewSz);
7884
+ renderCache.set(cacheKey, rnd.clientArea.innerHTML);
7885
+ }
7886
+ }
7887
+ }]);
7888
+ return RenderStruct;
7889
+ }();
7890
+
7891
+ function fileOpener(server) {
7892
+ return new Promise(function (resolve, reject) {
7893
+ if (global.FileReader) {
7894
+ resolve(throughFileReader);
7895
+ } else if (global.ActiveXObject) {
7896
+ try {
7897
+ var fso = new ActiveXObject('Scripting.FileSystemObject');
7898
+ resolve(function (file) {
7899
+ return Promise.resolve(throughFileSystemObject(fso, file));
7900
+ });
7901
+ } catch (e) {
7902
+ reject(e);
7903
+ }
7904
+ } else if (server) {
7905
+ resolve(server.then(function () {
7906
+ throw Error("Server doesn't still support echo method");
7907
+ }));
7908
+ } else {
7909
+ reject(new Error('Your browser does not support opening files locally'));
7910
+ }
7911
+ });
7912
+ }
7913
+ function throughFileReader(file) {
7914
+ var isCDX = file.name.endsWith('cdx');
7915
+ return new Promise(function (resolve, reject) {
7916
+ var rd = new FileReader();
7917
+ rd.onload = function () {
7918
+ var content = isCDX ? rd.result.slice(37) : rd.result;
7919
+ if (file.msClose) file.msClose();
7920
+ resolve(content);
7921
+ };
7922
+ rd.onerror = function (event) {
7923
+ reject(event);
7924
+ };
7925
+ isCDX ? rd.readAsDataURL(file) : rd.readAsText(file, 'UTF-8');
7926
+ });
7927
+ }
7928
+ function throughFileSystemObject(fso, file) {
7929
+ var fd = fso.OpenTextFile(file.name, 1);
7930
+ var content = fd.ReadAll();
7931
+ fd.Close();
7932
+ return content;
7933
+ }
7934
+
7935
+ var GREEK_SIMBOLS = {
7936
+ Alpha: 'A',
7937
+ alpha: 'α',
7938
+ Beta: 'B',
7939
+ beta: 'β',
7940
+ Gamma: 'Г',
7941
+ gamma: 'γ'
7942
+ };
7943
+ var greekRe = new RegExp('\\b' + Object.keys(GREEK_SIMBOLS).join('\\b|\\b') + '\\b', 'g');
7944
+ function greekify(str) {
7945
+ return str.replace(greekRe, function (sym) {
7946
+ return GREEK_SIMBOLS[sym];
7947
+ });
7948
+ }
7949
+ function filterLib(lib, filter) {
7950
+ var trimmedFilter = filter.trim();
7951
+ var re = new RegExp(fp.escapeRegExp(greekify(trimmedFilter)), 'i');
7952
+ return fp.flow(fp.filter(function (item) {
7953
+ return !trimmedFilter || re.test(greekify(item.struct.name)) || re.test(greekify(item.props.group));
7954
+ }), fp.reduce(function (res, item) {
7955
+ if (!res[item.props.group]) res[item.props.group] = [item];else res[item.props.group].push(item);
7956
+ return res;
7957
+ }, {}))(lib);
7958
+ }
7959
+ function filterFGLib(lib, filter) {
7960
+ var trimmedFilter = filter.trim();
7961
+ var re = new RegExp(fp.escapeRegExp(greekify(trimmedFilter)), 'i');
7962
+ var searchFunction = function searchFunction(item) {
7963
+ var fields = [item.struct.name, item.props.abbreviation, item.props.name].filter(Boolean);
7964
+ return fields.some(function (field) {
7965
+ return re.test(greekify(field));
7966
+ });
7967
+ };
7968
+ return fp.flow(fp.filter(function (item) {
7969
+ return !trimmedFilter || searchFunction(item);
7970
+ }), fp.reduce(function (res, item) {
7971
+ if (!res[item.props.group]) res[item.props.group] = [item];else res[item.props.group].push(item);
7972
+ return res;
7973
+ }, {}))(lib);
7974
+ }
7975
+ var getSelectOptionsFromSchema = function getSelectOptionsFromSchema(schema) {
7976
+ return schema["enum"].reduce(function (options, value, index) {
7977
+ var _schema$enumNames$ind, _schema$enumNames;
7978
+ options.push({
7979
+ value: value,
7980
+ 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
7981
+ });
7982
+ return options;
7983
+ }, []);
7984
+ };
7985
+
7841
7986
  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; }
7842
7987
  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__default["default"](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; }
7843
7988
  var initialState = {
@@ -7864,22 +8009,37 @@ var initSaltsAndSolvents = function initSaltsAndSolvents(lib) {
7864
8009
  }
7865
8010
  };
7866
8011
  };
8012
+ var prerenderPartOfStructures = function prerenderPartOfStructures(saltsAndSolvents, settings) {
8013
+ var part = saltsAndSolvents.slice(0, 50);
8014
+ part.forEach(function (struct) {
8015
+ var div = document.createElement('div');
8016
+ div.style.width = '100px';
8017
+ div.style.height = '100px';
8018
+ div.style.display = 'none';
8019
+ document.body.appendChild(div);
8020
+ RenderStruct.render(div, struct, _objectSpread$T(_objectSpread$T({}, settings), {}, {
8021
+ autoScaleMargin: 15
8022
+ }));
8023
+ div.remove();
8024
+ });
8025
+ };
7867
8026
  function initSaltsAndSolventsTemplates(baseUrl) {
7868
8027
  return function () {
7869
- var _ref2 = _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee(dispatch) {
7870
- var fileName, url, saltsAndSolventsProvider, functionalGroupsProvider, sdfSerializer, text, templates, saltsAndSolvents;
8028
+ var _ref2 = _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee(dispatch, getState) {
8029
+ var fileName, settings, url, saltsAndSolventsProvider, functionalGroupsProvider, sdfSerializer, text, templates, saltsAndSolvents;
7871
8030
  return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
7872
8031
  while (1) {
7873
8032
  switch (_context.prev = _context.next) {
7874
8033
  case 0:
7875
8034
  fileName = 'salts-and-solvents.sdf';
8035
+ settings = getState().options.settings;
7876
8036
  url = "".concat(baseUrl, "/templates/").concat(fileName);
7877
8037
  saltsAndSolventsProvider = ketcherCore.SaltsAndSolventsProvider.getInstance();
7878
8038
  functionalGroupsProvider = ketcherCore.FunctionalGroupsProvider.getInstance();
7879
8039
  sdfSerializer = new ketcherCore.SdfSerializer();
7880
- _context.next = 7;
8040
+ _context.next = 8;
7881
8041
  return prefetchStatic(url);
7882
- case 7:
8042
+ case 8:
7883
8043
  text = _context.sent;
7884
8044
  templates = sdfSerializer.deserialize(text);
7885
8045
  saltsAndSolvents = templates.reduce(function (acc, _ref3) {
@@ -7889,20 +8049,21 @@ function initSaltsAndSolventsTemplates(baseUrl) {
7889
8049
  acc.push(struct);
7890
8050
  return acc;
7891
8051
  }, []);
8052
+ prerenderPartOfStructures(saltsAndSolvents, settings);
7892
8053
  saltsAndSolventsProvider.setSaltsAndSolventsList(saltsAndSolvents);
7893
8054
  functionalGroupsProvider.addToFunctionalGroupsList(saltsAndSolvents);
7894
8055
  dispatch(initSaltsAndSolvents(templates));
7895
8056
  dispatch(appUpdate({
7896
8057
  saltsAndSolvents: true
7897
8058
  }));
7898
- case 14:
8059
+ case 16:
7899
8060
  case "end":
7900
8061
  return _context.stop();
7901
8062
  }
7902
8063
  }
7903
8064
  }, _callee);
7904
8065
  }));
7905
- return function (_x) {
8066
+ return function (_x, _x2) {
7906
8067
  return _ref2.apply(this, arguments);
7907
8068
  };
7908
8069
  }();
@@ -15633,42 +15794,10 @@ var Cursor = function Cursor(_ref) {
15633
15794
  };
15634
15795
 
15635
15796
  var _excluded$r = ["struct", "Tag"];
15636
- function _createSuper$a(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$a(); return function _createSuperInternal() { var Super = _getPrototypeOf__default["default"](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default["default"](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default["default"](this, result); }; }
15637
- 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; } }
15638
15797
  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; }
15639
15798
  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__default["default"](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; }
15640
- function prepareStruct(struct) {
15641
- if (struct.sgroups.size > 0) {
15642
- var newStruct = struct.clone();
15643
- newStruct.sgroups["delete"](0);
15644
- return newStruct;
15645
- }
15646
- return struct;
15647
- }
15648
- var renderCache = new Map();
15649
- function renderStruct(el, struct) {
15650
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
15651
- if (el && struct) {
15652
- var _options$cachePrefix = options.cachePrefix,
15653
- cachePrefix = _options$cachePrefix === void 0 ? '' : _options$cachePrefix;
15654
- var cacheKey = "".concat(cachePrefix).concat(struct.name);
15655
- if (renderCache.has(cacheKey)) {
15656
- el.innerHTML = renderCache.get(cacheKey);
15657
- return;
15658
- }
15659
- var preparedStruct = prepareStruct(struct);
15660
- preparedStruct.initHalfBonds();
15661
- preparedStruct.initNeighbors();
15662
- preparedStruct.setImplicitHydrogen();
15663
- preparedStruct.markFragments();
15664
- var rnd = new ketcherCore.Render(el, _objectSpread$E({
15665
- autoScale: true
15666
- }, options));
15667
- rnd.setMolecule(preparedStruct);
15668
- rnd.update(true, options.viewSz);
15669
- renderCache.set(cacheKey, rnd.clientArea.innerHTML);
15670
- }
15671
- }
15799
+ function _createSuper$a(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$a(); return function _createSuperInternal() { var Super = _getPrototypeOf__default["default"](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default["default"](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default["default"](this, result); }; }
15800
+ 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; } }
15672
15801
  var StructRender = function (_Component) {
15673
15802
  _inherits__default["default"](StructRender, _Component);
15674
15803
  var _super = _createSuper$a(StructRender);
@@ -15705,7 +15834,7 @@ var StructRender = function (_Component) {
15705
15834
  el === null || el === void 0 ? void 0 : el.childNodes.forEach(function (node) {
15706
15835
  node.remove();
15707
15836
  });
15708
- renderStruct(el, parsedStruct, options);
15837
+ RenderStruct.render(el, parsedStruct, options);
15709
15838
  }
15710
15839
  }, {
15711
15840
  key: "componentDidMount",
@@ -16610,100 +16739,6 @@ var Select = function Select(_ref2) {
16610
16739
 
16611
16740
  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"};
16612
16741
 
16613
- function fileOpener(server) {
16614
- return new Promise(function (resolve, reject) {
16615
- if (global.FileReader) {
16616
- resolve(throughFileReader);
16617
- } else if (global.ActiveXObject) {
16618
- try {
16619
- var fso = new ActiveXObject('Scripting.FileSystemObject');
16620
- resolve(function (file) {
16621
- return Promise.resolve(throughFileSystemObject(fso, file));
16622
- });
16623
- } catch (e) {
16624
- reject(e);
16625
- }
16626
- } else if (server) {
16627
- resolve(server.then(function () {
16628
- throw Error("Server doesn't still support echo method");
16629
- }));
16630
- } else {
16631
- reject(new Error('Your browser does not support opening files locally'));
16632
- }
16633
- });
16634
- }
16635
- function throughFileReader(file) {
16636
- return new Promise(function (resolve, reject) {
16637
- var rd = new FileReader();
16638
- rd.onload = function () {
16639
- var content = rd.result;
16640
- if (file.msClose) file.msClose();
16641
- resolve(content);
16642
- };
16643
- rd.onerror = function (event) {
16644
- reject(event);
16645
- };
16646
- rd.readAsText(file, 'UTF-8');
16647
- });
16648
- }
16649
- function throughFileSystemObject(fso, file) {
16650
- var fd = fso.OpenTextFile(file.name, 1);
16651
- var content = fd.ReadAll();
16652
- fd.Close();
16653
- return content;
16654
- }
16655
-
16656
- var GREEK_SIMBOLS = {
16657
- Alpha: 'A',
16658
- alpha: 'α',
16659
- Beta: 'B',
16660
- beta: 'β',
16661
- Gamma: 'Г',
16662
- gamma: 'γ'
16663
- };
16664
- var greekRe = new RegExp('\\b' + Object.keys(GREEK_SIMBOLS).join('\\b|\\b') + '\\b', 'g');
16665
- function greekify(str) {
16666
- return str.replace(greekRe, function (sym) {
16667
- return GREEK_SIMBOLS[sym];
16668
- });
16669
- }
16670
- function filterLib(lib, filter) {
16671
- var trimmedFilter = filter.trim();
16672
- var re = new RegExp(fp.escapeRegExp(greekify(trimmedFilter)), 'i');
16673
- return fp.flow(fp.filter(function (item) {
16674
- return !trimmedFilter || re.test(greekify(item.struct.name)) || re.test(greekify(item.props.group));
16675
- }), fp.reduce(function (res, item) {
16676
- if (!res[item.props.group]) res[item.props.group] = [item];else res[item.props.group].push(item);
16677
- return res;
16678
- }, {}))(lib);
16679
- }
16680
- function filterFGLib(lib, filter) {
16681
- var trimmedFilter = filter.trim();
16682
- var re = new RegExp(fp.escapeRegExp(greekify(trimmedFilter)), 'i');
16683
- var searchFunction = function searchFunction(item) {
16684
- var fields = [item.struct.name, item.props.abbreviation, item.props.name].filter(Boolean);
16685
- return fields.some(function (field) {
16686
- return re.test(greekify(field));
16687
- });
16688
- };
16689
- return fp.flow(fp.filter(function (item) {
16690
- return !trimmedFilter || searchFunction(item);
16691
- }), fp.reduce(function (res, item) {
16692
- if (!res[item.props.group]) res[item.props.group] = [item];else res[item.props.group].push(item);
16693
- return res;
16694
- }, {}))(lib);
16695
- }
16696
- var getSelectOptionsFromSchema = function getSelectOptionsFromSchema(schema) {
16697
- return schema["enum"].reduce(function (options, value, index) {
16698
- var _schema$enumNames$ind, _schema$enumNames;
16699
- options.push({
16700
- value: value,
16701
- 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
16702
- });
16703
- return options;
16704
- }, []);
16705
- };
16706
-
16707
16742
  var _excluded$o = ["schema", "result", "customValid"],
16708
16743
  _excluded2$3 = ["labelPos", "title", "children"],
16709
16744
  _excluded3 = ["name", "onChange", "component", "labelPos", "className"],
@@ -19667,7 +19702,8 @@ var SaveDialog = function (_Component) {
19667
19702
  _this.isRxn = _this.props.struct.hasRxnArrow();
19668
19703
  _this.textAreaRef = React.createRef();
19669
19704
  var formats = [_this.isRxn ? 'rxn' : 'mol', 'smiles', 'ket'];
19670
- if (_this.props.server) formats.push(_this.isRxn ? 'rxnV3000' : 'molV3000', 'smilesExt', 'smarts', 'inChI', 'inChIAuxInfo', 'cml', 'svg', 'png', 'cdxml');
19705
+ if (_this.props.server) formats.push(_this.isRxn ? 'rxnV3000' : 'molV3000', 'smilesExt', 'smarts', 'inChI', 'inChIAuxInfo', 'cml', 'svg', 'png', 'cdxml'
19706
+ );
19671
19707
  _this.saveSchema = saveSchema;
19672
19708
  _this.saveSchema.properties.format = Object.assign(_this.saveSchema.properties.format, {
19673
19709
  "enum": formats,
@@ -20840,6 +20876,7 @@ function SData(_ref) {
20840
20876
  init: init
20841
20877
  }, formState), {}, {
20842
20878
  children: jsxRuntime.jsxs("fieldset", {
20879
+ className: "sdata",
20843
20880
  children: [jsxRuntime.jsx(Field, {
20844
20881
  name: "context",
20845
20882
  options: getSelectOptionsFromSchema(formSchema.properties.context),
@@ -21268,6 +21305,45 @@ var EmptySearchResult = function EmptySearchResult(_ref) {
21268
21305
  });
21269
21306
  };
21270
21307
 
21308
+ var SALTS_AND_SOLVENTS = 'Salts and Solvents';
21309
+ var batchDelay = 300;
21310
+ function useSaltsAndSolvents(saltsAndSolvents, filter) {
21311
+ var _useState = React.useState(true),
21312
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
21313
+ isFirstRender = _useState2[0],
21314
+ setIsFirstRender = _useState2[1];
21315
+ var timerId = React.useRef(null);
21316
+ var _useState3 = React.useState(saltsAndSolvents[SALTS_AND_SOLVENTS]),
21317
+ _useState4 = _slicedToArray__default["default"](_useState3, 2),
21318
+ filteredSaltsAndSolvents = _useState4[0],
21319
+ setFilteredSaltsAndSolvents = _useState4[1];
21320
+ var addToSaSWithBatches = React.useCallback(function (fullFilteredArray) {
21321
+ var batchSize = 16;
21322
+ setFilteredSaltsAndSolvents(function (filteredSaltsAndSolvents) {
21323
+ return [].concat(_toConsumableArray__default["default"](filteredSaltsAndSolvents !== null && filteredSaltsAndSolvents !== void 0 ? filteredSaltsAndSolvents : []), _toConsumableArray__default["default"](fullFilteredArray.splice(0, batchSize)));
21324
+ });
21325
+ if (fullFilteredArray.length > 0) {
21326
+ timerId.current = setTimeout(function () {
21327
+ return addToSaSWithBatches(fullFilteredArray);
21328
+ }, batchDelay);
21329
+ }
21330
+ }, []);
21331
+ React.useEffect(function () {
21332
+ var filteredSaS = filterFGLib(saltsAndSolvents, filter)[SALTS_AND_SOLVENTS];
21333
+ addToSaSWithBatches(filteredSaS);
21334
+ }, [saltsAndSolvents, addToSaSWithBatches]);
21335
+ React.useEffect(function () {
21336
+ if (isFirstRender) {
21337
+ setIsFirstRender(false);
21338
+ return;
21339
+ }
21340
+ clearTimeout(timerId.current);
21341
+ var filteredSaS = filterFGLib(saltsAndSolvents, filter)[SALTS_AND_SOLVENTS];
21342
+ setFilteredSaltsAndSolvents(filteredSaS);
21343
+ }, [saltsAndSolvents, filter]);
21344
+ return filteredSaltsAndSolvents;
21345
+ }
21346
+
21271
21347
  var _excluded$1 = ["children", "value", "index"],
21272
21348
  _excluded2 = ["filter", "onFilter", "onChangeGroup", "mode", "initialTab", "functionalGroups", "lib", "saltsAndSolvents"];
21273
21349
  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; }
@@ -21305,7 +21381,6 @@ var filterLibSelector = reselect.createSelector(function (props) {
21305
21381
  return props.filter;
21306
21382
  }, filterLib);
21307
21383
  var FUNCTIONAL_GROUPS = 'Functional Groups';
21308
- var SALTS_AND_SOLVENTS = 'Salts and Solvents';
21309
21384
  var HeaderContent = function HeaderContent() {
21310
21385
  return jsxRuntime.jsxs("div", {
21311
21386
  className: classes$8.dialogHeader,
@@ -21359,21 +21434,15 @@ var TemplateDialog = function TemplateDialog(props) {
21359
21434
  _useState4 = _slicedToArray__default["default"](_useState3, 2),
21360
21435
  expandedAccordions = _useState4[0],
21361
21436
  setExpandedAccordions = _useState4[1];
21437
+ var filteredSaltsAndSolvents = useSaltsAndSolvents(saltsAndSolvents, filter);
21362
21438
  var _useState5 = React.useState(functionalGroups[FUNCTIONAL_GROUPS]),
21363
21439
  _useState6 = _slicedToArray__default["default"](_useState5, 2),
21364
21440
  filteredFG = _useState6[0],
21365
21441
  setFilteredFG = _useState6[1];
21366
- var _useState7 = React.useState(saltsAndSolvents[SALTS_AND_SOLVENTS]),
21367
- _useState8 = _slicedToArray__default["default"](_useState7, 2),
21368
- filteredSaltsAndSolvents = _useState8[0],
21369
- setFilteredSaltsAndSolvents = _useState8[1];
21370
21442
  var filteredTemplateLib = filterLibSelector(props);
21371
21443
  React.useEffect(function () {
21372
21444
  setFilteredFG(filterFGLib(functionalGroups, filter)[FUNCTIONAL_GROUPS]);
21373
21445
  }, [functionalGroups, filter]);
21374
- React.useEffect(function () {
21375
- setFilteredSaltsAndSolvents(filterFGLib(saltsAndSolvents, filter)[SALTS_AND_SOLVENTS]);
21376
- }, [saltsAndSolvents, filter]);
21377
21446
  var handleTabChange = function handleTabChange(_, tab) {
21378
21447
  setTab(tab);
21379
21448
  props.onSelect(null);
@@ -21511,6 +21580,16 @@ var TemplateDialog = function TemplateDialog(props) {
21511
21580
  })]
21512
21581
  });
21513
21582
  };
21583
+ var selectTemplate = function selectTemplate(template, props, dispatch) {
21584
+ dispatch(selectTmpl(null));
21585
+ if (!template) return;
21586
+ dispatch(selectTmpl(template));
21587
+ dispatch(onAction({
21588
+ tool: 'template',
21589
+ opts: template
21590
+ }));
21591
+ props.onOk(template);
21592
+ };
21514
21593
  var TemplatesDialog = reactRedux.connect(function (store) {
21515
21594
  var _store$modal, _store$modal$prop;
21516
21595
  return _objectSpread$4(_objectSpread$4({}, fp.omit(['attach'], store.templates)), {}, {
@@ -21524,12 +21603,7 @@ var TemplatesDialog = reactRedux.connect(function (store) {
21524
21603
  return dispatch(changeFilter(filter));
21525
21604
  },
21526
21605
  onSelect: function onSelect(tmpl) {
21527
- dispatch(selectTmpl(tmpl));
21528
- dispatch(onAction({
21529
- tool: 'template',
21530
- opts: tmpl
21531
- }));
21532
- props.onOk(tmpl);
21606
+ return selectTemplate(tmpl, props, dispatch);
21533
21607
  },
21534
21608
  onChangeGroup: function onChangeGroup(group) {
21535
21609
  return dispatch(changeGroup(group));
@@ -22275,8 +22349,8 @@ var KetcherBuilder = function () {
22275
22349
  initApp(element, staticResourcesUrl, {
22276
22350
  buttons: buttons || {},
22277
22351
  errorHandler: errorHandler || null,
22278
- version: "2.7.0-rc.2" ,
22279
- buildDate: "2022-12-15T15:05:13" ,
22352
+ version: "2.7.0-rc.4" ,
22353
+ buildDate: "2022-12-20T17:00:39" ,
22280
22354
  buildNumber: ''
22281
22355
  }, structService, resolve);
22282
22356
  });