react-map4d-map 1.0.7 → 1.0.9

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,\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 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 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}\r\n\r\nclass MFMap extends React.Component<MapProps, any> {\r\n\r\n mapKey: string;\r\n callback: string;\r\n mapDomRef: any;\r\n mapRef: map4d.Map;\r\n scriptElement: any;\r\n url: string | null;\r\n events = [] as any[]\r\n constructor(props: MapProps) {\r\n super(props)\r\n this.state = {\r\n map: null\r\n }\r\n this.mapKey = createId()\r\n this.callback = `callback_${this.mapKey}`\r\n this.setMapDomRef = this.setMapDomRef.bind(this)\r\n }\r\n\r\n setMapDomRef(e: any) {\r\n this.mapDomRef = e\r\n }\r\n\r\n componentWillUnmount() {\r\n this.destroy()\r\n }\r\n\r\n destroy() {\r\n delete window[this.callback]\r\n if (this.scriptElement != null) {\r\n this.scriptElement.remove()\r\n }\r\n this.events?.forEach((t: any) => {\r\n t?.remove()\r\n })\r\n this.mapRef?.destroy && this.mapRef.destroy()\r\n this.url = null\r\n }\r\n\r\n registerEvent() {\r\n\r\n let eventClickMarker = this.mapRef?.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 = this.mapRef?.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 = this.mapRef?.addListener(MapEventEnum.dragEnd, (args: any) => {\r\n args.marker?.onDragEnd && args.marker?.onDragEnd()\r\n }, {\r\n marker: true\r\n })\r\n this.events = this.events.concat([eventClickMarker, eventRightClickMarker, eventDragEndMarker])\r\n if (this.props.onClickLocation) {\r\n let onClickLocation = this.mapRef?.addListener(MapEventEnum.click, (args: any) => {\r\n this.props.onClickLocation && this.props.onClickLocation(args)\r\n }, {\r\n location: true\r\n })\r\n this.events.push(onClickLocation)\r\n }\r\n if (this.props.onRightClickLocation) {\r\n let onRightClickLocation = this.mapRef?.addListener(MapEventEnum.rightClick, (args: any) => {\r\n this.props.onRightClickLocation && this.props.onRightClickLocation(args)\r\n }, {\r\n location: true\r\n })\r\n this.events.push(onRightClickLocation)\r\n }\r\n if (this.props.onTilesLoaded) {\r\n let onTilesLoaded = this.mapRef?.addListener(MapEventEnum.tilesLoaded, (args: any) => {\r\n this.props.onTilesLoaded && this.props.onTilesLoaded(args)\r\n }, {\r\n location: true\r\n })\r\n this.events.push(onTilesLoaded)\r\n }\r\n if (this.props.onCameraChanging) {\r\n let onCameraChanging = this.mapRef?.addListener(MapEventEnum.cameraChanging, (args: any) => {\r\n this.props.onCameraChanging && this.props.onCameraChanging(args)\r\n }, {\r\n location: true\r\n })\r\n this.events.push(onCameraChanging)\r\n }\r\n }\r\n\r\n createCallback() {\r\n window[this.callback] = () => {\r\n if (this.mapDomRef) {\r\n let options = this.props.options\r\n this.mapRef = new window.map4d.Map(this.mapDomRef, options)\r\n if (this.props.onMapReady) {\r\n this.props.onMapReady(this.mapRef, this.mapKey)\r\n }\r\n this.registerEvent()\r\n\r\n this.setState({\r\n map: this.mapRef\r\n })\r\n } else {\r\n console.error(`MFMap: map element is NOT found`)\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n let url = `https://api${this.props.environment ? \"-\" + this.props.environment : \"\"}.map4d.vn/sdk/map/js?version=${this.props.version}&key=${this.props.accessKey}&callback=${this.callback}`\r\n if (this.props.mapid) {\r\n url += `&mapId=${this.props.mapid}`\r\n }\r\n if (url != this.url) {\r\n this.destroy()\r\n this.createCallback()\r\n let script = addLibrary(url, this.mapKey)\r\n if (script) {\r\n this.scriptElement = script\r\n }\r\n }\r\n this.url = url\r\n let newContext = {\r\n map: this.state.map\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 id={`${this.mapKey}`}\r\n ref={this.setMapDomRef}>\r\n </div>\r\n {\r\n this.props.children\r\n }\r\n </Map4dContext.Provider>\r\n );\r\n }\r\n}\r\nMFMap.contextType = Map4dContext\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 extends map4d.PolygonOptions {\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 extends map4d.PolylineOptions {\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 extends map4d.TileOverlayOptions {\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","state","mapKey","callback","setMapDomRef","bind","e","mapDomRef","componentWillUnmount","destroy","window","scriptElement","events","t","mapRef","registerEvent","eventClickMarker","addListener","args","marker","onClick","eventRightClickMarker","onRightClick","eventDragEndMarker","onDragEnd","concat","onClickLocation","location","push","onRightClickLocation","onTilesLoaded","onCameraChanging","createCallback","options","Map","onMapReady","setState","console","error","render","environment","version","accessKey","mapid","newContext","React","Provider","value","style","width","display","ref","children","Component","contextType","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}\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 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 mapKey = useRef(createId())\r\n const callback = useRef(`callback_${mapKey.current}`)\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 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, mapKey.current)\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 urlNew = `https://api${props.environment ? \"-\" + props.environment : \"\"}.map4d.vn/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, mapKey.current)\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 return (\r\n <Map4dContext.Provider value={newContext}>\r\n <div\r\n style={{ width: '100%', height: '100%', display: 'block' }}\r\n id={mapKey.current}\r\n ref={mapDomRef.current}>\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 extends map4d.PolygonOptions {\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 extends map4d.PolylineOptions {\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 extends map4d.TileOverlayOptions {\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","mapKey","callback","mapDomRef","mapRef","scriptElement","events","useState","createCallback","window","options","Map","onMapReady","registerEvent","console","error","urlNew","environment","version","accessKey","mapid","destroy","t","eventClickMarker","addListener","args","marker","onClick","eventRightClickMarker","onRightClick","eventDragEndMarker","onDragEnd","concat","onClickLocation","location","push","onRightClickLocation","onTilesLoaded","onCameraChanging","newContext","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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"}