@feltmaps/js-sdk 1.6.0-next.0 → 1.6.0-next.1

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.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var c=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var x=(e,o)=>{for(var n in o)c(e,n,{get:o[n],enumerable:!0})},f=(e,o,n,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of b(o))!I.call(e,a)&&a!==n&&c(e,a,{get:()=>o[a],enumerable:!(s=V(o,a))||s.enumerable});return e};var K=e=>f(c({},"__esModule",{value:!0}),e);var O={};x(O,{Felt:()=>S});module.exports=K(O);function r(e,o){return n=>{let s=new MessageChannel,a=n.handler,i="options"in n?n.options:void 0,m=crypto.randomUUID();return e.postMessage({type:"felt.addListener",event:i?{eventName:o,id:m,options:i}:{eventName:o,id:m}},"*",[s.port2]),s.port1.onmessage=g=>{u(g)||a(g.data)},()=>{s.port1.onmessage=null,s.port1.close(),s.port2.close(),e.postMessage({type:"felt.removeListener",id:m},"*")}}}function t(e,o,n){return async s=>{let a=new MessageChannel,i=s&&n?await n(s):s;return e.postMessage({type:o,params:i},"*",[a.port2]),new Promise((m,g)=>{a.port1.onmessage=y=>{u(y)?g(new Error(y.data.__error__)):m(y.data),a.port1.close(),a.port2.close()}})}}function u(e){return e.data&&typeof e.data=="object"&&"__error__"in e.data}var C=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"),onElementCreate:r(e,"onElementCreate"),onElementCreateEnd:r(e,"onElementCreateEnd"),onElementDelete:r(e,"onElementDelete"),onElementGroupChange:r(e,"onElementGroupChange"),createElement:t(e,"createElement"),updateElement:t(e,"updateElement"),deleteElement:t(e,"deleteElement")});var L=e=>({onPointerClick:r(e,"onPointerClick"),onPointerMove:r(e,"onPointerMove")});var T=e=>({getLayer:t(e,"getLayer"),getLayers:t(e,"getLayers"),setLayerVisibility:t(e,"setLayerVisibility"),setLayerStyle:t(e,"setLayerStyle"),setLayerLegendVisibility:t(e,"setLayerLegendVisibility"),onLayerChange:r(e,"onLayerChange"),createLayersFromGeoJson:t(e,"createLayersFromGeoJson",h),updateLayer:t(e,"updateLayer",h),deleteLayer:t(e,"deleteLayer"),getLayerGroup:t(e,"getLayerGroup"),getLayerGroups:t(e,"getLayerGroups"),setLayerGroupVisibility:t(e,"setLayerGroupVisibility"),setLayerGroupLegendVisibility:t(e,"setLayerGroupLegendVisibility"),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"),onLayerFiltersChange:r(e,"onLayerFiltersChange"),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"),getLayerSchema:t(e,"getLayerSchema")});async function h(e){let{source:o}=e;return o&&o.type==="geoJsonFile"?{...e,source:{type:"geoJsonData",data:JSON.parse(await o.file.text())}}:e}var P=e=>({getMapDetails:t(e,"getMapDetails")});var E=e=>({onSelectionChange:r(e,"onSelectionChange"),getSelection:t(e,"getSelection"),selectFeature:t(e,"selectFeature"),clearSelection:t(e,"clearSelection")});var v=e=>({setTool:t(e,"setTool"),getTool:t(e,"getTool"),onToolChange:r(e,"onToolChange"),setToolSettings:t(e,"setToolSettings"),getToolSettings:t(e,"getToolSettings"),onToolSettingsChange:r(e,"onToolSettingsChange")});var F=e=>({updateUiControls:t(e,"updateUiControls"),setOnMapInteractionsUi:t(e,"setOnMapInteractionsUi"),showLayerDataTable:t(e,"showLayerDataTable"),hideLayerDataTable:t(e,"hideLayerDataTable")});var M=e=>({getViewport:t(e,"getViewport"),setViewport:t(e,"setViewport"),getViewportConstraints:t(e,"getViewportConstraints"),setViewportConstraints:t(e,"setViewportConstraints"),fitViewportToBounds:t(e,"fitViewportToBounds"),onViewportMove:r(e,"onViewportMove"),onViewportMoveEnd:r(e,"onViewportMoveEnd"),onMapIdle:r(e,"onMapIdle")});function G(e){return{iframe:null,...M(e),...F(e),...T(e),...C(e),...E(e),...L(e),...v(e),...P(e)}}var S={embed(e,o,n){let s={uiControls:{showLegend:!0,cooperativeGestures:!0,fullScreenButton:!0,geolocation:!1,zoomControls:!0,scaleBar:!0},initialViewport:void 0,origin:"https://felt.com"},a=n?.origin??s.origin,i=new URL(`${a}/embed/map/${o}`),m={showLegend:"legend",cooperativeGestures:"cooperativeGestures",fullScreenButton:"link",geolocation:"geolocation",zoomControls:"zoomControls",scaleBar:"scaleBar"},g={...s.uiControls,...n?.uiControls};for(let[p,d]of k(g))d!=null&&i.searchParams.set(m[p],d?"1":"0");if(n?.token&&i.searchParams.set("token",n.token),n?.initialViewport){let p=n.initialViewport;i.searchParams.set("loc",`${p.center.latitude},${p.center.longitude},${p.zoom}z`)}let y=e.tagName==="IFRAME",l=y?e:e.ownerDocument.createElement("iframe");return l.src=i.toString(),y||(l.style.width="100%",l.style.height="100%",l.style.border="none",l.style.margin="0",e.appendChild(l)),l.referrerPolicy="strict-origin-when-cross-origin",new Promise((p,d)=>{l.addEventListener("load",()=>{l.contentWindow==null?d(new Error("Failed to load Felt map")):p(l.contentWindow)},{once:!0})}).then(S.connect).then(p=>(Object.defineProperties(p,{iframe:{value:l,writable:!1,configurable:!1}}),p))},connect(e){let o=G(e);return new Promise((n,s)=>{let a=setTimeout(()=>{s(new Error("Failed to load Felt map")),clearInterval(m)},5e3),i=new MessageChannel,m=setInterval(()=>{e.postMessage({type:"felt.ready"},"*",[i.port2])},100);i.port1.onmessage=g=>{g.data===!0&&(clearInterval(m),clearTimeout(a),i.port1.close(),i.port2.close(),n(o))}})}},k=Object.entries;0&&(module.exports={Felt});
1
+ "use strict";var u=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var x=(e,o)=>{for(var n in o)u(e,n,{get:o[n],enumerable:!0})},f=(e,o,n,a)=>{if(o&&typeof o=="object"||typeof o=="function")for(let s of b(o))!I.call(e,s)&&s!==n&&u(e,s,{get:()=>o[s],enumerable:!(a=V(o,s))||a.enumerable});return e};var K=e=>f(u({},"__esModule",{value:!0}),e);var O={};x(O,{Felt:()=>S});module.exports=K(O);function r(e,o){return n=>{let a=new MessageChannel,s=n.handler,i="options"in n?n.options:void 0,m=crypto.randomUUID();return e.postMessage({type:"felt.addListener",event:i?{eventName:o,id:m,options:i}:{eventName:o,id:m}},"*",[a.port2]),a.port1.onmessage=y=>{c(y)||s(y.data)},()=>{a.port1.onmessage=null,a.port1.close(),a.port2.close(),e.postMessage({type:"felt.removeListener",id:m},"*")}}}function t(e,o,n){return async a=>{let s=new MessageChannel,i=a&&n?await n(a):a;return e.postMessage({type:o,params:i},"*",[s.port2]),new Promise((m,y)=>{s.port1.onmessage=g=>{c(g)?y(new Error(g.data.__error__)):m(g.data),s.port1.close(),s.port2.close()}})}}function c(e){return e.data&&typeof e.data=="object"&&"__error__"in e.data}var C=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"),onElementCreate:r(e,"onElementCreate"),onElementCreateEnd:r(e,"onElementCreateEnd"),onElementDelete:r(e,"onElementDelete"),onElementGroupChange:r(e,"onElementGroupChange"),createElement:t(e,"createElement"),updateElement:t(e,"updateElement"),deleteElement:t(e,"deleteElement")});var L=e=>({onPointerClick:r(e,"onPointerClick"),onPointerMove:r(e,"onPointerMove")});var P=e=>({getLayer:t(e,"getLayer"),getLayers:t(e,"getLayers"),setLayerVisibility:t(e,"setLayerVisibility"),setLayerStyle:t(e,"setLayerStyle"),setLayerLegendVisibility:t(e,"setLayerLegendVisibility"),onLayerChange:r(e,"onLayerChange"),createLayersFromGeoJson:t(e,"createLayersFromGeoJson",h),updateLayer:t(e,"updateLayer",h),deleteLayer:t(e,"deleteLayer"),getLayerGroup:t(e,"getLayerGroup"),getLayerGroups:t(e,"getLayerGroups"),setLayerGroupVisibility:t(e,"setLayerGroupVisibility"),setLayerGroupLegendVisibility:t(e,"setLayerGroupLegendVisibility"),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"),onLayerFiltersChange:r(e,"onLayerFiltersChange"),getLayerBoundaries:t(e,"getLayerBoundaries"),setLayerBoundary:t(e,"setLayerBoundary"),onLayerBoundariesChange:r(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"),getLayerSchema:t(e,"getLayerSchema")});async function h(e){let{source:o}=e;return o&&o.type==="geoJsonFile"?{...e,source:{type:"geoJsonData",data:JSON.parse(await o.file.text())}}:e}var T=e=>({getMapDetails:t(e,"getMapDetails")});var E=e=>({onSelectionChange:r(e,"onSelectionChange"),getSelection:t(e,"getSelection"),selectFeature:t(e,"selectFeature"),clearSelection:t(e,"clearSelection")});var v=e=>({setTool:t(e,"setTool"),getTool:t(e,"getTool"),onToolChange:r(e,"onToolChange"),setToolSettings:t(e,"setToolSettings"),getToolSettings:t(e,"getToolSettings"),onToolSettingsChange:r(e,"onToolSettingsChange")});var F=e=>({updateUiControls:t(e,"updateUiControls"),setOnMapInteractionsUi:t(e,"setOnMapInteractionsUi"),showLayerDataTable:t(e,"showLayerDataTable"),hideLayerDataTable:t(e,"hideLayerDataTable")});var M=e=>({getViewport:t(e,"getViewport"),setViewport:t(e,"setViewport"),getViewportConstraints:t(e,"getViewportConstraints"),setViewportConstraints:t(e,"setViewportConstraints"),fitViewportToBounds:t(e,"fitViewportToBounds"),onViewportMove:r(e,"onViewportMove"),onViewportMoveEnd:r(e,"onViewportMoveEnd"),onMapIdle:r(e,"onMapIdle")});function G(e){return{iframe:null,...M(e),...F(e),...P(e),...C(e),...E(e),...L(e),...v(e),...T(e)}}var S={embed(e,o,n){let a={uiControls:{showLegend:!0,cooperativeGestures:!0,fullScreenButton:!0,geolocation:!1,zoomControls:!0,scaleBar:!0},initialViewport:void 0,origin:"https://felt.com"},s=n?.origin??a.origin,i=new URL(`${s}/embed/map/${o}`),m={showLegend:"legend",cooperativeGestures:"cooperativeGestures",fullScreenButton:"link",geolocation:"geolocation",zoomControls:"zoomControls",scaleBar:"scaleBar"},y={...a.uiControls,...n?.uiControls};for(let[p,d]of k(y))d!=null&&i.searchParams.set(m[p],d?"1":"0");if(n?.token&&i.searchParams.set("token",n.token),n?.initialViewport){let p=n.initialViewport;i.searchParams.set("loc",`${p.center.latitude},${p.center.longitude},${p.zoom}z`)}let g=e.tagName==="IFRAME",l=g?e:e.ownerDocument.createElement("iframe");return l.src=i.toString(),g||(l.style.width="100%",l.style.height="100%",l.style.border="none",l.style.margin="0",e.appendChild(l)),l.referrerPolicy="strict-origin-when-cross-origin",new Promise((p,d)=>{l.addEventListener("load",()=>{l.contentWindow==null?d(new Error("Failed to load Felt map")):p(l.contentWindow)},{once:!0})}).then(S.connect).then(p=>(Object.defineProperties(p,{iframe:{value:l,writable:!1,configurable:!1}}),p))},connect(e){let o=G(e);return new Promise((n,a)=>{let s=setTimeout(()=>{a(new Error("Failed to load Felt map")),clearInterval(m)},5e3),i=new MessageChannel,m=setInterval(()=>{e.postMessage({type:"felt.ready"},"*",[i.port2])},100);i.port1.onmessage=y=>{y.data===!0&&(clearInterval(m),clearTimeout(s),i.port1.close(),i.port2.close(),n(o))}})}},k=Object.entries;0&&(module.exports={Felt});
package/dist/client.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { E as Element, G as GeoJsonGeometry, a as GetElementsConstraint, b as ElementGroup, c as GetElementGroupsConstraint, S as SetVisibilityRequest, d as ElementChangeCallbackParams, e as ElementGroupChangeCallbackParams, f as ElementCreate, g as ElementUpdate, M as MapInteractionEvent, h as MapDetails, i as EntityNode, F as FeatureSelection, T as ToolType, I as InputToolSettings, C as ConfigurableToolType, j as ToolSettingsMap, k as ToolSettingsChangeEvent, z as zInfer, l as SortConfig, V as ViewportState, m as SetViewportCenterZoomParams, n as ViewportConstraints, o as ViewportFitBoundsParams, L as LayersController, p as ViewportCenterZoom } from './types-B241Rd9q.cjs';
2
- export { aF as AggregationConfig, aG as AggregationMethod, q as CircleElementCreate, r as CircleElementRead, s as CircleElementUpdate, b4 as CircleToolSettings, a1 as CreateLayersFromGeoJsonParams, a2 as DataOnlyLayer, aO as ElementGroupNode, aP as ElementNode, aQ as FeatureNode, aT as FeltBoundary, a3 as FeltTiledVectorSource, aU as FeltZoom, az as FilterExpression, aA as FilterLogicGate, aB as FilterTernary, aC as Filters, a4 as GeoJsonDataVectorSource, aV as GeoJsonFeature, a5 as GeoJsonFileVectorSource, aW as GeoJsonProperties, a6 as GeoJsonUrlVectorSource, aD as GeometryFilter, aH as GetLayerCalculationParams, aI as GetLayerCategoriesGroup, aJ as GetLayerCategoriesParams, a7 as GetLayerGroupsConstraint, aK as GetLayerHistogramBin, aL as GetLayerHistogramParams, a8 as GetLayersConstraint, a9 as GetRenderedFeaturesConstraint, H as HighlighterElementCreate, t as HighlighterElementRead, u as HighlighterElementUpdate, b5 as HighlighterToolSettings, v as ImageElementCreate, w as ImageElementRead, x as ImageElementUpdate, aX as LatLng, aa as Layer, ab as LayerChangeCallbackParams, ac as LayerCommon, ap as LayerFeature, aE as LayerFilters, ad as LayerGroup, ae as LayerGroupChangeCallbackParams, aR as LayerGroupNode, aS as LayerNode, af as LayerProcessingStatus, ar as LayerSchema, as as LayerSchemaAttribute, at as LayerSchemaBooleanAttribute, au as LayerSchemaCommonAttribute, av as LayerSchemaDateAttribute, aw as LayerSchemaDateTimeAttribute, ax as LayerSchemaNumericAttribute, ay as LayerSchemaTextAttribute, ag as LegendItem, ah as LegendItemChangeCallbackParams, ai as LegendItemIdentifier, aj as LegendItemsConstraint, aY as LineStringGeometry, b6 as LineToolSettings, y as LinkElementRead, aZ as LngLatTuple, A as MarkerElementCreate, B as MarkerElementRead, D as MarkerElementUpdate, b7 as MarkerToolSettings, aM as MultiAggregationConfig, a_ as MultiLineStringGeometry, a$ as MultiPointGeometry, b0 as MultiPolygonGeometry, N as NoteElementCreate, J as NoteElementRead, K as NoteElementUpdate, b8 as NoteToolSettings, P as PathElementCreate, O as PathElementRead, Q as PathElementUpdate, b9 as PinToolSettings, R as PlaceElementCreate, U as PlaceElementRead, W as PlaceElementUpdate, ba as PlaceFrame, bb as PlaceSymbol, b1 as PointGeometry, X as PolygonElementCreate, Y as PolygonElementRead, Z as PolygonElementUpdate, b2 as PolygonGeometry, bc as PolygonToolSettings, ak as RasterBand, al as RasterLayer, am as RasterLayerSource, aq as RasterValue, bd as RouteToolSettings, b3 as SortDirection, _ as TextElementCreate, $ as TextElementRead, a0 as TextElementUpdate, be as TextToolSettings, an as UpdateLayerParams, aN as ValueConfiguration, ao as VectorLayer } from './types-B241Rd9q.cjs';
1
+ import { E as Element, G as GeoJsonGeometry, a as GetElementsConstraint, b as ElementGroup, c as GetElementGroupsConstraint, S as SetVisibilityRequest, d as ElementChangeCallbackParams, e as ElementGroupChangeCallbackParams, f as ElementCreate, g as ElementUpdate, M as MapInteractionEvent, h as MapDetails, i as EntityNode, F as FeatureSelection, T as ToolType, I as InputToolSettings, C as ConfigurableToolType, j as ToolSettingsMap, k as ToolSettingsChangeEvent, z as zInfer, l as SortConfig, V as ViewportState, m as SetViewportCenterZoomParams, n as ViewportConstraints, o as ViewportFitBoundsParams, L as LayersController, p as ViewportCenterZoom } from './types-0PFYQhMS.cjs';
2
+ export { aH as AggregationConfig, aI as AggregationMethod, q as CircleElementCreate, r as CircleElementRead, s as CircleElementUpdate, b6 as CircleToolSettings, a1 as CreateLayersFromGeoJsonParams, a2 as DataOnlyLayer, aQ as ElementGroupNode, aR as ElementNode, aS as FeatureNode, aV as FeltBoundary, a3 as FeltTiledVectorSource, aW as FeltZoom, az as FilterExpression, aA as FilterLogicGate, aB as FilterTernary, aC as Filters, a4 as GeoJsonDataVectorSource, aX as GeoJsonFeature, a5 as GeoJsonFileVectorSource, aY as GeoJsonProperties, a6 as GeoJsonUrlVectorSource, aD as GeometryFilter, aJ as GetLayerCalculationParams, aK as GetLayerCategoriesGroup, aL as GetLayerCategoriesParams, a7 as GetLayerGroupsConstraint, aM as GetLayerHistogramBin, aN as GetLayerHistogramParams, a8 as GetLayersConstraint, a9 as GetRenderedFeaturesConstraint, H as HighlighterElementCreate, t as HighlighterElementRead, u as HighlighterElementUpdate, b7 as HighlighterToolSettings, v as ImageElementCreate, w as ImageElementRead, x as ImageElementUpdate, aZ as LatLng, aa as Layer, aF as LayerBoundaries, aG as LayerBoundary, ab as LayerChangeCallbackParams, ac as LayerCommon, ap as LayerFeature, aE as LayerFilters, ad as LayerGroup, ae as LayerGroupChangeCallbackParams, aT as LayerGroupNode, aU as LayerNode, af as LayerProcessingStatus, ar as LayerSchema, as as LayerSchemaAttribute, at as LayerSchemaBooleanAttribute, au as LayerSchemaCommonAttribute, av as LayerSchemaDateAttribute, aw as LayerSchemaDateTimeAttribute, ax as LayerSchemaNumericAttribute, ay as LayerSchemaTextAttribute, ag as LegendItem, ah as LegendItemChangeCallbackParams, ai as LegendItemIdentifier, aj as LegendItemsConstraint, a_ as LineStringGeometry, b8 as LineToolSettings, y as LinkElementRead, a$ as LngLatTuple, A as MarkerElementCreate, B as MarkerElementRead, D as MarkerElementUpdate, b9 as MarkerToolSettings, aO as MultiAggregationConfig, b0 as MultiLineStringGeometry, b1 as MultiPointGeometry, b2 as MultiPolygonGeometry, N as NoteElementCreate, J as NoteElementRead, K as NoteElementUpdate, ba as NoteToolSettings, P as PathElementCreate, O as PathElementRead, Q as PathElementUpdate, bb as PinToolSettings, R as PlaceElementCreate, U as PlaceElementRead, W as PlaceElementUpdate, bc as PlaceFrame, bd as PlaceSymbol, b3 as PointGeometry, X as PolygonElementCreate, Y as PolygonElementRead, Z as PolygonElementUpdate, b4 as PolygonGeometry, be as PolygonToolSettings, ak as RasterBand, al as RasterLayer, am as RasterLayerSource, aq as RasterValue, bf as RouteToolSettings, b5 as SortDirection, _ as TextElementCreate, $ as TextElementRead, a0 as TextElementUpdate, bg as TextToolSettings, an as UpdateLayerParams, aP as ValueConfiguration, ao as VectorLayer } from './types-0PFYQhMS.cjs';
3
3
  import { z } from 'zod';
4
4
 
5
5
  /**
package/dist/client.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { E as Element, G as GeoJsonGeometry, a as GetElementsConstraint, b as ElementGroup, c as GetElementGroupsConstraint, S as SetVisibilityRequest, d as ElementChangeCallbackParams, e as ElementGroupChangeCallbackParams, f as ElementCreate, g as ElementUpdate, M as MapInteractionEvent, h as MapDetails, i as EntityNode, F as FeatureSelection, T as ToolType, I as InputToolSettings, C as ConfigurableToolType, j as ToolSettingsMap, k as ToolSettingsChangeEvent, z as zInfer, l as SortConfig, V as ViewportState, m as SetViewportCenterZoomParams, n as ViewportConstraints, o as ViewportFitBoundsParams, L as LayersController, p as ViewportCenterZoom } from './types-B241Rd9q.js';
2
- export { aF as AggregationConfig, aG as AggregationMethod, q as CircleElementCreate, r as CircleElementRead, s as CircleElementUpdate, b4 as CircleToolSettings, a1 as CreateLayersFromGeoJsonParams, a2 as DataOnlyLayer, aO as ElementGroupNode, aP as ElementNode, aQ as FeatureNode, aT as FeltBoundary, a3 as FeltTiledVectorSource, aU as FeltZoom, az as FilterExpression, aA as FilterLogicGate, aB as FilterTernary, aC as Filters, a4 as GeoJsonDataVectorSource, aV as GeoJsonFeature, a5 as GeoJsonFileVectorSource, aW as GeoJsonProperties, a6 as GeoJsonUrlVectorSource, aD as GeometryFilter, aH as GetLayerCalculationParams, aI as GetLayerCategoriesGroup, aJ as GetLayerCategoriesParams, a7 as GetLayerGroupsConstraint, aK as GetLayerHistogramBin, aL as GetLayerHistogramParams, a8 as GetLayersConstraint, a9 as GetRenderedFeaturesConstraint, H as HighlighterElementCreate, t as HighlighterElementRead, u as HighlighterElementUpdate, b5 as HighlighterToolSettings, v as ImageElementCreate, w as ImageElementRead, x as ImageElementUpdate, aX as LatLng, aa as Layer, ab as LayerChangeCallbackParams, ac as LayerCommon, ap as LayerFeature, aE as LayerFilters, ad as LayerGroup, ae as LayerGroupChangeCallbackParams, aR as LayerGroupNode, aS as LayerNode, af as LayerProcessingStatus, ar as LayerSchema, as as LayerSchemaAttribute, at as LayerSchemaBooleanAttribute, au as LayerSchemaCommonAttribute, av as LayerSchemaDateAttribute, aw as LayerSchemaDateTimeAttribute, ax as LayerSchemaNumericAttribute, ay as LayerSchemaTextAttribute, ag as LegendItem, ah as LegendItemChangeCallbackParams, ai as LegendItemIdentifier, aj as LegendItemsConstraint, aY as LineStringGeometry, b6 as LineToolSettings, y as LinkElementRead, aZ as LngLatTuple, A as MarkerElementCreate, B as MarkerElementRead, D as MarkerElementUpdate, b7 as MarkerToolSettings, aM as MultiAggregationConfig, a_ as MultiLineStringGeometry, a$ as MultiPointGeometry, b0 as MultiPolygonGeometry, N as NoteElementCreate, J as NoteElementRead, K as NoteElementUpdate, b8 as NoteToolSettings, P as PathElementCreate, O as PathElementRead, Q as PathElementUpdate, b9 as PinToolSettings, R as PlaceElementCreate, U as PlaceElementRead, W as PlaceElementUpdate, ba as PlaceFrame, bb as PlaceSymbol, b1 as PointGeometry, X as PolygonElementCreate, Y as PolygonElementRead, Z as PolygonElementUpdate, b2 as PolygonGeometry, bc as PolygonToolSettings, ak as RasterBand, al as RasterLayer, am as RasterLayerSource, aq as RasterValue, bd as RouteToolSettings, b3 as SortDirection, _ as TextElementCreate, $ as TextElementRead, a0 as TextElementUpdate, be as TextToolSettings, an as UpdateLayerParams, aN as ValueConfiguration, ao as VectorLayer } from './types-B241Rd9q.js';
1
+ import { E as Element, G as GeoJsonGeometry, a as GetElementsConstraint, b as ElementGroup, c as GetElementGroupsConstraint, S as SetVisibilityRequest, d as ElementChangeCallbackParams, e as ElementGroupChangeCallbackParams, f as ElementCreate, g as ElementUpdate, M as MapInteractionEvent, h as MapDetails, i as EntityNode, F as FeatureSelection, T as ToolType, I as InputToolSettings, C as ConfigurableToolType, j as ToolSettingsMap, k as ToolSettingsChangeEvent, z as zInfer, l as SortConfig, V as ViewportState, m as SetViewportCenterZoomParams, n as ViewportConstraints, o as ViewportFitBoundsParams, L as LayersController, p as ViewportCenterZoom } from './types-0PFYQhMS.js';
2
+ export { aH as AggregationConfig, aI as AggregationMethod, q as CircleElementCreate, r as CircleElementRead, s as CircleElementUpdate, b6 as CircleToolSettings, a1 as CreateLayersFromGeoJsonParams, a2 as DataOnlyLayer, aQ as ElementGroupNode, aR as ElementNode, aS as FeatureNode, aV as FeltBoundary, a3 as FeltTiledVectorSource, aW as FeltZoom, az as FilterExpression, aA as FilterLogicGate, aB as FilterTernary, aC as Filters, a4 as GeoJsonDataVectorSource, aX as GeoJsonFeature, a5 as GeoJsonFileVectorSource, aY as GeoJsonProperties, a6 as GeoJsonUrlVectorSource, aD as GeometryFilter, aJ as GetLayerCalculationParams, aK as GetLayerCategoriesGroup, aL as GetLayerCategoriesParams, a7 as GetLayerGroupsConstraint, aM as GetLayerHistogramBin, aN as GetLayerHistogramParams, a8 as GetLayersConstraint, a9 as GetRenderedFeaturesConstraint, H as HighlighterElementCreate, t as HighlighterElementRead, u as HighlighterElementUpdate, b7 as HighlighterToolSettings, v as ImageElementCreate, w as ImageElementRead, x as ImageElementUpdate, aZ as LatLng, aa as Layer, aF as LayerBoundaries, aG as LayerBoundary, ab as LayerChangeCallbackParams, ac as LayerCommon, ap as LayerFeature, aE as LayerFilters, ad as LayerGroup, ae as LayerGroupChangeCallbackParams, aT as LayerGroupNode, aU as LayerNode, af as LayerProcessingStatus, ar as LayerSchema, as as LayerSchemaAttribute, at as LayerSchemaBooleanAttribute, au as LayerSchemaCommonAttribute, av as LayerSchemaDateAttribute, aw as LayerSchemaDateTimeAttribute, ax as LayerSchemaNumericAttribute, ay as LayerSchemaTextAttribute, ag as LegendItem, ah as LegendItemChangeCallbackParams, ai as LegendItemIdentifier, aj as LegendItemsConstraint, a_ as LineStringGeometry, b8 as LineToolSettings, y as LinkElementRead, a$ as LngLatTuple, A as MarkerElementCreate, B as MarkerElementRead, D as MarkerElementUpdate, b9 as MarkerToolSettings, aO as MultiAggregationConfig, b0 as MultiLineStringGeometry, b1 as MultiPointGeometry, b2 as MultiPolygonGeometry, N as NoteElementCreate, J as NoteElementRead, K as NoteElementUpdate, ba as NoteToolSettings, P as PathElementCreate, O as PathElementRead, Q as PathElementUpdate, bb as PinToolSettings, R as PlaceElementCreate, U as PlaceElementRead, W as PlaceElementUpdate, bc as PlaceFrame, bd as PlaceSymbol, b3 as PointGeometry, X as PolygonElementCreate, Y as PolygonElementRead, Z as PolygonElementUpdate, b4 as PolygonGeometry, be as PolygonToolSettings, ak as RasterBand, al as RasterLayer, am as RasterLayerSource, aq as RasterValue, bf as RouteToolSettings, b5 as SortDirection, _ as TextElementCreate, $ as TextElementRead, a0 as TextElementUpdate, bg as TextToolSettings, an as UpdateLayerParams, aP as ValueConfiguration, ao as VectorLayer } from './types-0PFYQhMS.js';
3
3
  import { z } from 'zod';
4
4
 
5
5
  /**
package/dist/client.js CHANGED
@@ -1 +1 @@
1
- function r(e,a){return o=>{let n=new MessageChannel,l=o.handler,s="options"in o?o.options:void 0,m=crypto.randomUUID();return e.postMessage({type:"felt.addListener",event:s?{eventName:a,id:m,options:s}:{eventName:a,id:m}},"*",[n.port2]),n.port1.onmessage=g=>{c(g)||l(g.data)},()=>{n.port1.onmessage=null,n.port1.close(),n.port2.close(),e.postMessage({type:"felt.removeListener",id:m},"*")}}}function t(e,a,o){return async n=>{let l=new MessageChannel,s=n&&o?await o(n):n;return e.postMessage({type:a,params:s},"*",[l.port2]),new Promise((m,g)=>{l.port1.onmessage=y=>{c(y)?g(new Error(y.data.__error__)):m(y.data),l.port1.close(),l.port2.close()}})}}function c(e){return e.data&&typeof e.data=="object"&&"__error__"in e.data}var u=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"),onElementCreate:r(e,"onElementCreate"),onElementCreateEnd:r(e,"onElementCreateEnd"),onElementDelete:r(e,"onElementDelete"),onElementGroupChange:r(e,"onElementGroupChange"),createElement:t(e,"createElement"),updateElement:t(e,"updateElement"),deleteElement:t(e,"deleteElement")});var C=e=>({onPointerClick:r(e,"onPointerClick"),onPointerMove:r(e,"onPointerMove")});var h=e=>({getLayer:t(e,"getLayer"),getLayers:t(e,"getLayers"),setLayerVisibility:t(e,"setLayerVisibility"),setLayerStyle:t(e,"setLayerStyle"),setLayerLegendVisibility:t(e,"setLayerLegendVisibility"),onLayerChange:r(e,"onLayerChange"),createLayersFromGeoJson:t(e,"createLayersFromGeoJson",L),updateLayer:t(e,"updateLayer",L),deleteLayer:t(e,"deleteLayer"),getLayerGroup:t(e,"getLayerGroup"),getLayerGroups:t(e,"getLayerGroups"),setLayerGroupVisibility:t(e,"setLayerGroupVisibility"),setLayerGroupLegendVisibility:t(e,"setLayerGroupLegendVisibility"),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"),onLayerFiltersChange:r(e,"onLayerFiltersChange"),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"),getLayerSchema:t(e,"getLayerSchema")});async function L(e){let{source:a}=e;return a&&a.type==="geoJsonFile"?{...e,source:{type:"geoJsonData",data:JSON.parse(await a.file.text())}}:e}var T=e=>({getMapDetails:t(e,"getMapDetails")});var P=e=>({onSelectionChange:r(e,"onSelectionChange"),getSelection:t(e,"getSelection"),selectFeature:t(e,"selectFeature"),clearSelection:t(e,"clearSelection")});var E=e=>({setTool:t(e,"setTool"),getTool:t(e,"getTool"),onToolChange:r(e,"onToolChange"),setToolSettings:t(e,"setToolSettings"),getToolSettings:t(e,"getToolSettings"),onToolSettingsChange:r(e,"onToolSettingsChange")});var v=e=>({updateUiControls:t(e,"updateUiControls"),setOnMapInteractionsUi:t(e,"setOnMapInteractionsUi"),showLayerDataTable:t(e,"showLayerDataTable"),hideLayerDataTable:t(e,"hideLayerDataTable")});var F=e=>({getViewport:t(e,"getViewport"),setViewport:t(e,"setViewport"),getViewportConstraints:t(e,"getViewportConstraints"),setViewportConstraints:t(e,"setViewportConstraints"),fitViewportToBounds:t(e,"fitViewportToBounds"),onViewportMove:r(e,"onViewportMove"),onViewportMoveEnd:r(e,"onViewportMoveEnd"),onMapIdle:r(e,"onMapIdle")});function M(e){return{iframe:null,...F(e),...v(e),...h(e),...u(e),...P(e),...C(e),...E(e),...T(e)}}var G={embed(e,a,o){let n={uiControls:{showLegend:!0,cooperativeGestures:!0,fullScreenButton:!0,geolocation:!1,zoomControls:!0,scaleBar:!0},initialViewport:void 0,origin:"https://felt.com"},l=o?.origin??n.origin,s=new URL(`${l}/embed/map/${a}`),m={showLegend:"legend",cooperativeGestures:"cooperativeGestures",fullScreenButton:"link",geolocation:"geolocation",zoomControls:"zoomControls",scaleBar:"scaleBar"},g={...n.uiControls,...o?.uiControls};for(let[p,d]of S(g))d!=null&&s.searchParams.set(m[p],d?"1":"0");if(o?.token&&s.searchParams.set("token",o.token),o?.initialViewport){let p=o.initialViewport;s.searchParams.set("loc",`${p.center.latitude},${p.center.longitude},${p.zoom}z`)}let y=e.tagName==="IFRAME",i=y?e:e.ownerDocument.createElement("iframe");return i.src=s.toString(),y||(i.style.width="100%",i.style.height="100%",i.style.border="none",i.style.margin="0",e.appendChild(i)),i.referrerPolicy="strict-origin-when-cross-origin",new Promise((p,d)=>{i.addEventListener("load",()=>{i.contentWindow==null?d(new Error("Failed to load Felt map")):p(i.contentWindow)},{once:!0})}).then(G.connect).then(p=>(Object.defineProperties(p,{iframe:{value:i,writable:!1,configurable:!1}}),p))},connect(e){let a=M(e);return new Promise((o,n)=>{let l=setTimeout(()=>{n(new Error("Failed to load Felt map")),clearInterval(m)},5e3),s=new MessageChannel,m=setInterval(()=>{e.postMessage({type:"felt.ready"},"*",[s.port2])},100);s.port1.onmessage=g=>{g.data===!0&&(clearInterval(m),clearTimeout(l),s.port1.close(),s.port2.close(),o(a))}})}},S=Object.entries;export{G as Felt};
1
+ function r(e,s){return o=>{let n=new MessageChannel,l=o.handler,a="options"in o?o.options:void 0,m=crypto.randomUUID();return e.postMessage({type:"felt.addListener",event:a?{eventName:s,id:m,options:a}:{eventName:s,id:m}},"*",[n.port2]),n.port1.onmessage=y=>{u(y)||l(y.data)},()=>{n.port1.onmessage=null,n.port1.close(),n.port2.close(),e.postMessage({type:"felt.removeListener",id:m},"*")}}}function t(e,s,o){return async n=>{let l=new MessageChannel,a=n&&o?await o(n):n;return e.postMessage({type:s,params:a},"*",[l.port2]),new Promise((m,y)=>{l.port1.onmessage=g=>{u(g)?y(new Error(g.data.__error__)):m(g.data),l.port1.close(),l.port2.close()}})}}function u(e){return e.data&&typeof e.data=="object"&&"__error__"in e.data}var c=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"),onElementCreate:r(e,"onElementCreate"),onElementCreateEnd:r(e,"onElementCreateEnd"),onElementDelete:r(e,"onElementDelete"),onElementGroupChange:r(e,"onElementGroupChange"),createElement:t(e,"createElement"),updateElement:t(e,"updateElement"),deleteElement:t(e,"deleteElement")});var C=e=>({onPointerClick:r(e,"onPointerClick"),onPointerMove:r(e,"onPointerMove")});var h=e=>({getLayer:t(e,"getLayer"),getLayers:t(e,"getLayers"),setLayerVisibility:t(e,"setLayerVisibility"),setLayerStyle:t(e,"setLayerStyle"),setLayerLegendVisibility:t(e,"setLayerLegendVisibility"),onLayerChange:r(e,"onLayerChange"),createLayersFromGeoJson:t(e,"createLayersFromGeoJson",L),updateLayer:t(e,"updateLayer",L),deleteLayer:t(e,"deleteLayer"),getLayerGroup:t(e,"getLayerGroup"),getLayerGroups:t(e,"getLayerGroups"),setLayerGroupVisibility:t(e,"setLayerGroupVisibility"),setLayerGroupLegendVisibility:t(e,"setLayerGroupLegendVisibility"),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"),onLayerFiltersChange:r(e,"onLayerFiltersChange"),getLayerBoundaries:t(e,"getLayerBoundaries"),setLayerBoundary:t(e,"setLayerBoundary"),onLayerBoundariesChange:r(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"),getLayerSchema:t(e,"getLayerSchema")});async function L(e){let{source:s}=e;return s&&s.type==="geoJsonFile"?{...e,source:{type:"geoJsonData",data:JSON.parse(await s.file.text())}}:e}var P=e=>({getMapDetails:t(e,"getMapDetails")});var T=e=>({onSelectionChange:r(e,"onSelectionChange"),getSelection:t(e,"getSelection"),selectFeature:t(e,"selectFeature"),clearSelection:t(e,"clearSelection")});var E=e=>({setTool:t(e,"setTool"),getTool:t(e,"getTool"),onToolChange:r(e,"onToolChange"),setToolSettings:t(e,"setToolSettings"),getToolSettings:t(e,"getToolSettings"),onToolSettingsChange:r(e,"onToolSettingsChange")});var v=e=>({updateUiControls:t(e,"updateUiControls"),setOnMapInteractionsUi:t(e,"setOnMapInteractionsUi"),showLayerDataTable:t(e,"showLayerDataTable"),hideLayerDataTable:t(e,"hideLayerDataTable")});var F=e=>({getViewport:t(e,"getViewport"),setViewport:t(e,"setViewport"),getViewportConstraints:t(e,"getViewportConstraints"),setViewportConstraints:t(e,"setViewportConstraints"),fitViewportToBounds:t(e,"fitViewportToBounds"),onViewportMove:r(e,"onViewportMove"),onViewportMoveEnd:r(e,"onViewportMoveEnd"),onMapIdle:r(e,"onMapIdle")});function M(e){return{iframe:null,...F(e),...v(e),...h(e),...c(e),...T(e),...C(e),...E(e),...P(e)}}var G={embed(e,s,o){let n={uiControls:{showLegend:!0,cooperativeGestures:!0,fullScreenButton:!0,geolocation:!1,zoomControls:!0,scaleBar:!0},initialViewport:void 0,origin:"https://felt.com"},l=o?.origin??n.origin,a=new URL(`${l}/embed/map/${s}`),m={showLegend:"legend",cooperativeGestures:"cooperativeGestures",fullScreenButton:"link",geolocation:"geolocation",zoomControls:"zoomControls",scaleBar:"scaleBar"},y={...n.uiControls,...o?.uiControls};for(let[p,d]of S(y))d!=null&&a.searchParams.set(m[p],d?"1":"0");if(o?.token&&a.searchParams.set("token",o.token),o?.initialViewport){let p=o.initialViewport;a.searchParams.set("loc",`${p.center.latitude},${p.center.longitude},${p.zoom}z`)}let g=e.tagName==="IFRAME",i=g?e:e.ownerDocument.createElement("iframe");return i.src=a.toString(),g||(i.style.width="100%",i.style.height="100%",i.style.border="none",i.style.margin="0",e.appendChild(i)),i.referrerPolicy="strict-origin-when-cross-origin",new Promise((p,d)=>{i.addEventListener("load",()=>{i.contentWindow==null?d(new Error("Failed to load Felt map")):p(i.contentWindow)},{once:!0})}).then(G.connect).then(p=>(Object.defineProperties(p,{iframe:{value:i,writable:!1,configurable:!1}}),p))},connect(e){let s=M(e);return new Promise((o,n)=>{let l=setTimeout(()=>{n(new Error("Failed to load Felt map")),clearInterval(m)},5e3),a=new MessageChannel,m=setInterval(()=>{e.postMessage({type:"felt.ready"},"*",[a.port2])},100);a.port1.onmessage=y=>{y.data===!0&&(clearInterval(m),clearTimeout(l),a.port1.close(),a.port2.close(),o(s))}})}},S=Object.entries;export{G as Felt};
package/dist/handler.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var oe=Object.defineProperty;var lt=Object.getOwnPropertyDescriptor;var pt=Object.getOwnPropertyNames;var mt=Object.prototype.hasOwnProperty;var ct=(r,l)=>{for(var T in l)oe(r,T,{get:l[T],enumerable:!0})},yt=(r,l,T,P)=>{if(l&&typeof l=="object"||typeof l=="function")for(let C of pt(l))!mt.call(r,C)&&C!==T&&oe(r,C,{get:()=>l[C],enumerable:!(P=lt(l,C))||P.enumerable});return r};var gt=r=>yt(oe({},"__esModule",{value:!0}),r);var dr={};ct(dr,{createMessageHandler:()=>sr});module.exports=gt(dr);var y=require("zod");var d=require("zod");var f=require("zod");function t(r,l){return f.z.strictObject({type:f.z.literal(r),params:l})}function S(r,l){return f.z.strictObject({eventName:f.z.literal(r),id:f.z.string(),options:l})}function p(r){return f.z.strictObject({eventName:f.z.literal(r),id:f.z.string()})}var s=require("zod"),J=s.z.number(),B=s.z.number(),Z=s.z.object({latitude:B,longitude:J}),G=s.z.tuple([J,B]),v=s.z.object({type:s.z.literal("Polygon"),coordinates:s.z.array(s.z.array(G).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"))}),q=s.z.object({type:s.z.literal("MultiPolygon"),coordinates:s.z.array(v.shape.coordinates)}),dt=s.z.object({type:s.z.literal("LineString"),coordinates:s.z.array(G).min(2)}),w=s.z.object({type:s.z.literal("MultiLineString"),coordinates:s.z.array(dt.shape.coordinates)}),fe=s.z.number().min(1).max(23),x=s.z.tuple([J,B,J,B]),E=s.z.object({show:s.z.array(s.z.string()).optional(),hide:s.z.array(s.z.string()).optional()}),ut=s.z.enum(["asc","desc"]),W=s.z.object({attribute:s.z.string(),direction:ut});var e=require("zod");var h=e.z.object({id:e.z.string(),groupId:e.z.string().nullable(),color:e.z.string(),name:e.z.string().nullable(),description:e.z.string().nullable(),attributes:e.z.record(e.z.string(),e.z.unknown()),interaction:e.z.enum(["default","locked"]).optional()}),$=e.z.object({imageUrl:e.z.string().nullable()}),ae=e.z.object({strokeOpacity:e.z.number(),strokeWidth:e.z.number(),strokeStyle:e.z.enum(["solid","dashed","dotted"])}),ht=e.z.enum(["meter","kilometer","foot","mile"]),_=h.extend($.shape).extend({type:e.z.literal("Place"),coordinates:G,symbol:e.z.string(),frame:e.z.enum(["frame-circle","frame-square"]).nullable(),hideLabel:e.z.boolean()}),U=h.extend($.shape).extend(ae.shape).extend({type:e.z.literal("Path"),coordinates:w.shape.coordinates,distanceMarker:e.z.boolean(),routingMode:e.z.enum(["driving","cycling","walking","flying"]).nullable(),endCaps:e.z.boolean()}),O=h.extend($.shape).extend(ae.shape).extend({type:e.z.literal("Polygon"),coordinates:v.shape.coordinates,fillOpacity:e.z.number().min(0).max(1),areaMarker:e.z.boolean()}),Q=h.extend($.shape).extend(ae.shape).extend({type:e.z.literal("Circle"),center:G,radius:e.z.number(),radiusMarker:e.z.boolean(),radiusDisplayAngle:e.z.number(),radiusDisplayUnit:ht.nullable(),fillOpacity:e.z.number().min(0).max(1)}),j=h.extend({type:e.z.literal("Marker"),coordinates:w.shape.coordinates,opacity:e.z.number().min(0).max(1),size:e.z.number().min(0).max(100),zoom:e.z.number().min(0).max(23)}),R=h.extend({type:e.z.literal("Highlighter"),coordinates:q.shape.coordinates,renderHoles:e.z.boolean(),opacity:e.z.number().min(0).max(1)}),Se=e.z.object({position:G,rotation:e.z.number(),scale:e.z.number(),zoom:e.z.number().min(0).max(23),text:e.z.string(),align:e.z.enum(["left","center","right"]),style:e.z.enum(["italic","light","regular","caps"]),name:e.z.string()}),re=h.extend(Se.shape).extend({type:e.z.literal("Text")}),ne=h.extend(Se.shape).extend({type:e.z.literal("Note"),widthScale:e.z.number().min(0)}),N=h.extend({type:e.z.literal("Image"),coordinates:w.shape.coordinates,imageUrl:e.z.string(),opacity:e.z.number().min(0).max(1)}).omit({color:!0}),ft=h.extend({type:e.z.literal("Link"),coordinates:w.shape.coordinates,url:e.z.string()}),F={type:!0,coordinates:!0},L={id:!0},ie=_.partial().extend(_.pick(F).shape).omit(L),K=U.partial().extend(U.pick(F).shape).omit(L),se=O.partial().extend(O.pick(F).shape).omit(L),le=Q.partial().extend(Q.pick({type:!0,center:!0,radius:!0}).shape).omit(L),pe=j.partial().extend(j.pick(F).shape).omit(L),me=R.partial().extend(R.pick(F).shape).omit(L),ce=re.partial().omit({...L,name:!0,type:!0}).extend({type:e.z.literal("Text"),text:e.z.string()}),ye=ne.partial().omit({...L,name:!0,type:!0}).extend({type:e.z.literal("Note"),text:e.z.string()}),St=N.partial().extend(N.pick({...F,imageUrl:!0}).shape).omit(L),xe=e.z.discriminatedUnion("type",[ie,K,se,le,pe,me,St,ce,ye]);var Lr=U.omit({coordinates:!0}),br=O.omit({coordinates:!0});var Mr=j.omit({coordinates:!0}),Cr=R.omit({coordinates:!0});var Gr=N.omit({coordinates:!0}),Ir=ft.omit({coordinates:!0}),b={type:!0,id:!0},xt=_.partial().extend(_.pick(b).shape),Lt=U.partial().extend(U.pick(b).shape),bt=O.partial().extend(O.pick(b).shape),Mt=Q.partial().extend(Q.pick(b).shape),Ct=j.partial().extend(j.pick(b).shape),Gt=R.partial().extend(R.pick(b).shape),It=re.partial().extend(re.pick(b).shape).omit({name:!0}),Tt=ne.partial().extend(ne.pick(b).shape).omit({name:!0}),Et=N.partial().extend(N.pick(b).shape),Le=e.z.discriminatedUnion("type",[xt,Lt,bt,Mt,Ct,Gt,It,Tt,Et]),be=e.z.object({ids:e.z.array(e.z.string()).optional()}),Me=e.z.object({ids:e.z.array(e.z.string()).optional()});var zt=t("getElement",d.z.string()),Pt=t("getElementGeometry",d.z.string()),Ft=t("getElements",be.optional()),kt=t("getElementGroup",d.z.string()),Vt=t("getElementGroups",Me.optional()),vt=t("setElementGroupVisibility",E),wt=S("onElementChange",d.z.object({id:d.z.string()})),Ut=p("onElementCreate"),Ot=p("onElementCreateEnd"),jt=S("onElementDelete",d.z.object({id:d.z.string()})),Rt=S("onElementGroupChange",d.z.object({id:d.z.string()})),Nt=t("createElement",xe),At=t("updateElement",Le),Dt=t("deleteElement",d.z.string()),Ce={methods:[zt,Pt,Ft,kt,Vt,vt,Nt,At,Dt],listeners:[wt,Ut,Ot,jt,Rt]};var Ht=p("onPointerClick"),Jt=p("onPointerMove"),Ge={methods:null,listeners:[Ht,Jt]};var i=require("zod");var a=require("zod");var Bt=a.z.enum(["in","ni"]),Zt=a.z.enum(["lt","gt","le","ge","eq","ne","cn","nc","is","isnt"]),wr=a.z.enum(["and","or"]),Ie=a.z.union([a.z.number(),a.z.string(),a.z.boolean(),a.z.null()]),Te=a.z.string().or(a.z.null()),qt=a.z.tuple([Te,Bt,a.z.array(Ie).or(a.z.null())]),Wt=a.z.tuple([Te,Zt,Ie]),ge=a.z.union([qt,Wt]),de=a.z.tuple([a.z.lazy(()=>a.z.union([de,ge,a.z.null(),a.z.boolean()])),a.z.enum(["and","or"]),a.z.lazy(()=>a.z.union([de,ge,a.z.null(),a.z.boolean()]))]),I=a.z.union([de,ge,a.z.null(),a.z.boolean()]),z=a.z.union([x,v,q,a.z.array(G)]);var n=require("zod");var Ee=n.z.enum(["avg","max","min","sum","median"]),_t=n.z.object({method:Ee,attribute:n.z.string()}),Qt=n.z.object({methods:n.z.array(n.z.union([Ee,n.z.literal("count")])),attribute:n.z.string().optional()}),ze=n.z.object({boundary:z.optional(),filters:I.optional(),aggregation:_t.optional()}),Pe=n.z.object({layerId:n.z.string(),attribute:n.z.string(),limit:n.z.number().optional(),boundary:z.optional(),filters:I.optional(),values:ze.optional()}),jr=n.z.object({key:n.z.union([n.z.number(),n.z.string(),n.z.boolean()]),value:n.z.number().nullable()}),$t=n.z.object({type:n.z.literal("equal-intervals"),count:n.z.number()}),Kt=n.z.object({type:n.z.literal("time-interval"),interval:n.z.enum(["hour","day","week","month","year"])}),Fe=n.z.object({layerId:n.z.string(),attribute:n.z.string(),steps:n.z.union([$t,Kt,n.z.array(n.z.number())]),boundary:z.optional(),filters:I.optional(),values:ze.optional()}),Rr=n.z.object({min:n.z.number(),max:n.z.number(),value:n.z.number()}),ke=n.z.object({layerId:n.z.string(),boundary:z.optional(),filters:I.optional(),aggregation:Qt});var o=require("zod");var Dr=o.z.enum(["processing","completed","failed","incomplete"]),Ve=o.z.object({type:o.z.literal("geoJsonUrl"),url:o.z.string().url(),refreshInterval:o.z.number().min(250).max(5*60*1e3).nullable().optional()}),ve=o.z.object({type:o.z.literal("geoJsonData"),data:o.z.object({}).passthrough().or(o.z.instanceof(ArrayBuffer))}),we=o.z.object({type:o.z.literal("geoJsonFile"),file:o.z.instanceof(File)}),Ue=o.z.object({id:o.z.string(),style:o.z.object({}).passthrough().optional(),shownInLegend:o.z.boolean().optional(),name:o.z.string().optional(),caption:o.z.string().optional(),description:o.z.string().optional(),bounds:x.optional(),source:o.z.union([Ve,ve,we]).optional()}),Oe=o.z.object({ids:o.z.array(o.z.string()).optional()}),je=o.z.object({ids:o.z.array(o.z.string()).optional()}),k=o.z.object({id:o.z.string(),layerId:o.z.string()}),Re=o.z.object({ids:k.array().optional(),layerIds:o.z.string().array().optional()}),Ne=o.z.object({layerIds:o.z.array(o.z.string()).optional(),areaQuery:o.z.union([o.z.object({coordinates:Z}),o.z.object({boundary:x})]).optional()}),Xt=o.z.object({Point:o.z.object({}).passthrough().optional(),Line:o.z.object({}).passthrough().optional(),Polygon:o.z.object({}).passthrough().optional()}),Ae=o.z.object({source:o.z.union([Ve,ve,we]),name:o.z.string(),bounds:x.optional(),caption:o.z.string().optional(),description:o.z.string().optional(),geometryStyles:Xt.optional()});var Yt=t("getLayer",i.z.string()),eo=t("getLayers",Oe.optional()),to=t("setLayerVisibility",E),oo=S("onLayerChange",i.z.object({id:i.z.string()})),ro=t("setLayerStyle",i.z.object({id:i.z.string(),style:i.z.object({}).passthrough()})),no=t("setLayerLegendVisibility",E),ao=t("createLayersFromGeoJson",Ae),io=t("updateLayer",Ue),so=t("deleteLayer",i.z.string()),lo=t("getLayerGroup",i.z.string()),po=t("getLayerGroups",je.optional()),mo=t("setLayerGroupVisibility",E),co=t("setLayerGroupLegendVisibility",E),yo=S("onLayerGroupChange",i.z.object({id:i.z.string()})),go=t("getLegendItem",k),uo=t("getLegendItems",Re.optional()),ho=S("onLegendItemChange",k),fo=t("setLegendItemVisibility",i.z.object({show:k.array().optional(),hide:k.array().optional()})),So=t("getLayerFilters",i.z.string()),xo=t("setLayerFilters",i.z.object({layerId:i.z.string(),filters:I,note:i.z.string().optional()})),Lo=S("onLayerFiltersChange",i.z.object({layerId:i.z.string()})),bo=t("getRenderedFeatures",Ne.optional()),Mo=t("getFeature",i.z.object({id:i.z.string().or(i.z.number()),layerId:i.z.string()})),Co=t("getFeatures",i.z.object({layerId:i.z.string(),filters:I.optional(),sorting:W.optional(),boundary:z.optional(),search:i.z.string().optional(),pagination:i.z.string().optional().nullish()})),Go=t("getGeoJsonFeature",i.z.object({id:i.z.string().or(i.z.number()),layerId:i.z.string()})),Io=t("getCategoryData",Pe),To=t("getHistogramData",Fe),Eo=t("getAggregates",ke),zo=t("getLayerSchema",i.z.string()),De={methods:[Yt,eo,to,ro,no,ao,so,io,lo,po,mo,co,go,uo,fo,So,xo,bo,Mo,Co,Go,Io,To,Eo,zo],listeners:[oo,yo,ho,Lo]};var He=require("zod");var Po=t("getMapDetails",He.z.undefined()),Je={methods:[Po],listeners:[]};var A=require("zod");var M=require("zod"),Be=M.z.object({id:M.z.string().or(M.z.number()),layerId:M.z.string(),showPopup:M.z.boolean().optional(),fitViewport:M.z.boolean().or(M.z.object({maxZoom:M.z.number()})).optional()});var Fo=t("getSelection",A.z.undefined()),ko=p("onSelectionChange"),Vo=t("selectFeature",Be),vo=t("clearSelection",A.z.object({features:A.z.boolean().optional(),elements:A.z.boolean().optional()}).optional()),Ze={methods:[Fo,Vo,vo],listeners:[ko]};var $e=require("zod");var m=require("zod");var qe=["pin","line","route","polygon","circle","marker","highlighter","text","note"],We=m.z.enum([...qe,"link"]),_e=m.z.enum(qe),wo=ie.pick({color:!0,symbol:!0,frame:!0}).extend({afterCreation:m.z.enum(["enter name","add another","select"])}).required(),Uo=K.pick({color:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,distanceMarker:!0}).required(),Oo=K.pick({color:!0,routingMode:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,distanceMarker:!0,endCaps:!0}).required(),jo=se.pick({color:!0,fillOpacity:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,areaMarker:!0}).required(),Ro=le.pick({color:!0,fillOpacity:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,radiusMarker:!0}).required(),No=pe.pick({color:!0,opacity:!0,size:!0}).required(),Ao=me.pick({color:!0,opacity:!0,renderHoles:!0}).extend({size:m.z.number().min(0).max(200)}).required(),Do=ce.pick({color:!0,align:!0,style:!0}).required(),Ho=ye.pick({color:!0,align:!0,style:!0}).required(),Qe=m.z.discriminatedUnion("tool",[wo.partial().extend({tool:m.z.literal("pin")}),Uo.partial().extend({tool:m.z.literal("line")}),Oo.partial().extend({tool:m.z.literal("route")}),jo.partial().extend({tool:m.z.literal("polygon")}),Ro.partial().extend({tool:m.z.literal("circle")}),No.partial().extend({tool:m.z.literal("marker")}),Ao.partial().extend({tool:m.z.literal("highlighter")}),Do.partial().extend({tool:m.z.literal("text")}),Ho.partial().extend({tool:m.z.literal("note")})]);var Jo=t("setTool",We.nullable()),Bo=t("getTool",$e.z.undefined()),Zo=p("onToolChange"),qo=t("setToolSettings",Qe),Wo=t("getToolSettings",_e),_o=p("onToolSettingsChange"),Ke={methods:[Jo,Bo,qo,Wo],listeners:[Zo,_o]};var X=require("zod");var c=require("zod"),Xe=c.z.object({showLegend:c.z.boolean().optional(),cooperativeGestures:c.z.boolean().optional(),fullScreenButton:c.z.boolean().optional(),geolocation:c.z.boolean().optional(),zoomControls:c.z.boolean().optional(),scaleBar:c.z.boolean().optional()}),Ye=c.z.object({featureSelectPanel:c.z.boolean().optional(),featureHoverPanel:c.z.boolean().optional(),elementSelectPanel:c.z.boolean().optional(),linkClickOpen:c.z.boolean().optional(),imageLightboxOpen:c.z.boolean().optional()});var Qo=t("updateUiControls",Xe),$o=t("setOnMapInteractionsUi",Ye),Ko=t("showLayerDataTable",X.z.object({layerId:X.z.string(),sorting:W.optional()}).optional()),Xo=t("hideLayerDataTable",X.z.undefined()),et={methods:[Qo,$o,Ko,Xo],listeners:null};var ue=require("zod");var D=require("zod");var Y=D.z.object({center:Z,zoom:fe}),tt=D.z.object({center:Y.shape.center.optional(),zoom:Y.shape.zoom.optional()}),ot=D.z.object({minZoom:Y.shape.zoom.nullish(),maxZoom:Y.shape.zoom.nullish(),bounds:x.nullish()}).nullable(),rt=D.z.object({bounds:x});var Yo=t("getViewport",ue.z.undefined()),er=t("setViewport",tt),tr=t("getViewportConstraints",ue.z.undefined()),or=t("setViewportConstraints",ot),rr=t("fitViewportToBounds",rt),nr=p("onViewportMove"),ar=p("onViewportMoveEnd"),ir=p("onMapIdle"),nt={methods:[er,Yo,tr,or,rr],listeners:[nr,ar,ir]};var he=[et,nt,De,Ce,Ze,Ge,Ke,Je];function sr(r,l,T){let P=new Map;async function C(u){if(!yr.safeParse(u.data).success){T?.onUnknownMessage?.(u.data);return}let H=st.safeParse(u.data);if(!H.success){T?.onInvalidMessage?.(u.data,H.error),u.ports[0]?.postMessage(at(H.error.message));return}let{data:g}=H;if(g.type==="felt.ready")u.ports[0]?.postMessage(!0);else if(g.type==="felt.addListener"){if(g.event.eventName==="")throw new Error("felt.addListener eventName cannot be empty");let V="options"in g.event?{options:"options"in g.event?g.event.options:void 0,handler:te=>{u.ports[0]?.postMessage(te)}}:{handler:te=>{u.ports[0]?.postMessage(te)}},ee=l.listeners[g.event.eventName](V);P.set(g.event.id,ee)}else if(g.type==="felt.removeListener")P.get(g.id)?.(),P.delete(g.id);else try{let V=l.methods[g.type],ee=await V(g.params);u.ports[0]?.postMessage(ee)}catch(V){u.ports[0]?.postMessage(at(V))}}return r.addEventListener("message",C),()=>{r.removeEventListener("message",C)}}var it={methods:he.map(r=>r.methods??[]).flat(),listeners:he.map(r=>r.listeners??[]).flat()},lr=y.z.discriminatedUnion("eventName",[y.z.strictObject({eventName:y.z.literal("")}),...it.listeners]),pr=y.z.strictObject({type:y.z.literal("felt.addListener"),event:lr}),mr=y.z.strictObject({type:y.z.literal("felt.removeListener"),id:y.z.string()}),cr=y.z.strictObject({type:y.z.literal("felt.ready")}),st=y.z.discriminatedUnion("type",[cr,pr,mr,...it.methods]),yr=y.z.object({type:y.z.enum(st.options.map(r=>r.shape.type.value))});function at(r){return{__error__:gr(r)}}function gr(r){return r instanceof Error?r.message:typeof r=="object"&&r!==null&&"message"in r?String(r.message):typeof r=="string"?r:"Unknown error"}0&&(module.exports={createMessageHandler});
1
+ "use strict";var oe=Object.defineProperty;var lt=Object.getOwnPropertyDescriptor;var pt=Object.getOwnPropertyNames;var mt=Object.prototype.hasOwnProperty;var ct=(r,l)=>{for(var T in l)oe(r,T,{get:l[T],enumerable:!0})},yt=(r,l,T,P)=>{if(l&&typeof l=="object"||typeof l=="function")for(let C of pt(l))!mt.call(r,C)&&C!==T&&oe(r,C,{get:()=>l[C],enumerable:!(P=lt(l,C))||P.enumerable});return r};var gt=r=>yt(oe({},"__esModule",{value:!0}),r);var fr={};ct(fr,{createMessageHandler:()=>mr});module.exports=gt(fr);var y=require("zod");var d=require("zod");var S=require("zod");function t(r,l){return S.z.strictObject({type:S.z.literal(r),params:l})}function h(r,l){return S.z.strictObject({eventName:S.z.literal(r),id:S.z.string(),options:l})}function p(r){return S.z.strictObject({eventName:S.z.literal(r),id:S.z.string()})}var s=require("zod"),J=s.z.number(),Z=s.z.number(),q=s.z.object({latitude:Z,longitude:J}),G=s.z.tuple([J,Z]),w=s.z.object({type:s.z.literal("Polygon"),coordinates:s.z.array(s.z.array(G).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"))}),F=s.z.object({type:s.z.literal("MultiPolygon"),coordinates:s.z.array(w.shape.coordinates)}),dt=s.z.object({type:s.z.literal("LineString"),coordinates:s.z.array(G).min(2)}),U=s.z.object({type:s.z.literal("MultiLineString"),coordinates:s.z.array(dt.shape.coordinates)}),fe=s.z.number().min(1).max(23),L=s.z.tuple([J,Z,J,Z]),E=s.z.object({show:s.z.array(s.z.string()).optional(),hide:s.z.array(s.z.string()).optional()}),ut=s.z.enum(["asc","desc"]),W=s.z.object({attribute:s.z.string(),direction:ut});var e=require("zod");var f=e.z.object({id:e.z.string(),groupId:e.z.string().nullable(),color:e.z.string(),name:e.z.string().nullable(),description:e.z.string().nullable(),attributes:e.z.record(e.z.string(),e.z.unknown()),interaction:e.z.enum(["default","locked"]).optional()}),$=e.z.object({imageUrl:e.z.string().nullable()}),ae=e.z.object({strokeOpacity:e.z.number(),strokeWidth:e.z.number(),strokeStyle:e.z.enum(["solid","dashed","dotted"])}),ht=e.z.enum(["meter","kilometer","foot","mile"]),_=f.extend($.shape).extend({type:e.z.literal("Place"),coordinates:G,symbol:e.z.string(),frame:e.z.enum(["frame-circle","frame-square"]).nullable(),hideLabel:e.z.boolean()}),O=f.extend($.shape).extend(ae.shape).extend({type:e.z.literal("Path"),coordinates:U.shape.coordinates,distanceMarker:e.z.boolean(),routingMode:e.z.enum(["driving","cycling","walking","flying"]).nullable(),endCaps:e.z.boolean()}),j=f.extend($.shape).extend(ae.shape).extend({type:e.z.literal("Polygon"),coordinates:w.shape.coordinates,fillOpacity:e.z.number().min(0).max(1),areaMarker:e.z.boolean()}),Q=f.extend($.shape).extend(ae.shape).extend({type:e.z.literal("Circle"),center:G,radius:e.z.number(),radiusMarker:e.z.boolean(),radiusDisplayAngle:e.z.number(),radiusDisplayUnit:ht.nullable(),fillOpacity:e.z.number().min(0).max(1)}),R=f.extend({type:e.z.literal("Marker"),coordinates:U.shape.coordinates,opacity:e.z.number().min(0).max(1),size:e.z.number().min(0).max(100),zoom:e.z.number().min(0).max(23)}),N=f.extend({type:e.z.literal("Highlighter"),coordinates:F.shape.coordinates,renderHoles:e.z.boolean(),opacity:e.z.number().min(0).max(1)}),Se=e.z.object({position:G,rotation:e.z.number(),scale:e.z.number(),zoom:e.z.number().min(0).max(23),text:e.z.string(),align:e.z.enum(["left","center","right"]),style:e.z.enum(["italic","light","regular","caps"]),name:e.z.string()}),re=f.extend(Se.shape).extend({type:e.z.literal("Text")}),ne=f.extend(Se.shape).extend({type:e.z.literal("Note"),widthScale:e.z.number().min(0)}),A=f.extend({type:e.z.literal("Image"),coordinates:U.shape.coordinates,imageUrl:e.z.string(),opacity:e.z.number().min(0).max(1)}).omit({color:!0}),ft=f.extend({type:e.z.literal("Link"),coordinates:U.shape.coordinates,url:e.z.string()}),k={type:!0,coordinates:!0},x={id:!0},ie=_.partial().extend(_.pick(k).shape).omit(x),K=O.partial().extend(O.pick(k).shape).omit(x),se=j.partial().extend(j.pick(k).shape).omit(x),le=Q.partial().extend(Q.pick({type:!0,center:!0,radius:!0}).shape).omit(x),pe=R.partial().extend(R.pick(k).shape).omit(x),me=N.partial().extend(N.pick(k).shape).omit(x),ce=re.partial().omit({...x,name:!0,type:!0}).extend({type:e.z.literal("Text"),text:e.z.string()}),ye=ne.partial().omit({...x,name:!0,type:!0}).extend({type:e.z.literal("Note"),text:e.z.string()}),St=A.partial().extend(A.pick({...k,imageUrl:!0}).shape).omit(x),Le=e.z.discriminatedUnion("type",[ie,K,se,le,pe,me,St,ce,ye]);var Cr=O.omit({coordinates:!0}),Gr=j.omit({coordinates:!0});var Ir=R.omit({coordinates:!0}),Tr=N.omit({coordinates:!0});var Er=A.omit({coordinates:!0}),zr=ft.omit({coordinates:!0}),b={type:!0,id:!0},Lt=_.partial().extend(_.pick(b).shape),xt=O.partial().extend(O.pick(b).shape),bt=j.partial().extend(j.pick(b).shape),Mt=Q.partial().extend(Q.pick(b).shape),Ct=R.partial().extend(R.pick(b).shape),Gt=N.partial().extend(N.pick(b).shape),It=re.partial().extend(re.pick(b).shape).omit({name:!0}),Tt=ne.partial().extend(ne.pick(b).shape).omit({name:!0}),Et=A.partial().extend(A.pick(b).shape),xe=e.z.discriminatedUnion("type",[Lt,xt,bt,Mt,Ct,Gt,It,Tt,Et]),be=e.z.object({ids:e.z.array(e.z.string()).optional()}),Me=e.z.object({ids:e.z.array(e.z.string()).optional()});var zt=t("getElement",d.z.string()),Pt=t("getElementGeometry",d.z.string()),Ft=t("getElements",be.optional()),kt=t("getElementGroup",d.z.string()),Vt=t("getElementGroups",Me.optional()),vt=t("setElementGroupVisibility",E),wt=h("onElementChange",d.z.object({id:d.z.string()})),Ut=p("onElementCreate"),Ot=p("onElementCreateEnd"),jt=h("onElementDelete",d.z.object({id:d.z.string()})),Rt=h("onElementGroupChange",d.z.object({id:d.z.string()})),Nt=t("createElement",Le),At=t("updateElement",xe),Bt=t("deleteElement",d.z.string()),Ce={methods:[zt,Pt,Ft,kt,Vt,vt,Nt,At,Bt],listeners:[wt,Ut,Ot,jt,Rt]};var Dt=p("onPointerClick"),Ht=p("onPointerMove"),Ge={methods:null,listeners:[Dt,Ht]};var a=require("zod");var i=require("zod");var Jt=i.z.enum(["in","ni"]),Zt=i.z.enum(["lt","gt","le","ge","eq","ne","cn","nc","is","isnt"]),jr=i.z.enum(["and","or"]),Ie=i.z.union([i.z.number(),i.z.string(),i.z.boolean(),i.z.null()]),Te=i.z.string().or(i.z.null()),qt=i.z.tuple([Te,Jt,i.z.array(Ie).or(i.z.null())]),Wt=i.z.tuple([Te,Zt,Ie]),ge=i.z.union([qt,Wt]),de=i.z.tuple([i.z.lazy(()=>i.z.union([de,ge,i.z.null(),i.z.boolean()])),i.z.enum(["and","or"]),i.z.lazy(()=>i.z.union([de,ge,i.z.null(),i.z.boolean()]))]),I=i.z.union([de,ge,i.z.null(),i.z.boolean()]),z=i.z.union([L,w,F,i.z.array(G)]);var n=require("zod");var Ee=n.z.enum(["avg","max","min","sum","median"]),_t=n.z.object({method:Ee,attribute:n.z.string()}),Qt=n.z.object({methods:n.z.array(n.z.union([Ee,n.z.literal("count")])),attribute:n.z.string().optional()}),ze=n.z.object({boundary:z.optional(),filters:I.optional(),aggregation:_t.optional()}),Pe=n.z.object({layerId:n.z.string(),attribute:n.z.string(),limit:n.z.number().optional(),boundary:z.optional(),filters:I.optional(),values:ze.optional()}),Ar=n.z.object({key:n.z.union([n.z.number(),n.z.string(),n.z.boolean()]),value:n.z.number().nullable()}),$t=n.z.object({type:n.z.literal("equal-intervals"),count:n.z.number()}),Kt=n.z.object({type:n.z.literal("time-interval"),interval:n.z.enum(["hour","day","week","month","year"])}),Fe=n.z.object({layerId:n.z.string(),attribute:n.z.string(),steps:n.z.union([$t,Kt,n.z.array(n.z.number())]),boundary:z.optional(),filters:I.optional(),values:ze.optional()}),Br=n.z.object({min:n.z.number(),max:n.z.number(),value:n.z.number()}),ke=n.z.object({layerId:n.z.string(),boundary:z.optional(),filters:I.optional(),aggregation:Qt});var o=require("zod");var Jr=o.z.enum(["processing","completed","failed","incomplete"]),Ve=o.z.object({type:o.z.literal("geoJsonUrl"),url:o.z.string().url(),refreshInterval:o.z.number().min(250).max(5*60*1e3).nullable().optional()}),ve=o.z.object({type:o.z.literal("geoJsonData"),data:o.z.object({}).passthrough().or(o.z.instanceof(ArrayBuffer))}),we=o.z.object({type:o.z.literal("geoJsonFile"),file:o.z.instanceof(File)}),Ue=o.z.object({id:o.z.string(),style:o.z.object({}).passthrough().optional(),shownInLegend:o.z.boolean().optional(),name:o.z.string().optional(),caption:o.z.string().optional(),description:o.z.string().optional(),bounds:L.optional(),source:o.z.union([Ve,ve,we]).optional()}),Oe=o.z.object({ids:o.z.array(o.z.string()).optional()}),je=o.z.object({ids:o.z.array(o.z.string()).optional()}),V=o.z.object({id:o.z.string(),layerId:o.z.string()}),Re=o.z.object({ids:V.array().optional(),layerIds:o.z.string().array().optional()}),Ne=o.z.object({layerIds:o.z.array(o.z.string()).optional(),areaQuery:o.z.union([o.z.object({coordinates:q}),o.z.object({boundary:L})]).optional()}),Xt=o.z.object({Point:o.z.object({}).passthrough().optional(),Line:o.z.object({}).passthrough().optional(),Polygon:o.z.object({}).passthrough().optional()}),Ae=o.z.object({source:o.z.union([Ve,ve,we]),name:o.z.string(),bounds:L.optional(),caption:o.z.string().optional(),description:o.z.string().optional(),geometryStyles:Xt.optional()});var Yt=t("getLayer",a.z.string()),eo=t("getLayers",Oe.optional()),to=t("setLayerVisibility",E),oo=h("onLayerChange",a.z.object({id:a.z.string()})),ro=t("setLayerStyle",a.z.object({id:a.z.string(),style:a.z.object({}).passthrough()})),no=t("setLayerLegendVisibility",E),ao=t("createLayersFromGeoJson",Ae),io=t("updateLayer",Ue),so=t("deleteLayer",a.z.string()),lo=t("getLayerGroup",a.z.string()),po=t("getLayerGroups",je.optional()),mo=t("setLayerGroupVisibility",E),co=t("setLayerGroupLegendVisibility",E),yo=h("onLayerGroupChange",a.z.object({id:a.z.string()})),go=t("getLegendItem",V),uo=t("getLegendItems",Re.optional()),ho=h("onLegendItemChange",V),fo=t("setLegendItemVisibility",a.z.object({show:V.array().optional(),hide:V.array().optional()})),So=t("getLayerFilters",a.z.string()),Lo=t("setLayerFilters",a.z.object({layerId:a.z.string(),filters:I,note:a.z.string().optional()})),xo=h("onLayerFiltersChange",a.z.object({layerId:a.z.string()})),bo=t("getLayerBoundaries",a.z.string()),Mo=t("setLayerBoundary",a.z.object({layerIds:a.z.array(a.z.string()),boundary:F.nullable()})),Co=h("onLayerBoundariesChange",a.z.object({layerId:a.z.string()})),Go=t("getRenderedFeatures",Ne.optional()),Io=t("getFeature",a.z.object({id:a.z.string().or(a.z.number()),layerId:a.z.string()})),To=t("getFeatures",a.z.object({layerId:a.z.string(),filters:I.optional(),sorting:W.optional(),boundary:z.optional(),search:a.z.string().optional(),pagination:a.z.string().optional().nullish()})),Eo=t("getGeoJsonFeature",a.z.object({id:a.z.string().or(a.z.number()),layerId:a.z.string()})),zo=t("getCategoryData",Pe),Po=t("getHistogramData",Fe),Fo=t("getAggregates",ke),ko=t("getLayerSchema",a.z.string()),Be={methods:[Yt,eo,to,ro,no,ao,so,io,lo,po,mo,co,go,uo,fo,So,Lo,bo,Mo,Go,Io,To,Eo,zo,Po,Fo,ko],listeners:[oo,yo,ho,xo,Co]};var De=require("zod");var Vo=t("getMapDetails",De.z.undefined()),He={methods:[Vo],listeners:[]};var B=require("zod");var M=require("zod"),Je=M.z.object({id:M.z.string().or(M.z.number()),layerId:M.z.string(),showPopup:M.z.boolean().optional(),fitViewport:M.z.boolean().or(M.z.object({maxZoom:M.z.number()})).optional()});var vo=t("getSelection",B.z.undefined()),wo=p("onSelectionChange"),Uo=t("selectFeature",Je),Oo=t("clearSelection",B.z.object({features:B.z.boolean().optional(),elements:B.z.boolean().optional()}).optional()),Ze={methods:[vo,Uo,Oo],listeners:[wo]};var $e=require("zod");var m=require("zod");var qe=["pin","line","route","polygon","circle","marker","highlighter","text","note"],We=m.z.enum([...qe,"link"]),_e=m.z.enum(qe),jo=ie.pick({color:!0,symbol:!0,frame:!0}).extend({afterCreation:m.z.enum(["enter name","add another","select"])}).required(),Ro=K.pick({color:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,distanceMarker:!0}).required(),No=K.pick({color:!0,routingMode:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,distanceMarker:!0,endCaps:!0}).required(),Ao=se.pick({color:!0,fillOpacity:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,areaMarker:!0}).required(),Bo=le.pick({color:!0,fillOpacity:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,radiusMarker:!0}).required(),Do=pe.pick({color:!0,opacity:!0,size:!0}).required(),Ho=me.pick({color:!0,opacity:!0,renderHoles:!0}).extend({size:m.z.number().min(0).max(200)}).required(),Jo=ce.pick({color:!0,align:!0,style:!0}).required(),Zo=ye.pick({color:!0,align:!0,style:!0}).required(),Qe=m.z.discriminatedUnion("tool",[jo.partial().extend({tool:m.z.literal("pin")}),Ro.partial().extend({tool:m.z.literal("line")}),No.partial().extend({tool:m.z.literal("route")}),Ao.partial().extend({tool:m.z.literal("polygon")}),Bo.partial().extend({tool:m.z.literal("circle")}),Do.partial().extend({tool:m.z.literal("marker")}),Ho.partial().extend({tool:m.z.literal("highlighter")}),Jo.partial().extend({tool:m.z.literal("text")}),Zo.partial().extend({tool:m.z.literal("note")})]);var qo=t("setTool",We.nullable()),Wo=t("getTool",$e.z.undefined()),_o=p("onToolChange"),Qo=t("setToolSettings",Qe),$o=t("getToolSettings",_e),Ko=p("onToolSettingsChange"),Ke={methods:[qo,Wo,Qo,$o],listeners:[_o,Ko]};var X=require("zod");var c=require("zod"),Xe=c.z.object({showLegend:c.z.boolean().optional(),cooperativeGestures:c.z.boolean().optional(),fullScreenButton:c.z.boolean().optional(),geolocation:c.z.boolean().optional(),zoomControls:c.z.boolean().optional(),scaleBar:c.z.boolean().optional()}),Ye=c.z.object({featureSelectPanel:c.z.boolean().optional(),featureHoverPanel:c.z.boolean().optional(),elementSelectPanel:c.z.boolean().optional(),linkClickOpen:c.z.boolean().optional(),imageLightboxOpen:c.z.boolean().optional()});var Xo=t("updateUiControls",Xe),Yo=t("setOnMapInteractionsUi",Ye),er=t("showLayerDataTable",X.z.object({layerId:X.z.string(),sorting:W.optional()}).optional()),tr=t("hideLayerDataTable",X.z.undefined()),et={methods:[Xo,Yo,er,tr],listeners:null};var ue=require("zod");var D=require("zod");var Y=D.z.object({center:q,zoom:fe}),tt=D.z.object({center:Y.shape.center.optional(),zoom:Y.shape.zoom.optional()}),ot=D.z.object({minZoom:Y.shape.zoom.nullish(),maxZoom:Y.shape.zoom.nullish(),bounds:L.nullish()}).nullable(),rt=D.z.object({bounds:L});var or=t("getViewport",ue.z.undefined()),rr=t("setViewport",tt),nr=t("getViewportConstraints",ue.z.undefined()),ar=t("setViewportConstraints",ot),ir=t("fitViewportToBounds",rt),sr=p("onViewportMove"),lr=p("onViewportMoveEnd"),pr=p("onMapIdle"),nt={methods:[rr,or,nr,ar,ir],listeners:[sr,lr,pr]};var he=[et,nt,Be,Ce,Ze,Ge,Ke,He];function mr(r,l,T){let P=new Map;async function C(u){if(!ur.safeParse(u.data).success){T?.onUnknownMessage?.(u.data);return}let H=st.safeParse(u.data);if(!H.success){T?.onInvalidMessage?.(u.data,H.error),u.ports[0]?.postMessage(at(H.error.message));return}let{data:g}=H;if(g.type==="felt.ready")u.ports[0]?.postMessage(!0);else if(g.type==="felt.addListener"){if(g.event.eventName==="")throw new Error("felt.addListener eventName cannot be empty");let v="options"in g.event?{options:"options"in g.event?g.event.options:void 0,handler:te=>{u.ports[0]?.postMessage(te)}}:{handler:te=>{u.ports[0]?.postMessage(te)}},ee=l.listeners[g.event.eventName](v);P.set(g.event.id,ee)}else if(g.type==="felt.removeListener")P.get(g.id)?.(),P.delete(g.id);else try{let v=l.methods[g.type],ee=await v(g.params);u.ports[0]?.postMessage(ee)}catch(v){u.ports[0]?.postMessage(at(v))}}return r.addEventListener("message",C),()=>{r.removeEventListener("message",C)}}var it={methods:he.map(r=>r.methods??[]).flat(),listeners:he.map(r=>r.listeners??[]).flat()},cr=y.z.discriminatedUnion("eventName",[y.z.strictObject({eventName:y.z.literal("")}),...it.listeners]),yr=y.z.strictObject({type:y.z.literal("felt.addListener"),event:cr}),gr=y.z.strictObject({type:y.z.literal("felt.removeListener"),id:y.z.string()}),dr=y.z.strictObject({type:y.z.literal("felt.ready")}),st=y.z.discriminatedUnion("type",[dr,yr,gr,...it.methods]),ur=y.z.object({type:y.z.enum(st.options.map(r=>r.shape.type.value))});function at(r){return{__error__:hr(r)}}function hr(r){return r instanceof Error?r.message:typeof r=="object"&&r!==null&&"message"in r?String(r.message):typeof r=="string"?r:"Unknown error"}0&&(module.exports={createMessageHandler});
@@ -1,5 +1,5 @@
1
1
  import { z, ZodError } from 'zod';
2
- import { z as zInfer, E as Element, G as GeoJsonGeometry, b as ElementGroup, d as ElementChangeCallbackParams, e as ElementGroupChangeCallbackParams, M as MapInteractionEvent, aa as Layer, ad as LayerGroup, ag as LegendItem, aE as LayerFilters, ap as LayerFeature, bf as UnwrapPromise, L as LayersController, aV as GeoJsonFeature, aI as GetLayerCategoriesGroup, aK as GetLayerHistogramBin, aG as AggregationMethod, ar as LayerSchema, ab as LayerChangeCallbackParams, ae as LayerGroupChangeCallbackParams, ah as LegendItemChangeCallbackParams, aB as FilterTernary, h as MapDetails, i as EntityNode, T as ToolType, j as ToolSettingsMap, k as ToolSettingsChangeEvent, V as ViewportState, n as ViewportConstraints, bg as UnionToIntersection, bh as PromiseOrNot } from './types-B241Rd9q.cjs';
2
+ import { z as zInfer, E as Element, G as GeoJsonGeometry, b as ElementGroup, d as ElementChangeCallbackParams, e as ElementGroupChangeCallbackParams, M as MapInteractionEvent, aa as Layer, ad as LayerGroup, ag as LegendItem, aE as LayerFilters, aF as LayerBoundaries, ap as LayerFeature, bh as UnwrapPromise, L as LayersController, aX as GeoJsonFeature, aK as GetLayerCategoriesGroup, aM as GetLayerHistogramBin, aI as AggregationMethod, ar as LayerSchema, ab as LayerChangeCallbackParams, ae as LayerGroupChangeCallbackParams, ah as LegendItemChangeCallbackParams, aB as FilterTernary, h as MapDetails, i as EntityNode, T as ToolType, j as ToolSettingsMap, k as ToolSettingsChangeEvent, V as ViewportState, n as ViewportConstraints, bi as UnionToIntersection, bj as PromiseOrNot } from './types-0PFYQhMS.cjs';
3
3
 
4
4
  type Method<TRequest extends {
5
5
  type: string;
@@ -2564,6 +2564,85 @@ declare const OnLayerFiltersChangeMessage: z.ZodObject<{
2564
2564
  id: string;
2565
2565
  eventName: "onLayerFiltersChange";
2566
2566
  }>;
2567
+ declare const GetLayerBoundariesMessage: z.ZodObject<{
2568
+ type: z.ZodLiteral<"getLayerBoundaries">;
2569
+ params: z.ZodString;
2570
+ }, z.UnknownKeysParam, z.ZodTypeAny, {
2571
+ params: string;
2572
+ type: "getLayerBoundaries";
2573
+ }, {
2574
+ params: string;
2575
+ type: "getLayerBoundaries";
2576
+ }>;
2577
+ declare const SetLayerBoundaryMessage: z.ZodObject<{
2578
+ type: z.ZodLiteral<"setLayerBoundary">;
2579
+ params: z.ZodObject<{
2580
+ layerIds: z.ZodArray<z.ZodString, "many">;
2581
+ boundary: z.ZodNullable<z.ZodObject<{
2582
+ type: z.ZodLiteral<"MultiPolygon">;
2583
+ coordinates: z.ZodArray<z.ZodArray<z.ZodEffects<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">, [number, number][], [number, number][]>, "many">, "many">;
2584
+ }, "strip", z.ZodTypeAny, {
2585
+ type: "MultiPolygon";
2586
+ coordinates: [number, number][][][];
2587
+ }, {
2588
+ type: "MultiPolygon";
2589
+ coordinates: [number, number][][][];
2590
+ }>>;
2591
+ }, "strip", z.ZodTypeAny, {
2592
+ boundary: {
2593
+ type: "MultiPolygon";
2594
+ coordinates: [number, number][][][];
2595
+ } | null;
2596
+ layerIds: string[];
2597
+ }, {
2598
+ boundary: {
2599
+ type: "MultiPolygon";
2600
+ coordinates: [number, number][][][];
2601
+ } | null;
2602
+ layerIds: string[];
2603
+ }>;
2604
+ }, z.UnknownKeysParam, z.ZodTypeAny, {
2605
+ params: {
2606
+ boundary: {
2607
+ type: "MultiPolygon";
2608
+ coordinates: [number, number][][][];
2609
+ } | null;
2610
+ layerIds: string[];
2611
+ };
2612
+ type: "setLayerBoundary";
2613
+ }, {
2614
+ params: {
2615
+ boundary: {
2616
+ type: "MultiPolygon";
2617
+ coordinates: [number, number][][][];
2618
+ } | null;
2619
+ layerIds: string[];
2620
+ };
2621
+ type: "setLayerBoundary";
2622
+ }>;
2623
+ declare const OnLayerBoundariesChangeMessage: z.ZodObject<{
2624
+ eventName: z.ZodLiteral<"onLayerBoundariesChange">;
2625
+ id: z.ZodString;
2626
+ options: z.ZodObject<{
2627
+ layerId: z.ZodString;
2628
+ }, "strip", z.ZodTypeAny, {
2629
+ layerId: string;
2630
+ }, {
2631
+ layerId: string;
2632
+ }>;
2633
+ }, "strict", z.ZodTypeAny, {
2634
+ options: {
2635
+ layerId: string;
2636
+ };
2637
+ id: string;
2638
+ eventName: "onLayerBoundariesChange";
2639
+ }, {
2640
+ options: {
2641
+ layerId: string;
2642
+ };
2643
+ id: string;
2644
+ eventName: "onLayerBoundariesChange";
2645
+ }>;
2567
2646
  declare const GetRenderedFeaturesMessage: z.ZodObject<{
2568
2647
  type: z.ZodLiteral<"getRenderedFeatures">;
2569
2648
  params: z.ZodOptional<z.ZodObject<{
@@ -3366,6 +3445,8 @@ type LayersSchema = {
3366
3445
  setLegendItemVisibility: Method<zInfer<typeof SetLegendItemVisibilityMessage>, void>;
3367
3446
  getLayerFilters: Method<zInfer<typeof GetFiltersMessage>, LayerFilters | null>;
3368
3447
  setLayerFilters: Method<zInfer<typeof SetFiltersMessage>, void>;
3448
+ getLayerBoundaries: Method<zInfer<typeof GetLayerBoundariesMessage>, LayerBoundaries | null>;
3449
+ setLayerBoundary: Method<zInfer<typeof SetLayerBoundaryMessage>, void>;
3369
3450
  getRenderedFeatures: Method<zInfer<typeof GetRenderedFeaturesMessage>, Array<LayerFeature>>;
3370
3451
  getFeature: Method<zInfer<typeof GetFeatureMessage>, LayerFeature | null>;
3371
3452
  getFeatures: Method<zInfer<typeof GetFeaturesMessage>, UnwrapPromise<ReturnType<LayersController["getFeatures"]>>>;
@@ -3380,6 +3461,7 @@ type LayersSchema = {
3380
3461
  onLayerGroupChange: Listener<zInfer<typeof OnLayerGroupChangeMessage.shape.options>, LayerGroupChangeCallbackParams>;
3381
3462
  onLegendItemChange: Listener<zInfer<typeof OnLegendItemChangeMessage.shape.options>, LegendItemChangeCallbackParams>;
3382
3463
  onLayerFiltersChange: Listener<zInfer<typeof OnLayerFiltersChangeMessage.shape.options>, LayerFilters>;
3464
+ onLayerBoundariesChange: Listener<zInfer<typeof OnLayerBoundariesChangeMessage.shape.options>, LayerBoundaries | null>;
3383
3465
  };
3384
3466
  };
3385
3467
 
package/dist/handler.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { z, ZodError } from 'zod';
2
- import { z as zInfer, E as Element, G as GeoJsonGeometry, b as ElementGroup, d as ElementChangeCallbackParams, e as ElementGroupChangeCallbackParams, M as MapInteractionEvent, aa as Layer, ad as LayerGroup, ag as LegendItem, aE as LayerFilters, ap as LayerFeature, bf as UnwrapPromise, L as LayersController, aV as GeoJsonFeature, aI as GetLayerCategoriesGroup, aK as GetLayerHistogramBin, aG as AggregationMethod, ar as LayerSchema, ab as LayerChangeCallbackParams, ae as LayerGroupChangeCallbackParams, ah as LegendItemChangeCallbackParams, aB as FilterTernary, h as MapDetails, i as EntityNode, T as ToolType, j as ToolSettingsMap, k as ToolSettingsChangeEvent, V as ViewportState, n as ViewportConstraints, bg as UnionToIntersection, bh as PromiseOrNot } from './types-B241Rd9q.js';
2
+ import { z as zInfer, E as Element, G as GeoJsonGeometry, b as ElementGroup, d as ElementChangeCallbackParams, e as ElementGroupChangeCallbackParams, M as MapInteractionEvent, aa as Layer, ad as LayerGroup, ag as LegendItem, aE as LayerFilters, aF as LayerBoundaries, ap as LayerFeature, bh as UnwrapPromise, L as LayersController, aX as GeoJsonFeature, aK as GetLayerCategoriesGroup, aM as GetLayerHistogramBin, aI as AggregationMethod, ar as LayerSchema, ab as LayerChangeCallbackParams, ae as LayerGroupChangeCallbackParams, ah as LegendItemChangeCallbackParams, aB as FilterTernary, h as MapDetails, i as EntityNode, T as ToolType, j as ToolSettingsMap, k as ToolSettingsChangeEvent, V as ViewportState, n as ViewportConstraints, bi as UnionToIntersection, bj as PromiseOrNot } from './types-0PFYQhMS.js';
3
3
 
4
4
  type Method<TRequest extends {
5
5
  type: string;
@@ -2564,6 +2564,85 @@ declare const OnLayerFiltersChangeMessage: z.ZodObject<{
2564
2564
  id: string;
2565
2565
  eventName: "onLayerFiltersChange";
2566
2566
  }>;
2567
+ declare const GetLayerBoundariesMessage: z.ZodObject<{
2568
+ type: z.ZodLiteral<"getLayerBoundaries">;
2569
+ params: z.ZodString;
2570
+ }, z.UnknownKeysParam, z.ZodTypeAny, {
2571
+ params: string;
2572
+ type: "getLayerBoundaries";
2573
+ }, {
2574
+ params: string;
2575
+ type: "getLayerBoundaries";
2576
+ }>;
2577
+ declare const SetLayerBoundaryMessage: z.ZodObject<{
2578
+ type: z.ZodLiteral<"setLayerBoundary">;
2579
+ params: z.ZodObject<{
2580
+ layerIds: z.ZodArray<z.ZodString, "many">;
2581
+ boundary: z.ZodNullable<z.ZodObject<{
2582
+ type: z.ZodLiteral<"MultiPolygon">;
2583
+ coordinates: z.ZodArray<z.ZodArray<z.ZodEffects<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">, [number, number][], [number, number][]>, "many">, "many">;
2584
+ }, "strip", z.ZodTypeAny, {
2585
+ type: "MultiPolygon";
2586
+ coordinates: [number, number][][][];
2587
+ }, {
2588
+ type: "MultiPolygon";
2589
+ coordinates: [number, number][][][];
2590
+ }>>;
2591
+ }, "strip", z.ZodTypeAny, {
2592
+ boundary: {
2593
+ type: "MultiPolygon";
2594
+ coordinates: [number, number][][][];
2595
+ } | null;
2596
+ layerIds: string[];
2597
+ }, {
2598
+ boundary: {
2599
+ type: "MultiPolygon";
2600
+ coordinates: [number, number][][][];
2601
+ } | null;
2602
+ layerIds: string[];
2603
+ }>;
2604
+ }, z.UnknownKeysParam, z.ZodTypeAny, {
2605
+ params: {
2606
+ boundary: {
2607
+ type: "MultiPolygon";
2608
+ coordinates: [number, number][][][];
2609
+ } | null;
2610
+ layerIds: string[];
2611
+ };
2612
+ type: "setLayerBoundary";
2613
+ }, {
2614
+ params: {
2615
+ boundary: {
2616
+ type: "MultiPolygon";
2617
+ coordinates: [number, number][][][];
2618
+ } | null;
2619
+ layerIds: string[];
2620
+ };
2621
+ type: "setLayerBoundary";
2622
+ }>;
2623
+ declare const OnLayerBoundariesChangeMessage: z.ZodObject<{
2624
+ eventName: z.ZodLiteral<"onLayerBoundariesChange">;
2625
+ id: z.ZodString;
2626
+ options: z.ZodObject<{
2627
+ layerId: z.ZodString;
2628
+ }, "strip", z.ZodTypeAny, {
2629
+ layerId: string;
2630
+ }, {
2631
+ layerId: string;
2632
+ }>;
2633
+ }, "strict", z.ZodTypeAny, {
2634
+ options: {
2635
+ layerId: string;
2636
+ };
2637
+ id: string;
2638
+ eventName: "onLayerBoundariesChange";
2639
+ }, {
2640
+ options: {
2641
+ layerId: string;
2642
+ };
2643
+ id: string;
2644
+ eventName: "onLayerBoundariesChange";
2645
+ }>;
2567
2646
  declare const GetRenderedFeaturesMessage: z.ZodObject<{
2568
2647
  type: z.ZodLiteral<"getRenderedFeatures">;
2569
2648
  params: z.ZodOptional<z.ZodObject<{
@@ -3366,6 +3445,8 @@ type LayersSchema = {
3366
3445
  setLegendItemVisibility: Method<zInfer<typeof SetLegendItemVisibilityMessage>, void>;
3367
3446
  getLayerFilters: Method<zInfer<typeof GetFiltersMessage>, LayerFilters | null>;
3368
3447
  setLayerFilters: Method<zInfer<typeof SetFiltersMessage>, void>;
3448
+ getLayerBoundaries: Method<zInfer<typeof GetLayerBoundariesMessage>, LayerBoundaries | null>;
3449
+ setLayerBoundary: Method<zInfer<typeof SetLayerBoundaryMessage>, void>;
3369
3450
  getRenderedFeatures: Method<zInfer<typeof GetRenderedFeaturesMessage>, Array<LayerFeature>>;
3370
3451
  getFeature: Method<zInfer<typeof GetFeatureMessage>, LayerFeature | null>;
3371
3452
  getFeatures: Method<zInfer<typeof GetFeaturesMessage>, UnwrapPromise<ReturnType<LayersController["getFeatures"]>>>;
@@ -3380,6 +3461,7 @@ type LayersSchema = {
3380
3461
  onLayerGroupChange: Listener<zInfer<typeof OnLayerGroupChangeMessage.shape.options>, LayerGroupChangeCallbackParams>;
3381
3462
  onLegendItemChange: Listener<zInfer<typeof OnLegendItemChangeMessage.shape.options>, LegendItemChangeCallbackParams>;
3382
3463
  onLayerFiltersChange: Listener<zInfer<typeof OnLayerFiltersChangeMessage.shape.options>, LayerFilters>;
3464
+ onLayerBoundariesChange: Listener<zInfer<typeof OnLayerBoundariesChangeMessage.shape.options>, LayerBoundaries | null>;
3383
3465
  };
3384
3466
  };
3385
3467
 
package/dist/handler.js CHANGED
@@ -1 +1 @@
1
- import{z as y}from"zod";import{z as u}from"zod";import{z as L}from"zod";function t(n,T){return L.strictObject({type:L.literal(n),params:T})}function h(n,T){return L.strictObject({eventName:L.literal(n),id:L.string(),options:T})}function l(n){return L.strictObject({eventName:L.literal(n),id:L.string()})}import{z as s}from"zod";var R=s.number(),N=s.number(),A=s.object({latitude:N,longitude:R}),b=s.tuple([R,N]),F=s.object({type:s.literal("Polygon"),coordinates:s.array(s.array(b).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"))}),D=s.object({type:s.literal("MultiPolygon"),coordinates:s.array(F.shape.coordinates)}),at=s.object({type:s.literal("LineString"),coordinates:s.array(b).min(2)}),k=s.object({type:s.literal("MultiLineString"),coordinates:s.array(at.shape.coordinates)}),ue=s.number().min(1).max(23),f=s.tuple([R,N,R,N]),G=s.object({show:s.array(s.string()).optional(),hide:s.array(s.string()).optional()}),it=s.enum(["asc","desc"]),H=s.object({attribute:s.string(),direction:it});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()}),Z=e.object({imageUrl:e.string().nullable()}),te=e.object({strokeOpacity:e.number(),strokeWidth:e.number(),strokeStyle:e.enum(["solid","dashed","dotted"])}),st=e.enum(["meter","kilometer","foot","mile"]),J=d.extend(Z.shape).extend({type:e.literal("Place"),coordinates:b,symbol:e.string(),frame:e.enum(["frame-circle","frame-square"]).nullable(),hideLabel:e.boolean()}),V=d.extend(Z.shape).extend(te.shape).extend({type:e.literal("Path"),coordinates:k.shape.coordinates,distanceMarker:e.boolean(),routingMode:e.enum(["driving","cycling","walking","flying"]).nullable(),endCaps:e.boolean()}),v=d.extend(Z.shape).extend(te.shape).extend({type:e.literal("Polygon"),coordinates:F.shape.coordinates,fillOpacity:e.number().min(0).max(1),areaMarker:e.boolean()}),B=d.extend(Z.shape).extend(te.shape).extend({type:e.literal("Circle"),center:b,radius:e.number(),radiusMarker:e.boolean(),radiusDisplayAngle:e.number(),radiusDisplayUnit:st.nullable(),fillOpacity:e.number().min(0).max(1)}),w=d.extend({type:e.literal("Marker"),coordinates:k.shape.coordinates,opacity:e.number().min(0).max(1),size:e.number().min(0).max(100),zoom:e.number().min(0).max(23)}),U=d.extend({type:e.literal("Highlighter"),coordinates:D.shape.coordinates,renderHoles:e.boolean(),opacity:e.number().min(0).max(1)}),he=e.object({position:b,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()}),Y=d.extend(he.shape).extend({type:e.literal("Text")}),ee=d.extend(he.shape).extend({type:e.literal("Note"),widthScale:e.number().min(0)}),O=d.extend({type:e.literal("Image"),coordinates:k.shape.coordinates,imageUrl:e.string(),opacity:e.number().min(0).max(1)}).omit({color:!0}),lt=d.extend({type:e.literal("Link"),coordinates:k.shape.coordinates,url:e.string()}),E={type:!0,coordinates:!0},S={id:!0},oe=J.partial().extend(J.pick(E).shape).omit(S),q=V.partial().extend(V.pick(E).shape).omit(S),re=v.partial().extend(v.pick(E).shape).omit(S),ne=B.partial().extend(B.pick({type:!0,center:!0,radius:!0}).shape).omit(S),ae=w.partial().extend(w.pick(E).shape).omit(S),ie=U.partial().extend(U.pick(E).shape).omit(S),se=Y.partial().omit({...S,name:!0,type:!0}).extend({type:e.literal("Text"),text:e.string()}),le=ee.partial().omit({...S,name:!0,type:!0}).extend({type:e.literal("Note"),text:e.string()}),pt=O.partial().extend(O.pick({...E,imageUrl:!0}).shape).omit(S),fe=e.discriminatedUnion("type",[oe,q,re,ne,ae,ie,pt,se,le]);var gr=V.omit({coordinates:!0}),dr=v.omit({coordinates:!0});var ur=w.omit({coordinates:!0}),hr=U.omit({coordinates:!0});var fr=O.omit({coordinates:!0}),Sr=lt.omit({coordinates:!0}),x={type:!0,id:!0},mt=J.partial().extend(J.pick(x).shape),ct=V.partial().extend(V.pick(x).shape),yt=v.partial().extend(v.pick(x).shape),gt=B.partial().extend(B.pick(x).shape),dt=w.partial().extend(w.pick(x).shape),ut=U.partial().extend(U.pick(x).shape),ht=Y.partial().extend(Y.pick(x).shape).omit({name:!0}),ft=ee.partial().extend(ee.pick(x).shape).omit({name:!0}),St=O.partial().extend(O.pick(x).shape),Se=e.discriminatedUnion("type",[mt,ct,yt,gt,dt,ut,ht,ft,St]),xe=e.object({ids:e.array(e.string()).optional()}),Le=e.object({ids:e.array(e.string()).optional()});var xt=t("getElement",u.string()),Lt=t("getElementGeometry",u.string()),bt=t("getElements",xe.optional()),Mt=t("getElementGroup",u.string()),Ct=t("getElementGroups",Le.optional()),Gt=t("setElementGroupVisibility",G),It=h("onElementChange",u.object({id:u.string()})),Tt=l("onElementCreate"),Et=l("onElementCreateEnd"),zt=h("onElementDelete",u.object({id:u.string()})),Pt=h("onElementGroupChange",u.object({id:u.string()})),Ft=t("createElement",fe),kt=t("updateElement",Se),Vt=t("deleteElement",u.string()),be={methods:[xt,Lt,bt,Mt,Ct,Gt,Ft,kt,Vt],listeners:[It,Tt,Et,zt,Pt]};var vt=l("onPointerClick"),wt=l("onPointerMove"),Me={methods:null,listeners:[vt,wt]};import{z as i}from"zod";import{z as a}from"zod";var Ut=a.enum(["in","ni"]),Ot=a.enum(["lt","gt","le","ge","eq","ne","cn","nc","is","isnt"]),Pr=a.enum(["and","or"]),Ce=a.union([a.number(),a.string(),a.boolean(),a.null()]),Ge=a.string().or(a.null()),jt=a.tuple([Ge,Ut,a.array(Ce).or(a.null())]),Rt=a.tuple([Ge,Ot,Ce]),pe=a.union([jt,Rt]),me=a.tuple([a.lazy(()=>a.union([me,pe,a.null(),a.boolean()])),a.enum(["and","or"]),a.lazy(()=>a.union([me,pe,a.null(),a.boolean()]))]),M=a.union([me,pe,a.null(),a.boolean()]),I=a.union([f,F,D,a.array(b)]);import{z as r}from"zod";var Ie=r.enum(["avg","max","min","sum","median"]),Nt=r.object({method:Ie,attribute:r.string()}),At=r.object({methods:r.array(r.union([Ie,r.literal("count")])),attribute:r.string().optional()}),Te=r.object({boundary:I.optional(),filters:M.optional(),aggregation:Nt.optional()}),Ee=r.object({layerId:r.string(),attribute:r.string(),limit:r.number().optional(),boundary:I.optional(),filters:M.optional(),values:Te.optional()}),vr=r.object({key:r.union([r.number(),r.string(),r.boolean()]),value:r.number().nullable()}),Dt=r.object({type:r.literal("equal-intervals"),count:r.number()}),Ht=r.object({type:r.literal("time-interval"),interval:r.enum(["hour","day","week","month","year"])}),ze=r.object({layerId:r.string(),attribute:r.string(),steps:r.union([Dt,Ht,r.array(r.number())]),boundary:I.optional(),filters:M.optional(),values:Te.optional()}),wr=r.object({min:r.number(),max:r.number(),value:r.number()}),Pe=r.object({layerId:r.string(),boundary:I.optional(),filters:M.optional(),aggregation:At});import{z as o}from"zod";var Rr=o.enum(["processing","completed","failed","incomplete"]),Fe=o.object({type:o.literal("geoJsonUrl"),url:o.string().url(),refreshInterval:o.number().min(250).max(5*60*1e3).nullable().optional()}),ke=o.object({type:o.literal("geoJsonData"),data:o.object({}).passthrough().or(o.instanceof(ArrayBuffer))}),Ve=o.object({type:o.literal("geoJsonFile"),file:o.instanceof(File)}),ve=o.object({id:o.string(),style:o.object({}).passthrough().optional(),shownInLegend:o.boolean().optional(),name:o.string().optional(),caption:o.string().optional(),description:o.string().optional(),bounds:f.optional(),source:o.union([Fe,ke,Ve]).optional()}),we=o.object({ids:o.array(o.string()).optional()}),Ue=o.object({ids:o.array(o.string()).optional()}),z=o.object({id:o.string(),layerId:o.string()}),Oe=o.object({ids:z.array().optional(),layerIds:o.string().array().optional()}),je=o.object({layerIds:o.array(o.string()).optional(),areaQuery:o.union([o.object({coordinates:A}),o.object({boundary:f})]).optional()}),Jt=o.object({Point:o.object({}).passthrough().optional(),Line:o.object({}).passthrough().optional(),Polygon:o.object({}).passthrough().optional()}),Re=o.object({source:o.union([Fe,ke,Ve]),name:o.string(),bounds:f.optional(),caption:o.string().optional(),description:o.string().optional(),geometryStyles:Jt.optional()});var Bt=t("getLayer",i.string()),Zt=t("getLayers",we.optional()),qt=t("setLayerVisibility",G),Wt=h("onLayerChange",i.object({id:i.string()})),_t=t("setLayerStyle",i.object({id:i.string(),style:i.object({}).passthrough()})),Qt=t("setLayerLegendVisibility",G),$t=t("createLayersFromGeoJson",Re),Kt=t("updateLayer",ve),Xt=t("deleteLayer",i.string()),Yt=t("getLayerGroup",i.string()),eo=t("getLayerGroups",Ue.optional()),to=t("setLayerGroupVisibility",G),oo=t("setLayerGroupLegendVisibility",G),ro=h("onLayerGroupChange",i.object({id:i.string()})),no=t("getLegendItem",z),ao=t("getLegendItems",Oe.optional()),io=h("onLegendItemChange",z),so=t("setLegendItemVisibility",i.object({show:z.array().optional(),hide:z.array().optional()})),lo=t("getLayerFilters",i.string()),po=t("setLayerFilters",i.object({layerId:i.string(),filters:M,note:i.string().optional()})),mo=h("onLayerFiltersChange",i.object({layerId:i.string()})),co=t("getRenderedFeatures",je.optional()),yo=t("getFeature",i.object({id:i.string().or(i.number()),layerId:i.string()})),go=t("getFeatures",i.object({layerId:i.string(),filters:M.optional(),sorting:H.optional(),boundary:I.optional(),search:i.string().optional(),pagination:i.string().optional().nullish()})),uo=t("getGeoJsonFeature",i.object({id:i.string().or(i.number()),layerId:i.string()})),ho=t("getCategoryData",Ee),fo=t("getHistogramData",ze),So=t("getAggregates",Pe),xo=t("getLayerSchema",i.string()),Ne={methods:[Bt,Zt,qt,_t,Qt,$t,Xt,Kt,Yt,eo,to,oo,no,ao,so,lo,po,co,yo,go,uo,ho,fo,So,xo],listeners:[Wt,ro,io,mo]};import{z as Lo}from"zod";var bo=t("getMapDetails",Lo.undefined()),Ae={methods:[bo],listeners:[]};import{z as W}from"zod";import{z as C}from"zod";var De=C.object({id:C.string().or(C.number()),layerId:C.string(),showPopup:C.boolean().optional(),fitViewport:C.boolean().or(C.object({maxZoom:C.number()})).optional()});var Mo=t("getSelection",W.undefined()),Co=l("onSelectionChange"),Go=t("selectFeature",De),Io=t("clearSelection",W.object({features:W.boolean().optional(),elements:W.boolean().optional()}).optional()),He={methods:[Mo,Go,Io],listeners:[Co]};import{z as Uo}from"zod";import{z as p}from"zod";var Je=["pin","line","route","polygon","circle","marker","highlighter","text","note"],Be=p.enum([...Je,"link"]),Ze=p.enum(Je),To=oe.pick({color:!0,symbol:!0,frame:!0}).extend({afterCreation:p.enum(["enter name","add another","select"])}).required(),Eo=q.pick({color:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,distanceMarker:!0}).required(),zo=q.pick({color:!0,routingMode:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,distanceMarker:!0,endCaps:!0}).required(),Po=re.pick({color:!0,fillOpacity:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,areaMarker:!0}).required(),Fo=ne.pick({color:!0,fillOpacity:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,radiusMarker:!0}).required(),ko=ae.pick({color:!0,opacity:!0,size:!0}).required(),Vo=ie.pick({color:!0,opacity:!0,renderHoles:!0}).extend({size:p.number().min(0).max(200)}).required(),vo=se.pick({color:!0,align:!0,style:!0}).required(),wo=le.pick({color:!0,align:!0,style:!0}).required(),qe=p.discriminatedUnion("tool",[To.partial().extend({tool:p.literal("pin")}),Eo.partial().extend({tool:p.literal("line")}),zo.partial().extend({tool:p.literal("route")}),Po.partial().extend({tool:p.literal("polygon")}),Fo.partial().extend({tool:p.literal("circle")}),ko.partial().extend({tool:p.literal("marker")}),Vo.partial().extend({tool:p.literal("highlighter")}),vo.partial().extend({tool:p.literal("text")}),wo.partial().extend({tool:p.literal("note")})]);var Oo=t("setTool",Be.nullable()),jo=t("getTool",Uo.undefined()),Ro=l("onToolChange"),No=t("setToolSettings",qe),Ao=t("getToolSettings",Ze),Do=l("onToolSettingsChange"),We={methods:[Oo,jo,No,Ao],listeners:[Ro,Do]};import{z as ce}from"zod";import{z as c}from"zod";var _e=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()}),Qe=c.object({featureSelectPanel:c.boolean().optional(),featureHoverPanel:c.boolean().optional(),elementSelectPanel:c.boolean().optional(),linkClickOpen:c.boolean().optional(),imageLightboxOpen:c.boolean().optional()});var Ho=t("updateUiControls",_e),Jo=t("setOnMapInteractionsUi",Qe),Bo=t("showLayerDataTable",ce.object({layerId:ce.string(),sorting:H.optional()}).optional()),Zo=t("hideLayerDataTable",ce.undefined()),$e={methods:[Ho,Jo,Bo,Zo],listeners:null};import{z as et}from"zod";import{z as Q}from"zod";var _=Q.object({center:A,zoom:ue}),Ke=Q.object({center:_.shape.center.optional(),zoom:_.shape.zoom.optional()}),Xe=Q.object({minZoom:_.shape.zoom.nullish(),maxZoom:_.shape.zoom.nullish(),bounds:f.nullish()}).nullable(),Ye=Q.object({bounds:f});var qo=t("getViewport",et.undefined()),Wo=t("setViewport",Ke),_o=t("getViewportConstraints",et.undefined()),Qo=t("setViewportConstraints",Xe),$o=t("fitViewportToBounds",Ye),Ko=l("onViewportMove"),Xo=l("onViewportMoveEnd"),Yo=l("onMapIdle"),tt={methods:[Wo,qo,_o,Qo,$o],listeners:[Ko,Xo,Yo]};var ye=[$e,tt,Ne,be,He,Me,We,Ae];function On(n,T,ge){let $=new Map;async function de(g){if(!nr.safeParse(g.data).success){ge?.onUnknownMessage?.(g.data);return}let j=nt.safeParse(g.data);if(!j.success){ge?.onInvalidMessage?.(g.data,j.error),g.ports[0]?.postMessage(ot(j.error.message));return}let{data:m}=j;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 P="options"in m.event?{options:"options"in m.event?m.event.options:void 0,handler:X=>{g.ports[0]?.postMessage(X)}}:{handler:X=>{g.ports[0]?.postMessage(X)}},K=T.listeners[m.event.eventName](P);$.set(m.event.id,K)}else if(m.type==="felt.removeListener")$.get(m.id)?.(),$.delete(m.id);else try{let P=T.methods[m.type],K=await P(m.params);g.ports[0]?.postMessage(K)}catch(P){g.ports[0]?.postMessage(ot(P))}}return n.addEventListener("message",de),()=>{n.removeEventListener("message",de)}}var rt={methods:ye.map(n=>n.methods??[]).flat(),listeners:ye.map(n=>n.listeners??[]).flat()},er=y.discriminatedUnion("eventName",[y.strictObject({eventName:y.literal("")}),...rt.listeners]),tr=y.strictObject({type:y.literal("felt.addListener"),event:er}),or=y.strictObject({type:y.literal("felt.removeListener"),id:y.string()}),rr=y.strictObject({type:y.literal("felt.ready")}),nt=y.discriminatedUnion("type",[rr,tr,or,...rt.methods]),nr=y.object({type:y.enum(nt.options.map(n=>n.shape.type.value))});function ot(n){return{__error__:ar(n)}}function ar(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{On as createMessageHandler};
1
+ import{z as y}from"zod";import{z as h}from"zod";import{z as x}from"zod";function t(a,T){return x.strictObject({type:x.literal(a),params:T})}function d(a,T){return x.strictObject({eventName:x.literal(a),id:x.string(),options:T})}function l(a){return x.strictObject({eventName:x.literal(a),id:x.string()})}import{z as s}from"zod";var N=s.number(),A=s.number(),B=s.object({latitude:A,longitude:N}),b=s.tuple([N,A]),k=s.object({type:s.literal("Polygon"),coordinates:s.array(s.array(b).min(4).refine(a=>a[0][0]===a[a.length-1][0]&&a[0][1]===a[a.length-1][1],"The last point of each ring must be identical to the first"))}),E=s.object({type:s.literal("MultiPolygon"),coordinates:s.array(k.shape.coordinates)}),at=s.object({type:s.literal("LineString"),coordinates:s.array(b).min(2)}),V=s.object({type:s.literal("MultiLineString"),coordinates:s.array(at.shape.coordinates)}),ue=s.number().min(1).max(23),f=s.tuple([N,A,N,A]),G=s.object({show:s.array(s.string()).optional(),hide:s.array(s.string()).optional()}),it=s.enum(["asc","desc"]),D=s.object({attribute:s.string(),direction:it});import{z as e}from"zod";var u=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()}),Z=e.object({imageUrl:e.string().nullable()}),te=e.object({strokeOpacity:e.number(),strokeWidth:e.number(),strokeStyle:e.enum(["solid","dashed","dotted"])}),st=e.enum(["meter","kilometer","foot","mile"]),H=u.extend(Z.shape).extend({type:e.literal("Place"),coordinates:b,symbol:e.string(),frame:e.enum(["frame-circle","frame-square"]).nullable(),hideLabel:e.boolean()}),v=u.extend(Z.shape).extend(te.shape).extend({type:e.literal("Path"),coordinates:V.shape.coordinates,distanceMarker:e.boolean(),routingMode:e.enum(["driving","cycling","walking","flying"]).nullable(),endCaps:e.boolean()}),w=u.extend(Z.shape).extend(te.shape).extend({type:e.literal("Polygon"),coordinates:k.shape.coordinates,fillOpacity:e.number().min(0).max(1),areaMarker:e.boolean()}),J=u.extend(Z.shape).extend(te.shape).extend({type:e.literal("Circle"),center:b,radius:e.number(),radiusMarker:e.boolean(),radiusDisplayAngle:e.number(),radiusDisplayUnit:st.nullable(),fillOpacity:e.number().min(0).max(1)}),U=u.extend({type:e.literal("Marker"),coordinates:V.shape.coordinates,opacity:e.number().min(0).max(1),size:e.number().min(0).max(100),zoom:e.number().min(0).max(23)}),O=u.extend({type:e.literal("Highlighter"),coordinates:E.shape.coordinates,renderHoles:e.boolean(),opacity:e.number().min(0).max(1)}),he=e.object({position:b,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()}),Y=u.extend(he.shape).extend({type:e.literal("Text")}),ee=u.extend(he.shape).extend({type:e.literal("Note"),widthScale:e.number().min(0)}),j=u.extend({type:e.literal("Image"),coordinates:V.shape.coordinates,imageUrl:e.string(),opacity:e.number().min(0).max(1)}).omit({color:!0}),lt=u.extend({type:e.literal("Link"),coordinates:V.shape.coordinates,url:e.string()}),z={type:!0,coordinates:!0},S={id:!0},oe=H.partial().extend(H.pick(z).shape).omit(S),q=v.partial().extend(v.pick(z).shape).omit(S),re=w.partial().extend(w.pick(z).shape).omit(S),ne=J.partial().extend(J.pick({type:!0,center:!0,radius:!0}).shape).omit(S),ae=U.partial().extend(U.pick(z).shape).omit(S),ie=O.partial().extend(O.pick(z).shape).omit(S),se=Y.partial().omit({...S,name:!0,type:!0}).extend({type:e.literal("Text"),text:e.string()}),le=ee.partial().omit({...S,name:!0,type:!0}).extend({type:e.literal("Note"),text:e.string()}),pt=j.partial().extend(j.pick({...z,imageUrl:!0}).shape).omit(S),fe=e.discriminatedUnion("type",[oe,q,re,ne,ae,ie,pt,se,le]);var hr=v.omit({coordinates:!0}),fr=w.omit({coordinates:!0});var Sr=U.omit({coordinates:!0}),Lr=O.omit({coordinates:!0});var xr=j.omit({coordinates:!0}),br=lt.omit({coordinates:!0}),L={type:!0,id:!0},mt=H.partial().extend(H.pick(L).shape),ct=v.partial().extend(v.pick(L).shape),yt=w.partial().extend(w.pick(L).shape),gt=J.partial().extend(J.pick(L).shape),dt=U.partial().extend(U.pick(L).shape),ut=O.partial().extend(O.pick(L).shape),ht=Y.partial().extend(Y.pick(L).shape).omit({name:!0}),ft=ee.partial().extend(ee.pick(L).shape).omit({name:!0}),St=j.partial().extend(j.pick(L).shape),Se=e.discriminatedUnion("type",[mt,ct,yt,gt,dt,ut,ht,ft,St]),Le=e.object({ids:e.array(e.string()).optional()}),xe=e.object({ids:e.array(e.string()).optional()});var Lt=t("getElement",h.string()),xt=t("getElementGeometry",h.string()),bt=t("getElements",Le.optional()),Mt=t("getElementGroup",h.string()),Ct=t("getElementGroups",xe.optional()),Gt=t("setElementGroupVisibility",G),It=d("onElementChange",h.object({id:h.string()})),Tt=l("onElementCreate"),Et=l("onElementCreateEnd"),zt=d("onElementDelete",h.object({id:h.string()})),Pt=d("onElementGroupChange",h.object({id:h.string()})),Ft=t("createElement",fe),kt=t("updateElement",Se),Vt=t("deleteElement",h.string()),be={methods:[Lt,xt,bt,Mt,Ct,Gt,Ft,kt,Vt],listeners:[It,Tt,Et,zt,Pt]};var vt=l("onPointerClick"),wt=l("onPointerMove"),Me={methods:null,listeners:[vt,wt]};import{z as n}from"zod";import{z as i}from"zod";var Ut=i.enum(["in","ni"]),Ot=i.enum(["lt","gt","le","ge","eq","ne","cn","nc","is","isnt"]),Vr=i.enum(["and","or"]),Ce=i.union([i.number(),i.string(),i.boolean(),i.null()]),Ge=i.string().or(i.null()),jt=i.tuple([Ge,Ut,i.array(Ce).or(i.null())]),Rt=i.tuple([Ge,Ot,Ce]),pe=i.union([jt,Rt]),me=i.tuple([i.lazy(()=>i.union([me,pe,i.null(),i.boolean()])),i.enum(["and","or"]),i.lazy(()=>i.union([me,pe,i.null(),i.boolean()]))]),M=i.union([me,pe,i.null(),i.boolean()]),I=i.union([f,k,E,i.array(b)]);import{z as r}from"zod";var Ie=r.enum(["avg","max","min","sum","median"]),Nt=r.object({method:Ie,attribute:r.string()}),At=r.object({methods:r.array(r.union([Ie,r.literal("count")])),attribute:r.string().optional()}),Te=r.object({boundary:I.optional(),filters:M.optional(),aggregation:Nt.optional()}),Ee=r.object({layerId:r.string(),attribute:r.string(),limit:r.number().optional(),boundary:I.optional(),filters:M.optional(),values:Te.optional()}),Or=r.object({key:r.union([r.number(),r.string(),r.boolean()]),value:r.number().nullable()}),Bt=r.object({type:r.literal("equal-intervals"),count:r.number()}),Dt=r.object({type:r.literal("time-interval"),interval:r.enum(["hour","day","week","month","year"])}),ze=r.object({layerId:r.string(),attribute:r.string(),steps:r.union([Bt,Dt,r.array(r.number())]),boundary:I.optional(),filters:M.optional(),values:Te.optional()}),jr=r.object({min:r.number(),max:r.number(),value:r.number()}),Pe=r.object({layerId:r.string(),boundary:I.optional(),filters:M.optional(),aggregation:At});import{z as o}from"zod";var Br=o.enum(["processing","completed","failed","incomplete"]),Fe=o.object({type:o.literal("geoJsonUrl"),url:o.string().url(),refreshInterval:o.number().min(250).max(5*60*1e3).nullable().optional()}),ke=o.object({type:o.literal("geoJsonData"),data:o.object({}).passthrough().or(o.instanceof(ArrayBuffer))}),Ve=o.object({type:o.literal("geoJsonFile"),file:o.instanceof(File)}),ve=o.object({id:o.string(),style:o.object({}).passthrough().optional(),shownInLegend:o.boolean().optional(),name:o.string().optional(),caption:o.string().optional(),description:o.string().optional(),bounds:f.optional(),source:o.union([Fe,ke,Ve]).optional()}),we=o.object({ids:o.array(o.string()).optional()}),Ue=o.object({ids:o.array(o.string()).optional()}),P=o.object({id:o.string(),layerId:o.string()}),Oe=o.object({ids:P.array().optional(),layerIds:o.string().array().optional()}),je=o.object({layerIds:o.array(o.string()).optional(),areaQuery:o.union([o.object({coordinates:B}),o.object({boundary:f})]).optional()}),Ht=o.object({Point:o.object({}).passthrough().optional(),Line:o.object({}).passthrough().optional(),Polygon:o.object({}).passthrough().optional()}),Re=o.object({source:o.union([Fe,ke,Ve]),name:o.string(),bounds:f.optional(),caption:o.string().optional(),description:o.string().optional(),geometryStyles:Ht.optional()});var Jt=t("getLayer",n.string()),Zt=t("getLayers",we.optional()),qt=t("setLayerVisibility",G),Wt=d("onLayerChange",n.object({id:n.string()})),_t=t("setLayerStyle",n.object({id:n.string(),style:n.object({}).passthrough()})),Qt=t("setLayerLegendVisibility",G),$t=t("createLayersFromGeoJson",Re),Kt=t("updateLayer",ve),Xt=t("deleteLayer",n.string()),Yt=t("getLayerGroup",n.string()),eo=t("getLayerGroups",Ue.optional()),to=t("setLayerGroupVisibility",G),oo=t("setLayerGroupLegendVisibility",G),ro=d("onLayerGroupChange",n.object({id:n.string()})),no=t("getLegendItem",P),ao=t("getLegendItems",Oe.optional()),io=d("onLegendItemChange",P),so=t("setLegendItemVisibility",n.object({show:P.array().optional(),hide:P.array().optional()})),lo=t("getLayerFilters",n.string()),po=t("setLayerFilters",n.object({layerId:n.string(),filters:M,note:n.string().optional()})),mo=d("onLayerFiltersChange",n.object({layerId:n.string()})),co=t("getLayerBoundaries",n.string()),yo=t("setLayerBoundary",n.object({layerIds:n.array(n.string()),boundary:E.nullable()})),go=d("onLayerBoundariesChange",n.object({layerId:n.string()})),uo=t("getRenderedFeatures",je.optional()),ho=t("getFeature",n.object({id:n.string().or(n.number()),layerId:n.string()})),fo=t("getFeatures",n.object({layerId:n.string(),filters:M.optional(),sorting:D.optional(),boundary:I.optional(),search:n.string().optional(),pagination:n.string().optional().nullish()})),So=t("getGeoJsonFeature",n.object({id:n.string().or(n.number()),layerId:n.string()})),Lo=t("getCategoryData",Ee),xo=t("getHistogramData",ze),bo=t("getAggregates",Pe),Mo=t("getLayerSchema",n.string()),Ne={methods:[Jt,Zt,qt,_t,Qt,$t,Xt,Kt,Yt,eo,to,oo,no,ao,so,lo,po,co,yo,uo,ho,fo,So,Lo,xo,bo,Mo],listeners:[Wt,ro,io,mo,go]};import{z as Co}from"zod";var Go=t("getMapDetails",Co.undefined()),Ae={methods:[Go],listeners:[]};import{z as W}from"zod";import{z as C}from"zod";var Be=C.object({id:C.string().or(C.number()),layerId:C.string(),showPopup:C.boolean().optional(),fitViewport:C.boolean().or(C.object({maxZoom:C.number()})).optional()});var Io=t("getSelection",W.undefined()),To=l("onSelectionChange"),Eo=t("selectFeature",Be),zo=t("clearSelection",W.object({features:W.boolean().optional(),elements:W.boolean().optional()}).optional()),De={methods:[Io,Eo,zo],listeners:[To]};import{z as Ro}from"zod";import{z as p}from"zod";var He=["pin","line","route","polygon","circle","marker","highlighter","text","note"],Je=p.enum([...He,"link"]),Ze=p.enum(He),Po=oe.pick({color:!0,symbol:!0,frame:!0}).extend({afterCreation:p.enum(["enter name","add another","select"])}).required(),Fo=q.pick({color:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,distanceMarker:!0}).required(),ko=q.pick({color:!0,routingMode:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,distanceMarker:!0,endCaps:!0}).required(),Vo=re.pick({color:!0,fillOpacity:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,areaMarker:!0}).required(),vo=ne.pick({color:!0,fillOpacity:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,radiusMarker:!0}).required(),wo=ae.pick({color:!0,opacity:!0,size:!0}).required(),Uo=ie.pick({color:!0,opacity:!0,renderHoles:!0}).extend({size:p.number().min(0).max(200)}).required(),Oo=se.pick({color:!0,align:!0,style:!0}).required(),jo=le.pick({color:!0,align:!0,style:!0}).required(),qe=p.discriminatedUnion("tool",[Po.partial().extend({tool:p.literal("pin")}),Fo.partial().extend({tool:p.literal("line")}),ko.partial().extend({tool:p.literal("route")}),Vo.partial().extend({tool:p.literal("polygon")}),vo.partial().extend({tool:p.literal("circle")}),wo.partial().extend({tool:p.literal("marker")}),Uo.partial().extend({tool:p.literal("highlighter")}),Oo.partial().extend({tool:p.literal("text")}),jo.partial().extend({tool:p.literal("note")})]);var No=t("setTool",Je.nullable()),Ao=t("getTool",Ro.undefined()),Bo=l("onToolChange"),Do=t("setToolSettings",qe),Ho=t("getToolSettings",Ze),Jo=l("onToolSettingsChange"),We={methods:[No,Ao,Do,Ho],listeners:[Bo,Jo]};import{z as ce}from"zod";import{z as c}from"zod";var _e=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()}),Qe=c.object({featureSelectPanel:c.boolean().optional(),featureHoverPanel:c.boolean().optional(),elementSelectPanel:c.boolean().optional(),linkClickOpen:c.boolean().optional(),imageLightboxOpen:c.boolean().optional()});var Zo=t("updateUiControls",_e),qo=t("setOnMapInteractionsUi",Qe),Wo=t("showLayerDataTable",ce.object({layerId:ce.string(),sorting:D.optional()}).optional()),_o=t("hideLayerDataTable",ce.undefined()),$e={methods:[Zo,qo,Wo,_o],listeners:null};import{z as et}from"zod";import{z as Q}from"zod";var _=Q.object({center:B,zoom:ue}),Ke=Q.object({center:_.shape.center.optional(),zoom:_.shape.zoom.optional()}),Xe=Q.object({minZoom:_.shape.zoom.nullish(),maxZoom:_.shape.zoom.nullish(),bounds:f.nullish()}).nullable(),Ye=Q.object({bounds:f});var Qo=t("getViewport",et.undefined()),$o=t("setViewport",Ke),Ko=t("getViewportConstraints",et.undefined()),Xo=t("setViewportConstraints",Xe),Yo=t("fitViewportToBounds",Ye),er=l("onViewportMove"),tr=l("onViewportMoveEnd"),or=l("onMapIdle"),tt={methods:[$o,Qo,Ko,Xo,Yo],listeners:[er,tr,or]};var ye=[$e,tt,Ne,be,De,Me,We,Ae];function Nn(a,T,ge){let $=new Map;async function de(g){if(!sr.safeParse(g.data).success){ge?.onUnknownMessage?.(g.data);return}let R=nt.safeParse(g.data);if(!R.success){ge?.onInvalidMessage?.(g.data,R.error),g.ports[0]?.postMessage(ot(R.error.message));return}let{data:m}=R;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 F="options"in m.event?{options:"options"in m.event?m.event.options:void 0,handler:X=>{g.ports[0]?.postMessage(X)}}:{handler:X=>{g.ports[0]?.postMessage(X)}},K=T.listeners[m.event.eventName](F);$.set(m.event.id,K)}else if(m.type==="felt.removeListener")$.get(m.id)?.(),$.delete(m.id);else try{let F=T.methods[m.type],K=await F(m.params);g.ports[0]?.postMessage(K)}catch(F){g.ports[0]?.postMessage(ot(F))}}return a.addEventListener("message",de),()=>{a.removeEventListener("message",de)}}var rt={methods:ye.map(a=>a.methods??[]).flat(),listeners:ye.map(a=>a.listeners??[]).flat()},rr=y.discriminatedUnion("eventName",[y.strictObject({eventName:y.literal("")}),...rt.listeners]),nr=y.strictObject({type:y.literal("felt.addListener"),event:rr}),ar=y.strictObject({type:y.literal("felt.removeListener"),id:y.string()}),ir=y.strictObject({type:y.literal("felt.ready")}),nt=y.discriminatedUnion("type",[ir,nr,ar,...rt.methods]),sr=y.object({type:y.enum(nt.options.map(a=>a.shape.type.value))});function ot(a){return{__error__:lr(a)}}function lr(a){return a instanceof Error?a.message:typeof a=="object"&&a!==null&&"message"in a?String(a.message):typeof a=="string"?a:"Unknown error"}export{Nn as createMessageHandler};
@@ -5444,6 +5444,37 @@ interface LayerFilters {
5444
5444
  */
5445
5445
  type GeometryFilter = FeltBoundary | PolygonGeometry | MultiPolygonGeometry | LngLatTuple[];
5446
5446
 
5447
+ /**
5448
+ * The boundary for a layer
5449
+ */
5450
+ type LayerBoundary = MultiPolygonGeometry;
5451
+ /**
5452
+ * All the different sources for boundaries for a layer, including their combined result.
5453
+ */
5454
+ interface LayerBoundaries {
5455
+ /**
5456
+ * Boundaries set by drawing spatial filters on the map.
5457
+ *
5458
+ * When there are multiple spatial filters, they are combined into a multi-polygon.
5459
+ */
5460
+ spatialFilters: LayerBoundary | null;
5461
+ /**
5462
+ * Boundaries that are set ephemerally by viewers in their own session.
5463
+ *
5464
+ * These are the filters that are set when the {@link LayersController.setLayerBoundary}
5465
+ * method is called. There is no way to set these in the Felt UI - they can only be
5466
+ * set using the SDK.
5467
+ */
5468
+ ephemeral: LayerBoundary | null;
5469
+ /**
5470
+ * The combined result of all the boundaries set on the layer.
5471
+ *
5472
+ * Each different source of boundary is intersected to produce the combined result.
5473
+ *
5474
+ */
5475
+ combined: LayerBoundary | null;
5476
+ }
5477
+
5447
5478
  declare const AggregateMethodSchema: z.ZodEnum<["avg", "max", "min", "sum", "median"]>;
5448
5479
  declare const AggregationConfigSchema: z.ZodObject<{
5449
5480
  /**
@@ -6531,6 +6562,90 @@ interface LayersController {
6531
6562
  };
6532
6563
  handler: (change: LayerFilters) => void;
6533
6564
  }): VoidFunction;
6565
+ /**
6566
+ * Get the spatial boundaries that are filtering a layer.
6567
+ *
6568
+ * @remarks
6569
+ * The return type gives you the boundaries split up into the various sources
6570
+ * that make up the overall boundary for a layer.
6571
+ *
6572
+ * The combined boundary is the intersection of the other sources of boundaries.
6573
+ *
6574
+ * @example
6575
+ * ```typescript
6576
+ * const boundaries = await felt.getLayerBoundaries("layer-1");
6577
+ *
6578
+ * console.log(boundaries?.combined);
6579
+ * console.log(boundaries?.spatialFilters);
6580
+ * console.log(boundaries?.ephemeral);
6581
+ * ```
6582
+ */
6583
+ getLayerBoundaries(layerId: string): Promise<LayerBoundaries | null>;
6584
+ /**
6585
+ * Set the {@link LayerBoundaries.ephemeral | `ephemeral`} boundary for one or more layers.
6586
+ *
6587
+ * @example
6588
+ * ```typescript
6589
+ * await felt.setLayerBoundary({
6590
+ * layerIds: ["layer-1", "layer-2"],
6591
+ * boundary: { type: "MultiPolygon", coordinates: [[[100, 0], [101, 0], [101, 1], [100, 1], [100, 0]]] }
6592
+ * });
6593
+ * ```
6594
+ */
6595
+ setLayerBoundary(params: {
6596
+ /**
6597
+ * The ids of the layers to set the boundary for.
6598
+ */
6599
+ layerIds: Array<string>;
6600
+ /**
6601
+ * The boundary to set for the layer.
6602
+ *
6603
+ * Passing `null` clears the ephemeral boundary for the layer.
6604
+ */
6605
+ boundary: LayerBoundary | null;
6606
+ }): Promise<void>;
6607
+ /**
6608
+ * Adds a listener for when a layer's spatial boundaries change.
6609
+ *
6610
+ * @returns A function to unsubscribe from the listener
6611
+ *
6612
+ * @remarks
6613
+ * This event fires whenever any type of spatial boundary changes on the layer, including
6614
+ * ephemeral boundaries set via the SDK or boundaries set through the Felt UI via
6615
+ * Spatial filter components.
6616
+ *
6617
+ * @event
6618
+ * @example
6619
+ * ```typescript
6620
+ * const unsubscribe = felt.onLayerBoundariesChange({
6621
+ * options: { layerId: "layer-1" },
6622
+ * handler: ({combined, ephemeral, spatialFilters}) => {
6623
+ * console.log("Layer boundaries updated:", {
6624
+ * combined, // All boundaries combined
6625
+ * ephemeral, // Boundaries set via SDK
6626
+ * spatialFilters // Boundaries set via UI
6627
+ * });
6628
+ * },
6629
+ * });
6630
+ *
6631
+ * // later on...
6632
+ * unsubscribe();
6633
+ * ```
6634
+ */
6635
+ onLayerBoundariesChange(params: {
6636
+ options: {
6637
+ /**
6638
+ * The id of the layer to listen for boundary changes on.
6639
+ */
6640
+ layerId: string;
6641
+ };
6642
+ /**
6643
+ * A function that is called when the boundaries change.
6644
+ *
6645
+ * @param boundaries - The new boundaries for the layer.
6646
+ */
6647
+ handler: (boundaries: LayerBoundaries | null) => void;
6648
+ }): VoidFunction;
6534
6649
  /**
6535
6650
  * Get the features that are currently **rendered** on the map in the viewport.
6536
6651
  *
@@ -7392,4 +7507,4 @@ declare const ViewportFitBoundsParamsSchema: z.ZodObject<{
7392
7507
  bounds: [number, number, number, number];
7393
7508
  }>;
7394
7509
 
7395
- export type { TextElementRead as $, MarkerElementCreate as A, MarkerElementRead as B, ConfigurableToolType as C, MarkerElementUpdate as D, Element as E, FeatureSelection as F, GeoJsonGeometry as G, HighlighterElementCreate as H, InputToolSettings as I, NoteElementRead as J, NoteElementUpdate as K, LayersController as L, MapInteractionEvent as M, NoteElementCreate as N, PathElementRead as O, PathElementCreate as P, PathElementUpdate as Q, PlaceElementCreate as R, SetVisibilityRequest as S, ToolType as T, PlaceElementRead as U, ViewportState as V, PlaceElementUpdate as W, PolygonElementCreate as X, PolygonElementRead as Y, PolygonElementUpdate as Z, TextElementCreate as _, GetElementsConstraint as a, MultiPointGeometry as a$, TextElementUpdate as a0, CreateLayersFromGeoJsonParams as a1, DataOnlyLayer as a2, FeltTiledVectorSource as a3, GeoJsonDataVectorSource as a4, GeoJsonFileVectorSource as a5, GeoJsonUrlVectorSource as a6, GetLayerGroupsConstraint as a7, GetLayersConstraint as a8, GetRenderedFeaturesConstraint as a9, FilterLogicGate as aA, FilterTernary as aB, Filters as aC, GeometryFilter as aD, LayerFilters as aE, AggregationConfig as aF, AggregationMethod as aG, GetLayerCalculationParams as aH, GetLayerCategoriesGroup as aI, GetLayerCategoriesParams as aJ, GetLayerHistogramBin as aK, GetLayerHistogramParams as aL, MultiAggregationConfig as aM, ValueConfiguration as aN, ElementGroupNode as aO, ElementNode as aP, FeatureNode as aQ, LayerGroupNode as aR, LayerNode as aS, FeltBoundary as aT, FeltZoom as aU, GeoJsonFeature as aV, GeoJsonProperties as aW, LatLng as aX, LineStringGeometry as aY, LngLatTuple as aZ, MultiLineStringGeometry as a_, Layer as aa, LayerChangeCallbackParams as ab, LayerCommon as ac, LayerGroup as ad, LayerGroupChangeCallbackParams as ae, LayerProcessingStatus as af, LegendItem as ag, LegendItemChangeCallbackParams as ah, LegendItemIdentifier as ai, LegendItemsConstraint as aj, RasterBand as ak, RasterLayer as al, RasterLayerSource as am, UpdateLayerParams as an, VectorLayer as ao, LayerFeature as ap, RasterValue as aq, LayerSchema as ar, LayerSchemaAttribute as as, LayerSchemaBooleanAttribute as at, LayerSchemaCommonAttribute as au, LayerSchemaDateAttribute as av, LayerSchemaDateTimeAttribute as aw, LayerSchemaNumericAttribute as ax, LayerSchemaTextAttribute as ay, FilterExpression as az, ElementGroup as b, MultiPolygonGeometry as b0, PointGeometry as b1, PolygonGeometry as b2, SortDirection as b3, CircleToolSettings as b4, HighlighterToolSettings as b5, LineToolSettings as b6, MarkerToolSettings as b7, NoteToolSettings as b8, PinToolSettings as b9, PlaceFrame as ba, PlaceSymbol as bb, PolygonToolSettings as bc, RouteToolSettings as bd, TextToolSettings as be, UnwrapPromise as bf, UnionToIntersection as bg, PromiseOrNot as bh, GetElementGroupsConstraint as c, ElementChangeCallbackParams as d, ElementGroupChangeCallbackParams as e, ElementCreate as f, ElementUpdate as g, MapDetails as h, EntityNode as i, ToolSettingsMap as j, ToolSettingsChangeEvent as k, SortConfig as l, SetViewportCenterZoomParams as m, ViewportConstraints as n, ViewportFitBoundsParams as o, ViewportCenterZoom as p, CircleElementCreate as q, CircleElementRead as r, CircleElementUpdate as s, HighlighterElementRead as t, HighlighterElementUpdate as u, ImageElementCreate as v, ImageElementRead as w, ImageElementUpdate as x, LinkElementRead as y, zInfer as z };
7510
+ export type { TextElementRead as $, MarkerElementCreate as A, MarkerElementRead as B, ConfigurableToolType as C, MarkerElementUpdate as D, Element as E, FeatureSelection as F, GeoJsonGeometry as G, HighlighterElementCreate as H, InputToolSettings as I, NoteElementRead as J, NoteElementUpdate as K, LayersController as L, MapInteractionEvent as M, NoteElementCreate as N, PathElementRead as O, PathElementCreate as P, PathElementUpdate as Q, PlaceElementCreate as R, SetVisibilityRequest as S, ToolType as T, PlaceElementRead as U, ViewportState as V, PlaceElementUpdate as W, PolygonElementCreate as X, PolygonElementRead as Y, PolygonElementUpdate as Z, TextElementCreate as _, GetElementsConstraint as a, LngLatTuple as a$, TextElementUpdate as a0, CreateLayersFromGeoJsonParams as a1, DataOnlyLayer as a2, FeltTiledVectorSource as a3, GeoJsonDataVectorSource as a4, GeoJsonFileVectorSource as a5, GeoJsonUrlVectorSource as a6, GetLayerGroupsConstraint as a7, GetLayersConstraint as a8, GetRenderedFeaturesConstraint as a9, FilterLogicGate as aA, FilterTernary as aB, Filters as aC, GeometryFilter as aD, LayerFilters as aE, LayerBoundaries as aF, LayerBoundary as aG, AggregationConfig as aH, AggregationMethod as aI, GetLayerCalculationParams as aJ, GetLayerCategoriesGroup as aK, GetLayerCategoriesParams as aL, GetLayerHistogramBin as aM, GetLayerHistogramParams as aN, MultiAggregationConfig as aO, ValueConfiguration as aP, ElementGroupNode as aQ, ElementNode as aR, FeatureNode as aS, LayerGroupNode as aT, LayerNode as aU, FeltBoundary as aV, FeltZoom as aW, GeoJsonFeature as aX, GeoJsonProperties as aY, LatLng as aZ, LineStringGeometry as a_, Layer as aa, LayerChangeCallbackParams as ab, LayerCommon as ac, LayerGroup as ad, LayerGroupChangeCallbackParams as ae, LayerProcessingStatus as af, LegendItem as ag, LegendItemChangeCallbackParams as ah, LegendItemIdentifier as ai, LegendItemsConstraint as aj, RasterBand as ak, RasterLayer as al, RasterLayerSource as am, UpdateLayerParams as an, VectorLayer as ao, LayerFeature as ap, RasterValue as aq, LayerSchema as ar, LayerSchemaAttribute as as, LayerSchemaBooleanAttribute as at, LayerSchemaCommonAttribute as au, LayerSchemaDateAttribute as av, LayerSchemaDateTimeAttribute as aw, LayerSchemaNumericAttribute as ax, LayerSchemaTextAttribute as ay, FilterExpression as az, ElementGroup as b, MultiLineStringGeometry as b0, MultiPointGeometry as b1, MultiPolygonGeometry as b2, PointGeometry as b3, PolygonGeometry as b4, SortDirection as b5, CircleToolSettings as b6, HighlighterToolSettings as b7, LineToolSettings as b8, MarkerToolSettings as b9, NoteToolSettings as ba, PinToolSettings as bb, PlaceFrame as bc, PlaceSymbol as bd, PolygonToolSettings as be, RouteToolSettings as bf, TextToolSettings as bg, UnwrapPromise as bh, UnionToIntersection as bi, PromiseOrNot as bj, GetElementGroupsConstraint as c, ElementChangeCallbackParams as d, ElementGroupChangeCallbackParams as e, ElementCreate as f, ElementUpdate as g, MapDetails as h, EntityNode as i, ToolSettingsMap as j, ToolSettingsChangeEvent as k, SortConfig as l, SetViewportCenterZoomParams as m, ViewportConstraints as n, ViewportFitBoundsParams as o, ViewportCenterZoom as p, CircleElementCreate as q, CircleElementRead as r, CircleElementUpdate as s, HighlighterElementRead as t, HighlighterElementUpdate as u, ImageElementCreate as v, ImageElementRead as w, ImageElementUpdate as x, LinkElementRead as y, zInfer as z };
@@ -5444,6 +5444,37 @@ interface LayerFilters {
5444
5444
  */
5445
5445
  type GeometryFilter = FeltBoundary | PolygonGeometry | MultiPolygonGeometry | LngLatTuple[];
5446
5446
 
5447
+ /**
5448
+ * The boundary for a layer
5449
+ */
5450
+ type LayerBoundary = MultiPolygonGeometry;
5451
+ /**
5452
+ * All the different sources for boundaries for a layer, including their combined result.
5453
+ */
5454
+ interface LayerBoundaries {
5455
+ /**
5456
+ * Boundaries set by drawing spatial filters on the map.
5457
+ *
5458
+ * When there are multiple spatial filters, they are combined into a multi-polygon.
5459
+ */
5460
+ spatialFilters: LayerBoundary | null;
5461
+ /**
5462
+ * Boundaries that are set ephemerally by viewers in their own session.
5463
+ *
5464
+ * These are the filters that are set when the {@link LayersController.setLayerBoundary}
5465
+ * method is called. There is no way to set these in the Felt UI - they can only be
5466
+ * set using the SDK.
5467
+ */
5468
+ ephemeral: LayerBoundary | null;
5469
+ /**
5470
+ * The combined result of all the boundaries set on the layer.
5471
+ *
5472
+ * Each different source of boundary is intersected to produce the combined result.
5473
+ *
5474
+ */
5475
+ combined: LayerBoundary | null;
5476
+ }
5477
+
5447
5478
  declare const AggregateMethodSchema: z.ZodEnum<["avg", "max", "min", "sum", "median"]>;
5448
5479
  declare const AggregationConfigSchema: z.ZodObject<{
5449
5480
  /**
@@ -6531,6 +6562,90 @@ interface LayersController {
6531
6562
  };
6532
6563
  handler: (change: LayerFilters) => void;
6533
6564
  }): VoidFunction;
6565
+ /**
6566
+ * Get the spatial boundaries that are filtering a layer.
6567
+ *
6568
+ * @remarks
6569
+ * The return type gives you the boundaries split up into the various sources
6570
+ * that make up the overall boundary for a layer.
6571
+ *
6572
+ * The combined boundary is the intersection of the other sources of boundaries.
6573
+ *
6574
+ * @example
6575
+ * ```typescript
6576
+ * const boundaries = await felt.getLayerBoundaries("layer-1");
6577
+ *
6578
+ * console.log(boundaries?.combined);
6579
+ * console.log(boundaries?.spatialFilters);
6580
+ * console.log(boundaries?.ephemeral);
6581
+ * ```
6582
+ */
6583
+ getLayerBoundaries(layerId: string): Promise<LayerBoundaries | null>;
6584
+ /**
6585
+ * Set the {@link LayerBoundaries.ephemeral | `ephemeral`} boundary for one or more layers.
6586
+ *
6587
+ * @example
6588
+ * ```typescript
6589
+ * await felt.setLayerBoundary({
6590
+ * layerIds: ["layer-1", "layer-2"],
6591
+ * boundary: { type: "MultiPolygon", coordinates: [[[100, 0], [101, 0], [101, 1], [100, 1], [100, 0]]] }
6592
+ * });
6593
+ * ```
6594
+ */
6595
+ setLayerBoundary(params: {
6596
+ /**
6597
+ * The ids of the layers to set the boundary for.
6598
+ */
6599
+ layerIds: Array<string>;
6600
+ /**
6601
+ * The boundary to set for the layer.
6602
+ *
6603
+ * Passing `null` clears the ephemeral boundary for the layer.
6604
+ */
6605
+ boundary: LayerBoundary | null;
6606
+ }): Promise<void>;
6607
+ /**
6608
+ * Adds a listener for when a layer's spatial boundaries change.
6609
+ *
6610
+ * @returns A function to unsubscribe from the listener
6611
+ *
6612
+ * @remarks
6613
+ * This event fires whenever any type of spatial boundary changes on the layer, including
6614
+ * ephemeral boundaries set via the SDK or boundaries set through the Felt UI via
6615
+ * Spatial filter components.
6616
+ *
6617
+ * @event
6618
+ * @example
6619
+ * ```typescript
6620
+ * const unsubscribe = felt.onLayerBoundariesChange({
6621
+ * options: { layerId: "layer-1" },
6622
+ * handler: ({combined, ephemeral, spatialFilters}) => {
6623
+ * console.log("Layer boundaries updated:", {
6624
+ * combined, // All boundaries combined
6625
+ * ephemeral, // Boundaries set via SDK
6626
+ * spatialFilters // Boundaries set via UI
6627
+ * });
6628
+ * },
6629
+ * });
6630
+ *
6631
+ * // later on...
6632
+ * unsubscribe();
6633
+ * ```
6634
+ */
6635
+ onLayerBoundariesChange(params: {
6636
+ options: {
6637
+ /**
6638
+ * The id of the layer to listen for boundary changes on.
6639
+ */
6640
+ layerId: string;
6641
+ };
6642
+ /**
6643
+ * A function that is called when the boundaries change.
6644
+ *
6645
+ * @param boundaries - The new boundaries for the layer.
6646
+ */
6647
+ handler: (boundaries: LayerBoundaries | null) => void;
6648
+ }): VoidFunction;
6534
6649
  /**
6535
6650
  * Get the features that are currently **rendered** on the map in the viewport.
6536
6651
  *
@@ -7392,4 +7507,4 @@ declare const ViewportFitBoundsParamsSchema: z.ZodObject<{
7392
7507
  bounds: [number, number, number, number];
7393
7508
  }>;
7394
7509
 
7395
- export type { TextElementRead as $, MarkerElementCreate as A, MarkerElementRead as B, ConfigurableToolType as C, MarkerElementUpdate as D, Element as E, FeatureSelection as F, GeoJsonGeometry as G, HighlighterElementCreate as H, InputToolSettings as I, NoteElementRead as J, NoteElementUpdate as K, LayersController as L, MapInteractionEvent as M, NoteElementCreate as N, PathElementRead as O, PathElementCreate as P, PathElementUpdate as Q, PlaceElementCreate as R, SetVisibilityRequest as S, ToolType as T, PlaceElementRead as U, ViewportState as V, PlaceElementUpdate as W, PolygonElementCreate as X, PolygonElementRead as Y, PolygonElementUpdate as Z, TextElementCreate as _, GetElementsConstraint as a, MultiPointGeometry as a$, TextElementUpdate as a0, CreateLayersFromGeoJsonParams as a1, DataOnlyLayer as a2, FeltTiledVectorSource as a3, GeoJsonDataVectorSource as a4, GeoJsonFileVectorSource as a5, GeoJsonUrlVectorSource as a6, GetLayerGroupsConstraint as a7, GetLayersConstraint as a8, GetRenderedFeaturesConstraint as a9, FilterLogicGate as aA, FilterTernary as aB, Filters as aC, GeometryFilter as aD, LayerFilters as aE, AggregationConfig as aF, AggregationMethod as aG, GetLayerCalculationParams as aH, GetLayerCategoriesGroup as aI, GetLayerCategoriesParams as aJ, GetLayerHistogramBin as aK, GetLayerHistogramParams as aL, MultiAggregationConfig as aM, ValueConfiguration as aN, ElementGroupNode as aO, ElementNode as aP, FeatureNode as aQ, LayerGroupNode as aR, LayerNode as aS, FeltBoundary as aT, FeltZoom as aU, GeoJsonFeature as aV, GeoJsonProperties as aW, LatLng as aX, LineStringGeometry as aY, LngLatTuple as aZ, MultiLineStringGeometry as a_, Layer as aa, LayerChangeCallbackParams as ab, LayerCommon as ac, LayerGroup as ad, LayerGroupChangeCallbackParams as ae, LayerProcessingStatus as af, LegendItem as ag, LegendItemChangeCallbackParams as ah, LegendItemIdentifier as ai, LegendItemsConstraint as aj, RasterBand as ak, RasterLayer as al, RasterLayerSource as am, UpdateLayerParams as an, VectorLayer as ao, LayerFeature as ap, RasterValue as aq, LayerSchema as ar, LayerSchemaAttribute as as, LayerSchemaBooleanAttribute as at, LayerSchemaCommonAttribute as au, LayerSchemaDateAttribute as av, LayerSchemaDateTimeAttribute as aw, LayerSchemaNumericAttribute as ax, LayerSchemaTextAttribute as ay, FilterExpression as az, ElementGroup as b, MultiPolygonGeometry as b0, PointGeometry as b1, PolygonGeometry as b2, SortDirection as b3, CircleToolSettings as b4, HighlighterToolSettings as b5, LineToolSettings as b6, MarkerToolSettings as b7, NoteToolSettings as b8, PinToolSettings as b9, PlaceFrame as ba, PlaceSymbol as bb, PolygonToolSettings as bc, RouteToolSettings as bd, TextToolSettings as be, UnwrapPromise as bf, UnionToIntersection as bg, PromiseOrNot as bh, GetElementGroupsConstraint as c, ElementChangeCallbackParams as d, ElementGroupChangeCallbackParams as e, ElementCreate as f, ElementUpdate as g, MapDetails as h, EntityNode as i, ToolSettingsMap as j, ToolSettingsChangeEvent as k, SortConfig as l, SetViewportCenterZoomParams as m, ViewportConstraints as n, ViewportFitBoundsParams as o, ViewportCenterZoom as p, CircleElementCreate as q, CircleElementRead as r, CircleElementUpdate as s, HighlighterElementRead as t, HighlighterElementUpdate as u, ImageElementCreate as v, ImageElementRead as w, ImageElementUpdate as x, LinkElementRead as y, zInfer as z };
7510
+ export type { TextElementRead as $, MarkerElementCreate as A, MarkerElementRead as B, ConfigurableToolType as C, MarkerElementUpdate as D, Element as E, FeatureSelection as F, GeoJsonGeometry as G, HighlighterElementCreate as H, InputToolSettings as I, NoteElementRead as J, NoteElementUpdate as K, LayersController as L, MapInteractionEvent as M, NoteElementCreate as N, PathElementRead as O, PathElementCreate as P, PathElementUpdate as Q, PlaceElementCreate as R, SetVisibilityRequest as S, ToolType as T, PlaceElementRead as U, ViewportState as V, PlaceElementUpdate as W, PolygonElementCreate as X, PolygonElementRead as Y, PolygonElementUpdate as Z, TextElementCreate as _, GetElementsConstraint as a, LngLatTuple as a$, TextElementUpdate as a0, CreateLayersFromGeoJsonParams as a1, DataOnlyLayer as a2, FeltTiledVectorSource as a3, GeoJsonDataVectorSource as a4, GeoJsonFileVectorSource as a5, GeoJsonUrlVectorSource as a6, GetLayerGroupsConstraint as a7, GetLayersConstraint as a8, GetRenderedFeaturesConstraint as a9, FilterLogicGate as aA, FilterTernary as aB, Filters as aC, GeometryFilter as aD, LayerFilters as aE, LayerBoundaries as aF, LayerBoundary as aG, AggregationConfig as aH, AggregationMethod as aI, GetLayerCalculationParams as aJ, GetLayerCategoriesGroup as aK, GetLayerCategoriesParams as aL, GetLayerHistogramBin as aM, GetLayerHistogramParams as aN, MultiAggregationConfig as aO, ValueConfiguration as aP, ElementGroupNode as aQ, ElementNode as aR, FeatureNode as aS, LayerGroupNode as aT, LayerNode as aU, FeltBoundary as aV, FeltZoom as aW, GeoJsonFeature as aX, GeoJsonProperties as aY, LatLng as aZ, LineStringGeometry as a_, Layer as aa, LayerChangeCallbackParams as ab, LayerCommon as ac, LayerGroup as ad, LayerGroupChangeCallbackParams as ae, LayerProcessingStatus as af, LegendItem as ag, LegendItemChangeCallbackParams as ah, LegendItemIdentifier as ai, LegendItemsConstraint as aj, RasterBand as ak, RasterLayer as al, RasterLayerSource as am, UpdateLayerParams as an, VectorLayer as ao, LayerFeature as ap, RasterValue as aq, LayerSchema as ar, LayerSchemaAttribute as as, LayerSchemaBooleanAttribute as at, LayerSchemaCommonAttribute as au, LayerSchemaDateAttribute as av, LayerSchemaDateTimeAttribute as aw, LayerSchemaNumericAttribute as ax, LayerSchemaTextAttribute as ay, FilterExpression as az, ElementGroup as b, MultiLineStringGeometry as b0, MultiPointGeometry as b1, MultiPolygonGeometry as b2, PointGeometry as b3, PolygonGeometry as b4, SortDirection as b5, CircleToolSettings as b6, HighlighterToolSettings as b7, LineToolSettings as b8, MarkerToolSettings as b9, NoteToolSettings as ba, PinToolSettings as bb, PlaceFrame as bc, PlaceSymbol as bd, PolygonToolSettings as be, RouteToolSettings as bf, TextToolSettings as bg, UnwrapPromise as bh, UnionToIntersection as bi, PromiseOrNot as bj, GetElementGroupsConstraint as c, ElementChangeCallbackParams as d, ElementGroupChangeCallbackParams as e, ElementCreate as f, ElementUpdate as g, MapDetails as h, EntityNode as i, ToolSettingsMap as j, ToolSettingsChangeEvent as k, SortConfig as l, SetViewportCenterZoomParams as m, ViewportConstraints as n, ViewportFitBoundsParams as o, ViewportCenterZoom as p, CircleElementCreate as q, CircleElementRead as r, CircleElementUpdate as s, HighlighterElementRead as t, HighlighterElementUpdate as u, ImageElementCreate as v, ImageElementRead as w, ImageElementUpdate as x, LinkElementRead as y, zInfer as z };
package/handler.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { z, ZodError } from 'zod';
2
- import { z as zInfer, E as Element, G as GeoJsonGeometry, b as ElementGroup, d as ElementChangeCallbackParams, e as ElementGroupChangeCallbackParams, M as MapInteractionEvent, aa as Layer, ad as LayerGroup, ag as LegendItem, aE as LayerFilters, ap as LayerFeature, bf as UnwrapPromise, L as LayersController, aV as GeoJsonFeature, aI as GetLayerCategoriesGroup, aK as GetLayerHistogramBin, aG as AggregationMethod, ar as LayerSchema, ab as LayerChangeCallbackParams, ae as LayerGroupChangeCallbackParams, ah as LegendItemChangeCallbackParams, aB as FilterTernary, h as MapDetails, i as EntityNode, T as ToolType, j as ToolSettingsMap, k as ToolSettingsChangeEvent, V as ViewportState, n as ViewportConstraints, bg as UnionToIntersection, bh as PromiseOrNot } from './types-B241Rd9q.js';
2
+ import { z as zInfer, E as Element, G as GeoJsonGeometry, b as ElementGroup, d as ElementChangeCallbackParams, e as ElementGroupChangeCallbackParams, M as MapInteractionEvent, aa as Layer, ad as LayerGroup, ag as LegendItem, aE as LayerFilters, aF as LayerBoundaries, ap as LayerFeature, bh as UnwrapPromise, L as LayersController, aX as GeoJsonFeature, aK as GetLayerCategoriesGroup, aM as GetLayerHistogramBin, aI as AggregationMethod, ar as LayerSchema, ab as LayerChangeCallbackParams, ae as LayerGroupChangeCallbackParams, ah as LegendItemChangeCallbackParams, aB as FilterTernary, h as MapDetails, i as EntityNode, T as ToolType, j as ToolSettingsMap, k as ToolSettingsChangeEvent, V as ViewportState, n as ViewportConstraints, bi as UnionToIntersection, bj as PromiseOrNot } from './types-0PFYQhMS.js';
3
3
 
4
4
  type Method<TRequest extends {
5
5
  type: string;
@@ -2564,6 +2564,85 @@ declare const OnLayerFiltersChangeMessage: z.ZodObject<{
2564
2564
  id: string;
2565
2565
  eventName: "onLayerFiltersChange";
2566
2566
  }>;
2567
+ declare const GetLayerBoundariesMessage: z.ZodObject<{
2568
+ type: z.ZodLiteral<"getLayerBoundaries">;
2569
+ params: z.ZodString;
2570
+ }, z.UnknownKeysParam, z.ZodTypeAny, {
2571
+ params: string;
2572
+ type: "getLayerBoundaries";
2573
+ }, {
2574
+ params: string;
2575
+ type: "getLayerBoundaries";
2576
+ }>;
2577
+ declare const SetLayerBoundaryMessage: z.ZodObject<{
2578
+ type: z.ZodLiteral<"setLayerBoundary">;
2579
+ params: z.ZodObject<{
2580
+ layerIds: z.ZodArray<z.ZodString, "many">;
2581
+ boundary: z.ZodNullable<z.ZodObject<{
2582
+ type: z.ZodLiteral<"MultiPolygon">;
2583
+ coordinates: z.ZodArray<z.ZodArray<z.ZodEffects<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">, [number, number][], [number, number][]>, "many">, "many">;
2584
+ }, "strip", z.ZodTypeAny, {
2585
+ type: "MultiPolygon";
2586
+ coordinates: [number, number][][][];
2587
+ }, {
2588
+ type: "MultiPolygon";
2589
+ coordinates: [number, number][][][];
2590
+ }>>;
2591
+ }, "strip", z.ZodTypeAny, {
2592
+ boundary: {
2593
+ type: "MultiPolygon";
2594
+ coordinates: [number, number][][][];
2595
+ } | null;
2596
+ layerIds: string[];
2597
+ }, {
2598
+ boundary: {
2599
+ type: "MultiPolygon";
2600
+ coordinates: [number, number][][][];
2601
+ } | null;
2602
+ layerIds: string[];
2603
+ }>;
2604
+ }, z.UnknownKeysParam, z.ZodTypeAny, {
2605
+ params: {
2606
+ boundary: {
2607
+ type: "MultiPolygon";
2608
+ coordinates: [number, number][][][];
2609
+ } | null;
2610
+ layerIds: string[];
2611
+ };
2612
+ type: "setLayerBoundary";
2613
+ }, {
2614
+ params: {
2615
+ boundary: {
2616
+ type: "MultiPolygon";
2617
+ coordinates: [number, number][][][];
2618
+ } | null;
2619
+ layerIds: string[];
2620
+ };
2621
+ type: "setLayerBoundary";
2622
+ }>;
2623
+ declare const OnLayerBoundariesChangeMessage: z.ZodObject<{
2624
+ eventName: z.ZodLiteral<"onLayerBoundariesChange">;
2625
+ id: z.ZodString;
2626
+ options: z.ZodObject<{
2627
+ layerId: z.ZodString;
2628
+ }, "strip", z.ZodTypeAny, {
2629
+ layerId: string;
2630
+ }, {
2631
+ layerId: string;
2632
+ }>;
2633
+ }, "strict", z.ZodTypeAny, {
2634
+ options: {
2635
+ layerId: string;
2636
+ };
2637
+ id: string;
2638
+ eventName: "onLayerBoundariesChange";
2639
+ }, {
2640
+ options: {
2641
+ layerId: string;
2642
+ };
2643
+ id: string;
2644
+ eventName: "onLayerBoundariesChange";
2645
+ }>;
2567
2646
  declare const GetRenderedFeaturesMessage: z.ZodObject<{
2568
2647
  type: z.ZodLiteral<"getRenderedFeatures">;
2569
2648
  params: z.ZodOptional<z.ZodObject<{
@@ -3366,6 +3445,8 @@ type LayersSchema = {
3366
3445
  setLegendItemVisibility: Method<zInfer<typeof SetLegendItemVisibilityMessage>, void>;
3367
3446
  getLayerFilters: Method<zInfer<typeof GetFiltersMessage>, LayerFilters | null>;
3368
3447
  setLayerFilters: Method<zInfer<typeof SetFiltersMessage>, void>;
3448
+ getLayerBoundaries: Method<zInfer<typeof GetLayerBoundariesMessage>, LayerBoundaries | null>;
3449
+ setLayerBoundary: Method<zInfer<typeof SetLayerBoundaryMessage>, void>;
3369
3450
  getRenderedFeatures: Method<zInfer<typeof GetRenderedFeaturesMessage>, Array<LayerFeature>>;
3370
3451
  getFeature: Method<zInfer<typeof GetFeatureMessage>, LayerFeature | null>;
3371
3452
  getFeatures: Method<zInfer<typeof GetFeaturesMessage>, UnwrapPromise<ReturnType<LayersController["getFeatures"]>>>;
@@ -3380,6 +3461,7 @@ type LayersSchema = {
3380
3461
  onLayerGroupChange: Listener<zInfer<typeof OnLayerGroupChangeMessage.shape.options>, LayerGroupChangeCallbackParams>;
3381
3462
  onLegendItemChange: Listener<zInfer<typeof OnLegendItemChangeMessage.shape.options>, LegendItemChangeCallbackParams>;
3382
3463
  onLayerFiltersChange: Listener<zInfer<typeof OnLayerFiltersChangeMessage.shape.options>, LayerFilters>;
3464
+ onLayerBoundariesChange: Listener<zInfer<typeof OnLayerBoundariesChangeMessage.shape.options>, LayerBoundaries | null>;
3383
3465
  };
3384
3466
  };
3385
3467
 
package/handler.js CHANGED
@@ -1 +1 @@
1
- "use strict";var oe=Object.defineProperty;var lt=Object.getOwnPropertyDescriptor;var pt=Object.getOwnPropertyNames;var mt=Object.prototype.hasOwnProperty;var ct=(r,l)=>{for(var T in l)oe(r,T,{get:l[T],enumerable:!0})},yt=(r,l,T,P)=>{if(l&&typeof l=="object"||typeof l=="function")for(let C of pt(l))!mt.call(r,C)&&C!==T&&oe(r,C,{get:()=>l[C],enumerable:!(P=lt(l,C))||P.enumerable});return r};var gt=r=>yt(oe({},"__esModule",{value:!0}),r);var dr={};ct(dr,{createMessageHandler:()=>sr});module.exports=gt(dr);var y=require("zod");var d=require("zod");var f=require("zod");function t(r,l){return f.z.strictObject({type:f.z.literal(r),params:l})}function S(r,l){return f.z.strictObject({eventName:f.z.literal(r),id:f.z.string(),options:l})}function p(r){return f.z.strictObject({eventName:f.z.literal(r),id:f.z.string()})}var s=require("zod"),J=s.z.number(),B=s.z.number(),Z=s.z.object({latitude:B,longitude:J}),G=s.z.tuple([J,B]),v=s.z.object({type:s.z.literal("Polygon"),coordinates:s.z.array(s.z.array(G).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"))}),q=s.z.object({type:s.z.literal("MultiPolygon"),coordinates:s.z.array(v.shape.coordinates)}),dt=s.z.object({type:s.z.literal("LineString"),coordinates:s.z.array(G).min(2)}),w=s.z.object({type:s.z.literal("MultiLineString"),coordinates:s.z.array(dt.shape.coordinates)}),fe=s.z.number().min(1).max(23),x=s.z.tuple([J,B,J,B]),E=s.z.object({show:s.z.array(s.z.string()).optional(),hide:s.z.array(s.z.string()).optional()}),ut=s.z.enum(["asc","desc"]),W=s.z.object({attribute:s.z.string(),direction:ut});var e=require("zod");var h=e.z.object({id:e.z.string(),groupId:e.z.string().nullable(),color:e.z.string(),name:e.z.string().nullable(),description:e.z.string().nullable(),attributes:e.z.record(e.z.string(),e.z.unknown()),interaction:e.z.enum(["default","locked"]).optional()}),$=e.z.object({imageUrl:e.z.string().nullable()}),ae=e.z.object({strokeOpacity:e.z.number(),strokeWidth:e.z.number(),strokeStyle:e.z.enum(["solid","dashed","dotted"])}),ht=e.z.enum(["meter","kilometer","foot","mile"]),_=h.extend($.shape).extend({type:e.z.literal("Place"),coordinates:G,symbol:e.z.string(),frame:e.z.enum(["frame-circle","frame-square"]).nullable(),hideLabel:e.z.boolean()}),U=h.extend($.shape).extend(ae.shape).extend({type:e.z.literal("Path"),coordinates:w.shape.coordinates,distanceMarker:e.z.boolean(),routingMode:e.z.enum(["driving","cycling","walking","flying"]).nullable(),endCaps:e.z.boolean()}),O=h.extend($.shape).extend(ae.shape).extend({type:e.z.literal("Polygon"),coordinates:v.shape.coordinates,fillOpacity:e.z.number().min(0).max(1),areaMarker:e.z.boolean()}),Q=h.extend($.shape).extend(ae.shape).extend({type:e.z.literal("Circle"),center:G,radius:e.z.number(),radiusMarker:e.z.boolean(),radiusDisplayAngle:e.z.number(),radiusDisplayUnit:ht.nullable(),fillOpacity:e.z.number().min(0).max(1)}),j=h.extend({type:e.z.literal("Marker"),coordinates:w.shape.coordinates,opacity:e.z.number().min(0).max(1),size:e.z.number().min(0).max(100),zoom:e.z.number().min(0).max(23)}),R=h.extend({type:e.z.literal("Highlighter"),coordinates:q.shape.coordinates,renderHoles:e.z.boolean(),opacity:e.z.number().min(0).max(1)}),Se=e.z.object({position:G,rotation:e.z.number(),scale:e.z.number(),zoom:e.z.number().min(0).max(23),text:e.z.string(),align:e.z.enum(["left","center","right"]),style:e.z.enum(["italic","light","regular","caps"]),name:e.z.string()}),re=h.extend(Se.shape).extend({type:e.z.literal("Text")}),ne=h.extend(Se.shape).extend({type:e.z.literal("Note"),widthScale:e.z.number().min(0)}),N=h.extend({type:e.z.literal("Image"),coordinates:w.shape.coordinates,imageUrl:e.z.string(),opacity:e.z.number().min(0).max(1)}).omit({color:!0}),ft=h.extend({type:e.z.literal("Link"),coordinates:w.shape.coordinates,url:e.z.string()}),F={type:!0,coordinates:!0},L={id:!0},ie=_.partial().extend(_.pick(F).shape).omit(L),K=U.partial().extend(U.pick(F).shape).omit(L),se=O.partial().extend(O.pick(F).shape).omit(L),le=Q.partial().extend(Q.pick({type:!0,center:!0,radius:!0}).shape).omit(L),pe=j.partial().extend(j.pick(F).shape).omit(L),me=R.partial().extend(R.pick(F).shape).omit(L),ce=re.partial().omit({...L,name:!0,type:!0}).extend({type:e.z.literal("Text"),text:e.z.string()}),ye=ne.partial().omit({...L,name:!0,type:!0}).extend({type:e.z.literal("Note"),text:e.z.string()}),St=N.partial().extend(N.pick({...F,imageUrl:!0}).shape).omit(L),xe=e.z.discriminatedUnion("type",[ie,K,se,le,pe,me,St,ce,ye]);var Lr=U.omit({coordinates:!0}),br=O.omit({coordinates:!0});var Mr=j.omit({coordinates:!0}),Cr=R.omit({coordinates:!0});var Gr=N.omit({coordinates:!0}),Ir=ft.omit({coordinates:!0}),b={type:!0,id:!0},xt=_.partial().extend(_.pick(b).shape),Lt=U.partial().extend(U.pick(b).shape),bt=O.partial().extend(O.pick(b).shape),Mt=Q.partial().extend(Q.pick(b).shape),Ct=j.partial().extend(j.pick(b).shape),Gt=R.partial().extend(R.pick(b).shape),It=re.partial().extend(re.pick(b).shape).omit({name:!0}),Tt=ne.partial().extend(ne.pick(b).shape).omit({name:!0}),Et=N.partial().extend(N.pick(b).shape),Le=e.z.discriminatedUnion("type",[xt,Lt,bt,Mt,Ct,Gt,It,Tt,Et]),be=e.z.object({ids:e.z.array(e.z.string()).optional()}),Me=e.z.object({ids:e.z.array(e.z.string()).optional()});var zt=t("getElement",d.z.string()),Pt=t("getElementGeometry",d.z.string()),Ft=t("getElements",be.optional()),kt=t("getElementGroup",d.z.string()),Vt=t("getElementGroups",Me.optional()),vt=t("setElementGroupVisibility",E),wt=S("onElementChange",d.z.object({id:d.z.string()})),Ut=p("onElementCreate"),Ot=p("onElementCreateEnd"),jt=S("onElementDelete",d.z.object({id:d.z.string()})),Rt=S("onElementGroupChange",d.z.object({id:d.z.string()})),Nt=t("createElement",xe),At=t("updateElement",Le),Dt=t("deleteElement",d.z.string()),Ce={methods:[zt,Pt,Ft,kt,Vt,vt,Nt,At,Dt],listeners:[wt,Ut,Ot,jt,Rt]};var Ht=p("onPointerClick"),Jt=p("onPointerMove"),Ge={methods:null,listeners:[Ht,Jt]};var i=require("zod");var a=require("zod");var Bt=a.z.enum(["in","ni"]),Zt=a.z.enum(["lt","gt","le","ge","eq","ne","cn","nc","is","isnt"]),wr=a.z.enum(["and","or"]),Ie=a.z.union([a.z.number(),a.z.string(),a.z.boolean(),a.z.null()]),Te=a.z.string().or(a.z.null()),qt=a.z.tuple([Te,Bt,a.z.array(Ie).or(a.z.null())]),Wt=a.z.tuple([Te,Zt,Ie]),ge=a.z.union([qt,Wt]),de=a.z.tuple([a.z.lazy(()=>a.z.union([de,ge,a.z.null(),a.z.boolean()])),a.z.enum(["and","or"]),a.z.lazy(()=>a.z.union([de,ge,a.z.null(),a.z.boolean()]))]),I=a.z.union([de,ge,a.z.null(),a.z.boolean()]),z=a.z.union([x,v,q,a.z.array(G)]);var n=require("zod");var Ee=n.z.enum(["avg","max","min","sum","median"]),_t=n.z.object({method:Ee,attribute:n.z.string()}),Qt=n.z.object({methods:n.z.array(n.z.union([Ee,n.z.literal("count")])),attribute:n.z.string().optional()}),ze=n.z.object({boundary:z.optional(),filters:I.optional(),aggregation:_t.optional()}),Pe=n.z.object({layerId:n.z.string(),attribute:n.z.string(),limit:n.z.number().optional(),boundary:z.optional(),filters:I.optional(),values:ze.optional()}),jr=n.z.object({key:n.z.union([n.z.number(),n.z.string(),n.z.boolean()]),value:n.z.number().nullable()}),$t=n.z.object({type:n.z.literal("equal-intervals"),count:n.z.number()}),Kt=n.z.object({type:n.z.literal("time-interval"),interval:n.z.enum(["hour","day","week","month","year"])}),Fe=n.z.object({layerId:n.z.string(),attribute:n.z.string(),steps:n.z.union([$t,Kt,n.z.array(n.z.number())]),boundary:z.optional(),filters:I.optional(),values:ze.optional()}),Rr=n.z.object({min:n.z.number(),max:n.z.number(),value:n.z.number()}),ke=n.z.object({layerId:n.z.string(),boundary:z.optional(),filters:I.optional(),aggregation:Qt});var o=require("zod");var Dr=o.z.enum(["processing","completed","failed","incomplete"]),Ve=o.z.object({type:o.z.literal("geoJsonUrl"),url:o.z.string().url(),refreshInterval:o.z.number().min(250).max(5*60*1e3).nullable().optional()}),ve=o.z.object({type:o.z.literal("geoJsonData"),data:o.z.object({}).passthrough().or(o.z.instanceof(ArrayBuffer))}),we=o.z.object({type:o.z.literal("geoJsonFile"),file:o.z.instanceof(File)}),Ue=o.z.object({id:o.z.string(),style:o.z.object({}).passthrough().optional(),shownInLegend:o.z.boolean().optional(),name:o.z.string().optional(),caption:o.z.string().optional(),description:o.z.string().optional(),bounds:x.optional(),source:o.z.union([Ve,ve,we]).optional()}),Oe=o.z.object({ids:o.z.array(o.z.string()).optional()}),je=o.z.object({ids:o.z.array(o.z.string()).optional()}),k=o.z.object({id:o.z.string(),layerId:o.z.string()}),Re=o.z.object({ids:k.array().optional(),layerIds:o.z.string().array().optional()}),Ne=o.z.object({layerIds:o.z.array(o.z.string()).optional(),areaQuery:o.z.union([o.z.object({coordinates:Z}),o.z.object({boundary:x})]).optional()}),Xt=o.z.object({Point:o.z.object({}).passthrough().optional(),Line:o.z.object({}).passthrough().optional(),Polygon:o.z.object({}).passthrough().optional()}),Ae=o.z.object({source:o.z.union([Ve,ve,we]),name:o.z.string(),bounds:x.optional(),caption:o.z.string().optional(),description:o.z.string().optional(),geometryStyles:Xt.optional()});var Yt=t("getLayer",i.z.string()),eo=t("getLayers",Oe.optional()),to=t("setLayerVisibility",E),oo=S("onLayerChange",i.z.object({id:i.z.string()})),ro=t("setLayerStyle",i.z.object({id:i.z.string(),style:i.z.object({}).passthrough()})),no=t("setLayerLegendVisibility",E),ao=t("createLayersFromGeoJson",Ae),io=t("updateLayer",Ue),so=t("deleteLayer",i.z.string()),lo=t("getLayerGroup",i.z.string()),po=t("getLayerGroups",je.optional()),mo=t("setLayerGroupVisibility",E),co=t("setLayerGroupLegendVisibility",E),yo=S("onLayerGroupChange",i.z.object({id:i.z.string()})),go=t("getLegendItem",k),uo=t("getLegendItems",Re.optional()),ho=S("onLegendItemChange",k),fo=t("setLegendItemVisibility",i.z.object({show:k.array().optional(),hide:k.array().optional()})),So=t("getLayerFilters",i.z.string()),xo=t("setLayerFilters",i.z.object({layerId:i.z.string(),filters:I,note:i.z.string().optional()})),Lo=S("onLayerFiltersChange",i.z.object({layerId:i.z.string()})),bo=t("getRenderedFeatures",Ne.optional()),Mo=t("getFeature",i.z.object({id:i.z.string().or(i.z.number()),layerId:i.z.string()})),Co=t("getFeatures",i.z.object({layerId:i.z.string(),filters:I.optional(),sorting:W.optional(),boundary:z.optional(),search:i.z.string().optional(),pagination:i.z.string().optional().nullish()})),Go=t("getGeoJsonFeature",i.z.object({id:i.z.string().or(i.z.number()),layerId:i.z.string()})),Io=t("getCategoryData",Pe),To=t("getHistogramData",Fe),Eo=t("getAggregates",ke),zo=t("getLayerSchema",i.z.string()),De={methods:[Yt,eo,to,ro,no,ao,so,io,lo,po,mo,co,go,uo,fo,So,xo,bo,Mo,Co,Go,Io,To,Eo,zo],listeners:[oo,yo,ho,Lo]};var He=require("zod");var Po=t("getMapDetails",He.z.undefined()),Je={methods:[Po],listeners:[]};var A=require("zod");var M=require("zod"),Be=M.z.object({id:M.z.string().or(M.z.number()),layerId:M.z.string(),showPopup:M.z.boolean().optional(),fitViewport:M.z.boolean().or(M.z.object({maxZoom:M.z.number()})).optional()});var Fo=t("getSelection",A.z.undefined()),ko=p("onSelectionChange"),Vo=t("selectFeature",Be),vo=t("clearSelection",A.z.object({features:A.z.boolean().optional(),elements:A.z.boolean().optional()}).optional()),Ze={methods:[Fo,Vo,vo],listeners:[ko]};var $e=require("zod");var m=require("zod");var qe=["pin","line","route","polygon","circle","marker","highlighter","text","note"],We=m.z.enum([...qe,"link"]),_e=m.z.enum(qe),wo=ie.pick({color:!0,symbol:!0,frame:!0}).extend({afterCreation:m.z.enum(["enter name","add another","select"])}).required(),Uo=K.pick({color:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,distanceMarker:!0}).required(),Oo=K.pick({color:!0,routingMode:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,distanceMarker:!0,endCaps:!0}).required(),jo=se.pick({color:!0,fillOpacity:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,areaMarker:!0}).required(),Ro=le.pick({color:!0,fillOpacity:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,radiusMarker:!0}).required(),No=pe.pick({color:!0,opacity:!0,size:!0}).required(),Ao=me.pick({color:!0,opacity:!0,renderHoles:!0}).extend({size:m.z.number().min(0).max(200)}).required(),Do=ce.pick({color:!0,align:!0,style:!0}).required(),Ho=ye.pick({color:!0,align:!0,style:!0}).required(),Qe=m.z.discriminatedUnion("tool",[wo.partial().extend({tool:m.z.literal("pin")}),Uo.partial().extend({tool:m.z.literal("line")}),Oo.partial().extend({tool:m.z.literal("route")}),jo.partial().extend({tool:m.z.literal("polygon")}),Ro.partial().extend({tool:m.z.literal("circle")}),No.partial().extend({tool:m.z.literal("marker")}),Ao.partial().extend({tool:m.z.literal("highlighter")}),Do.partial().extend({tool:m.z.literal("text")}),Ho.partial().extend({tool:m.z.literal("note")})]);var Jo=t("setTool",We.nullable()),Bo=t("getTool",$e.z.undefined()),Zo=p("onToolChange"),qo=t("setToolSettings",Qe),Wo=t("getToolSettings",_e),_o=p("onToolSettingsChange"),Ke={methods:[Jo,Bo,qo,Wo],listeners:[Zo,_o]};var X=require("zod");var c=require("zod"),Xe=c.z.object({showLegend:c.z.boolean().optional(),cooperativeGestures:c.z.boolean().optional(),fullScreenButton:c.z.boolean().optional(),geolocation:c.z.boolean().optional(),zoomControls:c.z.boolean().optional(),scaleBar:c.z.boolean().optional()}),Ye=c.z.object({featureSelectPanel:c.z.boolean().optional(),featureHoverPanel:c.z.boolean().optional(),elementSelectPanel:c.z.boolean().optional(),linkClickOpen:c.z.boolean().optional(),imageLightboxOpen:c.z.boolean().optional()});var Qo=t("updateUiControls",Xe),$o=t("setOnMapInteractionsUi",Ye),Ko=t("showLayerDataTable",X.z.object({layerId:X.z.string(),sorting:W.optional()}).optional()),Xo=t("hideLayerDataTable",X.z.undefined()),et={methods:[Qo,$o,Ko,Xo],listeners:null};var ue=require("zod");var D=require("zod");var Y=D.z.object({center:Z,zoom:fe}),tt=D.z.object({center:Y.shape.center.optional(),zoom:Y.shape.zoom.optional()}),ot=D.z.object({minZoom:Y.shape.zoom.nullish(),maxZoom:Y.shape.zoom.nullish(),bounds:x.nullish()}).nullable(),rt=D.z.object({bounds:x});var Yo=t("getViewport",ue.z.undefined()),er=t("setViewport",tt),tr=t("getViewportConstraints",ue.z.undefined()),or=t("setViewportConstraints",ot),rr=t("fitViewportToBounds",rt),nr=p("onViewportMove"),ar=p("onViewportMoveEnd"),ir=p("onMapIdle"),nt={methods:[er,Yo,tr,or,rr],listeners:[nr,ar,ir]};var he=[et,nt,De,Ce,Ze,Ge,Ke,Je];function sr(r,l,T){let P=new Map;async function C(u){if(!yr.safeParse(u.data).success){T?.onUnknownMessage?.(u.data);return}let H=st.safeParse(u.data);if(!H.success){T?.onInvalidMessage?.(u.data,H.error),u.ports[0]?.postMessage(at(H.error.message));return}let{data:g}=H;if(g.type==="felt.ready")u.ports[0]?.postMessage(!0);else if(g.type==="felt.addListener"){if(g.event.eventName==="")throw new Error("felt.addListener eventName cannot be empty");let V="options"in g.event?{options:"options"in g.event?g.event.options:void 0,handler:te=>{u.ports[0]?.postMessage(te)}}:{handler:te=>{u.ports[0]?.postMessage(te)}},ee=l.listeners[g.event.eventName](V);P.set(g.event.id,ee)}else if(g.type==="felt.removeListener")P.get(g.id)?.(),P.delete(g.id);else try{let V=l.methods[g.type],ee=await V(g.params);u.ports[0]?.postMessage(ee)}catch(V){u.ports[0]?.postMessage(at(V))}}return r.addEventListener("message",C),()=>{r.removeEventListener("message",C)}}var it={methods:he.map(r=>r.methods??[]).flat(),listeners:he.map(r=>r.listeners??[]).flat()},lr=y.z.discriminatedUnion("eventName",[y.z.strictObject({eventName:y.z.literal("")}),...it.listeners]),pr=y.z.strictObject({type:y.z.literal("felt.addListener"),event:lr}),mr=y.z.strictObject({type:y.z.literal("felt.removeListener"),id:y.z.string()}),cr=y.z.strictObject({type:y.z.literal("felt.ready")}),st=y.z.discriminatedUnion("type",[cr,pr,mr,...it.methods]),yr=y.z.object({type:y.z.enum(st.options.map(r=>r.shape.type.value))});function at(r){return{__error__:gr(r)}}function gr(r){return r instanceof Error?r.message:typeof r=="object"&&r!==null&&"message"in r?String(r.message):typeof r=="string"?r:"Unknown error"}0&&(module.exports={createMessageHandler});
1
+ "use strict";var oe=Object.defineProperty;var lt=Object.getOwnPropertyDescriptor;var pt=Object.getOwnPropertyNames;var mt=Object.prototype.hasOwnProperty;var ct=(r,l)=>{for(var T in l)oe(r,T,{get:l[T],enumerable:!0})},yt=(r,l,T,P)=>{if(l&&typeof l=="object"||typeof l=="function")for(let C of pt(l))!mt.call(r,C)&&C!==T&&oe(r,C,{get:()=>l[C],enumerable:!(P=lt(l,C))||P.enumerable});return r};var gt=r=>yt(oe({},"__esModule",{value:!0}),r);var fr={};ct(fr,{createMessageHandler:()=>mr});module.exports=gt(fr);var y=require("zod");var d=require("zod");var S=require("zod");function t(r,l){return S.z.strictObject({type:S.z.literal(r),params:l})}function h(r,l){return S.z.strictObject({eventName:S.z.literal(r),id:S.z.string(),options:l})}function p(r){return S.z.strictObject({eventName:S.z.literal(r),id:S.z.string()})}var s=require("zod"),J=s.z.number(),Z=s.z.number(),q=s.z.object({latitude:Z,longitude:J}),G=s.z.tuple([J,Z]),w=s.z.object({type:s.z.literal("Polygon"),coordinates:s.z.array(s.z.array(G).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"))}),F=s.z.object({type:s.z.literal("MultiPolygon"),coordinates:s.z.array(w.shape.coordinates)}),dt=s.z.object({type:s.z.literal("LineString"),coordinates:s.z.array(G).min(2)}),U=s.z.object({type:s.z.literal("MultiLineString"),coordinates:s.z.array(dt.shape.coordinates)}),fe=s.z.number().min(1).max(23),L=s.z.tuple([J,Z,J,Z]),E=s.z.object({show:s.z.array(s.z.string()).optional(),hide:s.z.array(s.z.string()).optional()}),ut=s.z.enum(["asc","desc"]),W=s.z.object({attribute:s.z.string(),direction:ut});var e=require("zod");var f=e.z.object({id:e.z.string(),groupId:e.z.string().nullable(),color:e.z.string(),name:e.z.string().nullable(),description:e.z.string().nullable(),attributes:e.z.record(e.z.string(),e.z.unknown()),interaction:e.z.enum(["default","locked"]).optional()}),$=e.z.object({imageUrl:e.z.string().nullable()}),ae=e.z.object({strokeOpacity:e.z.number(),strokeWidth:e.z.number(),strokeStyle:e.z.enum(["solid","dashed","dotted"])}),ht=e.z.enum(["meter","kilometer","foot","mile"]),_=f.extend($.shape).extend({type:e.z.literal("Place"),coordinates:G,symbol:e.z.string(),frame:e.z.enum(["frame-circle","frame-square"]).nullable(),hideLabel:e.z.boolean()}),O=f.extend($.shape).extend(ae.shape).extend({type:e.z.literal("Path"),coordinates:U.shape.coordinates,distanceMarker:e.z.boolean(),routingMode:e.z.enum(["driving","cycling","walking","flying"]).nullable(),endCaps:e.z.boolean()}),j=f.extend($.shape).extend(ae.shape).extend({type:e.z.literal("Polygon"),coordinates:w.shape.coordinates,fillOpacity:e.z.number().min(0).max(1),areaMarker:e.z.boolean()}),Q=f.extend($.shape).extend(ae.shape).extend({type:e.z.literal("Circle"),center:G,radius:e.z.number(),radiusMarker:e.z.boolean(),radiusDisplayAngle:e.z.number(),radiusDisplayUnit:ht.nullable(),fillOpacity:e.z.number().min(0).max(1)}),R=f.extend({type:e.z.literal("Marker"),coordinates:U.shape.coordinates,opacity:e.z.number().min(0).max(1),size:e.z.number().min(0).max(100),zoom:e.z.number().min(0).max(23)}),N=f.extend({type:e.z.literal("Highlighter"),coordinates:F.shape.coordinates,renderHoles:e.z.boolean(),opacity:e.z.number().min(0).max(1)}),Se=e.z.object({position:G,rotation:e.z.number(),scale:e.z.number(),zoom:e.z.number().min(0).max(23),text:e.z.string(),align:e.z.enum(["left","center","right"]),style:e.z.enum(["italic","light","regular","caps"]),name:e.z.string()}),re=f.extend(Se.shape).extend({type:e.z.literal("Text")}),ne=f.extend(Se.shape).extend({type:e.z.literal("Note"),widthScale:e.z.number().min(0)}),A=f.extend({type:e.z.literal("Image"),coordinates:U.shape.coordinates,imageUrl:e.z.string(),opacity:e.z.number().min(0).max(1)}).omit({color:!0}),ft=f.extend({type:e.z.literal("Link"),coordinates:U.shape.coordinates,url:e.z.string()}),k={type:!0,coordinates:!0},x={id:!0},ie=_.partial().extend(_.pick(k).shape).omit(x),K=O.partial().extend(O.pick(k).shape).omit(x),se=j.partial().extend(j.pick(k).shape).omit(x),le=Q.partial().extend(Q.pick({type:!0,center:!0,radius:!0}).shape).omit(x),pe=R.partial().extend(R.pick(k).shape).omit(x),me=N.partial().extend(N.pick(k).shape).omit(x),ce=re.partial().omit({...x,name:!0,type:!0}).extend({type:e.z.literal("Text"),text:e.z.string()}),ye=ne.partial().omit({...x,name:!0,type:!0}).extend({type:e.z.literal("Note"),text:e.z.string()}),St=A.partial().extend(A.pick({...k,imageUrl:!0}).shape).omit(x),Le=e.z.discriminatedUnion("type",[ie,K,se,le,pe,me,St,ce,ye]);var Cr=O.omit({coordinates:!0}),Gr=j.omit({coordinates:!0});var Ir=R.omit({coordinates:!0}),Tr=N.omit({coordinates:!0});var Er=A.omit({coordinates:!0}),zr=ft.omit({coordinates:!0}),b={type:!0,id:!0},Lt=_.partial().extend(_.pick(b).shape),xt=O.partial().extend(O.pick(b).shape),bt=j.partial().extend(j.pick(b).shape),Mt=Q.partial().extend(Q.pick(b).shape),Ct=R.partial().extend(R.pick(b).shape),Gt=N.partial().extend(N.pick(b).shape),It=re.partial().extend(re.pick(b).shape).omit({name:!0}),Tt=ne.partial().extend(ne.pick(b).shape).omit({name:!0}),Et=A.partial().extend(A.pick(b).shape),xe=e.z.discriminatedUnion("type",[Lt,xt,bt,Mt,Ct,Gt,It,Tt,Et]),be=e.z.object({ids:e.z.array(e.z.string()).optional()}),Me=e.z.object({ids:e.z.array(e.z.string()).optional()});var zt=t("getElement",d.z.string()),Pt=t("getElementGeometry",d.z.string()),Ft=t("getElements",be.optional()),kt=t("getElementGroup",d.z.string()),Vt=t("getElementGroups",Me.optional()),vt=t("setElementGroupVisibility",E),wt=h("onElementChange",d.z.object({id:d.z.string()})),Ut=p("onElementCreate"),Ot=p("onElementCreateEnd"),jt=h("onElementDelete",d.z.object({id:d.z.string()})),Rt=h("onElementGroupChange",d.z.object({id:d.z.string()})),Nt=t("createElement",Le),At=t("updateElement",xe),Bt=t("deleteElement",d.z.string()),Ce={methods:[zt,Pt,Ft,kt,Vt,vt,Nt,At,Bt],listeners:[wt,Ut,Ot,jt,Rt]};var Dt=p("onPointerClick"),Ht=p("onPointerMove"),Ge={methods:null,listeners:[Dt,Ht]};var a=require("zod");var i=require("zod");var Jt=i.z.enum(["in","ni"]),Zt=i.z.enum(["lt","gt","le","ge","eq","ne","cn","nc","is","isnt"]),jr=i.z.enum(["and","or"]),Ie=i.z.union([i.z.number(),i.z.string(),i.z.boolean(),i.z.null()]),Te=i.z.string().or(i.z.null()),qt=i.z.tuple([Te,Jt,i.z.array(Ie).or(i.z.null())]),Wt=i.z.tuple([Te,Zt,Ie]),ge=i.z.union([qt,Wt]),de=i.z.tuple([i.z.lazy(()=>i.z.union([de,ge,i.z.null(),i.z.boolean()])),i.z.enum(["and","or"]),i.z.lazy(()=>i.z.union([de,ge,i.z.null(),i.z.boolean()]))]),I=i.z.union([de,ge,i.z.null(),i.z.boolean()]),z=i.z.union([L,w,F,i.z.array(G)]);var n=require("zod");var Ee=n.z.enum(["avg","max","min","sum","median"]),_t=n.z.object({method:Ee,attribute:n.z.string()}),Qt=n.z.object({methods:n.z.array(n.z.union([Ee,n.z.literal("count")])),attribute:n.z.string().optional()}),ze=n.z.object({boundary:z.optional(),filters:I.optional(),aggregation:_t.optional()}),Pe=n.z.object({layerId:n.z.string(),attribute:n.z.string(),limit:n.z.number().optional(),boundary:z.optional(),filters:I.optional(),values:ze.optional()}),Ar=n.z.object({key:n.z.union([n.z.number(),n.z.string(),n.z.boolean()]),value:n.z.number().nullable()}),$t=n.z.object({type:n.z.literal("equal-intervals"),count:n.z.number()}),Kt=n.z.object({type:n.z.literal("time-interval"),interval:n.z.enum(["hour","day","week","month","year"])}),Fe=n.z.object({layerId:n.z.string(),attribute:n.z.string(),steps:n.z.union([$t,Kt,n.z.array(n.z.number())]),boundary:z.optional(),filters:I.optional(),values:ze.optional()}),Br=n.z.object({min:n.z.number(),max:n.z.number(),value:n.z.number()}),ke=n.z.object({layerId:n.z.string(),boundary:z.optional(),filters:I.optional(),aggregation:Qt});var o=require("zod");var Jr=o.z.enum(["processing","completed","failed","incomplete"]),Ve=o.z.object({type:o.z.literal("geoJsonUrl"),url:o.z.string().url(),refreshInterval:o.z.number().min(250).max(5*60*1e3).nullable().optional()}),ve=o.z.object({type:o.z.literal("geoJsonData"),data:o.z.object({}).passthrough().or(o.z.instanceof(ArrayBuffer))}),we=o.z.object({type:o.z.literal("geoJsonFile"),file:o.z.instanceof(File)}),Ue=o.z.object({id:o.z.string(),style:o.z.object({}).passthrough().optional(),shownInLegend:o.z.boolean().optional(),name:o.z.string().optional(),caption:o.z.string().optional(),description:o.z.string().optional(),bounds:L.optional(),source:o.z.union([Ve,ve,we]).optional()}),Oe=o.z.object({ids:o.z.array(o.z.string()).optional()}),je=o.z.object({ids:o.z.array(o.z.string()).optional()}),V=o.z.object({id:o.z.string(),layerId:o.z.string()}),Re=o.z.object({ids:V.array().optional(),layerIds:o.z.string().array().optional()}),Ne=o.z.object({layerIds:o.z.array(o.z.string()).optional(),areaQuery:o.z.union([o.z.object({coordinates:q}),o.z.object({boundary:L})]).optional()}),Xt=o.z.object({Point:o.z.object({}).passthrough().optional(),Line:o.z.object({}).passthrough().optional(),Polygon:o.z.object({}).passthrough().optional()}),Ae=o.z.object({source:o.z.union([Ve,ve,we]),name:o.z.string(),bounds:L.optional(),caption:o.z.string().optional(),description:o.z.string().optional(),geometryStyles:Xt.optional()});var Yt=t("getLayer",a.z.string()),eo=t("getLayers",Oe.optional()),to=t("setLayerVisibility",E),oo=h("onLayerChange",a.z.object({id:a.z.string()})),ro=t("setLayerStyle",a.z.object({id:a.z.string(),style:a.z.object({}).passthrough()})),no=t("setLayerLegendVisibility",E),ao=t("createLayersFromGeoJson",Ae),io=t("updateLayer",Ue),so=t("deleteLayer",a.z.string()),lo=t("getLayerGroup",a.z.string()),po=t("getLayerGroups",je.optional()),mo=t("setLayerGroupVisibility",E),co=t("setLayerGroupLegendVisibility",E),yo=h("onLayerGroupChange",a.z.object({id:a.z.string()})),go=t("getLegendItem",V),uo=t("getLegendItems",Re.optional()),ho=h("onLegendItemChange",V),fo=t("setLegendItemVisibility",a.z.object({show:V.array().optional(),hide:V.array().optional()})),So=t("getLayerFilters",a.z.string()),Lo=t("setLayerFilters",a.z.object({layerId:a.z.string(),filters:I,note:a.z.string().optional()})),xo=h("onLayerFiltersChange",a.z.object({layerId:a.z.string()})),bo=t("getLayerBoundaries",a.z.string()),Mo=t("setLayerBoundary",a.z.object({layerIds:a.z.array(a.z.string()),boundary:F.nullable()})),Co=h("onLayerBoundariesChange",a.z.object({layerId:a.z.string()})),Go=t("getRenderedFeatures",Ne.optional()),Io=t("getFeature",a.z.object({id:a.z.string().or(a.z.number()),layerId:a.z.string()})),To=t("getFeatures",a.z.object({layerId:a.z.string(),filters:I.optional(),sorting:W.optional(),boundary:z.optional(),search:a.z.string().optional(),pagination:a.z.string().optional().nullish()})),Eo=t("getGeoJsonFeature",a.z.object({id:a.z.string().or(a.z.number()),layerId:a.z.string()})),zo=t("getCategoryData",Pe),Po=t("getHistogramData",Fe),Fo=t("getAggregates",ke),ko=t("getLayerSchema",a.z.string()),Be={methods:[Yt,eo,to,ro,no,ao,so,io,lo,po,mo,co,go,uo,fo,So,Lo,bo,Mo,Go,Io,To,Eo,zo,Po,Fo,ko],listeners:[oo,yo,ho,xo,Co]};var De=require("zod");var Vo=t("getMapDetails",De.z.undefined()),He={methods:[Vo],listeners:[]};var B=require("zod");var M=require("zod"),Je=M.z.object({id:M.z.string().or(M.z.number()),layerId:M.z.string(),showPopup:M.z.boolean().optional(),fitViewport:M.z.boolean().or(M.z.object({maxZoom:M.z.number()})).optional()});var vo=t("getSelection",B.z.undefined()),wo=p("onSelectionChange"),Uo=t("selectFeature",Je),Oo=t("clearSelection",B.z.object({features:B.z.boolean().optional(),elements:B.z.boolean().optional()}).optional()),Ze={methods:[vo,Uo,Oo],listeners:[wo]};var $e=require("zod");var m=require("zod");var qe=["pin","line","route","polygon","circle","marker","highlighter","text","note"],We=m.z.enum([...qe,"link"]),_e=m.z.enum(qe),jo=ie.pick({color:!0,symbol:!0,frame:!0}).extend({afterCreation:m.z.enum(["enter name","add another","select"])}).required(),Ro=K.pick({color:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,distanceMarker:!0}).required(),No=K.pick({color:!0,routingMode:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,distanceMarker:!0,endCaps:!0}).required(),Ao=se.pick({color:!0,fillOpacity:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,areaMarker:!0}).required(),Bo=le.pick({color:!0,fillOpacity:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,radiusMarker:!0}).required(),Do=pe.pick({color:!0,opacity:!0,size:!0}).required(),Ho=me.pick({color:!0,opacity:!0,renderHoles:!0}).extend({size:m.z.number().min(0).max(200)}).required(),Jo=ce.pick({color:!0,align:!0,style:!0}).required(),Zo=ye.pick({color:!0,align:!0,style:!0}).required(),Qe=m.z.discriminatedUnion("tool",[jo.partial().extend({tool:m.z.literal("pin")}),Ro.partial().extend({tool:m.z.literal("line")}),No.partial().extend({tool:m.z.literal("route")}),Ao.partial().extend({tool:m.z.literal("polygon")}),Bo.partial().extend({tool:m.z.literal("circle")}),Do.partial().extend({tool:m.z.literal("marker")}),Ho.partial().extend({tool:m.z.literal("highlighter")}),Jo.partial().extend({tool:m.z.literal("text")}),Zo.partial().extend({tool:m.z.literal("note")})]);var qo=t("setTool",We.nullable()),Wo=t("getTool",$e.z.undefined()),_o=p("onToolChange"),Qo=t("setToolSettings",Qe),$o=t("getToolSettings",_e),Ko=p("onToolSettingsChange"),Ke={methods:[qo,Wo,Qo,$o],listeners:[_o,Ko]};var X=require("zod");var c=require("zod"),Xe=c.z.object({showLegend:c.z.boolean().optional(),cooperativeGestures:c.z.boolean().optional(),fullScreenButton:c.z.boolean().optional(),geolocation:c.z.boolean().optional(),zoomControls:c.z.boolean().optional(),scaleBar:c.z.boolean().optional()}),Ye=c.z.object({featureSelectPanel:c.z.boolean().optional(),featureHoverPanel:c.z.boolean().optional(),elementSelectPanel:c.z.boolean().optional(),linkClickOpen:c.z.boolean().optional(),imageLightboxOpen:c.z.boolean().optional()});var Xo=t("updateUiControls",Xe),Yo=t("setOnMapInteractionsUi",Ye),er=t("showLayerDataTable",X.z.object({layerId:X.z.string(),sorting:W.optional()}).optional()),tr=t("hideLayerDataTable",X.z.undefined()),et={methods:[Xo,Yo,er,tr],listeners:null};var ue=require("zod");var D=require("zod");var Y=D.z.object({center:q,zoom:fe}),tt=D.z.object({center:Y.shape.center.optional(),zoom:Y.shape.zoom.optional()}),ot=D.z.object({minZoom:Y.shape.zoom.nullish(),maxZoom:Y.shape.zoom.nullish(),bounds:L.nullish()}).nullable(),rt=D.z.object({bounds:L});var or=t("getViewport",ue.z.undefined()),rr=t("setViewport",tt),nr=t("getViewportConstraints",ue.z.undefined()),ar=t("setViewportConstraints",ot),ir=t("fitViewportToBounds",rt),sr=p("onViewportMove"),lr=p("onViewportMoveEnd"),pr=p("onMapIdle"),nt={methods:[rr,or,nr,ar,ir],listeners:[sr,lr,pr]};var he=[et,nt,Be,Ce,Ze,Ge,Ke,He];function mr(r,l,T){let P=new Map;async function C(u){if(!ur.safeParse(u.data).success){T?.onUnknownMessage?.(u.data);return}let H=st.safeParse(u.data);if(!H.success){T?.onInvalidMessage?.(u.data,H.error),u.ports[0]?.postMessage(at(H.error.message));return}let{data:g}=H;if(g.type==="felt.ready")u.ports[0]?.postMessage(!0);else if(g.type==="felt.addListener"){if(g.event.eventName==="")throw new Error("felt.addListener eventName cannot be empty");let v="options"in g.event?{options:"options"in g.event?g.event.options:void 0,handler:te=>{u.ports[0]?.postMessage(te)}}:{handler:te=>{u.ports[0]?.postMessage(te)}},ee=l.listeners[g.event.eventName](v);P.set(g.event.id,ee)}else if(g.type==="felt.removeListener")P.get(g.id)?.(),P.delete(g.id);else try{let v=l.methods[g.type],ee=await v(g.params);u.ports[0]?.postMessage(ee)}catch(v){u.ports[0]?.postMessage(at(v))}}return r.addEventListener("message",C),()=>{r.removeEventListener("message",C)}}var it={methods:he.map(r=>r.methods??[]).flat(),listeners:he.map(r=>r.listeners??[]).flat()},cr=y.z.discriminatedUnion("eventName",[y.z.strictObject({eventName:y.z.literal("")}),...it.listeners]),yr=y.z.strictObject({type:y.z.literal("felt.addListener"),event:cr}),gr=y.z.strictObject({type:y.z.literal("felt.removeListener"),id:y.z.string()}),dr=y.z.strictObject({type:y.z.literal("felt.ready")}),st=y.z.discriminatedUnion("type",[dr,yr,gr,...it.methods]),ur=y.z.object({type:y.z.enum(st.options.map(r=>r.shape.type.value))});function at(r){return{__error__:hr(r)}}function hr(r){return r instanceof Error?r.message:typeof r=="object"&&r!==null&&"message"in r?String(r.message):typeof r=="string"?r:"Unknown error"}0&&(module.exports={createMessageHandler});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@feltmaps/js-sdk",
3
- "version": "1.6.0-next.0",
3
+ "version": "1.6.0-next.1",
4
4
  "description": "An SDK for Felt maps",
5
5
  "keywords": [
6
6
  "felt",
@@ -5444,6 +5444,37 @@ interface LayerFilters {
5444
5444
  */
5445
5445
  type GeometryFilter = FeltBoundary | PolygonGeometry | MultiPolygonGeometry | LngLatTuple[];
5446
5446
 
5447
+ /**
5448
+ * The boundary for a layer
5449
+ */
5450
+ type LayerBoundary = MultiPolygonGeometry;
5451
+ /**
5452
+ * All the different sources for boundaries for a layer, including their combined result.
5453
+ */
5454
+ interface LayerBoundaries {
5455
+ /**
5456
+ * Boundaries set by drawing spatial filters on the map.
5457
+ *
5458
+ * When there are multiple spatial filters, they are combined into a multi-polygon.
5459
+ */
5460
+ spatialFilters: LayerBoundary | null;
5461
+ /**
5462
+ * Boundaries that are set ephemerally by viewers in their own session.
5463
+ *
5464
+ * These are the filters that are set when the {@link LayersController.setLayerBoundary}
5465
+ * method is called. There is no way to set these in the Felt UI - they can only be
5466
+ * set using the SDK.
5467
+ */
5468
+ ephemeral: LayerBoundary | null;
5469
+ /**
5470
+ * The combined result of all the boundaries set on the layer.
5471
+ *
5472
+ * Each different source of boundary is intersected to produce the combined result.
5473
+ *
5474
+ */
5475
+ combined: LayerBoundary | null;
5476
+ }
5477
+
5447
5478
  declare const AggregateMethodSchema: z.ZodEnum<["avg", "max", "min", "sum", "median"]>;
5448
5479
  declare const AggregationConfigSchema: z.ZodObject<{
5449
5480
  /**
@@ -6531,6 +6562,90 @@ interface LayersController {
6531
6562
  };
6532
6563
  handler: (change: LayerFilters) => void;
6533
6564
  }): VoidFunction;
6565
+ /**
6566
+ * Get the spatial boundaries that are filtering a layer.
6567
+ *
6568
+ * @remarks
6569
+ * The return type gives you the boundaries split up into the various sources
6570
+ * that make up the overall boundary for a layer.
6571
+ *
6572
+ * The combined boundary is the intersection of the other sources of boundaries.
6573
+ *
6574
+ * @example
6575
+ * ```typescript
6576
+ * const boundaries = await felt.getLayerBoundaries("layer-1");
6577
+ *
6578
+ * console.log(boundaries?.combined);
6579
+ * console.log(boundaries?.spatialFilters);
6580
+ * console.log(boundaries?.ephemeral);
6581
+ * ```
6582
+ */
6583
+ getLayerBoundaries(layerId: string): Promise<LayerBoundaries | null>;
6584
+ /**
6585
+ * Set the {@link LayerBoundaries.ephemeral | `ephemeral`} boundary for one or more layers.
6586
+ *
6587
+ * @example
6588
+ * ```typescript
6589
+ * await felt.setLayerBoundary({
6590
+ * layerIds: ["layer-1", "layer-2"],
6591
+ * boundary: { type: "MultiPolygon", coordinates: [[[100, 0], [101, 0], [101, 1], [100, 1], [100, 0]]] }
6592
+ * });
6593
+ * ```
6594
+ */
6595
+ setLayerBoundary(params: {
6596
+ /**
6597
+ * The ids of the layers to set the boundary for.
6598
+ */
6599
+ layerIds: Array<string>;
6600
+ /**
6601
+ * The boundary to set for the layer.
6602
+ *
6603
+ * Passing `null` clears the ephemeral boundary for the layer.
6604
+ */
6605
+ boundary: LayerBoundary | null;
6606
+ }): Promise<void>;
6607
+ /**
6608
+ * Adds a listener for when a layer's spatial boundaries change.
6609
+ *
6610
+ * @returns A function to unsubscribe from the listener
6611
+ *
6612
+ * @remarks
6613
+ * This event fires whenever any type of spatial boundary changes on the layer, including
6614
+ * ephemeral boundaries set via the SDK or boundaries set through the Felt UI via
6615
+ * Spatial filter components.
6616
+ *
6617
+ * @event
6618
+ * @example
6619
+ * ```typescript
6620
+ * const unsubscribe = felt.onLayerBoundariesChange({
6621
+ * options: { layerId: "layer-1" },
6622
+ * handler: ({combined, ephemeral, spatialFilters}) => {
6623
+ * console.log("Layer boundaries updated:", {
6624
+ * combined, // All boundaries combined
6625
+ * ephemeral, // Boundaries set via SDK
6626
+ * spatialFilters // Boundaries set via UI
6627
+ * });
6628
+ * },
6629
+ * });
6630
+ *
6631
+ * // later on...
6632
+ * unsubscribe();
6633
+ * ```
6634
+ */
6635
+ onLayerBoundariesChange(params: {
6636
+ options: {
6637
+ /**
6638
+ * The id of the layer to listen for boundary changes on.
6639
+ */
6640
+ layerId: string;
6641
+ };
6642
+ /**
6643
+ * A function that is called when the boundaries change.
6644
+ *
6645
+ * @param boundaries - The new boundaries for the layer.
6646
+ */
6647
+ handler: (boundaries: LayerBoundaries | null) => void;
6648
+ }): VoidFunction;
6534
6649
  /**
6535
6650
  * Get the features that are currently **rendered** on the map in the viewport.
6536
6651
  *
@@ -7392,4 +7507,4 @@ declare const ViewportFitBoundsParamsSchema: z.ZodObject<{
7392
7507
  bounds: [number, number, number, number];
7393
7508
  }>;
7394
7509
 
7395
- export type { TextElementRead as $, MarkerElementCreate as A, MarkerElementRead as B, ConfigurableToolType as C, MarkerElementUpdate as D, Element as E, FeatureSelection as F, GeoJsonGeometry as G, HighlighterElementCreate as H, InputToolSettings as I, NoteElementRead as J, NoteElementUpdate as K, LayersController as L, MapInteractionEvent as M, NoteElementCreate as N, PathElementRead as O, PathElementCreate as P, PathElementUpdate as Q, PlaceElementCreate as R, SetVisibilityRequest as S, ToolType as T, PlaceElementRead as U, ViewportState as V, PlaceElementUpdate as W, PolygonElementCreate as X, PolygonElementRead as Y, PolygonElementUpdate as Z, TextElementCreate as _, GetElementsConstraint as a, MultiPointGeometry as a$, TextElementUpdate as a0, CreateLayersFromGeoJsonParams as a1, DataOnlyLayer as a2, FeltTiledVectorSource as a3, GeoJsonDataVectorSource as a4, GeoJsonFileVectorSource as a5, GeoJsonUrlVectorSource as a6, GetLayerGroupsConstraint as a7, GetLayersConstraint as a8, GetRenderedFeaturesConstraint as a9, FilterLogicGate as aA, FilterTernary as aB, Filters as aC, GeometryFilter as aD, LayerFilters as aE, AggregationConfig as aF, AggregationMethod as aG, GetLayerCalculationParams as aH, GetLayerCategoriesGroup as aI, GetLayerCategoriesParams as aJ, GetLayerHistogramBin as aK, GetLayerHistogramParams as aL, MultiAggregationConfig as aM, ValueConfiguration as aN, ElementGroupNode as aO, ElementNode as aP, FeatureNode as aQ, LayerGroupNode as aR, LayerNode as aS, FeltBoundary as aT, FeltZoom as aU, GeoJsonFeature as aV, GeoJsonProperties as aW, LatLng as aX, LineStringGeometry as aY, LngLatTuple as aZ, MultiLineStringGeometry as a_, Layer as aa, LayerChangeCallbackParams as ab, LayerCommon as ac, LayerGroup as ad, LayerGroupChangeCallbackParams as ae, LayerProcessingStatus as af, LegendItem as ag, LegendItemChangeCallbackParams as ah, LegendItemIdentifier as ai, LegendItemsConstraint as aj, RasterBand as ak, RasterLayer as al, RasterLayerSource as am, UpdateLayerParams as an, VectorLayer as ao, LayerFeature as ap, RasterValue as aq, LayerSchema as ar, LayerSchemaAttribute as as, LayerSchemaBooleanAttribute as at, LayerSchemaCommonAttribute as au, LayerSchemaDateAttribute as av, LayerSchemaDateTimeAttribute as aw, LayerSchemaNumericAttribute as ax, LayerSchemaTextAttribute as ay, FilterExpression as az, ElementGroup as b, MultiPolygonGeometry as b0, PointGeometry as b1, PolygonGeometry as b2, SortDirection as b3, CircleToolSettings as b4, HighlighterToolSettings as b5, LineToolSettings as b6, MarkerToolSettings as b7, NoteToolSettings as b8, PinToolSettings as b9, PlaceFrame as ba, PlaceSymbol as bb, PolygonToolSettings as bc, RouteToolSettings as bd, TextToolSettings as be, UnwrapPromise as bf, UnionToIntersection as bg, PromiseOrNot as bh, GetElementGroupsConstraint as c, ElementChangeCallbackParams as d, ElementGroupChangeCallbackParams as e, ElementCreate as f, ElementUpdate as g, MapDetails as h, EntityNode as i, ToolSettingsMap as j, ToolSettingsChangeEvent as k, SortConfig as l, SetViewportCenterZoomParams as m, ViewportConstraints as n, ViewportFitBoundsParams as o, ViewportCenterZoom as p, CircleElementCreate as q, CircleElementRead as r, CircleElementUpdate as s, HighlighterElementRead as t, HighlighterElementUpdate as u, ImageElementCreate as v, ImageElementRead as w, ImageElementUpdate as x, LinkElementRead as y, zInfer as z };
7510
+ export type { TextElementRead as $, MarkerElementCreate as A, MarkerElementRead as B, ConfigurableToolType as C, MarkerElementUpdate as D, Element as E, FeatureSelection as F, GeoJsonGeometry as G, HighlighterElementCreate as H, InputToolSettings as I, NoteElementRead as J, NoteElementUpdate as K, LayersController as L, MapInteractionEvent as M, NoteElementCreate as N, PathElementRead as O, PathElementCreate as P, PathElementUpdate as Q, PlaceElementCreate as R, SetVisibilityRequest as S, ToolType as T, PlaceElementRead as U, ViewportState as V, PlaceElementUpdate as W, PolygonElementCreate as X, PolygonElementRead as Y, PolygonElementUpdate as Z, TextElementCreate as _, GetElementsConstraint as a, LngLatTuple as a$, TextElementUpdate as a0, CreateLayersFromGeoJsonParams as a1, DataOnlyLayer as a2, FeltTiledVectorSource as a3, GeoJsonDataVectorSource as a4, GeoJsonFileVectorSource as a5, GeoJsonUrlVectorSource as a6, GetLayerGroupsConstraint as a7, GetLayersConstraint as a8, GetRenderedFeaturesConstraint as a9, FilterLogicGate as aA, FilterTernary as aB, Filters as aC, GeometryFilter as aD, LayerFilters as aE, LayerBoundaries as aF, LayerBoundary as aG, AggregationConfig as aH, AggregationMethod as aI, GetLayerCalculationParams as aJ, GetLayerCategoriesGroup as aK, GetLayerCategoriesParams as aL, GetLayerHistogramBin as aM, GetLayerHistogramParams as aN, MultiAggregationConfig as aO, ValueConfiguration as aP, ElementGroupNode as aQ, ElementNode as aR, FeatureNode as aS, LayerGroupNode as aT, LayerNode as aU, FeltBoundary as aV, FeltZoom as aW, GeoJsonFeature as aX, GeoJsonProperties as aY, LatLng as aZ, LineStringGeometry as a_, Layer as aa, LayerChangeCallbackParams as ab, LayerCommon as ac, LayerGroup as ad, LayerGroupChangeCallbackParams as ae, LayerProcessingStatus as af, LegendItem as ag, LegendItemChangeCallbackParams as ah, LegendItemIdentifier as ai, LegendItemsConstraint as aj, RasterBand as ak, RasterLayer as al, RasterLayerSource as am, UpdateLayerParams as an, VectorLayer as ao, LayerFeature as ap, RasterValue as aq, LayerSchema as ar, LayerSchemaAttribute as as, LayerSchemaBooleanAttribute as at, LayerSchemaCommonAttribute as au, LayerSchemaDateAttribute as av, LayerSchemaDateTimeAttribute as aw, LayerSchemaNumericAttribute as ax, LayerSchemaTextAttribute as ay, FilterExpression as az, ElementGroup as b, MultiLineStringGeometry as b0, MultiPointGeometry as b1, MultiPolygonGeometry as b2, PointGeometry as b3, PolygonGeometry as b4, SortDirection as b5, CircleToolSettings as b6, HighlighterToolSettings as b7, LineToolSettings as b8, MarkerToolSettings as b9, NoteToolSettings as ba, PinToolSettings as bb, PlaceFrame as bc, PlaceSymbol as bd, PolygonToolSettings as be, RouteToolSettings as bf, TextToolSettings as bg, UnwrapPromise as bh, UnionToIntersection as bi, PromiseOrNot as bj, GetElementGroupsConstraint as c, ElementChangeCallbackParams as d, ElementGroupChangeCallbackParams as e, ElementCreate as f, ElementUpdate as g, MapDetails as h, EntityNode as i, ToolSettingsMap as j, ToolSettingsChangeEvent as k, SortConfig as l, SetViewportCenterZoomParams as m, ViewportConstraints as n, ViewportFitBoundsParams as o, ViewportCenterZoom as p, CircleElementCreate as q, CircleElementRead as r, CircleElementUpdate as s, HighlighterElementRead as t, HighlighterElementUpdate as u, ImageElementCreate as v, ImageElementRead as w, ImageElementUpdate as x, LinkElementRead as y, zInfer as z };