ketcher-react 3.0.3 → 3.1.0-rc.10

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.3\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.10\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;) {
@@ -20087,9 +20089,9 @@ var LoadingCircles = function LoadingCircles() {
20087
20089
 
20088
20090
  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; }
20089
20091
  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; }
20090
- 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; } } }; }
20091
- 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); }
20092
- 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; }
20092
+ 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; } } }; }
20093
+ 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); }
20094
+ 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; }
20093
20095
  var SELECTION_DISTANCE_COEFFICIENT = 0.4;
20094
20096
  var SELECTION_WITHIN_TEXT = 0;
20095
20097
  var findMaps = _defineProperty$1(_defineProperty$1({
@@ -20435,7 +20437,7 @@ function findClosestSGroup(restruct, pos) {
20435
20437
  function findClosestFG(restruct, pos, skip) {
20436
20438
  var sGroups = restruct.sgroups;
20437
20439
  var skipId = skip && skip.map === 'functionalGroups' ? skip.id : null;
20438
- var _iterator = _createForOfIteratorHelper$9(sGroups.entries()),
20440
+ var _iterator = _createForOfIteratorHelper$a(sGroups.entries()),
20439
20441
  _step;
20440
20442
  try {
20441
20443
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20651,9 +20653,9 @@ function _editRGroupAttachmentPoint() {
20651
20653
  return _editRGroupAttachmentPoint.apply(this, arguments);
20652
20654
  }
20653
20655
 
20654
- 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; } } }; }
20655
- 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); }
20656
- 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; }
20656
+ 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; } } }; }
20657
+ 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); }
20658
+ 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; }
20657
20659
  var APointTool = function () {
20658
20660
  function APointTool(editor) {
20659
20661
  _classCallCheck$2(this, APointTool);
@@ -20697,7 +20699,7 @@ var APointTool = function () {
20697
20699
  }
20698
20700
  }
20699
20701
  if (atomResult.length > 0) {
20700
- var _iterator = _createForOfIteratorHelper$8(atomResult),
20702
+ var _iterator = _createForOfIteratorHelper$9(atomResult),
20701
20703
  _step;
20702
20704
  try {
20703
20705
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20734,9 +20736,9 @@ var APointTool = function () {
20734
20736
  return APointTool;
20735
20737
  }();
20736
20738
 
20737
- 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; } } }; }
20738
- 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); }
20739
- 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; }
20739
+ 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; } } }; }
20740
+ 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); }
20741
+ 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; }
20740
20742
  var AttachTool = function () {
20741
20743
  function AttachTool(editor, attachPoints) {
20742
20744
  _classCallCheck$2(this, AttachTool);
@@ -20789,7 +20791,7 @@ var AttachTool = function () {
20789
20791
  }
20790
20792
  }
20791
20793
  if (atomResult.length > 0) {
20792
- var _iterator = _createForOfIteratorHelper$7(atomResult),
20794
+ var _iterator = _createForOfIteratorHelper$8(atomResult),
20793
20795
  _step;
20794
20796
  try {
20795
20797
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20809,7 +20811,7 @@ var AttachTool = function () {
20809
20811
  });
20810
20812
  return;
20811
20813
  } else if (bondResult.length > 0) {
20812
- var _iterator2 = _createForOfIteratorHelper$7(bondResult),
20814
+ var _iterator2 = _createForOfIteratorHelper$8(bondResult),
20813
20815
  _step2;
20814
20816
  try {
20815
20817
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -20845,9 +20847,9 @@ var AttachTool = function () {
20845
20847
  return AttachTool;
20846
20848
  }();
20847
20849
 
20848
- 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; } } }; }
20849
- 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); }
20850
- 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; }
20850
+ 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; } } }; }
20851
+ 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); }
20852
+ 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; }
20851
20853
  var BondTool = function () {
20852
20854
  function BondTool(editor, bondProps) {
20853
20855
  var _editor$selection;
@@ -20887,7 +20889,7 @@ var BondTool = function () {
20887
20889
  if (bondId !== null) bondResult.push(bondId);
20888
20890
  }
20889
20891
  if (atomResult.length > 0) {
20890
- var _iterator = _createForOfIteratorHelper$6(atomResult),
20892
+ var _iterator = _createForOfIteratorHelper$7(atomResult),
20891
20893
  _step;
20892
20894
  try {
20893
20895
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20909,7 +20911,7 @@ var BondTool = function () {
20909
20911
  return;
20910
20912
  }
20911
20913
  } else if (bondResult.length > 0) {
20912
- var _iterator2 = _createForOfIteratorHelper$6(bondResult),
20914
+ var _iterator2 = _createForOfIteratorHelper$7(bondResult),
20913
20915
  _step2;
20914
20916
  try {
20915
20917
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -21024,7 +21026,7 @@ var BondTool = function () {
21024
21026
  }
21025
21027
  }
21026
21028
  if (atomResult.length > 0) {
21027
- var _iterator3 = _createForOfIteratorHelper$6(atomResult),
21029
+ var _iterator3 = _createForOfIteratorHelper$7(atomResult),
21028
21030
  _step3;
21029
21031
  try {
21030
21032
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -21075,7 +21077,7 @@ var BondTool = function () {
21075
21077
  delete dragCtx.action;
21076
21078
  }
21077
21079
  this.restoreBondWhenHoveringOnCanvas(event);
21078
- this.editor.update(dragCtx.action, true);
21080
+ if (dragCtx.action) this.editor.update(dragCtx.action, true);
21079
21081
  return true;
21080
21082
  }
21081
21083
  }
@@ -21147,7 +21149,7 @@ var BondTool = function () {
21147
21149
  }, {
21148
21150
  key: "getExistingBond",
21149
21151
  value: function getExistingBond(struct, begin, end) {
21150
- var _iterator4 = _createForOfIteratorHelper$6(struct.bonds.entries()),
21152
+ var _iterator4 = _createForOfIteratorHelper$7(struct.bonds.entries()),
21151
21153
  _step4;
21152
21154
  try {
21153
21155
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -21170,9 +21172,9 @@ var BondTool = function () {
21170
21172
  return BondTool;
21171
21173
  }();
21172
21174
 
21173
- 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; } } }; }
21174
- 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); }
21175
- 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; }
21175
+ 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; } } }; }
21176
+ 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); }
21177
+ 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; }
21176
21178
  var ChainTool = function () {
21177
21179
  function ChainTool(editor) {
21178
21180
  _classCallCheck$2(this, ChainTool);
@@ -21207,7 +21209,7 @@ var ChainTool = function () {
21207
21209
  }
21208
21210
  }
21209
21211
  if (atomResult.length > 0) {
21210
- var _iterator = _createForOfIteratorHelper$5(atomResult),
21212
+ var _iterator = _createForOfIteratorHelper$6(atomResult),
21211
21213
  _step;
21212
21214
  try {
21213
21215
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -21229,7 +21231,7 @@ var ChainTool = function () {
21229
21231
  return;
21230
21232
  }
21231
21233
  } else if (bondResult.length > 0) {
21232
- var _iterator2 = _createForOfIteratorHelper$5(bondResult),
21234
+ var _iterator2 = _createForOfIteratorHelper$6(bondResult),
21233
21235
  _step2;
21234
21236
  try {
21235
21237
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -21326,6 +21328,8 @@ var ChainTool = function () {
21326
21328
  var atom;
21327
21329
  var atomResult = [];
21328
21330
  var result = [];
21331
+ removeInfoLabelFromAtoms(struct);
21332
+ this.editor.render.update(true, null);
21329
21333
  if (this.dragCtx && this.dragCtx.mergeItems && functionalGroups.size) {
21330
21334
  atom = this.dragCtx.mergeItems.atoms.values().next().value;
21331
21335
  }
@@ -21336,7 +21340,7 @@ var ChainTool = function () {
21336
21340
  }
21337
21341
  }
21338
21342
  if (atomResult.length > 0) {
21339
- var _iterator3 = _createForOfIteratorHelper$5(atomResult),
21343
+ var _iterator3 = _createForOfIteratorHelper$6(atomResult),
21340
21344
  _step3;
21341
21345
  try {
21342
21346
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -21398,9 +21402,9 @@ var ChainTool = function () {
21398
21402
  return ChainTool;
21399
21403
  }();
21400
21404
 
21401
- 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; } } }; }
21402
- 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); }
21403
- 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; }
21405
+ 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; } } }; }
21406
+ 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); }
21407
+ 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; }
21404
21408
  var ChargeTool = function () {
21405
21409
  function ChargeTool(editor, charge) {
21406
21410
  _classCallCheck$2(this, ChargeTool);
@@ -21445,7 +21449,7 @@ var ChargeTool = function () {
21445
21449
  }
21446
21450
  }
21447
21451
  if (atomResult.length > 0) {
21448
- var _iterator = _createForOfIteratorHelper$4(atomResult),
21452
+ var _iterator = _createForOfIteratorHelper$5(atomResult),
21449
21453
  _step;
21450
21454
  try {
21451
21455
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -21532,9 +21536,9 @@ var EnhancedStereoTool = function () {
21532
21536
  return EnhancedStereoTool;
21533
21537
  }();
21534
21538
 
21535
- 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; } } }; }
21536
- 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); }
21537
- 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; }
21539
+ 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; } } }; }
21540
+ 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); }
21541
+ 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; }
21538
21542
  var EraserTool = function () {
21539
21543
  function EraserTool(editor, mode) {
21540
21544
  _classCallCheck$2(this, EraserTool);
@@ -21582,7 +21586,7 @@ var EraserTool = function () {
21582
21586
  var bondsResult = [];
21583
21587
  var preResult = [];
21584
21588
  if (selected && functionalGroups.size && selected.atoms) {
21585
- var _iterator = _createForOfIteratorHelper$3(selected.atoms),
21589
+ var _iterator = _createForOfIteratorHelper$4(selected.atoms),
21586
21590
  _step;
21587
21591
  try {
21588
21592
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -21591,7 +21595,7 @@ var EraserTool = function () {
21591
21595
  var atomId = FunctionalGroup.atomsInFunctionalGroup(functionalGroups, atom);
21592
21596
  var atomFromStruct = atomId !== null && ((_struct$atoms$get = struct.atoms.get(atomId)) === null || _struct$atoms$get === void 0 ? void 0 : _struct$atoms$get.a);
21593
21597
  if (atomFromStruct) {
21594
- var _iterator2 = _createForOfIteratorHelper$3(atomFromStruct.sgs.values()),
21598
+ var _iterator2 = _createForOfIteratorHelper$4(atomFromStruct.sgs.values()),
21595
21599
  _step2;
21596
21600
  try {
21597
21601
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -21621,7 +21625,7 @@ var EraserTool = function () {
21621
21625
  }
21622
21626
  }
21623
21627
  if (selected && functionalGroups.size && selected.bonds) {
21624
- var _iterator3 = _createForOfIteratorHelper$3(selected.bonds),
21628
+ var _iterator3 = _createForOfIteratorHelper$4(selected.bonds),
21625
21629
  _step3;
21626
21630
  try {
21627
21631
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -21640,7 +21644,7 @@ var EraserTool = function () {
21640
21644
  }
21641
21645
  }
21642
21646
  if (selected && functionalGroups.size && selected.rgroupAttachmentPoints) {
21643
- var _iterator4 = _createForOfIteratorHelper$3(selected.rgroupAttachmentPoints),
21647
+ var _iterator4 = _createForOfIteratorHelper$4(selected.rgroupAttachmentPoints),
21644
21648
  _step4;
21645
21649
  try {
21646
21650
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -21657,7 +21661,7 @@ var EraserTool = function () {
21657
21661
  }
21658
21662
  }
21659
21663
  if (atomsResult.length > 0) {
21660
- var _iterator5 = _createForOfIteratorHelper$3(atomsResult),
21664
+ var _iterator5 = _createForOfIteratorHelper$4(atomsResult),
21661
21665
  _step5;
21662
21666
  try {
21663
21667
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -21672,7 +21676,7 @@ var EraserTool = function () {
21672
21676
  }
21673
21677
  }
21674
21678
  if (bondsResult.length > 0) {
21675
- var _iterator6 = _createForOfIteratorHelper$3(bondsResult),
21679
+ var _iterator6 = _createForOfIteratorHelper$4(bondsResult),
21676
21680
  _step6;
21677
21681
  try {
21678
21682
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -21748,7 +21752,7 @@ var EraserTool = function () {
21748
21752
  }
21749
21753
  }
21750
21754
  if (atomResult.length) {
21751
- var _iterator7 = _createForOfIteratorHelper$3(atomResult),
21755
+ var _iterator7 = _createForOfIteratorHelper$4(atomResult),
21752
21756
  _step7;
21753
21757
  try {
21754
21758
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
@@ -21764,7 +21768,7 @@ var EraserTool = function () {
21764
21768
  _iterator7.f();
21765
21769
  }
21766
21770
  } else if (bondResult.length) {
21767
- var _iterator8 = _createForOfIteratorHelper$3(bondResult),
21771
+ var _iterator8 = _createForOfIteratorHelper$4(bondResult),
21768
21772
  _step8;
21769
21773
  try {
21770
21774
  for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
@@ -22136,9 +22140,9 @@ function prepareTemplateFromSingleGroup(molecule) {
22136
22140
  return template;
22137
22141
  }
22138
22142
 
22139
- 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; } } }; }
22140
- 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); }
22141
- 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; }
22143
+ 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; } } }; }
22144
+ 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); }
22145
+ 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; }
22142
22146
  var RGroupAtomTool = function () {
22143
22147
  function RGroupAtomTool(editor) {
22144
22148
  _classCallCheck$2(this, RGroupAtomTool);
@@ -22180,7 +22184,7 @@ var RGroupAtomTool = function () {
22180
22184
  }
22181
22185
  }
22182
22186
  if (atomResult.length > 0) {
22183
- var _iterator = _createForOfIteratorHelper$2(atomResult),
22187
+ var _iterator = _createForOfIteratorHelper$3(atomResult),
22184
22188
  _step;
22185
22189
  try {
22186
22190
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -22248,9 +22252,9 @@ function propsDialog$1(editor, id, pos) {
22248
22252
  });
22249
22253
  }
22250
22254
 
22251
- 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; } } }; }
22252
- 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); }
22253
- 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; }
22255
+ 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; } } }; }
22256
+ 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); }
22257
+ 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; }
22254
22258
  var RGroupFragmentTool = function () {
22255
22259
  function RGroupFragmentTool(editor) {
22256
22260
  _classCallCheck$2(this, RGroupFragmentTool);
@@ -22287,7 +22291,7 @@ var RGroupFragmentTool = function () {
22287
22291
  }
22288
22292
  }
22289
22293
  if (atomResult.length > 0) {
22290
- var _iterator = _createForOfIteratorHelper$1(atomResult),
22294
+ var _iterator = _createForOfIteratorHelper$2(atomResult),
22291
22295
  _step;
22292
22296
  try {
22293
22297
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -22309,7 +22313,7 @@ var RGroupFragmentTool = function () {
22309
22313
  return;
22310
22314
  }
22311
22315
  } else if (bondResult.length > 0) {
22312
- var _iterator2 = _createForOfIteratorHelper$1(bondResult),
22316
+ var _iterator2 = _createForOfIteratorHelper$2(bondResult),
22313
22317
  _step2;
22314
22318
  try {
22315
22319
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -24563,16 +24567,18 @@ var Editor$3 = function () {
24563
24567
  if (arguments.length === 0) {
24564
24568
  return this.render.ctab.molecule;
24565
24569
  }
24570
+ KetcherLogger.log('Editor.struct(), start', value, needToCenterStruct);
24566
24571
  this.selection(null);
24567
24572
  var struct = value || new Struct();
24568
24573
  var molecule = this.renderAndRecoordinateStruct(struct, needToCenterStruct);
24569
24574
  this.hoverIcon.create();
24575
+ KetcherLogger.log('Editor.struct(), end');
24570
24576
  return molecule;
24571
24577
  }
24572
24578
  }, {
24573
24579
  key: "structToAddFragment",
24574
24580
  value: function structToAddFragment(value) {
24575
- var superStruct = value.mergeInto(this.render.ctab.molecule);
24581
+ var superStruct = value.mergeInto(this.render.ctab.molecule.clone());
24576
24582
  return this.renderAndRecoordinateStruct(superStruct);
24577
24583
  }
24578
24584
  }, {
@@ -24599,7 +24605,8 @@ var Editor$3 = function () {
24599
24605
  microModeScale: SCALE
24600
24606
  }, value));
24601
24607
  this.updateToolAfterOptionsChange(wasViewOnlyEnabled);
24602
- this.struct(struct);
24608
+ this.render.setMolecule(struct);
24609
+ this.struct(struct.clone());
24603
24610
  this.render.setZoom(zoom);
24604
24611
  this.render.update();
24605
24612
  return this.render.options;
@@ -24761,6 +24768,7 @@ var Editor$3 = function () {
24761
24768
  }, {
24762
24769
  key: "undo",
24763
24770
  value: function undo() {
24771
+ KetcherLogger.log('Editor.undo(), start, ', this.historyPtr, this.historyStack);
24764
24772
  var ketcherChangeEvent = ketcherProvider.getKetcher().changeEvent;
24765
24773
  if (this.historyPtr === 0) {
24766
24774
  throw new Error('Undo stack is empty');
@@ -24781,10 +24789,12 @@ var Editor$3 = function () {
24781
24789
  ketcherChangeEvent.dispatch(action);
24782
24790
  }
24783
24791
  this.render.update();
24792
+ KetcherLogger.log('Editor.undo(), end');
24784
24793
  }
24785
24794
  }, {
24786
24795
  key: "redo",
24787
24796
  value: function redo() {
24797
+ KetcherLogger.log('Editor.redo(), start, ', this.historyPtr, this.historyStack);
24788
24798
  var ketcherChangeEvent = ketcherProvider.getKetcher().changeEvent;
24789
24799
  if (this.historyPtr === this.historyStack.length) {
24790
24800
  throw new Error('Redo stack is empty');
@@ -24793,9 +24803,14 @@ var Editor$3 = function () {
24793
24803
  this._tool.cancel();
24794
24804
  }
24795
24805
  this.selection(null);
24796
- var action = this.historyStack[this.historyPtr].perform(this.render.ctab);
24797
- this.historyStack[this.historyPtr] = action;
24798
- this.historyPtr++;
24806
+ var stack = this.historyStack[this.historyPtr];
24807
+ var action;
24808
+ try {
24809
+ action = stack.perform(this.render.ctab);
24810
+ } finally {
24811
+ this.historyStack[this.historyPtr] = action;
24812
+ this.historyPtr++;
24813
+ }
24799
24814
  if (this._tool instanceof toolsMap.paste) {
24800
24815
  this.event.change.dispatch();
24801
24816
  ketcherChangeEvent.dispatch();
@@ -24804,6 +24819,7 @@ var Editor$3 = function () {
24804
24819
  ketcherChangeEvent.dispatch(action);
24805
24820
  }
24806
24821
  this.render.update();
24822
+ KetcherLogger.log('Editor.redo(), end');
24807
24823
  }
24808
24824
  }, {
24809
24825
  key: "subscribe",
@@ -25475,6 +25491,9 @@ var HighlightMenu = function HighlightMenu(_ref) {
25475
25491
  });
25476
25492
  };
25477
25493
 
25494
+ 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; } } }; }
25495
+ 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); }
25496
+ 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; }
25478
25497
  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; }
25479
25498
  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; }
25480
25499
  var _atom$properties = atom.properties,
@@ -25613,6 +25632,26 @@ var AtomMenuItems = function AtomMenuItems(props) {
25613
25632
  color: color === '' ? 'transparent' : color
25614
25633
  });
25615
25634
  };
25635
+ var isAddAttachmentPointDisabled = !onlyOneAtomSelected || function () {
25636
+ if (!isNumber(selectedAtomId)) return true;
25637
+ var connectedComponents = struct.findConnectedComponent(selectedAtomId);
25638
+ var _iterator = _createForOfIteratorHelper$1(connectedComponents),
25639
+ _step;
25640
+ try {
25641
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
25642
+ var connectedAtomId = _step.value;
25643
+ var connectedGroup = struct.getGroupFromAtomId(connectedAtomId);
25644
+ if (connectedGroup !== null && connectedGroup !== void 0 && connectedGroup.isMonomer) {
25645
+ return true;
25646
+ }
25647
+ }
25648
+ } catch (err) {
25649
+ _iterator.e(err);
25650
+ } finally {
25651
+ _iterator.f();
25652
+ }
25653
+ return false;
25654
+ }();
25616
25655
  if (isAtomSuperatomLeavingGroup && onlyOneAtomSelected) {
25617
25656
  return jsxs(Fragment, {
25618
25657
  children: [jsx(HighlightMenu, {
@@ -25654,6 +25693,7 @@ var AtomMenuItems = function AtomMenuItems(props) {
25654
25693
  })
25655
25694
  })), onlyOneAtomSelected && !atomInSgroupWithLabel && !maxAttachmentPointsAmount && !isAtomSuperatomLeavingGroup && jsx(Item, _objectSpread$P(_objectSpread$P({}, props), {}, {
25656
25695
  onClick: handleAddAttachmentPoint,
25696
+ disabled: isAddAttachmentPointDisabled,
25657
25697
  children: "Add attachment point"
25658
25698
  })), jsx(HighlightMenu, {
25659
25699
  onHighlight: highlightAtomWithColor
@@ -34979,8 +35019,8 @@ var KetcherBuilder = function () {
34979
35019
  cleanup = initApp(element, appRoot, staticResourcesUrl, {
34980
35020
  buttons: buttons || {},
34981
35021
  errorHandler: errorHandler || null,
34982
- version: "3.0.3" ,
34983
- buildDate: "2025-02-26T15:51:37" ,
35022
+ version: "3.1.0-rc.10" ,
35023
+ buildDate: "2025-03-11T20:16:43" ,
34984
35024
  buildNumber: '',
34985
35025
  customButtons: customButtons || []
34986
35026
  }, structService, resolve, togglerComponent);
@@ -35272,7 +35312,7 @@ var ModeControl = function ModeControl(_ref3) {
35272
35312
  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; }
35273
35313
  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; }
35274
35314
  var MacromoleculesEditor = lazy(function () {
35275
- return import('./index.modern-356405d7.js');
35315
+ return import('./index.modern-192bbfb5.js');
35276
35316
  });
35277
35317
  var Editor = function Editor(props) {
35278
35318
  var _useState = useState(false),
@@ -35301,9 +35341,15 @@ var Editor = function Editor(props) {
35301
35341
  children: jsx(MacromoleculesEditor, {
35302
35342
  togglerComponent: togglerComponent
35303
35343
  })
35304
- }) : jsx(MicromoleculesEditor, _objectSpread(_objectSpread({}, props), {}, {
35305
- togglerComponent: togglerComponent
35306
- }))
35344
+ }) : jsx(Suspense, {
35345
+ fallback: jsx("div", {
35346
+ className: styles.switchingLoader,
35347
+ children: jsx(LoadingCircles, {})
35348
+ }),
35349
+ children: jsx(MicromoleculesEditor, _objectSpread(_objectSpread({}, props), {}, {
35350
+ togglerComponent: togglerComponent
35351
+ }))
35352
+ })
35307
35353
  });
35308
35354
  };
35309
35355