UNPKG

@feltmaps/js-sdk

Version:

An SDK for Felt maps

2 lines (1 loc) 26 kB
import{z as g}from"zod";import{z as q}from"zod";import{z as D}from"zod";function e(r,$){return D.strictObject({type:D.literal(r),params:$})}function T(r,$){return D.strictObject({eventName:D.literal(r),id:D.string(),options:$})}function h(r){return D.strictObject({eventName:D.literal(r),id:D.string()})}import{z as k}from"zod";var zt=k.object({id:k.string(),name:k.string(),uiColorScheme:k.enum(["light","dark"]),attribution:k.string().optional()}),Ft=zt.extend({type:k.literal("color"),color:k.string()}),kt=zt.extend({type:k.literal("xyz_tile"),tileUrl:k.string()});var Ya=e("getCurrentBasemap",q.void()),eo=e("getBasemaps",q.void()),to=e("chooseBasemap",q.string()),ao=e("removeBasemap",q.string()),oo=e("addCustomBasemap",q.object({basemap:q.discriminatedUnion("type",[Ft.omit({id:!0,uiColorScheme:!0}),kt.omit({id:!0})]),select:q.boolean().optional()})),no=h("onBasemapChange"),Bt={methods:[Ya,eo,to,oo,ao],listeners:[no]};import{z as P}from"zod";import{z as p}from"zod";var Me=p.number(),Le=p.number(),Te=p.object({latitude:Le,longitude:Me}),N=p.tuple([Me,Le]),te=p.object({type:p.literal("Polygon"),coordinates:p.array(p.array(N).min(4).refine(r=>r[0][0]===r[r.length-1][0]&&r[0][1]===r[r.length-1][1],"The last point of each ring must be identical to the first"))}),Ge=p.object({type:p.literal("MultiPolygon"),coordinates:p.array(te.shape.coordinates)}),ro=p.object({type:p.literal("LineString"),coordinates:p.array(N).min(2)}),ae=p.object({type:p.literal("MultiLineString"),coordinates:p.array(ro.shape.coordinates)}),vt=p.number().min(1).max(23),B=p.tuple([Me,Le,Me,Le]),K=p.object({show:p.array(p.string()).optional(),hide:p.array(p.string()).optional()}),io=p.enum(["asc","desc"]),Pe=p.object({attribute:p.string(),direction:io});import{z as t}from"zod";var G=t.object({id:t.string(),groupId:t.string().nullable(),color:t.string(),name:t.string().nullable(),description:t.string().nullable(),attributes:t.record(t.string(),t.unknown()),interaction:t.enum(["default","locked"]).optional()}),ke=t.object({imageUrl:t.string().nullable()}),Je=t.object({strokeOpacity:t.number(),strokeWidth:t.number(),strokeStyle:t.enum(["solid","dashed","dotted"])}),lo=t.enum(["meter","kilometer","foot","mile"]),ze=G.extend(ke.shape).extend({type:t.literal("Place"),coordinates:N,symbol:t.string(),frame:t.enum(["frame-circle","frame-square"]).nullable(),hideLabel:t.boolean()}),oe=G.extend(ke.shape).extend(Je.shape).extend({type:t.literal("Path"),coordinates:ae.shape.coordinates,distanceMarker:t.boolean(),routingMode:t.enum(["driving","cycling","walking","flying"]).nullable(),endCaps:t.boolean()}),ne=G.extend(ke.shape).extend(Je.shape).extend({type:t.literal("Polygon"),coordinates:te.shape.coordinates,fillOpacity:t.number().min(0).max(1),areaMarker:t.boolean()}),Fe=G.extend(ke.shape).extend(Je.shape).extend({type:t.literal("Circle"),center:N,radius:t.number(),radiusMarker:t.boolean(),radiusDisplayAngle:t.number(),radiusDisplayUnit:lo.nullable(),fillOpacity:t.number().min(0).max(1)}),re=G.extend({type:t.literal("Marker"),coordinates:ae.shape.coordinates,opacity:t.number().min(0).max(1),size:t.number().min(0).max(100),zoom:t.number().min(0).max(23)}),ie=G.extend({type:t.literal("Highlighter"),coordinates:Ge.shape.coordinates,renderHoles:t.boolean(),opacity:t.number().min(0).max(1)}),Rt=t.object({position:N,rotation:t.number(),scale:t.number(),zoom:t.number().min(0).max(23),text:t.string(),align:t.enum(["left","center","right"]),style:t.enum(["italic","light","regular","caps"]),name:t.string()}),Ze=G.extend(Rt.shape).extend({type:t.literal("Text")}),He=G.extend(Rt.shape).extend({type:t.literal("Note"),widthScale:t.number().min(0)}),le=G.extend({type:t.literal("Image"),coordinates:ae.shape.coordinates,imageUrl:t.string(),opacity:t.number().min(0).max(1)}).omit({color:!0}),so=G.extend({type:t.literal("Link"),coordinates:ae.shape.coordinates,url:t.string()}),X={type:!0,coordinates:!0},v={id:!0},qe=ze.partial().extend(ze.pick(X).shape).omit(v),Be=oe.partial().extend(oe.pick(X).shape).omit(v),Ke=ne.partial().extend(ne.pick(X).shape).omit(v),We=Fe.partial().extend(Fe.pick({type:!0,center:!0,radius:!0}).shape).omit(v),_e=re.partial().extend(re.pick(X).shape).omit(v),Qe=ie.partial().extend(ie.pick(X).shape).omit(v),$e=Ze.partial().omit({...v,name:!0,type:!0}).extend({type:t.literal("Text"),text:t.string()}),Xe=He.partial().omit({...v,name:!0,type:!0}).extend({type:t.literal("Note"),text:t.string()}),mo=le.partial().extend(le.pick({...X,imageUrl:!0}).shape).omit(v),Ot=t.discriminatedUnion("type",[qe,Be,Ke,We,_e,Qe,mo,$e,Xe]);var ei=oe.omit({coordinates:!0}),ti=ne.omit({coordinates:!0});var ai=re.omit({coordinates:!0}),oi=ie.omit({coordinates:!0});var ni=le.omit({coordinates:!0}),ri=so.omit({coordinates:!0}),R={type:!0,id:!0},po=ze.partial().extend(ze.pick(R).shape),co=oe.partial().extend(oe.pick(R).shape),uo=ne.partial().extend(ne.pick(R).shape),yo=Fe.partial().extend(Fe.pick(R).shape),go=re.partial().extend(re.pick(R).shape),ho=ie.partial().extend(ie.pick(R).shape),fo=Ze.partial().extend(Ze.pick(R).shape).omit({name:!0}),So=He.partial().extend(He.pick(R).shape).omit({name:!0}),xo=le.partial().extend(le.pick(R).shape),At=t.discriminatedUnion("type",[po,co,uo,yo,go,ho,fo,So,xo]),wt=t.object({ids:t.array(t.string()).optional()}),jt=t.object({ids:t.array(t.string()).optional()});var Co=e("getElement",P.string()),bo=e("getElementGeometry",P.string()),Io=e("getElements",wt.optional()),Eo=e("getElementGroup",P.string()),Uo=e("getElementGroups",jt.optional()),Mo=e("setElementGroupVisibility",K),Lo=T("onElementChange",P.object({id:P.string()})),To=h("onElementCreate"),Go=h("onElementCreateEnd"),Po=T("onElementDelete",P.object({id:P.string()})),zo=T("onElementGroupChange",P.object({id:P.string()})),Fo=e("createElement",Ot),ko=e("updateElement",At),Bo=e("deleteElement",P.string()),Vt={methods:[Co,bo,Io,Eo,Uo,Mo,Fo,ko,Bo],listeners:[Lo,To,Go,Po,zo]};var vo=h("onPointerClick"),Ro=h("onPointerMove"),Dt={methods:null,listeners:[vo,Ro]};import{z as i}from"zod";import{z as s}from"zod";var Oo=s.enum(["in","ni"]),Ao=s.enum(["lt","gt","le","ge","eq","ne","cn","nc","is","isnt"]),hi=s.enum(["and","or"]),Nt=s.union([s.number(),s.string(),s.boolean(),s.null()]),Zt=s.string().or(s.null()),wo=s.tuple([Zt,Oo,s.array(Nt).or(s.null())]),jo=s.tuple([Zt,Ao,Nt]),Ye=s.union([wo,jo]),et=s.tuple([s.lazy(()=>s.union([et,Ye,s.null(),s.boolean()])),s.enum(["and","or"]),s.lazy(()=>s.union([et,Ye,s.null(),s.boolean()]))]),O=s.union([et,Ye,s.null(),s.boolean()]),A=s.union([B,te,Ge,s.array(N)]);import{z as o}from"zod";var Ht=o.enum(["avg","max","min","sum","median"]),Jt=o.enum(["avg","max","min","sum","count"]),Vo=o.object({method:Ht,attribute:o.string()}),Do=o.object({methods:o.array(o.union([Ht,o.literal("count")])),attribute:o.string().optional()}),qt=o.object({boundary:A.optional(),filters:O.optional(),aggregation:Vo.optional()}),Kt=o.object({layerId:o.string(),attribute:o.string(),limit:o.number().optional(),boundary:A.optional(),filters:O.optional(),values:qt.optional()}),Ci=o.object({key:o.union([o.number(),o.string(),o.boolean()]),value:o.number().nullable()}),No=o.object({type:o.literal("equal-intervals"),count:o.number()}),Zo=o.object({type:o.literal("time-interval"),interval:o.enum(["hour","day","week","month","year"])}),Wt=o.object({layerId:o.string(),attribute:o.string(),steps:o.union([No,Zo,o.array(o.number())]),boundary:A.optional(),filters:O.optional(),values:qt.optional()}),bi=o.object({min:o.number(),max:o.number(),value:o.number()}),_t=o.object({layerId:o.string(),boundary:A.optional(),filters:O.optional(),aggregation:Do}),Qt=o.enum(["h3"]),Ho=o.object({type:Qt,resolution:o.number(),method:Jt.extract(["count"])}),Jo=o.object({type:Qt,resolution:o.number(),method:Jt.exclude(["count"]),attribute:o.string()}),qo=o.union([Ho,Jo]),$t=o.object({layerId:o.string(),boundary:A.optional(),filters:O.optional(),gridConfig:qo});import{z as n}from"zod";var Mi=n.enum(["processing","completed","failed","incomplete"]),Xt=n.object({type:n.literal("geoJsonUrl"),url:n.string().url(),refreshInterval:n.number().min(250).max(5*60*1e3).nullable().optional()}),Yt=n.object({type:n.literal("geoJsonData"),data:n.object({}).passthrough().or(n.instanceof(ArrayBuffer))}),ea=n.object({type:n.literal("geoJsonFile"),file:n.instanceof(File)}),Ko=n.enum(["default","nameOnly"]),ta=n.object({id:n.string(),style:n.object({}).passthrough().optional(),shownInLegend:n.boolean().optional(),legendDisplay:Ko.optional(),name:n.string().optional(),caption:n.string().optional(),description:n.string().optional(),bounds:B.optional(),source:n.union([Xt,Yt,ea]).optional()}),aa=n.object({ids:n.array(n.string()).optional()}),oa=n.object({ids:n.array(n.string()).optional()}),Y=n.object({id:n.string(),layerId:n.string()}),na=n.object({ids:Y.array().optional(),layerIds:n.string().array().optional()}),ra=n.object({layerIds:n.array(n.string()).optional(),areaQuery:n.union([n.object({coordinates:Te}),n.object({boundary:B})]).optional()}),Wo=n.object({Point:n.object({}).passthrough().optional(),Line:n.object({}).passthrough().optional(),Polygon:n.object({}).passthrough().optional()}),ia=n.object({source:n.union([Xt,Yt,ea]),name:n.string(),bounds:B.optional(),caption:n.string().optional(),description:n.string().optional(),geometryStyles:Wo.optional()});var _o=e("getLayer",i.string()),Qo=e("getLayers",aa.optional()),$o=e("setLayerVisibility",K),Xo=T("onLayerChange",i.object({id:i.string()})),Yo=e("setLayerStyle",i.object({id:i.string(),style:i.object({}).passthrough()})),en=e("setLayerLegendVisibility",K),tn=e("createLayersFromGeoJson",ia),an=e("updateLayer",ta),on=e("deleteLayer",i.string()),nn=e("duplicateLayer",i.string()),rn=e("getLayerGroup",i.string()),ln=e("getLayerGroups",oa.optional()),sn=e("setLayerGroupVisibility",K),mn=e("setLayerGroupLegendVisibility",K),pn=T("onLayerGroupChange",i.object({id:i.string()})),cn=e("getLegendItem",Y),dn=e("getLegendItems",na.optional()),un=T("onLegendItemChange",Y),yn=e("setLegendItemVisibility",i.object({show:Y.array().optional(),hide:Y.array().optional()})),gn=e("getLayerFilters",i.string()),hn=e("setLayerFilters",i.object({layerId:i.string(),filters:O,note:i.string().optional()})),fn=T("onLayerFiltersChange",i.object({layerId:i.string()})),Sn=e("getLayerBoundaries",i.string()),xn=e("setLayerBoundary",i.object({layerIds:i.array(i.string()),boundary:A.nullable()})),Cn=T("onLayerBoundariesChange",i.object({layerId:i.string()})),bn=e("getRenderedFeatures",ra.optional()),In=e("getFeature",i.object({id:i.string().or(i.number()),layerId:i.string()})),En=e("getFeatures",i.object({layerId:i.string(),filters:O.optional(),sorting:Pe.optional(),boundary:A.optional(),search:i.string().optional(),pagination:i.string().optional().nullish(),pageSize:i.number().optional(),select:i.array(i.string()).optional()})),Un=e("getGeoJsonFeature",i.object({id:i.string().or(i.number()),layerId:i.string()})),Mn=e("getCategoryData",Kt),Ln=e("getHistogramData",Wt),Tn=e("getAggregates",_t),Gn=e("getPrecomputedAggregates",$t),Pn=e("getLayerSchema",i.string()),la={methods:[_o,Qo,$o,Yo,en,tn,on,an,nn,rn,ln,sn,mn,cn,dn,yn,gn,hn,Sn,xn,bn,In,En,Un,Mn,Ln,Tn,Gn,Pn],listeners:[Xo,pn,un,fn,Cn]};import{z as zn}from"zod";var Fn=e("getMapDetails",zn.undefined()),sa={methods:[Fn],listeners:[]};import{z as ve}from"zod";import{z as Z}from"zod";var ma=Z.object({id:Z.string().or(Z.number()),layerId:Z.string(),showPopup:Z.boolean().optional(),fitViewport:Z.boolean().or(Z.object({maxZoom:Z.number()})).optional()});var kn=e("getSelection",ve.undefined()),Bn=h("onSelectionChange"),vn=e("selectFeature",ma),Rn=e("clearSelection",ve.object({features:ve.boolean().optional(),elements:ve.boolean().optional()}).optional()),pa={methods:[kn,vn,Rn],listeners:[Bn]};import{z as qn}from"zod";import{z as S}from"zod";var ca=["circle","highlighter","line","marker","note","pin","polygon","route","text"],On=[...ca,"link"],da=S.enum(On),ua=S.enum(ca),w={showInspector:S.boolean().optional()},An=qe.pick({color:!0,symbol:!0,frame:!0}).extend({afterCreation:S.enum(["enter name","add another","select"])}).required(),wn=Be.pick({color:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,distanceMarker:!0}).required(),jn=Be.pick({color:!0,routingMode:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,distanceMarker:!0,endCaps:!0}).required(),Vn=Ke.pick({color:!0,fillOpacity:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,areaMarker:!0}).required(),Dn=We.pick({color:!0,fillOpacity:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,radiusMarker:!0}).required(),Nn=_e.pick({color:!0,opacity:!0,size:!0}).required(),Zn=Qe.pick({color:!0,opacity:!0,renderHoles:!0}).extend({size:S.number().min(0).max(200)}).required(),Hn=$e.pick({color:!0,align:!0,style:!0}).required(),Jn=Xe.pick({color:!0,align:!0,style:!0}).required(),ya=S.discriminatedUnion("tool",[An.partial().extend({tool:S.literal("pin"),...w}),wn.partial().extend({tool:S.literal("line"),...w}),jn.partial().extend({tool:S.literal("route"),...w}),Vn.partial().extend({tool:S.literal("polygon"),...w}),Dn.partial().extend({tool:S.literal("circle"),...w}),Nn.partial().extend({tool:S.literal("marker"),...w}),Zn.partial().extend({tool:S.literal("highlighter"),...w}),Hn.partial().extend({tool:S.literal("text"),...w}),Jn.partial().extend({tool:S.literal("note"),...w})]);var Kn=e("setTool",da.nullable()),Wn=e("getTool",qn.undefined()),_n=h("onToolChange"),Qn=e("setToolSettings",ya),$n=e("getToolSettings",ua),Xn=h("onToolSettingsChange"),ga={methods:[Kn,Wn,Qn,$n],listeners:[_n,Xn]};import{z as Q}from"zod";import{z as a}from"zod";import{z as W}from"zod";var j=W.union([W.object({after:W.string()}),W.object({before:W.string()}),W.object({at:W.enum(["start","end"])})]);import{z as x}from"zod";import{z as u}from"zod";var Yn=u.object({onCreate:u.function().args(u.object({id:u.string()})).returns(u.void()).optional(),onDestroy:u.function().args(u.object({id:u.string()})).returns(u.void()).optional()}),er=u.object({onCreate:u.string().optional(),onDestroy:u.string().optional()}),d=Yn.extend({id:u.string()}),ha=d.partial({id:!0}),m={params:ha,clonable:ha.extend(er.shape)},C=d.extend({label:u.string().optional()}),y={params:C.extend(m.params.shape),clonable:C.extend(m.clonable.shape)};function l(r){return r.partial().extend({id:u.string(),type:r.shape.type})}var E=u.object({label:u.string(),value:u.string(),disabled:u.boolean().optional()});var tt=x.object({type:x.literal("ActionTrigger"),label:x.string(),disabled:x.boolean().optional()}),se={read:d.extend(tt.shape).extend({onTrigger:x.function().args(x.object({id:x.string()})).returns(x.void())}),create:m.params.extend(tt.shape).extend({type:x.undefined()}).extend({onTrigger:x.function().args(x.object({id:x.string()})).returns(x.void())}),clonable:m.clonable.extend(tt.shape).extend({type:x.undefined()}).extend({onTrigger:x.string()})};import{z as f}from"zod";var Re=f.object({type:f.literal("FeatureAction"),label:f.string(),onTrigger:f.function().args(f.object({feature:f.custom()})).returns(f.void()),layerIds:f.array(f.string()).optional(),geometryTypes:f.array(f.enum(["Polygon","Line","Point","Raster"])).optional()}),Oe={read:d.extend(Re.shape).extend({id:f.string()}),create:m.params.extend(Re.shape).extend({type:f.undefined()}),clonable:m.clonable.extend(Re.shape).extend({type:f.undefined()}).extend({onTrigger:f.string()}),update:l(m.params.extend(Re.shape).extend({type:f.undefined()}))};import{z as tr}from"zod";var at=d.extend({type:tr.literal("FlexibleSpace")}),fa=at.partial({id:!0}),me={params:fa,clonable:fa.extend(m.clonable.shape)},ot={params:l(me.params),clonable:l(me.clonable)};import{z as I}from"zod";import{z as Ee}from"zod";import{z}from"zod";var pe=d.extend({type:z.literal("Button"),label:z.string(),variant:z.enum(["filled","transparent","outlined"]).optional(),tint:z.enum(["default","primary","accent","danger"]).optional(),disabled:z.boolean().optional(),onClick:z.function().args(z.object({id:z.string()})).returns(z.void())}),Sa=pe.extend(m.params.shape),H={params:Sa,clonable:Sa.extend(m.clonable.shape).extend({onClick:z.string()})},nt={params:l(H.params),clonable:l(H.clonable)};import{z as ce}from"zod";var rt=C.extend({type:ce.literal("ButtonRow"),align:ce.enum(["start","end"]).optional(),items:ce.array(pe)}),xa=rt.extend(y.params.shape).omit({items:!0}).extend({items:ce.array(H.params)}),ar=xa.extend(y.clonable.shape).extend({items:ce.array(H.clonable)}),de={params:xa,clonable:ar},it={params:l(de.params),clonable:l(de.clonable)};import{z as J}from"zod";var Ca=J.array(E.shape.value),lt=C.extend({type:J.literal("CheckboxGroup"),options:J.array(E),value:Ca,onChange:J.function().args(J.object({value:Ca,id:J.string()})).returns(J.void())}),ba=lt.extend(y.params.shape),ue={params:ba,clonable:ba.extend(y.clonable.shape).extend({onChange:J.string()})},st={params:l(ue.params),clonable:l(ue.clonable)};import{z as or}from"zod";var mt=d.extend({type:or.literal("Divider")}),Ia=mt.partial({id:!0}),ye={params:Ia,clonable:Ia.extend(m.clonable.shape)},pt={params:l(ye.params),clonable:l(ye.clonable)};import{z as F}from"zod";var nr=F.lazy(()=>F.array(he.refine(r=>r.type!=="Grid"))),rr=F.lazy(()=>F.array(U.params.refine(r=>r.type!=="Grid"))),ir=F.lazy(()=>F.array(U.clonable.refine(r=>r.type!=="Grid"))),ct=d.extend({type:F.literal("Grid"),grid:F.string().optional(),verticalAlignment:F.enum(["top","center","bottom"]).optional(),horizontalDistribution:F.enum(["start","center","end","space-between","space-around","space-evenly"]).optional(),items:nr}),Ea=ct.extend(m.params.shape).omit({items:!0}).extend({items:rr}),lr=Ea.extend(m.clonable.shape).extend({items:ir}),ge={params:Ea,clonable:lr},dt={params:l(ge.params),clonable:l(ge.clonable)};import{z as Ae}from"zod";var ut=d.extend({type:Ae.literal("Iframe"),height:Ae.number().or(Ae.string()).optional(),url:Ae.string()}),Ua=ut.extend(m.params.shape),fe={params:Ua,clonable:Ua.extend(m.clonable.shape)},yt={params:l(fe.params),clonable:l(fe.clonable)};import{z as _}from"zod";var Ma=E.shape.value.optional(),gt=C.extend({type:_.literal("RadioGroup"),options:_.array(E),value:Ma,onChange:_.function().args(_.object({value:Ma,id:_.string()})).returns(_.void())}),La=gt.extend(y.params.shape),Se={params:La,clonable:La.extend(y.clonable.shape).extend({onChange:_.string()})},ht={params:l(Se.params),clonable:l(Se.clonable)};import{z as M}from"zod";var ft=C.extend({type:M.literal("Select"),options:M.array(E),value:M.string().optional(),placeholder:M.string().optional(),search:M.boolean().optional(),onChange:M.function().args(M.object({value:M.string(),id:M.string()})).returns(M.void())}),Ta=ft.extend(y.params.shape),xe={params:Ta,clonable:Ta.extend(y.clonable.shape).extend({onChange:M.string()})},St={params:l(xe.params),clonable:l(xe.clonable)};import{z as Ga}from"zod";var xt=d.extend({type:Ga.literal("Text"),content:Ga.string()}),Pa=xt.extend(m.params.shape),Ce={params:Pa,clonable:Pa.extend(m.clonable.shape)},Ct={params:l(Ce.params),clonable:l(Ce.clonable)};import{z as c}from"zod";var bt=C.extend({type:c.literal("TextInput"),value:c.string(),placeholder:c.string().optional(),onChange:c.function().args(c.object({value:c.string(),id:c.string()})).returns(c.void()).optional(),onBlur:c.function().args(c.object({value:c.string(),id:c.string()})).returns(c.void()).optional(),onFocus:c.function().args(c.object({value:c.string(),id:c.string()})).returns(c.void()).optional()}),za=bt.extend(y.params.shape),be={params:za,clonable:za.extend(y.clonable.shape).extend({onChange:c.string().optional(),onBlur:c.string().optional(),onFocus:c.string().optional()})},It={params:l(be.params),clonable:l(be.clonable)};import{z as V}from"zod";var Fa=V.array(E.shape.value),Et=C.extend({type:V.literal("ToggleGroup"),alignment:V.enum(["start","end"]).optional(),options:V.array(E),value:Fa,onChange:V.function().args(V.object({value:Fa,id:V.string()})).returns(V.void())}),ka=Et.extend(y.params.shape),Ie={params:ka,clonable:ka.extend(y.clonable.shape).extend({onChange:V.string()})},Ut={params:l(Ie.params),clonable:l(Ie.clonable)};var he=Ee.discriminatedUnion("type",[pe,xt,mt,bt,ft,at,rt,lt,gt,Et,ut,ct]),sr=Ee.discriminatedUnion("type",[H.params,Ce.params,ye.params,be.params,xe.params,me.params,de.params,ue.params,Se.params,Ie.params,fe.params,ge.params]),mr=Ee.discriminatedUnion("type",[H.clonable,Ce.clonable,ye.clonable,be.clonable,xe.clonable,me.clonable,de.clonable,ue.clonable,Se.clonable,Ie.clonable,fe.clonable,ge.clonable]),U={params:sr,clonable:mr},Mt={params:Ee.discriminatedUnion("type",[nt.params,Ct.params,It.params,St.params,pt.params,ot.params,it.params,st.params,ht.params,Ut.params,yt.params,dt.params]),clonable:Ee.discriminatedUnion("type",[nt.clonable,Ct.clonable,It.clonable,St.clonable,pt.clonable,ot.clonable,it.clonable,st.clonable,ht.clonable,Ut.clonable,yt.clonable,dt.clonable])};var pr=d.extend({type:I.literal("Panel"),title:I.string().optional(),body:I.array(he).optional(),footer:I.array(he).optional(),onClickClose:I.function().args(I.object({id:I.string()})).returns(I.void()).optional()}),Ba=pr.extend(m.params.shape).required({id:!0}).partial({type:!0}).omit({body:!0,footer:!0}).extend({body:I.array(U.params).optional(),footer:I.array(U.params).optional()}),Lt={params:Ba,clonable:Ba.extend(m.clonable.shape).required({id:!0}).extend({onClickClose:I.string().optional(),body:I.array(U.clonable).optional(),footer:I.array(U.clonable).optional()})};var gs=a.object({actionTrigger:se.create,placement:j.optional()}),va=a.object({actionTrigger:se.clonable,placement:j.optional()}),hs=se.create.partial().required({id:!0}),Ra=se.clonable.partial().required({id:!0}),fs=a.object({action:Oe.create,placement:j.optional()}),Oa=a.object({action:Oe.clonable,placement:j.optional()}),Aa=Oe.clonable.partial().required({id:!0}),Ss=a.object({panel:Lt.params,placement:j.optional()}),wa=a.object({panel:Lt.clonable,initialPlacement:j.optional()}),xs=a.object({panelId:a.string(),elements:a.array(a.object({element:U.params,container:a.union([a.literal("body"),a.literal("footer"),a.object({id:a.string()})]).optional(),placement:j.optional()}))}),ja=a.object({panelId:a.string(),elements:a.array(a.object({element:U.clonable,container:a.union([a.literal("body"),a.literal("footer"),a.object({id:a.string()})]).optional(),placement:j.optional()}))}),Cs=a.object({panelId:a.string(),elements:a.array(a.object({element:Mt.params}))}),Va=a.object({panelId:a.string(),elements:a.array(a.object({element:Mt.clonable}))}),Da=a.object({panelId:a.string(),elements:a.array(a.string())}),Na=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()}),Za=a.object({featureSelectPanel:a.boolean().optional(),featureHoverPanel:a.boolean().optional(),elementSelectPanel:a.boolean().optional(),linkClickOpen:a.boolean().optional(),imageLightboxOpen:a.boolean().optional()});var cr=e("createActionTrigger",va),dr=e("updateActionTrigger",Ra),ur=e("deleteActionTrigger",Q.string()),yr=e("createFeatureAction",Oa),gr=e("updateFeatureAction",Aa),hr=e("deleteFeatureAction",Q.string()),fr=e("createPanelId",Q.void()),Sr=e("createOrUpdatePanel",wa),xr=e("deletePanel",Q.string()),Cr=e("createPanelElements",ja),br=e("updatePanelElements",Va),Ir=e("deletePanelElements",Da),Er=e("updateUiControls",Na),Ur=e("setOnMapInteractionsUi",Za),Mr=e("showLayerDataTable",Q.object({layerId:Q.string(),sorting:Pe.optional()}).optional()),Lr=e("hideLayerDataTable",Q.undefined()),Ha={methods:[cr,dr,ur,yr,gr,hr,fr,Sr,xr,Cr,br,Ir,Er,Ur,Mr,Lr],listeners:null};import{z as Wa}from"zod";import{z as je}from"zod";var we=je.object({center:Te,zoom:vt}),Ja=je.object({center:we.shape.center.optional(),zoom:we.shape.zoom.optional()}),qa=je.object({minZoom:we.shape.zoom.nullish(),maxZoom:we.shape.zoom.nullish(),bounds:B.nullish()}).nullable(),Ka=je.object({bounds:B});var Tr=e("getViewport",Wa.undefined()),Gr=e("setViewport",Ja),Pr=e("getViewportConstraints",Wa.undefined()),zr=e("setViewportConstraints",qa),Fr=e("fitViewportToBounds",Ka),kr=h("onViewportMove"),Br=h("onViewportMoveEnd"),vr=h("onMapIdle"),_a={methods:[Gr,Tr,Pr,zr,Fr],listeners:[kr,Br,vr]};var Tt=[Ha,_a,la,Vt,pa,Dt,ga,sa,Bt];function Ks(r,$,Gt){let Ve=new Map;async function Pt(L){if(!jr.safeParse(L.data).success){Gt?.onUnknownMessage?.(L.data);return}let Ue=Xa.safeParse(L.data);if(!Ue.success){Gt?.onInvalidMessage?.(L.data,Ue.error),L.ports[0]?.postMessage(Qa(Ue.error.message));return}let{data:b}=Ue;if(b.type==="felt.ready")L.ports[0]?.postMessage(!0);else if(b.type==="felt.addListener"){if(b.event.eventName==="")throw new Error("felt.addListener eventName cannot be empty");let ee="options"in b.event?{options:"options"in b.event?b.event.options:void 0,handler:Ne=>{L.ports[0]?.postMessage(Ne)}}:{handler:Ne=>{L.ports[0]?.postMessage(Ne)}},De=$.listeners[b.event.eventName](ee);Ve.set(b.event.id,De)}else if(b.type==="felt.removeListener")Ve.get(b.id)?.(),Ve.delete(b.id);else try{let ee=$.methods[b.type],De=await ee(b.params);L.ports[0]?.postMessage(De)}catch(ee){L.ports[0]?.postMessage(Qa(ee))}}return r.addEventListener("message",Pt),()=>{r.removeEventListener("message",Pt)}}var $a={methods:Tt.map(r=>r.methods??[]).flat(),listeners:Tt.map(r=>r.listeners??[]).flat()},Rr=g.discriminatedUnion("eventName",[g.strictObject({eventName:g.literal("")}),g.strictObject({eventName:g.literal("onGenericEvent"),id:g.string(),options:g.object({id:g.string()})}),...$a.listeners]),Or=g.strictObject({type:g.literal("felt.addListener"),event:Rr}),Ar=g.strictObject({type:g.literal("felt.removeListener"),id:g.string()}),wr=g.strictObject({type:g.literal("felt.ready")}),Xa=g.discriminatedUnion("type",[wr,Or,Ar,...$a.methods]),jr=g.object({type:g.enum(Xa.options.map(r=>r.shape.type.value))});function Qa(r){return{__error__:Vr(r)}}function Vr(r){return r instanceof Error?r.message:typeof r=="object"&&r!==null&&"message"in r?String(r.message):typeof r=="string"?r:"Unknown error"}export{Ks as createMessageHandler};