@feltmaps/js-sdk 1.0.0

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/client.js ADDED
@@ -0,0 +1 @@
1
+ function r(e,p){return({handler:a,options:o})=>{let i=new MessageChannel,n=crypto.randomUUID();return e.postMessage({type:"felt.addListener",event:o?{eventName:p,id:n,options:o}:{eventName:p,id:n}},"*",[i.port2]),i.port1.onmessage=m=>{a(m.data)},()=>{i.port1.onmessage=null,i.port1.close(),i.port2.close(),e.postMessage({type:"felt.removeListener",id:n},"*")}}}function t(e,p){return a=>{let o=new MessageChannel;return e.postMessage({type:p,params:a},"*",[o.port2]),new Promise(i=>{o.port1.onmessage=n=>{i(n.data),o.port1.close(),o.port2.close()}})}}var g=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:r(e,"onElementChange"),onElementGroupChange:r(e,"onElementGroupChange")});var u=e=>({onPointerClick:r(e,"onPointerClick"),onPointerMove:r(e,"onPointerMove")});var C=e=>({getLayer:t(e,"getLayer"),getLayers:t(e,"getLayers"),setLayerVisibility:t(e,"setLayerVisibility"),onLayerChange:r(e,"onLayerChange"),getLayerGroup:t(e,"getLayerGroup"),getLayerGroups:t(e,"getLayerGroups"),setLayerGroupVisibility:t(e,"setLayerGroupVisibility"),onLayerGroupChange:r(e,"onLayerGroupChange"),getLegendItem:t(e,"getLegendItem"),getLegendItems:t(e,"getLegendItems"),setLegendItemVisibility:t(e,"setLegendItemVisibility"),onLegendItemChange:r(e,"onLegendItemChange"),getLayerFilters:t(e,"getLayerFilters"),setLayerFilters:t(e,"setLayerFilters"),getRenderedFeatures:t(e,"getRenderedFeatures")});var h=e=>({onSelectionChange:r(e,"onSelectionChange"),getSelection:t(e,"getSelection")});var L=e=>({updateUiControls:t(e,"updateUiControls"),setOnMapInteractionsUi:t(e,"setOnMapInteractionsUi")});var v=e=>({getViewport:t(e,"getViewport"),setViewport:t(e,"setViewport"),fitViewportToBounds:t(e,"fitViewportToBounds"),onViewportMove:r(e,"onViewportMove"),onViewportMoveEnd:r(e,"onViewportMoveEnd")});function E(e){return{iframe:null,...v(e),...L(e),...C(e),...g(e),...h(e),...u(e)}}var P={embed(e,p,a){let o={uiControls:{showLegend:!0,cooperativeGestures:!0,fullScreenButton:!0,geolocation:!1,zoomControls:!0,scaleBar:!0},initialViewport:void 0,origin:"https://felt.com"},i={showLegend:"legend",cooperativeGestures:"cooperativeGestures",fullScreenButton:"link",geolocation:"geolocation",zoomControls:"zoomControls",scaleBar:"scaleBar"},n={...o.uiControls,...a?.uiControls},m=a?.origin??o.origin,d=new URL(`${m}/embed/map/${p}`);for(let[l,y]of f(n))y!=null&&d.searchParams.set(i[l],y?"1":"0");if(a?.initialViewport){let l=a.initialViewport;d.searchParams.set("loc",`${l.center.latitude},${l.center.longitude},${l.zoom}z`)}let c=e.tagName==="IFRAME",s=c?e:e.ownerDocument.createElement("iframe");return s.src=d.toString(),c||(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,y)=>{s.addEventListener("load",()=>{s.contentWindow==null?y(new Error("Failed to load Felt map")):l(s.contentWindow)},{once:!0})}).then(P.connect).then(l=>(Object.defineProperties(l,{iframe:{value:s,writable:!1,configurable:!1}}),l))},connect(e){let p=E(e);return new Promise((a,o)=>{let i=setTimeout(()=>{o(new Error("Failed to load Felt map")),clearInterval(m)},5e3),n=new MessageChannel,m=setInterval(()=>{e.postMessage({type:"felt.ready"},"*",[n.port2])},100);n.port1.onmessage=d=>{d.data===!0&&(clearInterval(m),clearTimeout(i),n.port1.close(),n.port2.close(),a(p))}})}},f=Object.entries;export{P as Felt};
@@ -0,0 +1 @@
1
+ "use strict";var C=Object.defineProperty;var se=Object.getOwnPropertyDescriptor;var ae=Object.getOwnPropertyNames;var ie=Object.prototype.hasOwnProperty;var le=(o,n)=>{for(var u in n)C(o,u,{get:n[u],enumerable:!0})},pe=(o,n,u,M)=>{if(n&&typeof n=="object"||typeof n=="function")for(let c of ae(n))!ie.call(o,c)&&c!==u&&C(o,c,{get:()=>n[c],enumerable:!(M=se(n,c))||M.enumerable});return o};var me=o=>pe(C({},"__esModule",{value:!0}),o);var tt={};le(tt,{createMessageHandler:()=>Qe});module.exports=me(tt);var a=require("zod");var g=require("zod");var m=require("zod");function e(o,n){return m.z.strictObject({type:m.z.literal(o),params:n})}function h(o,n){return m.z.strictObject({eventName:m.z.literal(o),id:m.z.string(),options:n})}function d(o){return m.z.strictObject({eventName:m.z.literal(o),id:m.z.string()})}var l=require("zod"),z=l.z.number(),E=l.z.number(),w=l.z.object({latitude:E,longitude:z}),O=l.z.number().min(1).max(23),T=l.z.tuple([z,E,z,E]),L=l.z.object({show:l.z.array(l.z.string()).optional(),hide:l.z.array(l.z.string()).optional()});var f=require("zod"),j=f.z.object({ids:f.z.array(f.z.string()).optional()}),k=f.z.object({ids:f.z.array(f.z.string()).optional()});var ce=e("getElement",g.z.string()),ye=e("getElementGeometry",g.z.string()),de=e("getElements",j.optional()),ge=e("getElementGroup",g.z.string()),ue=e("getElementGroups",k.optional()),he=e("setElementGroupVisibility",L),fe=h("onElementChange",g.z.object({id:g.z.string()})),Me=h("onElementGroupChange",g.z.object({id:g.z.string()})),R={methods:[ce,ye,de,ge,ue,he],listeners:[fe,Me]};var Se=d("onPointerClick"),Le=d("onPointerMove"),U={methods:null,listeners:[Se,Le]};var p=require("zod");var t=require("zod"),be=t.z.enum(["in","ni"]),Ge=t.z.enum(["lt","gt","le","ge","eq","ne","cn","nc","is","isnt"]),dt=t.z.enum(["and","or"]),B=t.z.union([t.z.number(),t.z.string(),t.z.boolean(),t.z.null()]),Z=t.z.string().or(t.z.null()),Ie=t.z.tuple([Z,be,t.z.array(B).or(t.z.null())]),xe=t.z.tuple([Z,Ge,B]),F=t.z.union([Ie,xe]),v=t.z.tuple([t.z.lazy(()=>t.z.union([v,F,t.z.null(),t.z.boolean()])),t.z.enum(["and","or"]),t.z.lazy(()=>t.z.union([v,F,t.z.null(),t.z.boolean()]))]),N=t.z.union([v,F,t.z.null(),t.z.boolean()]);var r=require("zod"),ut=r.z.enum(["processing","completed","failed","incomplete"]),A=r.z.object({ids:r.z.array(r.z.string()).optional()}),q=r.z.object({ids:r.z.array(r.z.string()).optional()}),S=r.z.object({id:r.z.string(),layerId:r.z.string()}),H=r.z.object({ids:S.array().optional(),layerIds:r.z.string().array().optional()}),W=r.z.object({layerIds:r.z.array(r.z.string()).optional()});var Ce=e("getLayer",p.z.string()),ze=e("getLayers",A.optional()),Ee=e("setLayerVisibility",L),Fe=h("onLayerChange",p.z.object({id:p.z.string()})),ve=e("getLayerGroup",p.z.string()),Ve=e("getLayerGroups",q.optional()),Pe=e("setLayerGroupVisibility",L),we=h("onLayerGroupChange",p.z.object({id:p.z.string()})),Oe=e("getLegendItem",S),Te=e("getLegendItems",H.optional()),je=h("onLegendItemChange",S),ke=e("setLegendItemVisibility",p.z.object({show:S.array().optional(),hide:S.array().optional()})),Re=e("getLayerFilters",p.z.string()),Ue=e("setLayerFilters",p.z.object({layerId:p.z.string(),filters:N})),Be=e("getRenderedFeatures",W.optional()),D={methods:[Ce,ze,Ee,ve,Ve,Pe,Oe,Te,ke,Re,Ue,Be],listeners:[Fe,we,je]};var J=require("zod");var Ze=e("getSelection",J.z.undefined()),Ne=d("onSelectionChange"),K={methods:[Ze],listeners:[Ne]};var s=require("zod"),Q=s.z.object({showLegend:s.z.boolean().optional(),cooperativeGestures:s.z.boolean().optional(),fullScreenButton:s.z.boolean().optional(),geolocation:s.z.boolean().optional(),zoomControls:s.z.boolean().optional(),scaleBar:s.z.boolean().optional()}),X=s.z.object({featureSelectPanel:s.z.boolean().optional(),featureHoverPanel:s.z.boolean().optional(),elementSelectPanel:s.z.boolean().optional(),linkClickOpen:s.z.boolean().optional(),imageLightboxOpen:s.z.boolean().optional()});var Ae=e("updateUiControls",Q),qe=e("setOnMapInteractionsUi",X),Y={methods:[Ae,qe],listeners:null};var te=require("zod");var b=require("zod");var _=b.z.object({center:w,zoom:O}),$=b.z.object({center:_.shape.center.optional(),zoom:_.shape.zoom.optional()}),ee=b.z.object({bounds:T});var He=e("getViewport",te.z.undefined()),We=e("setViewport",$),De=e("fitViewportToBounds",ee),Je=d("onViewportMove"),Ke=d("onViewportMoveEnd"),oe={methods:[We,He,De],listeners:[Je,Ke]};var V=[Y,oe,D,R,K,U];function Qe(o,n,u){let M=new Map;async function c(y){if(!et.safeParse(y.data).success){u?.onUnknownMessage?.(y.data);return}let P=re.safeParse(y.data);if(!P.success){u?.onInvalidMessage?.(y.data);return}let{data:i}=P;if(i.type==="felt.ready")y.ports[0]?.postMessage(!0);else if(i.type==="felt.addListener"){if(i.event.eventName==="")throw new Error("felt.addListener eventName cannot be empty");let G="options"in i.event?{options:"options"in i.event?i.event.options:void 0,handler:x=>{y.ports[0]?.postMessage(x)}}:{handler:x=>{y.ports[0]?.postMessage(x)}},I=n.listeners[i.event.eventName](G);M.set(i.event.id,I)}else if(i.type==="felt.removeListener")M.get(i.id)?.(),M.delete(i.id);else{let G=n.methods[i.type],I=await G(i.params);y.ports[0]?.postMessage(I)}}return o.addEventListener("message",c),()=>{o.removeEventListener("message",c)}}var ne={methods:V.map(o=>o.methods??[]).flat(),listeners:V.map(o=>o.listeners??[]).flat()},Xe=a.z.discriminatedUnion("eventName",[a.z.strictObject({eventName:a.z.literal("")}),...ne.listeners]),Ye=a.z.strictObject({type:a.z.literal("felt.addListener"),event:Xe}),_e=a.z.strictObject({type:a.z.literal("felt.removeListener"),id:a.z.string()}),$e=a.z.strictObject({type:a.z.literal("felt.ready")}),re=a.z.discriminatedUnion("type",[$e,Ye,_e,...ne.methods]),et=a.z.object({type:a.z.enum(re.options.map(o=>o.shape.type.value))});0&&(module.exports={createMessageHandler});