@mappedin/mappedin-js 4.0.11 → 4.0.12

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.
@@ -911,6 +911,13 @@ declare module '@mappedin/mappedin-js/renderer/MapView.types' {
911
911
  * The rank of the object used when comparing colliders to determine which should be shown.
912
912
  */
913
913
  collisionRank?: COLLISION_RANKING_TIERS;
914
+ /**
915
+ * By default, we don't hide tooltips when they collide. This is
916
+ * so that for floor switching tooltips we don't lose where the elevator is
917
+ * This option will override that behavior
918
+ * @default true
919
+ */
920
+ alwaysVisible?: boolean;
914
921
  };
915
922
  export type TCreateTextTooltipOptions = TCreateTooltipCommonOptions & {
916
923
  /**
@@ -1310,7 +1317,6 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.Marker' {
1310
1317
  get strategies(): TColliderStrategy[];
1311
1318
  colliderDidMount(): void;
1312
1319
  setAction(action: any): void;
1313
- updateDimensions(): void;
1314
1320
  colliderDidGoOffscreen(): void;
1315
1321
  colliderDidUpdateVisiblity(): void;
1316
1322
  }
@@ -1678,7 +1684,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.FloatingLabel'
1678
1684
  get strategies(): TColliderStrategy[];
1679
1685
  getCachedSymbol(orientation: any, textAlign: any, xCoordinate: any): any;
1680
1686
  colliderDidMount(): void;
1681
- colliderDidUpdatePosition(x: any, y: any): void;
1687
+ colliderDidUpdatePosition(pos: any): void;
1682
1688
  setPriority(priority: any): void;
1683
1689
  colliderDidUpdateVisiblity(): void;
1684
1690
  colliderDidGoOutsideGrid(): void;
@@ -1871,6 +1877,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartTooltip' {
1871
1877
  selector?: string;
1872
1878
  map: string;
1873
1879
  padding?: number;
1880
+ alwaysVisible?: boolean;
1874
1881
  collisionRank?: COLLISION_RANKING_TIERS;
1875
1882
  defaultAnchorType?: string;
1876
1883
  enabledAnchorTypes?: {
@@ -1892,6 +1899,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartTooltip' {
1892
1899
  bottomRight?: boolean;
1893
1900
  };
1894
1901
  class SmartTooltip extends HTMLCollider implements IHTMLCollider {
1902
+ #private;
1895
1903
  className: string;
1896
1904
  _el: Element | null;
1897
1905
  style: TTooltipStyle;
@@ -1900,7 +1908,6 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartTooltip' {
1900
1908
  get strategies(): TColliderStrategy[];
1901
1909
  colliderDidMount(): void;
1902
1910
  setAction(action: any): void;
1903
- updateDimensions(): void;
1904
1911
  colliderDidNotFindAHome(): void;
1905
1912
  colliderDidGoOffscreen(): void;
1906
1913
  colliderDidUpdateVisiblity(): void;
@@ -3812,6 +3819,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.HTMLCollider' {
3812
3819
  contentEl: any;
3813
3820
  }
3814
3821
  class HTMLCollider extends BaseCollider {
3822
+ #private;
3815
3823
  contentEl: any;
3816
3824
  containerEl: any;
3817
3825
  removeSelf(): void;
@@ -3819,7 +3827,12 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.HTMLCollider' {
3819
3827
  disable(): void;
3820
3828
  colliderDidGoOffscreen(): void;
3821
3829
  colliderDidNotFindAHome(): void;
3822
- colliderDidUpdatePosition(x: any, y: any): void;
3830
+ colliderDidUpdatePosition(pos: any): void;
3831
+ updateDimensions(): void;
3832
+ /**
3833
+ * @internal
3834
+ */
3835
+ updateDimensionsImmediately(): void;
3823
3836
  colliderDidMount(): void;
3824
3837
  colliderDidUpdateVisiblity(): void;
3825
3838
  }
@@ -3827,7 +3840,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.HTMLCollider' {
3827
3840
  }
3828
3841
 
3829
3842
  declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartCollider' {
3830
- import { ISmartCollisionEngine } from '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartCollisionEngine';
3843
+ import SmartCollisionEngine from '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartCollisionEngine';
3831
3844
  import { Vector3 } from 'three';
3832
3845
  export type TRange = [number, number, number, number];
3833
3846
  type TCustomCollider<T> = ICollider & T;
@@ -3864,7 +3877,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartCollider'
3864
3877
  setAction: (action: EColliderAction) => void;
3865
3878
  action?: EColliderAction;
3866
3879
  position: Vector3;
3867
- __engine?: ISmartCollisionEngine;
3880
+ __engine?: SmartCollisionEngine;
3868
3881
  enable: () => void;
3869
3882
  disable: () => void;
3870
3883
  enabled: boolean;
@@ -3878,7 +3891,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartCollider'
3878
3891
  colliderDidGoOffscreen?: () => void;
3879
3892
  colliderDidGoOutsideGrid?: () => void;
3880
3893
  colliderDidUpdateVisiblity?: () => void;
3881
- colliderDidUpdatePosition?: (x: number, y: number) => void;
3894
+ colliderDidUpdatePosition?: (prop: [x: number, y: number]) => void;
3882
3895
  }
3883
3896
  class BaseCollider implements ICollider {
3884
3897
  __engine: any;
@@ -3908,7 +3921,7 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartCollider'
3908
3921
  removeSelf(): void;
3909
3922
  enable(): void;
3910
3923
  disable(): void;
3911
- colliderDidUpdatePosition(x: any, y: any): void;
3924
+ colliderDidUpdatePosition(pos: any): void;
3912
3925
  colliderDidNotFindAHome(): void;
3913
3926
  colliderDidMount(): void;
3914
3927
  colliderDidUpdateVisiblity(): void;
@@ -4784,27 +4797,55 @@ declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.RenderTasks' {
4784
4797
  declare module '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartCollisionEngine' {
4785
4798
  import { Vector3 } from 'three';
4786
4799
  import './Mappedin.SmartCollisionEngine.scss';
4787
- import { ICollider } from '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartCollider';
4800
+ import { ICollider, TRange } from '@mappedin/mappedin-js/renderer/internal/Mappedin.SmartCollider';
4801
+ import { MappedinMap, MapView } from '@mappedin/mappedin-js/renderer';
4788
4802
  export const COLLIDER_STRATEGY_LOW_PRIORITY = "LOW_PRIORITY";
4789
- type TProjectFn = ({ position, mapId }: {
4790
- position: Vector3;
4791
- mapId: string;
4792
- }) => [number, number];
4793
- export interface ISmartCollisionEngine {
4794
- add: (colliderId: string, collider: ICollider) => void;
4795
- remove: (colliderId: string) => void;
4796
- init: (container: HTMLElement, projectFn: TProjectFn) => void;
4797
- resize: (container: HTMLElement) => void;
4798
- resort: () => void;
4799
- updatePosition: () => void;
4800
- updateVisibility: () => void;
4801
- makeCollidersDirty: () => void;
4802
- update: () => void;
4803
- destroy: () => void;
4804
- makeCollidersDirtyThrottled: (time: number) => void;
4805
- _makeCollidersDirtyThrottled?: [() => void, number];
4803
+ class SmartCollisionEngine {
4804
+ #private;
4805
+ _makeCollidersDirtyThrottled: any;
4806
+ colliderCanvas: HTMLCanvasElement;
4807
+ debugCanvas: HTMLCanvasElement;
4808
+ colliderCanvasContext: CanvasRenderingContext2D;
4809
+ debugCanvasContext: CanvasRenderingContext2D;
4810
+ collisionEngineContainerEl: HTMLDivElement;
4811
+ stepsX: any;
4812
+ stepsY: any;
4813
+ totalWidth: any;
4814
+ totalHeight: any;
4815
+ project: any;
4816
+ grid: Uint8Array;
4817
+ colliders: Map<string, ICollider>;
4818
+ offscreenRanges: TRange[];
4819
+ get sortedColliders(): ICollider[];
4820
+ initialized: boolean;
4821
+ mapView: MapView;
4822
+ constructor(mapView: any);
4823
+ init: (container: HTMLDivElement, projectFn: ({ position, mapId }: {
4824
+ position: Vector3;
4825
+ mapId: MappedinMap['id'];
4826
+ }) => {
4827
+ x: number;
4828
+ y: number;
4829
+ }) => void;
4830
+ updatePosition: () => void;
4831
+ updateVisibility: () => void;
4832
+ add: (colliderId: string, collider: ICollider) => void;
4833
+ remove: (colliderId: string) => void;
4834
+ /**
4835
+ * When adding/removing new colliders, or when updating their priorty, we need to make all colliders around them as "dirty",
4836
+ * so they can be reconcilded correctly
4837
+ */
4838
+ makeCollidersDirty: () => void;
4839
+ /**
4840
+ * Allow to throttle making collders dirty. This is useful for things like BlueDot follow mode,
4841
+ * As we follow the BlueDot, colliders will overlap, but constantly updating their visiblity makes
4842
+ * for a bad experience
4843
+ */
4844
+ makeCollidersDirtyThrottled: (time: any) => void;
4845
+ resize: (container: any) => void;
4846
+ update: () => void;
4847
+ destroy: () => void;
4806
4848
  }
4807
- const SmartCollisionEngine: () => ISmartCollisionEngine;
4808
4849
  export default SmartCollisionEngine;
4809
4850
  }
4810
4851