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