ketcher-react 3.0.0-rc.7 → 3.1.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.js CHANGED
@@ -338,9 +338,9 @@ var debugObj = {
338
338
 
339
339
  var classes$Q = {"cliparea":"cliparea-module_cliparea__GdPrN"};
340
340
 
341
- function _createForOfIteratorHelper$g(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$h(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
342
- function _unsupportedIterableToArray$h(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$h(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$h(o, minLen); }
343
- function _arrayLikeToArray$h(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
341
+ function _createForOfIteratorHelper$h(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$i(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
342
+ function _unsupportedIterableToArray$i(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$i(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$i(o, minLen); }
343
+ function _arrayLikeToArray$i(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
344
344
  function _callSuper$e(t, o, e) { return o = _getPrototypeOf__default["default"](o), _possibleConstructorReturn__default["default"](t, _isNativeReflectConstruct$g() ? Reflect.construct(o, e || [], _getPrototypeOf__default["default"](t).constructor) : o.apply(t, e)); }
345
345
  function _isNativeReflectConstruct$g() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$g = function _isNativeReflectConstruct() { return !!t; })(); }
346
346
  var ieCb = typeof window !== 'undefined' ? window.clipboardData : {};
@@ -648,7 +648,7 @@ function _pasteByKeydown() {
648
648
  _context4.next = 26;
649
649
  break;
650
650
  case 5:
651
- _iterator = _createForOfIteratorHelper$g(clipboardData);
651
+ _iterator = _createForOfIteratorHelper$h(clipboardData);
652
652
  _context4.prev = 6;
653
653
  _iterator.s();
654
654
  case 8:
@@ -2676,9 +2676,9 @@ function toSgroup(sgroup) {
2676
2676
  };
2677
2677
  }
2678
2678
 
2679
- function _createForOfIteratorHelper$f(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$g(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
2680
- function _unsupportedIterableToArray$g(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$g(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$g(o, minLen); }
2681
- function _arrayLikeToArray$g(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
2679
+ function _createForOfIteratorHelper$g(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$h(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
2680
+ function _unsupportedIterableToArray$h(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$h(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$h(o, minLen); }
2681
+ function _arrayLikeToArray$h(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
2682
2682
  function isFlipDisabled(editor) {
2683
2683
  var selection = editor.selection();
2684
2684
  var restruct = editor.render.ctab;
@@ -2691,13 +2691,13 @@ function isFlipDisabled(editor) {
2691
2691
  atoms = _selection$atoms === void 0 ? [] : _selection$atoms;
2692
2692
  var getBondIdsForAttachmentAtoms = function getBondIdsForAttachmentAtoms() {
2693
2693
  var result = [];
2694
- var _iterator = _createForOfIteratorHelper$f(atoms),
2694
+ var _iterator = _createForOfIteratorHelper$g(atoms),
2695
2695
  _step;
2696
2696
  try {
2697
2697
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
2698
2698
  var atomId = _step.value;
2699
2699
  var atomBondIds = ketcherCore.Atom.getConnectedBondIds(restruct.molecule, atomId);
2700
- var _iterator2 = _createForOfIteratorHelper$f(atomBondIds),
2700
+ var _iterator2 = _createForOfIteratorHelper$g(atomBondIds),
2701
2701
  _step2;
2702
2702
  try {
2703
2703
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -2723,7 +2723,7 @@ function isFlipDisabled(editor) {
2723
2723
  var getAmountOfAttachmentBonds = function getAmountOfAttachmentBonds() {
2724
2724
  var amountOfAttachmentBonds = 0;
2725
2725
  var totalBondIds = new Set([].concat(_toConsumableArray__default["default"](bonds), _toConsumableArray__default["default"](getBondIdsForAttachmentAtoms())));
2726
- var _iterator3 = _createForOfIteratorHelper$f(totalBondIds),
2726
+ var _iterator3 = _createForOfIteratorHelper$g(totalBondIds),
2727
2727
  _step3;
2728
2728
  try {
2729
2729
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -3808,7 +3808,7 @@ var zoom = {
3808
3808
 
3809
3809
  var openHelpLink = function openHelpLink() {
3810
3810
  var _window$open;
3811
- return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v3.0.0-rc.7\n", "/documentation/help.md#ketcher-overview"))) === null || _window$open === void 0 ? void 0 : _window$open.focus();
3811
+ return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v3.1.0-rc.2\n", "/documentation/help.md#ketcher-overview"))) === null || _window$open === void 0 ? void 0 : _window$open.focus();
3812
3812
  };
3813
3813
  var help = {
3814
3814
  help: {
@@ -8276,6 +8276,7 @@ var StructRender = function StructRender(_ref) {
8276
8276
  }
8277
8277
  }, [struct, options, update]);
8278
8278
  return jsxRuntime.jsx(Container$2, {
8279
+ "data-testid": "monomer-preview-micro",
8279
8280
  ref: renderRef,
8280
8281
  className: className,
8281
8282
  fullsize: fullsize
@@ -11845,10 +11846,10 @@ defineProperties_1(polyfill, {
11845
11846
 
11846
11847
  var isNan = polyfill;
11847
11848
 
11848
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$f(arr, i) || _nonIterableRest(); }
11849
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$g(arr, i) || _nonIterableRest(); }
11849
11850
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
11850
- function _unsupportedIterableToArray$f(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$f(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$f(o, minLen); }
11851
- function _arrayLikeToArray$f(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
11851
+ function _unsupportedIterableToArray$g(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$g(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$g(o, minLen); }
11852
+ function _arrayLikeToArray$g(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
11852
11853
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
11853
11854
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
11854
11855
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
@@ -15553,6 +15554,7 @@ var ZoomControls = function ZoomControls(_ref) {
15553
15554
  ref: containerRef,
15554
15555
  children: [jsxRuntime.jsxs(DropDownButton$1, {
15555
15556
  onClick: onExpand,
15557
+ "data-testid": "zoom-selector",
15556
15558
  children: [jsxRuntime.jsxs(ZoomLabel, {
15557
15559
  "data-testid": "zoom-input",
15558
15560
  children: [Math.round(currentZoom), "%"]
@@ -16611,9 +16613,9 @@ function getGroupIdsFromItemMaps(struct, mergeMaps) {
16611
16613
  });
16612
16614
  }
16613
16615
 
16614
- function _createForOfIteratorHelper$e(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$e(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
16615
- function _unsupportedIterableToArray$e(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$e(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$e(o, minLen); }
16616
- function _arrayLikeToArray$e(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
16616
+ function _createForOfIteratorHelper$f(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$f(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
16617
+ function _unsupportedIterableToArray$f(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$f(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$f(o, minLen); }
16618
+ function _arrayLikeToArray$f(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
16617
16619
  function uniqArray(dest, add, reversible) {
16618
16620
  return add.reduce(function (_, item) {
16619
16621
  if (reversible) dest = fp.xor(dest, [item]);else if (!dest.includes(item)) dest.push(item);
@@ -16657,7 +16659,7 @@ function getNewSelectedItems(editor, selectedSgroups) {
16657
16659
  atoms: [],
16658
16660
  bonds: []
16659
16661
  };
16660
- var _iterator = _createForOfIteratorHelper$e(selectedSgroups),
16662
+ var _iterator = _createForOfIteratorHelper$f(selectedSgroups),
16661
16663
  _step;
16662
16664
  try {
16663
16665
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -17071,9 +17073,9 @@ function filterNotPartOfSuperatomWithoutLabel(itemsToFilter, struct) {
17071
17073
  };
17072
17074
  }
17073
17075
 
17074
- function _createForOfIteratorHelper$d(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$d(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
17075
- function _unsupportedIterableToArray$d(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$d(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$d(o, minLen); }
17076
- function _arrayLikeToArray$d(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
17076
+ function _createForOfIteratorHelper$e(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$e(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
17077
+ function _unsupportedIterableToArray$e(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$e(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$e(o, minLen); }
17078
+ function _arrayLikeToArray$e(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
17077
17079
  function ownKeys$Z(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
17078
17080
  function _objectSpread$Z(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$Z(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$Z(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17079
17081
  var searchMaps = ['atoms', 'bonds', 'sgroups', 'functionalGroups', 'sgroupData'];
@@ -17118,7 +17120,7 @@ var SGroupTool = function () {
17118
17120
  return fp.isEqual(sgroup.atoms, selectedAtoms);
17119
17121
  });
17120
17122
  if (selectedAtoms && functionalGroups.size) {
17121
- var _iterator = _createForOfIteratorHelper$d(selectedAtoms),
17123
+ var _iterator = _createForOfIteratorHelper$e(selectedAtoms),
17122
17124
  _step;
17123
17125
  try {
17124
17126
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -17130,7 +17132,7 @@ var SGroupTool = function () {
17130
17132
  }
17131
17133
  var atomFromStruct = atomId !== null && ((_struct$atoms$get = struct.atoms.get(atomId)) === null || _struct$atoms$get === void 0 ? void 0 : _struct$atoms$get.a);
17132
17134
  if (atomFromStruct) {
17133
- var _iterator2 = _createForOfIteratorHelper$d(atomFromStruct.sgs.values()),
17135
+ var _iterator2 = _createForOfIteratorHelper$e(atomFromStruct.sgs.values()),
17134
17136
  _step2;
17135
17137
  try {
17136
17138
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -17163,7 +17165,7 @@ var SGroupTool = function () {
17163
17165
  atomsResult = [];
17164
17166
  }
17165
17167
  if (atomsResult && atomsResult.length > 0) {
17166
- var _iterator3 = _createForOfIteratorHelper$d(atomsResult),
17168
+ var _iterator3 = _createForOfIteratorHelper$e(atomsResult),
17167
17169
  _step3;
17168
17170
  try {
17169
17171
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -17227,7 +17229,7 @@ var SGroupTool = function () {
17227
17229
  }
17228
17230
  }
17229
17231
  if (atomResult.length > 0) {
17230
- var _iterator4 = _createForOfIteratorHelper$d(atomResult),
17232
+ var _iterator4 = _createForOfIteratorHelper$e(atomResult),
17231
17233
  _step4;
17232
17234
  try {
17233
17235
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -17249,7 +17251,7 @@ var SGroupTool = function () {
17249
17251
  return;
17250
17252
  }
17251
17253
  } else if (bondResult.length > 0) {
17252
- var _iterator5 = _createForOfIteratorHelper$d(bondResult),
17254
+ var _iterator5 = _createForOfIteratorHelper$e(bondResult),
17253
17255
  _step5;
17254
17256
  try {
17255
17257
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -17311,7 +17313,7 @@ var SGroupTool = function () {
17311
17313
  var result = [];
17312
17314
  if (ci && ci.map === 'functionalGroups' && functionalGroups.size && ketcherCore.FunctionalGroup.isContractedFunctionalGroup(ci.id, functionalGroups)) return;
17313
17315
  if (selected && functionalGroups.size && selected.atoms) {
17314
- var _iterator6 = _createForOfIteratorHelper$d(selected.atoms),
17316
+ var _iterator6 = _createForOfIteratorHelper$e(selected.atoms),
17315
17317
  _step6;
17316
17318
  try {
17317
17319
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -17323,7 +17325,7 @@ var SGroupTool = function () {
17323
17325
  }
17324
17326
  var atomFromStruct = atomId !== null && ((_struct$atoms$get3 = struct.atoms.get(atomId)) === null || _struct$atoms$get3 === void 0 ? void 0 : _struct$atoms$get3.a);
17325
17327
  if (atomFromStruct) {
17326
- var _iterator7 = _createForOfIteratorHelper$d(atomFromStruct.sgs.values()),
17328
+ var _iterator7 = _createForOfIteratorHelper$e(atomFromStruct.sgs.values()),
17327
17329
  _step7;
17328
17330
  try {
17329
17331
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
@@ -17353,7 +17355,7 @@ var SGroupTool = function () {
17353
17355
  }
17354
17356
  }
17355
17357
  if (selected && functionalGroups.size && selected.bonds) {
17356
- var _iterator8 = _createForOfIteratorHelper$d(selected.bonds),
17358
+ var _iterator8 = _createForOfIteratorHelper$e(selected.bonds),
17357
17359
  _step8;
17358
17360
  try {
17359
17361
  for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
@@ -17401,7 +17403,7 @@ var SGroupTool = function () {
17401
17403
  bondsResult = null;
17402
17404
  }
17403
17405
  if (atomsResult && atomsResult.length > 0) {
17404
- var _iterator9 = _createForOfIteratorHelper$d(atomsResult),
17406
+ var _iterator9 = _createForOfIteratorHelper$e(atomsResult),
17405
17407
  _step9;
17406
17408
  try {
17407
17409
  for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
@@ -17418,7 +17420,7 @@ var SGroupTool = function () {
17418
17420
  }
17419
17421
  }
17420
17422
  if (bondsResult && bondsResult.length > 0) {
17421
- var _iterator10 = _createForOfIteratorHelper$d(bondsResult),
17423
+ var _iterator10 = _createForOfIteratorHelper$e(bondsResult),
17422
17424
  _step10;
17423
17425
  try {
17424
17426
  for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
@@ -17643,9 +17645,9 @@ function countOfSelectedComponents(restruct, atoms) {
17643
17645
  }, 0);
17644
17646
  }
17645
17647
 
17646
- function _createForOfIteratorHelper$c(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$c(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
17647
- function _unsupportedIterableToArray$c(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$c(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$c(o, minLen); }
17648
- function _arrayLikeToArray$c(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
17648
+ function _createForOfIteratorHelper$d(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$d(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
17649
+ function _unsupportedIterableToArray$d(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$d(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$d(o, minLen); }
17650
+ function _arrayLikeToArray$d(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
17649
17651
  function dropAndMerge(editor, mergeItems, action, copyAction) {
17650
17652
  var _editor$selection$bon, _editor$selection, _dropItemAction;
17651
17653
  var restruct = editor.render.ctab;
@@ -17668,7 +17670,7 @@ function dropAndMerge(editor, mergeItems, action, copyAction) {
17668
17670
  dropItemAction = dropItemAction.mergeWith(action);
17669
17671
  }
17670
17672
  var bonds = (_editor$selection$bon = (_editor$selection = editor.selection()) === null || _editor$selection === void 0 ? void 0 : _editor$selection.bonds) !== null && _editor$selection$bon !== void 0 ? _editor$selection$bon : [];
17671
- var _iterator = _createForOfIteratorHelper$c(bonds),
17673
+ var _iterator = _createForOfIteratorHelper$d(bonds),
17672
17674
  _step;
17673
17675
  try {
17674
17676
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -18147,9 +18149,9 @@ var createCopyOfSelected = function createCopyOfSelected(editor, point) {
18147
18149
  };
18148
18150
  };
18149
18151
 
18150
- function _createForOfIteratorHelper$b(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$b(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
18151
- function _unsupportedIterableToArray$b(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$b(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$b(o, minLen); }
18152
- function _arrayLikeToArray$b(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
18152
+ function _createForOfIteratorHelper$c(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$c(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
18153
+ function _unsupportedIterableToArray$c(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$c(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$c(o, minLen); }
18154
+ function _arrayLikeToArray$c(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
18153
18155
  function ownKeys$Y(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
18154
18156
  function _objectSpread$Y(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$Y(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$Y(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
18155
18157
  function _classPrivateFieldInitSpec$1(obj, privateMap, value) { _checkPrivateRedeclaration$1(obj, privateMap); privateMap.set(obj, value); }
@@ -18422,7 +18424,7 @@ var SelectTool = function () {
18422
18424
  bondFromStruct, sgroups, functionalGroups)) bondResult.push(bondId);
18423
18425
  }
18424
18426
  if (atomResult.length > 0) {
18425
- var _iterator = _createForOfIteratorHelper$b(atomResult),
18427
+ var _iterator = _createForOfIteratorHelper$c(atomResult),
18426
18428
  _step;
18427
18429
  try {
18428
18430
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -18442,7 +18444,7 @@ var SelectTool = function () {
18442
18444
  });
18443
18445
  return;
18444
18446
  } else if (bondResult.length > 0) {
18445
- var _iterator2 = _createForOfIteratorHelper$b(bondResult),
18447
+ var _iterator2 = _createForOfIteratorHelper$c(bondResult),
18446
18448
  _step2;
18447
18449
  try {
18448
18450
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -18820,9 +18822,9 @@ var TemplatePreview = function () {
18820
18822
  return TemplatePreview;
18821
18823
  }();
18822
18824
 
18823
- function _createForOfIteratorHelper$a(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$a(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
18824
- function _unsupportedIterableToArray$a(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$a(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$a(o, minLen); }
18825
- function _arrayLikeToArray$a(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
18825
+ function _createForOfIteratorHelper$b(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$b(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
18826
+ function _unsupportedIterableToArray$b(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$b(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$b(o, minLen); }
18827
+ function _arrayLikeToArray$b(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
18826
18828
  function ownKeys$X(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
18827
18829
  function _objectSpread$X(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$X(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$X(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
18828
18830
  function getBondFlipSign(struct, bond) {
@@ -19236,7 +19238,7 @@ var TemplateTool = function () {
19236
19238
  return true;
19237
19239
  }
19238
19240
  }
19239
- var _iterator = _createForOfIteratorHelper$a(restruct.molecule.bonds.keys()),
19241
+ var _iterator = _createForOfIteratorHelper$b(restruct.molecule.bonds.keys()),
19240
19242
  _step;
19241
19243
  try {
19242
19244
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -19248,7 +19250,7 @@ var TemplateTool = function () {
19248
19250
  } finally {
19249
19251
  _iterator.f();
19250
19252
  }
19251
- var _iterator2 = _createForOfIteratorHelper$a(restruct.molecule.atoms.keys()),
19253
+ var _iterator2 = _createForOfIteratorHelper$b(restruct.molecule.atoms.keys()),
19252
19254
  _step2;
19253
19255
  try {
19254
19256
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -20152,9 +20154,9 @@ var LoadingCircles = function LoadingCircles() {
20152
20154
 
20153
20155
  function ownKeys$V(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20154
20156
  function _objectSpread$V(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$V(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$V(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
20155
- function _createForOfIteratorHelper$9(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$9(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
20156
- function _unsupportedIterableToArray$9(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$9(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$9(o, minLen); }
20157
- function _arrayLikeToArray$9(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
20157
+ function _createForOfIteratorHelper$a(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$a(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
20158
+ function _unsupportedIterableToArray$a(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$a(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$a(o, minLen); }
20159
+ function _arrayLikeToArray$a(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
20158
20160
  var SELECTION_DISTANCE_COEFFICIENT = 0.4;
20159
20161
  var SELECTION_WITHIN_TEXT = 0;
20160
20162
  var findMaps = _defineProperty__default["default"](_defineProperty__default["default"]({
@@ -20500,7 +20502,7 @@ function findClosestSGroup(restruct, pos) {
20500
20502
  function findClosestFG(restruct, pos, skip) {
20501
20503
  var sGroups = restruct.sgroups;
20502
20504
  var skipId = skip && skip.map === 'functionalGroups' ? skip.id : null;
20503
- var _iterator = _createForOfIteratorHelper$9(sGroups.entries()),
20505
+ var _iterator = _createForOfIteratorHelper$a(sGroups.entries()),
20504
20506
  _step;
20505
20507
  try {
20506
20508
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20716,9 +20718,9 @@ function _editRGroupAttachmentPoint() {
20716
20718
  return _editRGroupAttachmentPoint.apply(this, arguments);
20717
20719
  }
20718
20720
 
20719
- function _createForOfIteratorHelper$8(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$8(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
20720
- function _unsupportedIterableToArray$8(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$8(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$8(o, minLen); }
20721
- function _arrayLikeToArray$8(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
20721
+ function _createForOfIteratorHelper$9(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$9(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
20722
+ function _unsupportedIterableToArray$9(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$9(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$9(o, minLen); }
20723
+ function _arrayLikeToArray$9(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
20722
20724
  var APointTool = function () {
20723
20725
  function APointTool(editor) {
20724
20726
  _classCallCheck__default["default"](this, APointTool);
@@ -20762,7 +20764,7 @@ var APointTool = function () {
20762
20764
  }
20763
20765
  }
20764
20766
  if (atomResult.length > 0) {
20765
- var _iterator = _createForOfIteratorHelper$8(atomResult),
20767
+ var _iterator = _createForOfIteratorHelper$9(atomResult),
20766
20768
  _step;
20767
20769
  try {
20768
20770
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20799,9 +20801,9 @@ var APointTool = function () {
20799
20801
  return APointTool;
20800
20802
  }();
20801
20803
 
20802
- function _createForOfIteratorHelper$7(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$7(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
20803
- function _unsupportedIterableToArray$7(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$7(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$7(o, minLen); }
20804
- function _arrayLikeToArray$7(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
20804
+ function _createForOfIteratorHelper$8(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$8(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
20805
+ function _unsupportedIterableToArray$8(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$8(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$8(o, minLen); }
20806
+ function _arrayLikeToArray$8(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
20805
20807
  var AttachTool = function () {
20806
20808
  function AttachTool(editor, attachPoints) {
20807
20809
  _classCallCheck__default["default"](this, AttachTool);
@@ -20854,7 +20856,7 @@ var AttachTool = function () {
20854
20856
  }
20855
20857
  }
20856
20858
  if (atomResult.length > 0) {
20857
- var _iterator = _createForOfIteratorHelper$7(atomResult),
20859
+ var _iterator = _createForOfIteratorHelper$8(atomResult),
20858
20860
  _step;
20859
20861
  try {
20860
20862
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20874,7 +20876,7 @@ var AttachTool = function () {
20874
20876
  });
20875
20877
  return;
20876
20878
  } else if (bondResult.length > 0) {
20877
- var _iterator2 = _createForOfIteratorHelper$7(bondResult),
20879
+ var _iterator2 = _createForOfIteratorHelper$8(bondResult),
20878
20880
  _step2;
20879
20881
  try {
20880
20882
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -20910,9 +20912,9 @@ var AttachTool = function () {
20910
20912
  return AttachTool;
20911
20913
  }();
20912
20914
 
20913
- function _createForOfIteratorHelper$6(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$6(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
20914
- function _unsupportedIterableToArray$6(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$6(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$6(o, minLen); }
20915
- function _arrayLikeToArray$6(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
20915
+ function _createForOfIteratorHelper$7(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$7(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
20916
+ function _unsupportedIterableToArray$7(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$7(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$7(o, minLen); }
20917
+ function _arrayLikeToArray$7(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
20916
20918
  var BondTool = function () {
20917
20919
  function BondTool(editor, bondProps) {
20918
20920
  var _editor$selection;
@@ -20952,7 +20954,7 @@ var BondTool = function () {
20952
20954
  if (bondId !== null) bondResult.push(bondId);
20953
20955
  }
20954
20956
  if (atomResult.length > 0) {
20955
- var _iterator = _createForOfIteratorHelper$6(atomResult),
20957
+ var _iterator = _createForOfIteratorHelper$7(atomResult),
20956
20958
  _step;
20957
20959
  try {
20958
20960
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20974,7 +20976,7 @@ var BondTool = function () {
20974
20976
  return;
20975
20977
  }
20976
20978
  } else if (bondResult.length > 0) {
20977
- var _iterator2 = _createForOfIteratorHelper$6(bondResult),
20979
+ var _iterator2 = _createForOfIteratorHelper$7(bondResult),
20978
20980
  _step2;
20979
20981
  try {
20980
20982
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -21089,7 +21091,7 @@ var BondTool = function () {
21089
21091
  }
21090
21092
  }
21091
21093
  if (atomResult.length > 0) {
21092
- var _iterator3 = _createForOfIteratorHelper$6(atomResult),
21094
+ var _iterator3 = _createForOfIteratorHelper$7(atomResult),
21093
21095
  _step3;
21094
21096
  try {
21095
21097
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -21140,7 +21142,7 @@ var BondTool = function () {
21140
21142
  delete dragCtx.action;
21141
21143
  }
21142
21144
  this.restoreBondWhenHoveringOnCanvas(event);
21143
- this.editor.update(dragCtx.action, true);
21145
+ if (dragCtx.action) this.editor.update(dragCtx.action, true);
21144
21146
  return true;
21145
21147
  }
21146
21148
  }
@@ -21212,7 +21214,7 @@ var BondTool = function () {
21212
21214
  }, {
21213
21215
  key: "getExistingBond",
21214
21216
  value: function getExistingBond(struct, begin, end) {
21215
- var _iterator4 = _createForOfIteratorHelper$6(struct.bonds.entries()),
21217
+ var _iterator4 = _createForOfIteratorHelper$7(struct.bonds.entries()),
21216
21218
  _step4;
21217
21219
  try {
21218
21220
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -21235,9 +21237,9 @@ var BondTool = function () {
21235
21237
  return BondTool;
21236
21238
  }();
21237
21239
 
21238
- function _createForOfIteratorHelper$5(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$5(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
21239
- function _unsupportedIterableToArray$5(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$5(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$5(o, minLen); }
21240
- function _arrayLikeToArray$5(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
21240
+ function _createForOfIteratorHelper$6(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$6(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
21241
+ function _unsupportedIterableToArray$6(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$6(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$6(o, minLen); }
21242
+ function _arrayLikeToArray$6(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
21241
21243
  var ChainTool = function () {
21242
21244
  function ChainTool(editor) {
21243
21245
  _classCallCheck__default["default"](this, ChainTool);
@@ -21272,7 +21274,7 @@ var ChainTool = function () {
21272
21274
  }
21273
21275
  }
21274
21276
  if (atomResult.length > 0) {
21275
- var _iterator = _createForOfIteratorHelper$5(atomResult),
21277
+ var _iterator = _createForOfIteratorHelper$6(atomResult),
21276
21278
  _step;
21277
21279
  try {
21278
21280
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -21294,7 +21296,7 @@ var ChainTool = function () {
21294
21296
  return;
21295
21297
  }
21296
21298
  } else if (bondResult.length > 0) {
21297
- var _iterator2 = _createForOfIteratorHelper$5(bondResult),
21299
+ var _iterator2 = _createForOfIteratorHelper$6(bondResult),
21298
21300
  _step2;
21299
21301
  try {
21300
21302
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -21391,6 +21393,8 @@ var ChainTool = function () {
21391
21393
  var atom;
21392
21394
  var atomResult = [];
21393
21395
  var result = [];
21396
+ ketcherCore.removeInfoLabelFromAtoms(struct);
21397
+ this.editor.render.update(true, null);
21394
21398
  if (this.dragCtx && this.dragCtx.mergeItems && functionalGroups.size) {
21395
21399
  atom = this.dragCtx.mergeItems.atoms.values().next().value;
21396
21400
  }
@@ -21401,7 +21405,7 @@ var ChainTool = function () {
21401
21405
  }
21402
21406
  }
21403
21407
  if (atomResult.length > 0) {
21404
- var _iterator3 = _createForOfIteratorHelper$5(atomResult),
21408
+ var _iterator3 = _createForOfIteratorHelper$6(atomResult),
21405
21409
  _step3;
21406
21410
  try {
21407
21411
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -21463,9 +21467,9 @@ var ChainTool = function () {
21463
21467
  return ChainTool;
21464
21468
  }();
21465
21469
 
21466
- function _createForOfIteratorHelper$4(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$4(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
21467
- function _unsupportedIterableToArray$4(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$4(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$4(o, minLen); }
21468
- function _arrayLikeToArray$4(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
21470
+ function _createForOfIteratorHelper$5(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$5(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
21471
+ function _unsupportedIterableToArray$5(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$5(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$5(o, minLen); }
21472
+ function _arrayLikeToArray$5(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
21469
21473
  var ChargeTool = function () {
21470
21474
  function ChargeTool(editor, charge) {
21471
21475
  _classCallCheck__default["default"](this, ChargeTool);
@@ -21510,7 +21514,7 @@ var ChargeTool = function () {
21510
21514
  }
21511
21515
  }
21512
21516
  if (atomResult.length > 0) {
21513
- var _iterator = _createForOfIteratorHelper$4(atomResult),
21517
+ var _iterator = _createForOfIteratorHelper$5(atomResult),
21514
21518
  _step;
21515
21519
  try {
21516
21520
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -21597,9 +21601,9 @@ var EnhancedStereoTool = function () {
21597
21601
  return EnhancedStereoTool;
21598
21602
  }();
21599
21603
 
21600
- function _createForOfIteratorHelper$3(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$3(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
21601
- function _unsupportedIterableToArray$3(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$3(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$3(o, minLen); }
21602
- function _arrayLikeToArray$3(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
21604
+ function _createForOfIteratorHelper$4(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$4(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
21605
+ function _unsupportedIterableToArray$4(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$4(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$4(o, minLen); }
21606
+ function _arrayLikeToArray$4(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
21603
21607
  var EraserTool = function () {
21604
21608
  function EraserTool(editor, mode) {
21605
21609
  _classCallCheck__default["default"](this, EraserTool);
@@ -21647,7 +21651,7 @@ var EraserTool = function () {
21647
21651
  var bondsResult = [];
21648
21652
  var preResult = [];
21649
21653
  if (selected && functionalGroups.size && selected.atoms) {
21650
- var _iterator = _createForOfIteratorHelper$3(selected.atoms),
21654
+ var _iterator = _createForOfIteratorHelper$4(selected.atoms),
21651
21655
  _step;
21652
21656
  try {
21653
21657
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -21656,7 +21660,7 @@ var EraserTool = function () {
21656
21660
  var atomId = ketcherCore.FunctionalGroup.atomsInFunctionalGroup(functionalGroups, atom);
21657
21661
  var atomFromStruct = atomId !== null && ((_struct$atoms$get = struct.atoms.get(atomId)) === null || _struct$atoms$get === void 0 ? void 0 : _struct$atoms$get.a);
21658
21662
  if (atomFromStruct) {
21659
- var _iterator2 = _createForOfIteratorHelper$3(atomFromStruct.sgs.values()),
21663
+ var _iterator2 = _createForOfIteratorHelper$4(atomFromStruct.sgs.values()),
21660
21664
  _step2;
21661
21665
  try {
21662
21666
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -21686,7 +21690,7 @@ var EraserTool = function () {
21686
21690
  }
21687
21691
  }
21688
21692
  if (selected && functionalGroups.size && selected.bonds) {
21689
- var _iterator3 = _createForOfIteratorHelper$3(selected.bonds),
21693
+ var _iterator3 = _createForOfIteratorHelper$4(selected.bonds),
21690
21694
  _step3;
21691
21695
  try {
21692
21696
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -21705,7 +21709,7 @@ var EraserTool = function () {
21705
21709
  }
21706
21710
  }
21707
21711
  if (selected && functionalGroups.size && selected.rgroupAttachmentPoints) {
21708
- var _iterator4 = _createForOfIteratorHelper$3(selected.rgroupAttachmentPoints),
21712
+ var _iterator4 = _createForOfIteratorHelper$4(selected.rgroupAttachmentPoints),
21709
21713
  _step4;
21710
21714
  try {
21711
21715
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -21722,7 +21726,7 @@ var EraserTool = function () {
21722
21726
  }
21723
21727
  }
21724
21728
  if (atomsResult.length > 0) {
21725
- var _iterator5 = _createForOfIteratorHelper$3(atomsResult),
21729
+ var _iterator5 = _createForOfIteratorHelper$4(atomsResult),
21726
21730
  _step5;
21727
21731
  try {
21728
21732
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -21737,7 +21741,7 @@ var EraserTool = function () {
21737
21741
  }
21738
21742
  }
21739
21743
  if (bondsResult.length > 0) {
21740
- var _iterator6 = _createForOfIteratorHelper$3(bondsResult),
21744
+ var _iterator6 = _createForOfIteratorHelper$4(bondsResult),
21741
21745
  _step6;
21742
21746
  try {
21743
21747
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -21813,7 +21817,7 @@ var EraserTool = function () {
21813
21817
  }
21814
21818
  }
21815
21819
  if (atomResult.length) {
21816
- var _iterator7 = _createForOfIteratorHelper$3(atomResult),
21820
+ var _iterator7 = _createForOfIteratorHelper$4(atomResult),
21817
21821
  _step7;
21818
21822
  try {
21819
21823
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
@@ -21829,7 +21833,7 @@ var EraserTool = function () {
21829
21833
  _iterator7.f();
21830
21834
  }
21831
21835
  } else if (bondResult.length) {
21832
- var _iterator8 = _createForOfIteratorHelper$3(bondResult),
21836
+ var _iterator8 = _createForOfIteratorHelper$4(bondResult),
21833
21837
  _step8;
21834
21838
  try {
21835
21839
  for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
@@ -22201,9 +22205,9 @@ function prepareTemplateFromSingleGroup(molecule) {
22201
22205
  return template;
22202
22206
  }
22203
22207
 
22204
- function _createForOfIteratorHelper$2(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$2(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
22205
- function _unsupportedIterableToArray$2(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$2(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$2(o, minLen); }
22206
- function _arrayLikeToArray$2(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
22208
+ function _createForOfIteratorHelper$3(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$3(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
22209
+ function _unsupportedIterableToArray$3(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$3(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$3(o, minLen); }
22210
+ function _arrayLikeToArray$3(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
22207
22211
  var RGroupAtomTool = function () {
22208
22212
  function RGroupAtomTool(editor) {
22209
22213
  _classCallCheck__default["default"](this, RGroupAtomTool);
@@ -22245,7 +22249,7 @@ var RGroupAtomTool = function () {
22245
22249
  }
22246
22250
  }
22247
22251
  if (atomResult.length > 0) {
22248
- var _iterator = _createForOfIteratorHelper$2(atomResult),
22252
+ var _iterator = _createForOfIteratorHelper$3(atomResult),
22249
22253
  _step;
22250
22254
  try {
22251
22255
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -22313,9 +22317,9 @@ function propsDialog$1(editor, id, pos) {
22313
22317
  });
22314
22318
  }
22315
22319
 
22316
- function _createForOfIteratorHelper$1(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$1(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
22317
- function _unsupportedIterableToArray$1(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$1(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); }
22318
- function _arrayLikeToArray$1(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
22320
+ function _createForOfIteratorHelper$2(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$2(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
22321
+ function _unsupportedIterableToArray$2(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$2(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$2(o, minLen); }
22322
+ function _arrayLikeToArray$2(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
22319
22323
  var RGroupFragmentTool = function () {
22320
22324
  function RGroupFragmentTool(editor) {
22321
22325
  _classCallCheck__default["default"](this, RGroupFragmentTool);
@@ -22352,7 +22356,7 @@ var RGroupFragmentTool = function () {
22352
22356
  }
22353
22357
  }
22354
22358
  if (atomResult.length > 0) {
22355
- var _iterator = _createForOfIteratorHelper$1(atomResult),
22359
+ var _iterator = _createForOfIteratorHelper$2(atomResult),
22356
22360
  _step;
22357
22361
  try {
22358
22362
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -22374,7 +22378,7 @@ var RGroupFragmentTool = function () {
22374
22378
  return;
22375
22379
  }
22376
22380
  } else if (bondResult.length > 0) {
22377
- var _iterator2 = _createForOfIteratorHelper$1(bondResult),
22381
+ var _iterator2 = _createForOfIteratorHelper$2(bondResult),
22378
22382
  _step2;
22379
22383
  try {
22380
22384
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -24609,16 +24613,18 @@ var Editor$3 = function () {
24609
24613
  if (arguments.length === 0) {
24610
24614
  return this.render.ctab.molecule;
24611
24615
  }
24616
+ ketcherCore.KetcherLogger.log('Editor.struct(), start', value, needToCenterStruct);
24612
24617
  this.selection(null);
24613
24618
  var struct = value || new ketcherCore.Struct();
24614
24619
  var molecule = this.renderAndRecoordinateStruct(struct, needToCenterStruct);
24615
24620
  this.hoverIcon.create();
24621
+ ketcherCore.KetcherLogger.log('Editor.struct(), end');
24616
24622
  return molecule;
24617
24623
  }
24618
24624
  }, {
24619
24625
  key: "structToAddFragment",
24620
24626
  value: function structToAddFragment(value) {
24621
- var superStruct = value.mergeInto(this.render.ctab.molecule);
24627
+ var superStruct = value.mergeInto(this.render.ctab.molecule.clone());
24622
24628
  return this.renderAndRecoordinateStruct(superStruct);
24623
24629
  }
24624
24630
  }, {
@@ -24645,7 +24651,8 @@ var Editor$3 = function () {
24645
24651
  microModeScale: SCALE
24646
24652
  }, value));
24647
24653
  this.updateToolAfterOptionsChange(wasViewOnlyEnabled);
24648
- this.struct(struct);
24654
+ this.render.setMolecule(struct);
24655
+ this.struct(struct.clone());
24649
24656
  this.render.setZoom(zoom);
24650
24657
  this.render.update();
24651
24658
  return this.render.options;
@@ -24807,6 +24814,7 @@ var Editor$3 = function () {
24807
24814
  }, {
24808
24815
  key: "undo",
24809
24816
  value: function undo() {
24817
+ ketcherCore.KetcherLogger.log('Editor.undo(), start, ', this.historyPtr, this.historyStack);
24810
24818
  var ketcherChangeEvent = ketcherCore.ketcherProvider.getKetcher().changeEvent;
24811
24819
  if (this.historyPtr === 0) {
24812
24820
  throw new Error('Undo stack is empty');
@@ -24827,10 +24835,12 @@ var Editor$3 = function () {
24827
24835
  ketcherChangeEvent.dispatch(action);
24828
24836
  }
24829
24837
  this.render.update();
24838
+ ketcherCore.KetcherLogger.log('Editor.undo(), end');
24830
24839
  }
24831
24840
  }, {
24832
24841
  key: "redo",
24833
24842
  value: function redo() {
24843
+ ketcherCore.KetcherLogger.log('Editor.redo(), start, ', this.historyPtr, this.historyStack);
24834
24844
  var ketcherChangeEvent = ketcherCore.ketcherProvider.getKetcher().changeEvent;
24835
24845
  if (this.historyPtr === this.historyStack.length) {
24836
24846
  throw new Error('Redo stack is empty');
@@ -24839,9 +24849,14 @@ var Editor$3 = function () {
24839
24849
  this._tool.cancel();
24840
24850
  }
24841
24851
  this.selection(null);
24842
- var action = this.historyStack[this.historyPtr].perform(this.render.ctab);
24843
- this.historyStack[this.historyPtr] = action;
24844
- this.historyPtr++;
24852
+ var stack = this.historyStack[this.historyPtr];
24853
+ var action;
24854
+ try {
24855
+ action = stack.perform(this.render.ctab);
24856
+ } finally {
24857
+ this.historyStack[this.historyPtr] = action;
24858
+ this.historyPtr++;
24859
+ }
24845
24860
  if (this._tool instanceof toolsMap.paste) {
24846
24861
  this.event.change.dispatch();
24847
24862
  ketcherChangeEvent.dispatch();
@@ -24850,6 +24865,7 @@ var Editor$3 = function () {
24850
24865
  ketcherChangeEvent.dispatch(action);
24851
24866
  }
24852
24867
  this.render.update();
24868
+ ketcherCore.KetcherLogger.log('Editor.redo(), end');
24853
24869
  }
24854
24870
  }, {
24855
24871
  key: "subscribe",
@@ -25521,6 +25537,9 @@ var HighlightMenu = function HighlightMenu(_ref) {
25521
25537
  });
25522
25538
  };
25523
25539
 
25540
+ function _createForOfIteratorHelper$1(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$1(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
25541
+ function _unsupportedIterableToArray$1(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$1(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); }
25542
+ function _arrayLikeToArray$1(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
25524
25543
  function ownKeys$P(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25525
25544
  function _objectSpread$P(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$P(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$P(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
25526
25545
  var _atom$properties = atom.properties,
@@ -25659,6 +25678,26 @@ var AtomMenuItems = function AtomMenuItems(props) {
25659
25678
  color: color === '' ? 'transparent' : color
25660
25679
  });
25661
25680
  };
25681
+ var isAddAttachmentPointDisabled = !onlyOneAtomSelected || function () {
25682
+ if (!_.isNumber(selectedAtomId)) return true;
25683
+ var connectedComponents = struct.findConnectedComponent(selectedAtomId);
25684
+ var _iterator = _createForOfIteratorHelper$1(connectedComponents),
25685
+ _step;
25686
+ try {
25687
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
25688
+ var connectedAtomId = _step.value;
25689
+ var connectedGroup = struct.getGroupFromAtomId(connectedAtomId);
25690
+ if (connectedGroup !== null && connectedGroup !== void 0 && connectedGroup.isMonomer) {
25691
+ return true;
25692
+ }
25693
+ }
25694
+ } catch (err) {
25695
+ _iterator.e(err);
25696
+ } finally {
25697
+ _iterator.f();
25698
+ }
25699
+ return false;
25700
+ }();
25662
25701
  if (isAtomSuperatomLeavingGroup && onlyOneAtomSelected) {
25663
25702
  return jsxRuntime.jsxs(jsxRuntime.Fragment, {
25664
25703
  children: [jsxRuntime.jsx(HighlightMenu, {
@@ -25700,6 +25739,7 @@ var AtomMenuItems = function AtomMenuItems(props) {
25700
25739
  })
25701
25740
  })), onlyOneAtomSelected && !atomInSgroupWithLabel && !maxAttachmentPointsAmount && !isAtomSuperatomLeavingGroup && jsxRuntime.jsx(reactContexify.Item, _objectSpread$P(_objectSpread$P({}, props), {}, {
25702
25741
  onClick: handleAddAttachmentPoint,
25742
+ disabled: isAddAttachmentPointDisabled,
25703
25743
  children: "Add attachment point"
25704
25744
  })), jsxRuntime.jsx(HighlightMenu, {
25705
25745
  onHighlight: highlightAtomWithColor
@@ -35025,8 +35065,8 @@ var KetcherBuilder = function () {
35025
35065
  cleanup = initApp(element, appRoot, staticResourcesUrl, {
35026
35066
  buttons: buttons || {},
35027
35067
  errorHandler: errorHandler || null,
35028
- version: "3.0.0-rc.7" ,
35029
- buildDate: "2025-02-05T15:08:29" ,
35068
+ version: "3.1.0-rc.2" ,
35069
+ buildDate: "2025-02-07T15:00:25" ,
35030
35070
  buildNumber: '',
35031
35071
  customButtons: customButtons || []
35032
35072
  }, structService, resolve, togglerComponent);
@@ -35318,7 +35358,7 @@ var ModeControl = function ModeControl(_ref3) {
35318
35358
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
35319
35359
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
35320
35360
  var MacromoleculesEditor = React.lazy(function () {
35321
- return Promise.resolve().then(function () { return require('./index.modern-8c3f6bc2.js'); });
35361
+ return Promise.resolve().then(function () { return require('./index.modern-929f4d37.js'); });
35322
35362
  });
35323
35363
  var Editor = function Editor(props) {
35324
35364
  var _useState = React.useState(false),
@@ -35347,9 +35387,15 @@ var Editor = function Editor(props) {
35347
35387
  children: jsxRuntime.jsx(MacromoleculesEditor, {
35348
35388
  togglerComponent: togglerComponent
35349
35389
  })
35350
- }) : jsxRuntime.jsx(MicromoleculesEditor, _objectSpread(_objectSpread({}, props), {}, {
35351
- togglerComponent: togglerComponent
35352
- }))
35390
+ }) : jsxRuntime.jsx(React.Suspense, {
35391
+ fallback: jsxRuntime.jsx("div", {
35392
+ className: styles.switchingLoader,
35393
+ children: jsxRuntime.jsx(LoadingCircles, {})
35394
+ }),
35395
+ children: jsxRuntime.jsx(MicromoleculesEditor, _objectSpread(_objectSpread({}, props), {}, {
35396
+ togglerComponent: togglerComponent
35397
+ }))
35398
+ })
35353
35399
  });
35354
35400
  };
35355
35401