@eyeon/threejs-map 1.1.1

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 (56) hide show
  1. package/README.md +15 -0
  2. package/dist/Hooks/useMeshFloors/Montserrat_Regular.typeface.json.d.ts +5872 -0
  3. package/dist/Hooks/useMeshFloors/getWallShape.d.ts +2 -0
  4. package/dist/Hooks/useMeshFloors/index.d.ts +3 -0
  5. package/dist/Hooks/useMeshFloors/nodesUtils.d.ts +4 -0
  6. package/dist/Hooks/useMeshFloors/useDrawLogoHelper.d.ts +18 -0
  7. package/dist/Hooks/useMeshFloors/useLoadFloors.d.ts +3 -0
  8. package/dist/Hooks/useMeshFloors/useMaterialAndGeometry.d.ts +29 -0
  9. package/dist/Hooks/useMeshFloors/useMeshParams.d.ts +17 -0
  10. package/dist/Hooks/useMeshFloors/useRouteHelper.d.ts +24 -0
  11. package/dist/MapBox.d.ts +31 -0
  12. package/dist/components/SceneComponent/CameraProperties.d.ts +10 -0
  13. package/dist/components/SceneComponent/FloorsMap.d.ts +32 -0
  14. package/dist/components/SceneComponent/Map.d.ts +20 -0
  15. package/dist/components/SceneComponent/MapCenterMarker.d.ts +9 -0
  16. package/dist/components/SceneComponent/RouteTube.d.ts +6 -0
  17. package/dist/components/SceneComponent/SceneComponent.d.ts +21 -0
  18. package/dist/components/SceneComponent/SceneProperties.d.ts +6 -0
  19. package/dist/components/SceneComponent/portal-sidebar-form/PortalSidebarForm.d.ts +15 -0
  20. package/dist/components/SceneComponent/retailer-info/RetailerInfoModal.d.ts +11 -0
  21. package/dist/components/UIComponent.d.ts +15 -0
  22. package/dist/contexts/MapBoxContextProvider.d.ts +61 -0
  23. package/dist/defaults.d.ts +9 -0
  24. package/dist/globals.d.ts +10 -0
  25. package/dist/helpers/amenities.helper.d.ts +7 -0
  26. package/dist/helpers/camera.helper.d.ts +5 -0
  27. package/dist/helpers/easing.helper.d.ts +1 -0
  28. package/dist/helpers/misc.helper.d.ts +6 -0
  29. package/dist/helpers/svgIcons.helper.d.ts +17 -0
  30. package/dist/images/amenities/amenity-atm.svg +17 -0
  31. package/dist/images/amenities/amenity-elevator.svg +5 -0
  32. package/dist/images/amenities/amenity-family-restroom.svg +7 -0
  33. package/dist/images/amenities/amenity-management.svg +3 -0
  34. package/dist/images/amenities/amenity-playarea.svg +6 -0
  35. package/dist/images/amenities/amenity-restroom.svg +7 -0
  36. package/dist/images/amenities/amenity-security.svg +4 -0
  37. package/dist/index.css +1 -0
  38. package/dist/index.d.ts +4 -0
  39. package/dist/index.js +114 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/index.module.js +18842 -0
  42. package/dist/index.module.js.map +1 -0
  43. package/dist/index.umd.js +115 -0
  44. package/dist/index.umd.js.map +1 -0
  45. package/dist/interfaces/index.d.ts +93 -0
  46. package/dist/interfaces/mapApiTypes.d.ts +90 -0
  47. package/dist/interfaces/mapbox.d.ts +18 -0
  48. package/dist/interfaces/portal-sidebar-form.d.ts +13 -0
  49. package/dist/interfaces/portal.d.ts +21 -0
  50. package/dist/react-app-env.d.ts +1 -0
  51. package/dist/reportWebVitals.d.ts +3 -0
  52. package/dist/services/index.service.d.ts +9 -0
  53. package/dist/services/map.service.d.ts +15 -0
  54. package/dist/services/retailers.service.d.ts +11 -0
  55. package/dist/types/style-modules.d.ts +10 -0
  56. package/package.json +135 -0
@@ -0,0 +1,2 @@
1
+ import { LineCurve, Shape } from 'three';
2
+ export declare function getWallShape(curve: LineCurve, thickness?: number, shape_extend?: number): Shape;
@@ -0,0 +1,3 @@
1
+ import { MeshFloorsProps } from '../../interfaces';
2
+ declare const useMeshFloors: () => MeshFloorsProps;
3
+ export default useMeshFloors;
@@ -0,0 +1,4 @@
1
+ import { AppFloor } from '../../interfaces/mapbox';
2
+ import { Vector2 } from 'three';
3
+ export declare function next_node_name(node_count: number): string;
4
+ export declare function get_node_name(vertex: Vector2, floor_index: number, floors: AppFloor[], node_count: number): [string, boolean];
@@ -0,0 +1,18 @@
1
+ import { Mesh, MeshBasicMaterial, PlaneGeometry, Vector3, BufferGeometry, Box3, Object3D, Scene } from 'three';
2
+ import { IExtMesh } from '../../interfaces';
3
+ import { MapObjData, MapRetailer } from '../../interfaces/mapApiTypes';
4
+ declare const useDrawLogoHelper: () => {
5
+ drawTextLogoStoreOnMap: (allNonIndexedMapObjects: Record<any, any>[], scene: Scene, textLogoNamePrefix: string, allIndexedMapObjects: Record<string, MapObjData>, allIndexedRetailers: Record<string, MapRetailer>, config: Record<any, any>, myFont: any, floors: Record<any, any>[]) => void;
6
+ addTextOrLogoOnStore: (map_obj: any, scene: Scene, textLogoNamePrefix: string, allIndexedMapObjects: Record<string, MapObjData>, allIndexedRetailers: Record<any, any>, config: Record<any, any>, myFont: any, floors: Record<any, any>[]) => void;
7
+ getMeshGroupBoundingBox: (mesh: Mesh | Array<Mesh>) => Box3;
8
+ layer_text_logo_position_by_id: (object_id: string, newMeshPos: Vector3, mesh_size: Vector3, newMesh: Mesh, allIndexedMapObjects: Record<any, any>) => void;
9
+ getImage: (map_obj: Record<string, any>, retailer?: MapRetailer) => Promise<string>;
10
+ processImage: (imgUrl: string, map_obj: Record<string, any>, afterOnload: (geometry: PlaneGeometry, material: MeshBasicMaterial) => void) => void;
11
+ getImageLogo: (allIndexedMapObjects: Record<string, MapObjData>, allIndexedRetailers: Record<string, any>, map_obj: Record<string, any>, mesh: BufferGeometry, object_id: string, new_object_id: string | null, mesh_center_point: Vector3, mesh_size: Vector3, floors: any, handleAsync: (meshLogo: {
12
+ storeLogo: Object3D;
13
+ }) => void) => void;
14
+ get_store_name_logo_geometry: (geometry: BufferGeometry, object_id: string, floor_index: number, textLogoNamePrefix: string, myFont: any, handleAsync: (meshLogo: any) => void) => {
15
+ textMesh: IExtMesh;
16
+ } | null | false;
17
+ };
18
+ export default useDrawLogoHelper;
@@ -0,0 +1,3 @@
1
+ import { SVGResult } from 'three-stdlib';
2
+ declare const useLoadFloors: (svgFloors: SVGResult[]) => any;
3
+ export default useLoadFloors;
@@ -0,0 +1,29 @@
1
+ import { Color, MeshLambertMaterial } from 'three';
2
+ import { IMeshValues } from '../../interfaces';
3
+ export declare const renderOrders: {
4
+ 'route-path': number;
5
+ escalator: number;
6
+ underlay: number;
7
+ overlay: number;
8
+ 'building-base': number;
9
+ base: number;
10
+ store: number;
11
+ 'big-store': number;
12
+ kiosk: number;
13
+ wall: number;
14
+ 'outer-wall': number;
15
+ boundary: number;
16
+ amenity: number;
17
+ 'layer-image': number;
18
+ 'layer-text': number;
19
+ 'route-tube': number;
20
+ 'special-shape': number;
21
+ };
22
+ export type MeshType = keyof typeof renderOrders | null;
23
+ declare const useMaterialAndGeometry: () => {
24
+ getRenderOrder: (mesh_type: MeshType) => number;
25
+ getMaterial: (mesh_type: MeshType, layer_name: string, layer_color: Color | string, mesh_transparent: boolean) => MeshLambertMaterial;
26
+ getGeometry: (mesh_type: MeshType, layer_name: string, extrude: number, line_thickness: number, path: any) => any;
27
+ getMaterialAndGeometry: (mesh_type: MeshType, layer_name: string, layer_color: Color | string, mesh_transparent: boolean, mesh_visible: boolean, z_index: number, extrude: number, line_thickness: number, floor_index: number, path: any) => IMeshValues;
28
+ };
29
+ export default useMaterialAndGeometry;
@@ -0,0 +1,17 @@
1
+ import { SVGResultPaths } from 'three-stdlib';
2
+ import { Color } from 'three';
3
+ export declare const useMeshParams: () => {
4
+ getMeshParams: (path: SVGResultPaths, paths: SVGResultPaths[], floor_index: number, nodeCount: number) => {
5
+ mesh_type: "escalator" | "kiosk" | "amenity" | "base" | "route-path" | "overlay" | "store" | "wall" | "outer-wall" | "boundary" | "special-shape" | null;
6
+ layer_color: Color;
7
+ extrude: number;
8
+ z_index: number;
9
+ mesh_visible: boolean;
10
+ mesh_draw: boolean;
11
+ mesh_transparent: boolean;
12
+ line_thickness: number;
13
+ interactiveMesh: boolean;
14
+ path: SVGResultPaths;
15
+ layer_name: any;
16
+ };
17
+ };
@@ -0,0 +1,24 @@
1
+ import { Graph, Node } from 'ngraph.graph';
2
+ import { PathFinder } from 'ngraph.path';
3
+ import { IExtMesh } from '../../interfaces';
4
+ import { AppFloor } from '../../interfaces/mapbox';
5
+ import { CanvasTexture, Mesh, Raycaster, Scene } from 'three';
6
+ declare const useRouteHelper: () => {
7
+ delete_route_path: (floors: AppFloor[]) => void;
8
+ create_route: (allNodesFloor: Record<string, number>, from_mesh_object_id: string, to_mesh_object_id: string, scene: Scene, floors: AppFloor[], escalator_nodes: string[], pathFinderGraph: Graph, style: string) => {
9
+ routePaths: Mesh[];
10
+ fromFloor?: number;
11
+ };
12
+ create_route_paths: (from_mesh_object_id: string, to_mesh_object_id: string, scene: Scene, allNodesFloor: Record<string, number>, escalator_nodes: any[], floors: AppFloor[], pathFinderGraph: Graph, style: string, routeCallback?: null) => any[];
13
+ create_route_path: (routeNodes: Node<any>[], floor_index: number, floors: AppFloor[], style?: string) => IExtMesh;
14
+ get_route_nodes: (from_node_name: string, to_node_name: string, aStarPathFinder: PathFinder<any>) => false | Node<any>[];
15
+ get_nodes_distance: (from_node_name: string, to_node_name: string, aStarPathFinder: PathFinder<any>, pathFinderGraph: Graph) => number | false;
16
+ get_route_texture: (distance: number, floor_index: number, floors: AppFloor[]) => CanvasTexture | undefined;
17
+ linkFloorEscalators: () => void;
18
+ make_amenity_route: (kiosk_obj_name: string, amenity_type: string, scene: Scene, escalator_nodes: string[], style: string) => {
19
+ routePaths: Mesh[];
20
+ fromFloor?: number;
21
+ };
22
+ assign_route_nodes_to_stores: (floor_index: number, escalator_nodes: string[], find_store_node_raycaster: Raycaster) => Map<any, any>;
23
+ };
24
+ export default useRouteHelper;
@@ -0,0 +1,31 @@
1
+ import { default as React } from 'react';
2
+ import { MapAmenityID } from './helpers/amenities.helper';
3
+ import { MapAllDataResponse, MapCameraControlsState, MapObjData, MapResponsiveSettings } from './interfaces/mapApiTypes';
4
+ import { MapConfigProps } from './interfaces';
5
+ export type MapBoxRefProps = {
6
+ refreshData: () => void;
7
+ createRouteToAmenity: (amenityId: MapAmenityID) => void;
8
+ createRouteToStore: (retailerId: number) => void;
9
+ getInitialDistance: () => number;
10
+ resetMap: () => void;
11
+ refreshState: () => void;
12
+ setMapConfig: React.Dispatch<React.SetStateAction<MapConfigProps>>;
13
+ refetchMapData: () => void;
14
+ };
15
+ export interface AppProps {
16
+ config: Partial<MapConfigProps>;
17
+ webApiURI: string;
18
+ cachedMapApiResponse?: MapAllDataResponse | null;
19
+ onNewMapApiResponse?: (mapApiResponse: MapAllDataResponse) => void;
20
+ mapBoxRefObj?: React.RefObject<MapBoxRefProps> | undefined;
21
+ onObjectSaveData?: (data: MapObjData, refreshData?: () => void) => void;
22
+ onObjectResetData?: (data: MapObjData) => void;
23
+ onObjectChangeData?: (data: MapObjData) => void;
24
+ onObjectNewData?: (data: MapObjData) => void;
25
+ mapApiResponseRef?: React.RefObject<MapAllDataResponse | null> | null;
26
+ onChangeCameraControlPosition?: (mapResponsiveSetings: MapResponsiveSettings, cameraControlPos: MapCameraControlsState, floorId: number | null) => void;
27
+ onExtractedAmenities?: (amenityIds: MapAmenityID[]) => void;
28
+ handleClickOnRetailer?: (retailer_id: number) => void;
29
+ }
30
+ declare const MapBox: (params: AppProps) => import("react/jsx-runtime").JSX.Element;
31
+ export default MapBox;
@@ -0,0 +1,10 @@
1
+ import { Vector3 } from 'three';
2
+ interface CameraPropertiesProps {
3
+ far?: number;
4
+ near?: number;
5
+ fov?: number;
6
+ aspectRatio?: number;
7
+ position?: Vector3;
8
+ }
9
+ export declare const CameraProperties: (props: CameraPropertiesProps) => null;
10
+ export {};
@@ -0,0 +1,32 @@
1
+ import { IExtMesh, MapDeviceType, MeshFloorsProps, ZoomData } from '../../interfaces';
2
+ import { Mesh } from 'three';
3
+ import { ThreeEvent } from '@react-three/fiber';
4
+ import { MapCameraControlsState } from '../../interfaces/mapApiTypes';
5
+ interface FloorsMapProps {
6
+ meshFloors: MeshFloorsProps;
7
+ currentFloorIndex: number;
8
+ onPointerEnter?: (e: ThreeEvent<PointerEvent>) => void;
9
+ onPointerLeave?: (e: ThreeEvent<PointerEvent>) => void;
10
+ onPointerMove?: (e: ThreeEvent<PointerEvent>) => void;
11
+ onClick?: (e: ThreeEvent<MouseEvent>) => void;
12
+ currKioskObj: Mesh | null;
13
+ currKioskFloorIndex: number;
14
+ routeTargetId?: string;
15
+ routeTargetFromId?: string;
16
+ selectedAmenityType: string;
17
+ activeObjectId?: string;
18
+ hoverObjectId?: string;
19
+ handleChangeFloor: (index: number) => void;
20
+ escalatorNodes: string[];
21
+ zoom: ZoomData | null;
22
+ handleCameraLength?: (length: number) => void;
23
+ cameraControlsPosition: MapCameraControlsState;
24
+ handleCameraAndControlsChange?: ({ camera, controls }: MapCameraControlsState) => void;
25
+ isSelectedRetailerSlug: boolean;
26
+ setIsCameraInit: Function;
27
+ handleObjectClick: (object: IExtMesh, targetId: string, softClick?: boolean) => void;
28
+ triggerClick: boolean;
29
+ deviceType: MapDeviceType;
30
+ }
31
+ export declare const FloorsMap: import('react').ForwardRefExoticComponent<FloorsMapProps & import('react').RefAttributes<unknown>>;
32
+ export {};
@@ -0,0 +1,20 @@
1
+ import { MeshFloorsProps } from '../../interfaces';
2
+ import { ThreeEvent } from '@react-three/fiber';
3
+ import { Mesh } from 'three';
4
+ interface IMapProps {
5
+ floorIndex: number;
6
+ currentFloorIndex: number;
7
+ meshFloors: MeshFloorsProps;
8
+ currKioskObj: Mesh | null;
9
+ activeObjectId?: string;
10
+ hoverObjectId?: string;
11
+ routeTube?: Mesh;
12
+ visible: boolean;
13
+ onPointerEnter?: (e: ThreeEvent<PointerEvent>) => void;
14
+ onPointerLeave?: (e: ThreeEvent<PointerEvent>) => void;
15
+ onPointerMove?: (e: ThreeEvent<PointerEvent>) => void;
16
+ onClick?: (e: ThreeEvent<MouseEvent>) => void;
17
+ handleChangeFloor: (index: number) => void;
18
+ }
19
+ export declare const Map: (params: IMapProps) => import("react/jsx-runtime").JSX.Element;
20
+ export {};
@@ -0,0 +1,9 @@
1
+ interface MapCenterMarketProps {
2
+ size: number;
3
+ lockSize?: boolean;
4
+ blink: boolean;
5
+ cameraLength: number | undefined;
6
+ text_color?: string;
7
+ }
8
+ export declare const MapCenterMarker: ({ size, lockSize, blink, cameraLength, text_color }: MapCenterMarketProps) => import("react/jsx-runtime").JSX.Element | null;
9
+ export {};
@@ -0,0 +1,6 @@
1
+ import { Mesh } from 'three';
2
+ interface IRouteTubeProps {
3
+ mesh?: Mesh;
4
+ }
5
+ export declare function RouteTube({ mesh }: IRouteTubeProps): import("react/jsx-runtime").JSX.Element | null;
6
+ export {};
@@ -0,0 +1,21 @@
1
+ import { default as React } from 'react';
2
+ import { MapAmenityID } from '../../helpers/amenities.helper';
3
+ import { MapCameraControlsState, MapObjData, MapResponsiveSettings } from '../../interfaces/mapApiTypes';
4
+ interface SceneComponentProps {
5
+ selectedActiveObjectId: string;
6
+ setSelectedActiveObjectId: React.Dispatch<React.SetStateAction<string>>;
7
+ onMapDataUpdate?: (data: MapObjData[]) => void;
8
+ onObjectSaveData?: (data: MapObjData, refreshData?: () => void) => void;
9
+ onObjectResetData?: (data: MapObjData) => void;
10
+ onObjectChangeData?: (data: MapObjData) => void;
11
+ onObjectNewData?: (data: MapObjData) => void;
12
+ onChangeCameraControlPosition?: (mapResponsiveSetings: MapResponsiveSettings, cameraControlPos: MapCameraControlsState, floorId: number | null) => void;
13
+ onExtractedAmenities?: (amenityIds: MapAmenityID[]) => void;
14
+ handleClickOnRetailer?: (retailer_id: number) => void;
15
+ }
16
+ export type TFormMapObjData = {
17
+ index: number;
18
+ data: MapObjData;
19
+ };
20
+ declare const SceneComponent: React.ForwardRefExoticComponent<SceneComponentProps & React.RefAttributes<unknown>>;
21
+ export default SceneComponent;
@@ -0,0 +1,6 @@
1
+ import { Color } from 'three';
2
+ interface IScenePropertiesProps {
3
+ background?: Color | string;
4
+ }
5
+ export declare const SceneProperties: (params: IScenePropertiesProps) => null;
6
+ export {};
@@ -0,0 +1,15 @@
1
+ import { MapObjData } from '../../../interfaces/mapApiTypes';
2
+ import { MeshFloorsProps } from '../../../interfaces';
3
+ interface PortalSidebarFormProps {
4
+ floorIndex: number;
5
+ meshFloors: MeshFloorsProps;
6
+ setData: (index: number, data: MapObjData) => void;
7
+ selectedId: string;
8
+ onObjectSaveData?: (data: MapObjData, refreshData?: () => void) => void;
9
+ onObjectResetData?: (data: MapObjData) => void;
10
+ onObjectChangeData?: (data: MapObjData) => void;
11
+ onObjectNewData?: (data: MapObjData) => void;
12
+ triggerSceneUpdate: Function;
13
+ }
14
+ declare const PortalSidebarForm: (params: PortalSidebarFormProps) => import("react/jsx-runtime").JSX.Element | null;
15
+ export default PortalSidebarForm;
@@ -0,0 +1,11 @@
1
+ type RetailerInfoModalProps = {
2
+ show: boolean;
3
+ onHide: () => void;
4
+ amenity: string;
5
+ selectedAmenityMapObjName: string;
6
+ mapObjectName?: string;
7
+ onClickMapObj: (id: string, amenityType?: string) => void;
8
+ allSvgObjectIds: Set<string>;
9
+ };
10
+ declare const RetailerInfoModal: ({ show, onHide, amenity, selectedAmenityMapObjName, mapObjectName, onClickMapObj, allSvgObjectIds }: RetailerInfoModalProps) => import("react/jsx-runtime").JSX.Element | null;
11
+ export default RetailerInfoModal;
@@ -0,0 +1,15 @@
1
+ import { MouseEventHandler } from 'react';
2
+ import { MapAmenity, MapAmenityID } from '../helpers/amenities.helper';
3
+ export interface UIComponentProps {
4
+ selectedFloorIndex: number;
5
+ handleFloorChange: (floorIndex: number) => void;
6
+ amenitiesList: MapAmenity[];
7
+ zoomIn?: MouseEventHandler<HTMLDivElement>;
8
+ zoomOut?: MouseEventHandler<HTMLDivElement>;
9
+ reset?: (fullReset?: boolean) => void;
10
+ clearRoute?: MouseEventHandler<HTMLDivElement>;
11
+ handleAmenityClick: (type: string, map_obj_name?: string) => void;
12
+ onExtractedAmenities?: (amenityIds: MapAmenityID[]) => void;
13
+ }
14
+ declare const UIComponent: (params: UIComponentProps) => import("react/jsx-runtime").JSX.Element;
15
+ export default UIComponent;
@@ -0,0 +1,61 @@
1
+ import { Dispatch, ReactNode, SetStateAction } from 'react';
2
+ import { Graph } from 'ngraph.graph';
3
+ import { Mesh } from 'three';
4
+ import { default as path } from 'ngraph.path';
5
+ import { EventedType } from 'ngraph.events';
6
+ import { MapConfigProps, IExtMesh } from '../interfaces';
7
+ import { MapObjData, MapRetailer, MapAllDataResponse, MapKiosk } from '../interfaces/mapApiTypes';
8
+ import { AppFloor } from '../interfaces/mapbox';
9
+ import { ApiServicesProps } from '../services/index.service';
10
+ export interface MapBoxContextType {
11
+ refetchMapData: () => void;
12
+ apiServices: ApiServicesProps;
13
+ initialFloorsDataIsLoaded: boolean;
14
+ setInitialFloorsDataIsLoaded: Dispatch<SetStateAction<boolean>>;
15
+ mapConfig: MapConfigProps;
16
+ setMapConfig: React.Dispatch<React.SetStateAction<MapConfigProps>>;
17
+ mapApiResponse: MapAllDataResponse;
18
+ setMapApiResponse: React.Dispatch<React.SetStateAction<MapAllDataResponse>>;
19
+ meshByObjectId: Map<string, Mesh>;
20
+ setMeshByObjectId: Dispatch<SetStateAction<Map<string, Mesh>>>;
21
+ allMapObjects: Array<string>;
22
+ setAllMapObjects: Dispatch<SetStateAction<Array<string>>>;
23
+ allIndexedMapObjects: Record<string, MapObjData>;
24
+ setAllIndexedMapObjects: Dispatch<SetStateAction<Record<string, MapObjData>>>;
25
+ allIndexedRetailers: Record<number, MapRetailer>;
26
+ setAllIndexedRetailers: Dispatch<SetStateAction<Record<number, MapRetailer>>>;
27
+ indexedKiosks: Record<number, MapKiosk>;
28
+ setIndexedKiosks: Dispatch<SetStateAction<Record<number, MapKiosk>>>;
29
+ floorsData: AppFloor[];
30
+ setFloorsData: Dispatch<SetStateAction<AppFloor[]>>;
31
+ allNodesFloor: Record<string, number>;
32
+ setAllNodesFloor: Dispatch<SetStateAction<Record<string, number>>>;
33
+ pathFinderGraph: Graph<any, any> & EventedType;
34
+ setPathFinderGraph: Dispatch<SetStateAction<Graph<any, any> & EventedType>>;
35
+ ngraphPath: typeof path;
36
+ setNgraphPath: Dispatch<SetStateAction<typeof path>>;
37
+ meshObject: {
38
+ svgShapeMeshObject: IExtMesh;
39
+ textImageMeshObject: IExtMesh;
40
+ } | null;
41
+ setMeshObject: React.Dispatch<React.SetStateAction<{
42
+ svgShapeMeshObject: IExtMesh;
43
+ textImageMeshObject: IExtMesh;
44
+ } | null>>;
45
+ cameraLength: number | undefined;
46
+ setCameraLength: React.Dispatch<React.SetStateAction<number | undefined>>;
47
+ }
48
+ export interface ProviderInitialData {
49
+ webApiBaseUrl: string;
50
+ config: Partial<MapConfigProps>;
51
+ }
52
+ interface MapBoxContextProviderProps {
53
+ children: ReactNode;
54
+ initialData: ProviderInitialData;
55
+ mapApiResponseRef?: React.RefObject<MapAllDataResponse | null> | null;
56
+ cachedMapApiResponse?: MapAllDataResponse | null;
57
+ onNewMapApiResponse?: (mapApiResponse: MapAllDataResponse) => void;
58
+ }
59
+ declare const MapBoxContextProvider: ({ children, initialData, mapApiResponseRef, cachedMapApiResponse, onNewMapApiResponse }: MapBoxContextProviderProps) => import("react/jsx-runtime").JSX.Element;
60
+ export declare function useMapBoxContext(): MapBoxContextType;
61
+ export default MapBoxContextProvider;
@@ -0,0 +1,9 @@
1
+ import { MapConfigProps } from './interfaces';
2
+ import { MapCameraControlsState, MapObjData } from './interfaces/mapApiTypes';
3
+ import { PortalMapSettingsProps } from './interfaces/portal';
4
+ export declare const cameraControlsDefaultVars: MapCameraControlsState;
5
+ export declare const defaultPortalMapSettings: PortalMapSettingsProps;
6
+ export declare const mapConfigDefaultVars: MapConfigProps;
7
+ export declare const mapObjDefaultVars: MapObjData;
8
+ export declare const textLogoNamePrefix = "custom-layer-";
9
+ export declare const MapImageQuality = 20;
@@ -0,0 +1,10 @@
1
+ import { Mesh } from 'three';
2
+ export declare const meshByObjectId: Map<string, Mesh<import('three').BufferGeometry<import('three').NormalBufferAttributes, import('three').BufferGeometryEventMap>, import('three').Material | import('three').Material[], import('three').Object3DEventMap>>;
3
+ export declare const allMapObjects: string[];
4
+ export declare const allNodesFloor: Record<string, number>;
5
+ export declare const pathFinderGraph: import('ngraph.graph').Graph<any, any> & import('ngraph.events').EventedType;
6
+ export declare const ngraphPath: {
7
+ aStar: typeof import('ngraph.path').aStar;
8
+ aGreedy: typeof import('ngraph.path').aGreedy;
9
+ nba: typeof import('ngraph.path').nba;
10
+ };
@@ -0,0 +1,7 @@
1
+ export type MapAmenityID = 'atm' | 'management' | 'playarea' | 'restroom' | 'family-restroom' | 'elevator' | 'escalator' | 'security' | 'dog-poop-station' | 'child-stroller' | 'vending-machine' | 'stairs' | 'charging-station' | 'wheelchair';
2
+ export interface MapAmenity {
3
+ name: string;
4
+ type: MapAmenityID;
5
+ svgCode: string;
6
+ }
7
+ export declare const AllAmenities: MapAmenity[];
@@ -0,0 +1,5 @@
1
+ import { Mesh, Vector3 } from 'three';
2
+ export declare function get_camera_focus_object(objs: Mesh[], fov: number, aspectRatio: number, style: string): {
3
+ position: Vector3;
4
+ target: Vector3;
5
+ };
@@ -0,0 +1 @@
1
+ export declare function easeInOutCubic(x: number): number;
@@ -0,0 +1,6 @@
1
+ import { MapConfigProps } from '../interfaces';
2
+ import { Color } from 'three';
3
+ export declare const hex_to_color: (hex_code: string) => Color;
4
+ export declare const getSvgIconHTML: (icon: string) => string | undefined;
5
+ export declare const FormatPhoneNumber: (numberStr: string) => string;
6
+ export declare const getMediaProxyUrl: (imageUrl: string, mapConfig: MapConfigProps) => string;
@@ -0,0 +1,17 @@
1
+ declare const SVGIcons: {
2
+ Kiosk: string;
3
+ Escalator: string;
4
+ ATM: string;
5
+ Management: string;
6
+ PlayArea: string;
7
+ RestRoom: string;
8
+ FamilyRestRoom: string;
9
+ Elevator: string;
10
+ Security: string;
11
+ ChildStroller: string;
12
+ VendingMachine: string;
13
+ Stairs: string;
14
+ ChargingStation: string;
15
+ WheelChair: string;
16
+ };
17
+ export default SVGIcons;
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 24.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 577.8 577" style="enable-background:new 0 0 577.8 577;" xml:space="preserve">
5
+ <title>amenity-atm</title>
6
+ <path d="M388.7,314c-3.7-10.3-10.3-19.8-17.7-27.2c-7.4-7.4-17.7-14-29.5-19.1c-6.6-2.9-19.2-6.6-39.1-11.8V144.2
7
+ c13.3,2.2,22.8,8.1,30.2,16.2c7.4,8.1,11.8,19.9,14,35.3l39.8-5.9c-2.9-24.3-13.3-44.1-30.2-58.1c-13.3-11-31-17.7-53.8-19.8V93.4
8
+ h-24.3v18.4c-25.8,2.2-45,9.6-58.2,21.3c-19.9,17.7-29.5,39.7-29.5,67.6c0,15.5,3.7,29.4,10.3,41.9s16.2,22,28.7,28.7
9
+ c17,9.6,33.2,16.2,49.4,20.6v121.3c-14.8-1.5-28-8.8-39.1-22.8c-7.4-9.6-13.3-25-16.2-46.3l-39.1,7.4c1.5,20.6,6.6,37.5,15.5,51.5
10
+ s19.9,23.5,31.7,30.1c12.5,6.6,28,11,47.9,13.2v39v-0.1V483h22.1v-39c28-0.7,50.1-11,67.1-28.7c17-18.4,25.8-40.4,25.8-67.6
11
+ C394.6,336,392.4,324.3,388.7,314z M278.9,145.1v107.2c-17.7-5.2-30.2-11.8-37.6-20.6s-11.1-19.8-11.1-33.1c0-14,4.4-25.7,13.3-35.3
12
+ C252.2,153.9,263.7,147.4,278.9,145.1V145h0.7C279.3,145,279.1,145,278.9,145.1z M340,394.2c-9.6,11-22.1,18.4-37.6,19.8l0,0V297.9
13
+ c20.6,5.2,34.6,11.8,42,20.6c6.6,8.1,10.3,19.8,10.3,33.8C354.8,369.2,349.6,383.1,340,394.2z"/>
14
+ <path d="M289.8,2.5c-158.7,0-288,128-288,287.2c0,158.3,129.3,287.2,288,287.2s288-128.9,288-287.2S448.6,2.5,289.8,2.5z
15
+ M289.9,533.9C155,533.9,45.2,424.3,45.2,289.8C45.2,154.5,155,45.7,289.9,45.7s244.7,109.5,244.7,244.1S424.8,533.9,289.9,533.9z"
16
+ />
17
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 576 576">
2
+ <path d="M576,145.2v268.6c-0.1,1.6-0.3,3.1-0.3,4.7c-0.3,33.3-0.6,66.6-0.8,99.9c-0.1,21.1-9.7,37.2-26.7,49 c-7.7,5.4-15.9,9.3-25.9,8c-3.8-0.5-7.7-0.1-11.5-0.1c-115.3,0.1-230.6,0.2-345.9,0.3c-1.1,0-2.2,0.2-3.3,0.3h-16.9 c-1.2-0.1-2.4-0.3-3.6-0.3c-30.2-0.3-60.4-0.6-90.7-0.8c-11.1-0.1-20.7-4.1-29.1-11.2c-8.7-7.4-15.5-16.7-19.9-27.3l-0.2-0.5 c-0.7-1.6-1.1-3.4-1.2-5.4v0C0,492.8,0,455.1,0,417.4c0-124.1,0-248.1,0-372.2c0-0.2,0-0.3,0-0.5c0-1.5,0.3-2.9,0.7-4.2l0,0.1 C8.3,22.5,20.5,8.9,38.7,1c1.2-0.5,2.6-0.9,4-0.9h0c162.8,0,325.6,0,488.4,0c1.5,0,2.8,0.4,4.1,0.9l-0.1,0c3.4,1.4,6.1,2.7,8.8,4.2 l-0.4-0.2c19.7,11.2,30.9,27.8,31.3,50.8c0.4,28.2,0.6,56.3,0.8,84.5C575.7,141.8,575.8,143.5,576,145.2L576,145.2z M536.4,288.6 h0.3c0-56.7,0-113.4,0-170c0-18.2-0.4-36.4-0.7-54.6c-0.1-8-8.4-19.8-15.9-22.7c-1-0.4-2.1-0.6-3.2-0.7h0c-3.2-0.3-6.4-0.6-9.5-0.6 c-25.5-0.4-51-0.9-76.6-1c-96.4-0.2-192.7-0.4-289.1-0.4c-22.9,0-45.8,0.1-68.7,0.3c-3.4,0-6.8,0.1-10,0.9 c-9.9,2.3-17.1,8.3-21.7,17.3c-1,1.9-2,3.9-2.1,5.9c-0.1,149.8-0.1,299.6-0.1,449.4c0,0.9-0.1,2,0.3,2.7c2.7,4.2,5.1,8.6,8.3,12.3 c5.6,6.3,13.2,8.4,21.6,8.4c23.7,0.1,47.5,0.6,71.2,0.6c123.5,0,247,0,370.5,0c0.1,0,0.2,0,0.3,0c1.1,0,2.1-0.2,3-0.6l-0.1,0 c8.3-3.5,15.4-8.4,20.2-16.3c1.2-1.8,2-4.1,2-6.5l0,0C536.4,438.2,536.4,363.4,536.4,288.6L536.4,288.6z"/>
3
+ <path d="M307,277.5l75.9,68.4l0.9-0.2V150.9h49.7v194.8l1,0.3l78.2-67.4c0.1,1,0.2,1.7,0.3,2.4c0.3,19.9,0.6,39.8,0.8,59.7 c0,0,0,0,0,0.1c0,1.4-0.5,2.6-1.4,3.6l0,0c-34.1,32.7-68.2,65.3-102.3,97.9c-0.3,0.3-0.6,0.5-1,0.9c-0.6-0.5-1.3-1-1.9-1.5 c-32.7-30.7-65.5-61.4-98.2-92c-1.4-1.2-2.3-3-2.3-5c0-0.1,0-0.3,0-0.4v0c0.2-20.9,0.3-41.9,0.4-62.8C307,280.5,307,279.4,307,277.5 L307,277.5z"/>
4
+ <path d="M142.2,234.5L67,301.8c-0.1-1.2-0.3-1.9-0.3-2.7c-0.3-20.7-0.7-41.5-1-62.2c0-1.3,0.5-2.5,1.3-3.4l0,0 c33.3-31.4,66.7-62.8,100.1-94.1c0.3-0.3,0.6-0.5,1-0.8c5.9,5.7,11.8,11.3,17.7,16.9c28.1,26.9,56.2,53.9,84.3,80.9 c0.9,0.8,1.4,2,1.5,3.3v0c-0.5,20.2-1.1,40.3-1.6,60.5c0,0.3-0.1,0.7-0.2,1.7l-77.4-67.1l-0.9,0.1v193.9h-48.3v-194L142.2,234.5z"/>
5
+ </svg>
@@ -0,0 +1,7 @@
1
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 576 522.5">
2
+ <path d="M119.8,91.5c25-5.9,40.5-30.8,34.6-55.7c-5.9-24.9-30.9-40.4-55.9-34.5S58,32,63.9,56.9S94.8,97.3,119.8,91.5z"/>
3
+ <path d="M160.6,139.1h4.5c0.6,0,1.3,0.6,1.3,1.3l15.3,123.1c1.3,8.9,8.9,15.9,17.8,15.9c10.8,0,19.1-9.5,17.8-20.3l-15.9-128.9 c-1.9-13.3-13.4-24.1-27.4-24.1H43.4c-14,0-25.5,10.2-27.4,24.1L0.1,259.1c-1.3,10.8,7,20.3,17.8,20.3c8.9,0,16.5-7,17.8-15.9 l15.3-123.8c0-0.6,0.6-1.3,1.3-1.3h4.5c0.6,0,1.3,0.6,1.3,1.3L29.4,384.1c0,0.6,0.6,1.3,1.3,1.3H67c0.6,0,1.3,0.6,1.3,1.3v118.1 c0,9.5,7.6,16.5,16.5,16.5c9.5,0,16.5-7.6,16.5-16.5V387.3c0-0.6,0.6-1.3,1.3-1.3h10.8c0.6,0,1.3,0.6,1.3,1.3v118.1 c0,9.5,7.6,16.5,16.5,16.5c9.5,0,16.5-7.6,16.5-16.5V387.3c0-0.6,0.6-1.3,1.3-1.3h36.3c0.6,0,1.3-0.6,1.3-1.3L158,140.3 C159.3,139.7,159.9,139.1,160.6,139.1L160.6,139.1z"/>
4
+ <path d="M498.9,69.8c12.9-22.1,5.4-50.5-16.8-63.4c-22.2-12.9-50.6-5.4-63.6,16.7c-12.9,22.1-5.4,50.5,16.8,63.4 C457.5,99.4,486,91.9,498.9,69.8z"/>
5
+ <path d="M547.9,106.1H369.6c-14,0-25.5,10.2-27.4,24.1v128.9c0,10.8,8.9,19.7,19.7,19.7s19.7-8.9,19.7-19.7v-106 c0-0.6,0.6-1.3,1.3-1.3h2.5c0.6,0,1.3,0.6,1.3,1.3l25.5,162.5v187.3c0,10.8,8.9,19.7,19.7,19.7h0.6c10.8,0,19.7-8.9,19.7-19.7v-186 c0-0.6,0.6-1.3,1.3-1.3h10.8c0.6,0,1.3,0.6,1.3,1.3v186c0,10.8,8.9,19.7,19.7,19.7h0.6c10.8,0,19.7-8.9,19.7-19.7V315.6l25.5-162.5 c0-0.6,0.6-1.3,1.3-1.3h2.6c0.6,0,1.3,0.6,1.3,1.3v106c0,10.8,8.9,19.7,19.7,19.7s19.7-8.9,19.7-19.7V130.2 C573.4,116.2,562,106.1,547.9,106.1L547.9,106.1z"/>
6
+ <path d="M259.6,480l19.7-19.7L251.9,433L229,455.8c-7.6,7.6-5.7,20.3,1.3,27.3l32.5,33.6c12.7,12.7,29.3-5.1,17.2-17.1L259.6,480 L259.6,480z M288.9,347.9c19.1,0,34.4-15.2,34.4-34.3s-15.3-34.3-34.4-34.3s-34.4,15.2-34.4,34.3S269.7,347.9,288.9,347.9z M369.7,405.7l-46.5-46.3c-3.8-3.8-8.3-6.3-14.7-6.3h-41.4c-6.4,0-10.8,2.5-14,6.3l-45.9,45.7c-12.7,12.7,4.5,28.6,17.2,15.9 l28-27.9v26h72.6v-26l28.6,28.6C364.6,433.6,381.8,417.1,369.7,405.7L369.7,405.7z M324.5,433l-27.4,27.3l19.7,19.7l-20.4,20.3 c-12.1,12.1,4.5,29.2,17.2,17.1l32.5-33.6c7-7,8.9-20.3,1.3-27.3C347.4,455.9,324.5,433,324.5,433z"/>
7
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 576 414.6">
2
+ <path d="M371.6,180.4c66.8,0,101,58.5,121.4,121.9l16.4,50.4c2.7,8.8-7.5,16.3-16.4,16.3h-56.6l-7.5-27.2 c-17.7-53.1-45-106.2-94.8-125.9c13-8.8,23.9-21.1,30.7-35.4C366.1,180.4,368.8,180.4,371.6,180.4z M441.2,145.7 c64.8,2,98.2,59.2,118.7,121.9l15.7,49.7c2.7,8.8-7.5,17.7-16.4,17.7h-35.5l-12.3-38.1c-16.4-53.1-44.3-106.2-94.8-125.9 C426.2,162.7,434.3,155.2,441.2,145.7z M51.6,334.3H16.8c-9.6,0-19.1-8.2-16.4-17.7l15.7-49.7C35.9,204.2,70.1,147.1,134.9,145 c6.1,9.5,15,18.4,24.6,24.5c-49.8,19.7-77.8,72.8-94.8,125.9L51.6,334.3L51.6,334.3z M437.7,0c35.5,0,64.8,28.6,64.8,64.7 c0,31.3-22.5,57.2-52.5,62.6c3.4-8.8,5.5-18.4,5.5-27.9c0-39.5-27.3-71.5-62.8-81C403.6,6.8,419.3,0,437.7,0L437.7,0z M137.6,0 c17.7,0,34.1,6.8,45,18.4c-35.5,9.5-62.8,41.5-62.8,81c0,9.5,2.1,19.1,5.5,27.9C96,121.9,72.8,96,72.8,64.7 C73.5,28.6,102.1,0,137.6,0L137.6,0z M287.7,0c19.8,0,37.5,8.8,49.8,22.5c-15.7,6.8-29.3,19.1-38.2,34l-3.4,5.5c-2.7,0-5.5,0-7.5,0 c-2,0-6.1,0-8.9,0l-3.4-5.5c-9.6-15-22.5-27.2-38.2-34C250.2,8.9,267.9,0,287.7,0L287.7,0z M287.7,226c66.8,0,101,58.5,122.1,121.9 l15.7,50.4c2.7,8.8-8.2,16.3-16.4,16.3H166.2c-9.6,0-19.8-8.2-16.4-16.3l15.7-50.4C186,284.6,220.8,226,287.7,226z M287.7,81 c35.5,0,64.8,28.6,64.8,64.7s-28.7,64.7-64.8,64.7c-35.5,0-64.8-28.6-64.8-64.7S252.2,81,287.7,81z M138.3,369H82.3 c-9.6,0-19.1-8.2-16.4-16.3l15.7-50.4c21.1-63.3,55.3-121.9,122.1-121.9c2.7,0,5.5,0,7.5,0c6.1,15,17.7,27.2,30.7,35.4 c-49.8,19.7-78.5,72.8-94.8,125.9C147.1,341.8,138.3,369,138.3,369z M203.8,34.7c23.9,0,44.3,12.9,55.9,31.3 c-32.1,12.2-55.9,42.9-55.9,79c0,6.1,0.7,12.2,2.1,18.4h-2.1c-35.5,0-64.8-28.6-64.8-64.7S168.3,34.7,203.8,34.7z M371.6,34.7 c35.5,0,64.8,28.6,64.8,64.7s-29.3,64-64.8,64h-2.7c2.1-6.1,2.7-12.2,2.7-18.4c0-36.8-23.9-66.7-55.9-79 C327.2,47.7,347,34.7,371.6,34.7z"/>
3
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 576 537.9">
2
+ <path d="M384.3,137c38,0,68.8-30.7,68.8-68.5S422.3,0,384.3,0s-68.8,30.7-68.8,68.5S346.4,137,384.3,137z"/>
3
+ <path d="M283.3,96c20,26.3,35.9,53.3,67.6,64.4c31.2,11.1,60.5,11.1,83.5-5.3c22.9-16.4,34.7-46.8,54.1-87.2 c18.8-40.4,34.1-48,57-48c23.5,0,31.2,28.1,30.6,39.8s-10.6,31-40,52.7c-49.4,36.3-57.6,108.3-59.4,127.7 c-1.8,19.3-2.9,50.4,17.6,169.2c20.6,118.9-20,125.9-25.3,127.1c-5.3,0.6-21.2,8.2-31.1-16.4c-10-24.6-11.8-91.3-14.1-120 c-2.9-28.7-6.5-70.9-35.9-79c-30-8.2-40.6,39.8-51.7,76.1c-10.6,36.9-40,71.4-72.3,59.1s-29.4-50.4-10-78.5 c19.4-27.5,61.7-57.4,67.6-124.1c5.9-66.8-11.8-69.1-68.2-90.8c-55.8-22.3-60.5-33.4-67.6-48.6s7.6-46.8,31.1-52.7 C239.2,55.1,259.1,63.9,283.3,96L283.3,96z"/>
4
+ <path d="M134.7,251.7c26.9,0,48.8-21.8,48.8-48.6s-21.8-48.6-48.8-48.6s-48.8,21.8-48.8,48.6S107.7,251.7,134.7,251.7z"/>
5
+ <path d="M204,227.8c-15.3,17.6-28.2,35.7-51.1,41.6c-22.9,6.4-43.5,4.7-58.8-8.2c-15.3-12.9-21.7-35.1-32.9-64.4S40,161,23.5,159.8 C7.1,158.7,0,178,0,186.2c-0.6,8.2,5.9,22.3,25.3,39.2C58.2,253.5,60,305.1,60,318.5c0.6,13.5-0.6,35.7-21.7,118.3 s7.1,89.6,10.6,90.8s14.7,7,22.9-10s12.9-63.8,16.5-83.7c3.5-19.9,8.2-49.8,29.4-53.9s26.5,30.4,32.3,56.8 c5.9,26.3,24.7,52.7,47.6,45.7c22.9-7,23.5-34,11.2-54.4c-12.3-20.5-40-43.9-40.6-90.8c-0.6-47.4,12.3-48,52.9-60.3 c40.6-12.3,44.7-20.5,50.5-30.4c5.9-10-2.9-33.4-18.8-38.6C237.5,201.4,222.8,206.7,204,227.8L204,227.8z"/>
6
+ </svg>
@@ -0,0 +1,7 @@
1
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 576 533.9">
2
+ <path d="M282.3,533.9h9.2V0h-9.2V533.9z"/>
3
+ <path d="M118.2,97.1c25.4-4.6,41.6-30.1,34.7-55.5C146,16.2,122.9,2.3,97.4,6.9S58.1,39.3,62.8,62.4S95.1,104,118.2,97.1z"/>
4
+ <path d="M159.8,145.6h4.6c0,0,2.3,0,2.3,2.3L183,270.4c2.3,9.2,9.2,16.2,18.5,16.2c11.6,0,18.5-9.2,18.5-20.8l-18.5-129.4 c-2.3-13.9-13.9-23.1-27.7-23.1H44.3c-13.9,0-25.4,9.2-27.7,23.1L0.4,265.8c-2.3,11.6,6.9,20.8,18.5,20.8c9.2,0,16.2-6.9,18.5-16.2 l16.2-122.5c0,0,0-2.3,2.3-2.3h4.6c0,0,2.3,0,2.3,2.3L30.4,390.6c0,0,0,2.3,2.3,2.3h37c0,0,2.3,0,2.3,2.3v117.9 c0,9.2,6.9,16.2,16.2,16.2s16.2-6.9,16.2-16.2V393c0,0,0-2.3,2.3-2.3h11.6c0,0,2.3,0,2.3,2.3v117.9c0,9.2,6.9,16.2,16.2,16.2 c9.2,0,16.2-6.9,16.2-16.2V393c0,0,0-2.3,2.3-2.3h30.1c0,0,2.3,0,2.3-2.3l-27.7-242.7l0,0l0,0L159.8,145.6z"/>
5
+ <path d="M497.3,76.3c13.9-23.1,4.6-50.9-16.2-62.4s-50.9-6.9-64.7,16.2c-13.9,23.1-4.6,50.9,16.2,62.4 C455.7,106.3,483.5,99.4,497.3,76.3z"/>
6
+ <path d="M545.9,113.3h-178c-13.9,0-25.4,9.2-27.7,23.1v129.4c0,11.6,9.2,20.8,20.8,20.8s18.5-9.2,18.5-20.8V159.5c0,0,0-2.3,2.3-2.3 h2.3c0,0,2.3,0,2.3,2.3l25.4,161.8v187.2c0,11.6,9.2,20.8,20.8,20.8l0,0c11.6,0,20.8-9.2,20.8-20.8V323.6c0,0,0-2.3,2.3-2.3h6.9 c0,0,2.3,0,2.3,2.3v184.9c0,11.6,9.2,20.8,20.8,20.8l0,0c11.6,0,20.8-9.2,20.8-20.8V321.3l25.4-161.8c0,0,0-2.3,2.3-2.3h-2.3 c0,0,2.3,0,2.3,2.3v106.3c0,11.6,9.2,20.8,20.8,20.8s20.8-9.2,20.8-20.8V136.4C571.4,122.5,559.8,113.3,545.9,113.3L545.9,113.3 L545.9,113.3z"/>
7
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 576 597.6">
2
+ <path d="M554,80.7L298.5,1.5c-6.6-2-13.2-2-19.9,0L23.2,80.7C9.3,84.7,0,97.9,0,112.4c0,352.5,178.7,436.4,274,481.9 c4.6,2,9.3,3.3,13.9,3.3c4.6,0,9.9-1.3,13.9-3.3c96-45.5,274-129.4,274-481.9C577.2,97.9,567.9,85.3,554,80.7z M288.6,527.6 C197.2,484.1,73.5,411.4,66.2,136.2l222.4-68.6L511,136.8C503.7,412.1,379.3,484.1,288.6,527.6z"/>
3
+ <path d="M278.7,152l-26.5,87.1l-90.7-2.6c-4.6,0-8.6,2.6-9.9,7.3c-1.3,4.6,0,9.2,4,11.9l74.8,51.5L200.6,393c-1.3,4.6,0,9.2,4,11.9 c4,2.6,8.6,2.6,12.6,0l72.1-54.8l72.1,54.8c4,2.6,8.6,2.6,12.6,0c4-2.6,5.3-7.3,4-11.9l-29.8-85.8l74.8-51.5c4-2.6,5.3-7.3,4-11.9 c-1.3-4.6-5.3-7.3-9.9-7.3l-90.7,2l-26.5-87.1c-1.3-4.6-5.3-7.3-9.9-7.3C283.9,144.1,280,147.4,278.7,152L278.7,152z"/>
4
+ </svg>
package/dist/index.css ADDED
@@ -0,0 +1 @@
1
+ ._escalator_elems_1kqb9_1{display:none}._escalator_elems_1kqb9_1 ._element_1kqb9_4{position:absolute;top:-21px;left:-21px;width:42px;height:42px;border:4px solid #ccc;background-color:#4ea5ff;box-sizing:border-box;border-radius:50%;cursor:pointer;z-index:1}._escalator_elems_1kqb9_1 ._element_1kqb9_4:hover{z-index:2}._escalator_elems_1kqb9_1 ._element_1kqb9_4 ._svgIcon_1kqb9_21{display:flex;align-items:center;justify-content:center;height:100%;width:100%}._escalator_elems_1kqb9_1 ._element_1kqb9_4 ._svgIcon_1kqb9_21 svg{width:75%;height:75%}._escalator_elems_1kqb9_1 ._element_1kqb9_4 ._label_1kqb9_34{display:flex;background-color:#fff;white-space:nowrap;position:absolute;padding:4px 12px;border-radius:200px;align-items:center;color:#444;font-size:14px;font-weight:600;left:50%;top:0;transform:translate(-50%,calc(-100% - 12px));box-shadow:2px 2px 6px #0000004d}._escalator_elems_1kqb9_1 ._element_1kqb9_4 ._label_1kqb9_34:before{content:"";position:absolute;top:calc(100% - 8px);left:50%;transform:translate(-50%) rotate(45deg);border:6px solid #fff;border-color:transparent #fff #fff transparent}@keyframes _pulse-animation_1eu0j_1{0%{transform:scale(.8);box-shadow:0 0 #4ca5ffb3}70%{transform:scale(1.2);box-shadow:0 0 0 30px #4ca5ff00}to{transform:scale(.8);box-shadow:0 0 #4ca5ff00}}._mapCenterMarker_1eu0j_18{pointer-events:none}._mapCenterMarker_1eu0j_18:before,._mapCenterMarker_1eu0j_18:after{content:"";position:absolute;width:10px;height:10px;left:0;top:0;margin-left:-5px;margin-top:-5px;border-radius:50%;box-shadow:0 0 #4ca5ff;transform:scale(1)}._mapCenterMarker_1eu0j_18:before{animation:_pulse-animation_1eu0j_1 2s infinite;background-color:#4ca5ff}._mapCenterMarker_1eu0j_18:after{animation:_pulse-animation_1eu0j_1 2s infinite .4s}._threejsMapWrapper_6jbfd_1{position:absolute;width:100%;height:100%;top:0;left:0;flex:1;-webkit-user-select:none;user-select:none}._threejsMap_6jbfd_1{width:100%;height:100%;position:relative;overflow:hidden}._map_controls_6jbfd_18{position:absolute;top:10px;right:10px;z-index:1}._map_controls_6jbfd_18 .map_controls_wrapper{display:flex;flex-direction:column;gap:10px}._map_controls_6jbfd_18 .map_controls_wrapper .control_btn{color:#fff;background-color:#0763b1;font-size:14px;font-weight:500;padding:6px 15px;border:none;cursor:pointer;border-radius:4px;transition:background-color .3s;width:100%;flex:1;text-align:center;letter-spacing:.03rem;height:32px}._map_controls_6jbfd_18 .map_controls_wrapper .control_btn:hover{background-color:#054983}._map_controls_6jbfd_18 .map_controls_wrapper .control_btn.active{background-color:#054983;cursor:default}._map_controls_6jbfd_18 .map_controls_wrapper .floors{align-items:normal}._map_controls_6jbfd_18 .map_controls_wrapper .floors .floor:not(:first-child):not(:last-child){border-radius:0}._map_controls_6jbfd_18 .map_controls_wrapper .floors .floor:first-child{border-bottom-left-radius:0;border-bottom-right-radius:0}._map_controls_6jbfd_18 .map_controls_wrapper .floors .floor:last-child{border-top-left-radius:0;border-top-right-radius:0}._map_controls_6jbfd_18 .map_controls_wrapper .reset-zoom{display:flex;flex-direction:column;gap:10px}._map_controls_6jbfd_18 .map_controls_wrapper .reset-zoom .zoom_btns{display:flex}._map_controls_6jbfd_18 .map_controls_wrapper .reset-zoom .zoom_btns .control_btn{font-size:17px;padding:0;width:36px;height:32px;display:flex;align-items:center;justify-content:center;flex:1}._map_controls_6jbfd_18 .map_controls_wrapper .reset-zoom .zoom_btns .control_btn.zoom-out{border-top-right-radius:0;border-bottom-right-radius:0}._map_controls_6jbfd_18 .map_controls_wrapper .reset-zoom .zoom_btns .control_btn.zoom-in{border-top-left-radius:0;border-bottom-left-radius:0}._threejsMap_6jbfd_1 ._amenities_6jbfd_112{position:absolute;left:0;top:50%;transform:translateY(-50%);border-bottom:none;text-align:center;z-index:1;cursor:default;display:none}._threejsMap_6jbfd_1 ._amenities_6jbfd_112 ._amenity_6jbfd_123{cursor:pointer;background:linear-gradient(135deg,#5c91c5,#1f66ae);transition:opacity .3s;position:relative;overflow:hidden}._threejsMap_6jbfd_1 ._amenities_6jbfd_112 ._amenity_6jbfd_123:after{content:"";background-color:#5c91c5;background:linear-gradient(135deg,#5c91c5,#1f66ae);position:absolute;left:40%;top:30%;z-index:1;height:160%;width:160%;border-radius:9999px}._threejsMap_6jbfd_1 ._amenities_6jbfd_112 ._amenity_6jbfd_123+._amenity_6jbfd_123{border-top:1px solid white}._threejsMap_6jbfd_1 ._amenities_6jbfd_112 ._amenity_6jbfd_123:first-child{border-top-right-radius:6px}._threejsMap_6jbfd_1 ._amenities_6jbfd_112 ._amenity_6jbfd_123:last-child{border-bottom-right-radius:6px}._threejsMap_6jbfd_1 ._amenities_6jbfd_112 ._amenity_6jbfd_123 ._content_6jbfd_155{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;padding:6px 4px}._threejsMap_6jbfd_1 ._amenities_6jbfd_112 ._amenity_6jbfd_123 ._content_6jbfd_155 ._icon_6jbfd_163{width:48px;height:48px;display:flex;align-items:center;justify-content:center}._threejsMap_6jbfd_1 ._amenities_6jbfd_112 ._amenity_6jbfd_123 ._content_6jbfd_155 ._icon_6jbfd_163 svg{width:80%;height:80%}._threejsMap_6jbfd_1 ._amenities_6jbfd_112 ._amenity_6jbfd_123 ._content_6jbfd_155 ._name_6jbfd_176{color:#fff;font-size:8px}._mapBoxSidebar_kftp4_1{flex:0 0 0px;overflow:hidden;transition:all .3s}._mapBoxSidebar_kftp4_1._active_kftp4_6{flex:0 0 var(--sidebarWidth)}._mapBoxSidebar_kftp4_1 ._sidebarWrapper_kftp4_10{padding-right:15px;height:100%;width:var(--sidebarWidth)}._mapBoxSidebar_kftp4_1 ._sidebarWrapper_kftp4_10 ._sidebarBox_kftp4_15{background-color:#fff;padding:15px;border:1px solid #e6edef;height:100%;overflow-y:auto}._mapBox_kftp4_1{position:relative;width:100%}._mapBox_kftp4_1 ._storeNamePlaceholder_kftp4_29{display:none;position:absolute;padding:10px;background:#fff;font-weight:600;color:#000;font-size:16px;opacity:.8}._stats_kftp4_41{position:absolute!important}._retailerInfoModal_da5av_1{max-width:600px!important;min-width:360px}._retailerInfoModal_da5av_1 .modal-content{overflow:visible!important}._retailerInfoModal_da5av_1 ._retailerInfoCloseBtn_da5av_11{position:absolute;top:0;right:0;transform:translate(50%,-50%);cursor:pointer;width:24px;height:24px;z-index:1}._retailerInfoModal_da5av_1 ._retailerInfoCloseBtn_da5av_11 ._closeBtn_da5av_21{background:#000;border-radius:50%;cursor:pointer}._retailerInfoModal_da5av_1 ._modalBody_da5av_28{display:flex;padding:0;flex-direction:column;min-height:0}._retailerInfoModal_da5av_1 ._modalBody_da5av_28 ._contentWrapper_da5av_34{padding:1rem;flex-grow:1;overflow-y:auto;overflow-x:hidden}._retailerInfoModal_da5av_1 ._modalBody_da5av_28 ._contentWrapper_da5av_34 ._content_da5av_34 ._retailerLogo_da5av_41{display:flex;justify-content:center;margin-bottom:20px}._retailerInfoModal_da5av_1 ._modalBody_da5av_28 ._contentWrapper_da5av_34 ._content_da5av_34 ._retailerLogo_da5av_41 ._img_da5av_46{max-width:160px;max-height:160px}._retailerInfoModal_da5av_1 ._modalBody_da5av_28 ._contentWrapper_da5av_34 ._content_da5av_34 ._retailerInfoContent_da5av_52{display:flex;flex-direction:column;gap:15px}._retailerInfoModal_da5av_1 ._modalBody_da5av_28 ._contentWrapper_da5av_34 ._content_da5av_34 ._retailerInfoContent_da5av_52 a{color:#0763b1}._retailerInfoModal_da5av_1 ._modalBody_da5av_28 ._getDirectionsFrom_da5av_64{padding:1rem;box-shadow:0 0 10px 4px #0000001a;display:flex;gap:1rem}._retailerInfoModal_da5av_1 ._modalBody_da5av_28 ._getDirectionsFrom_da5av_64 ._retailerDropdown_da5av_70{box-shadow:none!important;outline:none!important;border-color:var(--bs-border-color)!important;flex:1}._retailerInfoModal_da5av_1 ._modalBody_da5av_28 ._getDirectionsFrom_da5av_64 ._btn_da5av_77{background-color:#0763b1;color:#fff;border:none;padding:.5rem 1rem;border-radius:.25rem;cursor:pointer;font-size:1rem;font-weight:500;text-wrap:nowrap}._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2,._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2 ._tabOptions_1b6ud_7{display:flex;flex-direction:column;gap:12px}._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2 ._tabOptions_1b6ud_7 ._mainBtnsGroup_1b6ud_12{display:flex;align-items:stretch;justify-content:space-between}._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2 ._tabOptions_1b6ud_7 ._mainBtnsGroup_1b6ud_12 ._deleteBtn_1b6ud_17{background-color:#d22d3d;border:none;border-radius:3px;color:#fff;padding:0 10px}._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2 ._btnsGroup_1b6ud_27{display:flex;gap:4px}._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2 ._btnsGroup_1b6ud_27 button{border-radius:3px;border:none;padding:4px 12px;background:#0763b11a;color:var(--accentBlueColor)}._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2 ._btnsGroup_1b6ud_27 button._active_1b6ud_38{background-color:var(--accentBlueColor);color:#fff}._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2 ._sidebarField_1b6ud_2{display:flex;gap:10px;align-items:center}._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2 ._sidebarField_1b6ud_2 ._label_1b6ud_50{flex:0 0 80px;margin-bottom:0;color:#666}._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2 ._sidebarField_1b6ud_2 ._fieldWrapper_1b6ud_56{flex:1;display:flex;align-items:center;gap:10px}._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2 ._sidebarField_1b6ud_2 ._fieldWrapper_1b6ud_56 ._numberFieldGroup_1b6ud_62{display:flex;align-items:stretch;width:120px;height:28px}._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2 ._sidebarField_1b6ud_2 ._fieldWrapper_1b6ud_56 ._numberFieldGroup_1b6ud_62 ._button_1b6ud_68{border:1px solid #CCC;border-radius:3px;flex:0 0 30px;background-color:#eee;font-size:18px;line-height:8px;font-weight:400;cursor:pointer}._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2 ._sidebarField_1b6ud_2 ._fieldWrapper_1b6ud_56 ._numberFieldGroup_1b6ud_62 ._button_1b6ud_68._decrement_1b6ud_78{border-top-right-radius:0;border-bottom-right-radius:0;border-right:0}._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2 ._sidebarField_1b6ud_2 ._fieldWrapper_1b6ud_56 ._numberFieldGroup_1b6ud_62 ._button_1b6ud_68._increment_1b6ud_84{border-top-left-radius:0;border-bottom-left-radius:0;border-left:0}._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2 ._sidebarField_1b6ud_2 ._fieldWrapper_1b6ud_56 ._numberFieldGroup_1b6ud_62 ._button_1b6ud_68:hover{background-color:#ddd}._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2 ._sidebarField_1b6ud_2 ._fieldWrapper_1b6ud_56 ._numberFieldGroup_1b6ud_62 ._input_1b6ud_95{border:1px solid #CCC;flex:1;width:0;padding-left:8px;outline:none}._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2 ._sidebarField_1b6ud_2 ._fieldWrapper_1b6ud_56 ._colorFieldGroup_1b6ud_104{display:flex;align-items:stretch;width:120px;height:28px}._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2 ._sidebarField_1b6ud_2 ._fieldWrapper_1b6ud_56 ._colorFieldGroup_1b6ud_104 ._colorField_1b6ud_104{border:1px solid #CCC;padding:0;border-radius:3px 0 0 3px;width:32px;height:28px}._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2 ._sidebarField_1b6ud_2 ._fieldWrapper_1b6ud_56 ._colorFieldGroup_1b6ud_104 ._inputField_1b6ud_118{border:1px solid #CCC;border-left:0;flex:1;width:0;border-radius:0 3px 3px 0;text-transform:uppercase;padding:0 4px;outline:none}._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2 ._sidebarField_1b6ud_2 ._fieldWrapper_1b6ud_56 ._rotateButton_1b6ud_130{border:1px solid #CCC;height:28px;width:28px;display:flex;align-items:center;justify-content:center;border-radius:3px;cursor:pointer}._sidebarComp_1b6ud_1 ._sidebarFields_1b6ud_2 ._sidebarField_1b6ud_2 ._fieldWrapper_1b6ud_56 ._rotateButton_1b6ud_130 svg{flex:0 0 16px}._sidebarComp_1b6ud_1 ._selectField_1b6ud_148{opacity:1}._sidebarComp_1b6ud_1 ._selectField_1b6ud_148 .custom__control{border-color:#ccc;box-shadow:none;min-height:auto;cursor:pointer}._sidebarComp_1b6ud_1 ._selectField_1b6ud_148 .custom__control .custom__indicators .custom__indicator{padding:4px}._sidebarComp_1b6ud_1 ._selectField_1b6ud_148 .custom__menu{margin-top:0}._sidebarComp_1b6ud_1 ._selectField_1b6ud_148 .custom__menu .custom__menu-list .custom__option{padding:5px 12px;cursor:pointer}._sidebarComp_1b6ud_1 ._textareaField_1b6ud_179,._sidebarComp_1b6ud_1 ._textField_1b6ud_187{flex:1;padding:2px 6px;border:1px solid #ccc;border-radius:3px;outline:none}:root{--accentBlueColor: #0763b1;--accentGreenColor: #81be41;--sidebarWidth: 388px}.checkbox-field{display:inline-flex;align-items:center;cursor:pointer;grid-gap:6px;margin:0}.checkbox-field input{display:none}.checkbox-field input+.tickbox{width:17px;height:17px;position:relative;border:1px solid #ccc;border-radius:2px;display:block}.checkbox-field input:checked+.tickbox{border-color:var(--accentBlueColor);background-color:var(--accentBlueColor)}.checkbox-field input:checked+.tickbox:after{content:"";position:absolute;top:2px;left:2px;width:11px;height:7px;display:flex;align-items:center;justify-content:center;border:2px solid white;border-top-color:transparent;border-right-color:transparent;transform:rotate(-45deg)}.checkbox-field input.partial-checked+.tickbox{background-color:var(--accentBlueColor);border-color:var(--accentBlueColor)}.checkbox-field input.partial-checked+.tickbox:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#fff;width:8px;height:2px}.checkbox-field input:disabled+.tickbox{background:#eee;opacity:.5}.radio-field{display:inline-flex;align-items:center;cursor:pointer;grid-gap:8px}.radio-field input{display:none}.radio-field input+.tickbox{width:18px;height:18px;position:relative;border:2px solid var(--secondaryColor3);border-radius:50%}.radio-field input:checked+.tickbox:after{content:"";position:absolute;top:50%;left:50%;width:10px;height:10px;background-color:var(--accentBlueColor);transform:translate(-50%,-50%);border-radius:50%}.radio-field input[disabled]+.tickbox{border-color:var(--textColor5)}.radio-field input[disabled]:checked+.tickbox:after{background-color:var(--textColor5)}.modal-backdrop{background-color:#000;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:1050}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.fade{transition:opacity .15s linear}.modal{display:none;height:100%;left:0;outline:0;overflow-x:hidden;overflow-y:auto;position:fixed;top:0;width:100%;z-index:1055}.modal-dialog{margin:1.75rem;pointer-events:none;position:relative;width:auto}.modal-dialog-centered{align-items:center;display:flex;min-height:calc(100% - 3.5rem)}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal.fade .modal-dialog{transform:translateY(-50px);transition:transform .3s ease-out}.modal.show .modal-dialog{transform:none}@media (min-width: 576px){.modal-dialog{margin-left:auto;margin-right:auto;max-width:500px}}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-content{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.175);border-radius:.5rem;display:flex;flex-direction:column;outline:0;pointer-events:auto;position:relative;width:100%}body{margin:0;padding:0;font-family:"system-ui","sans-serif"}*,*:before,*:after{box-sizing:border-box}.hide{display:none!important}.messageStyle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);white-space:nowrap}._mapBoxComponent_18958_1{overflow:hidden;display:flex;width:100%;height:100%;position:absolute;top:0;bottom:0;z-index:1;-webkit-user-select:none;user-select:none}._tempImageRendering_18958_13{position:absolute;z-index:-99;top:-9999px;left:-9999px}
@@ -0,0 +1,4 @@
1
+ import { default as MapBox, MapBoxRefProps, AppProps } from './MapBox';
2
+ export type { MapConfigProps } from './interfaces';
3
+ export { MapBox };
4
+ export type { MapBoxRefProps, AppProps };