@reltio/components 1.4.1844 → 1.4.1846

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 +7 -2
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZoomSlider = void 0;
4
+ var ZoomSlider_1 = require("./ZoomSlider");
5
+ Object.defineProperty(exports, "ZoomSlider", { enumerable: true, get: function () { return ZoomSlider_1.ZoomSlider; } });
@@ -0,0 +1 @@
1
+ export declare const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"container" | "icon" | "thumb" | "maxButton" | "minButton" | "thumbIcon" | "rail" | "sliderRoot">;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.useStyles = void 0;
15
+ var styles_1 = require("@mui/styles");
16
+ var boxShadow = '0 1px 1px rgba(0,0,0,0.14), 0 2px 1px rgba(0,0,0,0.12), 0 1px 3px rgba(0,0,0,0.2)';
17
+ var buttonStyle = {
18
+ background: '#FFFFFF',
19
+ boxShadow: boxShadow,
20
+ width: '28px',
21
+ height: '28px'
22
+ };
23
+ exports.useStyles = (0, styles_1.makeStyles)({
24
+ container: {
25
+ display: 'flex',
26
+ alignItems: 'center'
27
+ },
28
+ maxButton: __assign(__assign({}, buttonStyle), { borderRadius: '2px 4px 4px 2px' }),
29
+ minButton: __assign(__assign({}, buttonStyle), { borderRadius: '4px 2px 2px 4px' }),
30
+ thumb: {
31
+ boxShadow: boxShadow,
32
+ borderRadius: '2px',
33
+ width: '8px',
34
+ height: '28px',
35
+ marginLeft: '5px',
36
+ color: 'rgba(0,0,0,0.54)',
37
+ backgroundColor: '#FFFFFF',
38
+ '&.MuiSlider-thumb.Mui-focusVisible, &:hover': {
39
+ boxShadow: boxShadow
40
+ },
41
+ '&:before': {
42
+ boxShadow: 'none'
43
+ }
44
+ },
45
+ thumbIcon: {
46
+ transform: 'rotate(90deg)'
47
+ },
48
+ icon: {
49
+ width: '18px',
50
+ height: '18px'
51
+ },
52
+ rail: {
53
+ opacity: 1,
54
+ height: '4px',
55
+ paddingRight: '10px',
56
+ marginTop: '1px'
57
+ },
58
+ sliderRoot: {
59
+ color: '#EDEDED',
60
+ marginRight: '10px',
61
+ height: '2px'
62
+ }
63
+ });
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { Renderers, Canvases } from '../types/sigmaCustomRenderersTypes';
3
+ type Props = {
4
+ addRenderers: (renderers: Renderers) => void;
5
+ canvases: Canvases;
6
+ };
7
+ export declare const SigmaCustomRenderersContext: import("react").Context<Props>;
8
+ export declare const useSigmaCustomRenderers: () => Props;
9
+ export {};
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useSigmaCustomRenderers = exports.SigmaCustomRenderersContext = void 0;
4
+ var react_1 = require("react");
5
+ var core_1 = require("../../../core");
6
+ exports.SigmaCustomRenderersContext = (0, react_1.createContext)({
7
+ addRenderers: core_1.noop,
8
+ canvases: {}
9
+ });
10
+ var useSigmaCustomRenderers = function () {
11
+ var sigmaCustomRenderers = (0, react_1.useContext)(exports.SigmaCustomRenderersContext);
12
+ return sigmaCustomRenderers;
13
+ };
14
+ exports.useSigmaCustomRenderers = useSigmaCustomRenderers;
15
+ exports.SigmaCustomRenderersContext.displayName = 'SigmaCustomRenderersContext';
@@ -0,0 +1,13 @@
1
+ import Graph from 'graphology';
2
+ import { GraphologyLayout, GraphologyWorkerLayoutConstructor } from '../types/graphDataTypes';
3
+ type Props = {
4
+ graph: Graph;
5
+ syncLayout?: GraphologyLayout<Record<string, unknown>>;
6
+ workerLayout?: GraphologyWorkerLayoutConstructor<Record<string, unknown>>;
7
+ layoutSettings?: Record<string, unknown>;
8
+ initialCameraRatio?: number;
9
+ animationDuration?: number;
10
+ relayoutTrigger?: unknown;
11
+ };
12
+ export declare const useAnimatedGraphLayout: ({ graph, syncLayout, workerLayout, layoutSettings, initialCameraRatio, animationDuration, relayoutTrigger }: Props) => void;
13
+ export {};
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useAnimatedGraphLayout = void 0;
4
+ var react_1 = require("react");
5
+ var core_1 = require("@react-sigma/core");
6
+ var animate_1 = require("sigma/utils/animate");
7
+ var WORKER_LAYOUT_ANIMATION_DURATION = 5000;
8
+ var SYNC_LAYOUT_ANIMATION_DURATION = 1000;
9
+ var useAnimatedGraphLayout = function (_a) {
10
+ var graph = _a.graph, syncLayout = _a.syncLayout, workerLayout = _a.workerLayout, layoutSettings = _a.layoutSettings, _b = _a.initialCameraRatio, initialCameraRatio = _b === void 0 ? 1.2 : _b, animationDuration = _a.animationDuration, relayoutTrigger = _a.relayoutTrigger;
11
+ var sigma = (0, core_1.useSigma)();
12
+ var loadGraph = (0, core_1.useLoadGraph)();
13
+ (0, react_1.useEffect)(function () {
14
+ sigma.getCamera().setState({ ratio: initialCameraRatio });
15
+ }, [graph, sigma, initialCameraRatio]);
16
+ (0, react_1.useEffect)(function () {
17
+ loadGraph(graph);
18
+ if (syncLayout) {
19
+ var positions = syncLayout(sigma.getGraph(), layoutSettings);
20
+ (0, animate_1.animateNodes)(sigma.getGraph(), positions, { duration: animationDuration || SYNC_LAYOUT_ANIMATION_DURATION });
21
+ }
22
+ if (workerLayout) {
23
+ var worker_1 = new workerLayout(sigma.getGraph(), layoutSettings);
24
+ worker_1.start();
25
+ var timer_1 = setTimeout(function () {
26
+ worker_1.stop();
27
+ }, animationDuration || WORKER_LAYOUT_ANIMATION_DURATION);
28
+ return function () {
29
+ clearTimeout(timer_1);
30
+ worker_1.kill();
31
+ };
32
+ }
33
+ }, [graph, layoutSettings, loadGraph, sigma, syncLayout, workerLayout, animationDuration, relayoutTrigger]);
34
+ };
35
+ exports.useAnimatedGraphLayout = useAnimatedGraphLayout;
@@ -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,50 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.useCircleLayout = void 0;
18
+ var react_1 = require("react");
19
+ var circular_1 = __importDefault(require("graphology-layout/circular"));
20
+ var graphology_layout_forceatlas2_1 = __importDefault(require("graphology-layout-forceatlas2"));
21
+ var worker_1 = __importDefault(require("graphology-layout-forceatlas2/worker"));
22
+ var useAnimatedGraphLayout_1 = require("./useAnimatedGraphLayout");
23
+ var hooks_1 = require("../../../hooks");
24
+ var useCircleLayout = function (_a) {
25
+ var graph = _a.graph, newNodesIds = _a.newNodesIds, animationDuration = _a.animationDuration, relayoutTrigger = _a.relayoutTrigger;
26
+ var layoutSettings = (0, react_1.useMemo)(function () {
27
+ circular_1.default.assign(graph);
28
+ return {
29
+ settings: __assign(__assign({}, graphology_layout_forceatlas2_1.default.inferSettings(graph)), { gravity: 1 })
30
+ };
31
+ }, [graph]);
32
+ (0, hooks_1.useDidUpdateEffect)(function () {
33
+ if (newNodesIds === null || newNodesIds === void 0 ? void 0 : newNodesIds.length) {
34
+ var tempGraph_1 = graph.copy();
35
+ circular_1.default.assign(tempGraph_1);
36
+ newNodesIds.forEach(function (id) {
37
+ graph.setNodeAttribute(id, 'x', tempGraph_1.getNodeAttribute(id, 'x'));
38
+ graph.setNodeAttribute(id, 'y', tempGraph_1.getNodeAttribute(id, 'y'));
39
+ });
40
+ }
41
+ }, [newNodesIds]);
42
+ (0, useAnimatedGraphLayout_1.useAnimatedGraphLayout)({
43
+ workerLayout: worker_1.default,
44
+ layoutSettings: layoutSettings,
45
+ animationDuration: animationDuration,
46
+ graph: graph,
47
+ relayoutTrigger: relayoutTrigger
48
+ });
49
+ };
50
+ exports.useCircleLayout = useCircleLayout;
@@ -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,47 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.useLoopRenderer = void 0;
15
+ var react_1 = require("react");
16
+ var core_1 = require("@react-sigma/core");
17
+ var SigmaCustomRenderersContext_1 = require("../contexts/SigmaCustomRenderersContext");
18
+ var selfRelationLoop_1 = require("../rendering/canvas/selfRelationLoop");
19
+ var useLoopRenderer = function (graph) {
20
+ var sigma = (0, core_1.useSigma)();
21
+ var _a = (0, SigmaCustomRenderersContext_1.useSigmaCustomRenderers)(), addCustomRenderers = _a.addRenderers, canvases = _a.canvases;
22
+ var selfRelationsPathsMap = (0, react_1.useRef)({});
23
+ var selfRelationLoopsCanvas = canvases.selfRelationLoops;
24
+ (0, react_1.useEffect)(function () {
25
+ addCustomRenderers({
26
+ selfRelationLoops: {
27
+ renderer: function (context) {
28
+ graph.forEachEdge(function (edgeId, edgeData, sourceId) {
29
+ if (edgeData.loop) {
30
+ delete selfRelationsPathsMap.current[edgeId];
31
+ var edgeDisplayData = sigma.getEdgeDisplayData(edgeId);
32
+ var sourceDisplayData = sigma.getNodeDisplayData(sourceId);
33
+ var isHidden = edgeDisplayData.hidden || sourceDisplayData.hidden;
34
+ if (isHidden)
35
+ return;
36
+ var path = (0, selfRelationLoop_1.drawSelfRelationLoop)(context, __assign(__assign({}, edgeDisplayData), { size: sigma.scaleSize(edgeDisplayData.size) }), __assign(__assign(__assign({}, sourceDisplayData), sigma.framedGraphToViewport(sourceDisplayData)), { size: sigma.scaleSize(sourceDisplayData.size) }));
37
+ selfRelationsPathsMap.current[edgeId] = path;
38
+ }
39
+ });
40
+ },
41
+ insertBefore: 'edges'
42
+ }
43
+ });
44
+ }, [addCustomRenderers, graph, sigma]);
45
+ return { selfRelationsPathsMap: selfRelationsPathsMap.current, selfRelationLoopsCanvas: selfRelationLoopsCanvas };
46
+ };
47
+ exports.useLoopRenderer = useLoopRenderer;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,221 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ var react_hooks_1 = require("@testing-library/react-hooks");
15
+ var graphology_1 = require("graphology");
16
+ var core_1 = require("@react-sigma/core");
17
+ var mdm_sdk_1 = require("@reltio/mdm-sdk");
18
+ var useLoopRenderer_1 = require("./useLoopRenderer");
19
+ var SigmaCustomRenderersContext_1 = require("../contexts/SigmaCustomRenderersContext");
20
+ var selfRelationLoop_1 = require("../rendering/canvas/selfRelationLoop");
21
+ jest.mock('@react-sigma/core');
22
+ jest.mock('../contexts/SigmaCustomRenderersContext');
23
+ jest.mock('../rendering/canvas/selfRelationLoop');
24
+ var graphJson = {
25
+ attributes: {},
26
+ nodes: [
27
+ {
28
+ key: 'node1',
29
+ attributes: {
30
+ label: '<No label>',
31
+ entityTypeUri: 'hcp',
32
+ traversedRelationsCount: 2,
33
+ untraversedRelationsCount: 0,
34
+ x: 1,
35
+ y: 1
36
+ }
37
+ },
38
+ {
39
+ key: 'node2',
40
+ attributes: {
41
+ label: '<No label>',
42
+ entityTypeUri: 'hcp',
43
+ traversedRelationsCount: 3,
44
+ untraversedRelationsCount: 2,
45
+ x: 1,
46
+ y: 1
47
+ }
48
+ },
49
+ {
50
+ key: 'node3',
51
+ attributes: {
52
+ label: '<No label>',
53
+ entityTypeUri: 'hca',
54
+ traversedRelationsCount: 1,
55
+ untraversedRelationsCount: 0,
56
+ x: 1,
57
+ y: 1
58
+ }
59
+ }
60
+ ],
61
+ edges: [
62
+ {
63
+ key: 'r1',
64
+ source: 'node1',
65
+ target: 'node2',
66
+ attributes: {
67
+ size: 1,
68
+ color: 'rgba(0, 0, 0, 0.2)',
69
+ forceLabel: false,
70
+ loop: false,
71
+ relationTypeUri: 'relType1',
72
+ direction: 'directed'
73
+ }
74
+ },
75
+ {
76
+ key: 'r2',
77
+ source: 'node3',
78
+ target: 'node2',
79
+ attributes: {
80
+ size: 1,
81
+ color: 'rgba(0, 0, 0, 0.2)',
82
+ forceLabel: false,
83
+ loop: false,
84
+ relationTypeUri: 'relType2',
85
+ direction: 'directed'
86
+ }
87
+ },
88
+ {
89
+ key: 'r3',
90
+ source: 'node2',
91
+ target: 'node2',
92
+ attributes: {
93
+ size: 1,
94
+ color: 'rgba(0, 0, 0, 0.2)',
95
+ forceLabel: true,
96
+ loop: true,
97
+ relationTypeUri: 'relType3',
98
+ direction: 'directed'
99
+ }
100
+ },
101
+ {
102
+ key: 'r4',
103
+ source: 'node1',
104
+ target: 'node1',
105
+ attributes: {
106
+ size: 1,
107
+ color: 'rgba(0, 0, 0, 0.2)',
108
+ forceLabel: true,
109
+ loop: true,
110
+ relationTypeUri: 'relType4',
111
+ direction: 'directed'
112
+ }
113
+ }
114
+ ]
115
+ };
116
+ var edges = {
117
+ r1: {
118
+ size: 1,
119
+ color: 'rgba(0, 0, 0, 0.2)',
120
+ forceLabel: false,
121
+ loop: false,
122
+ relationTypeUri: 'relType1',
123
+ direction: mdm_sdk_1.RelationTypeDirection.directed
124
+ },
125
+ r2: {
126
+ size: 1,
127
+ color: 'rgba(0, 0, 0, 0.2)',
128
+ forceLabel: false,
129
+ loop: false,
130
+ relationTypeUri: 'relType2',
131
+ direction: mdm_sdk_1.RelationTypeDirection.directed
132
+ },
133
+ r3: {
134
+ size: 1,
135
+ color: 'rgba(0, 0, 0, 0.2)',
136
+ forceLabel: false,
137
+ hidden: true,
138
+ loop: true,
139
+ relationTypeUri: 'relType3',
140
+ direction: mdm_sdk_1.RelationTypeDirection.directed
141
+ },
142
+ r4: {
143
+ size: 1,
144
+ color: 'rgba(0, 0, 0, 0.2)',
145
+ forceLabel: true,
146
+ loop: true,
147
+ relationTypeUri: 'relType4',
148
+ direction: mdm_sdk_1.RelationTypeDirection.directed
149
+ }
150
+ };
151
+ var nodes = {
152
+ node1: {
153
+ size: 12,
154
+ label: 'node 1',
155
+ x: 0.5,
156
+ y: 0.4
157
+ },
158
+ node2: {
159
+ size: 12,
160
+ label: 'node 2',
161
+ x: 0.6,
162
+ y: 0.6
163
+ },
164
+ node3: {
165
+ size: 12,
166
+ label: 'node 3',
167
+ x: 0.8,
168
+ y: 0.7
169
+ }
170
+ };
171
+ var startHook = function (graph) { return (0, react_hooks_1.renderHook)(useLoopRenderer_1.useLoopRenderer, { initialProps: graph }); };
172
+ var createGraph = function () {
173
+ var graph = new graphology_1.MultiGraph();
174
+ graph.import(graphJson);
175
+ return graph;
176
+ };
177
+ describe('useLoopRenderer tests', function () {
178
+ var getEdgeDisplayData = jest.fn().mockImplementation(function (edgeId) { return edges[edgeId]; });
179
+ var getNodeDisplayData = jest.fn().mockImplementation(function (nodeId) { return nodes[nodeId]; });
180
+ var scaleSize = jest.fn().mockImplementation(function (size) { return size * 2; });
181
+ var framedGraphToViewport = jest.fn().mockImplementation(function (_a) {
182
+ var x = _a.x, y = _a.y;
183
+ return ({ x: x * 100, y: y * 100 });
184
+ });
185
+ var addRenderers = jest.fn();
186
+ var canvases = { selfRelationLoops: {} };
187
+ beforeAll(function () {
188
+ selfRelationLoop_1.drawSelfRelationLoop.mockImplementation(function (_context, edgeData) { return "path-".concat(edgeData.relationTypeUri); });
189
+ SigmaCustomRenderersContext_1.useSigmaCustomRenderers.mockReturnValue({
190
+ addRenderers: addRenderers,
191
+ canvases: canvases
192
+ });
193
+ core_1.useSigma.mockReturnValue({
194
+ getEdgeDisplayData: getEdgeDisplayData,
195
+ getNodeDisplayData: getNodeDisplayData,
196
+ scaleSize: scaleSize,
197
+ framedGraphToViewport: framedGraphToViewport
198
+ });
199
+ });
200
+ var getSelfRelationLoopsRenderer = function () {
201
+ return addRenderers.mock.calls[addRenderers.mock.calls.length - 1][0].selfRelationLoops;
202
+ };
203
+ it('should draw self relations correctly and with correctly setting paths', function () {
204
+ var graph = createGraph();
205
+ var result = startHook(graph).result;
206
+ expect(result.current).toEqual({
207
+ selfRelationsPathsMap: {},
208
+ selfRelationLoopsCanvas: canvases.selfRelationLoops
209
+ });
210
+ var renderer = getSelfRelationLoopsRenderer().renderer;
211
+ (0, react_hooks_1.act)(function () {
212
+ renderer('canvas');
213
+ });
214
+ expect(selfRelationLoop_1.drawSelfRelationLoop).toHaveBeenCalledTimes(1);
215
+ expect(selfRelationLoop_1.drawSelfRelationLoop).toHaveBeenCalledWith('canvas', __assign(__assign({}, edges.r4), { size: 2 }), __assign(__assign({}, nodes.node1), { size: 24, x: 50, y: 40 }));
216
+ expect(result.current).toEqual({
217
+ selfRelationsPathsMap: { r4: 'path-relType4' },
218
+ selfRelationLoopsCanvas: canvases.selfRelationLoops
219
+ });
220
+ });
221
+ });
@@ -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,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useSigmaCustomRenderers = void 0;
4
+ var react_1 = require("react");
5
+ var ramda_1 = require("ramda");
6
+ var core_1 = require("@react-sigma/core");
7
+ var utils_1 = require("sigma/utils");
8
+ var mdm_sdk_1 = require("@reltio/mdm-sdk");
9
+ var createCanvasContext = function (canvas) {
10
+ var contextOptions = { preserveDrawingBuffer: false, antialias: false };
11
+ return canvas.getContext('2d', contextOptions);
12
+ };
13
+ var createCanvas = function (id) {
14
+ var canvas = document.createElement('canvas');
15
+ canvas.style.position = 'absolute';
16
+ canvas.setAttribute('class', "sigma-".concat(id));
17
+ return canvas;
18
+ };
19
+ var useSigmaCustomRenderers = function () {
20
+ var _a = (0, core_1.useSigmaContext)(), container = _a.container, sigma = _a.sigma;
21
+ var _b = (0, react_1.useState)({}), renderers = _b[0], setRenderers = _b[1];
22
+ var canvasesRef = (0, react_1.useRef)({});
23
+ var widthRef = (0, react_1.useRef)(0);
24
+ var heightRef = (0, react_1.useRef)(0);
25
+ var addRenderers = (0, react_1.useCallback)(function (renderers) {
26
+ setRenderers((0, ramda_1.mergeLeft)(renderers));
27
+ }, []);
28
+ var resize = (0, react_1.useCallback)(function () {
29
+ widthRef.current = container.offsetWidth;
30
+ heightRef.current = container.offsetHeight;
31
+ var pixelRatio = (0, utils_1.getPixelRatio)();
32
+ for (var id in canvasesRef.current) {
33
+ var _a = canvasesRef.current[id], canvas = _a.canvasElement, context = _a.context;
34
+ canvas.style.width = widthRef.current + 'px';
35
+ canvas.style.height = heightRef.current + 'px';
36
+ canvas.setAttribute('width', widthRef.current * pixelRatio + 'px');
37
+ canvas.setAttribute('height', heightRef.current * pixelRatio + 'px');
38
+ if (pixelRatio !== 1) {
39
+ context.scale(pixelRatio, pixelRatio);
40
+ }
41
+ }
42
+ }, [container.offsetHeight, container.offsetWidth]);
43
+ var afterRender = (0, react_1.useCallback)(function () {
44
+ for (var id in renderers) {
45
+ var context = canvasesRef.current[id].context;
46
+ context.clearRect(0, 0, widthRef.current, heightRef.current);
47
+ var renderer = renderers[id].renderer;
48
+ renderer(context);
49
+ }
50
+ }, [renderers]);
51
+ var beforeRender = (0, react_1.useCallback)(function () {
52
+ for (var id in renderers) {
53
+ var shouldCreateCanvas = (0, mdm_sdk_1.isEmptyValue)(canvasesRef.current[id]);
54
+ if (!shouldCreateCanvas)
55
+ continue;
56
+ var insertBefore = renderers[id].insertBefore;
57
+ var sigmaContainer = container.querySelector('.sigma-container');
58
+ var canvas = createCanvas(id);
59
+ var context = createCanvasContext(canvas);
60
+ sigmaContainer.insertBefore(canvas, sigmaContainer.querySelector(".sigma-".concat(insertBefore)));
61
+ canvasesRef.current[id] = { canvasElement: canvas, context: context };
62
+ resize();
63
+ }
64
+ }, [renderers, container, resize]);
65
+ (0, react_1.useEffect)(function () {
66
+ sigma.addListener('beforeRender', beforeRender);
67
+ return function () {
68
+ sigma.off('beforeRender', beforeRender);
69
+ };
70
+ }, [sigma, beforeRender]);
71
+ (0, react_1.useEffect)(function () {
72
+ sigma.addListener('afterRender', afterRender);
73
+ return function () {
74
+ sigma.off('afterRender', afterRender);
75
+ };
76
+ }, [sigma, afterRender]);
77
+ (0, react_1.useEffect)(function () {
78
+ sigma.addListener('resize', resize);
79
+ return function () {
80
+ sigma.off('resize', resize);
81
+ };
82
+ }, [sigma, resize]);
83
+ (0, react_1.useEffect)(function () {
84
+ var canvases = canvasesRef.current;
85
+ return function () {
86
+ for (var id in canvases) {
87
+ var canvas = canvases[id];
88
+ canvas.canvasElement.remove();
89
+ delete canvases[id];
90
+ }
91
+ };
92
+ }, []);
93
+ return { addRenderers: addRenderers, canvases: canvasesRef.current, canvasesRef: canvasesRef };
94
+ };
95
+ exports.useSigmaCustomRenderers = useSigmaCustomRenderers;