@react-fabric/graph 1.0.0-beta.62 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/context/context.js +16 -0
- package/dist/cjs/graph/index.js +62 -385
- package/dist/cjs/index.js +25 -21
- package/dist/cjs/utils/edge.js +76 -0
- package/dist/cjs/utils/node.js +93 -0
- package/dist/cjs/utils/sdfFolder.js +107 -0
- package/dist/cjs/viewer/Graph.js +174 -0
- package/dist/esm/context/context.js +15 -0
- package/dist/esm/graph/index.js +63 -386
- package/dist/esm/index.js +24 -20
- package/dist/esm/utils/edge.js +75 -0
- package/dist/esm/utils/node.js +92 -0
- package/dist/esm/utils/sdfFolder.js +107 -0
- package/dist/esm/viewer/Graph.js +174 -0
- package/dist/types/context/context.d.ts +35 -0
- package/dist/types/graph/index.d.ts +47 -24
- package/dist/types/index.d.ts +28 -2
- package/dist/types/types/index.d.ts +124 -175
- package/dist/types/utils/edge.d.ts +28 -0
- package/dist/types/utils/node.d.ts +28 -0
- package/dist/types/utils/sdfFolder.d.ts +75 -0
- package/dist/types/viewer/Graph.d.ts +31 -0
- package/package.json +19 -25
- package/src/context/context.tsx +43 -0
- package/src/graph/index.ts +76 -399
- package/src/index.ts +24 -26
- package/src/types/index.ts +139 -185
- package/src/utils/edge.ts +65 -0
- package/src/utils/node.ts +105 -0
- package/src/utils/sdfFolder.ts +141 -0
- package/src/viewer/Graph.tsx +159 -0
- package/css/styles.css +0 -56
- package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__auto__createBase64WorkerFactory.js +0 -14
- package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__auto__isNodeJS.js +0 -9
- package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js +0 -35
- package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__node__WorkerClass.js +0 -11
- package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__node__createBase64WorkerFactory.js +0 -20
- package/dist/cjs/_virtual/elk-worker.js +0 -8
- package/dist/cjs/components/Context.js +0 -107
- package/dist/cjs/components/ContextMenu.js +0 -133
- package/dist/cjs/components/Tools.js +0 -205
- package/dist/cjs/components/Viewer.js +0 -58
- package/dist/cjs/constants/index.js +0 -16
- package/dist/cjs/hooks/sigmaDragSelect.js +0 -169
- package/dist/cjs/hooks/sigmaHilighter.js +0 -83
- package/dist/cjs/hooks/sigmaMouseActions.js +0 -145
- package/dist/cjs/hooks/useGraphology.js +0 -41
- package/dist/cjs/hooks/useSigma.js +0 -112
- package/dist/cjs/programs/arrow-head/frag.glsl.js +0 -8
- package/dist/cjs/programs/arrow-head/index.js +0 -142
- package/dist/cjs/programs/arrow-head/vert.glsl.js +0 -8
- package/dist/cjs/programs/edge-curve/drawLabel.js +0 -136
- package/dist/cjs/programs/edge-curve/frag.glsl.js +0 -8
- package/dist/cjs/programs/edge-curve/index.js +0 -157
- package/dist/cjs/programs/edge-curve/vert.glsl.js +0 -8
- package/dist/cjs/programs/edge-line/drawLabel.js +0 -70
- package/dist/cjs/programs/edge-line/frag.glsl.js +0 -8
- package/dist/cjs/programs/edge-line/index.js +0 -166
- package/dist/cjs/programs/edge-line/vert.glsl.js +0 -8
- package/dist/cjs/programs/node-badge/factory.js +0 -249
- package/dist/cjs/programs/node-badge/frag.glsl.js +0 -8
- package/dist/cjs/programs/node-badge/index.js +0 -33
- package/dist/cjs/programs/node-badge/texture.js +0 -455
- package/dist/cjs/programs/node-badge/vert.glsl.js +0 -19
- package/dist/cjs/programs/node-circle/base/drawHover.js +0 -71
- package/dist/cjs/programs/node-circle/base/drawLabel.js +0 -113
- package/dist/cjs/programs/node-circle/base/frag.glsl.js +0 -8
- package/dist/cjs/programs/node-circle/base/index.js +0 -136
- package/dist/cjs/programs/node-circle/base/vert.glsl.js +0 -8
- package/dist/cjs/programs/node-circle/index.js +0 -15
- package/dist/cjs/programs/node-image/factory.js +0 -223
- package/dist/cjs/programs/node-image/frag.glsl.js +0 -8
- package/dist/cjs/programs/node-image/index.js +0 -14
- package/dist/cjs/programs/node-image/texture.js +0 -472
- package/dist/cjs/programs/node-image/vert.glsl.js +0 -8
- package/dist/cjs/programs/node-rect/base/drawHover.js +0 -68
- package/dist/cjs/programs/node-rect/base/drawLabel.js +0 -107
- package/dist/cjs/programs/node-rect/base/frag.glsl.js +0 -8
- package/dist/cjs/programs/node-rect/base/index.js +0 -135
- package/dist/cjs/programs/node-rect/base/vert.glsl.js +0 -8
- package/dist/cjs/programs/node-rect/index.js +0 -15
- package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__auto__createBase64WorkerFactory.js +0 -14
- package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__auto__isNodeJS.js +0 -9
- package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js +0 -34
- package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__node__WorkerClass.js +0 -13
- package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__node__createBase64WorkerFactory.js +0 -20
- package/dist/esm/_virtual/elk-worker.js +0 -8
- package/dist/esm/components/Context.js +0 -106
- package/dist/esm/components/ContextMenu.js +0 -133
- package/dist/esm/components/Tools.js +0 -205
- package/dist/esm/components/Viewer.js +0 -58
- package/dist/esm/constants/index.js +0 -16
- package/dist/esm/hooks/sigmaDragSelect.js +0 -169
- package/dist/esm/hooks/sigmaHilighter.js +0 -83
- package/dist/esm/hooks/sigmaMouseActions.js +0 -145
- package/dist/esm/hooks/useGraphology.js +0 -41
- package/dist/esm/hooks/useSigma.js +0 -112
- package/dist/esm/programs/arrow-head/frag.glsl.js +0 -8
- package/dist/esm/programs/arrow-head/index.js +0 -141
- package/dist/esm/programs/arrow-head/vert.glsl.js +0 -8
- package/dist/esm/programs/edge-curve/drawLabel.js +0 -136
- package/dist/esm/programs/edge-curve/frag.glsl.js +0 -8
- package/dist/esm/programs/edge-curve/index.js +0 -156
- package/dist/esm/programs/edge-curve/vert.glsl.js +0 -8
- package/dist/esm/programs/edge-line/drawLabel.js +0 -70
- package/dist/esm/programs/edge-line/frag.glsl.js +0 -8
- package/dist/esm/programs/edge-line/index.js +0 -166
- package/dist/esm/programs/edge-line/vert.glsl.js +0 -8
- package/dist/esm/programs/node-badge/factory.js +0 -249
- package/dist/esm/programs/node-badge/frag.glsl.js +0 -8
- package/dist/esm/programs/node-badge/index.js +0 -32
- package/dist/esm/programs/node-badge/texture.js +0 -445
- package/dist/esm/programs/node-badge/vert.glsl.js +0 -19
- package/dist/esm/programs/node-circle/base/drawHover.js +0 -71
- package/dist/esm/programs/node-circle/base/drawLabel.js +0 -113
- package/dist/esm/programs/node-circle/base/frag.glsl.js +0 -8
- package/dist/esm/programs/node-circle/base/index.js +0 -136
- package/dist/esm/programs/node-circle/base/vert.glsl.js +0 -8
- package/dist/esm/programs/node-circle/index.js +0 -15
- package/dist/esm/programs/node-image/factory.js +0 -223
- package/dist/esm/programs/node-image/frag.glsl.js +0 -8
- package/dist/esm/programs/node-image/index.js +0 -13
- package/dist/esm/programs/node-image/texture.js +0 -462
- package/dist/esm/programs/node-image/vert.glsl.js +0 -8
- package/dist/esm/programs/node-rect/base/drawHover.js +0 -68
- package/dist/esm/programs/node-rect/base/drawLabel.js +0 -107
- package/dist/esm/programs/node-rect/base/frag.glsl.js +0 -8
- package/dist/esm/programs/node-rect/base/index.js +0 -135
- package/dist/esm/programs/node-rect/base/vert.glsl.js +0 -8
- package/dist/esm/programs/node-rect/index.js +0 -15
- package/dist/types/components/Context.d.ts +0 -18
- package/dist/types/components/ContextMenu.d.ts +0 -1
- package/dist/types/components/Tools.d.ts +0 -1
- package/dist/types/components/Viewer.d.ts +0 -2
- package/dist/types/constants/index.d.ts +0 -12
- package/dist/types/graph/layout.worker.d.ts +0 -1
- package/dist/types/hooks/sigmaDragSelect.d.ts +0 -8
- package/dist/types/hooks/sigmaHilighter.d.ts +0 -3
- package/dist/types/hooks/sigmaMouseActions.d.ts +0 -3
- package/dist/types/hooks/useGraphology.d.ts +0 -6
- package/dist/types/hooks/useSigma.d.ts +0 -8
- package/dist/types/i18n/index.d.ts +0 -0
- package/dist/types/programs/arrow-head/frag.glsl.d.ts +0 -2
- package/dist/types/programs/arrow-head/index.d.ts +0 -9
- package/dist/types/programs/arrow-head/vert.glsl.d.ts +0 -2
- package/dist/types/programs/edge-curve/drawLabel.d.ts +0 -6
- package/dist/types/programs/edge-curve/frag.glsl.d.ts +0 -2
- package/dist/types/programs/edge-curve/index.d.ts +0 -43
- package/dist/types/programs/edge-curve/vert.glsl.d.ts +0 -2
- package/dist/types/programs/edge-line/drawLabel.d.ts +0 -5
- package/dist/types/programs/edge-line/frag.glsl.d.ts +0 -2
- package/dist/types/programs/edge-line/index.d.ts +0 -11
- package/dist/types/programs/edge-line/vert.glsl.d.ts +0 -2
- package/dist/types/programs/node-badge/factory.d.ts +0 -27
- package/dist/types/programs/node-badge/frag.glsl.d.ts +0 -2
- package/dist/types/programs/node-badge/index.d.ts +0 -5
- package/dist/types/programs/node-badge/texture.d.ts +0 -102
- package/dist/types/programs/node-badge/vert.glsl.d.ts +0 -2
- package/dist/types/programs/node-circle/base/drawHover.d.ts +0 -8
- package/dist/types/programs/node-circle/base/drawLabel.d.ts +0 -8
- package/dist/types/programs/node-circle/base/frag.glsl.d.ts +0 -2
- package/dist/types/programs/node-circle/base/index.d.ts +0 -37
- package/dist/types/programs/node-circle/base/vert.glsl.d.ts +0 -2
- package/dist/types/programs/node-circle/index.d.ts +0 -11
- package/dist/types/programs/node-image/factory.d.ts +0 -25
- package/dist/types/programs/node-image/frag.glsl.d.ts +0 -2
- package/dist/types/programs/node-image/index.d.ts +0 -5
- package/dist/types/programs/node-image/texture.d.ts +0 -102
- package/dist/types/programs/node-image/vert.glsl.d.ts +0 -2
- package/dist/types/programs/node-rect/base/drawHover.d.ts +0 -8
- package/dist/types/programs/node-rect/base/drawLabel.d.ts +0 -8
- package/dist/types/programs/node-rect/base/frag.glsl.d.ts +0 -2
- package/dist/types/programs/node-rect/base/index.d.ts +0 -34
- package/dist/types/programs/node-rect/base/vert.glsl.d.ts +0 -2
- package/dist/types/programs/node-rect/index.d.ts +0 -11
- package/src/components/Context.tsx +0 -143
- package/src/components/ContextMenu.tsx +0 -174
- package/src/components/Tools.tsx +0 -106
- package/src/components/Viewer.tsx +0 -76
- package/src/constants/index.ts +0 -22
- package/src/graph/layout.worker.ts +0 -42
- package/src/hooks/sigmaDragSelect.ts +0 -219
- package/src/hooks/sigmaHilighter.ts +0 -107
- package/src/hooks/sigmaMouseActions.ts +0 -153
- package/src/hooks/useGraphology.ts +0 -31
- package/src/hooks/useSigma.ts +0 -118
- package/src/i18n/index.ts +0 -0
- package/src/programs/arrow-head/frag.glsl.ts +0 -18
- package/src/programs/arrow-head/index.ts +0 -157
- package/src/programs/arrow-head/vert.glsl.ts +0 -75
- package/src/programs/edge-curve/drawLabel.ts +0 -166
- package/src/programs/edge-curve/frag.glsl.ts +0 -86
- package/src/programs/edge-curve/index.ts +0 -158
- package/src/programs/edge-curve/vert.glsl.ts +0 -110
- package/src/programs/edge-line/drawLabel.ts +0 -113
- package/src/programs/edge-line/frag.glsl.ts +0 -34
- package/src/programs/edge-line/index.ts +0 -165
- package/src/programs/edge-line/vert.glsl.ts +0 -104
- package/src/programs/node-badge/factory.ts +0 -327
- package/src/programs/node-badge/frag.glsl.ts +0 -79
- package/src/programs/node-badge/index.ts +0 -35
- package/src/programs/node-badge/texture.ts +0 -425
- package/src/programs/node-badge/vert.glsl.ts +0 -99
- package/src/programs/node-circle/base/drawHover.ts +0 -80
- package/src/programs/node-circle/base/drawLabel.ts +0 -145
- package/src/programs/node-circle/base/frag.glsl.ts +0 -72
- package/src/programs/node-circle/base/index.ts +0 -102
- package/src/programs/node-circle/base/vert.glsl.ts +0 -83
- package/src/programs/node-circle/index.ts +0 -19
- package/src/programs/node-image/factory.ts +0 -301
- package/src/programs/node-image/frag.glsl.ts +0 -97
- package/src/programs/node-image/index.ts +0 -7
- package/src/programs/node-image/texture.ts +0 -435
- package/src/programs/node-image/vert.glsl.ts +0 -60
- package/src/programs/node-rect/base/drawHover.ts +0 -77
- package/src/programs/node-rect/base/drawLabel.ts +0 -149
- package/src/programs/node-rect/base/frag.glsl.ts +0 -67
- package/src/programs/node-rect/base/index.ts +0 -109
- package/src/programs/node-rect/base/vert.glsl.ts +0 -87
- package/src/programs/node-rect/index.ts +0 -19
|
@@ -1,472 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var _possibleConstructorReturn = require('@babel/runtime/helpers/possibleConstructorReturn');
|
|
4
|
-
var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
|
|
5
|
-
var _inherits = require('@babel/runtime/helpers/inherits');
|
|
6
|
-
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
7
|
-
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
8
|
-
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
9
|
-
var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
|
|
10
|
-
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
11
|
-
var utilities = require('@react-fabric/utilities');
|
|
12
|
-
var events = require('events');
|
|
13
|
-
|
|
14
|
-
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
15
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
16
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
17
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
18
|
-
|
|
19
|
-
/* istanbul ignore file */
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Useful types:
|
|
23
|
-
* *************
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
var DEFAULT_TEXTURE_MANAGER_OPTIONS = {
|
|
27
|
-
size: {
|
|
28
|
-
mode: "max",
|
|
29
|
-
value: 512
|
|
30
|
-
},
|
|
31
|
-
objectFit: "cover",
|
|
32
|
-
correctCentering: false
|
|
33
|
-
};
|
|
34
|
-
var DEBOUNCE_TIMEOUT = 100;
|
|
35
|
-
|
|
36
|
-
// This margin helps avoiding images collisions in the texture:
|
|
37
|
-
var MARGIN_IN_TEXTURE = 1;
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Helpers:
|
|
41
|
-
* ********
|
|
42
|
-
*/
|
|
43
|
-
/**
|
|
44
|
-
* This helper loads an image at a given URL, and returns an HTMLImageElement
|
|
45
|
-
* with it displayed once it's properly loaded, within a promise.
|
|
46
|
-
*/
|
|
47
|
-
function loadRasterImage(_x) {
|
|
48
|
-
return _loadRasterImage.apply(this, arguments);
|
|
49
|
-
}
|
|
50
|
-
function _loadRasterImage() {
|
|
51
|
-
_loadRasterImage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(imageSource) {
|
|
52
|
-
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
53
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
54
|
-
case 0:
|
|
55
|
-
_context2.next = 2;
|
|
56
|
-
return new Promise(function (resolve, reject) {
|
|
57
|
-
var image = new Image();
|
|
58
|
-
image.addEventListener("load", function () {
|
|
59
|
-
resolve(image);
|
|
60
|
-
}, {
|
|
61
|
-
once: true
|
|
62
|
-
});
|
|
63
|
-
image.addEventListener("error", function (e) {
|
|
64
|
-
reject(e.error);
|
|
65
|
-
}, {
|
|
66
|
-
once: true
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
// Load image:
|
|
70
|
-
image.setAttribute("crossOrigin", "");
|
|
71
|
-
image.src = imageSource;
|
|
72
|
-
});
|
|
73
|
-
case 2:
|
|
74
|
-
return _context2.abrupt("return", _context2.sent);
|
|
75
|
-
case 3:
|
|
76
|
-
case "end":
|
|
77
|
-
return _context2.stop();
|
|
78
|
-
}
|
|
79
|
-
}, _callee2);
|
|
80
|
-
}));
|
|
81
|
-
return _loadRasterImage.apply(this, arguments);
|
|
82
|
-
}
|
|
83
|
-
var makeSvg = function makeSvg() {
|
|
84
|
-
var path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
|
|
85
|
-
return "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-1 -1 26 26\" width=\"128px\" height=\"128px\"><path fill=\"#000\" d=\"".concat(path, "\"></path></svg>");
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* This helper loads an SVG image at a given URL, adjusts its size to a given
|
|
90
|
-
* size, and returns an HTMLImageElement with it displayed once it's properly
|
|
91
|
-
* loaded, within a promise.
|
|
92
|
-
*/
|
|
93
|
-
function loadSVGImage(_x2) {
|
|
94
|
-
return _loadSVGImage.apply(this, arguments);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* This helper loads an image using the proper function.
|
|
99
|
-
*/
|
|
100
|
-
function _loadSVGImage() {
|
|
101
|
-
_loadSVGImage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(imageSource) {
|
|
102
|
-
var _ref,
|
|
103
|
-
size,
|
|
104
|
-
svg,
|
|
105
|
-
root,
|
|
106
|
-
originalWidth,
|
|
107
|
-
originalHeight,
|
|
108
|
-
correctedSvgString,
|
|
109
|
-
blob,
|
|
110
|
-
url,
|
|
111
|
-
res,
|
|
112
|
-
_args3 = arguments;
|
|
113
|
-
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
114
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
115
|
-
case 0:
|
|
116
|
-
_ref = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : {}, size = _ref.size;
|
|
117
|
-
svg = new DOMParser().parseFromString(makeSvg(imageSource), "image/svg+xml");
|
|
118
|
-
root = svg.documentElement;
|
|
119
|
-
originalWidth = root.getAttribute("width");
|
|
120
|
-
originalHeight = root.getAttribute("height");
|
|
121
|
-
if (!(!originalWidth || !originalHeight)) {
|
|
122
|
-
_context3.next = 7;
|
|
123
|
-
break;
|
|
124
|
-
}
|
|
125
|
-
throw new Error("loadSVGImage: cannot use `size` if target SVG has no definite dimensions.");
|
|
126
|
-
case 7:
|
|
127
|
-
if (typeof size === "number") {
|
|
128
|
-
root.setAttribute("width", "" + size);
|
|
129
|
-
root.setAttribute("height", "" + size);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
// NOTE: since Google Material last changes to their icon viewBox, this
|
|
133
|
-
// code is no longer necessary (hopefully it does not break something else...)
|
|
134
|
-
// root.setAttribute("viewBox", `0 0 ${originalWidth} ${originalHeight}`);
|
|
135
|
-
correctedSvgString = new XMLSerializer().serializeToString(svg);
|
|
136
|
-
blob = new Blob([correctedSvgString], {
|
|
137
|
-
type: "image/svg+xml"
|
|
138
|
-
});
|
|
139
|
-
url = URL.createObjectURL(blob);
|
|
140
|
-
res = loadRasterImage(url);
|
|
141
|
-
void res["finally"](function () {
|
|
142
|
-
return URL.revokeObjectURL(url);
|
|
143
|
-
});
|
|
144
|
-
_context3.next = 15;
|
|
145
|
-
return res;
|
|
146
|
-
case 15:
|
|
147
|
-
return _context3.abrupt("return", _context3.sent);
|
|
148
|
-
case 16:
|
|
149
|
-
case "end":
|
|
150
|
-
return _context3.stop();
|
|
151
|
-
}
|
|
152
|
-
}, _callee3);
|
|
153
|
-
}));
|
|
154
|
-
return _loadSVGImage.apply(this, arguments);
|
|
155
|
-
}
|
|
156
|
-
function loadImage(_x3) {
|
|
157
|
-
return _loadImage.apply(this, arguments);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* This helper computes exact coordinates to draw an image onto a texture.
|
|
162
|
-
*/
|
|
163
|
-
function _loadImage() {
|
|
164
|
-
_loadImage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(imageSource) {
|
|
165
|
-
var _ref2,
|
|
166
|
-
isSVG,
|
|
167
|
-
image,
|
|
168
|
-
_args4 = arguments;
|
|
169
|
-
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
170
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
171
|
-
case 0:
|
|
172
|
-
_ref2 = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : {}, _ref2.size;
|
|
173
|
-
isSVG = utilities.isSvgPath(imageSource);
|
|
174
|
-
if (!isSVG) {
|
|
175
|
-
_context4.next = 8;
|
|
176
|
-
break;
|
|
177
|
-
}
|
|
178
|
-
_context4.next = 5;
|
|
179
|
-
return loadSVGImage(imageSource, {
|
|
180
|
-
size: 128
|
|
181
|
-
});
|
|
182
|
-
case 5:
|
|
183
|
-
image = _context4.sent;
|
|
184
|
-
_context4.next = 11;
|
|
185
|
-
break;
|
|
186
|
-
case 8:
|
|
187
|
-
_context4.next = 10;
|
|
188
|
-
return loadRasterImage(imageSource);
|
|
189
|
-
case 10:
|
|
190
|
-
image = _context4.sent;
|
|
191
|
-
case 11:
|
|
192
|
-
return _context4.abrupt("return", image);
|
|
193
|
-
case 12:
|
|
194
|
-
case "end":
|
|
195
|
-
return _context4.stop();
|
|
196
|
-
}
|
|
197
|
-
}, _callee4);
|
|
198
|
-
}));
|
|
199
|
-
return _loadImage.apply(this, arguments);
|
|
200
|
-
}
|
|
201
|
-
function refineImage(image, corrector, _ref3) {
|
|
202
|
-
var objectFit = _ref3.objectFit,
|
|
203
|
-
size = _ref3.size,
|
|
204
|
-
correctCentering = _ref3.correctCentering;
|
|
205
|
-
var sourceSize = objectFit === "contain" ? Math.max(image.width, image.height) : Math.min(image.width, image.height);
|
|
206
|
-
var destinationSize = size.mode === "auto" ? sourceSize : size.mode === "force" ? size.value : Math.min(size.value, sourceSize);
|
|
207
|
-
var sourceX = (image.width - sourceSize) / 2;
|
|
208
|
-
var sourceY = (image.height - sourceSize) / 2;
|
|
209
|
-
if (correctCentering) {
|
|
210
|
-
var correction = corrector.getCorrectionOffset(image, sourceSize);
|
|
211
|
-
sourceX = correction.x;
|
|
212
|
-
sourceY = correction.y;
|
|
213
|
-
}
|
|
214
|
-
return {
|
|
215
|
-
sourceX: sourceX,
|
|
216
|
-
sourceY: sourceY,
|
|
217
|
-
sourceSize: sourceSize,
|
|
218
|
-
destinationSize: destinationSize
|
|
219
|
-
};
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* This helper takes a collection of image states and a context, draw all the
|
|
224
|
-
* images in the context, and returns an atlas to get where each image is drawn
|
|
225
|
-
* on the texture.
|
|
226
|
-
*/
|
|
227
|
-
function drawTexture(ctx, images) {
|
|
228
|
-
var MAX_CANVAS_WIDTH = 3072;
|
|
229
|
-
var TARGET_FILL_PERCENTAGE = 0.6;
|
|
230
|
-
|
|
231
|
-
// 1. Sort images by height, decreasingly:
|
|
232
|
-
var imagesArray = [];
|
|
233
|
-
var totalArea = 0;
|
|
234
|
-
var maxItemWidth = 0;
|
|
235
|
-
for (var key in images) {
|
|
236
|
-
var imageState = images[key];
|
|
237
|
-
if (imageState.status !== "ready") continue;
|
|
238
|
-
maxItemWidth = Math.max(maxItemWidth, imageState.destinationSize);
|
|
239
|
-
totalArea += Math.pow(imageState.destinationSize, 2);
|
|
240
|
-
imagesArray.push(_objectSpread({
|
|
241
|
-
key: key
|
|
242
|
-
}, imageState));
|
|
243
|
-
}
|
|
244
|
-
imagesArray.sort(function (a, b) {
|
|
245
|
-
return a.destinationSize > b.destinationSize ? -1 : 1;
|
|
246
|
-
});
|
|
247
|
-
|
|
248
|
-
// 2. Predict canvas width:
|
|
249
|
-
var predictedTotalArea = totalArea / TARGET_FILL_PERCENTAGE;
|
|
250
|
-
var predictedWidth = Math.min(Math.max(Math.sqrt(predictedTotalArea), maxItemWidth), MAX_CANVAS_WIDTH);
|
|
251
|
-
|
|
252
|
-
// 3. Refine images coordinates:
|
|
253
|
-
var refinedImagesArray = [];
|
|
254
|
-
var x = 0;
|
|
255
|
-
var y = 0;
|
|
256
|
-
var currentRowHeight = 0;
|
|
257
|
-
var maxRowWidth = 0;
|
|
258
|
-
var atlas = {};
|
|
259
|
-
for (var i = 0, l = imagesArray.length; i < l; i++) {
|
|
260
|
-
var _imagesArray$i = imagesArray[i],
|
|
261
|
-
_key = _imagesArray$i.key,
|
|
262
|
-
image = _imagesArray$i.image,
|
|
263
|
-
sourceSize = _imagesArray$i.sourceSize,
|
|
264
|
-
sourceX = _imagesArray$i.sourceX,
|
|
265
|
-
sourceY = _imagesArray$i.sourceY,
|
|
266
|
-
destinationSize = _imagesArray$i.destinationSize;
|
|
267
|
-
var destinationSizeWithMargin = destinationSize + MARGIN_IN_TEXTURE;
|
|
268
|
-
if (x + destinationSizeWithMargin > predictedWidth) {
|
|
269
|
-
maxRowWidth = Math.max(maxRowWidth, x);
|
|
270
|
-
x = 0;
|
|
271
|
-
y += currentRowHeight;
|
|
272
|
-
currentRowHeight = destinationSizeWithMargin;
|
|
273
|
-
}
|
|
274
|
-
refinedImagesArray.push({
|
|
275
|
-
key: _key,
|
|
276
|
-
image: image,
|
|
277
|
-
sourceX: sourceX,
|
|
278
|
-
sourceY: sourceY,
|
|
279
|
-
sourceSize: sourceSize,
|
|
280
|
-
destinationX: x,
|
|
281
|
-
destinationY: y,
|
|
282
|
-
destinationSize: destinationSize
|
|
283
|
-
});
|
|
284
|
-
atlas[_key] = {
|
|
285
|
-
x: x,
|
|
286
|
-
y: y,
|
|
287
|
-
size: destinationSize
|
|
288
|
-
};
|
|
289
|
-
x += destinationSizeWithMargin;
|
|
290
|
-
currentRowHeight = Math.max(currentRowHeight, destinationSizeWithMargin);
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
// 4. Crop texture to final best dimensions:
|
|
294
|
-
maxRowWidth = Math.max(maxRowWidth, x);
|
|
295
|
-
var canvas = ctx.canvas;
|
|
296
|
-
canvas.width = maxRowWidth;
|
|
297
|
-
canvas.height = y + currentRowHeight;
|
|
298
|
-
|
|
299
|
-
// 5. Fill texture:
|
|
300
|
-
for (var _i = 0, _l = refinedImagesArray.length; _i < _l; _i++) {
|
|
301
|
-
var _refinedImagesArray$_ = refinedImagesArray[_i],
|
|
302
|
-
_image = _refinedImagesArray$_.image,
|
|
303
|
-
_sourceSize = _refinedImagesArray$_.sourceSize,
|
|
304
|
-
_sourceX = _refinedImagesArray$_.sourceX,
|
|
305
|
-
_sourceY = _refinedImagesArray$_.sourceY,
|
|
306
|
-
_destinationSize = _refinedImagesArray$_.destinationSize,
|
|
307
|
-
destinationX = _refinedImagesArray$_.destinationX,
|
|
308
|
-
destinationY = _refinedImagesArray$_.destinationY;
|
|
309
|
-
ctx.drawImage(_image, _sourceX, _sourceY, _sourceSize, _sourceSize, destinationX, destinationY, _destinationSize, _destinationSize);
|
|
310
|
-
}
|
|
311
|
-
return atlas;
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
/**
|
|
315
|
-
* This class helps to "correct" the centering of an SVG pictogram by finding
|
|
316
|
-
* the "true" visually correct center through the barycenter of the pictogram's
|
|
317
|
-
* alpha layer in x and y dimension.
|
|
318
|
-
*/
|
|
319
|
-
var PictogramCenteringCorrector = /*#__PURE__*/function () {
|
|
320
|
-
function PictogramCenteringCorrector() {
|
|
321
|
-
_classCallCheck(this, PictogramCenteringCorrector);
|
|
322
|
-
this.canvas = document.createElement("canvas");
|
|
323
|
-
this.context = this.canvas.getContext("2d", {
|
|
324
|
-
willReadFrequently: true
|
|
325
|
-
});
|
|
326
|
-
}
|
|
327
|
-
return _createClass(PictogramCenteringCorrector, [{
|
|
328
|
-
key: "getCorrectionOffset",
|
|
329
|
-
value: function getCorrectionOffset(image, size) {
|
|
330
|
-
this.canvas.width = size;
|
|
331
|
-
this.canvas.height = size;
|
|
332
|
-
this.context.clearRect(0, 0, size, size);
|
|
333
|
-
this.context.drawImage(image, 0, 0, size, size);
|
|
334
|
-
var data = this.context.getImageData(0, 0, size, size).data;
|
|
335
|
-
var alpha = new Uint8ClampedArray(data.length / 4);
|
|
336
|
-
for (var i = 0; i < data.length; i++) {
|
|
337
|
-
alpha[i] = data[i * 4 + 3];
|
|
338
|
-
}
|
|
339
|
-
var sumX = 0;
|
|
340
|
-
var sumY = 0;
|
|
341
|
-
var total = 0;
|
|
342
|
-
for (var y = 0; y < size; y++) {
|
|
343
|
-
for (var x = 0; x < size; x++) {
|
|
344
|
-
var a = alpha[y * size + x];
|
|
345
|
-
total += a;
|
|
346
|
-
sumX += a * x;
|
|
347
|
-
sumY += a * y;
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
var barycenterX = sumX / total;
|
|
351
|
-
var barycenterY = sumY / total;
|
|
352
|
-
return {
|
|
353
|
-
x: barycenterX - size / 2,
|
|
354
|
-
y: barycenterY - size / 2
|
|
355
|
-
};
|
|
356
|
-
}
|
|
357
|
-
}]);
|
|
358
|
-
}();
|
|
359
|
-
var TextureManager = /*#__PURE__*/function (_EventEmitter) {
|
|
360
|
-
function TextureManager() {
|
|
361
|
-
var _this;
|
|
362
|
-
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
363
|
-
_classCallCheck(this, TextureManager);
|
|
364
|
-
_this = _callSuper(this, TextureManager);
|
|
365
|
-
_defineProperty(_this, "canvas", document.createElement("canvas"));
|
|
366
|
-
_defineProperty(_this, "ctx", _this.canvas.getContext("2d", {
|
|
367
|
-
willReadFrequently: true
|
|
368
|
-
}));
|
|
369
|
-
_defineProperty(_this, "corrector", new PictogramCenteringCorrector());
|
|
370
|
-
_defineProperty(_this, "imageStates", {});
|
|
371
|
-
_defineProperty(_this, "texture", _this.ctx.getImageData(0, 0, 1, 1));
|
|
372
|
-
_defineProperty(_this, "atlas", {});
|
|
373
|
-
_this.options = _objectSpread(_objectSpread({}, DEFAULT_TEXTURE_MANAGER_OPTIONS), options);
|
|
374
|
-
return _this;
|
|
375
|
-
}
|
|
376
|
-
_inherits(TextureManager, _EventEmitter);
|
|
377
|
-
return _createClass(TextureManager, [{
|
|
378
|
-
key: "scheduleGenerateTexture",
|
|
379
|
-
value: function scheduleGenerateTexture() {
|
|
380
|
-
var _this2 = this;
|
|
381
|
-
if (typeof this.frameId === "number") return;
|
|
382
|
-
this.frameId = window.setTimeout(function () {
|
|
383
|
-
_this2.generateTexture();
|
|
384
|
-
_this2.frameId = undefined;
|
|
385
|
-
}, DEBOUNCE_TIMEOUT);
|
|
386
|
-
}
|
|
387
|
-
}, {
|
|
388
|
-
key: "generateTexture",
|
|
389
|
-
value: function generateTexture() {
|
|
390
|
-
this.atlas = drawTexture(this.ctx, this.imageStates);
|
|
391
|
-
this.texture = this.ctx.getImageData(0, 0, this.canvas.width, this.canvas.height);
|
|
392
|
-
this.emit(TextureManager.NEW_TEXTURE_EVENT, {
|
|
393
|
-
atlas: this.atlas,
|
|
394
|
-
texture: this.texture
|
|
395
|
-
});
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
// PUBLIC API:
|
|
399
|
-
}, {
|
|
400
|
-
key: "registerImage",
|
|
401
|
-
value: function () {
|
|
402
|
-
var _registerImage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(source) {
|
|
403
|
-
var size, image;
|
|
404
|
-
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
405
|
-
while (1) switch (_context.prev = _context.next) {
|
|
406
|
-
case 0:
|
|
407
|
-
if (!this.imageStates[source]) {
|
|
408
|
-
_context.next = 2;
|
|
409
|
-
break;
|
|
410
|
-
}
|
|
411
|
-
return _context.abrupt("return");
|
|
412
|
-
case 2:
|
|
413
|
-
this.imageStates[source] = {
|
|
414
|
-
status: "loading"
|
|
415
|
-
};
|
|
416
|
-
_context.prev = 3;
|
|
417
|
-
size = this.options.size;
|
|
418
|
-
_context.next = 7;
|
|
419
|
-
return loadImage(source, {
|
|
420
|
-
size: size.mode === "force" ? size.value : undefined
|
|
421
|
-
});
|
|
422
|
-
case 7:
|
|
423
|
-
image = _context.sent;
|
|
424
|
-
this.imageStates[source] = _objectSpread({
|
|
425
|
-
status: "ready",
|
|
426
|
-
image: image
|
|
427
|
-
}, refineImage(image, this.corrector, this.options));
|
|
428
|
-
this.scheduleGenerateTexture();
|
|
429
|
-
_context.next = 15;
|
|
430
|
-
break;
|
|
431
|
-
case 12:
|
|
432
|
-
_context.prev = 12;
|
|
433
|
-
_context.t0 = _context["catch"](3);
|
|
434
|
-
this.imageStates[source] = {
|
|
435
|
-
status: "error"
|
|
436
|
-
};
|
|
437
|
-
case 15:
|
|
438
|
-
case "end":
|
|
439
|
-
return _context.stop();
|
|
440
|
-
}
|
|
441
|
-
}, _callee, this, [[3, 12]]);
|
|
442
|
-
}));
|
|
443
|
-
function registerImage(_x4) {
|
|
444
|
-
return _registerImage.apply(this, arguments);
|
|
445
|
-
}
|
|
446
|
-
return registerImage;
|
|
447
|
-
}()
|
|
448
|
-
}, {
|
|
449
|
-
key: "getAtlas",
|
|
450
|
-
value: function getAtlas() {
|
|
451
|
-
return this.atlas;
|
|
452
|
-
}
|
|
453
|
-
}, {
|
|
454
|
-
key: "getTexture",
|
|
455
|
-
value: function getTexture() {
|
|
456
|
-
return this.texture;
|
|
457
|
-
}
|
|
458
|
-
}]);
|
|
459
|
-
}(events.EventEmitter);
|
|
460
|
-
_defineProperty(TextureManager, "NEW_TEXTURE_EVENT", "newTexture");
|
|
461
|
-
|
|
462
|
-
exports.DEBOUNCE_TIMEOUT = DEBOUNCE_TIMEOUT;
|
|
463
|
-
exports.DEFAULT_TEXTURE_MANAGER_OPTIONS = DEFAULT_TEXTURE_MANAGER_OPTIONS;
|
|
464
|
-
exports.MARGIN_IN_TEXTURE = MARGIN_IN_TEXTURE;
|
|
465
|
-
exports.PictogramCenteringCorrector = PictogramCenteringCorrector;
|
|
466
|
-
exports.TextureManager = TextureManager;
|
|
467
|
-
exports.drawTexture = drawTexture;
|
|
468
|
-
exports.loadImage = loadImage;
|
|
469
|
-
exports.loadRasterImage = loadRasterImage;
|
|
470
|
-
exports.loadSVGImage = loadSVGImage;
|
|
471
|
-
exports.makeSvg = makeSvg;
|
|
472
|
-
exports.refineImage = refineImage;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/* istanbul ignore file */
|
|
4
|
-
|
|
5
|
-
// language=GLSL
|
|
6
|
-
var VERTEX_SHADER_SOURCE = /* glsl */"\nattribute vec4 a_id;\nattribute vec4 a_fill;\nattribute vec4 a_color;\nattribute vec2 a_position;\nattribute float a_size;\nattribute float a_angle;\nattribute float a_colorMode;\nattribute float a_opacity;\nattribute vec4 a_texture;\n\nuniform mat3 u_matrix;\nuniform float u_sizeRatio;\nuniform float u_correctionRatio;\n\nvarying vec4 v_fill;\nvarying vec4 v_color;\nvarying vec2 v_diffVector;\nvarying float v_radius;\nvarying float v_opacity;\nvarying vec4 v_texture;\nvarying float v_colorMode;\n\nconst float bias = 255.0 / 254.0;\nconst float marginRatio = 1.05;\n\nvoid main() {\n float size = a_size * u_correctionRatio / u_sizeRatio * 4.0;\n vec2 diffVector = size * vec2(cos(a_angle), sin(a_angle));\n vec2 position = a_position + diffVector * marginRatio;\n gl_Position = vec4(\n (u_matrix * vec3(position, 1)).xy,\n 0,\n 1\n );\n\n v_diffVector = diffVector;\n v_radius = size / 2.0 / marginRatio;\n\n #ifdef PICKING_MODE\n // For picking mode, we use the ID as the color:\n v_color = a_id;\n #else\n // For normal mode, we use the color:\n v_fill = vec4(0.0, 0.0, 0.0, 0.0);\n v_color = vec4(a_color.rgb, a_opacity * bias);\n v_opacity = a_opacity;\n v_colorMode = a_colorMode;\n // Pass the texture coordinates:\n v_texture = a_texture;\n #endif\n\n v_color.a *= bias;\n}\n";
|
|
7
|
-
|
|
8
|
-
module.exports = VERTEX_SHADER_SOURCE;
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var drawLabel = require('./drawLabel.js');
|
|
4
|
-
|
|
5
|
-
/* istanbul ignore file */
|
|
6
|
-
|
|
7
|
-
function drawNodeHover(context, data, settings) {
|
|
8
|
-
var _ref, _data$labelColor;
|
|
9
|
-
var nodeSize = data.size;
|
|
10
|
-
var size = settings.labelSize;
|
|
11
|
-
var font = settings.labelFont;
|
|
12
|
-
var weight = settings.labelWeight;
|
|
13
|
-
// use node color or default node color
|
|
14
|
-
var bg = settings.defaultNodeColor || "#fff";
|
|
15
|
-
// use label color or default label color
|
|
16
|
-
var color = (_ref = (_data$labelColor = data.labelColor) !== null && _data$labelColor !== void 0 ? _data$labelColor : settings.labelColor.color) !== null && _ref !== void 0 ? _ref : "#000";
|
|
17
|
-
context.font = "".concat(weight, " ").concat(size, "px ").concat(font);
|
|
18
|
-
|
|
19
|
-
// Then we draw the label background
|
|
20
|
-
context.fillStyle = bg;
|
|
21
|
-
context.strokeStyle = color;
|
|
22
|
-
context.lineWidth = 0.25;
|
|
23
|
-
var PADDING = data.selected ? 4 : 2;
|
|
24
|
-
|
|
25
|
-
// if (typeof data.label === "string") {
|
|
26
|
-
// const textWidth = context.measureText(data.label).width;
|
|
27
|
-
// const boxWidth = Math.round(textWidth + 5);
|
|
28
|
-
// const boxHeight = Math.round(size + 2 * PADDING);
|
|
29
|
-
// const radius = Math.max(nodeSize, size / 2) + PADDING;
|
|
30
|
-
|
|
31
|
-
// context.beginPath();
|
|
32
|
-
// context.moveTo(data.x + radius, data.y + boxHeight / 2);
|
|
33
|
-
// context.lineTo(data.x + radius + boxWidth, data.y + boxHeight / 2);
|
|
34
|
-
// context.lineTo(data.x + radius + boxWidth, data.y - boxHeight / 2);
|
|
35
|
-
// context.lineTo(data.x + radius, data.y - boxHeight / 2);
|
|
36
|
-
// context.lineTo(data.x + radius, data.y - radius);
|
|
37
|
-
// context.lineTo(data.x - radius, data.y - radius);
|
|
38
|
-
// context.lineTo(data.x - radius, data.y + radius);
|
|
39
|
-
// context.lineTo(data.x + radius, data.y + radius);
|
|
40
|
-
// context.lineTo(data.x + radius, data.y + boxHeight / 2);
|
|
41
|
-
// context.closePath();
|
|
42
|
-
// context.fill();
|
|
43
|
-
|
|
44
|
-
// if (data.selected) {
|
|
45
|
-
// context.strokeStyle = "#F00";
|
|
46
|
-
// context.lineWidth = 2;
|
|
47
|
-
// }
|
|
48
|
-
// context.stroke();
|
|
49
|
-
// } else {
|
|
50
|
-
var radius = nodeSize + PADDING;
|
|
51
|
-
// context.fillRect(data.x - radius, data.y - radius, radius * 2, radius * 2);
|
|
52
|
-
context.lineWidth = 1;
|
|
53
|
-
context.strokeStyle = "#F00";
|
|
54
|
-
if (data.selected) {
|
|
55
|
-
context.lineWidth = 3;
|
|
56
|
-
}
|
|
57
|
-
context.strokeRect(data.x - radius, data.y - radius, radius * 2, radius * 2);
|
|
58
|
-
// }
|
|
59
|
-
|
|
60
|
-
context.shadowOffsetX = 0;
|
|
61
|
-
context.shadowOffsetY = 0;
|
|
62
|
-
context.shadowBlur = 0;
|
|
63
|
-
context.lineWidth = 0;
|
|
64
|
-
context.strokeStyle = "";
|
|
65
|
-
drawLabel.drawNodeLabel(context, data, settings);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
exports.drawNodeHover = drawNodeHover;
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/* istanbul ignore file */
|
|
4
|
-
|
|
5
|
-
function drawNodeLabel(context, data, settings) {
|
|
6
|
-
var _ref, _data$labelColor;
|
|
7
|
-
var nodeSize = data.size;
|
|
8
|
-
var size = settings.labelSize;
|
|
9
|
-
var font = settings.labelFont;
|
|
10
|
-
var weight = settings.labelWeight;
|
|
11
|
-
// use node color or default node color
|
|
12
|
-
var bg = settings.defaultNodeColor || "#fff";
|
|
13
|
-
// use label color or default label color
|
|
14
|
-
var color = (_ref = (_data$labelColor = data.labelColor) !== null && _data$labelColor !== void 0 ? _data$labelColor : settings.labelColor.color) !== null && _ref !== void 0 ? _ref : "#000";
|
|
15
|
-
if (data.highlight) {
|
|
16
|
-
var _data$highlightColor, _data$color;
|
|
17
|
-
// Then we draw the label background
|
|
18
|
-
context.strokeStyle = (_data$highlightColor = data.highlightColor) !== null && _data$highlightColor !== void 0 ? _data$highlightColor : "#44BD87";
|
|
19
|
-
context.lineWidth = 1;
|
|
20
|
-
context.shadowOffsetX = 0;
|
|
21
|
-
context.shadowOffsetY = 0;
|
|
22
|
-
context.shadowBlur = 48;
|
|
23
|
-
context.shadowColor = (_data$color = data.color) !== null && _data$color !== void 0 ? _data$color : "#44BD87";
|
|
24
|
-
var PADDING = 2;
|
|
25
|
-
|
|
26
|
-
// if (typeof data.label === "string") {
|
|
27
|
-
// const textWidth = context.measureText(data.label).width;
|
|
28
|
-
// const boxWidth = Math.round(textWidth + 5);
|
|
29
|
-
// const boxHeight = Math.round(size + 2 * PADDING);
|
|
30
|
-
// const radius = Math.max(nodeSize, size / 2) + PADDING;
|
|
31
|
-
|
|
32
|
-
// context.beginPath();
|
|
33
|
-
// context.moveTo(data.x + radius, data.y + boxHeight / 2);
|
|
34
|
-
// context.lineTo(data.x + radius + boxWidth, data.y + boxHeight / 2);
|
|
35
|
-
// context.lineTo(data.x + radius + boxWidth, data.y - boxHeight / 2);
|
|
36
|
-
// context.lineTo(data.x + radius, data.y - boxHeight / 2);
|
|
37
|
-
// context.lineTo(data.x + radius, data.y - radius);
|
|
38
|
-
// context.lineTo(data.x - radius, data.y - radius);
|
|
39
|
-
// context.lineTo(data.x - radius, data.y + radius);
|
|
40
|
-
// context.lineTo(data.x + radius, data.y + radius);
|
|
41
|
-
// context.lineTo(data.x + radius, data.y + boxHeight / 2);
|
|
42
|
-
// context.closePath();
|
|
43
|
-
// context.stroke();
|
|
44
|
-
// } else {
|
|
45
|
-
var radius = nodeSize + PADDING;
|
|
46
|
-
context.strokeRect(data.x - radius, data.y - radius, radius * 2, radius * 2);
|
|
47
|
-
// }
|
|
48
|
-
}
|
|
49
|
-
context.shadowColor = "transparent";
|
|
50
|
-
context.shadowBlur = 0;
|
|
51
|
-
if (data.selected) {
|
|
52
|
-
// Then we draw the label background
|
|
53
|
-
context.strokeStyle = "#f00";
|
|
54
|
-
context.lineWidth = 2;
|
|
55
|
-
context.shadowOffsetX = 0;
|
|
56
|
-
context.shadowOffsetY = 0;
|
|
57
|
-
context.shadowBlur = 0;
|
|
58
|
-
var _PADDING = data.selected ? 4 : 2;
|
|
59
|
-
|
|
60
|
-
// if (typeof data.label === "string") {
|
|
61
|
-
// const textWidth = context.measureText(data.label).width;
|
|
62
|
-
// const boxWidth = Math.round(textWidth + 5);
|
|
63
|
-
// const boxHeight = Math.round(size + 2 * PADDING);
|
|
64
|
-
// const radius = Math.max(nodeSize, size / 2) + PADDING;
|
|
65
|
-
|
|
66
|
-
// context.beginPath();
|
|
67
|
-
// context.moveTo(data.x + radius, data.y + boxHeight / 2);
|
|
68
|
-
// context.lineTo(data.x + radius + boxWidth, data.y + boxHeight / 2);
|
|
69
|
-
// context.lineTo(data.x + radius + boxWidth, data.y - boxHeight / 2);
|
|
70
|
-
// context.lineTo(data.x + radius, data.y - boxHeight / 2);
|
|
71
|
-
// context.lineTo(data.x + radius, data.y - radius);
|
|
72
|
-
// context.lineTo(data.x - radius, data.y - radius);
|
|
73
|
-
// context.lineTo(data.x - radius, data.y + radius);
|
|
74
|
-
// context.lineTo(data.x + radius, data.y + radius);
|
|
75
|
-
// context.lineTo(data.x + radius, data.y + boxHeight / 2);
|
|
76
|
-
// context.closePath();
|
|
77
|
-
// context.stroke();
|
|
78
|
-
// } else {
|
|
79
|
-
var _radius = nodeSize + _PADDING;
|
|
80
|
-
context.strokeRect(data.x - _radius, data.y - _radius, _radius * 2, _radius * 2);
|
|
81
|
-
// }
|
|
82
|
-
}
|
|
83
|
-
if (data.isGroup) {
|
|
84
|
-
var _context$canvas$paren;
|
|
85
|
-
var container = (_context$canvas$paren = context.canvas.parentElement) === null || _context$canvas$paren === void 0 || (_context$canvas$paren = _context$canvas$paren.parentElement) === null || _context$canvas$paren === void 0 ? void 0 : _context$canvas$paren.querySelector(".sigma-groupHandles");
|
|
86
|
-
var handle = container.querySelector("[data-id=\"".concat(data.id, "\"]"));
|
|
87
|
-
if (!handle) {
|
|
88
|
-
handle = document.createElement("div");
|
|
89
|
-
handle.className = "sigma-groupHandle";
|
|
90
|
-
handle.dataset.id = data.id;
|
|
91
|
-
container.appendChild(handle);
|
|
92
|
-
}
|
|
93
|
-
handle.innerText = data.expanded ? "−" : "+";
|
|
94
|
-
handle.style.transform = "translate(-50%, -50%)";
|
|
95
|
-
handle.style.left = "".concat(data.x, "px");
|
|
96
|
-
handle.style.top = "".concat(data.y + nodeSize, "px");
|
|
97
|
-
}
|
|
98
|
-
if (!data.label || data.opacity < 1) return;
|
|
99
|
-
var textWidth = context.measureText(data.label).width;
|
|
100
|
-
context.fillStyle = bg;
|
|
101
|
-
context.fillRect(data.x - textWidth / 2, data.y + nodeSize * 1.25, textWidth, size + 2);
|
|
102
|
-
context.fillStyle = color;
|
|
103
|
-
context.font = "".concat(weight, " ").concat(size, "px ").concat(font);
|
|
104
|
-
context.fillText(data.label, data.x - textWidth / 2, data.y + size + nodeSize * 1.25);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
exports.drawNodeLabel = drawNodeLabel;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/* istanbul ignore file */
|
|
4
|
-
|
|
5
|
-
// language=GLSL
|
|
6
|
-
var SHADER_SOURCE = /* glsl */"\nprecision highp float;\n\nvarying vec4 v_color;\nvarying vec4 v_stroke;\nvarying vec2 v_diffVector;\nvarying float v_border;\nvarying float v_segmentAngle;\nvarying vec4 v_colors_0;\nvarying vec4 v_colors_1;\nvarying vec4 v_colors_2;\nvarying vec4 v_colors_3;\nvarying vec4 v_colors_4;\nvarying vec4 v_colors_5;\nvarying vec4 v_colors_6;\n\nuniform float u_sizeRatio;\nuniform float u_correctionRatio;\n\nvoid main(void) {\n float border = u_correctionRatio * 2.0;\n float dist = length(v_diffVector) + border;\n\n float angle = atan(v_diffVector.y / v_diffVector.x);\n if (v_diffVector.x < 0.0 && v_diffVector.y < 0.0) angle += ".concat(Math.PI, ";\n else if (v_diffVector.x < 0.0) angle += ").concat(Math.PI, ";\n else if (v_diffVector.y < 0.0) angle += ").concat(2 * Math.PI, ";\n\n #ifdef PICKING_MODE\n gl_FragColor = v_color;\n #else\n vec4 color = v_color;\n vec4 piecolor = vec4(0.0);\n float pieSize = 4.0 * u_correctionRatio / u_sizeRatio * 4.0;\n \n if(v_segmentAngle > 0.0) {\n float segment = angle / v_segmentAngle;\n if(segment >= 0.0) { piecolor = v_colors_0; }\n if(segment >= 1.0) { piecolor = v_colors_1; }\n if(segment >= 2.0) { piecolor = v_colors_2; }\n if(segment >= 3.0) { piecolor = v_colors_3; }\n if(segment >= 4.0) { piecolor = v_colors_4; }\n if(segment >= 5.0) { piecolor = v_colors_5; }\n if(segment >= 6.0) { piecolor = v_colors_6; }\n }\n if(v_segmentAngle > 0.0) {\n float pieCheck = v_border - (pieSize / 2.0);\n if (v_diffVector.x > pieCheck || v_diffVector.y > pieCheck ||\n v_diffVector.x < -pieCheck || v_diffVector.y < -pieCheck) {\n color = piecolor;\n }\n }\n if(v_border > 0.0) {\n if (v_diffVector.x > v_border || v_diffVector.y > v_border ||\n v_diffVector.x < -v_border || v_diffVector.y < -v_border) {\n color = v_stroke;\n }\n }\n gl_FragColor = color;\n #endif\n}\n");
|
|
7
|
-
|
|
8
|
-
module.exports = SHADER_SOURCE;
|