@reddb-io/ui 0.1.1 → 0.2.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.
Files changed (59) hide show
  1. package/build/_app/immutable/assets/0.DQDLkSdR.css +1 -0
  2. package/build/_app/immutable/assets/Workspace.CvP5De7i.css +1 -0
  3. package/build/_app/immutable/chunks/65XjEwaF.js +367 -0
  4. package/build/_app/immutable/chunks/{Ov8N-vxt.js → BHBXmd1Y.js} +1 -1
  5. package/build/_app/immutable/chunks/BMc_qoms.js +973 -0
  6. package/build/_app/immutable/chunks/{ALqaDrNQ.js → C278awGv.js} +1 -1
  7. package/build/_app/immutable/chunks/CDKIdLnm.js +187 -0
  8. package/build/_app/immutable/chunks/{DXY_Rxa7.js → CXNPJgv1.js} +7 -7
  9. package/build/_app/immutable/chunks/{BMHKbvs8.js → CwxFwvow.js} +1 -1
  10. package/build/_app/immutable/chunks/{Bgso8cDH.js → DqvWKbSc.js} +1 -1
  11. package/build/_app/immutable/entry/app.CGfmRH-N.js +2 -0
  12. package/build/_app/immutable/entry/start._LhFJimm.js +1 -0
  13. package/build/_app/immutable/nodes/{0.CHPiFxDo.js → 0.BYhY6O5-.js} +1 -1
  14. package/build/_app/immutable/nodes/{1.BC_4YZ0h.js → 1.4XYGRMul.js} +1 -1
  15. package/build/_app/immutable/nodes/11.CAG5_cGP.js +1 -0
  16. package/build/_app/immutable/nodes/{10.B7DMKSNc.js → 12.DXZfNPNK.js} +5 -5
  17. package/build/_app/immutable/nodes/7.CAG5_cGP.js +1 -0
  18. package/build/_app/immutable/nodes/{7.BZX9Iird.js → 8.C7OOsMOJ.js} +1 -1
  19. package/build/_app/version.json +1 -1
  20. package/build/index.html +12 -12
  21. package/dist/embed/{RedUiEmbedRoot-BGoLxJf1.js → RedUiEmbedRoot-Dia9lxfb.js} +12622 -10614
  22. package/dist/embed/RedUiEmbedRoot-Dia9lxfb.js.map +1 -0
  23. package/dist/embed/index-Bq0TT7Ao.js +577 -0
  24. package/dist/embed/{index-B6ZQhCsu.js.map → index-Bq0TT7Ao.js.map} +1 -1
  25. package/dist/embed/{index-fad77a13.esm-BqPj0saH.js → index-fad77a13.esm-BMULHdcE.js} +22 -20
  26. package/dist/embed/{index-fad77a13.esm-BqPj0saH.js.map → index-fad77a13.esm-BMULHdcE.js.map} +1 -1
  27. package/dist/embed/index.js +1 -1
  28. package/dist/embed/sigma-edge-curve.esm-CAT5Xrom.js +536 -0
  29. package/dist/embed/sigma-edge-curve.esm-CAT5Xrom.js.map +1 -0
  30. package/dist/embed/{sigma-node-border.esm-CGtlgqmo.js → sigma-node-border.esm-Bnk4BRbw.js} +32 -32
  31. package/dist/embed/{sigma-node-border.esm-CGtlgqmo.js.map → sigma-node-border.esm-Bnk4BRbw.js.map} +1 -1
  32. package/dist/embed/{sigma.esm-y0qgY-OC.js → sigma.esm-C2pqg5JH.js} +3 -3
  33. package/dist/embed/{sigma.esm-y0qgY-OC.js.map → sigma.esm-C2pqg5JH.js.map} +1 -1
  34. package/package.json +5 -3
  35. package/src/lib/Appearance.svelte +90 -0
  36. package/src/lib/CommandPalette.svelte +2 -0
  37. package/src/lib/SettingsView.svelte +322 -0
  38. package/src/lib/Topbar.svelte +15 -1
  39. package/src/lib/Workspace.svelte +14 -1
  40. package/src/lib/index.ts +2 -0
  41. package/src/lib/renderers/GraphRenderer.svelte +448 -44
  42. package/src/lib/renderers/graph-bundle.ts +401 -0
  43. package/src/lib/renderers/graph-communities.ts +193 -0
  44. package/src/lib/renderers/graph-render.ts +48 -5
  45. package/src/lib/renderers/graph-sigma.ts +274 -8
  46. package/src/lib/router.svelte.ts +84 -57
  47. package/src/lib/settings-sections.ts +249 -0
  48. package/src/lib/skins/skins.svelte.ts +64 -0
  49. package/src/lib/skins/skins.ts +178 -0
  50. package/build/_app/immutable/assets/0.C63jY5jX.css +0 -1
  51. package/build/_app/immutable/assets/Workspace.BCzG1DsH.css +0 -1
  52. package/build/_app/immutable/chunks/BQHbwf54.js +0 -916
  53. package/build/_app/immutable/chunks/Bmgx1mfv.js +0 -310
  54. package/build/_app/immutable/entry/app.D_IVtpdv.js +0 -2
  55. package/build/_app/immutable/entry/start.3oC0UQ_Q.js +0 -1
  56. package/dist/embed/RedUiEmbedRoot-BGoLxJf1.js.map +0 -1
  57. package/dist/embed/index-B6ZQhCsu.js +0 -577
  58. /package/build/_app/immutable/assets/{10.Dblyk0Kr.css → 12.Dblyk0Kr.css} +0 -0
  59. /package/build/_app/immutable/nodes/{8.CAG5_cGP.js → 10.CAG5_cGP.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index-fad77a13.esm-BqPj0saH.js","sources":["../../../../node_modules/.pnpm/sigma@3.0.3_graphology-types@0.24.8/node_modules/sigma/dist/inherits-d1a1e29b.esm.js","../../../../node_modules/.pnpm/sigma@3.0.3_graphology-types@0.24.8/node_modules/sigma/dist/colors-beb06eb2.esm.js","../../../../node_modules/.pnpm/sigma@3.0.3_graphology-types@0.24.8/node_modules/sigma/dist/index-fad77a13.esm.js"],"sourcesContent":["function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\n\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\n\nfunction _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\n\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\n\nfunction _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\n\nfunction _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function () {\n return !!t;\n })();\n}\n\nfunction _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\n\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == typeof e || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return _assertThisInitialized(t);\n}\n\nfunction _callSuper(t, o, e) {\n return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));\n}\n\nfunction _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\n\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && _setPrototypeOf(t, e);\n}\n\nexport { _inherits as _, _createClass as a, _classCallCheck as b, _callSuper as c, _toPropertyKey as d, _getPrototypeOf as e };\n","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\n\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\n\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\n\nvar HTML_COLORS = {\n black: \"#000000\",\n silver: \"#C0C0C0\",\n gray: \"#808080\",\n grey: \"#808080\",\n white: \"#FFFFFF\",\n maroon: \"#800000\",\n red: \"#FF0000\",\n purple: \"#800080\",\n fuchsia: \"#FF00FF\",\n green: \"#008000\",\n lime: \"#00FF00\",\n olive: \"#808000\",\n yellow: \"#FFFF00\",\n navy: \"#000080\",\n blue: \"#0000FF\",\n teal: \"#008080\",\n aqua: \"#00FFFF\",\n darkblue: \"#00008B\",\n mediumblue: \"#0000CD\",\n darkgreen: \"#006400\",\n darkcyan: \"#008B8B\",\n deepskyblue: \"#00BFFF\",\n darkturquoise: \"#00CED1\",\n mediumspringgreen: \"#00FA9A\",\n springgreen: \"#00FF7F\",\n cyan: \"#00FFFF\",\n midnightblue: \"#191970\",\n dodgerblue: \"#1E90FF\",\n lightseagreen: \"#20B2AA\",\n forestgreen: \"#228B22\",\n seagreen: \"#2E8B57\",\n darkslategray: \"#2F4F4F\",\n darkslategrey: \"#2F4F4F\",\n limegreen: \"#32CD32\",\n mediumseagreen: \"#3CB371\",\n turquoise: \"#40E0D0\",\n royalblue: \"#4169E1\",\n steelblue: \"#4682B4\",\n darkslateblue: \"#483D8B\",\n mediumturquoise: \"#48D1CC\",\n indigo: \"#4B0082\",\n darkolivegreen: \"#556B2F\",\n cadetblue: \"#5F9EA0\",\n cornflowerblue: \"#6495ED\",\n rebeccapurple: \"#663399\",\n mediumaquamarine: \"#66CDAA\",\n dimgray: \"#696969\",\n dimgrey: \"#696969\",\n slateblue: \"#6A5ACD\",\n olivedrab: \"#6B8E23\",\n slategray: \"#708090\",\n slategrey: \"#708090\",\n lightslategray: \"#778899\",\n lightslategrey: \"#778899\",\n mediumslateblue: \"#7B68EE\",\n lawngreen: \"#7CFC00\",\n chartreuse: \"#7FFF00\",\n aquamarine: \"#7FFFD4\",\n skyblue: \"#87CEEB\",\n lightskyblue: \"#87CEFA\",\n blueviolet: \"#8A2BE2\",\n darkred: \"#8B0000\",\n darkmagenta: \"#8B008B\",\n saddlebrown: \"#8B4513\",\n darkseagreen: \"#8FBC8F\",\n lightgreen: \"#90EE90\",\n mediumpurple: \"#9370DB\",\n darkviolet: \"#9400D3\",\n palegreen: \"#98FB98\",\n darkorchid: \"#9932CC\",\n yellowgreen: \"#9ACD32\",\n sienna: \"#A0522D\",\n brown: \"#A52A2A\",\n darkgray: \"#A9A9A9\",\n darkgrey: \"#A9A9A9\",\n lightblue: \"#ADD8E6\",\n greenyellow: \"#ADFF2F\",\n paleturquoise: \"#AFEEEE\",\n lightsteelblue: \"#B0C4DE\",\n powderblue: \"#B0E0E6\",\n firebrick: \"#B22222\",\n darkgoldenrod: \"#B8860B\",\n mediumorchid: \"#BA55D3\",\n rosybrown: \"#BC8F8F\",\n darkkhaki: \"#BDB76B\",\n mediumvioletred: \"#C71585\",\n indianred: \"#CD5C5C\",\n peru: \"#CD853F\",\n chocolate: \"#D2691E\",\n tan: \"#D2B48C\",\n lightgray: \"#D3D3D3\",\n lightgrey: \"#D3D3D3\",\n thistle: \"#D8BFD8\",\n orchid: \"#DA70D6\",\n goldenrod: \"#DAA520\",\n palevioletred: \"#DB7093\",\n crimson: \"#DC143C\",\n gainsboro: \"#DCDCDC\",\n plum: \"#DDA0DD\",\n burlywood: \"#DEB887\",\n lightcyan: \"#E0FFFF\",\n lavender: \"#E6E6FA\",\n darksalmon: \"#E9967A\",\n violet: \"#EE82EE\",\n palegoldenrod: \"#EEE8AA\",\n lightcoral: \"#F08080\",\n khaki: \"#F0E68C\",\n aliceblue: \"#F0F8FF\",\n honeydew: \"#F0FFF0\",\n azure: \"#F0FFFF\",\n sandybrown: \"#F4A460\",\n wheat: \"#F5DEB3\",\n beige: \"#F5F5DC\",\n whitesmoke: \"#F5F5F5\",\n mintcream: \"#F5FFFA\",\n ghostwhite: \"#F8F8FF\",\n salmon: \"#FA8072\",\n antiquewhite: \"#FAEBD7\",\n linen: \"#FAF0E6\",\n lightgoldenrodyellow: \"#FAFAD2\",\n oldlace: \"#FDF5E6\",\n magenta: \"#FF00FF\",\n deeppink: \"#FF1493\",\n orangered: \"#FF4500\",\n tomato: \"#FF6347\",\n hotpink: \"#FF69B4\",\n coral: \"#FF7F50\",\n darkorange: \"#FF8C00\",\n lightsalmon: \"#FFA07A\",\n orange: \"#FFA500\",\n lightpink: \"#FFB6C1\",\n pink: \"#FFC0CB\",\n gold: \"#FFD700\",\n peachpuff: \"#FFDAB9\",\n navajowhite: \"#FFDEAD\",\n moccasin: \"#FFE4B5\",\n bisque: \"#FFE4C4\",\n mistyrose: \"#FFE4E1\",\n blanchedalmond: \"#FFEBCD\",\n papayawhip: \"#FFEFD5\",\n lavenderblush: \"#FFF0F5\",\n seashell: \"#FFF5EE\",\n cornsilk: \"#FFF8DC\",\n lemonchiffon: \"#FFFACD\",\n floralwhite: \"#FFFAF0\",\n snow: \"#FFFAFA\",\n lightyellow: \"#FFFFE0\",\n ivory: \"#FFFFF0\"\n};\n\n/**\n * Function extracting the color at the given pixel.\n */\nfunction extractPixel(gl, x, y, array) {\n var data = array || new Uint8Array(4);\n gl.readPixels(x, y, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, data);\n return data;\n}\n\n/**\n * Memoized function returning a float-encoded color from various string\n * formats describing colors.\n */\nvar INT8 = new Int8Array(4);\nvar INT32 = new Int32Array(INT8.buffer, 0, 1);\nvar FLOAT32 = new Float32Array(INT8.buffer, 0, 1);\nvar RGBA_TEST_REGEX = /^\\s*rgba?\\s*\\(/;\nvar RGBA_EXTRACT_REGEX = /^\\s*rgba?\\s*\\(\\s*([0-9]*)\\s*,\\s*([0-9]*)\\s*,\\s*([0-9]*)(?:\\s*,\\s*(.*)?)?\\)\\s*$/;\nfunction parseColor(val) {\n var r = 0; // byte\n var g = 0; // byte\n var b = 0; // byte\n var a = 1; // float\n\n // Handling hexadecimal notation\n if (val[0] === \"#\") {\n if (val.length === 4) {\n r = parseInt(val.charAt(1) + val.charAt(1), 16);\n g = parseInt(val.charAt(2) + val.charAt(2), 16);\n b = parseInt(val.charAt(3) + val.charAt(3), 16);\n } else {\n r = parseInt(val.charAt(1) + val.charAt(2), 16);\n g = parseInt(val.charAt(3) + val.charAt(4), 16);\n b = parseInt(val.charAt(5) + val.charAt(6), 16);\n }\n if (val.length === 9) {\n a = parseInt(val.charAt(7) + val.charAt(8), 16) / 255;\n }\n }\n\n // Handling rgb notation\n else if (RGBA_TEST_REGEX.test(val)) {\n var match = val.match(RGBA_EXTRACT_REGEX);\n if (match) {\n r = +match[1];\n g = +match[2];\n b = +match[3];\n if (match[4]) a = +match[4];\n }\n }\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nvar FLOAT_COLOR_CACHE = {};\nfor (var htmlColor in HTML_COLORS) {\n FLOAT_COLOR_CACHE[htmlColor] = floatColor(HTML_COLORS[htmlColor]);\n // Replicating cache for hex values for free\n FLOAT_COLOR_CACHE[HTML_COLORS[htmlColor]] = FLOAT_COLOR_CACHE[htmlColor];\n}\nfunction rgbaToFloat(r, g, b, a, masking) {\n INT32[0] = a << 24 | b << 16 | g << 8 | r;\n if (masking) INT32[0] = INT32[0] & 0xfeffffff;\n return FLOAT32[0];\n}\nfunction floatColor(val) {\n // The html color names are case-insensitive\n val = val.toLowerCase();\n\n // If the color is already computed, we yield it\n if (typeof FLOAT_COLOR_CACHE[val] !== \"undefined\") return FLOAT_COLOR_CACHE[val];\n var parsed = parseColor(val);\n var r = parsed.r,\n g = parsed.g,\n b = parsed.b;\n var a = parsed.a;\n a = a * 255 | 0;\n var color = rgbaToFloat(r, g, b, a, true);\n FLOAT_COLOR_CACHE[val] = color;\n return color;\n}\nfunction colorToArray(val, masking) {\n FLOAT32[0] = floatColor(val);\n var intValue = INT32[0];\n if (masking) {\n intValue = intValue | 0x01000000;\n }\n var r = intValue & 0xff;\n var g = intValue >> 8 & 0xff;\n var b = intValue >> 16 & 0xff;\n var a = intValue >> 24 & 0xff;\n return [r, g, b, a];\n}\nvar FLOAT_INDEX_CACHE = {};\nfunction indexToColor(index) {\n // If the index is already computed, we yield it\n if (typeof FLOAT_INDEX_CACHE[index] !== \"undefined\") return FLOAT_INDEX_CACHE[index];\n\n // To address issue #1397, one strategy is to keep encoding 4 bytes colors,\n // but with alpha hard-set to 1.0 (or 255):\n var r = (index & 0x00ff0000) >>> 16;\n var g = (index & 0x0000ff00) >>> 8;\n var b = index & 0x000000ff;\n var a = 0x000000ff;\n\n // The original 4 bytes color encoding was the following:\n // const r = (index & 0xff000000) >>> 24;\n // const g = (index & 0x00ff0000) >>> 16;\n // const b = (index & 0x0000ff00) >>> 8;\n // const a = index & 0x000000ff;\n\n var color = rgbaToFloat(r, g, b, a, true);\n FLOAT_INDEX_CACHE[index] = color;\n return color;\n}\nfunction colorToIndex(r, g, b, _a) {\n // As for the function indexToColor, because of #1397 and the \"alpha is always\n // 1.0\" strategy, we need to fix this function as well:\n return b + (g << 8) + (r << 16);\n\n // The original 4 bytes color decoding is the following:\n // return a + (b << 8) + (g << 16) + (r << 24);\n}\nfunction getPixelColor(gl, frameBuffer, x, y, pixelRatio, downSizingRatio) {\n var bufferX = Math.floor(x / downSizingRatio * pixelRatio);\n var bufferY = Math.floor(gl.drawingBufferHeight / downSizingRatio - y / downSizingRatio * pixelRatio);\n var pixel = new Uint8Array(4);\n gl.bindFramebuffer(gl.FRAMEBUFFER, frameBuffer);\n gl.readPixels(bufferX, bufferY, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, pixel);\n var _pixel = _slicedToArray(pixel, 4),\n r = _pixel[0],\n g = _pixel[1],\n b = _pixel[2],\n a = _pixel[3];\n return [r, g, b, a];\n}\n\nexport { HTML_COLORS as H, _slicedToArray as _, _arrayLikeToArray as a, _unsupportedIterableToArray as b, colorToIndex as c, colorToArray as d, extractPixel as e, floatColor as f, getPixelColor as g, indexToColor as i, parseColor as p, rgbaToFloat as r };\n","import { d as _toPropertyKey, e as _getPrototypeOf, a as _createClass, b as _classCallCheck, _ as _inherits, c as _callSuper } from './inherits-d1a1e29b.esm.js';\nimport { i as indexToColor, f as floatColor } from './colors-beb06eb2.esm.js';\n\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\n\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\n\nfunction _superPropBase(t, o) {\n for (; !{}.hasOwnProperty.call(t, o) && null !== (t = _getPrototypeOf(t)););\n return t;\n}\n\nfunction _get() {\n return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {\n var p = _superPropBase(e, t);\n if (p) {\n var n = Object.getOwnPropertyDescriptor(p, t);\n return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;\n }\n }, _get.apply(null, arguments);\n}\n\nfunction _superPropGet(t, o, e, r) {\n var p = _get(_getPrototypeOf(1 & r ? t.prototype : t), o, e);\n return 2 & r && \"function\" == typeof p ? function (t) {\n return p.apply(e, t);\n } : p;\n}\n\nfunction getAttributeItemsCount(attr) {\n return attr.normalized ? 1 : attr.size;\n}\nfunction getAttributesItemsCount(attrs) {\n var res = 0;\n attrs.forEach(function (attr) {\n return res += getAttributeItemsCount(attr);\n });\n return res;\n}\nfunction loadShader(type, gl, source) {\n var glType = type === \"VERTEX\" ? gl.VERTEX_SHADER : gl.FRAGMENT_SHADER;\n\n // Creating the shader\n var shader = gl.createShader(glType);\n if (shader === null) {\n throw new Error(\"loadShader: error while creating the shader\");\n }\n\n // Loading source\n gl.shaderSource(shader, source);\n\n // Compiling the shader\n gl.compileShader(shader);\n\n // Retrieving compilation status\n var successfullyCompiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n\n // Throwing if something went awry\n if (!successfullyCompiled) {\n var infoLog = gl.getShaderInfoLog(shader);\n gl.deleteShader(shader);\n throw new Error(\"loadShader: error while compiling the shader:\\n\".concat(infoLog, \"\\n\").concat(source));\n }\n return shader;\n}\nfunction loadVertexShader(gl, source) {\n return loadShader(\"VERTEX\", gl, source);\n}\nfunction loadFragmentShader(gl, source) {\n return loadShader(\"FRAGMENT\", gl, source);\n}\n\n/**\n * Function used to load a program.\n */\nfunction loadProgram(gl, shaders) {\n var program = gl.createProgram();\n if (program === null) {\n throw new Error(\"loadProgram: error while creating the program.\");\n }\n var i, l;\n\n // Attaching the shaders\n for (i = 0, l = shaders.length; i < l; i++) gl.attachShader(program, shaders[i]);\n gl.linkProgram(program);\n\n // Checking status\n var successfullyLinked = gl.getProgramParameter(program, gl.LINK_STATUS);\n if (!successfullyLinked) {\n var info = gl.getProgramInfoLog(program);\n gl.deleteProgram(program);\n throw new Error(\"loadProgram: error while linking the program: \".concat(info));\n }\n return program;\n}\nfunction killProgram(_ref) {\n var gl = _ref.gl,\n buffer = _ref.buffer,\n program = _ref.program,\n vertexShader = _ref.vertexShader,\n fragmentShader = _ref.fragmentShader;\n gl.deleteShader(vertexShader);\n gl.deleteShader(fragmentShader);\n gl.deleteProgram(program);\n gl.deleteBuffer(buffer);\n}\n\n/**\n * Function use to print a float for inserting in a GLSL program.\n */\nfunction numberToGLSLFloat(n) {\n return n % 1 === 0 ? n.toFixed(1) : n.toString();\n}\n\nvar PICKING_PREFIX = \"#define PICKING_MODE\\n\";\nvar SIZE_FACTOR_PER_ATTRIBUTE_TYPE = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, WebGL2RenderingContext.BOOL, 1), WebGL2RenderingContext.BYTE, 1), WebGL2RenderingContext.UNSIGNED_BYTE, 1), WebGL2RenderingContext.SHORT, 2), WebGL2RenderingContext.UNSIGNED_SHORT, 2), WebGL2RenderingContext.INT, 4), WebGL2RenderingContext.UNSIGNED_INT, 4), WebGL2RenderingContext.FLOAT, 4);\nvar AbstractProgram = /*#__PURE__*/_createClass(function AbstractProgram(_gl, _pickGl, _renderer) {\n _classCallCheck(this, AbstractProgram);\n});\nvar Program = /*#__PURE__*/function () {\n function Program(gl, pickingBuffer, renderer) {\n _classCallCheck(this, Program);\n // GLenum\n _defineProperty(this, \"array\", new Float32Array());\n _defineProperty(this, \"constantArray\", new Float32Array());\n _defineProperty(this, \"capacity\", 0);\n _defineProperty(this, \"verticesCount\", 0);\n // Reading and caching program definition\n var def = this.getDefinition();\n this.VERTICES = def.VERTICES;\n this.VERTEX_SHADER_SOURCE = def.VERTEX_SHADER_SOURCE;\n this.FRAGMENT_SHADER_SOURCE = def.FRAGMENT_SHADER_SOURCE;\n this.UNIFORMS = def.UNIFORMS;\n this.ATTRIBUTES = def.ATTRIBUTES;\n this.METHOD = def.METHOD;\n this.CONSTANT_ATTRIBUTES = \"CONSTANT_ATTRIBUTES\" in def ? def.CONSTANT_ATTRIBUTES : [];\n this.CONSTANT_DATA = \"CONSTANT_DATA\" in def ? def.CONSTANT_DATA : [];\n this.isInstanced = \"CONSTANT_ATTRIBUTES\" in def;\n\n // Computing stride\n this.ATTRIBUTES_ITEMS_COUNT = getAttributesItemsCount(this.ATTRIBUTES);\n this.STRIDE = this.VERTICES * this.ATTRIBUTES_ITEMS_COUNT;\n\n // Members\n this.renderer = renderer;\n this.normalProgram = this.getProgramInfo(\"normal\", gl, def.VERTEX_SHADER_SOURCE, def.FRAGMENT_SHADER_SOURCE, null);\n this.pickProgram = pickingBuffer ? this.getProgramInfo(\"pick\", gl, PICKING_PREFIX + def.VERTEX_SHADER_SOURCE, PICKING_PREFIX + def.FRAGMENT_SHADER_SOURCE, pickingBuffer) : null;\n\n // For instanced programs:\n if (this.isInstanced) {\n var constantAttributesItemsCount = getAttributesItemsCount(this.CONSTANT_ATTRIBUTES);\n if (this.CONSTANT_DATA.length !== this.VERTICES) throw new Error(\"Program: error while getting constant data (expected \".concat(this.VERTICES, \" items, received \").concat(this.CONSTANT_DATA.length, \" instead)\"));\n this.constantArray = new Float32Array(this.CONSTANT_DATA.length * constantAttributesItemsCount);\n for (var i = 0; i < this.CONSTANT_DATA.length; i++) {\n var vector = this.CONSTANT_DATA[i];\n if (vector.length !== constantAttributesItemsCount) throw new Error(\"Program: error while getting constant data (one vector has \".concat(vector.length, \" items instead of \").concat(constantAttributesItemsCount, \")\"));\n for (var j = 0; j < vector.length; j++) this.constantArray[i * constantAttributesItemsCount + j] = vector[j];\n }\n this.STRIDE = this.ATTRIBUTES_ITEMS_COUNT;\n }\n }\n return _createClass(Program, [{\n key: \"kill\",\n value: function kill() {\n killProgram(this.normalProgram);\n if (this.pickProgram) {\n killProgram(this.pickProgram);\n this.pickProgram = null;\n }\n }\n }, {\n key: \"getProgramInfo\",\n value: function getProgramInfo(name, gl, vertexShaderSource, fragmentShaderSource, frameBuffer) {\n var def = this.getDefinition();\n\n // WebGL buffers\n var buffer = gl.createBuffer();\n if (buffer === null) throw new Error(\"Program: error while creating the WebGL buffer.\");\n\n // Shaders and program\n var vertexShader = loadVertexShader(gl, vertexShaderSource);\n var fragmentShader = loadFragmentShader(gl, fragmentShaderSource);\n var program = loadProgram(gl, [vertexShader, fragmentShader]);\n\n // Initializing locations\n var uniformLocations = {};\n def.UNIFORMS.forEach(function (uniformName) {\n var location = gl.getUniformLocation(program, uniformName);\n if (location) uniformLocations[uniformName] = location;\n });\n var attributeLocations = {};\n def.ATTRIBUTES.forEach(function (attr) {\n attributeLocations[attr.name] = gl.getAttribLocation(program, attr.name);\n });\n\n // For instanced programs:\n var constantBuffer;\n if (\"CONSTANT_ATTRIBUTES\" in def) {\n def.CONSTANT_ATTRIBUTES.forEach(function (attr) {\n attributeLocations[attr.name] = gl.getAttribLocation(program, attr.name);\n });\n constantBuffer = gl.createBuffer();\n if (constantBuffer === null) throw new Error(\"Program: error while creating the WebGL constant buffer.\");\n }\n return {\n name: name,\n program: program,\n gl: gl,\n frameBuffer: frameBuffer,\n buffer: buffer,\n constantBuffer: constantBuffer || {},\n uniformLocations: uniformLocations,\n attributeLocations: attributeLocations,\n isPicking: name === \"pick\",\n vertexShader: vertexShader,\n fragmentShader: fragmentShader\n };\n }\n }, {\n key: \"bindProgram\",\n value: function bindProgram(program) {\n var _this = this;\n var offset = 0;\n var gl = program.gl,\n buffer = program.buffer;\n if (!this.isInstanced) {\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n offset = 0;\n this.ATTRIBUTES.forEach(function (attr) {\n return offset += _this.bindAttribute(attr, program, offset);\n });\n gl.bufferData(gl.ARRAY_BUFFER, this.array, gl.DYNAMIC_DRAW);\n } else {\n // Handle constant data (things that remain unchanged for all items):\n gl.bindBuffer(gl.ARRAY_BUFFER, program.constantBuffer);\n offset = 0;\n this.CONSTANT_ATTRIBUTES.forEach(function (attr) {\n return offset += _this.bindAttribute(attr, program, offset, false);\n });\n gl.bufferData(gl.ARRAY_BUFFER, this.constantArray, gl.STATIC_DRAW);\n\n // Handle \"instance specific\" data (things that vary for each item):\n gl.bindBuffer(gl.ARRAY_BUFFER, program.buffer);\n offset = 0;\n this.ATTRIBUTES.forEach(function (attr) {\n return offset += _this.bindAttribute(attr, program, offset, true);\n });\n gl.bufferData(gl.ARRAY_BUFFER, this.array, gl.DYNAMIC_DRAW);\n }\n gl.bindBuffer(gl.ARRAY_BUFFER, null);\n }\n }, {\n key: \"unbindProgram\",\n value: function unbindProgram(program) {\n var _this2 = this;\n if (!this.isInstanced) {\n this.ATTRIBUTES.forEach(function (attr) {\n return _this2.unbindAttribute(attr, program);\n });\n } else {\n this.CONSTANT_ATTRIBUTES.forEach(function (attr) {\n return _this2.unbindAttribute(attr, program, false);\n });\n this.ATTRIBUTES.forEach(function (attr) {\n return _this2.unbindAttribute(attr, program, true);\n });\n }\n }\n }, {\n key: \"bindAttribute\",\n value: function bindAttribute(attr, program, offset, setDivisor) {\n var sizeFactor = SIZE_FACTOR_PER_ATTRIBUTE_TYPE[attr.type];\n if (typeof sizeFactor !== \"number\") throw new Error(\"Program.bind: yet unsupported attribute type \\\"\".concat(attr.type, \"\\\"\"));\n var location = program.attributeLocations[attr.name];\n var gl = program.gl;\n if (location !== -1) {\n gl.enableVertexAttribArray(location);\n var stride = !this.isInstanced ? this.ATTRIBUTES_ITEMS_COUNT * Float32Array.BYTES_PER_ELEMENT : (setDivisor ? this.ATTRIBUTES_ITEMS_COUNT : getAttributesItemsCount(this.CONSTANT_ATTRIBUTES)) * Float32Array.BYTES_PER_ELEMENT;\n gl.vertexAttribPointer(location, attr.size, attr.type, attr.normalized || false, stride, offset);\n if (this.isInstanced && setDivisor) {\n if (gl instanceof WebGL2RenderingContext) {\n gl.vertexAttribDivisor(location, 1);\n } else {\n var ext = gl.getExtension(\"ANGLE_instanced_arrays\");\n if (ext) ext.vertexAttribDivisorANGLE(location, 1);\n }\n }\n }\n return attr.size * sizeFactor;\n }\n }, {\n key: \"unbindAttribute\",\n value: function unbindAttribute(attr, program, unsetDivisor) {\n var location = program.attributeLocations[attr.name];\n var gl = program.gl;\n if (location !== -1) {\n gl.disableVertexAttribArray(location);\n if (this.isInstanced && unsetDivisor) {\n if (gl instanceof WebGL2RenderingContext) {\n gl.vertexAttribDivisor(location, 0);\n } else {\n var ext = gl.getExtension(\"ANGLE_instanced_arrays\");\n if (ext) ext.vertexAttribDivisorANGLE(location, 0);\n }\n }\n }\n }\n }, {\n key: \"reallocate\",\n value: function reallocate(capacity) {\n // If desired capacity has not changed we do nothing\n // NOTE: it's possible here to implement more subtle reallocation schemes\n // when the number of rendered items increase or decrease\n if (capacity === this.capacity) return;\n this.capacity = capacity;\n this.verticesCount = this.VERTICES * capacity;\n this.array = new Float32Array(!this.isInstanced ? this.verticesCount * this.ATTRIBUTES_ITEMS_COUNT : this.capacity * this.ATTRIBUTES_ITEMS_COUNT);\n }\n }, {\n key: \"hasNothingToRender\",\n value: function hasNothingToRender() {\n return this.verticesCount === 0;\n }\n }, {\n key: \"renderProgram\",\n value: function renderProgram(params, programInfo) {\n var gl = programInfo.gl,\n program = programInfo.program;\n\n // With the current fix for #1397, the alpha blending is enabled for the\n // picking layer:\n gl.enable(gl.BLEND);\n\n // Original code:\n // if (!isPicking) gl.enable(gl.BLEND);\n // else gl.disable(gl.BLEND);\n\n gl.useProgram(program);\n this.setUniforms(params, programInfo);\n this.drawWebGL(this.METHOD, programInfo);\n }\n }, {\n key: \"render\",\n value: function render(params) {\n if (this.hasNothingToRender()) return;\n if (this.pickProgram) {\n this.pickProgram.gl.viewport(0, 0, params.width * params.pixelRatio / params.downSizingRatio, params.height * params.pixelRatio / params.downSizingRatio);\n this.bindProgram(this.pickProgram);\n this.renderProgram(_objectSpread2(_objectSpread2({}, params), {}, {\n pixelRatio: params.pixelRatio / params.downSizingRatio\n }), this.pickProgram);\n this.unbindProgram(this.pickProgram);\n }\n this.normalProgram.gl.viewport(0, 0, params.width * params.pixelRatio, params.height * params.pixelRatio);\n this.bindProgram(this.normalProgram);\n this.renderProgram(params, this.normalProgram);\n this.unbindProgram(this.normalProgram);\n }\n }, {\n key: \"drawWebGL\",\n value: function drawWebGL(method, _ref) {\n var gl = _ref.gl,\n frameBuffer = _ref.frameBuffer;\n gl.bindFramebuffer(gl.FRAMEBUFFER, frameBuffer);\n if (!this.isInstanced) {\n gl.drawArrays(method, 0, this.verticesCount);\n } else {\n if (gl instanceof WebGL2RenderingContext) {\n gl.drawArraysInstanced(method, 0, this.VERTICES, this.capacity);\n } else {\n var ext = gl.getExtension(\"ANGLE_instanced_arrays\");\n if (ext) ext.drawArraysInstancedANGLE(method, 0, this.VERTICES, this.capacity);\n }\n }\n }\n }]);\n}();\n\nvar AbstractNodeProgram = /*#__PURE__*/function (_AbstractProgram) {\n function AbstractNodeProgram() {\n _classCallCheck(this, AbstractNodeProgram);\n return _callSuper(this, AbstractNodeProgram, arguments);\n }\n _inherits(AbstractNodeProgram, _AbstractProgram);\n return _createClass(AbstractNodeProgram);\n}(AbstractProgram);\nvar NodeProgram = /*#__PURE__*/function (_ref) {\n function NodeProgram() {\n _classCallCheck(this, NodeProgram);\n return _callSuper(this, NodeProgram, arguments);\n }\n _inherits(NodeProgram, _ref);\n return _createClass(NodeProgram, [{\n key: \"kill\",\n value: function kill() {\n _superPropGet(NodeProgram, \"kill\", this, 3)([]);\n }\n }, {\n key: \"process\",\n value: function process(nodeIndex, offset, data) {\n var i = offset * this.STRIDE;\n // NOTE: dealing with hidden items automatically\n if (data.hidden) {\n for (var l = i + this.STRIDE; i < l; i++) {\n this.array[i] = 0;\n }\n return;\n }\n return this.processVisibleItem(indexToColor(nodeIndex), i, data);\n }\n }]);\n}(Program);\n/**\n * Helper function combining two or more programs into a single compound one.\n * Note that this is more a quick & easy way to combine program than a really\n * performant option. More performant programs can be written entirely.\n *\n * @param {array} programClasses - Program classes to combine.\n * @param {function} drawLabel - An optional node \"draw label\" function.\n * @param {function} drawHover - An optional node \"draw hover\" function.\n * @return {function}\n */\nfunction createNodeCompoundProgram(programClasses, drawLabel, drawHover) {\n return /*#__PURE__*/function () {\n function NodeCompoundProgram(gl, pickingBuffer, renderer) {\n _classCallCheck(this, NodeCompoundProgram);\n _defineProperty(this, \"drawLabel\", drawLabel);\n _defineProperty(this, \"drawHover\", drawHover);\n this.programs = programClasses.map(function (Program) {\n return new Program(gl, pickingBuffer, renderer);\n });\n }\n return _createClass(NodeCompoundProgram, [{\n key: \"reallocate\",\n value: function reallocate(capacity) {\n this.programs.forEach(function (program) {\n return program.reallocate(capacity);\n });\n }\n }, {\n key: \"process\",\n value: function process(nodeIndex, offset, data) {\n this.programs.forEach(function (program) {\n return program.process(nodeIndex, offset, data);\n });\n }\n }, {\n key: \"render\",\n value: function render(params) {\n this.programs.forEach(function (program) {\n return program.render(params);\n });\n }\n }, {\n key: \"kill\",\n value: function kill() {\n this.programs.forEach(function (program) {\n return program.kill();\n });\n }\n }]);\n }();\n}\n\nvar AbstractEdgeProgram = /*#__PURE__*/function (_AbstractProgram) {\n function AbstractEdgeProgram() {\n _classCallCheck(this, AbstractEdgeProgram);\n return _callSuper(this, AbstractEdgeProgram, arguments);\n }\n _inherits(AbstractEdgeProgram, _AbstractProgram);\n return _createClass(AbstractEdgeProgram);\n}(AbstractProgram);\nvar EdgeProgram = /*#__PURE__*/function (_ref) {\n function EdgeProgram() {\n var _this;\n _classCallCheck(this, EdgeProgram);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, EdgeProgram, [].concat(args));\n _defineProperty(_this, \"drawLabel\", undefined);\n return _this;\n }\n _inherits(EdgeProgram, _ref);\n return _createClass(EdgeProgram, [{\n key: \"kill\",\n value: function kill() {\n _superPropGet(EdgeProgram, \"kill\", this, 3)([]);\n }\n }, {\n key: \"process\",\n value: function process(edgeIndex, offset, sourceData, targetData, data) {\n var i = offset * this.STRIDE;\n // NOTE: dealing with hidden items automatically\n if (data.hidden || sourceData.hidden || targetData.hidden) {\n for (var l = i + this.STRIDE; i < l; i++) {\n this.array[i] = 0;\n }\n return;\n }\n return this.processVisibleItem(indexToColor(edgeIndex), i, sourceData, targetData, data);\n }\n }]);\n}(Program);\n/**\n * Helper function combining two or more programs into a single compound one.\n * Note that this is more a quick & easy way to combine program than a really\n * performant option. More performant programs can be written entirely.\n *\n * @param {array} programClasses - Program classes to combine.\n * @param {function} drawLabel - An optional edge \"draw label\" function.\n * @return {function}\n */\nfunction createEdgeCompoundProgram(programClasses, drawLabel) {\n return /*#__PURE__*/function () {\n function EdgeCompoundProgram(gl, pickingBuffer, renderer) {\n _classCallCheck(this, EdgeCompoundProgram);\n _defineProperty(this, \"drawLabel\", drawLabel);\n this.programs = programClasses.map(function (Program) {\n return new Program(gl, pickingBuffer, renderer);\n });\n }\n return _createClass(EdgeCompoundProgram, [{\n key: \"reallocate\",\n value: function reallocate(capacity) {\n this.programs.forEach(function (program) {\n return program.reallocate(capacity);\n });\n }\n }, {\n key: \"process\",\n value: function process(edgeIndex, offset, sourceData, targetData, data) {\n this.programs.forEach(function (program) {\n return program.process(edgeIndex, offset, sourceData, targetData, data);\n });\n }\n }, {\n key: \"render\",\n value: function render(params) {\n this.programs.forEach(function (program) {\n return program.render(params);\n });\n }\n }, {\n key: \"kill\",\n value: function kill() {\n this.programs.forEach(function (program) {\n return program.kill();\n });\n }\n }]);\n }();\n}\n\nfunction drawStraightEdgeLabel(context, edgeData, sourceData, targetData, settings) {\n var size = settings.edgeLabelSize,\n font = settings.edgeLabelFont,\n weight = settings.edgeLabelWeight,\n color = settings.edgeLabelColor.attribute ? edgeData[settings.edgeLabelColor.attribute] || settings.edgeLabelColor.color || \"#000\" : settings.edgeLabelColor.color;\n var label = edgeData.label;\n if (!label) return;\n context.fillStyle = color;\n context.font = \"\".concat(weight, \" \").concat(size, \"px \").concat(font);\n\n // Computing positions without considering nodes sizes:\n var sSize = sourceData.size;\n var tSize = targetData.size;\n var sx = sourceData.x;\n var sy = sourceData.y;\n var tx = targetData.x;\n var ty = targetData.y;\n var cx = (sx + tx) / 2;\n var cy = (sy + ty) / 2;\n var dx = tx - sx;\n var dy = ty - sy;\n var d = Math.sqrt(dx * dx + dy * dy);\n if (d < sSize + tSize) return;\n\n // Adding nodes sizes:\n sx += dx * sSize / d;\n sy += dy * sSize / d;\n tx -= dx * tSize / d;\n ty -= dy * tSize / d;\n cx = (sx + tx) / 2;\n cy = (sy + ty) / 2;\n dx = tx - sx;\n dy = ty - sy;\n d = Math.sqrt(dx * dx + dy * dy);\n\n // Handling ellipsis\n var textLength = context.measureText(label).width;\n if (textLength > d) {\n var ellipsis = \"…\";\n label = label + ellipsis;\n textLength = context.measureText(label).width;\n while (textLength > d && label.length > 1) {\n label = label.slice(0, -2) + ellipsis;\n textLength = context.measureText(label).width;\n }\n if (label.length < 4) return;\n }\n var angle;\n if (dx > 0) {\n if (dy > 0) angle = Math.acos(dx / d);else angle = Math.asin(dy / d);\n } else {\n if (dy > 0) angle = Math.acos(dx / d) + Math.PI;else angle = Math.asin(dx / d) + Math.PI / 2;\n }\n context.save();\n context.translate(cx, cy);\n context.rotate(angle);\n context.fillText(label, -textLength / 2, edgeData.size / 2 + size);\n context.restore();\n}\n\nfunction drawDiscNodeLabel(context, data, settings) {\n if (!data.label) return;\n var size = settings.labelSize,\n font = settings.labelFont,\n weight = settings.labelWeight,\n color = settings.labelColor.attribute ? data[settings.labelColor.attribute] || settings.labelColor.color || \"#000\" : settings.labelColor.color;\n context.fillStyle = color;\n context.font = \"\".concat(weight, \" \").concat(size, \"px \").concat(font);\n context.fillText(data.label, data.x + data.size + 3, data.y + size / 3);\n}\n\n/**\n * Draw an hovered node.\n * - if there is no label => display a shadow on the node\n * - if the label box is bigger than node size => display a label box that contains the node with a shadow\n * - else node with shadow and the label box\n */\nfunction drawDiscNodeHover(context, data, settings) {\n var size = settings.labelSize,\n font = settings.labelFont,\n weight = settings.labelWeight;\n context.font = \"\".concat(weight, \" \").concat(size, \"px \").concat(font);\n\n // Then we draw the label background\n context.fillStyle = \"#FFF\";\n context.shadowOffsetX = 0;\n context.shadowOffsetY = 0;\n context.shadowBlur = 8;\n context.shadowColor = \"#000\";\n var PADDING = 2;\n if (typeof data.label === \"string\") {\n var textWidth = context.measureText(data.label).width,\n boxWidth = Math.round(textWidth + 5),\n boxHeight = Math.round(size + 2 * PADDING),\n radius = Math.max(data.size, size / 2) + PADDING;\n var angleRadian = Math.asin(boxHeight / 2 / radius);\n var xDeltaCoord = Math.sqrt(Math.abs(Math.pow(radius, 2) - Math.pow(boxHeight / 2, 2)));\n context.beginPath();\n context.moveTo(data.x + xDeltaCoord, data.y + boxHeight / 2);\n context.lineTo(data.x + radius + boxWidth, data.y + boxHeight / 2);\n context.lineTo(data.x + radius + boxWidth, data.y - boxHeight / 2);\n context.lineTo(data.x + xDeltaCoord, data.y - boxHeight / 2);\n context.arc(data.x, data.y, radius, angleRadian, -angleRadian);\n context.closePath();\n context.fill();\n } else {\n context.beginPath();\n context.arc(data.x, data.y, data.size + PADDING, 0, Math.PI * 2);\n context.closePath();\n context.fill();\n }\n context.shadowOffsetX = 0;\n context.shadowOffsetY = 0;\n context.shadowBlur = 0;\n\n // And finally we draw the label\n drawDiscNodeLabel(context, data, settings);\n}\n\n// language=GLSL\nvar SHADER_SOURCE$6 = /*glsl*/\"\\nprecision highp float;\\n\\nvarying vec4 v_color;\\nvarying vec2 v_diffVector;\\nvarying float v_radius;\\n\\nuniform float u_correctionRatio;\\n\\nconst vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);\\n\\nvoid main(void) {\\n float border = u_correctionRatio * 2.0;\\n float dist = length(v_diffVector) - v_radius + border;\\n\\n // No antialiasing for picking mode:\\n #ifdef PICKING_MODE\\n if (dist > border)\\n gl_FragColor = transparent;\\n else\\n gl_FragColor = v_color;\\n\\n #else\\n float t = 0.0;\\n if (dist > border)\\n t = 1.0;\\n else if (dist > 0.0)\\n t = dist / border;\\n\\n gl_FragColor = mix(v_color, transparent, t);\\n #endif\\n}\\n\";\nvar FRAGMENT_SHADER_SOURCE$2 = SHADER_SOURCE$6;\n\n// language=GLSL\nvar SHADER_SOURCE$5 = /*glsl*/\"\\nattribute vec4 a_id;\\nattribute vec4 a_color;\\nattribute vec2 a_position;\\nattribute float a_size;\\nattribute float a_angle;\\n\\nuniform mat3 u_matrix;\\nuniform float u_sizeRatio;\\nuniform float u_correctionRatio;\\n\\nvarying vec4 v_color;\\nvarying vec2 v_diffVector;\\nvarying float v_radius;\\nvarying float v_border;\\n\\nconst float bias = 255.0 / 254.0;\\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;\\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;\\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_color = a_color;\\n #endif\\n\\n v_color.a *= bias;\\n}\\n\";\nvar VERTEX_SHADER_SOURCE$3 = SHADER_SOURCE$5;\n\nvar _WebGLRenderingContex$3 = WebGLRenderingContext,\n UNSIGNED_BYTE$3 = _WebGLRenderingContex$3.UNSIGNED_BYTE,\n FLOAT$3 = _WebGLRenderingContex$3.FLOAT;\nvar UNIFORMS$3 = [\"u_sizeRatio\", \"u_correctionRatio\", \"u_matrix\"];\nvar NodeCircleProgram = /*#__PURE__*/function (_NodeProgram) {\n function NodeCircleProgram() {\n _classCallCheck(this, NodeCircleProgram);\n return _callSuper(this, NodeCircleProgram, arguments);\n }\n _inherits(NodeCircleProgram, _NodeProgram);\n return _createClass(NodeCircleProgram, [{\n key: \"getDefinition\",\n value: function getDefinition() {\n return {\n VERTICES: 3,\n VERTEX_SHADER_SOURCE: VERTEX_SHADER_SOURCE$3,\n FRAGMENT_SHADER_SOURCE: FRAGMENT_SHADER_SOURCE$2,\n METHOD: WebGLRenderingContext.TRIANGLES,\n UNIFORMS: UNIFORMS$3,\n ATTRIBUTES: [{\n name: \"a_position\",\n size: 2,\n type: FLOAT$3\n }, {\n name: \"a_size\",\n size: 1,\n type: FLOAT$3\n }, {\n name: \"a_color\",\n size: 4,\n type: UNSIGNED_BYTE$3,\n normalized: true\n }, {\n name: \"a_id\",\n size: 4,\n type: UNSIGNED_BYTE$3,\n normalized: true\n }],\n CONSTANT_ATTRIBUTES: [{\n name: \"a_angle\",\n size: 1,\n type: FLOAT$3\n }],\n CONSTANT_DATA: [[NodeCircleProgram.ANGLE_1], [NodeCircleProgram.ANGLE_2], [NodeCircleProgram.ANGLE_3]]\n };\n }\n }, {\n key: \"processVisibleItem\",\n value: function processVisibleItem(nodeIndex, startIndex, data) {\n var array = this.array;\n var color = floatColor(data.color);\n array[startIndex++] = data.x;\n array[startIndex++] = data.y;\n array[startIndex++] = data.size;\n array[startIndex++] = color;\n array[startIndex++] = nodeIndex;\n }\n }, {\n key: \"setUniforms\",\n value: function setUniforms(params, _ref) {\n var gl = _ref.gl,\n uniformLocations = _ref.uniformLocations;\n var u_sizeRatio = uniformLocations.u_sizeRatio,\n u_correctionRatio = uniformLocations.u_correctionRatio,\n u_matrix = uniformLocations.u_matrix;\n gl.uniform1f(u_correctionRatio, params.correctionRatio);\n gl.uniform1f(u_sizeRatio, params.sizeRatio);\n gl.uniformMatrix3fv(u_matrix, false, params.matrix);\n }\n }]);\n}(NodeProgram);\n_defineProperty(NodeCircleProgram, \"ANGLE_1\", 0);\n_defineProperty(NodeCircleProgram, \"ANGLE_2\", 2 * Math.PI / 3);\n_defineProperty(NodeCircleProgram, \"ANGLE_3\", 4 * Math.PI / 3);\n\n// language=GLSL\nvar SHADER_SOURCE$4 = /*glsl*/\"\\nprecision mediump float;\\n\\nvarying vec4 v_color;\\n\\nvoid main(void) {\\n gl_FragColor = v_color;\\n}\\n\";\nvar FRAGMENT_SHADER_SOURCE$1 = SHADER_SOURCE$4;\n\n// language=GLSL\nvar SHADER_SOURCE$3 = /*glsl*/\"\\nattribute vec2 a_position;\\nattribute vec2 a_normal;\\nattribute float a_radius;\\nattribute vec3 a_barycentric;\\n\\n#ifdef PICKING_MODE\\nattribute vec4 a_id;\\n#else\\nattribute vec4 a_color;\\n#endif\\n\\nuniform mat3 u_matrix;\\nuniform float u_sizeRatio;\\nuniform float u_correctionRatio;\\nuniform float u_minEdgeThickness;\\nuniform float u_lengthToThicknessRatio;\\nuniform float u_widenessToThicknessRatio;\\n\\nvarying vec4 v_color;\\n\\nconst float bias = 255.0 / 254.0;\\n\\nvoid main() {\\n float minThickness = u_minEdgeThickness;\\n\\n float normalLength = length(a_normal);\\n vec2 unitNormal = a_normal / normalLength;\\n\\n // These first computations are taken from edge.vert.glsl and\\n // edge.clamped.vert.glsl. Please read it to get better comments on what's\\n // happening:\\n float pixelsThickness = max(normalLength / u_sizeRatio, minThickness);\\n float webGLThickness = pixelsThickness * u_correctionRatio;\\n float webGLNodeRadius = a_radius * 2.0 * u_correctionRatio / u_sizeRatio;\\n float webGLArrowHeadLength = webGLThickness * u_lengthToThicknessRatio * 2.0;\\n float webGLArrowHeadThickness = webGLThickness * u_widenessToThicknessRatio;\\n\\n float da = a_barycentric.x;\\n float db = a_barycentric.y;\\n float dc = a_barycentric.z;\\n\\n vec2 delta = vec2(\\n da * (webGLNodeRadius * unitNormal.y)\\n + db * ((webGLNodeRadius + webGLArrowHeadLength) * unitNormal.y + webGLArrowHeadThickness * unitNormal.x)\\n + dc * ((webGLNodeRadius + webGLArrowHeadLength) * unitNormal.y - webGLArrowHeadThickness * unitNormal.x),\\n\\n da * (-webGLNodeRadius * unitNormal.x)\\n + db * (-(webGLNodeRadius + webGLArrowHeadLength) * unitNormal.x + webGLArrowHeadThickness * unitNormal.y)\\n + dc * (-(webGLNodeRadius + webGLArrowHeadLength) * unitNormal.x - webGLArrowHeadThickness * unitNormal.y)\\n );\\n\\n vec2 position = (u_matrix * vec3(a_position + delta, 1)).xy;\\n\\n gl_Position = vec4(position, 0, 1);\\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_color = a_color;\\n #endif\\n\\n v_color.a *= bias;\\n}\\n\";\nvar VERTEX_SHADER_SOURCE$2 = SHADER_SOURCE$3;\n\nvar _WebGLRenderingContex$2 = WebGLRenderingContext,\n UNSIGNED_BYTE$2 = _WebGLRenderingContex$2.UNSIGNED_BYTE,\n FLOAT$2 = _WebGLRenderingContex$2.FLOAT;\nvar UNIFORMS$2 = [\"u_matrix\", \"u_sizeRatio\", \"u_correctionRatio\", \"u_minEdgeThickness\", \"u_lengthToThicknessRatio\", \"u_widenessToThicknessRatio\"];\nvar DEFAULT_EDGE_ARROW_HEAD_PROGRAM_OPTIONS = {\n extremity: \"target\",\n lengthToThicknessRatio: 2.5,\n widenessToThicknessRatio: 2\n};\nfunction createEdgeArrowHeadProgram(inputOptions) {\n var options = _objectSpread2(_objectSpread2({}, DEFAULT_EDGE_ARROW_HEAD_PROGRAM_OPTIONS), inputOptions || {});\n return /*#__PURE__*/function (_EdgeProgram) {\n function EdgeArrowHeadProgram() {\n _classCallCheck(this, EdgeArrowHeadProgram);\n return _callSuper(this, EdgeArrowHeadProgram, arguments);\n }\n _inherits(EdgeArrowHeadProgram, _EdgeProgram);\n return _createClass(EdgeArrowHeadProgram, [{\n key: \"getDefinition\",\n value: function getDefinition() {\n return {\n VERTICES: 3,\n VERTEX_SHADER_SOURCE: VERTEX_SHADER_SOURCE$2,\n FRAGMENT_SHADER_SOURCE: FRAGMENT_SHADER_SOURCE$1,\n METHOD: WebGLRenderingContext.TRIANGLES,\n UNIFORMS: UNIFORMS$2,\n ATTRIBUTES: [{\n name: \"a_position\",\n size: 2,\n type: FLOAT$2\n }, {\n name: \"a_normal\",\n size: 2,\n type: FLOAT$2\n }, {\n name: \"a_radius\",\n size: 1,\n type: FLOAT$2\n }, {\n name: \"a_color\",\n size: 4,\n type: UNSIGNED_BYTE$2,\n normalized: true\n }, {\n name: \"a_id\",\n size: 4,\n type: UNSIGNED_BYTE$2,\n normalized: true\n }],\n CONSTANT_ATTRIBUTES: [{\n name: \"a_barycentric\",\n size: 3,\n type: FLOAT$2\n }],\n CONSTANT_DATA: [[1, 0, 0], [0, 1, 0], [0, 0, 1]]\n };\n }\n }, {\n key: \"processVisibleItem\",\n value: function processVisibleItem(edgeIndex, startIndex, sourceData, targetData, data) {\n if (options.extremity === \"source\") {\n var _ref = [targetData, sourceData];\n sourceData = _ref[0];\n targetData = _ref[1];\n }\n var thickness = data.size || 1;\n var radius = targetData.size || 1;\n var x1 = sourceData.x;\n var y1 = sourceData.y;\n var x2 = targetData.x;\n var y2 = targetData.y;\n var color = floatColor(data.color);\n\n // Computing normals\n var dx = x2 - x1;\n var dy = y2 - y1;\n var len = dx * dx + dy * dy;\n var n1 = 0;\n var n2 = 0;\n if (len) {\n len = 1 / Math.sqrt(len);\n n1 = -dy * len * thickness;\n n2 = dx * len * thickness;\n }\n var array = this.array;\n array[startIndex++] = x2;\n array[startIndex++] = y2;\n array[startIndex++] = -n1;\n array[startIndex++] = -n2;\n array[startIndex++] = radius;\n array[startIndex++] = color;\n array[startIndex++] = edgeIndex;\n }\n }, {\n key: \"setUniforms\",\n value: function setUniforms(params, _ref2) {\n var gl = _ref2.gl,\n uniformLocations = _ref2.uniformLocations;\n var u_matrix = uniformLocations.u_matrix,\n u_sizeRatio = uniformLocations.u_sizeRatio,\n u_correctionRatio = uniformLocations.u_correctionRatio,\n u_minEdgeThickness = uniformLocations.u_minEdgeThickness,\n u_lengthToThicknessRatio = uniformLocations.u_lengthToThicknessRatio,\n u_widenessToThicknessRatio = uniformLocations.u_widenessToThicknessRatio;\n gl.uniformMatrix3fv(u_matrix, false, params.matrix);\n gl.uniform1f(u_sizeRatio, params.sizeRatio);\n gl.uniform1f(u_correctionRatio, params.correctionRatio);\n gl.uniform1f(u_minEdgeThickness, params.minEdgeThickness);\n gl.uniform1f(u_lengthToThicknessRatio, options.lengthToThicknessRatio);\n gl.uniform1f(u_widenessToThicknessRatio, options.widenessToThicknessRatio);\n }\n }]);\n }(EdgeProgram);\n}\nvar EdgeArrowHeadProgram = createEdgeArrowHeadProgram();\nvar EdgeArrowHeadProgram$1 = EdgeArrowHeadProgram;\n\n// language=GLSL\nvar SHADER_SOURCE$2 = /*glsl*/\"\\nprecision mediump float;\\n\\nvarying vec4 v_color;\\nvarying vec2 v_normal;\\nvarying float v_thickness;\\nvarying float v_feather;\\n\\nconst vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);\\n\\nvoid main(void) {\\n // We only handle antialiasing for normal mode:\\n #ifdef PICKING_MODE\\n gl_FragColor = v_color;\\n #else\\n float dist = length(v_normal) * v_thickness;\\n\\n float t = smoothstep(\\n v_thickness - v_feather,\\n v_thickness,\\n dist\\n );\\n\\n gl_FragColor = mix(v_color, transparent, t);\\n #endif\\n}\\n\";\nvar FRAGMENT_SHADER_SOURCE = SHADER_SOURCE$2;\n\n// language=GLSL\nvar SHADER_SOURCE$1 = /*glsl*/\"\\nattribute vec4 a_id;\\nattribute vec4 a_color;\\nattribute vec2 a_normal;\\nattribute float a_normalCoef;\\nattribute vec2 a_positionStart;\\nattribute vec2 a_positionEnd;\\nattribute float a_positionCoef;\\nattribute float a_radius;\\nattribute float a_radiusCoef;\\n\\nuniform mat3 u_matrix;\\nuniform float u_zoomRatio;\\nuniform float u_sizeRatio;\\nuniform float u_pixelRatio;\\nuniform float u_correctionRatio;\\nuniform float u_minEdgeThickness;\\nuniform float u_lengthToThicknessRatio;\\nuniform float u_feather;\\n\\nvarying vec4 v_color;\\nvarying vec2 v_normal;\\nvarying float v_thickness;\\nvarying float v_feather;\\n\\nconst float bias = 255.0 / 254.0;\\n\\nvoid main() {\\n float minThickness = u_minEdgeThickness;\\n\\n float radius = a_radius * a_radiusCoef;\\n vec2 normal = a_normal * a_normalCoef;\\n vec2 position = a_positionStart * (1.0 - a_positionCoef) + a_positionEnd * a_positionCoef;\\n\\n float normalLength = length(normal);\\n vec2 unitNormal = normal / normalLength;\\n\\n // These first computations are taken from edge.vert.glsl. Please read it to\\n // get better comments on what's happening:\\n float pixelsThickness = max(normalLength, minThickness * u_sizeRatio);\\n float webGLThickness = pixelsThickness * u_correctionRatio / u_sizeRatio;\\n\\n // Here, we move the point to leave space for the arrow head:\\n float direction = sign(radius);\\n float webGLNodeRadius = direction * radius * 2.0 * u_correctionRatio / u_sizeRatio;\\n float webGLArrowHeadLength = webGLThickness * u_lengthToThicknessRatio * 2.0;\\n\\n vec2 compensationVector = vec2(-direction * unitNormal.y, direction * unitNormal.x) * (webGLNodeRadius + webGLArrowHeadLength);\\n\\n // Here is the proper position of the vertex\\n gl_Position = vec4((u_matrix * vec3(position + unitNormal * webGLThickness + compensationVector, 1)).xy, 0, 1);\\n\\n v_thickness = webGLThickness / u_zoomRatio;\\n\\n v_normal = unitNormal;\\n\\n v_feather = u_feather * u_correctionRatio / u_zoomRatio / u_pixelRatio * 2.0;\\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_color = a_color;\\n #endif\\n\\n v_color.a *= bias;\\n}\\n\";\nvar VERTEX_SHADER_SOURCE$1 = SHADER_SOURCE$1;\n\nvar _WebGLRenderingContex$1 = WebGLRenderingContext,\n UNSIGNED_BYTE$1 = _WebGLRenderingContex$1.UNSIGNED_BYTE,\n FLOAT$1 = _WebGLRenderingContex$1.FLOAT;\nvar UNIFORMS$1 = [\"u_matrix\", \"u_zoomRatio\", \"u_sizeRatio\", \"u_correctionRatio\", \"u_pixelRatio\", \"u_feather\", \"u_minEdgeThickness\", \"u_lengthToThicknessRatio\"];\nvar DEFAULT_EDGE_CLAMPED_PROGRAM_OPTIONS = {\n lengthToThicknessRatio: DEFAULT_EDGE_ARROW_HEAD_PROGRAM_OPTIONS.lengthToThicknessRatio\n};\nfunction createEdgeClampedProgram(inputOptions) {\n var options = _objectSpread2(_objectSpread2({}, DEFAULT_EDGE_CLAMPED_PROGRAM_OPTIONS), inputOptions || {});\n return /*#__PURE__*/function (_EdgeProgram) {\n function EdgeClampedProgram() {\n _classCallCheck(this, EdgeClampedProgram);\n return _callSuper(this, EdgeClampedProgram, arguments);\n }\n _inherits(EdgeClampedProgram, _EdgeProgram);\n return _createClass(EdgeClampedProgram, [{\n key: \"getDefinition\",\n value: function getDefinition() {\n return {\n VERTICES: 6,\n VERTEX_SHADER_SOURCE: VERTEX_SHADER_SOURCE$1,\n FRAGMENT_SHADER_SOURCE: FRAGMENT_SHADER_SOURCE,\n METHOD: WebGLRenderingContext.TRIANGLES,\n UNIFORMS: UNIFORMS$1,\n ATTRIBUTES: [{\n name: \"a_positionStart\",\n size: 2,\n type: FLOAT$1\n }, {\n name: \"a_positionEnd\",\n size: 2,\n type: FLOAT$1\n }, {\n name: \"a_normal\",\n size: 2,\n type: FLOAT$1\n }, {\n name: \"a_color\",\n size: 4,\n type: UNSIGNED_BYTE$1,\n normalized: true\n }, {\n name: \"a_id\",\n size: 4,\n type: UNSIGNED_BYTE$1,\n normalized: true\n }, {\n name: \"a_radius\",\n size: 1,\n type: FLOAT$1\n }],\n CONSTANT_ATTRIBUTES: [\n // If 0, then position will be a_positionStart\n // If 1, then position will be a_positionEnd\n {\n name: \"a_positionCoef\",\n size: 1,\n type: FLOAT$1\n }, {\n name: \"a_normalCoef\",\n size: 1,\n type: FLOAT$1\n }, {\n name: \"a_radiusCoef\",\n size: 1,\n type: FLOAT$1\n }],\n CONSTANT_DATA: [[0, 1, 0], [0, -1, 0], [1, 1, 1], [1, 1, 1], [0, -1, 0], [1, -1, -1]]\n };\n }\n }, {\n key: \"processVisibleItem\",\n value: function processVisibleItem(edgeIndex, startIndex, sourceData, targetData, data) {\n var thickness = data.size || 1;\n var x1 = sourceData.x;\n var y1 = sourceData.y;\n var x2 = targetData.x;\n var y2 = targetData.y;\n var color = floatColor(data.color);\n\n // Computing normals\n var dx = x2 - x1;\n var dy = y2 - y1;\n var radius = targetData.size || 1;\n var len = dx * dx + dy * dy;\n var n1 = 0;\n var n2 = 0;\n if (len) {\n len = 1 / Math.sqrt(len);\n n1 = -dy * len * thickness;\n n2 = dx * len * thickness;\n }\n var array = this.array;\n array[startIndex++] = x1;\n array[startIndex++] = y1;\n array[startIndex++] = x2;\n array[startIndex++] = y2;\n array[startIndex++] = n1;\n array[startIndex++] = n2;\n array[startIndex++] = color;\n array[startIndex++] = edgeIndex;\n array[startIndex++] = radius;\n }\n }, {\n key: \"setUniforms\",\n value: function setUniforms(params, _ref) {\n var gl = _ref.gl,\n uniformLocations = _ref.uniformLocations;\n var u_matrix = uniformLocations.u_matrix,\n u_zoomRatio = uniformLocations.u_zoomRatio,\n u_feather = uniformLocations.u_feather,\n u_pixelRatio = uniformLocations.u_pixelRatio,\n u_correctionRatio = uniformLocations.u_correctionRatio,\n u_sizeRatio = uniformLocations.u_sizeRatio,\n u_minEdgeThickness = uniformLocations.u_minEdgeThickness,\n u_lengthToThicknessRatio = uniformLocations.u_lengthToThicknessRatio;\n gl.uniformMatrix3fv(u_matrix, false, params.matrix);\n gl.uniform1f(u_zoomRatio, params.zoomRatio);\n gl.uniform1f(u_sizeRatio, params.sizeRatio);\n gl.uniform1f(u_correctionRatio, params.correctionRatio);\n gl.uniform1f(u_pixelRatio, params.pixelRatio);\n gl.uniform1f(u_feather, params.antiAliasingFeather);\n gl.uniform1f(u_minEdgeThickness, params.minEdgeThickness);\n gl.uniform1f(u_lengthToThicknessRatio, options.lengthToThicknessRatio);\n }\n }]);\n }(EdgeProgram);\n}\nvar EdgeClampedProgram = createEdgeClampedProgram();\nvar EdgeClampedProgram$1 = EdgeClampedProgram;\n\nfunction createEdgeArrowProgram(inputOptions) {\n return createEdgeCompoundProgram([createEdgeClampedProgram(inputOptions), createEdgeArrowHeadProgram(inputOptions)]);\n}\nvar EdgeArrowProgram = createEdgeArrowProgram();\nvar EdgeArrowProgram$1 = EdgeArrowProgram;\n\n// language=GLSL\nvar SHADER_SOURCE = /*glsl*/\"\\nattribute vec4 a_id;\\nattribute vec4 a_color;\\nattribute vec2 a_normal;\\nattribute float a_normalCoef;\\nattribute vec2 a_positionStart;\\nattribute vec2 a_positionEnd;\\nattribute float a_positionCoef;\\n\\nuniform mat3 u_matrix;\\nuniform float u_sizeRatio;\\nuniform float u_zoomRatio;\\nuniform float u_pixelRatio;\\nuniform float u_correctionRatio;\\nuniform float u_minEdgeThickness;\\nuniform float u_feather;\\n\\nvarying vec4 v_color;\\nvarying vec2 v_normal;\\nvarying float v_thickness;\\nvarying float v_feather;\\n\\nconst float bias = 255.0 / 254.0;\\n\\nvoid main() {\\n float minThickness = u_minEdgeThickness;\\n\\n vec2 normal = a_normal * a_normalCoef;\\n vec2 position = a_positionStart * (1.0 - a_positionCoef) + a_positionEnd * a_positionCoef;\\n\\n float normalLength = length(normal);\\n vec2 unitNormal = normal / normalLength;\\n\\n // We require edges to be at least \\\"minThickness\\\" pixels thick *on screen*\\n // (so we need to compensate the size ratio):\\n float pixelsThickness = max(normalLength, minThickness * u_sizeRatio);\\n\\n // Then, we need to retrieve the normalized thickness of the edge in the WebGL\\n // referential (in a ([0, 1], [0, 1]) space), using our \\\"magic\\\" correction\\n // ratio:\\n float webGLThickness = pixelsThickness * u_correctionRatio / u_sizeRatio;\\n\\n // Here is the proper position of the vertex\\n gl_Position = vec4((u_matrix * vec3(position + unitNormal * webGLThickness, 1)).xy, 0, 1);\\n\\n // For the fragment shader though, we need a thickness that takes the \\\"magic\\\"\\n // correction ratio into account (as in webGLThickness), but so that the\\n // antialiasing effect does not depend on the zoom level. So here's yet\\n // another thickness version:\\n v_thickness = webGLThickness / u_zoomRatio;\\n\\n v_normal = unitNormal;\\n\\n v_feather = u_feather * u_correctionRatio / u_zoomRatio / u_pixelRatio * 2.0;\\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_color = a_color;\\n #endif\\n\\n v_color.a *= bias;\\n}\\n\";\nvar VERTEX_SHADER_SOURCE = SHADER_SOURCE;\n\nvar _WebGLRenderingContex = WebGLRenderingContext,\n UNSIGNED_BYTE = _WebGLRenderingContex.UNSIGNED_BYTE,\n FLOAT = _WebGLRenderingContex.FLOAT;\nvar UNIFORMS = [\"u_matrix\", \"u_zoomRatio\", \"u_sizeRatio\", \"u_correctionRatio\", \"u_pixelRatio\", \"u_feather\", \"u_minEdgeThickness\"];\nvar EdgeRectangleProgram = /*#__PURE__*/function (_EdgeProgram) {\n function EdgeRectangleProgram() {\n _classCallCheck(this, EdgeRectangleProgram);\n return _callSuper(this, EdgeRectangleProgram, arguments);\n }\n _inherits(EdgeRectangleProgram, _EdgeProgram);\n return _createClass(EdgeRectangleProgram, [{\n key: \"getDefinition\",\n value: function getDefinition() {\n return {\n VERTICES: 6,\n VERTEX_SHADER_SOURCE: VERTEX_SHADER_SOURCE,\n FRAGMENT_SHADER_SOURCE: FRAGMENT_SHADER_SOURCE,\n METHOD: WebGLRenderingContext.TRIANGLES,\n UNIFORMS: UNIFORMS,\n ATTRIBUTES: [{\n name: \"a_positionStart\",\n size: 2,\n type: FLOAT\n }, {\n name: \"a_positionEnd\",\n size: 2,\n type: FLOAT\n }, {\n name: \"a_normal\",\n size: 2,\n type: FLOAT\n }, {\n name: \"a_color\",\n size: 4,\n type: UNSIGNED_BYTE,\n normalized: true\n }, {\n name: \"a_id\",\n size: 4,\n type: UNSIGNED_BYTE,\n normalized: true\n }],\n CONSTANT_ATTRIBUTES: [\n // If 0, then position will be a_positionStart\n // If 2, then position will be a_positionEnd\n {\n name: \"a_positionCoef\",\n size: 1,\n type: FLOAT\n }, {\n name: \"a_normalCoef\",\n size: 1,\n type: FLOAT\n }],\n CONSTANT_DATA: [[0, 1], [0, -1], [1, 1], [1, 1], [0, -1], [1, -1]]\n };\n }\n }, {\n key: \"processVisibleItem\",\n value: function processVisibleItem(edgeIndex, startIndex, sourceData, targetData, data) {\n var thickness = data.size || 1;\n var x1 = sourceData.x;\n var y1 = sourceData.y;\n var x2 = targetData.x;\n var y2 = targetData.y;\n var color = floatColor(data.color);\n\n // Computing normals\n var dx = x2 - x1;\n var dy = y2 - y1;\n var len = dx * dx + dy * dy;\n var n1 = 0;\n var n2 = 0;\n if (len) {\n len = 1 / Math.sqrt(len);\n n1 = -dy * len * thickness;\n n2 = dx * len * thickness;\n }\n var array = this.array;\n array[startIndex++] = x1;\n array[startIndex++] = y1;\n array[startIndex++] = x2;\n array[startIndex++] = y2;\n array[startIndex++] = n1;\n array[startIndex++] = n2;\n array[startIndex++] = color;\n array[startIndex++] = edgeIndex;\n }\n }, {\n key: \"setUniforms\",\n value: function setUniforms(params, _ref) {\n var gl = _ref.gl,\n uniformLocations = _ref.uniformLocations;\n var u_matrix = uniformLocations.u_matrix,\n u_zoomRatio = uniformLocations.u_zoomRatio,\n u_feather = uniformLocations.u_feather,\n u_pixelRatio = uniformLocations.u_pixelRatio,\n u_correctionRatio = uniformLocations.u_correctionRatio,\n u_sizeRatio = uniformLocations.u_sizeRatio,\n u_minEdgeThickness = uniformLocations.u_minEdgeThickness;\n gl.uniformMatrix3fv(u_matrix, false, params.matrix);\n gl.uniform1f(u_zoomRatio, params.zoomRatio);\n gl.uniform1f(u_sizeRatio, params.sizeRatio);\n gl.uniform1f(u_correctionRatio, params.correctionRatio);\n gl.uniform1f(u_pixelRatio, params.pixelRatio);\n gl.uniform1f(u_feather, params.antiAliasingFeather);\n gl.uniform1f(u_minEdgeThickness, params.minEdgeThickness);\n }\n }]);\n}(EdgeProgram);\n\nexport { AbstractNodeProgram as A, DEFAULT_EDGE_ARROW_HEAD_PROGRAM_OPTIONS as D, EdgeArrowProgram$1 as E, FRAGMENT_SHADER_SOURCE as F, NodeCircleProgram as N, Program as P, _objectSpread2 as _, _defineProperty as a, drawDiscNodeLabel as b, drawDiscNodeHover as c, drawStraightEdgeLabel as d, EdgeRectangleProgram as e, NodeProgram as f, EdgeProgram as g, createEdgeCompoundProgram as h, createEdgeArrowHeadProgram as i, createNodeCompoundProgram as j, AbstractEdgeProgram as k, AbstractProgram as l, EdgeArrowHeadProgram$1 as m, EdgeClampedProgram$1 as n, createEdgeClampedProgram as o, DEFAULT_EDGE_CLAMPED_PROGRAM_OPTIONS as p, createEdgeArrowProgram as q, getAttributeItemsCount as r, getAttributesItemsCount as s, loadVertexShader as t, loadFragmentShader as u, loadProgram as v, killProgram as w, numberToGLSLFloat as x };\n"],"names":["_toPrimitive","t","e","i","_toPropertyKey","_classCallCheck","a","n","_defineProperties","o","_createClass","_getPrototypeOf","_isNativeReflectConstruct","_assertThisInitialized","_possibleConstructorReturn","_callSuper","_setPrototypeOf","_inherits","_arrayWithHoles","r","_iterableToArrayLimit","l","u","f","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","_slicedToArray","HTML_COLORS","INT8","INT32","FLOAT32","RGBA_TEST_REGEX","RGBA_EXTRACT_REGEX","parseColor","val","g","b","match","FLOAT_COLOR_CACHE","htmlColor","floatColor","rgbaToFloat","masking","parsed","color","colorToArray","intValue","FLOAT_INDEX_CACHE","indexToColor","index","colorToIndex","_a","getPixelColor","gl","frameBuffer","x","y","pixelRatio","downSizingRatio","bufferX","bufferY","pixel","_pixel","_defineProperty","ownKeys","_objectSpread2","_superPropBase","_get","p","_superPropGet","getAttributeItemsCount","attr","getAttributesItemsCount","attrs","res","loadShader","type","source","glType","shader","successfullyCompiled","infoLog","loadVertexShader","loadFragmentShader","loadProgram","shaders","program","successfullyLinked","info","killProgram","_ref","buffer","vertexShader","fragmentShader","numberToGLSLFloat","PICKING_PREFIX","SIZE_FACTOR_PER_ATTRIBUTE_TYPE","Program","pickingBuffer","renderer","def","constantAttributesItemsCount","vector","j","name","vertexShaderSource","fragmentShaderSource","uniformLocations","uniformName","location","attributeLocations","constantBuffer","_this","offset","_this2","setDivisor","sizeFactor","stride","ext","unsetDivisor","capacity","params","programInfo","method","NodeProgram","nodeIndex","data","EdgeProgram","_len","args","_key","edgeIndex","sourceData","targetData","createEdgeCompoundProgram","programClasses","drawLabel","EdgeCompoundProgram","drawStraightEdgeLabel","context","edgeData","settings","size","font","weight","label","sSize","tSize","sx","sy","tx","ty","cx","cy","dx","dy","d","textLength","ellipsis","angle","drawDiscNodeLabel","drawDiscNodeHover","PADDING","textWidth","boxWidth","boxHeight","radius","angleRadian","xDeltaCoord","SHADER_SOURCE$6","FRAGMENT_SHADER_SOURCE$2","SHADER_SOURCE$5","VERTEX_SHADER_SOURCE$3","_WebGLRenderingContex$3","UNSIGNED_BYTE$3","FLOAT$3","UNIFORMS$3","NodeCircleProgram","_NodeProgram","startIndex","array","u_sizeRatio","u_correctionRatio","u_matrix","SHADER_SOURCE$4","FRAGMENT_SHADER_SOURCE$1","SHADER_SOURCE$3","VERTEX_SHADER_SOURCE$2","_WebGLRenderingContex$2","UNSIGNED_BYTE$2","FLOAT$2","UNIFORMS$2","DEFAULT_EDGE_ARROW_HEAD_PROGRAM_OPTIONS","createEdgeArrowHeadProgram","inputOptions","options","_EdgeProgram","EdgeArrowHeadProgram","thickness","x1","y1","x2","y2","len","n1","n2","_ref2","u_minEdgeThickness","u_lengthToThicknessRatio","u_widenessToThicknessRatio","SHADER_SOURCE$2","FRAGMENT_SHADER_SOURCE","SHADER_SOURCE$1","VERTEX_SHADER_SOURCE$1","_WebGLRenderingContex$1","UNSIGNED_BYTE$1","FLOAT$1","UNIFORMS$1","DEFAULT_EDGE_CLAMPED_PROGRAM_OPTIONS","createEdgeClampedProgram","EdgeClampedProgram","u_zoomRatio","u_feather","u_pixelRatio","createEdgeArrowProgram","EdgeArrowProgram","EdgeArrowProgram$1","SHADER_SOURCE","VERTEX_SHADER_SOURCE","_WebGLRenderingContex","UNSIGNED_BYTE","FLOAT","UNIFORMS","EdgeRectangleProgram"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"index-fad77a13.esm-BMULHdcE.js","sources":["../../../../node_modules/.pnpm/sigma@3.0.3_graphology-types@0.24.8/node_modules/sigma/dist/inherits-d1a1e29b.esm.js","../../../../node_modules/.pnpm/sigma@3.0.3_graphology-types@0.24.8/node_modules/sigma/dist/colors-beb06eb2.esm.js","../../../../node_modules/.pnpm/sigma@3.0.3_graphology-types@0.24.8/node_modules/sigma/dist/index-fad77a13.esm.js"],"sourcesContent":["function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\n\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\n\nfunction _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\n\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\n\nfunction _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\n\nfunction _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function () {\n return !!t;\n })();\n}\n\nfunction _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\n\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == typeof e || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return _assertThisInitialized(t);\n}\n\nfunction _callSuper(t, o, e) {\n return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));\n}\n\nfunction _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\n\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && _setPrototypeOf(t, e);\n}\n\nexport { _inherits as _, _createClass as a, _classCallCheck as b, _callSuper as c, _toPropertyKey as d, _getPrototypeOf as e };\n","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\n\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\n\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\n\nvar HTML_COLORS = {\n black: \"#000000\",\n silver: \"#C0C0C0\",\n gray: \"#808080\",\n grey: \"#808080\",\n white: \"#FFFFFF\",\n maroon: \"#800000\",\n red: \"#FF0000\",\n purple: \"#800080\",\n fuchsia: \"#FF00FF\",\n green: \"#008000\",\n lime: \"#00FF00\",\n olive: \"#808000\",\n yellow: \"#FFFF00\",\n navy: \"#000080\",\n blue: \"#0000FF\",\n teal: \"#008080\",\n aqua: \"#00FFFF\",\n darkblue: \"#00008B\",\n mediumblue: \"#0000CD\",\n darkgreen: \"#006400\",\n darkcyan: \"#008B8B\",\n deepskyblue: \"#00BFFF\",\n darkturquoise: \"#00CED1\",\n mediumspringgreen: \"#00FA9A\",\n springgreen: \"#00FF7F\",\n cyan: \"#00FFFF\",\n midnightblue: \"#191970\",\n dodgerblue: \"#1E90FF\",\n lightseagreen: \"#20B2AA\",\n forestgreen: \"#228B22\",\n seagreen: \"#2E8B57\",\n darkslategray: \"#2F4F4F\",\n darkslategrey: \"#2F4F4F\",\n limegreen: \"#32CD32\",\n mediumseagreen: \"#3CB371\",\n turquoise: \"#40E0D0\",\n royalblue: \"#4169E1\",\n steelblue: \"#4682B4\",\n darkslateblue: \"#483D8B\",\n mediumturquoise: \"#48D1CC\",\n indigo: \"#4B0082\",\n darkolivegreen: \"#556B2F\",\n cadetblue: \"#5F9EA0\",\n cornflowerblue: \"#6495ED\",\n rebeccapurple: \"#663399\",\n mediumaquamarine: \"#66CDAA\",\n dimgray: \"#696969\",\n dimgrey: \"#696969\",\n slateblue: \"#6A5ACD\",\n olivedrab: \"#6B8E23\",\n slategray: \"#708090\",\n slategrey: \"#708090\",\n lightslategray: \"#778899\",\n lightslategrey: \"#778899\",\n mediumslateblue: \"#7B68EE\",\n lawngreen: \"#7CFC00\",\n chartreuse: \"#7FFF00\",\n aquamarine: \"#7FFFD4\",\n skyblue: \"#87CEEB\",\n lightskyblue: \"#87CEFA\",\n blueviolet: \"#8A2BE2\",\n darkred: \"#8B0000\",\n darkmagenta: \"#8B008B\",\n saddlebrown: \"#8B4513\",\n darkseagreen: \"#8FBC8F\",\n lightgreen: \"#90EE90\",\n mediumpurple: \"#9370DB\",\n darkviolet: \"#9400D3\",\n palegreen: \"#98FB98\",\n darkorchid: \"#9932CC\",\n yellowgreen: \"#9ACD32\",\n sienna: \"#A0522D\",\n brown: \"#A52A2A\",\n darkgray: \"#A9A9A9\",\n darkgrey: \"#A9A9A9\",\n lightblue: \"#ADD8E6\",\n greenyellow: \"#ADFF2F\",\n paleturquoise: \"#AFEEEE\",\n lightsteelblue: \"#B0C4DE\",\n powderblue: \"#B0E0E6\",\n firebrick: \"#B22222\",\n darkgoldenrod: \"#B8860B\",\n mediumorchid: \"#BA55D3\",\n rosybrown: \"#BC8F8F\",\n darkkhaki: \"#BDB76B\",\n mediumvioletred: \"#C71585\",\n indianred: \"#CD5C5C\",\n peru: \"#CD853F\",\n chocolate: \"#D2691E\",\n tan: \"#D2B48C\",\n lightgray: \"#D3D3D3\",\n lightgrey: \"#D3D3D3\",\n thistle: \"#D8BFD8\",\n orchid: \"#DA70D6\",\n goldenrod: \"#DAA520\",\n palevioletred: \"#DB7093\",\n crimson: \"#DC143C\",\n gainsboro: \"#DCDCDC\",\n plum: \"#DDA0DD\",\n burlywood: \"#DEB887\",\n lightcyan: \"#E0FFFF\",\n lavender: \"#E6E6FA\",\n darksalmon: \"#E9967A\",\n violet: \"#EE82EE\",\n palegoldenrod: \"#EEE8AA\",\n lightcoral: \"#F08080\",\n khaki: \"#F0E68C\",\n aliceblue: \"#F0F8FF\",\n honeydew: \"#F0FFF0\",\n azure: \"#F0FFFF\",\n sandybrown: \"#F4A460\",\n wheat: \"#F5DEB3\",\n beige: \"#F5F5DC\",\n whitesmoke: \"#F5F5F5\",\n mintcream: \"#F5FFFA\",\n ghostwhite: \"#F8F8FF\",\n salmon: \"#FA8072\",\n antiquewhite: \"#FAEBD7\",\n linen: \"#FAF0E6\",\n lightgoldenrodyellow: \"#FAFAD2\",\n oldlace: \"#FDF5E6\",\n magenta: \"#FF00FF\",\n deeppink: \"#FF1493\",\n orangered: \"#FF4500\",\n tomato: \"#FF6347\",\n hotpink: \"#FF69B4\",\n coral: \"#FF7F50\",\n darkorange: \"#FF8C00\",\n lightsalmon: \"#FFA07A\",\n orange: \"#FFA500\",\n lightpink: \"#FFB6C1\",\n pink: \"#FFC0CB\",\n gold: \"#FFD700\",\n peachpuff: \"#FFDAB9\",\n navajowhite: \"#FFDEAD\",\n moccasin: \"#FFE4B5\",\n bisque: \"#FFE4C4\",\n mistyrose: \"#FFE4E1\",\n blanchedalmond: \"#FFEBCD\",\n papayawhip: \"#FFEFD5\",\n lavenderblush: \"#FFF0F5\",\n seashell: \"#FFF5EE\",\n cornsilk: \"#FFF8DC\",\n lemonchiffon: \"#FFFACD\",\n floralwhite: \"#FFFAF0\",\n snow: \"#FFFAFA\",\n lightyellow: \"#FFFFE0\",\n ivory: \"#FFFFF0\"\n};\n\n/**\n * Function extracting the color at the given pixel.\n */\nfunction extractPixel(gl, x, y, array) {\n var data = array || new Uint8Array(4);\n gl.readPixels(x, y, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, data);\n return data;\n}\n\n/**\n * Memoized function returning a float-encoded color from various string\n * formats describing colors.\n */\nvar INT8 = new Int8Array(4);\nvar INT32 = new Int32Array(INT8.buffer, 0, 1);\nvar FLOAT32 = new Float32Array(INT8.buffer, 0, 1);\nvar RGBA_TEST_REGEX = /^\\s*rgba?\\s*\\(/;\nvar RGBA_EXTRACT_REGEX = /^\\s*rgba?\\s*\\(\\s*([0-9]*)\\s*,\\s*([0-9]*)\\s*,\\s*([0-9]*)(?:\\s*,\\s*(.*)?)?\\)\\s*$/;\nfunction parseColor(val) {\n var r = 0; // byte\n var g = 0; // byte\n var b = 0; // byte\n var a = 1; // float\n\n // Handling hexadecimal notation\n if (val[0] === \"#\") {\n if (val.length === 4) {\n r = parseInt(val.charAt(1) + val.charAt(1), 16);\n g = parseInt(val.charAt(2) + val.charAt(2), 16);\n b = parseInt(val.charAt(3) + val.charAt(3), 16);\n } else {\n r = parseInt(val.charAt(1) + val.charAt(2), 16);\n g = parseInt(val.charAt(3) + val.charAt(4), 16);\n b = parseInt(val.charAt(5) + val.charAt(6), 16);\n }\n if (val.length === 9) {\n a = parseInt(val.charAt(7) + val.charAt(8), 16) / 255;\n }\n }\n\n // Handling rgb notation\n else if (RGBA_TEST_REGEX.test(val)) {\n var match = val.match(RGBA_EXTRACT_REGEX);\n if (match) {\n r = +match[1];\n g = +match[2];\n b = +match[3];\n if (match[4]) a = +match[4];\n }\n }\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nvar FLOAT_COLOR_CACHE = {};\nfor (var htmlColor in HTML_COLORS) {\n FLOAT_COLOR_CACHE[htmlColor] = floatColor(HTML_COLORS[htmlColor]);\n // Replicating cache for hex values for free\n FLOAT_COLOR_CACHE[HTML_COLORS[htmlColor]] = FLOAT_COLOR_CACHE[htmlColor];\n}\nfunction rgbaToFloat(r, g, b, a, masking) {\n INT32[0] = a << 24 | b << 16 | g << 8 | r;\n if (masking) INT32[0] = INT32[0] & 0xfeffffff;\n return FLOAT32[0];\n}\nfunction floatColor(val) {\n // The html color names are case-insensitive\n val = val.toLowerCase();\n\n // If the color is already computed, we yield it\n if (typeof FLOAT_COLOR_CACHE[val] !== \"undefined\") return FLOAT_COLOR_CACHE[val];\n var parsed = parseColor(val);\n var r = parsed.r,\n g = parsed.g,\n b = parsed.b;\n var a = parsed.a;\n a = a * 255 | 0;\n var color = rgbaToFloat(r, g, b, a, true);\n FLOAT_COLOR_CACHE[val] = color;\n return color;\n}\nfunction colorToArray(val, masking) {\n FLOAT32[0] = floatColor(val);\n var intValue = INT32[0];\n if (masking) {\n intValue = intValue | 0x01000000;\n }\n var r = intValue & 0xff;\n var g = intValue >> 8 & 0xff;\n var b = intValue >> 16 & 0xff;\n var a = intValue >> 24 & 0xff;\n return [r, g, b, a];\n}\nvar FLOAT_INDEX_CACHE = {};\nfunction indexToColor(index) {\n // If the index is already computed, we yield it\n if (typeof FLOAT_INDEX_CACHE[index] !== \"undefined\") return FLOAT_INDEX_CACHE[index];\n\n // To address issue #1397, one strategy is to keep encoding 4 bytes colors,\n // but with alpha hard-set to 1.0 (or 255):\n var r = (index & 0x00ff0000) >>> 16;\n var g = (index & 0x0000ff00) >>> 8;\n var b = index & 0x000000ff;\n var a = 0x000000ff;\n\n // The original 4 bytes color encoding was the following:\n // const r = (index & 0xff000000) >>> 24;\n // const g = (index & 0x00ff0000) >>> 16;\n // const b = (index & 0x0000ff00) >>> 8;\n // const a = index & 0x000000ff;\n\n var color = rgbaToFloat(r, g, b, a, true);\n FLOAT_INDEX_CACHE[index] = color;\n return color;\n}\nfunction colorToIndex(r, g, b, _a) {\n // As for the function indexToColor, because of #1397 and the \"alpha is always\n // 1.0\" strategy, we need to fix this function as well:\n return b + (g << 8) + (r << 16);\n\n // The original 4 bytes color decoding is the following:\n // return a + (b << 8) + (g << 16) + (r << 24);\n}\nfunction getPixelColor(gl, frameBuffer, x, y, pixelRatio, downSizingRatio) {\n var bufferX = Math.floor(x / downSizingRatio * pixelRatio);\n var bufferY = Math.floor(gl.drawingBufferHeight / downSizingRatio - y / downSizingRatio * pixelRatio);\n var pixel = new Uint8Array(4);\n gl.bindFramebuffer(gl.FRAMEBUFFER, frameBuffer);\n gl.readPixels(bufferX, bufferY, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, pixel);\n var _pixel = _slicedToArray(pixel, 4),\n r = _pixel[0],\n g = _pixel[1],\n b = _pixel[2],\n a = _pixel[3];\n return [r, g, b, a];\n}\n\nexport { HTML_COLORS as H, _slicedToArray as _, _arrayLikeToArray as a, _unsupportedIterableToArray as b, colorToIndex as c, colorToArray as d, extractPixel as e, floatColor as f, getPixelColor as g, indexToColor as i, parseColor as p, rgbaToFloat as r };\n","import { d as _toPropertyKey, e as _getPrototypeOf, a as _createClass, b as _classCallCheck, _ as _inherits, c as _callSuper } from './inherits-d1a1e29b.esm.js';\nimport { i as indexToColor, f as floatColor } from './colors-beb06eb2.esm.js';\n\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\n\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\n\nfunction _superPropBase(t, o) {\n for (; !{}.hasOwnProperty.call(t, o) && null !== (t = _getPrototypeOf(t)););\n return t;\n}\n\nfunction _get() {\n return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {\n var p = _superPropBase(e, t);\n if (p) {\n var n = Object.getOwnPropertyDescriptor(p, t);\n return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;\n }\n }, _get.apply(null, arguments);\n}\n\nfunction _superPropGet(t, o, e, r) {\n var p = _get(_getPrototypeOf(1 & r ? t.prototype : t), o, e);\n return 2 & r && \"function\" == typeof p ? function (t) {\n return p.apply(e, t);\n } : p;\n}\n\nfunction getAttributeItemsCount(attr) {\n return attr.normalized ? 1 : attr.size;\n}\nfunction getAttributesItemsCount(attrs) {\n var res = 0;\n attrs.forEach(function (attr) {\n return res += getAttributeItemsCount(attr);\n });\n return res;\n}\nfunction loadShader(type, gl, source) {\n var glType = type === \"VERTEX\" ? gl.VERTEX_SHADER : gl.FRAGMENT_SHADER;\n\n // Creating the shader\n var shader = gl.createShader(glType);\n if (shader === null) {\n throw new Error(\"loadShader: error while creating the shader\");\n }\n\n // Loading source\n gl.shaderSource(shader, source);\n\n // Compiling the shader\n gl.compileShader(shader);\n\n // Retrieving compilation status\n var successfullyCompiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n\n // Throwing if something went awry\n if (!successfullyCompiled) {\n var infoLog = gl.getShaderInfoLog(shader);\n gl.deleteShader(shader);\n throw new Error(\"loadShader: error while compiling the shader:\\n\".concat(infoLog, \"\\n\").concat(source));\n }\n return shader;\n}\nfunction loadVertexShader(gl, source) {\n return loadShader(\"VERTEX\", gl, source);\n}\nfunction loadFragmentShader(gl, source) {\n return loadShader(\"FRAGMENT\", gl, source);\n}\n\n/**\n * Function used to load a program.\n */\nfunction loadProgram(gl, shaders) {\n var program = gl.createProgram();\n if (program === null) {\n throw new Error(\"loadProgram: error while creating the program.\");\n }\n var i, l;\n\n // Attaching the shaders\n for (i = 0, l = shaders.length; i < l; i++) gl.attachShader(program, shaders[i]);\n gl.linkProgram(program);\n\n // Checking status\n var successfullyLinked = gl.getProgramParameter(program, gl.LINK_STATUS);\n if (!successfullyLinked) {\n var info = gl.getProgramInfoLog(program);\n gl.deleteProgram(program);\n throw new Error(\"loadProgram: error while linking the program: \".concat(info));\n }\n return program;\n}\nfunction killProgram(_ref) {\n var gl = _ref.gl,\n buffer = _ref.buffer,\n program = _ref.program,\n vertexShader = _ref.vertexShader,\n fragmentShader = _ref.fragmentShader;\n gl.deleteShader(vertexShader);\n gl.deleteShader(fragmentShader);\n gl.deleteProgram(program);\n gl.deleteBuffer(buffer);\n}\n\n/**\n * Function use to print a float for inserting in a GLSL program.\n */\nfunction numberToGLSLFloat(n) {\n return n % 1 === 0 ? n.toFixed(1) : n.toString();\n}\n\nvar PICKING_PREFIX = \"#define PICKING_MODE\\n\";\nvar SIZE_FACTOR_PER_ATTRIBUTE_TYPE = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, WebGL2RenderingContext.BOOL, 1), WebGL2RenderingContext.BYTE, 1), WebGL2RenderingContext.UNSIGNED_BYTE, 1), WebGL2RenderingContext.SHORT, 2), WebGL2RenderingContext.UNSIGNED_SHORT, 2), WebGL2RenderingContext.INT, 4), WebGL2RenderingContext.UNSIGNED_INT, 4), WebGL2RenderingContext.FLOAT, 4);\nvar AbstractProgram = /*#__PURE__*/_createClass(function AbstractProgram(_gl, _pickGl, _renderer) {\n _classCallCheck(this, AbstractProgram);\n});\nvar Program = /*#__PURE__*/function () {\n function Program(gl, pickingBuffer, renderer) {\n _classCallCheck(this, Program);\n // GLenum\n _defineProperty(this, \"array\", new Float32Array());\n _defineProperty(this, \"constantArray\", new Float32Array());\n _defineProperty(this, \"capacity\", 0);\n _defineProperty(this, \"verticesCount\", 0);\n // Reading and caching program definition\n var def = this.getDefinition();\n this.VERTICES = def.VERTICES;\n this.VERTEX_SHADER_SOURCE = def.VERTEX_SHADER_SOURCE;\n this.FRAGMENT_SHADER_SOURCE = def.FRAGMENT_SHADER_SOURCE;\n this.UNIFORMS = def.UNIFORMS;\n this.ATTRIBUTES = def.ATTRIBUTES;\n this.METHOD = def.METHOD;\n this.CONSTANT_ATTRIBUTES = \"CONSTANT_ATTRIBUTES\" in def ? def.CONSTANT_ATTRIBUTES : [];\n this.CONSTANT_DATA = \"CONSTANT_DATA\" in def ? def.CONSTANT_DATA : [];\n this.isInstanced = \"CONSTANT_ATTRIBUTES\" in def;\n\n // Computing stride\n this.ATTRIBUTES_ITEMS_COUNT = getAttributesItemsCount(this.ATTRIBUTES);\n this.STRIDE = this.VERTICES * this.ATTRIBUTES_ITEMS_COUNT;\n\n // Members\n this.renderer = renderer;\n this.normalProgram = this.getProgramInfo(\"normal\", gl, def.VERTEX_SHADER_SOURCE, def.FRAGMENT_SHADER_SOURCE, null);\n this.pickProgram = pickingBuffer ? this.getProgramInfo(\"pick\", gl, PICKING_PREFIX + def.VERTEX_SHADER_SOURCE, PICKING_PREFIX + def.FRAGMENT_SHADER_SOURCE, pickingBuffer) : null;\n\n // For instanced programs:\n if (this.isInstanced) {\n var constantAttributesItemsCount = getAttributesItemsCount(this.CONSTANT_ATTRIBUTES);\n if (this.CONSTANT_DATA.length !== this.VERTICES) throw new Error(\"Program: error while getting constant data (expected \".concat(this.VERTICES, \" items, received \").concat(this.CONSTANT_DATA.length, \" instead)\"));\n this.constantArray = new Float32Array(this.CONSTANT_DATA.length * constantAttributesItemsCount);\n for (var i = 0; i < this.CONSTANT_DATA.length; i++) {\n var vector = this.CONSTANT_DATA[i];\n if (vector.length !== constantAttributesItemsCount) throw new Error(\"Program: error while getting constant data (one vector has \".concat(vector.length, \" items instead of \").concat(constantAttributesItemsCount, \")\"));\n for (var j = 0; j < vector.length; j++) this.constantArray[i * constantAttributesItemsCount + j] = vector[j];\n }\n this.STRIDE = this.ATTRIBUTES_ITEMS_COUNT;\n }\n }\n return _createClass(Program, [{\n key: \"kill\",\n value: function kill() {\n killProgram(this.normalProgram);\n if (this.pickProgram) {\n killProgram(this.pickProgram);\n this.pickProgram = null;\n }\n }\n }, {\n key: \"getProgramInfo\",\n value: function getProgramInfo(name, gl, vertexShaderSource, fragmentShaderSource, frameBuffer) {\n var def = this.getDefinition();\n\n // WebGL buffers\n var buffer = gl.createBuffer();\n if (buffer === null) throw new Error(\"Program: error while creating the WebGL buffer.\");\n\n // Shaders and program\n var vertexShader = loadVertexShader(gl, vertexShaderSource);\n var fragmentShader = loadFragmentShader(gl, fragmentShaderSource);\n var program = loadProgram(gl, [vertexShader, fragmentShader]);\n\n // Initializing locations\n var uniformLocations = {};\n def.UNIFORMS.forEach(function (uniformName) {\n var location = gl.getUniformLocation(program, uniformName);\n if (location) uniformLocations[uniformName] = location;\n });\n var attributeLocations = {};\n def.ATTRIBUTES.forEach(function (attr) {\n attributeLocations[attr.name] = gl.getAttribLocation(program, attr.name);\n });\n\n // For instanced programs:\n var constantBuffer;\n if (\"CONSTANT_ATTRIBUTES\" in def) {\n def.CONSTANT_ATTRIBUTES.forEach(function (attr) {\n attributeLocations[attr.name] = gl.getAttribLocation(program, attr.name);\n });\n constantBuffer = gl.createBuffer();\n if (constantBuffer === null) throw new Error(\"Program: error while creating the WebGL constant buffer.\");\n }\n return {\n name: name,\n program: program,\n gl: gl,\n frameBuffer: frameBuffer,\n buffer: buffer,\n constantBuffer: constantBuffer || {},\n uniformLocations: uniformLocations,\n attributeLocations: attributeLocations,\n isPicking: name === \"pick\",\n vertexShader: vertexShader,\n fragmentShader: fragmentShader\n };\n }\n }, {\n key: \"bindProgram\",\n value: function bindProgram(program) {\n var _this = this;\n var offset = 0;\n var gl = program.gl,\n buffer = program.buffer;\n if (!this.isInstanced) {\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n offset = 0;\n this.ATTRIBUTES.forEach(function (attr) {\n return offset += _this.bindAttribute(attr, program, offset);\n });\n gl.bufferData(gl.ARRAY_BUFFER, this.array, gl.DYNAMIC_DRAW);\n } else {\n // Handle constant data (things that remain unchanged for all items):\n gl.bindBuffer(gl.ARRAY_BUFFER, program.constantBuffer);\n offset = 0;\n this.CONSTANT_ATTRIBUTES.forEach(function (attr) {\n return offset += _this.bindAttribute(attr, program, offset, false);\n });\n gl.bufferData(gl.ARRAY_BUFFER, this.constantArray, gl.STATIC_DRAW);\n\n // Handle \"instance specific\" data (things that vary for each item):\n gl.bindBuffer(gl.ARRAY_BUFFER, program.buffer);\n offset = 0;\n this.ATTRIBUTES.forEach(function (attr) {\n return offset += _this.bindAttribute(attr, program, offset, true);\n });\n gl.bufferData(gl.ARRAY_BUFFER, this.array, gl.DYNAMIC_DRAW);\n }\n gl.bindBuffer(gl.ARRAY_BUFFER, null);\n }\n }, {\n key: \"unbindProgram\",\n value: function unbindProgram(program) {\n var _this2 = this;\n if (!this.isInstanced) {\n this.ATTRIBUTES.forEach(function (attr) {\n return _this2.unbindAttribute(attr, program);\n });\n } else {\n this.CONSTANT_ATTRIBUTES.forEach(function (attr) {\n return _this2.unbindAttribute(attr, program, false);\n });\n this.ATTRIBUTES.forEach(function (attr) {\n return _this2.unbindAttribute(attr, program, true);\n });\n }\n }\n }, {\n key: \"bindAttribute\",\n value: function bindAttribute(attr, program, offset, setDivisor) {\n var sizeFactor = SIZE_FACTOR_PER_ATTRIBUTE_TYPE[attr.type];\n if (typeof sizeFactor !== \"number\") throw new Error(\"Program.bind: yet unsupported attribute type \\\"\".concat(attr.type, \"\\\"\"));\n var location = program.attributeLocations[attr.name];\n var gl = program.gl;\n if (location !== -1) {\n gl.enableVertexAttribArray(location);\n var stride = !this.isInstanced ? this.ATTRIBUTES_ITEMS_COUNT * Float32Array.BYTES_PER_ELEMENT : (setDivisor ? this.ATTRIBUTES_ITEMS_COUNT : getAttributesItemsCount(this.CONSTANT_ATTRIBUTES)) * Float32Array.BYTES_PER_ELEMENT;\n gl.vertexAttribPointer(location, attr.size, attr.type, attr.normalized || false, stride, offset);\n if (this.isInstanced && setDivisor) {\n if (gl instanceof WebGL2RenderingContext) {\n gl.vertexAttribDivisor(location, 1);\n } else {\n var ext = gl.getExtension(\"ANGLE_instanced_arrays\");\n if (ext) ext.vertexAttribDivisorANGLE(location, 1);\n }\n }\n }\n return attr.size * sizeFactor;\n }\n }, {\n key: \"unbindAttribute\",\n value: function unbindAttribute(attr, program, unsetDivisor) {\n var location = program.attributeLocations[attr.name];\n var gl = program.gl;\n if (location !== -1) {\n gl.disableVertexAttribArray(location);\n if (this.isInstanced && unsetDivisor) {\n if (gl instanceof WebGL2RenderingContext) {\n gl.vertexAttribDivisor(location, 0);\n } else {\n var ext = gl.getExtension(\"ANGLE_instanced_arrays\");\n if (ext) ext.vertexAttribDivisorANGLE(location, 0);\n }\n }\n }\n }\n }, {\n key: \"reallocate\",\n value: function reallocate(capacity) {\n // If desired capacity has not changed we do nothing\n // NOTE: it's possible here to implement more subtle reallocation schemes\n // when the number of rendered items increase or decrease\n if (capacity === this.capacity) return;\n this.capacity = capacity;\n this.verticesCount = this.VERTICES * capacity;\n this.array = new Float32Array(!this.isInstanced ? this.verticesCount * this.ATTRIBUTES_ITEMS_COUNT : this.capacity * this.ATTRIBUTES_ITEMS_COUNT);\n }\n }, {\n key: \"hasNothingToRender\",\n value: function hasNothingToRender() {\n return this.verticesCount === 0;\n }\n }, {\n key: \"renderProgram\",\n value: function renderProgram(params, programInfo) {\n var gl = programInfo.gl,\n program = programInfo.program;\n\n // With the current fix for #1397, the alpha blending is enabled for the\n // picking layer:\n gl.enable(gl.BLEND);\n\n // Original code:\n // if (!isPicking) gl.enable(gl.BLEND);\n // else gl.disable(gl.BLEND);\n\n gl.useProgram(program);\n this.setUniforms(params, programInfo);\n this.drawWebGL(this.METHOD, programInfo);\n }\n }, {\n key: \"render\",\n value: function render(params) {\n if (this.hasNothingToRender()) return;\n if (this.pickProgram) {\n this.pickProgram.gl.viewport(0, 0, params.width * params.pixelRatio / params.downSizingRatio, params.height * params.pixelRatio / params.downSizingRatio);\n this.bindProgram(this.pickProgram);\n this.renderProgram(_objectSpread2(_objectSpread2({}, params), {}, {\n pixelRatio: params.pixelRatio / params.downSizingRatio\n }), this.pickProgram);\n this.unbindProgram(this.pickProgram);\n }\n this.normalProgram.gl.viewport(0, 0, params.width * params.pixelRatio, params.height * params.pixelRatio);\n this.bindProgram(this.normalProgram);\n this.renderProgram(params, this.normalProgram);\n this.unbindProgram(this.normalProgram);\n }\n }, {\n key: \"drawWebGL\",\n value: function drawWebGL(method, _ref) {\n var gl = _ref.gl,\n frameBuffer = _ref.frameBuffer;\n gl.bindFramebuffer(gl.FRAMEBUFFER, frameBuffer);\n if (!this.isInstanced) {\n gl.drawArrays(method, 0, this.verticesCount);\n } else {\n if (gl instanceof WebGL2RenderingContext) {\n gl.drawArraysInstanced(method, 0, this.VERTICES, this.capacity);\n } else {\n var ext = gl.getExtension(\"ANGLE_instanced_arrays\");\n if (ext) ext.drawArraysInstancedANGLE(method, 0, this.VERTICES, this.capacity);\n }\n }\n }\n }]);\n}();\n\nvar AbstractNodeProgram = /*#__PURE__*/function (_AbstractProgram) {\n function AbstractNodeProgram() {\n _classCallCheck(this, AbstractNodeProgram);\n return _callSuper(this, AbstractNodeProgram, arguments);\n }\n _inherits(AbstractNodeProgram, _AbstractProgram);\n return _createClass(AbstractNodeProgram);\n}(AbstractProgram);\nvar NodeProgram = /*#__PURE__*/function (_ref) {\n function NodeProgram() {\n _classCallCheck(this, NodeProgram);\n return _callSuper(this, NodeProgram, arguments);\n }\n _inherits(NodeProgram, _ref);\n return _createClass(NodeProgram, [{\n key: \"kill\",\n value: function kill() {\n _superPropGet(NodeProgram, \"kill\", this, 3)([]);\n }\n }, {\n key: \"process\",\n value: function process(nodeIndex, offset, data) {\n var i = offset * this.STRIDE;\n // NOTE: dealing with hidden items automatically\n if (data.hidden) {\n for (var l = i + this.STRIDE; i < l; i++) {\n this.array[i] = 0;\n }\n return;\n }\n return this.processVisibleItem(indexToColor(nodeIndex), i, data);\n }\n }]);\n}(Program);\n/**\n * Helper function combining two or more programs into a single compound one.\n * Note that this is more a quick & easy way to combine program than a really\n * performant option. More performant programs can be written entirely.\n *\n * @param {array} programClasses - Program classes to combine.\n * @param {function} drawLabel - An optional node \"draw label\" function.\n * @param {function} drawHover - An optional node \"draw hover\" function.\n * @return {function}\n */\nfunction createNodeCompoundProgram(programClasses, drawLabel, drawHover) {\n return /*#__PURE__*/function () {\n function NodeCompoundProgram(gl, pickingBuffer, renderer) {\n _classCallCheck(this, NodeCompoundProgram);\n _defineProperty(this, \"drawLabel\", drawLabel);\n _defineProperty(this, \"drawHover\", drawHover);\n this.programs = programClasses.map(function (Program) {\n return new Program(gl, pickingBuffer, renderer);\n });\n }\n return _createClass(NodeCompoundProgram, [{\n key: \"reallocate\",\n value: function reallocate(capacity) {\n this.programs.forEach(function (program) {\n return program.reallocate(capacity);\n });\n }\n }, {\n key: \"process\",\n value: function process(nodeIndex, offset, data) {\n this.programs.forEach(function (program) {\n return program.process(nodeIndex, offset, data);\n });\n }\n }, {\n key: \"render\",\n value: function render(params) {\n this.programs.forEach(function (program) {\n return program.render(params);\n });\n }\n }, {\n key: \"kill\",\n value: function kill() {\n this.programs.forEach(function (program) {\n return program.kill();\n });\n }\n }]);\n }();\n}\n\nvar AbstractEdgeProgram = /*#__PURE__*/function (_AbstractProgram) {\n function AbstractEdgeProgram() {\n _classCallCheck(this, AbstractEdgeProgram);\n return _callSuper(this, AbstractEdgeProgram, arguments);\n }\n _inherits(AbstractEdgeProgram, _AbstractProgram);\n return _createClass(AbstractEdgeProgram);\n}(AbstractProgram);\nvar EdgeProgram = /*#__PURE__*/function (_ref) {\n function EdgeProgram() {\n var _this;\n _classCallCheck(this, EdgeProgram);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, EdgeProgram, [].concat(args));\n _defineProperty(_this, \"drawLabel\", undefined);\n return _this;\n }\n _inherits(EdgeProgram, _ref);\n return _createClass(EdgeProgram, [{\n key: \"kill\",\n value: function kill() {\n _superPropGet(EdgeProgram, \"kill\", this, 3)([]);\n }\n }, {\n key: \"process\",\n value: function process(edgeIndex, offset, sourceData, targetData, data) {\n var i = offset * this.STRIDE;\n // NOTE: dealing with hidden items automatically\n if (data.hidden || sourceData.hidden || targetData.hidden) {\n for (var l = i + this.STRIDE; i < l; i++) {\n this.array[i] = 0;\n }\n return;\n }\n return this.processVisibleItem(indexToColor(edgeIndex), i, sourceData, targetData, data);\n }\n }]);\n}(Program);\n/**\n * Helper function combining two or more programs into a single compound one.\n * Note that this is more a quick & easy way to combine program than a really\n * performant option. More performant programs can be written entirely.\n *\n * @param {array} programClasses - Program classes to combine.\n * @param {function} drawLabel - An optional edge \"draw label\" function.\n * @return {function}\n */\nfunction createEdgeCompoundProgram(programClasses, drawLabel) {\n return /*#__PURE__*/function () {\n function EdgeCompoundProgram(gl, pickingBuffer, renderer) {\n _classCallCheck(this, EdgeCompoundProgram);\n _defineProperty(this, \"drawLabel\", drawLabel);\n this.programs = programClasses.map(function (Program) {\n return new Program(gl, pickingBuffer, renderer);\n });\n }\n return _createClass(EdgeCompoundProgram, [{\n key: \"reallocate\",\n value: function reallocate(capacity) {\n this.programs.forEach(function (program) {\n return program.reallocate(capacity);\n });\n }\n }, {\n key: \"process\",\n value: function process(edgeIndex, offset, sourceData, targetData, data) {\n this.programs.forEach(function (program) {\n return program.process(edgeIndex, offset, sourceData, targetData, data);\n });\n }\n }, {\n key: \"render\",\n value: function render(params) {\n this.programs.forEach(function (program) {\n return program.render(params);\n });\n }\n }, {\n key: \"kill\",\n value: function kill() {\n this.programs.forEach(function (program) {\n return program.kill();\n });\n }\n }]);\n }();\n}\n\nfunction drawStraightEdgeLabel(context, edgeData, sourceData, targetData, settings) {\n var size = settings.edgeLabelSize,\n font = settings.edgeLabelFont,\n weight = settings.edgeLabelWeight,\n color = settings.edgeLabelColor.attribute ? edgeData[settings.edgeLabelColor.attribute] || settings.edgeLabelColor.color || \"#000\" : settings.edgeLabelColor.color;\n var label = edgeData.label;\n if (!label) return;\n context.fillStyle = color;\n context.font = \"\".concat(weight, \" \").concat(size, \"px \").concat(font);\n\n // Computing positions without considering nodes sizes:\n var sSize = sourceData.size;\n var tSize = targetData.size;\n var sx = sourceData.x;\n var sy = sourceData.y;\n var tx = targetData.x;\n var ty = targetData.y;\n var cx = (sx + tx) / 2;\n var cy = (sy + ty) / 2;\n var dx = tx - sx;\n var dy = ty - sy;\n var d = Math.sqrt(dx * dx + dy * dy);\n if (d < sSize + tSize) return;\n\n // Adding nodes sizes:\n sx += dx * sSize / d;\n sy += dy * sSize / d;\n tx -= dx * tSize / d;\n ty -= dy * tSize / d;\n cx = (sx + tx) / 2;\n cy = (sy + ty) / 2;\n dx = tx - sx;\n dy = ty - sy;\n d = Math.sqrt(dx * dx + dy * dy);\n\n // Handling ellipsis\n var textLength = context.measureText(label).width;\n if (textLength > d) {\n var ellipsis = \"…\";\n label = label + ellipsis;\n textLength = context.measureText(label).width;\n while (textLength > d && label.length > 1) {\n label = label.slice(0, -2) + ellipsis;\n textLength = context.measureText(label).width;\n }\n if (label.length < 4) return;\n }\n var angle;\n if (dx > 0) {\n if (dy > 0) angle = Math.acos(dx / d);else angle = Math.asin(dy / d);\n } else {\n if (dy > 0) angle = Math.acos(dx / d) + Math.PI;else angle = Math.asin(dx / d) + Math.PI / 2;\n }\n context.save();\n context.translate(cx, cy);\n context.rotate(angle);\n context.fillText(label, -textLength / 2, edgeData.size / 2 + size);\n context.restore();\n}\n\nfunction drawDiscNodeLabel(context, data, settings) {\n if (!data.label) return;\n var size = settings.labelSize,\n font = settings.labelFont,\n weight = settings.labelWeight,\n color = settings.labelColor.attribute ? data[settings.labelColor.attribute] || settings.labelColor.color || \"#000\" : settings.labelColor.color;\n context.fillStyle = color;\n context.font = \"\".concat(weight, \" \").concat(size, \"px \").concat(font);\n context.fillText(data.label, data.x + data.size + 3, data.y + size / 3);\n}\n\n/**\n * Draw an hovered node.\n * - if there is no label => display a shadow on the node\n * - if the label box is bigger than node size => display a label box that contains the node with a shadow\n * - else node with shadow and the label box\n */\nfunction drawDiscNodeHover(context, data, settings) {\n var size = settings.labelSize,\n font = settings.labelFont,\n weight = settings.labelWeight;\n context.font = \"\".concat(weight, \" \").concat(size, \"px \").concat(font);\n\n // Then we draw the label background\n context.fillStyle = \"#FFF\";\n context.shadowOffsetX = 0;\n context.shadowOffsetY = 0;\n context.shadowBlur = 8;\n context.shadowColor = \"#000\";\n var PADDING = 2;\n if (typeof data.label === \"string\") {\n var textWidth = context.measureText(data.label).width,\n boxWidth = Math.round(textWidth + 5),\n boxHeight = Math.round(size + 2 * PADDING),\n radius = Math.max(data.size, size / 2) + PADDING;\n var angleRadian = Math.asin(boxHeight / 2 / radius);\n var xDeltaCoord = Math.sqrt(Math.abs(Math.pow(radius, 2) - Math.pow(boxHeight / 2, 2)));\n context.beginPath();\n context.moveTo(data.x + xDeltaCoord, data.y + boxHeight / 2);\n context.lineTo(data.x + radius + boxWidth, data.y + boxHeight / 2);\n context.lineTo(data.x + radius + boxWidth, data.y - boxHeight / 2);\n context.lineTo(data.x + xDeltaCoord, data.y - boxHeight / 2);\n context.arc(data.x, data.y, radius, angleRadian, -angleRadian);\n context.closePath();\n context.fill();\n } else {\n context.beginPath();\n context.arc(data.x, data.y, data.size + PADDING, 0, Math.PI * 2);\n context.closePath();\n context.fill();\n }\n context.shadowOffsetX = 0;\n context.shadowOffsetY = 0;\n context.shadowBlur = 0;\n\n // And finally we draw the label\n drawDiscNodeLabel(context, data, settings);\n}\n\n// language=GLSL\nvar SHADER_SOURCE$6 = /*glsl*/\"\\nprecision highp float;\\n\\nvarying vec4 v_color;\\nvarying vec2 v_diffVector;\\nvarying float v_radius;\\n\\nuniform float u_correctionRatio;\\n\\nconst vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);\\n\\nvoid main(void) {\\n float border = u_correctionRatio * 2.0;\\n float dist = length(v_diffVector) - v_radius + border;\\n\\n // No antialiasing for picking mode:\\n #ifdef PICKING_MODE\\n if (dist > border)\\n gl_FragColor = transparent;\\n else\\n gl_FragColor = v_color;\\n\\n #else\\n float t = 0.0;\\n if (dist > border)\\n t = 1.0;\\n else if (dist > 0.0)\\n t = dist / border;\\n\\n gl_FragColor = mix(v_color, transparent, t);\\n #endif\\n}\\n\";\nvar FRAGMENT_SHADER_SOURCE$2 = SHADER_SOURCE$6;\n\n// language=GLSL\nvar SHADER_SOURCE$5 = /*glsl*/\"\\nattribute vec4 a_id;\\nattribute vec4 a_color;\\nattribute vec2 a_position;\\nattribute float a_size;\\nattribute float a_angle;\\n\\nuniform mat3 u_matrix;\\nuniform float u_sizeRatio;\\nuniform float u_correctionRatio;\\n\\nvarying vec4 v_color;\\nvarying vec2 v_diffVector;\\nvarying float v_radius;\\nvarying float v_border;\\n\\nconst float bias = 255.0 / 254.0;\\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;\\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;\\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_color = a_color;\\n #endif\\n\\n v_color.a *= bias;\\n}\\n\";\nvar VERTEX_SHADER_SOURCE$3 = SHADER_SOURCE$5;\n\nvar _WebGLRenderingContex$3 = WebGLRenderingContext,\n UNSIGNED_BYTE$3 = _WebGLRenderingContex$3.UNSIGNED_BYTE,\n FLOAT$3 = _WebGLRenderingContex$3.FLOAT;\nvar UNIFORMS$3 = [\"u_sizeRatio\", \"u_correctionRatio\", \"u_matrix\"];\nvar NodeCircleProgram = /*#__PURE__*/function (_NodeProgram) {\n function NodeCircleProgram() {\n _classCallCheck(this, NodeCircleProgram);\n return _callSuper(this, NodeCircleProgram, arguments);\n }\n _inherits(NodeCircleProgram, _NodeProgram);\n return _createClass(NodeCircleProgram, [{\n key: \"getDefinition\",\n value: function getDefinition() {\n return {\n VERTICES: 3,\n VERTEX_SHADER_SOURCE: VERTEX_SHADER_SOURCE$3,\n FRAGMENT_SHADER_SOURCE: FRAGMENT_SHADER_SOURCE$2,\n METHOD: WebGLRenderingContext.TRIANGLES,\n UNIFORMS: UNIFORMS$3,\n ATTRIBUTES: [{\n name: \"a_position\",\n size: 2,\n type: FLOAT$3\n }, {\n name: \"a_size\",\n size: 1,\n type: FLOAT$3\n }, {\n name: \"a_color\",\n size: 4,\n type: UNSIGNED_BYTE$3,\n normalized: true\n }, {\n name: \"a_id\",\n size: 4,\n type: UNSIGNED_BYTE$3,\n normalized: true\n }],\n CONSTANT_ATTRIBUTES: [{\n name: \"a_angle\",\n size: 1,\n type: FLOAT$3\n }],\n CONSTANT_DATA: [[NodeCircleProgram.ANGLE_1], [NodeCircleProgram.ANGLE_2], [NodeCircleProgram.ANGLE_3]]\n };\n }\n }, {\n key: \"processVisibleItem\",\n value: function processVisibleItem(nodeIndex, startIndex, data) {\n var array = this.array;\n var color = floatColor(data.color);\n array[startIndex++] = data.x;\n array[startIndex++] = data.y;\n array[startIndex++] = data.size;\n array[startIndex++] = color;\n array[startIndex++] = nodeIndex;\n }\n }, {\n key: \"setUniforms\",\n value: function setUniforms(params, _ref) {\n var gl = _ref.gl,\n uniformLocations = _ref.uniformLocations;\n var u_sizeRatio = uniformLocations.u_sizeRatio,\n u_correctionRatio = uniformLocations.u_correctionRatio,\n u_matrix = uniformLocations.u_matrix;\n gl.uniform1f(u_correctionRatio, params.correctionRatio);\n gl.uniform1f(u_sizeRatio, params.sizeRatio);\n gl.uniformMatrix3fv(u_matrix, false, params.matrix);\n }\n }]);\n}(NodeProgram);\n_defineProperty(NodeCircleProgram, \"ANGLE_1\", 0);\n_defineProperty(NodeCircleProgram, \"ANGLE_2\", 2 * Math.PI / 3);\n_defineProperty(NodeCircleProgram, \"ANGLE_3\", 4 * Math.PI / 3);\n\n// language=GLSL\nvar SHADER_SOURCE$4 = /*glsl*/\"\\nprecision mediump float;\\n\\nvarying vec4 v_color;\\n\\nvoid main(void) {\\n gl_FragColor = v_color;\\n}\\n\";\nvar FRAGMENT_SHADER_SOURCE$1 = SHADER_SOURCE$4;\n\n// language=GLSL\nvar SHADER_SOURCE$3 = /*glsl*/\"\\nattribute vec2 a_position;\\nattribute vec2 a_normal;\\nattribute float a_radius;\\nattribute vec3 a_barycentric;\\n\\n#ifdef PICKING_MODE\\nattribute vec4 a_id;\\n#else\\nattribute vec4 a_color;\\n#endif\\n\\nuniform mat3 u_matrix;\\nuniform float u_sizeRatio;\\nuniform float u_correctionRatio;\\nuniform float u_minEdgeThickness;\\nuniform float u_lengthToThicknessRatio;\\nuniform float u_widenessToThicknessRatio;\\n\\nvarying vec4 v_color;\\n\\nconst float bias = 255.0 / 254.0;\\n\\nvoid main() {\\n float minThickness = u_minEdgeThickness;\\n\\n float normalLength = length(a_normal);\\n vec2 unitNormal = a_normal / normalLength;\\n\\n // These first computations are taken from edge.vert.glsl and\\n // edge.clamped.vert.glsl. Please read it to get better comments on what's\\n // happening:\\n float pixelsThickness = max(normalLength / u_sizeRatio, minThickness);\\n float webGLThickness = pixelsThickness * u_correctionRatio;\\n float webGLNodeRadius = a_radius * 2.0 * u_correctionRatio / u_sizeRatio;\\n float webGLArrowHeadLength = webGLThickness * u_lengthToThicknessRatio * 2.0;\\n float webGLArrowHeadThickness = webGLThickness * u_widenessToThicknessRatio;\\n\\n float da = a_barycentric.x;\\n float db = a_barycentric.y;\\n float dc = a_barycentric.z;\\n\\n vec2 delta = vec2(\\n da * (webGLNodeRadius * unitNormal.y)\\n + db * ((webGLNodeRadius + webGLArrowHeadLength) * unitNormal.y + webGLArrowHeadThickness * unitNormal.x)\\n + dc * ((webGLNodeRadius + webGLArrowHeadLength) * unitNormal.y - webGLArrowHeadThickness * unitNormal.x),\\n\\n da * (-webGLNodeRadius * unitNormal.x)\\n + db * (-(webGLNodeRadius + webGLArrowHeadLength) * unitNormal.x + webGLArrowHeadThickness * unitNormal.y)\\n + dc * (-(webGLNodeRadius + webGLArrowHeadLength) * unitNormal.x - webGLArrowHeadThickness * unitNormal.y)\\n );\\n\\n vec2 position = (u_matrix * vec3(a_position + delta, 1)).xy;\\n\\n gl_Position = vec4(position, 0, 1);\\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_color = a_color;\\n #endif\\n\\n v_color.a *= bias;\\n}\\n\";\nvar VERTEX_SHADER_SOURCE$2 = SHADER_SOURCE$3;\n\nvar _WebGLRenderingContex$2 = WebGLRenderingContext,\n UNSIGNED_BYTE$2 = _WebGLRenderingContex$2.UNSIGNED_BYTE,\n FLOAT$2 = _WebGLRenderingContex$2.FLOAT;\nvar UNIFORMS$2 = [\"u_matrix\", \"u_sizeRatio\", \"u_correctionRatio\", \"u_minEdgeThickness\", \"u_lengthToThicknessRatio\", \"u_widenessToThicknessRatio\"];\nvar DEFAULT_EDGE_ARROW_HEAD_PROGRAM_OPTIONS = {\n extremity: \"target\",\n lengthToThicknessRatio: 2.5,\n widenessToThicknessRatio: 2\n};\nfunction createEdgeArrowHeadProgram(inputOptions) {\n var options = _objectSpread2(_objectSpread2({}, DEFAULT_EDGE_ARROW_HEAD_PROGRAM_OPTIONS), inputOptions || {});\n return /*#__PURE__*/function (_EdgeProgram) {\n function EdgeArrowHeadProgram() {\n _classCallCheck(this, EdgeArrowHeadProgram);\n return _callSuper(this, EdgeArrowHeadProgram, arguments);\n }\n _inherits(EdgeArrowHeadProgram, _EdgeProgram);\n return _createClass(EdgeArrowHeadProgram, [{\n key: \"getDefinition\",\n value: function getDefinition() {\n return {\n VERTICES: 3,\n VERTEX_SHADER_SOURCE: VERTEX_SHADER_SOURCE$2,\n FRAGMENT_SHADER_SOURCE: FRAGMENT_SHADER_SOURCE$1,\n METHOD: WebGLRenderingContext.TRIANGLES,\n UNIFORMS: UNIFORMS$2,\n ATTRIBUTES: [{\n name: \"a_position\",\n size: 2,\n type: FLOAT$2\n }, {\n name: \"a_normal\",\n size: 2,\n type: FLOAT$2\n }, {\n name: \"a_radius\",\n size: 1,\n type: FLOAT$2\n }, {\n name: \"a_color\",\n size: 4,\n type: UNSIGNED_BYTE$2,\n normalized: true\n }, {\n name: \"a_id\",\n size: 4,\n type: UNSIGNED_BYTE$2,\n normalized: true\n }],\n CONSTANT_ATTRIBUTES: [{\n name: \"a_barycentric\",\n size: 3,\n type: FLOAT$2\n }],\n CONSTANT_DATA: [[1, 0, 0], [0, 1, 0], [0, 0, 1]]\n };\n }\n }, {\n key: \"processVisibleItem\",\n value: function processVisibleItem(edgeIndex, startIndex, sourceData, targetData, data) {\n if (options.extremity === \"source\") {\n var _ref = [targetData, sourceData];\n sourceData = _ref[0];\n targetData = _ref[1];\n }\n var thickness = data.size || 1;\n var radius = targetData.size || 1;\n var x1 = sourceData.x;\n var y1 = sourceData.y;\n var x2 = targetData.x;\n var y2 = targetData.y;\n var color = floatColor(data.color);\n\n // Computing normals\n var dx = x2 - x1;\n var dy = y2 - y1;\n var len = dx * dx + dy * dy;\n var n1 = 0;\n var n2 = 0;\n if (len) {\n len = 1 / Math.sqrt(len);\n n1 = -dy * len * thickness;\n n2 = dx * len * thickness;\n }\n var array = this.array;\n array[startIndex++] = x2;\n array[startIndex++] = y2;\n array[startIndex++] = -n1;\n array[startIndex++] = -n2;\n array[startIndex++] = radius;\n array[startIndex++] = color;\n array[startIndex++] = edgeIndex;\n }\n }, {\n key: \"setUniforms\",\n value: function setUniforms(params, _ref2) {\n var gl = _ref2.gl,\n uniformLocations = _ref2.uniformLocations;\n var u_matrix = uniformLocations.u_matrix,\n u_sizeRatio = uniformLocations.u_sizeRatio,\n u_correctionRatio = uniformLocations.u_correctionRatio,\n u_minEdgeThickness = uniformLocations.u_minEdgeThickness,\n u_lengthToThicknessRatio = uniformLocations.u_lengthToThicknessRatio,\n u_widenessToThicknessRatio = uniformLocations.u_widenessToThicknessRatio;\n gl.uniformMatrix3fv(u_matrix, false, params.matrix);\n gl.uniform1f(u_sizeRatio, params.sizeRatio);\n gl.uniform1f(u_correctionRatio, params.correctionRatio);\n gl.uniform1f(u_minEdgeThickness, params.minEdgeThickness);\n gl.uniform1f(u_lengthToThicknessRatio, options.lengthToThicknessRatio);\n gl.uniform1f(u_widenessToThicknessRatio, options.widenessToThicknessRatio);\n }\n }]);\n }(EdgeProgram);\n}\nvar EdgeArrowHeadProgram = createEdgeArrowHeadProgram();\nvar EdgeArrowHeadProgram$1 = EdgeArrowHeadProgram;\n\n// language=GLSL\nvar SHADER_SOURCE$2 = /*glsl*/\"\\nprecision mediump float;\\n\\nvarying vec4 v_color;\\nvarying vec2 v_normal;\\nvarying float v_thickness;\\nvarying float v_feather;\\n\\nconst vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);\\n\\nvoid main(void) {\\n // We only handle antialiasing for normal mode:\\n #ifdef PICKING_MODE\\n gl_FragColor = v_color;\\n #else\\n float dist = length(v_normal) * v_thickness;\\n\\n float t = smoothstep(\\n v_thickness - v_feather,\\n v_thickness,\\n dist\\n );\\n\\n gl_FragColor = mix(v_color, transparent, t);\\n #endif\\n}\\n\";\nvar FRAGMENT_SHADER_SOURCE = SHADER_SOURCE$2;\n\n// language=GLSL\nvar SHADER_SOURCE$1 = /*glsl*/\"\\nattribute vec4 a_id;\\nattribute vec4 a_color;\\nattribute vec2 a_normal;\\nattribute float a_normalCoef;\\nattribute vec2 a_positionStart;\\nattribute vec2 a_positionEnd;\\nattribute float a_positionCoef;\\nattribute float a_radius;\\nattribute float a_radiusCoef;\\n\\nuniform mat3 u_matrix;\\nuniform float u_zoomRatio;\\nuniform float u_sizeRatio;\\nuniform float u_pixelRatio;\\nuniform float u_correctionRatio;\\nuniform float u_minEdgeThickness;\\nuniform float u_lengthToThicknessRatio;\\nuniform float u_feather;\\n\\nvarying vec4 v_color;\\nvarying vec2 v_normal;\\nvarying float v_thickness;\\nvarying float v_feather;\\n\\nconst float bias = 255.0 / 254.0;\\n\\nvoid main() {\\n float minThickness = u_minEdgeThickness;\\n\\n float radius = a_radius * a_radiusCoef;\\n vec2 normal = a_normal * a_normalCoef;\\n vec2 position = a_positionStart * (1.0 - a_positionCoef) + a_positionEnd * a_positionCoef;\\n\\n float normalLength = length(normal);\\n vec2 unitNormal = normal / normalLength;\\n\\n // These first computations are taken from edge.vert.glsl. Please read it to\\n // get better comments on what's happening:\\n float pixelsThickness = max(normalLength, minThickness * u_sizeRatio);\\n float webGLThickness = pixelsThickness * u_correctionRatio / u_sizeRatio;\\n\\n // Here, we move the point to leave space for the arrow head:\\n float direction = sign(radius);\\n float webGLNodeRadius = direction * radius * 2.0 * u_correctionRatio / u_sizeRatio;\\n float webGLArrowHeadLength = webGLThickness * u_lengthToThicknessRatio * 2.0;\\n\\n vec2 compensationVector = vec2(-direction * unitNormal.y, direction * unitNormal.x) * (webGLNodeRadius + webGLArrowHeadLength);\\n\\n // Here is the proper position of the vertex\\n gl_Position = vec4((u_matrix * vec3(position + unitNormal * webGLThickness + compensationVector, 1)).xy, 0, 1);\\n\\n v_thickness = webGLThickness / u_zoomRatio;\\n\\n v_normal = unitNormal;\\n\\n v_feather = u_feather * u_correctionRatio / u_zoomRatio / u_pixelRatio * 2.0;\\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_color = a_color;\\n #endif\\n\\n v_color.a *= bias;\\n}\\n\";\nvar VERTEX_SHADER_SOURCE$1 = SHADER_SOURCE$1;\n\nvar _WebGLRenderingContex$1 = WebGLRenderingContext,\n UNSIGNED_BYTE$1 = _WebGLRenderingContex$1.UNSIGNED_BYTE,\n FLOAT$1 = _WebGLRenderingContex$1.FLOAT;\nvar UNIFORMS$1 = [\"u_matrix\", \"u_zoomRatio\", \"u_sizeRatio\", \"u_correctionRatio\", \"u_pixelRatio\", \"u_feather\", \"u_minEdgeThickness\", \"u_lengthToThicknessRatio\"];\nvar DEFAULT_EDGE_CLAMPED_PROGRAM_OPTIONS = {\n lengthToThicknessRatio: DEFAULT_EDGE_ARROW_HEAD_PROGRAM_OPTIONS.lengthToThicknessRatio\n};\nfunction createEdgeClampedProgram(inputOptions) {\n var options = _objectSpread2(_objectSpread2({}, DEFAULT_EDGE_CLAMPED_PROGRAM_OPTIONS), inputOptions || {});\n return /*#__PURE__*/function (_EdgeProgram) {\n function EdgeClampedProgram() {\n _classCallCheck(this, EdgeClampedProgram);\n return _callSuper(this, EdgeClampedProgram, arguments);\n }\n _inherits(EdgeClampedProgram, _EdgeProgram);\n return _createClass(EdgeClampedProgram, [{\n key: \"getDefinition\",\n value: function getDefinition() {\n return {\n VERTICES: 6,\n VERTEX_SHADER_SOURCE: VERTEX_SHADER_SOURCE$1,\n FRAGMENT_SHADER_SOURCE: FRAGMENT_SHADER_SOURCE,\n METHOD: WebGLRenderingContext.TRIANGLES,\n UNIFORMS: UNIFORMS$1,\n ATTRIBUTES: [{\n name: \"a_positionStart\",\n size: 2,\n type: FLOAT$1\n }, {\n name: \"a_positionEnd\",\n size: 2,\n type: FLOAT$1\n }, {\n name: \"a_normal\",\n size: 2,\n type: FLOAT$1\n }, {\n name: \"a_color\",\n size: 4,\n type: UNSIGNED_BYTE$1,\n normalized: true\n }, {\n name: \"a_id\",\n size: 4,\n type: UNSIGNED_BYTE$1,\n normalized: true\n }, {\n name: \"a_radius\",\n size: 1,\n type: FLOAT$1\n }],\n CONSTANT_ATTRIBUTES: [\n // If 0, then position will be a_positionStart\n // If 1, then position will be a_positionEnd\n {\n name: \"a_positionCoef\",\n size: 1,\n type: FLOAT$1\n }, {\n name: \"a_normalCoef\",\n size: 1,\n type: FLOAT$1\n }, {\n name: \"a_radiusCoef\",\n size: 1,\n type: FLOAT$1\n }],\n CONSTANT_DATA: [[0, 1, 0], [0, -1, 0], [1, 1, 1], [1, 1, 1], [0, -1, 0], [1, -1, -1]]\n };\n }\n }, {\n key: \"processVisibleItem\",\n value: function processVisibleItem(edgeIndex, startIndex, sourceData, targetData, data) {\n var thickness = data.size || 1;\n var x1 = sourceData.x;\n var y1 = sourceData.y;\n var x2 = targetData.x;\n var y2 = targetData.y;\n var color = floatColor(data.color);\n\n // Computing normals\n var dx = x2 - x1;\n var dy = y2 - y1;\n var radius = targetData.size || 1;\n var len = dx * dx + dy * dy;\n var n1 = 0;\n var n2 = 0;\n if (len) {\n len = 1 / Math.sqrt(len);\n n1 = -dy * len * thickness;\n n2 = dx * len * thickness;\n }\n var array = this.array;\n array[startIndex++] = x1;\n array[startIndex++] = y1;\n array[startIndex++] = x2;\n array[startIndex++] = y2;\n array[startIndex++] = n1;\n array[startIndex++] = n2;\n array[startIndex++] = color;\n array[startIndex++] = edgeIndex;\n array[startIndex++] = radius;\n }\n }, {\n key: \"setUniforms\",\n value: function setUniforms(params, _ref) {\n var gl = _ref.gl,\n uniformLocations = _ref.uniformLocations;\n var u_matrix = uniformLocations.u_matrix,\n u_zoomRatio = uniformLocations.u_zoomRatio,\n u_feather = uniformLocations.u_feather,\n u_pixelRatio = uniformLocations.u_pixelRatio,\n u_correctionRatio = uniformLocations.u_correctionRatio,\n u_sizeRatio = uniformLocations.u_sizeRatio,\n u_minEdgeThickness = uniformLocations.u_minEdgeThickness,\n u_lengthToThicknessRatio = uniformLocations.u_lengthToThicknessRatio;\n gl.uniformMatrix3fv(u_matrix, false, params.matrix);\n gl.uniform1f(u_zoomRatio, params.zoomRatio);\n gl.uniform1f(u_sizeRatio, params.sizeRatio);\n gl.uniform1f(u_correctionRatio, params.correctionRatio);\n gl.uniform1f(u_pixelRatio, params.pixelRatio);\n gl.uniform1f(u_feather, params.antiAliasingFeather);\n gl.uniform1f(u_minEdgeThickness, params.minEdgeThickness);\n gl.uniform1f(u_lengthToThicknessRatio, options.lengthToThicknessRatio);\n }\n }]);\n }(EdgeProgram);\n}\nvar EdgeClampedProgram = createEdgeClampedProgram();\nvar EdgeClampedProgram$1 = EdgeClampedProgram;\n\nfunction createEdgeArrowProgram(inputOptions) {\n return createEdgeCompoundProgram([createEdgeClampedProgram(inputOptions), createEdgeArrowHeadProgram(inputOptions)]);\n}\nvar EdgeArrowProgram = createEdgeArrowProgram();\nvar EdgeArrowProgram$1 = EdgeArrowProgram;\n\n// language=GLSL\nvar SHADER_SOURCE = /*glsl*/\"\\nattribute vec4 a_id;\\nattribute vec4 a_color;\\nattribute vec2 a_normal;\\nattribute float a_normalCoef;\\nattribute vec2 a_positionStart;\\nattribute vec2 a_positionEnd;\\nattribute float a_positionCoef;\\n\\nuniform mat3 u_matrix;\\nuniform float u_sizeRatio;\\nuniform float u_zoomRatio;\\nuniform float u_pixelRatio;\\nuniform float u_correctionRatio;\\nuniform float u_minEdgeThickness;\\nuniform float u_feather;\\n\\nvarying vec4 v_color;\\nvarying vec2 v_normal;\\nvarying float v_thickness;\\nvarying float v_feather;\\n\\nconst float bias = 255.0 / 254.0;\\n\\nvoid main() {\\n float minThickness = u_minEdgeThickness;\\n\\n vec2 normal = a_normal * a_normalCoef;\\n vec2 position = a_positionStart * (1.0 - a_positionCoef) + a_positionEnd * a_positionCoef;\\n\\n float normalLength = length(normal);\\n vec2 unitNormal = normal / normalLength;\\n\\n // We require edges to be at least \\\"minThickness\\\" pixels thick *on screen*\\n // (so we need to compensate the size ratio):\\n float pixelsThickness = max(normalLength, minThickness * u_sizeRatio);\\n\\n // Then, we need to retrieve the normalized thickness of the edge in the WebGL\\n // referential (in a ([0, 1], [0, 1]) space), using our \\\"magic\\\" correction\\n // ratio:\\n float webGLThickness = pixelsThickness * u_correctionRatio / u_sizeRatio;\\n\\n // Here is the proper position of the vertex\\n gl_Position = vec4((u_matrix * vec3(position + unitNormal * webGLThickness, 1)).xy, 0, 1);\\n\\n // For the fragment shader though, we need a thickness that takes the \\\"magic\\\"\\n // correction ratio into account (as in webGLThickness), but so that the\\n // antialiasing effect does not depend on the zoom level. So here's yet\\n // another thickness version:\\n v_thickness = webGLThickness / u_zoomRatio;\\n\\n v_normal = unitNormal;\\n\\n v_feather = u_feather * u_correctionRatio / u_zoomRatio / u_pixelRatio * 2.0;\\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_color = a_color;\\n #endif\\n\\n v_color.a *= bias;\\n}\\n\";\nvar VERTEX_SHADER_SOURCE = SHADER_SOURCE;\n\nvar _WebGLRenderingContex = WebGLRenderingContext,\n UNSIGNED_BYTE = _WebGLRenderingContex.UNSIGNED_BYTE,\n FLOAT = _WebGLRenderingContex.FLOAT;\nvar UNIFORMS = [\"u_matrix\", \"u_zoomRatio\", \"u_sizeRatio\", \"u_correctionRatio\", \"u_pixelRatio\", \"u_feather\", \"u_minEdgeThickness\"];\nvar EdgeRectangleProgram = /*#__PURE__*/function (_EdgeProgram) {\n function EdgeRectangleProgram() {\n _classCallCheck(this, EdgeRectangleProgram);\n return _callSuper(this, EdgeRectangleProgram, arguments);\n }\n _inherits(EdgeRectangleProgram, _EdgeProgram);\n return _createClass(EdgeRectangleProgram, [{\n key: \"getDefinition\",\n value: function getDefinition() {\n return {\n VERTICES: 6,\n VERTEX_SHADER_SOURCE: VERTEX_SHADER_SOURCE,\n FRAGMENT_SHADER_SOURCE: FRAGMENT_SHADER_SOURCE,\n METHOD: WebGLRenderingContext.TRIANGLES,\n UNIFORMS: UNIFORMS,\n ATTRIBUTES: [{\n name: \"a_positionStart\",\n size: 2,\n type: FLOAT\n }, {\n name: \"a_positionEnd\",\n size: 2,\n type: FLOAT\n }, {\n name: \"a_normal\",\n size: 2,\n type: FLOAT\n }, {\n name: \"a_color\",\n size: 4,\n type: UNSIGNED_BYTE,\n normalized: true\n }, {\n name: \"a_id\",\n size: 4,\n type: UNSIGNED_BYTE,\n normalized: true\n }],\n CONSTANT_ATTRIBUTES: [\n // If 0, then position will be a_positionStart\n // If 2, then position will be a_positionEnd\n {\n name: \"a_positionCoef\",\n size: 1,\n type: FLOAT\n }, {\n name: \"a_normalCoef\",\n size: 1,\n type: FLOAT\n }],\n CONSTANT_DATA: [[0, 1], [0, -1], [1, 1], [1, 1], [0, -1], [1, -1]]\n };\n }\n }, {\n key: \"processVisibleItem\",\n value: function processVisibleItem(edgeIndex, startIndex, sourceData, targetData, data) {\n var thickness = data.size || 1;\n var x1 = sourceData.x;\n var y1 = sourceData.y;\n var x2 = targetData.x;\n var y2 = targetData.y;\n var color = floatColor(data.color);\n\n // Computing normals\n var dx = x2 - x1;\n var dy = y2 - y1;\n var len = dx * dx + dy * dy;\n var n1 = 0;\n var n2 = 0;\n if (len) {\n len = 1 / Math.sqrt(len);\n n1 = -dy * len * thickness;\n n2 = dx * len * thickness;\n }\n var array = this.array;\n array[startIndex++] = x1;\n array[startIndex++] = y1;\n array[startIndex++] = x2;\n array[startIndex++] = y2;\n array[startIndex++] = n1;\n array[startIndex++] = n2;\n array[startIndex++] = color;\n array[startIndex++] = edgeIndex;\n }\n }, {\n key: \"setUniforms\",\n value: function setUniforms(params, _ref) {\n var gl = _ref.gl,\n uniformLocations = _ref.uniformLocations;\n var u_matrix = uniformLocations.u_matrix,\n u_zoomRatio = uniformLocations.u_zoomRatio,\n u_feather = uniformLocations.u_feather,\n u_pixelRatio = uniformLocations.u_pixelRatio,\n u_correctionRatio = uniformLocations.u_correctionRatio,\n u_sizeRatio = uniformLocations.u_sizeRatio,\n u_minEdgeThickness = uniformLocations.u_minEdgeThickness;\n gl.uniformMatrix3fv(u_matrix, false, params.matrix);\n gl.uniform1f(u_zoomRatio, params.zoomRatio);\n gl.uniform1f(u_sizeRatio, params.sizeRatio);\n gl.uniform1f(u_correctionRatio, params.correctionRatio);\n gl.uniform1f(u_pixelRatio, params.pixelRatio);\n gl.uniform1f(u_feather, params.antiAliasingFeather);\n gl.uniform1f(u_minEdgeThickness, params.minEdgeThickness);\n }\n }]);\n}(EdgeProgram);\n\nexport { AbstractNodeProgram as A, DEFAULT_EDGE_ARROW_HEAD_PROGRAM_OPTIONS as D, EdgeArrowProgram$1 as E, FRAGMENT_SHADER_SOURCE as F, NodeCircleProgram as N, Program as P, _objectSpread2 as _, _defineProperty as a, drawDiscNodeLabel as b, drawDiscNodeHover as c, drawStraightEdgeLabel as d, EdgeRectangleProgram as e, NodeProgram as f, EdgeProgram as g, createEdgeCompoundProgram as h, createEdgeArrowHeadProgram as i, createNodeCompoundProgram as j, AbstractEdgeProgram as k, AbstractProgram as l, EdgeArrowHeadProgram$1 as m, EdgeClampedProgram$1 as n, createEdgeClampedProgram as o, DEFAULT_EDGE_CLAMPED_PROGRAM_OPTIONS as p, createEdgeArrowProgram as q, getAttributeItemsCount as r, getAttributesItemsCount as s, loadVertexShader as t, loadFragmentShader as u, loadProgram as v, killProgram as w, numberToGLSLFloat as x };\n"],"names":["_toPrimitive","t","e","i","_toPropertyKey","_classCallCheck","a","n","_defineProperties","o","_createClass","_getPrototypeOf","_isNativeReflectConstruct","_assertThisInitialized","_possibleConstructorReturn","_callSuper","_setPrototypeOf","_inherits","_arrayWithHoles","r","_iterableToArrayLimit","l","u","f","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","_slicedToArray","HTML_COLORS","INT8","INT32","FLOAT32","RGBA_TEST_REGEX","RGBA_EXTRACT_REGEX","parseColor","val","g","b","match","FLOAT_COLOR_CACHE","htmlColor","floatColor","rgbaToFloat","masking","parsed","color","colorToArray","intValue","FLOAT_INDEX_CACHE","indexToColor","index","colorToIndex","_a","getPixelColor","gl","frameBuffer","x","y","pixelRatio","downSizingRatio","bufferX","bufferY","pixel","_pixel","_defineProperty","ownKeys","_objectSpread2","_superPropBase","_get","p","_superPropGet","getAttributeItemsCount","attr","getAttributesItemsCount","attrs","res","loadShader","type","source","glType","shader","successfullyCompiled","infoLog","loadVertexShader","loadFragmentShader","loadProgram","shaders","program","successfullyLinked","info","killProgram","_ref","buffer","vertexShader","fragmentShader","numberToGLSLFloat","PICKING_PREFIX","SIZE_FACTOR_PER_ATTRIBUTE_TYPE","Program","pickingBuffer","renderer","def","constantAttributesItemsCount","vector","j","name","vertexShaderSource","fragmentShaderSource","uniformLocations","uniformName","location","attributeLocations","constantBuffer","_this","offset","_this2","setDivisor","sizeFactor","stride","ext","unsetDivisor","capacity","params","programInfo","method","NodeProgram","nodeIndex","data","EdgeProgram","_len","args","_key","edgeIndex","sourceData","targetData","createEdgeCompoundProgram","programClasses","drawLabel","EdgeCompoundProgram","drawStraightEdgeLabel","context","edgeData","settings","size","font","weight","label","sSize","tSize","sx","sy","tx","ty","cx","cy","dx","dy","d","textLength","ellipsis","angle","drawDiscNodeLabel","drawDiscNodeHover","PADDING","textWidth","boxWidth","boxHeight","radius","angleRadian","xDeltaCoord","SHADER_SOURCE$6","FRAGMENT_SHADER_SOURCE$2","SHADER_SOURCE$5","VERTEX_SHADER_SOURCE$3","_WebGLRenderingContex$3","UNSIGNED_BYTE$3","FLOAT$3","UNIFORMS$3","NodeCircleProgram","_NodeProgram","startIndex","array","u_sizeRatio","u_correctionRatio","u_matrix","SHADER_SOURCE$4","FRAGMENT_SHADER_SOURCE$1","SHADER_SOURCE$3","VERTEX_SHADER_SOURCE$2","_WebGLRenderingContex$2","UNSIGNED_BYTE$2","FLOAT$2","UNIFORMS$2","DEFAULT_EDGE_ARROW_HEAD_PROGRAM_OPTIONS","createEdgeArrowHeadProgram","inputOptions","options","_EdgeProgram","EdgeArrowHeadProgram","thickness","x1","y1","x2","y2","len","n1","n2","_ref2","u_minEdgeThickness","u_lengthToThicknessRatio","u_widenessToThicknessRatio","SHADER_SOURCE$2","FRAGMENT_SHADER_SOURCE","SHADER_SOURCE$1","VERTEX_SHADER_SOURCE$1","_WebGLRenderingContex$1","UNSIGNED_BYTE$1","FLOAT$1","UNIFORMS$1","DEFAULT_EDGE_CLAMPED_PROGRAM_OPTIONS","createEdgeClampedProgram","EdgeClampedProgram","u_zoomRatio","u_feather","u_pixelRatio","createEdgeArrowProgram","EdgeArrowProgram","EdgeArrowProgram$1","SHADER_SOURCE","VERTEX_SHADER_SOURCE","_WebGLRenderingContex","UNSIGNED_BYTE","FLOAT","UNIFORMS","EdgeRectangleProgram"],"mappings":"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","x_google_ignoreList":[0,1,2]}
@@ -1,4 +1,4 @@
1
- import { I as d, R as i, a as r, b as s, m as t, r as n, d as R } from "./index-B6ZQhCsu.js";
1
+ import { I as d, R as i, a as r, b as s, m as t, r as n, d as R } from "./index-Bq0TT7Ao.js";
2
2
  export {
3
3
  d as InjectedClientProvider,
4
4
  i as RED_UI_VERSION,