fix:将 le5le 源码 移动至本地

This commit is contained in:
zhangyu
2022-07-13 14:06:20 +08:00
parent a22f17cdd5
commit 816b8c4efa
513 changed files with 13179 additions and 1 deletions

5
.gitignore vendored Normal file
View File

@@ -0,0 +1,5 @@
nezha-fronted/src/components/common/testTopology.vue
nezha-fronted/src/components/common/rightBox/tempRoghtBox.vue
nezha-fronted/src/components/page/dashboard/testData.js
nezha-fronted/src/router/mergeTable.js
.idea/

View File

@@ -0,0 +1,5 @@
export * from './src/final';
export * from './src/fork';
export * from './src/swimlaneH';
export * from './src/swimlaneV';
export * from './src/register';

View File

@@ -0,0 +1,6 @@
export * from './src/final';
export * from './src/fork';
export * from './src/swimlaneH';
export * from './src/swimlaneV';
export * from './src/register';
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../packages/activity-diagram/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}

View File

@@ -0,0 +1,65 @@
{
"_args": [
[
"@topology/activity-diagram@0.3.0",
"D:\\a\\nezha-fronted\\nezha-fronted"
]
],
"_from": "@topology/activity-diagram@0.3.0",
"_id": "@topology/activity-diagram@0.3.0",
"_inBundle": false,
"_integrity": "sha512-9uceHdbT1MY++/2crNlZmFMVmz6sI4OqH7aUQuBT8q9RDXA7t2prFd7lx4UfaIyQqDYtYtpeCHLPlhRLsEooZg==",
"_location": "/@topology/activity-diagram",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
"raw": "@topology/activity-diagram@0.3.0",
"name": "@topology/activity-diagram",
"escapedName": "@topology%2factivity-diagram",
"scope": "@topology",
"rawSpec": "0.3.0",
"saveSpec": null,
"fetchSpec": "0.3.0"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/@topology/activity-diagram/-/activity-diagram-0.3.0.tgz",
"_spec": "0.3.0",
"_where": "D:\\a\\nezha-fronted\\nezha-fronted",
"author": {
"name": "alsmile123@qq.com"
},
"bugs": {
"url": "https://github.com/le5le-com/topology/issues"
},
"description": "A activity diagram tool using le5le-topology.",
"gitHead": "78f2a53ca1839c89b56e2e498d17ba4eb987ad14",
"homepage": "https://github.com/le5le-com/topology#readme",
"keywords": [
"topology",
"activity",
"diagram",
"canvas"
],
"license": "ISC",
"main": "index.js",
"name": "@topology/activity-diagram",
"peerDependencies": {
"@topology/core": "^0.3.0"
},
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "git+https://github.com/le5le-com/topology.git"
},
"scripts": {
"build": "tsc && npm run copy",
"copy": "copyfiles package.json ../../dist/activity-diagram/"
},
"types": "index.d.ts",
"version": "0.3.0"
}

View File

@@ -0,0 +1,2 @@
import { Node } from '@topology/core';
export declare function activityFinal(ctx: CanvasRenderingContext2D, node: Node): void;

View File

@@ -0,0 +1,10 @@
export function activityFinal(ctx, node) {
ctx.beginPath();
ctx.ellipse(node.rect.x + node.rect.width / 2, node.rect.y + node.rect.height / 2, node.rect.width / 2, node.rect.height / 2, 0, 0, Math.PI * 2);
ctx.stroke();
ctx.beginPath();
ctx.fillStyle = ctx.strokeStyle;
ctx.ellipse(node.rect.x + node.rect.width / 2, node.rect.y + node.rect.height / 2, node.rect.width / 4, node.rect.height / 4, 0, 0, Math.PI * 2);
ctx.fill();
}
//# sourceMappingURL=final.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"final.js","sourceRoot":"","sources":["../../../../packages/activity-diagram/src/final/final.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAAC,GAA6B,EAAE,IAAU;IACrE,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,OAAO,CACT,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EACjC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAClC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EACnB,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EACpB,CAAC,EACD,CAAC,EACD,IAAI,CAAC,EAAE,GAAG,CAAC,CACZ,CAAC;IACF,GAAG,CAAC,MAAM,EAAE,CAAC;IAEb,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC;IAChC,GAAG,CAAC,OAAO,CACT,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EACjC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAClC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EACnB,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EACpB,CAAC,EACD,CAAC,EACD,IAAI,CAAC,EAAE,GAAG,CAAC,CACZ,CAAC;IACF,GAAG,CAAC,IAAI,EAAE,CAAC;AACb,CAAC"}

View File

@@ -0,0 +1,3 @@
import { Node } from '@topology/core';
export declare function activityFinalIconRect(node: Node): void;
export declare function activityFinalTextRect(node: Node): void;

View File

@@ -0,0 +1,11 @@
import { Rect } from '@topology/core';
export function activityFinalIconRect(node) {
node.iconRect = new Rect(0, 0, 0, 0);
}
export function activityFinalTextRect(node) {
var w = (node.rect.width * 5) / 7;
var h = (node.rect.height * 5) / 7;
node.textRect = new Rect(node.rect.x + (node.rect.width - w) / 2, node.rect.y + (node.rect.height - h) / 2, w, h);
node.fullTextRect = node.textRect;
}
//# sourceMappingURL=final.rect.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"final.rect.js","sourceRoot":"","sources":["../../../../packages/activity-diagram/src/final/final.rect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,UAAU,qBAAqB,CAAC,IAAU;IAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAU;IAC9C,IAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACpC,IAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;AACpC,CAAC"}

View File

@@ -0,0 +1,2 @@
export * from './final';
export * from './final.rect';

View File

@@ -0,0 +1,3 @@
export * from './final';
export * from './final.rect';
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/activity-diagram/src/final/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}

View File

@@ -0,0 +1,3 @@
import { Node } from '@topology/core';
export declare function forkHAnchors(node: Node): void;
export declare function forkVAnchors(node: Node): void;

View File

@@ -0,0 +1,28 @@
import { Point, Direction } from '@topology/core';
export function forkHAnchors(node) {
node.anchors.push(new Point(node.rect.x, node.rect.y + node.rect.height / 2, Direction.Left));
node.anchors.push(new Point(node.rect.ex, node.rect.y + node.rect.height / 2, Direction.Right));
var dis = 5;
for (var i = dis; node.rect.x + i < node.rect.ex; i = i + dis) {
var pt1 = new Point(node.rect.x + i, node.rect.y, Direction.Up);
var pt2 = new Point(node.rect.x + i, node.rect.ey, Direction.Bottom);
pt1.hidden = true;
pt2.hidden = true;
node.anchors.push(pt1);
node.anchors.push(pt2);
}
}
export function forkVAnchors(node) {
node.anchors.push(new Point(node.rect.x + node.rect.width / 2, node.rect.y, Direction.Up));
node.anchors.push(new Point(node.rect.x + node.rect.width / 2, node.rect.ey, Direction.Bottom));
var dis = 5;
for (var i = dis; node.rect.y + i < node.rect.ey; i = i + dis) {
var pt1 = new Point(node.rect.x, node.rect.y + i, Direction.Left);
var pt2 = new Point(node.rect.ex, node.rect.y + i, Direction.Right);
pt1.hidden = true;
pt2.hidden = true;
node.anchors.push(pt1);
node.anchors.push(pt2);
}
}
//# sourceMappingURL=fork.anchor.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"fork.anchor.js","sourceRoot":"","sources":["../../../../packages/activity-diagram/src/fork/fork.anchor.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,2 @@
import { Node } from '@topology/core';
export declare function fork(ctx: CanvasRenderingContext2D, node: Node): void;

View File

@@ -0,0 +1,25 @@
export function fork(ctx, node) {
var wr = node.borderRadius;
var hr = node.borderRadius;
if (node.borderRadius < 1) {
wr = node.rect.width * node.borderRadius;
hr = node.rect.height * node.borderRadius;
}
var r = wr < hr ? wr : hr;
if (node.rect.width < 2 * r) {
r = node.rect.width / 2;
}
if (node.rect.height < 2 * r) {
r = node.rect.height / 2;
}
ctx.beginPath();
ctx.moveTo(node.rect.x + r, node.rect.y);
ctx.arcTo(node.rect.x + node.rect.width, node.rect.y, node.rect.x + node.rect.width, node.rect.y + node.rect.height, r);
ctx.arcTo(node.rect.x + node.rect.width, node.rect.y + node.rect.height, node.rect.x, node.rect.y + node.rect.height, r);
ctx.arcTo(node.rect.x, node.rect.y + node.rect.height, node.rect.x, node.rect.y, r);
ctx.arcTo(node.rect.x, node.rect.y, node.rect.x + node.rect.width, node.rect.y, r);
ctx.closePath();
(node.fillStyle || node.bkType) && ctx.fill();
ctx.stroke();
}
//# sourceMappingURL=fork.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"fork.js","sourceRoot":"","sources":["../../../../packages/activity-diagram/src/fork/fork.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,IAAI,CAAC,GAA6B,EAAE,IAAU;IAC5D,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;IAC3B,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;IAC3B,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;QACzB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QACzC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;KAC3C;IACD,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE;QAC3B,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;KACzB;IACD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE;QAC5B,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;KAC1B;IAED,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzC,GAAG,CAAC,KAAK,CACP,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAC7B,IAAI,CAAC,IAAI,CAAC,CAAC,EACX,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAC7B,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAC9B,CAAC,CACF,CAAC;IACF,GAAG,CAAC,KAAK,CACP,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAC7B,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAC9B,IAAI,CAAC,IAAI,CAAC,CAAC,EACX,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAC9B,CAAC,CACF,CAAC;IACF,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpF,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnF,GAAG,CAAC,SAAS,EAAE,CAAC;IAEhB,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9C,GAAG,CAAC,MAAM,EAAE,CAAC;AACf,CAAC"}

View File

@@ -0,0 +1,3 @@
import { Node } from '@topology/core';
export declare function forkIconRect(node: Node): void;
export declare function forkTextRect(node: Node): void;

View File

@@ -0,0 +1,9 @@
import { Rect } from '@topology/core';
export function forkIconRect(node) {
node.iconRect = new Rect(0, 0, 0, 0);
}
export function forkTextRect(node) {
node.textRect = new Rect(node.rect.x, node.rect.y, node.rect.width, node.rect.height);
node.fullTextRect = node.textRect;
}
//# sourceMappingURL=fork.rect.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"fork.rect.js","sourceRoot":"","sources":["../../../../packages/activity-diagram/src/fork/fork.rect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,UAAU,YAAY,CAAC,IAAU;IACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAU;IACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;AACpC,CAAC"}

View File

@@ -0,0 +1,3 @@
export * from './fork';
export * from './fork.rect';
export * from './fork.anchor';

View File

@@ -0,0 +1,4 @@
export * from './fork';
export * from './fork.rect';
export * from './fork.anchor';
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/activity-diagram/src/fork/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}

View File

@@ -0,0 +1 @@
export declare function register(): void;

View File

@@ -0,0 +1,13 @@
import { registerNode } from '@topology/core';
import { activityFinal, activityFinalIconRect, activityFinalTextRect } from './final';
import { fork, forkHAnchors, forkVAnchors, forkIconRect, forkTextRect } from './fork';
import { swimlaneH, swimlaneHIconRect, swimlaneHTextRect } from './swimlaneH';
import { swimlaneV, swimlaneVIconRect, swimlaneVTextRect } from './swimlaneV';
export function register() {
registerNode('activityFinal', activityFinal, null, activityFinalIconRect, activityFinalTextRect);
registerNode('swimlaneV', swimlaneV, null, swimlaneVIconRect, swimlaneVTextRect);
registerNode('swimlaneH', swimlaneH, null, swimlaneHIconRect, swimlaneHTextRect);
registerNode('forkH', fork, forkHAnchors, forkIconRect, forkTextRect);
registerNode('forkV', fork, forkVAnchors, forkIconRect, forkTextRect);
}
//# sourceMappingURL=register.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../packages/activity-diagram/src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE9E,MAAM,UAAU,QAAQ;IACtB,YAAY,CAAC,eAAe,EAAE,aAAa,EAAE,IAAI,EAAE,qBAAqB,EAAE,qBAAqB,CAAC,CAAC;IACjG,YAAY,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;IACjF,YAAY,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;IACjF,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IACtE,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AACxE,CAAC"}

View File

@@ -0,0 +1,2 @@
export * from './swimlaneH';
export * from './swimlaneH.rect';

View File

@@ -0,0 +1,3 @@
export * from './swimlaneH';
export * from './swimlaneH.rect';
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/activity-diagram/src/swimlaneH/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC"}

View File

@@ -0,0 +1,2 @@
import { Node } from '@topology/core';
export declare function swimlaneH(ctx: CanvasRenderingContext2D, node: Node): void;

View File

@@ -0,0 +1,27 @@
export function swimlaneH(ctx, node) {
var wr = node.borderRadius;
var hr = node.borderRadius;
if (node.borderRadius < 1) {
wr = node.rect.width * node.borderRadius;
hr = node.rect.height * node.borderRadius;
}
var r = wr < hr ? wr : hr;
if (node.rect.width < 2 * r) {
r = node.rect.width / 2;
}
if (node.rect.height < 2 * r) {
r = node.rect.height / 2;
}
ctx.beginPath();
ctx.moveTo(node.rect.x + r, node.rect.y);
ctx.arcTo(node.rect.x + node.rect.width, node.rect.y, node.rect.x + node.rect.width, node.rect.y + node.rect.height, r);
ctx.arcTo(node.rect.x + node.rect.width, node.rect.y + node.rect.height, node.rect.x, node.rect.y + node.rect.height, r);
ctx.arcTo(node.rect.x, node.rect.y + node.rect.height, node.rect.x, node.rect.y, r);
ctx.arcTo(node.rect.x, node.rect.y, node.rect.x + node.rect.width, node.rect.y, r);
ctx.closePath();
ctx.moveTo(node.rect.x + 40, node.rect.y);
ctx.lineTo(node.rect.x + 40, node.rect.ey);
(node.fillStyle || node.bkType) && ctx.fill();
ctx.stroke();
}
//# sourceMappingURL=swimlaneH.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"swimlaneH.js","sourceRoot":"","sources":["../../../../packages/activity-diagram/src/swimlaneH/swimlaneH.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,3 @@
import { Node } from '@topology/core';
export declare function swimlaneHIconRect(node: Node): void;
export declare function swimlaneHTextRect(node: Node): void;

View File

@@ -0,0 +1,9 @@
import { Rect } from '@topology/core';
export function swimlaneHIconRect(node) {
node.iconRect = new Rect(0, 0, 0, 0);
}
export function swimlaneHTextRect(node) {
node.textRect = new Rect(node.rect.x + 10, node.rect.y, 20, node.rect.height);
node.fullTextRect = node.textRect;
}
//# sourceMappingURL=swimlaneH.rect.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"swimlaneH.rect.js","sourceRoot":"","sources":["../../../../packages/activity-diagram/src/swimlaneH/swimlaneH.rect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,UAAU,iBAAiB,CAAC,IAAU;IAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAU;IAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;AACpC,CAAC"}

View File

@@ -0,0 +1,2 @@
export * from './swimlaneV';
export * from './swimlaneV.rect';

View File

@@ -0,0 +1,3 @@
export * from './swimlaneV';
export * from './swimlaneV.rect';
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/activity-diagram/src/swimlaneV/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC"}

View File

@@ -0,0 +1,2 @@
import { Node } from '@topology/core';
export declare function swimlaneV(ctx: CanvasRenderingContext2D, node: Node): void;

View File

@@ -0,0 +1,27 @@
export function swimlaneV(ctx, node) {
var wr = node.borderRadius;
var hr = node.borderRadius;
if (node.borderRadius < 1) {
wr = node.rect.width * node.borderRadius;
hr = node.rect.height * node.borderRadius;
}
var r = wr < hr ? wr : hr;
if (node.rect.width < 2 * r) {
r = node.rect.width / 2;
}
if (node.rect.height < 2 * r) {
r = node.rect.height / 2;
}
ctx.beginPath();
ctx.moveTo(node.rect.x + r, node.rect.y);
ctx.arcTo(node.rect.x + node.rect.width, node.rect.y, node.rect.x + node.rect.width, node.rect.y + node.rect.height, r);
ctx.arcTo(node.rect.x + node.rect.width, node.rect.y + node.rect.height, node.rect.x, node.rect.y + node.rect.height, r);
ctx.arcTo(node.rect.x, node.rect.y + node.rect.height, node.rect.x, node.rect.y, r);
ctx.arcTo(node.rect.x, node.rect.y, node.rect.x + node.rect.width, node.rect.y, r);
ctx.closePath();
ctx.moveTo(node.rect.x, node.rect.y + 40);
ctx.lineTo(node.rect.ex, node.rect.y + 40);
(node.fillStyle || node.bkType) && ctx.fill();
ctx.stroke();
}
//# sourceMappingURL=swimlaneV.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"swimlaneV.js","sourceRoot":"","sources":["../../../../packages/activity-diagram/src/swimlaneV/swimlaneV.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,3 @@
import { Node } from '@topology/core';
export declare function swimlaneVIconRect(node: Node): void;
export declare function swimlaneVTextRect(node: Node): void;

View File

@@ -0,0 +1,9 @@
import { Rect } from '@topology/core';
export function swimlaneVIconRect(node) {
node.iconRect = new Rect(0, 0, 0, 0);
}
export function swimlaneVTextRect(node) {
node.textRect = new Rect(node.rect.x, node.rect.y, node.rect.width, 40);
node.fullTextRect = node.textRect;
}
//# sourceMappingURL=swimlaneV.rect.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"swimlaneV.rect.js","sourceRoot":"","sources":["../../../../packages/activity-diagram/src/swimlaneV/swimlaneV.rect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,UAAU,iBAAiB,CAAC,IAAU;IAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAU;IAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;AACpC,CAAC"}

View File

@@ -0,0 +1,2 @@
export * from './src/echarts';
export * from './src/register';

View File

@@ -0,0 +1,3 @@
export * from './src/echarts';
export * from './src/register';
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../packages/chart-diagram/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}

View File

@@ -0,0 +1,64 @@
{
"_args": [
[
"@topology/chart-diagram@0.3.0",
"D:\\a\\nezha-fronted\\nezha-fronted"
]
],
"_from": "@topology/chart-diagram@0.3.0",
"_id": "@topology/chart-diagram@0.3.0",
"_inBundle": false,
"_integrity": "sha512-WUfb62Op0QxS976cNqrJ1Xaq+pfURwpo67H3TENWb+OhoNfiBl9IDANxTr1UIPLYfsjqgN3Y/8lxkL33jEl/aQ==",
"_location": "/@topology/chart-diagram",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
"raw": "@topology/chart-diagram@0.3.0",
"name": "@topology/chart-diagram",
"escapedName": "@topology%2fchart-diagram",
"scope": "@topology",
"rawSpec": "0.3.0",
"saveSpec": null,
"fetchSpec": "0.3.0"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/@topology/chart-diagram/-/chart-diagram-0.3.0.tgz",
"_spec": "0.3.0",
"_where": "D:\\a\\nezha-fronted\\nezha-fronted",
"author": {
"name": "alsmile123@qq.com"
},
"bugs": {
"url": "https://github.com/le5le-com/topology/issues"
},
"description": "A chart tool using le5le-topology.",
"gitHead": "78f2a53ca1839c89b56e2e498d17ba4eb987ad14",
"homepage": "https://github.com/le5le-com/topology#readme",
"keywords": [
"topology",
"chart",
"canvas"
],
"license": "ISC",
"main": "index.js",
"name": "@topology/chart-diagram",
"peerDependencies": {
"@topology/core": "^0.3.0"
},
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "git+https://github.com/le5le-com/topology.git"
},
"scripts": {
"build": "tsc && npm run copy",
"copy": "copyfiles package.json ../../dist/chart-diagram/"
},
"types": "index.d.ts",
"version": "0.3.0"
}

View File

@@ -0,0 +1,3 @@
import { Node } from '@topology/core';
export declare const echartsObjs: any;
export declare function echarts(ctx: CanvasRenderingContext2D, node: Node): void;

View File

@@ -0,0 +1,44 @@
import { s8, createDiv, rectangle } from '@topology/core';
export var echartsObjs = {};
export function echarts(ctx, node) {
// 绘制一个底图,类似于占位符。
rectangle(ctx, node);
// tslint:disable-next-line:no-shadowed-variable
var echarts = echartsObjs.echarts || window.echarts;
if (!node.data || !echarts) {
return;
}
if (typeof node.data === 'string') {
node.data = JSON.parse(node.data);
}
if (!node.data.echarts) {
return;
}
if (!node.elementId) {
node.elementId = s8();
}
if (!node.elementLoaded) {
echartsObjs[node.id] = {
div: createDiv(node),
};
node.elementLoaded = true;
document.body.appendChild(echartsObjs[node.id].div);
// 添加当前节点到div层
node.addToDiv();
echartsObjs[node.id].chart = echarts.init(echartsObjs[node.id].div, node.data.echarts.theme);
node.elementRendered = false;
// 等待父div先渲染完成避免初始图表控件太大
setTimeout(function () {
echartsObjs[node.id].chart.resize();
});
}
if (!node.elementRendered) {
// 初始化时等待父div先渲染完成避免初始图表控件太大。
setTimeout(function () {
echartsObjs[node.id].chart.setOption(node.data.echarts.option);
echartsObjs[node.id].chart.resize();
node.elementRendered = true;
});
}
}
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/chart-diagram/src/echarts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAQ,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,CAAC,IAAM,WAAW,GAAQ,EAAE,CAAC;AAEnC,MAAM,UAAU,OAAO,CAAC,GAA6B,EAAE,IAAU;IAC/D,iBAAiB;IACjB,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAErB,gDAAgD;IAChD,IAAM,OAAO,GAAG,WAAW,CAAC,OAAO,IAAK,MAAc,CAAC,OAAO,CAAC;IAC/D,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;QAC1B,OAAO;KACR;IAED,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnC;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;QACtB,OAAO;KACR;IAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;QACnB,IAAI,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC;KACvB;IAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;QACvB,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;YACrB,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC;SACrB,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QACpD,cAAc;QACd,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CACvC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EACxB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CACxB,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAE7B,yBAAyB;QACzB,UAAU,CAAC;YACT,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;KACJ;IAED,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;QACzB,+BAA+B;QAC/B,UAAU,CAAC;YACT,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC/D,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC;KACJ;AACH,CAAC"}

View File

@@ -0,0 +1 @@
export declare function register(_echarts?: any): void;

View File

@@ -0,0 +1,10 @@
import { registerNode, loadJS } from '@topology/core';
import { echarts, echartsObjs } from './echarts';
export function register(_echarts) {
echartsObjs.echarts = _echarts;
if (!echartsObjs.echarts && !window.echarts) {
loadJS('https://cdn.bootcdn.net/ajax/libs/echarts/4.8.0/echarts.min.js', null, true);
}
registerNode('echarts', echarts, null, null, null);
}
//# sourceMappingURL=register.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../packages/chart-diagram/src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEjD,MAAM,UAAU,QAAQ,CAAC,QAAc;IACrC,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAC/B,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAE,MAAc,CAAC,OAAO,EAAE;QACpD,MAAM,CACJ,gEAAgE,EAChE,IAAI,EACJ,IAAI,CACL,CAAC;KACH;IACD,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC"}

View File

@@ -0,0 +1,2 @@
export * from './src/class';
export * from './src/register';

View File

@@ -0,0 +1,3 @@
export * from './src/class';
export * from './src/register';
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../packages/class-diagram/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC"}

View File

@@ -0,0 +1,64 @@
{
"_args": [
[
"@topology/class-diagram@0.3.0",
"D:\\a\\nezha-fronted\\nezha-fronted"
]
],
"_from": "@topology/class-diagram@0.3.0",
"_id": "@topology/class-diagram@0.3.0",
"_inBundle": false,
"_integrity": "sha512-J+qKEg/+3EyyZotP2TbZtM+NcOeRh2PIEwzBZGS6KOU5RvBi4NMRO2DQNN++q8Zpb7RG7WYGAaTB2H4+YcXJzA==",
"_location": "/@topology/class-diagram",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
"raw": "@topology/class-diagram@0.3.0",
"name": "@topology/class-diagram",
"escapedName": "@topology%2fclass-diagram",
"scope": "@topology",
"rawSpec": "0.3.0",
"saveSpec": null,
"fetchSpec": "0.3.0"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/@topology/class-diagram/-/class-diagram-0.3.0.tgz",
"_spec": "0.3.0",
"_where": "D:\\a\\nezha-fronted\\nezha-fronted",
"author": {
"name": "alsmile123@qq.com"
},
"bugs": {
"url": "https://github.com/le5le-com/topology/issues"
},
"description": "A class diagram tool using le5le-topology.",
"gitHead": "78f2a53ca1839c89b56e2e498d17ba4eb987ad14",
"homepage": "https://github.com/le5le-com/topology#readme",
"keywords": [
"topology",
"class diagram",
"canvas"
],
"license": "ISC",
"main": "index.js",
"name": "@topology/class-diagram",
"peerDependencies": {
"@topology/core": "^0.3.0"
},
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "git+https://github.com/le5le-com/topology.git"
},
"scripts": {
"build": "tsc && npm run copy",
"copy": "copyfiles package.json ../../dist/class-diagram/"
},
"types": "index.d.ts",
"version": "0.3.0"
}

View File

@@ -0,0 +1,3 @@
import { Node } from '@topology/core';
export declare function simpleClass(ctx: CanvasRenderingContext2D, node: Node): void;
export declare function interfaceClass(ctx: CanvasRenderingContext2D, node: Node): void;

View File

@@ -0,0 +1,56 @@
export function simpleClass(ctx, node) {
var wr = node.borderRadius;
var hr = node.borderRadius;
if (node.borderRadius < 1) {
wr = node.rect.width * node.borderRadius;
hr = node.rect.height * node.borderRadius;
}
var r = wr < hr ? wr : hr;
if (node.rect.width < 2 * r) {
r = node.rect.width / 2;
}
if (node.rect.height < 2 * r) {
r = node.rect.height / 2;
}
ctx.beginPath();
ctx.moveTo(node.rect.x + r, node.rect.y);
ctx.arcTo(node.rect.x + node.rect.width, node.rect.y, node.rect.x + node.rect.width, node.rect.y + node.rect.height, r);
ctx.arcTo(node.rect.x + node.rect.width, node.rect.y + node.rect.height, node.rect.x, node.rect.y + node.rect.height, r);
ctx.arcTo(node.rect.x, node.rect.y + node.rect.height, node.rect.x, node.rect.y, r);
ctx.arcTo(node.rect.x, node.rect.y, node.rect.x + node.rect.width, node.rect.y, r);
ctx.closePath();
ctx.moveTo(node.rect.x, node.rect.y + 40);
ctx.lineTo(node.rect.ex, node.rect.y + 40);
(node.fillStyle || node.bkType) && ctx.fill();
ctx.stroke();
}
export function interfaceClass(ctx, node) {
var wr = node.borderRadius;
var hr = node.borderRadius;
if (node.borderRadius < 1) {
wr = node.rect.width * node.borderRadius;
hr = node.rect.height * node.borderRadius;
}
var r = wr < hr ? wr : hr;
if (node.rect.width < 2 * r) {
r = node.rect.width / 2;
}
if (node.rect.height < 2 * r) {
r = node.rect.height / 2;
}
ctx.beginPath();
ctx.moveTo(node.rect.x + r, node.rect.y);
ctx.arcTo(node.rect.x + node.rect.width, node.rect.y, node.rect.x + node.rect.width, node.rect.y + node.rect.height, r);
ctx.arcTo(node.rect.x + node.rect.width, node.rect.y + node.rect.height, node.rect.x, node.rect.y + node.rect.height, r);
ctx.arcTo(node.rect.x, node.rect.y + node.rect.height, node.rect.x, node.rect.y, r);
ctx.arcTo(node.rect.x, node.rect.y, node.rect.x + node.rect.width, node.rect.y, r);
ctx.closePath();
ctx.moveTo(node.rect.x, node.rect.y + 40);
ctx.lineTo(node.rect.ex, node.rect.y + 40);
var height = node.rect.y + 20 + node.rect.height / 2;
ctx.moveTo(node.rect.x, height);
ctx.lineTo(node.rect.ex, height);
(node.fillStyle || node.bkType) && ctx.fill();
ctx.stroke();
}
//# sourceMappingURL=class.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"class.js","sourceRoot":"","sources":["../../../../packages/class-diagram/src/class/class.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,5 @@
import { Node } from '@topology/core';
export declare function simpleClassIconRect(node: Node): void;
export declare function simpleClassTextRect(node: Node): void;
export declare function interfaceClassIconRect(node: Node): void;
export declare function interfaceClassTextRect(node: Node): void;

View File

@@ -0,0 +1,16 @@
import { Rect } from '@topology/core';
export function simpleClassIconRect(node) {
node.iconRect = new Rect(0, 0, 0, 0);
}
export function simpleClassTextRect(node) {
node.textRect = new Rect(node.rect.x, node.rect.y, node.rect.width, 40);
node.fullTextRect = node.textRect;
}
export function interfaceClassIconRect(node) {
node.iconRect = new Rect(0, 0, 0, 0);
}
export function interfaceClassTextRect(node) {
node.textRect = new Rect(node.rect.x, node.rect.y, node.rect.width, 40);
node.fullTextRect = node.textRect;
}
//# sourceMappingURL=class.rect.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"class.rect.js","sourceRoot":"","sources":["../../../../packages/class-diagram/src/class/class.rect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,UAAU,mBAAmB,CAAC,IAAU;IAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAU;IAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAU;IAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAU;IAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;AACpC,CAAC"}

View File

@@ -0,0 +1,2 @@
export * from './class';
export * from './class.rect';

View File

@@ -0,0 +1,3 @@
export * from './class';
export * from './class.rect';
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/class-diagram/src/class/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}

View File

@@ -0,0 +1 @@
export declare function register(): void;

View File

@@ -0,0 +1,7 @@
import { registerNode } from '@topology/core';
import { simpleClass, simpleClassIconRect, simpleClassTextRect, interfaceClass, interfaceClassIconRect, interfaceClassTextRect } from './class';
export function register() {
registerNode('simpleClass', simpleClass, null, simpleClassIconRect, simpleClassTextRect);
registerNode('interfaceClass', interfaceClass, null, interfaceClassIconRect, interfaceClassTextRect);
}
//# sourceMappingURL=register.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../packages/class-diagram/src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,WAAW,EAAE,mBAAmB,EAAE,mBAAmB,EACrD,cAAc,EAAE,sBAAsB,EAAE,sBAAsB,EAC/D,MAAM,SAAS,CAAC;AAEjB,MAAM,UAAU,QAAQ;IACtB,YAAY,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;IACzF,YAAY,CAAC,gBAAgB,EAAE,cAAc,EAAE,IAAI,EAAE,sBAAsB,EAAE,sBAAsB,CAAC,CAAC;AACvG,CAAC"}

View File

@@ -0,0 +1,5 @@
export * from './src/core';
export * from './src/options';
export * from './src/utils';
export * from './src/models';
export * from './src/middles';

View File

@@ -0,0 +1,6 @@
export * from './src/core';
export * from './src/options';
export * from './src/utils';
export * from './src/models';
export * from './src/middles';
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../packages/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}

View File

@@ -0,0 +1,66 @@
{
"_args": [
[
"@topology/core@0.5.33",
"D:\\a\\nezha-fronted\\nezha-fronted"
]
],
"_from": "@topology/core@0.5.33",
"_id": "@topology/core@0.5.33",
"_inBundle": false,
"_integrity": "sha1-aS5eoCUEDbrh/TGxl2rCXmdu8ww=",
"_location": "/@topology/core",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
"raw": "@topology/core@0.5.33",
"name": "@topology/core",
"escapedName": "@topology%2fcore",
"scope": "@topology",
"rawSpec": "0.5.33",
"saveSpec": null,
"fetchSpec": "0.5.33"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmmirror.com/@topology/core/download/@topology/core-0.5.33.tgz",
"_spec": "0.5.33",
"_where": "D:\\a\\nezha-fronted\\nezha-fronted",
"author": {
"name": "alsmile123@qq.com"
},
"bugs": {
"url": "https://github.com/le5le-com/topology/issues"
},
"dependencies": {
"le5le-store": "^1.0.7",
"mitt": "^2.1.0",
"mqtt": "^4.2.6"
},
"description": "A diagram/topology tool by js.",
"gitHead": "78f2a53ca1839c89b56e2e498d17ba4eb987ad14",
"homepage": "https://github.com/le5le-com/topology#readme",
"keywords": [
"topology",
"diagram",
"canvas"
],
"license": "ISC",
"main": "index.js",
"name": "@topology/core",
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "git+https://github.com/le5le-com/topology.git"
},
"scripts": {
"build": "tsc && npm run copy",
"copy": "copyfiles package.json ../../dist/core/"
},
"types": "index.d.ts",
"version": "0.5.33"
}

View File

@@ -0,0 +1,60 @@
import { Options } from './options';
import { Pen } from './models/pen';
import { Node } from './models/node';
import { Line } from './models/line';
import { Rect } from './models/rect';
import { Point } from './models/point';
import { Layer } from './layer';
import { Topology } from './core';
export declare class ActiveLayer extends Layer {
options: Options;
rotateCPs: Point[];
sizeCPs: Point[];
rect: Rect;
activeRect: Rect;
pens: Pen[];
rotate: number;
lastOffsetX: number;
lastOffsetY: number;
initialSizeCPs: Point[];
nodeRects: Rect[];
childrenRects: {
[key: string]: Rect;
};
childrenRotate: {
[key: string]: number;
};
dockWatchers: Point[];
topology: Topology;
rotating: boolean;
constructor(options: Options, TID: string);
calcControlPoints(): void;
locked(): boolean;
getPoints(): Point[];
clear(): void;
saveNodeRects(): void;
private saveChildrenRects;
resize(type: number, pt1: {
x: number;
y: number;
}, pt2: {
x: number;
y: number;
ctrlKey?: boolean;
altKey?: boolean;
shiftKey?: boolean;
}): void;
move(x: number, y: number): void;
getLinesOfNode(node: Node): Line[];
updateLines(pens?: Pen[]): void;
offsetRotate(angle: number): void;
rotateChildren(node: Pen): void;
updateRotate(): void;
add(pen: Pen): void;
setPens(pens: Pen[]): void;
has(pen: Pen): boolean;
hasInAll(pen: Pen, pens?: Pen[]): boolean;
render(ctx: CanvasRenderingContext2D): void;
calcActiveRect(): void;
getDockWatchers(): void;
}

View File

@@ -0,0 +1,743 @@
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import { Store } from 'le5le-store';
import { PenType } from './models/pen';
import { Node } from './models/node';
import { Line } from './models/line';
import { Rect } from './models/rect';
import { Point } from './models/point';
import { Lock } from './models/status';
import { drawLineFns } from './middles';
import { getBezierPoint } from './middles/lines/curve';
import { Layer } from './layer';
import { find, flatNodes, getBboxOfPoints, rgba, deepClone, getRect } from './utils';
var ActiveLayer = /** @class */ (function (_super) {
__extends(ActiveLayer, _super);
function ActiveLayer(options, TID) {
if (options === void 0) { options = {}; }
var _this = _super.call(this, TID) || this;
_this.options = options;
_this.rotateCPs = [];
_this.sizeCPs = [];
_this.pens = [];
_this.rotate = 0;
_this.lastOffsetX = 0;
_this.lastOffsetY = 0;
// 备份初始位置,方便移动事件处理
_this.initialSizeCPs = [];
_this.nodeRects = [];
_this.childrenRects = {};
_this.childrenRotate = {};
// nodes移动时停靠点的参考位置
_this.dockWatchers = [];
_this.rotating = false;
Store.set(_this.generateStoreKey('LT:ActiveLayer'), _this);
return _this;
}
ActiveLayer.prototype.calcControlPoints = function () {
if (this.pens.length === 1 && this.pens[0] instanceof Node) {
this.rect = this.pens[0].rect;
this.sizeCPs = this.pens[0].rect.toPoints();
this.rotateCPs = [
new Point(this.pens[0].rect.x + this.pens[0].rect.width / 2, this.pens[0].rect.y - 35),
new Point(this.pens[0].rect.x + this.pens[0].rect.width / 2, this.pens[0].rect.y),
];
if (this.rotate || this.pens[0].rotate) {
for (var _i = 0, _a = this.sizeCPs; _i < _a.length; _i++) {
var pt = _a[_i];
if (this.pens[0].rotate) {
pt.rotate(this.pens[0].rotate, this.pens[0].rect.center);
}
if (this.rotate) {
pt.rotate(this.rotate, this.rect.center);
}
}
for (var _b = 0, _c = this.rotateCPs; _b < _c.length; _b++) {
var pt = _c[_b];
if (this.pens[0].rotate) {
pt.rotate(this.pens[0].rotate, this.pens[0].rect.center);
}
if (this.rotate) {
pt.rotate(this.rotate, this.rect.center);
}
}
}
if (this.options.hideRotateCP || this.pens[0].hideRotateCP) {
this.rotateCPs = [new Point(-1000, -1000), new Point(-1000, -1000)];
}
return;
}
var _d = getBboxOfPoints(this.getPoints()), x1 = _d.x1, y1 = _d.y1, x2 = _d.x2, y2 = _d.y2;
this.rect = new Rect(x1, y1, x2 - x1, y2 - y1);
this.sizeCPs = [
new Point(x1, y1),
new Point(x2, y1),
new Point(x2, y2),
new Point(x1, y2),
];
this.rotateCPs = [
new Point(x1 + (x2 - x1) / 2, y1 - 35),
new Point(x1 + (x2 - x1) / 2, y1),
];
if (this.options.hideRotateCP) {
this.rotateCPs = [new Point(-1000, -1000), new Point(-1000, -1000)];
}
};
ActiveLayer.prototype.locked = function () {
for (var _i = 0, _a = this.pens; _i < _a.length; _i++) {
var item = _a[_i];
if (!item.locked) {
return false;
}
}
return true;
};
ActiveLayer.prototype.getPoints = function () {
var points = [];
for (var _i = 0, _a = this.pens; _i < _a.length; _i++) {
var item = _a[_i];
if (item.type === PenType.Node) {
var pts = item.rect.toPoints();
if (item.rotate) {
for (var _b = 0, pts_1 = pts; _b < pts_1.length; _b++) {
var pt = pts_1[_b];
pt.rotate(item.rotate, item.rect.center);
}
}
points.push.apply(points, pts);
}
else if (item instanceof Line) {
if (item.children) {
item.children.forEach(function (child) {
points.push(child.from);
points.push(child.to);
if (child.name === 'curve') {
for (var i = 0.01; i < 1; i += 0.02) {
points.push(getBezierPoint(i, child.from, child.controlPoints[0], child.controlPoints[1], child.to));
}
}
});
}
else if (item.from) {
points.push(item.from);
points.push(item.to);
if (item.name === 'curve') {
for (var i = 0.01; i < 1; i += 0.02) {
points.push(getBezierPoint(i, item.from, item.controlPoints[0], item.controlPoints[1], item.to));
}
}
}
}
}
return points;
};
ActiveLayer.prototype.clear = function () {
this.pens = [];
this.sizeCPs = [];
this.rotateCPs = [];
Store.set(this.generateStoreKey('LT:activeNode'), undefined);
};
// 即将缩放选中的nodes备份nodes最初大小方便缩放比例计算
ActiveLayer.prototype.saveNodeRects = function () {
this.nodeRects = [];
this.childrenRects = {};
for (var _i = 0, _a = this.pens; _i < _a.length; _i++) {
var item = _a[_i];
if (item.type && item.from) {
this.nodeRects.push(new Rect(item.from.x, item.from.y, item.rect.width, item.rect.height));
}
else {
this.nodeRects.push(new Rect(item.rect.x, item.rect.y, item.rect.width, item.rect.height));
}
this.saveChildrenRects(item);
}
this.initialSizeCPs = [];
for (var _b = 0, _c = this.sizeCPs; _b < _c.length; _b++) {
var item = _c[_b];
this.initialSizeCPs.push(item.clone());
}
this.getDockWatchers();
};
ActiveLayer.prototype.saveChildrenRects = function (node) {
if (node.type || !node.children) {
return;
}
for (var _i = 0, _a = node.children; _i < _a.length; _i++) {
var item = _a[_i];
this.childrenRects[item.id] = new Rect(item.rect.x, item.rect.y, item.rect.width, item.rect.height);
this.childrenRotate[item.id] = item.rotate;
this.saveChildrenRects(item);
}
};
// pt1 - the point of mouse down.
// pt2 - the point of mouse move.
ActiveLayer.prototype.resize = function (type, pt1, pt2) {
var p1 = new Point(pt1.x, pt1.y);
var p2 = new Point(pt2.x, pt2.y);
if (this.pens.length === 1 && this.pens[0].rotate % 360) {
p1.rotate(-this.pens[0].rotate, this.nodeRects[0].center);
p2.rotate(-this.pens[0].rotate, this.nodeRects[0].center);
}
var x = p2.x - p1.x;
var y = p2.y - p1.y;
var offsetX = x - this.lastOffsetX;
var offsetY = y - this.lastOffsetY;
this.lastOffsetX = x;
this.lastOffsetY = y;
var w = this.activeRect.width;
var h = this.activeRect.height;
if (pt2.shiftKey) {
offsetY = (offsetX * h) / w;
}
// const lines: Line[] = [];
switch (type) {
case 0:
if (this.activeRect.width - offsetX < 5 || this.activeRect.height - offsetY < 5) {
return;
}
if (!pt2.shiftKey) {
// offsetX = -offsetX;
// offsetY = -offsetY;
this.activeRect.x += offsetX;
this.activeRect.y += offsetY;
this.activeRect.width -= offsetX;
this.activeRect.height -= offsetY;
}
else {
offsetX = -offsetX;
offsetY = -offsetY;
this.activeRect.ex += offsetX;
this.activeRect.ey += offsetY;
this.activeRect.width += offsetX;
this.activeRect.height += offsetY;
}
break;
case 1:
// offsetY = -offsetY;
if (this.activeRect.width + offsetX < 5 || this.activeRect.height - offsetY < 5) {
return;
}
if (!pt2.shiftKey) {
this.activeRect.ex += offsetX;
this.activeRect.y += offsetY;
this.activeRect.width += offsetX;
this.activeRect.height -= offsetY;
}
else {
// offsetX = -offsetX;
// offsetY = -offsetY;
this.activeRect.ex += offsetX;
this.activeRect.ey += offsetY;
this.activeRect.width += offsetX;
this.activeRect.height += offsetY;
}
break;
case 2:
if (this.activeRect.width + offsetX < 5 || this.activeRect.height + offsetY < 5) {
return;
}
this.activeRect.ex += offsetX;
this.activeRect.ey += offsetY;
this.activeRect.width += offsetX;
this.activeRect.height += offsetY;
break;
case 3:
// offsetX = -offsetX;
if (this.activeRect.width - offsetX < 5 || this.activeRect.height + offsetY < 5) {
return;
}
if (!pt2.shiftKey) {
this.activeRect.x += offsetX;
this.activeRect.ey += offsetY;
this.activeRect.width -= offsetX;
this.activeRect.height += offsetY;
}
else {
offsetX = -offsetX;
offsetY = -offsetY;
this.activeRect.ex += offsetX;
this.activeRect.ey += offsetY;
this.activeRect.width += offsetX;
this.activeRect.height += offsetY;
}
break;
}
var scaleX = this.activeRect.width / w;
var scaleY = this.activeRect.height / h;
// let i = 0;
for (var _i = 0, _a = this.pens; _i < _a.length; _i++) {
var item = _a[_i];
if (item.locked) {
continue;
}
switch (item.type) {
case PenType.Line:
break;
default:
item['oldRect'] = item.rect.clone();
if (!this.options.disableSizeX &&
!pt2.ctrlKey &&
!item.disableSizeX) {
// item.rect.width = this.nodeRects[i].width + offsetX;
item.rect.width *= scaleX;
if (item.imageWidth) {
item.imageWidth *= scaleX;
}
}
if (!this.options.disableSizeY &&
!pt2.altKey &&
!item.disableSizeY) {
// item.rect.height = this.nodeRects[i].height + offsetY;
item.rect.height *= scaleY;
if (item.imageHeight) {
item.imageHeight *= scaleY;
}
}
if ((!this.options.disableSizeX &&
pt2.shiftKey &&
!item.disableSizeX) ||
(!this.options.disableSizeY &&
pt2.shiftKey &&
!item.disableSizeY)) {
// item.rect.width = this.nodeRects[i].width + offsetX;
// item.rect.height = this.nodeRects[i].height + offsetY;
item.rect.width *= scaleX;
item.rect.height *= scaleY;
if (item.imageWidth) {
item.imageWidth *= scaleX;
}
if (item.imageHeight) {
item.imageHeight *= scaleY;
}
}
switch (type) {
case 0:
item.rect.x = item.rect.ex - item.rect.width;
item.rect.y = item.rect.ey - item.rect.height;
break;
case 1:
item.rect.ex = item.rect.x + item.rect.width;
item.rect.y = item.rect.ey - item.rect.height;
break;
case 2:
item.rect.ex = item.rect.x + item.rect.width;
item.rect.ey = item.rect.y + item.rect.height;
break;
case 3:
item.rect.x = item.rect.ex - item.rect.width;
item.rect.ey = item.rect.y + item.rect.height;
break;
}
item.scalePoints();
item.rect.calcCenter();
item.init();
item.calcChildrenRect();
break;
}
if (item.parentId) {
var parent_1 = void 0;
for (var _b = 0, _c = this.data.pens; _b < _c.length; _b++) {
var n = _c[_b];
if (n.id === item.parentId) {
parent_1 = n;
item.calcRectInParent(parent_1);
break;
}
}
}
// ++i;
}
this.updateLines();
};
ActiveLayer.prototype.move = function (x, y) {
if (this.nodeRects.length !== this.pens.length) {
return;
}
var i = 0;
var _loop_1 = function (item) {
if (item.locked) {
return "continue";
}
if (item instanceof Node) {
var offsetX = this_1.nodeRects[i].x + x - item.rect.x;
var offsetY = this_1.nodeRects[i].y + y - item.rect.y;
item.translate(offsetX, offsetY);
var lines = this_1.getLinesOfNode(item);
for (var _i = 0, lines_1 = lines; _i < lines_1.length; _i++) {
var line = lines_1[_i];
line.translate(offsetX, offsetY);
}
item.calcChildrenRect();
if (item.parentId && !item.locked) {
var parent_2 = void 0;
for (var _a = 0, _b = this_1.data.pens; _a < _b.length; _a++) {
var n = _b[_a];
if (n.id === item.parentId) {
parent_2 = n;
item.calcRectInParent(parent_2);
break;
}
}
}
}
if (item instanceof Line && item.from) {
var offsetX_1 = this_1.nodeRects[i].x + x - item.from.x;
var offsetY_1 = this_1.nodeRects[i].y + y - item.from.y;
if (item.parentId) {
var items = find(item.parentId, this_1.data.pens);
items.forEach(function (l) {
l.translate(offsetX_1, offsetY_1);
});
}
else {
item.translate(offsetX_1, offsetY_1);
}
}
++i;
};
var this_1 = this;
for (var _i = 0, _a = this.pens; _i < _a.length; _i++) {
var item = _a[_i];
_loop_1(item);
}
this.updateLines();
this.topology.dispatch('move', this.pens);
};
ActiveLayer.prototype.getLinesOfNode = function (node) {
var result = [];
var nodesLines = flatNodes([node]);
for (var _i = 0, _a = this.data.pens; _i < _a.length; _i++) {
var pen = _a[_i];
if (!(pen instanceof Line)) {
continue;
}
var line = pen;
var fromIn = false;
var toIn = false;
for (var _b = 0, _c = nodesLines.nodes; _b < _c.length; _b++) {
var item = _c[_b];
if (line.from && line.from.id === item.id) {
fromIn = true;
}
if (line.to && line.to.id === item.id) {
toIn = true;
}
}
if (fromIn && toIn) {
result.push(line);
}
}
return result;
};
ActiveLayer.prototype.updateLines = function (pens) {
if (!pens) {
pens = this.pens;
}
var allPens = flatNodes(this.data.pens);
var allLines = allPens.lines;
var nodes = allPens.nodes;
if (!this.options.autoAnchor) { // 非自动瞄点,只要活动层的 nodes
nodes = flatNodes(pens).nodes;
}
var lines = [];
for (var _i = 0, allLines_1 = allLines; _i < allLines_1.length; _i++) {
var line = allLines_1[_i];
for (var _a = 0, nodes_1 = nodes; _a < nodes_1.length; _a++) {
var item = nodes_1[_a];
var cnt = 0;
if (line.from && line.from.id === item.id) {
if (line.from.autoAnchor) {
var autoAnchor = item.nearestAnchor(line.to);
if (autoAnchor.index > -1) {
line.from.anchorIndex = autoAnchor.index;
line.from.direction = autoAnchor.direction;
}
}
if (line.from.anchorIndex >= 0) {
line.from.x = item.rotatedAnchors[line.from.anchorIndex].x;
line.from.y = item.rotatedAnchors[line.from.anchorIndex].y;
++cnt;
}
}
if (line.to && line.to.id === item.id) {
if (line.to.autoAnchor) {
var autoAnchor = item.nearestAnchor(line.from);
if (autoAnchor.index > -1) {
line.to.anchorIndex = autoAnchor.index;
line.to.direction = autoAnchor.direction;
}
}
if (line.to.anchorIndex >= 0) {
line.to.x = item.rotatedAnchors[line.to.anchorIndex].x;
line.to.y = item.rotatedAnchors[line.to.anchorIndex].y;
++cnt;
}
}
if (cnt && !this.data.manualCps) {
line.calcControlPoints();
}
line.textRect = undefined;
Store.set(this.generateStoreKey('pts-') + line.id, undefined);
lines.push(line);
}
}
Store.set(this.generateStoreKey('LT:updateLines'), lines);
};
ActiveLayer.prototype.offsetRotate = function (angle) {
this.rotating = true;
var i = 0;
for (var _i = 0, _a = this.pens; _i < _a.length; _i++) {
var item = _a[_i];
if (!(item instanceof Node)) {
continue;
}
var center = this.nodeRects[i].center.clone();
if (this.pens.length > 1) {
center.rotate(angle, this.rect.center);
}
item.rect.x = center.x - item.rect.width / 2;
item.rect.y = center.y - item.rect.height / 2;
item.rect.ex = item.rect.x + item.rect.width;
item.rect.ey = item.rect.y + item.rect.height;
item.rect.calcCenter();
item.init();
item.offsetRotate = angle;
item.calcRotateAnchors(item.rotate + item.offsetRotate);
this.rotateChildren(item);
++i;
}
this.rotate = angle;
this.topology.dispatch('rotated', this.pens);
};
ActiveLayer.prototype.rotateChildren = function (node) {
if (node.type !== PenType.Node || !node.children) {
return;
}
for (var _i = 0, _a = node.children; _i < _a.length; _i++) {
var item = _a[_i];
if (item.type !== PenType.Node) {
continue;
}
var oldCenter = this.childrenRects[item.id].center.clone();
var newCenter = this.childrenRects[item.id].center
.clone()
.rotate(this.rotate, this.rect.center);
var rect = this.childrenRects[item.id].clone();
rect.translate(newCenter.x - oldCenter.x, newCenter.y - oldCenter.y);
item.rect = rect;
item.rotate = this.childrenRotate[item.id] + this.rotate;
item.init();
this.rotateChildren(item);
}
};
ActiveLayer.prototype.updateRotate = function () {
for (var _i = 0, _a = this.pens; _i < _a.length; _i++) {
var item = _a[_i];
item.rotate += item.offsetRotate;
if (item.type === PenType.Node && item.rectInParent) {
item.rectInParent.rotate += item.offsetRotate;
}
item.offsetRotate = 0;
}
this.rotate = 0;
this.rotating = false;
};
ActiveLayer.prototype.add = function (pen) {
if (this.has(pen)) {
return;
}
this.pens.push(pen);
if (pen instanceof Node) {
Store.set(this.generateStoreKey('LT:activeNode'), pen);
}
};
ActiveLayer.prototype.setPens = function (pens) {
this.pens = pens;
if (this.pens.length === 1 && this.pens[0] instanceof Node) {
Store.set(this.generateStoreKey('LT:activeNode'), this.pens[0]);
}
};
ActiveLayer.prototype.has = function (pen) {
for (var _i = 0, _a = this.pens; _i < _a.length; _i++) {
var item = _a[_i];
if (item.id === pen.id) {
return true;
}
}
return false;
};
ActiveLayer.prototype.hasInAll = function (pen, pens) {
if (!pens) {
pens = this.pens;
}
for (var _i = 0, pens_1 = pens; _i < pens_1.length; _i++) {
var item = pens_1[_i];
if (item.id === pen.id) {
return true;
}
if (item.children) {
var has = this.hasInAll(pen, item.children);
if (has) {
return true;
}
}
}
return false;
};
ActiveLayer.prototype.render = function (ctx) {
var _this = this;
if (this.data.locked > Lock.Readonly ||
this.options.activeColor === 'transparent') {
return;
}
if (!this.pens.length) {
return;
}
this.pens.forEach(function (pen) {
if (!pen.getTID()) {
pen.setTID(_this.TID);
}
});
if (this.pens.length === 1 || !this.rotating) {
this.calcControlPoints();
}
ctx.save();
ctx.strokeStyle = this.options.activeColor;
ctx.fillStyle = '#fff';
ctx.lineWidth = 1;
var TID = this.TID;
var scale = Store.get(this.generateStoreKey('LT:scale')) || 1;
for (var _i = 0, _a = this.pens; _i < _a.length; _i++) {
var item = _a[_i];
if (this.data.locked && item instanceof Node) {
var tmp = new Node(item);
tmp.setTID(TID);
tmp.data = undefined;
tmp.fillStyle = undefined;
tmp.bkType = 0;
tmp.icon = '';
tmp.image = '';
tmp.text = '';
if (tmp.strokeStyle !== 'transparent') {
tmp.strokeStyle = '#ffffff';
tmp.lineWidth += 2;
tmp.render(ctx);
tmp.strokeStyle = this.options.activeColor;
tmp.lineWidth -= 2;
}
tmp.render(ctx);
}
if (item instanceof Line) {
var tmp = new Line(item);
tmp.lineWidth *= 2;
tmp.toArrowSize =
(tmp.toArrowSize * scale - 1.5 * tmp.lineWidth) / scale;
tmp.fromArrowSize =
(tmp.fromArrowSize * scale - 1.5 * tmp.lineWidth) / scale;
tmp.setTID(TID);
tmp.strokeStyle = rgba(0.2, this.options.activeColor);
tmp.borderWidth = 4;
tmp.borderColor = rgba(0.1, this.options.activeColor);
tmp.fromArrowColor = this.options.activeColor;
tmp.toArrowColor = this.options.activeColor;
tmp.render(ctx);
if (!this.data.locked && !item.locked) {
drawLineFns[item.name] &&
drawLineFns[item.name].drawControlPointsFn(ctx, item);
}
}
}
if (this.pens.length === 1 && this.pens[0].type === PenType.Line) {
ctx.restore(); // 对应前面的 save() , 保持状态一致
return;
}
// This is diffence between single node and more.
if (this.rotate && this.pens.length > 1) {
ctx.translate(this.rect.center.x, this.rect.center.y);
ctx.rotate((this.rotate * Math.PI) / 180);
ctx.translate(-this.rect.center.x, -this.rect.center.y);
}
if (this.data.locked || this.locked()) {
ctx.restore();
return;
}
// Occupied territory.
ctx.save();
ctx.globalAlpha = 0.3;
ctx.translate(0.5, 0.5);
ctx.beginPath();
ctx.moveTo(this.sizeCPs[0].x, this.sizeCPs[0].y);
ctx.lineTo(this.sizeCPs[1].x, this.sizeCPs[1].y);
ctx.lineTo(this.sizeCPs[2].x, this.sizeCPs[2].y);
ctx.lineTo(this.sizeCPs[3].x, this.sizeCPs[3].y);
ctx.closePath();
ctx.stroke();
ctx.restore();
// Draw rotate control point.
ctx.beginPath();
ctx.moveTo(this.rotateCPs[0].x, this.rotateCPs[0].y);
ctx.lineTo(this.rotateCPs[1].x, this.rotateCPs[1].y);
ctx.stroke();
ctx.beginPath();
ctx.arc(this.rotateCPs[0].x, this.rotateCPs[0].y, 5, 0, Math.PI * 2);
ctx.fill();
ctx.stroke();
// Draw size control points.
if (!this.options.hideSizeCP &&
(this.pens.length > 1 || !this.pens[0].hideSizeCP)) {
ctx.lineWidth = 1;
for (var _b = 0, _c = this.sizeCPs; _b < _c.length; _b++) {
var item = _c[_b];
ctx.save();
ctx.beginPath();
if (this.pens.length === 1 && (this.pens[0].rotate || this.rotate)) {
ctx.translate(item.x, item.y);
ctx.rotate(((this.pens[0].rotate + this.rotate) * Math.PI) / 180);
ctx.translate(-item.x, -item.y);
}
ctx.fillRect(item.x - 4.5, item.y - 4.5, 8, 8);
ctx.strokeRect(item.x - 5.5, item.y - 5.5, 10, 10);
ctx.restore();
}
}
ctx.restore();
};
ActiveLayer.prototype.calcActiveRect = function () {
if (this.pens.length === 1) {
if (this.pens[0].rect.height === 0) {
// 处理直线这种高度为0的情况
this.pens[0].rect.height = 1;
}
this.activeRect = deepClone(this.pens[0].rect);
}
else {
this.activeRect = getRect(this.pens);
}
};
ActiveLayer.prototype.getDockWatchers = function () {
if (this.pens.length === 1) {
this.dockWatchers = this.nodeRects[0].toPoints();
this.dockWatchers.unshift(this.nodeRects[0].center);
return;
}
if (!this.rect) {
return;
}
this.dockWatchers = this.rect.toPoints();
this.dockWatchers.unshift(this.rect.center);
};
return ActiveLayer;
}(Layer));
export { ActiveLayer };
//# sourceMappingURL=activeLayer.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,21 @@
import { Pen } from './models/pen';
import { Line } from './models/line';
import { Options } from './options';
import { Layer } from './layer';
export declare class AnimateLayer extends Layer {
options: Options;
pens: Map<any, any>;
private timer;
private lastNow;
private subscribeUpdate;
private subscribePlay;
constructor(options: Options, TID: string);
getAnimateLine(item: Pen): Line;
findLine(pen: Pen): Pen;
readyPlay(tag?: string, auto?: boolean, pens?: Pen[]): void;
animate(): void;
updateLines(lines: Line[]): void;
render(ctx: CanvasRenderingContext2D): void;
stop(): void;
destroy(): void;
}

View File

@@ -0,0 +1,264 @@
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import { Store } from 'le5le-store';
import { PenType } from './models/pen';
import { Node } from './models/node';
import { Line } from './models/line';
import { Layer } from './layer';
import { s8 } from './utils/uuid';
import { find } from './utils/canvas';
var AnimateLayer = /** @class */ (function (_super) {
__extends(AnimateLayer, _super);
function AnimateLayer(options, TID) {
if (options === void 0) { options = {}; }
var _this = _super.call(this, TID) || this;
_this.options = options;
_this.pens = new Map();
_this.lastNow = 0;
Store.set(_this.generateStoreKey('LT:AnimateLayer'), _this);
if (!_this.options.animateColor) {
_this.options.animateColor = '#ff6600';
}
_this.subscribeUpdate = Store.subscribe(_this.generateStoreKey('LT:updateLines'), function (lines) {
_this.updateLines(lines);
});
_this.subscribePlay = Store.subscribe(_this.generateStoreKey('LT:AnimatePlay'), function (params) {
if (params.stop) {
if (params.tag) {
var pens = find(params.tag, _this.data.pens);
pens.forEach(function (item) {
if (_this.pens.has(item.id)) {
_this.pens.get(item.id).animateStart = 0;
}
});
}
if (params.pen && _this.pens.has(params.pen.id)) {
_this.pens.get(params.pen.id).animateStart = 0;
}
}
else {
if (params.pen) {
if (_this.pens.has(params.pen.id)) {
_this.pens.get(params.pen.id).animateStart = Date.now();
}
else {
if (params.pen.type) {
_this.pens.set(params.pen.id, _this.getAnimateLine(params.pen));
}
else {
_this.pens.set(params.pen.id, params.pen);
}
}
}
if (params.tag) {
_this.readyPlay(params.tag, false);
}
}
_this.animate();
});
return _this;
}
AnimateLayer.prototype.getAnimateLine = function (item) {
var l = new Line(item);
l.data = l.id;
l.id = s8();
l.setTID(this.TID);
l.isAnimate = true;
l.toArrow = '';
if (l.fromArrow && l.fromArrow.indexOf('line') < 0) {
l.animateFromSize = l.fromArrowSize + l.lineWidth * 5;
}
if (l.toArrow && l.toArrow.indexOf('line') < 0) {
l.animateToSize = l.toArrowSize + l.lineWidth * 5;
}
l.animateStart = item.animateStart;
l.lineCap = 'round';
l.fillStyle = '#fff';
l.strokeStyle = l.animateColor || this.options.animateColor;
l.length = l.getLen();
if (!l.fromArrowColor) {
l.fromArrowColor = l.strokeStyle || Store.get(this.generateStoreKey('LT:color'));
}
if (!l.toArrowColor) {
l.toArrowColor = l.strokeStyle || Store.get(this.generateStoreKey('LT:color'));
}
return l;
};
AnimateLayer.prototype.findLine = function (pen) {
for (var _i = 0, _a = this.data.pens; _i < _a.length; _i++) {
var item = _a[_i];
if (item.id === pen.data) {
return item;
}
}
};
AnimateLayer.prototype.readyPlay = function (tag, auto, pens) {
var _this = this;
var readyPens = new Map();
if (!pens) {
pens = this.data.pens;
}
pens.forEach(function (pen) {
pen.setTID(_this.TID);
if (!pen.visible || readyPens.get(pen.id)) {
return;
}
if ((auto && pen.animatePlay) || (tag && pen.tags.indexOf(tag) > -1)) {
if (!pen.animateStart || pen.animateStart < 1) {
pen.animateStart = Date.now();
}
}
if (pen instanceof Node) {
if (pen.animateStart > 0) {
if (!pen.animateReady) {
pen.initAnimate();
}
readyPens.set(pen.id, pen);
}
if (pen.children && pen.children.length) {
_this.readyPlay(tag, auto, pen.children);
}
}
else {
if (pen.animateStart > 0) {
readyPens.set(pen.id, _this.getAnimateLine(pen));
}
else if (_this.pens.has(pen.id)) {
_this.pens.get(pen.id).animateStart = 0;
}
}
});
readyPens.forEach(function (pen) {
if (pen.type) {
_this.pens.set(pen.data, pen);
}
else {
_this.pens.set(pen.id, pen);
}
});
};
AnimateLayer.prototype.animate = function () {
var _this = this;
if (this.timer) {
cancelAnimationFrame(this.timer);
}
this.timer = requestAnimationFrame(function () {
var now = Date.now();
if (now - _this.lastNow < _this.options.refresh) {
_this.animate();
return;
}
_this.lastNow = now;
var animated = false;
_this.pens.forEach(function (pen) {
if (!pen.animateStart || pen.animateStart < 1) {
if (pen.type) {
_this.pens.delete(pen.data);
var line = _this.findLine(pen);
if (line) {
line.animateStart = 0;
line.animatePos = pen.animatePos;
}
}
else {
_this.pens.delete(pen.id);
}
return;
}
if (pen.animateStart > now) {
return;
}
if (pen.animateFn) {
if (typeof pen.animateFn === 'function') {
pen.animateFn();
}
else if (window && window[pen.animateFn]) {
window[pen.animateFn]();
}
else {
// pen.render();
}
}
else {
pen.animate(now);
}
if (pen.animateStart < 1) {
if (pen.type) {
_this.pens.delete(pen.data);
}
else {
_this.pens.delete(pen.id);
}
if (pen.type === PenType.Line) {
var line = _this.findLine(pen);
if (line) {
line.animateStart = 0;
line.animatePos = pen.animatePos;
}
}
if (pen.nextAnimate) {
_this.readyPlay(pen.nextAnimate, false);
}
}
animated = true;
});
if (animated) {
Store.set(_this.generateStoreKey('LT:render'), true);
_this.animate();
}
});
};
AnimateLayer.prototype.updateLines = function (lines) {
this.pens.forEach(function (line, key) {
if (!(line instanceof Line)) {
return;
}
for (var _i = 0, lines_1 = lines; _i < lines_1.length; _i++) {
var item = lines_1[_i];
if (line.data === item.id) {
line.from = item.from;
line.to = item.to;
line.controlPoints = item.controlPoints;
line.length = line.getLen();
}
}
});
};
AnimateLayer.prototype.render = function (ctx) {
var _this = this;
this.pens.forEach(function (line, key) {
if (line.visible && line instanceof Line) {
if (!line.getTID()) {
line.setTID(_this.TID);
}
line.render(ctx);
}
});
};
AnimateLayer.prototype.stop = function () {
this.pens.clear();
if (this.timer) {
cancelAnimationFrame(this.timer);
this.timer = null;
}
};
AnimateLayer.prototype.destroy = function () {
this.stop();
this.subscribeUpdate.unsubscribe();
this.subscribePlay.unsubscribe();
};
return AnimateLayer;
}(Layer));
export { AnimateLayer };
//# sourceMappingURL=animateLayer.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,22 @@
import { Observer } from 'le5le-store';
import { TopologyData } from './models/data';
import { Options } from './options';
import { Layer } from './layer';
export declare class Canvas extends Layer {
parentElem: HTMLElement;
options: Options;
static dpiRatio: number;
protected data: TopologyData;
canvas: HTMLCanvasElement;
width: number;
height: number;
subcribe: Observer;
constructor(parentElem: HTMLElement, options: Options, TID: string);
resize(size?: {
width: number;
height: number;
}): void;
render(): void;
getDpiRatio(): number;
destroy(): void;
}

View File

@@ -0,0 +1,89 @@
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import { Store } from 'le5le-store';
import { Layer } from './layer';
var Canvas = /** @class */ (function (_super) {
__extends(Canvas, _super);
function Canvas(parentElem, options, TID) {
if (options === void 0) { options = {}; }
var _this = _super.call(this, TID) || this;
_this.parentElem = parentElem;
_this.options = options;
_this.canvas = document.createElement('canvas');
_this.width = 0;
_this.height = 0;
_this.subcribe = Store.subscribe(_this.generateStoreKey('topology-data'), function (val) {
_this.data = val;
});
_this.canvas.style.position = 'absolute';
_this.canvas.style.left = '0';
_this.canvas.style.top = '0';
_this.canvas.style.outline = 'none';
if (!Canvas.dpiRatio) {
if (!options.extDpiRatio && options.extDpiRatio !== 0) {
if (window && window.devicePixelRatio > 1) {
options.extDpiRatio = 0.25;
}
else {
options.extDpiRatio = 0;
}
}
Canvas.dpiRatio = (window ? window.devicePixelRatio : 0) + options.extDpiRatio;
if (Canvas.dpiRatio < 1) {
Canvas.dpiRatio = 1;
}
}
return _this;
}
Canvas.prototype.resize = function (size) {
if (size) {
this.width = size.width | 0;
this.height = size.height | 0;
}
else {
if (this.options.width && this.options.width !== 'auto') {
this.width = +this.options.width;
}
else {
this.width = this.parentElem.clientWidth;
}
if (this.options.height && this.options.height !== 'auto') {
this.height = +this.options.height;
}
else {
this.height = this.parentElem.clientHeight;
}
}
this.canvas.style.width = this.width + 'px';
this.canvas.style.height = this.height + 'px';
this.canvas.width = (this.width * Canvas.dpiRatio) | 0;
this.canvas.height = (this.height * Canvas.dpiRatio) | 0;
this.canvas.getContext('2d').scale(Canvas.dpiRatio, Canvas.dpiRatio);
Store.set(this.generateStoreKey('LT:size'), { width: this.canvas.width, height: this.canvas.height });
};
Canvas.prototype.render = function () {
var ctx = this.canvas.getContext('2d');
ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
};
Canvas.prototype.getDpiRatio = function () {
return Canvas.dpiRatio;
};
Canvas.prototype.destroy = function () {
this.subcribe.unsubscribe();
};
Canvas.dpiRatio = 0;
return Canvas;
}(Layer));
export { Canvas };
//# sourceMappingURL=canvas.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../../packages/core/src/canvas.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,274 @@
import { Emitter, EventType, Handler } from 'mitt';
import { Options, Padding } from './options';
import { Pen } from './models/pen';
import { Node } from './models/node';
import { Point } from './models/point';
import { Line } from './models/line';
import { TopologyData } from './models/data';
import { Lock } from './models/status';
import { Offscreen } from './offscreen';
import { RenderLayer } from './renderLayer';
import { HoverLayer } from './hoverLayer';
import { ActiveLayer } from './activeLayer';
import { AnimateLayer } from './animateLayer';
import { DivLayer } from './divLayer';
import { Rect } from './models/rect';
import { Socket } from './socket';
import { MQTT } from './mqtt';
import { EventType as SocketEventType } from './models';
declare enum MoveInType {
None = 0,
Line = 1,
LineFrom = 2,
LineTo = 3,
LineControlPoint = 4,
Nodes = 5,
ResizeCP = 6,
HoverAnchors = 7,
AutoAnchor = 8,
Rotate = 9,
GraffitiReady = 10,
Graffiti = 11,
LinesReady = 12,
Lines = 13
}
interface ICaches {
index: number;
dbIndex: number;
list: TopologyData[];
}
export declare class Topology {
VERSION: string;
id: string;
data: TopologyData;
clipboard: TopologyData;
caches: ICaches;
options: Options;
cacheTimer: any;
parentElem: HTMLElement;
canvas: RenderLayer;
offscreen: Offscreen;
hoverLayer: HoverLayer;
activeLayer: ActiveLayer;
animateLayer: AnimateLayer;
divLayer: DivLayer;
private subcribe;
private subcribeRender;
private subcribeImage;
private imageTimer;
private subcribeAnimateEnd;
private subcribeAnimateMoved;
private subcribeMediaEnd;
private subcribeEmit;
touchedNode: any;
lastHoverNode: Node;
lastHoverLine: Line;
touches?: TouchList;
touchScale?: number;
touchStart: number;
touchCenter?: {
x: number;
y: number;
};
input: HTMLTextAreaElement;
inputObj: Pen;
mouseDown: {
x: number;
y: number;
restore?: boolean;
};
spaceDown: boolean;
lastTranlated: {
x: number;
y: number;
};
moveIn: {
type: MoveInType;
activeAnchorIndex: number;
hoverAnchorIndex: number;
hoverNode: Node;
hoverLine: Line;
activeNode: Node;
lineControlPoint: Point;
};
canvasPos?: DOMRect;
needCache: boolean;
private tip;
private raf;
tipMarkdown: HTMLElement;
tipMarkdownContent: HTMLElement;
tipMarkdownArrowUp: HTMLElement;
tipMarkdownArrowDown: HTMLElement;
tipElem: HTMLElement;
socket: Socket;
mqtt: MQTT;
get ramCaches(): number;
get clearElementIdPensName(): string[];
private socketFn;
_emitter: Emitter;
private scheduledAnimationFrame;
private scrolling;
private rendering;
private actionTimer;
constructor(parent: string | HTMLElement, options?: Options);
private setupDom;
private setupSubscribe;
private setupMouseEvent;
private onScroll;
private preventDefault;
private ontouchend;
winResize: () => void;
resize(size?: {
width: number;
height: number;
}): void;
dropNodes(jsonList: any[], offsetX: number, offsetY: number): void;
addNode(node: Node | any, focus?: boolean): any;
addLine(line: any, focus?: boolean): any;
render(noFocus?: boolean): this;
calibrateMouse: (pt: {
x: number;
y: number;
}) => {
x: number;
y: number;
};
open(data?: TopologyData | string): void;
/**
* 执行初始化函数 initJS
* */
private doInitJS;
subscribeSocket: () => boolean;
openSocket(url?: string): void;
closeSocket(): void;
openMqtt(url?: string, options?: any): void;
closeMqtt(): void;
doSocket(message: any, type?: SocketEventType): void;
overflow(padding?: number): {
width: number;
height: number;
};
private setNodeText;
onMouseMove: (e: {
x: number;
y: number;
buttons?: number;
ctrlKey?: boolean;
shiftKey?: boolean;
altKey?: boolean;
pageX?: number;
pageY?: number;
}) => boolean;
onmousedown: (e: {
x: number;
y: number;
button?: number;
ctrlKey?: boolean;
shiftKey?: boolean;
altKey?: boolean;
pageX?: number;
pageY?: number;
}) => void;
onmouseup: (e: {
x: number;
y: number;
button?: number;
ctrlKey?: boolean;
shiftKey?: boolean;
altKey?: boolean;
}) => void;
private ondblclick;
private onkeydown;
private getMoveIn;
inChildNode(pt: {
x: number;
y: number;
}, children: Pen[]): any;
inNode(pt: {
x: number;
y: number;
}, node: Node, inChild?: boolean): any;
inLine(point: {
x: number;
y: number;
}, line: Line): any;
private getLineDock;
private getPensInRect;
private getAngle;
showInput(item: Pen): void;
getRect(pens?: Pen[]): Rect;
getDockPos(offsetX: number, offsetY: number, noDock?: boolean): {
x: number;
y: number;
};
cache(): void;
cacheReplace(pens: Pen[]): void;
undo(noRedo?: boolean, force?: boolean): void;
redo(force?: boolean): void;
toImage(padding?: Padding, callback?: any): string;
saveAsImage(name?: string, padding?: Padding): void;
delete(param?: string | Pen[], force?: boolean): void;
deleteAnchors(param?: Pen[], force?: boolean): void;
delEmptyLines(deleteedId?: string): void;
cut(): void;
copy(): void;
paste(): void;
/**
* 粘贴当前画笔,位置偏移 offset
* */
pastePen(pen: Pen, idMaps?: any, offset?: number, parentId?: string): void;
animate(autoplay?: boolean): void;
updateProps(cache?: boolean, pens?: Pen[]): void;
lock(lock: Lock): void;
lockPens(pens: Pen[], lock: Lock): void;
up(pen: Pen, pens?: Pen[]): void;
top(pen: Pen, pens?: Pen[]): void;
down(pen: Pen, pens?: Pen[]): void;
bottom(pen: Pen, pens?: Pen[]): void;
getParent(pen: Pen): Node;
combine(pens?: Pen[], stand?: boolean): void;
uncombine(node?: Pen): void;
find(idOrTag: string, pens?: Pen[] | boolean, array?: boolean): Pen | Pen[];
findIndex(pen: Pen, pens?: Pen[]): number;
play(idOrTag: string, pause?: boolean): void;
translate(x: number, y: number, process?: boolean, noNotice?: boolean): void;
scale(scale: number, center?: {
x: number;
y: number;
}): void;
scaleTo(scale: number, center?: {
x: number;
y: number;
}): void;
round(): void;
centerView(padding?: Padding): boolean;
fitView(viewPadding?: Padding): void;
hasView(): boolean;
getViewCenter(viewPadding?: Padding): {
x: number;
y: number;
};
generateStoreKey(key: string): string;
private createMarkdownTip;
private showTip;
private hideTip;
scroll(x: number, y: number): void;
toComponent(pens?: Pen[]): Node;
clearBkImg(): void;
dispatch(event: string, data?: any): this;
on(eventType: EventType, handler: Handler): this;
off(eventType: EventType, handler: Handler): this;
emit(eventType: EventType, params: any): this;
getValue(idOrTag: string, attr?: string): any;
setValue(idOrTag: any, val: any, attr?: string): void;
willRender(): void;
setLineName(name: 'curve' | 'line' | 'polyline' | 'mind', render?: boolean): void;
setColor(color: string): void;
setFontColor(color: string): void;
setIconColor(color: string): void;
setBkColor(color: string): void;
pureData(): any;
pureDataChildren(data: any): void;
destroy(): void;
}
export {};

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,54 @@
import { Options } from './options';
import { Node } from './models/node';
import { Layer } from './layer';
export declare class DivLayer extends Layer {
parentElem: HTMLElement;
options: Options;
canvas: HTMLDivElement;
player: HTMLDivElement;
curNode: Node;
playBtn: HTMLElement;
currentTime: HTMLElement;
progressCurrent: HTMLElement;
progress: HTMLElement;
loop: HTMLElement;
media: HTMLMediaElement;
audios: {
[key: string]: {
player: HTMLElement;
current: HTMLElement;
media: HTMLMediaElement;
};
};
iframes: {
[key: string]: HTMLIFrameElement;
};
elements: {
[key: string]: HTMLElement;
};
gifs: {
[key: string]: HTMLImageElement;
};
private subcribeDiv;
private subcribePlay;
private subcribeNode;
constructor(parentElem: HTMLElement, options: Options, TID: string);
addDiv: (node: Node) => void;
createPlayer: () => void;
getMediaCurrent: () => void;
addMedia: (node: Node, type: string) => HTMLDivElement;
play(idOrTag: any, pause?: boolean): void;
playOne(item: Node, pause?: boolean): void;
addIframe(node: Node): HTMLIFrameElement;
addGif(node: Node): HTMLImageElement;
setElemPosition: (node: Node, elem: HTMLElement) => void;
removeDiv: (item: Node) => void;
clear(shallow?: boolean): void;
formatSeconds(seconds: number): string;
resize(size?: {
width: number;
height: number;
}): void;
render(): void;
destroy(): void;
}

View File

@@ -0,0 +1,502 @@
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import { Store } from 'le5le-store';
import { Lock } from './models/status';
import { images, PenType } from './models/pen';
import { Layer } from './layer';
import { find } from './utils';
var videos = {};
var DivLayer = /** @class */ (function (_super) {
__extends(DivLayer, _super);
function DivLayer(parentElem, options, TID) {
if (options === void 0) { options = {}; }
var _this = _super.call(this, TID) || this;
_this.parentElem = parentElem;
_this.options = options;
_this.canvas = document.createElement('div');
_this.player = document.createElement('div');
_this.audios = {};
_this.iframes = {};
_this.elements = {};
_this.gifs = {};
_this.addDiv = function (node) {
if (node.audio) {
if (_this.audios[node.id] && _this.audios[node.id].media.src !== node.audio) {
_this.audios[node.id].media.src = node.audio;
}
setTimeout(function () {
_this.setElemPosition(node, (_this.audios[node.id] && _this.audios[node.id].player) || _this.addMedia(node, 'audio'));
});
}
if (node.video) {
if (videos[node.id] && videos[node.id].media.src !== node.video) {
videos[node.id].media.src = node.video;
}
setTimeout(function () {
_this.setElemPosition(node, (videos[node.id] && videos[node.id].player) || _this.addMedia(node, 'video'));
});
}
if (node.iframe) {
if (!_this.iframes[node.id]) {
_this.addIframe(node);
setTimeout(function () {
_this.addDiv(node);
});
}
else {
if (_this.iframes[node.id].src !== node.iframe) {
_this.iframes[node.id].src = node.iframe;
}
_this.setElemPosition(node, _this.iframes[node.id]);
}
}
if (node.elementId) {
if (!_this.elements[node.id]) {
_this.elements[node.id] = document.getElementById(node.elementId);
if (_this.elements[node.id]) {
_this.canvas.appendChild(_this.elements[node.id]);
}
}
_this.setElemPosition(node, _this.elements[node.id]);
}
if (node.gif) {
if (node.image.indexOf('.gif') < 0) {
node.gif = false;
_this.canvas.removeChild(_this.gifs[node.id]);
_this.gifs[node.id] = undefined;
}
else if (node.img) {
if (_this.gifs[node.id] && _this.gifs[node.id].src !== node.image) {
_this.gifs[node.id].src = node.image;
}
_this.setElemPosition(node, _this.gifs[node.id] || _this.addGif(node));
}
}
if (node.children) {
for (var _i = 0, _a = node.children; _i < _a.length; _i++) {
var child = _a[_i];
if (child.type === PenType.Line) {
continue;
}
_this.addDiv(child);
}
}
};
_this.createPlayer = function () {
_this.player.style.position = 'fixed';
_this.player.style.outline = 'none';
_this.player.style.top = '-99999px';
_this.player.style.height = '40px';
_this.player.style.padding = '10px 15px';
_this.player.style.background = 'rgba(200,200,200,.1)';
_this.player.style.display = 'flex';
_this.player.style.alignItems = 'center';
_this.player.style.userSelect = 'initial';
_this.player.style.pointerEvents = 'initial';
_this.player.style.zIndex = '1';
_this.playBtn = document.createElement('i');
_this.currentTime = document.createElement('span');
_this.progress = document.createElement('div');
_this.progressCurrent = document.createElement('div');
_this.loop = document.createElement('i');
var fullScreen = document.createElement('i');
_this.playBtn.className = _this.options.playIcon;
_this.playBtn.style.fontSize = '18px';
_this.playBtn.style.lineHeight = '20px';
_this.playBtn.style.cursor = 'pointer';
_this.currentTime.style.padding = '0 10px';
_this.currentTime.innerText = '0 / 0';
_this.progress.style.position = 'relative';
_this.progress.style.flexGrow = '1';
_this.progress.style.top = '0';
_this.progress.style.height = '4px';
_this.progress.style.background = '#ccc';
_this.progress.style.borderRadius = '2px';
_this.progress.style.overflow = 'hidden';
_this.progress.style.cursor = 'pointer';
_this.progressCurrent.style.position = 'absolute';
_this.progressCurrent.style.left = '0';
_this.progressCurrent.style.top = '0';
_this.progressCurrent.style.bottom = '0';
_this.progressCurrent.style.width = '0';
_this.progressCurrent.style.background = '#52c41a';
_this.loop.style.margin = '0 10px';
_this.loop.style.padding = '2px 5px';
_this.loop.style.borderRadius = '2px';
_this.loop.className = _this.options.loopIcon;
_this.loop.style.fontSize = '18px';
_this.loop.style.lineHeight = '20px';
_this.loop.style.cursor = 'pointer';
fullScreen.className = _this.options.fullScreenIcon;
fullScreen.style.fontSize = '17px';
fullScreen.style.lineHeight = '20px';
fullScreen.style.cursor = 'pointer';
_this.player.appendChild(_this.playBtn);
_this.player.appendChild(_this.currentTime);
_this.player.appendChild(_this.progress);
_this.progress.appendChild(_this.progressCurrent);
_this.player.appendChild(_this.loop);
_this.player.appendChild(fullScreen);
_this.playBtn.onclick = function () {
if (_this.media.paused) {
_this.media.play();
_this.playBtn.className = _this.options.pauseIcon;
}
else {
_this.media.pause();
_this.playBtn.className = _this.options.playIcon;
}
};
_this.progress.onclick = function (e) {
_this.media.currentTime = (e.offsetX / _this.progress.clientWidth) * _this.media.duration;
};
_this.loop.onclick = function () {
_this.media.loop = !_this.media.loop;
_this.curNode.playLoop = _this.media.loop;
if (_this.media.loop) {
_this.loop.style.background = '#ddd';
}
else {
_this.loop.style.background = 'none';
}
};
fullScreen.onclick = function () {
_this.media.requestFullscreen();
};
};
_this.getMediaCurrent = function () {
if (!_this.media) {
return;
}
_this.currentTime.innerText =
_this.formatSeconds(_this.media.currentTime) + ' / ' + _this.formatSeconds(_this.media.duration);
_this.progressCurrent.style.width =
(_this.media.currentTime / _this.media.duration) * _this.progress.clientWidth + 'px';
};
_this.addMedia = function (node, type) {
var player = document.createElement('div');
var current = document.createElement('div');
var media = document.createElement(type);
player.id = node.id;
current.style.position = 'absolute';
current.style.outline = 'none';
current.style.left = '0';
current.style.bottom = '0';
current.style.height = '2px';
current.style.background = '#52c41a';
media.style.position = 'absolute';
media.style.outline = 'none';
media.style.left = '0';
media.style.right = '0';
media.style.top = '0';
media.style.bottom = '0';
if (type === 'video') {
media.style.width = node.rect.width + 'px';
media.style.height = node.rect.height + 'px';
}
player.style.background = 'transparent';
if (node.playType === 1) {
media.autoplay = true;
}
media.loop = node.playLoop;
media.ontimeupdate = function () {
current.style.width = (media.currentTime / media.duration) * node.rect.width + 'px';
_this.getMediaCurrent();
if (_this.media === media) {
if (node.playLoop) {
media.loop = true;
_this.loop.style.background = '#ddd';
}
else {
media.loop = false;
_this.loop.style.background = 'none';
}
}
};
media.onended = function () {
Store.set(_this.generateStoreKey('mediaEnd'), node);
if (_this.media === media) {
_this.playBtn.className = _this.options.playIcon;
}
_this.play(node.nextPlay);
};
media.onloadedmetadata = function () {
_this.getMediaCurrent();
};
media.src = node[type];
player.appendChild(media);
player.appendChild(current);
if (type === 'video') {
videos[node.id] = {
player: player,
current: current,
media: media,
};
}
else {
_this.audios[node.id] = {
player: player,
current: current,
media: media,
};
}
_this.canvas.appendChild(player);
return player;
};
_this.setElemPosition = function (node, elem) {
if (!elem) {
return;
}
elem.style.position = 'absolute';
elem.style.outline = 'none';
elem.style.left = node.rect.x + _this.data.x + 'px';
elem.style.top = node.rect.y + _this.data.y + 'px';
elem.style.width = node.rect.width + 'px';
elem.style.height = node.rect.height + 'px';
elem.style.display = node.visible ? 'inline' : 'none'; // 是否隐藏元素
if (node.rotate || node.offsetRotate) {
elem.style.transform = "rotate(" + (node.rotate + node.offsetRotate) + "deg)";
}
if (node.video && videos[node.id] && videos[node.id].media) {
videos[node.id].media.style.width = '100%';
videos[node.id].media.style.height = '100%';
}
if (_this.data.locked > Lock.None || node.locked > Lock.None) {
elem.style.userSelect = 'initial';
elem.style.pointerEvents = 'initial';
}
else {
elem.style.userSelect = 'none';
elem.style.pointerEvents = 'none';
}
};
_this.removeDiv = function (item) {
if (_this.curNode && item.id === _this.curNode.id) {
_this.curNode = undefined;
_this.media = undefined;
_this.player.style.top = '-99999px';
}
if (item.audio) {
_this.canvas.removeChild(_this.audios[item.id].player);
_this.audios[item.id] = undefined;
}
if (item.video) {
_this.canvas.removeChild(videos[item.id].player);
videos[item.id] = undefined;
}
if (item.iframe) {
_this.canvas.removeChild(_this.iframes[item.id]);
_this.iframes[item.id] = undefined;
}
if (item.elementId) {
_this.canvas.removeChild(_this.elements[item.id]);
_this.elements[item.id] = undefined;
item.elementId = '';
}
if (item.gif) {
_this.canvas.removeChild(_this.gifs[item.id]);
_this.gifs[item.id] = undefined;
}
if (item.children) {
for (var _i = 0, _a = item.children; _i < _a.length; _i++) {
var child = _a[_i];
if (child.type === PenType.Line) {
continue;
}
_this.removeDiv(child);
}
}
};
if (!_this.options.playIcon) {
_this.options.playIcon = 't-icon t-play';
}
if (!_this.options.pauseIcon) {
_this.options.pauseIcon = 't-icon t-pause';
}
if (!_this.options.fullScreenIcon) {
_this.options.fullScreenIcon = 't-icon t-full-screen';
}
if (!_this.options.loopIcon) {
_this.options.loopIcon = 't-icon t-loop';
}
_this.canvas.style.position = 'absolute';
_this.canvas.style.left = '0';
_this.canvas.style.top = '0';
_this.canvas.style.outline = 'none';
_this.canvas.style.background = 'transparent';
parentElem.appendChild(_this.canvas);
parentElem.appendChild(_this.player);
_this.createPlayer();
_this.subcribeDiv = Store.subscribe(_this.generateStoreKey('LT:addDiv'), _this.addDiv);
_this.subcribeDiv = Store.subscribe(_this.generateStoreKey('LT:removeDiv'), _this.removeDiv);
_this.subcribePlay = Store.subscribe(_this.generateStoreKey('LT:play'), function (e) {
_this.playOne(e.pen, e.pause);
});
_this.subcribeNode = Store.subscribe(_this.generateStoreKey('LT:activeNode'), function (node) {
if (!node || (!node.video && !node.audio)) {
_this.player.style.top = '-99999px';
return;
}
if (node.audio && _this.audios[node.id]) {
_this.media = _this.audios[node.id].media;
}
else if (node.video && videos[node.id]) {
_this.media = videos[node.id].media;
}
else {
return;
}
_this.curNode = node;
var rect = _this.parentElem.getBoundingClientRect();
_this.player.style.top = rect.top + _this.parentElem.clientHeight - 40 + 'px';
_this.player.style.left = rect.left + 'px';
_this.player.style.width = _this.parentElem.clientWidth + 'px';
_this.getMediaCurrent();
if (_this.media.paused) {
_this.playBtn.className = _this.options.playIcon;
}
else {
_this.playBtn.className = _this.options.pauseIcon;
}
});
document.addEventListener('fullscreenchange', function (e) {
if (!_this.media) {
return;
}
if (document.fullscreen) {
_this.media.controls = true;
_this.media.style.userSelect = 'initial';
_this.media.style.pointerEvents = 'initial';
}
else {
_this.media.style.userSelect = 'none';
_this.media.style.pointerEvents = 'none';
_this.media.controls = false;
}
});
return _this;
}
DivLayer.prototype.play = function (idOrTag, pause) {
var _this = this;
if (!idOrTag) {
return;
}
var pens = find(idOrTag, this.data.pens);
pens.forEach(function (item) {
_this.playOne(item, pause);
});
};
DivLayer.prototype.playOne = function (item, pause) {
if (item.audio && this.audios[item.id] && this.audios[item.id].media) {
if (pause) {
this.audios[item.id].media.pause();
}
else if (this.audios[item.id].media.paused) {
this.audios[item.id].media.play();
}
}
else if (item.video && videos[item.id].media) {
if (pause) {
videos[item.id].media.pause();
}
else if (videos[item.id].media.paused) {
videos[item.id].media.play();
}
}
};
DivLayer.prototype.addIframe = function (node) {
var iframe = document.createElement('iframe');
iframe.scrolling = 'no';
iframe.frameBorder = '0';
iframe.src = node.iframe;
this.iframes[node.id] = iframe;
this.canvas.appendChild(iframe);
return iframe;
};
DivLayer.prototype.addGif = function (node) {
this.gifs[node.id] = node.img;
this.canvas.appendChild(node.img);
return node.img;
};
DivLayer.prototype.clear = function (shallow) {
this.canvas.innerHTML = '';
this.audios = {};
videos = {};
this.iframes = {};
this.elements = {};
this.gifs = {};
if (!shallow) {
// tslint:disable-next-line:forin
for (var key in images) {
delete images[key];
}
}
this.player.style.top = '-99999px';
};
DivLayer.prototype.formatSeconds = function (seconds) {
var h = Math.floor(seconds / 3600);
var m = Math.floor(seconds / 60) % 60;
var s = Math.floor(seconds % 60);
var txt = s + '';
if (m) {
txt = m + ':' + s;
}
else {
txt = '0:' + s;
}
if (h) {
txt = h + ':' + m + ':' + s;
}
return txt;
};
DivLayer.prototype.resize = function (size) {
if (size) {
this.canvas.style.width = size.width + 'px';
this.canvas.style.height = size.height + 'px';
}
else {
if (this.options.width && this.options.width !== 'auto') {
this.canvas.style.width = this.options.width + 'px';
}
else {
this.canvas.style.width = this.parentElem.clientWidth + 'px';
}
if (this.options.height && this.options.height !== 'auto') {
this.canvas.style.height = this.options.height + 'px';
}
else {
this.canvas.style.height = this.parentElem.clientHeight - 8 + 'px';
}
}
};
DivLayer.prototype.render = function () {
for (var _i = 0, _a = this.data.pens; _i < _a.length; _i++) {
var item = _a[_i];
if (!item.getTID()) {
item.setTID(this.TID);
}
this.addDiv(item);
}
};
DivLayer.prototype.destroy = function () {
_super.prototype.destroy.call(this);
this.clear();
this.subcribeDiv.unsubscribe();
this.subcribeNode.unsubscribe();
this.subcribePlay.unsubscribe();
};
return DivLayer;
}(Layer));
export { DivLayer };
//# sourceMappingURL=divLayer.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,27 @@
import { Rect } from './models/rect';
import { Point } from './models/point';
import { Line } from './models/line';
import { Node } from './models/node';
import { Pen } from './models/pen';
import { Options } from './options';
import { Layer } from './layer';
export declare class HoverLayer extends Layer {
options: Options;
line: Line;
initLine: Line;
node: Node;
hoverLineCP: Point;
lasthoverLineCP: Point;
dockAnchor: Point;
hoverAnchorIndex: number;
dockLineX: number;
dockLineY: number;
root: Node;
dragRect: Rect;
constructor(options: Options, TID: string);
lineTo(to: Point, toArrow?: string): void;
lineFrom(from: Point): void;
render(ctx: CanvasRenderingContext2D): void;
getRoot(pen: Pen): any;
clear(): void;
}

View File

@@ -0,0 +1,211 @@
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import { PenType } from './models/pen';
import { Store } from 'le5le-store';
import { Lock } from './models/status';
import { Layer } from './layer';
import { rgba } from './utils/math';
var HoverLayer = /** @class */ (function (_super) {
__extends(HoverLayer, _super);
function HoverLayer(options, TID) {
if (options === void 0) { options = {}; }
var _this = _super.call(this, TID) || this;
_this.options = options;
_this.hoverAnchorIndex = -1;
_this.dockLineX = 0;
_this.dockLineY = 0;
Store.set(_this.generateStoreKey('LT:HoverLayer'), _this);
return _this;
}
HoverLayer.prototype.lineTo = function (to, toArrow) {
if (toArrow === void 0) { toArrow = 'triangleSolid'; }
if (!this.line || this.line.locked) {
return;
}
this.line.setTo(to, toArrow);
if (this.line.from.id || this.line.to.id) {
this.line.calcControlPoints();
}
Store.set(this.generateStoreKey('pts-') + this.line.id, undefined);
Store.set(this.generateStoreKey('LT:updateLines'), [this.line]);
};
HoverLayer.prototype.lineFrom = function (from) {
if (this.line.locked) {
return;
}
this.line.setFrom(from, this.line.fromArrow);
if (this.line.from.id || this.line.to.id) {
this.line.calcControlPoints();
}
Store.set(this.generateStoreKey('pts-') + this.line.id, undefined);
Store.set(this.generateStoreKey('LT:updateLines'), [this.line]);
};
HoverLayer.prototype.render = function (ctx) {
var _this = this;
if (this.data.locked === Lock.NoEvent || this.options.hoverColor === 'transparent') {
return;
}
ctx.fillStyle = this.options.hoverColor;
ctx.save();
// anchors
if (this.options.alwaysAnchor) {
this.data.pens.forEach(function (pen) {
if (pen.type === PenType.Line) {
return;
}
if (pen.hideAnchor) {
return;
}
for (var _i = 0, _a = pen.rotatedAnchors; _i < _a.length; _i++) {
var anchor = _a[_i];
if (anchor.hidden) {
continue;
}
ctx.beginPath();
ctx.arc(anchor.x, anchor.y, anchor.radius || _this.options.anchorRadius, 0, Math.PI * 2);
ctx.strokeStyle = anchor.strokeStyle || _this.options.hoverColor;
ctx.fillStyle = anchor.fillStyle || _this.options.anchorFillStyle;
ctx.fill();
ctx.stroke();
}
if (_this.options.autoAnchor) {
ctx.beginPath();
ctx.arc(pen.rect.center.x, pen.rect.center.y, pen.rect.center.radius || _this.options.anchorRadius, 0, Math.PI * 2);
ctx.strokeStyle = _this.options.hoverColor;
ctx.fillStyle = _this.options.anchorFillStyle;
ctx.fill();
ctx.stroke();
}
});
}
ctx.restore();
if (this.node && !this.data.locked) {
if (!this.node.getTID()) {
this.node.setTID(this.TID);
}
this.root = this.getRoot(this.node) || this.node;
if (this.root) {
ctx.save();
ctx.strokeStyle = this.options.dragColor;
ctx.globalAlpha = 0.2;
if (this.root.rotate) {
ctx.translate(this.root.rect.center.x, this.root.rect.center.y);
ctx.rotate(((this.root.rotate + this.root.offsetRotate) * Math.PI) / 180);
ctx.translate(-this.root.rect.center.x, -this.root.rect.center.y);
}
ctx.beginPath();
ctx.strokeRect(this.root.rect.x, this.root.rect.y, this.root.rect.width, this.root.rect.height);
ctx.restore();
}
if (!this.options.hideAnchor) {
for (var i = 0; i < this.node.rotatedAnchors.length; ++i) {
if (this.node.locked ||
this.node.hideAnchor ||
(this.node.rotatedAnchors[i].hidden && this.hoverAnchorIndex !== i)) {
continue;
}
ctx.beginPath();
ctx.arc(this.node.rotatedAnchors[i].x, this.node.rotatedAnchors[i].y, this.node.rotatedAnchors[i].radius || this.options.anchorRadius, 0, Math.PI * 2);
ctx.strokeStyle = this.node.rotatedAnchors[i].strokeStyle || this.options.hoverColor;
ctx.fillStyle = this.node.rotatedAnchors[i].fillStyle || this.options.anchorFillStyle;
ctx.fill();
ctx.stroke();
}
}
if (this.options.autoAnchor) {
ctx.beginPath();
ctx.arc(this.node.rect.center.x, this.node.rect.center.y, this.node.rect.center.radius || this.options.anchorRadius, 0, Math.PI * 2);
ctx.strokeStyle = this.options.hoverColor;
ctx.fillStyle = this.options.anchorFillStyle;
ctx.fill();
ctx.stroke();
}
}
if (this.line && !this.data.locked) {
this.root = this.getRoot(this.line);
if (this.root) {
ctx.save();
ctx.strokeStyle = this.options.dragColor;
ctx.globalAlpha = 0.2;
if (this.root.rotate) {
ctx.translate(this.root.rect.center.x, this.root.rect.center.y);
ctx.rotate(((this.root.rotate + this.root.offsetRotate) * Math.PI) / 180);
ctx.translate(-this.root.rect.center.x, -this.root.rect.center.y);
}
ctx.beginPath();
ctx.strokeRect(this.root.rect.x, this.root.rect.y, this.root.rect.width, this.root.rect.height);
ctx.restore();
}
}
if (this.dockAnchor) {
ctx.save();
ctx.beginPath();
ctx.arc(this.dockAnchor.x, this.dockAnchor.y, this.dockAnchor.radius || this.options.anchorRadius, 0, Math.PI * 2);
ctx.strokeStyle = this.options.dockStrokeStyle;
ctx.fillStyle = this.options.dockFillStyle;
ctx.fill();
ctx.stroke();
ctx.restore();
}
if (this.hoverLineCP) {
ctx.beginPath();
ctx.arc(this.hoverLineCP.x, this.hoverLineCP.y, 5, 0, Math.PI * 2);
ctx.fill();
}
ctx.strokeStyle = rgba(0.5, this.options.hoverColor);
ctx.lineWidth = 1;
if (this.dockLineX > 0) {
var size = Store.get(this.generateStoreKey('LT:size'));
ctx.beginPath();
ctx.moveTo(this.dockLineX, -this.data.y);
ctx.lineTo(this.dockLineX, size.height);
ctx.stroke();
}
if (this.dockLineY > 0) {
var size = Store.get(this.generateStoreKey('LT:size'));
ctx.beginPath();
ctx.moveTo(-this.data.x, this.dockLineY);
ctx.lineTo(size.width, this.dockLineY);
ctx.stroke();
}
// Select nodes by drag.
if (this.dragRect) {
ctx.fillStyle = rgba(0.2, this.options.dragColor);
ctx.strokeStyle = this.options.dragColor;
ctx.beginPath();
ctx.strokeRect(this.dragRect.x, this.dragRect.y, this.dragRect.width, this.dragRect.height);
ctx.fillRect(this.dragRect.x, this.dragRect.y, this.dragRect.width, this.dragRect.height);
}
};
HoverLayer.prototype.getRoot = function (pen) {
if (!pen.parentId) {
return null;
}
for (var _i = 0, _a = this.data.pens; _i < _a.length; _i++) {
var item = _a[_i];
if (item.id === pen.parentId) {
var n = this.getRoot(item);
return n ? n : item;
}
}
return null;
};
HoverLayer.prototype.clear = function () {
this.node = undefined;
this.line = undefined;
};
return HoverLayer;
}(Layer));
export { HoverLayer };
//# sourceMappingURL=hoverLayer.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
import { Observer } from 'le5le-store';
import { TopologyData } from './models/data';
export declare class Layer {
protected TID: string;
protected data: TopologyData;
subcribe: Observer;
constructor(TID: string);
protected generateStoreKey(key: any): string;
destroy(): void;
}

View File

@@ -0,0 +1,19 @@
import { Store } from 'le5le-store';
var Layer = /** @class */ (function () {
function Layer(TID) {
var _this = this;
this.TID = TID;
this.subcribe = Store.subscribe(this.generateStoreKey('topology-data'), function (val) {
_this.data = val;
});
}
Layer.prototype.generateStoreKey = function (key) {
return this.TID + "-" + key;
};
Layer.prototype.destroy = function () {
this.subcribe.unsubscribe();
};
return Layer;
}());
export { Layer };
//# sourceMappingURL=layer.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"layer.js","sourceRoot":"","sources":["../../../packages/core/src/layer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,EAAE,MAAM,aAAa,CAAC;AAG9C;IAIE,eAAY,GAAW;QAAvB,iBAKC;QAJC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,UAAC,GAAG;YAC1E,KAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAES,gCAAgB,GAA1B,UAA2B,GAAG;QAC5B,OAAU,IAAI,CAAC,GAAG,SAAI,GAAK,CAAC;IAC9B,CAAC;IAED,uBAAO,GAAP;QACE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC;IACH,YAAC;AAAD,CAAC,AAlBD,IAkBC"}

View File

@@ -0,0 +1,3 @@
import { Point } from '../../models/point';
export declare function circleSolid(ctx: CanvasRenderingContext2D, from: Point, to: Point, size: number, fillStyle?: string): void;
export declare function circle(ctx: CanvasRenderingContext2D, from: Point, to: Point, size: number): void;

View File

@@ -0,0 +1,24 @@
import { Store } from 'le5le-store';
export function circleSolid(ctx, from, to, size, fillStyle) {
size += ctx.lineWidth * 3;
var r = size / 2;
if (ctx.lineWidth < 2) {
ctx.lineWidth = 2;
}
ctx.translate(to.x, to.y);
ctx.rotate(Math.atan2(to.y - from.y, to.x - from.x));
ctx.translate(-to.x, -to.y - ctx.lineWidth / 10);
ctx.arc(to.x - r - ctx.lineWidth / 2, to.y, r, 0, 2 * Math.PI);
ctx.stroke();
if (fillStyle) {
ctx.fillStyle = fillStyle;
}
else {
ctx.fillStyle = ctx.strokeStyle;
}
ctx.fill();
}
export function circle(ctx, from, to, size) {
circleSolid(ctx, from, to, size, Store.get('LT:bkColor') || '#fff');
}
//# sourceMappingURL=circle.js.map

Some files were not shown because too many files have changed in this diff Show More