UNPKG

@feltmaps/js-sdk

Version:

An SDK for Felt maps

2 lines (1 loc) 7.91 kB
"use strict";var y=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var K=Object.prototype.hasOwnProperty;var O=(e,o)=>{for(var r in o)y(e,r,{get:o[r],enumerable:!0})},D=(e,o,r,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let i of B(o))!K.call(e,i)&&i!==r&&y(e,i,{get:()=>o[i],enumerable:!(n=k(o,i))||n.enumerable});return e};var R=e=>D(y({},"__esModule",{value:!0}),e);var j={};O(j,{Felt:()=>U});module.exports=R(j);function C(e,o){for(let[r,n]of Object.entries(e))switch(typeof n){case"object":switch(!0){case Array.isArray(n):for(let i of n)C(i,o);break;case n===null:o(r,n,e);break;default:C(n,o);break}break;default:o(r,n,e);break}}function J(e){return e[0]?.toUpperCase()===e[0]}function H(e){return e.startsWith("on")&&J(e.slice(2))}function P(e,o){typeof e=="object"&&e!==null&&C(e,(r,n,i)=>{H(r)&&o(r,n,i)})}function a(e,o){return r=>{let n=new MessageChannel,i=r.handler,m="options"in r?r.options:void 0,u=crypto.randomUUID();return e.postMessage({type:"felt.addListener",event:m?{eventName:o,id:u,options:m}:{eventName:o,id:u}},"*",[n.port2]),n.port1.onmessage=p=>{E(p)||i(p.data)},()=>{n.port1.onmessage=null,n.port1.close(),n.port2.close(),e.postMessage({type:"felt.removeListener",id:u},"*")}}}function t(e,o,r){return async n=>{let i=new MessageChannel,m=n&&r?await r(n):n;return e.postMessage({type:o,params:m},"*",[i.port2]),new Promise((u,p)=>{i.port1.onmessage=g=>{E(g)?p(new Error(g.data.__error__)):u(g.data),i.port1.close(),i.port2.close()}})}}var T={};function d(e,o){let r=t(e,o),n=a(e,"onGenericEvent");return async i=>{let m=[];P(i,(g,s,l)=>{if(typeof s!="function")return;let c=crypto.randomUUID();l[g]=c,T[c]=s;let L=n({handler:h=>{switch(h){case`felt.removeGenericListener:${c}`:L();break;default:s(h)}},options:{id:c}});m.push(L)});let p=await r(i);return typeof p=="object"&&p!==null&&P(p,(g,s,l)=>{if(typeof s!="string")return;let c=T[s];c&&(l[g]=c)}),p}}function E(e){return e.data&&typeof e.data=="object"&&"__error__"in e.data}var v=e=>({getCurrentBasemap:t(e,"getCurrentBasemap"),getBasemaps:t(e,"getBasemaps"),chooseBasemap:t(e,"chooseBasemap"),addCustomBasemap:t(e,"addCustomBasemap"),removeBasemap:t(e,"removeBasemap"),onBasemapChange:a(e,"onBasemapChange")});var F=e=>({getElement:t(e,"getElement"),getElementGeometry:t(e,"getElementGeometry"),getElements:t(e,"getElements"),setElementGroupVisibility:t(e,"setElementGroupVisibility"),getElementGroup:t(e,"getElementGroup"),getElementGroups:t(e,"getElementGroups"),onElementChange:a(e,"onElementChange"),onElementCreate:a(e,"onElementCreate"),onElementCreateEnd:a(e,"onElementCreateEnd"),onElementDelete:a(e,"onElementDelete"),onElementGroupChange:a(e,"onElementGroupChange"),createElement:t(e,"createElement"),updateElement:t(e,"updateElement"),deleteElement:t(e,"deleteElement")});var b=e=>({onPointerClick:a(e,"onPointerClick"),onPointerMove:a(e,"onPointerMove")});var I=e=>({getLayer:t(e,"getLayer"),getLayers:t(e,"getLayers"),setLayerVisibility:t(e,"setLayerVisibility"),setLayerStyle:t(e,"setLayerStyle"),setLayerLegendVisibility:t(e,"setLayerLegendVisibility"),onLayerChange:a(e,"onLayerChange"),createLayersFromGeoJson:t(e,"createLayersFromGeoJson",G),updateLayer:t(e,"updateLayer",G),deleteLayer:t(e,"deleteLayer"),duplicateLayer:t(e,"duplicateLayer"),getLayerGroup:t(e,"getLayerGroup"),getLayerGroups:t(e,"getLayerGroups"),setLayerGroupVisibility:t(e,"setLayerGroupVisibility"),setLayerGroupLegendVisibility:t(e,"setLayerGroupLegendVisibility"),onLayerGroupChange:a(e,"onLayerGroupChange"),getLegendItem:t(e,"getLegendItem"),getLegendItems:t(e,"getLegendItems"),setLegendItemVisibility:t(e,"setLegendItemVisibility"),onLegendItemChange:a(e,"onLegendItemChange"),getLayerFilters:t(e,"getLayerFilters"),setLayerFilters:t(e,"setLayerFilters"),onLayerFiltersChange:a(e,"onLayerFiltersChange"),getLayerBoundaries:t(e,"getLayerBoundaries"),setLayerBoundary:t(e,"setLayerBoundary"),onLayerBoundariesChange:a(e,"onLayerBoundariesChange"),getRenderedFeatures:t(e,"getRenderedFeatures"),getFeature:t(e,"getFeature"),getFeatures:t(e,"getFeatures"),getGeoJsonFeature:t(e,"getGeoJsonFeature"),getCategoryData:t(e,"getCategoryData"),getHistogramData:t(e,"getHistogramData"),getAggregates:t(e,"getAggregates"),getPrecomputedAggregates:t(e,"getPrecomputedAggregates"),getLayerSchema:t(e,"getLayerSchema")});async function G(e){let{source:o}=e;return o&&o.type==="geoJsonFile"?{...e,source:{type:"geoJsonData",data:JSON.parse(await o.file.text())}}:e}var M=e=>({getMapDetails:t(e,"getMapDetails")});var V=e=>({onSelectionChange:a(e,"onSelectionChange"),getSelection:t(e,"getSelection"),selectFeature:t(e,"selectFeature"),clearSelection:t(e,"clearSelection")});var S=e=>({setTool:t(e,"setTool"),getTool:t(e,"getTool"),onToolChange:a(e,"onToolChange"),setToolSettings:t(e,"setToolSettings"),getToolSettings:t(e,"getToolSettings"),onToolSettingsChange:a(e,"onToolSettingsChange")});var f=e=>({updateUiControls:t(e,"updateUiControls"),setOnMapInteractionsUi:t(e,"setOnMapInteractionsUi"),showLayerDataTable:t(e,"showLayerDataTable"),hideLayerDataTable:t(e,"hideLayerDataTable"),createPanelId:t(e,"createPanelId"),createOrUpdatePanel:d(e,"createOrUpdatePanel"),deletePanel:t(e,"deletePanel"),createPanelElements:d(e,"createPanelElements"),updatePanelElements:d(e,"updatePanelElements"),deletePanelElements:t(e,"deletePanelElements"),createActionTrigger:d(e,"createActionTrigger"),updateActionTrigger:d(e,"updateActionTrigger"),deleteActionTrigger:t(e,"deleteActionTrigger"),createFeatureAction:d(e,"createFeatureAction"),updateFeatureAction:d(e,"updateFeatureAction"),deleteFeatureAction:t(e,"deleteFeatureAction")});var A=e=>({getViewport:t(e,"getViewport"),setViewport:t(e,"setViewport"),getViewportConstraints:t(e,"getViewportConstraints"),setViewportConstraints:t(e,"setViewportConstraints"),fitViewportToBounds:t(e,"fitViewportToBounds"),onViewportMove:a(e,"onViewportMove"),onViewportMoveEnd:a(e,"onViewportMoveEnd"),onMapIdle:a(e,"onMapIdle")});function x(e){return{iframe:null,...A(e),...f(e),...I(e),...F(e),...V(e),...b(e),...S(e),...M(e),...v(e)}}var U={embed(e,o,r){let n={uiControls:{showLegend:!0,cooperativeGestures:!0,fullScreenButton:!0,geolocation:!1,zoomControls:!0,scaleBar:!0},initialViewport:void 0,origin:"https://felt.com"},i=r?.origin??n.origin,m=new URL(`${i}/embed/map/${o}`),u={showLegend:"legend",cooperativeGestures:"cooperativeGestures",fullScreenButton:"link",geolocation:"geolocation",zoomControls:"zoomControls",scaleBar:"scaleBar"},p={...n.uiControls,...r?.uiControls};for(let[l,c]of q(p))c!=null&&m.searchParams.set(u[l],c?"1":"0");if(r?.token&&m.searchParams.set("token",r.token),r?.initialViewport){let l=r.initialViewport;m.searchParams.set("loc",`${l.center.latitude},${l.center.longitude},${l.zoom}z`)}let g=e.tagName==="IFRAME",s=g?e:e.ownerDocument.createElement("iframe");return s.src=m.toString(),g||(s.style.width="100%",s.style.height="100%",s.style.border="none",s.style.margin="0",e.appendChild(s)),s.referrerPolicy="strict-origin-when-cross-origin",new Promise((l,c)=>{s.addEventListener("load",()=>{s.contentWindow==null?c(new Error("Failed to load Felt map")):l(s.contentWindow)},{once:!0})}).then(U.connect).then(l=>(Object.defineProperties(l,{iframe:{value:s,writable:!1,configurable:!1}}),l))},connect(e){let o=x(e);if(arguments.length===2){let r=arguments[1];if(r&&typeof r=="object"&&"skipReadyCheck"in r&&r.skipReadyCheck)return Promise.resolve(o)}return new Promise((r,n)=>{let i=setTimeout(()=>{n(new Error("Failed to load Felt map")),clearInterval(g),u()},5e3),m=[];function u(){for(let s of m)s.port1.onmessage=null,s.port1.close(),s.port2.close();m.length=0}function p(){let s=new MessageChannel;m.push(s),s.port1.onmessage=l=>{l.data===!0&&(clearInterval(g),clearTimeout(i),u(),r(o))},e.postMessage({type:"felt.ready"},"*",[s.port2])}let g=setInterval(p,100);p()})}},q=Object.entries;0&&(module.exports={Felt});