ketcher-react 2.8.0-rc.5 → 2.8.0-rc.6

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
@@ -2990,7 +2990,10 @@ var templateLib = {
2990
2990
  shortcut: 'Shift+t',
2991
2991
  title: 'Custom Templates',
2992
2992
  action: {
2993
- dialog: 'templates'
2993
+ dialog: 'templates',
2994
+ prop: {
2995
+ tab: null
2996
+ }
2994
2997
  },
2995
2998
  selected: function selected(editor) {
2996
2999
  return editor._tool.mode === 'classic';
@@ -3070,7 +3073,7 @@ var zoom = {
3070
3073
 
3071
3074
  var openHelpLink = function openHelpLink() {
3072
3075
  var _window$open;
3073
- return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v2.8.0-rc.5\n", "/documentation/help.md#ketcher-overview"))) === null || _window$open === void 0 ? void 0 : _window$open.focus();
3076
+ return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v2.8.0-rc.6\n", "/documentation/help.md#ketcher-overview"))) === null || _window$open === void 0 ? void 0 : _window$open.focus();
3074
3077
  };
3075
3078
  var help = {
3076
3079
  help: {
@@ -14314,25 +14317,28 @@ var TemplateTool = function () {
14314
14317
  });
14315
14318
  return true;
14316
14319
  }
14317
- var action;
14320
+ var action, functionalGroupRemoveAction;
14318
14321
  var pasteItems = null;
14319
14322
  if (ketcherCore.SGroup.isSaltOrSolvent(this.template.molecule.name)) {
14320
14323
  addSaltsAndSolventsOnCanvasWithoutMerge(restruct, this.template, dragCtx, this.editor);
14321
14324
  return true;
14322
14325
  } else if (((_ci = ci) === null || _ci === void 0 ? void 0 : _ci.map) === 'functionalGroups' && ketcherCore.FunctionalGroup.isContractedFunctionalGroup(ci.id, functionalGroups) && this.mode === 'fg') {
14326
+ functionalGroupRemoveAction = new ketcherCore.Action();
14323
14327
  var _struct = this.editor.struct();
14324
- var closestGroup = _struct.sgroups.get(ci.id);
14325
- var attachmentAtomId = closestGroup.getAttAtomId(_struct);
14328
+ var _restruct = this.editor.render.ctab;
14329
+ var functionalGroupToReplace = _struct.sgroups.get(ci.id);
14330
+ var attachmentAtomId = functionalGroupToReplace.getAttAtomId(_struct);
14331
+ var atomsWithoutAttachmentAtom = ketcherCore.SGroup.getAtoms(_struct, functionalGroupToReplace).filter(function (id) {
14332
+ return id !== attachmentAtomId;
14333
+ });
14334
+ functionalGroupRemoveAction.mergeWith(ketcherCore.fromSgroupDeletion(_restruct, ci.id));
14335
+ functionalGroupRemoveAction.mergeWith(ketcherCore.fromFragmentDeletion(_restruct, {
14336
+ atoms: atomsWithoutAttachmentAtom
14337
+ }));
14326
14338
  ci = {
14327
14339
  map: 'atoms',
14328
14340
  id: attachmentAtomId
14329
14341
  };
14330
- this.editor.update(ketcherCore.fromFragmentDeletion(this.editor.render.ctab, {
14331
- atoms: _toConsumableArray__default["default"](ketcherCore.SGroup.getAtoms(_struct, closestGroup)).filter(function (atomId) {
14332
- return atomId !== attachmentAtomId;
14333
- }),
14334
- bonds: _toConsumableArray__default["default"](ketcherCore.SGroup.getBonds(_struct, closestGroup))
14335
- }));
14336
14342
  }
14337
14343
  if (!dragCtx.action) {
14338
14344
  if (!ci) {
@@ -14364,6 +14370,9 @@ var TemplateTool = function () {
14364
14370
  var _fromTemplateOnAtom4 = _slicedToArray__default["default"](_fromTemplateOnAtom3, 2);
14365
14371
  action = _fromTemplateOnAtom4[0];
14366
14372
  pasteItems = _fromTemplateOnAtom4[1];
14373
+ if (functionalGroupRemoveAction) {
14374
+ action = functionalGroupRemoveAction.mergeWith(action);
14375
+ }
14367
14376
  dragCtx.action = action;
14368
14377
  } else if (ci.map === 'bonds' && this.mode !== 'fg') {
14369
14378
  var _promise = ketcherCore.fromTemplateOnBondAction(restruct, this.template, ci.id, this.editor.event, dragCtx.sign1 * dragCtx.sign2 > 0, true);
@@ -22762,19 +22771,15 @@ var TemplateDialog = function TemplateDialog(props) {
22762
22771
  onSelect = props.onSelect,
22763
22772
  rest = _objectWithoutProperties__default["default"](props, _excluded2);
22764
22773
  var searchInputRef = React.useRef(null);
22765
- var _useState = React.useState(initialTab),
22774
+ var _useState = React.useState([props.group]),
22766
22775
  _useState2 = _slicedToArray__default["default"](_useState, 2),
22767
- thisInitialTab = _useState2[0],
22768
- setThisInitialTab = _useState2[1];
22769
- var _useState3 = React.useState([props.group]),
22770
- _useState4 = _slicedToArray__default["default"](_useState3, 2),
22771
- expandedAccordions = _useState4[0],
22772
- setExpandedAccordions = _useState4[1];
22776
+ expandedAccordions = _useState2[0],
22777
+ setExpandedAccordions = _useState2[1];
22773
22778
  var filteredSaltsAndSolvents = useSaltsAndSolvents(saltsAndSolvents, filter);
22774
- var _useState5 = React.useState(functionalGroups[FUNCTIONAL_GROUPS]),
22775
- _useState6 = _slicedToArray__default["default"](_useState5, 2),
22776
- filteredFG = _useState6[0],
22777
- setFilteredFG = _useState6[1];
22779
+ var _useState3 = React.useState(functionalGroups[FUNCTIONAL_GROUPS]),
22780
+ _useState4 = _slicedToArray__default["default"](_useState3, 2),
22781
+ filteredFG = _useState4[0],
22782
+ setFilteredFG = _useState4[1];
22778
22783
  var filteredTemplateLib = filterLibSelector(props);
22779
22784
  React.useEffect(function () {
22780
22785
  setFilteredFG(filterFGLib(functionalGroups, filter)[FUNCTIONAL_GROUPS]);
@@ -22784,6 +22789,11 @@ var TemplateDialog = function TemplateDialog(props) {
22784
22789
  (_searchInputRef$curre = searchInputRef.current) === null || _searchInputRef$curre === void 0 ? void 0 : _searchInputRef$curre.focus();
22785
22790
  onSelect(null);
22786
22791
  }, [tab, onSelect]);
22792
+ React.useEffect(function () {
22793
+ if (initialTab !== null) {
22794
+ onTabChange(initialTab);
22795
+ }
22796
+ }, [initialTab, onTabChange]);
22787
22797
  var handleAccordionChange = function handleAccordionChange(accordion) {
22788
22798
  return function (_, isExpanded) {
22789
22799
  setExpandedAccordions(isExpanded ? [].concat(_toConsumableArray__default["default"](expandedAccordions), [accordion]) : _toConsumableArray__default["default"](expandedAccordions).filter(function (expandedAccordion) {
@@ -22792,7 +22802,6 @@ var TemplateDialog = function TemplateDialog(props) {
22792
22802
  };
22793
22803
  };
22794
22804
  var handleTabChange = function handleTabChange(value) {
22795
- setThisInitialTab(null);
22796
22805
  onTabChange(value);
22797
22806
  };
22798
22807
  var sdfSerializer = new ketcherCore.SdfSerializer();
@@ -22829,7 +22838,7 @@ var TemplateDialog = function TemplateDialog(props) {
22829
22838
  className: classes$8.searchIcon
22830
22839
  })]
22831
22840
  }), jsxRuntime.jsxs(Tabs__default["default"], {
22832
- value: thisInitialTab !== null ? initialTab : tab,
22841
+ value: tab,
22833
22842
  onChange: function onChange(_, value) {
22834
22843
  return handleTabChange(value);
22835
22844
  },
@@ -22844,7 +22853,7 @@ var TemplateDialog = function TemplateDialog(props) {
22844
22853
  }), jsxRuntime.jsxs("div", {
22845
22854
  className: classes$8.tabsContent,
22846
22855
  children: [jsxRuntime.jsx(TabPanel, {
22847
- value: thisInitialTab !== null ? initialTab : tab,
22856
+ value: tab,
22848
22857
  index: TemplateTabs.TemplateLibrary,
22849
22858
  children: jsxRuntime.jsx("div", {
22850
22859
  children: Object.keys(filteredTemplateLib).length ? Object.keys(filteredTemplateLib).map(function (groupName) {
@@ -22945,7 +22954,7 @@ var onModalClose = function onModalClose(props, dispatch) {
22945
22954
  var TemplatesDialog = reactRedux.connect(function (store) {
22946
22955
  var _store$modal, _store$modal$prop, _store$editor, _store$editor$render;
22947
22956
  return _objectSpread$4(_objectSpread$4({}, fp.omit(['attach'], store.templates)), {}, {
22948
- initialTab: ((_store$modal = store.modal) === null || _store$modal === void 0 ? void 0 : (_store$modal$prop = _store$modal.prop) === null || _store$modal$prop === void 0 ? void 0 : _store$modal$prop.tab) || TemplateTabs.TemplateLibrary,
22957
+ initialTab: (_store$modal = store.modal) === null || _store$modal === void 0 ? void 0 : (_store$modal$prop = _store$modal.prop) === null || _store$modal$prop === void 0 ? void 0 : _store$modal$prop.tab,
22949
22958
  renderOptions: (_store$editor = store.editor) === null || _store$editor === void 0 ? void 0 : (_store$editor$render = _store$editor.render) === null || _store$editor$render === void 0 ? void 0 : _store$editor$render.options,
22950
22959
  functionalGroups: functionalGroupsSelector(store),
22951
22960
  saltsAndSolvents: saltsAndSolventsSelector(store)
@@ -23711,8 +23720,8 @@ var KetcherBuilder = function () {
23711
23720
  initApp(element, staticResourcesUrl, {
23712
23721
  buttons: buttons || {},
23713
23722
  errorHandler: errorHandler || null,
23714
- version: "2.8.0-rc.5" ,
23715
- buildDate: "2023-03-02T12:40:56" ,
23723
+ version: "2.8.0-rc.6" ,
23724
+ buildDate: "2023-03-09T13:41:33" ,
23716
23725
  buildNumber: ''
23717
23726
  }, structService, resolve);
23718
23727
  });