ketcher-react 3.0.0-rc.6 → 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/index.js CHANGED
@@ -27,7 +27,7 @@ import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
27
27
  import _regeneratorRuntime from '@babel/runtime/regenerator';
28
28
  import _classCallCheck$2 from '@babel/runtime/helpers/classCallCheck';
29
29
  import _createClass$2 from '@babel/runtime/helpers/createClass';
30
- import { KetSerializer, MolSerializer, KetcherLogger, Ketcher, defaultBondThickness, FormatterFactory, isClipboardAPIAvailable, notifyCopyCut, notifyRequestCompleted, isControlKey, StereLabelStyleType, StereoColoringType, ShowHydrogenLabels, ShowHydrogenLabelNames, SettingsManager, SdfSerializer, KETCHER_SAVED_OPTIONS_KEY, Bond as Bond$2, Elements, AtomList, getAtomType, StereoLabel, isAttachmentBond, Atom as Atom$2, findStereoAtoms, RxnArrowMode, MULTITAIL_ARROW_TOOL_NAME, SimpleObjectMode, IMAGE_KEY, SGroup as SGroup$1, Pile, identifyStructFormat, SupportedFormat, MULTITAIL_ARROW_KEY, ChemicalMimeType, RenderStruct, Struct, ZoomTool, shortcutStr, MonomerMicromolecule, UnresolvedMonomer, FunctionalGroupsProvider, SaltsAndSolventsProvider, KetcherAsyncEvents, ElementColor, ketcherProvider, generateMenuShortcuts, Vec2, Scale, fromMultipleMove, FunctionalGroup, mergeMapOfItemsToSet, fromSgroupDeletion, fromFragmentDeletion, vectorUtils, fromBondAddition, Action, fromAtomAddition, fromAtomsAttrs, checkOverlapping, fromSeveralSgroupAddition, expandSGroupWithMultipleAttachmentPoint, SgContexts, fromSgroupAction, fromItemsFuse, ReBond, setExpandSGroup, fromBondsAttrs, OperationType, ReStruct, imageReferencePositionToCursor, multitailArrowReferenceLinesToCursor, multitailReferencePositionToCursor, CoordinateTransformation, MultitailArrowRefName, fromMultitailArrowHeadTailMove, fromMultitailArrowHeadTailsResize, fromMultitailArrowMove, fromArrowResizing, fromPaste, fromImageResize, fromSimpleObjectResizing, getItemsToFuse, getHoverToFuse, fromTextDeletion, fromTextUpdating, fromTemplateOnCanvas, fromTemplateOnBondAction, fromTemplateOnAtom, BondAttr, AtomAttr, formatProperties, runAsyncAction, getStructStringFromClipboardData, getStructure, initHotKeys, keyNorm, Fragment as Fragment$1, fromRGroupAttachmentPointUpdate, fromOneBondDeletion, bondChangingAction, fromChain, fromStereoFlagUpdate, fromOneAtomDeletion, fromArrowDeletion, fromPlusDeletion, fromSimpleObjectDeletion, fromRGroupAttachmentPointDeletion, fromImageDeletion, fromMultitailArrowDeletion, notifyItemsToMergeInitializationComplete, RGroup as RGroup$2, fromRGroupFragment, fromUpdateIfThen, fromRGroupAttrs, fromArrowAddition, fromMultitailArrowCreation, fromPlusAddition, fromRotate, fromFlip, fromSimpleObjectAddition, fromTextCreation, fromImageMove, fromImageCreation, fromHighlightCreate, fromHighlightClear, getOptionsWithConvertedUnits, provideEditorSettings, fromNewCanvas, Render, fromDescriptorsAlign, fromSgroupAttachmentPointAddition, SGroupAttachmentPoint, fromSgroupAddition, atomGetAttr, fromBondFlipping, setExpandMonomerSGroup, fromMultitailArrowTailAdd, MultitailArrow, fromMultitailArrowTailRemove, AmbiguousMonomer, genericsList, getAtomCustomQuery, getFormatMimeTypeByFileName, getPropertiesByFormat, StereoFlag, getPropertiesByImgFormat, legacyCopy as legacyCopy$1, b64toBlob, Generics, TextCommand, DefaultStructServiceOptions } from 'ketcher-core';
30
+ import { KetSerializer, MolSerializer, KetcherLogger, Ketcher, defaultBondThickness, FormatterFactory, isClipboardAPIAvailable, notifyCopyCut, notifyRequestCompleted, isControlKey, StereLabelStyleType, StereoColoringType, ShowHydrogenLabels, ShowHydrogenLabelNames, SettingsManager, SdfSerializer, KETCHER_SAVED_OPTIONS_KEY, Bond as Bond$2, Elements, AtomList, getAtomType, StereoLabel, isAttachmentBond, Atom as Atom$2, findStereoAtoms, RxnArrowMode, MULTITAIL_ARROW_TOOL_NAME, SimpleObjectMode, IMAGE_KEY, SGroup as SGroup$1, Pile, identifyStructFormat, SupportedFormat, MULTITAIL_ARROW_KEY, ChemicalMimeType, RenderStruct, Struct, ZoomTool, shortcutStr, MonomerMicromolecule, UnresolvedMonomer, FunctionalGroupsProvider, SaltsAndSolventsProvider, KetcherAsyncEvents, ElementColor, ketcherProvider, generateMenuShortcuts, Vec2, Scale, fromMultipleMove, FunctionalGroup, mergeMapOfItemsToSet, fromSgroupDeletion, fromFragmentDeletion, vectorUtils, fromBondAddition, Action, fromAtomAddition, fromAtomsAttrs, checkOverlapping, fromSeveralSgroupAddition, expandSGroupWithMultipleAttachmentPoint, SgContexts, fromSgroupAction, fromItemsFuse, ReBond, setExpandSGroup, fromBondsAttrs, OperationType, ReStruct, imageReferencePositionToCursor, multitailArrowReferenceLinesToCursor, multitailReferencePositionToCursor, CoordinateTransformation, MultitailArrowRefName, fromMultitailArrowHeadTailMove, fromMultitailArrowHeadTailsResize, fromMultitailArrowMove, fromArrowResizing, fromPaste, fromImageResize, fromSimpleObjectResizing, getItemsToFuse, getHoverToFuse, fromTextDeletion, fromTextUpdating, fromTemplateOnCanvas, fromTemplateOnBondAction, fromTemplateOnAtom, BondAttr, AtomAttr, formatProperties, runAsyncAction, getStructStringFromClipboardData, getStructure, initHotKeys, keyNorm, Fragment as Fragment$1, fromRGroupAttachmentPointUpdate, fromOneBondDeletion, bondChangingAction, fromChain, removeInfoLabelFromAtoms, fromStereoFlagUpdate, fromOneAtomDeletion, fromArrowDeletion, fromPlusDeletion, fromSimpleObjectDeletion, fromRGroupAttachmentPointDeletion, fromImageDeletion, fromMultitailArrowDeletion, notifyItemsToMergeInitializationComplete, RGroup as RGroup$2, fromRGroupFragment, fromUpdateIfThen, fromRGroupAttrs, fromArrowAddition, fromMultitailArrowCreation, fromPlusAddition, fromRotate, fromFlip, fromSimpleObjectAddition, fromTextCreation, fromImageMove, fromImageCreation, fromHighlightCreate, fromHighlightClear, getOptionsWithConvertedUnits, provideEditorSettings, fromNewCanvas, Render, fromDescriptorsAlign, fromSgroupAttachmentPointAddition, SGroupAttachmentPoint, fromSgroupAddition, atomGetAttr, fromBondFlipping, setExpandMonomerSGroup, fromMultitailArrowTailAdd, MultitailArrow, fromMultitailArrowTailRemove, AmbiguousMonomer, genericsList, getAtomCustomQuery, getFormatMimeTypeByFileName, getPropertiesByFormat, StereoFlag, getPropertiesByImgFormat, legacyCopy as legacyCopy$1, b64toBlob, Generics, TextCommand, DefaultStructServiceOptions } from 'ketcher-core';
31
31
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
32
32
  import _possibleConstructorReturn$2 from '@babel/runtime/helpers/possibleConstructorReturn';
33
33
  import _getPrototypeOf$2 from '@babel/runtime/helpers/getPrototypeOf';
@@ -273,9 +273,9 @@ var debugObj = {
273
273
 
274
274
  var classes$Q = {"cliparea":"cliparea-module_cliparea__GdPrN"};
275
275
 
276
- 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; } } }; }
277
- 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); }
278
- 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; }
276
+ 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; } } }; }
277
+ 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); }
278
+ 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; }
279
279
  function _callSuper$e(t, o, e) { return o = _getPrototypeOf$2(o), _possibleConstructorReturn$2(t, _isNativeReflectConstruct$g() ? Reflect.construct(o, e || [], _getPrototypeOf$2(t).constructor) : o.apply(t, e)); }
280
280
  function _isNativeReflectConstruct$g() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$g = function _isNativeReflectConstruct() { return !!t; })(); }
281
281
  var ieCb = typeof window !== 'undefined' ? window.clipboardData : {};
@@ -583,7 +583,7 @@ function _pasteByKeydown() {
583
583
  _context4.next = 26;
584
584
  break;
585
585
  case 5:
586
- _iterator = _createForOfIteratorHelper$g(clipboardData);
586
+ _iterator = _createForOfIteratorHelper$h(clipboardData);
587
587
  _context4.prev = 6;
588
588
  _iterator.s();
589
589
  case 8:
@@ -2611,9 +2611,9 @@ function toSgroup(sgroup) {
2611
2611
  };
2612
2612
  }
2613
2613
 
2614
- 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; } } }; }
2615
- 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); }
2616
- 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; }
2614
+ 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; } } }; }
2615
+ 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); }
2616
+ 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; }
2617
2617
  function isFlipDisabled(editor) {
2618
2618
  var selection = editor.selection();
2619
2619
  var restruct = editor.render.ctab;
@@ -2626,13 +2626,13 @@ function isFlipDisabled(editor) {
2626
2626
  atoms = _selection$atoms === void 0 ? [] : _selection$atoms;
2627
2627
  var getBondIdsForAttachmentAtoms = function getBondIdsForAttachmentAtoms() {
2628
2628
  var result = [];
2629
- var _iterator = _createForOfIteratorHelper$f(atoms),
2629
+ var _iterator = _createForOfIteratorHelper$g(atoms),
2630
2630
  _step;
2631
2631
  try {
2632
2632
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
2633
2633
  var atomId = _step.value;
2634
2634
  var atomBondIds = Atom$2.getConnectedBondIds(restruct.molecule, atomId);
2635
- var _iterator2 = _createForOfIteratorHelper$f(atomBondIds),
2635
+ var _iterator2 = _createForOfIteratorHelper$g(atomBondIds),
2636
2636
  _step2;
2637
2637
  try {
2638
2638
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -2658,7 +2658,7 @@ function isFlipDisabled(editor) {
2658
2658
  var getAmountOfAttachmentBonds = function getAmountOfAttachmentBonds() {
2659
2659
  var amountOfAttachmentBonds = 0;
2660
2660
  var totalBondIds = new Set([].concat(_toConsumableArray(bonds), _toConsumableArray(getBondIdsForAttachmentAtoms())));
2661
- var _iterator3 = _createForOfIteratorHelper$f(totalBondIds),
2661
+ var _iterator3 = _createForOfIteratorHelper$g(totalBondIds),
2662
2662
  _step3;
2663
2663
  try {
2664
2664
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -3743,7 +3743,7 @@ var zoom = {
3743
3743
 
3744
3744
  var openHelpLink = function openHelpLink() {
3745
3745
  var _window$open;
3746
- return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v3.0.0-rc.6\n", "/documentation/help.md#ketcher-overview"))) === null || _window$open === void 0 ? void 0 : _window$open.focus();
3746
+ 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();
3747
3747
  };
3748
3748
  var help = {
3749
3749
  help: {
@@ -8211,6 +8211,7 @@ var StructRender = function StructRender(_ref) {
8211
8211
  }
8212
8212
  }, [struct, options, update]);
8213
8213
  return jsx(Container$2, {
8214
+ "data-testid": "monomer-preview-micro",
8214
8215
  ref: renderRef,
8215
8216
  className: className,
8216
8217
  fullsize: fullsize
@@ -11780,10 +11781,10 @@ defineProperties_1(polyfill, {
11780
11781
 
11781
11782
  var isNan = polyfill;
11782
11783
 
11783
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$f(arr, i) || _nonIterableRest(); }
11784
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$g(arr, i) || _nonIterableRest(); }
11784
11785
  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."); }
11785
- 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); }
11786
- 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; }
11786
+ 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); }
11787
+ 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; }
11787
11788
  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; } }
11788
11789
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
11789
11790
  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); }
@@ -15488,6 +15489,7 @@ var ZoomControls = function ZoomControls(_ref) {
15488
15489
  ref: containerRef,
15489
15490
  children: [jsxs(DropDownButton$1, {
15490
15491
  onClick: onExpand,
15492
+ "data-testid": "zoom-selector",
15491
15493
  children: [jsxs(ZoomLabel, {
15492
15494
  "data-testid": "zoom-input",
15493
15495
  children: [Math.round(currentZoom), "%"]
@@ -16546,9 +16548,9 @@ function getGroupIdsFromItemMaps(struct, mergeMaps) {
16546
16548
  });
16547
16549
  }
16548
16550
 
16549
- 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; } } }; }
16550
- 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); }
16551
- 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; }
16551
+ 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; } } }; }
16552
+ 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); }
16553
+ 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; }
16552
16554
  function uniqArray(dest, add, reversible) {
16553
16555
  return add.reduce(function (_, item) {
16554
16556
  if (reversible) dest = xor(dest, [item]);else if (!dest.includes(item)) dest.push(item);
@@ -16592,7 +16594,7 @@ function getNewSelectedItems(editor, selectedSgroups) {
16592
16594
  atoms: [],
16593
16595
  bonds: []
16594
16596
  };
16595
- var _iterator = _createForOfIteratorHelper$e(selectedSgroups),
16597
+ var _iterator = _createForOfIteratorHelper$f(selectedSgroups),
16596
16598
  _step;
16597
16599
  try {
16598
16600
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -17006,9 +17008,9 @@ function filterNotPartOfSuperatomWithoutLabel(itemsToFilter, struct) {
17006
17008
  };
17007
17009
  }
17008
17010
 
17009
- 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; } } }; }
17010
- 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); }
17011
- 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; }
17011
+ 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; } } }; }
17012
+ 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); }
17013
+ 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; }
17012
17014
  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; }
17013
17015
  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$1(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; }
17014
17016
  var searchMaps = ['atoms', 'bonds', 'sgroups', 'functionalGroups', 'sgroupData'];
@@ -17053,7 +17055,7 @@ var SGroupTool = function () {
17053
17055
  return isEqual(sgroup.atoms, selectedAtoms);
17054
17056
  });
17055
17057
  if (selectedAtoms && functionalGroups.size) {
17056
- var _iterator = _createForOfIteratorHelper$d(selectedAtoms),
17058
+ var _iterator = _createForOfIteratorHelper$e(selectedAtoms),
17057
17059
  _step;
17058
17060
  try {
17059
17061
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -17065,7 +17067,7 @@ var SGroupTool = function () {
17065
17067
  }
17066
17068
  var atomFromStruct = atomId !== null && ((_struct$atoms$get = struct.atoms.get(atomId)) === null || _struct$atoms$get === void 0 ? void 0 : _struct$atoms$get.a);
17067
17069
  if (atomFromStruct) {
17068
- var _iterator2 = _createForOfIteratorHelper$d(atomFromStruct.sgs.values()),
17070
+ var _iterator2 = _createForOfIteratorHelper$e(atomFromStruct.sgs.values()),
17069
17071
  _step2;
17070
17072
  try {
17071
17073
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -17098,7 +17100,7 @@ var SGroupTool = function () {
17098
17100
  atomsResult = [];
17099
17101
  }
17100
17102
  if (atomsResult && atomsResult.length > 0) {
17101
- var _iterator3 = _createForOfIteratorHelper$d(atomsResult),
17103
+ var _iterator3 = _createForOfIteratorHelper$e(atomsResult),
17102
17104
  _step3;
17103
17105
  try {
17104
17106
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -17162,7 +17164,7 @@ var SGroupTool = function () {
17162
17164
  }
17163
17165
  }
17164
17166
  if (atomResult.length > 0) {
17165
- var _iterator4 = _createForOfIteratorHelper$d(atomResult),
17167
+ var _iterator4 = _createForOfIteratorHelper$e(atomResult),
17166
17168
  _step4;
17167
17169
  try {
17168
17170
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -17184,7 +17186,7 @@ var SGroupTool = function () {
17184
17186
  return;
17185
17187
  }
17186
17188
  } else if (bondResult.length > 0) {
17187
- var _iterator5 = _createForOfIteratorHelper$d(bondResult),
17189
+ var _iterator5 = _createForOfIteratorHelper$e(bondResult),
17188
17190
  _step5;
17189
17191
  try {
17190
17192
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -17246,7 +17248,7 @@ var SGroupTool = function () {
17246
17248
  var result = [];
17247
17249
  if (ci && ci.map === 'functionalGroups' && functionalGroups.size && FunctionalGroup.isContractedFunctionalGroup(ci.id, functionalGroups)) return;
17248
17250
  if (selected && functionalGroups.size && selected.atoms) {
17249
- var _iterator6 = _createForOfIteratorHelper$d(selected.atoms),
17251
+ var _iterator6 = _createForOfIteratorHelper$e(selected.atoms),
17250
17252
  _step6;
17251
17253
  try {
17252
17254
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -17258,7 +17260,7 @@ var SGroupTool = function () {
17258
17260
  }
17259
17261
  var atomFromStruct = atomId !== null && ((_struct$atoms$get3 = struct.atoms.get(atomId)) === null || _struct$atoms$get3 === void 0 ? void 0 : _struct$atoms$get3.a);
17260
17262
  if (atomFromStruct) {
17261
- var _iterator7 = _createForOfIteratorHelper$d(atomFromStruct.sgs.values()),
17263
+ var _iterator7 = _createForOfIteratorHelper$e(atomFromStruct.sgs.values()),
17262
17264
  _step7;
17263
17265
  try {
17264
17266
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
@@ -17288,7 +17290,7 @@ var SGroupTool = function () {
17288
17290
  }
17289
17291
  }
17290
17292
  if (selected && functionalGroups.size && selected.bonds) {
17291
- var _iterator8 = _createForOfIteratorHelper$d(selected.bonds),
17293
+ var _iterator8 = _createForOfIteratorHelper$e(selected.bonds),
17292
17294
  _step8;
17293
17295
  try {
17294
17296
  for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
@@ -17336,7 +17338,7 @@ var SGroupTool = function () {
17336
17338
  bondsResult = null;
17337
17339
  }
17338
17340
  if (atomsResult && atomsResult.length > 0) {
17339
- var _iterator9 = _createForOfIteratorHelper$d(atomsResult),
17341
+ var _iterator9 = _createForOfIteratorHelper$e(atomsResult),
17340
17342
  _step9;
17341
17343
  try {
17342
17344
  for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
@@ -17353,7 +17355,7 @@ var SGroupTool = function () {
17353
17355
  }
17354
17356
  }
17355
17357
  if (bondsResult && bondsResult.length > 0) {
17356
- var _iterator10 = _createForOfIteratorHelper$d(bondsResult),
17358
+ var _iterator10 = _createForOfIteratorHelper$e(bondsResult),
17357
17359
  _step10;
17358
17360
  try {
17359
17361
  for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
@@ -17578,9 +17580,9 @@ function countOfSelectedComponents(restruct, atoms) {
17578
17580
  }, 0);
17579
17581
  }
17580
17582
 
17581
- 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; } } }; }
17582
- 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); }
17583
- 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; }
17583
+ 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; } } }; }
17584
+ 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); }
17585
+ 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; }
17584
17586
  function dropAndMerge(editor, mergeItems, action, copyAction) {
17585
17587
  var _editor$selection$bon, _editor$selection, _dropItemAction;
17586
17588
  var restruct = editor.render.ctab;
@@ -17603,7 +17605,7 @@ function dropAndMerge(editor, mergeItems, action, copyAction) {
17603
17605
  dropItemAction = dropItemAction.mergeWith(action);
17604
17606
  }
17605
17607
  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 : [];
17606
- var _iterator = _createForOfIteratorHelper$c(bonds),
17608
+ var _iterator = _createForOfIteratorHelper$d(bonds),
17607
17609
  _step;
17608
17610
  try {
17609
17611
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -18082,9 +18084,9 @@ var createCopyOfSelected = function createCopyOfSelected(editor, point) {
18082
18084
  };
18083
18085
  };
18084
18086
 
18085
- 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; } } }; }
18086
- 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); }
18087
- 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; }
18087
+ 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; } } }; }
18088
+ 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); }
18089
+ 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; }
18088
18090
  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; }
18089
18091
  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$1(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; }
18090
18092
  function _classPrivateFieldInitSpec$1(obj, privateMap, value) { _checkPrivateRedeclaration$1(obj, privateMap); privateMap.set(obj, value); }
@@ -18357,7 +18359,7 @@ var SelectTool = function () {
18357
18359
  bondFromStruct, sgroups, functionalGroups)) bondResult.push(bondId);
18358
18360
  }
18359
18361
  if (atomResult.length > 0) {
18360
- var _iterator = _createForOfIteratorHelper$b(atomResult),
18362
+ var _iterator = _createForOfIteratorHelper$c(atomResult),
18361
18363
  _step;
18362
18364
  try {
18363
18365
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -18377,7 +18379,7 @@ var SelectTool = function () {
18377
18379
  });
18378
18380
  return;
18379
18381
  } else if (bondResult.length > 0) {
18380
- var _iterator2 = _createForOfIteratorHelper$b(bondResult),
18382
+ var _iterator2 = _createForOfIteratorHelper$c(bondResult),
18381
18383
  _step2;
18382
18384
  try {
18383
18385
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -18755,9 +18757,9 @@ var TemplatePreview = function () {
18755
18757
  return TemplatePreview;
18756
18758
  }();
18757
18759
 
18758
- 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; } } }; }
18759
- 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); }
18760
- 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; }
18760
+ 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; } } }; }
18761
+ 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); }
18762
+ 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; }
18761
18763
  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; }
18762
18764
  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$1(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; }
18763
18765
  function getBondFlipSign(struct, bond) {
@@ -19171,7 +19173,7 @@ var TemplateTool = function () {
19171
19173
  return true;
19172
19174
  }
19173
19175
  }
19174
- var _iterator = _createForOfIteratorHelper$a(restruct.molecule.bonds.keys()),
19176
+ var _iterator = _createForOfIteratorHelper$b(restruct.molecule.bonds.keys()),
19175
19177
  _step;
19176
19178
  try {
19177
19179
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -19183,7 +19185,7 @@ var TemplateTool = function () {
19183
19185
  } finally {
19184
19186
  _iterator.f();
19185
19187
  }
19186
- var _iterator2 = _createForOfIteratorHelper$a(restruct.molecule.atoms.keys()),
19188
+ var _iterator2 = _createForOfIteratorHelper$b(restruct.molecule.atoms.keys()),
19187
19189
  _step2;
19188
19190
  try {
19189
19191
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -20094,9 +20096,9 @@ var LoadingCircles = function LoadingCircles() {
20094
20096
 
20095
20097
  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; }
20096
20098
  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$1(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; }
20097
- 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; } } }; }
20098
- 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); }
20099
- 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; }
20099
+ 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; } } }; }
20100
+ 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); }
20101
+ 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; }
20100
20102
  var SELECTION_DISTANCE_COEFFICIENT = 0.4;
20101
20103
  var SELECTION_WITHIN_TEXT = 0;
20102
20104
  var findMaps = _defineProperty$1(_defineProperty$1({
@@ -20442,7 +20444,7 @@ function findClosestSGroup(restruct, pos) {
20442
20444
  function findClosestFG(restruct, pos, skip) {
20443
20445
  var sGroups = restruct.sgroups;
20444
20446
  var skipId = skip && skip.map === 'functionalGroups' ? skip.id : null;
20445
- var _iterator = _createForOfIteratorHelper$9(sGroups.entries()),
20447
+ var _iterator = _createForOfIteratorHelper$a(sGroups.entries()),
20446
20448
  _step;
20447
20449
  try {
20448
20450
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20658,9 +20660,9 @@ function _editRGroupAttachmentPoint() {
20658
20660
  return _editRGroupAttachmentPoint.apply(this, arguments);
20659
20661
  }
20660
20662
 
20661
- 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; } } }; }
20662
- 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); }
20663
- 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; }
20663
+ 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; } } }; }
20664
+ 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); }
20665
+ 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; }
20664
20666
  var APointTool = function () {
20665
20667
  function APointTool(editor) {
20666
20668
  _classCallCheck$2(this, APointTool);
@@ -20704,7 +20706,7 @@ var APointTool = function () {
20704
20706
  }
20705
20707
  }
20706
20708
  if (atomResult.length > 0) {
20707
- var _iterator = _createForOfIteratorHelper$8(atomResult),
20709
+ var _iterator = _createForOfIteratorHelper$9(atomResult),
20708
20710
  _step;
20709
20711
  try {
20710
20712
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20741,9 +20743,9 @@ var APointTool = function () {
20741
20743
  return APointTool;
20742
20744
  }();
20743
20745
 
20744
- 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; } } }; }
20745
- 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); }
20746
- 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; }
20746
+ 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; } } }; }
20747
+ 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); }
20748
+ 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; }
20747
20749
  var AttachTool = function () {
20748
20750
  function AttachTool(editor, attachPoints) {
20749
20751
  _classCallCheck$2(this, AttachTool);
@@ -20796,7 +20798,7 @@ var AttachTool = function () {
20796
20798
  }
20797
20799
  }
20798
20800
  if (atomResult.length > 0) {
20799
- var _iterator = _createForOfIteratorHelper$7(atomResult),
20801
+ var _iterator = _createForOfIteratorHelper$8(atomResult),
20800
20802
  _step;
20801
20803
  try {
20802
20804
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20816,7 +20818,7 @@ var AttachTool = function () {
20816
20818
  });
20817
20819
  return;
20818
20820
  } else if (bondResult.length > 0) {
20819
- var _iterator2 = _createForOfIteratorHelper$7(bondResult),
20821
+ var _iterator2 = _createForOfIteratorHelper$8(bondResult),
20820
20822
  _step2;
20821
20823
  try {
20822
20824
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -20852,9 +20854,9 @@ var AttachTool = function () {
20852
20854
  return AttachTool;
20853
20855
  }();
20854
20856
 
20855
- 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; } } }; }
20856
- 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); }
20857
- 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; }
20857
+ 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; } } }; }
20858
+ 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); }
20859
+ 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; }
20858
20860
  var BondTool = function () {
20859
20861
  function BondTool(editor, bondProps) {
20860
20862
  var _editor$selection;
@@ -20894,7 +20896,7 @@ var BondTool = function () {
20894
20896
  if (bondId !== null) bondResult.push(bondId);
20895
20897
  }
20896
20898
  if (atomResult.length > 0) {
20897
- var _iterator = _createForOfIteratorHelper$6(atomResult),
20899
+ var _iterator = _createForOfIteratorHelper$7(atomResult),
20898
20900
  _step;
20899
20901
  try {
20900
20902
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20916,7 +20918,7 @@ var BondTool = function () {
20916
20918
  return;
20917
20919
  }
20918
20920
  } else if (bondResult.length > 0) {
20919
- var _iterator2 = _createForOfIteratorHelper$6(bondResult),
20921
+ var _iterator2 = _createForOfIteratorHelper$7(bondResult),
20920
20922
  _step2;
20921
20923
  try {
20922
20924
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -21031,7 +21033,7 @@ var BondTool = function () {
21031
21033
  }
21032
21034
  }
21033
21035
  if (atomResult.length > 0) {
21034
- var _iterator3 = _createForOfIteratorHelper$6(atomResult),
21036
+ var _iterator3 = _createForOfIteratorHelper$7(atomResult),
21035
21037
  _step3;
21036
21038
  try {
21037
21039
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -21082,7 +21084,7 @@ var BondTool = function () {
21082
21084
  delete dragCtx.action;
21083
21085
  }
21084
21086
  this.restoreBondWhenHoveringOnCanvas(event);
21085
- this.editor.update(dragCtx.action, true);
21087
+ if (dragCtx.action) this.editor.update(dragCtx.action, true);
21086
21088
  return true;
21087
21089
  }
21088
21090
  }
@@ -21154,7 +21156,7 @@ var BondTool = function () {
21154
21156
  }, {
21155
21157
  key: "getExistingBond",
21156
21158
  value: function getExistingBond(struct, begin, end) {
21157
- var _iterator4 = _createForOfIteratorHelper$6(struct.bonds.entries()),
21159
+ var _iterator4 = _createForOfIteratorHelper$7(struct.bonds.entries()),
21158
21160
  _step4;
21159
21161
  try {
21160
21162
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -21177,9 +21179,9 @@ var BondTool = function () {
21177
21179
  return BondTool;
21178
21180
  }();
21179
21181
 
21180
- 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; } } }; }
21181
- 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); }
21182
- 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; }
21182
+ 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; } } }; }
21183
+ 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); }
21184
+ 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; }
21183
21185
  var ChainTool = function () {
21184
21186
  function ChainTool(editor) {
21185
21187
  _classCallCheck$2(this, ChainTool);
@@ -21214,7 +21216,7 @@ var ChainTool = function () {
21214
21216
  }
21215
21217
  }
21216
21218
  if (atomResult.length > 0) {
21217
- var _iterator = _createForOfIteratorHelper$5(atomResult),
21219
+ var _iterator = _createForOfIteratorHelper$6(atomResult),
21218
21220
  _step;
21219
21221
  try {
21220
21222
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -21236,7 +21238,7 @@ var ChainTool = function () {
21236
21238
  return;
21237
21239
  }
21238
21240
  } else if (bondResult.length > 0) {
21239
- var _iterator2 = _createForOfIteratorHelper$5(bondResult),
21241
+ var _iterator2 = _createForOfIteratorHelper$6(bondResult),
21240
21242
  _step2;
21241
21243
  try {
21242
21244
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -21333,6 +21335,8 @@ var ChainTool = function () {
21333
21335
  var atom;
21334
21336
  var atomResult = [];
21335
21337
  var result = [];
21338
+ removeInfoLabelFromAtoms(struct);
21339
+ this.editor.render.update(true, null);
21336
21340
  if (this.dragCtx && this.dragCtx.mergeItems && functionalGroups.size) {
21337
21341
  atom = this.dragCtx.mergeItems.atoms.values().next().value;
21338
21342
  }
@@ -21343,7 +21347,7 @@ var ChainTool = function () {
21343
21347
  }
21344
21348
  }
21345
21349
  if (atomResult.length > 0) {
21346
- var _iterator3 = _createForOfIteratorHelper$5(atomResult),
21350
+ var _iterator3 = _createForOfIteratorHelper$6(atomResult),
21347
21351
  _step3;
21348
21352
  try {
21349
21353
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -21405,9 +21409,9 @@ var ChainTool = function () {
21405
21409
  return ChainTool;
21406
21410
  }();
21407
21411
 
21408
- 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; } } }; }
21409
- 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); }
21410
- 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; }
21412
+ 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; } } }; }
21413
+ 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); }
21414
+ 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; }
21411
21415
  var ChargeTool = function () {
21412
21416
  function ChargeTool(editor, charge) {
21413
21417
  _classCallCheck$2(this, ChargeTool);
@@ -21452,7 +21456,7 @@ var ChargeTool = function () {
21452
21456
  }
21453
21457
  }
21454
21458
  if (atomResult.length > 0) {
21455
- var _iterator = _createForOfIteratorHelper$4(atomResult),
21459
+ var _iterator = _createForOfIteratorHelper$5(atomResult),
21456
21460
  _step;
21457
21461
  try {
21458
21462
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -21539,9 +21543,9 @@ var EnhancedStereoTool = function () {
21539
21543
  return EnhancedStereoTool;
21540
21544
  }();
21541
21545
 
21542
- 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; } } }; }
21543
- 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); }
21544
- 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; }
21546
+ 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; } } }; }
21547
+ 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); }
21548
+ 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; }
21545
21549
  var EraserTool = function () {
21546
21550
  function EraserTool(editor, mode) {
21547
21551
  _classCallCheck$2(this, EraserTool);
@@ -21589,7 +21593,7 @@ var EraserTool = function () {
21589
21593
  var bondsResult = [];
21590
21594
  var preResult = [];
21591
21595
  if (selected && functionalGroups.size && selected.atoms) {
21592
- var _iterator = _createForOfIteratorHelper$3(selected.atoms),
21596
+ var _iterator = _createForOfIteratorHelper$4(selected.atoms),
21593
21597
  _step;
21594
21598
  try {
21595
21599
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -21598,7 +21602,7 @@ var EraserTool = function () {
21598
21602
  var atomId = FunctionalGroup.atomsInFunctionalGroup(functionalGroups, atom);
21599
21603
  var atomFromStruct = atomId !== null && ((_struct$atoms$get = struct.atoms.get(atomId)) === null || _struct$atoms$get === void 0 ? void 0 : _struct$atoms$get.a);
21600
21604
  if (atomFromStruct) {
21601
- var _iterator2 = _createForOfIteratorHelper$3(atomFromStruct.sgs.values()),
21605
+ var _iterator2 = _createForOfIteratorHelper$4(atomFromStruct.sgs.values()),
21602
21606
  _step2;
21603
21607
  try {
21604
21608
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -21628,7 +21632,7 @@ var EraserTool = function () {
21628
21632
  }
21629
21633
  }
21630
21634
  if (selected && functionalGroups.size && selected.bonds) {
21631
- var _iterator3 = _createForOfIteratorHelper$3(selected.bonds),
21635
+ var _iterator3 = _createForOfIteratorHelper$4(selected.bonds),
21632
21636
  _step3;
21633
21637
  try {
21634
21638
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -21647,7 +21651,7 @@ var EraserTool = function () {
21647
21651
  }
21648
21652
  }
21649
21653
  if (selected && functionalGroups.size && selected.rgroupAttachmentPoints) {
21650
- var _iterator4 = _createForOfIteratorHelper$3(selected.rgroupAttachmentPoints),
21654
+ var _iterator4 = _createForOfIteratorHelper$4(selected.rgroupAttachmentPoints),
21651
21655
  _step4;
21652
21656
  try {
21653
21657
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -21664,7 +21668,7 @@ var EraserTool = function () {
21664
21668
  }
21665
21669
  }
21666
21670
  if (atomsResult.length > 0) {
21667
- var _iterator5 = _createForOfIteratorHelper$3(atomsResult),
21671
+ var _iterator5 = _createForOfIteratorHelper$4(atomsResult),
21668
21672
  _step5;
21669
21673
  try {
21670
21674
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -21679,7 +21683,7 @@ var EraserTool = function () {
21679
21683
  }
21680
21684
  }
21681
21685
  if (bondsResult.length > 0) {
21682
- var _iterator6 = _createForOfIteratorHelper$3(bondsResult),
21686
+ var _iterator6 = _createForOfIteratorHelper$4(bondsResult),
21683
21687
  _step6;
21684
21688
  try {
21685
21689
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -21755,7 +21759,7 @@ var EraserTool = function () {
21755
21759
  }
21756
21760
  }
21757
21761
  if (atomResult.length) {
21758
- var _iterator7 = _createForOfIteratorHelper$3(atomResult),
21762
+ var _iterator7 = _createForOfIteratorHelper$4(atomResult),
21759
21763
  _step7;
21760
21764
  try {
21761
21765
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
@@ -21771,7 +21775,7 @@ var EraserTool = function () {
21771
21775
  _iterator7.f();
21772
21776
  }
21773
21777
  } else if (bondResult.length) {
21774
- var _iterator8 = _createForOfIteratorHelper$3(bondResult),
21778
+ var _iterator8 = _createForOfIteratorHelper$4(bondResult),
21775
21779
  _step8;
21776
21780
  try {
21777
21781
  for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
@@ -22143,9 +22147,9 @@ function prepareTemplateFromSingleGroup(molecule) {
22143
22147
  return template;
22144
22148
  }
22145
22149
 
22146
- 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; } } }; }
22147
- 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); }
22148
- 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; }
22150
+ 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; } } }; }
22151
+ 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); }
22152
+ 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; }
22149
22153
  var RGroupAtomTool = function () {
22150
22154
  function RGroupAtomTool(editor) {
22151
22155
  _classCallCheck$2(this, RGroupAtomTool);
@@ -22187,7 +22191,7 @@ var RGroupAtomTool = function () {
22187
22191
  }
22188
22192
  }
22189
22193
  if (atomResult.length > 0) {
22190
- var _iterator = _createForOfIteratorHelper$2(atomResult),
22194
+ var _iterator = _createForOfIteratorHelper$3(atomResult),
22191
22195
  _step;
22192
22196
  try {
22193
22197
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -22255,9 +22259,9 @@ function propsDialog$1(editor, id, pos) {
22255
22259
  });
22256
22260
  }
22257
22261
 
22258
- 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; } } }; }
22259
- 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); }
22260
- 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; }
22262
+ 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; } } }; }
22263
+ 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); }
22264
+ 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; }
22261
22265
  var RGroupFragmentTool = function () {
22262
22266
  function RGroupFragmentTool(editor) {
22263
22267
  _classCallCheck$2(this, RGroupFragmentTool);
@@ -22294,7 +22298,7 @@ var RGroupFragmentTool = function () {
22294
22298
  }
22295
22299
  }
22296
22300
  if (atomResult.length > 0) {
22297
- var _iterator = _createForOfIteratorHelper$1(atomResult),
22301
+ var _iterator = _createForOfIteratorHelper$2(atomResult),
22298
22302
  _step;
22299
22303
  try {
22300
22304
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -22316,7 +22320,7 @@ var RGroupFragmentTool = function () {
22316
22320
  return;
22317
22321
  }
22318
22322
  } else if (bondResult.length > 0) {
22319
- var _iterator2 = _createForOfIteratorHelper$1(bondResult),
22323
+ var _iterator2 = _createForOfIteratorHelper$2(bondResult),
22320
22324
  _step2;
22321
22325
  try {
22322
22326
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -24551,16 +24555,18 @@ var Editor$3 = function () {
24551
24555
  if (arguments.length === 0) {
24552
24556
  return this.render.ctab.molecule;
24553
24557
  }
24558
+ KetcherLogger.log('Editor.struct(), start', value, needToCenterStruct);
24554
24559
  this.selection(null);
24555
24560
  var struct = value || new Struct();
24556
24561
  var molecule = this.renderAndRecoordinateStruct(struct, needToCenterStruct);
24557
24562
  this.hoverIcon.create();
24563
+ KetcherLogger.log('Editor.struct(), end');
24558
24564
  return molecule;
24559
24565
  }
24560
24566
  }, {
24561
24567
  key: "structToAddFragment",
24562
24568
  value: function structToAddFragment(value) {
24563
- var superStruct = value.mergeInto(this.render.ctab.molecule);
24569
+ var superStruct = value.mergeInto(this.render.ctab.molecule.clone());
24564
24570
  return this.renderAndRecoordinateStruct(superStruct);
24565
24571
  }
24566
24572
  }, {
@@ -24587,7 +24593,8 @@ var Editor$3 = function () {
24587
24593
  microModeScale: SCALE
24588
24594
  }, value));
24589
24595
  this.updateToolAfterOptionsChange(wasViewOnlyEnabled);
24590
- this.struct(struct);
24596
+ this.render.setMolecule(struct);
24597
+ this.struct(struct.clone());
24591
24598
  this.render.setZoom(zoom);
24592
24599
  this.render.update();
24593
24600
  return this.render.options;
@@ -24749,6 +24756,7 @@ var Editor$3 = function () {
24749
24756
  }, {
24750
24757
  key: "undo",
24751
24758
  value: function undo() {
24759
+ KetcherLogger.log('Editor.undo(), start, ', this.historyPtr, this.historyStack);
24752
24760
  var ketcherChangeEvent = ketcherProvider.getKetcher().changeEvent;
24753
24761
  if (this.historyPtr === 0) {
24754
24762
  throw new Error('Undo stack is empty');
@@ -24769,10 +24777,12 @@ var Editor$3 = function () {
24769
24777
  ketcherChangeEvent.dispatch(action);
24770
24778
  }
24771
24779
  this.render.update();
24780
+ KetcherLogger.log('Editor.undo(), end');
24772
24781
  }
24773
24782
  }, {
24774
24783
  key: "redo",
24775
24784
  value: function redo() {
24785
+ KetcherLogger.log('Editor.redo(), start, ', this.historyPtr, this.historyStack);
24776
24786
  var ketcherChangeEvent = ketcherProvider.getKetcher().changeEvent;
24777
24787
  if (this.historyPtr === this.historyStack.length) {
24778
24788
  throw new Error('Redo stack is empty');
@@ -24781,9 +24791,14 @@ var Editor$3 = function () {
24781
24791
  this._tool.cancel();
24782
24792
  }
24783
24793
  this.selection(null);
24784
- var action = this.historyStack[this.historyPtr].perform(this.render.ctab);
24785
- this.historyStack[this.historyPtr] = action;
24786
- this.historyPtr++;
24794
+ var stack = this.historyStack[this.historyPtr];
24795
+ var action;
24796
+ try {
24797
+ action = stack.perform(this.render.ctab);
24798
+ } finally {
24799
+ this.historyStack[this.historyPtr] = action;
24800
+ this.historyPtr++;
24801
+ }
24787
24802
  if (this._tool instanceof toolsMap.paste) {
24788
24803
  this.event.change.dispatch();
24789
24804
  ketcherChangeEvent.dispatch();
@@ -24792,6 +24807,7 @@ var Editor$3 = function () {
24792
24807
  ketcherChangeEvent.dispatch(action);
24793
24808
  }
24794
24809
  this.render.update();
24810
+ KetcherLogger.log('Editor.redo(), end');
24795
24811
  }
24796
24812
  }, {
24797
24813
  key: "subscribe",
@@ -25463,6 +25479,9 @@ var HighlightMenu = function HighlightMenu(_ref) {
25463
25479
  });
25464
25480
  };
25465
25481
 
25482
+ 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; } } }; }
25483
+ 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); }
25484
+ 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; }
25466
25485
  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; }
25467
25486
  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$1(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; }
25468
25487
  var _atom$properties = atom.properties,
@@ -25601,6 +25620,26 @@ var AtomMenuItems = function AtomMenuItems(props) {
25601
25620
  color: color === '' ? 'transparent' : color
25602
25621
  });
25603
25622
  };
25623
+ var isAddAttachmentPointDisabled = !onlyOneAtomSelected || function () {
25624
+ if (!isNumber(selectedAtomId)) return true;
25625
+ var connectedComponents = struct.findConnectedComponent(selectedAtomId);
25626
+ var _iterator = _createForOfIteratorHelper$1(connectedComponents),
25627
+ _step;
25628
+ try {
25629
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
25630
+ var connectedAtomId = _step.value;
25631
+ var connectedGroup = struct.getGroupFromAtomId(connectedAtomId);
25632
+ if (connectedGroup !== null && connectedGroup !== void 0 && connectedGroup.isMonomer) {
25633
+ return true;
25634
+ }
25635
+ }
25636
+ } catch (err) {
25637
+ _iterator.e(err);
25638
+ } finally {
25639
+ _iterator.f();
25640
+ }
25641
+ return false;
25642
+ }();
25604
25643
  if (isAtomSuperatomLeavingGroup && onlyOneAtomSelected) {
25605
25644
  return jsxs(Fragment, {
25606
25645
  children: [jsx(HighlightMenu, {
@@ -25642,6 +25681,7 @@ var AtomMenuItems = function AtomMenuItems(props) {
25642
25681
  })
25643
25682
  })), onlyOneAtomSelected && !atomInSgroupWithLabel && !maxAttachmentPointsAmount && !isAtomSuperatomLeavingGroup && jsx(Item, _objectSpread$P(_objectSpread$P({}, props), {}, {
25644
25683
  onClick: handleAddAttachmentPoint,
25684
+ disabled: isAddAttachmentPointDisabled,
25645
25685
  children: "Add attachment point"
25646
25686
  })), jsx(HighlightMenu, {
25647
25687
  onHighlight: highlightAtomWithColor
@@ -34967,8 +35007,8 @@ var KetcherBuilder = function () {
34967
35007
  cleanup = initApp(element, appRoot, staticResourcesUrl, {
34968
35008
  buttons: buttons || {},
34969
35009
  errorHandler: errorHandler || null,
34970
- version: "3.0.0-rc.6" ,
34971
- buildDate: "2025-01-28T20:28:25" ,
35010
+ version: "3.1.0-rc.1" ,
35011
+ buildDate: "2025-02-04T21:35:49" ,
34972
35012
  buildNumber: '',
34973
35013
  customButtons: customButtons || []
34974
35014
  }, structService, resolve, togglerComponent);
@@ -35260,7 +35300,7 @@ var ModeControl = function ModeControl(_ref3) {
35260
35300
  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; }
35261
35301
  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$1(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; }
35262
35302
  var MacromoleculesEditor = lazy(function () {
35263
- return import('./index.modern-b462578c.js');
35303
+ return import('./index.modern-2ad67aa5.js');
35264
35304
  });
35265
35305
  var Editor = function Editor(props) {
35266
35306
  var _useState = useState(false),
@@ -35289,9 +35329,15 @@ var Editor = function Editor(props) {
35289
35329
  children: jsx(MacromoleculesEditor, {
35290
35330
  togglerComponent: togglerComponent
35291
35331
  })
35292
- }) : jsx(MicromoleculesEditor, _objectSpread(_objectSpread({}, props), {}, {
35293
- togglerComponent: togglerComponent
35294
- }))
35332
+ }) : jsx(Suspense, {
35333
+ fallback: jsx("div", {
35334
+ className: styles.switchingLoader,
35335
+ children: jsx(LoadingCircles, {})
35336
+ }),
35337
+ children: jsx(MicromoleculesEditor, _objectSpread(_objectSpread({}, props), {}, {
35338
+ togglerComponent: togglerComponent
35339
+ }))
35340
+ })
35295
35341
  });
35296
35342
  };
35297
35343