@gemx-dev/heatmap-react 3.5.57 → 3.5.59

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 (34) hide show
  1. package/dist/esm/components/VizElement/ElementCallout.d.ts.map +1 -1
  2. package/dist/esm/components/VizElement/ElementCalloutOverlay.d.ts.map +1 -1
  3. package/dist/esm/components/VizScrollmap/VizScrollMap.d.ts.map +1 -1
  4. package/dist/esm/helpers/viz-elm-callout/dimensions.d.ts +1 -1
  5. package/dist/esm/helpers/viz-elm-callout/dimensions.d.ts.map +1 -1
  6. package/dist/esm/helpers/viz-elm-callout/getter.d.ts +4 -1
  7. package/dist/esm/helpers/viz-elm-callout/getter.d.ts.map +1 -1
  8. package/dist/esm/helpers/viz-elm-callout/position-candidates.d.ts.map +1 -1
  9. package/dist/esm/helpers/viz-elm-callout/position-validator.d.ts.map +1 -1
  10. package/dist/esm/helpers/viz-elm-callout/viz-elm.d.ts.map +1 -1
  11. package/dist/esm/hooks/view-context/useHeatmapViz.d.ts +2 -26
  12. package/dist/esm/hooks/view-context/useHeatmapViz.d.ts.map +1 -1
  13. package/dist/esm/hooks/viz-scale/useScaleCalculation.d.ts.map +1 -1
  14. package/dist/esm/index.js +101 -60
  15. package/dist/esm/index.mjs +101 -60
  16. package/dist/esm/types/viz-elm-callout.d.ts +7 -2
  17. package/dist/esm/types/viz-elm-callout.d.ts.map +1 -1
  18. package/dist/umd/components/VizElement/ElementCallout.d.ts.map +1 -1
  19. package/dist/umd/components/VizElement/ElementCalloutOverlay.d.ts.map +1 -1
  20. package/dist/umd/components/VizScrollmap/VizScrollMap.d.ts.map +1 -1
  21. package/dist/umd/helpers/viz-elm-callout/dimensions.d.ts +1 -1
  22. package/dist/umd/helpers/viz-elm-callout/dimensions.d.ts.map +1 -1
  23. package/dist/umd/helpers/viz-elm-callout/getter.d.ts +4 -1
  24. package/dist/umd/helpers/viz-elm-callout/getter.d.ts.map +1 -1
  25. package/dist/umd/helpers/viz-elm-callout/position-candidates.d.ts.map +1 -1
  26. package/dist/umd/helpers/viz-elm-callout/position-validator.d.ts.map +1 -1
  27. package/dist/umd/helpers/viz-elm-callout/viz-elm.d.ts.map +1 -1
  28. package/dist/umd/hooks/view-context/useHeatmapViz.d.ts +2 -26
  29. package/dist/umd/hooks/view-context/useHeatmapViz.d.ts.map +1 -1
  30. package/dist/umd/hooks/viz-scale/useScaleCalculation.d.ts.map +1 -1
  31. package/dist/umd/index.js +1 -1
  32. package/dist/umd/types/viz-elm-callout.d.ts +7 -2
  33. package/dist/umd/types/viz-elm-callout.d.ts.map +1 -1
  34. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ElementCallout.d.ts","sourceRoot":"","sources":["../../../src/components/VizElement/ElementCallout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAoB,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAkBvF,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,OAAO,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,MAAM,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA8CxD,CAAC"}
1
+ {"version":3,"file":"ElementCallout.d.ts","sourceRoot":"","sources":["../../../src/components/VizElement/ElementCallout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAoB,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAiBvF,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,OAAO,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,MAAM,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA6CxD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ElementCalloutOverlay.d.ts","sourceRoot":"","sources":["../../../src/components/VizElement/ElementCalloutOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAO5D,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA+B/D,CAAC"}
1
+ {"version":3,"file":"ElementCalloutOverlay.d.ts","sourceRoot":"","sources":["../../../src/components/VizElement/ElementCalloutOverlay.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAO5D,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA2C/D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"VizScrollMap.d.ts","sourceRoot":"","sources":["../../../src/components/VizScrollmap/VizScrollMap.tsx"],"names":[],"mappings":"AAOA,UAAU,iBAAiB;IACzB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC9C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;CAC1C;AAGD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAwBpD,CAAC"}
1
+ {"version":3,"file":"VizScrollMap.d.ts","sourceRoot":"","sources":["../../../src/components/VizScrollmap/VizScrollMap.tsx"],"names":[],"mappings":"AAOA,UAAU,iBAAiB;IACzB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC9C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;CAC1C;AAGD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyBpD,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { IRectDimensions, IViewportDimensions } from '../../types';
2
- export declare const getViewportDimensions: (containerElm?: HTMLElement | null, scale?: number) => IViewportDimensions;
2
+ export declare const getViewportDimensions: (containerElm?: HTMLElement | null, _scale?: number) => IViewportDimensions;
3
3
  interface IElementDimensionsOptions {
4
4
  targetElm: Element;
5
5
  calloutElm: HTMLElement;
@@ -1 +1 @@
1
- {"version":3,"file":"dimensions.d.ts","sourceRoot":"","sources":["../../../src/helpers/viz-elm-callout/dimensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAExE,eAAO,MAAM,qBAAqB,GAAI,eAAe,WAAW,GAAG,IAAI,EAAE,QAAQ,MAAM,KAAG,mBAYzF,CAAC;AAEF,UAAU,yBAAyB;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,WAAW,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,WAAW,CAAC;CAC3B;AACD,eAAO,MAAM,oBAAoB,GAAI,SAAS,yBAAyB,KAAG,eA2CzE,CAAC"}
1
+ {"version":3,"file":"dimensions.d.ts","sourceRoot":"","sources":["../../../src/helpers/viz-elm-callout/dimensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAItF,eAAO,MAAM,qBAAqB,GAAI,eAAe,WAAW,GAAG,IAAI,EAAE,SAAS,MAAM,KAAG,mBAY1F,CAAC;AAEF,UAAU,yBAAyB;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,WAAW,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,WAAW,CAAC;CAC3B;AACD,eAAO,MAAM,oBAAoB,GAAI,SAAS,yBAAyB,KAAG,eAqCzE,CAAC"}
@@ -1,4 +1,7 @@
1
- import type { ElementInfo, ElementRect, IHeatmapInfo } from '../../types';
1
+ import type { CSSProperties } from 'react';
2
+ import type { ElementInfo, ElementRect, ICalloutPosition, ICalloutRect, IHeatmapInfo } from '../../types';
2
3
  export declare function getElementLayout(element: HTMLElement): ElementRect | null;
3
4
  export declare const buildElementInfo: (hash: string, rect: ElementRect | null, heatmapInfo: IHeatmapInfo) => ElementInfo | null;
5
+ export declare const getScaledCalloutRect: (_element: HTMLElement, _widthScale: number) => ICalloutRect;
6
+ export declare const getStyleFromCandidate: (candidate: ICalloutPosition, widthScale: number) => CSSProperties;
4
7
  //# sourceMappingURL=getter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getter.d.ts","sourceRoot":"","sources":["../../../src/helpers/viz-elm-callout/getter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAkB,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1F,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CAYzE;AAOD,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,EACZ,MAAM,WAAW,GAAG,IAAI,EACxB,aAAa,YAAY,KACxB,WAAW,GAAG,IAqBhB,CAAC"}
1
+ {"version":3,"file":"getter.d.ts","sourceRoot":"","sources":["../../../src/helpers/viz-elm-callout/getter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EAEX,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACb,MAAM,aAAa,CAAC;AAIrB,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CAYzE;AAOD,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,EACZ,MAAM,WAAW,GAAG,IAAI,EACxB,aAAa,YAAY,KACxB,WAAW,GAAG,IAqBhB,CAAC;AAGF,eAAO,MAAM,oBAAoB,GAAI,UAAU,WAAW,EAAE,aAAa,MAAM,KAAG,YAKjF,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,WAAW,gBAAgB,EAAE,YAAY,MAAM,KAAG,aAavF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"position-candidates.d.ts","sourceRoot":"","sources":["../../../src/helpers/viz-elm-callout/position-candidates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,kBAAkB,EAClB,wBAAwB,EAEzB,MAAM,aAAa,CAAC;AAerB,eAAO,MAAM,kCAAkC,GAAI,SAAS,wBAAwB,KAAG,kBAAkB,EA8BxG,CAAC;AAEF,eAAO,MAAM,oCAAoC,GAAI,SAAS,wBAAwB,KAAG,kBAAkB,EAU1G,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,SAAS,wBAAwB,KAAG,kBAAkB,EAK3F,CAAC"}
1
+ {"version":3,"file":"position-candidates.d.ts","sourceRoot":"","sources":["../../../src/helpers/viz-elm-callout/position-candidates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,kBAAkB,EAClB,wBAAwB,EAEzB,MAAM,aAAa,CAAC;AAerB,eAAO,MAAM,kCAAkC,GAAI,SAAS,wBAAwB,KAAG,kBAAkB,EA+BxG,CAAC;AAEF,eAAO,MAAM,oCAAoC,GAAI,SAAS,wBAAwB,KAAG,kBAAkB,EAU1G,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,SAAS,wBAAwB,KAAG,kBAAkB,EAK3F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"position-validator.d.ts","sourceRoot":"","sources":["../../../src/helpers/viz-elm-callout/position-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItG,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,SAAS,wBAAwB,KAAG,OAaxF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,SAAS,MAAM,EAAE,SAAS,wBAAwB,KAAG,OAQzF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,WAAW,kBAAkB,EAAE,SAAS,wBAAwB,KAAG,OAS1G,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,WAAW,oBAAoB,EAC/B,SAAS,wBAAwB,KAChC,OASF,CAAC"}
1
+ {"version":3,"file":"position-validator.d.ts","sourceRoot":"","sources":["../../../src/helpers/viz-elm-callout/position-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItG,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,SAAS,wBAAwB,KAAG,OAcxF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,SAAS,MAAM,EAAE,SAAS,wBAAwB,KAAG,OAYzF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,WAAW,kBAAkB,EAAE,SAAS,wBAAwB,KAAG,OAe1G,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,WAAW,oBAAoB,EAC/B,SAAS,wBAAwB,KAChC,OAeF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"viz-elm.d.ts","sourceRoot":"","sources":["../../../src/helpers/viz-elm-callout/viz-elm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iCAAiC,EACjC,yBAAyB,EAK1B,MAAM,aAAa,CAAC;AAiErB,eAAO,MAAM,mBAAmB,GAAI,SAAS,yBAAyB,eA+CrE,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,OAAO,iCAAiC,SAwEnF,CAAC"}
1
+ {"version":3,"file":"viz-elm.d.ts","sourceRoot":"","sources":["../../../src/helpers/viz-elm-callout/viz-elm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iCAAiC,EACjC,yBAAyB,EAK1B,MAAM,aAAa,CAAC;AAkErB,eAAO,MAAM,mBAAmB,GAAI,SAAS,yBAAyB,eAgDrE,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,OAAO,iCAAiC,SAiEnF,CAAC"}
@@ -30,36 +30,12 @@ export type IHeatmapVizResult = IHeatmapVizState & IHeatmapVizActions;
30
30
  * ```
31
31
  */
32
32
  export declare const useHeatmapViz: {
33
- <T>(selector: (state: {
34
- isRenderViz: boolean;
35
- zoomRatio: number;
36
- minZoomRatio: number;
37
- widthScale: number;
38
- isScaledToFit: boolean;
39
- } & {
40
- setIsRenderViz: (value: boolean) => void;
41
- setZoomRatio: (value: number) => void;
42
- setMinZoomRatio: (value: number) => void;
43
- setScale: (value: number) => void;
44
- setIsScaledToFit: (value: boolean) => void;
45
- }) => T, props?: {
33
+ <T>(selector: (state: IHeatmapVizState & IHeatmapVizActions) => T, props?: {
46
34
  viewId?: string;
47
35
  } | undefined): T;
48
36
  (props?: {
49
37
  viewId?: string;
50
- } | undefined): {
51
- isRenderViz: boolean;
52
- zoomRatio: number;
53
- minZoomRatio: number;
54
- widthScale: number;
55
- isScaledToFit: boolean;
56
- } & {
57
- setIsRenderViz: (value: boolean) => void;
58
- setZoomRatio: (value: number) => void;
59
- setMinZoomRatio: (value: number) => void;
60
- setScale: (value: number) => void;
61
- setIsScaledToFit: (value: boolean) => void;
62
- };
38
+ } | undefined): IHeatmapVizState & IHeatmapVizActions;
63
39
  };
64
40
  export {};
65
41
  //# sourceMappingURL=useHeatmapViz.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHeatmapViz.d.ts","sourceRoot":"","sources":["../../../src/hooks/view-context/useHeatmapViz.ts"],"names":[],"mappings":"AAOA,UAAU,gBAAgB;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,kBAAkB;IAC1B,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C;AAED,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;AAMtE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,aAAa;;;;;;;;gCAYE,OAAO;8BACT,MAAM;iCACH,MAAM;0BACb,MAAM;kCACE,OAAO;;;;;;;;;;;;;gCAJT,OAAO;8BACT,MAAM;iCACH,MAAM;0BACb,MAAM;kCACE,OAAO;;CAEnC,CAAC"}
1
+ {"version":3,"file":"useHeatmapViz.d.ts","sourceRoot":"","sources":["../../../src/hooks/view-context/useHeatmapViz.ts"],"names":[],"mappings":"AASA,UAAU,gBAAgB;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,kBAAkB;IAC1B,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C;AAED,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;AAMtE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,aAAa;;;;;;;CAkBxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useScaleCalculation.d.ts","sourceRoot":"","sources":["../../../src/hooks/viz-scale/useScaleCalculation.ts"],"names":[],"mappings":"AAIA,UAAU,yBAAyB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,0BAA0B;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,mBAAmB,GAAI,OAAO,yBAAyB,KAAG,0BAkDtE,CAAC"}
1
+ {"version":3,"file":"useScaleCalculation.d.ts","sourceRoot":"","sources":["../../../src/hooks/viz-scale/useScaleCalculation.ts"],"names":[],"mappings":"AAIA,UAAU,yBAAyB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,0BAA0B;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAKD,eAAO,MAAM,mBAAmB,GAAI,OAAO,yBAAyB,KAAG,0BA0DtE,CAAC"}
package/dist/esm/index.js CHANGED
@@ -2211,6 +2211,25 @@ const buildElementInfo = (hash, rect, heatmapInfo) => {
2211
2211
  ...rect,
2212
2212
  };
2213
2213
  };
2214
+ // GETTERS
2215
+ const getScaledCalloutRect = (_element, _widthScale) => {
2216
+ return {
2217
+ width: 230,
2218
+ height: 263,
2219
+ };
2220
+ };
2221
+ const getStyleFromCandidate = (candidate, widthScale) => {
2222
+ const { horizontalAlign, placement, top, left } = candidate;
2223
+ const yTransformAlign = placement === 'top' ? 'bottom' : 'top';
2224
+ const xTransformAlign = horizontalAlign === 'left' ? 'left' : 'right';
2225
+ return {
2226
+ top,
2227
+ left,
2228
+ zIndex: Z_INDEX.CALLOUT,
2229
+ transform: `scale(${1 / widthScale})`, // TODO: remove this when we have a better way to handle the scale
2230
+ transformOrigin: `${xTransformAlign} ${yTransformAlign}`,
2231
+ };
2232
+ };
2214
2233
 
2215
2234
  function calculateRankPosition(rect, widthScale) {
2216
2235
  const top = rect.top <= 18 ? rect.top + 3 : rect.top - 18;
@@ -2222,11 +2241,11 @@ function calculateRankPosition(rect, widthScale) {
2222
2241
  };
2223
2242
  }
2224
2243
 
2225
- const getViewportDimensions = (containerElm, scale) => {
2244
+ const getViewportDimensions = (containerElm, _scale) => {
2226
2245
  if (containerElm) {
2227
2246
  const containerRect = containerElm.getBoundingClientRect();
2228
- const width = scale ? containerRect.width / scale : containerRect.width;
2229
- const height = scale ? containerRect.height / scale : containerRect.height;
2247
+ const width = containerRect.width;
2248
+ const height = containerRect.width;
2230
2249
  return { width, height };
2231
2250
  }
2232
2251
  return {
@@ -2239,6 +2258,7 @@ const getElementDimensions = (options) => {
2239
2258
  const targetRect = targetElm.getBoundingClientRect();
2240
2259
  const calloutRect = calloutElm.getBoundingClientRect();
2241
2260
  const containerRect = containerElm.getBoundingClientRect();
2261
+ const scaledCalloutRect = getScaledCalloutRect();
2242
2262
  if (scale && containerRect) {
2243
2263
  const relativeTop = (targetRect.top - containerRect.top) / scale;
2244
2264
  const relativeLeft = (targetRect.left - containerRect.left) / scale;
@@ -2254,21 +2274,13 @@ const getElementDimensions = (options) => {
2254
2274
  width: scaledWidth,
2255
2275
  height: scaledHeight,
2256
2276
  },
2257
- calloutRect: {
2258
- ...calloutRect,
2259
- width: calloutRect.width / scale,
2260
- height: calloutRect.height / scale,
2261
- },
2277
+ calloutRect: scaledCalloutRect,
2262
2278
  };
2263
2279
  }
2264
2280
  if (scale) {
2265
2281
  return {
2266
2282
  targetRect,
2267
- calloutRect: {
2268
- ...calloutRect,
2269
- width: calloutRect.width / scale,
2270
- height: calloutRect.height / scale,
2271
- },
2283
+ calloutRect: scaledCalloutRect,
2272
2284
  };
2273
2285
  }
2274
2286
  return { targetRect, calloutRect };
@@ -2334,36 +2346,50 @@ const isLeftPositionValid = (leftPos, options) => {
2334
2346
  const { width: viewportWidth } = viewport;
2335
2347
  const absLeft = rectDimensions.targetAbsoluteRect?.left ?? 0;
2336
2348
  const relLeftPos = absLeft + leftPos - offset.x;
2337
- const maxViewportWidth = viewportWidth - padding + EPSILON;
2349
+ const calloutWidthScaled = calloutWidth / options.widthScale;
2350
+ const maxViewportWidth = viewportWidth + EPSILON;
2338
2351
  const isValidLeft = relLeftPos >= padding - EPSILON;
2339
- const isRectCalloutShowValid = relLeftPos + calloutWidth <= maxViewportWidth;
2352
+ const isRectCalloutShowValid = relLeftPos + calloutWidthScaled - EPSILON <= maxViewportWidth / options.widthScale;
2340
2353
  return isValidLeft && isRectCalloutShowValid;
2341
2354
  };
2342
2355
  const isRightPositionValid = (leftPos, options) => {
2343
- const { rectDimensions, viewport, padding } = options;
2356
+ const { rectDimensions, viewport } = options;
2344
2357
  const { width: calloutWidth } = rectDimensions.calloutRect;
2345
2358
  const { width: viewportWidth } = viewport;
2346
- const maxViewportWidth = viewportWidth - padding + EPSILON;
2347
- const isValidRight = leftPos - calloutWidth - padding - EPSILON <= maxViewportWidth;
2359
+ const calloutWidthScaled = calloutWidth / options.widthScale;
2360
+ const absLeft = rectDimensions.targetAbsoluteRect?.left ?? 0;
2361
+ const relLeftPos = absLeft + leftPos;
2362
+ const maxViewportWidth = viewportWidth + EPSILON;
2363
+ const isValidRight = relLeftPos - calloutWidthScaled - EPSILON <= maxViewportWidth / options.widthScale;
2348
2364
  return isValidRight;
2349
2365
  };
2350
2366
  const isVerticalPositionValid = (placement, options) => {
2351
2367
  const { rectDimensions, viewport, padding, arrowSize } = options;
2352
- const { targetRect, calloutRect } = rectDimensions;
2368
+ const { targetRect, targetAbsoluteRect, calloutRect } = rectDimensions;
2353
2369
  const { height: viewportHeight } = viewport;
2354
2370
  const { height: calloutHeight } = calloutRect;
2355
- return placement === 'top'
2356
- ? targetRect.top - calloutHeight - padding - arrowSize > -EPSILON
2357
- : targetRect.bottom + calloutHeight + padding + arrowSize < viewportHeight + EPSILON;
2371
+ const relativeTop = (targetAbsoluteRect?.top ?? 0) + targetRect.top;
2372
+ const calloutHeightScaled = calloutHeight / options.widthScale;
2373
+ switch (placement) {
2374
+ case 'top':
2375
+ return relativeTop - calloutHeightScaled - padding - arrowSize > -EPSILON;
2376
+ case 'bottom':
2377
+ return targetRect.bottom + calloutHeight + padding + arrowSize < viewportHeight + EPSILON;
2378
+ }
2358
2379
  };
2359
2380
  const isHorizontalPositionValid = (placement, options) => {
2360
2381
  const { rectDimensions, viewport, padding, arrowSize } = options;
2361
- const { targetRect, calloutRect } = rectDimensions;
2382
+ const { targetRect, targetAbsoluteRect, calloutRect } = rectDimensions;
2362
2383
  const { width: viewportWidth } = viewport;
2363
2384
  const { width: calloutWidth } = calloutRect;
2364
- return placement === 'right'
2365
- ? targetRect.right + calloutWidth + padding + arrowSize < viewportWidth + EPSILON
2366
- : targetRect.left - calloutWidth - padding - arrowSize > -EPSILON;
2385
+ const relativeLeft = (targetAbsoluteRect?.left ?? 0) + targetRect.left;
2386
+ const relativeRight = relativeLeft + targetRect.width;
2387
+ switch (placement) {
2388
+ case 'right':
2389
+ return relativeRight + calloutWidth + padding + arrowSize < viewportWidth + EPSILON;
2390
+ case 'left':
2391
+ return relativeLeft - calloutWidth - padding - arrowSize > -EPSILON;
2392
+ }
2367
2393
  };
2368
2394
 
2369
2395
  const generateVerticalPositionCandidates = (options) => {
@@ -2493,7 +2519,7 @@ const calcCalloutPosition = (options) => {
2493
2519
  const containerElm = isAbsolute ? calloutElm.parentElement : visualRef?.current;
2494
2520
  if (!containerElm)
2495
2521
  return;
2496
- const viewport = getViewportDimensions(visualRef?.current, scale);
2522
+ const viewport = getViewportDimensions(containerElm);
2497
2523
  const rectDimensions = getElementDimensions({ targetElm, calloutElm, scale, containerElm });
2498
2524
  const containerRect = createAdjustedContainerRect({ containerElm, scale, isAbsolute, visualRef });
2499
2525
  const options = {
@@ -2504,6 +2530,7 @@ const calcCalloutPosition = (options) => {
2504
2530
  padding,
2505
2531
  arrowSize,
2506
2532
  containerRect,
2533
+ widthScale,
2507
2534
  };
2508
2535
  const candidates = generateAllCandidates(options);
2509
2536
  const candidate = selectBestPosition(candidates);
@@ -2520,7 +2547,7 @@ const calcCalloutPosition = (options) => {
2520
2547
  };
2521
2548
  };
2522
2549
  const calcCalloutPositionAbsolute = (props) => {
2523
- const { widthScale, calloutElm, containerElm, element, onChange } = props;
2550
+ const { widthScale, calloutElm, containerElm, element, setPosition } = props;
2524
2551
  const mousePosition = element?.mousePosition;
2525
2552
  if (!mousePosition)
2526
2553
  return;
@@ -2529,14 +2556,7 @@ const calcCalloutPositionAbsolute = (props) => {
2529
2556
  const rawCalloutRect = calloutElm.getBoundingClientRect();
2530
2557
  if (rawCalloutRect.width === 0 || rawCalloutRect.height === 0)
2531
2558
  return;
2532
- const calloutRect = {
2533
- ...rawCalloutRect,
2534
- width: rawCalloutRect.width / widthScale,
2535
- height: rawCalloutRect.height / widthScale,
2536
- };
2537
2559
  const containerRect = containerElm.getBoundingClientRect();
2538
- const containerWidth = containerRect.width / widthScale;
2539
- const containerHeight = containerRect.height / widthScale;
2540
2560
  const mouseX = mousePosition.x;
2541
2561
  const mouseY = mousePosition.y;
2542
2562
  const targetRect = {
@@ -2552,16 +2572,13 @@ const calcCalloutPositionAbsolute = (props) => {
2552
2572
  };
2553
2573
  const rectDimensions = {
2554
2574
  targetRect,
2555
- calloutRect,
2575
+ calloutRect: getScaledCalloutRect(),
2556
2576
  targetAbsoluteRect: {
2557
2577
  top: element.top,
2558
2578
  left: element.left,
2559
2579
  },
2560
2580
  };
2561
- const viewport = {
2562
- width: containerWidth,
2563
- height: containerHeight,
2564
- };
2581
+ const viewport = getViewportDimensions(containerElm);
2565
2582
  const options = {
2566
2583
  rectDimensions,
2567
2584
  viewport,
@@ -2570,16 +2587,19 @@ const calcCalloutPositionAbsolute = (props) => {
2570
2587
  padding,
2571
2588
  arrowSize,
2572
2589
  containerRect,
2590
+ widthScale,
2573
2591
  };
2574
2592
  const candidates = generateAllCandidates(options);
2575
2593
  const bestPosition = selectBestPosition(candidates);
2576
- const style = {
2577
- position: 'absolute',
2594
+ const finalPosition = {
2578
2595
  top: bestPosition.top,
2579
2596
  left: bestPosition.left,
2580
- zIndex: 1000,
2597
+ placement: bestPosition.placement,
2598
+ horizontalAlign: bestPosition.horizontalAlign,
2581
2599
  };
2582
- onChange(style);
2600
+ setPosition(finalPosition);
2601
+ // const styleBestPosition = getStyleFromCandidate(bestPosition, widthScale);
2602
+ // onChange(styleBestPosition);
2583
2603
  };
2584
2604
 
2585
2605
  /**
@@ -6566,6 +6586,8 @@ const useObserveIframeHeight = (props) => {
6566
6586
  return {};
6567
6587
  };
6568
6588
 
6589
+ // Max zoom ratio constant: 100% = fit to width
6590
+ const MAX_ZOOM_RATIO = 100;
6569
6591
  const useScaleCalculation = (props) => {
6570
6592
  const widthScale = useHeatmapViz((s) => s.widthScale);
6571
6593
  const zoomRatio = useHeatmapViz((s) => s.zoomRatio);
@@ -6577,23 +6599,31 @@ const useScaleCalculation = (props) => {
6577
6599
  const { containerWidth, containerHeight, contentWidth, contentHeight } = props;
6578
6600
  const calculateScaleResult = useCallback(() => {
6579
6601
  if (containerWidth > 0 && contentWidth > 0 && containerHeight > 0 && contentHeight > 0) {
6580
- // 1. Calculate widthScale (base scale from width)
6602
+ // 1. Calculate available dimensions
6581
6603
  const availableWidth = containerWidth - HEATMAP_CONFIG['padding'] * 2;
6582
- const widthScale = Math.min(availableWidth / contentWidth, 1);
6583
- // 2. Calculate available height
6584
6604
  const toolbarHeight = HEATMAP_CONFIG['heightToolbar'] || 0;
6585
6605
  const paddingTotal = HEATMAP_CONFIG['padding'] * 2;
6586
- const availableHeight = containerHeight - toolbarHeight - paddingTotal; // 10px buffer to avoid scroll bar
6587
- // 3. Calculate minZoomRatio (zoom ratio minimum to fit iframe in container)
6588
- const roundedMinZoomRatio = (availableHeight / (contentHeight * widthScale)) * 100;
6589
- // Limit minZoomRatio to a reasonable range (10-100)
6590
- const finalMinZoomRatio = Math.max(10, Math.min(roundedMinZoomRatio, 100));
6591
- // 4. Apply zoom ratio (cannot be less than minZoomRatio)
6592
- const clampedZoomRatio = Math.max(zoomRatio, finalMinZoomRatio);
6606
+ const availableHeight = containerHeight - toolbarHeight - paddingTotal;
6607
+ // 2. Calculate widthScale (base scale to fit content width into container width)
6608
+ // This represents 100% zoom (fit to width)
6609
+ const widthScale = Math.min(availableWidth / contentWidth, 1);
6610
+ // 3. Calculate minZoomRatio (zoom ratio to fit height)
6611
+ // At minZoomRatio, the content should fit entirely within the container height
6612
+ // Formula: contentHeight * widthScale * (minZoomRatio / 100) = availableHeight
6613
+ // => minZoomRatio = (availableHeight / (contentHeight * widthScale)) * 100
6614
+ const calculatedMinZoomRatio = (availableHeight / (contentHeight * widthScale)) * 100;
6615
+ // Limit minZoomRatio: cannot exceed MAX_ZOOM_RATIO (100%)
6616
+ // and should have a reasonable minimum (e.g., 1%)
6617
+ const finalMinZoomRatio = Math.max(1, Math.min(calculatedMinZoomRatio, MAX_ZOOM_RATIO));
6618
+ // 4. Apply zoom ratio (clamp between min and max)
6619
+ const clampedZoomRatio = Math.max(finalMinZoomRatio, Math.min(zoomRatio, MAX_ZOOM_RATIO));
6593
6620
  const zoomMultiplier = clampedZoomRatio / 100;
6594
6621
  // 5. Calculate finalScale
6622
+ // finalScale = widthScale * zoomMultiplier
6623
+ // At 100% zoom: finalScale = widthScale (content fits container width)
6624
+ // At minZoomRatio: finalScale fits content entirely in container
6595
6625
  const finalScale = widthScale * zoomMultiplier;
6596
- // 6. Check if it is currently fitted
6626
+ // 6. Check if it is currently fitted (at minimum zoom)
6597
6627
  const isCurrentlyFitted = zoomRatio <= finalMinZoomRatio;
6598
6628
  // 7. Update store
6599
6629
  setScale(finalScale);
@@ -7768,6 +7798,7 @@ const DEFAULT_POSITION = {
7768
7798
  };
7769
7799
  const ElementCallout = (props) => {
7770
7800
  const viewId = useViewIdContext();
7801
+ const widthScale = useHeatmapViz((s) => s.widthScale);
7771
7802
  const CompElementCallout = useHeatmapControlStore((state) => state.controls.ElementCallout);
7772
7803
  const calloutRef = useRef(null);
7773
7804
  const element = props.element;
@@ -7780,9 +7811,7 @@ const ElementCallout = (props) => {
7780
7811
  return null;
7781
7812
  const calloutContent = (jsx("div", { ref: calloutRef, className: className, style: {
7782
7813
  position: positionMode,
7783
- top: position.top,
7784
- left: position.left,
7785
- zIndex: Z_INDEX.CALLOUT,
7814
+ ...getStyleFromCandidate(position, widthScale),
7786
7815
  }, "aria-live": "assertive", role: "tooltip", children: CompElementCallout && jsx(CompElementCallout, { elementHash: element.hash }) }));
7787
7816
  if (!document.getElementById(portalContainerId))
7788
7817
  return null;
@@ -7964,7 +7993,18 @@ const ElementCalloutOverlay = (props) => {
7964
7993
  const widthScale = useHeatmapViz((s) => s.widthScale);
7965
7994
  const CompElementCallout = useHeatmapControlStore((state) => state.controls.ElementCallout);
7966
7995
  const calloutRef = useRef(null);
7967
- const [calloutStyle, setCalloutStyle] = useState(undefined);
7996
+ const [position, setPosition] = useState({
7997
+ top: 0,
7998
+ left: 0,
7999
+ placement: 'bottom',
8000
+ horizontalAlign: 'left',
8001
+ });
8002
+ const calloutStyle = useMemo(() => {
8003
+ return {
8004
+ ...getStyleFromCandidate(position, widthScale),
8005
+ position: 'absolute',
8006
+ };
8007
+ }, [position, widthScale]);
7968
8008
  useEffect(() => {
7969
8009
  const calloutElm = calloutRef.current;
7970
8010
  const containerElm = containerRef?.current;
@@ -7975,7 +8015,7 @@ const ElementCalloutOverlay = (props) => {
7975
8015
  calloutElm,
7976
8016
  containerElm,
7977
8017
  element,
7978
- onChange: setCalloutStyle,
8018
+ setPosition,
7979
8019
  });
7980
8020
  }, [element, widthScale, containerRef]);
7981
8021
  if (!element)
@@ -8353,6 +8393,7 @@ const VizScrollMap = ({ iframeRef, wrapperRef }) => {
8353
8393
  width: `calc(100% - 4px)`,
8354
8394
  height: '100%',
8355
8395
  transform: 'translateZ(0)',
8396
+ zIndex: 2,
8356
8397
  }, children: [jsx(ScrollmapMarker, { iframeRef: iframeRef, wrapperRef: wrapperRef }), jsx(AverageFoldLine, { iframeRef: iframeRef, wrapperRef: wrapperRef }), jsx(ScrollMapOverlay, { wrapperRef: wrapperRef, iframeRef: iframeRef })] }));
8357
8398
  };
8358
8399