@reltio/components 1.4.1843 → 1.4.1845

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 (305) hide show
  1. package/cjs/EmptyState/EmptyState.d.ts +1 -0
  2. package/cjs/EmptyState/EmptyState.js +3 -1
  3. package/cjs/features/graph/DataModelGraph/DataModelGraph.d.ts +12 -0
  4. package/cjs/features/graph/DataModelGraph/DataModelGraph.js +28 -0
  5. package/cjs/features/graph/DataModelGraph/DataModelGraph.test.d.ts +1 -0
  6. package/cjs/features/graph/DataModelGraph/DataModelGraph.test.js +63 -0
  7. package/cjs/features/graph/DataModelGraph/components/DataModelCircleLayout/DataModelCircleLayuot.d.ts +11 -0
  8. package/cjs/features/graph/DataModelGraph/components/DataModelCircleLayout/DataModelCircleLayuot.js +21 -0
  9. package/cjs/features/graph/DataModelGraph/helpers/edgeLabelHelpers.d.ts +9 -0
  10. package/cjs/features/graph/DataModelGraph/helpers/edgeLabelHelpers.js +38 -0
  11. package/cjs/features/graph/DataModelGraph/helpers/edgeLabelHelpers.test.d.ts +1 -0
  12. package/cjs/features/graph/DataModelGraph/helpers/edgeLabelHelpers.test.js +74 -0
  13. package/cjs/features/graph/DataModelGraph/hooks/defaultGraph.test-data.d.ts +2 -0
  14. package/cjs/features/graph/DataModelGraph/hooks/defaultGraph.test-data.js +52 -0
  15. package/cjs/features/graph/DataModelGraph/hooks/useDataModelGraphAppearance.d.ts +17 -0
  16. package/cjs/features/graph/DataModelGraph/hooks/useDataModelGraphAppearance.js +139 -0
  17. package/cjs/features/graph/DataModelGraph/hooks/useDataModelGraphAppearance.test.d.ts +1 -0
  18. package/cjs/features/graph/DataModelGraph/hooks/useDataModelGraphAppearance.test.js +192 -0
  19. package/cjs/features/graph/DataModelGraph/hooks/useEdgeLabelsRenderer.d.ts +10 -0
  20. package/cjs/features/graph/DataModelGraph/hooks/useEdgeLabelsRenderer.js +171 -0
  21. package/cjs/features/graph/DataModelGraph/hooks/useEdgeLabelsRenderer.test.d.ts +1 -0
  22. package/cjs/features/graph/DataModelGraph/hooks/useEdgeLabelsRenderer.test.js +176 -0
  23. package/cjs/features/graph/DataModelGraph/hooks/useFakeCenterNode.d.ts +8 -0
  24. package/cjs/features/graph/DataModelGraph/hooks/useFakeCenterNode.js +36 -0
  25. package/cjs/features/graph/DataModelGraph/hooks/useFakeCenterNode.test.d.ts +1 -0
  26. package/cjs/features/graph/DataModelGraph/hooks/useFakeCenterNode.test.js +37 -0
  27. package/cjs/features/graph/DataModelGraph/hooks/useSelectedNodeRenderer.d.ts +2 -0
  28. package/cjs/features/graph/DataModelGraph/hooks/useSelectedNodeRenderer.js +41 -0
  29. package/cjs/features/graph/DataModelGraph/hooks/useSelectedNodeRenderer.test.d.ts +1 -0
  30. package/cjs/features/graph/DataModelGraph/hooks/useSelectedNodeRenderer.test.js +63 -0
  31. package/cjs/features/graph/DataModelGraph/icons/interaction.inline.svg.d.ts +1 -0
  32. package/cjs/features/graph/DataModelGraph/icons/interaction.inline.svg.js +4 -0
  33. package/cjs/features/graph/DataModelGraph/index.d.ts +1 -0
  34. package/cjs/features/graph/DataModelGraph/index.js +5 -0
  35. package/cjs/features/graph/DataModelGraph/styles.d.ts +1 -0
  36. package/cjs/features/graph/DataModelGraph/styles.js +26 -0
  37. package/cjs/features/graph/SigmaCustomRenderersContainer/SigmaCustomRenderersContainer.d.ts +6 -0
  38. package/cjs/features/graph/SigmaCustomRenderersContainer/SigmaCustomRenderersContainer.js +15 -0
  39. package/cjs/features/graph/SigmaCustomRenderersContainer/index.d.ts +1 -0
  40. package/cjs/features/graph/SigmaCustomRenderersContainer/index.js +5 -0
  41. package/cjs/features/graph/SigmaGraphContainer/SigmaGraphContainer.d.ts +9 -0
  42. package/cjs/features/graph/SigmaGraphContainer/SigmaGraphContainer.js +86 -0
  43. package/cjs/features/graph/SigmaGraphContainer/SigmaGraphContainer.test.d.ts +1 -0
  44. package/cjs/features/graph/SigmaGraphContainer/SigmaGraphContainer.test.js +26 -0
  45. package/cjs/features/graph/SigmaGraphContainer/index.d.ts +1 -0
  46. package/cjs/features/graph/SigmaGraphContainer/index.js +5 -0
  47. package/cjs/features/graph/SigmaGraphResizer/SigmaGraphResizer.d.ts +1 -0
  48. package/cjs/features/graph/SigmaGraphResizer/SigmaGraphResizer.js +40 -0
  49. package/cjs/features/graph/SigmaGraphResizer/SigmaGraphResizer.test.d.ts +1 -0
  50. package/cjs/features/graph/SigmaGraphResizer/SigmaGraphResizer.test.js +37 -0
  51. package/cjs/features/graph/SigmaGraphResizer/index.d.ts +1 -0
  52. package/cjs/features/graph/SigmaGraphResizer/index.js +5 -0
  53. package/cjs/features/graph/ZoomSlider/ZoomSlider.d.ts +7 -0
  54. package/cjs/features/graph/ZoomSlider/ZoomSlider.js +113 -0
  55. package/cjs/features/graph/ZoomSlider/ZoomSlider.test.d.ts +1 -0
  56. package/cjs/features/graph/ZoomSlider/ZoomSlider.test.js +83 -0
  57. package/cjs/features/graph/ZoomSlider/index.d.ts +1 -0
  58. package/cjs/features/graph/ZoomSlider/index.js +5 -0
  59. package/cjs/features/graph/ZoomSlider/styles.d.ts +1 -0
  60. package/cjs/features/graph/ZoomSlider/styles.js +63 -0
  61. package/cjs/features/graph/contexts/SigmaCustomRenderersContext.d.ts +9 -0
  62. package/cjs/features/graph/contexts/SigmaCustomRenderersContext.js +15 -0
  63. package/cjs/features/graph/hooks/useAnimatedGraphLayout.d.ts +13 -0
  64. package/cjs/features/graph/hooks/useAnimatedGraphLayout.js +35 -0
  65. package/cjs/features/graph/hooks/useCircleLayout.d.ts +9 -0
  66. package/cjs/features/graph/hooks/useCircleLayout.js +50 -0
  67. package/cjs/features/graph/hooks/useLoopRenderer.d.ts +5 -0
  68. package/cjs/features/graph/hooks/useLoopRenderer.js +47 -0
  69. package/cjs/features/graph/hooks/useLoopRenderer.test.d.ts +1 -0
  70. package/cjs/features/graph/hooks/useLoopRenderer.test.js +221 -0
  71. package/cjs/features/graph/hooks/useSigmaCustomRenderers.d.ts +7 -0
  72. package/cjs/features/graph/hooks/useSigmaCustomRenderers.js +95 -0
  73. package/cjs/features/graph/hooks/useSigmaCustomRenderers.test.d.ts +1 -0
  74. package/cjs/features/graph/hooks/useSigmaCustomRenderers.test.js +200 -0
  75. package/cjs/features/graph/index.d.ts +16 -0
  76. package/cjs/features/graph/index.js +34 -0
  77. package/cjs/features/graph/rendering/canvas/hover.d.ts +2 -0
  78. package/cjs/features/graph/rendering/canvas/hover.js +10 -0
  79. package/cjs/features/graph/rendering/canvas/hover.spec.d.ts +1 -0
  80. package/cjs/features/graph/rendering/canvas/hover.spec.js +26 -0
  81. package/cjs/features/graph/rendering/canvas/label.d.ts +7 -0
  82. package/cjs/features/graph/rendering/canvas/label.js +32 -0
  83. package/cjs/features/graph/rendering/canvas/label.spec.d.ts +1 -0
  84. package/cjs/features/graph/rendering/canvas/label.spec.js +81 -0
  85. package/cjs/features/graph/rendering/canvas/labelBackground.d.ts +9 -0
  86. package/cjs/features/graph/rendering/canvas/labelBackground.js +37 -0
  87. package/cjs/features/graph/rendering/canvas/labelBackground.spec.d.ts +1 -0
  88. package/cjs/features/graph/rendering/canvas/labelBackground.spec.js +92 -0
  89. package/cjs/features/graph/rendering/canvas/nodeArc.d.ts +10 -0
  90. package/cjs/features/graph/rendering/canvas/nodeArc.js +33 -0
  91. package/cjs/features/graph/rendering/canvas/selfRelationLoop.d.ts +11 -0
  92. package/cjs/features/graph/rendering/canvas/selfRelationLoop.js +73 -0
  93. package/cjs/features/graph/rendering/canvas/selfRelationLoop.spec.d.ts +1 -0
  94. package/cjs/features/graph/rendering/canvas/selfRelationLoop.spec.js +92 -0
  95. package/cjs/features/graph/rendering/canvas/tooltip.d.ts +2 -0
  96. package/cjs/features/graph/rendering/canvas/tooltip.js +28 -0
  97. package/cjs/features/graph/rendering/canvas/tooltip.spec.d.ts +1 -0
  98. package/cjs/features/graph/rendering/canvas/tooltip.spec.js +32 -0
  99. package/cjs/features/graph/rendering/canvas/utils.d.ts +4 -0
  100. package/cjs/features/graph/rendering/canvas/utils.js +10 -0
  101. package/cjs/features/graph/rendering/canvas/utils.spec.d.ts +1 -0
  102. package/cjs/features/graph/rendering/canvas/utils.spec.js +22 -0
  103. package/cjs/features/graph/rendering/icons/no_photo.inline.svg.d.ts +1 -0
  104. package/cjs/features/graph/rendering/icons/no_photo.inline.svg.js +4 -0
  105. package/cjs/features/graph/rendering/webgl/edge.arrowHead.d.ts +8 -0
  106. package/cjs/features/graph/rendering/webgl/edge.arrowHead.js +84 -0
  107. package/cjs/features/graph/rendering/webgl/edge.clamped.d.ts +29 -0
  108. package/cjs/features/graph/rendering/webgl/edge.clamped.js +176 -0
  109. package/cjs/features/graph/rendering/webgl/edge.dashed.d.ts +23 -0
  110. package/cjs/features/graph/rendering/webgl/edge.dashed.js +162 -0
  111. package/cjs/features/graph/rendering/webgl/edge.reversedArrowHead.d.ts +5 -0
  112. package/cjs/features/graph/rendering/webgl/edge.reversedArrowHead.js +32 -0
  113. package/cjs/features/graph/rendering/webgl/helpers/imageHelper.d.ts +17 -0
  114. package/cjs/features/graph/rendering/webgl/helpers/imageHelper.js +9 -0
  115. package/cjs/features/graph/rendering/webgl/helpers/imageHelper.spec.d.ts +1 -0
  116. package/cjs/features/graph/rendering/webgl/helpers/imageHelper.spec.js +29 -0
  117. package/cjs/features/graph/rendering/webgl/image.d.ts +17 -0
  118. package/cjs/features/graph/rendering/webgl/image.js +115 -0
  119. package/cjs/features/graph/rendering/webgl/node.border.d.ts +11 -0
  120. package/cjs/features/graph/rendering/webgl/node.border.js +79 -0
  121. package/cjs/features/graph/rendering/webgl/node.dashed.border.d.ts +11 -0
  122. package/cjs/features/graph/rendering/webgl/node.dashed.border.js +77 -0
  123. package/cjs/features/graph/rendering/webgl/node.image.d.ts +18 -0
  124. package/cjs/features/graph/rendering/webgl/node.image.js +147 -0
  125. package/cjs/features/graph/rendering/webgl/shaders/edge.clamped.vert.glsl.d.ts +1 -0
  126. package/cjs/features/graph/rendering/webgl/shaders/edge.clamped.vert.glsl.js +8 -0
  127. package/cjs/features/graph/rendering/webgl/shaders/edge.dashed.frag.glsl.d.ts +1 -0
  128. package/cjs/features/graph/rendering/webgl/shaders/edge.dashed.frag.glsl.js +8 -0
  129. package/cjs/features/graph/rendering/webgl/shaders/edge.dashed.vert.glsl.d.ts +1 -0
  130. package/cjs/features/graph/rendering/webgl/shaders/edge.dashed.vert.glsl.js +8 -0
  131. package/cjs/features/graph/rendering/webgl/shaders/node.border.frag.glsl.d.ts +1 -0
  132. package/cjs/features/graph/rendering/webgl/shaders/node.border.frag.glsl.js +9 -0
  133. package/cjs/features/graph/rendering/webgl/shaders/node.border.vert.glsl.d.ts +1 -0
  134. package/cjs/features/graph/rendering/webgl/shaders/node.border.vert.glsl.js +8 -0
  135. package/cjs/features/graph/rendering/webgl/shaders/node.dashed.border.frag.glsl.d.ts +1 -0
  136. package/cjs/features/graph/rendering/webgl/shaders/node.dashed.border.frag.glsl.js +8 -0
  137. package/cjs/features/graph/rendering/webgl/shaders/node.image.frag.glsl.d.ts +1 -0
  138. package/cjs/features/graph/rendering/webgl/shaders/node.image.frag.glsl.js +5 -0
  139. package/cjs/features/graph/rendering/webgl/shaders/node.image.vert.glsl.d.ts +1 -0
  140. package/cjs/features/graph/rendering/webgl/shaders/node.image.vert.glsl.js +8 -0
  141. package/cjs/features/graph/rendering/webgl/shaders/utils.d.ts +1 -0
  142. package/cjs/features/graph/rendering/webgl/shaders/utils.js +4 -0
  143. package/cjs/features/graph/types/graphDataTypes.d.ts +51 -0
  144. package/cjs/features/graph/types/graphDataTypes.js +8 -0
  145. package/cjs/features/graph/types/sigmaCustomRenderersTypes.d.ts +11 -0
  146. package/cjs/features/graph/types/sigmaCustomRenderersTypes.js +2 -0
  147. package/cjs/icons/EmptyLoading.d.ts +3 -0
  148. package/cjs/icons/EmptyLoading.js +150 -0
  149. package/cjs/icons/index.d.ts +1 -0
  150. package/cjs/icons/index.js +4 -2
  151. package/cjs/index.d.ts +1 -0
  152. package/cjs/index.js +2 -0
  153. package/esm/EmptyState/EmptyState.d.ts +1 -0
  154. package/esm/EmptyState/EmptyState.js +3 -1
  155. package/esm/features/graph/DataModelGraph/DataModelGraph.d.ts +12 -0
  156. package/esm/features/graph/DataModelGraph/DataModelGraph.js +21 -0
  157. package/esm/features/graph/DataModelGraph/DataModelGraph.test.d.ts +1 -0
  158. package/esm/features/graph/DataModelGraph/DataModelGraph.test.js +58 -0
  159. package/esm/features/graph/DataModelGraph/components/DataModelCircleLayout/DataModelCircleLayuot.d.ts +11 -0
  160. package/esm/features/graph/DataModelGraph/components/DataModelCircleLayout/DataModelCircleLayuot.js +17 -0
  161. package/esm/features/graph/DataModelGraph/helpers/edgeLabelHelpers.d.ts +9 -0
  162. package/esm/features/graph/DataModelGraph/helpers/edgeLabelHelpers.js +33 -0
  163. package/esm/features/graph/DataModelGraph/helpers/edgeLabelHelpers.test.d.ts +1 -0
  164. package/esm/features/graph/DataModelGraph/helpers/edgeLabelHelpers.test.js +72 -0
  165. package/esm/features/graph/DataModelGraph/hooks/defaultGraph.test-data.d.ts +2 -0
  166. package/esm/features/graph/DataModelGraph/hooks/defaultGraph.test-data.js +45 -0
  167. package/esm/features/graph/DataModelGraph/hooks/useDataModelGraphAppearance.d.ts +17 -0
  168. package/esm/features/graph/DataModelGraph/hooks/useDataModelGraphAppearance.js +135 -0
  169. package/esm/features/graph/DataModelGraph/hooks/useDataModelGraphAppearance.test.d.ts +1 -0
  170. package/esm/features/graph/DataModelGraph/hooks/useDataModelGraphAppearance.test.js +190 -0
  171. package/esm/features/graph/DataModelGraph/hooks/useEdgeLabelsRenderer.d.ts +10 -0
  172. package/esm/features/graph/DataModelGraph/hooks/useEdgeLabelsRenderer.js +167 -0
  173. package/esm/features/graph/DataModelGraph/hooks/useEdgeLabelsRenderer.test.d.ts +1 -0
  174. package/esm/features/graph/DataModelGraph/hooks/useEdgeLabelsRenderer.test.js +174 -0
  175. package/esm/features/graph/DataModelGraph/hooks/useFakeCenterNode.d.ts +8 -0
  176. package/esm/features/graph/DataModelGraph/hooks/useFakeCenterNode.js +32 -0
  177. package/esm/features/graph/DataModelGraph/hooks/useFakeCenterNode.test.d.ts +1 -0
  178. package/esm/features/graph/DataModelGraph/hooks/useFakeCenterNode.test.js +35 -0
  179. package/esm/features/graph/DataModelGraph/hooks/useSelectedNodeRenderer.d.ts +2 -0
  180. package/esm/features/graph/DataModelGraph/hooks/useSelectedNodeRenderer.js +37 -0
  181. package/esm/features/graph/DataModelGraph/hooks/useSelectedNodeRenderer.test.d.ts +1 -0
  182. package/esm/features/graph/DataModelGraph/hooks/useSelectedNodeRenderer.test.js +61 -0
  183. package/esm/features/graph/DataModelGraph/icons/interaction.inline.svg.d.ts +1 -0
  184. package/esm/features/graph/DataModelGraph/icons/interaction.inline.svg.js +1 -0
  185. package/esm/features/graph/DataModelGraph/index.d.ts +1 -0
  186. package/esm/features/graph/DataModelGraph/index.js +1 -0
  187. package/esm/features/graph/DataModelGraph/styles.d.ts +1 -0
  188. package/esm/features/graph/DataModelGraph/styles.js +23 -0
  189. package/esm/features/graph/SigmaCustomRenderersContainer/SigmaCustomRenderersContainer.d.ts +6 -0
  190. package/esm/features/graph/SigmaCustomRenderersContainer/SigmaCustomRenderersContainer.js +8 -0
  191. package/esm/features/graph/SigmaCustomRenderersContainer/index.d.ts +1 -0
  192. package/esm/features/graph/SigmaCustomRenderersContainer/index.js +1 -0
  193. package/esm/features/graph/SigmaGraphContainer/SigmaGraphContainer.d.ts +9 -0
  194. package/esm/features/graph/SigmaGraphContainer/SigmaGraphContainer.js +56 -0
  195. package/esm/features/graph/SigmaGraphContainer/SigmaGraphContainer.test.d.ts +1 -0
  196. package/esm/features/graph/SigmaGraphContainer/SigmaGraphContainer.test.js +21 -0
  197. package/esm/features/graph/SigmaGraphContainer/index.d.ts +1 -0
  198. package/esm/features/graph/SigmaGraphContainer/index.js +1 -0
  199. package/esm/features/graph/SigmaGraphResizer/SigmaGraphResizer.d.ts +1 -0
  200. package/esm/features/graph/SigmaGraphResizer/SigmaGraphResizer.js +10 -0
  201. package/esm/features/graph/SigmaGraphResizer/SigmaGraphResizer.test.d.ts +1 -0
  202. package/esm/features/graph/SigmaGraphResizer/SigmaGraphResizer.test.js +32 -0
  203. package/esm/features/graph/SigmaGraphResizer/index.d.ts +1 -0
  204. package/esm/features/graph/SigmaGraphResizer/index.js +1 -0
  205. package/esm/features/graph/ZoomSlider/ZoomSlider.d.ts +7 -0
  206. package/esm/features/graph/ZoomSlider/ZoomSlider.js +83 -0
  207. package/esm/features/graph/ZoomSlider/ZoomSlider.test.d.ts +1 -0
  208. package/esm/features/graph/ZoomSlider/ZoomSlider.test.js +78 -0
  209. package/esm/features/graph/ZoomSlider/index.d.ts +1 -0
  210. package/esm/features/graph/ZoomSlider/index.js +1 -0
  211. package/esm/features/graph/ZoomSlider/styles.d.ts +1 -0
  212. package/esm/features/graph/ZoomSlider/styles.js +60 -0
  213. package/esm/features/graph/contexts/SigmaCustomRenderersContext.d.ts +9 -0
  214. package/esm/features/graph/contexts/SigmaCustomRenderersContext.js +11 -0
  215. package/esm/features/graph/hooks/useAnimatedGraphLayout.d.ts +13 -0
  216. package/esm/features/graph/hooks/useAnimatedGraphLayout.js +31 -0
  217. package/esm/features/graph/hooks/useCircleLayout.d.ts +9 -0
  218. package/esm/features/graph/hooks/useCircleLayout.js +43 -0
  219. package/esm/features/graph/hooks/useLoopRenderer.d.ts +5 -0
  220. package/esm/features/graph/hooks/useLoopRenderer.js +43 -0
  221. package/esm/features/graph/hooks/useLoopRenderer.test.d.ts +1 -0
  222. package/esm/features/graph/hooks/useLoopRenderer.test.js +219 -0
  223. package/esm/features/graph/hooks/useSigmaCustomRenderers.d.ts +7 -0
  224. package/esm/features/graph/hooks/useSigmaCustomRenderers.js +91 -0
  225. package/esm/features/graph/hooks/useSigmaCustomRenderers.test.d.ts +1 -0
  226. package/esm/features/graph/hooks/useSigmaCustomRenderers.test.js +198 -0
  227. package/esm/features/graph/index.d.ts +16 -0
  228. package/esm/features/graph/index.js +17 -0
  229. package/esm/features/graph/rendering/canvas/hover.d.ts +2 -0
  230. package/esm/features/graph/rendering/canvas/hover.js +6 -0
  231. package/esm/features/graph/rendering/canvas/hover.spec.d.ts +1 -0
  232. package/esm/features/graph/rendering/canvas/hover.spec.js +24 -0
  233. package/esm/features/graph/rendering/canvas/label.d.ts +7 -0
  234. package/esm/features/graph/rendering/canvas/label.js +28 -0
  235. package/esm/features/graph/rendering/canvas/label.spec.d.ts +1 -0
  236. package/esm/features/graph/rendering/canvas/label.spec.js +79 -0
  237. package/esm/features/graph/rendering/canvas/labelBackground.d.ts +9 -0
  238. package/esm/features/graph/rendering/canvas/labelBackground.js +33 -0
  239. package/esm/features/graph/rendering/canvas/labelBackground.spec.d.ts +1 -0
  240. package/esm/features/graph/rendering/canvas/labelBackground.spec.js +90 -0
  241. package/esm/features/graph/rendering/canvas/nodeArc.d.ts +10 -0
  242. package/esm/features/graph/rendering/canvas/nodeArc.js +27 -0
  243. package/esm/features/graph/rendering/canvas/selfRelationLoop.d.ts +11 -0
  244. package/esm/features/graph/rendering/canvas/selfRelationLoop.js +69 -0
  245. package/esm/features/graph/rendering/canvas/selfRelationLoop.spec.d.ts +1 -0
  246. package/esm/features/graph/rendering/canvas/selfRelationLoop.spec.js +90 -0
  247. package/esm/features/graph/rendering/canvas/tooltip.d.ts +2 -0
  248. package/esm/features/graph/rendering/canvas/tooltip.js +25 -0
  249. package/esm/features/graph/rendering/canvas/tooltip.spec.d.ts +1 -0
  250. package/esm/features/graph/rendering/canvas/tooltip.spec.js +30 -0
  251. package/esm/features/graph/rendering/canvas/utils.d.ts +4 -0
  252. package/esm/features/graph/rendering/canvas/utils.js +6 -0
  253. package/esm/features/graph/rendering/canvas/utils.spec.d.ts +1 -0
  254. package/esm/features/graph/rendering/canvas/utils.spec.js +20 -0
  255. package/esm/features/graph/rendering/icons/no_photo.inline.svg.d.ts +1 -0
  256. package/esm/features/graph/rendering/icons/no_photo.inline.svg.js +1 -0
  257. package/esm/features/graph/rendering/webgl/edge.arrowHead.d.ts +8 -0
  258. package/esm/features/graph/rendering/webgl/edge.arrowHead.js +79 -0
  259. package/esm/features/graph/rendering/webgl/edge.clamped.d.ts +29 -0
  260. package/esm/features/graph/rendering/webgl/edge.clamped.js +171 -0
  261. package/esm/features/graph/rendering/webgl/edge.dashed.d.ts +23 -0
  262. package/esm/features/graph/rendering/webgl/edge.dashed.js +160 -0
  263. package/esm/features/graph/rendering/webgl/edge.reversedArrowHead.d.ts +5 -0
  264. package/esm/features/graph/rendering/webgl/edge.reversedArrowHead.js +27 -0
  265. package/esm/features/graph/rendering/webgl/helpers/imageHelper.d.ts +17 -0
  266. package/esm/features/graph/rendering/webgl/helpers/imageHelper.js +5 -0
  267. package/esm/features/graph/rendering/webgl/helpers/imageHelper.spec.d.ts +1 -0
  268. package/esm/features/graph/rendering/webgl/helpers/imageHelper.spec.js +27 -0
  269. package/esm/features/graph/rendering/webgl/image.d.ts +17 -0
  270. package/esm/features/graph/rendering/webgl/image.js +112 -0
  271. package/esm/features/graph/rendering/webgl/node.border.d.ts +11 -0
  272. package/esm/features/graph/rendering/webgl/node.border.js +76 -0
  273. package/esm/features/graph/rendering/webgl/node.dashed.border.d.ts +11 -0
  274. package/esm/features/graph/rendering/webgl/node.dashed.border.js +74 -0
  275. package/esm/features/graph/rendering/webgl/node.image.d.ts +18 -0
  276. package/esm/features/graph/rendering/webgl/node.image.js +144 -0
  277. package/esm/features/graph/rendering/webgl/shaders/edge.clamped.vert.glsl.d.ts +1 -0
  278. package/esm/features/graph/rendering/webgl/shaders/edge.clamped.vert.glsl.js +5 -0
  279. package/esm/features/graph/rendering/webgl/shaders/edge.dashed.frag.glsl.d.ts +1 -0
  280. package/esm/features/graph/rendering/webgl/shaders/edge.dashed.frag.glsl.js +5 -0
  281. package/esm/features/graph/rendering/webgl/shaders/edge.dashed.vert.glsl.d.ts +1 -0
  282. package/esm/features/graph/rendering/webgl/shaders/edge.dashed.vert.glsl.js +5 -0
  283. package/esm/features/graph/rendering/webgl/shaders/node.border.frag.glsl.d.ts +1 -0
  284. package/esm/features/graph/rendering/webgl/shaders/node.border.frag.glsl.js +6 -0
  285. package/esm/features/graph/rendering/webgl/shaders/node.border.vert.glsl.d.ts +1 -0
  286. package/esm/features/graph/rendering/webgl/shaders/node.border.vert.glsl.js +5 -0
  287. package/esm/features/graph/rendering/webgl/shaders/node.dashed.border.frag.glsl.d.ts +1 -0
  288. package/esm/features/graph/rendering/webgl/shaders/node.dashed.border.frag.glsl.js +5 -0
  289. package/esm/features/graph/rendering/webgl/shaders/node.image.frag.glsl.d.ts +1 -0
  290. package/esm/features/graph/rendering/webgl/shaders/node.image.frag.glsl.js +2 -0
  291. package/esm/features/graph/rendering/webgl/shaders/node.image.vert.glsl.d.ts +1 -0
  292. package/esm/features/graph/rendering/webgl/shaders/node.image.vert.glsl.js +5 -0
  293. package/esm/features/graph/rendering/webgl/shaders/utils.d.ts +1 -0
  294. package/esm/features/graph/rendering/webgl/shaders/utils.js +1 -0
  295. package/esm/features/graph/types/graphDataTypes.d.ts +51 -0
  296. package/esm/features/graph/types/graphDataTypes.js +5 -0
  297. package/esm/features/graph/types/sigmaCustomRenderersTypes.d.ts +11 -0
  298. package/esm/features/graph/types/sigmaCustomRenderersTypes.js +1 -0
  299. package/esm/icons/EmptyLoading.d.ts +3 -0
  300. package/esm/icons/EmptyLoading.js +145 -0
  301. package/esm/icons/index.d.ts +1 -0
  302. package/esm/icons/index.js +1 -0
  303. package/esm/index.d.ts +1 -0
  304. package/esm/index.js +2 -0
  305. package/package.json +2 -2
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var react_hooks_1 = require("@testing-library/react-hooks");
4
+ var core_1 = require("@react-sigma/core");
5
+ var ramda_1 = require("ramda");
6
+ var useSigmaCustomRenderers_1 = require("./useSigmaCustomRenderers");
7
+ var utils_1 = require("sigma/utils");
8
+ jest.mock('@react-sigma/core');
9
+ jest.mock('sigma/utils');
10
+ describe('useSigmaCustomRenderers tests', function () {
11
+ var addListener = jest.fn();
12
+ var off = jest.fn();
13
+ var getRendererByEventName = function (eventName) {
14
+ return (0, ramda_1.pipe)((0, ramda_1.path)(['mock', 'calls']), (0, ramda_1.findLast)((0, ramda_1.pipe)((0, ramda_1.nth)(0), (0, ramda_1.equals)(eventName))), (0, ramda_1.nth)(1))(addListener);
15
+ };
16
+ var sigmaContainerElement = {
17
+ querySelector: function (val) { return val; },
18
+ insertBefore: jest.fn()
19
+ };
20
+ var sigmaElement = {
21
+ querySelector: jest.fn(function () { return sigmaContainerElement; }),
22
+ offsetWidth: 200,
23
+ offsetHeight: 300
24
+ };
25
+ var context = {
26
+ scale: jest.fn(),
27
+ clearRect: jest.fn()
28
+ };
29
+ var canvas = {
30
+ style: {},
31
+ setAttribute: jest.fn(),
32
+ getContext: jest.fn(function () { return context; }),
33
+ remove: jest.fn()
34
+ };
35
+ beforeEach(function () {
36
+ core_1.useSigmaContext.mockReturnValue({
37
+ sigma: { addListener: addListener, off: off },
38
+ container: sigmaElement
39
+ });
40
+ });
41
+ afterEach(function () {
42
+ jest.restoreAllMocks();
43
+ jest.clearAllMocks();
44
+ canvas.style = {};
45
+ });
46
+ it('should add listeners', function () {
47
+ (0, react_hooks_1.renderHook)(useSigmaCustomRenderers_1.useSigmaCustomRenderers);
48
+ expect(addListener).toHaveBeenCalledWith('beforeRender', expect.any(Function));
49
+ expect(addListener).toHaveBeenCalledWith('afterRender', expect.any(Function));
50
+ expect(addListener).toHaveBeenCalledWith('resize', expect.any(Function));
51
+ });
52
+ it('should remove listeners after unmount component', function () {
53
+ var unmount = (0, react_hooks_1.renderHook)(useSigmaCustomRenderers_1.useSigmaCustomRenderers).unmount;
54
+ unmount();
55
+ expect(off).toHaveBeenCalledWith('beforeRender', expect.any(Function));
56
+ expect(off).toHaveBeenCalledWith('afterRender', expect.any(Function));
57
+ expect(off).toHaveBeenCalledWith('resize', expect.any(Function));
58
+ });
59
+ it('beforeRender should work correctly', function () {
60
+ var _a = (0, react_hooks_1.renderHook)(useSigmaCustomRenderers_1.useSigmaCustomRenderers), result = _a.result, rerender = _a.rerender;
61
+ jest.spyOn(document, 'createElement').mockReturnValue(canvas);
62
+ (0, react_hooks_1.act)(function () {
63
+ result.current.addRenderers({ customRenderer: { renderer: jest.fn(), insertBefore: 'element' } });
64
+ });
65
+ rerender();
66
+ var beforeRender = getRendererByEventName('beforeRender');
67
+ (0, react_hooks_1.act)(function () {
68
+ beforeRender();
69
+ });
70
+ expect(sigmaElement.querySelector).toHaveBeenCalledWith('.sigma-container');
71
+ expect(canvas.style.position).toBe('absolute');
72
+ expect(canvas.setAttribute).toHaveBeenCalledWith('class', 'sigma-customRenderer');
73
+ expect(canvas.getContext).toHaveBeenCalledWith('2d', { preserveDrawingBuffer: false, antialias: false });
74
+ expect(sigmaContainerElement.insertBefore).toHaveBeenCalledWith(canvas, '.sigma-element');
75
+ var canvases = { customRenderer: { canvasElement: canvas, context: context } };
76
+ expect(result.current).toEqual({
77
+ addRenderers: expect.any(Function),
78
+ canvases: canvases,
79
+ canvasesRef: { current: canvases }
80
+ });
81
+ expect(utils_1.getPixelRatio).toHaveBeenCalled();
82
+ });
83
+ it('beforeRender should work correctly if canvas already has been created', function () {
84
+ var _a = (0, react_hooks_1.renderHook)(useSigmaCustomRenderers_1.useSigmaCustomRenderers), result = _a.result, rerender = _a.rerender;
85
+ (0, react_hooks_1.act)(function () {
86
+ result.current.addRenderers({ customRenderer: { renderer: jest.fn(), insertBefore: 'element' } });
87
+ });
88
+ rerender();
89
+ var beforeRender = getRendererByEventName('beforeRender');
90
+ (0, react_hooks_1.act)(function () {
91
+ beforeRender();
92
+ });
93
+ expect(sigmaElement.querySelector).toHaveBeenCalledTimes(1);
94
+ (0, react_hooks_1.act)(function () {
95
+ beforeRender();
96
+ });
97
+ expect(sigmaElement.querySelector).toHaveBeenCalledTimes(1);
98
+ });
99
+ it('resize should work correctly if canvases is empty', function () {
100
+ var _a = (0, react_hooks_1.renderHook)(useSigmaCustomRenderers_1.useSigmaCustomRenderers), result = _a.result, rerender = _a.rerender;
101
+ jest.spyOn(document, 'createElement').mockReturnValue(canvas);
102
+ (0, react_hooks_1.act)(function () {
103
+ result.current.addRenderers({ customRenderer: { renderer: jest.fn(), insertBefore: 'element' } });
104
+ });
105
+ rerender();
106
+ var resize = getRendererByEventName('resize');
107
+ (0, react_hooks_1.act)(function () {
108
+ resize();
109
+ });
110
+ expect(utils_1.getPixelRatio).toHaveBeenCalled();
111
+ expect(canvas.setAttribute).not.toHaveBeenCalled();
112
+ });
113
+ it('resize should work correctly if canvas exists and pixelRatio equals 1', function () {
114
+ utils_1.getPixelRatio.mockReturnValue(1);
115
+ var _a = (0, react_hooks_1.renderHook)(useSigmaCustomRenderers_1.useSigmaCustomRenderers), result = _a.result, rerender = _a.rerender;
116
+ jest.spyOn(document, 'createElement').mockReturnValue(canvas);
117
+ (0, react_hooks_1.act)(function () {
118
+ result.current.addRenderers({ customRenderer: { renderer: jest.fn(), insertBefore: 'element' } });
119
+ });
120
+ rerender();
121
+ var beforeRender = getRendererByEventName('beforeRender');
122
+ (0, react_hooks_1.act)(function () {
123
+ beforeRender();
124
+ });
125
+ expect(result.current.canvases.customRenderer).not.toBeUndefined();
126
+ var resize = getRendererByEventName('resize');
127
+ jest.clearAllMocks();
128
+ (0, react_hooks_1.act)(function () {
129
+ resize();
130
+ });
131
+ expect(canvas.setAttribute).toHaveBeenCalledTimes(2);
132
+ expect(canvas.setAttribute).toHaveBeenCalledWith('width', '200px');
133
+ expect(canvas.setAttribute).toHaveBeenCalledWith('height', '300px');
134
+ expect(canvas.style.width).toBe('200px');
135
+ expect(canvas.style.height).toBe('300px');
136
+ expect(context.scale).not.toHaveBeenCalled();
137
+ });
138
+ it('resize should work correctly if canvas exists and pixelRatio does not equal 1', function () {
139
+ utils_1.getPixelRatio.mockReturnValue(0.9);
140
+ var _a = (0, react_hooks_1.renderHook)(useSigmaCustomRenderers_1.useSigmaCustomRenderers), result = _a.result, rerender = _a.rerender;
141
+ jest.spyOn(document, 'createElement').mockReturnValue(canvas);
142
+ (0, react_hooks_1.act)(function () {
143
+ result.current.addRenderers({ customRenderer: { renderer: jest.fn(), insertBefore: 'element' } });
144
+ });
145
+ rerender();
146
+ var beforeRender = getRendererByEventName('beforeRender');
147
+ (0, react_hooks_1.act)(function () {
148
+ beforeRender();
149
+ });
150
+ expect(result.current.canvases.customRenderer).not.toBeUndefined();
151
+ var resize = getRendererByEventName('resize');
152
+ jest.clearAllMocks();
153
+ (0, react_hooks_1.act)(function () {
154
+ resize();
155
+ });
156
+ expect(canvas.setAttribute).toHaveBeenCalledTimes(2);
157
+ expect(canvas.setAttribute).toHaveBeenCalledWith('width', '180px');
158
+ expect(canvas.setAttribute).toHaveBeenCalledWith('height', '270px');
159
+ expect(canvas.style.width).toBe('200px');
160
+ expect(canvas.style.height).toBe('300px');
161
+ expect(context.scale).toHaveBeenCalledWith(0.9, 0.9);
162
+ });
163
+ it('afterRender should work correctly', function () {
164
+ var _a = (0, react_hooks_1.renderHook)(useSigmaCustomRenderers_1.useSigmaCustomRenderers), result = _a.result, rerender = _a.rerender;
165
+ jest.spyOn(document, 'createElement').mockReturnValue(canvas);
166
+ var customRenderer = jest.fn();
167
+ (0, react_hooks_1.act)(function () {
168
+ result.current.addRenderers({ customRenderer: { renderer: customRenderer, insertBefore: 'element' } });
169
+ });
170
+ rerender();
171
+ var beforeRender = getRendererByEventName('beforeRender');
172
+ (0, react_hooks_1.act)(function () {
173
+ beforeRender();
174
+ });
175
+ expect(result.current.canvases.customRenderer).not.toBeUndefined();
176
+ var afterRender = getRendererByEventName('afterRender');
177
+ jest.clearAllMocks();
178
+ (0, react_hooks_1.act)(function () {
179
+ afterRender();
180
+ });
181
+ expect(context.clearRect).toHaveBeenCalledWith(0, 0, 200, 300);
182
+ expect(customRenderer).toHaveBeenCalledWith(context);
183
+ });
184
+ it('should remove canvas element from DOM and clear canvases ref if component has been unmounted', function () {
185
+ var _a = (0, react_hooks_1.renderHook)(useSigmaCustomRenderers_1.useSigmaCustomRenderers), result = _a.result, rerender = _a.rerender, unmount = _a.unmount;
186
+ jest.spyOn(document, 'createElement').mockReturnValue(canvas);
187
+ (0, react_hooks_1.act)(function () {
188
+ result.current.addRenderers({ customRenderer: { renderer: jest.fn(), insertBefore: 'element' } });
189
+ });
190
+ rerender();
191
+ var beforeRender = getRendererByEventName('beforeRender');
192
+ (0, react_hooks_1.act)(function () {
193
+ beforeRender();
194
+ });
195
+ expect(result.current.canvases.customRenderer).not.toBeUndefined();
196
+ unmount();
197
+ expect(canvas.remove).toHaveBeenCalled();
198
+ expect(result.current.canvases).toEqual({});
199
+ });
200
+ });
@@ -0,0 +1,16 @@
1
+ export { SigmaGraphContainer } from './SigmaGraphContainer';
2
+ export { ZoomSlider } from './ZoomSlider';
3
+ export { DataModelGraph } from './DataModelGraph';
4
+ export { useSigmaCustomRenderers } from './hooks/useSigmaCustomRenderers';
5
+ export { useLoopRenderer } from './hooks/useLoopRenderer';
6
+ export { useAnimatedGraphLayout } from './hooks/useAnimatedGraphLayout';
7
+ export { useCircleLayout } from './hooks/useCircleLayout';
8
+ export { drawTooltip } from './rendering/canvas/tooltip';
9
+ export { NodeImageProgram } from './rendering/webgl/node.image';
10
+ export { NodeBorderProgram } from './rendering/webgl/node.border';
11
+ export { NodeDashedBorderProgram } from './rendering/webgl/node.dashed.border';
12
+ export { WebGLImageLoader } from './rendering/webgl/image';
13
+ export { getCanvasMousePos } from './rendering/canvas/utils';
14
+ export type { GraphNodeAttributes, GraphEdgeAttributes } from './types/graphDataTypes';
15
+ export { DataModelGraphNodeType } from './types/graphDataTypes';
16
+ export type { Canvas } from './types/sigmaCustomRenderersTypes';
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DataModelGraphNodeType = exports.getCanvasMousePos = exports.WebGLImageLoader = exports.NodeDashedBorderProgram = exports.NodeBorderProgram = exports.NodeImageProgram = exports.drawTooltip = exports.useCircleLayout = exports.useAnimatedGraphLayout = exports.useLoopRenderer = exports.useSigmaCustomRenderers = exports.DataModelGraph = exports.ZoomSlider = exports.SigmaGraphContainer = void 0;
4
+ // components
5
+ var SigmaGraphContainer_1 = require("./SigmaGraphContainer");
6
+ Object.defineProperty(exports, "SigmaGraphContainer", { enumerable: true, get: function () { return SigmaGraphContainer_1.SigmaGraphContainer; } });
7
+ var ZoomSlider_1 = require("./ZoomSlider");
8
+ Object.defineProperty(exports, "ZoomSlider", { enumerable: true, get: function () { return ZoomSlider_1.ZoomSlider; } });
9
+ var DataModelGraph_1 = require("./DataModelGraph");
10
+ Object.defineProperty(exports, "DataModelGraph", { enumerable: true, get: function () { return DataModelGraph_1.DataModelGraph; } });
11
+ // hooks
12
+ var useSigmaCustomRenderers_1 = require("./hooks/useSigmaCustomRenderers");
13
+ Object.defineProperty(exports, "useSigmaCustomRenderers", { enumerable: true, get: function () { return useSigmaCustomRenderers_1.useSigmaCustomRenderers; } });
14
+ var useLoopRenderer_1 = require("./hooks/useLoopRenderer");
15
+ Object.defineProperty(exports, "useLoopRenderer", { enumerable: true, get: function () { return useLoopRenderer_1.useLoopRenderer; } });
16
+ var useAnimatedGraphLayout_1 = require("./hooks/useAnimatedGraphLayout");
17
+ Object.defineProperty(exports, "useAnimatedGraphLayout", { enumerable: true, get: function () { return useAnimatedGraphLayout_1.useAnimatedGraphLayout; } });
18
+ var useCircleLayout_1 = require("./hooks/useCircleLayout");
19
+ Object.defineProperty(exports, "useCircleLayout", { enumerable: true, get: function () { return useCircleLayout_1.useCircleLayout; } });
20
+ // renderers
21
+ var tooltip_1 = require("./rendering/canvas/tooltip");
22
+ Object.defineProperty(exports, "drawTooltip", { enumerable: true, get: function () { return tooltip_1.drawTooltip; } });
23
+ var node_image_1 = require("./rendering/webgl/node.image");
24
+ Object.defineProperty(exports, "NodeImageProgram", { enumerable: true, get: function () { return node_image_1.NodeImageProgram; } });
25
+ var node_border_1 = require("./rendering/webgl/node.border");
26
+ Object.defineProperty(exports, "NodeBorderProgram", { enumerable: true, get: function () { return node_border_1.NodeBorderProgram; } });
27
+ var node_dashed_border_1 = require("./rendering/webgl/node.dashed.border");
28
+ Object.defineProperty(exports, "NodeDashedBorderProgram", { enumerable: true, get: function () { return node_dashed_border_1.NodeDashedBorderProgram; } });
29
+ var image_1 = require("./rendering/webgl/image");
30
+ Object.defineProperty(exports, "WebGLImageLoader", { enumerable: true, get: function () { return image_1.WebGLImageLoader; } });
31
+ var utils_1 = require("./rendering/canvas/utils");
32
+ Object.defineProperty(exports, "getCanvasMousePos", { enumerable: true, get: function () { return utils_1.getCanvasMousePos; } });
33
+ var graphDataTypes_1 = require("./types/graphDataTypes");
34
+ Object.defineProperty(exports, "DataModelGraphNodeType", { enumerable: true, get: function () { return graphDataTypes_1.DataModelGraphNodeType; } });
@@ -0,0 +1,2 @@
1
+ import { GraphContainerSettings, GraphNodeAttributes } from '../../types/graphDataTypes';
2
+ export declare const drawHover: (context: CanvasRenderingContext2D, data: Pick<GraphNodeAttributes, 'x' | 'y' | 'size' | 'label' | 'selected'>, settings: GraphContainerSettings) => void;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.drawHover = void 0;
4
+ var label_1 = require("./label");
5
+ var nodeArc_1 = require("./nodeArc");
6
+ var drawHover = function (context, data, settings) {
7
+ (0, nodeArc_1.drawTwoArcs)(context, data);
8
+ (0, label_1.drawLabel)(context, data, settings, { backgroundColor: '#FFF' });
9
+ };
10
+ exports.drawHover = drawHover;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var hover_1 = require("./hover");
4
+ var label_1 = require("./label");
5
+ var nodeArc_1 = require("./nodeArc");
6
+ jest.mock('./label', function () { return ({
7
+ drawLabel: jest.fn()
8
+ }); });
9
+ jest.mock('./nodeArc', function () { return ({
10
+ drawTwoArcs: jest.fn()
11
+ }); });
12
+ describe('drawHover tests', function () {
13
+ var context = {};
14
+ var settings = {};
15
+ var data = {
16
+ x: 1,
17
+ y: 1,
18
+ size: 12,
19
+ label: 'Test label'
20
+ };
21
+ it('should call drawTwoArcs and drawLabel', function () {
22
+ (0, hover_1.drawHover)(context, data, settings);
23
+ expect(nodeArc_1.drawTwoArcs).toHaveBeenCalledWith(context, data);
24
+ expect(label_1.drawLabel).toHaveBeenCalledWith(context, data, settings, { backgroundColor: '#FFF' });
25
+ });
26
+ });
@@ -0,0 +1,7 @@
1
+ import { GraphContainerSettings, GraphNodeAttributes } from '../../types/graphDataTypes';
2
+ type Options = {
3
+ backgroundColor?: string;
4
+ borderColor?: string;
5
+ };
6
+ export declare const drawLabel: (context: CanvasRenderingContext2D, data: Pick<GraphNodeAttributes, 'x' | 'y' | 'size' | 'label' | 'selected' | 'labelColor' | 'secondaryLabel'>, settings: GraphContainerSettings, { backgroundColor, borderColor }?: Options) => Path2D;
7
+ export {};
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.drawLabel = void 0;
4
+ var labelBackground_1 = require("./labelBackground");
5
+ var drawLabel = function (context, data, settings, _a) {
6
+ var _b, _c, _d, _e;
7
+ var _f = _a === void 0 ? {} : _a, backgroundColor = _f.backgroundColor, borderColor = _f.borderColor;
8
+ if (!data.label)
9
+ return;
10
+ var size = settings.labelSize, font = settings.labelFont, weight = settings.labelWeight, marginLeft = data.selected ? 6 : 2, lineHeight = size * 1.2;
11
+ var PERMANENT_MARGIN_LEFT = 9;
12
+ var labelBackgroundPath = (0, labelBackground_1.drawLabelBackground)(context, data, settings, {
13
+ backgroundColor: data.selected ? '#FFF' : backgroundColor,
14
+ marginLeft: marginLeft,
15
+ borderColor: borderColor,
16
+ lineHeight: lineHeight
17
+ });
18
+ context.fillStyle = ((_b = settings.labelColor) === null || _b === void 0 ? void 0 : _b.attribute)
19
+ ? data[settings.labelColor.attribute] || settings.labelColor.color || '#000'
20
+ : settings.labelColor.color;
21
+ context.font = "".concat(weight, " ").concat(size, "px ").concat(font);
22
+ var y = data.secondaryLabel ? data.y - size / (3 * 1.25) : data.y + size / 3;
23
+ context.fillText(data.label, data.x + data.size + PERMANENT_MARGIN_LEFT + marginLeft, y);
24
+ if (data.secondaryLabel) {
25
+ context.fillStyle = ((_c = settings.secondaryLabelColor) === null || _c === void 0 ? void 0 : _c.attribute)
26
+ ? data[settings.secondaryLabelColor.attribute] || ((_d = settings.secondaryLabelColor) === null || _d === void 0 ? void 0 : _d.color) || '#000'
27
+ : (_e = settings.secondaryLabelColor) === null || _e === void 0 ? void 0 : _e.color;
28
+ context.fillText(data.secondaryLabel, data.x + data.size + PERMANENT_MARGIN_LEFT + marginLeft, y + lineHeight);
29
+ }
30
+ return labelBackgroundPath;
31
+ };
32
+ exports.drawLabel = drawLabel;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var label_1 = require("./label");
4
+ var labelBackground_1 = require("./labelBackground");
5
+ jest.mock('./labelBackground', function () { return ({
6
+ drawLabelBackground: jest.fn()
7
+ }); });
8
+ describe('drawLabel tests', function () {
9
+ var context = {
10
+ fillText: jest.fn()
11
+ };
12
+ var settings = {
13
+ labelFont: 'Roboto',
14
+ labelSize: 12,
15
+ labelColor: {
16
+ color: 'rgba(0, 0, 0, 0.87)'
17
+ },
18
+ labelWeight: 'normal'
19
+ };
20
+ afterEach(function () {
21
+ jest.clearAllMocks();
22
+ });
23
+ it('should not call context.fillText if label is empty', function () {
24
+ var data = {
25
+ x: 1,
26
+ y: 1,
27
+ size: 12,
28
+ label: ''
29
+ };
30
+ (0, label_1.drawLabel)(context, data, settings);
31
+ expect(context.fillText).not.toHaveBeenCalled();
32
+ expect(labelBackground_1.drawLabelBackground).not.toHaveBeenCalled();
33
+ });
34
+ it('should call context.fillText if label is not empty', function () {
35
+ var data = {
36
+ x: 1,
37
+ y: 1,
38
+ size: 12,
39
+ label: 'Test label'
40
+ };
41
+ (0, label_1.drawLabel)(context, data, settings);
42
+ expect(context.font).toBe('normal 12px Roboto');
43
+ expect(context.fillStyle).toBe(settings.labelColor.color);
44
+ expect(context.fillText).toHaveBeenCalledWith(data.label, 24, 5);
45
+ expect(labelBackground_1.drawLabelBackground).toHaveBeenCalledWith(context, data, settings, {
46
+ marginLeft: 2,
47
+ lineHeight: settings.labelSize * 1.2
48
+ });
49
+ });
50
+ it('should call drawLabelBackground to show background with specified color', function () {
51
+ var data = {
52
+ x: 1,
53
+ y: 1,
54
+ size: 12,
55
+ label: 'Test label'
56
+ };
57
+ (0, label_1.drawLabel)(context, data, settings, { backgroundColor: '#FFF' });
58
+ expect(labelBackground_1.drawLabelBackground).toHaveBeenCalledWith(context, data, settings, {
59
+ backgroundColor: '#FFF',
60
+ marginLeft: 2,
61
+ lineHeight: settings.labelSize * 1.2
62
+ });
63
+ expect(context.fillText).toHaveBeenCalledWith(data.label, 24, 5);
64
+ });
65
+ it('should call drawLabelBackground with special background and margin in selected state', function () {
66
+ var data = {
67
+ x: 1,
68
+ y: 1,
69
+ size: 12,
70
+ label: 'Test label',
71
+ selected: true
72
+ };
73
+ (0, label_1.drawLabel)(context, data, settings);
74
+ expect(labelBackground_1.drawLabelBackground).toHaveBeenCalledWith(context, data, settings, {
75
+ backgroundColor: '#FFF',
76
+ marginLeft: 6,
77
+ lineHeight: settings.labelSize * 1.2
78
+ });
79
+ expect(context.fillText).toHaveBeenCalledWith(data.label, 28, 5);
80
+ });
81
+ });
@@ -0,0 +1,9 @@
1
+ import { GraphContainerSettings, GraphNodeAttributes } from '../../types/graphDataTypes';
2
+ type Options = {
3
+ backgroundColor?: string;
4
+ marginLeft?: number;
5
+ lineHeight?: number;
6
+ borderColor?: string;
7
+ };
8
+ export declare const drawLabelBackground: (context: CanvasRenderingContext2D, data: Pick<GraphNodeAttributes, 'x' | 'y' | 'size' | 'label' | 'secondaryLabel'>, settings: GraphContainerSettings, { backgroundColor, marginLeft, borderColor, lineHeight }?: Options) => Path2D;
9
+ export {};
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.drawLabelBackground = void 0;
4
+ var PADDING = 2;
5
+ var drawLabelBackground = function (context, data, settings, _a) {
6
+ var _b = _a === void 0 ? {} : _a, _c = _b.backgroundColor, backgroundColor = _c === void 0 ? 'rgba(245, 245, 245, 0.9)' : _c, _d = _b.marginLeft, marginLeft = _d === void 0 ? 2 : _d, borderColor = _b.borderColor, lineHeight = _b.lineHeight;
7
+ context.fillStyle = backgroundColor;
8
+ if (borderColor) {
9
+ context.strokeStyle = borderColor;
10
+ }
11
+ var path = new Path2D();
12
+ if (typeof data.label === 'string') {
13
+ var secondLineHeight = data.secondaryLabel ? lineHeight : 0;
14
+ var size = settings.labelSize + secondLineHeight + 2;
15
+ var borderRadius = 2;
16
+ var textWidth = Math.max(context.measureText(data.label).width, context.measureText(data.secondaryLabel || '').width), boxWidth = Math.round(textWidth + 14), boxHeight = Math.round(size + 2 * PADDING), radius = data.size + PADDING;
17
+ var top_1 = data.y - boxHeight / 2;
18
+ var bottom = data.y + boxHeight / 2;
19
+ var left = data.x + radius + marginLeft;
20
+ var right = left + boxWidth;
21
+ path.moveTo(left, bottom - borderRadius);
22
+ path.quadraticCurveTo(left, bottom, left + borderRadius, bottom);
23
+ path.lineTo(right - borderRadius, bottom);
24
+ path.quadraticCurveTo(right, bottom, right, bottom - borderRadius);
25
+ path.lineTo(right, top_1 + borderRadius);
26
+ path.quadraticCurveTo(right, top_1, right - borderRadius, top_1);
27
+ path.lineTo(left + borderRadius, top_1);
28
+ path.quadraticCurveTo(left, top_1, left, top_1 + borderRadius);
29
+ path.closePath();
30
+ context.fill(path);
31
+ if (borderColor) {
32
+ context.stroke(path);
33
+ }
34
+ }
35
+ return path;
36
+ };
37
+ exports.drawLabelBackground = drawLabelBackground;
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var labelBackground_1 = require("./labelBackground");
4
+ describe('drawLabelBackground tests', function () {
5
+ var context = {
6
+ beginPath: jest.fn(),
7
+ moveTo: jest.fn(),
8
+ lineTo: jest.fn(),
9
+ arc: jest.fn(),
10
+ closePath: jest.fn(),
11
+ fill: jest.fn(),
12
+ measureText: jest.fn().mockReturnValue({
13
+ width: 100
14
+ }),
15
+ fillText: jest.fn(),
16
+ quadraticCurveTo: jest.fn(),
17
+ stroke: jest.fn()
18
+ };
19
+ var settings = {
20
+ labelFont: 'Roboto',
21
+ labelSize: 12,
22
+ labelColor: {
23
+ color: 'rgba(0, 0, 0, 0.87)'
24
+ },
25
+ labelWeight: 'normal'
26
+ };
27
+ afterEach(function () {
28
+ jest.clearAllMocks();
29
+ });
30
+ var get2DPathEventTypes = function (path) {
31
+ return path._events.map(function (event) { return event.type; });
32
+ };
33
+ it('should call context methods if label is string (hover behavior)', function () {
34
+ var data = {
35
+ x: 1,
36
+ y: 1,
37
+ size: 12,
38
+ label: 'Test label'
39
+ };
40
+ var canvasPath = (0, labelBackground_1.drawLabelBackground)(context, data, settings);
41
+ var expectedEvents = [
42
+ 'moveTo',
43
+ 'quadraticCurveTo',
44
+ 'lineTo',
45
+ 'quadraticCurveTo',
46
+ 'lineTo',
47
+ 'quadraticCurveTo',
48
+ 'lineTo',
49
+ 'quadraticCurveTo',
50
+ 'closePath'
51
+ ];
52
+ expect(get2DPathEventTypes(canvasPath)).toEqual(expectedEvents);
53
+ expect(context.fill).toHaveBeenCalledWith(canvasPath);
54
+ expect(context.stroke).not.toHaveBeenCalled();
55
+ });
56
+ it('should not call context methods if label is not string', function () {
57
+ var data = {
58
+ x: 1,
59
+ y: 1,
60
+ size: 12,
61
+ label: null
62
+ };
63
+ var canvasPath = (0, labelBackground_1.drawLabelBackground)(context, data, settings);
64
+ expect(get2DPathEventTypes(canvasPath)).toEqual([]);
65
+ expect(context.fill).not.toHaveBeenCalled();
66
+ expect(context.stroke).not.toHaveBeenCalled();
67
+ });
68
+ it('should draw stroke if borderColor option is provided', function () {
69
+ var data = {
70
+ x: 1,
71
+ y: 1,
72
+ size: 12,
73
+ label: 'Test label'
74
+ };
75
+ var canvasPath = (0, labelBackground_1.drawLabelBackground)(context, data, settings, { borderColor: 'red' });
76
+ expect(context.strokeStyle).toEqual('red');
77
+ var expectedEvents = [
78
+ 'moveTo',
79
+ 'quadraticCurveTo',
80
+ 'lineTo',
81
+ 'quadraticCurveTo',
82
+ 'lineTo',
83
+ 'quadraticCurveTo',
84
+ 'lineTo',
85
+ 'quadraticCurveTo',
86
+ 'closePath'
87
+ ];
88
+ expect(get2DPathEventTypes(canvasPath)).toEqual(expectedEvents);
89
+ expect(context.fill).toHaveBeenCalledWith(canvasPath);
90
+ expect(context.stroke).toHaveBeenCalledWith(canvasPath);
91
+ });
92
+ });
@@ -0,0 +1,10 @@
1
+ import { GraphNodeAttributes } from '../../types/graphDataTypes';
2
+ type Options = {
3
+ padding?: number;
4
+ lineWidth?: number;
5
+ color?: string;
6
+ };
7
+ export declare const drawNodeArc: (context: CanvasRenderingContext2D, data: Pick<GraphNodeAttributes, 'x' | 'y' | 'size' | 'label' | 'selected'>, { padding, color, lineWidth }?: Options) => void;
8
+ export declare const drawOuterArc: (context: CanvasRenderingContext2D, data: Pick<GraphNodeAttributes, 'x' | 'y' | 'size' | 'label' | 'selected'>) => void;
9
+ export declare const drawTwoArcs: (context: CanvasRenderingContext2D, data: Pick<GraphNodeAttributes, 'x' | 'y' | 'size' | 'label' | 'selected'>) => void;
10
+ export {};
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.drawTwoArcs = exports.drawOuterArc = exports.drawNodeArc = void 0;
4
+ var PADDING = 1.5;
5
+ var drawNodeArc = function (context, data, _a) {
6
+ var _b = _a === void 0 ? {} : _a, _c = _b.padding, padding = _c === void 0 ? PADDING : _c, _d = _b.color, color = _d === void 0 ? '#FFF' : _d, _e = _b.lineWidth, lineWidth = _e === void 0 ? 4 : _e;
7
+ context.lineWidth = lineWidth;
8
+ context.strokeStyle = color;
9
+ context.beginPath();
10
+ context.arc(data.x, data.y, data.size + padding, 0, Math.PI * 2);
11
+ context.closePath();
12
+ context.stroke();
13
+ };
14
+ exports.drawNodeArc = drawNodeArc;
15
+ var drawOuterArc = function (context, data) {
16
+ if (data.selected) {
17
+ context.shadowColor = 'rgba(0, 114, 206, 0.5)';
18
+ context.shadowBlur = 10;
19
+ (0, exports.drawNodeArc)(context, data, {
20
+ lineWidth: 2,
21
+ color: '#0072CE',
22
+ padding: 4.5
23
+ });
24
+ context.shadowColor = 'none';
25
+ context.shadowBlur = 0;
26
+ }
27
+ };
28
+ exports.drawOuterArc = drawOuterArc;
29
+ var drawTwoArcs = function (context, data) {
30
+ (0, exports.drawOuterArc)(context, data);
31
+ (0, exports.drawNodeArc)(context, data);
32
+ };
33
+ exports.drawTwoArcs = drawTwoArcs;
@@ -0,0 +1,11 @@
1
+ import { NodeDisplayData, PartialButFor } from 'sigma/types';
2
+ import { GraphEdgeAttributes } from '../../types/graphDataTypes';
3
+ export declare const LOOP_SCALE = 0.6;
4
+ export declare const getSelfLoopControlPoints: (x: number, y: number, size: number, a?: number) => {
5
+ x1: number;
6
+ y1: number;
7
+ x2: number;
8
+ y2: number;
9
+ };
10
+ declare const drawSelfRelationLoop: (context: CanvasRenderingContext2D, edgeData: GraphEdgeAttributes, sourceData: PartialButFor<NodeDisplayData, 'x' | 'y' | 'size'>) => Path2D;
11
+ export { drawSelfRelationLoop };