@gemx-dev/heatmap-react 3.5.92-dev.35 → 3.5.92-dev.37

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 (46) hide show
  1. package/dist/esm/hooks/viz-canvas/useScrollmap.d.ts.map +1 -1
  2. package/dist/esm/hooks/viz-render/useHeatmapIframeProcessor.d.ts.map +1 -1
  3. package/dist/esm/hooks/viz-render/useHeatmapRenderDom.d.ts.map +1 -1
  4. package/dist/esm/index.d.ts +1 -1
  5. package/dist/esm/index.d.ts.map +1 -1
  6. package/dist/esm/index.js +83 -66
  7. package/dist/esm/index.mjs +83 -66
  8. package/dist/esm/libs/visualizer/GXVisualizer.d.ts +3 -3
  9. package/dist/esm/libs/visualizer/GXVisualizer.d.ts.map +1 -1
  10. package/dist/esm/libs/visualizer/index.d.ts +1 -1
  11. package/dist/esm/libs/visualizer/index.d.ts.map +1 -1
  12. package/dist/esm/libs/visualizer/renderers/ScrollBucketRenderer.d.ts +3 -23
  13. package/dist/esm/libs/visualizer/renderers/ScrollBucketRenderer.d.ts.map +1 -1
  14. package/dist/esm/libs/visualizer/renderers/index.d.ts +1 -1
  15. package/dist/esm/libs/visualizer/renderers/index.d.ts.map +1 -1
  16. package/dist/esm/libs/visualizer/shadow-dom/extractor.d.ts +26 -15
  17. package/dist/esm/libs/visualizer/shadow-dom/extractor.d.ts.map +1 -1
  18. package/dist/esm/types/viz-scrollmap.d.ts +8 -0
  19. package/dist/esm/types/viz-scrollmap.d.ts.map +1 -1
  20. package/dist/esm/utils/index.d.ts +1 -0
  21. package/dist/esm/utils/index.d.ts.map +1 -1
  22. package/dist/esm/utils/scrollmap.d.ts +11 -0
  23. package/dist/esm/utils/scrollmap.d.ts.map +1 -0
  24. package/dist/umd/hooks/viz-canvas/useScrollmap.d.ts.map +1 -1
  25. package/dist/umd/hooks/viz-render/useHeatmapIframeProcessor.d.ts.map +1 -1
  26. package/dist/umd/hooks/viz-render/useHeatmapRenderDom.d.ts.map +1 -1
  27. package/dist/umd/index.d.ts +1 -1
  28. package/dist/umd/index.d.ts.map +1 -1
  29. package/dist/umd/index.js +1 -1
  30. package/dist/umd/libs/visualizer/GXVisualizer.d.ts +3 -3
  31. package/dist/umd/libs/visualizer/GXVisualizer.d.ts.map +1 -1
  32. package/dist/umd/libs/visualizer/index.d.ts +1 -1
  33. package/dist/umd/libs/visualizer/index.d.ts.map +1 -1
  34. package/dist/umd/libs/visualizer/renderers/ScrollBucketRenderer.d.ts +3 -23
  35. package/dist/umd/libs/visualizer/renderers/ScrollBucketRenderer.d.ts.map +1 -1
  36. package/dist/umd/libs/visualizer/renderers/index.d.ts +1 -1
  37. package/dist/umd/libs/visualizer/renderers/index.d.ts.map +1 -1
  38. package/dist/umd/libs/visualizer/shadow-dom/extractor.d.ts +26 -15
  39. package/dist/umd/libs/visualizer/shadow-dom/extractor.d.ts.map +1 -1
  40. package/dist/umd/types/viz-scrollmap.d.ts +8 -0
  41. package/dist/umd/types/viz-scrollmap.d.ts.map +1 -1
  42. package/dist/umd/utils/index.d.ts +1 -0
  43. package/dist/umd/utils/index.d.ts.map +1 -1
  44. package/dist/umd/utils/scrollmap.d.ts +11 -0
  45. package/dist/umd/utils/scrollmap.d.ts.map +1 -0
  46. package/package.json +1 -1
@@ -1,11 +1,11 @@
1
- import type { AttentionData, ScrollBucketInput } from './renderers';
1
+ import type { AttentionData, IScrollBucket } from './renderers';
2
2
  import type { IRenderHtmlOptions } from './types';
3
3
  import { Visualizer } from '@gemx-dev/clarity-visualize';
4
4
  interface GXVisualizerInterface extends Visualizer {
5
5
  htmlRender: (props: IRenderHtmlOptions) => Promise<GXVisualizer>;
6
6
  htmlCached: (cacheKey: string, options: IRenderHtmlOptions) => Promise<GXVisualizer>;
7
7
  attention: (attentionData: AttentionData[], avgFold: number, isSecondary?: boolean) => void;
8
- scrollBucket: (data: ScrollBucketInput[]) => Promise<void>;
8
+ scrollBucket: (data: IScrollBucket[]) => Promise<void>;
9
9
  }
10
10
  export declare class GXVisualizer extends Visualizer implements GXVisualizerInterface {
11
11
  private attentionMap;
@@ -28,7 +28,7 @@ export declare class GXVisualizer extends Visualizer implements GXVisualizerInte
28
28
  * Render discrete color bands for scrollRevenue / scrollAttention data.
29
29
  * @param data - Array of bucket inputs with position markers (0, 5, 10, ..., 95) and percent values
30
30
  */
31
- scrollBucket: (data: ScrollBucketInput[]) => Promise<void>;
31
+ scrollBucket: (data: IScrollBucket[]) => Promise<void>;
32
32
  private scrollmapOverride;
33
33
  private clickmapOverride;
34
34
  private buildHtmlByCached;
@@ -1 +1 @@
1
- {"version":3,"file":"GXVisualizer.d.ts","sourceRoot":"","sources":["../../../src/libs/visualizer/GXVisualizer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAA0B,MAAM,SAAS,CAAC;AAG1E,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAmCzD,UAAU,qBAAsB,SAAQ,UAAU;IAChD,UAAU,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACjE,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACrF,SAAS,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5F,YAAY,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,qBAAa,YAAa,SAAQ,UAAW,YAAW,qBAAqB;IAC3E,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,gBAAgB,CAAyB;;IAkBjD,UAAU,GAAU,OAAO,kBAAkB,KAAG,OAAO,CAAC,YAAY,CAAC,CAcnE;IAEF,UAAU,GAAU,UAAU,MAAM,EAAE,SAAS,kBAAkB,KAAG,OAAO,CAAC,YAAY,CAAC,CAmBvF;IAEF;;;;;OAKG;IACH,SAAS,GAAI,eAAe,aAAa,EAAE,EAAE,SAAS,MAAM,EAAE,qBAAmB,KAAG,IAAI,CAGtF;IAEF;;;OAGG;IACH,YAAY,GAAU,MAAM,iBAAiB,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CAG7D;IAEF,OAAO,CAAC,iBAAiB,CAGvB;IAEF,OAAO,CAAC,gBAAgB,CAGtB;IAEF,OAAO,CAAC,iBAAiB,CAgCvB;IAEF,OAAO,CAAC,iBAAiB,CA6BvB;IAEF,OAAO,CAAC,UAAU,CAEhB;IAEF,OAAO,CAAC,aAAa,CASnB;IAEF,OAAO,CAAC,gBAAgB,CAItB;CACH"}
1
+ {"version":3,"file":"GXVisualizer.d.ts","sourceRoot":"","sources":["../../../src/libs/visualizer/GXVisualizer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAA0B,MAAM,SAAS,CAAC;AAG1E,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAmCzD,UAAU,qBAAsB,SAAQ,UAAU;IAChD,UAAU,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACjE,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACrF,SAAS,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5F,YAAY,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED,qBAAa,YAAa,SAAQ,UAAW,YAAW,qBAAqB;IAC3E,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,gBAAgB,CAAyB;;IAkBjD,UAAU,GAAU,OAAO,kBAAkB,KAAG,OAAO,CAAC,YAAY,CAAC,CAcnE;IAEF,UAAU,GAAU,UAAU,MAAM,EAAE,SAAS,kBAAkB,KAAG,OAAO,CAAC,YAAY,CAAC,CAmBvF;IAEF;;;;;OAKG;IACH,SAAS,GAAI,eAAe,aAAa,EAAE,EAAE,SAAS,MAAM,EAAE,qBAAmB,KAAG,IAAI,CAGtF;IAEF;;;OAGG;IACH,YAAY,GAAU,MAAM,aAAa,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CAGzD;IAEF,OAAO,CAAC,iBAAiB,CAGvB;IAEF,OAAO,CAAC,gBAAgB,CAGtB;IAEF,OAAO,CAAC,iBAAiB,CAgCvB;IAEF,OAAO,CAAC,iBAAiB,CA6BvB;IAEF,OAAO,CAAC,UAAU,CAEhB;IAEF,OAAO,CAAC,aAAa,CASnB;IAEF,OAAO,CAAC,gBAAgB,CAItB;CACH"}
@@ -1,4 +1,4 @@
1
+ export type { IScrollBucket } from './renderers';
1
2
  export { htmlCache } from './cache';
2
3
  export { GXVisualizer } from './GXVisualizer';
3
- export type { ScrollBucketInput } from './renderers';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/libs/visualizer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/libs/visualizer/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,17 +1,6 @@
1
1
  import type { HeatmapHelper } from '@gemx-dev/clarity-visualize';
2
- export interface ScrollBucketInput {
3
- /** Position marker (0, 5, 10, ..., 95).
4
- * - position=0 → bucket range 0–5%
5
- * - position=10 → bucket range 5–10%
6
- * - position=15 → bucket range 10–15%
7
- * Each non-zero position is the END of its bucket; 0 is the special start marker.
8
- */
9
- position: number;
10
- /** Absolute value (e.g. revenue, attention time) */
11
- value: number;
12
- /** Relative percentage: value / total * 100. Used for color scale. */
13
- percent: number;
14
- }
2
+ import type { IScrollBucket } from '../../../types';
3
+ export type { IScrollBucket };
15
4
  export declare class ScrollBucketRenderer {
16
5
  private heatmap;
17
6
  private lastData;
@@ -29,17 +18,8 @@ export declare class ScrollBucketRenderer {
29
18
  * duplicate portal canvas management.
30
19
  * Stores data so the canvas can be redrawn when iframe height changes.
31
20
  */
32
- renderBucket: (data: ScrollBucketInput[]) => Promise<void>;
21
+ renderBucket: (data: IScrollBucket[]) => Promise<void>;
33
22
  private draw;
34
- /**
35
- * Convert flat position markers → structured buckets with startY/endY.
36
- *
37
- * Input positions: [0, 5, 10, 15, ..., 95]
38
- * position=0 → { startY: 0, endY: 5 }
39
- * position=5 → { startY: 5, endY: 10 }
40
- * position=95 → { startY: 95, endY: 100 }
41
- * Each position is the START of its bucket; end = next position (or 100 for last).
42
- */
43
23
  private mapToBuckets;
44
24
  }
45
25
  //# sourceMappingURL=ScrollBucketRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollBucketRenderer.d.ts","sourceRoot":"","sources":["../../../../src/libs/visualizer/renderers/ScrollBucketRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;CACjB;AAYD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,kBAAkB,CAAqC;IAC/D,OAAO,CAAC,aAAa,CAA8C;gBAEvD,OAAO,EAAE,aAAa,GAAG,IAAI;IAKzC,OAAO,CAAC,MAAM,CAIZ;IAEF,OAAO,CAAC,wBAAwB,CAI9B;IAEF,OAAO,CAAC,wBAAwB,CAS9B;IAEF,KAAK,QAAO,IAAI,CAEd;IAEF,KAAK,QAAO,IAAI,CAGd;IAEF;;;;;OAKG;IACH,YAAY,GAAU,MAAM,iBAAiB,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CAQ7D;IAEF,OAAO,CAAC,IAAI,CAuDV;IAEF;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY,CASlB;CACH"}
1
+ {"version":3,"file":"ScrollBucketRenderer.d.ts","sourceRoot":"","sources":["../../../../src/libs/visualizer/renderers/ScrollBucketRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,YAAY,EAAE,aAAa,EAAE,CAAC;AAK9B,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,kBAAkB,CAAqC;IAC/D,OAAO,CAAC,aAAa,CAA8C;gBAEvD,OAAO,EAAE,aAAa,GAAG,IAAI;IAKzC,OAAO,CAAC,MAAM,CAIZ;IAEF,OAAO,CAAC,wBAAwB,CAI9B;IAEF,OAAO,CAAC,wBAAwB,CAS9B;IAEF,KAAK,QAAO,IAAI,CAEd;IAEF,KAAK,QAAO,IAAI,CAGd;IAEF;;;;;OAKG;IACH,YAAY,GAAU,MAAM,aAAa,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CAQzD;IAEF,OAAO,CAAC,IAAI,CAuDV;IAEF,OAAO,CAAC,YAAY,CAGlB;CACH"}
@@ -1,3 +1,3 @@
1
1
  export { AttentionMapRenderer, type AttentionData } from './AttentionMapRenderer';
2
- export { ScrollBucketRenderer, type ScrollBucketInput } from './ScrollBucketRenderer';
2
+ export { ScrollBucketRenderer, type IScrollBucket } from './ScrollBucketRenderer';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/libs/visualizer/renderers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/libs/visualizer/renderers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC"}
@@ -4,20 +4,31 @@ export type DomNode = {
4
4
  parent: number;
5
5
  tag?: string;
6
6
  };
7
+ export interface ShadowNodeIds {
8
+ /** IDs of shadow container nodes (*S / *P) and all their descendants */
9
+ subtreeIds: Set<number>;
10
+ /** IDs of elements that directly host a shadow root (direct parents of *S/*P nodes) */
11
+ hostIds: Set<number>;
12
+ }
7
13
  export declare function isShadowDomNode(tag: string | undefined): boolean;
8
- /** Scan the rendered DOM (including nested shadow roots) to collect tag names of shadow host elements. */
9
- export declare function collectShadowHostTags(root: Document | ShadowRoot, tags?: Set<string>): Set<string>;
10
- /** Build a shadow subtree ID set from all DOM events.
11
- * Two-pass cascade to handle any event ordering:
12
- * Pass 1seed *S/*P node IDs.
13
- * Pass 2 — cascade: any node whose parent is in the set is also in the set (repeat until stable). */
14
- export declare function buildShadowSubtreeIds(allDomEvents: Array<{
15
- data: unknown;
16
- }>): Set<number>;
17
- export declare function filterShadowNodes(data: DomNode[], subtreeIds: Set<number>, shadowHostTags: Set<string>): DomNode[];
18
- /** Extract shadow DOM nodes from merged.dom (initial Discover event, processed by setup()).
19
- * Returns a filtered copy of the dom event, or null if no shadow DOM present. */
20
- export declare function extractSpecialDom(dom: MergedPayload['dom'], events: MergedPayload['events'], shadowHostTags: Set<string>): MergedPayload['dom'] | null;
21
- /** Extract shadow DOM mutations + StyleSheet + CustomElement events from merged.events. */
22
- export declare function extractSpecialEvents(events: MergedPayload['events'], dom: MergedPayload['dom'], shadowHostTags: Set<string>): MergedPayload['events'];
14
+ /**
15
+ * Two-step collection of all shadow-related node IDs across dom + mutation events.
16
+ *
17
+ * Step 1 — scan dom + all mutations to find *S/*P nodes and their direct host parents.
18
+ * Step 2 cascade: any node whose parent is already in subtreeIds is also included.
19
+ *
20
+ * Using IDs (not tag names) makes host detection precise and avoids false positives
21
+ * from elements that share a tag name with a shadow host but aren't one.
22
+ */
23
+ export declare function collectShadowNodeIds(dom: MergedPayload['dom'], events: MergedPayload['events']): ShadowNodeIds;
24
+ /**
25
+ * Extract shadow DOM nodes from merged.dom (initial Discover event).
26
+ * Includes both shadow host elements (hostIds) and shadow subtree nodes (subtreeIds).
27
+ */
28
+ export declare function extractSpecialDom(dom: MergedPayload['dom'], ids: ShadowNodeIds): MergedPayload['dom'] | null;
29
+ /**
30
+ * Extract shadow DOM mutations + StyleSheet + CustomElement events from merged.events.
31
+ * Mutation events are filtered to only include shadow-related nodes.
32
+ */
33
+ export declare function extractSpecialEvents(events: MergedPayload['events'], ids: ShadowNodeIds): MergedPayload['events'];
23
34
  //# sourceMappingURL=extractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../../../src/libs/visualizer/shadow-dom/extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAI9C,MAAM,MAAM,OAAO,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEhE;AAED,0GAA0G;AAC1G,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,IAAI,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAQ7G;AAED;;;sGAGsG;AACtG,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAsBzF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,EAAE,CAQlH;AAED;kFACkF;AAClF,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,EACzB,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC/B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,GAC1B,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI,CAM7B;AAED,2FAA2F;AAC3F,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC/B,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,EACzB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,GAC1B,aAAa,CAAC,QAAQ,CAAC,CAqBzB"}
1
+ {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../../../src/libs/visualizer/shadow-dom/extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAI9C,MAAM,MAAM,OAAO,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,uFAAuF;IACvF,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACtB;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,aAAa,CAkC9G;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI,CAG5G;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,CAsBjH"}
@@ -23,6 +23,14 @@ export interface IScrollMapInfo {
23
23
  totalSessions: number;
24
24
  totalTimeOnPage: number;
25
25
  }
26
+ export interface IScrollBucket {
27
+ startY: number;
28
+ endY: number;
29
+ /** Absolute value (e.g. revenue, attention time) */
30
+ value: number;
31
+ /** Relative percentage: value / total * 100. Used for color scale. */
32
+ percent: number;
33
+ }
26
34
  export type IScrollMapMode = 'basic' | 'metrics';
27
35
  export interface IScrollZonePosition {
28
36
  top: number;
@@ -1 +1 @@
1
- {"version":3,"file":"viz-scrollmap.d.ts","sourceRoot":"","sources":["../../src/types/viz-scrollmap.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,SAAS,CAAC;AAEjD,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,kBAAkB,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"viz-scrollmap.d.ts","sourceRoot":"","sources":["../../src/types/viz-scrollmap.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,SAAS,CAAC;AAEjD,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,kBAAkB,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -4,6 +4,7 @@ export * from './dom';
4
4
  export * from './logger';
5
5
  export * from './observable';
6
6
  export * from './retry';
7
+ export * from './scrollmap';
7
8
  export * from './sort';
8
9
  export * from './throttle';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Given a list of items where each item represents the START of a bucket,
3
+ * returns each item enriched with `startY` (= position) and `endY` (= next position, or 100 for the last bucket).
4
+ *
5
+ * Works for any scroll data shape (depth, attention, revenue).
6
+ */
7
+ export declare function buildBuckets<T>(items: T[], getPosition: (item: T) => number): Array<T & {
8
+ startY: number;
9
+ endY: number;
10
+ }>;
11
+ //# sourceMappingURL=scrollmap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scrollmap.d.ts","sourceRoot":"","sources":["../../src/utils/scrollmap.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,KAAK,EAAE,CAAC,EAAE,EACV,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAC/B,KAAK,CAAC,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAQ7C"}
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.92-dev.35",
4
+ "version": "3.5.92-dev.37",
5
5
  "license": "MIT",
6
6
  "sideEffects": [
7
7
  "*.css"