@gemx-dev/heatmap-react 3.5.44 → 3.5.46
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.
- package/dist/esm/components/Layout/ContentHeader.d.ts +4 -0
- package/dist/esm/components/Layout/ContentHeader.d.ts.map +1 -0
- package/dist/esm/components/Layout/VizMode.d.ts +2 -0
- package/dist/esm/components/Layout/VizMode.d.ts.map +1 -0
- package/dist/esm/components/Test.d.ts +121 -0
- package/dist/esm/components/Test.d.ts.map +1 -0
- package/dist/esm/components/VizDom/VizDomContainer.d.ts +6 -0
- package/dist/esm/components/VizDom/VizDomContainer.d.ts.map +1 -0
- package/dist/esm/components/VizDom/VizDomRenderer.d.ts.map +1 -1
- package/dist/esm/components/VizElement/ClickedElementOverlay.d.ts +17 -0
- package/dist/esm/components/VizElement/ClickedElementOverlay.d.ts.map +1 -0
- package/dist/esm/components/VizElement/HeatmapElements.d.ts.map +1 -1
- package/dist/esm/components/VizElement/HoveredElementOverlay.d.ts +12 -0
- package/dist/esm/components/VizElement/HoveredElementOverlay.d.ts.map +1 -0
- package/dist/esm/components/VizElement/MissingElementMessage.d.ts +7 -0
- package/dist/esm/components/VizElement/MissingElementMessage.d.ts.map +1 -0
- package/dist/esm/components/VizElement/VizElements.d.ts.map +1 -1
- package/dist/esm/components/VizElement/temp/ClarityVisualizer.d.ts +150 -0
- package/dist/esm/components/VizElement/temp/ClarityVisualizer.d.ts.map +1 -0
- package/dist/esm/components/VizElement/temp/VizElementRank.d.ts +74 -0
- package/dist/esm/components/VizElement/temp/VizElementRank.d.ts.map +1 -0
- package/dist/esm/components/VizLive/VizLive.d.ts +2 -0
- package/dist/esm/components/VizLive/VizLive.d.ts.map +1 -0
- package/dist/esm/components/VizLive/VizLiveHeatmap.d.ts.map +1 -1
- package/dist/esm/components/VizLive/VizLiveRenderer.d.ts.map +1 -1
- package/dist/esm/configs/style.d.ts +0 -2
- package/dist/esm/configs/style.d.ts.map +1 -1
- package/dist/esm/helpers/index.d.ts +2 -1
- package/dist/esm/helpers/index.d.ts.map +1 -1
- package/dist/esm/helpers/viewport-fixer.d.ts +13 -0
- package/dist/esm/helpers/viewport-fixer.d.ts.map +1 -0
- package/dist/esm/helpers/viewport-replacer.d.ts +26 -0
- package/dist/esm/helpers/viewport-replacer.d.ts.map +1 -0
- package/dist/esm/hooks/vix-elements/useHoveredElement.d.ts.map +1 -1
- package/dist/esm/hooks/viz-canvas/useClickmap.d.ts +1 -3
- package/dist/esm/hooks/viz-canvas/useClickmap.d.ts.map +1 -1
- package/dist/esm/hooks/viz-canvas/useHeatmapVizCanvas.d.ts +1 -1
- package/dist/esm/hooks/viz-canvas/useHeatmapVizCanvas.d.ts.map +1 -1
- package/dist/esm/hooks/viz-canvas/useScrollmap.d.ts +1 -3
- package/dist/esm/hooks/viz-canvas/useScrollmap.d.ts.map +1 -1
- package/dist/esm/hooks/viz-live/index.d.ts +1 -1
- package/dist/esm/hooks/viz-live/{useVizLiveIframeMsg.d.ts → useIframeMessage.d.ts} +10 -2
- package/dist/esm/hooks/viz-live/useIframeMessage.d.ts.map +1 -0
- package/dist/esm/hooks/viz-render/useHeatmapRender.d.ts.map +1 -1
- package/dist/esm/hooks/viz-scale/useContainerDimensions.d.ts.map +1 -1
- package/dist/esm/hooks/viz-scale/useHeatmapScale.d.ts +1 -1
- package/dist/esm/hooks/viz-scale/useHeatmapScale.d.ts.map +1 -1
- package/dist/esm/hooks/viz-scale/useIframeHeight.d.ts +10 -0
- package/dist/esm/hooks/viz-scale/useIframeHeight.d.ts.map +1 -0
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +203 -910
- package/dist/esm/index.mjs +203 -910
- package/dist/esm/stores/index.d.ts +0 -1
- package/dist/esm/stores/index.d.ts.map +1 -1
- package/dist/esm/stores/interaction.d.ts.map +1 -1
- package/dist/esm/stores/mode-live.d.ts +0 -4
- package/dist/esm/stores/mode-live.d.ts.map +1 -1
- package/dist/esm/stores/viz.d.ts +4 -0
- package/dist/esm/stores/viz.d.ts.map +1 -1
- package/dist/esm/types/index.d.ts +1 -1
- package/dist/esm/types/index.d.ts.map +1 -1
- package/dist/esm/types/viewport-fixer.d.ts +31 -0
- package/dist/esm/types/viewport-fixer.d.ts.map +1 -0
- package/dist/umd/components/Layout/ContentHeader.d.ts +4 -0
- package/dist/umd/components/Layout/ContentHeader.d.ts.map +1 -0
- package/dist/umd/components/Test.d.ts +121 -0
- package/dist/umd/components/Test.d.ts.map +1 -0
- package/dist/umd/components/VizDom/VizDomContainer.d.ts +2 -0
- package/dist/umd/components/VizDom/VizDomContainer.d.ts.map +1 -0
- package/dist/umd/components/VizDom/VizDomRenderer.d.ts.map +1 -1
- package/dist/umd/components/VizElement/ClickedElementOverlay.d.ts +17 -0
- package/dist/umd/components/VizElement/ClickedElementOverlay.d.ts.map +1 -0
- package/dist/umd/components/VizElement/HeatmapElements.d.ts.map +1 -1
- package/dist/umd/components/VizElement/HoveredElementOverlay.d.ts +12 -0
- package/dist/umd/components/VizElement/HoveredElementOverlay.d.ts.map +1 -0
- package/dist/umd/components/VizElement/MissingElementMessage.d.ts +7 -0
- package/dist/umd/components/VizElement/MissingElementMessage.d.ts.map +1 -0
- package/dist/umd/components/VizElement/VizElements.d.ts.map +1 -1
- package/dist/umd/components/VizElement/temp/ClarityVisualizer.d.ts +150 -0
- package/dist/umd/components/VizElement/temp/ClarityVisualizer.d.ts.map +1 -0
- package/dist/umd/components/VizElement/temp/VizElementRank.d.ts +74 -0
- package/dist/umd/components/VizElement/temp/VizElementRank.d.ts.map +1 -0
- package/dist/umd/components/VizLive/VizLiveHeatmap.d.ts.map +1 -1
- package/dist/umd/components/VizLive/VizLiveRenderer.d.ts.map +1 -1
- package/dist/umd/configs/style.d.ts +0 -2
- package/dist/umd/configs/style.d.ts.map +1 -1
- package/dist/umd/helpers/index.d.ts +2 -1
- package/dist/umd/helpers/index.d.ts.map +1 -1
- package/dist/umd/helpers/viewport-fixer.d.ts +13 -0
- package/dist/umd/helpers/viewport-fixer.d.ts.map +1 -0
- package/dist/umd/helpers/viewport-replacer.d.ts +26 -0
- package/dist/umd/helpers/viewport-replacer.d.ts.map +1 -0
- package/dist/umd/hooks/vix-elements/useHoveredElement.d.ts.map +1 -1
- package/dist/umd/hooks/viz-canvas/useClickmap.d.ts +1 -3
- package/dist/umd/hooks/viz-canvas/useClickmap.d.ts.map +1 -1
- package/dist/umd/hooks/viz-canvas/useHeatmapVizCanvas.d.ts +1 -1
- package/dist/umd/hooks/viz-canvas/useHeatmapVizCanvas.d.ts.map +1 -1
- package/dist/umd/hooks/viz-canvas/useScrollmap.d.ts +1 -3
- package/dist/umd/hooks/viz-canvas/useScrollmap.d.ts.map +1 -1
- package/dist/umd/hooks/viz-live/index.d.ts +1 -1
- package/dist/umd/hooks/viz-live/{useVizLiveIframeMsg.d.ts → useIframeMessage.d.ts} +10 -2
- package/dist/umd/hooks/viz-live/useIframeMessage.d.ts.map +1 -0
- package/dist/umd/hooks/viz-render/useHeatmapRender.d.ts.map +1 -1
- package/dist/umd/hooks/viz-scale/useContainerDimensions.d.ts.map +1 -1
- package/dist/umd/hooks/viz-scale/useHeatmapScale.d.ts +1 -1
- package/dist/umd/hooks/viz-scale/useHeatmapScale.d.ts.map +1 -1
- package/dist/umd/hooks/viz-scale/useIframeHeight.d.ts +10 -0
- package/dist/umd/hooks/viz-scale/useIframeHeight.d.ts.map +1 -0
- package/dist/umd/index.d.ts +1 -1
- package/dist/umd/index.d.ts.map +1 -1
- package/dist/umd/index.js +2 -2
- package/dist/umd/stores/index.d.ts +0 -1
- package/dist/umd/stores/index.d.ts.map +1 -1
- package/dist/umd/stores/interaction.d.ts.map +1 -1
- package/dist/umd/stores/mode-live.d.ts +0 -4
- package/dist/umd/stores/mode-live.d.ts.map +1 -1
- package/dist/umd/stores/viz.d.ts +4 -0
- package/dist/umd/stores/viz.d.ts.map +1 -1
- package/dist/umd/types/index.d.ts +1 -1
- package/dist/umd/types/index.d.ts.map +1 -1
- package/dist/umd/types/viewport-fixer.d.ts +31 -0
- package/dist/umd/types/viewport-fixer.d.ts.map +1 -0
- package/package.json +13 -15
- package/src/components/GraphView.tsx +58 -0
- package/src/components/Layout/ContentMetricBar.tsx +23 -0
- package/src/components/Layout/ContentToolbar.tsx +22 -0
- package/src/components/Layout/ContentTopBar.tsx +24 -0
- package/src/components/Layout/ContentVizByMode.tsx +14 -0
- package/src/components/Layout/HeatmapLayout.tsx +60 -0
- package/src/components/Layout/LeftSidebar.tsx +44 -0
- package/src/components/Layout/WrapperLayout.tsx +12 -0
- package/src/components/Layout/WrapperPreview.tsx +24 -0
- package/src/components/Layout/index.ts +1 -0
- package/src/components/VizDom/ReplayControls.tsx +48 -0
- package/src/components/VizDom/VizContainer.tsx +40 -0
- package/src/components/VizDom/VizDomHeatmap.tsx +28 -0
- package/src/components/VizDom/VizDomRenderer.tsx +82 -0
- package/src/components/VizDom/VizLoading.tsx +8 -0
- package/src/components/VizDom/WrapperVisual.tsx +73 -0
- package/src/components/VizDom/index.ts +5 -0
- package/src/components/VizElement/DefaultRankBadges.tsx +36 -0
- package/src/components/VizElement/ElementCallout.tsx +82 -0
- package/src/components/VizElement/ElementMissing.tsx +35 -0
- package/src/components/VizElement/ElementOverlay.tsx +66 -0
- package/src/components/VizElement/HeatmapElements.tsx +127 -0
- package/src/components/VizElement/HeatmapExample.tsx +70 -0
- package/src/components/VizElement/RankBadge.tsx +25 -0
- package/src/components/VizElement/VizElements.tsx +57 -0
- package/src/components/VizElement/index.ts +1 -0
- package/src/components/VizLive/VizLiveHeatmap.tsx +27 -0
- package/src/components/VizLive/VizLiveRenderer.tsx +47 -0
- package/src/components/VizLive/index.ts +1 -0
- package/src/components/VizScrollmap/AverageFoldLine.tsx +57 -0
- package/src/components/VizScrollmap/HoverZones.tsx +58 -0
- package/src/components/VizScrollmap/MetricRow.tsx +0 -0
- package/src/components/VizScrollmap/ScrollMapMinimap.tsx +64 -0
- package/src/components/VizScrollmap/ScrollMapOverlay.tsx +79 -0
- package/src/components/VizScrollmap/ScrollZoneHoverArea.tsx +35 -0
- package/src/components/VizScrollmap/ScrollZoneTooltip.tsx +146 -0
- package/src/components/VizScrollmap/ScrollmapMarker.tsx +106 -0
- package/src/components/VizScrollmap/VizScrollMap.tsx +36 -0
- package/src/components/VizScrollmap/index.ts +1 -0
- package/src/components/VizScrollmapV2/ScrollmapOverlay.css +94 -0
- package/src/components/VizScrollmapV2/ScrollmapOverlayV2.tsx +130 -0
- package/src/components/VizScrollmapV2/index.ts +1 -0
- package/src/components/VizScrollmapV2/scrollmap.types.ts +21 -0
- package/src/components/VizScrollmapV2/useScrollmapOverlay.ts +187 -0
- package/src/components/index.tsx +2 -0
- package/src/configs/iframe.ts +15 -0
- package/src/configs/index.ts +2 -0
- package/src/configs/style.ts +21 -0
- package/src/constants/index.ts +4 -0
- package/src/global.d.ts +5 -0
- package/src/helpers/elm-callout.ts +347 -0
- package/src/helpers/elm-getter.ts +70 -0
- package/src/helpers/iframe-helper/fixer.ts +100 -0
- package/src/helpers/iframe-helper/index.ts +1 -0
- package/src/helpers/iframe-helper/init.ts +56 -0
- package/src/helpers/iframe-helper/navigation-blocker-v2.ts +371 -0
- package/src/helpers/iframe-helper/navigation-blocker.ts +367 -0
- package/src/helpers/iframe-helper/style-replacer.ts +231 -0
- package/src/helpers/iframe.ts +42 -0
- package/src/helpers/index.ts +8 -0
- package/src/helpers/viz-canvas/area-clustering.ts +234 -0
- package/src/helpers/viz-canvas/area-overlay-manager-v2.ts +176 -0
- package/src/helpers/viz-canvas/area-overlay-manager.ts +273 -0
- package/src/helpers/viz-canvas/hierarchical-area-clustering.ts +420 -0
- package/src/helpers/viz-canvas/index.ts +2 -0
- package/src/helpers/viz-elements.ts +43 -0
- package/src/hooks/index.ts +8 -0
- package/src/hooks/register/index.ts +4 -0
- package/src/hooks/register/useRegisterConfig.ts +17 -0
- package/src/hooks/register/useRegisterControl.ts +13 -0
- package/src/hooks/register/useRegisterData.ts +36 -0
- package/src/hooks/register/useRegisterHeatmap.ts +38 -0
- package/src/hooks/viz-area/useAreaHeatmap.ts +336 -0
- package/src/hooks/viz-area/useAreaHeatmapManager.ts +692 -0
- package/src/hooks/viz-canvas/index.ts +1 -0
- package/src/hooks/viz-canvas/useAreamap.ts +162 -0
- package/src/hooks/viz-canvas/useClickmap.ts +24 -0
- package/src/hooks/viz-canvas/useHeatmapCanvas.ts +27 -0
- package/src/hooks/viz-canvas/useScrollmap.ts +22 -0
- package/src/hooks/viz-elements/index.ts +5 -0
- package/src/hooks/viz-elements/useClickedElement.ts +86 -0
- package/src/hooks/viz-elements/useElementCalloutVisible.ts +45 -0
- package/src/hooks/viz-elements/useHeatmapEffects.ts +30 -0
- package/src/hooks/viz-elements/useHeatmapElementPosition.ts +60 -0
- package/src/hooks/viz-elements/useHeatmapMouseHandler.ts +255 -0
- package/src/hooks/viz-elements/useHoveredElement.ts +170 -0
- package/src/hooks/viz-live/index.ts +1 -0
- package/src/hooks/viz-live/useVizLiveIframeMsg.ts +88 -0
- package/src/hooks/viz-live/useVizLiveRender.ts +67 -0
- package/src/hooks/viz-render/index.ts +1 -0
- package/src/hooks/viz-render/useHeatmapRender.ts +71 -0
- package/src/hooks/viz-render/useHeatmapVizRender.ts +20 -0
- package/src/hooks/viz-render/useReplayRender.ts +160 -0
- package/src/hooks/viz-scale/index.ts +2 -0
- package/src/hooks/viz-scale/useContainerDimensions.ts +48 -0
- package/src/hooks/viz-scale/useContentDimensions.ts +25 -0
- package/src/hooks/viz-scale/useHeatmapScale.ts +52 -0
- package/src/hooks/viz-scale/useObserveIframeHeight.ts +162 -0
- package/src/hooks/viz-scale/useScaleCalculation.ts +31 -0
- package/src/hooks/viz-scale/useScrollSync.ts +36 -0
- package/src/hooks/viz-scale/useWrapperRefHeight.ts +91 -0
- package/src/hooks/viz-scrollmap/index.ts +2 -0
- package/src/hooks/viz-scrollmap/useScrollmapZones.ts +165 -0
- package/src/hooks/viz-scrollmap/useZonePositions.ts +38 -0
- package/src/index.ts +10 -0
- package/src/stores/comp.ts +31 -0
- package/src/stores/config.ts +37 -0
- package/src/stores/data.ts +30 -0
- package/src/stores/index.ts +10 -0
- package/src/stores/interaction.ts +32 -0
- package/src/stores/mode-live.ts +38 -0
- package/src/stores/mode-single.ts +18 -0
- package/src/stores/viz-scrollmap.ts +22 -0
- package/src/stores/viz.ts +17 -0
- package/src/styles/base.css +1 -0
- package/src/styles/style.css +137 -0
- package/src/types/clarity.ts +45 -0
- package/src/types/control.ts +10 -0
- package/src/types/elm-callout.ts +9 -0
- package/src/types/heatmap-info.ts +11 -0
- package/src/types/heatmap.ts +25 -0
- package/src/types/iframe-helper.ts +18 -0
- package/src/types/index.ts +12 -0
- package/src/types/viz-canvas.ts +20 -0
- package/src/types/viz-element.ts +34 -0
- package/src/types/viz-scrollmap.ts +28 -0
- package/src/ui/BoxStack/BoxStack.tsx +136 -0
- package/src/ui/BoxStack/index.ts +1 -0
- package/src/ui/index.ts +1 -0
- package/src/utils/debounce.ts +10 -0
- package/src/utils/device.ts +7 -0
- package/src/utils/retry.ts +20 -0
- package/src/utils/sort.ts +5 -0
- package/dist/esm/helpers/iframe-helper/fixer.d.ts +0 -18
- package/dist/esm/helpers/iframe-helper/fixer.d.ts.map +0 -1
- package/dist/esm/helpers/iframe-helper/index.d.ts +0 -2
- package/dist/esm/helpers/iframe-helper/index.d.ts.map +0 -1
- package/dist/esm/helpers/iframe-helper/init.d.ts +0 -5
- package/dist/esm/helpers/iframe-helper/init.d.ts.map +0 -1
- package/dist/esm/helpers/iframe-helper/navigation-blocker-v2.d.ts +0 -28
- package/dist/esm/helpers/iframe-helper/navigation-blocker-v2.d.ts.map +0 -1
- package/dist/esm/helpers/iframe-helper/navigation-blocker.d.ts +0 -20
- package/dist/esm/helpers/iframe-helper/navigation-blocker.d.ts.map +0 -1
- package/dist/esm/helpers/iframe-helper/style-replacer.d.ts +0 -25
- package/dist/esm/helpers/iframe-helper/style-replacer.d.ts.map +0 -1
- package/dist/esm/hooks/vix-elements/useHeatmapMouseHandler.d.ts +0 -34
- package/dist/esm/hooks/vix-elements/useHeatmapMouseHandler.d.ts.map +0 -1
- package/dist/esm/hooks/viz-live/useVizLiveIframeMsg.d.ts.map +0 -1
- package/dist/esm/hooks/viz-live/useVizLiveRender.d.ts +0 -4
- package/dist/esm/hooks/viz-live/useVizLiveRender.d.ts.map +0 -1
- package/dist/esm/hooks/viz-scale/useObserveIframeHeight.d.ts +0 -10
- package/dist/esm/hooks/viz-scale/useObserveIframeHeight.d.ts.map +0 -1
- package/dist/esm/stores/mode-single.d.ts +0 -9
- package/dist/esm/stores/mode-single.d.ts.map +0 -1
- package/dist/esm/types/iframe-helper.d.ts +0 -20
- package/dist/esm/types/iframe-helper.d.ts.map +0 -1
- package/dist/umd/helpers/iframe-helper/fixer.d.ts +0 -18
- package/dist/umd/helpers/iframe-helper/fixer.d.ts.map +0 -1
- package/dist/umd/helpers/iframe-helper/index.d.ts +0 -2
- package/dist/umd/helpers/iframe-helper/index.d.ts.map +0 -1
- package/dist/umd/helpers/iframe-helper/init.d.ts +0 -5
- package/dist/umd/helpers/iframe-helper/init.d.ts.map +0 -1
- package/dist/umd/helpers/iframe-helper/navigation-blocker-v2.d.ts +0 -28
- package/dist/umd/helpers/iframe-helper/navigation-blocker-v2.d.ts.map +0 -1
- package/dist/umd/helpers/iframe-helper/navigation-blocker.d.ts +0 -20
- package/dist/umd/helpers/iframe-helper/navigation-blocker.d.ts.map +0 -1
- package/dist/umd/helpers/iframe-helper/style-replacer.d.ts +0 -25
- package/dist/umd/helpers/iframe-helper/style-replacer.d.ts.map +0 -1
- package/dist/umd/hooks/vix-elements/useHeatmapMouseHandler.d.ts +0 -34
- package/dist/umd/hooks/vix-elements/useHeatmapMouseHandler.d.ts.map +0 -1
- package/dist/umd/hooks/viz-live/useVizLiveIframeMsg.d.ts.map +0 -1
- package/dist/umd/hooks/viz-live/useVizLiveRender.d.ts +0 -4
- package/dist/umd/hooks/viz-live/useVizLiveRender.d.ts.map +0 -1
- package/dist/umd/hooks/viz-scale/useObserveIframeHeight.d.ts +0 -10
- package/dist/umd/hooks/viz-scale/useObserveIframeHeight.d.ts.map +0 -1
- package/dist/umd/stores/mode-single.d.ts +0 -9
- package/dist/umd/stores/mode-single.d.ts.map +0 -1
- package/dist/umd/types/iframe-helper.d.ts +0 -20
- package/dist/umd/types/iframe-helper.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stores/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,OAAO,CAAC;AAEtB,cAAc,aAAa,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stores/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,OAAO,CAAC;AAEtB,cAAc,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../src/stores/interaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACzC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kBAAkB,EAAE,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7D,cAAc,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,iBAAiB,EAAE,CAAC,cAAc,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../src/stores/interaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACzC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kBAAkB,EAAE,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7D,cAAc,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,iBAAiB,EAAE,CAAC,cAAc,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAEhE,iBAAiB,EAAE,OAAO,CAAC;IAC3B,oBAAoB,EAAE,CAAC,iBAAiB,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5D;AAED,eAAO,MAAM,0BAA0B,uFAarC,CAAC"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import { DecodedPayload } from '../types';
|
|
2
1
|
interface IHeatmapLiveStoreState {
|
|
3
|
-
payloads: DecodedPayload[];
|
|
4
2
|
htmlContent: string;
|
|
5
3
|
iframeHeight: number;
|
|
6
4
|
wrapperHeight: number;
|
|
7
5
|
}
|
|
8
6
|
interface IHeatmapLiveStoreActions {
|
|
9
|
-
setPayloads: (payloads: DecodedPayload[]) => void;
|
|
10
|
-
addPayload: (payload: DecodedPayload) => void;
|
|
11
7
|
reset: () => void;
|
|
12
8
|
setHtmlContent: (htmlContent: string) => void;
|
|
13
9
|
setWrapperHeight: (wrapperHeight: number) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mode-live.d.ts","sourceRoot":"","sources":["../../src/stores/mode-live.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mode-live.d.ts","sourceRoot":"","sources":["../../src/stores/mode-live.ts"],"names":[],"mappings":"AAEA,UAAU,sBAAsB;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AACD,UAAU,wBAAwB;IAChC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,gBAAgB,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,eAAe,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;CACjD;AAED,UAAU,iBAAkB,SAAQ,sBAAsB,EAAE,wBAAwB;CAAG;AAQvF,eAAO,MAAM,mBAAmB,gFAQ9B,CAAC"}
|
package/dist/umd/stores/viz.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
export interface IHeatmapVizStore {
|
|
2
2
|
isRenderViz: boolean;
|
|
3
3
|
setIsRenderViz: (isRenderViz: boolean) => void;
|
|
4
|
+
vizRef: any;
|
|
5
|
+
setVizRef: (vizRef: any) => void;
|
|
4
6
|
scale: number;
|
|
5
7
|
setScale: (scale: number) => void;
|
|
8
|
+
iframeHeight: number;
|
|
9
|
+
setIframeHeight: (iframeHeight: number) => void;
|
|
6
10
|
}
|
|
7
11
|
export declare const useHeatmapVizStore: import("zustand").UseBoundStore<import("zustand").StoreApi<IHeatmapVizStore>>;
|
|
8
12
|
//# sourceMappingURL=viz.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viz.d.ts","sourceRoot":"","sources":["../../src/stores/viz.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"viz.d.ts","sourceRoot":"","sources":["../../src/stores/viz.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,MAAM,EAAE,GAAG,CAAC;IACZ,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;CACjD;AAED,eAAO,MAAM,kBAAkB,+EAW7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAE9B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAE9B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAE9B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAE9B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface ViewportConfig {
|
|
2
|
+
targetWidth: number;
|
|
3
|
+
targetHeight: number;
|
|
4
|
+
iframe: HTMLIFrameElement;
|
|
5
|
+
onSuccess?: (data: {
|
|
6
|
+
height: number;
|
|
7
|
+
}) => void;
|
|
8
|
+
onError?: (error: Error) => void;
|
|
9
|
+
}
|
|
10
|
+
export interface IframeHeightMessage {
|
|
11
|
+
type: 'IFRAME_HEIGHT_CALCULATED';
|
|
12
|
+
height: number;
|
|
13
|
+
width: number;
|
|
14
|
+
}
|
|
15
|
+
export interface DimensionsDetail {
|
|
16
|
+
width: number;
|
|
17
|
+
height: number;
|
|
18
|
+
}
|
|
19
|
+
export interface DebugInfo {
|
|
20
|
+
iframe: number;
|
|
21
|
+
body: number;
|
|
22
|
+
remaining: number;
|
|
23
|
+
}
|
|
24
|
+
declare global {
|
|
25
|
+
interface Window {
|
|
26
|
+
__viewportConfig?: ViewportConfig;
|
|
27
|
+
viewportFixer?: any;
|
|
28
|
+
debugViewportUnits?: () => DebugInfo | null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=viewport-fixer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewport-fixer.d.ts","sourceRoot":"","sources":["../../src/types/viewport-fixer.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,0BAA0B,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,gBAAgB,CAAC,EAAE,cAAc,CAAC;QAClC,aAAa,CAAC,EAAE,GAAG,CAAC;QACpB,kBAAkB,CAAC,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC;KAC7C;CACF"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gemx-dev/heatmap-react",
|
|
3
3
|
"author": "gemx-dev",
|
|
4
|
-
"version": "3.5.
|
|
4
|
+
"version": "3.5.46",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"sideEffects": [
|
|
7
7
|
"*.css"
|
|
@@ -60,7 +60,8 @@
|
|
|
60
60
|
"name": "HeatmapReact"
|
|
61
61
|
},
|
|
62
62
|
"publishConfig": {
|
|
63
|
-
"access": "public"
|
|
63
|
+
"access": "public",
|
|
64
|
+
"registry": "https://registry.npmjs.org/"
|
|
64
65
|
},
|
|
65
66
|
"main": "dist/umd/index.js",
|
|
66
67
|
"types": "dist/esm/index.d.ts",
|
|
@@ -68,22 +69,19 @@
|
|
|
68
69
|
"./package.json": "./package.json",
|
|
69
70
|
".": {
|
|
70
71
|
"node": {
|
|
71
|
-
"types": "./
|
|
72
|
-
"module": "./
|
|
73
|
-
"require": "./
|
|
74
|
-
"import": "./
|
|
72
|
+
"types": "./src/global.d.ts",
|
|
73
|
+
"module": "./src/index.ts",
|
|
74
|
+
"require": "./src/index.ts",
|
|
75
|
+
"import": "./src/index.ts"
|
|
75
76
|
},
|
|
76
|
-
"
|
|
77
|
-
"import": "./dist/esm/index.js",
|
|
78
|
-
"require": "./dist/umd/index.js"
|
|
79
|
-
},
|
|
80
|
-
"default": "./dist/esm/index.js"
|
|
77
|
+
"default": "./src/index.ts"
|
|
81
78
|
},
|
|
82
|
-
"./dist/base.css": "./
|
|
83
|
-
"./dist/style.css": "./
|
|
79
|
+
"./dist/base.css": "./src/styles/base.css",
|
|
80
|
+
"./dist/style.css": "./src/styles/style.css"
|
|
84
81
|
},
|
|
85
82
|
"files": [
|
|
86
|
-
"dist"
|
|
83
|
+
"dist",
|
|
84
|
+
"src"
|
|
87
85
|
],
|
|
88
86
|
"module": "dist/esm/index.js"
|
|
89
|
-
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { Node } from '@xyflow/react';
|
|
2
|
+
|
|
3
|
+
import { Background, Controls, ReactFlow, useNodesState } from '@xyflow/react';
|
|
4
|
+
import React, { useEffect } from 'react';
|
|
5
|
+
|
|
6
|
+
const initialNodes: Node = { id: '1', position: { x: 0, y: 0 }, data: { label: '1' } };
|
|
7
|
+
|
|
8
|
+
interface GraphViewProps {
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
width: number;
|
|
11
|
+
height: number;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const GraphView: React.FC<GraphViewProps> = ({ children, width, height }) => {
|
|
15
|
+
const [nodes, setNodes, onNodesChange] = useNodesState<Node>([
|
|
16
|
+
{
|
|
17
|
+
...initialNodes,
|
|
18
|
+
width: width,
|
|
19
|
+
height: height,
|
|
20
|
+
},
|
|
21
|
+
]);
|
|
22
|
+
|
|
23
|
+
const CustomNode = () => {
|
|
24
|
+
return <>{children}</>;
|
|
25
|
+
};
|
|
26
|
+
const nodeTypes = {
|
|
27
|
+
default: CustomNode,
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
if (!width) return;
|
|
32
|
+
|
|
33
|
+
setNodes((prev) => {
|
|
34
|
+
const node = prev.find((node) => node.id === '1') as Node;
|
|
35
|
+
const newNode: Node = {
|
|
36
|
+
...node,
|
|
37
|
+
measured: { height: height, width: width },
|
|
38
|
+
height: height,
|
|
39
|
+
width: width,
|
|
40
|
+
};
|
|
41
|
+
return [newNode];
|
|
42
|
+
});
|
|
43
|
+
}, [width, height, setNodes]);
|
|
44
|
+
return (
|
|
45
|
+
<ReactFlow
|
|
46
|
+
nodes={nodes}
|
|
47
|
+
nodeTypes={nodeTypes}
|
|
48
|
+
onNodesChange={onNodesChange}
|
|
49
|
+
debug={true}
|
|
50
|
+
minZoom={0.5}
|
|
51
|
+
maxZoom={2}
|
|
52
|
+
fitView
|
|
53
|
+
>
|
|
54
|
+
<Controls />
|
|
55
|
+
<Background />
|
|
56
|
+
</ReactFlow>
|
|
57
|
+
);
|
|
58
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { HEATMAP_CONFIG } from '../../configs';
|
|
2
|
+
import { useHeatmapControlStore } from '../../stores';
|
|
3
|
+
import { BoxStack } from '../../ui';
|
|
4
|
+
|
|
5
|
+
export const ContentMetricBar: React.FC = () => {
|
|
6
|
+
const controls = useHeatmapControlStore((state) => state.controls);
|
|
7
|
+
|
|
8
|
+
return (
|
|
9
|
+
<BoxStack
|
|
10
|
+
id="gx-hm-content-metric-bar"
|
|
11
|
+
flexDirection="row"
|
|
12
|
+
alignItems="center"
|
|
13
|
+
overflow="auto"
|
|
14
|
+
zIndex={1}
|
|
15
|
+
backgroundColor="white"
|
|
16
|
+
style={{
|
|
17
|
+
borderBottom: `${HEATMAP_CONFIG.borderWidth}px solid ${HEATMAP_CONFIG.borderColor}`,
|
|
18
|
+
}}
|
|
19
|
+
>
|
|
20
|
+
{controls.MetricBar ?? null}
|
|
21
|
+
</BoxStack>
|
|
22
|
+
);
|
|
23
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useHeatmapControlStore } from '../../stores';
|
|
2
|
+
|
|
3
|
+
export const ContentToolbar: React.FC = () => {
|
|
4
|
+
const controls = useHeatmapControlStore((state) => state.controls);
|
|
5
|
+
|
|
6
|
+
return (
|
|
7
|
+
<div
|
|
8
|
+
id="gx-hm-content-toolbar"
|
|
9
|
+
style={{
|
|
10
|
+
zIndex: 2,
|
|
11
|
+
position: 'absolute',
|
|
12
|
+
bottom: 0,
|
|
13
|
+
left: '8px',
|
|
14
|
+
right: '24px',
|
|
15
|
+
padding: '8px',
|
|
16
|
+
paddingBlock: '16px',
|
|
17
|
+
}}
|
|
18
|
+
>
|
|
19
|
+
{controls.Toolbar ?? null}
|
|
20
|
+
</div>
|
|
21
|
+
);
|
|
22
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { HEATMAP_CONFIG } from '../../configs';
|
|
2
|
+
import { useHeatmapControlStore } from '../../stores';
|
|
3
|
+
import { BoxStack } from '../../ui';
|
|
4
|
+
|
|
5
|
+
export const ContentTopBar: React.FC = () => {
|
|
6
|
+
const controls = useHeatmapControlStore((state) => state.controls);
|
|
7
|
+
const TopBar = controls.TopBar;
|
|
8
|
+
|
|
9
|
+
return (
|
|
10
|
+
<BoxStack
|
|
11
|
+
id="gx-hm-content-header"
|
|
12
|
+
flexDirection="row"
|
|
13
|
+
alignItems="center"
|
|
14
|
+
overflow="auto"
|
|
15
|
+
zIndex={1}
|
|
16
|
+
backgroundColor="white"
|
|
17
|
+
style={{
|
|
18
|
+
borderBottom: `${HEATMAP_CONFIG.borderWidth}px solid ${HEATMAP_CONFIG.borderColor}`,
|
|
19
|
+
}}
|
|
20
|
+
>
|
|
21
|
+
{TopBar && <TopBar />}
|
|
22
|
+
</BoxStack>
|
|
23
|
+
);
|
|
24
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useHeatmapConfigStore } from '../../stores';
|
|
2
|
+
import { VizDomHeatmap } from '../VizDom';
|
|
3
|
+
import { VizLiveHeatmap } from '../VizLive';
|
|
4
|
+
|
|
5
|
+
export const ContentVizByMode: React.FC = () => {
|
|
6
|
+
const mode = useHeatmapConfigStore((state) => state.mode);
|
|
7
|
+
|
|
8
|
+
switch (mode) {
|
|
9
|
+
case 'live':
|
|
10
|
+
return <VizLiveHeatmap />;
|
|
11
|
+
default:
|
|
12
|
+
return <VizDomHeatmap />;
|
|
13
|
+
}
|
|
14
|
+
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { HEATMAP_CONFIG } from '../../configs';
|
|
2
|
+
import {
|
|
3
|
+
useRegisterConfig,
|
|
4
|
+
useRegisterControl,
|
|
5
|
+
useRegisterData,
|
|
6
|
+
useRegisterHeatmap,
|
|
7
|
+
} from '../../hooks';
|
|
8
|
+
import { ClickMapPoint, DecodedPayload, IHeatmapInfo, ScrollMapPoint } from '../../types';
|
|
9
|
+
import { IHeatmapControl } from '../../types/control';
|
|
10
|
+
import { BoxStack, BoxStackProps } from '../../ui';
|
|
11
|
+
import { WrapperLayout } from './WrapperLayout';
|
|
12
|
+
|
|
13
|
+
interface HeatmapLayoutProps {
|
|
14
|
+
data?: DecodedPayload[];
|
|
15
|
+
clickmap?: ClickMapPoint[];
|
|
16
|
+
scrollmap?: ScrollMapPoint[];
|
|
17
|
+
dataInfo?: IHeatmapInfo;
|
|
18
|
+
controls: IHeatmapControl;
|
|
19
|
+
}
|
|
20
|
+
export const HeatmapLayout: React.FC<HeatmapLayoutProps> = ({
|
|
21
|
+
data,
|
|
22
|
+
clickmap,
|
|
23
|
+
scrollmap,
|
|
24
|
+
controls,
|
|
25
|
+
dataInfo,
|
|
26
|
+
}) => {
|
|
27
|
+
useRegisterControl(controls);
|
|
28
|
+
useRegisterData(data, dataInfo);
|
|
29
|
+
useRegisterHeatmap({ clickmap, scrollmap });
|
|
30
|
+
useRegisterConfig();
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<BoxStack
|
|
34
|
+
id="gx-hm-project"
|
|
35
|
+
flexDirection="column"
|
|
36
|
+
flex="1"
|
|
37
|
+
height="100%"
|
|
38
|
+
style={getVariableStyle()}
|
|
39
|
+
>
|
|
40
|
+
<BoxStack id="gx-hm-project-content" flexDirection="column" flex="1">
|
|
41
|
+
<div
|
|
42
|
+
style={{
|
|
43
|
+
minHeight: '100%',
|
|
44
|
+
display: 'flex',
|
|
45
|
+
}}
|
|
46
|
+
>
|
|
47
|
+
<WrapperLayout />
|
|
48
|
+
</div>
|
|
49
|
+
</BoxStack>
|
|
50
|
+
</BoxStack>
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
function getVariableStyle(): BoxStackProps['style'] {
|
|
54
|
+
return {
|
|
55
|
+
'--gx-hm-border-width': `${HEATMAP_CONFIG.borderWidth}px`,
|
|
56
|
+
'--gx-hm-border-width-iframe': `${HEATMAP_CONFIG.borderWidthIframe}px`,
|
|
57
|
+
'--gx-hm-border-color': `${HEATMAP_CONFIG.borderColor}`,
|
|
58
|
+
} as React.CSSProperties;
|
|
59
|
+
}
|
|
60
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { HEATMAP_CONFIG } from '../../configs';
|
|
2
|
+
import {
|
|
3
|
+
useHeatmapConfigStore,
|
|
4
|
+
useHeatmapControlStore,
|
|
5
|
+
useHeatmapInteractionStore,
|
|
6
|
+
} from '../../stores';
|
|
7
|
+
|
|
8
|
+
export const LeftSidebar: React.FC = () => {
|
|
9
|
+
const controls = useHeatmapControlStore((state) => state.controls);
|
|
10
|
+
const isHideSidebar = useHeatmapInteractionStore((state) => state.state.hideSidebar);
|
|
11
|
+
const sidebarWidth = useHeatmapConfigStore((state) => state.sidebarWidth);
|
|
12
|
+
|
|
13
|
+
if (isHideSidebar) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
return (
|
|
17
|
+
<div
|
|
18
|
+
className="gx-hm-sidebar"
|
|
19
|
+
style={{
|
|
20
|
+
height: '100%',
|
|
21
|
+
display: 'flex',
|
|
22
|
+
zIndex: 1,
|
|
23
|
+
...(isHideSidebar
|
|
24
|
+
? {
|
|
25
|
+
width: '0',
|
|
26
|
+
transform: 'translateX(-100%)',
|
|
27
|
+
visibility: 'hidden',
|
|
28
|
+
}
|
|
29
|
+
: { width: `${sidebarWidth}px + ${HEATMAP_CONFIG.borderWidth}px` }),
|
|
30
|
+
}}
|
|
31
|
+
>
|
|
32
|
+
<div
|
|
33
|
+
className="gx-hm-sidebar-wrapper"
|
|
34
|
+
style={{
|
|
35
|
+
height: '100%',
|
|
36
|
+
width: `calc(${sidebarWidth}px + ${HEATMAP_CONFIG.borderWidth}px)`,
|
|
37
|
+
borderRight: `${HEATMAP_CONFIG.borderWidth}px solid ${HEATMAP_CONFIG.borderColor}`,
|
|
38
|
+
}}
|
|
39
|
+
>
|
|
40
|
+
{controls.Sidebar ?? null}
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
);
|
|
44
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BoxStack } from '../../ui';
|
|
2
|
+
import { ContentTopBar } from './ContentTopBar';
|
|
3
|
+
import { WrapperPreview } from './WrapperPreview';
|
|
4
|
+
|
|
5
|
+
export const WrapperLayout: React.FC = () => {
|
|
6
|
+
return (
|
|
7
|
+
<BoxStack id="gx-hm-layout" flexDirection="column" flex="1">
|
|
8
|
+
<ContentTopBar />
|
|
9
|
+
<WrapperPreview />
|
|
10
|
+
</BoxStack>
|
|
11
|
+
);
|
|
12
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BoxStack } from '../../ui';
|
|
2
|
+
import { ContentMetricBar } from './ContentMetricBar';
|
|
3
|
+
import { ContentToolbar } from './ContentToolbar';
|
|
4
|
+
import { ContentVizByMode } from './ContentVizByMode';
|
|
5
|
+
import { LeftSidebar } from './LeftSidebar';
|
|
6
|
+
|
|
7
|
+
export const WrapperPreview: React.FC = () => {
|
|
8
|
+
return (
|
|
9
|
+
<BoxStack
|
|
10
|
+
id="gx-hm-container"
|
|
11
|
+
flexDirection="row"
|
|
12
|
+
overflow="hidden"
|
|
13
|
+
flex="1"
|
|
14
|
+
position="relative"
|
|
15
|
+
>
|
|
16
|
+
<LeftSidebar />
|
|
17
|
+
<BoxStack flexDirection="column" flex="1">
|
|
18
|
+
<ContentMetricBar />
|
|
19
|
+
<ContentVizByMode />
|
|
20
|
+
<ContentToolbar />
|
|
21
|
+
</BoxStack>
|
|
22
|
+
</BoxStack>
|
|
23
|
+
);
|
|
24
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './HeatmapLayout';
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { useReplayRender } from '../../hooks/viz-render/useReplayRender';
|
|
2
|
+
|
|
3
|
+
export const ReplayControls: React.FC = () => {
|
|
4
|
+
const replayResult = useReplayRender();
|
|
5
|
+
|
|
6
|
+
return (
|
|
7
|
+
<div
|
|
8
|
+
style={{
|
|
9
|
+
position: 'absolute',
|
|
10
|
+
bottom: 20,
|
|
11
|
+
left: '50%',
|
|
12
|
+
transform: 'translateX(-50%)',
|
|
13
|
+
display: 'flex',
|
|
14
|
+
gap: 10,
|
|
15
|
+
backgroundColor: 'rgba(0, 0, 0, 0.7)',
|
|
16
|
+
padding: '10px 20px',
|
|
17
|
+
borderRadius: 8,
|
|
18
|
+
}}
|
|
19
|
+
>
|
|
20
|
+
<button
|
|
21
|
+
onClick={replayResult.play}
|
|
22
|
+
style={{
|
|
23
|
+
padding: '8px 16px',
|
|
24
|
+
backgroundColor: '#4CAF50',
|
|
25
|
+
color: 'white',
|
|
26
|
+
border: 'none',
|
|
27
|
+
borderRadius: 4,
|
|
28
|
+
cursor: 'pointer',
|
|
29
|
+
}}
|
|
30
|
+
>
|
|
31
|
+
Play
|
|
32
|
+
</button>
|
|
33
|
+
<button
|
|
34
|
+
onClick={replayResult.pause}
|
|
35
|
+
style={{
|
|
36
|
+
padding: '8px 16px',
|
|
37
|
+
backgroundColor: '#f44336',
|
|
38
|
+
color: 'white',
|
|
39
|
+
border: 'none',
|
|
40
|
+
borderRadius: 4,
|
|
41
|
+
cursor: 'pointer',
|
|
42
|
+
}}
|
|
43
|
+
>
|
|
44
|
+
Pause
|
|
45
|
+
</button>
|
|
46
|
+
</div>
|
|
47
|
+
);
|
|
48
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { useRef } from 'react';
|
|
2
|
+
import { useWrapperRefHeight } from '../../hooks';
|
|
3
|
+
import { BoxStack } from '../../ui';
|
|
4
|
+
|
|
5
|
+
interface VizContainerProps {
|
|
6
|
+
children: React.ReactNode;
|
|
7
|
+
setWrapperHeight?: (height: number) => void;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const VizContainer: React.FC<VizContainerProps> = ({ children, setWrapperHeight }) => {
|
|
11
|
+
const wrapperRef = useRef<HTMLDivElement>(null);
|
|
12
|
+
useWrapperRefHeight({
|
|
13
|
+
isActive: !!setWrapperHeight,
|
|
14
|
+
wrapperRef,
|
|
15
|
+
setWrapperHeight,
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<BoxStack
|
|
20
|
+
ref={wrapperRef}
|
|
21
|
+
id="gx-hm-viz-container"
|
|
22
|
+
flexDirection="column"
|
|
23
|
+
flex="1 1 auto"
|
|
24
|
+
overflow="auto"
|
|
25
|
+
zIndex={1}
|
|
26
|
+
>
|
|
27
|
+
<BoxStack
|
|
28
|
+
id="gx-hm-content"
|
|
29
|
+
flexDirection="column"
|
|
30
|
+
flex="1 1 auto"
|
|
31
|
+
overflow="hidden"
|
|
32
|
+
style={{
|
|
33
|
+
minWidth: '394px',
|
|
34
|
+
}}
|
|
35
|
+
>
|
|
36
|
+
{children}
|
|
37
|
+
</BoxStack>
|
|
38
|
+
</BoxStack>
|
|
39
|
+
);
|
|
40
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useHeatmapControlStore, useHeatmapDataStore, useHeatmapSingleStore } from '../../stores';
|
|
3
|
+
import { VizContainer } from './VizContainer';
|
|
4
|
+
import { VizDomRenderer } from './VizDomRenderer';
|
|
5
|
+
import { VizLoading } from './VizLoading';
|
|
6
|
+
|
|
7
|
+
export const VizDomHeatmap: React.FC = () => {
|
|
8
|
+
const controls = useHeatmapControlStore((state) => state.controls);
|
|
9
|
+
const isRendering = useHeatmapDataStore((state) => state.isRendering);
|
|
10
|
+
const iframeHeight = useHeatmapSingleStore((state) => state.iframeHeight);
|
|
11
|
+
const setIframeHeight = useHeatmapSingleStore((state) => state.setIframeHeight);
|
|
12
|
+
const setVizRef = useHeatmapSingleStore((state) => state.setVizRef);
|
|
13
|
+
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
return () => {
|
|
16
|
+
setVizRef(null);
|
|
17
|
+
setIframeHeight(0);
|
|
18
|
+
};
|
|
19
|
+
}, []);
|
|
20
|
+
|
|
21
|
+
if (isRendering) return controls.VizLoading ?? null;
|
|
22
|
+
return (
|
|
23
|
+
<VizContainer>
|
|
24
|
+
<VizDomRenderer />
|
|
25
|
+
{iframeHeight === 0 && <VizLoading />}
|
|
26
|
+
</VizContainer>
|
|
27
|
+
);
|
|
28
|
+
};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { useEffect, useRef } from 'react';
|
|
2
|
+
import { HEATMAP_IFRAME } from '../../configs';
|
|
3
|
+
import { useHeatmapScale, useHeatmapVizRender } from '../../hooks';
|
|
4
|
+
import { useHeatmapCanvas } from '../../hooks/viz-canvas';
|
|
5
|
+
import {
|
|
6
|
+
useHeatmapConfigStore,
|
|
7
|
+
useHeatmapInteractionStore,
|
|
8
|
+
useHeatmapSingleStore,
|
|
9
|
+
} from '../../stores';
|
|
10
|
+
import { IHeatmapType } from '../../types';
|
|
11
|
+
import { VizElements } from '../VizElement';
|
|
12
|
+
import { VizScrollMap } from '../VizScrollmap/VizScrollMap';
|
|
13
|
+
import { WrapperVisual } from './WrapperVisual';
|
|
14
|
+
|
|
15
|
+
interface VizDomRendererProps {
|
|
16
|
+
mode?: 'heatmap' | 'replay';
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const VizDomRenderer: React.FC<VizDomRendererProps> = ({ mode = 'heatmap' }) => {
|
|
20
|
+
const width = useHeatmapConfigStore((state) => state.width);
|
|
21
|
+
const heatmapType = useHeatmapConfigStore((state) => state.heatmapType);
|
|
22
|
+
const iframeHeight = useHeatmapSingleStore((state) => state.iframeHeight);
|
|
23
|
+
const setIframeHeight = useHeatmapSingleStore((state) => state.setIframeHeight);
|
|
24
|
+
const setSelectedElement = useHeatmapInteractionStore((state) => state.setSelectedElement);
|
|
25
|
+
|
|
26
|
+
const wrapperRef = useRef<HTMLDivElement>(null);
|
|
27
|
+
const visualRef = useRef<HTMLDivElement>(null);
|
|
28
|
+
|
|
29
|
+
const { iframeRef } = useHeatmapVizRender(mode);
|
|
30
|
+
const { scaledHeight, handleScroll } = useHeatmapScale({
|
|
31
|
+
wrapperRef,
|
|
32
|
+
iframeRef,
|
|
33
|
+
visualRef,
|
|
34
|
+
iframeHeight,
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
const contentWidth = width ?? 0;
|
|
38
|
+
|
|
39
|
+
const onScroll = (e: React.UIEvent<HTMLDivElement>) => {
|
|
40
|
+
const scrollTop = e.currentTarget.scrollTop;
|
|
41
|
+
handleScroll(scrollTop);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
useHeatmapCanvas({ iframeRef: iframeRef as React.RefObject<HTMLIFrameElement> });
|
|
45
|
+
|
|
46
|
+
const cleanUp = () => {
|
|
47
|
+
setIframeHeight(0);
|
|
48
|
+
setSelectedElement(null);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
return cleanUp;
|
|
53
|
+
}, []);
|
|
54
|
+
return (
|
|
55
|
+
<WrapperVisual
|
|
56
|
+
visualRef={visualRef}
|
|
57
|
+
wrapperRef={wrapperRef}
|
|
58
|
+
scaledHeight={scaledHeight}
|
|
59
|
+
onScroll={onScroll}
|
|
60
|
+
iframeHeight={iframeHeight}
|
|
61
|
+
>
|
|
62
|
+
{heatmapType === IHeatmapType.Click && (
|
|
63
|
+
<VizElements
|
|
64
|
+
iframeRef={iframeRef}
|
|
65
|
+
visualRef={visualRef as React.RefObject<HTMLDivElement>}
|
|
66
|
+
wrapperRef={wrapperRef as React.RefObject<HTMLDivElement>}
|
|
67
|
+
/>
|
|
68
|
+
)}
|
|
69
|
+
<iframe
|
|
70
|
+
ref={iframeRef as React.RefObject<HTMLIFrameElement>}
|
|
71
|
+
{...HEATMAP_IFRAME}
|
|
72
|
+
width={contentWidth}
|
|
73
|
+
scrolling="no"
|
|
74
|
+
/>
|
|
75
|
+
|
|
76
|
+
<VizScrollMap
|
|
77
|
+
iframeRef={iframeRef as React.RefObject<HTMLIFrameElement>}
|
|
78
|
+
wrapperRef={visualRef as React.RefObject<HTMLDivElement>}
|
|
79
|
+
/>
|
|
80
|
+
</WrapperVisual>
|
|
81
|
+
);
|
|
82
|
+
};
|