@reltio/components 1.4.1844 → 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,9 @@
1
+ import Graph from 'graphology';
2
+ type Props = {
3
+ graph: Graph;
4
+ newNodesIds?: string[];
5
+ animationDuration?: number;
6
+ relayoutTrigger?: unknown;
7
+ };
8
+ export declare const useCircleLayout: ({ graph, newNodesIds, animationDuration, relayoutTrigger }: Props) => void;
9
+ export {};
@@ -0,0 +1,43 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { useMemo } from 'react';
13
+ import circular from 'graphology-layout/circular';
14
+ import forceAtlas2 from 'graphology-layout-forceatlas2';
15
+ import FA2Layout from 'graphology-layout-forceatlas2/worker';
16
+ import { useAnimatedGraphLayout } from './useAnimatedGraphLayout';
17
+ import { useDidUpdateEffect } from '../../../hooks';
18
+ export var useCircleLayout = function (_a) {
19
+ var graph = _a.graph, newNodesIds = _a.newNodesIds, animationDuration = _a.animationDuration, relayoutTrigger = _a.relayoutTrigger;
20
+ var layoutSettings = useMemo(function () {
21
+ circular.assign(graph);
22
+ return {
23
+ settings: __assign(__assign({}, forceAtlas2.inferSettings(graph)), { gravity: 1 })
24
+ };
25
+ }, [graph]);
26
+ useDidUpdateEffect(function () {
27
+ if (newNodesIds === null || newNodesIds === void 0 ? void 0 : newNodesIds.length) {
28
+ var tempGraph_1 = graph.copy();
29
+ circular.assign(tempGraph_1);
30
+ newNodesIds.forEach(function (id) {
31
+ graph.setNodeAttribute(id, 'x', tempGraph_1.getNodeAttribute(id, 'x'));
32
+ graph.setNodeAttribute(id, 'y', tempGraph_1.getNodeAttribute(id, 'y'));
33
+ });
34
+ }
35
+ }, [newNodesIds]);
36
+ useAnimatedGraphLayout({
37
+ workerLayout: FA2Layout,
38
+ layoutSettings: layoutSettings,
39
+ animationDuration: animationDuration,
40
+ graph: graph,
41
+ relayoutTrigger: relayoutTrigger
42
+ });
43
+ };
@@ -0,0 +1,5 @@
1
+ import Graph from 'graphology';
2
+ export declare const useLoopRenderer: (graph: Graph) => {
3
+ selfRelationsPathsMap: Record<string, Path2D>;
4
+ selfRelationLoopsCanvas: import("..").Canvas;
5
+ };
@@ -0,0 +1,43 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { useEffect, useRef } from 'react';
13
+ import { useSigma } from '@react-sigma/core';
14
+ import { useSigmaCustomRenderers } from '../contexts/SigmaCustomRenderersContext';
15
+ import { drawSelfRelationLoop } from '../rendering/canvas/selfRelationLoop';
16
+ export var useLoopRenderer = function (graph) {
17
+ var sigma = useSigma();
18
+ var _a = useSigmaCustomRenderers(), addCustomRenderers = _a.addRenderers, canvases = _a.canvases;
19
+ var selfRelationsPathsMap = useRef({});
20
+ var selfRelationLoopsCanvas = canvases.selfRelationLoops;
21
+ useEffect(function () {
22
+ addCustomRenderers({
23
+ selfRelationLoops: {
24
+ renderer: function (context) {
25
+ graph.forEachEdge(function (edgeId, edgeData, sourceId) {
26
+ if (edgeData.loop) {
27
+ delete selfRelationsPathsMap.current[edgeId];
28
+ var edgeDisplayData = sigma.getEdgeDisplayData(edgeId);
29
+ var sourceDisplayData = sigma.getNodeDisplayData(sourceId);
30
+ var isHidden = edgeDisplayData.hidden || sourceDisplayData.hidden;
31
+ if (isHidden)
32
+ return;
33
+ var path = drawSelfRelationLoop(context, __assign(__assign({}, edgeDisplayData), { size: sigma.scaleSize(edgeDisplayData.size) }), __assign(__assign(__assign({}, sourceDisplayData), sigma.framedGraphToViewport(sourceDisplayData)), { size: sigma.scaleSize(sourceDisplayData.size) }));
34
+ selfRelationsPathsMap.current[edgeId] = path;
35
+ }
36
+ });
37
+ },
38
+ insertBefore: 'edges'
39
+ }
40
+ });
41
+ }, [addCustomRenderers, graph, sigma]);
42
+ return { selfRelationsPathsMap: selfRelationsPathsMap.current, selfRelationLoopsCanvas: selfRelationLoopsCanvas };
43
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,219 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { renderHook, act } from '@testing-library/react-hooks';
13
+ import { MultiGraph } from 'graphology';
14
+ import { useSigma } from '@react-sigma/core';
15
+ import { RelationTypeDirection } from '@reltio/mdm-sdk';
16
+ import { useLoopRenderer } from './useLoopRenderer';
17
+ import { useSigmaCustomRenderers } from '../contexts/SigmaCustomRenderersContext';
18
+ import { drawSelfRelationLoop } from '../rendering/canvas/selfRelationLoop';
19
+ jest.mock('@react-sigma/core');
20
+ jest.mock('../contexts/SigmaCustomRenderersContext');
21
+ jest.mock('../rendering/canvas/selfRelationLoop');
22
+ var graphJson = {
23
+ attributes: {},
24
+ nodes: [
25
+ {
26
+ key: 'node1',
27
+ attributes: {
28
+ label: '<No label>',
29
+ entityTypeUri: 'hcp',
30
+ traversedRelationsCount: 2,
31
+ untraversedRelationsCount: 0,
32
+ x: 1,
33
+ y: 1
34
+ }
35
+ },
36
+ {
37
+ key: 'node2',
38
+ attributes: {
39
+ label: '<No label>',
40
+ entityTypeUri: 'hcp',
41
+ traversedRelationsCount: 3,
42
+ untraversedRelationsCount: 2,
43
+ x: 1,
44
+ y: 1
45
+ }
46
+ },
47
+ {
48
+ key: 'node3',
49
+ attributes: {
50
+ label: '<No label>',
51
+ entityTypeUri: 'hca',
52
+ traversedRelationsCount: 1,
53
+ untraversedRelationsCount: 0,
54
+ x: 1,
55
+ y: 1
56
+ }
57
+ }
58
+ ],
59
+ edges: [
60
+ {
61
+ key: 'r1',
62
+ source: 'node1',
63
+ target: 'node2',
64
+ attributes: {
65
+ size: 1,
66
+ color: 'rgba(0, 0, 0, 0.2)',
67
+ forceLabel: false,
68
+ loop: false,
69
+ relationTypeUri: 'relType1',
70
+ direction: 'directed'
71
+ }
72
+ },
73
+ {
74
+ key: 'r2',
75
+ source: 'node3',
76
+ target: 'node2',
77
+ attributes: {
78
+ size: 1,
79
+ color: 'rgba(0, 0, 0, 0.2)',
80
+ forceLabel: false,
81
+ loop: false,
82
+ relationTypeUri: 'relType2',
83
+ direction: 'directed'
84
+ }
85
+ },
86
+ {
87
+ key: 'r3',
88
+ source: 'node2',
89
+ target: 'node2',
90
+ attributes: {
91
+ size: 1,
92
+ color: 'rgba(0, 0, 0, 0.2)',
93
+ forceLabel: true,
94
+ loop: true,
95
+ relationTypeUri: 'relType3',
96
+ direction: 'directed'
97
+ }
98
+ },
99
+ {
100
+ key: 'r4',
101
+ source: 'node1',
102
+ target: 'node1',
103
+ attributes: {
104
+ size: 1,
105
+ color: 'rgba(0, 0, 0, 0.2)',
106
+ forceLabel: true,
107
+ loop: true,
108
+ relationTypeUri: 'relType4',
109
+ direction: 'directed'
110
+ }
111
+ }
112
+ ]
113
+ };
114
+ var edges = {
115
+ r1: {
116
+ size: 1,
117
+ color: 'rgba(0, 0, 0, 0.2)',
118
+ forceLabel: false,
119
+ loop: false,
120
+ relationTypeUri: 'relType1',
121
+ direction: RelationTypeDirection.directed
122
+ },
123
+ r2: {
124
+ size: 1,
125
+ color: 'rgba(0, 0, 0, 0.2)',
126
+ forceLabel: false,
127
+ loop: false,
128
+ relationTypeUri: 'relType2',
129
+ direction: RelationTypeDirection.directed
130
+ },
131
+ r3: {
132
+ size: 1,
133
+ color: 'rgba(0, 0, 0, 0.2)',
134
+ forceLabel: false,
135
+ hidden: true,
136
+ loop: true,
137
+ relationTypeUri: 'relType3',
138
+ direction: RelationTypeDirection.directed
139
+ },
140
+ r4: {
141
+ size: 1,
142
+ color: 'rgba(0, 0, 0, 0.2)',
143
+ forceLabel: true,
144
+ loop: true,
145
+ relationTypeUri: 'relType4',
146
+ direction: RelationTypeDirection.directed
147
+ }
148
+ };
149
+ var nodes = {
150
+ node1: {
151
+ size: 12,
152
+ label: 'node 1',
153
+ x: 0.5,
154
+ y: 0.4
155
+ },
156
+ node2: {
157
+ size: 12,
158
+ label: 'node 2',
159
+ x: 0.6,
160
+ y: 0.6
161
+ },
162
+ node3: {
163
+ size: 12,
164
+ label: 'node 3',
165
+ x: 0.8,
166
+ y: 0.7
167
+ }
168
+ };
169
+ var startHook = function (graph) { return renderHook(useLoopRenderer, { initialProps: graph }); };
170
+ var createGraph = function () {
171
+ var graph = new MultiGraph();
172
+ graph.import(graphJson);
173
+ return graph;
174
+ };
175
+ describe('useLoopRenderer tests', function () {
176
+ var getEdgeDisplayData = jest.fn().mockImplementation(function (edgeId) { return edges[edgeId]; });
177
+ var getNodeDisplayData = jest.fn().mockImplementation(function (nodeId) { return nodes[nodeId]; });
178
+ var scaleSize = jest.fn().mockImplementation(function (size) { return size * 2; });
179
+ var framedGraphToViewport = jest.fn().mockImplementation(function (_a) {
180
+ var x = _a.x, y = _a.y;
181
+ return ({ x: x * 100, y: y * 100 });
182
+ });
183
+ var addRenderers = jest.fn();
184
+ var canvases = { selfRelationLoops: {} };
185
+ beforeAll(function () {
186
+ drawSelfRelationLoop.mockImplementation(function (_context, edgeData) { return "path-".concat(edgeData.relationTypeUri); });
187
+ useSigmaCustomRenderers.mockReturnValue({
188
+ addRenderers: addRenderers,
189
+ canvases: canvases
190
+ });
191
+ useSigma.mockReturnValue({
192
+ getEdgeDisplayData: getEdgeDisplayData,
193
+ getNodeDisplayData: getNodeDisplayData,
194
+ scaleSize: scaleSize,
195
+ framedGraphToViewport: framedGraphToViewport
196
+ });
197
+ });
198
+ var getSelfRelationLoopsRenderer = function () {
199
+ return addRenderers.mock.calls[addRenderers.mock.calls.length - 1][0].selfRelationLoops;
200
+ };
201
+ it('should draw self relations correctly and with correctly setting paths', function () {
202
+ var graph = createGraph();
203
+ var result = startHook(graph).result;
204
+ expect(result.current).toEqual({
205
+ selfRelationsPathsMap: {},
206
+ selfRelationLoopsCanvas: canvases.selfRelationLoops
207
+ });
208
+ var renderer = getSelfRelationLoopsRenderer().renderer;
209
+ act(function () {
210
+ renderer('canvas');
211
+ });
212
+ expect(drawSelfRelationLoop).toHaveBeenCalledTimes(1);
213
+ expect(drawSelfRelationLoop).toHaveBeenCalledWith('canvas', __assign(__assign({}, edges.r4), { size: 2 }), __assign(__assign({}, nodes.node1), { size: 24, x: 50, y: 40 }));
214
+ expect(result.current).toEqual({
215
+ selfRelationsPathsMap: { r4: 'path-relType4' },
216
+ selfRelationLoopsCanvas: canvases.selfRelationLoops
217
+ });
218
+ });
219
+ });
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { Canvases, Renderers } from '../types/sigmaCustomRenderersTypes';
3
+ export declare const useSigmaCustomRenderers: () => {
4
+ addRenderers: (renderers: Renderers) => void;
5
+ canvases: Canvases;
6
+ canvasesRef: import("react").MutableRefObject<Canvases>;
7
+ };
@@ -0,0 +1,91 @@
1
+ import { useEffect, useRef, useCallback, useState } from 'react';
2
+ import { mergeLeft } from 'ramda';
3
+ import { useSigmaContext } from '@react-sigma/core';
4
+ import { getPixelRatio } from 'sigma/utils';
5
+ import { isEmptyValue } from '@reltio/mdm-sdk';
6
+ var createCanvasContext = function (canvas) {
7
+ var contextOptions = { preserveDrawingBuffer: false, antialias: false };
8
+ return canvas.getContext('2d', contextOptions);
9
+ };
10
+ var createCanvas = function (id) {
11
+ var canvas = document.createElement('canvas');
12
+ canvas.style.position = 'absolute';
13
+ canvas.setAttribute('class', "sigma-".concat(id));
14
+ return canvas;
15
+ };
16
+ export var useSigmaCustomRenderers = function () {
17
+ var _a = useSigmaContext(), container = _a.container, sigma = _a.sigma;
18
+ var _b = useState({}), renderers = _b[0], setRenderers = _b[1];
19
+ var canvasesRef = useRef({});
20
+ var widthRef = useRef(0);
21
+ var heightRef = useRef(0);
22
+ var addRenderers = useCallback(function (renderers) {
23
+ setRenderers(mergeLeft(renderers));
24
+ }, []);
25
+ var resize = useCallback(function () {
26
+ widthRef.current = container.offsetWidth;
27
+ heightRef.current = container.offsetHeight;
28
+ var pixelRatio = getPixelRatio();
29
+ for (var id in canvasesRef.current) {
30
+ var _a = canvasesRef.current[id], canvas = _a.canvasElement, context = _a.context;
31
+ canvas.style.width = widthRef.current + 'px';
32
+ canvas.style.height = heightRef.current + 'px';
33
+ canvas.setAttribute('width', widthRef.current * pixelRatio + 'px');
34
+ canvas.setAttribute('height', heightRef.current * pixelRatio + 'px');
35
+ if (pixelRatio !== 1) {
36
+ context.scale(pixelRatio, pixelRatio);
37
+ }
38
+ }
39
+ }, [container.offsetHeight, container.offsetWidth]);
40
+ var afterRender = useCallback(function () {
41
+ for (var id in renderers) {
42
+ var context = canvasesRef.current[id].context;
43
+ context.clearRect(0, 0, widthRef.current, heightRef.current);
44
+ var renderer = renderers[id].renderer;
45
+ renderer(context);
46
+ }
47
+ }, [renderers]);
48
+ var beforeRender = useCallback(function () {
49
+ for (var id in renderers) {
50
+ var shouldCreateCanvas = isEmptyValue(canvasesRef.current[id]);
51
+ if (!shouldCreateCanvas)
52
+ continue;
53
+ var insertBefore = renderers[id].insertBefore;
54
+ var sigmaContainer = container.querySelector('.sigma-container');
55
+ var canvas = createCanvas(id);
56
+ var context = createCanvasContext(canvas);
57
+ sigmaContainer.insertBefore(canvas, sigmaContainer.querySelector(".sigma-".concat(insertBefore)));
58
+ canvasesRef.current[id] = { canvasElement: canvas, context: context };
59
+ resize();
60
+ }
61
+ }, [renderers, container, resize]);
62
+ useEffect(function () {
63
+ sigma.addListener('beforeRender', beforeRender);
64
+ return function () {
65
+ sigma.off('beforeRender', beforeRender);
66
+ };
67
+ }, [sigma, beforeRender]);
68
+ useEffect(function () {
69
+ sigma.addListener('afterRender', afterRender);
70
+ return function () {
71
+ sigma.off('afterRender', afterRender);
72
+ };
73
+ }, [sigma, afterRender]);
74
+ useEffect(function () {
75
+ sigma.addListener('resize', resize);
76
+ return function () {
77
+ sigma.off('resize', resize);
78
+ };
79
+ }, [sigma, resize]);
80
+ useEffect(function () {
81
+ var canvases = canvasesRef.current;
82
+ return function () {
83
+ for (var id in canvases) {
84
+ var canvas = canvases[id];
85
+ canvas.canvasElement.remove();
86
+ delete canvases[id];
87
+ }
88
+ };
89
+ }, []);
90
+ return { addRenderers: addRenderers, canvases: canvasesRef.current, canvasesRef: canvasesRef };
91
+ };
@@ -0,0 +1,198 @@
1
+ import { renderHook, act } from '@testing-library/react-hooks';
2
+ import { useSigmaContext } from '@react-sigma/core';
3
+ import { pipe, findLast, path, nth, equals } from 'ramda';
4
+ import { useSigmaCustomRenderers } from './useSigmaCustomRenderers';
5
+ import { getPixelRatio } from 'sigma/utils';
6
+ jest.mock('@react-sigma/core');
7
+ jest.mock('sigma/utils');
8
+ describe('useSigmaCustomRenderers tests', function () {
9
+ var addListener = jest.fn();
10
+ var off = jest.fn();
11
+ var getRendererByEventName = function (eventName) {
12
+ return pipe(path(['mock', 'calls']), findLast(pipe(nth(0), equals(eventName))), nth(1))(addListener);
13
+ };
14
+ var sigmaContainerElement = {
15
+ querySelector: function (val) { return val; },
16
+ insertBefore: jest.fn()
17
+ };
18
+ var sigmaElement = {
19
+ querySelector: jest.fn(function () { return sigmaContainerElement; }),
20
+ offsetWidth: 200,
21
+ offsetHeight: 300
22
+ };
23
+ var context = {
24
+ scale: jest.fn(),
25
+ clearRect: jest.fn()
26
+ };
27
+ var canvas = {
28
+ style: {},
29
+ setAttribute: jest.fn(),
30
+ getContext: jest.fn(function () { return context; }),
31
+ remove: jest.fn()
32
+ };
33
+ beforeEach(function () {
34
+ useSigmaContext.mockReturnValue({
35
+ sigma: { addListener: addListener, off: off },
36
+ container: sigmaElement
37
+ });
38
+ });
39
+ afterEach(function () {
40
+ jest.restoreAllMocks();
41
+ jest.clearAllMocks();
42
+ canvas.style = {};
43
+ });
44
+ it('should add listeners', function () {
45
+ renderHook(useSigmaCustomRenderers);
46
+ expect(addListener).toHaveBeenCalledWith('beforeRender', expect.any(Function));
47
+ expect(addListener).toHaveBeenCalledWith('afterRender', expect.any(Function));
48
+ expect(addListener).toHaveBeenCalledWith('resize', expect.any(Function));
49
+ });
50
+ it('should remove listeners after unmount component', function () {
51
+ var unmount = renderHook(useSigmaCustomRenderers).unmount;
52
+ unmount();
53
+ expect(off).toHaveBeenCalledWith('beforeRender', expect.any(Function));
54
+ expect(off).toHaveBeenCalledWith('afterRender', expect.any(Function));
55
+ expect(off).toHaveBeenCalledWith('resize', expect.any(Function));
56
+ });
57
+ it('beforeRender should work correctly', function () {
58
+ var _a = renderHook(useSigmaCustomRenderers), result = _a.result, rerender = _a.rerender;
59
+ jest.spyOn(document, 'createElement').mockReturnValue(canvas);
60
+ act(function () {
61
+ result.current.addRenderers({ customRenderer: { renderer: jest.fn(), insertBefore: 'element' } });
62
+ });
63
+ rerender();
64
+ var beforeRender = getRendererByEventName('beforeRender');
65
+ act(function () {
66
+ beforeRender();
67
+ });
68
+ expect(sigmaElement.querySelector).toHaveBeenCalledWith('.sigma-container');
69
+ expect(canvas.style.position).toBe('absolute');
70
+ expect(canvas.setAttribute).toHaveBeenCalledWith('class', 'sigma-customRenderer');
71
+ expect(canvas.getContext).toHaveBeenCalledWith('2d', { preserveDrawingBuffer: false, antialias: false });
72
+ expect(sigmaContainerElement.insertBefore).toHaveBeenCalledWith(canvas, '.sigma-element');
73
+ var canvases = { customRenderer: { canvasElement: canvas, context: context } };
74
+ expect(result.current).toEqual({
75
+ addRenderers: expect.any(Function),
76
+ canvases: canvases,
77
+ canvasesRef: { current: canvases }
78
+ });
79
+ expect(getPixelRatio).toHaveBeenCalled();
80
+ });
81
+ it('beforeRender should work correctly if canvas already has been created', function () {
82
+ var _a = renderHook(useSigmaCustomRenderers), result = _a.result, rerender = _a.rerender;
83
+ act(function () {
84
+ result.current.addRenderers({ customRenderer: { renderer: jest.fn(), insertBefore: 'element' } });
85
+ });
86
+ rerender();
87
+ var beforeRender = getRendererByEventName('beforeRender');
88
+ act(function () {
89
+ beforeRender();
90
+ });
91
+ expect(sigmaElement.querySelector).toHaveBeenCalledTimes(1);
92
+ act(function () {
93
+ beforeRender();
94
+ });
95
+ expect(sigmaElement.querySelector).toHaveBeenCalledTimes(1);
96
+ });
97
+ it('resize should work correctly if canvases is empty', function () {
98
+ var _a = renderHook(useSigmaCustomRenderers), result = _a.result, rerender = _a.rerender;
99
+ jest.spyOn(document, 'createElement').mockReturnValue(canvas);
100
+ act(function () {
101
+ result.current.addRenderers({ customRenderer: { renderer: jest.fn(), insertBefore: 'element' } });
102
+ });
103
+ rerender();
104
+ var resize = getRendererByEventName('resize');
105
+ act(function () {
106
+ resize();
107
+ });
108
+ expect(getPixelRatio).toHaveBeenCalled();
109
+ expect(canvas.setAttribute).not.toHaveBeenCalled();
110
+ });
111
+ it('resize should work correctly if canvas exists and pixelRatio equals 1', function () {
112
+ getPixelRatio.mockReturnValue(1);
113
+ var _a = renderHook(useSigmaCustomRenderers), result = _a.result, rerender = _a.rerender;
114
+ jest.spyOn(document, 'createElement').mockReturnValue(canvas);
115
+ act(function () {
116
+ result.current.addRenderers({ customRenderer: { renderer: jest.fn(), insertBefore: 'element' } });
117
+ });
118
+ rerender();
119
+ var beforeRender = getRendererByEventName('beforeRender');
120
+ act(function () {
121
+ beforeRender();
122
+ });
123
+ expect(result.current.canvases.customRenderer).not.toBeUndefined();
124
+ var resize = getRendererByEventName('resize');
125
+ jest.clearAllMocks();
126
+ act(function () {
127
+ resize();
128
+ });
129
+ expect(canvas.setAttribute).toHaveBeenCalledTimes(2);
130
+ expect(canvas.setAttribute).toHaveBeenCalledWith('width', '200px');
131
+ expect(canvas.setAttribute).toHaveBeenCalledWith('height', '300px');
132
+ expect(canvas.style.width).toBe('200px');
133
+ expect(canvas.style.height).toBe('300px');
134
+ expect(context.scale).not.toHaveBeenCalled();
135
+ });
136
+ it('resize should work correctly if canvas exists and pixelRatio does not equal 1', function () {
137
+ getPixelRatio.mockReturnValue(0.9);
138
+ var _a = renderHook(useSigmaCustomRenderers), result = _a.result, rerender = _a.rerender;
139
+ jest.spyOn(document, 'createElement').mockReturnValue(canvas);
140
+ act(function () {
141
+ result.current.addRenderers({ customRenderer: { renderer: jest.fn(), insertBefore: 'element' } });
142
+ });
143
+ rerender();
144
+ var beforeRender = getRendererByEventName('beforeRender');
145
+ act(function () {
146
+ beforeRender();
147
+ });
148
+ expect(result.current.canvases.customRenderer).not.toBeUndefined();
149
+ var resize = getRendererByEventName('resize');
150
+ jest.clearAllMocks();
151
+ act(function () {
152
+ resize();
153
+ });
154
+ expect(canvas.setAttribute).toHaveBeenCalledTimes(2);
155
+ expect(canvas.setAttribute).toHaveBeenCalledWith('width', '180px');
156
+ expect(canvas.setAttribute).toHaveBeenCalledWith('height', '270px');
157
+ expect(canvas.style.width).toBe('200px');
158
+ expect(canvas.style.height).toBe('300px');
159
+ expect(context.scale).toHaveBeenCalledWith(0.9, 0.9);
160
+ });
161
+ it('afterRender should work correctly', function () {
162
+ var _a = renderHook(useSigmaCustomRenderers), result = _a.result, rerender = _a.rerender;
163
+ jest.spyOn(document, 'createElement').mockReturnValue(canvas);
164
+ var customRenderer = jest.fn();
165
+ act(function () {
166
+ result.current.addRenderers({ customRenderer: { renderer: customRenderer, insertBefore: 'element' } });
167
+ });
168
+ rerender();
169
+ var beforeRender = getRendererByEventName('beforeRender');
170
+ act(function () {
171
+ beforeRender();
172
+ });
173
+ expect(result.current.canvases.customRenderer).not.toBeUndefined();
174
+ var afterRender = getRendererByEventName('afterRender');
175
+ jest.clearAllMocks();
176
+ act(function () {
177
+ afterRender();
178
+ });
179
+ expect(context.clearRect).toHaveBeenCalledWith(0, 0, 200, 300);
180
+ expect(customRenderer).toHaveBeenCalledWith(context);
181
+ });
182
+ it('should remove canvas element from DOM and clear canvases ref if component has been unmounted', function () {
183
+ var _a = renderHook(useSigmaCustomRenderers), result = _a.result, rerender = _a.rerender, unmount = _a.unmount;
184
+ jest.spyOn(document, 'createElement').mockReturnValue(canvas);
185
+ act(function () {
186
+ result.current.addRenderers({ customRenderer: { renderer: jest.fn(), insertBefore: 'element' } });
187
+ });
188
+ rerender();
189
+ var beforeRender = getRendererByEventName('beforeRender');
190
+ act(function () {
191
+ beforeRender();
192
+ });
193
+ expect(result.current.canvases.customRenderer).not.toBeUndefined();
194
+ unmount();
195
+ expect(canvas.remove).toHaveBeenCalled();
196
+ expect(result.current.canvases).toEqual({});
197
+ });
198
+ });
@@ -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,17 @@
1
+ // components
2
+ export { SigmaGraphContainer } from './SigmaGraphContainer';
3
+ export { ZoomSlider } from './ZoomSlider';
4
+ export { DataModelGraph } from './DataModelGraph';
5
+ // hooks
6
+ export { useSigmaCustomRenderers } from './hooks/useSigmaCustomRenderers';
7
+ export { useLoopRenderer } from './hooks/useLoopRenderer';
8
+ export { useAnimatedGraphLayout } from './hooks/useAnimatedGraphLayout';
9
+ export { useCircleLayout } from './hooks/useCircleLayout';
10
+ // renderers
11
+ export { drawTooltip } from './rendering/canvas/tooltip';
12
+ export { NodeImageProgram } from './rendering/webgl/node.image';
13
+ export { NodeBorderProgram } from './rendering/webgl/node.border';
14
+ export { NodeDashedBorderProgram } from './rendering/webgl/node.dashed.border';
15
+ export { WebGLImageLoader } from './rendering/webgl/image';
16
+ export { getCanvasMousePos } from './rendering/canvas/utils';
17
+ export { DataModelGraphNodeType } from './types/graphDataTypes';
@@ -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,6 @@
1
+ import { drawLabel } from './label';
2
+ import { drawTwoArcs } from './nodeArc';
3
+ export var drawHover = function (context, data, settings) {
4
+ drawTwoArcs(context, data);
5
+ drawLabel(context, data, settings, { backgroundColor: '#FFF' });
6
+ };