@react-fabric/graph 1.0.0-beta.58
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +10 -0
- package/css/styles.css +56 -0
- package/dist/cjs/_virtual/_commonjs-dynamic-modules.js +7 -0
- package/dist/cjs/_virtual/_commonjsHelpers.js +7 -0
- package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__auto__createBase64WorkerFactory.js +14 -0
- package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__auto__isNodeJS.js +9 -0
- package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js +35 -0
- package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__node__WorkerClass.js +11 -0
- package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__node__createBase64WorkerFactory.js +20 -0
- package/dist/cjs/_virtual/elk-worker.js +8 -0
- package/dist/cjs/_virtual/elk.bundled.js +5 -0
- package/dist/cjs/node_modules/elkjs/lib/elk.bundled.js +6667 -0
- package/dist/cjs/packages/graph/src/components/Context.js +108 -0
- package/dist/cjs/packages/graph/src/components/ContextMenu.js +134 -0
- package/dist/cjs/packages/graph/src/components/Tools.js +127 -0
- package/dist/cjs/packages/graph/src/components/Viewer.js +57 -0
- package/dist/cjs/packages/graph/src/constants/index.js +16 -0
- package/dist/cjs/packages/graph/src/graph/index.js +425 -0
- package/dist/cjs/packages/graph/src/hooks/sigmaDragSelect.js +169 -0
- package/dist/cjs/packages/graph/src/hooks/sigmaHilighter.js +83 -0
- package/dist/cjs/packages/graph/src/hooks/sigmaMouseActions.js +145 -0
- package/dist/cjs/packages/graph/src/hooks/useGraphology.js +41 -0
- package/dist/cjs/packages/graph/src/hooks/useSigma.js +112 -0
- package/dist/cjs/packages/graph/src/index.js +33 -0
- package/dist/cjs/packages/graph/src/programs/arrow-head/frag.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/arrow-head/index.js +142 -0
- package/dist/cjs/packages/graph/src/programs/arrow-head/vert.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/edge-curve/drawLabel.js +136 -0
- package/dist/cjs/packages/graph/src/programs/edge-curve/frag.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/edge-curve/index.js +157 -0
- package/dist/cjs/packages/graph/src/programs/edge-curve/vert.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/edge-line/drawLabel.js +70 -0
- package/dist/cjs/packages/graph/src/programs/edge-line/frag.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/edge-line/index.js +166 -0
- package/dist/cjs/packages/graph/src/programs/edge-line/vert.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/node-badge/factory.js +249 -0
- package/dist/cjs/packages/graph/src/programs/node-badge/frag.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/node-badge/index.js +33 -0
- package/dist/cjs/packages/graph/src/programs/node-badge/texture.js +455 -0
- package/dist/cjs/packages/graph/src/programs/node-badge/vert.glsl.js +19 -0
- package/dist/cjs/packages/graph/src/programs/node-circle/base/drawHover.js +70 -0
- package/dist/cjs/packages/graph/src/programs/node-circle/base/drawLabel.js +112 -0
- package/dist/cjs/packages/graph/src/programs/node-circle/base/frag.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/node-circle/base/index.js +136 -0
- package/dist/cjs/packages/graph/src/programs/node-circle/base/vert.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/node-circle/index.js +15 -0
- package/dist/cjs/packages/graph/src/programs/node-image/factory.js +223 -0
- package/dist/cjs/packages/graph/src/programs/node-image/frag.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/node-image/index.js +14 -0
- package/dist/cjs/packages/graph/src/programs/node-image/texture.js +472 -0
- package/dist/cjs/packages/graph/src/programs/node-image/vert.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/node-rect/base/drawHover.js +67 -0
- package/dist/cjs/packages/graph/src/programs/node-rect/base/drawLabel.js +106 -0
- package/dist/cjs/packages/graph/src/programs/node-rect/base/frag.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/node-rect/base/index.js +135 -0
- package/dist/cjs/packages/graph/src/programs/node-rect/base/vert.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/node-rect/index.js +15 -0
- package/dist/esm/_virtual/_commonjs-dynamic-modules.js +7 -0
- package/dist/esm/_virtual/_commonjsHelpers.js +7 -0
- package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__auto__createBase64WorkerFactory.js +14 -0
- package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__auto__isNodeJS.js +9 -0
- package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js +34 -0
- package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__node__WorkerClass.js +13 -0
- package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__node__createBase64WorkerFactory.js +20 -0
- package/dist/esm/_virtual/elk-worker.js +8 -0
- package/dist/esm/_virtual/elk.bundled.js +5 -0
- package/dist/esm/node_modules/elkjs/lib/elk.bundled.js +6667 -0
- package/dist/esm/packages/graph/src/components/Context.js +107 -0
- package/dist/esm/packages/graph/src/components/ContextMenu.js +134 -0
- package/dist/esm/packages/graph/src/components/Tools.js +127 -0
- package/dist/esm/packages/graph/src/components/Viewer.js +57 -0
- package/dist/esm/packages/graph/src/constants/index.js +16 -0
- package/dist/esm/packages/graph/src/graph/index.js +425 -0
- package/dist/esm/packages/graph/src/hooks/sigmaDragSelect.js +169 -0
- package/dist/esm/packages/graph/src/hooks/sigmaHilighter.js +83 -0
- package/dist/esm/packages/graph/src/hooks/sigmaMouseActions.js +145 -0
- package/dist/esm/packages/graph/src/hooks/useGraphology.js +41 -0
- package/dist/esm/packages/graph/src/hooks/useSigma.js +112 -0
- package/dist/esm/packages/graph/src/index.js +30 -0
- package/dist/esm/packages/graph/src/programs/arrow-head/frag.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/arrow-head/index.js +141 -0
- package/dist/esm/packages/graph/src/programs/arrow-head/vert.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/edge-curve/drawLabel.js +136 -0
- package/dist/esm/packages/graph/src/programs/edge-curve/frag.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/edge-curve/index.js +156 -0
- package/dist/esm/packages/graph/src/programs/edge-curve/vert.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/edge-line/drawLabel.js +70 -0
- package/dist/esm/packages/graph/src/programs/edge-line/frag.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/edge-line/index.js +166 -0
- package/dist/esm/packages/graph/src/programs/edge-line/vert.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/node-badge/factory.js +249 -0
- package/dist/esm/packages/graph/src/programs/node-badge/frag.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/node-badge/index.js +32 -0
- package/dist/esm/packages/graph/src/programs/node-badge/texture.js +445 -0
- package/dist/esm/packages/graph/src/programs/node-badge/vert.glsl.js +19 -0
- package/dist/esm/packages/graph/src/programs/node-circle/base/drawHover.js +70 -0
- package/dist/esm/packages/graph/src/programs/node-circle/base/drawLabel.js +112 -0
- package/dist/esm/packages/graph/src/programs/node-circle/base/frag.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/node-circle/base/index.js +136 -0
- package/dist/esm/packages/graph/src/programs/node-circle/base/vert.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/node-circle/index.js +15 -0
- package/dist/esm/packages/graph/src/programs/node-image/factory.js +223 -0
- package/dist/esm/packages/graph/src/programs/node-image/frag.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/node-image/index.js +13 -0
- package/dist/esm/packages/graph/src/programs/node-image/texture.js +462 -0
- package/dist/esm/packages/graph/src/programs/node-image/vert.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/node-rect/base/drawHover.js +67 -0
- package/dist/esm/packages/graph/src/programs/node-rect/base/drawLabel.js +106 -0
- package/dist/esm/packages/graph/src/programs/node-rect/base/frag.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/node-rect/base/index.js +135 -0
- package/dist/esm/packages/graph/src/programs/node-rect/base/vert.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/node-rect/index.js +15 -0
- package/dist/types/components/Context.d.ts +18 -0
- package/dist/types/components/ContextMenu.d.ts +1 -0
- package/dist/types/components/Tools.d.ts +1 -0
- package/dist/types/components/Viewer.d.ts +2 -0
- package/dist/types/constants/index.d.ts +12 -0
- package/dist/types/graph/index.d.ts +30 -0
- package/dist/types/graph/layout.worker.d.ts +1 -0
- package/dist/types/hooks/sigmaDragSelect.d.ts +8 -0
- package/dist/types/hooks/sigmaHilighter.d.ts +3 -0
- package/dist/types/hooks/sigmaMouseActions.d.ts +3 -0
- package/dist/types/hooks/useGraphology.d.ts +6 -0
- package/dist/types/hooks/useSigma.d.ts +8 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/programs/arrow-head/frag.glsl.d.ts +2 -0
- package/dist/types/programs/arrow-head/index.d.ts +9 -0
- package/dist/types/programs/arrow-head/vert.glsl.d.ts +2 -0
- package/dist/types/programs/edge-curve/drawLabel.d.ts +6 -0
- package/dist/types/programs/edge-curve/frag.glsl.d.ts +2 -0
- package/dist/types/programs/edge-curve/index.d.ts +43 -0
- package/dist/types/programs/edge-curve/vert.glsl.d.ts +2 -0
- package/dist/types/programs/edge-line/drawLabel.d.ts +5 -0
- package/dist/types/programs/edge-line/frag.glsl.d.ts +2 -0
- package/dist/types/programs/edge-line/index.d.ts +11 -0
- package/dist/types/programs/edge-line/vert.glsl.d.ts +2 -0
- package/dist/types/programs/node-badge/factory.d.ts +27 -0
- package/dist/types/programs/node-badge/frag.glsl.d.ts +2 -0
- package/dist/types/programs/node-badge/index.d.ts +5 -0
- package/dist/types/programs/node-badge/texture.d.ts +102 -0
- package/dist/types/programs/node-badge/vert.glsl.d.ts +2 -0
- package/dist/types/programs/node-circle/base/drawHover.d.ts +8 -0
- package/dist/types/programs/node-circle/base/drawLabel.d.ts +8 -0
- package/dist/types/programs/node-circle/base/frag.glsl.d.ts +2 -0
- package/dist/types/programs/node-circle/base/index.d.ts +37 -0
- package/dist/types/programs/node-circle/base/vert.glsl.d.ts +2 -0
- package/dist/types/programs/node-circle/index.d.ts +11 -0
- package/dist/types/programs/node-image/factory.d.ts +25 -0
- package/dist/types/programs/node-image/frag.glsl.d.ts +2 -0
- package/dist/types/programs/node-image/index.d.ts +5 -0
- package/dist/types/programs/node-image/texture.d.ts +102 -0
- package/dist/types/programs/node-image/vert.glsl.d.ts +2 -0
- package/dist/types/programs/node-rect/base/drawHover.d.ts +8 -0
- package/dist/types/programs/node-rect/base/drawLabel.d.ts +8 -0
- package/dist/types/programs/node-rect/base/frag.glsl.d.ts +2 -0
- package/dist/types/programs/node-rect/base/index.d.ts +34 -0
- package/dist/types/programs/node-rect/base/vert.glsl.d.ts +2 -0
- package/dist/types/programs/node-rect/index.d.ts +11 -0
- package/dist/types/types/index.d.ts +189 -0
- package/package.json +69 -0
- package/src/components/Context.tsx +135 -0
- package/src/components/ContextMenu.tsx +156 -0
- package/src/components/Tools.tsx +107 -0
- package/src/components/Viewer.tsx +75 -0
- package/src/constants/index.ts +22 -0
- package/src/graph/index.ts +428 -0
- package/src/graph/layout.worker.ts +42 -0
- package/src/hooks/sigmaDragSelect.ts +219 -0
- package/src/hooks/sigmaHilighter.ts +107 -0
- package/src/hooks/sigmaMouseActions.ts +153 -0
- package/src/hooks/useGraphology.ts +31 -0
- package/src/hooks/useSigma.ts +118 -0
- package/src/index.ts +34 -0
- package/src/programs/arrow-head/frag.glsl.ts +18 -0
- package/src/programs/arrow-head/index.ts +148 -0
- package/src/programs/arrow-head/vert.glsl.ts +75 -0
- package/src/programs/edge-curve/drawLabel.ts +166 -0
- package/src/programs/edge-curve/frag.glsl.ts +86 -0
- package/src/programs/edge-curve/index.ts +158 -0
- package/src/programs/edge-curve/vert.glsl.ts +110 -0
- package/src/programs/edge-line/drawLabel.ts +113 -0
- package/src/programs/edge-line/frag.glsl.ts +34 -0
- package/src/programs/edge-line/index.ts +165 -0
- package/src/programs/edge-line/vert.glsl.ts +104 -0
- package/src/programs/node-badge/factory.ts +327 -0
- package/src/programs/node-badge/frag.glsl.ts +79 -0
- package/src/programs/node-badge/index.ts +35 -0
- package/src/programs/node-badge/texture.ts +425 -0
- package/src/programs/node-badge/vert.glsl.ts +99 -0
- package/src/programs/node-circle/base/drawHover.ts +80 -0
- package/src/programs/node-circle/base/drawLabel.ts +145 -0
- package/src/programs/node-circle/base/frag.glsl.ts +72 -0
- package/src/programs/node-circle/base/index.ts +102 -0
- package/src/programs/node-circle/base/vert.glsl.ts +83 -0
- package/src/programs/node-circle/index.ts +19 -0
- package/src/programs/node-image/factory.ts +301 -0
- package/src/programs/node-image/frag.glsl.ts +97 -0
- package/src/programs/node-image/index.ts +7 -0
- package/src/programs/node-image/texture.ts +435 -0
- package/src/programs/node-image/vert.glsl.ts +60 -0
- package/src/programs/node-rect/base/drawHover.ts +77 -0
- package/src/programs/node-rect/base/drawLabel.ts +149 -0
- package/src/programs/node-rect/base/frag.glsl.ts +67 -0
- package/src/programs/node-rect/base/index.ts +109 -0
- package/src/programs/node-rect/base/vert.glsl.ts +87 -0
- package/src/programs/node-rect/index.ts +19 -0
- package/src/types/index.ts +210 -0
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
4
|
+
import _createClass from '@babel/runtime/helpers/createClass';
|
|
5
|
+
import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
|
|
6
|
+
import _get from '@babel/runtime/helpers/get';
|
|
7
|
+
import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
|
|
8
|
+
import _inherits from '@babel/runtime/helpers/inherits';
|
|
9
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
10
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
11
|
+
import { NodeProgram } from 'sigma/rendering';
|
|
12
|
+
import { floatColor } from 'sigma/utils';
|
|
13
|
+
import SHADER_SOURCE from './frag.glsl.js';
|
|
14
|
+
import { DEFAULT_TEXTURE_MANAGER_OPTIONS, TextureManager } from './texture.js';
|
|
15
|
+
import VERTEX_SHADER_SOURCE from './vert.glsl.js';
|
|
16
|
+
|
|
17
|
+
var _excluded = ["drawHover", "drawLabel", "drawingMode", "keepWithinCircle", "padding", "colorAttribute", "badgePosition"];
|
|
18
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
19
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
20
|
+
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; }
|
|
21
|
+
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; }
|
|
22
|
+
var ICON_MAP = {
|
|
23
|
+
star: "M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z",
|
|
24
|
+
exclaim: "M13,13H11V7H13M13,17H11V15H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z",
|
|
25
|
+
thumbUp: "M23,10C23,8.89 22.1,8 21,8H14.68L15.64,3.43C15.66,3.33 15.67,3.22 15.67,3.11C15.67,2.7 15.5,2.32 15.23,2.05L14.17,1L7.59,7.58C7.22,7.95 7,8.45 7,9V19A2,2 0 0,0 9,21H18C18.83,21 19.54,20.5 19.84,19.78L22.86,12.73C22.95,12.5 23,12.26 23,12V10M1,21H5V9H1V21Z",
|
|
26
|
+
thumbDown: "M19,15H23V3H19M15,3H6C5.17,3 4.46,3.5 4.16,4.22L1.14,11.27C1.05,11.5 1,11.74 1,12V14A2,2 0 0,0 3,16H9.31L8.36,20.57C8.34,20.67 8.33,20.77 8.33,20.88C8.33,21.3 8.5,21.67 8.77,21.94L9.83,23L16.41,16.41C16.78,16.05 17,15.55 17,15V5C17,3.89 16.1,3 15,3Z"
|
|
27
|
+
};
|
|
28
|
+
var POSITION = {
|
|
29
|
+
"top-left": 0,
|
|
30
|
+
"top-right": 1,
|
|
31
|
+
"bottom-left": 2,
|
|
32
|
+
"bottom-right": 3,
|
|
33
|
+
top: 4,
|
|
34
|
+
left: 5,
|
|
35
|
+
right: 6,
|
|
36
|
+
bottom: 7
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/* istanbul ignore file */
|
|
40
|
+
|
|
41
|
+
var _WebGLRenderingContex = WebGLRenderingContext,
|
|
42
|
+
UNSIGNED_BYTE = _WebGLRenderingContex.UNSIGNED_BYTE,
|
|
43
|
+
FLOAT = _WebGLRenderingContex.FLOAT;
|
|
44
|
+
var DEFAULT_CREATE_NODE_IMAGE_OPTIONS = _objectSpread(_objectSpread({}, DEFAULT_TEXTURE_MANAGER_OPTIONS), {}, {
|
|
45
|
+
drawingMode: "background",
|
|
46
|
+
keepWithinCircle: true,
|
|
47
|
+
drawLabel: undefined,
|
|
48
|
+
drawHover: undefined,
|
|
49
|
+
padding: 0,
|
|
50
|
+
colorAttribute: "color"
|
|
51
|
+
});
|
|
52
|
+
var UNIFORMS = ["u_sizeRatio", "u_correctionRatio", "u_cameraAngle", "u_percentagePadding", "u_matrix", "u_colorizeImages", "u_keepWithinCircle", "u_atlas"];
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* To share the texture between the program instances of the graph and the
|
|
56
|
+
* hovered nodes (to prevent some flickering, mostly), this program must be
|
|
57
|
+
* "built" for each sigma instance:
|
|
58
|
+
*/
|
|
59
|
+
function getNodeImageProgram(options) {
|
|
60
|
+
var _NodeImageProgram;
|
|
61
|
+
var _badgePosition$DEFAUL = _objectSpread(_objectSpread(_objectSpread({
|
|
62
|
+
badgePosition: "top-right"
|
|
63
|
+
}, DEFAULT_CREATE_NODE_IMAGE_OPTIONS), options !== null && options !== void 0 ? options : {}), {}, {
|
|
64
|
+
drawLabel: undefined,
|
|
65
|
+
drawHover: undefined
|
|
66
|
+
}),
|
|
67
|
+
drawHover = _badgePosition$DEFAUL.drawHover,
|
|
68
|
+
drawLabel = _badgePosition$DEFAUL.drawLabel;
|
|
69
|
+
_badgePosition$DEFAUL.drawingMode;
|
|
70
|
+
var keepWithinCircle = _badgePosition$DEFAUL.keepWithinCircle,
|
|
71
|
+
padding = _badgePosition$DEFAUL.padding;
|
|
72
|
+
_badgePosition$DEFAUL.colorAttribute;
|
|
73
|
+
var badgePosition = _badgePosition$DEFAUL.badgePosition,
|
|
74
|
+
textureManagerOptions = _objectWithoutProperties(_badgePosition$DEFAUL, _excluded);
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* This texture manager is shared between all instances of this exact class,
|
|
78
|
+
* returned by this call to getNodeProgramImage. This means that remounting
|
|
79
|
+
* the sigma instance will not reload the images and regenerate the texture.
|
|
80
|
+
*/
|
|
81
|
+
var textureManager = new TextureManager(textureManagerOptions);
|
|
82
|
+
return _NodeImageProgram = /*#__PURE__*/function (_NodeProgram) {
|
|
83
|
+
function NodeImageProgram(gl, pickingBuffer, renderer) {
|
|
84
|
+
var _this;
|
|
85
|
+
_classCallCheck(this, NodeImageProgram);
|
|
86
|
+
_this = _callSuper(this, NodeImageProgram, [gl, pickingBuffer, renderer]);
|
|
87
|
+
_this.textureManagerCallback = function () {
|
|
88
|
+
if (!_this) return;
|
|
89
|
+
if (_this.bindTexture) {
|
|
90
|
+
_this.atlas = textureManager.getAtlas();
|
|
91
|
+
_this.textureImage = textureManager.getTexture();
|
|
92
|
+
_this.bindTexture();
|
|
93
|
+
if (_this.latestRenderParams) _this.render(_this.latestRenderParams);
|
|
94
|
+
}
|
|
95
|
+
if (renderer !== null && renderer !== void 0 && renderer.refresh) renderer.refresh();
|
|
96
|
+
};
|
|
97
|
+
textureManager.on(TextureManager.NEW_TEXTURE_EVENT, _this.textureManagerCallback);
|
|
98
|
+
_this.atlas = textureManager.getAtlas();
|
|
99
|
+
_this.textureImage = textureManager.getTexture();
|
|
100
|
+
_this.texture = gl.createTexture();
|
|
101
|
+
_this.bindTexture();
|
|
102
|
+
return _this;
|
|
103
|
+
}
|
|
104
|
+
_inherits(NodeImageProgram, _NodeProgram);
|
|
105
|
+
return _createClass(NodeImageProgram, [{
|
|
106
|
+
key: "getDefinition",
|
|
107
|
+
value: function getDefinition() {
|
|
108
|
+
return {
|
|
109
|
+
VERTICES: 4,
|
|
110
|
+
VERTEX_SHADER_SOURCE: VERTEX_SHADER_SOURCE,
|
|
111
|
+
FRAGMENT_SHADER_SOURCE: SHADER_SOURCE,
|
|
112
|
+
METHOD: WebGLRenderingContext.TRIANGLE_FAN,
|
|
113
|
+
UNIFORMS: UNIFORMS,
|
|
114
|
+
ATTRIBUTES: [{
|
|
115
|
+
name: "a_position",
|
|
116
|
+
size: 2,
|
|
117
|
+
type: FLOAT
|
|
118
|
+
}, {
|
|
119
|
+
name: "a_size",
|
|
120
|
+
size: 1,
|
|
121
|
+
type: FLOAT
|
|
122
|
+
}, {
|
|
123
|
+
name: "a_opacity",
|
|
124
|
+
size: 1,
|
|
125
|
+
type: FLOAT
|
|
126
|
+
}, {
|
|
127
|
+
name: "a_circle",
|
|
128
|
+
size: 1,
|
|
129
|
+
type: FLOAT
|
|
130
|
+
}, {
|
|
131
|
+
name: "a_placement",
|
|
132
|
+
size: 1,
|
|
133
|
+
type: FLOAT
|
|
134
|
+
}, {
|
|
135
|
+
name: "a_fill",
|
|
136
|
+
size: 4,
|
|
137
|
+
type: UNSIGNED_BYTE,
|
|
138
|
+
normalized: true
|
|
139
|
+
}, {
|
|
140
|
+
name: "a_color",
|
|
141
|
+
size: 4,
|
|
142
|
+
type: UNSIGNED_BYTE,
|
|
143
|
+
normalized: true
|
|
144
|
+
}, {
|
|
145
|
+
name: "a_id",
|
|
146
|
+
size: 4,
|
|
147
|
+
type: UNSIGNED_BYTE,
|
|
148
|
+
normalized: true
|
|
149
|
+
}, {
|
|
150
|
+
name: "a_texture",
|
|
151
|
+
size: 4,
|
|
152
|
+
type: FLOAT
|
|
153
|
+
}],
|
|
154
|
+
CONSTANT_ATTRIBUTES: [{
|
|
155
|
+
name: "a_angle",
|
|
156
|
+
size: 1,
|
|
157
|
+
type: FLOAT
|
|
158
|
+
}],
|
|
159
|
+
CONSTANT_DATA: [[NodeImageProgram.ANGLE_1], [NodeImageProgram.ANGLE_2], [NodeImageProgram.ANGLE_3], [NodeImageProgram.ANGLE_4]]
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
}, {
|
|
163
|
+
key: "kill",
|
|
164
|
+
value: function kill() {
|
|
165
|
+
textureManager.off(TextureManager.NEW_TEXTURE_EVENT, this.textureManagerCallback);
|
|
166
|
+
}
|
|
167
|
+
}, {
|
|
168
|
+
key: "bindTexture",
|
|
169
|
+
value: function bindTexture() {
|
|
170
|
+
var gl = this.normalProgram.gl;
|
|
171
|
+
gl.bindTexture(gl.TEXTURE_2D, this.texture);
|
|
172
|
+
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this.textureImage);
|
|
173
|
+
gl.generateMipmap(gl.TEXTURE_2D);
|
|
174
|
+
}
|
|
175
|
+
}, {
|
|
176
|
+
key: "renderProgram",
|
|
177
|
+
value: function renderProgram(params, programInfo) {
|
|
178
|
+
if (!programInfo.isPicking) {
|
|
179
|
+
// Rebind texture (since it's been just unbound by picking):
|
|
180
|
+
var gl = programInfo.gl;
|
|
181
|
+
gl.bindTexture(gl.TEXTURE_2D, this.texture);
|
|
182
|
+
}
|
|
183
|
+
_get(_getPrototypeOf(NodeImageProgram.prototype), "renderProgram", this).call(this, params, programInfo);
|
|
184
|
+
}
|
|
185
|
+
}, {
|
|
186
|
+
key: "processVisibleItem",
|
|
187
|
+
value: function processVisibleItem(nodeIndex, startIndex, data) {
|
|
188
|
+
var _data$badge, _badge$color, _ref, _badge$iconColor, _ICON_MAP, _data$opacity, _POSITION$badgePositi;
|
|
189
|
+
var array = this.array;
|
|
190
|
+
var badge = (_data$badge = data.badge) === null || _data$badge === void 0 ? void 0 : _data$badge.find(function (b) {
|
|
191
|
+
return b.position === badgePosition;
|
|
192
|
+
});
|
|
193
|
+
var fill = floatColor((_badge$color = badge === null || badge === void 0 ? void 0 : badge.color) !== null && _badge$color !== void 0 ? _badge$color : "#00000000");
|
|
194
|
+
var color = floatColor((_ref = (_badge$iconColor = badge === null || badge === void 0 ? void 0 : badge.iconColor) !== null && _badge$iconColor !== void 0 ? _badge$iconColor : this.renderer.getSetting("labelColor").color) !== null && _ref !== void 0 ? _ref : "#000");
|
|
195
|
+
var imageSource = badge ? (_ICON_MAP = ICON_MAP[badge.type]) !== null && _ICON_MAP !== void 0 ? _ICON_MAP : badge.path : undefined;
|
|
196
|
+
var imagePosition = imageSource ? this.atlas[imageSource] : undefined;
|
|
197
|
+
if (typeof imageSource === "string" && !imagePosition) void textureManager.registerImage(imageSource);
|
|
198
|
+
array[startIndex++] = data.x;
|
|
199
|
+
array[startIndex++] = data.y;
|
|
200
|
+
array[startIndex++] = data.size;
|
|
201
|
+
array[startIndex++] = !imageSource ? 0 : (_data$opacity = data.opacity) !== null && _data$opacity !== void 0 ? _data$opacity : 1;
|
|
202
|
+
array[startIndex++] = keepWithinCircle ? 1 : 0;
|
|
203
|
+
array[startIndex++] = (_POSITION$badgePositi = POSITION[badgePosition]) !== null && _POSITION$badgePositi !== void 0 ? _POSITION$badgePositi : 0;
|
|
204
|
+
array[startIndex++] = fill;
|
|
205
|
+
array[startIndex++] = color;
|
|
206
|
+
array[startIndex++] = nodeIndex;
|
|
207
|
+
|
|
208
|
+
// Reference texture:
|
|
209
|
+
if (imagePosition) {
|
|
210
|
+
var _this$textureImage = this.textureImage,
|
|
211
|
+
width = _this$textureImage.width,
|
|
212
|
+
height = _this$textureImage.height;
|
|
213
|
+
array[startIndex++] = imagePosition.x / width;
|
|
214
|
+
array[startIndex++] = imagePosition.y / height;
|
|
215
|
+
array[startIndex++] = imagePosition.size / width;
|
|
216
|
+
array[startIndex++] = imagePosition.size / height;
|
|
217
|
+
} else {
|
|
218
|
+
array[startIndex++] = 0;
|
|
219
|
+
array[startIndex++] = 0;
|
|
220
|
+
array[startIndex++] = 0;
|
|
221
|
+
array[startIndex++] = 0;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}, {
|
|
225
|
+
key: "setUniforms",
|
|
226
|
+
value: function setUniforms(params, _ref2) {
|
|
227
|
+
var gl = _ref2.gl,
|
|
228
|
+
uniformLocations = _ref2.uniformLocations;
|
|
229
|
+
var u_sizeRatio = uniformLocations.u_sizeRatio,
|
|
230
|
+
u_correctionRatio = uniformLocations.u_correctionRatio,
|
|
231
|
+
u_matrix = uniformLocations.u_matrix,
|
|
232
|
+
u_atlas = uniformLocations.u_atlas,
|
|
233
|
+
u_keepWithinCircle = uniformLocations.u_keepWithinCircle,
|
|
234
|
+
u_cameraAngle = uniformLocations.u_cameraAngle,
|
|
235
|
+
u_percentagePadding = uniformLocations.u_percentagePadding;
|
|
236
|
+
this.latestRenderParams = params;
|
|
237
|
+
gl.uniform1f(u_correctionRatio, params.correctionRatio);
|
|
238
|
+
gl.uniform1f(u_sizeRatio, params.sizeRatio);
|
|
239
|
+
gl.uniform1f(u_cameraAngle, params.cameraAngle);
|
|
240
|
+
gl.uniform1f(u_percentagePadding, padding);
|
|
241
|
+
gl.uniformMatrix3fv(u_matrix, false, params.matrix);
|
|
242
|
+
gl.uniform1i(u_atlas, 0);
|
|
243
|
+
gl.uniform1i(u_keepWithinCircle, keepWithinCircle ? 1 : 0);
|
|
244
|
+
}
|
|
245
|
+
}]);
|
|
246
|
+
}(NodeProgram), _defineProperty(_NodeImageProgram, "ANGLE_1", 1 * Math.PI / 4), _defineProperty(_NodeImageProgram, "ANGLE_2", 3 * Math.PI / 4), _defineProperty(_NodeImageProgram, "ANGLE_3", 5 * Math.PI / 4), _defineProperty(_NodeImageProgram, "ANGLE_4", 7 * Math.PI / 4), _defineProperty(_NodeImageProgram, "drawLabel", drawLabel), _defineProperty(_NodeImageProgram, "drawHover", drawHover), _NodeImageProgram;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
export { getNodeImageProgram as default };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
/* istanbul ignore file */
|
|
4
|
+
|
|
5
|
+
// language=GLSL
|
|
6
|
+
var SHADER_SOURCE = /* glsl */"\nprecision highp float;\n\nvarying vec4 v_fill;\nvarying vec4 v_color;\nvarying vec4 v_texture;\nvarying vec2 v_diffVector;\nvarying float v_opacity;\nvarying float v_radius;\n\nuniform sampler2D u_atlas;\nuniform float u_correctionRatio;\nuniform float u_cameraAngle;\nuniform float u_percentagePadding;\nuniform bool u_keepWithinCircle;\nuniform bool u_shape;\n\nconst vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);\n\nconst float radius = 0.5;\n\nvoid main(void) {\n float border = 2.0 * u_correctionRatio;\n float dist = length(v_diffVector);\n vec4 color = v_fill;\n\n float c = cos(-u_cameraAngle);\n float s = sin(-u_cameraAngle);\n vec2 diffVector = mat2(c, s, -s, c) * (v_diffVector);\n\n // No antialiasing for picking mode:\n #ifdef PICKING_MODE\n border = 0.0;\n gl_FragColor = v_color;\n\n #else\n // First case: No image to display\n if (v_texture.w <= 0.0) {\n color = v_fill;\n }\n\n // Second case: Image loaded into the texture\n else {\n float paddingRatio = 1.0 + 2.0 * u_percentagePadding;\n float coef = 1.0;\n vec2 coordinateInTexture = diffVector * vec2(paddingRatio, -paddingRatio) / v_radius / 2.0 * coef + vec2(0.5, 0.5);\n vec4 texel = texture2D(u_atlas, (v_texture.xy + coordinateInTexture * v_texture.zw), -1.0);\n\n // Colorize all visible image pixels:\n color = mix(v_fill, v_color, texel.a);\n \n // Erase pixels \"in the padding\":\n if (abs(diffVector.x) > v_radius / paddingRatio || abs(diffVector.y) > v_radius / paddingRatio) {\n color = v_fill;\n }\n }\n\n // Crop in a circle when u_keepWithinCircle is truthy:\n if(v_opacity == 0.0) {\n gl_FragColor = transparent;\n }\n else if (dist - v_radius + border > border)\n gl_FragColor = transparent;\n else if (dist - v_radius + border > 0.0) {\n gl_FragColor = mix(v_fill, transparent, (dist - v_radius + border) / border);\n }\n else {\n gl_FragColor = mix(v_fill, color, v_opacity);\n }\n #endif\n \n\n}\n";
|
|
7
|
+
|
|
8
|
+
export { SHADER_SOURCE as default };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import getNodeImageProgram from './factory.js';
|
|
4
|
+
|
|
5
|
+
/* istanbul ignore file */
|
|
6
|
+
|
|
7
|
+
var NodeBadgeProgram = function NodeBadgeProgram(isCircle) {
|
|
8
|
+
return [getNodeImageProgram({
|
|
9
|
+
keepWithinCircle: isCircle,
|
|
10
|
+
badgePosition: "top-right"
|
|
11
|
+
}), getNodeImageProgram({
|
|
12
|
+
keepWithinCircle: isCircle,
|
|
13
|
+
badgePosition: "top-left"
|
|
14
|
+
}), getNodeImageProgram({
|
|
15
|
+
keepWithinCircle: isCircle,
|
|
16
|
+
badgePosition: "bottom-right"
|
|
17
|
+
}), getNodeImageProgram({
|
|
18
|
+
keepWithinCircle: isCircle,
|
|
19
|
+
badgePosition: "bottom-left"
|
|
20
|
+
}), getNodeImageProgram({
|
|
21
|
+
keepWithinCircle: isCircle,
|
|
22
|
+
badgePosition: "top"
|
|
23
|
+
}), getNodeImageProgram({
|
|
24
|
+
keepWithinCircle: isCircle,
|
|
25
|
+
badgePosition: "left"
|
|
26
|
+
}), getNodeImageProgram({
|
|
27
|
+
keepWithinCircle: isCircle,
|
|
28
|
+
badgePosition: "right"
|
|
29
|
+
})];
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export { NodeBadgeProgram, getNodeImageProgram as createNodeImageProgram };
|