@gemx-dev/heatmap-react 3.5.46 → 3.5.47

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 (493) hide show
  1. package/dist/esm/components/Layout/HeatmapLayout.d.ts +3 -2
  2. package/dist/esm/components/Layout/HeatmapLayout.d.ts.map +1 -1
  3. package/dist/esm/components/VizDom/VizDomRenderer.d.ts.map +1 -1
  4. package/dist/esm/components/VizElement/HeatmapElements.d.ts +2 -2
  5. package/dist/esm/components/VizElement/HeatmapElements.d.ts.map +1 -1
  6. package/dist/esm/components/VizElement/HeatmapExample.d.ts +2 -0
  7. package/dist/esm/components/VizElement/HeatmapExample.d.ts.map +1 -0
  8. package/dist/esm/components/VizElement/VizElements.d.ts.map +1 -1
  9. package/dist/esm/components/VizLive/VizLiveHeatmap.d.ts.map +1 -1
  10. package/dist/esm/components/VizLive/VizLiveRenderer.d.ts.map +1 -1
  11. package/dist/esm/components/VizScrollmap/AverageFoldLine.d.ts +8 -0
  12. package/dist/esm/components/VizScrollmap/AverageFoldLine.d.ts.map +1 -0
  13. package/dist/esm/components/VizScrollmap/HoverZones.d.ts +10 -0
  14. package/dist/esm/components/VizScrollmap/HoverZones.d.ts.map +1 -0
  15. package/dist/esm/components/VizScrollmap/MetricRow.d.ts +1 -0
  16. package/dist/esm/components/VizScrollmap/MetricRow.d.ts.map +1 -0
  17. package/dist/esm/components/VizScrollmap/ScrollMapMinimap.d.ts +8 -0
  18. package/dist/esm/components/VizScrollmap/ScrollMapMinimap.d.ts.map +1 -0
  19. package/dist/esm/components/VizScrollmap/ScrollMapOverlay.d.ts +7 -0
  20. package/dist/esm/components/VizScrollmap/ScrollMapOverlay.d.ts.map +1 -0
  21. package/dist/esm/components/VizScrollmap/ScrollZoneHoverArea.d.ts +14 -0
  22. package/dist/esm/components/VizScrollmap/ScrollZoneHoverArea.d.ts.map +1 -0
  23. package/dist/esm/components/VizScrollmap/ScrollZoneTooltip.d.ts +10 -0
  24. package/dist/esm/components/VizScrollmap/ScrollZoneTooltip.d.ts.map +1 -0
  25. package/dist/esm/components/VizScrollmap/ScrollmapMarker.d.ts +7 -0
  26. package/dist/esm/components/VizScrollmap/ScrollmapMarker.d.ts.map +1 -0
  27. package/dist/esm/components/VizScrollmap/VizScrollMap.d.ts +7 -0
  28. package/dist/esm/components/VizScrollmap/VizScrollMap.d.ts.map +1 -0
  29. package/{src/components/VizScrollmap/index.ts → dist/esm/components/VizScrollmap/index.d.ts} +1 -0
  30. package/dist/esm/components/VizScrollmap/index.d.ts.map +1 -0
  31. package/dist/esm/components/VizScrollmapV2/ScrollmapOverlayV2.d.ts +5 -0
  32. package/dist/esm/components/VizScrollmapV2/ScrollmapOverlayV2.d.ts.map +1 -0
  33. package/{src/components/VizScrollmapV2/index.ts → dist/esm/components/VizScrollmapV2/index.d.ts} +1 -0
  34. package/dist/esm/components/VizScrollmapV2/index.d.ts.map +1 -0
  35. package/dist/esm/components/VizScrollmapV2/scrollmap.types.d.ts +18 -0
  36. package/dist/esm/components/VizScrollmapV2/scrollmap.types.d.ts.map +1 -0
  37. package/dist/esm/components/VizScrollmapV2/useScrollmapOverlay.d.ts +16 -0
  38. package/dist/esm/components/VizScrollmapV2/useScrollmapOverlay.d.ts.map +1 -0
  39. package/dist/esm/configs/style.d.ts +2 -0
  40. package/dist/esm/configs/style.d.ts.map +1 -1
  41. package/dist/esm/helpers/elm-getter.d.ts +2 -2
  42. package/dist/esm/helpers/elm-getter.d.ts.map +1 -1
  43. package/dist/esm/helpers/iframe-helper/fixer.d.ts +18 -0
  44. package/dist/esm/helpers/iframe-helper/fixer.d.ts.map +1 -0
  45. package/dist/esm/helpers/iframe-helper/index.d.ts +2 -0
  46. package/dist/esm/helpers/iframe-helper/index.d.ts.map +1 -0
  47. package/dist/esm/helpers/iframe-helper/init.d.ts +5 -0
  48. package/dist/esm/helpers/iframe-helper/init.d.ts.map +1 -0
  49. package/dist/esm/helpers/iframe-helper/navigation-blocker-v2.d.ts +28 -0
  50. package/dist/esm/helpers/iframe-helper/navigation-blocker-v2.d.ts.map +1 -0
  51. package/dist/esm/helpers/iframe-helper/navigation-blocker.d.ts +20 -0
  52. package/dist/esm/helpers/iframe-helper/navigation-blocker.d.ts.map +1 -0
  53. package/dist/esm/helpers/iframe-helper/style-replacer.d.ts +25 -0
  54. package/dist/esm/helpers/iframe-helper/style-replacer.d.ts.map +1 -0
  55. package/dist/esm/helpers/index.d.ts +2 -2
  56. package/dist/esm/helpers/index.d.ts.map +1 -1
  57. package/dist/esm/helpers/viz-canvas/area-clustering.d.ts +44 -0
  58. package/dist/esm/helpers/viz-canvas/area-clustering.d.ts.map +1 -0
  59. package/dist/esm/helpers/viz-canvas/area-overlay-manager-v2.d.ts +17 -0
  60. package/dist/esm/helpers/viz-canvas/area-overlay-manager-v2.d.ts.map +1 -0
  61. package/dist/esm/helpers/viz-canvas/area-overlay-manager.d.ts +51 -0
  62. package/dist/esm/helpers/viz-canvas/area-overlay-manager.d.ts.map +1 -0
  63. package/dist/esm/helpers/viz-canvas/hierarchical-area-clustering.d.ts +73 -0
  64. package/dist/esm/helpers/viz-canvas/hierarchical-area-clustering.d.ts.map +1 -0
  65. package/{src/helpers/viz-canvas/index.ts → dist/esm/helpers/viz-canvas/index.d.ts} +1 -0
  66. package/dist/esm/helpers/viz-canvas/index.d.ts.map +1 -0
  67. package/dist/esm/hooks/index.d.ts +2 -1
  68. package/dist/esm/hooks/index.d.ts.map +1 -1
  69. package/dist/esm/hooks/register/useRegisterData.d.ts +2 -2
  70. package/dist/esm/hooks/register/useRegisterData.d.ts.map +1 -1
  71. package/dist/esm/hooks/register/useRegisterHeatmap.d.ts +7 -2
  72. package/dist/esm/hooks/register/useRegisterHeatmap.d.ts.map +1 -1
  73. package/dist/esm/hooks/viz-area/useAreaHeatmap.d.ts +59 -0
  74. package/dist/esm/hooks/viz-area/useAreaHeatmap.d.ts.map +1 -0
  75. package/dist/esm/hooks/viz-area/useAreaHeatmapManager.d.ts +77 -0
  76. package/dist/esm/hooks/viz-area/useAreaHeatmapManager.d.ts.map +1 -0
  77. package/dist/esm/hooks/viz-canvas/index.d.ts +1 -1
  78. package/dist/esm/hooks/viz-canvas/index.d.ts.map +1 -1
  79. package/dist/esm/hooks/viz-canvas/useAreamap.d.ts +14 -0
  80. package/dist/esm/hooks/viz-canvas/useAreamap.d.ts.map +1 -0
  81. package/dist/esm/hooks/viz-canvas/useClickmap.d.ts +3 -1
  82. package/dist/esm/hooks/viz-canvas/useClickmap.d.ts.map +1 -1
  83. package/dist/esm/hooks/viz-canvas/useHeatmapCanvas.d.ts +4 -0
  84. package/dist/esm/hooks/viz-canvas/useHeatmapCanvas.d.ts.map +1 -0
  85. package/dist/esm/hooks/viz-canvas/useScrollmap.d.ts +3 -1
  86. package/dist/esm/hooks/viz-canvas/useScrollmap.d.ts.map +1 -1
  87. package/dist/esm/hooks/{vix-elements → viz-elements}/index.d.ts.map +1 -1
  88. package/dist/esm/hooks/{vix-elements → viz-elements}/useClickedElement.d.ts.map +1 -1
  89. package/dist/esm/hooks/{vix-elements → viz-elements}/useElementCalloutVisible.d.ts.map +1 -1
  90. package/dist/esm/hooks/{vix-elements → viz-elements}/useHeatmapEffects.d.ts.map +1 -1
  91. package/dist/esm/hooks/{vix-elements → viz-elements}/useHeatmapElementPosition.d.ts.map +1 -1
  92. package/dist/esm/hooks/viz-elements/useHeatmapMouseHandler.d.ts +34 -0
  93. package/dist/esm/hooks/viz-elements/useHeatmapMouseHandler.d.ts.map +1 -0
  94. package/dist/esm/hooks/{vix-elements → viz-elements}/useHoveredElement.d.ts +4 -0
  95. package/dist/esm/hooks/viz-elements/useHoveredElement.d.ts.map +1 -0
  96. package/dist/esm/hooks/viz-live/index.d.ts +1 -1
  97. package/dist/{umd/hooks/viz-live/useIframeMessage.d.ts → esm/hooks/viz-live/useVizLiveIframeMsg.d.ts} +2 -10
  98. package/dist/esm/hooks/viz-live/useVizLiveIframeMsg.d.ts.map +1 -0
  99. package/dist/esm/hooks/viz-live/useVizLiveRender.d.ts +4 -0
  100. package/dist/esm/hooks/viz-live/useVizLiveRender.d.ts.map +1 -0
  101. package/dist/esm/hooks/viz-render/useHeatmapRender.d.ts.map +1 -1
  102. package/dist/esm/hooks/viz-scale/useContainerDimensions.d.ts.map +1 -1
  103. package/dist/esm/hooks/viz-scale/useHeatmapScale.d.ts +1 -1
  104. package/dist/esm/hooks/viz-scale/useHeatmapScale.d.ts.map +1 -1
  105. package/dist/esm/hooks/viz-scale/useObserveIframeHeight.d.ts +10 -0
  106. package/dist/esm/hooks/viz-scale/useObserveIframeHeight.d.ts.map +1 -0
  107. package/{src/hooks/viz-scrollmap/index.ts → dist/esm/hooks/viz-scrollmap/index.d.ts} +1 -0
  108. package/dist/esm/hooks/viz-scrollmap/index.d.ts.map +1 -0
  109. package/dist/esm/hooks/viz-scrollmap/useScrollmapZones.d.ts +29 -0
  110. package/dist/esm/hooks/viz-scrollmap/useScrollmapZones.d.ts.map +1 -0
  111. package/dist/esm/hooks/viz-scrollmap/useZonePositions.d.ts +12 -0
  112. package/dist/esm/hooks/viz-scrollmap/useZonePositions.d.ts.map +1 -0
  113. package/dist/esm/index.d.ts +1 -1
  114. package/dist/esm/index.d.ts.map +1 -1
  115. package/dist/esm/index.js +1181 -210
  116. package/dist/esm/index.mjs +1181 -210
  117. package/dist/esm/stores/config.d.ts +5 -1
  118. package/dist/esm/stores/config.d.ts.map +1 -1
  119. package/dist/esm/stores/data.d.ts +5 -3
  120. package/dist/esm/stores/data.d.ts.map +1 -1
  121. package/dist/esm/stores/index.d.ts +2 -0
  122. package/dist/esm/stores/index.d.ts.map +1 -1
  123. package/dist/esm/stores/interaction.d.ts.map +1 -1
  124. package/dist/esm/stores/mode-live.d.ts +4 -0
  125. package/dist/esm/stores/mode-live.d.ts.map +1 -1
  126. package/dist/esm/stores/mode-single.d.ts +9 -0
  127. package/dist/esm/stores/mode-single.d.ts.map +1 -0
  128. package/dist/esm/stores/viz-scrollmap.d.ts +11 -0
  129. package/dist/esm/stores/viz-scrollmap.d.ts.map +1 -0
  130. package/dist/esm/stores/viz.d.ts +0 -4
  131. package/dist/esm/stores/viz.d.ts.map +1 -1
  132. package/dist/esm/types/clarity.d.ts +5 -0
  133. package/dist/esm/types/clarity.d.ts.map +1 -1
  134. package/dist/esm/types/heatmap-info.d.ts +11 -0
  135. package/dist/esm/types/heatmap-info.d.ts.map +1 -0
  136. package/dist/esm/types/heatmap.d.ts +13 -0
  137. package/dist/esm/types/heatmap.d.ts.map +1 -1
  138. package/dist/esm/types/iframe-helper.d.ts +20 -0
  139. package/dist/esm/types/iframe-helper.d.ts.map +1 -0
  140. package/dist/esm/types/index.d.ts +4 -1
  141. package/dist/esm/types/index.d.ts.map +1 -1
  142. package/dist/esm/types/viz-canvas.d.ts +23 -0
  143. package/dist/esm/types/viz-canvas.d.ts.map +1 -0
  144. package/dist/esm/types/viz-element.d.ts +0 -6
  145. package/dist/esm/types/viz-element.d.ts.map +1 -1
  146. package/dist/esm/types/viz-scrollmap.d.ts +27 -0
  147. package/dist/esm/types/viz-scrollmap.d.ts.map +1 -0
  148. package/dist/umd/components/Layout/HeatmapLayout.d.ts +3 -2
  149. package/dist/umd/components/Layout/HeatmapLayout.d.ts.map +1 -1
  150. package/dist/umd/components/VizDom/VizDomRenderer.d.ts.map +1 -1
  151. package/dist/umd/components/VizElement/HeatmapElements.d.ts +2 -2
  152. package/dist/umd/components/VizElement/HeatmapElements.d.ts.map +1 -1
  153. package/dist/umd/components/VizElement/HeatmapExample.d.ts +2 -0
  154. package/dist/umd/components/VizElement/HeatmapExample.d.ts.map +1 -0
  155. package/dist/umd/components/VizElement/VizElements.d.ts.map +1 -1
  156. package/dist/umd/components/VizLive/VizLiveHeatmap.d.ts.map +1 -1
  157. package/dist/umd/components/VizLive/VizLiveRenderer.d.ts.map +1 -1
  158. package/dist/umd/components/VizScrollmap/AverageFoldLine.d.ts +8 -0
  159. package/dist/umd/components/VizScrollmap/AverageFoldLine.d.ts.map +1 -0
  160. package/dist/umd/components/VizScrollmap/HoverZones.d.ts +10 -0
  161. package/dist/umd/components/VizScrollmap/HoverZones.d.ts.map +1 -0
  162. package/dist/umd/components/VizScrollmap/MetricRow.d.ts +1 -0
  163. package/dist/umd/components/VizScrollmap/MetricRow.d.ts.map +1 -0
  164. package/dist/umd/components/VizScrollmap/ScrollMapMinimap.d.ts +8 -0
  165. package/dist/umd/components/VizScrollmap/ScrollMapMinimap.d.ts.map +1 -0
  166. package/dist/umd/components/VizScrollmap/ScrollMapOverlay.d.ts +7 -0
  167. package/dist/umd/components/VizScrollmap/ScrollMapOverlay.d.ts.map +1 -0
  168. package/dist/umd/components/VizScrollmap/ScrollZoneHoverArea.d.ts +14 -0
  169. package/dist/umd/components/VizScrollmap/ScrollZoneHoverArea.d.ts.map +1 -0
  170. package/dist/umd/components/VizScrollmap/ScrollZoneTooltip.d.ts +10 -0
  171. package/dist/umd/components/VizScrollmap/ScrollZoneTooltip.d.ts.map +1 -0
  172. package/dist/umd/components/VizScrollmap/ScrollmapMarker.d.ts +7 -0
  173. package/dist/umd/components/VizScrollmap/ScrollmapMarker.d.ts.map +1 -0
  174. package/dist/umd/components/VizScrollmap/VizScrollMap.d.ts +7 -0
  175. package/dist/umd/components/VizScrollmap/VizScrollMap.d.ts.map +1 -0
  176. package/dist/umd/components/VizScrollmap/index.d.ts +2 -0
  177. package/dist/umd/components/VizScrollmap/index.d.ts.map +1 -0
  178. package/dist/umd/components/VizScrollmapV2/ScrollmapOverlayV2.d.ts +5 -0
  179. package/dist/umd/components/VizScrollmapV2/ScrollmapOverlayV2.d.ts.map +1 -0
  180. package/dist/umd/components/VizScrollmapV2/index.d.ts +2 -0
  181. package/dist/umd/components/VizScrollmapV2/index.d.ts.map +1 -0
  182. package/dist/umd/components/VizScrollmapV2/scrollmap.types.d.ts +18 -0
  183. package/dist/umd/components/VizScrollmapV2/scrollmap.types.d.ts.map +1 -0
  184. package/dist/umd/components/VizScrollmapV2/useScrollmapOverlay.d.ts +16 -0
  185. package/dist/umd/components/VizScrollmapV2/useScrollmapOverlay.d.ts.map +1 -0
  186. package/dist/umd/configs/style.d.ts +2 -0
  187. package/dist/umd/configs/style.d.ts.map +1 -1
  188. package/dist/umd/helpers/elm-getter.d.ts +2 -2
  189. package/dist/umd/helpers/elm-getter.d.ts.map +1 -1
  190. package/dist/umd/helpers/iframe-helper/fixer.d.ts +18 -0
  191. package/dist/umd/helpers/iframe-helper/fixer.d.ts.map +1 -0
  192. package/dist/umd/helpers/iframe-helper/index.d.ts +2 -0
  193. package/dist/umd/helpers/iframe-helper/index.d.ts.map +1 -0
  194. package/dist/umd/helpers/iframe-helper/init.d.ts +5 -0
  195. package/dist/umd/helpers/iframe-helper/init.d.ts.map +1 -0
  196. package/dist/umd/helpers/iframe-helper/navigation-blocker-v2.d.ts +28 -0
  197. package/dist/umd/helpers/iframe-helper/navigation-blocker-v2.d.ts.map +1 -0
  198. package/dist/umd/helpers/iframe-helper/navigation-blocker.d.ts +20 -0
  199. package/dist/umd/helpers/iframe-helper/navigation-blocker.d.ts.map +1 -0
  200. package/dist/umd/helpers/iframe-helper/style-replacer.d.ts +25 -0
  201. package/dist/umd/helpers/iframe-helper/style-replacer.d.ts.map +1 -0
  202. package/dist/umd/helpers/index.d.ts +2 -2
  203. package/dist/umd/helpers/index.d.ts.map +1 -1
  204. package/dist/umd/helpers/viz-canvas/area-clustering.d.ts +44 -0
  205. package/dist/umd/helpers/viz-canvas/area-clustering.d.ts.map +1 -0
  206. package/dist/umd/helpers/viz-canvas/area-overlay-manager-v2.d.ts +17 -0
  207. package/dist/umd/helpers/viz-canvas/area-overlay-manager-v2.d.ts.map +1 -0
  208. package/dist/umd/helpers/viz-canvas/area-overlay-manager.d.ts +51 -0
  209. package/dist/umd/helpers/viz-canvas/area-overlay-manager.d.ts.map +1 -0
  210. package/dist/umd/helpers/viz-canvas/hierarchical-area-clustering.d.ts +73 -0
  211. package/dist/umd/helpers/viz-canvas/hierarchical-area-clustering.d.ts.map +1 -0
  212. package/dist/umd/helpers/viz-canvas/index.d.ts +3 -0
  213. package/dist/umd/helpers/viz-canvas/index.d.ts.map +1 -0
  214. package/dist/umd/hooks/index.d.ts +2 -1
  215. package/dist/umd/hooks/index.d.ts.map +1 -1
  216. package/dist/umd/hooks/register/useRegisterData.d.ts +2 -2
  217. package/dist/umd/hooks/register/useRegisterData.d.ts.map +1 -1
  218. package/dist/umd/hooks/register/useRegisterHeatmap.d.ts +7 -2
  219. package/dist/umd/hooks/register/useRegisterHeatmap.d.ts.map +1 -1
  220. package/dist/umd/hooks/viz-area/useAreaHeatmap.d.ts +59 -0
  221. package/dist/umd/hooks/viz-area/useAreaHeatmap.d.ts.map +1 -0
  222. package/dist/umd/hooks/viz-area/useAreaHeatmapManager.d.ts +77 -0
  223. package/dist/umd/hooks/viz-area/useAreaHeatmapManager.d.ts.map +1 -0
  224. package/dist/umd/hooks/viz-canvas/index.d.ts +1 -1
  225. package/dist/umd/hooks/viz-canvas/index.d.ts.map +1 -1
  226. package/dist/umd/hooks/viz-canvas/useAreamap.d.ts +14 -0
  227. package/dist/umd/hooks/viz-canvas/useAreamap.d.ts.map +1 -0
  228. package/dist/umd/hooks/viz-canvas/useClickmap.d.ts +3 -1
  229. package/dist/umd/hooks/viz-canvas/useClickmap.d.ts.map +1 -1
  230. package/dist/umd/hooks/viz-canvas/useHeatmapCanvas.d.ts +4 -0
  231. package/dist/umd/hooks/viz-canvas/useHeatmapCanvas.d.ts.map +1 -0
  232. package/dist/umd/hooks/viz-canvas/useScrollmap.d.ts +3 -1
  233. package/dist/umd/hooks/viz-canvas/useScrollmap.d.ts.map +1 -1
  234. package/dist/umd/hooks/{vix-elements → viz-elements}/index.d.ts.map +1 -1
  235. package/dist/umd/hooks/{vix-elements → viz-elements}/useClickedElement.d.ts.map +1 -1
  236. package/dist/umd/hooks/{vix-elements → viz-elements}/useElementCalloutVisible.d.ts.map +1 -1
  237. package/dist/umd/hooks/{vix-elements → viz-elements}/useHeatmapEffects.d.ts.map +1 -1
  238. package/dist/umd/hooks/{vix-elements → viz-elements}/useHeatmapElementPosition.d.ts.map +1 -1
  239. package/dist/umd/hooks/viz-elements/useHeatmapMouseHandler.d.ts +34 -0
  240. package/dist/umd/hooks/viz-elements/useHeatmapMouseHandler.d.ts.map +1 -0
  241. package/dist/umd/hooks/{vix-elements → viz-elements}/useHoveredElement.d.ts +4 -0
  242. package/dist/umd/hooks/viz-elements/useHoveredElement.d.ts.map +1 -0
  243. package/dist/umd/hooks/viz-live/index.d.ts +1 -1
  244. package/dist/{esm/hooks/viz-live/useIframeMessage.d.ts → umd/hooks/viz-live/useVizLiveIframeMsg.d.ts} +2 -10
  245. package/dist/umd/hooks/viz-live/useVizLiveIframeMsg.d.ts.map +1 -0
  246. package/dist/umd/hooks/viz-live/useVizLiveRender.d.ts +4 -0
  247. package/dist/umd/hooks/viz-live/useVizLiveRender.d.ts.map +1 -0
  248. package/dist/umd/hooks/viz-render/useHeatmapRender.d.ts.map +1 -1
  249. package/dist/umd/hooks/viz-scale/useContainerDimensions.d.ts.map +1 -1
  250. package/dist/umd/hooks/viz-scale/useHeatmapScale.d.ts +1 -1
  251. package/dist/umd/hooks/viz-scale/useHeatmapScale.d.ts.map +1 -1
  252. package/dist/umd/hooks/viz-scale/useObserveIframeHeight.d.ts +10 -0
  253. package/dist/umd/hooks/viz-scale/useObserveIframeHeight.d.ts.map +1 -0
  254. package/dist/umd/hooks/viz-scrollmap/index.d.ts +3 -0
  255. package/dist/umd/hooks/viz-scrollmap/index.d.ts.map +1 -0
  256. package/dist/umd/hooks/viz-scrollmap/useScrollmapZones.d.ts +29 -0
  257. package/dist/umd/hooks/viz-scrollmap/useScrollmapZones.d.ts.map +1 -0
  258. package/dist/umd/hooks/viz-scrollmap/useZonePositions.d.ts +12 -0
  259. package/dist/umd/hooks/viz-scrollmap/useZonePositions.d.ts.map +1 -0
  260. package/dist/umd/index.d.ts +1 -1
  261. package/dist/umd/index.d.ts.map +1 -1
  262. package/dist/umd/index.js +2 -2
  263. package/dist/umd/stores/config.d.ts +5 -1
  264. package/dist/umd/stores/config.d.ts.map +1 -1
  265. package/dist/umd/stores/data.d.ts +5 -3
  266. package/dist/umd/stores/data.d.ts.map +1 -1
  267. package/dist/umd/stores/index.d.ts +2 -0
  268. package/dist/umd/stores/index.d.ts.map +1 -1
  269. package/dist/umd/stores/interaction.d.ts.map +1 -1
  270. package/dist/umd/stores/mode-live.d.ts +4 -0
  271. package/dist/umd/stores/mode-live.d.ts.map +1 -1
  272. package/dist/umd/stores/mode-single.d.ts +9 -0
  273. package/dist/umd/stores/mode-single.d.ts.map +1 -0
  274. package/dist/umd/stores/viz-scrollmap.d.ts +11 -0
  275. package/dist/umd/stores/viz-scrollmap.d.ts.map +1 -0
  276. package/dist/umd/stores/viz.d.ts +0 -4
  277. package/dist/umd/stores/viz.d.ts.map +1 -1
  278. package/dist/umd/types/clarity.d.ts +5 -0
  279. package/dist/umd/types/clarity.d.ts.map +1 -1
  280. package/dist/umd/types/heatmap-info.d.ts +11 -0
  281. package/dist/umd/types/heatmap-info.d.ts.map +1 -0
  282. package/dist/umd/types/heatmap.d.ts +13 -0
  283. package/dist/umd/types/heatmap.d.ts.map +1 -1
  284. package/dist/umd/types/iframe-helper.d.ts +20 -0
  285. package/dist/umd/types/iframe-helper.d.ts.map +1 -0
  286. package/dist/umd/types/index.d.ts +4 -1
  287. package/dist/umd/types/index.d.ts.map +1 -1
  288. package/dist/umd/types/viz-canvas.d.ts +23 -0
  289. package/dist/umd/types/viz-canvas.d.ts.map +1 -0
  290. package/dist/umd/types/viz-element.d.ts +0 -6
  291. package/dist/umd/types/viz-element.d.ts.map +1 -1
  292. package/dist/umd/types/viz-scrollmap.d.ts +27 -0
  293. package/dist/umd/types/viz-scrollmap.d.ts.map +1 -0
  294. package/package.json +14 -11
  295. package/dist/esm/components/Layout/ContentHeader.d.ts +0 -4
  296. package/dist/esm/components/Layout/ContentHeader.d.ts.map +0 -1
  297. package/dist/esm/components/Layout/VizMode.d.ts +0 -2
  298. package/dist/esm/components/Layout/VizMode.d.ts.map +0 -1
  299. package/dist/esm/components/Test.d.ts +0 -121
  300. package/dist/esm/components/Test.d.ts.map +0 -1
  301. package/dist/esm/components/VizDom/VizDomContainer.d.ts +0 -6
  302. package/dist/esm/components/VizDom/VizDomContainer.d.ts.map +0 -1
  303. package/dist/esm/components/VizElement/ClickedElementOverlay.d.ts +0 -17
  304. package/dist/esm/components/VizElement/ClickedElementOverlay.d.ts.map +0 -1
  305. package/dist/esm/components/VizElement/HoveredElementOverlay.d.ts +0 -12
  306. package/dist/esm/components/VizElement/HoveredElementOverlay.d.ts.map +0 -1
  307. package/dist/esm/components/VizElement/MissingElementMessage.d.ts +0 -7
  308. package/dist/esm/components/VizElement/MissingElementMessage.d.ts.map +0 -1
  309. package/dist/esm/components/VizElement/temp/ClarityVisualizer.d.ts +0 -150
  310. package/dist/esm/components/VizElement/temp/ClarityVisualizer.d.ts.map +0 -1
  311. package/dist/esm/components/VizElement/temp/VizElementRank.d.ts +0 -74
  312. package/dist/esm/components/VizElement/temp/VizElementRank.d.ts.map +0 -1
  313. package/dist/esm/components/VizLive/VizLive.d.ts +0 -2
  314. package/dist/esm/components/VizLive/VizLive.d.ts.map +0 -1
  315. package/dist/esm/helpers/viewport-fixer.d.ts +0 -13
  316. package/dist/esm/helpers/viewport-fixer.d.ts.map +0 -1
  317. package/dist/esm/helpers/viewport-replacer.d.ts +0 -26
  318. package/dist/esm/helpers/viewport-replacer.d.ts.map +0 -1
  319. package/dist/esm/hooks/vix-elements/useHoveredElement.d.ts.map +0 -1
  320. package/dist/esm/hooks/viz-canvas/useHeatmapVizCanvas.d.ts +0 -2
  321. package/dist/esm/hooks/viz-canvas/useHeatmapVizCanvas.d.ts.map +0 -1
  322. package/dist/esm/hooks/viz-live/useIframeMessage.d.ts.map +0 -1
  323. package/dist/esm/hooks/viz-scale/useIframeHeight.d.ts +0 -10
  324. package/dist/esm/hooks/viz-scale/useIframeHeight.d.ts.map +0 -1
  325. package/dist/esm/types/viewport-fixer.d.ts +0 -31
  326. package/dist/esm/types/viewport-fixer.d.ts.map +0 -1
  327. package/dist/umd/components/Layout/ContentHeader.d.ts +0 -4
  328. package/dist/umd/components/Layout/ContentHeader.d.ts.map +0 -1
  329. package/dist/umd/components/Test.d.ts +0 -121
  330. package/dist/umd/components/Test.d.ts.map +0 -1
  331. package/dist/umd/components/VizDom/VizDomContainer.d.ts +0 -2
  332. package/dist/umd/components/VizDom/VizDomContainer.d.ts.map +0 -1
  333. package/dist/umd/components/VizElement/ClickedElementOverlay.d.ts +0 -17
  334. package/dist/umd/components/VizElement/ClickedElementOverlay.d.ts.map +0 -1
  335. package/dist/umd/components/VizElement/HoveredElementOverlay.d.ts +0 -12
  336. package/dist/umd/components/VizElement/HoveredElementOverlay.d.ts.map +0 -1
  337. package/dist/umd/components/VizElement/MissingElementMessage.d.ts +0 -7
  338. package/dist/umd/components/VizElement/MissingElementMessage.d.ts.map +0 -1
  339. package/dist/umd/components/VizElement/temp/ClarityVisualizer.d.ts +0 -150
  340. package/dist/umd/components/VizElement/temp/ClarityVisualizer.d.ts.map +0 -1
  341. package/dist/umd/components/VizElement/temp/VizElementRank.d.ts +0 -74
  342. package/dist/umd/components/VizElement/temp/VizElementRank.d.ts.map +0 -1
  343. package/dist/umd/helpers/viewport-fixer.d.ts +0 -13
  344. package/dist/umd/helpers/viewport-fixer.d.ts.map +0 -1
  345. package/dist/umd/helpers/viewport-replacer.d.ts +0 -26
  346. package/dist/umd/helpers/viewport-replacer.d.ts.map +0 -1
  347. package/dist/umd/hooks/vix-elements/useHoveredElement.d.ts.map +0 -1
  348. package/dist/umd/hooks/viz-canvas/useHeatmapVizCanvas.d.ts +0 -2
  349. package/dist/umd/hooks/viz-canvas/useHeatmapVizCanvas.d.ts.map +0 -1
  350. package/dist/umd/hooks/viz-live/useIframeMessage.d.ts.map +0 -1
  351. package/dist/umd/hooks/viz-scale/useIframeHeight.d.ts +0 -10
  352. package/dist/umd/hooks/viz-scale/useIframeHeight.d.ts.map +0 -1
  353. package/dist/umd/types/viewport-fixer.d.ts +0 -31
  354. package/dist/umd/types/viewport-fixer.d.ts.map +0 -1
  355. package/src/components/GraphView.tsx +0 -58
  356. package/src/components/Layout/ContentMetricBar.tsx +0 -23
  357. package/src/components/Layout/ContentToolbar.tsx +0 -22
  358. package/src/components/Layout/ContentTopBar.tsx +0 -24
  359. package/src/components/Layout/ContentVizByMode.tsx +0 -14
  360. package/src/components/Layout/HeatmapLayout.tsx +0 -60
  361. package/src/components/Layout/LeftSidebar.tsx +0 -44
  362. package/src/components/Layout/WrapperLayout.tsx +0 -12
  363. package/src/components/Layout/WrapperPreview.tsx +0 -24
  364. package/src/components/Layout/index.ts +0 -1
  365. package/src/components/VizDom/ReplayControls.tsx +0 -48
  366. package/src/components/VizDom/VizContainer.tsx +0 -40
  367. package/src/components/VizDom/VizDomHeatmap.tsx +0 -28
  368. package/src/components/VizDom/VizDomRenderer.tsx +0 -82
  369. package/src/components/VizDom/VizLoading.tsx +0 -8
  370. package/src/components/VizDom/WrapperVisual.tsx +0 -73
  371. package/src/components/VizDom/index.ts +0 -5
  372. package/src/components/VizElement/DefaultRankBadges.tsx +0 -36
  373. package/src/components/VizElement/ElementCallout.tsx +0 -82
  374. package/src/components/VizElement/ElementMissing.tsx +0 -35
  375. package/src/components/VizElement/ElementOverlay.tsx +0 -66
  376. package/src/components/VizElement/HeatmapElements.tsx +0 -127
  377. package/src/components/VizElement/HeatmapExample.tsx +0 -70
  378. package/src/components/VizElement/RankBadge.tsx +0 -25
  379. package/src/components/VizElement/VizElements.tsx +0 -57
  380. package/src/components/VizElement/index.ts +0 -1
  381. package/src/components/VizLive/VizLiveHeatmap.tsx +0 -27
  382. package/src/components/VizLive/VizLiveRenderer.tsx +0 -47
  383. package/src/components/VizLive/index.ts +0 -1
  384. package/src/components/VizScrollmap/AverageFoldLine.tsx +0 -57
  385. package/src/components/VizScrollmap/HoverZones.tsx +0 -58
  386. package/src/components/VizScrollmap/MetricRow.tsx +0 -0
  387. package/src/components/VizScrollmap/ScrollMapMinimap.tsx +0 -64
  388. package/src/components/VizScrollmap/ScrollMapOverlay.tsx +0 -79
  389. package/src/components/VizScrollmap/ScrollZoneHoverArea.tsx +0 -35
  390. package/src/components/VizScrollmap/ScrollZoneTooltip.tsx +0 -146
  391. package/src/components/VizScrollmap/ScrollmapMarker.tsx +0 -106
  392. package/src/components/VizScrollmap/VizScrollMap.tsx +0 -36
  393. package/src/components/VizScrollmapV2/ScrollmapOverlay.css +0 -94
  394. package/src/components/VizScrollmapV2/ScrollmapOverlayV2.tsx +0 -130
  395. package/src/components/VizScrollmapV2/scrollmap.types.ts +0 -21
  396. package/src/components/VizScrollmapV2/useScrollmapOverlay.ts +0 -187
  397. package/src/components/index.tsx +0 -2
  398. package/src/configs/iframe.ts +0 -15
  399. package/src/configs/index.ts +0 -2
  400. package/src/configs/style.ts +0 -21
  401. package/src/constants/index.ts +0 -4
  402. package/src/global.d.ts +0 -5
  403. package/src/helpers/elm-callout.ts +0 -347
  404. package/src/helpers/elm-getter.ts +0 -70
  405. package/src/helpers/iframe-helper/fixer.ts +0 -100
  406. package/src/helpers/iframe-helper/index.ts +0 -1
  407. package/src/helpers/iframe-helper/init.ts +0 -56
  408. package/src/helpers/iframe-helper/navigation-blocker-v2.ts +0 -371
  409. package/src/helpers/iframe-helper/navigation-blocker.ts +0 -367
  410. package/src/helpers/iframe-helper/style-replacer.ts +0 -231
  411. package/src/helpers/iframe.ts +0 -42
  412. package/src/helpers/index.ts +0 -8
  413. package/src/helpers/viz-canvas/area-clustering.ts +0 -234
  414. package/src/helpers/viz-canvas/area-overlay-manager-v2.ts +0 -176
  415. package/src/helpers/viz-canvas/area-overlay-manager.ts +0 -273
  416. package/src/helpers/viz-canvas/hierarchical-area-clustering.ts +0 -420
  417. package/src/helpers/viz-elements.ts +0 -43
  418. package/src/hooks/index.ts +0 -8
  419. package/src/hooks/register/index.ts +0 -4
  420. package/src/hooks/register/useRegisterConfig.ts +0 -17
  421. package/src/hooks/register/useRegisterControl.ts +0 -13
  422. package/src/hooks/register/useRegisterData.ts +0 -36
  423. package/src/hooks/register/useRegisterHeatmap.ts +0 -38
  424. package/src/hooks/viz-area/useAreaHeatmap.ts +0 -336
  425. package/src/hooks/viz-area/useAreaHeatmapManager.ts +0 -692
  426. package/src/hooks/viz-canvas/index.ts +0 -1
  427. package/src/hooks/viz-canvas/useAreamap.ts +0 -162
  428. package/src/hooks/viz-canvas/useClickmap.ts +0 -24
  429. package/src/hooks/viz-canvas/useHeatmapCanvas.ts +0 -27
  430. package/src/hooks/viz-canvas/useScrollmap.ts +0 -22
  431. package/src/hooks/viz-elements/index.ts +0 -5
  432. package/src/hooks/viz-elements/useClickedElement.ts +0 -86
  433. package/src/hooks/viz-elements/useElementCalloutVisible.ts +0 -45
  434. package/src/hooks/viz-elements/useHeatmapEffects.ts +0 -30
  435. package/src/hooks/viz-elements/useHeatmapElementPosition.ts +0 -60
  436. package/src/hooks/viz-elements/useHeatmapMouseHandler.ts +0 -255
  437. package/src/hooks/viz-elements/useHoveredElement.ts +0 -170
  438. package/src/hooks/viz-live/index.ts +0 -1
  439. package/src/hooks/viz-live/useVizLiveIframeMsg.ts +0 -88
  440. package/src/hooks/viz-live/useVizLiveRender.ts +0 -67
  441. package/src/hooks/viz-render/index.ts +0 -1
  442. package/src/hooks/viz-render/useHeatmapRender.ts +0 -71
  443. package/src/hooks/viz-render/useHeatmapVizRender.ts +0 -20
  444. package/src/hooks/viz-render/useReplayRender.ts +0 -160
  445. package/src/hooks/viz-scale/index.ts +0 -2
  446. package/src/hooks/viz-scale/useContainerDimensions.ts +0 -48
  447. package/src/hooks/viz-scale/useContentDimensions.ts +0 -25
  448. package/src/hooks/viz-scale/useHeatmapScale.ts +0 -52
  449. package/src/hooks/viz-scale/useObserveIframeHeight.ts +0 -162
  450. package/src/hooks/viz-scale/useScaleCalculation.ts +0 -31
  451. package/src/hooks/viz-scale/useScrollSync.ts +0 -36
  452. package/src/hooks/viz-scale/useWrapperRefHeight.ts +0 -91
  453. package/src/hooks/viz-scrollmap/useScrollmapZones.ts +0 -165
  454. package/src/hooks/viz-scrollmap/useZonePositions.ts +0 -38
  455. package/src/index.ts +0 -10
  456. package/src/stores/comp.ts +0 -31
  457. package/src/stores/config.ts +0 -37
  458. package/src/stores/data.ts +0 -30
  459. package/src/stores/index.ts +0 -10
  460. package/src/stores/interaction.ts +0 -32
  461. package/src/stores/mode-live.ts +0 -38
  462. package/src/stores/mode-single.ts +0 -18
  463. package/src/stores/viz-scrollmap.ts +0 -22
  464. package/src/stores/viz.ts +0 -17
  465. package/src/styles/base.css +0 -1
  466. package/src/styles/style.css +0 -137
  467. package/src/types/clarity.ts +0 -45
  468. package/src/types/control.ts +0 -10
  469. package/src/types/elm-callout.ts +0 -9
  470. package/src/types/heatmap-info.ts +0 -11
  471. package/src/types/heatmap.ts +0 -25
  472. package/src/types/iframe-helper.ts +0 -18
  473. package/src/types/index.ts +0 -12
  474. package/src/types/viz-canvas.ts +0 -20
  475. package/src/types/viz-element.ts +0 -34
  476. package/src/types/viz-scrollmap.ts +0 -28
  477. package/src/ui/BoxStack/BoxStack.tsx +0 -136
  478. package/src/ui/BoxStack/index.ts +0 -1
  479. package/src/ui/index.ts +0 -1
  480. package/src/utils/debounce.ts +0 -10
  481. package/src/utils/device.ts +0 -7
  482. package/src/utils/retry.ts +0 -20
  483. package/src/utils/sort.ts +0 -5
  484. /package/dist/esm/hooks/{vix-elements → viz-elements}/index.d.ts +0 -0
  485. /package/dist/esm/hooks/{vix-elements → viz-elements}/useClickedElement.d.ts +0 -0
  486. /package/dist/esm/hooks/{vix-elements → viz-elements}/useElementCalloutVisible.d.ts +0 -0
  487. /package/dist/esm/hooks/{vix-elements → viz-elements}/useHeatmapEffects.d.ts +0 -0
  488. /package/dist/esm/hooks/{vix-elements → viz-elements}/useHeatmapElementPosition.d.ts +0 -0
  489. /package/dist/umd/hooks/{vix-elements → viz-elements}/index.d.ts +0 -0
  490. /package/dist/umd/hooks/{vix-elements → viz-elements}/useClickedElement.d.ts +0 -0
  491. /package/dist/umd/hooks/{vix-elements → viz-elements}/useElementCalloutVisible.d.ts +0 -0
  492. /package/dist/umd/hooks/{vix-elements → viz-elements}/useHeatmapEffects.d.ts +0 -0
  493. /package/dist/umd/hooks/{vix-elements → viz-elements}/useHeatmapElementPosition.d.ts +0 -0
@@ -1,255 +0,0 @@
1
- import { useCallback } from 'react';
2
- import { IHeatmapInfo } from '../../types';
3
-
4
- // ===================== TYPES =====================
5
- interface BoundingBox {
6
- left: number;
7
- top: number;
8
- width: number;
9
- height: number;
10
- }
11
-
12
- interface ElementData {
13
- totalclicks: number;
14
- selector: string;
15
- }
16
-
17
- interface HoveredElementInfo extends BoundingBox {
18
- hash: string;
19
- clicks: number;
20
- rank: number;
21
- selector: string;
22
- }
23
-
24
- interface UseHeatmapMouseHandlerProps {
25
- heatmapWrapperRef: React.RefObject<HTMLElement>;
26
- iframeRef: React.RefObject<HTMLIFrameElement>;
27
- parentRef: React.RefObject<HTMLDivElement>;
28
- heatmapInfo: IHeatmapInfo;
29
- scaleRatio: number; // zoom/scale ratio
30
- onElementHover: (info: HoveredElementInfo) => void;
31
- }
32
-
33
- // ===================== CONSTANTS =====================
34
- const HEATMAP_ELEMENT_ATTRIBUTE = 'data-clarity-hashalpha'; // Hoặc attribute bạn đang dùng
35
-
36
- // ===================== UTILITY FUNCTIONS =====================
37
-
38
- /**
39
- * Lấy bounding box tuyệt đối của element (relative to document)
40
- */
41
- export function getBoundingBox(element: HTMLElement): BoundingBox | null {
42
- if (typeof element.getBoundingClientRect !== 'function') {
43
- return null;
44
- }
45
-
46
- const rect = element.getBoundingClientRect();
47
-
48
- // Lấy scroll offset (hỗ trợ cả cách cũ và mới)
49
- const scrollLeft =
50
- 'pageXOffset' in window ? window.pageXOffset : document.documentElement.scrollLeft;
51
-
52
- const scrollTop =
53
- 'pageYOffset' in window ? window.pageYOffset : document.documentElement.scrollTop;
54
-
55
- // Kiểm tra element có kích thước hợp lệ
56
- if (!rect || (rect.height === 0 && rect.width === 0)) {
57
- return null;
58
- }
59
-
60
- // Trả về vị trí tuyệt đối
61
- return {
62
- left: Math.floor(rect.left + scrollLeft),
63
- top: Math.floor(rect.top + scrollTop),
64
- width: Math.floor(rect.width),
65
- height: Math.floor(rect.height),
66
- };
67
- }
68
-
69
- /**
70
- * Lấy tất cả elements tại tọa độ (x, y), hỗ trợ Shadow DOM
71
- */
72
- export function getElementsAtPoint(
73
- documentOrShadowRoot: Document | ShadowRoot,
74
- x: number,
75
- y: number,
76
- filterFunction?: (element: Element) => boolean,
77
- visitedShadowRoots: Set<ShadowRoot> = new Set(),
78
- ): Element[] {
79
- // Lấy tất cả elements tại vị trí
80
- const elementsAtPoint = documentOrShadowRoot.elementsFromPoint(x, y);
81
-
82
- if (!filterFunction) {
83
- return elementsAtPoint;
84
- }
85
-
86
- // Tìm element đầu tiên match với filter
87
- const matchedElement = elementsAtPoint.find(filterFunction);
88
-
89
- // Nếu element có Shadow DOM và chưa visit -> đệ quy vào
90
- if (matchedElement?.shadowRoot && !visitedShadowRoots.has(matchedElement.shadowRoot)) {
91
- visitedShadowRoots.add(matchedElement.shadowRoot);
92
-
93
- return getElementsAtPoint(matchedElement.shadowRoot, x, y, filterFunction, visitedShadowRoots);
94
- }
95
-
96
- return elementsAtPoint;
97
- }
98
-
99
- // ===================== MAIN HOOK =====================
100
-
101
- export function useHeatmapMouseHandler(props: UseHeatmapMouseHandlerProps) {
102
- const { heatmapWrapperRef, iframeRef, parentRef, heatmapInfo, scaleRatio, onElementHover } =
103
- props;
104
-
105
- const handleMouseMove = useCallback(
106
- (event: MouseEvent) => {
107
- // Kiểm tra tất cả refs và data cần thiết
108
- if (
109
- !heatmapWrapperRef?.current ||
110
- !iframeRef?.current ||
111
- !iframeRef.current.contentDocument ||
112
- !heatmapInfo?.elementMapInfo ||
113
- !parentRef?.current
114
- ) {
115
- return;
116
- }
117
-
118
- try {
119
- // Tính toán scroll position (đã scale)
120
- const scrollTop = parentRef.current.scrollTop / scaleRatio;
121
- console.log(`🚀 🐥 ~ useHeatmapMouseHandler ~ scrollTop:`, scrollTop);
122
-
123
- // Lấy vị trí của heatmap wrapper
124
- const wrapperRect = heatmapWrapperRef.current.getBoundingClientRect();
125
-
126
- // Tính toán tọa độ chuột trong iframe (đã scale)
127
- const mouseX = (event.clientX - wrapperRect.left) / scaleRatio;
128
- const mouseY = (event.clientY - wrapperRect.top) / scaleRatio - scrollTop;
129
-
130
- // Tìm elements tại vị trí chuột
131
- const elementsAtPoint = getElementsAtPoint(
132
- iframeRef.current.contentDocument,
133
- Math.round(mouseX),
134
- Math.round(mouseY),
135
- // Filter: chỉ lấy elements có heatmap attribute
136
- (element) => element.hasAttribute(HEATMAP_ELEMENT_ATTRIBUTE),
137
- );
138
-
139
- if (!elementsAtPoint || elementsAtPoint.length === 0) {
140
- return;
141
- }
142
-
143
- // Duyệt qua các elements tìm được
144
- for (let i = 0; i < elementsAtPoint.length; i++) {
145
- const element = elementsAtPoint[i] as HTMLElement;
146
-
147
- // Lấy hash/id của element
148
- const elementHash = element.getAttribute(HEATMAP_ELEMENT_ATTRIBUTE);
149
-
150
- // Kiểm tra element có data trong heatmapInfo không
151
- if (elementHash && heatmapInfo.elementMapInfo[elementHash]) {
152
- const elementData = heatmapInfo.elementMapInfo[elementHash];
153
-
154
- // Lấy bounding box của element
155
- const boundingBox = getBoundingBox(element);
156
-
157
- if (boundingBox) {
158
- // Tính rank của element
159
- const rank =
160
- Array.isArray(heatmapInfo.sortedElements) && elementData
161
- ? heatmapInfo.sortedElements.indexOf(elementData) + 1
162
- : NaN;
163
-
164
- // Callback với thông tin element
165
- onElementHover({
166
- ...boundingBox,
167
-
168
- // Giới hạn width không vượt quá width của heatmap
169
- width: Math.min(boundingBox.width, heatmapInfo.width || 0),
170
-
171
- // Adjust top position với scroll
172
- top: boundingBox.top + scrollTop,
173
-
174
- // Metadata
175
- hash: elementHash,
176
- clicks: elementData.totalclicks,
177
- rank: rank,
178
- selector: elementData.selector || '',
179
- });
180
-
181
- // Dừng loop khi tìm thấy element hợp lệ đầu tiên
182
- break;
183
- }
184
- }
185
- }
186
- } catch (error) {
187
- console.warn('Error handling mouse move on heatmap:', error);
188
- }
189
- },
190
- [heatmapWrapperRef, iframeRef, parentRef, heatmapInfo, scaleRatio, onElementHover],
191
- );
192
-
193
- return { handleMouseMove };
194
- }
195
-
196
- // ===================== EXAMPLE USAGE =====================
197
- /*
198
- import { useRef, useState } from 'react';
199
-
200
- function HeatmapComponent() {
201
- const heatmapWrapperRef = useRef<HTMLDivElement>(null);
202
- const iframeRef = useRef<HTMLIFrameElement>(null);
203
- const parentRef = useRef<HTMLDivElement>(null);
204
-
205
- const [hoveredElement, setHoveredElement] = useState<HoveredElementInfo | null>(null);
206
-
207
- const heatmapInfo = {
208
- width: 1920,
209
- elementMapInfo: {
210
- 'hash123': {
211
- totalclicks: 45,
212
- selector: 'button.submit'
213
- }
214
- },
215
- sortedElements: [...]
216
- };
217
-
218
- const { handleMouseMove } = useHeatmapMouseHandler({
219
- heatmapWrapperRef,
220
- iframeRef,
221
- parentRef,
222
- heatmapInfo,
223
- scaleRatio: 0.8, // 80% zoom
224
- onElementHover: (info) => {
225
- setHoveredElement(info);
226
- console.log('Hovered element:', info);
227
- }
228
- });
229
-
230
- return (
231
- <div ref={parentRef}>
232
- <div
233
- ref={heatmapWrapperRef}
234
- onMouseMove={handleMouseMove}
235
- >
236
- <iframe ref={iframeRef} />
237
-
238
- {hoveredElement && (
239
- <div className="tooltip" style={{
240
- position: 'absolute',
241
- left: hoveredElement.left,
242
- top: hoveredElement.top
243
- }}>
244
- Clicks: {hoveredElement.clicks}
245
- <br />
246
- Rank: #{hoveredElement.rank}
247
- <br />
248
- Selector: {hoveredElement.selector}
249
- </div>
250
- )}
251
- </div>
252
- </div>
253
- );
254
- }
255
- */
@@ -1,170 +0,0 @@
1
- import { useCallback } from 'react';
2
- import { buildElementInfo, getElementAtPoint, getElementHash } from '../../helpers';
3
- import { useHeatmapDataStore, useHeatmapInteractionStore, useHeatmapVizStore } from '../../stores';
4
- import { IHeatmapInfo } from '../../types';
5
- import { debounce } from '../../utils/debounce';
6
- import { getBoundingBox, getElementsAtPoint } from './useHeatmapMouseHandler';
7
-
8
- interface Params {
9
- iframeRef: React.RefObject<HTMLIFrameElement>;
10
- getRect: (el?: any) => any;
11
- }
12
- export const useHoveredElement = ({ iframeRef, getRect }: Params) => {
13
- const hoveredElement = useHeatmapInteractionStore((state) => state.hoveredElement);
14
- const setHoveredElement = useHeatmapInteractionStore((state) => state.setHoveredElement);
15
- const onSelect = useHeatmapInteractionStore((state) => state.setSelectedElement);
16
- const widthScale = useHeatmapVizStore((state) => state.scale);
17
- const heatmapInfo = useHeatmapDataStore((state) => state.dataInfo);
18
-
19
- const reset = useCallback(() => {
20
- setHoveredElement(null);
21
- }, [setHoveredElement]);
22
- const handleMouseLeave = useCallback(() => {
23
- reset();
24
- }, [reset]);
25
-
26
- const getHashFromEvent = useCallback(
27
- (event: React.MouseEvent<HTMLDivElement>) => {
28
- if (!heatmapInfo || !isIframeReady(iframeRef, heatmapInfo)) {
29
- reset();
30
- return;
31
- }
32
-
33
- const iframe = iframeRef.current!;
34
- const doc = iframe.contentDocument!;
35
- const iframeRect = iframe.getBoundingClientRect();
36
- const { x, y } = convertViewportToIframeCoords(
37
- event.clientX,
38
- event.clientY,
39
- iframeRect,
40
- widthScale,
41
- );
42
-
43
- const targetElement = findTargetElement(doc, x, y, heatmapInfo);
44
- if (!targetElement || !isValidElement(targetElement, heatmapInfo)) {
45
- reset();
46
- return;
47
- }
48
-
49
- const hash = getElementHash(targetElement);
50
- if (!!hash) return hash;
51
-
52
- reset();
53
- return;
54
- },
55
- [heatmapInfo, iframeRef, getRect, widthScale, reset],
56
- );
57
-
58
- const handleMouseMove = useCallback(
59
- debounce((event: React.MouseEvent<HTMLDivElement>) => {
60
- if (!heatmapInfo) {
61
- reset();
62
- return;
63
- }
64
-
65
- const hash = getHashFromEvent(event);
66
- if (!hash) {
67
- reset();
68
- return;
69
- }
70
-
71
- const selector = heatmapInfo?.elementMapInfo?.[hash];
72
- const rect = getRect({ hash, selector });
73
- const elementInfo = buildElementInfo(hash, rect, heatmapInfo);
74
- if (!elementInfo) {
75
- reset();
76
- return;
77
- }
78
-
79
- setHoveredElement(elementInfo);
80
- }, 16),
81
- [heatmapInfo, getRect, reset, getHashFromEvent],
82
- );
83
-
84
- const handleClick = useCallback(() => {
85
- if (!hoveredElement?.hash) return;
86
-
87
- onSelect(hoveredElement.hash);
88
- }, [hoveredElement?.hash]);
89
-
90
- return {
91
- hoveredElement,
92
- handleMouseMove,
93
- handleMouseLeave,
94
- handleClick,
95
- };
96
- };
97
-
98
- export const convertViewportToIframeCoords = (
99
- clientX: number,
100
- clientY: number,
101
- iframeRect: DOMRect,
102
- scale: number,
103
- ): { x: number; y: number } => {
104
- let x = clientX - iframeRect.left;
105
- let y = clientY - iframeRect.top;
106
-
107
- if (scale !== 1) {
108
- x /= scale;
109
- y /= scale;
110
- }
111
-
112
- return { x, y };
113
- };
114
-
115
- const findTargetElement = (
116
- doc: Document,
117
- x: number,
118
- y: number,
119
- heatmapInfo: IHeatmapInfo,
120
- ): HTMLElement | null => {
121
- const HEATMAP_ELEMENT_ATTRIBUTE = 'data-clarity-hashalpha';
122
- const elementsAtPoint = getElementsAtPoint(
123
- doc,
124
- Math.round(x),
125
- Math.round(y),
126
- (element: Element) => element.hasAttribute(HEATMAP_ELEMENT_ATTRIBUTE),
127
- );
128
-
129
- let dataElement = null;
130
- for (let i = 0; i < elementsAtPoint.length; i++) {
131
- const element = elementsAtPoint[i] as HTMLElement;
132
- const elementHash = element.getAttribute(HEATMAP_ELEMENT_ATTRIBUTE);
133
- if (elementHash && heatmapInfo.elementMapInfo?.[elementHash]) {
134
- const elementData = heatmapInfo.elementMapInfo[elementHash];
135
- const boundingBox = getBoundingBox(element);
136
-
137
- if (boundingBox) {
138
- dataElement = element;
139
- break;
140
- }
141
- }
142
- }
143
- if (!!dataElement) {
144
- return dataElement;
145
- }
146
-
147
- let targetElement = getElementAtPoint(doc, x, y);
148
-
149
- if (!targetElement) {
150
- targetElement = doc.elementFromPoint(x, y) as HTMLElement | null;
151
- }
152
-
153
- return targetElement;
154
- };
155
-
156
- const isIframeReady = (
157
- iframeRef: React.RefObject<HTMLIFrameElement>,
158
- heatmapInfo?: IHeatmapInfo,
159
- ): boolean => {
160
- return !!(iframeRef.current?.contentDocument && heatmapInfo?.elementMapInfo);
161
- };
162
-
163
- const isValidElement = (element: HTMLElement | null, heatmapInfo?: IHeatmapInfo): boolean => {
164
- if (!element) return false;
165
-
166
- const hash = getElementHash(element);
167
- if (!hash) return false;
168
-
169
- return !!heatmapInfo?.elementMapInfo?.[hash];
170
- };
@@ -1 +0,0 @@
1
- export * from './useVizLiveRender';
@@ -1,88 +0,0 @@
1
- import { useCallback, useEffect, useRef, useState } from 'react';
2
- import { decodePayloads } from '../../helpers';
3
- import { useHeatmapLiveStore } from '../../stores';
4
-
5
- export enum MessageType {
6
- GX_DOM_TRACKING_PAYLOAD = 'GX_DOM_TRACKING_PAYLOAD',
7
- CLARITY_READY = 'CLARITY_READY',
8
- }
9
-
10
- export interface ClarityMessage {
11
- type: MessageType;
12
- payload?: any;
13
- timestamp?: number;
14
- }
15
-
16
- interface UseIframeMessageOptions {
17
- trustedOrigins?: string[];
18
- onMessage?: (message: ClarityMessage) => void;
19
- }
20
-
21
- export function useVizLiveIframeMsg(options: UseIframeMessageOptions = {}) {
22
- const { trustedOrigins = [], onMessage } = options;
23
-
24
- const addPayload = useHeatmapLiveStore((state) => state.addPayload);
25
-
26
- const [isReady, setIsReady] = useState(false);
27
-
28
- const iframeRef = useRef<HTMLIFrameElement>(null);
29
-
30
- const isValidOrigin = useCallback(
31
- (origin: string) => {
32
- if (trustedOrigins.length === 0) return true;
33
- return trustedOrigins.includes(origin);
34
- },
35
- [trustedOrigins],
36
- );
37
-
38
- const handleMessage = useCallback(
39
- (event: MessageEvent<ClarityMessage>) => {
40
- if (!isValidOrigin(event.origin)) {
41
- console.warn('Message from untrusted origin:', event.origin);
42
- return;
43
- }
44
-
45
- if (!event.data || typeof event.data !== 'object' || !event.data.type) {
46
- return;
47
- }
48
-
49
- const message = event.data;
50
-
51
- if (!Object.values(MessageType).includes(message.type)) {
52
- return;
53
- }
54
-
55
- if (onMessage) {
56
- onMessage(message);
57
- }
58
-
59
- switch (message.type) {
60
- case MessageType.GX_DOM_TRACKING_PAYLOAD:
61
- if (message.payload) {
62
- const data = decodePayloads(message.payload);
63
- if (data) {
64
- addPayload(data);
65
- }
66
- }
67
- break;
68
-
69
- case MessageType.CLARITY_READY:
70
- setIsReady(true);
71
- break;
72
- }
73
- },
74
- [isValidOrigin, onMessage],
75
- );
76
-
77
- useEffect(() => {
78
- window.addEventListener('message', handleMessage);
79
- return () => {
80
- window.removeEventListener('message', handleMessage);
81
- };
82
- }, [handleMessage]);
83
-
84
- return {
85
- iframeRef,
86
- isReady,
87
- };
88
- }
@@ -1,67 +0,0 @@
1
- import { useEffect } from 'react';
2
- import { initIframeHelperFixer } from '../../helpers';
3
- import { useHeatmapConfigStore, useHeatmapLiveStore, useHeatmapVizStore } from '../../stores';
4
- import { useVizLiveIframeMsg } from './useVizLiveIframeMsg';
5
-
6
- export function useVizLiveRender() {
7
- const wrapperHeight = useHeatmapLiveStore((state) => state.wrapperHeight);
8
- const setIframeHeight = useHeatmapLiveStore((state) => state.setIframeHeight);
9
- const contentWidth = useHeatmapConfigStore((state) => state.width);
10
- const htmlContent = useHeatmapLiveStore((state) => state.htmlContent);
11
- const setIsRenderViz = useHeatmapVizStore((state) => state.setIsRenderViz);
12
-
13
- const { iframeRef, isReady } = useVizLiveIframeMsg();
14
-
15
- useEffect(() => {
16
- if (!htmlContent || !iframeRef.current) return;
17
-
18
- const iframe = iframeRef.current;
19
- const iframeDoc = iframe.contentDocument || iframe.contentWindow?.document;
20
-
21
- if (iframeDoc) {
22
- iframeDoc.open();
23
- iframeDoc.writeln(htmlContent);
24
- iframeDoc.close();
25
- }
26
- }, [htmlContent]);
27
-
28
- useEffect(() => {
29
- if (!isReady) return;
30
- if (!iframeRef.current) return;
31
-
32
- const iframe = iframeRef.current;
33
- if (!iframe || !htmlContent) return;
34
-
35
- setIsRenderViz(false);
36
- reset(iframe, { width: contentWidth, height: wrapperHeight }, (height) => {
37
- height && setIframeHeight(height);
38
- setIsRenderViz(true);
39
- });
40
- }, [isReady, contentWidth, wrapperHeight]);
41
-
42
- return {
43
- iframeRef,
44
- };
45
- }
46
-
47
- function reset(
48
- iframe: HTMLIFrameElement,
49
- rect: {
50
- width: number;
51
- height: number;
52
- },
53
- onSuccess: (height: number) => void,
54
- ) {
55
- const fixer = initIframeHelperFixer({
56
- targetWidth: rect.width,
57
- targetHeight: rect.height,
58
- iframe: iframe,
59
- onSuccess: (data) => {
60
- iframe.height = `${data.height}px`;
61
- onSuccess(data.height);
62
- },
63
- });
64
-
65
- // fixer.recalculate();
66
- fixer.enableNavigationBlocking();
67
- }
@@ -1 +0,0 @@
1
- export * from './useHeatmapVizRender';
@@ -1,71 +0,0 @@
1
- import { Visualizer } from '@gemx-dev/clarity-visualize';
2
- import { useCallback, useEffect, useRef } from 'react';
3
- import { findLastSizeOfDom, initIframeHelperFixer } from '../../helpers';
4
- import { useHeatmapDataStore, useHeatmapSingleStore, useHeatmapVizStore } from '../../stores';
5
- import { DecodedPayload } from '../../types';
6
-
7
- interface IUseHeatmapRenderResult {
8
- iframeRef: React.RefObject<HTMLIFrameElement | null>;
9
- }
10
-
11
- let visualizer: Visualizer = new Visualizer();
12
- export const useHeatmapRender = (): IUseHeatmapRenderResult => {
13
- const data = useHeatmapDataStore((state) => state.data);
14
- const setVizRef = useHeatmapSingleStore((state) => state.setVizRef);
15
- const setIsRenderViz = useHeatmapVizStore((state) => state.setIsRenderViz);
16
- const setIframeHeight = useHeatmapSingleStore((state) => state.setIframeHeight);
17
-
18
- const iframeRef = useRef<HTMLIFrameElement | null>(null);
19
-
20
- const renderHeatmap = useCallback(async (payloads: DecodedPayload[]) => {
21
- if (!payloads || payloads.length === 0) return;
22
-
23
- setIsRenderViz(false);
24
- const iframe = iframeRef.current;
25
- if (!iframe?.contentWindow) return;
26
-
27
- await visualizer.html(payloads, iframe.contentWindow);
28
-
29
- initIframe(iframe, payloads, (height: number) => {
30
- height && setIframeHeight(height);
31
- setIsRenderViz(true);
32
- setVizRef(visualizer);
33
- });
34
- }, []);
35
-
36
- useEffect(() => {
37
- if (!data || data.length === 0) return;
38
-
39
- renderHeatmap(data);
40
- return () => {
41
- setVizRef(null);
42
- };
43
- }, [data]);
44
-
45
- return {
46
- iframeRef,
47
- };
48
- };
49
-
50
- function initIframe(
51
- iframe: HTMLIFrameElement,
52
- payloads: DecodedPayload[],
53
- onSuccess: (height: number) => void,
54
- ) {
55
- const { size } = findLastSizeOfDom(payloads);
56
-
57
- const docWidth = size.width ?? 0;
58
- const docHeight = size.height ?? 0;
59
-
60
- const fixer = initIframeHelperFixer({
61
- targetWidth: docWidth,
62
- targetHeight: docHeight,
63
- iframe: iframe,
64
- onSuccess: (data) => {
65
- iframe.height = `${data.height}px`;
66
- onSuccess(data.height);
67
- },
68
- });
69
-
70
- // fixer.recalculate();
71
- }
@@ -1,20 +0,0 @@
1
- import { useMemo } from 'react';
2
- import { useHeatmapRender } from './useHeatmapRender';
3
- import { useReplayRender } from './useReplayRender';
4
-
5
- interface IHeatmapVizRenderResult {
6
- iframeRef: React.RefObject<HTMLIFrameElement | null>;
7
- }
8
-
9
- export const useHeatmapVizRender = (mode: 'heatmap' | 'replay'): IHeatmapVizRenderResult => {
10
- const heatmapResult = useMemo(() => {
11
- switch (mode) {
12
- case 'heatmap':
13
- return useHeatmapRender;
14
- case 'replay':
15
- return useReplayRender;
16
- }
17
- }, [mode]);
18
-
19
- return heatmapResult();
20
- };