@gemx-dev/heatmap-react 3.5.62 → 3.5.63
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/Sidebar/PopoverSidebar.d.ts.map +1 -1
- package/dist/esm/components/VizDom/VizDomRenderer.d.ts.map +1 -1
- package/dist/esm/components/VizDom/WrapperVisual.d.ts.map +1 -1
- package/dist/esm/components/VizElement/ElementMissing.d.ts.map +1 -1
- package/dist/esm/components/VizElement/ElementOverlay.d.ts.map +1 -1
- package/dist/esm/components/VizElement/VizElements.d.ts.map +1 -1
- package/dist/esm/components/VizLive/VizLiveRenderer.d.ts.map +1 -1
- package/dist/esm/components/VizScrollmap/ScrollMapMinimap.d.ts.map +1 -1
- package/dist/esm/components/VizScrollmap/ScrollmapMarker.d.ts.map +1 -1
- package/dist/esm/components/VizScrollmap/VizScrollMap.d.ts.map +1 -1
- package/dist/esm/hooks/common/index.d.ts +1 -0
- package/dist/esm/hooks/common/index.d.ts.map +1 -1
- package/dist/esm/hooks/common/useHeatmapWidthByDevice.d.ts +2 -0
- package/dist/esm/hooks/common/useHeatmapWidthByDevice.d.ts.map +1 -0
- package/dist/esm/hooks/register/useRegisterConfig.d.ts.map +1 -1
- package/dist/esm/hooks/view-context/useHeatmapHover.d.ts +3 -27
- package/dist/esm/hooks/view-context/useHeatmapHover.d.ts.map +1 -1
- package/dist/esm/hooks/view-context/useHeatmapSetting.d.ts +7 -17
- package/dist/esm/hooks/view-context/useHeatmapSetting.d.ts.map +1 -1
- package/dist/esm/hooks/view-context/useHeatmapViz.d.ts +0 -17
- package/dist/esm/hooks/view-context/useHeatmapViz.d.ts.map +1 -1
- package/dist/esm/hooks/viz-elm/useHoveredElement.d.ts.map +1 -1
- package/dist/esm/hooks/viz-live/useVizLiveRender.d.ts.map +1 -1
- package/dist/esm/hooks/viz-render/useHeatmapRender.d.ts.map +1 -1
- package/dist/esm/hooks/viz-scale/useHeatmapScale.d.ts.map +1 -1
- package/dist/esm/index.js +158 -143
- package/dist/esm/index.mjs +158 -143
- package/dist/esm/stores/config.d.ts +0 -11
- package/dist/esm/stores/config.d.ts.map +1 -1
- package/dist/esm/stores/setting.d.ts +7 -1
- package/dist/esm/stores/setting.d.ts.map +1 -1
- package/dist/esm/stores/viz-hover.d.ts +1 -0
- package/dist/esm/stores/viz-hover.d.ts.map +1 -1
- package/dist/esm/types/heatmap.d.ts +5 -1
- package/dist/esm/types/heatmap.d.ts.map +1 -1
- package/dist/umd/components/Layout/Sidebar/PopoverSidebar.d.ts.map +1 -1
- package/dist/umd/components/VizDom/VizDomRenderer.d.ts.map +1 -1
- package/dist/umd/components/VizDom/WrapperVisual.d.ts.map +1 -1
- package/dist/umd/components/VizElement/ElementMissing.d.ts.map +1 -1
- package/dist/umd/components/VizElement/ElementOverlay.d.ts.map +1 -1
- package/dist/umd/components/VizElement/VizElements.d.ts.map +1 -1
- package/dist/umd/components/VizLive/VizLiveRenderer.d.ts.map +1 -1
- package/dist/umd/components/VizScrollmap/ScrollMapMinimap.d.ts.map +1 -1
- package/dist/umd/components/VizScrollmap/ScrollmapMarker.d.ts.map +1 -1
- package/dist/umd/components/VizScrollmap/VizScrollMap.d.ts.map +1 -1
- package/dist/umd/hooks/common/index.d.ts +1 -0
- package/dist/umd/hooks/common/index.d.ts.map +1 -1
- package/dist/umd/hooks/common/useHeatmapWidthByDevice.d.ts +2 -0
- package/dist/umd/hooks/common/useHeatmapWidthByDevice.d.ts.map +1 -0
- package/dist/umd/hooks/register/useRegisterConfig.d.ts.map +1 -1
- package/dist/umd/hooks/view-context/useHeatmapHover.d.ts +3 -27
- package/dist/umd/hooks/view-context/useHeatmapHover.d.ts.map +1 -1
- package/dist/umd/hooks/view-context/useHeatmapSetting.d.ts +7 -17
- package/dist/umd/hooks/view-context/useHeatmapSetting.d.ts.map +1 -1
- package/dist/umd/hooks/view-context/useHeatmapViz.d.ts +0 -17
- package/dist/umd/hooks/view-context/useHeatmapViz.d.ts.map +1 -1
- package/dist/umd/hooks/viz-elm/useHoveredElement.d.ts.map +1 -1
- package/dist/umd/hooks/viz-live/useVizLiveRender.d.ts.map +1 -1
- package/dist/umd/hooks/viz-render/useHeatmapRender.d.ts.map +1 -1
- package/dist/umd/hooks/viz-scale/useHeatmapScale.d.ts.map +1 -1
- package/dist/umd/index.js +2 -2
- package/dist/umd/stores/config.d.ts +0 -11
- package/dist/umd/stores/config.d.ts.map +1 -1
- package/dist/umd/stores/setting.d.ts +7 -1
- package/dist/umd/stores/setting.d.ts.map +1 -1
- package/dist/umd/stores/viz-hover.d.ts +1 -0
- package/dist/umd/stores/viz-hover.d.ts.map +1 -1
- package/dist/umd/types/heatmap.d.ts +5 -1
- package/dist/umd/types/heatmap.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/esm/index.js
CHANGED
|
@@ -149,32 +149,15 @@ function useDebounceCallback(callback, delay) {
|
|
|
149
149
|
}, [delay]);
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
MetricBar: null,
|
|
159
|
-
VizLoading: null,
|
|
160
|
-
TopBar: undefined,
|
|
161
|
-
ElementCallout: undefined,
|
|
162
|
-
},
|
|
163
|
-
registerControl: (key, control) => {
|
|
164
|
-
set({
|
|
165
|
-
controls: {
|
|
166
|
-
...get().controls,
|
|
167
|
-
[key]: control,
|
|
168
|
-
},
|
|
169
|
-
});
|
|
170
|
-
},
|
|
171
|
-
};
|
|
172
|
-
});
|
|
173
|
-
|
|
152
|
+
var IDeviceType;
|
|
153
|
+
(function (IDeviceType) {
|
|
154
|
+
IDeviceType["Desktop"] = "desktop";
|
|
155
|
+
IDeviceType["Mobile"] = "mobile";
|
|
156
|
+
IDeviceType["Tablet"] = "tablet";
|
|
157
|
+
})(IDeviceType || (IDeviceType = {}));
|
|
174
158
|
var IHeatmapType;
|
|
175
159
|
(function (IHeatmapType) {
|
|
176
160
|
IHeatmapType["Click"] = "click";
|
|
177
|
-
IHeatmapType["ClickArea"] = "click-area";
|
|
178
161
|
IHeatmapType["Scroll"] = "scroll";
|
|
179
162
|
})(IHeatmapType || (IHeatmapType = {}));
|
|
180
163
|
var IClickType;
|
|
@@ -207,24 +190,37 @@ var IScrollType;
|
|
|
207
190
|
IScrollType["Revenue"] = "revenue-scroll";
|
|
208
191
|
})(IScrollType || (IScrollType = {}));
|
|
209
192
|
|
|
193
|
+
const useHeatmapControlStore = create()((set, get) => {
|
|
194
|
+
return {
|
|
195
|
+
controls: {
|
|
196
|
+
Sidebar: undefined,
|
|
197
|
+
SidebarActivator: undefined,
|
|
198
|
+
Toolbar: null,
|
|
199
|
+
MetricBar: null,
|
|
200
|
+
VizLoading: null,
|
|
201
|
+
TopBar: undefined,
|
|
202
|
+
ElementCallout: undefined,
|
|
203
|
+
},
|
|
204
|
+
registerControl: (key, control) => {
|
|
205
|
+
set({
|
|
206
|
+
controls: {
|
|
207
|
+
...get().controls,
|
|
208
|
+
[key]: control,
|
|
209
|
+
},
|
|
210
|
+
});
|
|
211
|
+
},
|
|
212
|
+
};
|
|
213
|
+
});
|
|
214
|
+
|
|
210
215
|
const useHeatmapConfigStore = create()((set) => {
|
|
211
216
|
return {
|
|
212
217
|
mode: 'single',
|
|
213
|
-
width: 1440,
|
|
214
218
|
sidebarWidth: DEFAULT_SIDEBAR_WIDTH,
|
|
215
|
-
heatmapType: IHeatmapType.Click,
|
|
216
|
-
clickType: IClickType.Total,
|
|
217
219
|
clickMode: IClickMode.Default,
|
|
218
|
-
scrollType: IScrollType.Depth,
|
|
219
220
|
isRendering: true,
|
|
220
221
|
setMode: (mode) => set({ mode }),
|
|
221
222
|
resetMode: () => set({ mode: 'single' }),
|
|
222
|
-
setWidth: (width) => set({ width }),
|
|
223
223
|
setSidebarWidth: (sidebarWidth) => set({ sidebarWidth }),
|
|
224
|
-
setHeatmapType: (heatmapType) => set({ heatmapType }),
|
|
225
|
-
setClickType: (clickType) => set({ clickType }),
|
|
226
|
-
setClickMode: (clickMode) => set({ clickMode }),
|
|
227
|
-
setScrollType: (scrollType) => set({ scrollType }),
|
|
228
224
|
setIsRendering: (isRendering) => set({ isRendering }),
|
|
229
225
|
};
|
|
230
226
|
});
|
|
@@ -329,8 +325,16 @@ const useHeatmapDataStore = create()(subscribeWithSelector((set) => {
|
|
|
329
325
|
const useHeatmapSettingStore = create()(subscribeWithSelector((set) => {
|
|
330
326
|
return {
|
|
331
327
|
rankedBy: new Map([[DEFAULT_VIEW_ID, IClickRankType.MostClicks]]),
|
|
328
|
+
deviceType: new Map([[DEFAULT_VIEW_ID, IDeviceType.Desktop]]),
|
|
332
329
|
clickType: new Map([[DEFAULT_VIEW_ID, IClickType.Total]]),
|
|
330
|
+
clickMode: new Map([[DEFAULT_VIEW_ID, IClickMode.Default]]),
|
|
333
331
|
scrollType: new Map([[DEFAULT_VIEW_ID, IScrollType.Depth]]),
|
|
332
|
+
heatmapType: new Map([[DEFAULT_VIEW_ID, IHeatmapType.Click]]),
|
|
333
|
+
setDeviceType: (deviceType, viewId = DEFAULT_VIEW_ID) => set((prev) => {
|
|
334
|
+
const newDeviceType = new Map(prev.deviceType);
|
|
335
|
+
newDeviceType.set(viewId, deviceType);
|
|
336
|
+
return { deviceType: newDeviceType };
|
|
337
|
+
}),
|
|
334
338
|
setRankedBy: (rankedBy, viewId = DEFAULT_VIEW_ID) => set((prev) => {
|
|
335
339
|
const newRankedBy = new Map(prev.rankedBy);
|
|
336
340
|
newRankedBy.set(viewId, rankedBy);
|
|
@@ -341,41 +345,72 @@ const useHeatmapSettingStore = create()(subscribeWithSelector((set) => {
|
|
|
341
345
|
newClickType.set(viewId, clickType);
|
|
342
346
|
return { clickType: newClickType };
|
|
343
347
|
}),
|
|
348
|
+
setClickMode: (clickMode, viewId = DEFAULT_VIEW_ID) => set((prev) => {
|
|
349
|
+
const newClickMode = new Map(prev.clickMode);
|
|
350
|
+
newClickMode.set(viewId, clickMode);
|
|
351
|
+
return { clickMode: newClickMode };
|
|
352
|
+
}),
|
|
344
353
|
setScrollType: (scrollType, viewId = DEFAULT_VIEW_ID) => set((prev) => {
|
|
345
354
|
const newScrollType = new Map(prev.scrollType);
|
|
346
355
|
newScrollType.set(viewId, scrollType);
|
|
347
356
|
return { scrollType: newScrollType };
|
|
348
357
|
}),
|
|
358
|
+
setHeatmapType: (heatmapType, viewId = DEFAULT_VIEW_ID) => set((prev) => {
|
|
359
|
+
const newHeatmapType = new Map(prev.heatmapType);
|
|
360
|
+
newHeatmapType.set(viewId, heatmapType);
|
|
361
|
+
return { heatmapType: newHeatmapType };
|
|
362
|
+
}),
|
|
349
363
|
copyView: (fromViewId, toViewId) => set((prev) => {
|
|
350
364
|
const newRankedBy = new Map(prev.rankedBy);
|
|
365
|
+
const newDeviceType = new Map(prev.deviceType);
|
|
351
366
|
const newClickType = new Map(prev.clickType);
|
|
367
|
+
const newClickMode = new Map(prev.clickMode);
|
|
352
368
|
const newScrollType = new Map(prev.scrollType);
|
|
369
|
+
const newHeatmapType = new Map(prev.heatmapType);
|
|
353
370
|
newRankedBy.set(toViewId, prev.rankedBy.get(fromViewId));
|
|
371
|
+
newDeviceType.set(toViewId, prev.deviceType.get(fromViewId));
|
|
354
372
|
newClickType.set(toViewId, prev.clickType.get(fromViewId));
|
|
373
|
+
newClickMode.set(toViewId, prev.clickMode.get(fromViewId));
|
|
355
374
|
newScrollType.set(toViewId, prev.scrollType.get(fromViewId));
|
|
375
|
+
newHeatmapType.set(toViewId, prev.heatmapType.get(fromViewId));
|
|
356
376
|
return {
|
|
357
377
|
rankedBy: newRankedBy,
|
|
378
|
+
deviceType: newDeviceType,
|
|
358
379
|
clickType: newClickType,
|
|
380
|
+
clickMode: newClickMode,
|
|
359
381
|
scrollType: newScrollType,
|
|
382
|
+
heatmapType: newHeatmapType,
|
|
360
383
|
};
|
|
361
384
|
}),
|
|
362
385
|
clearView: (viewId) => set((prev) => {
|
|
363
386
|
const newRankedBy = new Map(prev.rankedBy);
|
|
387
|
+
const newDeviceType = new Map(prev.deviceType);
|
|
364
388
|
const newClickType = new Map(prev.clickType);
|
|
389
|
+
const newClickMode = new Map(prev.clickMode);
|
|
365
390
|
const newScrollType = new Map(prev.scrollType);
|
|
391
|
+
const newHeatmapType = new Map(prev.heatmapType);
|
|
366
392
|
newRankedBy.delete(viewId);
|
|
393
|
+
newDeviceType.delete(viewId);
|
|
367
394
|
newClickType.delete(viewId);
|
|
395
|
+
newClickMode.delete(viewId);
|
|
368
396
|
newScrollType.delete(viewId);
|
|
397
|
+
newHeatmapType.delete(viewId);
|
|
369
398
|
return {
|
|
370
399
|
rankedBy: newRankedBy,
|
|
400
|
+
deviceType: newDeviceType,
|
|
371
401
|
clickType: newClickType,
|
|
402
|
+
clickMode: newClickMode,
|
|
372
403
|
scrollType: newScrollType,
|
|
404
|
+
heatmapType: newHeatmapType,
|
|
373
405
|
};
|
|
374
406
|
}),
|
|
375
407
|
resetAll: () => set({
|
|
376
408
|
rankedBy: new Map([[DEFAULT_VIEW_ID, IClickRankType.MostClicks]]),
|
|
409
|
+
deviceType: new Map([[DEFAULT_VIEW_ID, IDeviceType.Desktop]]),
|
|
377
410
|
clickType: new Map([[DEFAULT_VIEW_ID, IClickType.Total]]),
|
|
411
|
+
clickMode: new Map([[DEFAULT_VIEW_ID, IClickMode.Default]]),
|
|
378
412
|
scrollType: new Map([[DEFAULT_VIEW_ID, IScrollType.Depth]]),
|
|
413
|
+
heatmapType: new Map([[DEFAULT_VIEW_ID, IHeatmapType.Click]]),
|
|
379
414
|
}),
|
|
380
415
|
};
|
|
381
416
|
}));
|
|
@@ -651,7 +686,7 @@ const useHeatmapClickStore = create()(subscribeWithSelector((set) => {
|
|
|
651
686
|
};
|
|
652
687
|
}));
|
|
653
688
|
|
|
654
|
-
const useHeatmapHoverStore = create()(subscribeWithSelector((set) => {
|
|
689
|
+
const useHeatmapHoverStore = create()(subscribeWithSelector((set, get) => {
|
|
655
690
|
return {
|
|
656
691
|
hoveredElement: new Map([[DEFAULT_VIEW_ID, null]]),
|
|
657
692
|
setHoveredElement: (hoveredElement, viewId = DEFAULT_VIEW_ID) => set((prev) => {
|
|
@@ -659,6 +694,7 @@ const useHeatmapHoverStore = create()(subscribeWithSelector((set) => {
|
|
|
659
694
|
newHoveredElement.set(viewId, hoveredElement);
|
|
660
695
|
return { hoveredElement: newHoveredElement };
|
|
661
696
|
}),
|
|
697
|
+
isHoveredElement: (hash, viewId = DEFAULT_VIEW_ID) => get().hoveredElement.get(viewId)?.hash === hash,
|
|
662
698
|
copyView: (fromViewId, toViewId) => set((prev) => {
|
|
663
699
|
const newHoveredElement = new Map(prev.hoveredElement);
|
|
664
700
|
newHoveredElement.set(toViewId, prev.hoveredElement.get(fromViewId) ?? null);
|
|
@@ -925,39 +961,6 @@ const useHeatmapVizRectStore = create()(subscribeWithSelector((set) => {
|
|
|
925
961
|
};
|
|
926
962
|
}));
|
|
927
963
|
|
|
928
|
-
const useRegisterConfig = () => {
|
|
929
|
-
const mode = useHeatmapConfigStore((state) => state.mode);
|
|
930
|
-
const width = useHeatmapConfigStore((state) => state.width);
|
|
931
|
-
const sidebarWidth = useHeatmapConfigStore((state) => state.sidebarWidth);
|
|
932
|
-
// const heatmapType = useHeatmapConfigStore((state) => state.heatmapType);
|
|
933
|
-
// const clickMode = useHeatmapConfigStore((state) => state.clickMode);
|
|
934
|
-
const setIsRendering = useHeatmapConfigStore((state) => state.setIsRendering);
|
|
935
|
-
useEffect(() => {
|
|
936
|
-
setIsRendering(true);
|
|
937
|
-
setTimeout(() => {
|
|
938
|
-
setIsRendering(false);
|
|
939
|
-
}, 1000);
|
|
940
|
-
}, [mode, width, sidebarWidth]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
941
|
-
};
|
|
942
|
-
|
|
943
|
-
const useRegisterControl = (control) => {
|
|
944
|
-
const registerControl = useHeatmapControlStore((state) => state.registerControl);
|
|
945
|
-
const isRegistered = useRef(false);
|
|
946
|
-
useEffect(() => {
|
|
947
|
-
if (isRegistered.current)
|
|
948
|
-
return;
|
|
949
|
-
registerControl('Sidebar', control.Sidebar);
|
|
950
|
-
registerControl('SidebarActivator', control.SidebarActivator);
|
|
951
|
-
registerControl('TopBar', control.TopBar);
|
|
952
|
-
registerControl('Toolbar', control.Toolbar);
|
|
953
|
-
registerControl('MetricBar', control.MetricBar);
|
|
954
|
-
registerControl('VizLoading', control.VizLoading);
|
|
955
|
-
registerControl('ElementCallout', control.ElementCallout);
|
|
956
|
-
registerControl('ScrollZoneTooltip', control.ScrollZoneTooltip);
|
|
957
|
-
isRegistered.current = true;
|
|
958
|
-
}, []); // eslint-disable-line react-hooks/exhaustive-deps
|
|
959
|
-
};
|
|
960
|
-
|
|
961
964
|
const ViewIdContext = createContext(undefined);
|
|
962
965
|
const useViewIdContext = () => {
|
|
963
966
|
const viewId = useContext(ViewIdContext);
|
|
@@ -1153,23 +1156,6 @@ const useHeatmapData = createViewContextHook({
|
|
|
1153
1156
|
}),
|
|
1154
1157
|
});
|
|
1155
1158
|
|
|
1156
|
-
// ===========================
|
|
1157
|
-
// Hook
|
|
1158
|
-
// ===========================
|
|
1159
|
-
/**
|
|
1160
|
-
* Hook to access heatmap hover state and actions with optional selector
|
|
1161
|
-
* Separated from useHeatmapClick to prevent unnecessary re-renders
|
|
1162
|
-
*
|
|
1163
|
-
* @example
|
|
1164
|
-
* ```tsx
|
|
1165
|
-
* // Get everything
|
|
1166
|
-
* const { hoveredElement, setHoveredElement } = useHeatmapHover();
|
|
1167
|
-
*
|
|
1168
|
-
* // Get only what you need (no unnecessary re-renders)
|
|
1169
|
-
* const hoveredElement = useHeatmapHover(s => s.hoveredElement);
|
|
1170
|
-
* const setHoveredElement = useHeatmapHover(s => s.setHoveredElement);
|
|
1171
|
-
* ```
|
|
1172
|
-
*/
|
|
1173
1159
|
const useHeatmapHover = createViewContextHook({
|
|
1174
1160
|
useStore: useHeatmapHoverStore,
|
|
1175
1161
|
getState: (store, viewId) => ({
|
|
@@ -1177,6 +1163,7 @@ const useHeatmapHover = createViewContextHook({
|
|
|
1177
1163
|
}),
|
|
1178
1164
|
getActions: (store, viewId) => ({
|
|
1179
1165
|
setHoveredElement: (el) => store.setHoveredElement(el, viewId),
|
|
1166
|
+
isHoveredElement: (hash) => store.isHoveredElement(hash, viewId),
|
|
1180
1167
|
}),
|
|
1181
1168
|
});
|
|
1182
1169
|
|
|
@@ -1210,56 +1197,27 @@ const useHeatmapScroll = createViewContextHook({
|
|
|
1210
1197
|
}),
|
|
1211
1198
|
});
|
|
1212
1199
|
|
|
1213
|
-
/**
|
|
1214
|
-
* Hook to access heatmap setting state and actions with optional selector
|
|
1215
|
-
*
|
|
1216
|
-
* @example
|
|
1217
|
-
* ```tsx
|
|
1218
|
-
* // Get everything
|
|
1219
|
-
* const { rankedBy, clickType, setRankedBy } = useHeatmapSetting();
|
|
1220
|
-
*
|
|
1221
|
-
* // Get only what you need (no unnecessary re-renders)
|
|
1222
|
-
* const rankedBy = useHeatmapSetting(s => s.rankedBy);
|
|
1223
|
-
* const { setRankedBy, setClickType } = useHeatmapSetting(s => ({
|
|
1224
|
-
* setRankedBy: s.setRankedBy,
|
|
1225
|
-
* setClickType: s.setClickType,
|
|
1226
|
-
* }));
|
|
1227
|
-
* ```
|
|
1228
|
-
*/
|
|
1229
1200
|
const useHeatmapSetting = createViewContextHook({
|
|
1230
1201
|
useStore: useHeatmapSettingStore,
|
|
1231
1202
|
getState: (store, viewId) => ({
|
|
1232
1203
|
rankedBy: store.rankedBy.get(viewId),
|
|
1204
|
+
deviceType: store.deviceType.get(viewId),
|
|
1233
1205
|
clickType: store.clickType.get(viewId),
|
|
1206
|
+
clickMode: store.clickMode.get(viewId),
|
|
1234
1207
|
scrollType: store.scrollType.get(viewId),
|
|
1208
|
+
heatmapType: store.heatmapType.get(viewId),
|
|
1235
1209
|
}),
|
|
1236
1210
|
getActions: (store, viewId) => ({
|
|
1237
1211
|
setRankedBy: (rankedBy) => store.setRankedBy(rankedBy, viewId),
|
|
1212
|
+
setDeviceType: (deviceType) => store.setDeviceType(deviceType, viewId),
|
|
1238
1213
|
setClickType: (clickType) => store.setClickType(clickType, viewId),
|
|
1214
|
+
setClickMode: (clickMode) => store.setClickMode(clickMode, viewId),
|
|
1239
1215
|
setScrollType: (scrollType) => store.setScrollType(scrollType, viewId),
|
|
1216
|
+
setHeatmapType: (heatmapType) => store.setHeatmapType(heatmapType, viewId),
|
|
1240
1217
|
clearView: (viewId) => store.clearView(viewId),
|
|
1241
1218
|
}),
|
|
1242
1219
|
});
|
|
1243
1220
|
|
|
1244
|
-
// ===========================
|
|
1245
|
-
// Hook
|
|
1246
|
-
// ===========================
|
|
1247
|
-
/**
|
|
1248
|
-
* Hook to access heatmap viz state and actions (zoom, scale, render state)
|
|
1249
|
-
*
|
|
1250
|
-
* @example
|
|
1251
|
-
* ```tsx
|
|
1252
|
-
* // Get everything
|
|
1253
|
-
* const { zoomRatio, setZoomRatio, isRenderViz } = useHeatmapViz();
|
|
1254
|
-
*
|
|
1255
|
-
* // Get only what you need (no unnecessary re-renders)
|
|
1256
|
-
* const zoomRatio = useHeatmapViz(s => s.zoomRatio);
|
|
1257
|
-
* const { setZoomRatio, setScale } = useHeatmapViz(s => ({
|
|
1258
|
-
* setZoomRatio: s.setZoomRatio,
|
|
1259
|
-
* setScale: s.setScale,
|
|
1260
|
-
* }));
|
|
1261
|
-
* ```
|
|
1262
|
-
*/
|
|
1263
1221
|
const useHeatmapViz = createViewContextHook({
|
|
1264
1222
|
useStore: useHeatmapVizStore,
|
|
1265
1223
|
getState: (store, viewId) => ({
|
|
@@ -1386,6 +1344,57 @@ const useHeatmapCopyView = () => {
|
|
|
1386
1344
|
};
|
|
1387
1345
|
};
|
|
1388
1346
|
|
|
1347
|
+
const useHeatmapWidthByDevice = () => {
|
|
1348
|
+
const deviceType = useHeatmapSetting((state) => state.deviceType);
|
|
1349
|
+
const width = useMemo(() => calcWidthByDeviceType(deviceType), [deviceType]);
|
|
1350
|
+
return width;
|
|
1351
|
+
function calcWidthByDeviceType(deviceType) {
|
|
1352
|
+
if (!deviceType)
|
|
1353
|
+
return 1440;
|
|
1354
|
+
switch (deviceType) {
|
|
1355
|
+
case IDeviceType.Desktop:
|
|
1356
|
+
return 1440;
|
|
1357
|
+
case IDeviceType.Tablet:
|
|
1358
|
+
return 768;
|
|
1359
|
+
case IDeviceType.Mobile:
|
|
1360
|
+
return 375;
|
|
1361
|
+
}
|
|
1362
|
+
}
|
|
1363
|
+
};
|
|
1364
|
+
|
|
1365
|
+
const useRegisterConfig = () => {
|
|
1366
|
+
const mode = useHeatmapConfigStore((state) => state.mode);
|
|
1367
|
+
const deviceType = useHeatmapSetting((state) => state.deviceType);
|
|
1368
|
+
const sidebarWidth = useHeatmapConfigStore((state) => state.sidebarWidth);
|
|
1369
|
+
// const heatmapType = useHeatmapConfigStore((state) => state.heatmapType);
|
|
1370
|
+
// const clickMode = useHeatmapConfigStore((state) => state.clickMode);
|
|
1371
|
+
const setIsRendering = useHeatmapConfigStore((state) => state.setIsRendering);
|
|
1372
|
+
useEffect(() => {
|
|
1373
|
+
setIsRendering(true);
|
|
1374
|
+
setTimeout(() => {
|
|
1375
|
+
setIsRendering(false);
|
|
1376
|
+
}, 1000);
|
|
1377
|
+
}, [mode, deviceType, sidebarWidth]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
1378
|
+
};
|
|
1379
|
+
|
|
1380
|
+
const useRegisterControl = (control) => {
|
|
1381
|
+
const registerControl = useHeatmapControlStore((state) => state.registerControl);
|
|
1382
|
+
const isRegistered = useRef(false);
|
|
1383
|
+
useEffect(() => {
|
|
1384
|
+
if (isRegistered.current)
|
|
1385
|
+
return;
|
|
1386
|
+
registerControl('Sidebar', control.Sidebar);
|
|
1387
|
+
registerControl('SidebarActivator', control.SidebarActivator);
|
|
1388
|
+
registerControl('TopBar', control.TopBar);
|
|
1389
|
+
registerControl('Toolbar', control.Toolbar);
|
|
1390
|
+
registerControl('MetricBar', control.MetricBar);
|
|
1391
|
+
registerControl('VizLoading', control.VizLoading);
|
|
1392
|
+
registerControl('ElementCallout', control.ElementCallout);
|
|
1393
|
+
registerControl('ScrollZoneTooltip', control.ScrollZoneTooltip);
|
|
1394
|
+
isRegistered.current = true;
|
|
1395
|
+
}, []); // eslint-disable-line react-hooks/exhaustive-deps
|
|
1396
|
+
};
|
|
1397
|
+
|
|
1389
1398
|
const useRegisterData = (data, dataInfo) => {
|
|
1390
1399
|
const setIsRendering = useHeatmapConfigStore((state) => state.setIsRendering);
|
|
1391
1400
|
const setData = useHeatmapData((s) => s.setData);
|
|
@@ -4449,8 +4458,8 @@ const useScrollmap = () => {
|
|
|
4449
4458
|
};
|
|
4450
4459
|
|
|
4451
4460
|
const useHeatmapCanvas = () => {
|
|
4452
|
-
const heatmapType =
|
|
4453
|
-
const clickMode =
|
|
4461
|
+
const heatmapType = useHeatmapSetting((state) => state.heatmapType);
|
|
4462
|
+
const clickMode = useHeatmapSetting((state) => state.clickMode);
|
|
4454
4463
|
const { start: startClickmap } = useClickmap();
|
|
4455
4464
|
const { start: startAreaClickmap } = useAreaClickmap();
|
|
4456
4465
|
const { start: startScrollmap } = useScrollmap();
|
|
@@ -4606,7 +4615,7 @@ const useHeatmapEffects = ({ isVisible }) => {
|
|
|
4606
4615
|
};
|
|
4607
4616
|
|
|
4608
4617
|
const useHeatmapElementPosition = ({ iframeRef, wrapperRef, visualizer }) => {
|
|
4609
|
-
const heatmapWidth =
|
|
4618
|
+
const heatmapWidth = useHeatmapWidthByDevice();
|
|
4610
4619
|
const iframeHeight = useHeatmapVizRect((s) => s.iframeHeight);
|
|
4611
4620
|
const widthScale = useHeatmapViz((s) => s.widthScale);
|
|
4612
4621
|
const getRect = useCallback((element) => {
|
|
@@ -4737,6 +4746,7 @@ function getBoundingBox(element) {
|
|
|
4737
4746
|
|
|
4738
4747
|
const useHoveredElement = ({ iframeRef, getRect }) => {
|
|
4739
4748
|
const setHoveredElement = useHeatmapHover((s) => s.setHoveredElement);
|
|
4749
|
+
const isHoveredElement = useHeatmapHover((s) => s.isHoveredElement);
|
|
4740
4750
|
const setSelectedElement = useHeatmapClick((s) => s.setSelectedElement);
|
|
4741
4751
|
const widthScale = useHeatmapViz((s) => s.widthScale);
|
|
4742
4752
|
const dataInfo = useHeatmapData((s) => s.dataInfo);
|
|
@@ -4776,6 +4786,8 @@ const useHoveredElement = ({ iframeRef, getRect }) => {
|
|
|
4776
4786
|
reset();
|
|
4777
4787
|
return;
|
|
4778
4788
|
}
|
|
4789
|
+
if (isHoveredElement(hash))
|
|
4790
|
+
return;
|
|
4779
4791
|
const selector = dataInfo?.clickMapMetrics?.[hash];
|
|
4780
4792
|
const rect = getRect({ hash, selector });
|
|
4781
4793
|
const elementInfo = buildElementInfo(hash, rect, dataInfo);
|
|
@@ -4785,7 +4797,7 @@ const useHoveredElement = ({ iframeRef, getRect }) => {
|
|
|
4785
4797
|
}
|
|
4786
4798
|
const mousePosition = getElementMousePosition(event, widthScale);
|
|
4787
4799
|
setHoveredElement({ ...elementInfo, mousePosition });
|
|
4788
|
-
}, [dataInfo, getRect, reset, widthScale, getHashFromEvent, setHoveredElement]);
|
|
4800
|
+
}, [dataInfo, getRect, reset, widthScale, getHashFromEvent, setHoveredElement, isHoveredElement]);
|
|
4789
4801
|
const handleMouseMove = useMemo(() => throttleRAF(onHandleMouseMove), [onHandleMouseMove]);
|
|
4790
4802
|
const handleClick = useCallback((event, hash) => {
|
|
4791
4803
|
if (!hash)
|
|
@@ -6297,7 +6309,7 @@ function useVizLiveRender() {
|
|
|
6297
6309
|
const wrapperHeight = useHeatmapVizRect((s) => s.wrapperHeight);
|
|
6298
6310
|
const wrapperWidth = useHeatmapVizRect((s) => s.wrapperWidth);
|
|
6299
6311
|
const setIsRenderViz = useHeatmapViz((s) => s.setIsRenderViz);
|
|
6300
|
-
const contentWidth =
|
|
6312
|
+
const contentWidth = useHeatmapWidthByDevice();
|
|
6301
6313
|
const htmlContent = useHeatmapLiveStore((state) => state.htmlContent);
|
|
6302
6314
|
const targetUrl = useHeatmapLiveStore((state) => state.targetUrl);
|
|
6303
6315
|
const renderMode = useHeatmapLiveStore((state) => state.renderMode);
|
|
@@ -6391,6 +6403,7 @@ function initIframeHelper$1(iframe, rect, onSuccess) {
|
|
|
6391
6403
|
}
|
|
6392
6404
|
|
|
6393
6405
|
const useHeatmapRender = () => {
|
|
6406
|
+
const viewId = useViewIdContext();
|
|
6394
6407
|
const data = useHeatmapData((s) => s.data);
|
|
6395
6408
|
const vizRef = useHeatmapVizRect((s) => s.vizRef);
|
|
6396
6409
|
const setVizRef = useHeatmapVizRect((s) => s.setVizRef);
|
|
@@ -6409,7 +6422,7 @@ const useHeatmapRender = () => {
|
|
|
6409
6422
|
const iframe = iframeRef.current;
|
|
6410
6423
|
if (!iframe?.contentWindow)
|
|
6411
6424
|
return;
|
|
6412
|
-
await visualizer.html(payloads, iframe.contentWindow,
|
|
6425
|
+
await visualizer.html(payloads, iframe.contentWindow, viewId);
|
|
6413
6426
|
initIframeHelper(iframe, payloads, (height) => {
|
|
6414
6427
|
height && setIframeHeight(height);
|
|
6415
6428
|
setIsRenderViz(true);
|
|
@@ -6619,7 +6632,7 @@ const useContainerDimensions = (props) => {
|
|
|
6619
6632
|
};
|
|
6620
6633
|
|
|
6621
6634
|
const useContentDimensions = ({ iframeRef }) => {
|
|
6622
|
-
const contentWidth =
|
|
6635
|
+
const contentWidth = useHeatmapWidthByDevice();
|
|
6623
6636
|
useEffect(() => {
|
|
6624
6637
|
if (!contentWidth)
|
|
6625
6638
|
return;
|
|
@@ -6858,7 +6871,7 @@ const useHeatmapScale = (props) => {
|
|
|
6858
6871
|
};
|
|
6859
6872
|
const useIframeHeight = (props) => {
|
|
6860
6873
|
const { iframeRef } = props;
|
|
6861
|
-
const iframeWidth =
|
|
6874
|
+
const iframeWidth = useHeatmapWidthByDevice();
|
|
6862
6875
|
const wrapperHeight = useHeatmapVizRect((s) => s.wrapperHeight);
|
|
6863
6876
|
const setIframeHeight = useHeatmapVizRect((s) => s.setIframeHeight);
|
|
6864
6877
|
const isRenderViz = useHeatmapViz((s) => s.isRenderViz);
|
|
@@ -7188,14 +7201,15 @@ const PopoverSidebar = () => {
|
|
|
7188
7201
|
return null;
|
|
7189
7202
|
if (!CompSidebar || !CompSidebarActivator)
|
|
7190
7203
|
return null;
|
|
7191
|
-
return (jsxs("div", { children: [!isPopoverOpen && (jsx("div", { style: { ...stylePopover, width: 'auto', height: 'auto' }, children: jsx(CompSidebarActivator, { onClick: () => setIsPopoverOpen(true) }) })),
|
|
7204
|
+
return (jsxs("div", { children: [!isPopoverOpen && (jsx("div", { style: { ...stylePopover, width: 'auto', height: 'auto' }, children: jsx(CompSidebarActivator, { onClick: () => setIsPopoverOpen(true) }) })), jsx(Fragment, { children: jsx("div", { className: "gx-hm-sidebar-popover", style: {
|
|
7192
7205
|
...stylePopover,
|
|
7193
7206
|
backgroundColor: '#fff',
|
|
7194
7207
|
borderRight: `${HEATMAP_CONFIG.borderWidth}px solid ${HEATMAP_CONFIG.borderColor}`,
|
|
7195
7208
|
borderRadius: '8px',
|
|
7196
7209
|
boxShadow: '4px 0 12px rgba(0, 0, 0, 0.15)',
|
|
7197
7210
|
overflow: 'auto',
|
|
7198
|
-
|
|
7211
|
+
display: isPopoverOpen ? 'block' : 'none',
|
|
7212
|
+
}, children: jsx(CompSidebar, { closeAction: { onClick: () => setIsPopoverOpen(false) } }) }) })] }));
|
|
7199
7213
|
};
|
|
7200
7214
|
|
|
7201
7215
|
const ContentToolbar = () => {
|
|
@@ -8057,7 +8071,7 @@ const useAnchorPosition = (calloutRef, props) => {
|
|
|
8057
8071
|
const ElementMissing = ({ show = true, visualRef }) => {
|
|
8058
8072
|
const widthScale = useHeatmapViz((s) => s.widthScale);
|
|
8059
8073
|
const missingElementRef = useRef(null);
|
|
8060
|
-
const wrapperWidth =
|
|
8074
|
+
const wrapperWidth = useHeatmapWidthByDevice();
|
|
8061
8075
|
const [scrollPosition, setScrollPosition] = useState({ scrollTop: 0, scrollLeft: 0 });
|
|
8062
8076
|
useEffect(() => {
|
|
8063
8077
|
const container = visualRef.current;
|
|
@@ -8208,7 +8222,7 @@ const ElementOverlayComponent = (props) => {
|
|
|
8208
8222
|
const { type, element, onClick, elementId, hideOutline } = props;
|
|
8209
8223
|
const widthScale = useHeatmapViz((s) => s.widthScale);
|
|
8210
8224
|
const viewportHeight = useHeatmapVizRect((s) => s.iframeHeight);
|
|
8211
|
-
const viewportWidth =
|
|
8225
|
+
const viewportWidth = useHeatmapWidthByDevice();
|
|
8212
8226
|
const overlayStyle = useMemo(() => {
|
|
8213
8227
|
const isInvalid = !element || (element.width === 0 && element.height === 0);
|
|
8214
8228
|
if (isInvalid)
|
|
@@ -8290,7 +8304,7 @@ const HeatmapElements = (props) => {
|
|
|
8290
8304
|
};
|
|
8291
8305
|
|
|
8292
8306
|
const VizElements = ({ iframeRef, visualRef, wrapperRef }) => {
|
|
8293
|
-
const contentWidth =
|
|
8307
|
+
const contentWidth = useHeatmapWidthByDevice();
|
|
8294
8308
|
const dataInfo = useHeatmapData((s) => s.dataInfo);
|
|
8295
8309
|
const vizRef = useHeatmapVizRect((s) => s.vizRef);
|
|
8296
8310
|
const visualizer = {
|
|
@@ -8313,8 +8327,8 @@ const VizElements = ({ iframeRef, visualRef, wrapperRef }) => {
|
|
|
8313
8327
|
};
|
|
8314
8328
|
|
|
8315
8329
|
const VizClickmap = ({ iframeRef, visualRef, wrapperRef }) => {
|
|
8316
|
-
const clickMode =
|
|
8317
|
-
const heatmapType =
|
|
8330
|
+
const clickMode = useHeatmapSetting((state) => state.clickMode);
|
|
8331
|
+
const heatmapType = useHeatmapSetting((state) => state.heatmapType);
|
|
8318
8332
|
const isClickType = heatmapType === IHeatmapType.Click;
|
|
8319
8333
|
if (!isClickType)
|
|
8320
8334
|
return null;
|
|
@@ -8329,9 +8343,9 @@ const VizClickmap = ({ iframeRef, visualRef, wrapperRef }) => {
|
|
|
8329
8343
|
};
|
|
8330
8344
|
|
|
8331
8345
|
const ScrollMapMinimap = ({ zones, maxUsers }) => {
|
|
8332
|
-
const scrollType =
|
|
8346
|
+
const scrollType = useHeatmapSetting((s) => s.scrollType);
|
|
8333
8347
|
const showMinimap = useHeatmapScroll((s) => s.showMinimap);
|
|
8334
|
-
const isScrollType = [IScrollType.Attention].includes(scrollType);
|
|
8348
|
+
const isScrollType = [IScrollType.Attention].includes(scrollType ?? IScrollType.Depth);
|
|
8335
8349
|
if (!showMinimap || !isScrollType)
|
|
8336
8350
|
return null;
|
|
8337
8351
|
return (jsx("div", { style: {
|
|
@@ -8480,7 +8494,7 @@ const AverageFoldLine = ({ iframeRef, wrapperRef }) => {
|
|
|
8480
8494
|
};
|
|
8481
8495
|
|
|
8482
8496
|
const ScrollmapMarker = ({ iframeRef, wrapperRef }) => {
|
|
8483
|
-
const scrollType =
|
|
8497
|
+
const scrollType = useHeatmapSetting((s) => s.scrollType);
|
|
8484
8498
|
const { scrollmap } = useHeatmapData();
|
|
8485
8499
|
const { getZonePosition } = useZonePositions();
|
|
8486
8500
|
if (!scrollmap || scrollmap.length === 0)
|
|
@@ -8556,10 +8570,10 @@ const ScrollmapMarker = ({ iframeRef, wrapperRef }) => {
|
|
|
8556
8570
|
|
|
8557
8571
|
const SCROLL_TYPES = [IHeatmapType.Scroll];
|
|
8558
8572
|
const VizScrollMap = ({ iframeRef, wrapperRef }) => {
|
|
8559
|
-
const heatmapType =
|
|
8573
|
+
const heatmapType = useHeatmapSetting((s) => s.heatmapType);
|
|
8560
8574
|
const iframeHeight = useHeatmapVizRect((s) => s.iframeHeight);
|
|
8561
8575
|
// useRenderCount('VizScrollMap');
|
|
8562
|
-
const isHeatmapScroll = SCROLL_TYPES.includes(heatmapType);
|
|
8576
|
+
const isHeatmapScroll = SCROLL_TYPES.includes(heatmapType ?? IHeatmapType.Click);
|
|
8563
8577
|
if (!iframeHeight || !isHeatmapScroll)
|
|
8564
8578
|
return null;
|
|
8565
8579
|
return (jsxs("div", { style: {
|
|
@@ -8574,8 +8588,8 @@ const VizScrollMap = ({ iframeRef, wrapperRef }) => {
|
|
|
8574
8588
|
};
|
|
8575
8589
|
|
|
8576
8590
|
const WrapperVisual = ({ children, visualRef, wrapperRef, scaledHeight, iframeHeight, onScroll, }) => {
|
|
8577
|
-
const contentWidth = useHeatmapConfigStore((state) => state.width);
|
|
8578
8591
|
const widthScale = useHeatmapViz((s) => s.widthScale);
|
|
8592
|
+
const contentWidth = useHeatmapWidthByDevice();
|
|
8579
8593
|
const contentHeight = calcContentHeight();
|
|
8580
8594
|
return (jsx("div", { ref: visualRef, className: "gx-hm-visual", onScroll: onScroll, style: {
|
|
8581
8595
|
overflow: 'hidden scroll',
|
|
@@ -8609,7 +8623,8 @@ const WrapperVisual = ({ children, visualRef, wrapperRef, scaledHeight, iframeHe
|
|
|
8609
8623
|
};
|
|
8610
8624
|
|
|
8611
8625
|
const VizDomRenderer = ({ mode = 'heatmap' }) => {
|
|
8612
|
-
const
|
|
8626
|
+
const viewId = useViewIdContext();
|
|
8627
|
+
const contentWidth = useHeatmapWidthByDevice();
|
|
8613
8628
|
const iframeHeight = useHeatmapVizRect((s) => s.iframeHeight);
|
|
8614
8629
|
const wrapperHeight = useHeatmapVizRect((s) => s.wrapperHeight);
|
|
8615
8630
|
const wrapperRef = useRef(null);
|
|
@@ -8622,7 +8637,7 @@ const VizDomRenderer = ({ mode = 'heatmap' }) => {
|
|
|
8622
8637
|
const scrollTop = e.currentTarget.scrollTop;
|
|
8623
8638
|
handleScroll(scrollTop);
|
|
8624
8639
|
};
|
|
8625
|
-
return (jsxs(WrapperVisual, { visualRef: visualRef, wrapperRef: wrapperRef, scaledHeight: scaledHeight, onScroll: onScroll, iframeHeight: iframeHeight, children: [jsx(VizClickmap, { iframeRef: iframeRef, visualRef: visualRef, wrapperRef: wrapperRef }), jsx("iframe", { ...HEATMAP_IFRAME, ref: iframeRef, width: contentWidth, height: wrapperHeight }), jsx(VizScrollMap, { iframeRef: iframeRef, wrapperRef: visualRef })] }));
|
|
8640
|
+
return (jsxs(WrapperVisual, { visualRef: visualRef, wrapperRef: wrapperRef, scaledHeight: scaledHeight, onScroll: onScroll, iframeHeight: iframeHeight, children: [jsx(VizClickmap, { iframeRef: iframeRef, visualRef: visualRef, wrapperRef: wrapperRef }), jsx("iframe", { ...HEATMAP_IFRAME, id: `clarity-iframe-${viewId}`, ref: iframeRef, width: contentWidth, height: wrapperHeight }), jsx(VizScrollMap, { iframeRef: iframeRef, wrapperRef: visualRef })] }));
|
|
8626
8641
|
};
|
|
8627
8642
|
|
|
8628
8643
|
const VizLoading = () => {
|
|
@@ -8658,7 +8673,7 @@ const VizDomHeatmap = () => {
|
|
|
8658
8673
|
VizDomHeatmap.displayName = 'VizDomHeatmap';
|
|
8659
8674
|
|
|
8660
8675
|
const VizLiveRenderer = () => {
|
|
8661
|
-
const contentWidth =
|
|
8676
|
+
const contentWidth = useHeatmapWidthByDevice();
|
|
8662
8677
|
const iframeHeight = useHeatmapVizRect((s) => s.iframeHeight);
|
|
8663
8678
|
const wrapperHeight = useHeatmapVizRect((s) => s.wrapperHeight);
|
|
8664
8679
|
const visualRef = useRef(null);
|
|
@@ -8748,4 +8763,4 @@ const HeatmapLayout = ({ data, clickmap, clickAreas, scrollmap, controls, dataIn
|
|
|
8748
8763
|
}
|
|
8749
8764
|
};
|
|
8750
8765
|
|
|
8751
|
-
export { BACKDROP_CONFIG, DEFAULT_SIDEBAR_WIDTH, DEFAULT_VIEW_ID, DEFAULT_ZOOM_RATIO, ELM_CALLOUT_CONFIG, GraphView, HEATMAP_CONFIG, HEATMAP_IFRAME, HEATMAP_STYLE, HeatmapLayout, IClickMode, IClickRankType, IClickType, IHeatmapType, IScrollType, ViewIdContext, Z_INDEX, compareViewPerformance, convertViewportToIframeCoords, createStorePerformanceTracker, downloadPerformanceReport, getCompareViewId, getMetricsByViewId, getPerformanceReportJSON, getScrollGradientColor, performanceLogger, printPerformanceSummary, scrollToElementIfNeeded, sendPerformanceReport, serializeAreas, trackStoreAction, useAreaCreation, useAreaEditMode, useAreaFilterVisible, useAreaHydration, useAreaInteraction, useAreaPositionsUpdater, useAreaRectSync, useAreaRendererContainer, useAreaTopAutoDetect, useClickedElement, useDebounceCallback, useElementCalloutVisible, useHeatmapAreaClick, useHeatmapCanvas, useHeatmapClick, useHeatmapCompareStore, useHeatmapConfigStore, useHeatmapCopyView, useHeatmapData, useHeatmapEffects, useHeatmapElementPosition, useHeatmapHover, useHeatmapLiveStore, useHeatmapRenderByMode, useHeatmapScale, useHeatmapScroll, useHeatmapSetting, useHeatmapViz, useHeatmapVizRect, useHoveredElement, useIframeHeight, useIframeHeightProcessor, useMeasureFunction, useRegisterConfig, useRegisterControl, useRegisterData, useRegisterHeatmap, useRenderCount, useScrollmapZones, useTrackHookCall, useViewIdContext, useVizLiveRender, useWhyDidYouUpdate, useWrapperRefHeight, useZonePositions, withPerformanceTracking };
|
|
8766
|
+
export { BACKDROP_CONFIG, DEFAULT_SIDEBAR_WIDTH, DEFAULT_VIEW_ID, DEFAULT_ZOOM_RATIO, ELM_CALLOUT_CONFIG, GraphView, HEATMAP_CONFIG, HEATMAP_IFRAME, HEATMAP_STYLE, HeatmapLayout, IClickMode, IClickRankType, IClickType, IDeviceType, IHeatmapType, IScrollType, ViewIdContext, Z_INDEX, compareViewPerformance, convertViewportToIframeCoords, createStorePerformanceTracker, downloadPerformanceReport, getCompareViewId, getMetricsByViewId, getPerformanceReportJSON, getScrollGradientColor, performanceLogger, printPerformanceSummary, scrollToElementIfNeeded, sendPerformanceReport, serializeAreas, trackStoreAction, useAreaCreation, useAreaEditMode, useAreaFilterVisible, useAreaHydration, useAreaInteraction, useAreaPositionsUpdater, useAreaRectSync, useAreaRendererContainer, useAreaTopAutoDetect, useClickedElement, useDebounceCallback, useElementCalloutVisible, useHeatmapAreaClick, useHeatmapCanvas, useHeatmapClick, useHeatmapCompareStore, useHeatmapConfigStore, useHeatmapCopyView, useHeatmapData, useHeatmapEffects, useHeatmapElementPosition, useHeatmapHover, useHeatmapLiveStore, useHeatmapRenderByMode, useHeatmapScale, useHeatmapScroll, useHeatmapSetting, useHeatmapViz, useHeatmapVizRect, useHeatmapWidthByDevice, useHoveredElement, useIframeHeight, useIframeHeightProcessor, useMeasureFunction, useRegisterConfig, useRegisterControl, useRegisterData, useRegisterHeatmap, useRenderCount, useScrollmapZones, useTrackHookCall, useViewIdContext, useVizLiveRender, useWhyDidYouUpdate, useWrapperRefHeight, useZonePositions, withPerformanceTracking };
|