UNPKG

openlayers-react

Version:
3 lines (2 loc) 2.35 kB
import e from"react";import o from"ol/Map";function n(e,o){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&o.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var t=0;for(r=Object.getOwnPropertySymbols(e);t<r.length;t++)o.indexOf(r[t])<0&&Object.prototype.propertyIsEnumerable.call(e,r[t])&&(n[r[t]]=e[r[t]])}return n}var r=e.createContext(null),t=e.createContext(null),c=function(c){var a=c.mapId,p=c.children,i=c.initialMapOptions,l=c.onchange,s=c.onchangeLayerGroup,m=c.onchangeTarget,g=c.onchangeView,u=c.onclick,d=c.ondblclick,v=c.onmovestart,f=c.onmoveend,y=c.onpointerdrag,h=c.onpointermove,O=c.onpostcompose,b=c.onpostrender,w=c.onprecompose,k=c.onpropertychange,x=c.onrendercomplete,j=c.onsingleclick,C=n(c,["mapId","children","initialMapOptions","onchange","onchangeLayerGroup","onchangeTarget","onchangeView","onclick","ondblclick","onmovestart","onmoveend","onpointerdrag","onpointermove","onpostcompose","onpostrender","onprecompose","onpropertychange","onrendercomplete","onsingleclick"]),E=e.useRef(null),P=new o({controls:i.controls,interactions:i.interactions,layers:i.layers,view:i.view,overlays:i.overlays}),T=e.useContext(t);return a&&T&&T.registerMap(P,a),e.useEffect(function(){return l&&P.on("change",l),s&&P.on("change:layerGroup",s),m&&P.on("change:target",m),g&&P.on("change:view",g),u&&P.on("click",u),d&&P.on("dblclick",d),v&&P.on("movestart",v),f&&P.on("moveend",f),y&&P.on("pointerdrag",y),h&&P.on("pointermove",h),O&&P.on("postcompose",O),b&&P.on("postrender",b),w&&P.on("precompose",w),k&&P.on("propertychange",k),x&&P.on("rendercomplete",x),j&&P.on("singleclick",j),E.current&&P.setTarget(E.current),function(){P.setTarget(void 0)}},[E]),e.createElement(r.Provider,{value:{map:P}},e.createElement("div",Object.assign({ref:E},C),p))};function a(o){var c,a=o.controlType,p=o.controlProps,i=o.mapId,l=n(o,["controlType","controlProps","mapId"]),s=e.useContext(t),m=e.useContext(r),g=e.useRef(null);return s&&i?c=s.maps.get(i):m&&(c=m.map),e.useEffect(function(){var e=new a(Object.assign({},p,{target:g.current}));return c&&(e.setMap(c),c.addControl(e)),function(){c&&c.removeControl(e),e.dispose()}},[c]),e.createElement("div",Object.assign({ref:g},l))}export{a as Control,r as CurrentMapContext,t as MapContext,c as OlMap}; //# sourceMappingURL=index.mjs.map