@feltmaps/js-sdk 1.5.0-next.2 → 1.5.0-next.21

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/handler.js CHANGED
@@ -1 +1 @@
1
- import{z as l}from"zod";import{z as f}from"zod";import{z as y}from"zod";function t(n,h){return y.strictObject({type:y.literal(n),params:h})}function d(n,h){return y.strictObject({eventName:y.literal(n),id:y.string(),options:h})}function p(n){return y.strictObject({eventName:y.literal(n),id:y.string()})}import{z as m}from"zod";var E=m.number(),w=m.number(),x=m.object({latitude:w,longitude:E}),N=m.number().min(1).max(23),L=m.tuple([E,w,E,w]),u=m.object({show:m.array(m.string()).optional(),hide:m.array(m.string()).optional()});import{z as S}from"zod";var R=S.object({ids:S.array(S.string()).optional()}),Z=S.object({ids:S.array(S.string()).optional()});var ge=t("getElement",f.string()),de=t("getElementGeometry",f.string()),ue=t("getElements",R.optional()),fe=t("getElementGroup",f.string()),he=t("getElementGroups",Z.optional()),Se=t("setElementGroupVisibility",u),be=d("onElementChange",f.object({id:f.string()})),Me=d("onElementGroupChange",f.object({id:f.string()})),U={methods:[ge,de,ue,fe,he,Se],listeners:[be,Me]};var Le=p("onPointerClick"),xe=p("onPointerMove"),B={methods:null,listeners:[Le,xe]};import{z as s}from"zod";import{z as o}from"zod";var Ge=o.enum(["in","ni"]),Ie=o.enum(["lt","gt","le","ge","eq","ne","cn","nc","is","isnt"]),At=o.enum(["and","or"]),A=o.union([o.number(),o.string(),o.boolean(),o.null()]),q=o.string().or(o.null()),Te=o.tuple([q,Ge,o.array(A).or(o.null())]),Ce=o.tuple([q,Ie,A]),v=o.union([Te,Ce]),V=o.tuple([o.lazy(()=>o.union([V,v,o.null(),o.boolean()])),o.enum(["and","or"]),o.lazy(()=>o.union([V,v,o.null(),o.boolean()]))]),H=o.union([V,v,o.null(),o.boolean()]);import{z as r}from"zod";var Kt=r.enum(["processing","completed","failed","incomplete"]),W=r.object({ids:r.array(r.string()).optional()}),K=r.object({ids:r.array(r.string()).optional()}),b=r.object({id:r.string(),layerId:r.string()}),_=r.object({ids:b.array().optional(),layerIds:r.string().array().optional()}),Q=r.object({layerIds:r.array(r.string()).optional(),areaQuery:r.union([r.object({coordinates:x}),r.object({boundary:L})]).optional()});var ze=t("getLayer",s.string()),Fe=t("getLayers",W.optional()),Ee=t("setLayerVisibility",u),we=d("onLayerChange",s.object({id:s.string()})),ve=t("setLayerStyle",s.object({id:s.string(),style:s.object({}).passthrough()})),Ve=t("setLayerLegendVisibility",u),Pe=t("getLayerGroup",s.string()),ke=t("getLayerGroups",K.optional()),Oe=t("setLayerGroupVisibility",u),je=t("setLayerGroupLegendVisibility",u),Ne=d("onLayerGroupChange",s.object({id:s.string()})),Re=t("getLegendItem",b),Ze=t("getLegendItems",_.optional()),Ue=d("onLegendItemChange",b),Be=t("setLegendItemVisibility",s.object({show:b.array().optional(),hide:b.array().optional()})),Ae=t("getLayerFilters",s.string()),qe=t("setLayerFilters",s.object({layerId:s.string(),filters:H,note:s.string().optional()})),He=t("getRenderedFeatures",Q.optional()),D={methods:[ze,Fe,Ee,ve,Ve,Pe,ke,Oe,je,Re,Ze,Be,Ae,qe,He],listeners:[we,Ne,Ue]};import{z as G}from"zod";import{z as g}from"zod";var $=g.object({id:g.string().or(g.number()),layerId:g.string(),showPopup:g.boolean().optional(),fitViewport:g.boolean().or(g.object({maxZoom:g.number()})).optional()});var We=t("getSelection",G.undefined()),Ke=p("onSelectionChange"),_e=t("selectFeature",$),Qe=t("clearSelection",G.object({features:G.boolean().optional(),elements:G.boolean().optional()}).optional()),J={methods:[We,_e,Qe],listeners:[Ke]};import{z as rt}from"zod";import{z as e}from"zod";var X=["pin","line","route","polygon","circle","marker","highlighter","text","note"],Y=e.enum([...X,"link"]),ee=e.enum(X),De=e.object({color:e.string(),symbol:e.string(),frame:e.enum(["frame-circle","frame-square"]).nullable()}),$e=e.object({color:e.string(),strokeOpacity:e.number(),strokeWidth:e.number(),strokeStyle:e.enum(["solid","dashed","dotted"]),distanceMarker:e.boolean()}),Je=e.object({color:e.string(),routingMode:e.enum(["driving","cycling","walking","flying"]),strokeOpacity:e.number(),strokeWidth:e.number(),strokeStyle:e.enum(["solid","dashed","dotted"]),distanceMarker:e.boolean(),endCaps:e.boolean()}),Xe=e.object({color:e.string(),fillOpacity:e.number().min(0).max(1),strokeOpacity:e.number().min(0).max(1),strokeWidth:e.number().min(0),strokeStyle:e.enum(["solid","dashed","dotted"]),areaMarker:e.boolean()}),Ye=e.object({color:e.string(),fillOpacity:e.number().min(0).max(1),strokeOpacity:e.number().min(0).max(1),strokeWidth:e.number().min(0),strokeStyle:e.enum(["solid","dashed","dotted"]),radiusMarker:e.boolean()}),et=e.object({color:e.string(),opacity:e.number().min(0).max(1),size:e.number().min(0).max(100)}),tt=e.object({color:e.string(),opacity:e.number().min(0).max(1),size:e.number().min(0).max(200)}),ot=e.object({color:e.string(),align:e.enum(["left","center","right"]),style:e.enum(["italic","light","regular","caps"])}),nt=e.object({color:e.string(),align:e.enum(["left","center","right"]),style:e.enum(["italic","light","regular","caps"])}),te=e.discriminatedUnion("tool",[De.partial().extend({tool:e.literal("pin")}),$e.partial().extend({tool:e.literal("line")}),Je.partial().extend({tool:e.literal("route")}),Xe.partial().extend({tool:e.literal("polygon")}),Ye.partial().extend({tool:e.literal("circle")}),et.partial().extend({tool:e.literal("marker")}),tt.partial().extend({tool:e.literal("highlighter")}),ot.partial().extend({tool:e.literal("text")}),nt.partial().extend({tool:e.literal("note")})]);var st=t("setTool",Y.nullable()),it=t("getTool",rt.undefined()),at=p("onToolChange"),lt=t("setToolSettings",te),pt=t("getToolSettings",ee),mt=p("onToolSettingsChange"),oe={methods:[st,it,lt,pt],listeners:[at,mt]};import{z as a}from"zod";var ne=a.object({showLegend:a.boolean().optional(),cooperativeGestures:a.boolean().optional(),fullScreenButton:a.boolean().optional(),geolocation:a.boolean().optional(),zoomControls:a.boolean().optional(),scaleBar:a.boolean().optional()}),re=a.object({featureSelectPanel:a.boolean().optional(),featureHoverPanel:a.boolean().optional(),elementSelectPanel:a.boolean().optional(),linkClickOpen:a.boolean().optional(),imageLightboxOpen:a.boolean().optional()});var ct=t("updateUiControls",ne),yt=t("setOnMapInteractionsUi",re),se={methods:[ct,yt],listeners:null};import{z as pe}from"zod";import{z as T}from"zod";var I=T.object({center:x,zoom:N}),ie=T.object({center:I.shape.center.optional(),zoom:I.shape.zoom.optional()}),ae=T.object({minZoom:I.shape.zoom.nullish(),maxZoom:I.shape.zoom.nullish(),bounds:L.nullish()}).nullable(),le=T.object({bounds:L});var gt=t("getViewport",pe.undefined()),dt=t("setViewport",ie),ut=t("getViewportConstraints",pe.undefined()),ft=t("setViewportConstraints",ae),ht=t("fitViewportToBounds",le),St=p("onViewportMove"),bt=p("onViewportMoveEnd"),Mt=p("onMapIdle"),me={methods:[dt,gt,ut,ft,ht],listeners:[St,bt,Mt]};var P=[se,me,D,U,J,B,oe];function Oo(n,h,k){let C=new Map;async function O(c){if(!Ct.safeParse(c.data).success){k?.onUnknownMessage?.(c.data);return}let j=ye.safeParse(c.data);if(!j.success){k?.onInvalidMessage?.(c.data);return}let{data:i}=j;if(i.type==="felt.ready")c.ports[0]?.postMessage(!0);else if(i.type==="felt.addListener"){if(i.event.eventName==="")throw new Error("felt.addListener eventName cannot be empty");let M="options"in i.event?{options:"options"in i.event?i.event.options:void 0,handler:F=>{c.ports[0]?.postMessage(F)}}:{handler:F=>{c.ports[0]?.postMessage(F)}},z=h.listeners[i.event.eventName](M);C.set(i.event.id,z)}else if(i.type==="felt.removeListener")C.get(i.id)?.(),C.delete(i.id);else try{let M=h.methods[i.type],z=await M(i.params);c.ports[0]?.postMessage(z)}catch(M){c.ports[0]?.postMessage({__error__:Lt(M)})}}return n.addEventListener("message",O),()=>{n.removeEventListener("message",O)}}function Lt(n){return n instanceof Error?n.message:typeof n=="object"&&n!==null&&"message"in n?String(n.message):typeof n=="string"?n:"Unknown error"}var ce={methods:P.map(n=>n.methods??[]).flat(),listeners:P.map(n=>n.listeners??[]).flat()},xt=l.discriminatedUnion("eventName",[l.strictObject({eventName:l.literal("")}),...ce.listeners]),Gt=l.strictObject({type:l.literal("felt.addListener"),event:xt}),It=l.strictObject({type:l.literal("felt.removeListener"),id:l.string()}),Tt=l.strictObject({type:l.literal("felt.ready")}),ye=l.discriminatedUnion("type",[Tt,Gt,It,...ce.methods]),Ct=l.object({type:l.enum(ye.options.map(n=>n.shape.type.value))});export{Oo as createMessageHandler};
1
+ import{z as y}from"zod";import{z as u}from"zod";import{z as x}from"zod";function t(n,I){return x.strictObject({type:x.literal(n),params:I})}function h(n,I){return x.strictObject({eventName:x.literal(n),id:x.string(),options:I})}function l(n){return x.strictObject({eventName:x.literal(n),id:x.string()})}import{z as i}from"zod";var R=i.number(),j=i.number(),N=i.object({latitude:j,longitude:R}),L=i.tuple([R,j]),P=i.object({type:i.literal("Polygon"),coordinates:i.array(i.array(L).min(4).refine(n=>n[0][0]===n[n.length-1][0]&&n[0][1]===n[n.length-1][1],"The last point of each ring must be identical to the first"))}),A=i.object({type:i.literal("MultiPolygon"),coordinates:i.array(P.shape.coordinates)}),tt=i.object({type:i.literal("LineString"),coordinates:i.array(L).min(2)}),F=i.object({type:i.literal("MultiLineString"),coordinates:i.array(tt.shape.coordinates)}),de=i.number().min(1).max(23),M=i.tuple([R,j,R,j]),C=i.object({show:i.array(i.string()).optional(),hide:i.array(i.string()).optional()}),ot=i.enum(["asc","desc"]),ue=i.object({attribute:i.string(),direction:ot});import{z as e}from"zod";var d=e.object({id:e.string(),groupId:e.string().nullable(),color:e.string(),name:e.string().nullable(),description:e.string().nullable(),attributes:e.record(e.string(),e.unknown()),interaction:e.enum(["default","locked"]).optional()}),J=e.object({imageUrl:e.string().nullable()}),ee=e.object({strokeOpacity:e.number(),strokeWidth:e.number(),strokeStyle:e.enum(["solid","dashed","dotted"])}),rt=e.enum(["meter","kilometer","foot","mile"]),D=d.extend(J.shape).extend({type:e.literal("Place"),coordinates:L,symbol:e.string(),frame:e.enum(["frame-circle","frame-square"]).nullable(),hideLabel:e.boolean()}),k=d.extend(J.shape).extend(ee.shape).extend({type:e.literal("Path"),coordinates:F.shape.coordinates,distanceMarker:e.boolean(),routingMode:e.enum(["driving","cycling","walking","flying"]).nullable(),endCaps:e.boolean()}),V=d.extend(J.shape).extend(ee.shape).extend({type:e.literal("Polygon"),coordinates:P.shape.coordinates,fillOpacity:e.number().min(0).max(1),areaMarker:e.boolean()}),H=d.extend(J.shape).extend(ee.shape).extend({type:e.literal("Circle"),center:L,radius:e.number(),radiusMarker:e.boolean(),radiusDisplayAngle:e.number(),radiusDisplayUnit:rt.nullable(),fillOpacity:e.number().min(0).max(1)}),v=d.extend({type:e.literal("Marker"),coordinates:F.shape.coordinates,opacity:e.number().min(0).max(1),size:e.number().min(0).max(100),zoom:e.number().min(0).max(23)}),w=d.extend({type:e.literal("Highlighter"),coordinates:A.shape.coordinates,renderHoles:e.boolean(),opacity:e.number().min(0).max(1)}),he=e.object({position:L,rotation:e.number(),scale:e.number(),zoom:e.number().min(0).max(23),text:e.string(),align:e.enum(["left","center","right"]),style:e.enum(["italic","light","regular","caps"]),name:e.string()}),X=d.extend(he.shape).extend({type:e.literal("Text")}),Y=d.extend(he.shape).extend({type:e.literal("Note"),widthScale:e.number().min(0)}),O=d.extend({type:e.literal("Image"),coordinates:F.shape.coordinates,imageUrl:e.string(),opacity:e.number().min(0).max(1)}).omit({color:!0}),nt=d.extend({type:e.literal("Link"),coordinates:F.shape.coordinates,url:e.string()}),T={type:!0,coordinates:!0},f={id:!0},te=D.partial().extend(D.pick(T).shape).omit(f),B=k.partial().extend(k.pick(T).shape).omit(f),oe=V.partial().extend(V.pick(T).shape).omit(f),re=H.partial().extend(H.pick({type:!0,center:!0,radius:!0}).shape).omit(f),ne=v.partial().extend(v.pick(T).shape).omit(f),ae=w.partial().extend(w.pick(T).shape).omit(f),ie=X.partial().omit({...f,name:!0,type:!0}).extend({type:e.literal("Text"),text:e.string()}),se=Y.partial().omit({...f,name:!0,type:!0}).extend({type:e.literal("Note"),text:e.string()}),at=O.partial().extend(O.pick({...T,imageUrl:!0}).shape).omit(f),fe=e.discriminatedUnion("type",[te,B,oe,re,ne,ae,at,ie,se]);var mr=k.omit({coordinates:!0}),cr=V.omit({coordinates:!0});var yr=v.omit({coordinates:!0}),gr=w.omit({coordinates:!0});var dr=O.omit({coordinates:!0}),ur=nt.omit({coordinates:!0}),S={type:!0,id:!0},it=D.partial().extend(D.pick(S).shape),st=k.partial().extend(k.pick(S).shape),lt=V.partial().extend(V.pick(S).shape),pt=H.partial().extend(H.pick(S).shape),mt=v.partial().extend(v.pick(S).shape),ct=w.partial().extend(w.pick(S).shape),yt=X.partial().extend(X.pick(S).shape).omit({name:!0}),gt=Y.partial().extend(Y.pick(S).shape).omit({name:!0}),dt=O.partial().extend(O.pick(S).shape),Se=e.discriminatedUnion("type",[it,st,lt,pt,mt,ct,yt,gt,dt]),xe=e.object({ids:e.array(e.string()).optional()}),Le=e.object({ids:e.array(e.string()).optional()});var ut=t("getElement",u.string()),ht=t("getElementGeometry",u.string()),ft=t("getElements",xe.optional()),St=t("getElementGroup",u.string()),xt=t("getElementGroups",Le.optional()),Lt=t("setElementGroupVisibility",C),bt=h("onElementChange",u.object({id:u.string()})),Mt=l("onElementCreate"),Ct=l("onElementCreateEnd"),Gt=h("onElementDelete",u.object({id:u.string()})),It=h("onElementGroupChange",u.object({id:u.string()})),Tt=t("createElement",fe),Et=t("updateElement",Se),zt=t("deleteElement",u.string()),be={methods:[ut,ht,ft,St,xt,Lt,Tt,Et,zt],listeners:[bt,Mt,Ct,Gt,It]};var Pt=l("onPointerClick"),Ft=l("onPointerMove"),Me={methods:null,listeners:[Pt,Ft]};import{z as s}from"zod";import{z as a}from"zod";var kt=a.enum(["in","ni"]),Vt=a.enum(["lt","gt","le","ge","eq","ne","cn","nc","is","isnt"]),Ir=a.enum(["and","or"]),Ce=a.union([a.number(),a.string(),a.boolean(),a.null()]),Ge=a.string().or(a.null()),vt=a.tuple([Ge,kt,a.array(Ce).or(a.null())]),wt=a.tuple([Ge,Vt,Ce]),le=a.union([vt,wt]),pe=a.tuple([a.lazy(()=>a.union([pe,le,a.null(),a.boolean()])),a.enum(["and","or"]),a.lazy(()=>a.union([pe,le,a.null(),a.boolean()]))]),G=a.union([pe,le,a.null(),a.boolean()]);import{z as o}from"zod";var Ie=o.enum(["avg","max","min","sum","median"]),Ot=o.object({method:Ie,attribute:o.string()}),Ut=o.object({methods:o.array(o.union([Ie,o.literal("count")])),attribute:o.string().optional()}),Z=o.union([M,P,A,o.array(L)]),Te=o.object({boundary:Z.optional(),filters:G.optional(),aggregation:Ot.optional()}),Ee=o.object({layerId:o.string(),attribute:o.string(),limit:o.number().optional(),boundary:Z.optional(),filters:G.optional(),values:Te.optional()}),Fr=o.object({key:o.union([o.number(),o.string(),o.boolean()]),value:o.number().nullable()}),Rt=o.object({type:o.literal("equal-intervals"),count:o.number()}),jt=o.object({type:o.literal("time-interval"),interval:o.enum(["hour","day","week","month","year"])}),ze=o.object({layerId:o.string(),attribute:o.string(),steps:o.union([Rt,jt,o.array(o.number())]),boundary:Z.optional(),filters:G.optional(),values:Te.optional()}),kr=o.object({min:o.number(),max:o.number(),value:o.number()}),Pe=o.object({layerId:o.string(),boundary:Z.optional(),filters:G.optional(),aggregation:Ut});import{z as r}from"zod";var Or=r.enum(["processing","completed","failed","incomplete"]),Nt=r.object({type:r.literal("geoJsonUrl"),url:r.string().url()}),At=r.object({type:r.literal("geoJsonData"),data:r.object({}).passthrough()}),Dt=r.object({type:r.literal("geoJsonFile"),file:r.instanceof(File)}),Fe=r.object({ids:r.array(r.string()).optional()}),ke=r.object({ids:r.array(r.string()).optional()}),E=r.object({id:r.string(),layerId:r.string()}),Ve=r.object({ids:E.array().optional(),layerIds:r.string().array().optional()}),ve=r.object({layerIds:r.array(r.string()).optional(),areaQuery:r.union([r.object({coordinates:N}),r.object({boundary:M})]).optional()}),Ht=r.object({Point:r.object({}).passthrough().optional(),Line:r.object({}).passthrough().optional(),Polygon:r.object({}).passthrough().optional()}),we=r.object({source:r.union([Nt,At,Dt]),name:r.string(),geometryStyles:Ht.optional()});var Jt=t("getLayer",s.string()),Bt=t("getLayers",Fe.optional()),Zt=t("setLayerVisibility",C),qt=h("onLayerChange",s.object({id:s.string()})),Wt=t("setLayerStyle",s.object({id:s.string(),style:s.object({}).passthrough()})),_t=t("setLayerLegendVisibility",C),Qt=t("createLayersFromGeoJson",we),$t=t("deleteLayer",s.string()),Kt=t("getLayerGroup",s.string()),Xt=t("getLayerGroups",ke.optional()),Yt=t("setLayerGroupVisibility",C),eo=t("setLayerGroupLegendVisibility",C),to=h("onLayerGroupChange",s.object({id:s.string()})),oo=t("getLegendItem",E),ro=t("getLegendItems",Ve.optional()),no=h("onLegendItemChange",E),ao=t("setLegendItemVisibility",s.object({show:E.array().optional(),hide:E.array().optional()})),io=t("getLayerFilters",s.string()),so=t("setLayerFilters",s.object({layerId:s.string(),filters:G,note:s.string().optional()})),lo=h("onLayerFiltersChange",s.object({layerId:s.string()})),po=t("getRenderedFeatures",ve.optional()),mo=t("getFeature",s.object({id:s.string().or(s.number()),layerId:s.string()})),co=t("getGeoJsonFeature",s.object({id:s.string().or(s.number()),layerId:s.string()})),yo=t("getCategoryData",Ee),go=t("getHistogramData",ze),uo=t("getAggregates",Pe),ho=t("getLayerSchema",s.string()),Oe={methods:[Jt,Bt,Zt,Wt,_t,Qt,$t,Kt,Xt,Yt,eo,oo,ro,ao,io,so,po,mo,co,yo,go,uo,ho],listeners:[qt,to,no,lo]};import{z as fo}from"zod";var So=t("getMapDetails",fo.undefined()),Ue={methods:[So],listeners:[]};import{z as q}from"zod";import{z as b}from"zod";var Re=b.object({id:b.string().or(b.number()),layerId:b.string(),showPopup:b.boolean().optional(),fitViewport:b.boolean().or(b.object({maxZoom:b.number()})).optional()});var xo=t("getSelection",q.undefined()),Lo=l("onSelectionChange"),bo=t("selectFeature",Re),Mo=t("clearSelection",q.object({features:q.boolean().optional(),elements:q.boolean().optional()}).optional()),je={methods:[xo,bo,Mo],listeners:[Lo]};import{z as Vo}from"zod";import{z as p}from"zod";var Ne=["pin","line","route","polygon","circle","marker","highlighter","text","note"],Ae=p.enum([...Ne,"link"]),De=p.enum(Ne),Co=te.pick({color:!0,symbol:!0,frame:!0}).extend({afterCreation:p.enum(["enter name","add another","select"])}).required(),Go=B.pick({color:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,distanceMarker:!0}).required(),Io=B.pick({color:!0,routingMode:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,distanceMarker:!0,endCaps:!0}).required(),To=oe.pick({color:!0,fillOpacity:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,areaMarker:!0}).required(),Eo=re.pick({color:!0,fillOpacity:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,radiusMarker:!0}).required(),zo=ne.pick({color:!0,opacity:!0,size:!0}).required(),Po=ae.pick({color:!0,opacity:!0,renderHoles:!0}).extend({size:p.number().min(0).max(200)}).required(),Fo=ie.pick({color:!0,align:!0,style:!0}).required(),ko=se.pick({color:!0,align:!0,style:!0}).required(),He=p.discriminatedUnion("tool",[Co.partial().extend({tool:p.literal("pin")}),Go.partial().extend({tool:p.literal("line")}),Io.partial().extend({tool:p.literal("route")}),To.partial().extend({tool:p.literal("polygon")}),Eo.partial().extend({tool:p.literal("circle")}),zo.partial().extend({tool:p.literal("marker")}),Po.partial().extend({tool:p.literal("highlighter")}),Fo.partial().extend({tool:p.literal("text")}),ko.partial().extend({tool:p.literal("note")})]);var vo=t("setTool",Ae.nullable()),wo=t("getTool",Vo.undefined()),Oo=l("onToolChange"),Uo=t("setToolSettings",He),Ro=t("getToolSettings",De),jo=l("onToolSettingsChange"),Je={methods:[vo,wo,Uo,Ro],listeners:[Oo,jo]};import{z as me}from"zod";import{z as c}from"zod";var Be=c.object({showLegend:c.boolean().optional(),cooperativeGestures:c.boolean().optional(),fullScreenButton:c.boolean().optional(),geolocation:c.boolean().optional(),zoomControls:c.boolean().optional(),scaleBar:c.boolean().optional()}),Ze=c.object({featureSelectPanel:c.boolean().optional(),featureHoverPanel:c.boolean().optional(),elementSelectPanel:c.boolean().optional(),linkClickOpen:c.boolean().optional(),imageLightboxOpen:c.boolean().optional()});var No=t("updateUiControls",Be),Ao=t("setOnMapInteractionsUi",Ze),Do=t("showLayerDataTable",me.object({layerId:me.string(),sorting:ue.optional()}).optional()),Ho=t("hideLayerDataTable",me.undefined()),qe={methods:[No,Ao,Do,Ho],listeners:null};import{z as $e}from"zod";import{z as _}from"zod";var W=_.object({center:N,zoom:de}),We=_.object({center:W.shape.center.optional(),zoom:W.shape.zoom.optional()}),_e=_.object({minZoom:W.shape.zoom.nullish(),maxZoom:W.shape.zoom.nullish(),bounds:M.nullish()}).nullable(),Qe=_.object({bounds:M});var Jo=t("getViewport",$e.undefined()),Bo=t("setViewport",We),Zo=t("getViewportConstraints",$e.undefined()),qo=t("setViewportConstraints",_e),Wo=t("fitViewportToBounds",Qe),_o=l("onViewportMove"),Qo=l("onViewportMoveEnd"),$o=l("onMapIdle"),Ke={methods:[Bo,Jo,Zo,qo,Wo],listeners:[_o,Qo,$o]};var ce=[qe,Ke,Oe,be,je,Me,Je,Ue];function vn(n,I,ye){let Q=new Map;async function ge(g){if(!tr.safeParse(g.data).success){ye?.onUnknownMessage?.(g.data);return}let U=et.safeParse(g.data);if(!U.success){ye?.onInvalidMessage?.(g.data,U.error),g.ports[0]?.postMessage(Xe(U.error.message));return}let{data:m}=U;if(m.type==="felt.ready")g.ports[0]?.postMessage(!0);else if(m.type==="felt.addListener"){if(m.event.eventName==="")throw new Error("felt.addListener eventName cannot be empty");let z="options"in m.event?{options:"options"in m.event?m.event.options:void 0,handler:K=>{g.ports[0]?.postMessage(K)}}:{handler:K=>{g.ports[0]?.postMessage(K)}},$=I.listeners[m.event.eventName](z);Q.set(m.event.id,$)}else if(m.type==="felt.removeListener")Q.get(m.id)?.(),Q.delete(m.id);else try{let z=I.methods[m.type],$=await z(m.params);g.ports[0]?.postMessage($)}catch(z){g.ports[0]?.postMessage(Xe(z))}}return n.addEventListener("message",ge),()=>{n.removeEventListener("message",ge)}}var Ye={methods:ce.map(n=>n.methods??[]).flat(),listeners:ce.map(n=>n.listeners??[]).flat()},Ko=y.discriminatedUnion("eventName",[y.strictObject({eventName:y.literal("")}),...Ye.listeners]),Xo=y.strictObject({type:y.literal("felt.addListener"),event:Ko}),Yo=y.strictObject({type:y.literal("felt.removeListener"),id:y.string()}),er=y.strictObject({type:y.literal("felt.ready")}),et=y.discriminatedUnion("type",[er,Xo,Yo,...Ye.methods]),tr=y.object({type:y.enum(et.options.map(n=>n.shape.type.value))});function Xe(n){return{__error__:or(n)}}function or(n){return n instanceof Error?n.message:typeof n=="object"&&n!==null&&"message"in n?String(n.message):typeof n=="string"?n:"Unknown error"}export{vn as createMessageHandler};