@plait/graph-viz 0.77.3 → 0.78.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/plait-graph-viz.mjs.map +1 -1
- package/package.json +1 -3
- package/esm2022/constants/default.mjs +0 -5
- package/esm2022/force-atlas/constants.mjs +0 -44
- package/esm2022/force-atlas/core/node-icon-base.component.mjs +0 -15
- package/esm2022/force-atlas/edge.flavour.mjs +0 -25
- package/esm2022/force-atlas/force-atlas.flavour.mjs +0 -58
- package/esm2022/force-atlas/generators/edge.generator.mjs +0 -30
- package/esm2022/force-atlas/generators/node.generator.mjs +0 -44
- package/esm2022/force-atlas/node.flavour.mjs +0 -57
- package/esm2022/force-atlas/types.mjs +0 -7
- package/esm2022/force-atlas/utils/draw.mjs +0 -91
- package/esm2022/force-atlas/utils/edge.mjs +0 -73
- package/esm2022/force-atlas/utils/node.mjs +0 -55
- package/esm2022/force-atlas/with-force-atlas.mjs +0 -72
- package/esm2022/force-atlas/with-node-icon.mjs +0 -8
- package/esm2022/interfaces/element.mjs +0 -12
- package/esm2022/interfaces/index.mjs +0 -2
- package/esm2022/perfect-arrows/get-arrow.mjs +0 -92
- package/esm2022/perfect-arrows/utils.mjs +0 -100
- package/esm2022/plait-graph-viz.mjs +0 -5
- package/esm2022/public-api.mjs +0 -10
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { createForeignObject, createG, normalizePoint } from '@plait/core';
|
|
2
|
-
import { Generator } from '@plait/common';
|
|
3
|
-
import { drawNode } from '../utils/draw';
|
|
4
|
-
import { ACTIVE_NODE_ICON_CLASS_NAME, ACTIVE_NODE_ICON_FONT_SIZE, NODE_ICON_CLASS_NAME } from '../constants';
|
|
5
|
-
import { getNodeIcon } from '../utils/node';
|
|
6
|
-
export class ForceAtlasNodeGenerator extends Generator {
|
|
7
|
-
static { this.key = 'force-atlas-node'; }
|
|
8
|
-
constructor(board) {
|
|
9
|
-
super(board);
|
|
10
|
-
}
|
|
11
|
-
canDraw(element) {
|
|
12
|
-
return true;
|
|
13
|
-
}
|
|
14
|
-
draw(element, data) {
|
|
15
|
-
const iconRef = this.drawIcon(element, data);
|
|
16
|
-
return drawNode(this.board, element, element?.points?.[0] || [0, 0], { ...data, iconG: iconRef.iconG });
|
|
17
|
-
}
|
|
18
|
-
drawIcon(element, data) {
|
|
19
|
-
const iconG = createG();
|
|
20
|
-
let { x, y } = normalizePoint(element.points?.[0] || [0, 0]);
|
|
21
|
-
const size = element.size;
|
|
22
|
-
const foreignObject = createForeignObject(x - size / 2, y - size / 2, size, size);
|
|
23
|
-
iconG.append(foreignObject);
|
|
24
|
-
const container = document.createElement('div');
|
|
25
|
-
container.classList.add(NODE_ICON_CLASS_NAME);
|
|
26
|
-
if (data.isActive) {
|
|
27
|
-
container.classList.add(ACTIVE_NODE_ICON_CLASS_NAME);
|
|
28
|
-
}
|
|
29
|
-
foreignObject.append(container);
|
|
30
|
-
const nodeIcon = getNodeIcon(element);
|
|
31
|
-
const props = {
|
|
32
|
-
iconItem: {
|
|
33
|
-
name: nodeIcon.name,
|
|
34
|
-
fontSize: data.isActive ? ACTIVE_NODE_ICON_FONT_SIZE : nodeIcon.fontSize,
|
|
35
|
-
color: nodeIcon.color
|
|
36
|
-
},
|
|
37
|
-
board: this.board,
|
|
38
|
-
element: element
|
|
39
|
-
};
|
|
40
|
-
const ref = this.board.renderNodeIcon(container, props);
|
|
41
|
-
return { ref, iconG };
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmFwaC12aXovc3JjL2ZvcmNlLWF0bGFzL2dlbmVyYXRvcnMvbm9kZS5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkYsT0FBTyxFQUFFLFNBQVMsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd6QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsMEJBQTBCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0csT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsU0FBbUQ7YUFDckYsUUFBRyxHQUFHLGtCQUFrQixDQUFDO0lBRWhDLFlBQVksS0FBaUI7UUFDekIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBOEI7UUFDbEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksQ0FBQyxPQUE4QixFQUFFLElBQXVCO1FBQ3hELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdDLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM1RyxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQThCLEVBQUUsSUFBdUI7UUFDNUQsTUFBTSxLQUFLLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDeEIsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0QsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUssQ0FBQztRQUMzQixNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEYsS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1QixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDOUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsYUFBYSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoQyxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsTUFBTSxLQUFLLEdBQWtCO1lBQ3pCLFFBQVEsRUFBRTtnQkFDTixJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7Z0JBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVE7Z0JBQ3hFLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSzthQUN4QjtZQUNELEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixPQUFPLEVBQUUsT0FBTztTQUNuQixDQUFDO1FBQ0YsTUFBTSxHQUFHLEdBQUssSUFBSSxDQUFDLEtBQTZDLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsRyxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBjcmVhdGVGb3JlaWduT2JqZWN0LCBjcmVhdGVHLCBub3JtYWxpemVQb2ludCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEdlbmVyYXRvciwgUmVuZGVyQ29tcG9uZW50UmVmIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBGb3JjZUF0bGFzTm9kZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGRyYXdOb2RlIH0gZnJvbSAnLi4vdXRpbHMvZHJhdyc7XG5pbXBvcnQgeyBOb2RlR2VuZXJhdG9yRGF0YSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEZvcmNlQXRsYXNOb2RlSWNvbkJvYXJkLCBOb2RlSWNvblByb3BzIH0gZnJvbSAnLi4vd2l0aC1ub2RlLWljb24nO1xuaW1wb3J0IHsgQUNUSVZFX05PREVfSUNPTl9DTEFTU19OQU1FLCBBQ1RJVkVfTk9ERV9JQ09OX0ZPTlRfU0laRSwgTk9ERV9JQ09OX0NMQVNTX05BTUUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0Tm9kZUljb24gfSBmcm9tICcuLi91dGlscy9ub2RlJztcblxuZXhwb3J0IGNsYXNzIEZvcmNlQXRsYXNOb2RlR2VuZXJhdG9yIGV4dGVuZHMgR2VuZXJhdG9yPEZvcmNlQXRsYXNOb2RlRWxlbWVudCwgTm9kZUdlbmVyYXRvckRhdGE+IHtcbiAgICBzdGF0aWMga2V5ID0gJ2ZvcmNlLWF0bGFzLW5vZGUnO1xuXG4gICAgY29uc3RydWN0b3IoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICAgICAgc3VwZXIoYm9hcmQpO1xuICAgIH1cblxuICAgIGNhbkRyYXcoZWxlbWVudDogRm9yY2VBdGxhc05vZGVFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGRyYXcoZWxlbWVudDogRm9yY2VBdGxhc05vZGVFbGVtZW50LCBkYXRhOiBOb2RlR2VuZXJhdG9yRGF0YSkge1xuICAgICAgICBjb25zdCBpY29uUmVmID0gdGhpcy5kcmF3SWNvbihlbGVtZW50LCBkYXRhKTtcbiAgICAgICAgcmV0dXJuIGRyYXdOb2RlKHRoaXMuYm9hcmQsIGVsZW1lbnQsIGVsZW1lbnQ/LnBvaW50cz8uWzBdIHx8IFswLCAwXSwgeyAuLi5kYXRhLCBpY29uRzogaWNvblJlZi5pY29uRyB9KTtcbiAgICB9XG5cbiAgICBkcmF3SWNvbihlbGVtZW50OiBGb3JjZUF0bGFzTm9kZUVsZW1lbnQsIGRhdGE6IE5vZGVHZW5lcmF0b3JEYXRhKSB7XG4gICAgICAgIGNvbnN0IGljb25HID0gY3JlYXRlRygpO1xuICAgICAgICBsZXQgeyB4LCB5IH0gPSBub3JtYWxpemVQb2ludChlbGVtZW50LnBvaW50cz8uWzBdIHx8IFswLCAwXSk7XG4gICAgICAgIGNvbnN0IHNpemUgPSBlbGVtZW50LnNpemUhO1xuICAgICAgICBjb25zdCBmb3JlaWduT2JqZWN0ID0gY3JlYXRlRm9yZWlnbk9iamVjdCh4IC0gc2l6ZSAvIDIsIHkgLSBzaXplIC8gMiwgc2l6ZSwgc2l6ZSk7XG4gICAgICAgIGljb25HLmFwcGVuZChmb3JlaWduT2JqZWN0KTtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKE5PREVfSUNPTl9DTEFTU19OQU1FKTtcbiAgICAgICAgaWYgKGRhdGEuaXNBY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKEFDVElWRV9OT0RFX0lDT05fQ0xBU1NfTkFNRSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yZWlnbk9iamVjdC5hcHBlbmQoY29udGFpbmVyKTtcbiAgICAgICAgY29uc3Qgbm9kZUljb24gPSBnZXROb2RlSWNvbihlbGVtZW50KTtcbiAgICAgICAgY29uc3QgcHJvcHM6IE5vZGVJY29uUHJvcHMgPSB7XG4gICAgICAgICAgICBpY29uSXRlbToge1xuICAgICAgICAgICAgICAgIG5hbWU6IG5vZGVJY29uLm5hbWUsXG4gICAgICAgICAgICAgICAgZm9udFNpemU6IGRhdGEuaXNBY3RpdmUgPyBBQ1RJVkVfTk9ERV9JQ09OX0ZPTlRfU0laRSA6IG5vZGVJY29uLmZvbnRTaXplLFxuICAgICAgICAgICAgICAgIGNvbG9yOiBub2RlSWNvbi5jb2xvclxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJvYXJkOiB0aGlzLmJvYXJkLFxuICAgICAgICAgICAgZWxlbWVudDogZWxlbWVudFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZWYgPSAoKHRoaXMuYm9hcmQgYXMgdW5rbm93bikgYXMgRm9yY2VBdGxhc05vZGVJY29uQm9hcmQpLnJlbmRlck5vZGVJY29uKGNvbnRhaW5lciwgcHJvcHMpO1xuICAgICAgICByZXR1cm4geyByZWYsIGljb25HIH07XG4gICAgfVxufVxuIl19
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { CommonElementFlavour } from '@plait/common';
|
|
2
|
-
import { PlaitBoard, PlaitNode, cacheSelectedElements, getSelectedElements } from '@plait/core';
|
|
3
|
-
import { ForceAtlasNodeGenerator } from './generators/node.generator';
|
|
4
|
-
import { getEdgeGenerator, getEdgeGeneratorData, getEdgesInSourceOrTarget } from './utils/edge';
|
|
5
|
-
import { getNodeGenerator, getNodes, isFirstDepthNode } from './utils/node';
|
|
6
|
-
import { SECOND_DEPTH_NODE_ALPHA } from './constants';
|
|
7
|
-
export class ForceAtlasNodeFlavour extends CommonElementFlavour {
|
|
8
|
-
constructor() {
|
|
9
|
-
super();
|
|
10
|
-
}
|
|
11
|
-
initializeGenerator() {
|
|
12
|
-
this.nodeGenerator = new ForceAtlasNodeGenerator(this.board);
|
|
13
|
-
this.getRef().addGenerator(ForceAtlasNodeGenerator.key, this.nodeGenerator);
|
|
14
|
-
}
|
|
15
|
-
initialize() {
|
|
16
|
-
super.initialize();
|
|
17
|
-
this.initializeGenerator();
|
|
18
|
-
const parent = PlaitNode.parent(this.board, PlaitBoard.findPath(this.board, this.element));
|
|
19
|
-
const selectElements = getSelectedElements(this.board);
|
|
20
|
-
const activeNodeId = selectElements[0]?.id;
|
|
21
|
-
const isActive = activeNodeId === this.element.id;
|
|
22
|
-
this.nodeGenerator.processDrawing(this.element, this.getElementG(), {
|
|
23
|
-
isActive,
|
|
24
|
-
opacity: isFirstDepthNode(this.element.id, activeNodeId, parent) ? 1 : SECOND_DEPTH_NODE_ALPHA
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
onContextChanged(value, previous) {
|
|
28
|
-
if (value !== previous && value.selected !== previous.selected) {
|
|
29
|
-
const parent = value.parent;
|
|
30
|
-
if (value.selected) {
|
|
31
|
-
cacheSelectedElements(this.board, [value.element]);
|
|
32
|
-
}
|
|
33
|
-
const selectElements = getSelectedElements(this.board);
|
|
34
|
-
const nodes = getNodes(parent);
|
|
35
|
-
nodes.forEach(node => {
|
|
36
|
-
const nodeGenerator = getNodeGenerator(node);
|
|
37
|
-
nodeGenerator.destroy();
|
|
38
|
-
const isFirstDepth = selectElements.length > 0 && isFirstDepthNode(node.id, selectElements[0].id, parent);
|
|
39
|
-
nodeGenerator.processDrawing(node, this.getElementG(), {
|
|
40
|
-
isActive: selectElements?.[0]?.id === node.id,
|
|
41
|
-
opacity: selectElements.length === 0 ? 1 : isFirstDepth ? 1 : SECOND_DEPTH_NODE_ALPHA
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
const associatedEdges = getEdgesInSourceOrTarget(value.element.id, parent);
|
|
45
|
-
associatedEdges.forEach(edge => {
|
|
46
|
-
const edgeGenerator = getEdgeGenerator(edge);
|
|
47
|
-
edgeGenerator.destroy();
|
|
48
|
-
edgeGenerator.processDrawing(edge, PlaitBoard.getElementLowerHost(this.board), getEdgeGeneratorData(edge, this.board));
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
updateText(previousElement, currentElement) { }
|
|
53
|
-
destroy() {
|
|
54
|
-
super.destroy();
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5mbGF2b3VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JhcGgtdml6L3NyYy9mb3JjZS1hdGxhcy9ub2RlLmZsYXZvdXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFFSCxVQUFVLEVBQ1YsU0FBUyxFQUVULHFCQUFxQixFQUNyQixtQkFBbUIsRUFDdEIsTUFBTSxhQUFhLENBQUM7QUFHckIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXRELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxvQkFBdUQ7SUFLOUY7UUFDSSxLQUFLLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUMsdUJBQXVCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsVUFBVTtRQUNOLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJ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QUFDO0lBRTVGLE9BQU87UUFDSCxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uRWxlbWVudEZsYXZvdXIgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7XG4gICAgT25Db250ZXh0Q2hhbmdlZCxcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0Tm9kZSxcbiAgICBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0LFxuICAgIGNhY2hlU2VsZWN0ZWRFbGVtZW50cyxcbiAgICBnZXRTZWxlY3RlZEVsZW1lbnRzXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCBHcmFwaCBmcm9tICdncmFwaG9sb2d5JztcbmltcG9ydCB7IEZvcmNlQXRsYXNFbGVtZW50LCBGb3JjZUF0bGFzTm9kZUVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEZvcmNlQXRsYXNOb2RlR2VuZXJhdG9yIH0gZnJvbSAnLi9nZW5lcmF0b3JzL25vZGUuZ2VuZXJhdG9yJztcbmltcG9ydCB7IGdldEVkZ2VHZW5lcmF0b3IsIGdldEVkZ2VHZW5lcmF0b3JEYXRhLCBnZXRFZGdlc0luU291cmNlT3JUYXJnZXQgfSBmcm9tICcuL3V0aWxzL2VkZ2UnO1xuaW1wb3J0IHsgZ2V0Tm9kZUdlbmVyYXRvciwgZ2V0Tm9kZXMsIGlzRmlyc3REZXB0aE5vZGUgfSBmcm9tICcuL3V0aWxzL25vZGUnO1xuaW1wb3J0IHsgU0VDT05EX0RFUFRIX05PREVfQUxQSEEgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBGb3JjZUF0bGFzTm9kZUZsYXZvdXIgZXh0ZW5kcyBDb21tb25FbGVtZW50Rmxhdm91cjxGb3JjZUF0bGFzTm9kZUVsZW1lbnQsIFBsYWl0Qm9hcmQ+XG4gICAgaW1wbGVtZW50cyBPbkNvbnRleHRDaGFuZ2VkPEZvcmNlQXRsYXNOb2RlRWxlbWVudCwgUGxhaXRCb2FyZD4ge1xuICAgIGdyYXBoITogR3JhcGg8Tm9kZT47XG4gICAgbm9kZUdlbmVyYXRvciE6IEZvcmNlQXRsYXNOb2RlR2VuZXJhdG9yO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZUdlbmVyYXRvcigpIHtcbiAgICAgICAgdGhpcy5ub2RlR2VuZXJhdG9yID0gbmV3IEZvcmNlQXRsYXNOb2RlR2VuZXJhdG9yKHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLmdldFJlZigpLmFkZEdlbmVyYXRvcihGb3JjZUF0bGFzTm9kZUdlbmVyYXRvci5rZXksIHRoaXMubm9kZUdlbmVyYXRvcik7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVHZW5lcmF0b3IoKTtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gUGxhaXROb2RlLnBhcmVudCh0aGlzLmJvYXJkLCBQbGFpdEJvYXJkLmZpbmRQYXRoKHRoaXMuYm9hcmQsIHRoaXMuZWxlbWVudCkpIGFzIEZvcmNlQXRsYXNFbGVtZW50O1xuICAgICAgICBjb25zdCBzZWxlY3RFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHModGhpcy5ib2FyZCk7XG4gICAgICAgIGNvbnN0IGFjdGl2ZU5vZGVJZCA9IHNlbGVjdEVsZW1lbnRzWzBdPy5pZDtcbiAgICAgICAgY29uc3QgaXNBY3RpdmUgPSBhY3RpdmVOb2RlSWQgPT09IHRoaXMuZWxlbWVudC5pZDtcbiAgICAgICAgdGhpcy5ub2RlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgdGhpcy5nZXRFbGVtZW50RygpLCB7XG4gICAgICAgICAgICBpc0FjdGl2ZSxcbiAgICAgICAgICAgIG9wYWNpdHk6IGlzRmlyc3REZXB0aE5vZGUodGhpcy5lbGVtZW50LmlkLCBhY3RpdmVOb2RlSWQsIHBhcmVudCkgPyAxIDogU0VDT05EX0RFUFRIX05PREVfQUxQSEFcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25Db250ZXh0Q2hhbmdlZChcbiAgICAgICAgdmFsdWU6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQ8Rm9yY2VBdGxhc05vZGVFbGVtZW50LCBQbGFpdEJvYXJkPixcbiAgICAgICAgcHJldmlvdXM6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQ8Rm9yY2VBdGxhc05vZGVFbGVtZW50LCBQbGFpdEJvYXJkPlxuICAgICkge1xuICAgICAgICBpZiAodmFsdWUgIT09IHByZXZpb3VzICYmIHZhbHVlLnNlbGVjdGVkICE9PSBwcmV2aW91cy5zZWxlY3RlZCkge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdmFsdWUucGFyZW50IGFzIGFueTtcbiAgICAgICAgICAgIGlmICh2YWx1ZS5zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIGNhY2hlU2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkLCBbdmFsdWUuZWxlbWVudF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0RWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKHRoaXMuYm9hcmQpO1xuICAgICAgICAgICAgY29uc3Qgbm9kZXMgPSBnZXROb2RlcyhwYXJlbnQpO1xuICAgICAgICAgICAgbm9kZXMuZm9yRWFjaChub2RlID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBub2RlR2VuZXJhdG9yID0gZ2V0Tm9kZUdlbmVyYXRvcihub2RlKTtcbiAgICAgICAgICAgICAgICBub2RlR2VuZXJhdG9yLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0ZpcnN0RGVwdGggPSBzZWxlY3RFbGVtZW50cy5sZW5ndGggPiAwICYmIGlzRmlyc3REZXB0aE5vZGUobm9kZS5pZCwgc2VsZWN0RWxlbWVudHNbMF0uaWQsIHBhcmVudCk7XG4gICAgICAgICAgICAgICAgbm9kZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyhub2RlLCB0aGlzLmdldEVsZW1lbnRHKCksIHtcbiAgICAgICAgICAgICAgICAgICAgaXNBY3RpdmU6IHNlbGVjdEVsZW1lbnRzPy5bMF0/LmlkID09PSBub2RlLmlkLFxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiBzZWxlY3RFbGVtZW50cy5sZW5ndGggPT09IDAgPyAxIDogaXNGaXJzdERlcHRoID8gMSA6IFNFQ09ORF9ERVBUSF9OT0RFX0FMUEhBXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3QgYXNzb2NpYXRlZEVkZ2VzID0gZ2V0RWRnZXNJblNvdXJjZU9yVGFyZ2V0KHZhbHVlLmVsZW1lbnQuaWQsIHBhcmVudCk7XG4gICAgICAgICAgICBhc3NvY2lhdGVkRWRnZXMuZm9yRWFjaChlZGdlID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlZGdlR2VuZXJhdG9yID0gZ2V0RWRnZUdlbmVyYXRvcihlZGdlKTtcbiAgICAgICAgICAgICAgICBlZGdlR2VuZXJhdG9yLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICBlZGdlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKGVkZ2UsIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudExvd2VySG9zdCh0aGlzLmJvYXJkKSwgZ2V0RWRnZUdlbmVyYXRvckRhdGEoZWRnZSwgdGhpcy5ib2FyZCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVUZXh0KHByZXZpb3VzRWxlbWVudDogRm9yY2VBdGxhc05vZGVFbGVtZW50LCBjdXJyZW50RWxlbWVudDogRm9yY2VBdGxhc05vZGVFbGVtZW50KSB7fVxuXG4gICAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export var EdgeDirection;
|
|
2
|
-
(function (EdgeDirection) {
|
|
3
|
-
EdgeDirection[EdgeDirection["IN"] = 0] = "IN";
|
|
4
|
-
EdgeDirection[EdgeDirection["OUT"] = 1] = "OUT";
|
|
5
|
-
EdgeDirection[EdgeDirection["NONE"] = 2] = "NONE";
|
|
6
|
-
})(EdgeDirection || (EdgeDirection = {}));
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmFwaC12aXovc3JjL2ZvcmNlLWF0bGFzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sQ0FBTixJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDckIsNkNBQUUsQ0FBQTtJQUNGLCtDQUFHLENBQUE7SUFDSCxpREFBSSxDQUFBO0FBQ1IsQ0FBQyxFQUpXLGFBQWEsS0FBYixhQUFhLFFBSXhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2VuZXJhdG9yRXh0cmFEYXRhIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcblxuZXhwb3J0IGVudW0gRWRnZURpcmVjdGlvbiB7XG4gICAgSU4sXG4gICAgT1VULFxuICAgIE5PTkVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb2RlU3R5bGVzIHtcbiAgICBzdHJva2U/OiBzdHJpbmc7XG4gICAgc3Ryb2tlV2lkdGg/OiBudW1iZXI7XG4gICAgZmlsbD86IHN0cmluZztcbiAgICBmaWxsU3R5bGU/OiBzdHJpbmc7XG4gICAgYWN0aXZlU3Ryb2tlPzogc3RyaW5nO1xuICAgIGFjdGl2ZUZpbGw/OiBzdHJpbmc7XG4gICAgYm9yZGVyUmFkaXVzPzogbnVtYmVyO1xuICAgIGhvdmVyU3Ryb2tlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVkZ2VHZW5lcmF0b3JEYXRhIGV4dGVuZHMgR2VuZXJhdG9yRXh0cmFEYXRhIHtcbiAgICBzdGFydFBvaW50OiBQb2ludDtcbiAgICBlbmRQb2ludDogUG9pbnQ7XG4gICAgaXNTb3VyY2VBY3RpdmU6IGJvb2xlYW47XG4gICAgaXNUYXJnZXRBY3RpdmU6IGJvb2xlYW47XG4gICAgZGlyZWN0aW9uOiBFZGdlRGlyZWN0aW9uO1xuICAgIGlzVGFyZ2V0U2VsZj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9kZUdlbmVyYXRvckRhdGEgZXh0ZW5kcyBHZW5lcmF0b3JFeHRyYURhdGEge1xuICAgIGlzQWN0aXZlOiBib29sZWFuO1xuICAgIG9wYWNpdHk6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb2RlSWNvbkl0ZW0ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBmb250U2l6ZT86IG51bWJlcjtcbiAgICBjb2xvcj86IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { EdgeDirection } from '../types';
|
|
2
|
-
import { PlaitBoard, createForeignObject, createG, createPath, drawCircle, normalizePoint } from '@plait/core';
|
|
3
|
-
import getArrow from '../../perfect-arrows/get-arrow';
|
|
4
|
-
import { ACTIVE_BACKGROUND_NODE_ALPHA, DEFAULT_ACTIVE_NODE_SIZE_MULTIPLIER, DEFAULT_ACTIVE_WAVE_NODE_SIZE_MULTIPLIER, DEFAULT_EDGE_PARTICLE_SIZE, DEFAULT_LINE_STYLES, DEFAULT_NODE_LABEL_HEIGHT, DEFAULT_NODE_LABEL_STYLE, DEFAULT_NODE_LABEL_WIDTH, DEFAULT_NODE_SIZE, DEFAULT_NODE_STYLES, NODE_LABEL_CLASS_NAME } from '../constants';
|
|
5
|
-
import { DEFAULT_STYLES } from '../../constants/default';
|
|
6
|
-
export function drawNode(board, node, point, options) {
|
|
7
|
-
const roughSVG = PlaitBoard.getRoughSVG(board);
|
|
8
|
-
const nodeStyles = {
|
|
9
|
-
...DEFAULT_NODE_STYLES,
|
|
10
|
-
...(node.styles || {})
|
|
11
|
-
};
|
|
12
|
-
let { x, y } = normalizePoint(point);
|
|
13
|
-
let diameter = node.size ?? DEFAULT_NODE_SIZE;
|
|
14
|
-
if (options.isActive) {
|
|
15
|
-
diameter = diameter * DEFAULT_ACTIVE_NODE_SIZE_MULTIPLIER;
|
|
16
|
-
}
|
|
17
|
-
const nodeG = drawCircle(roughSVG, [x, y], diameter, nodeStyles);
|
|
18
|
-
const labelWidth = node.styles?.labelWidth ?? DEFAULT_NODE_LABEL_WIDTH;
|
|
19
|
-
const labelHeight = node.styles?.labelHeight ?? DEFAULT_NODE_LABEL_HEIGHT;
|
|
20
|
-
const textForeignObject = createForeignObject(x - labelWidth / 2, y, labelWidth, labelHeight);
|
|
21
|
-
const textContainer = document.createElement('div');
|
|
22
|
-
textContainer.classList.add(NODE_LABEL_CLASS_NAME);
|
|
23
|
-
textContainer.setAttribute('style', DEFAULT_NODE_LABEL_STYLE);
|
|
24
|
-
const text = document.createElement('span');
|
|
25
|
-
text.innerText = node.label;
|
|
26
|
-
textContainer.append(text);
|
|
27
|
-
textForeignObject.append(textContainer);
|
|
28
|
-
if (options.isActive) {
|
|
29
|
-
const waveDiameter = diameter * DEFAULT_ACTIVE_WAVE_NODE_SIZE_MULTIPLIER;
|
|
30
|
-
const waveCircle = drawCircle(roughSVG, [x, y], waveDiameter, nodeStyles);
|
|
31
|
-
waveCircle.setAttribute('opacity', ACTIVE_BACKGROUND_NODE_ALPHA.toString());
|
|
32
|
-
nodeG.append(waveCircle);
|
|
33
|
-
textForeignObject.setAttribute('y', `${y + waveDiameter / 2}`);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
textForeignObject.setAttribute('y', `${y + diameter / 2}`);
|
|
37
|
-
nodeG.setAttribute('opacity', (options.opacity ?? 1).toString());
|
|
38
|
-
}
|
|
39
|
-
if (options.iconG) {
|
|
40
|
-
nodeG.append(options.iconG);
|
|
41
|
-
}
|
|
42
|
-
nodeG.append(textForeignObject);
|
|
43
|
-
return nodeG;
|
|
44
|
-
}
|
|
45
|
-
export function drawEdge(startPoint, endPoint, direction, isMutual, isTargetSelf) {
|
|
46
|
-
const nodeRadius = DEFAULT_NODE_SIZE / 2;
|
|
47
|
-
const arrow = getArrow(startPoint[0], startPoint[1], endPoint[0], endPoint[1], {
|
|
48
|
-
stretch: 0.4,
|
|
49
|
-
flip: direction === EdgeDirection.NONE ? false : isMutual,
|
|
50
|
-
padEnd: nodeRadius,
|
|
51
|
-
padStart: nodeRadius
|
|
52
|
-
});
|
|
53
|
-
const [sx, sy, cx, cy, ex, ey, ae, as, ec] = arrow;
|
|
54
|
-
const g = createG();
|
|
55
|
-
const path = createPath();
|
|
56
|
-
if (!isTargetSelf) {
|
|
57
|
-
path.setAttribute('d', `M${sx},${sy} Q${cx},${cy} ${ex},${ey}`);
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
const x = startPoint[0];
|
|
61
|
-
const y = startPoint[1];
|
|
62
|
-
const besselX = 40;
|
|
63
|
-
const besselY = 75;
|
|
64
|
-
const angle = 55;
|
|
65
|
-
const angleRad = (angle * Math.PI) / 180;
|
|
66
|
-
const offsetX = nodeRadius * Math.cos(angleRad);
|
|
67
|
-
const offsetY = nodeRadius * Math.sin(angleRad);
|
|
68
|
-
path.setAttribute('d', `M ${x - offsetX},${y - offsetY}
|
|
69
|
-
C ${x - besselX},${y - besselY}, ${x + besselX} ${y - besselY}
|
|
70
|
-
${x + offsetX},${y - offsetY}`);
|
|
71
|
-
}
|
|
72
|
-
path.setAttribute('fill', 'none');
|
|
73
|
-
path.setAttribute('stroke', DEFAULT_LINE_STYLES.color[direction]);
|
|
74
|
-
path.setAttribute('opacity', DEFAULT_LINE_STYLES.opacity[direction].toString());
|
|
75
|
-
g.append(path);
|
|
76
|
-
return {
|
|
77
|
-
g,
|
|
78
|
-
path
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
export function drawParticle(board, startPoint, direction) {
|
|
82
|
-
const roughSVG = PlaitBoard.getRoughSVG(board);
|
|
83
|
-
const pointG = drawCircle(roughSVG, [0, 0], DEFAULT_EDGE_PARTICLE_SIZE, {
|
|
84
|
-
...DEFAULT_STYLES,
|
|
85
|
-
strokeWidth: 0,
|
|
86
|
-
fill: DEFAULT_LINE_STYLES.color[direction]
|
|
87
|
-
});
|
|
88
|
-
pointG.setAttribute('transform', `translate(${startPoint[0]}, ${startPoint[1]})`);
|
|
89
|
-
return pointG;
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyYXBoLXZpei9zcmMvZm9yY2UtYXRsYXMvdXRpbHMvZHJhdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sVUFBVSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQVMsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RILE9BQU8sUUFBUSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RELE9BQU8sRUFDSCw0QkFBNEIsRUFDNUIsbUNBQW1DLEVBQ25DLHdDQUF3QyxFQUN4QywwQkFBMEIsRUFDMUIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6Qix3QkFBd0IsRUFDeEIsd0JBQXdCLEVBQ3hCLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIscUJBQXFCLEVBRXhCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUd6RCxNQUFNLFVBQVUsUUFBUSxDQUNwQixLQUFpQixFQUNqQixJQUEyQixFQUMzQixLQUFZLEVBQ1osT0FBcUU7SUFFckUsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxNQUFNLFVBQVUsR0FBZTtRQUMzQixHQUFHLG1CQUFtQjtRQUN0QixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7S0FDekIsQ0FBQztJQUNGLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksaUJBQWlCLENBQUM7SUFDOUMsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkIsUUFBUSxHQUFHLFFBQVEsR0FBRyxtQ0FBbUMsQ0FBQztJQUM5RCxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDakUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLElBQUksd0JBQXdCLENBQUM7SUFDdkUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxXQUFXLElBQUkseUJBQXlCLENBQUM7SUFDMUUsTUFBTSxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzlGLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEQsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNuRCxhQUFhLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBQzlELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQzVCLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsaUJBQWlCLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hDLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25CLE1BQU0sWUFBWSxHQUFHLFFBQVEsR0FBRyx3Q0FBd0MsQ0FBQztRQUN6RSxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMxRSxVQUFVLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSw0QkFBNEIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekIsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxZQUFZLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDO1NBQU0sQ0FBQztRQUNKLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hCLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEMsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQztBQUVELE1BQU0sVUFBVSxRQUFRLENBQUMsVUFBaUIsRUFBRSxRQUFlLEVBQUUsU0FBd0IsRUFBRSxRQUFpQixFQUFFLFlBQXNCO0lBQzVILE1BQU0sVUFBVSxHQUFHLGlCQUFpQixHQUFHLENBQUMsQ0FBQztJQUN6QyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzNFLE9BQU8sRUFBRSxHQUFHO1FBQ1osSUFBSSxFQUFFLFNBQVMsS0FBSyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVE7UUFDekQsTUFBTSxFQUFFLFVBQVU7UUFDbEIsUUFBUSxFQUFFLFVBQVU7S0FDdkIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ25ELE1BQU0sQ0FBQyxHQUFHLE9BQU8sRUFBRSxDQUFDO0lBQ3BCLE1BQU0sSUFBSSxHQUFHLFVBQVUsRUFBRSxDQUFDO0lBQzFCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO1NBQU0sQ0FBQztRQUNKLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ25CLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNuQixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDakIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUN6QyxNQUFNLE9BQU8sR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxNQUFNLE9BQU8sR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxDQUNiLEdBQUcsRUFDSCxLQUFLLENBQUMsR0FBRyxPQUFPLElBQUksQ0FBQyxHQUFHLE9BQU87Z0JBQzNCLENBQUMsR0FBRyxPQUFPLElBQUksQ0FBQyxHQUFHLE9BQU8sS0FBSyxDQUFDLEdBQUcsT0FBTyxJQUFJLENBQUMsR0FBRyxPQUFPO2NBQzNELENBQUMsR0FBRyxPQUFPLElBQUksQ0FBQyxHQUFHLE9BQU8sRUFBRSxDQUNqQyxDQUFDO0lBQ04sQ0FBQztJQUNELElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2hGLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDZixPQUFPO1FBQ0gsQ0FBQztRQUNELElBQUk7S0FDUCxDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBaUIsRUFBRSxVQUFpQixFQUFFLFNBQXdCO0lBQ3ZGLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSwwQkFBMEIsRUFBRTtRQUNwRSxHQUFHLGNBQWM7UUFDakIsV0FBVyxFQUFFLENBQUM7UUFDZCxJQUFJLEVBQUUsbUJBQW1CLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztLQUM3QyxDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxhQUFhLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xGLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGdlRGlyZWN0aW9uLCBOb2RlU3R5bGVzIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCwgUG9pbnQsIGNyZWF0ZUZvcmVpZ25PYmplY3QsIGNyZWF0ZUcsIGNyZWF0ZVBhdGgsIGRyYXdDaXJjbGUsIG5vcm1hbGl6ZVBvaW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IGdldEFycm93IGZyb20gJy4uLy4uL3BlcmZlY3QtYXJyb3dzL2dldC1hcnJvdyc7XG5pbXBvcnQge1xuICAgIEFDVElWRV9CQUNLR1JPVU5EX05PREVfQUxQSEEsXG4gICAgREVGQVVMVF9BQ1RJVkVfTk9ERV9TSVpFX01VTFRJUExJRVIsXG4gICAgREVGQVVMVF9BQ1RJVkVfV0FWRV9OT0RFX1NJWkVfTVVMVElQTElFUixcbiAgICBERUZBVUxUX0VER0VfUEFSVElDTEVfU0laRSxcbiAgICBERUZBVUxUX0xJTkVfU1RZTEVTLFxuICAgIERFRkFVTFRfTk9ERV9MQUJFTF9IRUlHSFQsXG4gICAgREVGQVVMVF9OT0RFX0xBQkVMX1NUWUxFLFxuICAgIERFRkFVTFRfTk9ERV9MQUJFTF9XSURUSCxcbiAgICBERUZBVUxUX05PREVfU0laRSxcbiAgICBERUZBVUxUX05PREVfU1RZTEVTLFxuICAgIE5PREVfTEFCRUxfQ0xBU1NfTkFNRSxcbiAgICBTRUNPTkRfREVQVEhfTk9ERV9BTFBIQVxufSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgREVGQVVMVF9TVFlMRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZGVmYXVsdCc7XG5pbXBvcnQgeyBGb3JjZUF0bGFzTm9kZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRyYXdOb2RlKFxuICAgIGJvYXJkOiBQbGFpdEJvYXJkLFxuICAgIG5vZGU6IEZvcmNlQXRsYXNOb2RlRWxlbWVudCxcbiAgICBwb2ludDogUG9pbnQsXG4gICAgb3B0aW9uczogeyBpY29uRz86IFNWR0dFbGVtZW50OyBpc0FjdGl2ZTogYm9vbGVhbjsgb3BhY2l0eT86IG51bWJlciB9XG4pIHtcbiAgICBjb25zdCByb3VnaFNWRyA9IFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpO1xuICAgIGNvbnN0IG5vZGVTdHlsZXM6IE5vZGVTdHlsZXMgPSB7XG4gICAgICAgIC4uLkRFRkFVTFRfTk9ERV9TVFlMRVMsXG4gICAgICAgIC4uLihub2RlLnN0eWxlcyB8fCB7fSlcbiAgICB9O1xuICAgIGxldCB7IHgsIHkgfSA9IG5vcm1hbGl6ZVBvaW50KHBvaW50KTtcbiAgICBsZXQgZGlhbWV0ZXIgPSBub2RlLnNpemUgPz8gREVGQVVMVF9OT0RFX1NJWkU7XG4gICAgaWYgKG9wdGlvbnMuaXNBY3RpdmUpIHtcbiAgICAgICAgZGlhbWV0ZXIgPSBkaWFtZXRlciAqIERFRkFVTFRfQUNUSVZFX05PREVfU0laRV9NVUxUSVBMSUVSO1xuICAgIH1cbiAgICBjb25zdCBub2RlRyA9IGRyYXdDaXJjbGUocm91Z2hTVkcsIFt4LCB5XSwgZGlhbWV0ZXIsIG5vZGVTdHlsZXMpO1xuICAgIGNvbnN0IGxhYmVsV2lkdGggPSBub2RlLnN0eWxlcz8ubGFiZWxXaWR0aCA/PyBERUZBVUxUX05PREVfTEFCRUxfV0lEVEg7XG4gICAgY29uc3QgbGFiZWxIZWlnaHQgPSBub2RlLnN0eWxlcz8ubGFiZWxIZWlnaHQgPz8gREVGQVVMVF9OT0RFX0xBQkVMX0hFSUdIVDtcbiAgICBjb25zdCB0ZXh0Rm9yZWlnbk9iamVjdCA9IGNyZWF0ZUZvcmVpZ25PYmplY3QoeCAtIGxhYmVsV2lkdGggLyAyLCB5LCBsYWJlbFdpZHRoLCBsYWJlbEhlaWdodCk7XG4gICAgY29uc3QgdGV4dENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRleHRDb250YWluZXIuY2xhc3NMaXN0LmFkZChOT0RFX0xBQkVMX0NMQVNTX05BTUUpO1xuICAgIHRleHRDb250YWluZXIuc2V0QXR0cmlidXRlKCdzdHlsZScsIERFRkFVTFRfTk9ERV9MQUJFTF9TVFlMRSk7XG4gICAgY29uc3QgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICB0ZXh0LmlubmVyVGV4dCA9IG5vZGUubGFiZWw7XG4gICAgdGV4dENvbnRhaW5lci5hcHBlbmQodGV4dCk7XG4gICAgdGV4dEZvcmVpZ25PYmplY3QuYXBwZW5kKHRleHRDb250YWluZXIpO1xuICAgIGlmIChvcHRpb25zLmlzQWN0aXZlKSB7XG4gICAgICAgIGNvbnN0IHdhdmVEaWFtZXRlciA9IGRpYW1ldGVyICogREVGQVVMVF9BQ1RJVkVfV0FWRV9OT0RFX1NJWkVfTVVMVElQTElFUjtcbiAgICAgICAgY29uc3Qgd2F2ZUNpcmNsZSA9IGRyYXdDaXJjbGUocm91Z2hTVkcsIFt4LCB5XSwgd2F2ZURpYW1ldGVyLCBub2RlU3R5bGVzKTtcbiAgICAgICAgd2F2ZUNpcmNsZS5zZXRBdHRyaWJ1dGUoJ29wYWNpdHknLCBBQ1RJVkVfQkFDS0dST1VORF9OT0RFX0FMUEhBLnRvU3RyaW5nKCkpO1xuICAgICAgICBub2RlRy5hcHBlbmQod2F2ZUNpcmNsZSk7XG4gICAgICAgIHRleHRGb3JlaWduT2JqZWN0LnNldEF0dHJpYnV0ZSgneScsIGAke3kgKyB3YXZlRGlhbWV0ZXIgLyAyfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRleHRGb3JlaWduT2JqZWN0LnNldEF0dHJpYnV0ZSgneScsIGAke3kgKyBkaWFtZXRlciAvIDJ9YCk7XG4gICAgICAgIG5vZGVHLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIChvcHRpb25zLm9wYWNpdHkgPz8gMSkudG9TdHJpbmcoKSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmljb25HKSB7XG4gICAgICAgIG5vZGVHLmFwcGVuZChvcHRpb25zLmljb25HKTtcbiAgICB9XG4gICAgbm9kZUcuYXBwZW5kKHRleHRGb3JlaWduT2JqZWN0KTtcbiAgICByZXR1cm4gbm9kZUc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkcmF3RWRnZShzdGFydFBvaW50OiBQb2ludCwgZW5kUG9pbnQ6IFBvaW50LCBkaXJlY3Rpb246IEVkZ2VEaXJlY3Rpb24sIGlzTXV0dWFsOiBib29sZWFuLCBpc1RhcmdldFNlbGY/OiBib29sZWFuKSB7XG4gICAgY29uc3Qgbm9kZVJhZGl1cyA9IERFRkFVTFRfTk9ERV9TSVpFIC8gMjtcbiAgICBjb25zdCBhcnJvdyA9IGdldEFycm93KHN0YXJ0UG9pbnRbMF0sIHN0YXJ0UG9pbnRbMV0sIGVuZFBvaW50WzBdLCBlbmRQb2ludFsxXSwge1xuICAgICAgICBzdHJldGNoOiAwLjQsXG4gICAgICAgIGZsaXA6IGRpcmVjdGlvbiA9PT0gRWRnZURpcmVjdGlvbi5OT05FID8gZmFsc2UgOiBpc011dHVhbCxcbiAgICAgICAgcGFkRW5kOiBub2RlUmFkaXVzLFxuICAgICAgICBwYWRTdGFydDogbm9kZVJhZGl1c1xuICAgIH0pO1xuICAgIGNvbnN0IFtzeCwgc3ksIGN4LCBjeSwgZXgsIGV5LCBhZSwgYXMsIGVjXSA9IGFycm93O1xuICAgIGNvbnN0IGcgPSBjcmVhdGVHKCk7XG4gICAgY29uc3QgcGF0aCA9IGNyZWF0ZVBhdGgoKTtcbiAgICBpZiAoIWlzVGFyZ2V0U2VsZikge1xuICAgICAgICBwYXRoLnNldEF0dHJpYnV0ZSgnZCcsIGBNJHtzeH0sJHtzeX0gUSR7Y3h9LCR7Y3l9ICR7ZXh9LCR7ZXl9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgeCA9IHN0YXJ0UG9pbnRbMF07XG4gICAgICAgIGNvbnN0IHkgPSBzdGFydFBvaW50WzFdO1xuICAgICAgICBjb25zdCBiZXNzZWxYID0gNDA7XG4gICAgICAgIGNvbnN0IGJlc3NlbFkgPSA3NTtcbiAgICAgICAgY29uc3QgYW5nbGUgPSA1NTtcbiAgICAgICAgY29uc3QgYW5nbGVSYWQgPSAoYW5nbGUgKiBNYXRoLlBJKSAvIDE4MDtcbiAgICAgICAgY29uc3Qgb2Zmc2V0WCA9IG5vZGVSYWRpdXMgKiBNYXRoLmNvcyhhbmdsZVJhZCk7XG4gICAgICAgIGNvbnN0IG9mZnNldFkgPSBub2RlUmFkaXVzICogTWF0aC5zaW4oYW5nbGVSYWQpO1xuICAgICAgICBwYXRoLnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICdkJyxcbiAgICAgICAgICAgIGBNICR7eCAtIG9mZnNldFh9LCR7eSAtIG9mZnNldFl9XG4gICAgICAgICAgICBDICR7eCAtIGJlc3NlbFh9LCR7eSAtIGJlc3NlbFl9LCAke3ggKyBiZXNzZWxYfSAke3kgLSBiZXNzZWxZfVxuICAgICAgICAgICAgJHt4ICsgb2Zmc2V0WH0sJHt5IC0gb2Zmc2V0WX1gXG4gICAgICAgICk7XG4gICAgfVxuICAgIHBhdGguc2V0QXR0cmlidXRlKCdmaWxsJywgJ25vbmUnKTtcbiAgICBwYXRoLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgREVGQVVMVF9MSU5FX1NUWUxFUy5jb2xvcltkaXJlY3Rpb25dKTtcbiAgICBwYXRoLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIERFRkFVTFRfTElORV9TVFlMRVMub3BhY2l0eVtkaXJlY3Rpb25dLnRvU3RyaW5nKCkpO1xuICAgIGcuYXBwZW5kKHBhdGgpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGcsXG4gICAgICAgIHBhdGhcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZHJhd1BhcnRpY2xlKGJvYXJkOiBQbGFpdEJvYXJkLCBzdGFydFBvaW50OiBQb2ludCwgZGlyZWN0aW9uOiBFZGdlRGlyZWN0aW9uKSB7XG4gICAgY29uc3Qgcm91Z2hTVkcgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKTtcbiAgICBjb25zdCBwb2ludEcgPSBkcmF3Q2lyY2xlKHJvdWdoU1ZHLCBbMCwgMF0sIERFRkFVTFRfRURHRV9QQVJUSUNMRV9TSVpFLCB7XG4gICAgICAgIC4uLkRFRkFVTFRfU1RZTEVTLFxuICAgICAgICBzdHJva2VXaWR0aDogMCxcbiAgICAgICAgZmlsbDogREVGQVVMVF9MSU5FX1NUWUxFUy5jb2xvcltkaXJlY3Rpb25dXG4gICAgfSk7XG4gICAgcG9pbnRHLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywgYHRyYW5zbGF0ZSgke3N0YXJ0UG9pbnRbMF19LCAke3N0YXJ0UG9pbnRbMV19KWApO1xuICAgIHJldHVybiBwb2ludEc7XG59XG4iXX0=
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard, PlaitElement, PlaitNode, getSelectedElements } from '@plait/core';
|
|
2
|
-
import { ForceAtlasElement } from '../../interfaces';
|
|
3
|
-
import { EdgeDirection } from '../types';
|
|
4
|
-
import { animate, linear } from '@plait/common';
|
|
5
|
-
import { ForceAtlasEdgeGenerator } from '../generators/edge.generator';
|
|
6
|
-
import { getIsNodeActive, getNodeById } from './node';
|
|
7
|
-
export function getEdges(forceAtlasElement, andCallBack) {
|
|
8
|
-
return forceAtlasElement.children?.filter(f => ForceAtlasElement.isForceAtlasEdgeElement(f) && (andCallBack?.(f) ?? true));
|
|
9
|
-
}
|
|
10
|
-
export function getEdgeById(id, forceAtlasElement) {
|
|
11
|
-
const edge = getEdges(forceAtlasElement, e => e.id === id)?.[0];
|
|
12
|
-
if (!edge) {
|
|
13
|
-
throw new Error('can not find edge.');
|
|
14
|
-
}
|
|
15
|
-
return edge;
|
|
16
|
-
}
|
|
17
|
-
export function getEdgesInSourceOrTarget(id, forceAtlasElement) {
|
|
18
|
-
const edges = getEdges(forceAtlasElement, edge => edge.source === id || edge.target === id);
|
|
19
|
-
return edges;
|
|
20
|
-
}
|
|
21
|
-
export function getEdgeGenerator(edge) {
|
|
22
|
-
const edgeRef = PlaitElement.getElementRef(edge);
|
|
23
|
-
return edgeRef.getGenerator(ForceAtlasEdgeGenerator.key);
|
|
24
|
-
}
|
|
25
|
-
export function getEdgeDirection(isSourceActive, isTargetActive) {
|
|
26
|
-
if (isSourceActive) {
|
|
27
|
-
return EdgeDirection.OUT;
|
|
28
|
-
}
|
|
29
|
-
else if (isTargetActive) {
|
|
30
|
-
return EdgeDirection.IN;
|
|
31
|
-
}
|
|
32
|
-
return EdgeDirection.NONE;
|
|
33
|
-
}
|
|
34
|
-
export function getEdgeGeneratorData(edge, board) {
|
|
35
|
-
const forceAtlasElement = PlaitNode.parent(board, PlaitBoard.findPath(board, edge));
|
|
36
|
-
const sourceNode = getNodeById(edge.source, forceAtlasElement);
|
|
37
|
-
const targetNode = getNodeById(edge.target, forceAtlasElement);
|
|
38
|
-
if (!sourceNode?.points || !targetNode?.points) {
|
|
39
|
-
throw new Error("Source or target node doesn't have points");
|
|
40
|
-
}
|
|
41
|
-
const startPoint = sourceNode.points[0];
|
|
42
|
-
const endPoint = targetNode.points[0];
|
|
43
|
-
const selectElements = getSelectedElements(board);
|
|
44
|
-
const isSourceActive = getIsNodeActive(sourceNode.id, selectElements);
|
|
45
|
-
const isTargetActive = getIsNodeActive(targetNode.id, selectElements);
|
|
46
|
-
const direction = getEdgeDirection(isSourceActive, isTargetActive);
|
|
47
|
-
return {
|
|
48
|
-
startPoint,
|
|
49
|
-
endPoint,
|
|
50
|
-
direction,
|
|
51
|
-
isSourceActive,
|
|
52
|
-
isTargetActive,
|
|
53
|
-
isTargetSelf: sourceNode.id === targetNode.id
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
export function playEdgeParticleAnimate(path, pointG) {
|
|
57
|
-
const pathLength = path.getTotalLength();
|
|
58
|
-
let anim = animate((t) => {
|
|
59
|
-
const point = path.getPointAtLength(t * pathLength);
|
|
60
|
-
pointG.setAttribute('transform', `translate(${point.x}, ${point.y})`);
|
|
61
|
-
}, 1000, linear, () => {
|
|
62
|
-
anim = playEdgeParticleAnimate(path, pointG);
|
|
63
|
-
});
|
|
64
|
-
return {
|
|
65
|
-
stop: () => {
|
|
66
|
-
anim.stop();
|
|
67
|
-
},
|
|
68
|
-
start: () => {
|
|
69
|
-
anim.start();
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyYXBoLXZpei9zcmMvZm9yY2UtYXRsYXMvdXRpbHMvZWRnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkYsT0FBTyxFQUF5QixpQkFBaUIsRUFBeUIsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRyxPQUFPLEVBQUUsYUFBYSxFQUFxQixNQUFNLFVBQVUsQ0FBQztBQUM1RCxPQUFPLEVBQXlCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFdEQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxpQkFBb0MsRUFBRSxXQUFzRDtJQUNqSCxPQUFPLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQ3JDLENBQUMsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FDdkQsQ0FBQztBQUNqQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxFQUFVLEVBQUUsaUJBQW9DO0lBQ3hFLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDUixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENB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QUFHLENBQUMsQ0FBQztJQUMxRSxDQUFDLEVBQ0QsSUFBSSxFQUNKLE1BQU0sRUFDTixHQUFHLEVBQUU7UUFDRCxJQUFJLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUMsQ0FDSixDQUFDO0lBQ0YsT0FBTztRQUNILElBQUksRUFBRSxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEIsQ0FBQztRQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQztLQUNKLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50LCBQbGFpdE5vZGUsIGdldFNlbGVjdGVkRWxlbWVudHMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBGb3JjZUF0bGFzRWRnZUVsZW1lbnQsIEZvcmNlQXRsYXNFbGVtZW50LCBGb3JjZUF0bGFzTm9kZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEVkZ2VEaXJlY3Rpb24sIEVkZ2VHZW5lcmF0b3JEYXRhIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgUGxhaXRDb21tb25FbGVtZW50UmVmLCBhbmltYXRlLCBsaW5lYXIgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IEZvcmNlQXRsYXNFZGdlR2VuZXJhdG9yIH0gZnJvbSAnLi4vZ2VuZXJhdG9ycy9lZGdlLmdlbmVyYXRvcic7XG5pbXBvcnQgeyBnZXRJc05vZGVBY3RpdmUsIGdldE5vZGVCeUlkIH0gZnJvbSAnLi9ub2RlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVkZ2VzKGZvcmNlQXRsYXNFbGVtZW50OiBGb3JjZUF0bGFzRWxlbWVudCwgYW5kQ2FsbEJhY2s/OiAoZWRnZTogRm9yY2VBdGxhc0VkZ2VFbGVtZW50KSA9PiBib29sZWFuKSB7XG4gICAgcmV0dXJuIGZvcmNlQXRsYXNFbGVtZW50LmNoaWxkcmVuPy5maWx0ZXIoXG4gICAgICAgIGYgPT4gRm9yY2VBdGxhc0VsZW1lbnQuaXNGb3JjZUF0bGFzRWRnZUVsZW1lbnQoZikgJiYgKGFuZENhbGxCYWNrPy4oZikgPz8gdHJ1ZSlcbiAgICApIGFzIEZvcmNlQXRsYXNFZGdlRWxlbWVudFtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWRnZUJ5SWQoaWQ6IHN0cmluZywgZm9yY2VBdGxhc0VsZW1lbnQ6IEZvcmNlQXRsYXNFbGVtZW50KSB7XG4gICAgY29uc3QgZWRnZSA9IGdldEVkZ2VzKGZvcmNlQXRsYXNFbGVtZW50LCBlID0+IGUuaWQgPT09IGlkKT8uWzBdO1xuICAgIGlmICghZWRnZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NhbiBub3QgZmluZCBlZGdlLicpO1xuICAgIH1cbiAgICByZXR1cm4gZWRnZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVkZ2VzSW5Tb3VyY2VPclRhcmdldChpZDogc3RyaW5nLCBmb3JjZUF0bGFzRWxlbWVudDogRm9yY2VBdGxhc0VsZW1lbnQpIHtcbiAgICBjb25zdCBlZGdlcyA9IGdldEVkZ2VzKGZvcmNlQXRsYXNFbGVtZW50LCBlZGdlID0+IGVkZ2Uuc291cmNlID09PSBpZCB8fCBlZGdlLnRhcmdldCA9PT0gaWQpO1xuICAgIHJldHVybiBlZGdlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVkZ2VHZW5lcmF0b3IoZWRnZTogRm9yY2VBdGxhc0VkZ2VFbGVtZW50KSB7XG4gICAgY29uc3QgZWRnZVJlZiA9IFBsYWl0RWxlbWVudC5nZXRFbGVtZW50UmVmPFBsYWl0Q29tbW9uRWxlbWVudFJlZj4oZWRnZSk7XG4gICAgcmV0dXJuIGVkZ2VSZWYuZ2V0R2VuZXJhdG9yPEZvcmNlQXRsYXNFZGdlR2VuZXJhdG9yPihGb3JjZUF0bGFzRWRnZUdlbmVyYXRvci5rZXkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWRnZURpcmVjdGlvbihpc1NvdXJjZUFjdGl2ZTogYm9vbGVhbiwgaXNUYXJnZXRBY3RpdmU6IGJvb2xlYW4pIHtcbiAgICBpZiAoaXNTb3VyY2VBY3RpdmUpIHtcbiAgICAgICAgcmV0dXJuIEVkZ2VEaXJlY3Rpb24uT1VUO1xuICAgIH0gZWxzZSBpZiAoaXNUYXJnZXRBY3RpdmUpIHtcbiAgICAgICAgcmV0dXJuIEVkZ2VEaXJlY3Rpb24uSU47XG4gICAgfVxuICAgIHJldHVybiBFZGdlRGlyZWN0aW9uLk5PTkU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFZGdlR2VuZXJhdG9yRGF0YShlZGdlOiBGb3JjZUF0bGFzRWRnZUVsZW1lbnQsIGJvYXJkOiBQbGFpdEJvYXJkKTogRWRnZUdlbmVyYXRvckRhdGEge1xuICAgIGNvbnN0IGZvcmNlQXRsYXNFbGVtZW50ID0gUGxhaXROb2RlLnBhcmVudChib2FyZCwgUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWRnZSkpIGFzIEZvcmNlQXRsYXNFbGVtZW50O1xuICAgIGNvbnN0IHNvdXJjZU5vZGUgPSBnZXROb2RlQnlJZChlZGdlLnNvdXJjZSwgZm9yY2VBdGxhc0VsZW1lbnQpO1xuICAgIGNvbnN0IHRhcmdldE5vZGUgPSBnZXROb2RlQnlJZChlZGdlLnRhcmdldCwgZm9yY2VBdGxhc0VsZW1lbnQpO1xuICAgIGlmICghc291cmNlTm9kZT8ucG9pbnRzIHx8ICF0YXJnZXROb2RlPy5wb2ludHMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiU291cmNlIG9yIHRhcmdldCBub2RlIGRvZXNuJ3QgaGF2ZSBwb2ludHNcIik7XG4gICAgfVxuICAgIGNvbnN0IHN0YXJ0UG9pbnQgPSBzb3VyY2VOb2RlLnBvaW50c1swXTtcbiAgICBjb25zdCBlbmRQb2ludCA9IHRhcmdldE5vZGUucG9pbnRzWzBdO1xuICAgIGNvbnN0IHNlbGVjdEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCkgYXMgRm9yY2VBdGxhc05vZGVFbGVtZW50W107XG4gICAgY29uc3QgaXNTb3VyY2VBY3RpdmUgPSBnZXRJc05vZGVBY3RpdmUoc291cmNlTm9kZS5pZCwgc2VsZWN0RWxlbWVudHMpO1xuICAgIGNvbnN0IGlzVGFyZ2V0QWN0aXZlID0gZ2V0SXNOb2RlQWN0aXZlKHRhcmdldE5vZGUuaWQsIHNlbGVjdEVsZW1lbnRzKTtcbiAgICBjb25zdCBkaXJlY3Rpb24gPSBnZXRFZGdlRGlyZWN0aW9uKGlzU291cmNlQWN0aXZlLCBpc1RhcmdldEFjdGl2ZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBzdGFydFBvaW50LFxuICAgICAgICBlbmRQb2ludCxcbiAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICBpc1NvdXJjZUFjdGl2ZSxcbiAgICAgICAgaXNUYXJnZXRBY3RpdmUsXG4gICAgICAgIGlzVGFyZ2V0U2VsZjogc291cmNlTm9kZS5pZCA9PT0gdGFyZ2V0Tm9kZS5pZFxuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwbGF5RWRnZVBhcnRpY2xlQW5pbWF0ZShwYXRoOiBTVkdQYXRoRWxlbWVudCwgcG9pbnRHOiBTVkdHRWxlbWVudCkge1xuICAgIGNvbnN0IHBhdGhMZW5ndGggPSBwYXRoLmdldFRvdGFsTGVuZ3RoKCk7XG4gICAgbGV0IGFuaW0gPSBhbmltYXRlKFxuICAgICAgICAodDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwb2ludCA9IHBhdGguZ2V0UG9pbnRBdExlbmd0aCh0ICogcGF0aExlbmd0aCk7XG4gICAgICAgICAgICBwb2ludEcuc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCBgdHJhbnNsYXRlKCR7cG9pbnQueH0sICR7cG9pbnQueX0pYCk7XG4gICAgICAgIH0sXG4gICAgICAgIDEwMDAsXG4gICAgICAgIGxpbmVhcixcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgYW5pbSA9IHBsYXlFZGdlUGFydGljbGVBbmltYXRlKHBhdGgsIHBvaW50Ryk7XG4gICAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICAgIHN0b3A6ICgpID0+IHtcbiAgICAgICAgICAgIGFuaW0uc3RvcCgpO1xuICAgICAgICB9LFxuICAgICAgICBzdGFydDogKCkgPT4ge1xuICAgICAgICAgICAgYW5pbS5zdGFydCgpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbiJdfQ==
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { PlaitElement, RectangleClient, normalizePoint } from '@plait/core';
|
|
2
|
-
import { ForceAtlasElement } from '../../interfaces';
|
|
3
|
-
import { getEdges, getEdgesInSourceOrTarget } from './edge';
|
|
4
|
-
import { ForceAtlasNodeGenerator } from '../generators/node.generator';
|
|
5
|
-
import { DEFAULT_NODE_ICON_COLOR, NODE_ICON_FONT_SIZE } from '../constants';
|
|
6
|
-
export function getNodes(forceAtlasElement, andBack) {
|
|
7
|
-
return forceAtlasElement.children?.filter(f => ForceAtlasElement.isForceAtlasNodeElement(f) && (andBack?.(f) ?? true));
|
|
8
|
-
}
|
|
9
|
-
export function getNodeById(id, forceAtlasElement) {
|
|
10
|
-
const node = getNodes(forceAtlasElement, node => node.id === id)?.[0];
|
|
11
|
-
if (!node) {
|
|
12
|
-
throw new Error('can not find node.');
|
|
13
|
-
}
|
|
14
|
-
return node;
|
|
15
|
-
}
|
|
16
|
-
export function getIsNodeActive(id, selectElements) {
|
|
17
|
-
return selectElements.some(node => node.id === id);
|
|
18
|
-
}
|
|
19
|
-
export function isHitNode(node, point) {
|
|
20
|
-
const { x, y } = normalizePoint(node.points[0]);
|
|
21
|
-
const size = node.size;
|
|
22
|
-
const hitFlowNode = RectangleClient.isHit(RectangleClient.getRectangleByPoints(point), {
|
|
23
|
-
x: x - size / 2,
|
|
24
|
-
y: y - size / 2,
|
|
25
|
-
width: size,
|
|
26
|
-
height: size
|
|
27
|
-
});
|
|
28
|
-
return hitFlowNode;
|
|
29
|
-
}
|
|
30
|
-
export function getAssociatedNodesById(id, forceAtlasElement) {
|
|
31
|
-
const edges = getEdgesInSourceOrTarget(id, forceAtlasElement);
|
|
32
|
-
const nodes = [];
|
|
33
|
-
edges.forEach(edge => {
|
|
34
|
-
nodes.push(getNodeById(edge.source, forceAtlasElement));
|
|
35
|
-
nodes.push(getNodeById(edge.target, forceAtlasElement));
|
|
36
|
-
});
|
|
37
|
-
return nodes;
|
|
38
|
-
}
|
|
39
|
-
export function getNodeGenerator(node) {
|
|
40
|
-
const edgeRef = PlaitElement.getElementRef(node);
|
|
41
|
-
return edgeRef.getGenerator(ForceAtlasNodeGenerator.key);
|
|
42
|
-
}
|
|
43
|
-
export function isFirstDepthNode(currentNodeId, activeNodeId, forceAtlasElement) {
|
|
44
|
-
const edges = getEdges(forceAtlasElement);
|
|
45
|
-
return edges.some(s => (s.source === activeNodeId && s.target === currentNodeId) || (s.target === activeNodeId && s.source === currentNodeId));
|
|
46
|
-
}
|
|
47
|
-
export function getNodeIcon(node) {
|
|
48
|
-
const iconItem = typeof node.icon === 'object' && node.icon.name ? node.icon : null;
|
|
49
|
-
return {
|
|
50
|
-
name: iconItem ? iconItem.name : node.icon,
|
|
51
|
-
fontSize: (iconItem && iconItem.fontSize) || NODE_ICON_FONT_SIZE,
|
|
52
|
-
color: (iconItem && iconItem.color) || DEFAULT_NODE_ICON_COLOR
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyYXBoLXZpei9zcmMvZm9yY2UtYXRsYXMvdXRpbHMvbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFTLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkYsT0FBTyxFQUFFLGlCQUFpQixFQUF5QixNQUFNLGtCQUFrQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTVFLE1BQU0sVUFBVSxRQUFRLENBQUMsaUJBQW9DLEVBQUUsT0FBa0Q7SUFDN0csT0FBTyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUNyQyxDQUFDLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQ25ELENBQUM7QUFDakMsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsRUFBVSxFQUFFLGlCQUFvQztJQUN4RSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQs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QUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRFbGVtZW50LCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50LCBub3JtYWxpemVQb2ludCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEZvcmNlQXRsYXNFbGVtZW50LCBGb3JjZUF0bGFzTm9kZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldEVkZ2VzLCBnZXRFZGdlc0luU291cmNlT3JUYXJnZXQgfSBmcm9tICcuL2VkZ2UnO1xuaW1wb3J0IHsgUGxhaXRDb21tb25FbGVtZW50UmVmIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBGb3JjZUF0bGFzTm9kZUdlbmVyYXRvciB9IGZyb20gJy4uL2dlbmVyYXRvcnMvbm9kZS5nZW5lcmF0b3InO1xuaW1wb3J0IHsgREVGQVVMVF9OT0RFX0lDT05fQ09MT1IsIE5PREVfSUNPTl9GT05UX1NJWkUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Tm9kZXMoZm9yY2VBdGxhc0VsZW1lbnQ6IEZvcmNlQXRsYXNFbGVtZW50LCBhbmRCYWNrPzogKGVkZ2U6IEZvcmNlQXRsYXNOb2RlRWxlbWVudCkgPT4gYm9vbGVhbikge1xuICAgIHJldHVybiBmb3JjZUF0bGFzRWxlbWVudC5jaGlsZHJlbj8uZmlsdGVyKFxuICAgICAgICBmID0+IEZvcmNlQXRsYXNFbGVtZW50LmlzRm9yY2VBdGxhc05vZGVFbGVtZW50KGYpICYmIChhbmRCYWNrPy4oZikgPz8gdHJ1ZSlcbiAgICApIGFzIEZvcmNlQXRsYXNOb2RlRWxlbWVudFtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Tm9kZUJ5SWQoaWQ6IHN0cmluZywgZm9yY2VBdGxhc0VsZW1lbnQ6IEZvcmNlQXRsYXNFbGVtZW50KSB7XG4gICAgY29uc3Qgbm9kZSA9IGdldE5vZGVzKGZvcmNlQXRsYXNFbGVtZW50LCBub2RlID0+IG5vZGUuaWQgPT09IGlkKT8uWzBdO1xuICAgIGlmICghbm9kZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NhbiBub3QgZmluZCBub2RlLicpO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldElzTm9kZUFjdGl2ZShpZDogc3RyaW5nLCBzZWxlY3RFbGVtZW50czogRm9yY2VBdGxhc05vZGVFbGVtZW50W10pIHtcbiAgICByZXR1cm4gc2VsZWN0RWxlbWVudHMuc29tZShub2RlID0+IG5vZGUuaWQgPT09IGlkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSGl0Tm9kZShub2RlOiBGb3JjZUF0bGFzTm9kZUVsZW1lbnQsIHBvaW50OiBbUG9pbnQsIFBvaW50XSkge1xuICAgIGNvbnN0IHsgeCwgeSB9ID0gbm9ybWFsaXplUG9pbnQobm9kZS5wb2ludHMhWzBdKTtcbiAgICBjb25zdCBzaXplID0gbm9kZS5zaXplITtcbiAgICBjb25zdCBoaXRGbG93Tm9kZSA9IFJlY3RhbmdsZUNsaWVudC5pc0hpdChSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMocG9pbnQpLCB7XG4gICAgICAgIHg6IHggLSBzaXplIC8gMixcbiAgICAgICAgeTogeSAtIHNpemUgLyAyLFxuICAgICAgICB3aWR0aDogc2l6ZSxcbiAgICAgICAgaGVpZ2h0OiBzaXplXG4gICAgfSk7XG4gICAgcmV0dXJuIGhpdEZsb3dOb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXNzb2NpYXRlZE5vZGVzQnlJZChpZDogc3RyaW5nLCBmb3JjZUF0bGFzRWxlbWVudDogRm9yY2VBdGxhc0VsZW1lbnQpIHtcbiAgICBjb25zdCBlZGdlcyA9IGdldEVkZ2VzSW5Tb3VyY2VPclRhcmdldChpZCwgZm9yY2VBdGxhc0VsZW1lbnQpO1xuICAgIGNvbnN0IG5vZGVzOiBGb3JjZUF0bGFzTm9kZUVsZW1lbnRbXSA9IFtdO1xuICAgIGVkZ2VzLmZvckVhY2goZWRnZSA9PiB7XG4gICAgICAgIG5vZGVzLnB1c2goZ2V0Tm9kZUJ5SWQoZWRnZS5zb3VyY2UsIGZvcmNlQXRsYXNFbGVtZW50KSk7XG4gICAgICAgIG5vZGVzLnB1c2goZ2V0Tm9kZUJ5SWQoZWRnZS50YXJnZXQsIGZvcmNlQXRsYXNFbGVtZW50KSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIG5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Tm9kZUdlbmVyYXRvcihub2RlOiBGb3JjZUF0bGFzTm9kZUVsZW1lbnQpIHtcbiAgICBjb25zdCBlZGdlUmVmID0gUGxhaXRFbGVtZW50LmdldEVsZW1lbnRSZWY8UGxhaXRDb21tb25FbGVtZW50UmVmPihub2RlKTtcbiAgICByZXR1cm4gZWRnZVJlZi5nZXRHZW5lcmF0b3I8Rm9yY2VBdGxhc05vZGVHZW5lcmF0b3I+KEZvcmNlQXRsYXNOb2RlR2VuZXJhdG9yLmtleSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ZpcnN0RGVwdGhOb2RlKGN1cnJlbnROb2RlSWQ6IHN0cmluZywgYWN0aXZlTm9kZUlkOiBzdHJpbmcsIGZvcmNlQXRsYXNFbGVtZW50OiBGb3JjZUF0bGFzRWxlbWVudCkge1xuICAgIGNvbnN0IGVkZ2VzID0gZ2V0RWRnZXMoZm9yY2VBdGxhc0VsZW1lbnQpO1xuICAgIHJldHVybiBlZGdlcy5zb21lKFxuICAgICAgICBzID0+IChzLnNvdXJjZSA9PT0gYWN0aXZlTm9kZUlkICYmIHMudGFyZ2V0ID09PSBjdXJyZW50Tm9kZUlkKSB8fCAocy50YXJnZXQgPT09IGFjdGl2ZU5vZGVJZCAmJiBzLnNvdXJjZSA9PT0gY3VycmVudE5vZGVJZClcbiAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Tm9kZUljb24obm9kZTogRm9yY2VBdGxhc05vZGVFbGVtZW50KSB7XG4gICAgY29uc3QgaWNvbkl0ZW0gPSB0eXBlb2Ygbm9kZS5pY29uID09PSAnb2JqZWN0JyAmJiBub2RlLmljb24ubmFtZSA/IG5vZGUuaWNvbiA6IG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogaWNvbkl0ZW0gPyBpY29uSXRlbS5uYW1lIDogKG5vZGUuaWNvbiBhcyBzdHJpbmcpLFxuICAgICAgICBmb250U2l6ZTogKGljb25JdGVtICYmIGljb25JdGVtLmZvbnRTaXplKSB8fCBOT0RFX0lDT05fRk9OVF9TSVpFLFxuICAgICAgICBjb2xvcjogKGljb25JdGVtICYmIGljb25JdGVtLmNvbG9yKSB8fCBERUZBVUxUX05PREVfSUNPTl9DT0xPUlxuICAgIH07XG59XG4iXX0=
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { isHitElement, PlaitBoard, PlaitPluginKey, PlaitPointerType, RectangleClient, setSelectionOptions, toHostPoint, toViewBoxPoint } from '@plait/core';
|
|
2
|
-
import { ForceAtlasFlavour } from './force-atlas.flavour';
|
|
3
|
-
import { ForceAtlasNodeFlavour } from './node.flavour';
|
|
4
|
-
import { ForceAtlasEdgeFlavour } from './edge.flavour';
|
|
5
|
-
import { ForceAtlasElement } from '../interfaces';
|
|
6
|
-
import { isHitNode } from './utils/node';
|
|
7
|
-
import { withNodeIcon } from './with-node-icon';
|
|
8
|
-
export const withForceAtlas = (board) => {
|
|
9
|
-
const { drawElement, getRectangle, isRectangleHit, isHit, isInsidePoint, isMovable, isAlign, getRelatedFragment } = board;
|
|
10
|
-
board.drawElement = (context) => {
|
|
11
|
-
if (ForceAtlasElement.isForceAtlas(context.element)) {
|
|
12
|
-
return ForceAtlasFlavour;
|
|
13
|
-
}
|
|
14
|
-
else if (ForceAtlasElement.isForceAtlasNodeElement(context.element)) {
|
|
15
|
-
return ForceAtlasNodeFlavour;
|
|
16
|
-
}
|
|
17
|
-
else if (ForceAtlasElement.isForceAtlasEdgeElement(context.element)) {
|
|
18
|
-
return ForceAtlasEdgeFlavour;
|
|
19
|
-
}
|
|
20
|
-
return drawElement(context);
|
|
21
|
-
};
|
|
22
|
-
board.getRectangle = (element) => {
|
|
23
|
-
if (element.type === 'force-atlas') {
|
|
24
|
-
return {
|
|
25
|
-
width: 0,
|
|
26
|
-
height: 0,
|
|
27
|
-
x: 0,
|
|
28
|
-
y: 0
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
else if (ForceAtlasElement.isForceAtlasNodeElement(element)) {
|
|
32
|
-
return RectangleClient.getRectangleByPoints(element.points || []);
|
|
33
|
-
}
|
|
34
|
-
else if (ForceAtlasElement.isForceAtlasEdgeElement(element)) {
|
|
35
|
-
return {
|
|
36
|
-
width: 0,
|
|
37
|
-
height: 0,
|
|
38
|
-
x: 0,
|
|
39
|
-
y: 0
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
return getRectangle(element);
|
|
43
|
-
};
|
|
44
|
-
board.isRectangleHit = (element, selection) => {
|
|
45
|
-
return isRectangleHit(element, selection);
|
|
46
|
-
};
|
|
47
|
-
board.isRectangleHit = (element, range) => {
|
|
48
|
-
if (ForceAtlasElement.isForceAtlasNodeElement(element)) {
|
|
49
|
-
return isHitNode(element, [range.anchor, range.focus]);
|
|
50
|
-
}
|
|
51
|
-
return isRectangleHit(element, range);
|
|
52
|
-
};
|
|
53
|
-
board.isHit = (element, point) => {
|
|
54
|
-
if (ForceAtlasElement.isForceAtlasNodeElement(element)) {
|
|
55
|
-
return isHitNode(element, [point, point]);
|
|
56
|
-
}
|
|
57
|
-
return isHit(element, point);
|
|
58
|
-
};
|
|
59
|
-
board.isInsidePoint = (element, point) => {
|
|
60
|
-
return isInsidePoint(element, point);
|
|
61
|
-
};
|
|
62
|
-
setSelectionOptions(board, { isMultipleSelection: false, isPreventClearSelection: true });
|
|
63
|
-
board.setPluginOptions(PlaitPluginKey.withHand, {
|
|
64
|
-
isHandMode: (board, event) => {
|
|
65
|
-
const point = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
|
|
66
|
-
const isHitTarget = isHitElement(board, point);
|
|
67
|
-
return PlaitBoard.isPointer(board, PlaitPointerType.selection) && !isHitTarget;
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
return withNodeIcon(board);
|
|
71
|
-
};
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1mb3JjZS1hdGxhcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyYXBoLXZpei9zcmMvZm9yY2UtYXRsYXMvd2l0aC1mb3JjZS1hdGxhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsWUFBWSxFQUNaLFVBQVUsRUFJVixjQUFjLEVBQ2QsZ0JBQWdCLEVBRWhCLGVBQWUsRUFFZixtQkFBbUIsRUFDbkIsV0FBVyxFQUNYLGNBQWMsRUFFakIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUNoRCxNQUFNLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRTFILEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxPQUFrQyxFQUFFLEVBQUU7UUFDdkQsSUFBSSxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDbEQsT0FBTyxpQkFBaUIsQ0FBQztRQUM3QixDQUFDO2FBQU0sSUFBSSxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxD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QUM7WUFDMUUsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMvQyxPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ25GLENBQUM7S0FDSixDQUFDLENBQUM7SUFFSCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIGlzSGl0RWxlbWVudCxcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0RWxlbWVudCxcbiAgICBQbGFpdE9wdGlvbnNCb2FyZCxcbiAgICBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0LFxuICAgIFBsYWl0UGx1Z2luS2V5LFxuICAgIFBsYWl0UG9pbnRlclR5cGUsXG4gICAgUG9pbnQsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIFNlbGVjdGlvbixcbiAgICBzZXRTZWxlY3Rpb25PcHRpb25zLFxuICAgIHRvSG9zdFBvaW50LFxuICAgIHRvVmlld0JveFBvaW50LFxuICAgIFdpdGhIYW5kUGx1Z2luT3B0aW9uc1xufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBGb3JjZUF0bGFzRmxhdm91ciB9IGZyb20gJy4vZm9yY2UtYXRsYXMuZmxhdm91cic7XG5pbXBvcnQgeyBGb3JjZUF0bGFzTm9kZUZsYXZvdXIgfSBmcm9tICcuL25vZGUuZmxhdm91cic7XG5pbXBvcnQgeyBGb3JjZUF0bGFzRWRnZUZsYXZvdXIgfSBmcm9tICcuL2VkZ2UuZmxhdm91cic7XG5pbXBvcnQgeyBGb3JjZUF0bGFzRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgaXNIaXROb2RlIH0gZnJvbSAnLi91dGlscy9ub2RlJztcbmltcG9ydCB7IHdpdGhOb2RlSWNvbiB9IGZyb20gJy4vd2l0aC1ub2RlLWljb24nO1xuXG5leHBvcnQgY29uc3Qgd2l0aEZvcmNlQXRsYXMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBjb25zdCB7IGRyYXdFbGVtZW50LCBnZXRSZWN0YW5nbGUsIGlzUmVjdGFuZ2xlSGl0LCBpc0hpdCwgaXNJbnNpZGVQb2ludCwgaXNNb3ZhYmxlLCBpc0FsaWduLCBnZXRSZWxhdGVkRnJhZ21lbnQgfSA9IGJvYXJkO1xuXG4gICAgYm9hcmQuZHJhd0VsZW1lbnQgPSAoY29udGV4dDogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dCkgPT4ge1xuICAgICAgICBpZiAoRm9yY2VBdGxhc0VsZW1lbnQuaXNGb3JjZUF0bGFzKGNvbnRleHQuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBGb3JjZUF0bGFzRmxhdm91cjtcbiAgICAgICAgfSBlbHNlIGlmIChGb3JjZUF0bGFzRWxlbWVudC5pc0ZvcmNlQXRsYXNOb2RlRWxlbWVudChjb250ZXh0LmVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gRm9yY2VBdGxhc05vZGVGbGF2b3VyO1xuICAgICAgICB9IGVsc2UgaWYgKEZvcmNlQXRsYXNFbGVtZW50LmlzRm9yY2VBdGxhc0VkZ2VFbGVtZW50KGNvbnRleHQuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBGb3JjZUF0bGFzRWRnZUZsYXZvdXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRyYXdFbGVtZW50KGNvbnRleHQpO1xuICAgIH07XG5cbiAgICBib2FyZC5nZXRSZWN0YW5nbGUgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09ICdmb3JjZS1hdGxhcycpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgICAgICAgeTogMFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmIChGb3JjZUF0bGFzRWxlbWVudC5pc0ZvcmNlQXRsYXNOb2RlRWxlbWVudChlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhlbGVtZW50LnBvaW50cyB8fCBbXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoRm9yY2VBdGxhc0VsZW1lbnQuaXNGb3JjZUF0bGFzRWRnZUVsZW1lbnQoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgICAgICAgeTogMFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2V0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5pc1JlY3RhbmdsZUhpdCA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQsIHNlbGVjdGlvbjogU2VsZWN0aW9uKSA9PiB7XG4gICAgICAgIHJldHVybiBpc1JlY3RhbmdsZUhpdChlbGVtZW50LCBzZWxlY3Rpb24pO1xuICAgIH07XG4gICAgYm9hcmQuaXNSZWN0YW5nbGVIaXQgPSAoZWxlbWVudCwgcmFuZ2UpID0+IHtcbiAgICAgICAgaWYgKEZvcmNlQXRsYXNFbGVtZW50LmlzRm9yY2VBdGxhc05vZGVFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNIaXROb2RlKGVsZW1lbnQsIFtyYW5nZS5hbmNob3IsIHJhbmdlLmZvY3VzXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzUmVjdGFuZ2xlSGl0KGVsZW1lbnQsIHJhbmdlKTtcbiAgICB9O1xuXG4gICAgYm9hcmQuaXNIaXQgPSAoZWxlbWVudCwgcG9pbnQpID0+IHtcbiAgICAgICAgaWYgKEZvcmNlQXRsYXNFbGVtZW50LmlzRm9yY2VBdGxhc05vZGVFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNIaXROb2RlKGVsZW1lbnQsIFtwb2ludCwgcG9pbnRdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNIaXQoZWxlbWVudCwgcG9pbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5pc0luc2lkZVBvaW50ID0gKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCwgcG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgICAgIHJldHVybiBpc0luc2lkZVBvaW50KGVsZW1lbnQsIHBvaW50KTtcbiAgICB9O1xuXG4gICAgc2V0U2VsZWN0aW9uT3B0aW9ucyhib2FyZCwgeyBpc011bHRpcGxlU2VsZWN0aW9uOiBmYWxzZSwgaXNQcmV2ZW50Q2xlYXJTZWxlY3Rpb246IHRydWUgfSk7XG5cbiAgICAoYm9hcmQgYXMgUGxhaXRPcHRpb25zQm9hcmQpLnNldFBsdWdpbk9wdGlvbnM8V2l0aEhhbmRQbHVnaW5PcHRpb25zPihQbGFpdFBsdWdpbktleS53aXRoSGFuZCwge1xuICAgICAgICBpc0hhbmRNb2RlOiAoYm9hcmQsIGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwb2ludCA9IHRvVmlld0JveFBvaW50KGJvYXJkLCB0b0hvc3RQb2ludChib2FyZCwgZXZlbnQueCwgZXZlbnQueSkpO1xuICAgICAgICAgICAgY29uc3QgaXNIaXRUYXJnZXQgPSBpc0hpdEVsZW1lbnQoYm9hcmQsIHBvaW50KTtcbiAgICAgICAgICAgIHJldHVybiBQbGFpdEJvYXJkLmlzUG9pbnRlcihib2FyZCwgUGxhaXRQb2ludGVyVHlwZS5zZWxlY3Rpb24pICYmICFpc0hpdFRhcmdldDtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHdpdGhOb2RlSWNvbihib2FyZCk7XG59O1xuIl19
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export const withNodeIcon = (board) => {
|
|
2
|
-
const newBoard = board;
|
|
3
|
-
newBoard.renderNodeIcon = (container, props) => {
|
|
4
|
-
throw new Error('No implementation for renderLabeIcon method.');
|
|
5
|
-
};
|
|
6
|
-
return newBoard;
|
|
7
|
-
};
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ub2RlLWljb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmFwaC12aXovc3JjL2ZvcmNlLWF0bGFzL3dpdGgtbm9kZS1pY29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFvQyxLQUFRLEVBQUUsRUFBRTtJQUN4RSxNQUFNLFFBQVEsR0FBRyxLQUFvQyxDQUFDO0lBRXRELFFBQVEsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxTQUFxQyxFQUFFLEtBQW9CLEVBQUUsRUFBRTtRQUN0RixNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7SUFDcEUsQ0FBQyxDQUFDO0lBQ0YsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEZvcmNlQXRsYXNOb2RlRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBSZW5kZXJDb21wb25lbnRSZWYgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IE5vZGVJY29uSXRlbSB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvcmNlQXRsYXNOb2RlSWNvbkJvYXJkIHtcbiAgICByZW5kZXJOb2RlSWNvbjogKGNvbnRhaW5lcjogRWxlbWVudCB8IERvY3VtZW50RnJhZ21lbnQsIHByb3BzOiBOb2RlSWNvblByb3BzKSA9PiBSZW5kZXJDb21wb25lbnRSZWY8Tm9kZUljb25Qcm9wcz47XG59XG5cbmV4cG9ydCBjb25zdCB3aXRoTm9kZUljb24gPSA8VCBleHRlbmRzIFBsYWl0Qm9hcmQgPSBQbGFpdEJvYXJkPihib2FyZDogVCkgPT4ge1xuICAgIGNvbnN0IG5ld0JvYXJkID0gYm9hcmQgYXMgVCAmIEZvcmNlQXRsYXNOb2RlSWNvbkJvYXJkO1xuXG4gICAgbmV3Qm9hcmQucmVuZGVyTm9kZUljb24gPSAoY29udGFpbmVyOiBFbGVtZW50IHwgRG9jdW1lbnRGcmFnbWVudCwgcHJvcHM6IE5vZGVJY29uUHJvcHMpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBpbXBsZW1lbnRhdGlvbiBmb3IgcmVuZGVyTGFiZUljb24gbWV0aG9kLicpO1xuICAgIH07XG4gICAgcmV0dXJuIG5ld0JvYXJkO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBOb2RlSWNvblByb3BzIHtcbiAgICBib2FyZDogUGxhaXRCb2FyZDtcbiAgICBpY29uSXRlbTogTm9kZUljb25JdGVtO1xuICAgIGVsZW1lbnQ6IEZvcmNlQXRsYXNOb2RlRWxlbWVudDtcbn1cbiJdfQ==
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export const ForceAtlasElement = {
|
|
2
|
-
isForceAtlas: (value) => {
|
|
3
|
-
return value?.type === 'force-atlas';
|
|
4
|
-
},
|
|
5
|
-
isForceAtlasNodeElement: (value) => {
|
|
6
|
-
return value && value.label && value.icon;
|
|
7
|
-
},
|
|
8
|
-
isForceAtlasEdgeElement: (value) => {
|
|
9
|
-
return value && value.source && value.target;
|
|
10
|
-
}
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyYXBoLXZpei9zcmMvaW50ZXJmYWNlcy9lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUM3QixZQUFZLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtRQUN6QixPQUFPLEtBQUssRUFBRSxJQUFJLEtBQUssYUFBYSxDQUFDO0lBQ3pDLENBQUM7SUFDRCx1QkFBdUIsRUFBRSxDQUFDLEtBQVUsRUFBa0MsRUFBRTtRQUNwRSxPQUFPLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDOUMsQ0FBQztJQUNELHVCQUF1QixFQUFFLENBQUMsS0FBVSxFQUFrQyxFQUFFO1FBQ3BFLE9BQU8sS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUNqRCxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0RWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE5vZGVJY29uSXRlbSB9IGZyb20gJy4uL2ZvcmNlLWF0bGFzL3R5cGVzJztcbmV4cG9ydCBpbnRlcmZhY2UgRm9yY2VBdGxhc05vZGVFbGVtZW50IGV4dGVuZHMgUGxhaXRFbGVtZW50IHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIGljb246IHN0cmluZyB8IE5vZGVJY29uSXRlbTtcbiAgICBzaXplPzogbnVtYmVyO1xuICAgIGlzQWN0aXZlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JjZUF0bGFzRWRnZUVsZW1lbnQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQge1xuICAgIHNvdXJjZTogc3RyaW5nO1xuICAgIHRhcmdldDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZvcmNlQXRsYXNFbGVtZW50IGV4dGVuZHMgUGxhaXRFbGVtZW50IHtcbiAgICBjaGlsZHJlbjogKEZvcmNlQXRsYXNOb2RlRWxlbWVudCB8IEZvcmNlQXRsYXNFZGdlRWxlbWVudClbXTtcbn1cblxuZXhwb3J0IGNvbnN0IEZvcmNlQXRsYXNFbGVtZW50ID0ge1xuICAgIGlzRm9yY2VBdGxhczogKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHZhbHVlPy50eXBlID09PSAnZm9yY2UtYXRsYXMnO1xuICAgIH0sXG4gICAgaXNGb3JjZUF0bGFzTm9kZUVsZW1lbnQ6ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgRm9yY2VBdGxhc05vZGVFbGVtZW50ID0+IHtcbiAgICAgICAgcmV0dXJuIHZhbHVlICYmIHZhbHVlLmxhYmVsICYmIHZhbHVlLmljb247XG4gICAgfSxcbiAgICBpc0ZvcmNlQXRsYXNFZGdlRWxlbWVudDogKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBGb3JjZUF0bGFzRWRnZUVsZW1lbnQgPT4ge1xuICAgICAgICByZXR1cm4gdmFsdWUgJiYgdmFsdWUuc291cmNlICYmIHZhbHVlLnRhcmdldDtcbiAgICB9XG59O1xuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './element';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmFwaC12aXovc3JjL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VsZW1lbnQnO1xuIl19
|