react-map4d-map 1.1.9 → 1.2.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.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/context/Map4dContext.ts","../src/context/MarkerClusterContext.ts","../src/components/MFBuilding.tsx","../src/components/MFBuildingOverlay.tsx","../src/tool/variableTool.ts","../src/components/MFCircle.tsx","../src/components/MFDataLayer.tsx","../src/components/MFDirectionsRenderer.tsx","../src/components/MFGroundOverlay.tsx","../src/components/MFImageOverlay.tsx","../src/components/MFMap.tsx","../src/components/MFMarker.tsx","../src/components/MFMarkerCluster.tsx","../src/components/MFPOI.tsx","../src/components/MFPOIOverlay.tsx","../src/components/MFPolygon.tsx","../src/components/MFPolyline.tsx","../src/components/MFTileOverlay.tsx"],"sourcesContent":["import { createContext } from 'react';\r\n\r\nexport const defaultCt = {\r\n map: null as any,\r\n}\r\nexport const Map4dContext = createContext(defaultCt)","import { createContext } from 'react';\r\n\r\nexport const markerClusterDefaultContext = {\r\n addMarker: null as unknown as (marker: map4d.Marker)=>void,\r\n removeMarker: null as unknown as (marker: map4d.Marker)=>void,\r\n}\r\nexport const MarkerClusterContext = createContext(markerClusterDefaultContext)","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface BuildingProps {\r\n position?: map4d.ILatLng\r\n name?: string\r\n scale?: number\r\n bearing?: number\r\n elevation?: number\r\n height?: number\r\n model?: string\r\n texture?: string\r\n coordinates?: map4d.ILatLng[]\r\n zIndex?: number\r\n visible?: boolean\r\n draggable?: boolean\r\n userInteractionEnabled?: boolean\r\n selected?: boolean\r\n growUp?: boolean\r\n map?: map4d.Map\r\n onCreated?: (building: map4d.Building) => void\r\n}\r\nconst MFBuilding = (props: BuildingProps) => {\r\n const {\r\n position,\r\n name,\r\n scale,\r\n bearing,\r\n elevation,\r\n height,\r\n model,\r\n texture,\r\n coordinates,\r\n visible,\r\n draggable,\r\n userInteractionEnabled,\r\n selected,\r\n growUp,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const buildingRef = useRef(null as unknown as map4d.Building)\r\n\r\n useEffect(() => {\r\n if (theMap && !buildingRef.current && (coordinates && coordinates?.length > 0 || model)) {\r\n let option = {\r\n position: position || { lat: 10.793113, lng: 106.720739 },\r\n name: name,\r\n scale: scale,\r\n bearing: bearing,\r\n elevation: elevation,\r\n height: height,\r\n model: model,\r\n texture: texture,\r\n coordinates: coordinates,\r\n visible: visible,\r\n draggable: draggable,\r\n userInteractionEnabled: userInteractionEnabled,\r\n selected: selected,\r\n growUp: growUp\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n buildingRef.current = new map4d.Building(option)\r\n buildingRef.current?.setMap(theMap)\r\n onCreated && onCreated(buildingRef.current)\r\n }\r\n }, [theMap, position, coordinates, model])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n buildingRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n buildingRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n buildingRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n buildingRef.current?.setPosition(position as map4d.ILatLng)\r\n }, [position])\r\n useEffect(() => {\r\n name != undefined && buildingRef.current?.setName(name)\r\n }, [name])\r\n useEffect(() => {\r\n scale != undefined && buildingRef.current?.setScale(scale)\r\n }, [scale])\r\n useEffect(() => {\r\n if (bearing != undefined) {\r\n buildingRef.current?.setBearing(bearing)\r\n }\r\n }, [bearing])\r\n useEffect(() => {\r\n elevation != undefined && buildingRef.current?.setElevation(elevation)\r\n }, [elevation])\r\n useEffect(() => {\r\n height != undefined && buildingRef.current?.setHeight(height)\r\n }, [height])\r\n useEffect(() => {\r\n model != undefined && buildingRef.current?.setModel(model)\r\n }, [model])\r\n useEffect(() => {\r\n texture != undefined && buildingRef.current?.setTexture(texture)\r\n }, [texture])\r\n useEffect(() => {\r\n coordinates != undefined && buildingRef.current?.setCoordinates(coordinates)\r\n }, [coordinates])\r\n useEffect(() => {\r\n visible != undefined && buildingRef.current?.setVisible(visible)\r\n }, [visible])\r\n useEffect(() => {\r\n draggable != undefined && buildingRef.current?.setDraggable(draggable)\r\n }, [draggable])\r\n useEffect(() => {\r\n userInteractionEnabled != undefined && buildingRef.current?.setUserInteraction(userInteractionEnabled)\r\n }, [userInteractionEnabled])\r\n useEffect(() => {\r\n selected != undefined && buildingRef.current?.setSelected(selected)\r\n }, [selected])\r\n useEffect(() => {\r\n growUp != undefined && buildingRef.current?.setGrowUp(growUp)\r\n }, [growUp])\r\n return null\r\n}\r\nexport default MFBuilding\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface BuildingOverlayProps {\r\n getUrl: (x: number, y: number, zoom: number) => any\r\n parserData: (response: any) => any\r\n prefixId?: string\r\n visible?: boolean\r\n map?: map4d.Map\r\n onCreated?: (buildingOverlay: map4d.BuildingOverlay) => void\r\n}\r\nconst MFBuildingOverlay = (props: BuildingOverlayProps) => {\r\n const {\r\n getUrl,\r\n visible,\r\n parserData,\r\n prefixId,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const buildingOverlayRef = useRef<map4d.BuildingOverlay>()\r\n\r\n\r\n const reCreate = () => {\r\n buildingOverlayRef.current?.setMap(null as unknown as map4d.Map)\r\n let option = {\r\n getUrl: getUrl || { lat: 10.793113, lng: 106.720739 },\r\n visible: visible,\r\n parserData: parserData,\r\n prefixId: prefixId\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n buildingOverlayRef.current = new map4d.BuildingOverlay(option)\r\n buildingOverlayRef.current?.setMap(theMap as map4d.Map)\r\n onCreated && onCreated(buildingOverlayRef.current)\r\n }\r\n\r\n useEffect(() => {\r\n if (theMap && !buildingOverlayRef.current) {\r\n reCreate()\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n buildingOverlayRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n buildingOverlayRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n buildingOverlayRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n reCreate()\r\n }\r\n }, [getUrl, parserData, prefixId, visible])\r\n return null\r\n}\r\nexport default MFBuildingOverlay\r\n","export class VariableTool {\r\n static hasValue = (variable: any) => {\r\n if (variable != undefined && variable != null) {\r\n return true\r\n }\r\n return false\r\n }\r\n}","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\nimport { VariableTool } from '../tool';\r\n\r\ninterface CircleProps {\r\n center: map4d.ILatLng\r\n radius: number\r\n fillColor?: string\r\n fillOpacity?: number\r\n visible?: boolean\r\n strokeColor?: string\r\n strokeWidth?: number\r\n draggable?: boolean\r\n zIndex?: number\r\n elevation?: number\r\n userInteractionEnabled?: boolean\r\n map?: map4d.Map\r\n onCreated?: (circle: map4d.Circle) => void\r\n}\r\n\r\nconst MFCircle = (props: CircleProps) => {\r\n const {\r\n center,\r\n radius,\r\n fillColor,\r\n fillOpacity,\r\n visible,\r\n strokeColor,\r\n strokeWidth,\r\n draggable,\r\n zIndex,\r\n elevation,\r\n userInteractionEnabled,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const circleRef = useRef<map4d.Circle>()\r\n\r\n useEffect(() => {\r\n if (theMap && !circleRef.current) {\r\n let option = {\r\n center: center || { lat: 10.793113, lng: 106.720739 },\r\n radius: radius,\r\n fillColor: fillColor,\r\n fillOpacity: fillOpacity,\r\n visible: visible,\r\n strokeColor: strokeColor,\r\n strokeWidth: strokeWidth,\r\n draggable: draggable,\r\n zIndex: zIndex,\r\n elevation: elevation,\r\n userInteractionEnabled: userInteractionEnabled,\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n circleRef.current = new map4d.Circle(option)\r\n circleRef.current?.setMap(theMap)\r\n onCreated && onCreated(circleRef.current)\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n circleRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n circleRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n circleRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (VariableTool.hasValue(center)) {\r\n circleRef.current?.setCenter(center)\r\n }\r\n\r\n }, [center])\r\n useEffect(() => {\r\n if (VariableTool.hasValue(radius)) {\r\n circleRef.current?.setRadius(radius as number)\r\n }\r\n }, [radius])\r\n useEffect(() => {\r\n if (VariableTool.hasValue(fillColor)) {\r\n circleRef.current?.setFillColor(fillColor as string)\r\n }\r\n }, [fillColor])\r\n useEffect(() => {\r\n if (VariableTool.hasValue(fillOpacity)) {\r\n circleRef.current?.setFillOpacity(fillOpacity as number)\r\n }\r\n }, [fillOpacity])\r\n useEffect(() => {\r\n if (VariableTool.hasValue(visible)) {\r\n circleRef.current?.setVisible(visible as boolean)\r\n }\r\n }, [visible])\r\n useEffect(() => {\r\n if (VariableTool.hasValue(strokeColor)) {\r\n circleRef.current?.setStrokeColor(strokeColor as string)\r\n }\r\n }, [strokeColor])\r\n useEffect(() => {\r\n if (VariableTool.hasValue(strokeWidth)) {\r\n circleRef.current?.setStrokeWidth(strokeWidth as number)\r\n }\r\n }, [strokeWidth])\r\n useEffect(() => {\r\n if (VariableTool.hasValue(draggable)) {\r\n circleRef.current?.setDraggable(draggable as boolean)\r\n }\r\n }, [draggable])\r\n useEffect(() => {\r\n if (VariableTool.hasValue(zIndex)) {\r\n circleRef.current?.setZIndex(zIndex as number)\r\n }\r\n }, [zIndex])\r\n useEffect(() => {\r\n if (VariableTool.hasValue(elevation)) {\r\n circleRef.current?.setElevation(elevation as number)\r\n }\r\n }, [elevation])\r\n useEffect(() => {\r\n if (VariableTool.hasValue(userInteractionEnabled)) {\r\n circleRef.current?.setUserInteraction(userInteractionEnabled as boolean)\r\n }\r\n }, [userInteractionEnabled])\r\n\r\n return null\r\n}\r\n\r\nexport default MFCircle\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface DataLayerProps {\r\n geoJsonString: string\r\n map?: map4d.Map\r\n onCreated?: (dataLeyer?: map4d.Data.Feature[]) => void\r\n}\r\n\r\nconst MFDataLayer = (props: DataLayerProps) => {\r\n const {\r\n geoJsonString,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const dataLayerRef = useRef<map4d.Data.Feature[]>()\r\n\r\n\r\n const reCreate = () => {\r\n dataLayerRef.current?.forEach((feature) => {\r\n theMap?.data?.remove(feature)\r\n })\r\n dataLayerRef.current = theMap?.data?.addGeoJson(geoJsonString)\r\n onCreated && onCreated(dataLayerRef.current)\r\n }\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n reCreate()\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n return () => {\r\n dataLayerRef.current?.forEach((feature) => {\r\n theMap?.data?.remove(feature)\r\n })\r\n }\r\n }, [])\r\n return null\r\n}\r\nexport default MFDataLayer\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface DirectionsRendererProps {\r\n routes?: string | object | map4d.RouteOptions | map4d.ILatLng[][]\r\n\r\n /**\r\n * @deprecated The `directions` prop is no longer support, which is subject to removal in a future versions. Use\r\n * the `routes` prop instead.\r\n */\r\n directions?: string\r\n activedIndex?: number\r\n\r\n activeStrokeWidth?: number\r\n activeStrokeColor?: string\r\n activeOutlineWidth?: number\r\n activeOutlineColor?: string\r\n activeStrokePattern?: map4d.PatternItem\r\n\r\n inactiveStrokeWidth?: number\r\n inactiveStrokeColor?: string\r\n inactiveOutlineWidth?: number\r\n inactiveOutlineColor?: string\r\n inactiveStrokePattern?: map4d.PatternItem\r\n\r\n originMarkerOptions?: map4d.MarkerOptions\r\n destinationMarkerOptions?: map4d.MarkerOptions\r\n waypointMarkerOptions?: map4d.MarkerOptions[]\r\n\r\n onMarkerDragEnd?: Function,\r\n\r\n map?: map4d.Map,\r\n onCreated?: (directionsRenderer?: map4d.DirectionsRenderer) => void\r\n}\r\n\r\nconst MFDirectionsRenderer = (props: DirectionsRendererProps) => {\r\n const {\r\n routes,\r\n activedIndex,\r\n activeStrokeWidth,\r\n activeStrokeColor,\r\n activeOutlineWidth,\r\n activeOutlineColor,\r\n activeStrokePattern,\r\n inactiveStrokeWidth,\r\n inactiveStrokeColor,\r\n inactiveOutlineWidth,\r\n inactiveOutlineColor,\r\n inactiveStrokePattern,\r\n originMarkerOptions,\r\n destinationMarkerOptions,\r\n waypointMarkerOptions,\r\n onMarkerDragEnd,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const directionRef = useRef<map4d.DirectionsRenderer>()\r\n\r\n useEffect(() => {\r\n if (theMap && !directionRef.current) {\r\n let option = {\r\n routes,\r\n activedIndex,\r\n activeStrokeWidth,\r\n activeStrokeColor,\r\n activeOutlineWidth,\r\n activeOutlineColor,\r\n activeStrokePattern,\r\n inactiveStrokeWidth,\r\n inactiveStrokeColor,\r\n inactiveOutlineWidth,\r\n inactiveOutlineColor,\r\n inactiveStrokePattern,\r\n originMarkerOptions,\r\n destinationMarkerOptions,\r\n waypointMarkerOptions,\r\n onMarkerDragEnd\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n directionRef.current = new map4d.DirectionsRenderer(option)\r\n directionRef.current?.setMap(theMap)\r\n onCreated && onCreated(directionRef.current)\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n directionRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n directionRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n directionRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n routes != undefined && directionRef.current?.setRoutes(routes)\r\n }, [routes])\r\n useEffect(() => {\r\n activedIndex != undefined && directionRef.current?.setActivedIndex(activedIndex)\r\n }, [activedIndex])\r\n useEffect(() => {\r\n activeStrokePattern != undefined && directionRef.current?.setActiveStrokePattern(activeStrokePattern)\r\n }, [activeStrokePattern])\r\n useEffect(() => {\r\n inactiveStrokePattern != undefined && directionRef.current?.setInactiveStrokePattern(inactiveStrokePattern)\r\n }, [inactiveStrokePattern])\r\n useEffect(() => {\r\n let option = {\r\n routes,\r\n activedIndex,\r\n activeStrokeWidth,\r\n activeStrokeColor,\r\n activeOutlineWidth,\r\n activeOutlineColor,\r\n activeStrokePattern,\r\n inactiveStrokeWidth,\r\n inactiveStrokeColor,\r\n inactiveOutlineWidth,\r\n inactiveOutlineColor,\r\n inactiveStrokePattern,\r\n originMarkerOptions,\r\n destinationMarkerOptions,\r\n waypointMarkerOptions,\r\n onMarkerDragEnd\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n directionRef.current?.setOptions(option)\r\n },\r\n [\r\n activeStrokeWidth,\r\n activeStrokeColor,\r\n activeOutlineWidth,\r\n activeOutlineColor,\r\n inactiveStrokeColor,\r\n inactiveOutlineWidth,\r\n inactiveOutlineColor,\r\n originMarkerOptions,\r\n destinationMarkerOptions,\r\n waypointMarkerOptions,\r\n onMarkerDragEnd\r\n ]\r\n )\r\n\r\n\r\n return null\r\n}\r\nexport default MFDirectionsRenderer\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface GroundOverlayProps extends map4d.GroundOverlayOptions {\r\n map?: map4d.Map\r\n onCreated?: (groundOverlay: map4d.GroundOverlay) => void\r\n}\r\n\r\nconst MFGroundOverlay = (props: GroundOverlayProps) => {\r\n const {\r\n bounds,\r\n getUrl,\r\n override,\r\n visible,\r\n zIndex,\r\n opacity,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const groundOverlayRef = useRef<map4d.GroundOverlay>()\r\n\r\n\r\n const reCreate = () => {\r\n groundOverlayRef.current?.setMap(null as unknown as map4d.Map)\r\n let option = {\r\n bounds,\r\n getUrl: getUrl,\r\n override,\r\n visible: visible,\r\n zIndex: zIndex,\r\n opacity: opacity\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n groundOverlayRef.current = new map4d.TileOverlay(option)\r\n groundOverlayRef.current?.setMap(theMap as map4d.Map)\r\n onCreated && onCreated(groundOverlayRef.current)\r\n }\r\n\r\n useEffect(() => {\r\n if (theMap && !groundOverlayRef.current) {\r\n reCreate()\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n groundOverlayRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n groundOverlayRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n groundOverlayRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n reCreate()\r\n }\r\n }, [bounds, getUrl, override])\r\n useEffect(() => {\r\n visible != undefined && groundOverlayRef.current?.setVisible(visible)\r\n }, [visible])\r\n useEffect(() => {\r\n zIndex != undefined && groundOverlayRef.current?.setZIndex(zIndex)\r\n }, [zIndex])\r\n useEffect(() => {\r\n opacity != undefined && groundOverlayRef.current?.setOpacity(opacity)\r\n }, [opacity])\r\n return null\r\n}\r\nexport default MFGroundOverlay\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface ImageOverlayProps extends map4d.ImageOverlayOptions {\r\n map?: map4d.Map,\r\n onCreated?: (imageOverlay: map4d.ImageOverlay) => void\r\n}\r\n\r\nconst MFImageOverlay = (props: ImageOverlayProps) => {\r\n const {\r\n url,\r\n bounds,\r\n visible,\r\n zIndex,\r\n opacity,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const imageOverlayRef = useRef<map4d.ImageOverlay>()\r\n\r\n\r\n const reCreate = () => {\r\n imageOverlayRef.current?.setMap(null as unknown as map4d.Map)\r\n let option = {\r\n url,\r\n bounds: bounds,\r\n visible: visible,\r\n zIndex: zIndex,\r\n opacity: opacity\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n imageOverlayRef.current = new map4d.ImageOverlay(option)\r\n imageOverlayRef.current?.setMap(theMap as map4d.Map)\r\n onCreated && onCreated(imageOverlayRef.current)\r\n }\r\n\r\n useEffect(() => {\r\n if (theMap && !imageOverlayRef.current) {\r\n reCreate()\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n imageOverlayRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n imageOverlayRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n imageOverlayRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n reCreate()\r\n }\r\n }, [url, bounds, zIndex])\r\n useEffect(() => {\r\n visible != undefined && imageOverlayRef.current?.setVisible(visible)\r\n }, [visible])\r\n useEffect(() => {\r\n opacity != undefined && imageOverlayRef.current?.setOpacity(opacity)\r\n }, [opacity])\r\n return null\r\n}\r\nexport default MFImageOverlay\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { Map4dContext } from '../context';\r\nimport { MapEventEnum } from '../enum';\r\n\r\nexport function addLibrary(url: string, id: string) {\r\n let scriptId = `script_${id}`\r\n let exist = document.getElementById(scriptId)\r\n if (exist) {\r\n return null\r\n }\r\n const script = document.createElement('script')\r\n script.src = url;\r\n script.defer = true;\r\n script.id = scriptId\r\n document.body.appendChild(script)\r\n return script\r\n}\r\n\r\nconst createId = () => {\r\n var dt = new Date().getTime();\r\n var uuid = 'xxxxxxxx_xxxx_4xxx_yxxx_xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = (dt + Math.random() * 16) % 16 | 0;\r\n dt = Math.floor(dt / 16);\r\n return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n return uuid;\r\n}\r\ninterface MapOptions {\r\n center?: any\r\n zoom?: number\r\n minZoom?: number\r\n maxZoom?: number\r\n maxNativeZoom?: number\r\n geolocate?: boolean\r\n tilt?: number\r\n bearing?: number\r\n controls?: boolean\r\n mapType?: any\r\n controlOptions?: any\r\n restrictionBounds?: any\r\n shouldChangeMapMode?: Function\r\n cooperativeGestures?: boolean\r\n}\r\ninterface MapProps {\r\n mapid?: string\r\n options: MapOptions,\r\n version: string\r\n accessKey: string,\r\n environment?: \"dev\" | \"test\" | undefined | null,\r\n sdkDomain?: string | null\r\n onMapReady?: (map: any, key?: string) => void\r\n onClickLocation?: (args: any) => void\r\n onRightClickLocation?: (args: any) => void\r\n onCameraChanging?: (args: any) => void\r\n onTilesLoaded?: (args: any) => void\r\n children?: any\r\n}\r\n\r\nconst MFMap = (props: MapProps) => {\r\n\r\n const callback = useRef(`callback`)\r\n const mapDomRef = useRef<any>()\r\n const mapRef = useRef<map4d.Map>()\r\n const scriptElement = useRef<HTMLScriptElement>()\r\n const url = useRef<string>()\r\n const events = useRef<any[]>([])\r\n\r\n const [map, setMap] = useState<map4d.Map>()\r\n\r\n\r\n useEffect(() => {\r\n const id = createId()\r\n callback.current = `callback_${id}`\r\n const createCallback = () => {\r\n window[callback.current] = () => {\r\n if (mapDomRef.current) {\r\n let options = props.options\r\n mapRef.current = new window.map4d.Map(mapDomRef.current, options)\r\n if (props.onMapReady) {\r\n props.onMapReady(mapRef.current, id)\r\n }\r\n registerEvent()\r\n setMap(mapRef.current)\r\n } else {\r\n console.error(`MFMap: map element is NOT found`)\r\n }\r\n }\r\n }\r\n let domain = `https://api${props.environment ? \"-\" + props.environment : \"\"}.map4d.vn`\r\n if (props.sdkDomain) {\r\n domain = props.sdkDomain\r\n }\r\n let urlNew = `${domain}/sdk/map/js?version=${props.version}&key=${props.accessKey}&callback=${callback.current}`\r\n if (props.mapid) {\r\n urlNew += `&mapId=${props.mapid}`\r\n }\r\n createCallback()\r\n let script = addLibrary(urlNew, id)\r\n if (script) {\r\n scriptElement.current = script\r\n }\r\n url.current = urlNew\r\n return () => {\r\n const destroy = () => {\r\n delete window[callback.current]\r\n if (scriptElement.current != null) {\r\n scriptElement.current.remove()\r\n }\r\n events.current?.forEach((t: any) => {\r\n t?.remove()\r\n })\r\n mapRef.current?.destroy()\r\n url.current = undefined\r\n }\r\n destroy()\r\n }\r\n }, [props.environment, props.version, props.accessKey])\r\n\r\n const registerEvent = () => {\r\n let eventClickMarker = mapRef.current?.addListener(MapEventEnum.click, (args: any) => {\r\n args.marker?.onClick && args.marker?.onClick()\r\n }, {\r\n marker: true\r\n })\r\n let eventRightClickMarker = mapRef.current?.addListener(MapEventEnum.rightClick, (args: any) => {\r\n args.marker?.onRightClick && args.marker?.onRightClick()\r\n }, {\r\n marker: true\r\n })\r\n let eventDragEndMarker = mapRef.current?.addListener(MapEventEnum.dragEnd, (args: any) => {\r\n args.marker?.onDragEnd && args.marker?.onDragEnd()\r\n }, {\r\n marker: true\r\n })\r\n events.current = events.current.concat([eventClickMarker, eventRightClickMarker, eventDragEndMarker])\r\n if (props.onClickLocation) {\r\n let onClickLocation = mapRef.current?.addListener(MapEventEnum.click, (args: any) => {\r\n props.onClickLocation && props.onClickLocation(args)\r\n }, {\r\n location: true\r\n })\r\n events.current.push(onClickLocation)\r\n }\r\n if (props.onRightClickLocation) {\r\n let onRightClickLocation = mapRef.current?.addListener(MapEventEnum.rightClick, (args: any) => {\r\n props.onRightClickLocation && props.onRightClickLocation(args)\r\n }, {\r\n location: true\r\n })\r\n events.current.push(onRightClickLocation)\r\n }\r\n if (props.onTilesLoaded) {\r\n let onTilesLoaded = mapRef.current?.addListener(MapEventEnum.tilesLoaded, (args: any) => {\r\n props.onTilesLoaded && props.onTilesLoaded(args)\r\n }, {\r\n location: true\r\n })\r\n events.current.push(onTilesLoaded)\r\n }\r\n if (props.onCameraChanging) {\r\n let onCameraChanging = mapRef.current?.addListener(MapEventEnum.cameraChanging, (args: any) => {\r\n props.onCameraChanging && props.onCameraChanging(args)\r\n }, {\r\n location: true\r\n })\r\n events.current.push(onCameraChanging)\r\n }\r\n }\r\n let newContext = {\r\n map: map\r\n }\r\n const refDiv = (r: any) => {\r\n mapDomRef.current = r\r\n }\r\n return (\r\n <Map4dContext.Provider value={newContext}>\r\n <div\r\n style={{ width: '100%', height: '100%', display: 'block' }}\r\n ref={refDiv}>\r\n </div>\r\n {\r\n props.children\r\n }\r\n </Map4dContext.Provider>\r\n );\r\n}\r\n\r\nexport default MFMap;\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext, MarkerClusterContext } from '../context';\r\n\r\ninterface IconProps {\r\n width: number,\r\n height: number,\r\n url: string\r\n}\r\ninterface MarkerProps {\r\n position: any\r\n visible?: boolean\r\n anchor?: any\r\n labelAnchor?: any\r\n icon?: IconProps\r\n elevation?: number\r\n rotation?: number\r\n title?: string\r\n snippet?: string\r\n windowAnchor?: any\r\n zIndex?: number\r\n label?: any\r\n draggable?: boolean\r\n iconView?: string | Node\r\n userInteractionEnabled?: boolean\r\n map?: any,\r\n infoWindow?: string | Node\r\n infoContents?: string | Node\r\n showInfoWindow?: boolean\r\n onClick?: (marker: any) => void\r\n onCreated?: (marker: any) => void\r\n onRightClick?: (marker: any) => void\r\n onDragEnd?: (marker: any) => void\r\n}\r\n\r\nconst MFMarker = (props: MarkerProps) => {\r\n const {\r\n position,\r\n visible = true,\r\n anchor,\r\n labelAnchor,\r\n icon,\r\n elevation,\r\n rotation,\r\n title,\r\n snippet,\r\n windowAnchor,\r\n zIndex,\r\n label,\r\n draggable,\r\n iconView,\r\n userInteractionEnabled,\r\n map,\r\n onCreated,\r\n onClick\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const markerClusterContext = useContext(MarkerClusterContext)\r\n\r\n const theMap = map || map4dContext.map\r\n const markerRef = useRef<any>()\r\n\r\n useEffect(() => {\r\n if (theMap && !markerRef.current) {\r\n let option = {\r\n position: position || { lat: 10.793113, lng: 106.720739 },\r\n visible: visible,\r\n anchor: anchor,\r\n labelAnchor: labelAnchor,\r\n elevation: elevation,\r\n rotation: rotation,\r\n title: title,\r\n snippet: snippet,\r\n windowAnchor: windowAnchor,\r\n zIndex: zIndex,\r\n label: label,\r\n draggable: draggable,\r\n iconView: iconView,\r\n userInteractionEnabled: userInteractionEnabled\r\n } as map4d.MarkerOptions\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n if (icon) {\r\n let iconT = new map4d.Icon(icon.width, icon.height, icon.url)\r\n option.icon = iconT\r\n }\r\n markerRef.current = new map4d.Marker(option)\r\n if (props.infoWindow != undefined) {\r\n markerRef.current.setInfoWindow(props.infoWindow)\r\n }\r\n if (props.infoContents != undefined) {\r\n markerRef.current.setInfoContents(props.infoContents)\r\n }\r\n if (!markerClusterContext?.addMarker) {\r\n markerRef.current.setMap(theMap)\r\n }\r\n if (props.showInfoWindow != undefined) {\r\n props.showInfoWindow ? markerRef.current.showInfoWindow() : markerRef.current.hideInfoWindow()\r\n }\r\n markerRef.current.onClick = onClick\r\n markerRef.current.onRightClick = props.onRightClick\r\n markerRef.current.onDragEnd = props.onDragEnd\r\n onCreated && onCreated(markerRef.current)\r\n markerClusterContext?.addMarker && markerClusterContext?.addMarker(markerRef.current)\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n if (!markerClusterContext?.addMarker) {\r\n markerRef.current?.setMap(theMap)\r\n }\r\n }\r\n return () => {\r\n if (!markerClusterContext?.addMarker) {\r\n markerRef.current?.setMap(null)\r\n }\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n if (!markerClusterContext?.addMarker) {\r\n markerRef.current?.setMap(null)\r\n }\r\n markerRef.current && markerClusterContext?.removeMarker && markerClusterContext?.removeMarker(markerRef.current)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n markerRef.current?.setPosition(position)\r\n }, [position])\r\n useEffect(() => {\r\n markerRef.current?.setVisible(visible)\r\n }, [visible])\r\n useEffect(() => {\r\n anchor != undefined && markerRef.current?.setAnchor(anchor)\r\n }, [anchor])\r\n useEffect(() => {\r\n labelAnchor != undefined && markerRef.current?.setLabelAnchor(labelAnchor)\r\n }, [labelAnchor])\r\n useEffect(() => {\r\n icon != undefined && markerRef.current?.setIcon(icon)\r\n }, [icon])\r\n useEffect(() => {\r\n elevation != undefined && markerRef.current?.setElevation(elevation)\r\n }, [elevation])\r\n useEffect(() => {\r\n rotation != undefined && markerRef.current?.setRotation(rotation)\r\n }, [rotation])\r\n useEffect(() => {\r\n title != undefined && markerRef.current?.setTitle(title)\r\n }, [title])\r\n useEffect(() => {\r\n snippet != undefined && markerRef.current?.setSnippet(snippet)\r\n }, [snippet])\r\n useEffect(() => {\r\n windowAnchor != undefined && markerRef.current?.setWindowAnchor(windowAnchor)\r\n }, [windowAnchor])\r\n useEffect(() => {\r\n zIndex != undefined && markerRef.current?.setZIndex(zIndex)\r\n }, [zIndex])\r\n useEffect(() => {\r\n label != undefined && markerRef.current?.setLabel(label)\r\n }, [label])\r\n useEffect(() => {\r\n draggable != undefined && markerRef.current?.setDraggable(draggable)\r\n }, [draggable])\r\n\r\n useEffect(() => {\r\n iconView != undefined && markerRef.current?.setIconView(iconView)\r\n }, [iconView])\r\n\r\n useEffect(() => {\r\n userInteractionEnabled != undefined && markerRef.current?.setUserInteraction(userInteractionEnabled)\r\n }, [userInteractionEnabled])\r\n\r\n useEffect(() => {\r\n icon != undefined && markerRef.current?.setIcon(new map4d.Icon(icon.width, icon.height, icon.url))\r\n }, [icon])\r\n\r\n useEffect(() => {\r\n props.infoWindow != undefined && markerRef.current?.setInfoWindow(props.infoWindow)\r\n }, [props.infoWindow])\r\n\r\n useEffect(() => {\r\n props.infoContents != undefined && markerRef.current?.setInfoContents(props.infoContents)\r\n }, [props.infoContents])\r\n\r\n useEffect(() => {\r\n if (props.showInfoWindow != undefined) {\r\n props.showInfoWindow ? markerRef.current.showInfoWindow() : markerRef.current.hideInfoWindow()\r\n }\r\n }, [props.showInfoWindow])\r\n return null\r\n}\r\nexport default MFMarker\r\n","import React, { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext, MarkerClusterContext } from '../context';\r\n\r\ninterface MarkerClusterProps extends map4d.MarkerClusterOptions {\r\n map?: map4d.Map,\r\n onCreated?: (markerCluster: map4d.MarkerClusterer) => void,\r\n children?: any\r\n}\r\n\r\nconst MFMarkerCluster = (props: MarkerClusterProps) => {\r\n const {\r\n minZoom = 0,\r\n maxZoom = 22,\r\n radius = 100,\r\n zoomOnClick,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const markerRefs = useRef<map4d.Marker[]>([])\r\n const markerClusterRef = useRef<map4d.MarkerClusterer>()\r\n\r\n const drawCluster = () => {\r\n markerClusterRef.current?.setMap(null)\r\n if (theMap) {\r\n let option = {\r\n minZoom: minZoom,\r\n maxZoom: maxZoom,\r\n radius: radius,\r\n zoomOnClick: zoomOnClick\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n markerClusterRef.current = new map4d.MarkerClusterer(markerRefs.current, option)\r\n markerClusterRef.current?.setMap(theMap)\r\n onCreated && onCreated(markerClusterRef.current)\r\n }\r\n }\r\n const clusterContext = {\r\n addMarker: (marker: map4d.Marker) => {\r\n markerRefs.current.push(marker)\r\n drawCluster()\r\n },\r\n removeMarker: (marker: map4d.Marker) => {\r\n let newMarkers = markerRefs.current.filter(t => t != marker)\r\n markerRefs.current = newMarkers\r\n drawCluster()\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (theMap && !markerClusterRef.current) {\r\n drawCluster()\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n markerClusterRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n markerClusterRef.current?.setMap(null)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n markerClusterRef.current?.setMap(null)\r\n }\r\n }, [])\r\n useEffect(() => {\r\n if (theMap) {\r\n drawCluster()\r\n }\r\n }, [minZoom, maxZoom, radius])\r\n useEffect(() => {\r\n zoomOnClick != undefined && markerClusterRef.current?.setZoomOnClick(zoomOnClick)\r\n }, [zoomOnClick])\r\n\r\n return (\r\n <MarkerClusterContext.Provider value={clusterContext}>\r\n {props?.children}\r\n </MarkerClusterContext.Provider>\r\n )\r\n}\r\nexport default MFMarkerCluster\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface POIProps extends map4d.POIOptions {\r\n map?: map4d.Map,\r\n onCreated?: (poi: map4d.POI) => void\r\n}\r\n\r\nconst MFPOI = (props: POIProps) => {\r\n const {\r\n position,\r\n title,\r\n subtitle,\r\n color,\r\n type,\r\n icon,\r\n elevation,\r\n zIndex,\r\n visible,\r\n draggable,\r\n userInteractionEnabled,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const poiRef = useRef<map4d.POI>()\r\n\r\n useEffect(() => {\r\n if (theMap && !poiRef.current) {\r\n let option = {\r\n position: position || { lat: 10.793113, lng: 106.720739 },\r\n title: title,\r\n subtitle: subtitle,\r\n color: color,\r\n type: type,\r\n icon: icon,\r\n elevation: elevation,\r\n zIndex: zIndex,\r\n visible: visible,\r\n draggable: draggable,\r\n userInteractionEnabled: userInteractionEnabled\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n poiRef.current = new map4d.POI(option)\r\n poiRef.current?.setMap(theMap)\r\n onCreated && onCreated(poiRef.current)\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n poiRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n poiRef.current?.setMap(null)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n poiRef.current?.setMap(null)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n poiRef.current?.setPosition(position)\r\n }, [position])\r\n useEffect(() => {\r\n title != undefined && poiRef.current?.setTitle(title)\r\n }, [title])\r\n useEffect(() => {\r\n subtitle != undefined && poiRef.current?.setSubtitle(subtitle)\r\n }, [subtitle])\r\n useEffect(() => {\r\n color != undefined && poiRef.current?.setColor(color)\r\n }, [color])\r\n useEffect(() => {\r\n type != undefined && poiRef.current?.setType(type)\r\n }, [type])\r\n useEffect(() => {\r\n icon != undefined && poiRef.current?.setIcon(icon)\r\n }, [icon])\r\n useEffect(() => {\r\n elevation != undefined && poiRef.current?.setElevation(elevation)\r\n }, [elevation])\r\n useEffect(() => {\r\n zIndex != undefined && poiRef.current?.setZIndex(zIndex)\r\n }, [zIndex])\r\n useEffect(() => {\r\n visible != undefined && poiRef.current?.setVisible(visible)\r\n }, [visible])\r\n useEffect(() => {\r\n draggable != undefined && poiRef.current?.setDraggable(draggable)\r\n }, [draggable])\r\n useEffect(() => {\r\n userInteractionEnabled != undefined && poiRef.current?.setUserInteraction(userInteractionEnabled)\r\n }, [userInteractionEnabled])\r\n return null\r\n}\r\nexport default MFPOI\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface POIOverlayProps extends map4d.POIOverlayOptions {\r\n map?: map4d.Map,\r\n onCreated?: (poiOverlay: map4d.POIOverlay) => void\r\n}\r\n\r\nconst MFPOIOverlay = (props: POIOverlayProps) => {\r\n const {\r\n getUrl,\r\n visible = true,\r\n parserData,\r\n prefixId,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const poiOverlayRef = useRef<map4d.POIOverlay>()\r\n\r\n\r\n const reCreate = () => {\r\n poiOverlayRef.current?.setMap(null)\r\n let option = {\r\n getUrl: getUrl || { lat: 10.793113, lng: 106.720739 },\r\n visible: visible,\r\n parserData: parserData,\r\n prefixId: prefixId\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n poiOverlayRef.current = new map4d.POIOverlay(option)\r\n poiOverlayRef.current?.setMap(theMap)\r\n onCreated && onCreated(poiOverlayRef.current)\r\n }\r\n\r\n useEffect(() => {\r\n if (theMap && !poiOverlayRef.current) {\r\n reCreate()\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n poiOverlayRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n poiOverlayRef.current?.setMap(null)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n poiOverlayRef.current?.setMap(null)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n reCreate()\r\n }\r\n }, [getUrl, parserData, prefixId])\r\n return null\r\n}\r\nexport default MFPOIOverlay\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface PolygonProps {\r\n paths: any[][]\r\n fillColor?: string\r\n fillOpacity?: number\r\n visible?: boolean\r\n strokeColor?: string\r\n strokeWidth?: number\r\n draggable?: boolean\r\n zIndex?: number\r\n elevation?: number\r\n userInteractionEnabled?: boolean\r\n map?: map4d.Map,\r\n onCreated?: (polygon: map4d.Polygon) => void\r\n}\r\n\r\nconst MFPolygon = (props: PolygonProps) => {\r\n const {\r\n paths,\r\n fillColor,\r\n fillOpacity,\r\n visible = true,\r\n strokeColor,\r\n strokeWidth,\r\n draggable,\r\n elevation,\r\n zIndex,\r\n userInteractionEnabled,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const polygonRef = useRef<map4d.Polygon>()\r\n\r\n useEffect(() => {\r\n if (theMap && !polygonRef.current) {\r\n let option = {\r\n paths: paths,\r\n fillColor: fillColor,\r\n fillOpacity: fillOpacity,\r\n visible: visible,\r\n strokeColor: strokeColor,\r\n strokeWidth: strokeWidth,\r\n draggable: draggable,\r\n elevation: elevation,\r\n zIndex: zIndex,\r\n userInteractionEnabled: userInteractionEnabled,\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n polygonRef.current = new map4d.Polygon(option)\r\n polygonRef.current?.setMap(theMap)\r\n onCreated && onCreated(polygonRef.current)\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n polygonRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n polygonRef.current?.setMap(null)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n polygonRef.current?.setMap(null)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n polygonRef.current?.setPaths(paths)\r\n }, [paths])\r\n useEffect(() => {\r\n fillColor != undefined && polygonRef.current?.setFillColor(fillColor)\r\n }, [fillColor])\r\n useEffect(() => {\r\n fillOpacity != undefined && polygonRef.current?.setFillOpacity(fillOpacity)\r\n }, [fillOpacity])\r\n useEffect(() => {\r\n polygonRef.current?.setVisible(visible)\r\n }, [visible])\r\n useEffect(() => {\r\n strokeColor != undefined && polygonRef.current?.setStrokeColor(strokeColor)\r\n }, [strokeColor])\r\n useEffect(() => {\r\n strokeWidth != undefined && polygonRef.current?.setStrokeWidth(strokeWidth)\r\n }, [strokeWidth])\r\n useEffect(() => {\r\n draggable != undefined && polygonRef.current?.setDraggable(draggable)\r\n }, [draggable])\r\n useEffect(() => {\r\n elevation != undefined && polygonRef.current?.setElevation(elevation)\r\n }, [elevation])\r\n useEffect(() => {\r\n zIndex != undefined && polygonRef.current?.setZIndex(zIndex)\r\n }, [zIndex])\r\n useEffect(() => {\r\n userInteractionEnabled != undefined && polygonRef.current?.setUserInteraction(userInteractionEnabled)\r\n }, [userInteractionEnabled])\r\n\r\n return null\r\n}\r\nexport default MFPolygon\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface PolylineProps {\r\n path: any[]\r\n strokeWidth: number\r\n strokeColor?: string\r\n strokeOpacity?: number\r\n visible?: boolean\r\n closed?: boolean\r\n draggable?: boolean\r\n zIndex?: number\r\n elevation?: number\r\n strokePattern?: any\r\n userInteractionEnabled?: boolean\r\n map?: map4d.Map,\r\n onCreated?: (polyline: map4d.Polyline) => void\r\n}\r\n\r\nconst MFPolyline = (props: PolylineProps) => {\r\n const {\r\n path,\r\n strokeWidth,\r\n strokeColor,\r\n strokeOpacity,\r\n visible = true,\r\n closed,\r\n draggable,\r\n zIndex,\r\n elevation,\r\n strokePattern,\r\n userInteractionEnabled,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const polylineRef = useRef<map4d.Polyline>()\r\n\r\n useEffect(() => {\r\n if (theMap && !polylineRef.current) {\r\n let option = {\r\n path: path || { lat: 10.793113, lng: 106.720739 },\r\n strokeWidth: strokeWidth,\r\n strokeColor: strokeColor,\r\n strokeOpacity: strokeOpacity,\r\n visible: visible,\r\n closed: closed,\r\n draggable: draggable,\r\n zIndex: zIndex,\r\n elevation: elevation,\r\n strokePattern: strokePattern,\r\n userInteractionEnabled: userInteractionEnabled,\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n polylineRef.current = new map4d.Polyline(option)\r\n polylineRef.current?.setMap(theMap)\r\n onCreated && onCreated(polylineRef.current)\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n polylineRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n polylineRef.current?.setMap(null)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n polylineRef.current?.setMap(null)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n polylineRef.current?.setPath(path)\r\n }, [path])\r\n useEffect(() => {\r\n strokeWidth != undefined && polylineRef.current?.setStrokeWidth(strokeWidth)\r\n }, [strokeWidth])\r\n useEffect(() => {\r\n strokeColor != undefined && polylineRef.current?.setStrokeColor(strokeColor)\r\n }, [strokeColor])\r\n useEffect(() => {\r\n strokeOpacity != undefined && polylineRef.current?.setStrokeOpacity(strokeOpacity)\r\n }, [strokeOpacity])\r\n useEffect(() => {\r\n visible != undefined && polylineRef.current?.setVisible(visible)\r\n }, [visible])\r\n useEffect(() => {\r\n closed != undefined && polylineRef.current?.setClosed(closed)\r\n }, [closed])\r\n useEffect(() => {\r\n draggable != undefined && polylineRef.current?.setDraggable(draggable)\r\n }, [draggable])\r\n useEffect(() => {\r\n zIndex != undefined && polylineRef.current?.setZIndex(zIndex)\r\n }, [zIndex])\r\n useEffect(() => {\r\n elevation != undefined && polylineRef.current?.setElevation(elevation)\r\n }, [elevation])\r\n useEffect(() => {\r\n strokePattern != undefined && polylineRef.current?.setStrokePattern(strokePattern)\r\n }, [strokePattern])\r\n useEffect(() => {\r\n userInteractionEnabled != undefined && polylineRef.current?.setUserInteraction(userInteractionEnabled)\r\n }, [userInteractionEnabled])\r\n\r\n return null\r\n}\r\nexport default MFPolyline\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface TileOverlayProps {\r\n getUrl: Function\r\n visible?: boolean\r\n zIndex?: number\r\n opacity?: number\r\n map?: map4d.Map,\r\n onCreated?: (tileOverlay: map4d.TileOverlay) => void\r\n}\r\n\r\nconst MFTileOverlay = (props: TileOverlayProps) => {\r\n const {\r\n getUrl,\r\n visible = true,\r\n zIndex,\r\n opacity,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const tileOverlayRef = useRef<map4d.TileOverlay>()\r\n\r\n\r\n const reCreate = () => {\r\n tileOverlayRef.current?.setMap(null)\r\n let option = {\r\n getUrl: getUrl || { lat: 10.793113, lng: 106.720739 },\r\n visible: visible,\r\n zIndex: zIndex,\r\n opacity: opacity\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n tileOverlayRef.current = new map4d.TileOverlay(option)\r\n tileOverlayRef.current?.setMap(theMap)\r\n onCreated && onCreated(tileOverlayRef.current)\r\n }\r\n\r\n useEffect(() => {\r\n if (theMap && !tileOverlayRef.current) {\r\n reCreate()\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n tileOverlayRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n tileOverlayRef.current?.setMap(null)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n tileOverlayRef.current?.setMap(null)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n reCreate()\r\n }\r\n }, [getUrl])\r\n useEffect(() => {\r\n tileOverlayRef.current?.setVisible(visible)\r\n }, [visible])\r\n useEffect(() => {\r\n zIndex != undefined && tileOverlayRef.current?.setZIndex(zIndex)\r\n }, [zIndex])\r\n useEffect(() => {\r\n opacity != undefined && tileOverlayRef.current?.setOpacity(opacity)\r\n }, [opacity])\r\n return null\r\n}\r\nexport default MFTileOverlay\r\n"],"names":["defaultCt","map","Map4dContext","createContext","markerClusterDefaultContext","addMarker","removeMarker","MarkerClusterContext","MFBuilding","props","position","name","scale","bearing","elevation","height","model","texture","coordinates","visible","draggable","userInteractionEnabled","selected","growUp","onCreated","map4dContext","useContext","theMap","buildingRef","useRef","useEffect","current","length","option","lat","lng","Object","keys","forEach","key","undefined","map4d","Building","setMap","setPosition","setName","setScale","setBearing","setElevation","setHeight","setModel","setTexture","setCoordinates","setVisible","setDraggable","setUserInteraction","setSelected","setGrowUp","MFBuildingOverlay","getUrl","parserData","prefixId","buildingOverlayRef","reCreate","BuildingOverlay","VariableTool","variable","MFCircle","center","radius","fillColor","fillOpacity","strokeColor","strokeWidth","zIndex","circleRef","Circle","hasValue","setCenter","setRadius","setFillColor","setFillOpacity","setStrokeColor","setStrokeWidth","setZIndex","MFDataLayer","geoJsonString","dataLayerRef","feature","data","remove","addGeoJson","MFDirectionsRenderer","routes","activedIndex","activeStrokeWidth","activeStrokeColor","activeOutlineWidth","activeOutlineColor","activeStrokePattern","inactiveStrokeWidth","inactiveStrokeColor","inactiveOutlineWidth","inactiveOutlineColor","inactiveStrokePattern","originMarkerOptions","destinationMarkerOptions","waypointMarkerOptions","onMarkerDragEnd","directionRef","DirectionsRenderer","setRoutes","setActivedIndex","setActiveStrokePattern","setInactiveStrokePattern","setOptions","MFGroundOverlay","bounds","override","opacity","groundOverlayRef","TileOverlay","setOpacity","MFImageOverlay","url","imageOverlayRef","ImageOverlay","addLibrary","id","scriptId","exist","document","getElementById","script","createElement","src","defer","body","appendChild","createId","dt","Date","getTime","uuid","replace","c","r","Math","random","floor","toString","MFMap","callback","mapDomRef","mapRef","scriptElement","events","useState","createCallback","window","options","Map","onMapReady","registerEvent","console","error","domain","environment","sdkDomain","urlNew","version","accessKey","mapid","destroy","t","eventClickMarker","addListener","args","marker","onClick","eventRightClickMarker","onRightClick","eventDragEndMarker","onDragEnd","concat","onClickLocation","location","push","onRightClickLocation","onTilesLoaded","onCameraChanging","newContext","refDiv","React","Provider","value","style","width","display","ref","children","MFMarker","anchor","labelAnchor","icon","rotation","title","snippet","windowAnchor","label","iconView","markerClusterContext","markerRef","iconT","Icon","Marker","infoWindow","setInfoWindow","infoContents","setInfoContents","showInfoWindow","hideInfoWindow","setAnchor","setLabelAnchor","setIcon","setRotation","setTitle","setSnippet","setWindowAnchor","setLabel","setIconView","MFMarkerCluster","minZoom","maxZoom","zoomOnClick","markerRefs","markerClusterRef","drawCluster","MarkerClusterer","clusterContext","newMarkers","filter","setZoomOnClick","MFPOI","subtitle","color","type","poiRef","POI","setSubtitle","setColor","setType","MFPOIOverlay","poiOverlayRef","POIOverlay","MFPolygon","paths","polygonRef","Polygon","setPaths","MFPolyline","path","strokeOpacity","closed","strokePattern","polylineRef","Polyline","setPath","setStrokeOpacity","setClosed","setStrokePattern","MFTileOverlay","tileOverlayRef"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/context/Map4dContext.ts","../src/context/MarkerClusterContext.ts","../src/components/MFBuilding.tsx","../src/components/MFBuildingOverlay.tsx","../src/tool/variableTool.ts","../src/components/MFCircle.tsx","../src/components/MFDataLayer.tsx","../src/components/MFDirectionsRenderer.tsx","../src/components/MFGroundOverlay.tsx","../src/components/MFImageOverlay.tsx","../src/components/MFMap.tsx","../src/components/MFMarker.tsx","../src/components/MFMarkerCluster.tsx","../src/components/MFPOI.tsx","../src/components/MFPOIOverlay.tsx","../src/components/MFPolygon.tsx","../src/components/MFPolyline.tsx","../src/components/MFTileOverlay.tsx"],"sourcesContent":["import { createContext } from 'react';\r\n\r\nexport const defaultCt = {\r\n map: null as any,\r\n}\r\nexport const Map4dContext = createContext(defaultCt)","import { createContext } from 'react';\r\n\r\nexport const markerClusterDefaultContext = {\r\n addMarker: null as unknown as (marker: map4d.Marker)=>void,\r\n removeMarker: null as unknown as (marker: map4d.Marker)=>void,\r\n}\r\nexport const MarkerClusterContext = createContext(markerClusterDefaultContext)","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface BuildingProps {\r\n position?: map4d.ILatLng\r\n name?: string\r\n scale?: number\r\n bearing?: number\r\n elevation?: number\r\n height?: number\r\n model?: string\r\n texture?: string\r\n coordinates?: map4d.ILatLng[]\r\n zIndex?: number\r\n visible?: boolean\r\n draggable?: boolean\r\n userInteractionEnabled?: boolean\r\n selected?: boolean\r\n growUp?: boolean\r\n map?: map4d.Map\r\n onCreated?: (building: map4d.Building) => void\r\n}\r\nconst MFBuilding = (props: BuildingProps) => {\r\n const {\r\n position,\r\n name,\r\n scale,\r\n bearing,\r\n elevation,\r\n height,\r\n model,\r\n texture,\r\n coordinates,\r\n visible,\r\n draggable,\r\n userInteractionEnabled,\r\n selected,\r\n growUp,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const buildingRef = useRef(null as unknown as map4d.Building)\r\n\r\n useEffect(() => {\r\n if (theMap && !buildingRef.current && (coordinates && coordinates?.length > 0 || model)) {\r\n let option = {\r\n position: position || { lat: 10.793113, lng: 106.720739 },\r\n name: name,\r\n scale: scale,\r\n bearing: bearing,\r\n elevation: elevation,\r\n height: height,\r\n model: model,\r\n texture: texture,\r\n coordinates: coordinates,\r\n visible: visible,\r\n draggable: draggable,\r\n userInteractionEnabled: userInteractionEnabled,\r\n selected: selected,\r\n growUp: growUp\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n buildingRef.current = new map4d.Building(option)\r\n buildingRef.current?.setMap(theMap)\r\n onCreated && onCreated(buildingRef.current)\r\n }\r\n }, [theMap, position, coordinates, model])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n buildingRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n buildingRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n buildingRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n buildingRef.current?.setPosition(position as map4d.ILatLng)\r\n }, [position])\r\n useEffect(() => {\r\n name != undefined && buildingRef.current?.setName(name)\r\n }, [name])\r\n useEffect(() => {\r\n scale != undefined && buildingRef.current?.setScale(scale)\r\n }, [scale])\r\n useEffect(() => {\r\n if (bearing != undefined) {\r\n buildingRef.current?.setBearing(bearing)\r\n }\r\n }, [bearing])\r\n useEffect(() => {\r\n elevation != undefined && buildingRef.current?.setElevation(elevation)\r\n }, [elevation])\r\n useEffect(() => {\r\n height != undefined && buildingRef.current?.setHeight(height)\r\n }, [height])\r\n useEffect(() => {\r\n model != undefined && buildingRef.current?.setModel(model)\r\n }, [model])\r\n useEffect(() => {\r\n texture != undefined && buildingRef.current?.setTexture(texture)\r\n }, [texture])\r\n useEffect(() => {\r\n coordinates != undefined && buildingRef.current?.setCoordinates(coordinates)\r\n }, [coordinates])\r\n useEffect(() => {\r\n visible != undefined && buildingRef.current?.setVisible(visible)\r\n }, [visible])\r\n useEffect(() => {\r\n draggable != undefined && buildingRef.current?.setDraggable(draggable)\r\n }, [draggable])\r\n useEffect(() => {\r\n userInteractionEnabled != undefined && buildingRef.current?.setUserInteraction(userInteractionEnabled)\r\n }, [userInteractionEnabled])\r\n useEffect(() => {\r\n selected != undefined && buildingRef.current?.setSelected(selected)\r\n }, [selected])\r\n useEffect(() => {\r\n growUp != undefined && buildingRef.current?.setGrowUp(growUp)\r\n }, [growUp])\r\n return null\r\n}\r\nexport default MFBuilding\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface BuildingOverlayProps {\r\n getUrl: (x: number, y: number, zoom: number) => any\r\n parserData: (response: any) => any\r\n prefixId?: string\r\n visible?: boolean\r\n map?: map4d.Map\r\n onCreated?: (buildingOverlay: map4d.BuildingOverlay) => void\r\n}\r\nconst MFBuildingOverlay = (props: BuildingOverlayProps) => {\r\n const {\r\n getUrl,\r\n visible,\r\n parserData,\r\n prefixId,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const buildingOverlayRef = useRef<map4d.BuildingOverlay>()\r\n\r\n\r\n const reCreate = () => {\r\n buildingOverlayRef.current?.setMap(null as unknown as map4d.Map)\r\n let option = {\r\n getUrl: getUrl || { lat: 10.793113, lng: 106.720739 },\r\n visible: visible,\r\n parserData: parserData,\r\n prefixId: prefixId\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n buildingOverlayRef.current = new map4d.BuildingOverlay(option)\r\n buildingOverlayRef.current?.setMap(theMap as map4d.Map)\r\n onCreated && onCreated(buildingOverlayRef.current)\r\n }\r\n\r\n useEffect(() => {\r\n if (theMap && !buildingOverlayRef.current) {\r\n reCreate()\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n buildingOverlayRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n buildingOverlayRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n buildingOverlayRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n reCreate()\r\n }\r\n }, [getUrl, parserData, prefixId, visible])\r\n return null\r\n}\r\nexport default MFBuildingOverlay\r\n","export class VariableTool {\r\n static hasValue = (variable: any) => {\r\n if (variable != undefined && variable != null) {\r\n return true\r\n }\r\n return false\r\n }\r\n}","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\nimport { VariableTool } from '../tool';\r\n\r\ninterface CircleProps {\r\n center: map4d.ILatLng\r\n radius: number\r\n fillColor?: string\r\n fillOpacity?: number\r\n visible?: boolean\r\n strokeColor?: string\r\n strokeWidth?: number\r\n draggable?: boolean\r\n zIndex?: number\r\n elevation?: number\r\n userInteractionEnabled?: boolean\r\n map?: map4d.Map\r\n onCreated?: (circle: map4d.Circle) => void\r\n}\r\n\r\nconst MFCircle = (props: CircleProps) => {\r\n const {\r\n center,\r\n radius,\r\n fillColor,\r\n fillOpacity,\r\n visible,\r\n strokeColor,\r\n strokeWidth,\r\n draggable,\r\n zIndex,\r\n elevation,\r\n userInteractionEnabled,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const circleRef = useRef<map4d.Circle>()\r\n\r\n useEffect(() => {\r\n if (theMap && !circleRef.current) {\r\n let option = {\r\n center: center || { lat: 10.793113, lng: 106.720739 },\r\n radius: radius,\r\n fillColor: fillColor,\r\n fillOpacity: fillOpacity,\r\n visible: visible,\r\n strokeColor: strokeColor,\r\n strokeWidth: strokeWidth,\r\n draggable: draggable,\r\n zIndex: zIndex,\r\n elevation: elevation,\r\n userInteractionEnabled: userInteractionEnabled,\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n circleRef.current = new map4d.Circle(option)\r\n circleRef.current?.setMap(theMap)\r\n onCreated && onCreated(circleRef.current)\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n circleRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n circleRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n circleRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (VariableTool.hasValue(center)) {\r\n circleRef.current?.setCenter(center)\r\n }\r\n\r\n }, [center])\r\n useEffect(() => {\r\n if (VariableTool.hasValue(radius)) {\r\n circleRef.current?.setRadius(radius as number)\r\n }\r\n }, [radius])\r\n useEffect(() => {\r\n if (VariableTool.hasValue(fillColor)) {\r\n circleRef.current?.setFillColor(fillColor as string)\r\n }\r\n }, [fillColor])\r\n useEffect(() => {\r\n if (VariableTool.hasValue(fillOpacity)) {\r\n circleRef.current?.setFillOpacity(fillOpacity as number)\r\n }\r\n }, [fillOpacity])\r\n useEffect(() => {\r\n if (VariableTool.hasValue(visible)) {\r\n circleRef.current?.setVisible(visible as boolean)\r\n }\r\n }, [visible])\r\n useEffect(() => {\r\n if (VariableTool.hasValue(strokeColor)) {\r\n circleRef.current?.setStrokeColor(strokeColor as string)\r\n }\r\n }, [strokeColor])\r\n useEffect(() => {\r\n if (VariableTool.hasValue(strokeWidth)) {\r\n circleRef.current?.setStrokeWidth(strokeWidth as number)\r\n }\r\n }, [strokeWidth])\r\n useEffect(() => {\r\n if (VariableTool.hasValue(draggable)) {\r\n circleRef.current?.setDraggable(draggable as boolean)\r\n }\r\n }, [draggable])\r\n useEffect(() => {\r\n if (VariableTool.hasValue(zIndex)) {\r\n circleRef.current?.setZIndex(zIndex as number)\r\n }\r\n }, [zIndex])\r\n useEffect(() => {\r\n if (VariableTool.hasValue(elevation)) {\r\n circleRef.current?.setElevation(elevation as number)\r\n }\r\n }, [elevation])\r\n useEffect(() => {\r\n if (VariableTool.hasValue(userInteractionEnabled)) {\r\n circleRef.current?.setUserInteraction(userInteractionEnabled as boolean)\r\n }\r\n }, [userInteractionEnabled])\r\n\r\n return null\r\n}\r\n\r\nexport default MFCircle\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface DataLayerProps {\r\n geoJsonString: string\r\n map?: map4d.Map\r\n onCreated?: (dataLeyer?: map4d.Data.Feature[]) => void\r\n}\r\n\r\nconst MFDataLayer = (props: DataLayerProps) => {\r\n const {\r\n geoJsonString,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const dataLayerRef = useRef<map4d.Data.Feature[]>()\r\n\r\n\r\n const reCreate = () => {\r\n dataLayerRef.current?.forEach((feature) => {\r\n theMap?.data?.remove(feature)\r\n })\r\n dataLayerRef.current = theMap?.data?.addGeoJson(geoJsonString)\r\n onCreated && onCreated(dataLayerRef.current)\r\n }\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n reCreate()\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n return () => {\r\n dataLayerRef.current?.forEach((feature) => {\r\n theMap?.data?.remove(feature)\r\n })\r\n }\r\n }, [])\r\n return null\r\n}\r\nexport default MFDataLayer\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface DirectionsRendererProps {\r\n routes?: string | object | map4d.RouteOptions | map4d.ILatLng[][]\r\n\r\n /**\r\n * @deprecated The `directions` prop is no longer support, which is subject to removal in a future versions. Use\r\n * the `routes` prop instead.\r\n */\r\n directions?: string\r\n activedIndex?: number\r\n\r\n activeStrokeWidth?: number\r\n activeStrokeColor?: string\r\n activeOutlineWidth?: number\r\n activeOutlineColor?: string\r\n activeStrokePattern?: map4d.PatternItem\r\n\r\n inactiveStrokeWidth?: number\r\n inactiveStrokeColor?: string\r\n inactiveOutlineWidth?: number\r\n inactiveOutlineColor?: string\r\n inactiveStrokePattern?: map4d.PatternItem\r\n\r\n originMarkerOptions?: map4d.MarkerOptions\r\n destinationMarkerOptions?: map4d.MarkerOptions\r\n waypointMarkerOptions?: map4d.MarkerOptions[]\r\n\r\n onMarkerDragEnd?: Function,\r\n\r\n map?: map4d.Map,\r\n onCreated?: (directionsRenderer?: map4d.DirectionsRenderer) => void\r\n onHover?: (directions: any) => void\r\n}\r\n\r\nconst MFDirectionsRenderer = (props: DirectionsRendererProps) => {\r\n const {\r\n routes,\r\n activedIndex,\r\n activeStrokeWidth,\r\n activeStrokeColor,\r\n activeOutlineWidth,\r\n activeOutlineColor,\r\n activeStrokePattern,\r\n inactiveStrokeWidth,\r\n inactiveStrokeColor,\r\n inactiveOutlineWidth,\r\n inactiveOutlineColor,\r\n inactiveStrokePattern,\r\n originMarkerOptions,\r\n destinationMarkerOptions,\r\n waypointMarkerOptions,\r\n onMarkerDragEnd,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const directionRef = useRef<any>()\r\n\r\n useEffect(() => {\r\n if (theMap && !directionRef.current) {\r\n let option = {\r\n routes,\r\n activedIndex,\r\n activeStrokeWidth,\r\n activeStrokeColor,\r\n activeOutlineWidth,\r\n activeOutlineColor,\r\n activeStrokePattern,\r\n inactiveStrokeWidth,\r\n inactiveStrokeColor,\r\n inactiveOutlineWidth,\r\n inactiveOutlineColor,\r\n inactiveStrokePattern,\r\n originMarkerOptions,\r\n destinationMarkerOptions,\r\n waypointMarkerOptions,\r\n onMarkerDragEnd\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n directionRef.current = new map4d.DirectionsRenderer(option)\r\n directionRef.current?.setMap(theMap)\r\n directionRef.current.onHover = props.onHover\r\n onCreated && onCreated(directionRef.current)\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n directionRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n directionRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n directionRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n routes != undefined && directionRef.current?.setRoutes(routes)\r\n }, [routes])\r\n useEffect(() => {\r\n activedIndex != undefined && directionRef.current?.setActivedIndex(activedIndex)\r\n }, [activedIndex])\r\n useEffect(() => {\r\n activeStrokePattern != undefined && directionRef.current?.setActiveStrokePattern(activeStrokePattern)\r\n }, [activeStrokePattern])\r\n useEffect(() => {\r\n inactiveStrokePattern != undefined && directionRef.current?.setInactiveStrokePattern(inactiveStrokePattern)\r\n }, [inactiveStrokePattern])\r\n useEffect(() => {\r\n let option = {\r\n routes,\r\n activedIndex,\r\n activeStrokeWidth,\r\n activeStrokeColor,\r\n activeOutlineWidth,\r\n activeOutlineColor,\r\n activeStrokePattern,\r\n inactiveStrokeWidth,\r\n inactiveStrokeColor,\r\n inactiveOutlineWidth,\r\n inactiveOutlineColor,\r\n inactiveStrokePattern,\r\n originMarkerOptions,\r\n destinationMarkerOptions,\r\n waypointMarkerOptions,\r\n onMarkerDragEnd\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n directionRef.current?.setOptions(option)\r\n },\r\n [\r\n activeStrokeWidth,\r\n activeStrokeColor,\r\n activeOutlineWidth,\r\n activeOutlineColor,\r\n inactiveStrokeColor,\r\n inactiveOutlineWidth,\r\n inactiveOutlineColor,\r\n originMarkerOptions,\r\n destinationMarkerOptions,\r\n waypointMarkerOptions,\r\n onMarkerDragEnd\r\n ]\r\n )\r\n\r\n\r\n return null\r\n}\r\nexport default MFDirectionsRenderer\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface GroundOverlayProps extends map4d.GroundOverlayOptions {\r\n map?: map4d.Map\r\n onCreated?: (groundOverlay: map4d.GroundOverlay) => void\r\n}\r\n\r\nconst MFGroundOverlay = (props: GroundOverlayProps) => {\r\n const {\r\n bounds,\r\n getUrl,\r\n override,\r\n visible,\r\n zIndex,\r\n opacity,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const groundOverlayRef = useRef<map4d.GroundOverlay>()\r\n\r\n\r\n const reCreate = () => {\r\n groundOverlayRef.current?.setMap(null as unknown as map4d.Map)\r\n let option = {\r\n bounds,\r\n getUrl: getUrl,\r\n override,\r\n visible: visible,\r\n zIndex: zIndex,\r\n opacity: opacity\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n groundOverlayRef.current = new map4d.TileOverlay(option)\r\n groundOverlayRef.current?.setMap(theMap as map4d.Map)\r\n onCreated && onCreated(groundOverlayRef.current)\r\n }\r\n\r\n useEffect(() => {\r\n if (theMap && !groundOverlayRef.current) {\r\n reCreate()\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n groundOverlayRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n groundOverlayRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n groundOverlayRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n reCreate()\r\n }\r\n }, [bounds, getUrl, override])\r\n useEffect(() => {\r\n visible != undefined && groundOverlayRef.current?.setVisible(visible)\r\n }, [visible])\r\n useEffect(() => {\r\n zIndex != undefined && groundOverlayRef.current?.setZIndex(zIndex)\r\n }, [zIndex])\r\n useEffect(() => {\r\n opacity != undefined && groundOverlayRef.current?.setOpacity(opacity)\r\n }, [opacity])\r\n return null\r\n}\r\nexport default MFGroundOverlay\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface ImageOverlayProps extends map4d.ImageOverlayOptions {\r\n map?: map4d.Map,\r\n onCreated?: (imageOverlay: map4d.ImageOverlay) => void\r\n}\r\n\r\nconst MFImageOverlay = (props: ImageOverlayProps) => {\r\n const {\r\n url,\r\n bounds,\r\n visible,\r\n zIndex,\r\n opacity,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const imageOverlayRef = useRef<map4d.ImageOverlay>()\r\n\r\n\r\n const reCreate = () => {\r\n imageOverlayRef.current?.setMap(null as unknown as map4d.Map)\r\n let option = {\r\n url,\r\n bounds: bounds,\r\n visible: visible,\r\n zIndex: zIndex,\r\n opacity: opacity\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n imageOverlayRef.current = new map4d.ImageOverlay(option)\r\n imageOverlayRef.current?.setMap(theMap as map4d.Map)\r\n onCreated && onCreated(imageOverlayRef.current)\r\n }\r\n\r\n useEffect(() => {\r\n if (theMap && !imageOverlayRef.current) {\r\n reCreate()\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n imageOverlayRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n imageOverlayRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n imageOverlayRef.current?.setMap(null as unknown as map4d.Map)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n reCreate()\r\n }\r\n }, [url, bounds, zIndex])\r\n useEffect(() => {\r\n visible != undefined && imageOverlayRef.current?.setVisible(visible)\r\n }, [visible])\r\n useEffect(() => {\r\n opacity != undefined && imageOverlayRef.current?.setOpacity(opacity)\r\n }, [opacity])\r\n return null\r\n}\r\nexport default MFImageOverlay\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { Map4dContext } from '../context';\r\nimport { MapEventEnum } from '../enum';\r\n\r\nexport function addLibrary(url: string, id: string) {\r\n let scriptId = `script_${id}`\r\n let exist = document.getElementById(scriptId)\r\n if (exist) {\r\n return null\r\n }\r\n const script = document.createElement('script')\r\n script.src = url;\r\n script.defer = true;\r\n script.id = scriptId\r\n document.body.appendChild(script)\r\n return script\r\n}\r\n\r\nconst createId = () => {\r\n var dt = new Date().getTime();\r\n var uuid = 'xxxxxxxx_xxxx_4xxx_yxxx_xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = (dt + Math.random() * 16) % 16 | 0;\r\n dt = Math.floor(dt / 16);\r\n return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n return uuid;\r\n}\r\ninterface MapOptions {\r\n center?: any\r\n zoom?: number\r\n minZoom?: number\r\n maxZoom?: number\r\n maxNativeZoom?: number\r\n geolocate?: boolean\r\n tilt?: number\r\n bearing?: number\r\n controls?: boolean\r\n mapType?: any\r\n controlOptions?: any\r\n restrictionBounds?: any\r\n shouldChangeMapMode?: Function\r\n cooperativeGestures?: boolean\r\n}\r\ninterface MapProps {\r\n mapid?: string\r\n options: MapOptions,\r\n version: string\r\n accessKey: string,\r\n environment?: \"dev\" | \"test\" | undefined | null,\r\n sdkDomain?: string | null\r\n onMapReady?: (map: any, key?: string) => void\r\n onClickLocation?: (args: any) => void\r\n onRightClickLocation?: (args: any) => void\r\n onCameraChanging?: (args: any) => void\r\n onTilesLoaded?: (args: any) => void\r\n children?: any\r\n}\r\n\r\nconst MFMap = (props: MapProps) => {\r\n\r\n const callback = useRef(`callback`)\r\n const mapDomRef = useRef<any>()\r\n const mapRef = useRef<map4d.Map>()\r\n const scriptElement = useRef<HTMLScriptElement>()\r\n const url = useRef<string>()\r\n const events = useRef<any[]>([])\r\n\r\n const [map, setMap] = useState<map4d.Map>()\r\n\r\n\r\n useEffect(() => {\r\n const id = createId()\r\n callback.current = `callback_${id}`\r\n const createCallback = () => {\r\n window[callback.current] = () => {\r\n if (mapDomRef.current) {\r\n let options = props.options\r\n mapRef.current = new window.map4d.Map(mapDomRef.current, options)\r\n if (props.onMapReady) {\r\n props.onMapReady(mapRef.current, id)\r\n }\r\n registerEvent()\r\n setMap(mapRef.current)\r\n } else {\r\n console.error(`MFMap: map element is NOT found`)\r\n }\r\n }\r\n }\r\n let domain = `https://api${props.environment ? \"-\" + props.environment : \"\"}.map4d.vn`\r\n if (props.sdkDomain) {\r\n domain = props.sdkDomain\r\n }\r\n let urlNew = `${domain}/sdk/map/js?version=${props.version}&key=${props.accessKey}&callback=${callback.current}`\r\n if (props.mapid) {\r\n urlNew += `&mapId=${props.mapid}`\r\n }\r\n createCallback()\r\n let script = addLibrary(urlNew, id)\r\n if (script) {\r\n scriptElement.current = script\r\n }\r\n url.current = urlNew\r\n return () => {\r\n const destroy = () => {\r\n delete window[callback.current]\r\n if (scriptElement.current != null) {\r\n scriptElement.current.remove()\r\n }\r\n events.current?.forEach((t: any) => {\r\n t?.remove()\r\n })\r\n mapRef.current?.destroy()\r\n url.current = undefined\r\n }\r\n destroy()\r\n }\r\n }, [props.environment, props.version, props.accessKey])\r\n\r\n const registerEvent = () => {\r\n let eventClickMarker = mapRef.current?.addListener(MapEventEnum.click, (args: any) => {\r\n args.marker?.onClick && args.marker?.onClick()\r\n }, {\r\n marker: true\r\n })\r\n let eventRightClickMarker = mapRef.current?.addListener(MapEventEnum.rightClick, (args: any) => {\r\n args.marker?.onRightClick && args.marker?.onRightClick()\r\n }, {\r\n marker: true\r\n })\r\n let eventDragEndMarker = mapRef.current?.addListener(MapEventEnum.dragEnd, (args: any) => {\r\n args.marker?.onDragEnd && args.marker?.onDragEnd()\r\n }, {\r\n marker: true\r\n })\r\n\r\n let eventHoverMarker = mapRef.current?.addListener(MapEventEnum.hover, (args: any) => {\r\n args.marker?.onHover && args.marker?.onHover()\r\n }, {\r\n marker: true\r\n })\r\n\r\n let eventHoverPolygon = mapRef.current?.addListener(MapEventEnum.hover, (args: any) => {\r\n args.polygon?.onHover && args.polygon?.onHover()\r\n }, {\r\n polygon: true\r\n })\r\n\r\n let eventHoverPolyline = mapRef.current?.addListener(MapEventEnum.hover, (args: any) => {\r\n args.polyline?.onHover && args.polyline?.onHover()\r\n }, {\r\n polyline: true\r\n })\r\n\r\n let eventHoverDirection= mapRef.current?.addListener(MapEventEnum.hover, (args: any) => {\r\n args.renderer?.onHover && args.renderer?.onHover()\r\n }, {\r\n directions: true\r\n })\r\n\r\n let eventClickPolyline= mapRef.current?.addListener(MapEventEnum.click, (args: any) => {\r\n args.polyline?.onClick && args.polyline?.onClick()\r\n }, {\r\n polyline: true\r\n })\r\n\r\n events.current = events.current.concat([\r\n eventClickMarker,\r\n eventRightClickMarker,\r\n eventDragEndMarker,\r\n eventHoverMarker,\r\n eventHoverPolygon,\r\n eventHoverPolyline,\r\n eventHoverDirection,\r\n eventClickPolyline\r\n ])\r\n if (props.onClickLocation) {\r\n let onClickLocation = mapRef.current?.addListener(MapEventEnum.click, (args: any) => {\r\n props.onClickLocation && props.onClickLocation(args)\r\n }, {\r\n location: true\r\n })\r\n events.current.push(onClickLocation)\r\n }\r\n if (props.onRightClickLocation) {\r\n let onRightClickLocation = mapRef.current?.addListener(MapEventEnum.rightClick, (args: any) => {\r\n props.onRightClickLocation && props.onRightClickLocation(args)\r\n }, {\r\n location: true\r\n })\r\n events.current.push(onRightClickLocation)\r\n }\r\n if (props.onTilesLoaded) {\r\n let onTilesLoaded = mapRef.current?.addListener(MapEventEnum.tilesLoaded, (args: any) => {\r\n props.onTilesLoaded && props.onTilesLoaded(args)\r\n }, {\r\n location: true\r\n })\r\n events.current.push(onTilesLoaded)\r\n }\r\n if (props.onCameraChanging) {\r\n let onCameraChanging = mapRef.current?.addListener(MapEventEnum.cameraChanging, (args: any) => {\r\n props.onCameraChanging && props.onCameraChanging(args)\r\n }, {\r\n location: true\r\n })\r\n events.current.push(onCameraChanging)\r\n }\r\n }\r\n let newContext = {\r\n map: map\r\n }\r\n const refDiv = (r: any) => {\r\n mapDomRef.current = r\r\n }\r\n return (\r\n <Map4dContext.Provider value={newContext}>\r\n <div\r\n style={{ width: '100%', height: '100%', display: 'block' }}\r\n ref={refDiv}>\r\n </div>\r\n {\r\n props.children\r\n }\r\n </Map4dContext.Provider>\r\n );\r\n}\r\n\r\nexport default MFMap;\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext, MarkerClusterContext } from '../context';\r\n\r\ninterface IconProps {\r\n width: number,\r\n height: number,\r\n url: string\r\n}\r\ninterface MarkerProps {\r\n position: any\r\n visible?: boolean\r\n anchor?: any\r\n labelAnchor?: any\r\n icon?: IconProps\r\n elevation?: number\r\n rotation?: number\r\n title?: string\r\n snippet?: string\r\n windowAnchor?: any\r\n zIndex?: number\r\n label?: any\r\n draggable?: boolean\r\n iconView?: string | Node\r\n userInteractionEnabled?: boolean\r\n map?: any,\r\n infoWindow?: string | Node\r\n infoContents?: string | Node\r\n showInfoWindow?: boolean\r\n onClick?: (marker: any) => void\r\n onCreated?: (marker: any) => void\r\n onRightClick?: (marker: any) => void\r\n onDragEnd?: (marker: any) => void\r\n onHover?: (marker: any) => void\r\n}\r\n\r\nconst MFMarker = (props: MarkerProps) => {\r\n const {\r\n position,\r\n visible = true,\r\n anchor,\r\n labelAnchor,\r\n icon,\r\n elevation,\r\n rotation,\r\n title,\r\n snippet,\r\n windowAnchor,\r\n zIndex,\r\n label,\r\n draggable,\r\n iconView,\r\n userInteractionEnabled,\r\n map,\r\n onCreated,\r\n onClick\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const markerClusterContext = useContext(MarkerClusterContext)\r\n\r\n const theMap = map || map4dContext.map\r\n const markerRef = useRef<any>()\r\n\r\n useEffect(() => {\r\n if (theMap && !markerRef.current) {\r\n let option = {\r\n position: position || { lat: 10.793113, lng: 106.720739 },\r\n visible: visible,\r\n anchor: anchor,\r\n labelAnchor: labelAnchor,\r\n elevation: elevation,\r\n rotation: rotation,\r\n title: title,\r\n snippet: snippet,\r\n windowAnchor: windowAnchor,\r\n zIndex: zIndex,\r\n label: label,\r\n draggable: draggable,\r\n iconView: iconView,\r\n userInteractionEnabled: userInteractionEnabled\r\n } as map4d.MarkerOptions\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n if (icon) {\r\n let iconT = new map4d.Icon(icon.width, icon.height, icon.url)\r\n option.icon = iconT\r\n }\r\n markerRef.current = new map4d.Marker(option)\r\n if (props.infoWindow != undefined) {\r\n markerRef.current.setInfoWindow(props.infoWindow)\r\n }\r\n if (props.infoContents != undefined) {\r\n markerRef.current.setInfoContents(props.infoContents)\r\n }\r\n if (!markerClusterContext?.addMarker) {\r\n markerRef.current.setMap(theMap)\r\n }\r\n if (props.showInfoWindow != undefined) {\r\n props.showInfoWindow ? markerRef.current.showInfoWindow() : markerRef.current.hideInfoWindow()\r\n }\r\n markerRef.current.onClick = onClick\r\n markerRef.current.onRightClick = props.onRightClick\r\n markerRef.current.onDragEnd = props.onDragEnd\r\n markerRef.current.onHover = props.onHover\r\n onCreated && onCreated(markerRef.current)\r\n markerClusterContext?.addMarker && markerClusterContext?.addMarker(markerRef.current)\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n if (!markerClusterContext?.addMarker) {\r\n markerRef.current?.setMap(theMap)\r\n }\r\n }\r\n return () => {\r\n if (!markerClusterContext?.addMarker) {\r\n markerRef.current?.setMap(null)\r\n }\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n if (!markerClusterContext?.addMarker) {\r\n markerRef.current?.setMap(null)\r\n }\r\n markerRef.current && markerClusterContext?.removeMarker && markerClusterContext?.removeMarker(markerRef.current)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n markerRef.current?.setPosition(position)\r\n }, [position])\r\n useEffect(() => {\r\n markerRef.current?.setVisible(visible)\r\n }, [visible])\r\n useEffect(() => {\r\n anchor != undefined && markerRef.current?.setAnchor(anchor)\r\n }, [anchor])\r\n useEffect(() => {\r\n labelAnchor != undefined && markerRef.current?.setLabelAnchor(labelAnchor)\r\n }, [labelAnchor])\r\n useEffect(() => {\r\n icon != undefined && markerRef.current?.setIcon(icon)\r\n }, [icon])\r\n useEffect(() => {\r\n elevation != undefined && markerRef.current?.setElevation(elevation)\r\n }, [elevation])\r\n useEffect(() => {\r\n rotation != undefined && markerRef.current?.setRotation(rotation)\r\n }, [rotation])\r\n useEffect(() => {\r\n title != undefined && markerRef.current?.setTitle(title)\r\n }, [title])\r\n useEffect(() => {\r\n snippet != undefined && markerRef.current?.setSnippet(snippet)\r\n }, [snippet])\r\n useEffect(() => {\r\n windowAnchor != undefined && markerRef.current?.setWindowAnchor(windowAnchor)\r\n }, [windowAnchor])\r\n useEffect(() => {\r\n zIndex != undefined && markerRef.current?.setZIndex(zIndex)\r\n }, [zIndex])\r\n useEffect(() => {\r\n label != undefined && markerRef.current?.setLabel(label)\r\n }, [label])\r\n useEffect(() => {\r\n draggable != undefined && markerRef.current?.setDraggable(draggable)\r\n }, [draggable])\r\n\r\n useEffect(() => {\r\n iconView != undefined && markerRef.current?.setIconView(iconView)\r\n }, [iconView])\r\n\r\n useEffect(() => {\r\n userInteractionEnabled != undefined && markerRef.current?.setUserInteraction(userInteractionEnabled)\r\n }, [userInteractionEnabled])\r\n\r\n useEffect(() => {\r\n icon != undefined && markerRef.current?.setIcon(new map4d.Icon(icon.width, icon.height, icon.url))\r\n }, [icon])\r\n\r\n useEffect(() => {\r\n props.infoWindow != undefined && markerRef.current?.setInfoWindow(props.infoWindow)\r\n }, [props.infoWindow])\r\n\r\n useEffect(() => {\r\n props.infoContents != undefined && markerRef.current?.setInfoContents(props.infoContents)\r\n }, [props.infoContents])\r\n\r\n useEffect(() => {\r\n if (props.showInfoWindow != undefined) {\r\n props.showInfoWindow ? markerRef.current.showInfoWindow() : markerRef.current.hideInfoWindow()\r\n }\r\n }, [props.showInfoWindow])\r\n return null\r\n}\r\nexport default MFMarker\r\n","import React, { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext, MarkerClusterContext } from '../context';\r\n\r\ninterface MarkerClusterProps extends map4d.MarkerClusterOptions {\r\n map?: map4d.Map,\r\n onCreated?: (markerCluster: map4d.MarkerClusterer) => void,\r\n children?: any\r\n}\r\n\r\nconst MFMarkerCluster = (props: MarkerClusterProps) => {\r\n const {\r\n minZoom = 0,\r\n maxZoom = 22,\r\n radius = 100,\r\n zoomOnClick,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const markerRefs = useRef<map4d.Marker[]>([])\r\n const markerClusterRef = useRef<map4d.MarkerClusterer>()\r\n\r\n const drawCluster = () => {\r\n markerClusterRef.current?.setMap(null)\r\n if (theMap) {\r\n let option = {\r\n minZoom: minZoom,\r\n maxZoom: maxZoom,\r\n radius: radius,\r\n zoomOnClick: zoomOnClick\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n markerClusterRef.current = new map4d.MarkerClusterer(markerRefs.current, option)\r\n markerClusterRef.current?.setMap(theMap)\r\n onCreated && onCreated(markerClusterRef.current)\r\n }\r\n }\r\n const clusterContext = {\r\n addMarker: (marker: map4d.Marker) => {\r\n markerRefs.current.push(marker)\r\n drawCluster()\r\n },\r\n removeMarker: (marker: map4d.Marker) => {\r\n let newMarkers = markerRefs.current.filter(t => t != marker)\r\n markerRefs.current = newMarkers\r\n drawCluster()\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (theMap && !markerClusterRef.current) {\r\n drawCluster()\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n markerClusterRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n markerClusterRef.current?.setMap(null)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n markerClusterRef.current?.setMap(null)\r\n }\r\n }, [])\r\n useEffect(() => {\r\n if (theMap) {\r\n drawCluster()\r\n }\r\n }, [minZoom, maxZoom, radius])\r\n useEffect(() => {\r\n zoomOnClick != undefined && markerClusterRef.current?.setZoomOnClick(zoomOnClick)\r\n }, [zoomOnClick])\r\n\r\n return (\r\n <MarkerClusterContext.Provider value={clusterContext}>\r\n {props?.children}\r\n </MarkerClusterContext.Provider>\r\n )\r\n}\r\nexport default MFMarkerCluster\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface POIProps extends map4d.POIOptions {\r\n map?: map4d.Map,\r\n onCreated?: (poi: map4d.POI) => void\r\n}\r\n\r\nconst MFPOI = (props: POIProps) => {\r\n const {\r\n position,\r\n title,\r\n subtitle,\r\n color,\r\n type,\r\n icon,\r\n elevation,\r\n zIndex,\r\n visible,\r\n draggable,\r\n userInteractionEnabled,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const poiRef = useRef<map4d.POI>()\r\n\r\n useEffect(() => {\r\n if (theMap && !poiRef.current) {\r\n let option = {\r\n position: position || { lat: 10.793113, lng: 106.720739 },\r\n title: title,\r\n subtitle: subtitle,\r\n color: color,\r\n type: type,\r\n icon: icon,\r\n elevation: elevation,\r\n zIndex: zIndex,\r\n visible: visible,\r\n draggable: draggable,\r\n userInteractionEnabled: userInteractionEnabled\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n poiRef.current = new map4d.POI(option)\r\n poiRef.current?.setMap(theMap)\r\n onCreated && onCreated(poiRef.current)\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n poiRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n poiRef.current?.setMap(null)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n poiRef.current?.setMap(null)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n poiRef.current?.setPosition(position)\r\n }, [position])\r\n useEffect(() => {\r\n title != undefined && poiRef.current?.setTitle(title)\r\n }, [title])\r\n useEffect(() => {\r\n subtitle != undefined && poiRef.current?.setSubtitle(subtitle)\r\n }, [subtitle])\r\n useEffect(() => {\r\n color != undefined && poiRef.current?.setColor(color)\r\n }, [color])\r\n useEffect(() => {\r\n type != undefined && poiRef.current?.setType(type)\r\n }, [type])\r\n useEffect(() => {\r\n icon != undefined && poiRef.current?.setIcon(icon)\r\n }, [icon])\r\n useEffect(() => {\r\n elevation != undefined && poiRef.current?.setElevation(elevation)\r\n }, [elevation])\r\n useEffect(() => {\r\n zIndex != undefined && poiRef.current?.setZIndex(zIndex)\r\n }, [zIndex])\r\n useEffect(() => {\r\n visible != undefined && poiRef.current?.setVisible(visible)\r\n }, [visible])\r\n useEffect(() => {\r\n draggable != undefined && poiRef.current?.setDraggable(draggable)\r\n }, [draggable])\r\n useEffect(() => {\r\n userInteractionEnabled != undefined && poiRef.current?.setUserInteraction(userInteractionEnabled)\r\n }, [userInteractionEnabled])\r\n return null\r\n}\r\nexport default MFPOI\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface POIOverlayProps extends map4d.POIOverlayOptions {\r\n map?: map4d.Map,\r\n onCreated?: (poiOverlay: map4d.POIOverlay) => void\r\n}\r\n\r\nconst MFPOIOverlay = (props: POIOverlayProps) => {\r\n const {\r\n getUrl,\r\n visible = true,\r\n parserData,\r\n prefixId,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const poiOverlayRef = useRef<map4d.POIOverlay>()\r\n\r\n\r\n const reCreate = () => {\r\n poiOverlayRef.current?.setMap(null)\r\n let option = {\r\n getUrl: getUrl || { lat: 10.793113, lng: 106.720739 },\r\n visible: visible,\r\n parserData: parserData,\r\n prefixId: prefixId\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n poiOverlayRef.current = new map4d.POIOverlay(option)\r\n poiOverlayRef.current?.setMap(theMap)\r\n onCreated && onCreated(poiOverlayRef.current)\r\n }\r\n\r\n useEffect(() => {\r\n if (theMap && !poiOverlayRef.current) {\r\n reCreate()\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n poiOverlayRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n poiOverlayRef.current?.setMap(null)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n poiOverlayRef.current?.setMap(null)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n reCreate()\r\n }\r\n }, [getUrl, parserData, prefixId])\r\n return null\r\n}\r\nexport default MFPOIOverlay\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface PolygonProps {\r\n paths: any[][]\r\n fillColor?: string\r\n fillOpacity?: number\r\n visible?: boolean\r\n strokeColor?: string\r\n strokeWidth?: number\r\n draggable?: boolean\r\n zIndex?: number\r\n elevation?: number\r\n userInteractionEnabled?: boolean\r\n map?: map4d.Map,\r\n onCreated?: (polygon: map4d.Polygon) => void\r\n onHover?: (polygon: any) => void\r\n}\r\n\r\nconst MFPolygon = (props: PolygonProps) => {\r\n const {\r\n paths,\r\n fillColor,\r\n fillOpacity,\r\n visible = true,\r\n strokeColor,\r\n strokeWidth,\r\n draggable,\r\n elevation,\r\n zIndex,\r\n userInteractionEnabled,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const polygonRef = useRef<any>()\r\n\r\n useEffect(() => {\r\n if (theMap && !polygonRef.current) {\r\n let option = {\r\n paths: paths,\r\n fillColor: fillColor,\r\n fillOpacity: fillOpacity,\r\n visible: visible,\r\n strokeColor: strokeColor,\r\n strokeWidth: strokeWidth,\r\n draggable: draggable,\r\n elevation: elevation,\r\n zIndex: zIndex,\r\n userInteractionEnabled: userInteractionEnabled,\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n polygonRef.current = new map4d.Polygon(option)\r\n polygonRef.current?.setMap(theMap)\r\n polygonRef.current.onHover = props.onHover\r\n onCreated && onCreated(polygonRef.current)\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n polygonRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n polygonRef.current?.setMap(null)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n polygonRef.current?.setMap(null)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n polygonRef.current?.setPaths(paths)\r\n }, [paths])\r\n useEffect(() => {\r\n fillColor != undefined && polygonRef.current?.setFillColor(fillColor)\r\n }, [fillColor])\r\n useEffect(() => {\r\n fillOpacity != undefined && polygonRef.current?.setFillOpacity(fillOpacity)\r\n }, [fillOpacity])\r\n useEffect(() => {\r\n polygonRef.current?.setVisible(visible)\r\n }, [visible])\r\n useEffect(() => {\r\n strokeColor != undefined && polygonRef.current?.setStrokeColor(strokeColor)\r\n }, [strokeColor])\r\n useEffect(() => {\r\n strokeWidth != undefined && polygonRef.current?.setStrokeWidth(strokeWidth)\r\n }, [strokeWidth])\r\n useEffect(() => {\r\n draggable != undefined && polygonRef.current?.setDraggable(draggable)\r\n }, [draggable])\r\n useEffect(() => {\r\n elevation != undefined && polygonRef.current?.setElevation(elevation)\r\n }, [elevation])\r\n useEffect(() => {\r\n zIndex != undefined && polygonRef.current?.setZIndex(zIndex)\r\n }, [zIndex])\r\n useEffect(() => {\r\n userInteractionEnabled != undefined && polygonRef.current?.setUserInteraction(userInteractionEnabled)\r\n }, [userInteractionEnabled])\r\n\r\n return null\r\n}\r\nexport default MFPolygon\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface PolylineProps {\r\n path: any[]\r\n strokeWidth: number\r\n strokeColor?: string\r\n strokeOpacity?: number\r\n visible?: boolean\r\n closed?: boolean\r\n draggable?: boolean\r\n zIndex?: number\r\n elevation?: number\r\n strokePattern?: any\r\n userInteractionEnabled?: boolean\r\n map?: map4d.Map\r\n onCreated?: (polyline: map4d.Polyline) => void\r\n onHover?: (polyline: any) => void\r\n onClick?: (polyline: any) => void\r\n}\r\n\r\nconst MFPolyline = (props: PolylineProps) => {\r\n const {\r\n path,\r\n strokeWidth,\r\n strokeColor,\r\n strokeOpacity,\r\n visible = true,\r\n closed,\r\n draggable,\r\n zIndex,\r\n elevation,\r\n strokePattern,\r\n userInteractionEnabled,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const polylineRef = useRef<any>()\r\n\r\n useEffect(() => {\r\n if (theMap && !polylineRef.current) {\r\n let option = {\r\n path: path || { lat: 10.793113, lng: 106.720739 },\r\n strokeWidth: strokeWidth,\r\n strokeColor: strokeColor,\r\n strokeOpacity: strokeOpacity,\r\n visible: visible,\r\n closed: closed,\r\n draggable: draggable,\r\n zIndex: zIndex,\r\n elevation: elevation,\r\n strokePattern: strokePattern,\r\n userInteractionEnabled: userInteractionEnabled,\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n polylineRef.current = new map4d.Polyline(option)\r\n polylineRef.current?.setMap(theMap)\r\n polylineRef.current.onHover = props.onHover\r\n polylineRef.current.onClick = props.onClick\r\n onCreated && onCreated(polylineRef.current)\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n polylineRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n polylineRef.current?.setMap(null)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n polylineRef.current?.setMap(null)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n polylineRef.current?.setPath(path)\r\n }, [path])\r\n useEffect(() => {\r\n strokeWidth != undefined && polylineRef.current?.setStrokeWidth(strokeWidth)\r\n }, [strokeWidth])\r\n useEffect(() => {\r\n strokeColor != undefined && polylineRef.current?.setStrokeColor(strokeColor)\r\n }, [strokeColor])\r\n useEffect(() => {\r\n strokeOpacity != undefined && polylineRef.current?.setStrokeOpacity(strokeOpacity)\r\n }, [strokeOpacity])\r\n useEffect(() => {\r\n visible != undefined && polylineRef.current?.setVisible(visible)\r\n }, [visible])\r\n useEffect(() => {\r\n closed != undefined && polylineRef.current?.setClosed(closed)\r\n }, [closed])\r\n useEffect(() => {\r\n draggable != undefined && polylineRef.current?.setDraggable(draggable)\r\n }, [draggable])\r\n useEffect(() => {\r\n zIndex != undefined && polylineRef.current?.setZIndex(zIndex)\r\n }, [zIndex])\r\n useEffect(() => {\r\n elevation != undefined && polylineRef.current?.setElevation(elevation)\r\n }, [elevation])\r\n useEffect(() => {\r\n strokePattern != undefined && polylineRef.current?.setStrokePattern(strokePattern)\r\n }, [strokePattern])\r\n useEffect(() => {\r\n userInteractionEnabled != undefined && polylineRef.current?.setUserInteraction(userInteractionEnabled)\r\n }, [userInteractionEnabled])\r\n\r\n return null\r\n}\r\nexport default MFPolyline\r\n","import { useContext, useEffect, useRef } from 'react';\r\nimport { Map4dContext } from '../context';\r\n\r\ninterface TileOverlayProps {\r\n getUrl: Function\r\n visible?: boolean\r\n zIndex?: number\r\n opacity?: number\r\n map?: map4d.Map,\r\n onCreated?: (tileOverlay: map4d.TileOverlay) => void\r\n}\r\n\r\nconst MFTileOverlay = (props: TileOverlayProps) => {\r\n const {\r\n getUrl,\r\n visible = true,\r\n zIndex,\r\n opacity,\r\n map,\r\n onCreated\r\n } = props\r\n\r\n const map4dContext = useContext(Map4dContext);\r\n const theMap = map || map4dContext.map\r\n const tileOverlayRef = useRef<map4d.TileOverlay>()\r\n\r\n\r\n const reCreate = () => {\r\n tileOverlayRef.current?.setMap(null)\r\n let option = {\r\n getUrl: getUrl || { lat: 10.793113, lng: 106.720739 },\r\n visible: visible,\r\n zIndex: zIndex,\r\n opacity: opacity\r\n }\r\n Object.keys(option).forEach(key => {\r\n if (option[key] == undefined || option[key] == null) {\r\n delete option[key]\r\n }\r\n })\r\n tileOverlayRef.current = new map4d.TileOverlay(option)\r\n tileOverlayRef.current?.setMap(theMap)\r\n onCreated && onCreated(tileOverlayRef.current)\r\n }\r\n\r\n useEffect(() => {\r\n if (theMap && !tileOverlayRef.current) {\r\n reCreate()\r\n }\r\n }, [theMap])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n tileOverlayRef.current?.setMap(theMap)\r\n }\r\n return () => {\r\n tileOverlayRef.current?.setMap(null)\r\n }\r\n }, [theMap])\r\n useEffect(() => {\r\n return () => {\r\n tileOverlayRef.current?.setMap(null)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (theMap) {\r\n reCreate()\r\n }\r\n }, [getUrl])\r\n useEffect(() => {\r\n tileOverlayRef.current?.setVisible(visible)\r\n }, [visible])\r\n useEffect(() => {\r\n zIndex != undefined && tileOverlayRef.current?.setZIndex(zIndex)\r\n }, [zIndex])\r\n useEffect(() => {\r\n opacity != undefined && tileOverlayRef.current?.setOpacity(opacity)\r\n }, [opacity])\r\n return null\r\n}\r\nexport default MFTileOverlay\r\n"],"names":["defaultCt","map","Map4dContext","createContext","markerClusterDefaultContext","addMarker","removeMarker","MarkerClusterContext","MFBuilding","props","position","name","scale","bearing","elevation","height","model","texture","coordinates","visible","draggable","userInteractionEnabled","selected","growUp","onCreated","map4dContext","useContext","theMap","buildingRef","useRef","useEffect","current","length","option","lat","lng","Object","keys","forEach","key","undefined","map4d","Building","setMap","setPosition","setName","setScale","setBearing","setElevation","setHeight","setModel","setTexture","setCoordinates","setVisible","setDraggable","setUserInteraction","setSelected","setGrowUp","MFBuildingOverlay","getUrl","parserData","prefixId","buildingOverlayRef","reCreate","BuildingOverlay","VariableTool","variable","MFCircle","center","radius","fillColor","fillOpacity","strokeColor","strokeWidth","zIndex","circleRef","Circle","hasValue","setCenter","setRadius","setFillColor","setFillOpacity","setStrokeColor","setStrokeWidth","setZIndex","MFDataLayer","geoJsonString","dataLayerRef","feature","data","remove","addGeoJson","MFDirectionsRenderer","routes","activedIndex","activeStrokeWidth","activeStrokeColor","activeOutlineWidth","activeOutlineColor","activeStrokePattern","inactiveStrokeWidth","inactiveStrokeColor","inactiveOutlineWidth","inactiveOutlineColor","inactiveStrokePattern","originMarkerOptions","destinationMarkerOptions","waypointMarkerOptions","onMarkerDragEnd","directionRef","DirectionsRenderer","onHover","setRoutes","setActivedIndex","setActiveStrokePattern","setInactiveStrokePattern","setOptions","MFGroundOverlay","bounds","override","opacity","groundOverlayRef","TileOverlay","setOpacity","MFImageOverlay","url","imageOverlayRef","ImageOverlay","addLibrary","id","scriptId","exist","document","getElementById","script","createElement","src","defer","body","appendChild","createId","dt","Date","getTime","uuid","replace","c","r","Math","random","floor","toString","MFMap","callback","mapDomRef","mapRef","scriptElement","events","useState","createCallback","window","options","Map","onMapReady","registerEvent","console","error","domain","environment","sdkDomain","urlNew","version","accessKey","mapid","destroy","t","eventClickMarker","addListener","args","marker","onClick","eventRightClickMarker","onRightClick","eventDragEndMarker","onDragEnd","eventHoverMarker","eventHoverPolygon","polygon","eventHoverPolyline","polyline","eventHoverDirection","renderer","directions","eventClickPolyline","concat","onClickLocation","location","push","onRightClickLocation","onTilesLoaded","onCameraChanging","newContext","refDiv","React","Provider","value","style","width","display","ref","children","MFMarker","anchor","labelAnchor","icon","rotation","title","snippet","windowAnchor","label","iconView","markerClusterContext","markerRef","iconT","Icon","Marker","infoWindow","setInfoWindow","infoContents","setInfoContents","showInfoWindow","hideInfoWindow","setAnchor","setLabelAnchor","setIcon","setRotation","setTitle","setSnippet","setWindowAnchor","setLabel","setIconView","MFMarkerCluster","minZoom","maxZoom","zoomOnClick","markerRefs","markerClusterRef","drawCluster","MarkerClusterer","clusterContext","newMarkers","filter","setZoomOnClick","MFPOI","subtitle","color","type","poiRef","POI","setSubtitle","setColor","setType","MFPOIOverlay","poiOverlayRef","POIOverlay","MFPolygon","paths","polygonRef","Polygon","setPaths","MFPolyline","path","strokeOpacity","closed","strokePattern","polylineRef","Polyline","setPath","setStrokeOpacity","setClosed","setStrokePattern","MFTileOverlay","tileOverlayRef"],"mappings":"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"}