ketcher-react 2.9.0-rc.5-dev.1 → 2.9.0-rc.7
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/constants.d.ts +3 -0
- package/dist/index.js +187 -193
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +178 -185
- package/dist/index.modern.js.map +1 -1
- package/dist/script/editor/Editor.d.ts +1 -1
- package/dist/script/editor/HoverIcon.d.ts +1 -1
- package/dist/script/editor/tool/template.d.ts +4 -2
- package/dist/script/ui/component/form/input.d.ts +1 -1
- package/package.json +1 -1
- package/dist/script/editor/utils/canvasExtension.d.ts +0 -16
package/dist/constants.d.ts
CHANGED
|
@@ -15,3 +15,6 @@
|
|
|
15
15
|
***************************************************************************/
|
|
16
16
|
export declare const KETCHER_INIT_EVENT_NAME = "ketcher-init";
|
|
17
17
|
export declare const KETCHER_SAVED_SETTINGS_KEY = "ketcher_editor_saved_settings";
|
|
18
|
+
export declare const MODES: {
|
|
19
|
+
FG: string;
|
|
20
|
+
};
|
package/dist/index.js
CHANGED
|
@@ -2539,6 +2539,9 @@ var tools$1 = typeSchema$1["enum"].reduce(function (res, type, i) {
|
|
|
2539
2539
|
|
|
2540
2540
|
var KETCHER_INIT_EVENT_NAME = 'ketcher-init';
|
|
2541
2541
|
var KETCHER_SAVED_SETTINGS_KEY = 'ketcher_editor_saved_settings';
|
|
2542
|
+
var MODES = {
|
|
2543
|
+
FG: 'fg'
|
|
2544
|
+
};
|
|
2542
2545
|
|
|
2543
2546
|
function ownKeys$1a(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2544
2547
|
function _objectSpread$1a(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1a(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
@@ -3073,7 +3076,7 @@ var zoom = {
|
|
|
3073
3076
|
|
|
3074
3077
|
var openHelpLink = function openHelpLink() {
|
|
3075
3078
|
var _window$open;
|
|
3076
|
-
return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v2.9.0-rc.
|
|
3079
|
+
return (_window$open = window.open("https://github.com/epam/ketcher/blob/".concat("v2.9.0-rc.7\n", "/documentation/help.md#ketcher-overview"))) === null || _window$open === void 0 ? void 0 : _window$open.focus();
|
|
3077
3080
|
};
|
|
3078
3081
|
var help = {
|
|
3079
3082
|
help: {
|
|
@@ -3098,7 +3101,7 @@ var functionalGroupsLib = {
|
|
|
3098
3101
|
}
|
|
3099
3102
|
},
|
|
3100
3103
|
selected: function selected(editor) {
|
|
3101
|
-
return editor._tool.mode ===
|
|
3104
|
+
return editor._tool.mode === MODES.FG;
|
|
3102
3105
|
},
|
|
3103
3106
|
disabled: function disabled(_, __, options) {
|
|
3104
3107
|
return !options.app.functionalGroups;
|
|
@@ -8128,7 +8131,7 @@ function _objectSpread$10(target) { for (var i = 1; i < arguments.length; i++) {
|
|
|
8128
8131
|
var initialState$1 = {
|
|
8129
8132
|
lib: [],
|
|
8130
8133
|
functionalGroupInfo: null,
|
|
8131
|
-
mode:
|
|
8134
|
+
mode: MODES.FG
|
|
8132
8135
|
};
|
|
8133
8136
|
var functionalGroupsReducer = function functionalGroupsReducer() {
|
|
8134
8137
|
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState$1;
|
|
@@ -8203,7 +8206,7 @@ function ownKeys$$(object, enumerableOnly) { var keys = Object.keys(object); if
|
|
|
8203
8206
|
function _objectSpread$$(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$$(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$$(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
8204
8207
|
var initialState = {
|
|
8205
8208
|
lib: [],
|
|
8206
|
-
mode:
|
|
8209
|
+
mode: MODES.FG
|
|
8207
8210
|
};
|
|
8208
8211
|
var saltsAndSolventsReducer = function saltsAndSolventsReducer() {
|
|
8209
8212
|
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
|
|
@@ -12197,7 +12200,9 @@ function dropAndMerge(editor, mergeItems, action) {
|
|
|
12197
12200
|
editor.hover(null);
|
|
12198
12201
|
if (isMerging) editor.selection(null);
|
|
12199
12202
|
if (((_dropItemAction = dropItemAction) === null || _dropItemAction === void 0 ? void 0 : _dropItemAction.operations.length) > 0) {
|
|
12200
|
-
editor.update(dropItemAction
|
|
12203
|
+
editor.update(dropItemAction, false, {
|
|
12204
|
+
resizeCanvas: false
|
|
12205
|
+
});
|
|
12201
12206
|
}
|
|
12202
12207
|
}
|
|
12203
12208
|
function getExpandGroupsInMergeAction(restruct, mergeItems) {
|
|
@@ -12289,72 +12294,6 @@ function updateSelectedAtoms(_ref) {
|
|
|
12289
12294
|
}
|
|
12290
12295
|
}
|
|
12291
12296
|
|
|
12292
|
-
var edgeOffset = 150;
|
|
12293
|
-
function isCloseToEdgeOfScreen(event) {
|
|
12294
|
-
var clientX = event.clientX,
|
|
12295
|
-
clientY = event.clientY;
|
|
12296
|
-
var body = document.body;
|
|
12297
|
-
var isCloseToLeftEdgeOfScreen = clientX <= edgeOffset;
|
|
12298
|
-
var isCloseToTopEdgeOfScreen = clientY <= edgeOffset;
|
|
12299
|
-
var isCloseToRightEdgeOfScreen = body.clientWidth - clientX <= edgeOffset;
|
|
12300
|
-
var isCloseToBottomEdgeOfScreen = body.clientHeight - clientY <= edgeOffset;
|
|
12301
|
-
return {
|
|
12302
|
-
isCloseToLeftEdgeOfScreen: isCloseToLeftEdgeOfScreen,
|
|
12303
|
-
isCloseToTopEdgeOfScreen: isCloseToTopEdgeOfScreen,
|
|
12304
|
-
isCloseToRightEdgeOfScreen: isCloseToRightEdgeOfScreen,
|
|
12305
|
-
isCloseToBottomEdgeOfScreen: isCloseToBottomEdgeOfScreen
|
|
12306
|
-
};
|
|
12307
|
-
}
|
|
12308
|
-
function isCloseToEdgeOfCanvas(event, canvasSize) {
|
|
12309
|
-
var layerX = event.layerX,
|
|
12310
|
-
layerY = event.layerY;
|
|
12311
|
-
var isCloseToLeftEdgeOfCanvas = layerX <= edgeOffset;
|
|
12312
|
-
var isCloseToTopEdgeOfCanvas = layerY <= edgeOffset;
|
|
12313
|
-
var isCloseToRightEdgeOfCanvas = canvasSize.x - layerX <= edgeOffset;
|
|
12314
|
-
var isCloseToBottomEdgeOfCanvas = canvasSize.y - layerY <= edgeOffset;
|
|
12315
|
-
return {
|
|
12316
|
-
isCloseToLeftEdgeOfCanvas: isCloseToLeftEdgeOfCanvas,
|
|
12317
|
-
isCloseToTopEdgeOfCanvas: isCloseToTopEdgeOfCanvas,
|
|
12318
|
-
isCloseToRightEdgeOfCanvas: isCloseToRightEdgeOfCanvas,
|
|
12319
|
-
isCloseToBottomEdgeOfCanvas: isCloseToBottomEdgeOfCanvas
|
|
12320
|
-
};
|
|
12321
|
-
}
|
|
12322
|
-
function calculateCanvasExtension(clientArea, currentCanvasSize, extensionVector) {
|
|
12323
|
-
var newHorizontalScrollPosition = clientArea.scrollLeft + extensionVector.x;
|
|
12324
|
-
var newVerticalScrollPosition = clientArea.scrollTop + extensionVector.y;
|
|
12325
|
-
var horizontalExtension = 0;
|
|
12326
|
-
var verticalExtension = 0;
|
|
12327
|
-
if (newHorizontalScrollPosition > currentCanvasSize.x) {
|
|
12328
|
-
horizontalExtension = newHorizontalScrollPosition - currentCanvasSize.x;
|
|
12329
|
-
}
|
|
12330
|
-
if (newHorizontalScrollPosition < 0) {
|
|
12331
|
-
horizontalExtension = Math.abs(newHorizontalScrollPosition);
|
|
12332
|
-
}
|
|
12333
|
-
if (newVerticalScrollPosition > currentCanvasSize.y) {
|
|
12334
|
-
verticalExtension = newVerticalScrollPosition - currentCanvasSize.y;
|
|
12335
|
-
}
|
|
12336
|
-
if (newVerticalScrollPosition < 0) {
|
|
12337
|
-
verticalExtension = Math.abs(newVerticalScrollPosition);
|
|
12338
|
-
}
|
|
12339
|
-
return new ketcherCore.Vec2(horizontalExtension, verticalExtension, 0);
|
|
12340
|
-
}
|
|
12341
|
-
function shiftAndExtendCanvasByVector(vector, render) {
|
|
12342
|
-
var clientArea = render.clientArea;
|
|
12343
|
-
var extensionVector = calculateCanvasExtension(clientArea, render.sz.scaled(render.options.zoom), vector).scaled(1 / render.options.zoom);
|
|
12344
|
-
if (extensionVector.x > 0 || extensionVector.y > 0) {
|
|
12345
|
-
render.setPaperSize(render.sz.add(extensionVector));
|
|
12346
|
-
render.setOffset(render.options.offset.add(vector));
|
|
12347
|
-
render.ctab.translate(vector);
|
|
12348
|
-
}
|
|
12349
|
-
scrollByVector(vector, render);
|
|
12350
|
-
render.update(false);
|
|
12351
|
-
}
|
|
12352
|
-
function scrollByVector(vector, render) {
|
|
12353
|
-
var clientArea = render.clientArea;
|
|
12354
|
-
clientArea.scrollLeft += vector.x * render.options.scale;
|
|
12355
|
-
clientArea.scrollTop += vector.y * render.options.scale;
|
|
12356
|
-
}
|
|
12357
|
-
|
|
12358
12297
|
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; } } }; }
|
|
12359
12298
|
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); }
|
|
12360
12299
|
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; }
|
|
@@ -12494,8 +12433,10 @@ var SelectTool = function () {
|
|
|
12494
12433
|
dragCtx.action = ketcherCore.fromMultipleMove(restruct, expSel, editor.render.page2obj(event).sub(dragCtx.xy0));
|
|
12495
12434
|
dragCtx.mergeItems = getMergeItems(editor, expSel);
|
|
12496
12435
|
editor.hover(ketcherCore.getHoverToFuse(dragCtx.mergeItems));
|
|
12497
|
-
|
|
12498
|
-
editor.update(dragCtx.action, true
|
|
12436
|
+
resizeCanvas(rnd, event);
|
|
12437
|
+
editor.update(dragCtx.action, true, {
|
|
12438
|
+
resizeCanvas: false
|
|
12439
|
+
});
|
|
12499
12440
|
return true;
|
|
12500
12441
|
}
|
|
12501
12442
|
if (_classPrivateFieldGet__default["default"](this, _lassoHelper).running()) {
|
|
@@ -12694,47 +12635,52 @@ var SelectTool = function () {
|
|
|
12694
12635
|
}]);
|
|
12695
12636
|
return SelectTool;
|
|
12696
12637
|
}();
|
|
12697
|
-
function
|
|
12638
|
+
function resizeCanvas(render, event) {
|
|
12698
12639
|
var offset = 1;
|
|
12699
|
-
var _isCloseToEdgeOfCanva = isCloseToEdgeOfCanvas(event, render.sz),
|
|
12640
|
+
var _isCloseToEdgeOfCanva = ketcherCore.isCloseToEdgeOfCanvas(event, render.sz),
|
|
12700
12641
|
isCloseToLeftEdgeOfCanvas = _isCloseToEdgeOfCanva.isCloseToLeftEdgeOfCanvas,
|
|
12701
12642
|
isCloseToTopEdgeOfCanvas = _isCloseToEdgeOfCanva.isCloseToTopEdgeOfCanvas,
|
|
12702
12643
|
isCloseToRightEdgeOfCanvas = _isCloseToEdgeOfCanva.isCloseToRightEdgeOfCanvas,
|
|
12703
12644
|
isCloseToBottomEdgeOfCanvas = _isCloseToEdgeOfCanva.isCloseToBottomEdgeOfCanvas;
|
|
12704
|
-
var _isCloseToEdgeOfScree = isCloseToEdgeOfScreen(event),
|
|
12645
|
+
var _isCloseToEdgeOfScree = ketcherCore.isCloseToEdgeOfScreen(event),
|
|
12705
12646
|
isCloseToLeftEdgeOfScreen = _isCloseToEdgeOfScree.isCloseToLeftEdgeOfScreen,
|
|
12706
12647
|
isCloseToTopEdgeOfScreen = _isCloseToEdgeOfScree.isCloseToTopEdgeOfScreen,
|
|
12707
12648
|
isCloseToRightEdgeOfScreen = _isCloseToEdgeOfScree.isCloseToRightEdgeOfScreen,
|
|
12708
12649
|
isCloseToBottomEdgeOfScreen = _isCloseToEdgeOfScree.isCloseToBottomEdgeOfScreen;
|
|
12709
|
-
|
|
12710
|
-
|
|
12650
|
+
var _getDirections = ketcherCore.getDirections(event),
|
|
12651
|
+
isMovingLeft = _getDirections.isMovingLeft,
|
|
12652
|
+
isMovingRight = _getDirections.isMovingRight,
|
|
12653
|
+
isMovingTop = _getDirections.isMovingTop,
|
|
12654
|
+
isMovingBottom = _getDirections.isMovingBottom;
|
|
12655
|
+
if (isCloseToLeftEdgeOfCanvas && isMovingLeft) {
|
|
12656
|
+
ketcherCore.shiftAndExtendCanvasByVector(new ketcherCore.Vec2(-offset, 0, 0), render);
|
|
12711
12657
|
}
|
|
12712
|
-
if (isCloseToTopEdgeOfCanvas) {
|
|
12713
|
-
shiftAndExtendCanvasByVector(new ketcherCore.Vec2(0, -offset, 0), render);
|
|
12658
|
+
if (isCloseToTopEdgeOfCanvas && isMovingTop) {
|
|
12659
|
+
ketcherCore.shiftAndExtendCanvasByVector(new ketcherCore.Vec2(0, -offset, 0), render);
|
|
12714
12660
|
}
|
|
12715
|
-
if (isCloseToRightEdgeOfCanvas) {
|
|
12716
|
-
shiftAndExtendCanvasByVector(new ketcherCore.Vec2(offset, 0, 0), render);
|
|
12661
|
+
if (isCloseToRightEdgeOfCanvas && isMovingRight) {
|
|
12662
|
+
ketcherCore.shiftAndExtendCanvasByVector(new ketcherCore.Vec2(offset, 0, 0), render);
|
|
12717
12663
|
}
|
|
12718
|
-
if (isCloseToBottomEdgeOfCanvas) {
|
|
12719
|
-
shiftAndExtendCanvasByVector(new ketcherCore.Vec2(0, offset, 0), render);
|
|
12664
|
+
if (isCloseToBottomEdgeOfCanvas && isMovingBottom) {
|
|
12665
|
+
ketcherCore.shiftAndExtendCanvasByVector(new ketcherCore.Vec2(0, offset, 0), render);
|
|
12720
12666
|
}
|
|
12721
|
-
var isCloseToSomeEdgeOfCanvas = [isCloseToTopEdgeOfCanvas, isCloseToRightEdgeOfCanvas, isCloseToBottomEdgeOfCanvas, isCloseToLeftEdgeOfCanvas].some(function (isCloseToEdge) {
|
|
12667
|
+
var isCloseToSomeEdgeOfCanvas = [isCloseToTopEdgeOfCanvas && isMovingTop, isCloseToRightEdgeOfCanvas && isMovingRight, isCloseToBottomEdgeOfCanvas && isMovingBottom, isCloseToLeftEdgeOfCanvas && isMovingLeft].some(function (isCloseToEdge) {
|
|
12722
12668
|
return isCloseToEdge;
|
|
12723
12669
|
});
|
|
12724
12670
|
if (isCloseToSomeEdgeOfCanvas) {
|
|
12725
12671
|
return;
|
|
12726
12672
|
}
|
|
12727
|
-
if (isCloseToTopEdgeOfScreen) {
|
|
12728
|
-
scrollByVector(new ketcherCore.Vec2(0, -offset), render);
|
|
12673
|
+
if (isCloseToTopEdgeOfScreen && isMovingTop) {
|
|
12674
|
+
ketcherCore.scrollByVector(new ketcherCore.Vec2(0, -offset), render);
|
|
12729
12675
|
}
|
|
12730
|
-
if (isCloseToBottomEdgeOfScreen) {
|
|
12731
|
-
scrollByVector(new ketcherCore.Vec2(0, offset), render);
|
|
12676
|
+
if (isCloseToBottomEdgeOfScreen && isMovingBottom) {
|
|
12677
|
+
ketcherCore.scrollByVector(new ketcherCore.Vec2(0, offset), render);
|
|
12732
12678
|
}
|
|
12733
|
-
if (isCloseToLeftEdgeOfScreen) {
|
|
12734
|
-
scrollByVector(new ketcherCore.Vec2(-offset, 0), render);
|
|
12679
|
+
if (isCloseToLeftEdgeOfScreen && isMovingLeft) {
|
|
12680
|
+
ketcherCore.scrollByVector(new ketcherCore.Vec2(-offset, 0), render);
|
|
12735
12681
|
}
|
|
12736
|
-
if (isCloseToRightEdgeOfScreen) {
|
|
12737
|
-
scrollByVector(new ketcherCore.Vec2(offset, 0), render);
|
|
12682
|
+
if (isCloseToRightEdgeOfScreen && isMovingRight) {
|
|
12683
|
+
ketcherCore.scrollByVector(new ketcherCore.Vec2(offset, 0), render);
|
|
12738
12684
|
}
|
|
12739
12685
|
}
|
|
12740
12686
|
function closestToSel(ci) {
|
|
@@ -13277,7 +13223,7 @@ var PasteTool = function () {
|
|
|
13277
13223
|
pasteItems = _fromPaste6[1];
|
|
13278
13224
|
this.action = _action;
|
|
13279
13225
|
this.editor.update(this.action, true, {
|
|
13280
|
-
|
|
13226
|
+
resizeCanvas: false
|
|
13281
13227
|
});
|
|
13282
13228
|
this.mergeItems = getMergeItems(this.editor, pasteItems);
|
|
13283
13229
|
this.editor.hover(ketcherCore.getHoverToFuse(this.mergeItems));
|
|
@@ -14158,7 +14104,7 @@ var TemplateTool = function () {
|
|
|
14158
14104
|
this.findItems.push('atoms');
|
|
14159
14105
|
}
|
|
14160
14106
|
var bond = frag.bonds.get(this.template.bid);
|
|
14161
|
-
if (bond && this.
|
|
14107
|
+
if (bond && !this.isModeFunctionalGroup) {
|
|
14162
14108
|
this.template.sign = getSign(frag, bond, this.template.xy0);
|
|
14163
14109
|
this.findItems.push('bonds');
|
|
14164
14110
|
}
|
|
@@ -14172,73 +14118,119 @@ var TemplateTool = function () {
|
|
|
14172
14118
|
editor.hoverIcon.updatePosition();
|
|
14173
14119
|
}
|
|
14174
14120
|
_createClass__default["default"](TemplateTool, [{
|
|
14121
|
+
key: "showRemoveAbbreviationPopup",
|
|
14122
|
+
value: function showRemoveAbbreviationPopup() {
|
|
14123
|
+
var _this = this;
|
|
14124
|
+
return this.editor.event.removeFG.dispatch({
|
|
14125
|
+
fgIds: this.targetGroupsIds
|
|
14126
|
+
}).then(function () {
|
|
14127
|
+
_this.targetGroupsIds.length = 0;
|
|
14128
|
+
return Promise.resolve();
|
|
14129
|
+
});
|
|
14130
|
+
}
|
|
14131
|
+
}, {
|
|
14132
|
+
key: "isModeFunctionalGroup",
|
|
14133
|
+
get: function get() {
|
|
14134
|
+
return this.mode === MODES.FG;
|
|
14135
|
+
}
|
|
14136
|
+
}, {
|
|
14175
14137
|
key: "mousedown",
|
|
14176
|
-
value: function
|
|
14177
|
-
var
|
|
14178
|
-
|
|
14179
|
-
|
|
14180
|
-
|
|
14181
|
-
|
|
14182
|
-
|
|
14183
|
-
|
|
14184
|
-
|
|
14185
|
-
|
|
14186
|
-
|
|
14187
|
-
|
|
14188
|
-
|
|
14189
|
-
|
|
14190
|
-
|
|
14191
|
-
|
|
14192
|
-
|
|
14193
|
-
|
|
14194
|
-
|
|
14195
|
-
|
|
14196
|
-
|
|
14197
|
-
|
|
14198
|
-
|
|
14199
|
-
|
|
14200
|
-
|
|
14201
|
-
|
|
14202
|
-
|
|
14203
|
-
|
|
14204
|
-
|
|
14205
|
-
|
|
14206
|
-
|
|
14207
|
-
|
|
14208
|
-
|
|
14209
|
-
|
|
14210
|
-
|
|
14211
|
-
|
|
14212
|
-
|
|
14213
|
-
|
|
14214
|
-
|
|
14215
|
-
|
|
14216
|
-
|
|
14217
|
-
|
|
14218
|
-
|
|
14219
|
-
|
|
14220
|
-
|
|
14221
|
-
|
|
14222
|
-
|
|
14223
|
-
|
|
14224
|
-
|
|
14225
|
-
|
|
14226
|
-
|
|
14227
|
-
|
|
14228
|
-
|
|
14229
|
-
|
|
14230
|
-
|
|
14231
|
-
|
|
14232
|
-
|
|
14138
|
+
value: function () {
|
|
14139
|
+
var _mousedown = _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee(event) {
|
|
14140
|
+
var _struct$functionalGro;
|
|
14141
|
+
var closestItem, ctab, struct, isTargetExpanded, isTargetAtomOrBond, dragCtx, ci, _struct$atoms$get, _struct$halfBonds$get, xy0, bond, frid, frIds, count, loop, _struct$halfBonds$get2, _struct$loops$get, loopHbs, sign;
|
|
14142
|
+
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
|
|
14143
|
+
while (1) {
|
|
14144
|
+
switch (_context.prev = _context.next) {
|
|
14145
|
+
case 0:
|
|
14146
|
+
closestItem = this.editor.findItem(event, ['atoms', 'bonds', 'sgroups', 'functionalGroups']);
|
|
14147
|
+
ctab = this.editor.render.ctab;
|
|
14148
|
+
struct = ctab.molecule;
|
|
14149
|
+
if (struct.functionalGroups.size) {
|
|
14150
|
+
this.targetGroupsIds = getGroupIdsFromItemArrays(struct, _objectSpread$N(_objectSpread$N({}, (closestItem === null || closestItem === void 0 ? void 0 : closestItem.map) === 'atoms' && {
|
|
14151
|
+
atoms: [closestItem.id]
|
|
14152
|
+
}), (closestItem === null || closestItem === void 0 ? void 0 : closestItem.map) === 'bonds' && {
|
|
14153
|
+
bonds: [closestItem.id]
|
|
14154
|
+
}));
|
|
14155
|
+
if (
|
|
14156
|
+
(closestItem === null || closestItem === void 0 ? void 0 : closestItem.map) === 'functionalGroups' && ketcherCore.FunctionalGroup.isContractedFunctionalGroup(closestItem.id, struct.functionalGroups)) {
|
|
14157
|
+
this.targetGroupsIds.push(closestItem.id);
|
|
14158
|
+
}
|
|
14159
|
+
}
|
|
14160
|
+
isTargetExpanded = (_struct$functionalGro = struct.functionalGroups.get(this.targetGroupsIds[0])) === null || _struct$functionalGro === void 0 ? void 0 : _struct$functionalGro.isExpanded;
|
|
14161
|
+
isTargetAtomOrBond = this.targetGroupsIds.length && !this.isModeFunctionalGroup;
|
|
14162
|
+
if (!(isTargetAtomOrBond || isTargetExpanded)) {
|
|
14163
|
+
_context.next = 10;
|
|
14164
|
+
break;
|
|
14165
|
+
}
|
|
14166
|
+
_context.next = 9;
|
|
14167
|
+
return this.showRemoveAbbreviationPopup();
|
|
14168
|
+
case 9:
|
|
14169
|
+
return _context.abrupt("return");
|
|
14170
|
+
case 10:
|
|
14171
|
+
this.editor.hover(null);
|
|
14172
|
+
this.dragCtx = {
|
|
14173
|
+
xy0: this.editor.render.page2obj(event),
|
|
14174
|
+
item: this.editor.findItem(event, this.findItems)
|
|
14175
|
+
};
|
|
14176
|
+
dragCtx = this.dragCtx;
|
|
14177
|
+
ci = dragCtx.item;
|
|
14178
|
+
if (!(!ci || this.isSaltOrSolvent)) {
|
|
14179
|
+
_context.next = 17;
|
|
14180
|
+
break;
|
|
14181
|
+
}
|
|
14182
|
+
delete dragCtx.item;
|
|
14183
|
+
return _context.abrupt("return");
|
|
14184
|
+
case 17:
|
|
14185
|
+
if (ci.map === 'bonds' && !this.isModeFunctionalGroup) {
|
|
14186
|
+
xy0 = new ketcherCore.Vec2();
|
|
14187
|
+
bond = struct.bonds.get(ci.id);
|
|
14188
|
+
frid = (_struct$atoms$get = struct.atoms.get(bond === null || bond === void 0 ? void 0 : bond.begin)) === null || _struct$atoms$get === void 0 ? void 0 : _struct$atoms$get.fragment;
|
|
14189
|
+
frIds = struct.getFragmentIds(frid);
|
|
14190
|
+
count = 0;
|
|
14191
|
+
loop = (_struct$halfBonds$get = struct.halfBonds.get(bond === null || bond === void 0 ? void 0 : bond.hb1)) === null || _struct$halfBonds$get === void 0 ? void 0 : _struct$halfBonds$get.loop;
|
|
14192
|
+
if (loop && loop < 0) {
|
|
14193
|
+
loop = (_struct$halfBonds$get2 = struct.halfBonds.get(bond === null || bond === void 0 ? void 0 : bond.hb2)) === null || _struct$halfBonds$get2 === void 0 ? void 0 : _struct$halfBonds$get2.loop;
|
|
14194
|
+
}
|
|
14195
|
+
if (loop && loop >= 0) {
|
|
14196
|
+
loopHbs = (_struct$loops$get = struct.loops.get(loop)) === null || _struct$loops$get === void 0 ? void 0 : _struct$loops$get.hbs;
|
|
14197
|
+
loopHbs === null || loopHbs === void 0 ? void 0 : loopHbs.forEach(function (hb) {
|
|
14198
|
+
var _struct$halfBonds$get3;
|
|
14199
|
+
var halfBondBegin = (_struct$halfBonds$get3 = struct.halfBonds.get(hb)) === null || _struct$halfBonds$get3 === void 0 ? void 0 : _struct$halfBonds$get3.begin;
|
|
14200
|
+
if (halfBondBegin) {
|
|
14201
|
+
var hbbAtom = struct.atoms.get(halfBondBegin);
|
|
14202
|
+
if (hbbAtom) {
|
|
14203
|
+
xy0.add_(hbbAtom.pp);
|
|
14204
|
+
count++;
|
|
14205
|
+
}
|
|
14206
|
+
}
|
|
14207
|
+
});
|
|
14208
|
+
} else {
|
|
14209
|
+
frIds.forEach(function (id) {
|
|
14210
|
+
var atomById = struct.atoms.get(id);
|
|
14211
|
+
if (atomById) {
|
|
14212
|
+
xy0.add_(atomById.pp);
|
|
14213
|
+
count++;
|
|
14214
|
+
}
|
|
14215
|
+
});
|
|
14216
|
+
}
|
|
14217
|
+
dragCtx.v0 = xy0.scaled(1 / count);
|
|
14218
|
+
sign = getSign(struct, bond, dragCtx.v0);
|
|
14219
|
+
dragCtx.sign1 = sign || 1;
|
|
14220
|
+
dragCtx.sign2 = this.template.sign;
|
|
14221
|
+
}
|
|
14222
|
+
case 18:
|
|
14223
|
+
case "end":
|
|
14224
|
+
return _context.stop();
|
|
14233
14225
|
}
|
|
14234
|
-
}
|
|
14235
|
-
}
|
|
14236
|
-
|
|
14237
|
-
|
|
14238
|
-
|
|
14239
|
-
dragCtx.sign2 = this.template.sign;
|
|
14226
|
+
}
|
|
14227
|
+
}, _callee, this);
|
|
14228
|
+
}));
|
|
14229
|
+
function mousedown(_x) {
|
|
14230
|
+
return _mousedown.apply(this, arguments);
|
|
14240
14231
|
}
|
|
14241
|
-
|
|
14232
|
+
return mousedown;
|
|
14233
|
+
}()
|
|
14242
14234
|
}, {
|
|
14243
14235
|
key: "mousemove",
|
|
14244
14236
|
value: function mousemove(event) {
|
|
@@ -14253,7 +14245,7 @@ var TemplateTool = function () {
|
|
|
14253
14245
|
var targetPos = null;
|
|
14254
14246
|
var eventPos = this.editor.render.page2obj(event);
|
|
14255
14247
|
var struct = this.editor.render.ctab.molecule;
|
|
14256
|
-
if (ci && ci.map === 'bonds' && this.
|
|
14248
|
+
if (ci && ci.map === 'bonds' && !this.isModeFunctionalGroup) {
|
|
14257
14249
|
var bond = struct.bonds.get(ci.id);
|
|
14258
14250
|
var sign = getSign(struct, bond, eventPos);
|
|
14259
14251
|
if (dragCtx.sign1 * this.template.sign > 0) {
|
|
@@ -14284,7 +14276,7 @@ var TemplateTool = function () {
|
|
|
14284
14276
|
var atom = struct.atoms.get(atomId);
|
|
14285
14277
|
targetPos = atom === null || atom === void 0 ? void 0 : atom.pp;
|
|
14286
14278
|
if (targetPos) {
|
|
14287
|
-
extraBond = this.
|
|
14279
|
+
extraBond = this.isModeFunctionalGroup ? true : ketcherCore.Vec2.dist(targetPos, eventPos) > 1;
|
|
14288
14280
|
}
|
|
14289
14281
|
}
|
|
14290
14282
|
}
|
|
@@ -14330,7 +14322,7 @@ var TemplateTool = function () {
|
|
|
14330
14322
|
}
|
|
14331
14323
|
dragCtx.action = action;
|
|
14332
14324
|
this.editor.update(dragCtx.action, true);
|
|
14333
|
-
if (this.
|
|
14325
|
+
if (!this.isModeFunctionalGroup) {
|
|
14334
14326
|
dragCtx.mergeItems = ketcherCore.getItemsToFuse(this.editor, pasteItems);
|
|
14335
14327
|
this.editor.hover(ketcherCore.getHoverToFuse(dragCtx.mergeItems));
|
|
14336
14328
|
}
|
|
@@ -14340,15 +14332,9 @@ var TemplateTool = function () {
|
|
|
14340
14332
|
}, {
|
|
14341
14333
|
key: "mouseup",
|
|
14342
14334
|
value: function mouseup(event) {
|
|
14343
|
-
var
|
|
14335
|
+
var _this2 = this,
|
|
14344
14336
|
_ci;
|
|
14345
14337
|
var dragCtx = this.dragCtx;
|
|
14346
|
-
if (this.targetGroupsIds.length && this.mode !== 'fg') {
|
|
14347
|
-
this.editor.event.removeFG.dispatch({
|
|
14348
|
-
fgIds: this.targetGroupsIds
|
|
14349
|
-
});
|
|
14350
|
-
return;
|
|
14351
|
-
}
|
|
14352
14338
|
if (!dragCtx) {
|
|
14353
14339
|
return true;
|
|
14354
14340
|
}
|
|
@@ -14357,16 +14343,16 @@ var TemplateTool = function () {
|
|
|
14357
14343
|
var struct = restruct.molecule;
|
|
14358
14344
|
var ci = dragCtx.item;
|
|
14359
14345
|
var functionalGroups = struct.functionalGroups;
|
|
14360
|
-
if (dragCtx.action && ci && ci.map === 'bonds' && this.
|
|
14346
|
+
if (dragCtx.action && ci && ci.map === 'bonds' && !this.isModeFunctionalGroup) {
|
|
14361
14347
|
dragCtx.action.perform(restruct);
|
|
14362
14348
|
var promise = ketcherCore.fromTemplateOnBondAction(restruct, this.template, ci.id, this.editor.event, dragCtx.sign1 * dragCtx.sign2 > 0, true);
|
|
14363
14349
|
promise.then(function (_ref) {
|
|
14364
14350
|
var _ref2 = _slicedToArray__default["default"](_ref, 2),
|
|
14365
14351
|
action = _ref2[0],
|
|
14366
14352
|
pasteItems = _ref2[1];
|
|
14367
|
-
var mergeItems = ketcherCore.getItemsToFuse(
|
|
14353
|
+
var mergeItems = ketcherCore.getItemsToFuse(_this2.editor, pasteItems);
|
|
14368
14354
|
action = ketcherCore.fromItemsFuse(restruct, mergeItems).mergeWith(action);
|
|
14369
|
-
|
|
14355
|
+
_this2.editor.update(action);
|
|
14370
14356
|
});
|
|
14371
14357
|
return true;
|
|
14372
14358
|
}
|
|
@@ -14375,7 +14361,7 @@ var TemplateTool = function () {
|
|
|
14375
14361
|
if (this.isSaltOrSolvent) {
|
|
14376
14362
|
addSaltsAndSolventsOnCanvasWithoutMerge(restruct, this.template, dragCtx, this.editor);
|
|
14377
14363
|
return true;
|
|
14378
|
-
} else if (((_ci = ci) === null || _ci === void 0 ? void 0 : _ci.map) === 'functionalGroups' && ketcherCore.FunctionalGroup.isContractedFunctionalGroup(ci.id, functionalGroups) && this.
|
|
14364
|
+
} else if (((_ci = ci) === null || _ci === void 0 ? void 0 : _ci.map) === 'functionalGroups' && ketcherCore.FunctionalGroup.isContractedFunctionalGroup(ci.id, functionalGroups) && this.isModeFunctionalGroup && this.targetGroupsIds.length) {
|
|
14379
14365
|
functionalGroupRemoveAction = new ketcherCore.Action();
|
|
14380
14366
|
var _struct = this.editor.struct();
|
|
14381
14367
|
var _restruct = this.editor.render.ctab;
|
|
@@ -14423,23 +14409,23 @@ var TemplateTool = function () {
|
|
|
14423
14409
|
action = functionalGroupRemoveAction.mergeWith(action);
|
|
14424
14410
|
}
|
|
14425
14411
|
dragCtx.action = action;
|
|
14426
|
-
} else if (ci.map === 'bonds' && this.
|
|
14412
|
+
} else if (ci.map === 'bonds' && !this.isModeFunctionalGroup) {
|
|
14427
14413
|
var _promise = ketcherCore.fromTemplateOnBondAction(restruct, this.template, ci.id, this.editor.event, dragCtx.sign1 * dragCtx.sign2 > 0, true);
|
|
14428
14414
|
_promise.then(function (_ref3) {
|
|
14429
14415
|
var _ref4 = _slicedToArray__default["default"](_ref3, 2),
|
|
14430
14416
|
action = _ref4[0],
|
|
14431
14417
|
pasteItems = _ref4[1];
|
|
14432
|
-
if (
|
|
14433
|
-
var mergeItems = ketcherCore.getItemsToFuse(
|
|
14418
|
+
if (!_this2.isModeFunctionalGroup) {
|
|
14419
|
+
var mergeItems = ketcherCore.getItemsToFuse(_this2.editor, pasteItems);
|
|
14434
14420
|
action = ketcherCore.fromItemsFuse(restruct, mergeItems).mergeWith(action);
|
|
14435
|
-
|
|
14421
|
+
_this2.editor.update(action);
|
|
14436
14422
|
}
|
|
14437
14423
|
});
|
|
14438
14424
|
return true;
|
|
14439
14425
|
}
|
|
14440
14426
|
}
|
|
14441
14427
|
this.editor.selection(null);
|
|
14442
|
-
if (!dragCtx.mergeItems && pasteItems && this.
|
|
14428
|
+
if (!dragCtx.mergeItems && pasteItems && !this.isModeFunctionalGroup) {
|
|
14443
14429
|
dragCtx.mergeItems = ketcherCore.getItemsToFuse(this.editor, pasteItems);
|
|
14444
14430
|
}
|
|
14445
14431
|
dragCtx.action = dragCtx.action ? ketcherCore.fromItemsFuse(restruct, dragCtx.mergeItems).mergeWith(dragCtx.action) : ketcherCore.fromItemsFuse(restruct, dragCtx.mergeItems);
|
|
@@ -14480,8 +14466,12 @@ function addSaltsAndSolventsOnCanvasWithoutMerge(restruct, template, dragCtx, ed
|
|
|
14480
14466
|
}
|
|
14481
14467
|
function getTemplateMode(tmpl) {
|
|
14482
14468
|
var _tmpl$props;
|
|
14483
|
-
if (tmpl.mode)
|
|
14484
|
-
|
|
14469
|
+
if (tmpl.mode) {
|
|
14470
|
+
return tmpl.mode;
|
|
14471
|
+
}
|
|
14472
|
+
if (['Functional Groups', 'Salts and Solvents'].includes((_tmpl$props = tmpl.props) === null || _tmpl$props === void 0 ? void 0 : _tmpl$props.group)) {
|
|
14473
|
+
return MODES.FG;
|
|
14474
|
+
}
|
|
14485
14475
|
return null;
|
|
14486
14476
|
}
|
|
14487
14477
|
function getSign(molecule, bond, v) {
|
|
@@ -16000,7 +15990,7 @@ var HoverIcon = function () {
|
|
|
16000
15990
|
}, {
|
|
16001
15991
|
key: "onMouseLeave",
|
|
16002
15992
|
value: function onMouseLeave(event) {
|
|
16003
|
-
if (!this.isOverLoader(event)) {
|
|
15993
|
+
if (!this.isOverLoader(event) && this.isShown) {
|
|
16004
15994
|
this.shouldBeShownWhenMouseBack = true;
|
|
16005
15995
|
this.hide();
|
|
16006
15996
|
}
|
|
@@ -16025,9 +16015,12 @@ var HoverIcon = function () {
|
|
|
16025
16015
|
}
|
|
16026
16016
|
}, {
|
|
16027
16017
|
key: "hide",
|
|
16028
|
-
value: function hide() {
|
|
16018
|
+
value: function hide(restShouldBeShownWhenMouseBack) {
|
|
16029
16019
|
this.element.hide();
|
|
16030
16020
|
this.isShown = false;
|
|
16021
|
+
if (restShouldBeShownWhenMouseBack) {
|
|
16022
|
+
this.shouldBeShownWhenMouseBack = false;
|
|
16023
|
+
}
|
|
16031
16024
|
}
|
|
16032
16025
|
}, {
|
|
16033
16026
|
key: "initialize",
|
|
@@ -16052,9 +16045,8 @@ var HoverIcon = function () {
|
|
|
16052
16045
|
this.element = icon.element;
|
|
16053
16046
|
this._fill = icon.fill;
|
|
16054
16047
|
this._label = icon.label;
|
|
16055
|
-
this.isShown = true;
|
|
16056
16048
|
this.shouldBeShownWhenMouseBack = false;
|
|
16057
|
-
this.
|
|
16049
|
+
this.hide();
|
|
16058
16050
|
}
|
|
16059
16051
|
}]);
|
|
16060
16052
|
return HoverIcon;
|
|
@@ -16159,7 +16151,7 @@ var Editor$3 = function () {
|
|
|
16159
16151
|
var tool = new tools[name](this, opts);
|
|
16160
16152
|
var isAtomToolChosen = name === 'atom';
|
|
16161
16153
|
if (!isAtomToolChosen) {
|
|
16162
|
-
this.hoverIcon.hide();
|
|
16154
|
+
this.hoverIcon.hide(true);
|
|
16163
16155
|
}
|
|
16164
16156
|
if (!tool || tool.isNotActiveTool) {
|
|
16165
16157
|
return null;
|
|
@@ -16218,7 +16210,7 @@ var Editor$3 = function () {
|
|
|
16218
16210
|
this.render = new ketcherCore.Render(this.render.clientArea, Object.assign({
|
|
16219
16211
|
scale: SCALE
|
|
16220
16212
|
}, value));
|
|
16221
|
-
this.
|
|
16213
|
+
this.struct(struct);
|
|
16222
16214
|
this.render.setZoom(zoom);
|
|
16223
16215
|
this.render.update();
|
|
16224
16216
|
return this.render.options;
|
|
@@ -16272,7 +16264,9 @@ var Editor$3 = function () {
|
|
|
16272
16264
|
}
|
|
16273
16265
|
this.render.ctab.setSelection(this._selection);
|
|
16274
16266
|
this.event.selectionChange.dispatch(this._selection);
|
|
16275
|
-
this.render.update(
|
|
16267
|
+
this.render.update(false, null, {
|
|
16268
|
+
resizeCanvas: false
|
|
16269
|
+
});
|
|
16276
16270
|
return this._selection;
|
|
16277
16271
|
}
|
|
16278
16272
|
}, {
|
|
@@ -16291,7 +16285,7 @@ var Editor$3 = function () {
|
|
|
16291
16285
|
key: "update",
|
|
16292
16286
|
value: function update(action, ignoreHistory) {
|
|
16293
16287
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
|
16294
|
-
|
|
16288
|
+
resizeCanvas: true
|
|
16295
16289
|
};
|
|
16296
16290
|
if (action === true) {
|
|
16297
16291
|
this.render.update(true, null, options);
|
|
@@ -18054,8 +18048,7 @@ function ownKeys$A(object, enumerableOnly) { var keys = Object.keys(object); if
|
|
|
18054
18048
|
function _objectSpread$A(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$A(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$A(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
18055
18049
|
function GenericInput(_ref) {
|
|
18056
18050
|
_ref.schema;
|
|
18057
|
-
var
|
|
18058
|
-
value = _ref$value === void 0 ? '' : _ref$value,
|
|
18051
|
+
var value = _ref.value,
|
|
18059
18052
|
onChange = _ref.onChange,
|
|
18060
18053
|
innerRef = _ref.innerRef,
|
|
18061
18054
|
_ref$type = _ref.type,
|
|
@@ -18077,7 +18070,7 @@ function GenericInput(_ref) {
|
|
|
18077
18070
|
return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
18078
18071
|
children: [jsxRuntime.jsx("input", _objectSpread$A({
|
|
18079
18072
|
type: type,
|
|
18080
|
-
value: value,
|
|
18073
|
+
value: value !== null && value !== void 0 ? value : '',
|
|
18081
18074
|
onInput: onChange,
|
|
18082
18075
|
onChange: onChange,
|
|
18083
18076
|
className: clsx__default["default"](classes$A.input, classes$A.genericInput),
|
|
@@ -24118,8 +24111,8 @@ var KetcherBuilder = function () {
|
|
|
24118
24111
|
initApp(element, staticResourcesUrl, {
|
|
24119
24112
|
buttons: buttons || {},
|
|
24120
24113
|
errorHandler: errorHandler || null,
|
|
24121
|
-
version: "2.9.0-rc.
|
|
24122
|
-
buildDate: "2023-
|
|
24114
|
+
version: "2.9.0-rc.7" ,
|
|
24115
|
+
buildDate: "2023-04-19T07:45:20" ,
|
|
24123
24116
|
buildNumber: ''
|
|
24124
24117
|
}, structService, resolve);
|
|
24125
24118
|
});
|
|
@@ -24232,4 +24225,5 @@ function Editor(props) {
|
|
|
24232
24225
|
exports.Editor = Editor;
|
|
24233
24226
|
exports.KETCHER_INIT_EVENT_NAME = KETCHER_INIT_EVENT_NAME;
|
|
24234
24227
|
exports.KETCHER_SAVED_SETTINGS_KEY = KETCHER_SAVED_SETTINGS_KEY;
|
|
24228
|
+
exports.MODES = MODES;
|
|
24235
24229
|
//# sourceMappingURL=index.js.map
|