react-map4d-map 1.0.5 → 1.0.7
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 +3 -3
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +3 -3
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -35,7 +35,7 @@ var MFBuilding = function MFBuilding(props) {
|
|
|
35
35
|
var theMap = map || map4dContext.map;
|
|
36
36
|
var buildingRef = React.useRef(null);
|
|
37
37
|
React.useEffect(function () {
|
|
38
|
-
if (theMap && !buildingRef.current) {
|
|
38
|
+
if (theMap && !buildingRef.current && (coordinates && (coordinates === null || coordinates === void 0 ? void 0 : coordinates.length) > 0 || model)) {
|
|
39
39
|
var _buildingRef$current;
|
|
40
40
|
|
|
41
41
|
var option = {
|
|
@@ -66,7 +66,7 @@ var MFBuilding = function MFBuilding(props) {
|
|
|
66
66
|
(_buildingRef$current = buildingRef.current) === null || _buildingRef$current === void 0 ? void 0 : _buildingRef$current.setMap(theMap);
|
|
67
67
|
onCreated && onCreated(buildingRef.current);
|
|
68
68
|
}
|
|
69
|
-
}, [theMap]);
|
|
69
|
+
}, [theMap, position, coordinates, model]);
|
|
70
70
|
React.useEffect(function () {
|
|
71
71
|
if (theMap) {
|
|
72
72
|
var _buildingRef$current2;
|
|
@@ -828,7 +828,7 @@ var MFMap = /*#__PURE__*/function (_React$Component) {
|
|
|
828
828
|
}, {
|
|
829
829
|
marker: true
|
|
830
830
|
});
|
|
831
|
-
this.events.
|
|
831
|
+
this.events = this.events.concat([eventClickMarker, eventRightClickMarker, eventDragEndMarker]);
|
|
832
832
|
|
|
833
833
|
if (this.props.onClickLocation) {
|
|
834
834
|
var _this$mapRef5;
|
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) {\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])\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.push([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","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","push","onClickLocation","location","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":";;;;;AAEO,IAAMA,SAAS,GAAG;EACrBC,GAAG,EAAE;AADgB,CAAlB;AAGA,IAAMC,YAAY,GAAGC,mBAAa,CAACH,SAAD,CAAlC;;ACHA,IAAMI,2BAA2B,GAAG;EACvCC,SAAS,EAAE,IAD4B;EAEvCC,YAAY,EAAE;AAFyB,CAApC;AAIP,AAAO,IAAMC,oBAAoB,GAAGJ,mBAAa,CAACC,2BAAD,CAA1C;;ACgBP,IAAMI,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD;EACf,IACIC,QADJ,GAiBID,KAjBJ,CACIC,QADJ;MAEIC,IAFJ,GAiBIF,KAjBJ,CAEIE,IAFJ;MAGIC,KAHJ,GAiBIH,KAjBJ,CAGIG,KAHJ;MAIIC,OAJJ,GAiBIJ,KAjBJ,CAIII,OAJJ;MAKIC,SALJ,GAiBIL,KAjBJ,CAKIK,SALJ;MAMIC,MANJ,GAiBIN,KAjBJ,CAMIM,MANJ;MAOIC,KAPJ,GAiBIP,KAjBJ,CAOIO,KAPJ;MAQIC,OARJ,GAiBIR,KAjBJ,CAQIQ,OARJ;MASIC,WATJ,GAiBIT,KAjBJ,CASIS,WATJ;MAUIC,OAVJ,GAiBIV,KAjBJ,CAUIU,OAVJ;MAWIC,SAXJ,GAiBIX,KAjBJ,CAWIW,SAXJ;MAYIC,sBAZJ,GAiBIZ,KAjBJ,CAYIY,sBAZJ;MAaIC,QAbJ,GAiBIb,KAjBJ,CAaIa,QAbJ;MAcIC,MAdJ,GAiBId,KAjBJ,CAcIc,MAdJ;MAeItB,GAfJ,GAiBIQ,KAjBJ,CAeIR,GAfJ;MAgBIuB,SAhBJ,GAiBIf,KAjBJ,CAgBIe,SAhBJ;EAmBA,IAAMC,YAAY,GAAGC,gBAAU,CAACxB,YAAD,CAA/B;EACA,IAAMyB,MAAM,GAAG1B,GAAG,IAAIwB,YAAY,CAACxB,GAAnC;EACA,IAAM2B,WAAW,GAAGC,YAAM,CAAC,IAAD,CAA1B;EAEAC,eAAS,CAAC;IACN,IAAIH,MAAM,IAAI,CAACC,WAAW,CAACG,OAA3B,EAAoC;MAAA;;MAChC,IAAIC,MAAM,GAAG;QACTtB,QAAQ,EAAEA,QAAQ,IAAI;UAAEuB,GAAG,EAAE,SAAP;UAAkBC,GAAG,EAAE;SADpC;QAETvB,IAAI,EAAEA,IAFG;QAGTC,KAAK,EAAEA,KAHE;QAITC,OAAO,EAAEA,OAJA;QAKTC,SAAS,EAAEA,SALF;QAMTC,MAAM,EAAEA,MANC;QAOTC,KAAK,EAAEA,KAPE;QAQTC,OAAO,EAAEA,OARA;QASTC,WAAW,EAAEA,WATJ;QAUTC,OAAO,EAAEA,OAVA;QAWTC,SAAS,EAAEA,SAXF;QAYTC,sBAAsB,EAAEA,sBAZf;QAaTC,QAAQ,EAAEA,QAbD;QAcTC,MAAM,EAAEA;OAdZ;MAgBAY,MAAM,CAACC,IAAP,CAAYJ,MAAZ,EAAoBK,OAApB,CAA4B,UAAAC,GAAG;QAC3B,IAAIN,MAAM,CAACM,GAAD,CAAN,IAAeC,SAAf,IAA4BP,MAAM,CAACM,GAAD,CAAN,IAAe,IAA/C,EAAqD;UACjD,OAAON,MAAM,CAACM,GAAD,CAAb;;OAFR;MAKAV,WAAW,CAACG,OAAZ,GAAsB,IAAIS,KAAK,CAACC,QAAV,CAAmBT,MAAnB,CAAtB;MACA,wBAAAJ,WAAW,CAACG,OAAZ,8EAAqBW,MAArB,CAA4Bf,MAA5B;MACAH,SAAS,IAAIA,SAAS,CAACI,WAAW,CAACG,OAAb,CAAtB;;GAzBC,EA2BN,CAACJ,MAAD,CA3BM,CAAT;EA6BAG,eAAS,CAAC;IACN,IAAIH,MAAJ,EAAY;MAAA;;MACR,yBAAAC,WAAW,CAACG,OAAZ,gFAAqBW,MAArB,CAA4Bf,MAA5B;;;IAEJ,OAAO;;;MACH,yBAAAC,WAAW,CAACG,OAAZ,gFAAqBW,MAArB,CAA4B,IAA5B;KADJ;GAJK,EAON,CAACf,MAAD,CAPM,CAAT;EAQAG,eAAS,CAAC;IACN,OAAO;;;MACH,yBAAAF,WAAW,CAACG,OAAZ,gFAAqBW,MAArB,CAA4B,IAA5B;KADJ;GADK,EAIN,EAJM,CAAT;EAMAZ,eAAS,CAAC;;;IACN,yBAAAF,WAAW,CAACG,OAAZ,gFAAqBY,WAArB,CAAiCjC,QAAjC;GADK,EAEN,CAACA,QAAD,CAFM,CAAT;EAGAoB,eAAS,CAAC;;;IACNnB,IAAI,IAAI4B,SAAR,8BAAqBX,WAAW,CAACG,OAAjC,0DAAqB,sBAAqBa,OAArB,CAA6BjC,IAA7B,CAArB;GADK,EAEN,CAACA,IAAD,CAFM,CAAT;EAGAmB,eAAS,CAAC;;;IACNlB,KAAK,IAAI2B,SAAT,8BAAsBX,WAAW,CAACG,OAAlC,0DAAsB,sBAAqBc,QAArB,CAA8BjC,KAA9B,CAAtB;GADK,EAEN,CAACA,KAAD,CAFM,CAAT;EAGAkB,eAAS,CAAC;IACN,IAAIjB,OAAO,IAAI0B,SAAf,EAA0B;MAAA;;MACtB,yBAAAX,WAAW,CAACG,OAAZ,gFAAqBe,UAArB,CAAgCjC,OAAhC;;GAFC,EAIN,CAACA,OAAD,CAJM,CAAT;EAKAiB,eAAS,CAAC;;;IACNhB,SAAS,IAAIyB,SAAb,8BAA0BX,WAAW,CAACG,OAAtC,0DAA0B,sBAAqBgB,YAArB,CAAkCjC,SAAlC,CAA1B;GADK,EAEN,CAACA,SAAD,CAFM,CAAT;EAGAgB,eAAS,CAAC;;;IACNf,MAAM,IAAIwB,SAAV,+BAAuBX,WAAW,CAACG,OAAnC,2DAAuB,uBAAqBiB,SAArB,CAA+BjC,MAA/B,CAAvB;GADK,EAEN,CAACA,MAAD,CAFM,CAAT;EAGAe,eAAS,CAAC;;;IACNd,KAAK,IAAIuB,SAAT,+BAAsBX,WAAW,CAACG,OAAlC,2DAAsB,uBAAqBkB,QAArB,CAA8BjC,KAA9B,CAAtB;GADK,EAEN,CAACA,KAAD,CAFM,CAAT;EAGAc,eAAS,CAAC;;;IACNb,OAAO,IAAIsB,SAAX,+BAAwBX,WAAW,CAACG,OAApC,2DAAwB,uBAAqBmB,UAArB,CAAgCjC,OAAhC,CAAxB;GADK,EAEN,CAACA,OAAD,CAFM,CAAT;EAGAa,eAAS,CAAC;;;IACNZ,WAAW,IAAIqB,SAAf,+BAA4BX,WAAW,CAACG,OAAxC,2DAA4B,uBAAqBoB,cAArB,CAAoCjC,WAApC,CAA5B;GADK,EAEN,CAACA,WAAD,CAFM,CAAT;EAGAY,eAAS,CAAC;;;IACNX,OAAO,IAAIoB,SAAX,+BAAwBX,WAAW,CAACG,OAApC,2DAAwB,uBAAqBqB,UAArB,CAAgCjC,OAAhC,CAAxB;GADK,EAEN,CAACA,OAAD,CAFM,CAAT;EAGAW,eAAS,CAAC;;;IACNV,SAAS,IAAImB,SAAb,+BAA0BX,WAAW,CAACG,OAAtC,2DAA0B,uBAAqBsB,YAArB,CAAkCjC,SAAlC,CAA1B;GADK,EAEN,CAACA,SAAD,CAFM,CAAT;EAGAU,eAAS,CAAC;;;IACNT,sBAAsB,IAAIkB,SAA1B,+BAAuCX,WAAW,CAACG,OAAnD,2DAAuC,uBAAqBuB,kBAArB,CAAwCjC,sBAAxC,CAAvC;GADK,EAEN,CAACA,sBAAD,CAFM,CAAT;EAGAS,eAAS,CAAC;;;IACNR,QAAQ,IAAIiB,SAAZ,+BAAyBX,WAAW,CAACG,OAArC,2DAAyB,uBAAqBwB,WAArB,CAAiCjC,QAAjC,CAAzB;GADK,EAEN,CAACA,QAAD,CAFM,CAAT;EAGAQ,eAAS,CAAC;;;IACNP,MAAM,IAAIgB,SAAV,+BAAuBX,WAAW,CAACG,OAAnC,2DAAuB,uBAAqByB,SAArB,CAA+BjC,MAA/B,CAAvB;GADK,EAEN,CAACA,MAAD,CAFM,CAAT;EAGA,OAAO,IAAP;AACH,CAhHD;;ACXA,IAAMkC,iBAAiB,GAAG,SAApBA,iBAAoB,CAAChD,KAAD;EACtB,IACIiD,MADJ,GAOIjD,KAPJ,CACIiD,MADJ;MAEIvC,OAFJ,GAOIV,KAPJ,CAEIU,OAFJ;MAGIwC,UAHJ,GAOIlD,KAPJ,CAGIkD,UAHJ;MAIIC,QAJJ,GAOInD,KAPJ,CAIImD,QAJJ;MAKI3D,GALJ,GAOIQ,KAPJ,CAKIR,GALJ;MAMIuB,SANJ,GAOIf,KAPJ,CAMIe,SANJ;EASA,IAAMC,YAAY,GAAGC,gBAAU,CAACxB,YAAD,CAA/B;EACA,IAAMyB,MAAM,GAAG1B,GAAG,IAAIwB,YAAY,CAACxB,GAAnC;EACA,IAAM4D,kBAAkB,GAAGhC,YAAM,EAAjC;;EAGA,IAAMiC,QAAQ,GAAG,SAAXA,QAAW;;;IACb,yBAAAD,kBAAkB,CAAC9B,OAAnB,gFAA4BW,MAA5B,CAAmC,IAAnC;IACA,IAAIV,MAAM,GAAG;MACT0B,MAAM,EAAEA,MAAM,IAAI;QAAEzB,GAAG,EAAE,SAAP;QAAkBC,GAAG,EAAE;OADhC;MAETf,OAAO,EAAEA,OAFA;MAGTwC,UAAU,EAAEA,UAHH;MAITC,QAAQ,EAAEA;KAJd;IAMAzB,MAAM,CAACC,IAAP,CAAYJ,MAAZ,EAAoBK,OAApB,CAA4B,UAAAC,GAAG;MAC3B,IAAIN,MAAM,CAACM,GAAD,CAAN,IAAeC,SAAf,IAA4BP,MAAM,CAACM,GAAD,CAAN,IAAe,IAA/C,EAAqD;QACjD,OAAON,MAAM,CAACM,GAAD,CAAb;;KAFR;IAKAuB,kBAAkB,CAAC9B,OAAnB,GAA6B,IAAIS,KAAK,CAACuB,eAAV,CAA0B/B,MAA1B,CAA7B;IACA,0BAAA6B,kBAAkB,CAAC9B,OAAnB,kFAA4BW,MAA5B,CAAmCf,MAAnC;IACAH,SAAS,IAAIA,SAAS,CAACqC,kBAAkB,CAAC9B,OAApB,CAAtB;GAfJ;;EAkBAD,eAAS,CAAC;IACN,IAAIH,MAAM,IAAI,CAACkC,kBAAkB,CAAC9B,OAAlC,EAA2C;MACvC+B,QAAQ;;GAFP,EAIN,CAACnC,MAAD,CAJM,CAAT;EAMAG,eAAS,CAAC;IACN,IAAIH,MAAJ,EAAY;MAAA;;MACR,0BAAAkC,kBAAkB,CAAC9B,OAAnB,kFAA4BW,MAA5B,CAAmCf,MAAnC;;;IAEJ,OAAO;;;MACH,0BAAAkC,kBAAkB,CAAC9B,OAAnB,kFAA4BW,MAA5B,CAAmC,IAAnC;KADJ;GAJK,EAON,CAACf,MAAD,CAPM,CAAT;EAQAG,eAAS,CAAC;IACN,OAAO;;;MACH,0BAAA+B,kBAAkB,CAAC9B,OAAnB,kFAA4BW,MAA5B,CAAmC,IAAnC;KADJ;GADK,EAIN,EAJM,CAAT;EAMAZ,eAAS,CAAC;IACN,IAAIH,MAAJ,EAAY;MACRmC,QAAQ;;GAFP,EAIN,CAACJ,MAAD,EAASC,UAAT,EAAqBC,QAArB,EAA+BzC,OAA/B,CAJM,CAAT;EAKA,OAAO,IAAP;AACH,CA3DD;;ICXa6C,YAAb;;AACWA,qBAAA,GAAW,UAACC,QAAD;EACd,IAAIA,QAAQ,IAAI1B,SAAZ,IAAyB0B,QAAQ,IAAI,IAAzC,EAA+C;IAC3C,OAAO,IAAP;;;EAEJ,OAAO,KAAP;AACH,CALM;;ACmBX,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACzD,KAAD;EACb,IACI0D,MADJ,GAcI1D,KAdJ,CACI0D,MADJ;MAEIC,MAFJ,GAcI3D,KAdJ,CAEI2D,MAFJ;MAGIC,SAHJ,GAcI5D,KAdJ,CAGI4D,SAHJ;MAIIC,WAJJ,GAcI7D,KAdJ,CAII6D,WAJJ;MAKInD,OALJ,GAcIV,KAdJ,CAKIU,OALJ;MAMIoD,WANJ,GAcI9D,KAdJ,CAMI8D,WANJ;MAOIC,WAPJ,GAcI/D,KAdJ,CAOI+D,WAPJ;MAQIpD,SARJ,GAcIX,KAdJ,CAQIW,SARJ;MASIqD,MATJ,GAcIhE,KAdJ,CASIgE,MATJ;MAUI3D,SAVJ,GAcIL,KAdJ,CAUIK,SAVJ;MAWIO,sBAXJ,GAcIZ,KAdJ,CAWIY,sBAXJ;MAYIpB,GAZJ,GAcIQ,KAdJ,CAYIR,GAZJ;MAaIuB,SAbJ,GAcIf,KAdJ,CAaIe,SAbJ;EAgBA,IAAMC,YAAY,GAAGC,gBAAU,CAACxB,YAAD,CAA/B;EACA,IAAMyB,MAAM,GAAG1B,GAAG,IAAIwB,YAAY,CAACxB,GAAnC;EACA,IAAMyE,SAAS,GAAG7C,YAAM,EAAxB;EAEAC,eAAS,CAAC;IACN,IAAIH,MAAM,IAAI,CAAC+C,SAAS,CAAC3C,OAAzB,EAAkC;MAAA;;MAC9B,IAAIC,MAAM,GAAG;QACTmC,MAAM,EAAEA,MAAM,IAAI;UAAElC,GAAG,EAAE,SAAP;UAAkBC,GAAG,EAAE;SADhC;QAETkC,MAAM,EAAEA,MAFC;QAGTC,SAAS,EAAEA,SAHF;QAITC,WAAW,EAAEA,WAJJ;QAKTnD,OAAO,EAAEA,OALA;QAMToD,WAAW,EAAEA,WANJ;QAOTC,WAAW,EAAEA,WAPJ;QAQTpD,SAAS,EAAEA,SARF;QASTqD,MAAM,EAAEA,MATC;QAUT3D,SAAS,EAAEA,SAVF;QAWTO,sBAAsB,EAAEA;OAX5B;MAaAc,MAAM,CAACC,IAAP,CAAYJ,MAAZ,EAAoBK,OAApB,CAA4B,UAAAC,GAAG;QAC3B,IAAIN,MAAM,CAACM,GAAD,CAAN,IAAeC,SAAf,IAA4BP,MAAM,CAACM,GAAD,CAAN,IAAe,IAA/C,EAAqD;UACjD,OAAON,MAAM,CAACM,GAAD,CAAb;;OAFR;MAKAoC,SAAS,CAAC3C,OAAV,GAAoB,IAAIS,KAAK,CAACmC,MAAV,CAAiB3C,MAAjB,CAApB;MACA,sBAAA0C,SAAS,CAAC3C,OAAV,0EAAmBW,MAAnB,CAA0Bf,MAA1B;MACAH,SAAS,IAAIA,SAAS,CAACkD,SAAS,CAAC3C,OAAX,CAAtB;;GAtBC,EAwBN,CAACJ,MAAD,CAxBM,CAAT;EA0BAG,eAAS,CAAC;IACN,IAAIH,MAAJ,EAAY;MAAA;;MACR,uBAAA+C,SAAS,CAAC3C,OAAV,4EAAmBW,MAAnB,CAA0Bf,MAA1B;;;IAEJ,OAAO;;;MACH,uBAAA+C,SAAS,CAAC3C,OAAV,4EAAmBW,MAAnB,CAA0B,IAA1B;KADJ;GAJK,EAON,CAACf,MAAD,CAPM,CAAT;EAQAG,eAAS,CAAC;IACN,OAAO;;;MACH,uBAAA4C,SAAS,CAAC3C,OAAV,4EAAmBW,MAAnB,CAA0B,IAA1B;KADJ;GADK,EAIN,EAJM,CAAT;EAMAZ,eAAS,CAAC;IACN,IAAIkC,YAAY,CAACY,QAAb,CAAsBT,MAAtB,CAAJ,EAAmC;MAAA;;MAC/B,uBAAAO,SAAS,CAAC3C,OAAV,4EAAmB8C,SAAnB,CAA6BV,MAA7B;;GAFC,EAKN,CAACA,MAAD,CALM,CAAT;EAMArC,eAAS,CAAC;IACN,IAAIkC,YAAY,CAACY,QAAb,CAAsBR,MAAtB,CAAJ,EAAmC;MAAA;;MAC/B,uBAAAM,SAAS,CAAC3C,OAAV,4EAAmB+C,SAAnB,CAA6BV,MAA7B;;GAFC,EAIN,CAACA,MAAD,CAJM,CAAT;EAKAtC,eAAS,CAAC;IACN,IAAIkC,YAAY,CAACY,QAAb,CAAsBP,SAAtB,CAAJ,EAAsC;MAAA;;MAClC,uBAAAK,SAAS,CAAC3C,OAAV,4EAAmBgD,YAAnB,CAAgCV,SAAhC;;GAFC,EAIN,CAACA,SAAD,CAJM,CAAT;EAKAvC,eAAS,CAAC;IACN,IAAIkC,YAAY,CAACY,QAAb,CAAsBN,WAAtB,CAAJ,EAAwC;MAAA;;MACpC,uBAAAI,SAAS,CAAC3C,OAAV,4EAAmBiD,cAAnB,CAAkCV,WAAlC;;GAFC,EAIN,CAACA,WAAD,CAJM,CAAT;EAKAxC,eAAS,CAAC;IACN,IAAIkC,YAAY,CAACY,QAAb,CAAsBzD,OAAtB,CAAJ,EAAoC;MAAA;;MAChC,uBAAAuD,SAAS,CAAC3C,OAAV,4EAAmBqB,UAAnB,CAA8BjC,OAA9B;;GAFC,EAIN,CAACA,OAAD,CAJM,CAAT;EAKAW,eAAS,CAAC;IACN,IAAIkC,YAAY,CAACY,QAAb,CAAsBL,WAAtB,CAAJ,EAAwC;MAAA;;MACpC,wBAAAG,SAAS,CAAC3C,OAAV,8EAAmBkD,cAAnB,CAAkCV,WAAlC;;GAFC,EAIN,CAACA,WAAD,CAJM,CAAT;EAKAzC,eAAS,CAAC;IACN,IAAIkC,YAAY,CAACY,QAAb,CAAsBJ,WAAtB,CAAJ,EAAwC;MAAA;;MACpC,wBAAAE,SAAS,CAAC3C,OAAV,8EAAmBmD,cAAnB,CAAkCV,WAAlC;;GAFC,EAIN,CAACA,WAAD,CAJM,CAAT;EAKA1C,eAAS,CAAC;IACN,IAAIkC,YAAY,CAACY,QAAb,CAAsBxD,SAAtB,CAAJ,EAAsC;MAAA;;MAClC,wBAAAsD,SAAS,CAAC3C,OAAV,8EAAmBsB,YAAnB,CAAgCjC,SAAhC;;GAFC,EAIN,CAACA,SAAD,CAJM,CAAT;EAKAU,eAAS,CAAC;IACN,IAAIkC,YAAY,CAACY,QAAb,CAAsBH,MAAtB,CAAJ,EAAmC;MAAA;;MAC/B,wBAAAC,SAAS,CAAC3C,OAAV,8EAAmBoD,SAAnB,CAA6BV,MAA7B;;GAFC,EAIN,CAACA,MAAD,CAJM,CAAT;EAKA3C,eAAS,CAAC;IACN,IAAIkC,YAAY,CAACY,QAAb,CAAsB9D,SAAtB,CAAJ,EAAsC;MAAA;;MAClC,wBAAA4D,SAAS,CAAC3C,OAAV,8EAAmBgB,YAAnB,CAAgCjC,SAAhC;;GAFC,EAIN,CAACA,SAAD,CAJM,CAAT;EAKAgB,eAAS,CAAC;IACN,IAAIkC,YAAY,CAACY,QAAb,CAAsBvD,sBAAtB,CAAJ,EAAmD;MAAA;;MAC/C,wBAAAqD,SAAS,CAAC3C,OAAV,8EAAmBuB,kBAAnB,CAAsCjC,sBAAtC;;GAFC,EAIN,CAACA,sBAAD,CAJM,CAAT;EAMA,OAAO,IAAP;AACH,CAvHD;;ACXA,IAAM+D,WAAW,GAAG,SAAdA,WAAc,CAAC3E,KAAD;EAChB,IACI4E,aADJ,GAII5E,KAJJ,CACI4E,aADJ;MAEIpF,GAFJ,GAIIQ,KAJJ,CAEIR,GAFJ;MAGIuB,SAHJ,GAIIf,KAJJ,CAGIe,SAHJ;EAMA,IAAMC,YAAY,GAAGC,gBAAU,CAACxB,YAAD,CAA/B;EACA,IAAMyB,MAAM,GAAG1B,GAAG,IAAIwB,YAAY,CAACxB,GAAnC;EACA,IAAMqF,YAAY,GAAGzD,YAAM,EAA3B;;EAGA,IAAMiC,QAAQ,GAAG,SAAXA,QAAW;;;IACb,yBAAAwB,YAAY,CAACvD,OAAb,gFAAsBM,OAAtB,CAA8B,UAACkD,OAAD;;;MAC1B5D,MAAM,SAAN,IAAAA,MAAM,WAAN,4BAAAA,MAAM,CAAE6D,IAAR,8DAAcC,MAAd,CAAqBF,OAArB;KADJ;IAGAD,YAAY,CAACvD,OAAb,GAAuBJ,MAAvB,aAAuBA,MAAvB,wCAAuBA,MAAM,CAAE6D,IAA/B,kDAAuB,cAAcE,UAAd,CAAyBL,aAAzB,CAAvB;IACA7D,SAAS,IAAIA,SAAS,CAAC8D,YAAY,CAACvD,OAAd,CAAtB;GALJ;;EAQAD,eAAS,CAAC;IACN,IAAIH,MAAJ,EAAY;MACRmC,QAAQ;;GAFP,EAIN,CAACnC,MAAD,CAJM,CAAT;EAMAG,eAAS,CAAC;IACN,OAAO;;;MACH,0BAAAwD,YAAY,CAACvD,OAAb,kFAAsBM,OAAtB,CAA8B,UAACkD,OAAD;;;QAC1B5D,MAAM,SAAN,IAAAA,MAAM,WAAN,6BAAAA,MAAM,CAAE6D,IAAR,gEAAcC,MAAd,CAAqBF,OAArB;OADJ;KADJ;GADK,EAMN,EANM,CAAT;EAOA,OAAO,IAAP;AACH,CAlCD;;AC0BA,IAAMI,oBAAoB,GAAG,SAAvBA,oBAAuB,CAAClF,KAAD;EACzB,IACImF,MADJ,GAmBInF,KAnBJ,CACImF,MADJ;MAEIC,YAFJ,GAmBIpF,KAnBJ,CAEIoF,YAFJ;MAGIC,iBAHJ,GAmBIrF,KAnBJ,CAGIqF,iBAHJ;MAIIC,iBAJJ,GAmBItF,KAnBJ,CAIIsF,iBAJJ;MAKIC,kBALJ,GAmBIvF,KAnBJ,CAKIuF,kBALJ;MAMIC,kBANJ,GAmBIxF,KAnBJ,CAMIwF,kBANJ;MAOIC,mBAPJ,GAmBIzF,KAnBJ,CAOIyF,mBAPJ;MAQIC,mBARJ,GAmBI1F,KAnBJ,CAQI0F,mBARJ;MASIC,mBATJ,GAmBI3F,KAnBJ,CASI2F,mBATJ;MAUIC,oBAVJ,GAmBI5F,KAnBJ,CAUI4F,oBAVJ;MAWIC,oBAXJ,GAmBI7F,KAnBJ,CAWI6F,oBAXJ;MAYIC,qBAZJ,GAmBI9F,KAnBJ,CAYI8F,qBAZJ;MAaIC,mBAbJ,GAmBI/F,KAnBJ,CAaI+F,mBAbJ;MAcIC,wBAdJ,GAmBIhG,KAnBJ,CAcIgG,wBAdJ;MAeIC,qBAfJ,GAmBIjG,KAnBJ,CAeIiG,qBAfJ;MAgBIC,eAhBJ,GAmBIlG,KAnBJ,CAgBIkG,eAhBJ;MAiBI1G,GAjBJ,GAmBIQ,KAnBJ,CAiBIR,GAjBJ;MAkBIuB,SAlBJ,GAmBIf,KAnBJ,CAkBIe,SAlBJ;EAqBA,IAAMC,YAAY,GAAGC,gBAAU,CAACxB,YAAD,CAA/B;EACA,IAAMyB,MAAM,GAAG1B,GAAG,IAAIwB,YAAY,CAACxB,GAAnC;EACA,IAAM2G,YAAY,GAAG/E,YAAM,EAA3B;EAEAC,eAAS,CAAC;IACN,IAAIH,MAAM,IAAI,CAACiF,YAAY,CAAC7E,OAA5B,EAAqC;MAAA;;MACjC,IAAIC,MAAM,GAAG;QACT4D,MAAM,EAANA,MADS;QAETC,YAAY,EAAZA,YAFS;QAGTC,iBAAiB,EAAjBA,iBAHS;QAITC,iBAAiB,EAAjBA,iBAJS;QAKTC,kBAAkB,EAAlBA,kBALS;QAMTC,kBAAkB,EAAlBA,kBANS;QAOTC,mBAAmB,EAAnBA,mBAPS;QAQTC,mBAAmB,EAAnBA,mBARS;QASTC,mBAAmB,EAAnBA,mBATS;QAUTC,oBAAoB,EAApBA,oBAVS;QAWTC,oBAAoB,EAApBA,oBAXS;QAYTC,qBAAqB,EAArBA,qBAZS;QAaTC,mBAAmB,EAAnBA,mBAbS;QAcTC,wBAAwB,EAAxBA,wBAdS;QAeTC,qBAAqB,EAArBA,qBAfS;QAgBTC,eAAe,EAAfA;OAhBJ;MAkBAxE,MAAM,CAACC,IAAP,CAAYJ,MAAZ,EAAoBK,OAApB,CAA4B,UAAAC,GAAG;QAC3B,IAAIN,MAAM,CAACM,GAAD,CAAN,IAAeC,SAAf,IAA4BP,MAAM,CAACM,GAAD,CAAN,IAAe,IAA/C,EAAqD;UACjD,OAAON,MAAM,CAACM,GAAD,CAAb;;OAFR;MAKAsE,YAAY,CAAC7E,OAAb,GAAuB,IAAIS,KAAK,CAACqE,kBAAV,CAA6B7E,MAA7B,CAAvB;MACA,yBAAA4E,YAAY,CAAC7E,OAAb,gFAAsBW,MAAtB,CAA6Bf,MAA7B;MACAH,SAAS,IAAIA,SAAS,CAACoF,YAAY,CAAC7E,OAAd,CAAtB;;GA3BC,EA6BN,CAACJ,MAAD,CA7BM,CAAT;EA+BAG,eAAS,CAAC;IACN,IAAIH,MAAJ,EAAY;MAAA;;MACR,0BAAAiF,YAAY,CAAC7E,OAAb,kFAAsBW,MAAtB,CAA6Bf,MAA7B;;;IAEJ,OAAO;;;MACH,0BAAAiF,YAAY,CAAC7E,OAAb,kFAAsBW,MAAtB,CAA6B,IAA7B;KADJ;GAJK,EAON,CAACf,MAAD,CAPM,CAAT;EAQAG,eAAS,CAAC;IACN,OAAO;;;MACH,0BAAA8E,YAAY,CAAC7E,OAAb,kFAAsBW,MAAtB,CAA6B,IAA7B;KADJ;GADK,EAIN,EAJM,CAAT;EAMAZ,eAAS,CAAC;;;IACN8D,MAAM,IAAIrD,SAAV,+BAAuBqE,YAAY,CAAC7E,OAApC,2DAAuB,uBAAsB+E,SAAtB,CAAgClB,MAAhC,CAAvB;GADK,EAEN,CAACA,MAAD,CAFM,CAAT;EAGA9D,eAAS,CAAC;;;IACN+D,YAAY,IAAItD,SAAhB,+BAA6BqE,YAAY,CAAC7E,OAA1C,2DAA6B,uBAAsBgF,eAAtB,CAAsClB,YAAtC,CAA7B;GADK,EAEN,CAACA,YAAD,CAFM,CAAT;EAGA/D,eAAS,CAAC;;;IACNoE,mBAAmB,IAAI3D,SAAvB,+BAAoCqE,YAAY,CAAC7E,OAAjD,2DAAoC,uBAAsBiF,sBAAtB,CAA6Cd,mBAA7C,CAApC;GADK,EAEN,CAACA,mBAAD,CAFM,CAAT;EAGApE,eAAS,CAAC;;;IACNyE,qBAAqB,IAAIhE,SAAzB,+BAAsCqE,YAAY,CAAC7E,OAAnD,2DAAsC,uBAAsBkF,wBAAtB,CAA+CV,qBAA/C,CAAtC;GADK,EAEN,CAACA,qBAAD,CAFM,CAAT;EAGAzE,eAAS,CAAC;;;IACN,IAAIE,MAAM,GAAG;MACT4D,MAAM,EAANA,MADS;MAETC,YAAY,EAAZA,YAFS;MAGTC,iBAAiB,EAAjBA,iBAHS;MAITC,iBAAiB,EAAjBA,iBAJS;MAKTC,kBAAkB,EAAlBA,kBALS;MAMTC,kBAAkB,EAAlBA,kBANS;MAOTC,mBAAmB,EAAnBA,mBAPS;MAQTC,mBAAmB,EAAnBA,mBARS;MASTC,mBAAmB,EAAnBA,mBATS;MAUTC,oBAAoB,EAApBA,oBAVS;MAWTC,oBAAoB,EAApBA,oBAXS;MAYTC,qBAAqB,EAArBA,qBAZS;MAaTC,mBAAmB,EAAnBA,mBAbS;MAcTC,wBAAwB,EAAxBA,wBAdS;MAeTC,qBAAqB,EAArBA,qBAfS;MAgBTC,eAAe,EAAfA;KAhBJ;IAkBAxE,MAAM,CAACC,IAAP,CAAYJ,MAAZ,EAAoBK,OAApB,CAA4B,UAAAC,GAAG;MAC3B,IAAIN,MAAM,CAACM,GAAD,CAAN,IAAeC,SAAf,IAA4BP,MAAM,CAACM,GAAD,CAAN,IAAe,IAA/C,EAAqD;QACjD,OAAON,MAAM,CAACM,GAAD,CAAb;;KAFR;IAKA,0BAAAsE,YAAY,CAAC7E,OAAb,kFAAsBmF,UAAtB,CAAiClF,MAAjC;GAxBK,EA0BL,CACI8D,iBADJ,EAEIC,iBAFJ,EAGIC,kBAHJ,EAIIC,kBAJJ,EAKIG,mBALJ,EAMIC,oBANJ,EAOIC,oBAPJ,EAQIE,mBARJ,EASIC,wBATJ,EAUIC,qBAVJ,EAWIC,eAXJ,CA1BK,CAAT;EA0CA,OAAO,IAAP;AACH,CA9HD;;AC3BA,IAAMQ,eAAe,GAAG,SAAlBA,eAAkB,CAAC1G,KAAD;EACpB,IACI2G,MADJ,GASI3G,KATJ,CACI2G,MADJ;MAEI1D,MAFJ,GASIjD,KATJ,CAEIiD,MAFJ;MAGI2D,QAHJ,GASI5G,KATJ,CAGI4G,QAHJ;MAIIlG,OAJJ,GASIV,KATJ,CAIIU,OAJJ;MAKIsD,MALJ,GASIhE,KATJ,CAKIgE,MALJ;MAMI6C,OANJ,GASI7G,KATJ,CAMI6G,OANJ;MAOIrH,GAPJ,GASIQ,KATJ,CAOIR,GAPJ;MAQIuB,SARJ,GASIf,KATJ,CAQIe,SARJ;EAWA,IAAMC,YAAY,GAAGC,gBAAU,CAACxB,YAAD,CAA/B;EACA,IAAMyB,MAAM,GAAG1B,GAAG,IAAIwB,YAAY,CAACxB,GAAnC;EACA,IAAMsH,gBAAgB,GAAG1F,YAAM,EAA/B;;EAGA,IAAMiC,QAAQ,GAAG,SAAXA,QAAW;;;IACb,yBAAAyD,gBAAgB,CAACxF,OAAjB,gFAA0BW,MAA1B,CAAiC,IAAjC;IACA,IAAIV,MAAM,GAAG;MACToF,MAAM,EAANA,MADS;MAET1D,MAAM,EAAEA,MAFC;MAGT2D,QAAQ,EAARA,QAHS;MAITlG,OAAO,EAAEA,OAJA;MAKTsD,MAAM,EAAEA,MALC;MAMT6C,OAAO,EAAEA;KANb;IAQAnF,MAAM,CAACC,IAAP,CAAYJ,MAAZ,EAAoBK,OAApB,CAA4B,UAAAC,GAAG;MAC3B,IAAIN,MAAM,CAACM,GAAD,CAAN,IAAeC,SAAf,IAA4BP,MAAM,CAACM,GAAD,CAAN,IAAe,IAA/C,EAAqD;QACjD,OAAON,MAAM,CAACM,GAAD,CAAb;;KAFR;IAKAiF,gBAAgB,CAACxF,OAAjB,GAA2B,IAAIS,KAAK,CAACgF,WAAV,CAAsBxF,MAAtB,CAA3B;IACA,0BAAAuF,gBAAgB,CAACxF,OAAjB,kFAA0BW,MAA1B,CAAiCf,MAAjC;IACAH,SAAS,IAAIA,SAAS,CAAC+F,gBAAgB,CAACxF,OAAlB,CAAtB;GAjBJ;;EAoBAD,eAAS,CAAC;IACN,IAAIH,MAAM,IAAI,CAAC4F,gBAAgB,CAACxF,OAAhC,EAAyC;MACrC+B,QAAQ;;GAFP,EAIN,CAACnC,MAAD,CAJM,CAAT;EAMAG,eAAS,CAAC;IACN,IAAIH,MAAJ,EAAY;MAAA;;MACR,0BAAA4F,gBAAgB,CAACxF,OAAjB,kFAA0BW,MAA1B,CAAiCf,MAAjC;;;IAEJ,OAAO;;;MACH,0BAAA4F,gBAAgB,CAACxF,OAAjB,kFAA0BW,MAA1B,CAAiC,IAAjC;KADJ;GAJK,EAON,CAACf,MAAD,CAPM,CAAT;EAQAG,eAAS,CAAC;IACN,OAAO;;;MACH,0BAAAyF,gBAAgB,CAACxF,OAAjB,kFAA0BW,MAA1B,CAAiC,IAAjC;KADJ;GADK,EAIN,EAJM,CAAT;EAMAZ,eAAS,CAAC;IACN,IAAIH,MAAJ,EAAY;MACRmC,QAAQ;;GAFP,EAIN,CAACsD,MAAD,EAAS1D,MAAT,EAAiB2D,QAAjB,CAJM,CAAT;EAKAvF,eAAS,CAAC;;;IACNX,OAAO,IAAIoB,SAAX,+BAAwBgF,gBAAgB,CAACxF,OAAzC,2DAAwB,uBAA0BqB,UAA1B,CAAqCjC,OAArC,CAAxB;GADK,EAEN,CAACA,OAAD,CAFM,CAAT;EAGAW,eAAS,CAAC;;;IACN2C,MAAM,IAAIlC,SAAV,+BAAuBgF,gBAAgB,CAACxF,OAAxC,2DAAuB,uBAA0BoD,SAA1B,CAAoCV,MAApC,CAAvB;GADK,EAEN,CAACA,MAAD,CAFM,CAAT;EAGA3C,eAAS,CAAC;;;IACNwF,OAAO,IAAI/E,SAAX,+BAAwBgF,gBAAgB,CAACxF,OAAzC,2DAAwB,uBAA0B0F,UAA1B,CAAqCH,OAArC,CAAxB;GADK,EAEN,CAACA,OAAD,CAFM,CAAT;EAGA,OAAO,IAAP;AACH,CAxED;;ACAA,IAAMI,cAAc,GAAG,SAAjBA,cAAiB,CAACjH,KAAD;EACnB,IACIkH,GADJ,GAQIlH,KARJ,CACIkH,GADJ;MAEIP,MAFJ,GAQI3G,KARJ,CAEI2G,MAFJ;MAGIjG,OAHJ,GAQIV,KARJ,CAGIU,OAHJ;MAIIsD,MAJJ,GAQIhE,KARJ,CAIIgE,MAJJ;MAKI6C,OALJ,GAQI7G,KARJ,CAKI6G,OALJ;MAMIrH,GANJ,GAQIQ,KARJ,CAMIR,GANJ;MAOIuB,SAPJ,GAQIf,KARJ,CAOIe,SAPJ;EAUA,IAAMC,YAAY,GAAGC,gBAAU,CAACxB,YAAD,CAA/B;EACA,IAAMyB,MAAM,GAAG1B,GAAG,IAAIwB,YAAY,CAACxB,GAAnC;EACA,IAAM2H,eAAe,GAAG/F,YAAM,EAA9B;;EAGA,IAAMiC,QAAQ,GAAG,SAAXA,QAAW;;;IACb,yBAAA8D,eAAe,CAAC7F,OAAhB,gFAAyBW,MAAzB,CAAgC,IAAhC;IACA,IAAIV,MAAM,GAAG;MACT2F,GAAG,EAAHA,GADS;MAETP,MAAM,EAAEA,MAFC;MAGTjG,OAAO,EAAEA,OAHA;MAITsD,MAAM,EAAEA,MAJC;MAKT6C,OAAO,EAAEA;KALb;IAOAnF,MAAM,CAACC,IAAP,CAAYJ,MAAZ,EAAoBK,OAApB,CAA4B,UAAAC,GAAG;MAC3B,IAAIN,MAAM,CAACM,GAAD,CAAN,IAAeC,SAAf,IAA4BP,MAAM,CAACM,GAAD,CAAN,IAAe,IAA/C,EAAqD;QACjD,OAAON,MAAM,CAACM,GAAD,CAAb;;KAFR;IAKAsF,eAAe,CAAC7F,OAAhB,GAA0B,IAAIS,KAAK,CAACqF,YAAV,CAAuB7F,MAAvB,CAA1B;IACA,0BAAA4F,eAAe,CAAC7F,OAAhB,kFAAyBW,MAAzB,CAAgCf,MAAhC;IACAH,SAAS,IAAIA,SAAS,CAACoG,eAAe,CAAC7F,OAAjB,CAAtB;GAhBJ;;EAmBAD,eAAS,CAAC;IACN,IAAIH,MAAM,IAAI,CAACiG,eAAe,CAAC7F,OAA/B,EAAwC;MACpC+B,QAAQ;;GAFP,EAIN,CAACnC,MAAD,CAJM,CAAT;EAMAG,eAAS,CAAC;IACN,IAAIH,MAAJ,EAAY;MAAA;;MACR,0BAAAiG,eAAe,CAAC7F,OAAhB,kFAAyBW,MAAzB,CAAgCf,MAAhC;;;IAEJ,OAAO;;;MACH,0BAAAiG,eAAe,CAAC7F,OAAhB,kFAAyBW,MAAzB,CAAgC,IAAhC;KADJ;GAJK,EAON,CAACf,MAAD,CAPM,CAAT;EAQAG,eAAS,CAAC;IACN,OAAO;;;MACH,0BAAA8F,eAAe,CAAC7F,OAAhB,kFAAyBW,MAAzB,CAAgC,IAAhC;KADJ;GADK,EAIN,EAJM,CAAT;EAMAZ,eAAS,CAAC;IACN,IAAIH,MAAJ,EAAY;MACRmC,QAAQ;;GAFP,EAIN,CAAC6D,GAAD,EAAMP,MAAN,EAAc3C,MAAd,CAJM,CAAT;EAKA3C,eAAS,CAAC;;;IACNX,OAAO,IAAIoB,SAAX,+BAAwBqF,eAAe,CAAC7F,OAAxC,2DAAwB,uBAAyBqB,UAAzB,CAAoCjC,OAApC,CAAxB;GADK,EAEN,CAACA,OAAD,CAFM,CAAT;EAGAW,eAAS,CAAC;;;IACNwF,OAAO,IAAI/E,SAAX,+BAAwBqF,eAAe,CAAC7F,OAAxC,2DAAwB,uBAAyB0F,UAAzB,CAAoCH,OAApC,CAAxB;GADK,EAEN,CAACA,OAAD,CAFM,CAAT;EAGA,OAAO,IAAP;AACH,CAnED;;;;;;;;;;;;;;;;;;;;;;;;;SCJgBQ,WAAWH,KAAaI;EACtC,IAAIC,QAAQ,eAAaD,EAAzB;EACA,IAAIE,KAAK,GAAGC,QAAQ,CAACC,cAAT,CAAwBH,QAAxB,CAAZ;;EACA,IAAIC,KAAJ,EAAW;IACT,OAAO,IAAP;;;EAEF,IAAMG,MAAM,GAAGF,QAAQ,CAACG,aAAT,CAAuB,QAAvB,CAAf;EACAD,MAAM,CAACE,GAAP,GAAaX,GAAb;EACAS,MAAM,CAACG,KAAP,GAAe,IAAf;EACAH,MAAM,CAACL,EAAP,GAAYC,QAAZ;EACAE,QAAQ,CAACM,IAAT,CAAcC,WAAd,CAA0BL,MAA1B;EACA,OAAOA,MAAP;AACD;;AAED,IAAMM,QAAQ,GAAG,SAAXA,QAAW;EACf,IAAIC,EAAE,GAAG,IAAIC,IAAJ,GAAWC,OAAX,EAAT;EACA,IAAIC,IAAI,GAAG,uCAAuCC,OAAvC,CAA+C,OAA/C,EAAwD,UAAUC,CAAV;IACjE,IAAIC,CAAC,GAAG,CAACN,EAAE,GAAGO,IAAI,CAACC,MAAL,KAAgB,EAAtB,IAA4B,EAA5B,GAAiC,CAAzC;IACAR,EAAE,GAAGO,IAAI,CAACE,KAAL,CAAWT,EAAE,GAAG,EAAhB,CAAL;IACA,OAAO,CAACK,CAAC,IAAI,GAAL,GAAWC,CAAX,GAAgBA,CAAC,GAAG,GAAJ,GAAU,GAA3B,EAAiCI,QAAjC,CAA0C,EAA1C,CAAP;GAHS,CAAX;EAKA,OAAOP,IAAP;AACD,CARD;;IAsCMQ;;;EASJ,eAAY7I,KAAZ;;;IACE,oCAAMA,KAAN;IAFF,YAAA,GAAS,EAAT;IAGE,MAAK8I,KAAL,GAAa;MACXtJ,GAAG,EAAE;KADP;IAGA,MAAKuJ,MAAL,GAAcd,QAAQ,EAAtB;IACA,MAAKe,QAAL,iBAA4B,MAAKD,MAAjC;IACA,MAAKE,YAAL,GAAoB,MAAKA,YAAL,CAAkBC,IAAlB,+BAApB;;;;;;SAGFD,eAAA,sBAAaE,CAAb;IACE,KAAKC,SAAL,GAAiBD,CAAjB;;;SAGFE,uBAAA;IACE,KAAKC,OAAL;;;SAGFA,UAAA;;;IACE,OAAOC,MAAM,CAAC,KAAKP,QAAN,CAAb;;IACA,IAAI,KAAKQ,aAAL,IAAsB,IAA1B,EAAgC;MAC9B,KAAKA,aAAL,CAAmBxE,MAAnB;;;IAEF,qBAAKyE,MAAL,8DAAa7H,OAAb,CAAqB,UAAC8H,CAAD;MACnBA,CAAC,SAAD,IAAAA,CAAC,WAAD,YAAAA,CAAC,CAAE1E,MAAH;KADF;IAGA,sBAAK2E,MAAL,8DAAaL,OAAb,KAAwB,KAAKK,MAAL,CAAYL,OAAZ,EAAxB;IACA,KAAKpC,GAAL,GAAW,IAAX;;;SAGF0C,gBAAA;;;;;;IAEE,IAAIC,gBAAgB,oBAAG,KAAKF,MAAR,kDAAG,cAAaG,WAAb,QAAA,EAA6C,UAACC,IAAD;;;MAClE,iBAAAA,IAAI,CAACC,MAAL,8DAAaC,OAAb,uBAAwBF,IAAI,CAACC,MAA7B,kDAAwB,cAAaC,OAAb,EAAxB;KADqB,EAEpB;MACDD,MAAM,EAAE;KAHa,CAAvB;IAKA,IAAIE,qBAAqB,oBAAG,KAAKP,MAAR,kDAAG,cAAaG,WAAb,aAAA,EAAkD,UAACC,IAAD;;;MAC5E,kBAAAA,IAAI,CAACC,MAAL,gEAAaG,YAAb,uBAA6BJ,IAAI,CAACC,MAAlC,kDAA6B,cAAaG,YAAb,EAA7B;KAD0B,EAEzB;MACDH,MAAM,EAAE;KAHkB,CAA5B;IAKA,IAAII,kBAAkB,oBAAG,KAAKT,MAAR,kDAAG,cAAaG,WAAb,UAAA,EAA+C,UAACC,IAAD;;;MACtE,kBAAAA,IAAI,CAACC,MAAL,gEAAaK,SAAb,uBAA0BN,IAAI,CAACC,MAA/B,kDAA0B,cAAaK,SAAb,EAA1B;KADuB,EAEtB;MACDL,MAAM,EAAE;KAHe,CAAzB;IAKA,KAAKP,MAAL,CAAYa,IAAZ,CAAiB,CAACT,gBAAD,EAAmBK,qBAAnB,EAA0CE,kBAA1C,CAAjB;;IACA,IAAI,KAAKpK,KAAL,CAAWuK,eAAf,EAAgC;MAAA;;MAC9B,IAAIA,eAAe,oBAAG,KAAKZ,MAAR,kDAAG,cAAaG,WAAb,QAAA,EAA6C,UAACC,IAAD;QACjE,MAAI,CAAC/J,KAAL,CAAWuK,eAAX,IAA8B,MAAI,CAACvK,KAAL,CAAWuK,eAAX,CAA2BR,IAA3B,CAA9B;OADoB,EAEnB;QACDS,QAAQ,EAAE;OAHU,CAAtB;MAKA,KAAKf,MAAL,CAAYa,IAAZ,CAAiBC,eAAjB;;;IAEF,IAAI,KAAKvK,KAAL,CAAWyK,oBAAf,EAAqC;MAAA;;MACnC,IAAIA,oBAAoB,oBAAG,KAAKd,MAAR,kDAAG,cAAaG,WAAb,aAAA,EAAkD,UAACC,IAAD;QAC3E,MAAI,CAAC/J,KAAL,CAAWyK,oBAAX,IAAmC,MAAI,CAACzK,KAAL,CAAWyK,oBAAX,CAAgCV,IAAhC,CAAnC;OADyB,EAExB;QACDS,QAAQ,EAAE;OAHe,CAA3B;MAKA,KAAKf,MAAL,CAAYa,IAAZ,CAAiBG,oBAAjB;;;IAEF,IAAI,KAAKzK,KAAL,CAAW0K,aAAf,EAA8B;MAAA;;MAC5B,IAAIA,aAAa,oBAAG,KAAKf,MAAR,kDAAG,cAAaG,WAAb,cAAA,EAAmD,UAACC,IAAD;QACrE,MAAI,CAAC/J,KAAL,CAAW0K,aAAX,IAA4B,MAAI,CAAC1K,KAAL,CAAW0K,aAAX,CAAyBX,IAAzB,CAA5B;OADkB,EAEjB;QACDS,QAAQ,EAAE;OAHQ,CAApB;MAKA,KAAKf,MAAL,CAAYa,IAAZ,CAAiBI,aAAjB;;;IAEF,IAAI,KAAK1K,KAAL,CAAW2K,gBAAf,EAAiC;MAAA;;MAC/B,IAAIA,gBAAgB,oBAAG,KAAKhB,MAAR,kDAAG,cAAaG,WAAb,iBAAA,EAAsD,UAACC,IAAD;QAC3E,MAAI,CAAC/J,KAAL,CAAW2K,gBAAX,IAA+B,MAAI,CAAC3K,KAAL,CAAW2K,gBAAX,CAA4BZ,IAA5B,CAA/B;OADqB,EAEpB;QACDS,QAAQ,EAAE;OAHW,CAAvB;MAKA,KAAKf,MAAL,CAAYa,IAAZ,CAAiBK,gBAAjB;;;;SAIJC,iBAAA;;;IACErB,MAAM,CAAC,KAAKP,QAAN,CAAN,GAAwB;MACtB,IAAI,MAAI,CAACI,SAAT,EAAoB;QAClB,IAAIyB,OAAO,GAAG,MAAI,CAAC7K,KAAL,CAAW6K,OAAzB;QACA,MAAI,CAAClB,MAAL,GAAc,IAAIJ,MAAM,CAACxH,KAAP,CAAa+I,GAAjB,CAAqB,MAAI,CAAC1B,SAA1B,EAAqCyB,OAArC,CAAd;;QACA,IAAI,MAAI,CAAC7K,KAAL,CAAW+K,UAAf,EAA2B;UACzB,MAAI,CAAC/K,KAAL,CAAW+K,UAAX,CAAsB,MAAI,CAACpB,MAA3B,EAAmC,MAAI,CAACZ,MAAxC;;;QAEF,MAAI,CAACa,aAAL;;QAEA,MAAI,CAACoB,QAAL,CAAc;UACZxL,GAAG,EAAE,MAAI,CAACmK;SADZ;OARF,MAWO;QACLsB,OAAO,CAACC,KAAR;;KAbJ;;;SAkBFC,SAAA;IACE,IAAIjE,GAAG,oBAAiB,KAAKlH,KAAL,CAAWoL,WAAX,GAAyB,MAAM,KAAKpL,KAAL,CAAWoL,WAA1C,GAAwD,EAAzE,sCAA2G,KAAKpL,KAAL,CAAWqL,OAAtH,aAAqI,KAAKrL,KAAL,CAAWsL,SAAhJ,kBAAsK,KAAKtC,QAAlL;;IACA,IAAI,KAAKhJ,KAAL,CAAWuL,KAAf,EAAsB;MACpBrE,GAAG,gBAAc,KAAKlH,KAAL,CAAWuL,KAA5B;;;IAEF,IAAIrE,GAAG,IAAI,KAAKA,GAAhB,EAAqB;MACnB,KAAKoC,OAAL;MACA,KAAKsB,cAAL;MACA,IAAIjD,MAAM,GAAGN,UAAU,CAACH,GAAD,EAAM,KAAK6B,MAAX,CAAvB;;MACA,IAAIpB,MAAJ,EAAY;QACV,KAAK6B,aAAL,GAAqB7B,MAArB;;;;IAGJ,KAAKT,GAAL,GAAWA,GAAX;IACA,IAAIsE,UAAU,GAAG;MACfhM,GAAG,EAAE,KAAKsJ,KAAL,CAAWtJ;KADlB;IAGA,OACEiM,4BAAA,CAAChM,YAAY,CAACiM,QAAd;MAAuBC,KAAK,EAAEH;KAA9B,EACEC,4BAAA,MAAA;MACEG,KAAK,EAAE;QAAEC,KAAK,EAAE,MAAT;QAAiBvL,MAAM,EAAE,MAAzB;QAAiCwL,OAAO,EAAE;;MACjDxE,EAAE,OAAK,KAAKyB;MACZgD,GAAG,EAAE,KAAK9C;KAHZ,CADF,EAOI,KAAKjJ,KAAL,CAAWgM,QAPf,CADF;;;;EA/HgBP,cAAK,CAACQ;;AA6I1BpD,KAAK,CAACqD,WAAN,GAAoBzM,YAApB;;ACnKA,IAAM0M,QAAQ,GAAG,SAAXA,QAAW,CAACnM,KAAD;EACb,IACIC,QADJ,GAmBID,KAnBJ,CACIC,QADJ;uBAmBID,KAnBJ,CAEIU,OAFJ;MAEIA,OAFJ,+BAEc,IAFd;MAGI0L,MAHJ,GAmBIpM,KAnBJ,CAGIoM,MAHJ;MAIIC,WAJJ,GAmBIrM,KAnBJ,CAIIqM,WAJJ;MAKIC,IALJ,GAmBItM,KAnBJ,CAKIsM,IALJ;MAMIjM,SANJ,GAmBIL,KAnBJ,CAMIK,SANJ;MAOIkM,QAPJ,GAmBIvM,KAnBJ,CAOIuM,QAPJ;MAQIC,KARJ,GAmBIxM,KAnBJ,CAQIwM,KARJ;MASIC,OATJ,GAmBIzM,KAnBJ,CASIyM,OATJ;MAUIC,YAVJ,GAmBI1M,KAnBJ,CAUI0M,YAVJ;MAWI1I,MAXJ,GAmBIhE,KAnBJ,CAWIgE,MAXJ;MAYI2I,KAZJ,GAmBI3M,KAnBJ,CAYI2M,KAZJ;MAaIhM,SAbJ,GAmBIX,KAnBJ,CAaIW,SAbJ;MAcIiM,QAdJ,GAmBI5M,KAnBJ,CAcI4M,QAdJ;MAeIhM,sBAfJ,GAmBIZ,KAnBJ,CAeIY,sBAfJ;MAgBIpB,GAhBJ,GAmBIQ,KAnBJ,CAgBIR,GAhBJ;MAiBIuB,SAjBJ,GAmBIf,KAnBJ,CAiBIe,SAjBJ;MAkBIkJ,OAlBJ,GAmBIjK,KAnBJ,CAkBIiK,OAlBJ;EAqBA,IAAMjJ,YAAY,GAAGC,gBAAU,CAACxB,YAAD,CAA/B;EACA,IAAMoN,oBAAoB,GAAG5L,gBAAU,CAACnB,oBAAD,CAAvC;EAEA,IAAMoB,MAAM,GAAG1B,GAAG,IAAIwB,YAAY,CAACxB,GAAnC;EACA,IAAMsN,SAAS,GAAG1L,YAAM,EAAxB;EAEAC,eAAS,CAAC;IACN,IAAIH,MAAM,IAAI,CAAC4L,SAAS,CAACxL,OAAzB,EAAkC;MAC9B,IAAIC,MAAM,GAAG;QACTtB,QAAQ,EAAEA,QAAQ,IAAI;UAAEuB,GAAG,EAAE,SAAP;UAAkBC,GAAG,EAAE;SADpC;QAETf,OAAO,EAAEA,OAFA;QAGT0L,MAAM,EAAEA,MAHC;QAITC,WAAW,EAAEA,WAJJ;QAKThM,SAAS,EAAEA,SALF;QAMTkM,QAAQ,EAAEA,QAND;QAOTC,KAAK,EAAEA,KAPE;QAQTC,OAAO,EAAEA,OARA;QASTC,YAAY,EAAEA,YATL;QAUT1I,MAAM,EAAEA,MAVC;QAWT2I,KAAK,EAAEA,KAXE;QAYThM,SAAS,EAAEA,SAZF;QAaTiM,QAAQ,EAAEA,QAbD;QAcThM,sBAAsB,EAAEA;OAd5B;MAgBAc,MAAM,CAACC,IAAP,CAAYJ,MAAZ,EAAoBK,OAApB,CAA4B,UAAAC,GAAG;QAC3B,IAAIN,MAAM,CAACM,GAAD,CAAN,IAAeC,SAAf,IAA4BP,MAAM,CAACM,GAAD,CAAN,IAAe,IAA/C,EAAqD;UACjD,OAAON,MAAM,CAACM,GAAD,CAAb;;OAFR;;MAKA,IAAIyK,IAAJ,EAAU;QACN,IAAIS,KAAK,GAAG,IAAIhL,KAAK,CAACiL,IAAV,CAAeV,IAAI,CAACT,KAApB,EAA2BS,IAAI,CAAChM,MAAhC,EAAwCgM,IAAI,CAACpF,GAA7C,CAAZ;QACA3F,MAAM,CAAC+K,IAAP,GAAcS,KAAd;;;MAEJD,SAAS,CAACxL,OAAV,GAAoB,IAAIS,KAAK,CAACkL,MAAV,CAAiB1L,MAAjB,CAApB;;MACA,IAAIvB,KAAK,CAACkN,UAAN,IAAoBpL,SAAxB,EAAmC;QAC/BgL,SAAS,CAACxL,OAAV,CAAkB6L,aAAlB,CAAgCnN,KAAK,CAACkN,UAAtC;;;MAEJ,IAAIlN,KAAK,CAACoN,YAAN,IAAsBtL,SAA1B,EAAqC;QACjCgL,SAAS,CAACxL,OAAV,CAAkB+L,eAAlB,CAAkCrN,KAAK,CAACoN,YAAxC;;;MAEJ,IAAI,EAACP,oBAAD,aAACA,oBAAD,eAACA,oBAAoB,CAAEjN,SAAvB,CAAJ,EAAsC;QAClCkN,SAAS,CAACxL,OAAV,CAAkBW,MAAlB,CAAyBf,MAAzB;;;MAEJ,IAAIlB,KAAK,CAACsN,cAAN,IAAwBxL,SAA5B,EAAuC;QACnC9B,KAAK,CAACsN,cAAN,GAAuBR,SAAS,CAACxL,OAAV,CAAkBgM,cAAlB,EAAvB,GAA4DR,SAAS,CAACxL,OAAV,CAAkBiM,cAAlB,EAA5D;;;MAEJT,SAAS,CAACxL,OAAV,CAAkB2I,OAAlB,GAA4BA,OAA5B;MACA6C,SAAS,CAACxL,OAAV,CAAkB6I,YAAlB,GAAiCnK,KAAK,CAACmK,YAAvC;MACA2C,SAAS,CAACxL,OAAV,CAAkB+I,SAAlB,GAA8BrK,KAAK,CAACqK,SAApC;MACAtJ,SAAS,IAAIA,SAAS,CAAC+L,SAAS,CAACxL,OAAX,CAAtB;MACA,CAAAuL,oBAAoB,SAApB,IAAAA,oBAAoB,WAApB,YAAAA,oBAAoB,CAAEjN,SAAtB,MAAmCiN,oBAAnC,aAAmCA,oBAAnC,uBAAmCA,oBAAoB,CAAEjN,SAAtB,CAAgCkN,SAAS,CAACxL,OAA1C,CAAnC;;GA5CC,EA8CN,CAACJ,MAAD,CA9CM,CAAT;EAgDAG,eAAS,CAAC;IACN,IAAIH,MAAJ,EAAY;MACR,IAAI,EAAC2L,oBAAD,aAACA,oBAAD,eAACA,oBAAoB,CAAEjN,SAAvB,CAAJ,EAAsC;QAAA;;QAClC,sBAAAkN,SAAS,CAACxL,OAAV,0EAAmBW,MAAnB,CAA0Bf,MAA1B;;;;IAGR,OAAO;MACH,IAAI,EAAC2L,oBAAD,aAACA,oBAAD,eAACA,oBAAoB,CAAEjN,SAAvB,CAAJ,EAAsC;QAAA;;QAClC,uBAAAkN,SAAS,CAACxL,OAAV,4EAAmBW,MAAnB,CAA0B,IAA1B;;KAFR;GANK,EAWN,CAACf,MAAD,CAXM,CAAT;EAYAG,eAAS,CAAC;IACN,OAAO;MACH,IAAI,EAACwL,oBAAD,aAACA,oBAAD,eAACA,oBAAoB,CAAEjN,SAAvB,CAAJ,EAAsC;QAAA;;QAClC,uBAAAkN,SAAS,CAACxL,OAAV,4EAAmBW,MAAnB,CAA0B,IAA1B;;;MAEJ6K,SAAS,CAACxL,OAAV,KAAqBuL,oBAArB,aAAqBA,oBAArB,uBAAqBA,oBAAoB,CAAEhN,YAA3C,MAA2DgN,oBAA3D,aAA2DA,oBAA3D,uBAA2DA,oBAAoB,CAAEhN,YAAtB,CAAmCiN,SAAS,CAACxL,OAA7C,CAA3D;KAJJ;GADK,EAON,EAPM,CAAT;EASAD,eAAS,CAAC;;;IACN,uBAAAyL,SAAS,CAACxL,OAAV,4EAAmBY,WAAnB,CAA+BjC,QAA/B;GADK,EAEN,CAACA,QAAD,CAFM,CAAT;EAGAoB,eAAS,CAAC;;;IACN,uBAAAyL,SAAS,CAACxL,OAAV,4EAAmBqB,UAAnB,CAA8BjC,OAA9B;GADK,EAEN,CAACA,OAAD,CAFM,CAAT;EAGAW,eAAS,CAAC;;;IACN+K,MAAM,IAAItK,SAAV,4BAAuBgL,SAAS,CAACxL,OAAjC,wDAAuB,oBAAmBkM,SAAnB,CAA6BpB,MAA7B,CAAvB;GADK,EAEN,CAACA,MAAD,CAFM,CAAT;EAGA/K,eAAS,CAAC;;;IACNgL,WAAW,IAAIvK,SAAf,4BAA4BgL,SAAS,CAACxL,OAAtC,wDAA4B,oBAAmBmM,cAAnB,CAAkCpB,WAAlC,CAA5B;GADK,EAEN,CAACA,WAAD,CAFM,CAAT;EAGAhL,eAAS,CAAC;;;IACNiL,IAAI,IAAIxK,SAAR,4BAAqBgL,SAAS,CAACxL,OAA/B,wDAAqB,oBAAmBoM,OAAnB,CAA2BpB,IAA3B,CAArB;GADK,EAEN,CAACA,IAAD,CAFM,CAAT;EAGAjL,eAAS,CAAC;;;IACNhB,SAAS,IAAIyB,SAAb,4BAA0BgL,SAAS,CAACxL,OAApC,wDAA0B,oBAAmBgB,YAAnB,CAAgCjC,SAAhC,CAA1B;GADK,EAEN,CAACA,SAAD,CAFM,CAAT;EAGAgB,eAAS,CAAC;;;IACNkL,QAAQ,IAAIzK,SAAZ,6BAAyBgL,SAAS,CAACxL,OAAnC,yDAAyB,qBAAmBqM,WAAnB,CAA+BpB,QAA/B,CAAzB;GADK,EAEN,CAACA,QAAD,CAFM,CAAT;EAGAlL,eAAS,CAAC;;;IACNmL,KAAK,IAAI1K,SAAT,6BAAsBgL,SAAS,CAACxL,OAAhC,yDAAsB,qBAAmBsM,QAAnB,CAA4BpB,KAA5B,CAAtB;GADK,EAEN,CAACA,KAAD,CAFM,CAAT;EAGAnL,eAAS,CAAC;;;IACNoL,OAAO,IAAI3K,SAAX,6BAAwBgL,SAAS,CAACxL,OAAlC,yDAAwB,qBAAmBuM,UAAnB,CAA8BpB,OAA9B,CAAxB;GADK,EAEN,CAACA,OAAD,CAFM,CAAT;EAGApL,eAAS,CAAC;;;IACNqL,YAAY,IAAI5K,SAAhB,6BAA6BgL,SAAS,CAACxL,OAAvC,yDAA6B,qBAAmBwM,eAAnB,CAAmCpB,YAAnC,CAA7B;GADK,EAEN,CAACA,YAAD,CAFM,CAAT;EAGArL,eAAS,CAAC;;;IACN2C,MAAM,IAAIlC,SAAV,6BAAuBgL,SAAS,CAACxL,OAAjC,yDAAuB,qBAAmBoD,SAAnB,CAA6BV,MAA7B,CAAvB;GADK,EAEN,CAACA,MAAD,CAFM,CAAT;EAGA3C,eAAS,CAAC;;;IACNsL,KAAK,IAAI7K,SAAT,6BAAsBgL,SAAS,CAACxL,OAAhC,yDAAsB,qBAAmByM,QAAnB,CAA4BpB,KAA5B,CAAtB;GADK,EAEN,CAACA,KAAD,CAFM,CAAT;EAGAtL,eAAS,CAAC;;;IACNV,SAAS,IAAImB,SAAb,6BAA0BgL,SAAS,CAACxL,OAApC,yDAA0B,qBAAmBsB,YAAnB,CAAgCjC,SAAhC,CAA1B;GADK,EAEN,CAACA,SAAD,CAFM,CAAT;EAIAU,eAAS,CAAC;;;IACNuL,QAAQ,IAAI9K,SAAZ,6BAAyBgL,SAAS,CAACxL,OAAnC,yDAAyB,qBAAmB0M,WAAnB,CAA+BpB,QAA/B,CAAzB;GADK,EAEN,CAACA,QAAD,CAFM,CAAT;EAIAvL,eAAS,CAAC;;;IACNT,sBAAsB,IAAIkB,SAA1B,6BAAuCgL,SAAS,CAACxL,OAAjD,yDAAuC,qBAAmBuB,kBAAnB,CAAsCjC,sBAAtC,CAAvC;GADK,EAEN,CAACA,sBAAD,CAFM,CAAT;EAIAS,eAAS,CAAC;;;IACNiL,IAAI,IAAIxK,SAAR,6BAAqBgL,SAAS,CAACxL,OAA/B,yDAAqB,qBAAmBoM,OAAnB,CAA2B,IAAI3L,KAAK,CAACiL,IAAV,CAAeV,IAAI,CAACT,KAApB,EAA2BS,IAAI,CAAChM,MAAhC,EAAwCgM,IAAI,CAACpF,GAA7C,CAA3B,CAArB;GADK,EAEN,CAACoF,IAAD,CAFM,CAAT;EAIAjL,eAAS,CAAC;;;IACNrB,KAAK,CAACkN,UAAN,IAAoBpL,SAApB,6BAAiCgL,SAAS,CAACxL,OAA3C,yDAAiC,qBAAmB6L,aAAnB,CAAiCnN,KAAK,CAACkN,UAAvC,CAAjC;GADK,EAEN,CAAClN,KAAK,CAACkN,UAAP,CAFM,CAAT;EAIA7L,eAAS,CAAC;;;IACNrB,KAAK,CAACoN,YAAN,IAAsBtL,SAAtB,6BAAmCgL,SAAS,CAACxL,OAA7C,yDAAmC,qBAAmB+L,eAAnB,CAAmCrN,KAAK,CAACoN,YAAzC,CAAnC;GADK,EAEN,CAACpN,KAAK,CAACoN,YAAP,CAFM,CAAT;EAIA/L,eAAS,CAAC;IACN,IAAIrB,KAAK,CAACsN,cAAN,IAAwBxL,SAA5B,EAAuC;MACnC9B,KAAK,CAACsN,cAAN,GAAuBR,SAAS,CAACxL,OAAV,CAAkBgM,cAAlB,EAAvB,GAA4DR,SAAS,CAACxL,OAAV,CAAkBiM,cAAlB,EAA5D;;GAFC,EAIN,CAACvN,KAAK,CAACsN,cAAP,CAJM,CAAT;EAKA,OAAO,IAAP;AACH,CAnKD;;ACzBA,IAAMW,eAAe,GAAG,SAAlBA,eAAkB,CAACjO,KAAD;EACpB,qBAOIA,KAPJ,CACIkO,OADJ;MACIA,OADJ,+BACc,CADd;uBAOIlO,KAPJ,CAEImO,OAFJ;MAEIA,OAFJ,+BAEc,EAFd;sBAOInO,KAPJ,CAGI2D,MAHJ;MAGIA,MAHJ,8BAGa,GAHb;MAIIyK,WAJJ,GAOIpO,KAPJ,CAIIoO,WAJJ;MAKI5O,GALJ,GAOIQ,KAPJ,CAKIR,GALJ;MAMIuB,SANJ,GAOIf,KAPJ,CAMIe,SANJ;EASA,IAAMC,YAAY,GAAGC,gBAAU,CAACxB,YAAD,CAA/B;EACA,IAAMyB,MAAM,GAAG1B,GAAG,IAAIwB,YAAY,CAACxB,GAAnC;EACA,IAAM6O,UAAU,GAAGjN,YAAM,CAAiB,EAAjB,CAAzB;EACA,IAAMkN,gBAAgB,GAAGlN,YAAM,EAA/B;;EAEA,IAAMmN,WAAW,GAAG,SAAdA,WAAc;;;IAChB,yBAAAD,gBAAgB,CAAChN,OAAjB,gFAA0BW,MAA1B,CAAiC,IAAjC;;IACA,IAAIf,MAAJ,EAAY;MAAA;;MACR,IAAIK,MAAM,GAAG;QACT2M,OAAO,EAAEA,OADA;QAETC,OAAO,EAAEA,OAFA;QAGTxK,MAAM,EAAEA,MAHC;QAITyK,WAAW,EAAEA;OAJjB;MAMA1M,MAAM,CAACC,IAAP,CAAYJ,MAAZ,EAAoBK,OAApB,CAA4B,UAAAC,GAAG;QAC3B,IAAIN,MAAM,CAACM,GAAD,CAAN,IAAeC,SAAf,IAA4BP,MAAM,CAACM,GAAD,CAAN,IAAe,IAA/C,EAAqD;UACjD,OAAON,MAAM,CAACM,GAAD,CAAb;;OAFR;MAKAyM,gBAAgB,CAAChN,OAAjB,GAA2B,IAAIS,KAAK,CAACyM,eAAV,CAA0BH,UAAU,CAAC/M,OAArC,EAA8CC,MAA9C,CAA3B;MACA,0BAAA+M,gBAAgB,CAAChN,OAAjB,kFAA0BW,MAA1B,CAAiCf,MAAjC;MACAH,SAAS,IAAIA,SAAS,CAACuN,gBAAgB,CAAChN,OAAlB,CAAtB;;GAhBR;;EAmBA,IAAMmN,cAAc,GAAG;IACnB7O,SAAS,EAAE,mBAACoK,MAAD;MACPqE,UAAU,CAAC/M,OAAX,CAAmBgJ,IAAnB,CAAwBN,MAAxB;MACAuE,WAAW;KAHI;IAKnB1O,YAAY,EAAE,sBAACmK,MAAD;MACV,IAAI0E,UAAU,GAAGL,UAAU,CAAC/M,OAAX,CAAmBqN,MAAnB,CAA0B,UAAAjF,CAAC;QAAA,OAAIA,CAAC,IAAIM,MAAT;OAA3B,CAAjB;MACAqE,UAAU,CAAC/M,OAAX,GAAqBoN,UAArB;MACAH,WAAW;;GARnB;EAYAlN,eAAS,CAAC;IACN,IAAIH,MAAM,IAAI,CAACoN,gBAAgB,CAAChN,OAAhC,EAAyC;MACrCiN,WAAW;;GAFV,EAIN,CAACrN,MAAD,CAJM,CAAT;EAMAG,eAAS,CAAC;IACN,IAAIH,MAAJ,EAAY;MAAA;;MACR,0BAAAoN,gBAAgB,CAAChN,OAAjB,kFAA0BW,MAA1B,CAAiCf,MAAjC;;;IAEJ,OAAO;;;MACH,0BAAAoN,gBAAgB,CAAChN,OAAjB,kFAA0BW,MAA1B,CAAiC,IAAjC;KADJ;GAJK,EAON,CAACf,MAAD,CAPM,CAAT;EAQAG,eAAS,CAAC;IACN,OAAO;;;MACH,0BAAAiN,gBAAgB,CAAChN,OAAjB,kFAA0BW,MAA1B,CAAiC,IAAjC;KADJ;GADK,EAIN,EAJM,CAAT;EAKAZ,eAAS,CAAC;IACN,IAAIH,MAAJ,EAAY;MACRqN,WAAW;;GAFV,EAIN,CAACL,OAAD,EAAUC,OAAV,EAAmBxK,MAAnB,CAJM,CAAT;EAKAtC,eAAS,CAAC;;;IACN+M,WAAW,IAAItM,SAAf,+BAA4BwM,gBAAgB,CAAChN,OAA7C,2DAA4B,uBAA0BsN,cAA1B,CAAyCR,WAAzC,CAA5B;GADK,EAEN,CAACA,WAAD,CAFM,CAAT;EAIA,OACI3C,4BAAA,CAAC3L,oBAAoB,CAAC4L,QAAtB;IAA+BC,KAAK,EAAE8C;GAAtC,EACKzO,KADL,aACKA,KADL,uBACKA,KAAK,CAAEgM,QADZ,CADJ;AAKH,CA/ED;;ACDA,IAAM6C,KAAK,GAAG,SAARA,KAAQ,CAAC7O,KAAD;EACV,IACIC,QADJ,GAcID,KAdJ,CACIC,QADJ;MAEIuM,KAFJ,GAcIxM,KAdJ,CAEIwM,KAFJ;MAGIsC,QAHJ,GAcI9O,KAdJ,CAGI8O,QAHJ;MAIIC,KAJJ,GAcI/O,KAdJ,CAII+O,KAJJ;MAKIC,IALJ,GAcIhP,KAdJ,CAKIgP,IALJ;MAMI1C,IANJ,GAcItM,KAdJ,CAMIsM,IANJ;MAOIjM,SAPJ,GAcIL,KAdJ,CAOIK,SAPJ;MAQI2D,MARJ,GAcIhE,KAdJ,CAQIgE,MARJ;MASItD,OATJ,GAcIV,KAdJ,CASIU,OATJ;MAUIC,SAVJ,GAcIX,KAdJ,CAUIW,SAVJ;MAWIC,sBAXJ,GAcIZ,KAdJ,CAWIY,sBAXJ;MAYIpB,GAZJ,GAcIQ,KAdJ,CAYIR,GAZJ;MAaIuB,SAbJ,GAcIf,KAdJ,CAaIe,SAbJ;EAgBA,IAAMC,YAAY,GAAGC,gBAAU,CAACxB,YAAD,CAA/B;EACA,IAAMyB,MAAM,GAAG1B,GAAG,IAAIwB,YAAY,CAACxB,GAAnC;EACA,IAAMyP,MAAM,GAAG7N,YAAM,EAArB;EAEAC,eAAS,CAAC;IACN,IAAIH,MAAM,IAAI,CAAC+N,MAAM,CAAC3N,OAAtB,EAA+B;MAAA;;MAC3B,IAAIC,MAAM,GAAG;QACTtB,QAAQ,EAAEA,QAAQ,IAAI;UAAEuB,GAAG,EAAE,SAAP;UAAkBC,GAAG,EAAE;SADpC;QAET+K,KAAK,EAAEA,KAFE;QAGTsC,QAAQ,EAAEA,QAHD;QAITC,KAAK,EAAEA,KAJE;QAKTC,IAAI,EAAEA,IALG;QAMT1C,IAAI,EAAEA,IANG;QAOTjM,SAAS,EAAEA,SAPF;QAQT2D,MAAM,EAAEA,MARC;QASTtD,OAAO,EAAEA,OATA;QAUTC,SAAS,EAAEA,SAVF;QAWTC,sBAAsB,EAAEA;OAX5B;MAaAc,MAAM,CAACC,IAAP,CAAYJ,MAAZ,EAAoBK,OAApB,CAA4B,UAAAC,GAAG;QAC3B,IAAIN,MAAM,CAACM,GAAD,CAAN,IAAeC,SAAf,IAA4BP,MAAM,CAACM,GAAD,CAAN,IAAe,IAA/C,EAAqD;UACjD,OAAON,MAAM,CAACM,GAAD,CAAb;;OAFR;MAKAoN,MAAM,CAAC3N,OAAP,GAAiB,IAAIS,KAAK,CAACmN,GAAV,CAAc3N,MAAd,CAAjB;MACA,mBAAA0N,MAAM,CAAC3N,OAAP,oEAAgBW,MAAhB,CAAuBf,MAAvB;MACAH,SAAS,IAAIA,SAAS,CAACkO,MAAM,CAAC3N,OAAR,CAAtB;;GAtBC,EAwBN,CAACJ,MAAD,CAxBM,CAAT;EA0BAG,eAAS,CAAC;IACN,IAAIH,MAAJ,EAAY;MAAA;;MACR,oBAAA+N,MAAM,CAAC3N,OAAP,sEAAgBW,MAAhB,CAAuBf,MAAvB;;;IAEJ,OAAO;;;MACH,oBAAA+N,MAAM,CAAC3N,OAAP,sEAAgBW,MAAhB,CAAuB,IAAvB;KADJ;GAJK,EAON,CAACf,MAAD,CAPM,CAAT;EAQAG,eAAS,CAAC;IACN,OAAO;;;MACH,oBAAA4N,MAAM,CAAC3N,OAAP,sEAAgBW,MAAhB,CAAuB,IAAvB;KADJ;GADK,EAIN,EAJM,CAAT;EAMAZ,eAAS,CAAC;;;IACN,oBAAA4N,MAAM,CAAC3N,OAAP,sEAAgBY,WAAhB,CAA4BjC,QAA5B;GADK,EAEN,CAACA,QAAD,CAFM,CAAT;EAGAoB,eAAS,CAAC;;;IACNmL,KAAK,IAAI1K,SAAT,yBAAsBmN,MAAM,CAAC3N,OAA7B,qDAAsB,iBAAgBsM,QAAhB,CAAyBpB,KAAzB,CAAtB;GADK,EAEN,CAACA,KAAD,CAFM,CAAT;EAGAnL,eAAS,CAAC;;;IACNyN,QAAQ,IAAIhN,SAAZ,yBAAyBmN,MAAM,CAAC3N,OAAhC,qDAAyB,iBAAgB6N,WAAhB,CAA4BL,QAA5B,CAAzB;GADK,EAEN,CAACA,QAAD,CAFM,CAAT;EAGAzN,eAAS,CAAC;;;IACN0N,KAAK,IAAIjN,SAAT,yBAAsBmN,MAAM,CAAC3N,OAA7B,qDAAsB,iBAAgB8N,QAAhB,CAAyBL,KAAzB,CAAtB;GADK,EAEN,CAACA,KAAD,CAFM,CAAT;EAGA1N,eAAS,CAAC;;;IACN2N,IAAI,IAAIlN,SAAR,yBAAqBmN,MAAM,CAAC3N,OAA5B,qDAAqB,iBAAgB+N,OAAhB,CAAwBL,IAAxB,CAArB;GADK,EAEN,CAACA,IAAD,CAFM,CAAT;EAGA3N,eAAS,CAAC;;;IACNiL,IAAI,IAAIxK,SAAR,0BAAqBmN,MAAM,CAAC3N,OAA5B,sDAAqB,kBAAgBoM,OAAhB,CAAwBpB,IAAxB,CAArB;GADK,EAEN,CAACA,IAAD,CAFM,CAAT;EAGAjL,eAAS,CAAC;;;IACNhB,SAAS,IAAIyB,SAAb,0BAA0BmN,MAAM,CAAC3N,OAAjC,sDAA0B,kBAAgBgB,YAAhB,CAA6BjC,SAA7B,CAA1B;GADK,EAEN,CAACA,SAAD,CAFM,CAAT;EAGAgB,eAAS,CAAC;;;IACN2C,MAAM,IAAIlC,SAAV,0BAAuBmN,MAAM,CAAC3N,OAA9B,sDAAuB,kBAAgBoD,SAAhB,CAA0BV,MAA1B,CAAvB;GADK,EAEN,CAACA,MAAD,CAFM,CAAT;EAGA3C,eAAS,CAAC;;;IACNX,OAAO,IAAIoB,SAAX,0BAAwBmN,MAAM,CAAC3N,OAA/B,sDAAwB,kBAAgBqB,UAAhB,CAA2BjC,OAA3B,CAAxB;GADK,EAEN,CAACA,OAAD,CAFM,CAAT;EAGAW,eAAS,CAAC;;;IACNV,SAAS,IAAImB,SAAb,0BAA0BmN,MAAM,CAAC3N,OAAjC,sDAA0B,kBAAgBsB,YAAhB,CAA6BjC,SAA7B,CAA1B;GADK,EAEN,CAACA,SAAD,CAFM,CAAT;EAGAU,eAAS,CAAC;;;IACNT,sBAAsB,IAAIkB,SAA1B,0BAAuCmN,MAAM,CAAC3N,OAA9C,sDAAuC,kBAAgBuB,kBAAhB,CAAmCjC,sBAAnC,CAAvC;GADK,EAEN,CAACA,sBAAD,CAFM,CAAT;EAGA,OAAO,IAAP;AACH,CA/FD;;ACAA,IAAM0O,YAAY,GAAG,SAAfA,YAAe,CAACtP,KAAD;EACjB,IACIiD,MADJ,GAOIjD,KAPJ,CACIiD,MADJ;uBAOIjD,KAPJ,CAEIU,OAFJ;MAEIA,OAFJ,+BAEc,IAFd;MAGIwC,UAHJ,GAOIlD,KAPJ,CAGIkD,UAHJ;MAIIC,QAJJ,GAOInD,KAPJ,CAIImD,QAJJ;MAKI3D,GALJ,GAOIQ,KAPJ,CAKIR,GALJ;MAMIuB,SANJ,GAOIf,KAPJ,CAMIe,SANJ;EASA,IAAMC,YAAY,GAAGC,gBAAU,CAACxB,YAAD,CAA/B;EACA,IAAMyB,MAAM,GAAG1B,GAAG,IAAIwB,YAAY,CAACxB,GAAnC;EACA,IAAM+P,aAAa,GAAGnO,YAAM,EAA5B;;EAGA,IAAMiC,QAAQ,GAAG,SAAXA,QAAW;;;IACb,yBAAAkM,aAAa,CAACjO,OAAd,gFAAuBW,MAAvB,CAA8B,IAA9B;IACA,IAAIV,MAAM,GAAG;MACT0B,MAAM,EAAEA,MAAM,IAAI;QAAEzB,GAAG,EAAE,SAAP;QAAkBC,GAAG,EAAE;OADhC;MAETf,OAAO,EAAEA,OAFA;MAGTwC,UAAU,EAAEA,UAHH;MAITC,QAAQ,EAAEA;KAJd;IAMAzB,MAAM,CAACC,IAAP,CAAYJ,MAAZ,EAAoBK,OAApB,CAA4B,UAAAC,GAAG;MAC3B,IAAIN,MAAM,CAACM,GAAD,CAAN,IAAeC,SAAf,IAA4BP,MAAM,CAACM,GAAD,CAAN,IAAe,IAA/C,EAAqD;QACjD,OAAON,MAAM,CAACM,GAAD,CAAb;;KAFR;IAKA0N,aAAa,CAACjO,OAAd,GAAwB,IAAIS,KAAK,CAACyN,UAAV,CAAqBjO,MAArB,CAAxB;IACA,0BAAAgO,aAAa,CAACjO,OAAd,kFAAuBW,MAAvB,CAA8Bf,MAA9B;IACAH,SAAS,IAAIA,SAAS,CAACwO,aAAa,CAACjO,OAAf,CAAtB;GAfJ;;EAkBAD,eAAS,CAAC;IACN,IAAIH,MAAM,IAAI,CAACqO,aAAa,CAACjO,OAA7B,EAAsC;MAClC+B,QAAQ;;GAFP,EAIN,CAACnC,MAAD,CAJM,CAAT;EAMAG,eAAS,CAAC;IACN,IAAIH,MAAJ,EAAY;MAAA;;MACR,0BAAAqO,aAAa,CAACjO,OAAd,kFAAuBW,MAAvB,CAA8Bf,MAA9B;;;IAEJ,OAAO;;;MACH,0BAAAqO,aAAa,CAACjO,OAAd,kFAAuBW,MAAvB,CAA8B,IAA9B;KADJ;GAJK,EAON,CAACf,MAAD,CAPM,CAAT;EAQAG,eAAS,CAAC;IACN,OAAO;;;MACH,0BAAAkO,aAAa,CAACjO,OAAd,kFAAuBW,MAAvB,CAA8B,IAA9B;KADJ;GADK,EAIN,EAJM,CAAT;EAMAZ,eAAS,CAAC;IACN,IAAIH,MAAJ,EAAY;MACRmC,QAAQ;;GAFP,EAIN,CAACJ,MAAD,EAASC,UAAT,EAAqBC,QAArB,CAJM,CAAT;EAKA,OAAO,IAAP;AACH,CA3DD;;ACAA,IAAMsM,SAAS,GAAG,SAAZA,SAAY,CAACzP,KAAD;EACd,IACI0P,KADJ,GAaI1P,KAbJ,CACI0P,KADJ;MAEI9L,SAFJ,GAaI5D,KAbJ,CAEI4D,SAFJ;MAGIC,WAHJ,GAaI7D,KAbJ,CAGI6D,WAHJ;uBAaI7D,KAbJ,CAIIU,OAJJ;MAIIA,OAJJ,+BAIc,IAJd;MAKIoD,WALJ,GAaI9D,KAbJ,CAKI8D,WALJ;MAMIC,WANJ,GAaI/D,KAbJ,CAMI+D,WANJ;MAOIpD,SAPJ,GAaIX,KAbJ,CAOIW,SAPJ;MAQIN,SARJ,GAaIL,KAbJ,CAQIK,SARJ;MASI2D,MATJ,GAaIhE,KAbJ,CASIgE,MATJ;MAUIpD,sBAVJ,GAaIZ,KAbJ,CAUIY,sBAVJ;MAWIpB,GAXJ,GAaIQ,KAbJ,CAWIR,GAXJ;MAYIuB,SAZJ,GAaIf,KAbJ,CAYIe,SAZJ;EAeA,IAAMC,YAAY,GAAGC,gBAAU,CAACxB,YAAD,CAA/B;EACA,IAAMyB,MAAM,GAAG1B,GAAG,IAAIwB,YAAY,CAACxB,GAAnC;EACA,IAAMmQ,UAAU,GAAGvO,YAAM,EAAzB;EAEAC,eAAS,CAAC;IACN,IAAIH,MAAM,IAAI,CAACyO,UAAU,CAACrO,OAA1B,EAAmC;MAAA;;MAC/B,IAAIC,MAAM,GAAG;QACTmO,KAAK,EAAEA,KADE;QAET9L,SAAS,EAAEA,SAFF;QAGTC,WAAW,EAAEA,WAHJ;QAITnD,OAAO,EAAEA,OAJA;QAKToD,WAAW,EAAEA,WALJ;QAMTC,WAAW,EAAEA,WANJ;QAOTpD,SAAS,EAAEA,SAPF;QAQTN,SAAS,EAAEA,SARF;QAST2D,MAAM,EAAEA,MATC;QAUTpD,sBAAsB,EAAEA;OAV5B;MAYAc,MAAM,CAACC,IAAP,CAAYJ,MAAZ,EAAoBK,OAApB,CAA4B,UAAAC,GAAG;QAC3B,IAAIN,MAAM,CAACM,GAAD,CAAN,IAAeC,SAAf,IAA4BP,MAAM,CAACM,GAAD,CAAN,IAAe,IAA/C,EAAqD;UACjD,OAAON,MAAM,CAACM,GAAD,CAAb;;OAFR;MAKA8N,UAAU,CAACrO,OAAX,GAAqB,IAAIS,KAAK,CAAC6N,OAAV,CAAkBrO,MAAlB,CAArB;MACA,uBAAAoO,UAAU,CAACrO,OAAX,4EAAoBW,MAApB,CAA2Bf,MAA3B;MACAH,SAAS,IAAIA,SAAS,CAAC4O,UAAU,CAACrO,OAAZ,CAAtB;;GArBC,EAuBN,CAACJ,MAAD,CAvBM,CAAT;EAyBAG,eAAS,CAAC;IACN,IAAIH,MAAJ,EAAY;MAAA;;MACR,wBAAAyO,UAAU,CAACrO,OAAX,8EAAoBW,MAApB,CAA2Bf,MAA3B;;;IAEJ,OAAO;;;MACH,wBAAAyO,UAAU,CAACrO,OAAX,8EAAoBW,MAApB,CAA2B,IAA3B;KADJ;GAJK,EAON,CAACf,MAAD,CAPM,CAAT;EAQAG,eAAS,CAAC;IACN,OAAO;;;MACH,wBAAAsO,UAAU,CAACrO,OAAX,8EAAoBW,MAApB,CAA2B,IAA3B;KADJ;GADK,EAIN,EAJM,CAAT;EAMAZ,eAAS,CAAC;;;IACN,wBAAAsO,UAAU,CAACrO,OAAX,8EAAoBuO,QAApB,CAA6BH,KAA7B;GADK,EAEN,CAACA,KAAD,CAFM,CAAT;EAGArO,eAAS,CAAC;;;IACNuC,SAAS,IAAI9B,SAAb,6BAA0B6N,UAAU,CAACrO,OAArC,yDAA0B,qBAAoBgD,YAApB,CAAiCV,SAAjC,CAA1B;GADK,EAEN,CAACA,SAAD,CAFM,CAAT;EAGAvC,eAAS,CAAC;;;IACNwC,WAAW,IAAI/B,SAAf,6BAA4B6N,UAAU,CAACrO,OAAvC,yDAA4B,qBAAoBiD,cAApB,CAAmCV,WAAnC,CAA5B;GADK,EAEN,CAACA,WAAD,CAFM,CAAT;EAGAxC,eAAS,CAAC;;;IACN,wBAAAsO,UAAU,CAACrO,OAAX,8EAAoBqB,UAApB,CAA+BjC,OAA/B;GADK,EAEN,CAACA,OAAD,CAFM,CAAT;EAGAW,eAAS,CAAC;;;IACNyC,WAAW,IAAIhC,SAAf,6BAA4B6N,UAAU,CAACrO,OAAvC,yDAA4B,qBAAoBkD,cAApB,CAAmCV,WAAnC,CAA5B;GADK,EAEN,CAACA,WAAD,CAFM,CAAT;EAGAzC,eAAS,CAAC;;;IACN0C,WAAW,IAAIjC,SAAf,8BAA4B6N,UAAU,CAACrO,OAAvC,0DAA4B,sBAAoBmD,cAApB,CAAmCV,WAAnC,CAA5B;GADK,EAEN,CAACA,WAAD,CAFM,CAAT;EAGA1C,eAAS,CAAC;;;IACNV,SAAS,IAAImB,SAAb,8BAA0B6N,UAAU,CAACrO,OAArC,0DAA0B,sBAAoBsB,YAApB,CAAiCjC,SAAjC,CAA1B;GADK,EAEN,CAACA,SAAD,CAFM,CAAT;EAGAU,eAAS,CAAC;;;IACNhB,SAAS,IAAIyB,SAAb,8BAA0B6N,UAAU,CAACrO,OAArC,0DAA0B,sBAAoBgB,YAApB,CAAiCjC,SAAjC,CAA1B;GADK,EAEN,CAACA,SAAD,CAFM,CAAT;EAGAgB,eAAS,CAAC;;;IACN2C,MAAM,IAAIlC,SAAV,8BAAuB6N,UAAU,CAACrO,OAAlC,0DAAuB,sBAAoBoD,SAApB,CAA8BV,MAA9B,CAAvB;GADK,EAEN,CAACA,MAAD,CAFM,CAAT;EAGA3C,eAAS,CAAC;;;IACNT,sBAAsB,IAAIkB,SAA1B,8BAAuC6N,UAAU,CAACrO,OAAlD,0DAAuC,sBAAoBuB,kBAApB,CAAuCjC,sBAAvC,CAAvC;GADK,EAEN,CAACA,sBAAD,CAFM,CAAT;EAIA,OAAO,IAAP;AACH,CA3FD;;ACAA,IAAMkP,UAAU,GAAG,SAAbA,UAAa,CAAC9P,KAAD;EACf,IACI+P,IADJ,GAcI/P,KAdJ,CACI+P,IADJ;MAEIhM,WAFJ,GAcI/D,KAdJ,CAEI+D,WAFJ;MAGID,WAHJ,GAcI9D,KAdJ,CAGI8D,WAHJ;MAIIkM,aAJJ,GAcIhQ,KAdJ,CAIIgQ,aAJJ;uBAcIhQ,KAdJ,CAKIU,OALJ;MAKIA,OALJ,+BAKc,IALd;MAMIuP,MANJ,GAcIjQ,KAdJ,CAMIiQ,MANJ;MAOItP,SAPJ,GAcIX,KAdJ,CAOIW,SAPJ;MAQIqD,MARJ,GAcIhE,KAdJ,CAQIgE,MARJ;MASI3D,SATJ,GAcIL,KAdJ,CASIK,SATJ;MAUI6P,aAVJ,GAcIlQ,KAdJ,CAUIkQ,aAVJ;MAWItP,sBAXJ,GAcIZ,KAdJ,CAWIY,sBAXJ;MAYIpB,GAZJ,GAcIQ,KAdJ,CAYIR,GAZJ;MAaIuB,SAbJ,GAcIf,KAdJ,CAaIe,SAbJ;EAgBA,IAAMC,YAAY,GAAGC,gBAAU,CAACxB,YAAD,CAA/B;EACA,IAAMyB,MAAM,GAAG1B,GAAG,IAAIwB,YAAY,CAACxB,GAAnC;EACA,IAAM2Q,WAAW,GAAG/O,YAAM,EAA1B;EAEAC,eAAS,CAAC;IACN,IAAIH,MAAM,IAAI,CAACiP,WAAW,CAAC7O,OAA3B,EAAoC;MAAA;;MAChC,IAAIC,MAAM,GAAG;QACTwO,IAAI,EAAEA,IAAI,IAAI;UAAEvO,GAAG,EAAE,SAAP;UAAkBC,GAAG,EAAE;SAD5B;QAETsC,WAAW,EAAEA,WAFJ;QAGTD,WAAW,EAAEA,WAHJ;QAITkM,aAAa,EAAEA,aAJN;QAKTtP,OAAO,EAAEA,OALA;QAMTuP,MAAM,EAAEA,MANC;QAOTtP,SAAS,EAAEA,SAPF;QAQTqD,MAAM,EAAEA,MARC;QAST3D,SAAS,EAAEA,SATF;QAUT6P,aAAa,EAAEA,aAVN;QAWTtP,sBAAsB,EAAEA;OAX5B;MAaAc,MAAM,CAACC,IAAP,CAAYJ,MAAZ,EAAoBK,OAApB,CAA4B,UAAAC,GAAG;QAC3B,IAAIN,MAAM,CAACM,GAAD,CAAN,IAAeC,SAAf,IAA4BP,MAAM,CAACM,GAAD,CAAN,IAAe,IAA/C,EAAqD;UACjD,OAAON,MAAM,CAACM,GAAD,CAAb;;OAFR;MAKAsO,WAAW,CAAC7O,OAAZ,GAAsB,IAAIS,KAAK,CAACqO,QAAV,CAAmB7O,MAAnB,CAAtB;MACA,wBAAA4O,WAAW,CAAC7O,OAAZ,8EAAqBW,MAArB,CAA4Bf,MAA5B;MACAH,SAAS,IAAIA,SAAS,CAACoP,WAAW,CAAC7O,OAAb,CAAtB;;GAtBC,EAwBN,CAACJ,MAAD,CAxBM,CAAT;EA0BAG,eAAS,CAAC;IACN,IAAIH,MAAJ,EAAY;MAAA;;MACR,yBAAAiP,WAAW,CAAC7O,OAAZ,gFAAqBW,MAArB,CAA4Bf,MAA5B;;;IAEJ,OAAO;;;MACH,yBAAAiP,WAAW,CAAC7O,OAAZ,gFAAqBW,MAArB,CAA4B,IAA5B;KADJ;GAJK,EAON,CAACf,MAAD,CAPM,CAAT;EAQAG,eAAS,CAAC;IACN,OAAO;;;MACH,yBAAA8O,WAAW,CAAC7O,OAAZ,gFAAqBW,MAArB,CAA4B,IAA5B;KADJ;GADK,EAIN,EAJM,CAAT;EAMAZ,eAAS,CAAC;;;IACN,yBAAA8O,WAAW,CAAC7O,OAAZ,gFAAqB+O,OAArB,CAA6BN,IAA7B;GADK,EAEN,CAACA,IAAD,CAFM,CAAT;EAGA1O,eAAS,CAAC;;;IACN0C,WAAW,IAAIjC,SAAf,8BAA4BqO,WAAW,CAAC7O,OAAxC,0DAA4B,sBAAqBmD,cAArB,CAAoCV,WAApC,CAA5B;GADK,EAEN,CAACA,WAAD,CAFM,CAAT;EAGA1C,eAAS,CAAC;;;IACNyC,WAAW,IAAIhC,SAAf,8BAA4BqO,WAAW,CAAC7O,OAAxC,0DAA4B,sBAAqBkD,cAArB,CAAoCV,WAApC,CAA5B;GADK,EAEN,CAACA,WAAD,CAFM,CAAT;EAGAzC,eAAS,CAAC;;;IACN2O,aAAa,IAAIlO,SAAjB,8BAA8BqO,WAAW,CAAC7O,OAA1C,0DAA8B,sBAAqBgP,gBAArB,CAAsCN,aAAtC,CAA9B;GADK,EAEN,CAACA,aAAD,CAFM,CAAT;EAGA3O,eAAS,CAAC;;;IACNX,OAAO,IAAIoB,SAAX,8BAAwBqO,WAAW,CAAC7O,OAApC,0DAAwB,sBAAqBqB,UAArB,CAAgCjC,OAAhC,CAAxB;GADK,EAEN,CAACA,OAAD,CAFM,CAAT;EAGAW,eAAS,CAAC;;;IACN4O,MAAM,IAAInO,SAAV,+BAAuBqO,WAAW,CAAC7O,OAAnC,2DAAuB,uBAAqBiP,SAArB,CAA+BN,MAA/B,CAAvB;GADK,EAEN,CAACA,MAAD,CAFM,CAAT;EAGA5O,eAAS,CAAC;;;IACNV,SAAS,IAAImB,SAAb,+BAA0BqO,WAAW,CAAC7O,OAAtC,2DAA0B,uBAAqBsB,YAArB,CAAkCjC,SAAlC,CAA1B;GADK,EAEN,CAACA,SAAD,CAFM,CAAT;EAGAU,eAAS,CAAC;;;IACN2C,MAAM,IAAIlC,SAAV,+BAAuBqO,WAAW,CAAC7O,OAAnC,2DAAuB,uBAAqBoD,SAArB,CAA+BV,MAA/B,CAAvB;GADK,EAEN,CAACA,MAAD,CAFM,CAAT;EAGA3C,eAAS,CAAC;;;IACNhB,SAAS,IAAIyB,SAAb,+BAA0BqO,WAAW,CAAC7O,OAAtC,2DAA0B,uBAAqBgB,YAArB,CAAkCjC,SAAlC,CAA1B;GADK,EAEN,CAACA,SAAD,CAFM,CAAT;EAGAgB,eAAS,CAAC;;;IACN6O,aAAa,IAAIpO,SAAjB,+BAA8BqO,WAAW,CAAC7O,OAA1C,2DAA8B,uBAAqBkP,gBAArB,CAAsCN,aAAtC,CAA9B;GADK,EAEN,CAACA,aAAD,CAFM,CAAT;EAGA7O,eAAS,CAAC;;;IACNT,sBAAsB,IAAIkB,SAA1B,+BAAuCqO,WAAW,CAAC7O,OAAnD,2DAAuC,uBAAqBuB,kBAArB,CAAwCjC,sBAAxC,CAAvC;GADK,EAEN,CAACA,sBAAD,CAFM,CAAT;EAIA,OAAO,IAAP;AACH,CAhGD;;ACAA,IAAM6P,aAAa,GAAG,SAAhBA,aAAgB,CAACzQ,KAAD;EAClB,IACIiD,MADJ,GAOIjD,KAPJ,CACIiD,MADJ;uBAOIjD,KAPJ,CAEIU,OAFJ;MAEIA,OAFJ,+BAEc,IAFd;MAGIsD,MAHJ,GAOIhE,KAPJ,CAGIgE,MAHJ;MAII6C,OAJJ,GAOI7G,KAPJ,CAII6G,OAJJ;MAKIrH,GALJ,GAOIQ,KAPJ,CAKIR,GALJ;MAMIuB,SANJ,GAOIf,KAPJ,CAMIe,SANJ;EASA,IAAMC,YAAY,GAAGC,gBAAU,CAACxB,YAAD,CAA/B;EACA,IAAMyB,MAAM,GAAG1B,GAAG,IAAIwB,YAAY,CAACxB,GAAnC;EACA,IAAMkR,cAAc,GAAGtP,YAAM,EAA7B;;EAGA,IAAMiC,QAAQ,GAAG,SAAXA,QAAW;;;IACb,yBAAAqN,cAAc,CAACpP,OAAf,gFAAwBW,MAAxB,CAA+B,IAA/B;IACA,IAAIV,MAAM,GAAG;MACT0B,MAAM,EAAEA,MAAM,IAAI;QAAEzB,GAAG,EAAE,SAAP;QAAkBC,GAAG,EAAE;OADhC;MAETf,OAAO,EAAEA,OAFA;MAGTsD,MAAM,EAAEA,MAHC;MAIT6C,OAAO,EAAEA;KAJb;IAMAnF,MAAM,CAACC,IAAP,CAAYJ,MAAZ,EAAoBK,OAApB,CAA4B,UAAAC,GAAG;MAC3B,IAAIN,MAAM,CAACM,GAAD,CAAN,IAAeC,SAAf,IAA4BP,MAAM,CAACM,GAAD,CAAN,IAAe,IAA/C,EAAqD;QACjD,OAAON,MAAM,CAACM,GAAD,CAAb;;KAFR;IAKA6O,cAAc,CAACpP,OAAf,GAAyB,IAAIS,KAAK,CAACgF,WAAV,CAAsBxF,MAAtB,CAAzB;IACA,0BAAAmP,cAAc,CAACpP,OAAf,kFAAwBW,MAAxB,CAA+Bf,MAA/B;IACAH,SAAS,IAAIA,SAAS,CAAC2P,cAAc,CAACpP,OAAhB,CAAtB;GAfJ;;EAkBAD,eAAS,CAAC;IACN,IAAIH,MAAM,IAAI,CAACwP,cAAc,CAACpP,OAA9B,EAAuC;MACnC+B,QAAQ;;GAFP,EAIN,CAACnC,MAAD,CAJM,CAAT;EAMAG,eAAS,CAAC;IACN,IAAIH,MAAJ,EAAY;MAAA;;MACR,0BAAAwP,cAAc,CAACpP,OAAf,kFAAwBW,MAAxB,CAA+Bf,MAA/B;;;IAEJ,OAAO;;;MACH,0BAAAwP,cAAc,CAACpP,OAAf,kFAAwBW,MAAxB,CAA+B,IAA/B;KADJ;GAJK,EAON,CAACf,MAAD,CAPM,CAAT;EAQAG,eAAS,CAAC;IACN,OAAO;;;MACH,0BAAAqP,cAAc,CAACpP,OAAf,kFAAwBW,MAAxB,CAA+B,IAA/B;KADJ;GADK,EAIN,EAJM,CAAT;EAMAZ,eAAS,CAAC;IACN,IAAIH,MAAJ,EAAY;MACRmC,QAAQ;;GAFP,EAIN,CAACJ,MAAD,CAJM,CAAT;EAKA5B,eAAS,CAAC;;;IACN,0BAAAqP,cAAc,CAACpP,OAAf,kFAAwBqB,UAAxB,CAAmCjC,OAAnC;GADK,EAEN,CAACA,OAAD,CAFM,CAAT;EAGAW,eAAS,CAAC;;;IACN2C,MAAM,IAAIlC,SAAV,+BAAuB4O,cAAc,CAACpP,OAAtC,2DAAuB,uBAAwBoD,SAAxB,CAAkCV,MAAlC,CAAvB;GADK,EAEN,CAACA,MAAD,CAFM,CAAT;EAGA3C,eAAS,CAAC;;;IACNwF,OAAO,IAAI/E,SAAX,+BAAwB4O,cAAc,CAACpP,OAAvC,2DAAwB,uBAAwB0F,UAAxB,CAAmCH,OAAnC,CAAxB;GADK,EAEN,CAACA,OAAD,CAFM,CAAT;EAGA,OAAO,IAAP;AACH,CApED;;;;;;;;;;;;;;;;;;"}
|
|
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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"}
|
package/dist/index.modern.js
CHANGED
|
@@ -32,7 +32,7 @@ var MFBuilding = function MFBuilding(props) {
|
|
|
32
32
|
var theMap = map || map4dContext.map;
|
|
33
33
|
var buildingRef = useRef(null);
|
|
34
34
|
useEffect(function () {
|
|
35
|
-
if (theMap && !buildingRef.current) {
|
|
35
|
+
if (theMap && !buildingRef.current && (coordinates && (coordinates === null || coordinates === void 0 ? void 0 : coordinates.length) > 0 || model)) {
|
|
36
36
|
var _buildingRef$current;
|
|
37
37
|
|
|
38
38
|
var option = {
|
|
@@ -63,7 +63,7 @@ var MFBuilding = function MFBuilding(props) {
|
|
|
63
63
|
(_buildingRef$current = buildingRef.current) === null || _buildingRef$current === void 0 ? void 0 : _buildingRef$current.setMap(theMap);
|
|
64
64
|
onCreated && onCreated(buildingRef.current);
|
|
65
65
|
}
|
|
66
|
-
}, [theMap]);
|
|
66
|
+
}, [theMap, position, coordinates, model]);
|
|
67
67
|
useEffect(function () {
|
|
68
68
|
if (theMap) {
|
|
69
69
|
var _buildingRef$current2;
|
|
@@ -825,7 +825,7 @@ var MFMap = /*#__PURE__*/function (_React$Component) {
|
|
|
825
825
|
}, {
|
|
826
826
|
marker: true
|
|
827
827
|
});
|
|
828
|
-
this.events.
|
|
828
|
+
this.events = this.events.concat([eventClickMarker, eventRightClickMarker, eventDragEndMarker]);
|
|
829
829
|
|
|
830
830
|
if (this.props.onClickLocation) {
|
|
831
831
|
var _this$mapRef5;
|
package/dist/index.modern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.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) {\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])\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.push([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","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","push","onClickLocation","location","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.modern.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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"}
|