@eclipse-glsp/client 0.9.0-next.da0ffb79 → 0.9.0-next.e0116720
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/LICENSE +642 -277
- package/lib/base/types.d.ts +1 -0
- package/lib/base/types.d.ts.map +1 -1
- package/lib/base/types.js +2 -1
- package/lib/base/types.js.map +1 -1
- package/lib/features/layout/di.config.d.ts +0 -4
- package/lib/features/layout/di.config.d.ts.map +1 -1
- package/lib/features/layout/di.config.js +1 -37
- package/lib/features/layout/di.config.js.map +1 -1
- package/lib/features/tools/marquee-behavior.d.ts +42 -0
- package/lib/features/tools/marquee-behavior.d.ts.map +1 -0
- package/lib/features/tools/marquee-behavior.js +128 -0
- package/lib/features/tools/marquee-behavior.js.map +1 -0
- package/lib/features/tools/marquee-behavior.spec.d.ts +17 -0
- package/lib/features/tools/marquee-behavior.spec.d.ts.map +1 -0
- package/lib/features/tools/marquee-behavior.spec.js +165 -0
- package/lib/features/tools/marquee-behavior.spec.js.map +1 -0
- package/lib/features/tools/marquee-mouse-tool.d.ts +9 -14
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.js +30 -119
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/package.json +3 -3
- package/src/base/types.ts +2 -1
- package/src/features/layout/di.config.ts +3 -25
- package/src/features/tools/marquee-behavior.spec.ts +175 -0
- package/src/features/tools/marquee-behavior.ts +158 -0
- package/src/features/tools/marquee-mouse-tool.ts +46 -144
- package/src/index.ts +1 -0
package/lib/base/types.d.ts
CHANGED
package/lib/base/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/base/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/base/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;CAuBtB,CAAC"}
|
package/lib/base/types.js
CHANGED
|
@@ -37,6 +37,7 @@ exports.GLSP_TYPES = {
|
|
|
37
37
|
ITool: Symbol.for('ITool'),
|
|
38
38
|
IDefaultTool: Symbol.for('IDefaultTool'),
|
|
39
39
|
IEditModeListener: Symbol.for('IEditModeListener'),
|
|
40
|
-
LayoutRegistration: Symbol.for('LayoutRegistration')
|
|
40
|
+
LayoutRegistration: Symbol.for('LayoutRegistration'),
|
|
41
|
+
IMarqueeBehavior: Symbol.for('IMarqueeBehavior')
|
|
41
42
|
};
|
|
42
43
|
//# sourceMappingURL=types.js.map
|
package/lib/base/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/base/types.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;kFAckF;AACrE,QAAA,UAAU,GAAG;IACtB,sBAAsB,EAAE,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC;IAC5D,qCAAqC,EAAE,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC;IAC1F,6BAA6B,EAAE,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC;IACnE,yBAAyB,EAAE,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAClE,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC;IACzC,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAClD,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC;IACvD,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAChD,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAClD,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACpD,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC;IAClC,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACtD,2BAA2B,EAAE,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC;IACtE,4BAA4B,EAAE,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC;IACxE,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC;IACxD,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAClD,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAChD,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;IACxC,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAClD,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/base/types.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;kFAckF;AACrE,QAAA,UAAU,GAAG;IACtB,sBAAsB,EAAE,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC;IAC5D,qCAAqC,EAAE,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC;IAC1F,6BAA6B,EAAE,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC;IACnE,yBAAyB,EAAE,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAClE,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC;IACzC,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAClD,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC;IACvD,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAChD,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAClD,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACpD,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC;IAClC,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACtD,2BAA2B,EAAE,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC;IACtE,4BAA4B,EAAE,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC;IACxE,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC;IACxD,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAClD,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAChD,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;IACxC,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAClD,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACpD,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC;CACnD,CAAC"}
|
|
@@ -14,10 +14,6 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { ContainerModule } from 'inversify';
|
|
17
|
-
import { ILogger, LayoutRegistration, LayoutRegistry } from 'sprotty';
|
|
18
17
|
declare const layoutCommandsModule: ContainerModule;
|
|
19
18
|
export default layoutCommandsModule;
|
|
20
|
-
export declare class OverridableLayoutRegistry extends LayoutRegistry {
|
|
21
|
-
constructor(layouts: LayoutRegistration[] | undefined, logger: ILogger);
|
|
22
|
-
}
|
|
23
19
|
//# sourceMappingURL=di.config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"di.config.d.ts","sourceRoot":"","sources":["../../../src/features/layout/di.config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"di.config.d.ts","sourceRoot":"","sources":["../../../src/features/layout/di.config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAM5C,QAAA,MAAM,oBAAoB,iBAMxB,CAAC;AAEH,eAAe,oBAAoB,CAAC"}
|
|
@@ -1,18 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.OverridableLayoutRegistry = void 0;
|
|
16
3
|
/********************************************************************************
|
|
17
4
|
* Copyright (c) 2019-2021 EclipseSource and others.
|
|
18
5
|
*
|
|
@@ -36,31 +23,8 @@ const vbox_layout_1 = require("./vbox-layout");
|
|
|
36
23
|
const layoutCommandsModule = new inversify_1.ContainerModule((bind, _unbind, isBound, rebind) => {
|
|
37
24
|
sprotty_1.configureCommand({ bind, isBound }, layout_commands_1.ResizeElementsCommand);
|
|
38
25
|
sprotty_1.configureCommand({ bind, isBound }, layout_commands_1.AlignElementsCommand);
|
|
39
|
-
sprotty_1.
|
|
26
|
+
rebind(sprotty_1.VBoxLayouter).to(vbox_layout_1.VBoxLayouterExt);
|
|
40
27
|
sprotty_1.configureLayout({ bind, isBound }, freeform_layout_1.FreeFormLayouter.KIND, freeform_layout_1.FreeFormLayouter);
|
|
41
|
-
bind(OverridableLayoutRegistry).toSelf().inSingletonScope();
|
|
42
|
-
rebind(sprotty_1.TYPES.LayoutRegistry).toService(OverridableLayoutRegistry);
|
|
43
28
|
});
|
|
44
29
|
exports.default = layoutCommandsModule;
|
|
45
|
-
let OverridableLayoutRegistry = class OverridableLayoutRegistry extends sprotty_1.LayoutRegistry {
|
|
46
|
-
// ensure logger is already used in constructor as otherwise not usable
|
|
47
|
-
constructor(layouts = [], logger) {
|
|
48
|
-
super();
|
|
49
|
-
layouts.forEach(layout => {
|
|
50
|
-
if (this.hasKey(layout.layoutKind)) {
|
|
51
|
-
logger.warn('Layout kind is already defined and will be overridden: ', layout.layoutKind);
|
|
52
|
-
this.deregister(layout.layoutKind);
|
|
53
|
-
}
|
|
54
|
-
// allow overriding an existing layout kind
|
|
55
|
-
this.register(layout.layoutKind, layout.factory());
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
OverridableLayoutRegistry = __decorate([
|
|
60
|
-
inversify_1.injectable(),
|
|
61
|
-
__param(0, inversify_1.multiInject(sprotty_1.TYPES.LayoutRegistration)), __param(0, inversify_1.optional()),
|
|
62
|
-
__param(1, inversify_1.inject(sprotty_1.TYPES.ILogger)),
|
|
63
|
-
__metadata("design:paramtypes", [Array, Object])
|
|
64
|
-
], OverridableLayoutRegistry);
|
|
65
|
-
exports.OverridableLayoutRegistry = OverridableLayoutRegistry;
|
|
66
30
|
//# sourceMappingURL=di.config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"di.config.js","sourceRoot":"","sources":["../../../src/features/layout/di.config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"di.config.js","sourceRoot":"","sources":["../../../src/features/layout/di.config.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,yCAA4C;AAC5C,qCAA0E;AAC1E,uDAAqD;AACrD,uDAAgF;AAChF,+CAAgD;AAEhD,MAAM,oBAAoB,GAAG,IAAI,2BAAe,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IAChF,0BAAgB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,uCAAqB,CAAC,CAAC;IAC3D,0BAAgB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,sCAAoB,CAAC,CAAC;IAE1D,MAAM,CAAC,sBAAY,CAAC,CAAC,EAAE,CAAC,6BAAe,CAAC,CAAC;IACzC,yBAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,kCAAgB,CAAC,IAAI,EAAE,kCAAgB,CAAC,CAAC;AAChF,CAAC,CAAC,CAAC;AAEH,kBAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2021 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { Bounds, Point } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { DrawMarqueeAction } from '../tool-feedback/marquee-tool-feedback';
|
|
18
|
+
export interface IMarqueeBehavior {
|
|
19
|
+
readonly entireElement: boolean;
|
|
20
|
+
readonly entireEdge: boolean;
|
|
21
|
+
}
|
|
22
|
+
export declare class MarqueeUtil {
|
|
23
|
+
protected startPoint: Point;
|
|
24
|
+
protected currentPoint: Point;
|
|
25
|
+
protected marqueeBehavior: IMarqueeBehavior;
|
|
26
|
+
constructor(marqueeBehavior?: IMarqueeBehavior);
|
|
27
|
+
updateStartPoint(position: Point): void;
|
|
28
|
+
updateCurrentPoint(position: Point): void;
|
|
29
|
+
drawMarqueeAction(): DrawMarqueeAction;
|
|
30
|
+
isEdgePathMarked(path: string | null): boolean;
|
|
31
|
+
isEdgeMarked(points: Point[]): boolean;
|
|
32
|
+
isNodeMarked(elementBounds: Bounds): boolean;
|
|
33
|
+
private isEntireEdgeMarked;
|
|
34
|
+
private isPartOfEdgeMarked;
|
|
35
|
+
private isLineMarked;
|
|
36
|
+
private lineIntersect;
|
|
37
|
+
private pointInRect;
|
|
38
|
+
private isElementBetweenXAxis;
|
|
39
|
+
private isElementBetweenYAxis;
|
|
40
|
+
private isBetween;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=marquee-behavior.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marquee-behavior.d.ts","sourceRoot":"","sources":["../../../src/features/tools/marquee-behavior.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAChC;AAED,qBAAa,WAAW;IACpB,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC;IAC5B,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC;IAC9B,SAAS,CAAC,eAAe,EAAE,gBAAgB,CAAC;gBAEhC,eAAe,CAAC,EAAE,gBAAgB;IAQ9C,gBAAgB,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI;IAIvC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI;IAIzC,iBAAiB,IAAI,iBAAiB;IAItC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAc9C,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO;IAItC,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAY5C,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,SAAS;CAGpB"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/********************************************************************************
|
|
3
|
+
* Copyright (c) 2021 EclipseSource and others.
|
|
4
|
+
*
|
|
5
|
+
* This program and the accompanying materials are made available under the
|
|
6
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
*
|
|
9
|
+
* This Source Code may also be made available under the following Secondary
|
|
10
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
* with the GNU Classpath Exception which is available at
|
|
13
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
*
|
|
15
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
********************************************************************************/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.MarqueeUtil = void 0;
|
|
19
|
+
const sprotty_1 = require("sprotty");
|
|
20
|
+
const marquee_tool_feedback_1 = require("../tool-feedback/marquee-tool-feedback");
|
|
21
|
+
class MarqueeUtil {
|
|
22
|
+
constructor(marqueeBehavior) {
|
|
23
|
+
if (marqueeBehavior) {
|
|
24
|
+
this.marqueeBehavior = marqueeBehavior;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
this.marqueeBehavior = { entireElement: false, entireEdge: false };
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
updateStartPoint(position) {
|
|
31
|
+
this.startPoint = position;
|
|
32
|
+
}
|
|
33
|
+
updateCurrentPoint(position) {
|
|
34
|
+
this.currentPoint = position;
|
|
35
|
+
}
|
|
36
|
+
drawMarqueeAction() {
|
|
37
|
+
return new marquee_tool_feedback_1.DrawMarqueeAction(this.startPoint, this.currentPoint);
|
|
38
|
+
}
|
|
39
|
+
isEdgePathMarked(path) {
|
|
40
|
+
if (!path) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
const points = path
|
|
44
|
+
.split(/M|L/)
|
|
45
|
+
.filter(p => p)
|
|
46
|
+
.map(p => {
|
|
47
|
+
const coord = p.split(',');
|
|
48
|
+
return { x: parseInt(coord[0], 10), y: parseInt(coord[1], 10) };
|
|
49
|
+
});
|
|
50
|
+
return this.isEdgeMarked(points);
|
|
51
|
+
}
|
|
52
|
+
isEdgeMarked(points) {
|
|
53
|
+
return this.marqueeBehavior.entireEdge ? this.isEntireEdgeMarked(points) : this.isPartOfEdgeMarked(points);
|
|
54
|
+
}
|
|
55
|
+
isNodeMarked(elementBounds) {
|
|
56
|
+
const horizontallyIn = this.startPoint.x < this.currentPoint.x
|
|
57
|
+
? this.isElementBetweenXAxis(elementBounds, this.startPoint.x, this.currentPoint.x)
|
|
58
|
+
: this.isElementBetweenXAxis(elementBounds, this.currentPoint.x, this.startPoint.x);
|
|
59
|
+
const verticallyIn = this.startPoint.y < this.currentPoint.y
|
|
60
|
+
? this.isElementBetweenYAxis(elementBounds, this.startPoint.y, this.currentPoint.y)
|
|
61
|
+
: this.isElementBetweenYAxis(elementBounds, this.currentPoint.y, this.startPoint.y);
|
|
62
|
+
return horizontallyIn && verticallyIn;
|
|
63
|
+
}
|
|
64
|
+
isEntireEdgeMarked(points) {
|
|
65
|
+
for (let i = 0; i < points.length; i++) {
|
|
66
|
+
if (!this.pointInRect(points[i])) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
isPartOfEdgeMarked(points) {
|
|
73
|
+
for (let i = 0; i < points.length - 1; i++) {
|
|
74
|
+
if (this.isLineMarked(points[i], points[i + 1])) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
isLineMarked(point1, point2) {
|
|
81
|
+
const line = new sprotty_1.PointToPointLine(point1, point2);
|
|
82
|
+
return (this.pointInRect(point1) ||
|
|
83
|
+
this.pointInRect(point2) ||
|
|
84
|
+
this.lineIntersect(line, this.startPoint, { x: this.startPoint.x, y: this.currentPoint.y }) ||
|
|
85
|
+
this.lineIntersect(line, this.startPoint, { x: this.currentPoint.x, y: this.startPoint.y }) ||
|
|
86
|
+
this.lineIntersect(line, { x: this.currentPoint.x, y: this.startPoint.y }, this.currentPoint) ||
|
|
87
|
+
this.lineIntersect(line, { x: this.startPoint.x, y: this.currentPoint.y }, this.currentPoint));
|
|
88
|
+
}
|
|
89
|
+
lineIntersect(line, p1, p2) {
|
|
90
|
+
return line.intersection(new sprotty_1.PointToPointLine(p1, p2)) !== undefined;
|
|
91
|
+
}
|
|
92
|
+
pointInRect(point) {
|
|
93
|
+
const boolX = this.startPoint.x <= this.currentPoint.x
|
|
94
|
+
? this.isBetween(point.x, this.startPoint.x, this.currentPoint.x)
|
|
95
|
+
: this.isBetween(point.x, this.currentPoint.x, this.startPoint.x);
|
|
96
|
+
const boolY = this.startPoint.y <= this.currentPoint.y
|
|
97
|
+
? this.isBetween(point.y, this.startPoint.y, this.currentPoint.y)
|
|
98
|
+
: this.isBetween(point.y, this.currentPoint.y, this.startPoint.y);
|
|
99
|
+
return boolX && boolY;
|
|
100
|
+
}
|
|
101
|
+
isElementBetweenXAxis(elementBounds, marqueeLeft, marqueeRight) {
|
|
102
|
+
const leftEdge = this.isBetween(elementBounds.x, marqueeLeft, marqueeRight);
|
|
103
|
+
const rightEdge = this.isBetween(elementBounds.x + elementBounds.width, marqueeLeft, marqueeRight);
|
|
104
|
+
if (this.marqueeBehavior.entireElement) {
|
|
105
|
+
return leftEdge && rightEdge;
|
|
106
|
+
}
|
|
107
|
+
return (leftEdge ||
|
|
108
|
+
rightEdge ||
|
|
109
|
+
this.isBetween(marqueeLeft, elementBounds.x, elementBounds.x + elementBounds.width) ||
|
|
110
|
+
this.isBetween(marqueeRight, elementBounds.x, elementBounds.x + elementBounds.width));
|
|
111
|
+
}
|
|
112
|
+
isElementBetweenYAxis(elementBounds, marqueeTop, marqueeBottom) {
|
|
113
|
+
const topEdge = this.isBetween(elementBounds.y, marqueeTop, marqueeBottom);
|
|
114
|
+
const bottomEdge = this.isBetween(elementBounds.y + elementBounds.height, marqueeTop, marqueeBottom);
|
|
115
|
+
if (this.marqueeBehavior.entireElement) {
|
|
116
|
+
return topEdge && bottomEdge;
|
|
117
|
+
}
|
|
118
|
+
return (topEdge ||
|
|
119
|
+
bottomEdge ||
|
|
120
|
+
this.isBetween(marqueeTop, elementBounds.y, elementBounds.y + elementBounds.height) ||
|
|
121
|
+
this.isBetween(marqueeBottom, elementBounds.y, elementBounds.y + elementBounds.height));
|
|
122
|
+
}
|
|
123
|
+
isBetween(x, lower, upper) {
|
|
124
|
+
return lower <= x && x <= upper;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
exports.MarqueeUtil = MarqueeUtil;
|
|
128
|
+
//# sourceMappingURL=marquee-behavior.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marquee-behavior.js","sourceRoot":"","sources":["../../../src/features/tools/marquee-behavior.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2021 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=marquee-behavior.spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marquee-behavior.spec.d.ts","sourceRoot":"","sources":["../../../src/features/tools/marquee-behavior.spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/********************************************************************************
|
|
3
|
+
* Copyright (c) 2021 EclipseSource and others.
|
|
4
|
+
*
|
|
5
|
+
* This program and the accompanying materials are made available under the
|
|
6
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
*
|
|
9
|
+
* This Source Code may also be made available under the following Secondary
|
|
10
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
* with the GNU Classpath Exception which is available at
|
|
13
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
*
|
|
15
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
********************************************************************************/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const chai_1 = require("chai");
|
|
19
|
+
const marquee_behavior_1 = require("./marquee-behavior");
|
|
20
|
+
describe('MarqueeUtil', () => {
|
|
21
|
+
function initUtil(marqueeBehavior) {
|
|
22
|
+
const util = new marquee_behavior_1.MarqueeUtil(marqueeBehavior);
|
|
23
|
+
util.updateStartPoint({ x: 0, y: 0 });
|
|
24
|
+
util.updateCurrentPoint({ x: 0, y: 0 });
|
|
25
|
+
return util;
|
|
26
|
+
}
|
|
27
|
+
describe('Node marquee', () => {
|
|
28
|
+
const node = { x: 20, y: 20, width: 200, height: 50 };
|
|
29
|
+
it('touch element', () => {
|
|
30
|
+
const util = initUtil();
|
|
31
|
+
chai_1.expect(util.isNodeMarked(node)).is.equals(false);
|
|
32
|
+
util.updateCurrentPoint({ x: 30, y: 50 });
|
|
33
|
+
chai_1.expect(util.isNodeMarked(node)).is.equals(true);
|
|
34
|
+
util.updateCurrentPoint({ x: 250, y: 85 });
|
|
35
|
+
chai_1.expect(util.isNodeMarked(node)).is.equals(true);
|
|
36
|
+
util.updateStartPoint({ x: 30, y: 25 });
|
|
37
|
+
chai_1.expect(util.isNodeMarked(node)).is.equals(true);
|
|
38
|
+
});
|
|
39
|
+
it('touch element (reverse)', () => {
|
|
40
|
+
const util = initUtil();
|
|
41
|
+
chai_1.expect(util.isNodeMarked(node)).is.equals(false);
|
|
42
|
+
util.updateStartPoint({ x: 30, y: 50 });
|
|
43
|
+
chai_1.expect(util.isNodeMarked(node)).is.equals(true);
|
|
44
|
+
util.updateStartPoint({ x: 250, y: 85 });
|
|
45
|
+
chai_1.expect(util.isNodeMarked(node)).is.equals(true);
|
|
46
|
+
util.updateCurrentPoint({ x: 30, y: 25 });
|
|
47
|
+
chai_1.expect(util.isNodeMarked(node)).is.equals(true);
|
|
48
|
+
});
|
|
49
|
+
it('mark entire element', () => {
|
|
50
|
+
const util = initUtil({ entireElement: true, entireEdge: false });
|
|
51
|
+
chai_1.expect(util.isNodeMarked(node)).is.equals(false);
|
|
52
|
+
util.updateCurrentPoint({ x: 30, y: 50 });
|
|
53
|
+
chai_1.expect(util.isNodeMarked(node)).is.equals(false);
|
|
54
|
+
util.updateCurrentPoint({ x: 250, y: 85 });
|
|
55
|
+
chai_1.expect(util.isNodeMarked(node)).is.equals(true);
|
|
56
|
+
util.updateStartPoint({ x: 30, y: 85 });
|
|
57
|
+
chai_1.expect(util.isNodeMarked(node)).is.equals(false);
|
|
58
|
+
});
|
|
59
|
+
it('mark entire element (reverse)', () => {
|
|
60
|
+
const util = initUtil({ entireElement: true, entireEdge: false });
|
|
61
|
+
chai_1.expect(util.isNodeMarked(node)).is.equals(false);
|
|
62
|
+
util.updateStartPoint({ x: 30, y: 50 });
|
|
63
|
+
chai_1.expect(util.isNodeMarked(node)).is.equals(false);
|
|
64
|
+
util.updateStartPoint({ x: 250, y: 85 });
|
|
65
|
+
chai_1.expect(util.isNodeMarked(node)).is.equals(true);
|
|
66
|
+
util.updateCurrentPoint({ x: 30, y: 85 });
|
|
67
|
+
chai_1.expect(util.isNodeMarked(node)).is.equals(false);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
describe('Edge marquee', () => {
|
|
71
|
+
const edge = [
|
|
72
|
+
{ x: 20, y: 40 },
|
|
73
|
+
{ x: 40, y: 20 }
|
|
74
|
+
];
|
|
75
|
+
const edge2 = [
|
|
76
|
+
{ x: 20, y: 20 },
|
|
77
|
+
{ x: 40, y: 40 },
|
|
78
|
+
{ x: 50, y: 10 }
|
|
79
|
+
];
|
|
80
|
+
it('touch edge', () => {
|
|
81
|
+
const util = initUtil();
|
|
82
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(false);
|
|
83
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(false);
|
|
84
|
+
util.updateCurrentPoint({ x: 20, y: 20 });
|
|
85
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(false);
|
|
86
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(true);
|
|
87
|
+
util.updateCurrentPoint({ x: 30, y: 30 });
|
|
88
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(true);
|
|
89
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(true);
|
|
90
|
+
util.updateCurrentPoint({ x: 50, y: 50 });
|
|
91
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(true);
|
|
92
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(true);
|
|
93
|
+
util.updateStartPoint({ x: 25, y: 25 });
|
|
94
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(true);
|
|
95
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(true);
|
|
96
|
+
});
|
|
97
|
+
it('touch edge (reverse)', () => {
|
|
98
|
+
const util = initUtil();
|
|
99
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(false);
|
|
100
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(false);
|
|
101
|
+
util.updateStartPoint({ x: 20, y: 20 });
|
|
102
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(false);
|
|
103
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(true);
|
|
104
|
+
util.updateStartPoint({ x: 30, y: 30 });
|
|
105
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(true);
|
|
106
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(true);
|
|
107
|
+
util.updateStartPoint({ x: 50, y: 50 });
|
|
108
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(true);
|
|
109
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(true);
|
|
110
|
+
util.updateCurrentPoint({ x: 25, y: 25 });
|
|
111
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(true);
|
|
112
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(true);
|
|
113
|
+
});
|
|
114
|
+
it('mark entire edge', () => {
|
|
115
|
+
const util = initUtil({ entireElement: false, entireEdge: true });
|
|
116
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(false);
|
|
117
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(false);
|
|
118
|
+
util.updateCurrentPoint({ x: 20, y: 20 });
|
|
119
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(false);
|
|
120
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(false);
|
|
121
|
+
util.updateCurrentPoint({ x: 30, y: 30 });
|
|
122
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(false);
|
|
123
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(false);
|
|
124
|
+
util.updateCurrentPoint({ x: 45, y: 50 });
|
|
125
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(true);
|
|
126
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(false);
|
|
127
|
+
util.updateCurrentPoint({ x: 55, y: 50 });
|
|
128
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(true);
|
|
129
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(true);
|
|
130
|
+
util.updateStartPoint({ x: 25, y: 25 });
|
|
131
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(false);
|
|
132
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(false);
|
|
133
|
+
});
|
|
134
|
+
it('mark entire edge (reverse)', () => {
|
|
135
|
+
const util = initUtil({ entireElement: false, entireEdge: true });
|
|
136
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(false);
|
|
137
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(false);
|
|
138
|
+
util.updateStartPoint({ x: 20, y: 20 });
|
|
139
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(false);
|
|
140
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(false);
|
|
141
|
+
util.updateStartPoint({ x: 30, y: 30 });
|
|
142
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(false);
|
|
143
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(false);
|
|
144
|
+
util.updateStartPoint({ x: 45, y: 50 });
|
|
145
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(true);
|
|
146
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(false);
|
|
147
|
+
util.updateStartPoint({ x: 55, y: 50 });
|
|
148
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(true);
|
|
149
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(true);
|
|
150
|
+
util.updateCurrentPoint({ x: 25, y: 25 });
|
|
151
|
+
chai_1.expect(util.isEdgeMarked(edge)).is.equals(false);
|
|
152
|
+
chai_1.expect(util.isEdgeMarked(edge2)).is.equals(false);
|
|
153
|
+
});
|
|
154
|
+
it('edge path should be marked', () => {
|
|
155
|
+
const path = 'M 599.968775008469,272.3972942960205 L 677.0904664855072,232';
|
|
156
|
+
const util = initUtil({ entireElement: false, entireEdge: true });
|
|
157
|
+
chai_1.expect(util.isEdgePathMarked(path)).is.equals(false);
|
|
158
|
+
util.updateCurrentPoint({ x: 600, y: 300 });
|
|
159
|
+
chai_1.expect(util.isEdgePathMarked(path)).is.equals(false);
|
|
160
|
+
util.updateCurrentPoint({ x: 700, y: 300 });
|
|
161
|
+
chai_1.expect(util.isEdgePathMarked(path)).is.equals(true);
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
//# sourceMappingURL=marquee-behavior.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marquee-behavior.spec.js","sourceRoot":"","sources":["../../../src/features/tools/marquee-behavior.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,14 +13,16 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { Action
|
|
17
|
-
import { BoundsAware, KeyListener, SModelElement } from 'sprotty';
|
|
16
|
+
import { Action } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { BoundsAware, KeyListener, SModelElement, SModelRoot } from 'sprotty';
|
|
18
18
|
import { DOMHelper } from 'sprotty/lib/base/views/dom-helper';
|
|
19
19
|
import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
|
|
20
|
-
import { BaseGLSPTool } from '
|
|
20
|
+
import { BaseGLSPTool } from './base-glsp-tool';
|
|
21
|
+
import { IMarqueeBehavior, MarqueeUtil } from './marquee-behavior';
|
|
21
22
|
export declare class MarqueeMouseTool extends BaseGLSPTool {
|
|
22
23
|
static ID: string;
|
|
23
24
|
protected domHelper: DOMHelper;
|
|
25
|
+
protected marqueeBehavior: IMarqueeBehavior;
|
|
24
26
|
protected marqueeMouseListener: MarqueeMouseListener;
|
|
25
27
|
protected shiftKeyListener: ShiftKeyListener;
|
|
26
28
|
get id(): string;
|
|
@@ -28,24 +30,17 @@ export declare class MarqueeMouseTool extends BaseGLSPTool {
|
|
|
28
30
|
disable(): void;
|
|
29
31
|
}
|
|
30
32
|
export declare class MarqueeMouseListener extends DragAwareMouseListener {
|
|
31
|
-
protected startPoint: Point;
|
|
32
|
-
protected currentPoint: Point;
|
|
33
33
|
protected domHelper: DOMHelper;
|
|
34
|
+
protected marqueeUtil: MarqueeUtil;
|
|
35
|
+
protected nodes: (SModelElement & BoundsAware)[];
|
|
36
|
+
protected edges: SVGGElement[];
|
|
34
37
|
protected previouslySelected: string[];
|
|
35
38
|
protected isActive: boolean;
|
|
36
|
-
constructor(domHelper: DOMHelper);
|
|
39
|
+
constructor(domHelper: DOMHelper, root: SModelRoot, marqueeBehavior: IMarqueeBehavior | undefined);
|
|
37
40
|
mouseDown(target: SModelElement, event: MouseEvent): Action[];
|
|
38
41
|
mouseMove(target: SModelElement, event: MouseEvent): Action[];
|
|
39
42
|
mouseUp(target: SModelElement, event: MouseEvent): Action[];
|
|
40
|
-
getMarkedEdges(root: SModelElement): string[];
|
|
41
43
|
isEdgeMarked(element: SVGElement): boolean;
|
|
42
|
-
isLineMarked(point1: Point, point2: Point): boolean;
|
|
43
|
-
linesIntersect(p1: Point, p2: Point, p3: Point, p4: Point): boolean;
|
|
44
|
-
pointInRect(point: Point): boolean;
|
|
45
|
-
isNodeMarked(element: SModelElement & BoundsAware): boolean;
|
|
46
|
-
isElementBetweenXAxis(element: SModelElement & BoundsAware, marqueeLeft: number, marqueeRight: number): boolean;
|
|
47
|
-
isElementBetweenYAxis(element: SModelElement & BoundsAware, marqueeTop: number, marqueeBottom: number): boolean;
|
|
48
|
-
isBetween(x: number, lower: number, upper: number): boolean;
|
|
49
44
|
}
|
|
50
45
|
export declare class ShiftKeyListener extends KeyListener {
|
|
51
46
|
keyUp(element: SModelElement, event: KeyboardEvent): Action[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marquee-mouse-tool.d.ts","sourceRoot":"","sources":["../../../src/features/tools/marquee-mouse-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"marquee-mouse-tool.d.ts","sourceRoot":"","sources":["../../../src/features/tools/marquee-mouse-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAE,MAAM,EAAgB,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EACH,WAAW,EAIX,WAAW,EAEX,aAAa,EACb,UAAU,EAGb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAI9E,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEnE,qBACa,gBAAiB,SAAQ,YAAY;IAC9C,MAAM,CAAC,EAAE,SAA6B;IAEb,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;IACP,SAAS,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAE7F,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IACrD,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAA0B;IAEtE,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,MAAM,IAAI,IAAI;IAOd,OAAO,IAAI,IAAI;CAKlB;AAED,qBAAa,oBAAqB,SAAQ,sBAAsB;IAC5D,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;IAC/B,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IACnC,SAAS,CAAC,KAAK,EAAE,CAAC,aAAa,GAAG,WAAW,CAAC,EAAE,CAAC;IACjD,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;IAC/B,SAAS,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IACvC,SAAS,CAAC,QAAQ,UAAS;gBAEf,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,GAAG,SAAS;IAqBjG,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE;IAe7D,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE;IAe7D,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE;IAQ3D,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO;CAS7C;AAED,qBACa,gBAAiB,SAAQ,WAAW;IAC7C,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE;CAMhE"}
|