ketcher-react 3.0.0-rc.5 → 3.1.0-rc.1

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.5\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.1\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;) {
@@ -20159,9 +20161,9 @@ var LoadingCircles = function LoadingCircles() {
20159
20161
 
20160
20162
  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; }
20161
20163
  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; }
20162
- 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; } } }; }
20163
- 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); }
20164
- 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; }
20164
+ 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; } } }; }
20165
+ 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); }
20166
+ 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; }
20165
20167
  var SELECTION_DISTANCE_COEFFICIENT = 0.4;
20166
20168
  var SELECTION_WITHIN_TEXT = 0;
20167
20169
  var findMaps = _defineProperty__default["default"](_defineProperty__default["default"]({
@@ -20507,7 +20509,7 @@ function findClosestSGroup(restruct, pos) {
20507
20509
  function findClosestFG(restruct, pos, skip) {
20508
20510
  var sGroups = restruct.sgroups;
20509
20511
  var skipId = skip && skip.map === 'functionalGroups' ? skip.id : null;
20510
- var _iterator = _createForOfIteratorHelper$9(sGroups.entries()),
20512
+ var _iterator = _createForOfIteratorHelper$a(sGroups.entries()),
20511
20513
  _step;
20512
20514
  try {
20513
20515
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20723,9 +20725,9 @@ function _editRGroupAttachmentPoint() {
20723
20725
  return _editRGroupAttachmentPoint.apply(this, arguments);
20724
20726
  }
20725
20727
 
20726
- 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; } } }; }
20727
- 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); }
20728
- 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; }
20728
+ 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; } } }; }
20729
+ 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); }
20730
+ 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; }
20729
20731
  var APointTool = function () {
20730
20732
  function APointTool(editor) {
20731
20733
  _classCallCheck__default["default"](this, APointTool);
@@ -20769,7 +20771,7 @@ var APointTool = function () {
20769
20771
  }
20770
20772
  }
20771
20773
  if (atomResult.length > 0) {
20772
- var _iterator = _createForOfIteratorHelper$8(atomResult),
20774
+ var _iterator = _createForOfIteratorHelper$9(atomResult),
20773
20775
  _step;
20774
20776
  try {
20775
20777
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20806,9 +20808,9 @@ var APointTool = function () {
20806
20808
  return APointTool;
20807
20809
  }();
20808
20810
 
20809
- 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; } } }; }
20810
- 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); }
20811
- 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; }
20811
+ 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; } } }; }
20812
+ 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); }
20813
+ 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; }
20812
20814
  var AttachTool = function () {
20813
20815
  function AttachTool(editor, attachPoints) {
20814
20816
  _classCallCheck__default["default"](this, AttachTool);
@@ -20861,7 +20863,7 @@ var AttachTool = function () {
20861
20863
  }
20862
20864
  }
20863
20865
  if (atomResult.length > 0) {
20864
- var _iterator = _createForOfIteratorHelper$7(atomResult),
20866
+ var _iterator = _createForOfIteratorHelper$8(atomResult),
20865
20867
  _step;
20866
20868
  try {
20867
20869
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20881,7 +20883,7 @@ var AttachTool = function () {
20881
20883
  });
20882
20884
  return;
20883
20885
  } else if (bondResult.length > 0) {
20884
- var _iterator2 = _createForOfIteratorHelper$7(bondResult),
20886
+ var _iterator2 = _createForOfIteratorHelper$8(bondResult),
20885
20887
  _step2;
20886
20888
  try {
20887
20889
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -20917,9 +20919,9 @@ var AttachTool = function () {
20917
20919
  return AttachTool;
20918
20920
  }();
20919
20921
 
20920
- 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; } } }; }
20921
- 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); }
20922
- 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; }
20922
+ 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; } } }; }
20923
+ 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); }
20924
+ 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; }
20923
20925
  var BondTool = function () {
20924
20926
  function BondTool(editor, bondProps) {
20925
20927
  var _editor$selection;
@@ -20959,7 +20961,7 @@ var BondTool = function () {
20959
20961
  if (bondId !== null) bondResult.push(bondId);
20960
20962
  }
20961
20963
  if (atomResult.length > 0) {
20962
- var _iterator = _createForOfIteratorHelper$6(atomResult),
20964
+ var _iterator = _createForOfIteratorHelper$7(atomResult),
20963
20965
  _step;
20964
20966
  try {
20965
20967
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20981,7 +20983,7 @@ var BondTool = function () {
20981
20983
  return;
20982
20984
  }
20983
20985
  } else if (bondResult.length > 0) {
20984
- var _iterator2 = _createForOfIteratorHelper$6(bondResult),
20986
+ var _iterator2 = _createForOfIteratorHelper$7(bondResult),
20985
20987
  _step2;
20986
20988
  try {
20987
20989
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -21096,7 +21098,7 @@ var BondTool = function () {
21096
21098
  }
21097
21099
  }
21098
21100
  if (atomResult.length > 0) {
21099
- var _iterator3 = _createForOfIteratorHelper$6(atomResult),
21101
+ var _iterator3 = _createForOfIteratorHelper$7(atomResult),
21100
21102
  _step3;
21101
21103
  try {
21102
21104
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -21147,7 +21149,7 @@ var BondTool = function () {
21147
21149
  delete dragCtx.action;
21148
21150
  }
21149
21151
  this.restoreBondWhenHoveringOnCanvas(event);
21150
- this.editor.update(dragCtx.action, true);
21152
+ if (dragCtx.action) this.editor.update(dragCtx.action, true);
21151
21153
  return true;
21152
21154
  }
21153
21155
  }
@@ -21219,7 +21221,7 @@ var BondTool = function () {
21219
21221
  }, {
21220
21222
  key: "getExistingBond",
21221
21223
  value: function getExistingBond(struct, begin, end) {
21222
- var _iterator4 = _createForOfIteratorHelper$6(struct.bonds.entries()),
21224
+ var _iterator4 = _createForOfIteratorHelper$7(struct.bonds.entries()),
21223
21225
  _step4;
21224
21226
  try {
21225
21227
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -21242,9 +21244,9 @@ var BondTool = function () {
21242
21244
  return BondTool;
21243
21245
  }();
21244
21246
 
21245
- 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; } } }; }
21246
- 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); }
21247
- 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; }
21247
+ 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; } } }; }
21248
+ 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); }
21249
+ 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; }
21248
21250
  var ChainTool = function () {
21249
21251
  function ChainTool(editor) {
21250
21252
  _classCallCheck__default["default"](this, ChainTool);
@@ -21279,7 +21281,7 @@ var ChainTool = function () {
21279
21281
  }
21280
21282
  }
21281
21283
  if (atomResult.length > 0) {
21282
- var _iterator = _createForOfIteratorHelper$5(atomResult),
21284
+ var _iterator = _createForOfIteratorHelper$6(atomResult),
21283
21285
  _step;
21284
21286
  try {
21285
21287
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -21301,7 +21303,7 @@ var ChainTool = function () {
21301
21303
  return;
21302
21304
  }
21303
21305
  } else if (bondResult.length > 0) {
21304
- var _iterator2 = _createForOfIteratorHelper$5(bondResult),
21306
+ var _iterator2 = _createForOfIteratorHelper$6(bondResult),
21305
21307
  _step2;
21306
21308
  try {
21307
21309
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -21398,6 +21400,8 @@ var ChainTool = function () {
21398
21400
  var atom;
21399
21401
  var atomResult = [];
21400
21402
  var result = [];
21403
+ ketcherCore.removeInfoLabelFromAtoms(struct);
21404
+ this.editor.render.update(true, null);
21401
21405
  if (this.dragCtx && this.dragCtx.mergeItems && functionalGroups.size) {
21402
21406
  atom = this.dragCtx.mergeItems.atoms.values().next().value;
21403
21407
  }
@@ -21408,7 +21412,7 @@ var ChainTool = function () {
21408
21412
  }
21409
21413
  }
21410
21414
  if (atomResult.length > 0) {
21411
- var _iterator3 = _createForOfIteratorHelper$5(atomResult),
21415
+ var _iterator3 = _createForOfIteratorHelper$6(atomResult),
21412
21416
  _step3;
21413
21417
  try {
21414
21418
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -21470,9 +21474,9 @@ var ChainTool = function () {
21470
21474
  return ChainTool;
21471
21475
  }();
21472
21476
 
21473
- 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; } } }; }
21474
- 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); }
21475
- 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; }
21477
+ 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; } } }; }
21478
+ 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); }
21479
+ 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; }
21476
21480
  var ChargeTool = function () {
21477
21481
  function ChargeTool(editor, charge) {
21478
21482
  _classCallCheck__default["default"](this, ChargeTool);
@@ -21517,7 +21521,7 @@ var ChargeTool = function () {
21517
21521
  }
21518
21522
  }
21519
21523
  if (atomResult.length > 0) {
21520
- var _iterator = _createForOfIteratorHelper$4(atomResult),
21524
+ var _iterator = _createForOfIteratorHelper$5(atomResult),
21521
21525
  _step;
21522
21526
  try {
21523
21527
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -21604,9 +21608,9 @@ var EnhancedStereoTool = function () {
21604
21608
  return EnhancedStereoTool;
21605
21609
  }();
21606
21610
 
21607
- 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; } } }; }
21608
- 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); }
21609
- 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; }
21611
+ 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; } } }; }
21612
+ 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); }
21613
+ 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; }
21610
21614
  var EraserTool = function () {
21611
21615
  function EraserTool(editor, mode) {
21612
21616
  _classCallCheck__default["default"](this, EraserTool);
@@ -21654,7 +21658,7 @@ var EraserTool = function () {
21654
21658
  var bondsResult = [];
21655
21659
  var preResult = [];
21656
21660
  if (selected && functionalGroups.size && selected.atoms) {
21657
- var _iterator = _createForOfIteratorHelper$3(selected.atoms),
21661
+ var _iterator = _createForOfIteratorHelper$4(selected.atoms),
21658
21662
  _step;
21659
21663
  try {
21660
21664
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -21663,7 +21667,7 @@ var EraserTool = function () {
21663
21667
  var atomId = ketcherCore.FunctionalGroup.atomsInFunctionalGroup(functionalGroups, atom);
21664
21668
  var atomFromStruct = atomId !== null && ((_struct$atoms$get = struct.atoms.get(atomId)) === null || _struct$atoms$get === void 0 ? void 0 : _struct$atoms$get.a);
21665
21669
  if (atomFromStruct) {
21666
- var _iterator2 = _createForOfIteratorHelper$3(atomFromStruct.sgs.values()),
21670
+ var _iterator2 = _createForOfIteratorHelper$4(atomFromStruct.sgs.values()),
21667
21671
  _step2;
21668
21672
  try {
21669
21673
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -21693,7 +21697,7 @@ var EraserTool = function () {
21693
21697
  }
21694
21698
  }
21695
21699
  if (selected && functionalGroups.size && selected.bonds) {
21696
- var _iterator3 = _createForOfIteratorHelper$3(selected.bonds),
21700
+ var _iterator3 = _createForOfIteratorHelper$4(selected.bonds),
21697
21701
  _step3;
21698
21702
  try {
21699
21703
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -21712,7 +21716,7 @@ var EraserTool = function () {
21712
21716
  }
21713
21717
  }
21714
21718
  if (selected && functionalGroups.size && selected.rgroupAttachmentPoints) {
21715
- var _iterator4 = _createForOfIteratorHelper$3(selected.rgroupAttachmentPoints),
21719
+ var _iterator4 = _createForOfIteratorHelper$4(selected.rgroupAttachmentPoints),
21716
21720
  _step4;
21717
21721
  try {
21718
21722
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -21729,7 +21733,7 @@ var EraserTool = function () {
21729
21733
  }
21730
21734
  }
21731
21735
  if (atomsResult.length > 0) {
21732
- var _iterator5 = _createForOfIteratorHelper$3(atomsResult),
21736
+ var _iterator5 = _createForOfIteratorHelper$4(atomsResult),
21733
21737
  _step5;
21734
21738
  try {
21735
21739
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -21744,7 +21748,7 @@ var EraserTool = function () {
21744
21748
  }
21745
21749
  }
21746
21750
  if (bondsResult.length > 0) {
21747
- var _iterator6 = _createForOfIteratorHelper$3(bondsResult),
21751
+ var _iterator6 = _createForOfIteratorHelper$4(bondsResult),
21748
21752
  _step6;
21749
21753
  try {
21750
21754
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -21820,7 +21824,7 @@ var EraserTool = function () {
21820
21824
  }
21821
21825
  }
21822
21826
  if (atomResult.length) {
21823
- var _iterator7 = _createForOfIteratorHelper$3(atomResult),
21827
+ var _iterator7 = _createForOfIteratorHelper$4(atomResult),
21824
21828
  _step7;
21825
21829
  try {
21826
21830
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
@@ -21836,7 +21840,7 @@ var EraserTool = function () {
21836
21840
  _iterator7.f();
21837
21841
  }
21838
21842
  } else if (bondResult.length) {
21839
- var _iterator8 = _createForOfIteratorHelper$3(bondResult),
21843
+ var _iterator8 = _createForOfIteratorHelper$4(bondResult),
21840
21844
  _step8;
21841
21845
  try {
21842
21846
  for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
@@ -22208,9 +22212,9 @@ function prepareTemplateFromSingleGroup(molecule) {
22208
22212
  return template;
22209
22213
  }
22210
22214
 
22211
- 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; } } }; }
22212
- 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); }
22213
- 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; }
22215
+ 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; } } }; }
22216
+ 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); }
22217
+ 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; }
22214
22218
  var RGroupAtomTool = function () {
22215
22219
  function RGroupAtomTool(editor) {
22216
22220
  _classCallCheck__default["default"](this, RGroupAtomTool);
@@ -22252,7 +22256,7 @@ var RGroupAtomTool = function () {
22252
22256
  }
22253
22257
  }
22254
22258
  if (atomResult.length > 0) {
22255
- var _iterator = _createForOfIteratorHelper$2(atomResult),
22259
+ var _iterator = _createForOfIteratorHelper$3(atomResult),
22256
22260
  _step;
22257
22261
  try {
22258
22262
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -22320,9 +22324,9 @@ function propsDialog$1(editor, id, pos) {
22320
22324
  });
22321
22325
  }
22322
22326
 
22323
- 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; } } }; }
22324
- 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); }
22325
- 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; }
22327
+ 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; } } }; }
22328
+ 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); }
22329
+ 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; }
22326
22330
  var RGroupFragmentTool = function () {
22327
22331
  function RGroupFragmentTool(editor) {
22328
22332
  _classCallCheck__default["default"](this, RGroupFragmentTool);
@@ -22359,7 +22363,7 @@ var RGroupFragmentTool = function () {
22359
22363
  }
22360
22364
  }
22361
22365
  if (atomResult.length > 0) {
22362
- var _iterator = _createForOfIteratorHelper$1(atomResult),
22366
+ var _iterator = _createForOfIteratorHelper$2(atomResult),
22363
22367
  _step;
22364
22368
  try {
22365
22369
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -22381,7 +22385,7 @@ var RGroupFragmentTool = function () {
22381
22385
  return;
22382
22386
  }
22383
22387
  } else if (bondResult.length > 0) {
22384
- var _iterator2 = _createForOfIteratorHelper$1(bondResult),
22388
+ var _iterator2 = _createForOfIteratorHelper$2(bondResult),
22385
22389
  _step2;
22386
22390
  try {
22387
22391
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -24616,16 +24620,18 @@ var Editor$3 = function () {
24616
24620
  if (arguments.length === 0) {
24617
24621
  return this.render.ctab.molecule;
24618
24622
  }
24623
+ ketcherCore.KetcherLogger.log('Editor.struct(), start', value, needToCenterStruct);
24619
24624
  this.selection(null);
24620
24625
  var struct = value || new ketcherCore.Struct();
24621
24626
  var molecule = this.renderAndRecoordinateStruct(struct, needToCenterStruct);
24622
24627
  this.hoverIcon.create();
24628
+ ketcherCore.KetcherLogger.log('Editor.struct(), end');
24623
24629
  return molecule;
24624
24630
  }
24625
24631
  }, {
24626
24632
  key: "structToAddFragment",
24627
24633
  value: function structToAddFragment(value) {
24628
- var superStruct = value.mergeInto(this.render.ctab.molecule);
24634
+ var superStruct = value.mergeInto(this.render.ctab.molecule.clone());
24629
24635
  return this.renderAndRecoordinateStruct(superStruct);
24630
24636
  }
24631
24637
  }, {
@@ -24652,7 +24658,8 @@ var Editor$3 = function () {
24652
24658
  microModeScale: SCALE
24653
24659
  }, value));
24654
24660
  this.updateToolAfterOptionsChange(wasViewOnlyEnabled);
24655
- this.struct(struct);
24661
+ this.render.setMolecule(struct);
24662
+ this.struct(struct.clone());
24656
24663
  this.render.setZoom(zoom);
24657
24664
  this.render.update();
24658
24665
  return this.render.options;
@@ -24814,6 +24821,7 @@ var Editor$3 = function () {
24814
24821
  }, {
24815
24822
  key: "undo",
24816
24823
  value: function undo() {
24824
+ ketcherCore.KetcherLogger.log('Editor.undo(), start, ', this.historyPtr, this.historyStack);
24817
24825
  var ketcherChangeEvent = ketcherCore.ketcherProvider.getKetcher().changeEvent;
24818
24826
  if (this.historyPtr === 0) {
24819
24827
  throw new Error('Undo stack is empty');
@@ -24834,10 +24842,12 @@ var Editor$3 = function () {
24834
24842
  ketcherChangeEvent.dispatch(action);
24835
24843
  }
24836
24844
  this.render.update();
24845
+ ketcherCore.KetcherLogger.log('Editor.undo(), end');
24837
24846
  }
24838
24847
  }, {
24839
24848
  key: "redo",
24840
24849
  value: function redo() {
24850
+ ketcherCore.KetcherLogger.log('Editor.redo(), start, ', this.historyPtr, this.historyStack);
24841
24851
  var ketcherChangeEvent = ketcherCore.ketcherProvider.getKetcher().changeEvent;
24842
24852
  if (this.historyPtr === this.historyStack.length) {
24843
24853
  throw new Error('Redo stack is empty');
@@ -24846,9 +24856,14 @@ var Editor$3 = function () {
24846
24856
  this._tool.cancel();
24847
24857
  }
24848
24858
  this.selection(null);
24849
- var action = this.historyStack[this.historyPtr].perform(this.render.ctab);
24850
- this.historyStack[this.historyPtr] = action;
24851
- this.historyPtr++;
24859
+ var stack = this.historyStack[this.historyPtr];
24860
+ var action;
24861
+ try {
24862
+ action = stack.perform(this.render.ctab);
24863
+ } finally {
24864
+ this.historyStack[this.historyPtr] = action;
24865
+ this.historyPtr++;
24866
+ }
24852
24867
  if (this._tool instanceof toolsMap.paste) {
24853
24868
  this.event.change.dispatch();
24854
24869
  ketcherChangeEvent.dispatch();
@@ -24857,6 +24872,7 @@ var Editor$3 = function () {
24857
24872
  ketcherChangeEvent.dispatch(action);
24858
24873
  }
24859
24874
  this.render.update();
24875
+ ketcherCore.KetcherLogger.log('Editor.redo(), end');
24860
24876
  }
24861
24877
  }, {
24862
24878
  key: "subscribe",
@@ -25528,6 +25544,9 @@ var HighlightMenu = function HighlightMenu(_ref) {
25528
25544
  });
25529
25545
  };
25530
25546
 
25547
+ 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; } } }; }
25548
+ 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); }
25549
+ 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; }
25531
25550
  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; }
25532
25551
  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; }
25533
25552
  var _atom$properties = atom.properties,
@@ -25666,6 +25685,26 @@ var AtomMenuItems = function AtomMenuItems(props) {
25666
25685
  color: color === '' ? 'transparent' : color
25667
25686
  });
25668
25687
  };
25688
+ var isAddAttachmentPointDisabled = !onlyOneAtomSelected || function () {
25689
+ if (!_.isNumber(selectedAtomId)) return true;
25690
+ var connectedComponents = struct.findConnectedComponent(selectedAtomId);
25691
+ var _iterator = _createForOfIteratorHelper$1(connectedComponents),
25692
+ _step;
25693
+ try {
25694
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
25695
+ var connectedAtomId = _step.value;
25696
+ var connectedGroup = struct.getGroupFromAtomId(connectedAtomId);
25697
+ if (connectedGroup !== null && connectedGroup !== void 0 && connectedGroup.isMonomer) {
25698
+ return true;
25699
+ }
25700
+ }
25701
+ } catch (err) {
25702
+ _iterator.e(err);
25703
+ } finally {
25704
+ _iterator.f();
25705
+ }
25706
+ return false;
25707
+ }();
25669
25708
  if (isAtomSuperatomLeavingGroup && onlyOneAtomSelected) {
25670
25709
  return jsxRuntime.jsxs(jsxRuntime.Fragment, {
25671
25710
  children: [jsxRuntime.jsx(HighlightMenu, {
@@ -25707,6 +25746,7 @@ var AtomMenuItems = function AtomMenuItems(props) {
25707
25746
  })
25708
25747
  })), onlyOneAtomSelected && !atomInSgroupWithLabel && !maxAttachmentPointsAmount && !isAtomSuperatomLeavingGroup && jsxRuntime.jsx(reactContexify.Item, _objectSpread$P(_objectSpread$P({}, props), {}, {
25709
25748
  onClick: handleAddAttachmentPoint,
25749
+ disabled: isAddAttachmentPointDisabled,
25710
25750
  children: "Add attachment point"
25711
25751
  })), jsxRuntime.jsx(HighlightMenu, {
25712
25752
  onHighlight: highlightAtomWithColor
@@ -35032,8 +35072,8 @@ var KetcherBuilder = function () {
35032
35072
  cleanup = initApp(element, appRoot, staticResourcesUrl, {
35033
35073
  buttons: buttons || {},
35034
35074
  errorHandler: errorHandler || null,
35035
- version: "3.0.0-rc.5" ,
35036
- buildDate: "2025-01-28T15:25:50" ,
35075
+ version: "3.1.0-rc.1" ,
35076
+ buildDate: "2025-02-04T21:35:49" ,
35037
35077
  buildNumber: '',
35038
35078
  customButtons: customButtons || []
35039
35079
  }, structService, resolve, togglerComponent);
@@ -35325,7 +35365,7 @@ var ModeControl = function ModeControl(_ref3) {
35325
35365
  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; }
35326
35366
  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; }
35327
35367
  var MacromoleculesEditor = React.lazy(function () {
35328
- return Promise.resolve().then(function () { return require('./index.modern-9ea928b2.js'); });
35368
+ return Promise.resolve().then(function () { return require('./index.modern-d9d67a18.js'); });
35329
35369
  });
35330
35370
  var Editor = function Editor(props) {
35331
35371
  var _useState = React.useState(false),
@@ -35340,6 +35380,11 @@ var Editor = function Editor(props) {
35340
35380
  toggle: togglePolymerEditor,
35341
35381
  isPolymerEditor: showPolymerEditor
35342
35382
  }) : undefined;
35383
+ React.useEffect(function () {
35384
+ return function () {
35385
+ window.isPolymerEditorTurnedOn = false;
35386
+ };
35387
+ }, []);
35343
35388
  return jsxRuntime.jsx(jsxRuntime.Fragment, {
35344
35389
  children: showPolymerEditor ? jsxRuntime.jsx(React.Suspense, {
35345
35390
  fallback: jsxRuntime.jsx("div", {
@@ -35349,9 +35394,15 @@ var Editor = function Editor(props) {
35349
35394
  children: jsxRuntime.jsx(MacromoleculesEditor, {
35350
35395
  togglerComponent: togglerComponent
35351
35396
  })
35352
- }) : jsxRuntime.jsx(MicromoleculesEditor, _objectSpread(_objectSpread({}, props), {}, {
35353
- togglerComponent: togglerComponent
35354
- }))
35397
+ }) : jsxRuntime.jsx(React.Suspense, {
35398
+ fallback: jsxRuntime.jsx("div", {
35399
+ className: styles.switchingLoader,
35400
+ children: jsxRuntime.jsx(LoadingCircles, {})
35401
+ }),
35402
+ children: jsxRuntime.jsx(MicromoleculesEditor, _objectSpread(_objectSpread({}, props), {}, {
35403
+ togglerComponent: togglerComponent
35404
+ }))
35405
+ })
35355
35406
  });
35356
35407
  };
35357
35408