@feltmaps/js-sdk 1.5.0-next.17 → 1.5.0-next.19

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 G=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var f=(e,r)=>{for(var n in r)c(e,n,{get:r[n],enumerable:!0})},I=(e,r,n,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of V(r))!b.call(e,a)&&a!==n&&c(e,a,{get:()=>r[a],enumerable:!(s=G(r,a))||s.enumerable});return e};var x=e=>I(c({},"__esModule",{value:!0}),e);var K={};f(K,{Felt:()=>S});module.exports=x(K);function u(e){return e.data&&typeof e.data=="object"&&"__error__"in e.data}function o(e,r){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:r,id:m,options:i}:{eventName:r,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,r,n){return async s=>{let a=new MessageChannel,i=s&&n?await n(s):s;return e.postMessage({type:r,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()}})}}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:o(e,"onElementChange"),onElementCreate:o(e,"onElementCreate"),onElementCreateEnd:o(e,"onElementCreateEnd"),onElementDelete:o(e,"onElementDelete"),onElementGroupChange:o(e,"onElementGroupChange"),createElement:t(e,"createElement"),updateElement:t(e,"updateElement"),deleteElement:t(e,"deleteElement")});var L=e=>({onPointerClick:o(e,"onPointerClick"),onPointerMove:o(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:o(e,"onLayerChange"),createLayer:t(e,"createLayer",async r=>"url"in r.source||"arrayBuffer"in r.source?r:{source:{...r.source,arrayBuffer:await r.source.file.arrayBuffer()}}),deleteLayer:t(e,"deleteLayer"),getLayerGroup:t(e,"getLayerGroup"),getLayerGroups:t(e,"getLayerGroups"),setLayerGroupVisibility:t(e,"setLayerGroupVisibility"),setLayerGroupLegendVisibility:t(e,"setLayerGroupLegendVisibility"),onLayerGroupChange:o(e,"onLayerGroupChange"),getLegendItem:t(e,"getLegendItem"),getLegendItems:t(e,"getLegendItems"),setLegendItemVisibility:t(e,"setLegendItemVisibility"),onLegendItemChange:o(e,"onLegendItemChange"),getLayerFilters:t(e,"getLayerFilters"),setLayerFilters:t(e,"setLayerFilters"),onLayerFiltersChange:o(e,"onLayerFiltersChange"),getRenderedFeatures:t(e,"getRenderedFeatures"),getFeature:t(e,"getFeature"),getGeoJsonFeature:t(e,"getGeoJsonFeature"),getCategoryData:t(e,"getCategoryData"),getHistogramData:t(e,"getHistogramData"),getAggregates:t(e,"getAggregates"),getLayerSchema:t(e,"getLayerSchema")});var T=e=>({getMapDetails:t(e,"getMapDetails")});var E=e=>({onSelectionChange:o(e,"onSelectionChange"),getSelection:t(e,"getSelection"),selectFeature:t(e,"selectFeature"),clearSelection:t(e,"clearSelection")});var P=e=>({setTool:t(e,"setTool"),getTool:t(e,"getTool"),onToolChange:o(e,"onToolChange"),setToolSettings:t(e,"setToolSettings"),getToolSettings:t(e,"getToolSettings"),onToolSettingsChange:o(e,"onToolSettingsChange")});var v=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:o(e,"onViewportMove"),onViewportMoveEnd:o(e,"onViewportMoveEnd"),onMapIdle:o(e,"onMapIdle")});function F(e){return{iframe:null,...M(e),...v(e),...h(e),...C(e),...E(e),...L(e),...P(e),...T(e)}}var S={embed(e,r,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/${r}`),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 r=F(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(r))}})}},k=Object.entries;0&&(module.exports={Felt});
1
+ "use strict";var c=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var I=(e,n)=>{for(var r in n)c(e,r,{get:n[r],enumerable:!0})},x=(e,n,r,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of S(n))!b.call(e,a)&&a!==r&&c(e,a,{get:()=>n[a],enumerable:!(s=V(n,a))||s.enumerable});return e};var f=e=>x(c({},"__esModule",{value:!0}),e);var k={};I(k,{Felt:()=>G});module.exports=f(k);function o(e,n){return r=>{let s=new MessageChannel,a=r.handler,i="options"in r?r.options:void 0,m=crypto.randomUUID();return e.postMessage({type:"felt.addListener",event:i?{eventName:n,id:m,options:i}:{eventName:n,id:m}},"*",[s.port2]),s.port1.onmessage=y=>{u(y)||a(y.data)},()=>{s.port1.onmessage=null,s.port1.close(),s.port2.close(),e.postMessage({type:"felt.removeListener",id:m},"*")}}}function t(e,n,r){return async s=>{let a=new MessageChannel,i=s&&r?await r(s):s;return e.postMessage({type:n,params:i},"*",[a.port2]),new Promise((m,y)=>{a.port1.onmessage=g=>{u(g)?y(new Error(g.data.__error__)):m(g.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:o(e,"onElementChange"),onElementCreate:o(e,"onElementCreate"),onElementCreateEnd:o(e,"onElementCreateEnd"),onElementDelete:o(e,"onElementDelete"),onElementGroupChange:o(e,"onElementGroupChange"),createElement:t(e,"createElement"),updateElement:t(e,"updateElement"),deleteElement:t(e,"deleteElement")});var L=e=>({onPointerClick:o(e,"onPointerClick"),onPointerMove:o(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:o(e,"onLayerChange"),createLayersFromGeoJson:t(e,"createLayersFromGeoJson",async n=>{let{source:r}=n;return r.type==="geoJsonFile"?{...n,data:await r.file.arrayBuffer()}:n}),deleteLayer:t(e,"deleteLayer"),getLayerGroup:t(e,"getLayerGroup"),getLayerGroups:t(e,"getLayerGroups"),setLayerGroupVisibility:t(e,"setLayerGroupVisibility"),setLayerGroupLegendVisibility:t(e,"setLayerGroupLegendVisibility"),onLayerGroupChange:o(e,"onLayerGroupChange"),getLegendItem:t(e,"getLegendItem"),getLegendItems:t(e,"getLegendItems"),setLegendItemVisibility:t(e,"setLegendItemVisibility"),onLegendItemChange:o(e,"onLegendItemChange"),getLayerFilters:t(e,"getLayerFilters"),setLayerFilters:t(e,"setLayerFilters"),onLayerFiltersChange:o(e,"onLayerFiltersChange"),getRenderedFeatures:t(e,"getRenderedFeatures"),getFeature:t(e,"getFeature"),getGeoJsonFeature:t(e,"getGeoJsonFeature"),getCategoryData:t(e,"getCategoryData"),getHistogramData:t(e,"getHistogramData"),getAggregates:t(e,"getAggregates"),getLayerSchema:t(e,"getLayerSchema")});var T=e=>({getMapDetails:t(e,"getMapDetails")});var P=e=>({onSelectionChange:o(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:o(e,"onToolChange"),setToolSettings:t(e,"setToolSettings"),getToolSettings:t(e,"getToolSettings"),onToolSettingsChange:o(e,"onToolSettingsChange")});var v=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:o(e,"onViewportMove"),onViewportMoveEnd:o(e,"onViewportMoveEnd"),onMapIdle:o(e,"onMapIdle")});function F(e){return{iframe:null,...M(e),...v(e),...h(e),...C(e),...P(e),...L(e),...E(e),...T(e)}}var G={embed(e,n,r){let s={uiControls:{showLegend:!0,cooperativeGestures:!0,fullScreenButton:!0,geolocation:!1,zoomControls:!0,scaleBar:!0},initialViewport:void 0,origin:"https://felt.com"},a=r?.origin??s.origin,i=new URL(`${a}/embed/map/${n}`),m={showLegend:"legend",cooperativeGestures:"cooperativeGestures",fullScreenButton:"link",geolocation:"geolocation",zoomControls:"zoomControls",scaleBar:"scaleBar"},y={...s.uiControls,...r?.uiControls};for(let[p,d]of K(y))d!=null&&i.searchParams.set(m[p],d?"1":"0");if(r?.token&&i.searchParams.set("token",r.token),r?.initialViewport){let p=r.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(G.connect).then(p=>(Object.defineProperties(p,{iframe:{value:l,writable:!1,configurable:!1}}),p))},connect(e){let n=F(e);return new Promise((r,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=y=>{y.data===!0&&(clearInterval(m),clearTimeout(a),i.port1.close(),i.port2.close(),r(n))}})}},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, L as Layer, h as GetLayersConstraint, i as LayerChangeCallbackParams, j as GeoJsonArrayBufferSource, k as GeoJsonFileSource, l as GeoJsonUrlSource, m as LayerGroup, n as GetLayerGroupsConstraint, o as LayerGroupChangeCallbackParams, p as LegendItemIdentifier, q as LegendItem, r as LegendItemsConstraint, s as LegendItemChangeCallbackParams, t as LayerFilters, F as Filters, u as GetRenderedFeaturesConstraint, v as LayerFeature, w as GeoJsonFeature, x as GetLayerCategoriesParams, y as GetLayerCategoriesGroup, z as GetLayerHistogramParams, A as GetLayerHistogramBin, B as AggregationMethod, C as GetLayerCalculationParams, D as LayerSchema, M as MapInteractionEvent, H as MapDetails, I as EntityNode, J as FeatureSelection, T as ToolType, K as InputToolSettings, N as ConfigurableToolType, O as ToolSettingsMap, P as ToolSettingsChangeEvent, Q as zInfer, R as SortConfig, V as ViewportState, U as SetViewportCenterZoomParams, W as ViewportConstraints, X as ViewportFitBoundsParams, Y as ViewportCenterZoom } from './types-DrMm8Los.cjs';
2
- export { aC as AggregationConfig, Z as CircleElementCreate, _ as CircleElementRead, $ as CircleElementUpdate, aW as CircleToolSettings, aF as ElementGroupNode, aG as ElementNode, ap as EphemeralLayerSource, aH as FeatureNode, aK as FeltBoundary, aL as FeltZoom, az as FilterExpression, aA as FilterLogicGate, aB as FilterTernary, aM as GeoJsonProperties, a0 as HighlighterElementCreate, a1 as HighlighterElementRead, a2 as HighlighterElementUpdate, aX as HighlighterToolSettings, a3 as ImageElementCreate, a4 as ImageElementRead, a5 as ImageElementUpdate, aN as LatLng, aI as LayerGroupNode, aJ as LayerNode, aq as LayerProcessingStatus, as as LayerSchemaAttribute, at as LayerSchemaBooleanAttribute, au as LayerSchemaCommonAttribute, av as LayerSchemaDateAttribute, aw as LayerSchemaDateTimeAttribute, ax as LayerSchemaNumericAttribute, ay as LayerSchemaTextAttribute, aO as LineStringGeometry, aY as LineToolSettings, a6 as LinkElementRead, aP as LngLatTuple, a7 as MarkerElementCreate, a8 as MarkerElementRead, a9 as MarkerElementUpdate, aZ as MarkerToolSettings, aD as MultiAggregationConfig, aQ as MultiLineStringGeometry, aR as MultiPointGeometry, aS as MultiPolygonGeometry, aa as NoteElementCreate, ab as NoteElementRead, ac as NoteElementUpdate, a_ as NoteToolSettings, ad as PathElementCreate, ae as PathElementRead, af as PathElementUpdate, a$ as PinToolSettings, ag as PlaceElementCreate, ah as PlaceElementRead, ai as PlaceElementUpdate, b0 as PlaceFrame, b1 as PlaceSymbol, aT as PointGeometry, aj as PolygonElementCreate, ak as PolygonElementRead, al as PolygonElementUpdate, aU as PolygonGeometry, b2 as PolygonToolSettings, ar as RasterValue, b3 as RouteToolSettings, aV as SortDirection, am as TextElementCreate, an as TextElementRead, ao as TextElementUpdate, b4 as TextToolSettings, aE as ValueConfiguration } from './types-DrMm8Los.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, L as Layer, h as GetLayersConstraint, i as LayerChangeCallbackParams, C as CreateLayersFromGeoJsonParams, j as LayerGroup, k as GetLayerGroupsConstraint, l as LayerGroupChangeCallbackParams, m as LegendItemIdentifier, n as LegendItem, o as LegendItemsConstraint, p as LegendItemChangeCallbackParams, q as LayerFilters, F as Filters, r as GetRenderedFeaturesConstraint, s as LayerFeature, t as GeoJsonFeature, u as GetLayerCategoriesParams, v as GetLayerCategoriesGroup, w as GetLayerHistogramParams, x as GetLayerHistogramBin, A as AggregationMethod, y as GetLayerCalculationParams, z as LayerSchema, M as MapInteractionEvent, B as MapDetails, D as EntityNode, H as FeatureSelection, T as ToolType, I as InputToolSettings, J as ConfigurableToolType, K as ToolSettingsMap, N as ToolSettingsChangeEvent, O as zInfer, P as SortConfig, V as ViewportState, Q as SetViewportCenterZoomParams, R as ViewportConstraints, U as ViewportFitBoundsParams, W as ViewportCenterZoom } from './types-BQxcl9Qq.cjs';
2
+ export { aJ as AggregationConfig, X as CircleElementCreate, Y as CircleElementRead, Z as CircleElementUpdate, b2 as CircleToolSettings, an as DataOnlyLayer, aN as ElementGroupNode, aO as ElementNode, aP as FeatureNode, aS as FeltBoundary, ao as FeltTiledVectorSource, aT as FeltZoom, aG as FilterExpression, aH as FilterLogicGate, aI as FilterTernary, ap as GeoJsonDataVectorSource, aq as GeoJsonFileVectorSource, aU as GeoJsonProperties, ar as GeoJsonUrlVectorSource, aK as GeometryFilter, _ as HighlighterElementCreate, $ as HighlighterElementRead, a0 as HighlighterElementUpdate, b3 as HighlighterToolSettings, a1 as ImageElementCreate, a2 as ImageElementRead, a3 as ImageElementUpdate, aV as LatLng, as as LayerCommon, aQ as LayerGroupNode, aR as LayerNode, at as LayerProcessingStatus, az as LayerSchemaAttribute, aA as LayerSchemaBooleanAttribute, aB as LayerSchemaCommonAttribute, aC as LayerSchemaDateAttribute, aD as LayerSchemaDateTimeAttribute, aE as LayerSchemaNumericAttribute, aF as LayerSchemaTextAttribute, aW as LineStringGeometry, b4 as LineToolSettings, a4 as LinkElementRead, aX as LngLatTuple, a5 as MarkerElementCreate, a6 as MarkerElementRead, a7 as MarkerElementUpdate, b5 as MarkerToolSettings, aL as MultiAggregationConfig, aY as MultiLineStringGeometry, aZ as MultiPointGeometry, a_ as MultiPolygonGeometry, a8 as NoteElementCreate, a9 as NoteElementRead, aa as NoteElementUpdate, b6 as NoteToolSettings, ab as PathElementCreate, ac as PathElementRead, ad as PathElementUpdate, b7 as PinToolSettings, ae as PlaceElementCreate, af as PlaceElementRead, ag as PlaceElementUpdate, b8 as PlaceFrame, b9 as PlaceSymbol, a$ as PointGeometry, ah as PolygonElementCreate, ai as PolygonElementRead, aj as PolygonElementUpdate, b0 as PolygonGeometry, ba as PolygonToolSettings, au as RasterBand, av as RasterLayer, aw as RasterLayerSource, ax as RasterValue, bb as RouteToolSettings, b1 as SortDirection, ak as TextElementCreate, al as TextElementRead, am as TextElementUpdate, bc as TextToolSettings, aM as ValueConfiguration, ay as VectorLayer } from './types-BQxcl9Qq.cjs';
3
3
  import { z } from 'zod';
4
4
 
5
5
  /**
@@ -454,25 +454,36 @@ interface LayersController {
454
454
  *
455
455
  * @example
456
456
  * ```typescript
457
- * const layerFromFile = await felt.createLayer({
458
- * source: { type: "application/geo+json", name: "Parcels", file: someFile},
457
+ * const layerFromFile = await felt.createLayersFromGeoJson({
458
+ * source: {
459
+ * type: "geoJsonFile",
460
+ * file: someFile,
461
+ * },
462
+ * name: "Parcels",
459
463
  * });
460
464
  *
461
- * const layerFromUrl = await felt.createLayer({
462
- * source: { type: "application/geo+json", name: "Parcels", url: "https://example.com/parcels.geojson" },
463
- * });
465
+ * const layerFromUrl = await felt.createLayersFromGeoJson({
466
+ * source: {
467
+ * sourceType: "geoJsonUrl",
468
+ * url: "https://example.com/parcels.geojson",
469
+ * },
470
+ * name: "Parcels",
464
471
  * ```
465
472
  */
466
- createLayer(params: {
473
+ createLayersFromGeoJson(params: CreateLayersFromGeoJsonParams): Promise<{
474
+ /**
475
+ * The layer group that was created containing the created layers.
476
+ */
477
+ layerGroup: LayerGroup;
467
478
  /**
468
- * The source that you want to add to the map. These can be GeoJSON files or URLs.
479
+ * The layers that were created from the source.
469
480
  */
470
- source: GeoJsonArrayBufferSource | GeoJsonFileSource | GeoJsonUrlSource;
471
- }): Promise<LayerGroup | null>;
481
+ layers: Array<Layer>;
482
+ } | null>;
472
483
  /**
473
484
  * Delete a layer from the map by its id.
474
485
  *
475
- * @remarks This only works for layers created via the SDK `createLayer` method, not layers added via the Felt UI.
486
+ * @remarks This only works for layers created via the SDK `createLayersFromGeoJson` method, not layers added via the Felt UI.
476
487
  *
477
488
  * @example
478
489
  * ```typescript
@@ -1768,4 +1779,4 @@ declare const Felt: {
1768
1779
  connect(feltWindow: Pick<Window, "postMessage">): Promise<FeltController>;
1769
1780
  };
1770
1781
 
1771
- export { AggregationMethod, ConfigurableToolType, Element, ElementChangeCallbackParams, ElementCreate, ElementGroup, ElementGroupChangeCallbackParams, ElementUpdate, type ElementsController, EntityNode, FeatureSelection, Felt, type FeltController, type FeltEmbedOptions, Filters, GeoJsonArrayBufferSource, GeoJsonFeature, GeoJsonFileSource, GeoJsonGeometry, GeoJsonUrlSource, GetElementGroupsConstraint, GetElementsConstraint, GetLayerCalculationParams, GetLayerCategoriesGroup, GetLayerCategoriesParams, GetLayerGroupsConstraint, GetLayerHistogramBin, GetLayerHistogramParams, GetLayersConstraint, GetRenderedFeaturesConstraint, InputToolSettings, type InteractionsController, Layer, LayerChangeCallbackParams, LayerFeature, LayerFilters, LayerGroup, LayerGroupChangeCallbackParams, LayerSchema, type LayersController, LegendItem, LegendItemChangeCallbackParams, LegendItemIdentifier, LegendItemsConstraint, MapDetails, MapInteractionEvent, type MiscController, type UiOnMapInteractionsOptions as OnMapInteractionsOptions, type SelectionController, SetViewportCenterZoomParams, SetVisibilityRequest, SortConfig, ToolSettingsChangeEvent, ToolSettingsMap, ToolType, type ToolsController, type UiController, type UiControlsOptions, ViewportCenterZoom, ViewportConstraints, type ViewportController, ViewportFitBoundsParams, ViewportState };
1782
+ export { AggregationMethod, ConfigurableToolType, CreateLayersFromGeoJsonParams, Element, ElementChangeCallbackParams, ElementCreate, ElementGroup, ElementGroupChangeCallbackParams, ElementUpdate, type ElementsController, EntityNode, FeatureSelection, Felt, type FeltController, type FeltEmbedOptions, Filters, GeoJsonFeature, GeoJsonGeometry, GetElementGroupsConstraint, GetElementsConstraint, GetLayerCalculationParams, GetLayerCategoriesGroup, GetLayerCategoriesParams, GetLayerGroupsConstraint, GetLayerHistogramBin, GetLayerHistogramParams, GetLayersConstraint, GetRenderedFeaturesConstraint, InputToolSettings, type InteractionsController, Layer, LayerChangeCallbackParams, LayerFeature, LayerFilters, LayerGroup, LayerGroupChangeCallbackParams, LayerSchema, type LayersController, LegendItem, LegendItemChangeCallbackParams, LegendItemIdentifier, LegendItemsConstraint, MapDetails, MapInteractionEvent, type MiscController, type UiOnMapInteractionsOptions as OnMapInteractionsOptions, type SelectionController, SetViewportCenterZoomParams, SetVisibilityRequest, SortConfig, ToolSettingsChangeEvent, ToolSettingsMap, ToolType, type ToolsController, type UiController, type UiControlsOptions, ViewportCenterZoom, ViewportConstraints, type ViewportController, ViewportFitBoundsParams, ViewportState };
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, L as Layer, h as GetLayersConstraint, i as LayerChangeCallbackParams, j as GeoJsonArrayBufferSource, k as GeoJsonFileSource, l as GeoJsonUrlSource, m as LayerGroup, n as GetLayerGroupsConstraint, o as LayerGroupChangeCallbackParams, p as LegendItemIdentifier, q as LegendItem, r as LegendItemsConstraint, s as LegendItemChangeCallbackParams, t as LayerFilters, F as Filters, u as GetRenderedFeaturesConstraint, v as LayerFeature, w as GeoJsonFeature, x as GetLayerCategoriesParams, y as GetLayerCategoriesGroup, z as GetLayerHistogramParams, A as GetLayerHistogramBin, B as AggregationMethod, C as GetLayerCalculationParams, D as LayerSchema, M as MapInteractionEvent, H as MapDetails, I as EntityNode, J as FeatureSelection, T as ToolType, K as InputToolSettings, N as ConfigurableToolType, O as ToolSettingsMap, P as ToolSettingsChangeEvent, Q as zInfer, R as SortConfig, V as ViewportState, U as SetViewportCenterZoomParams, W as ViewportConstraints, X as ViewportFitBoundsParams, Y as ViewportCenterZoom } from './types-DrMm8Los.js';
2
- export { aC as AggregationConfig, Z as CircleElementCreate, _ as CircleElementRead, $ as CircleElementUpdate, aW as CircleToolSettings, aF as ElementGroupNode, aG as ElementNode, ap as EphemeralLayerSource, aH as FeatureNode, aK as FeltBoundary, aL as FeltZoom, az as FilterExpression, aA as FilterLogicGate, aB as FilterTernary, aM as GeoJsonProperties, a0 as HighlighterElementCreate, a1 as HighlighterElementRead, a2 as HighlighterElementUpdate, aX as HighlighterToolSettings, a3 as ImageElementCreate, a4 as ImageElementRead, a5 as ImageElementUpdate, aN as LatLng, aI as LayerGroupNode, aJ as LayerNode, aq as LayerProcessingStatus, as as LayerSchemaAttribute, at as LayerSchemaBooleanAttribute, au as LayerSchemaCommonAttribute, av as LayerSchemaDateAttribute, aw as LayerSchemaDateTimeAttribute, ax as LayerSchemaNumericAttribute, ay as LayerSchemaTextAttribute, aO as LineStringGeometry, aY as LineToolSettings, a6 as LinkElementRead, aP as LngLatTuple, a7 as MarkerElementCreate, a8 as MarkerElementRead, a9 as MarkerElementUpdate, aZ as MarkerToolSettings, aD as MultiAggregationConfig, aQ as MultiLineStringGeometry, aR as MultiPointGeometry, aS as MultiPolygonGeometry, aa as NoteElementCreate, ab as NoteElementRead, ac as NoteElementUpdate, a_ as NoteToolSettings, ad as PathElementCreate, ae as PathElementRead, af as PathElementUpdate, a$ as PinToolSettings, ag as PlaceElementCreate, ah as PlaceElementRead, ai as PlaceElementUpdate, b0 as PlaceFrame, b1 as PlaceSymbol, aT as PointGeometry, aj as PolygonElementCreate, ak as PolygonElementRead, al as PolygonElementUpdate, aU as PolygonGeometry, b2 as PolygonToolSettings, ar as RasterValue, b3 as RouteToolSettings, aV as SortDirection, am as TextElementCreate, an as TextElementRead, ao as TextElementUpdate, b4 as TextToolSettings, aE as ValueConfiguration } from './types-DrMm8Los.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, L as Layer, h as GetLayersConstraint, i as LayerChangeCallbackParams, C as CreateLayersFromGeoJsonParams, j as LayerGroup, k as GetLayerGroupsConstraint, l as LayerGroupChangeCallbackParams, m as LegendItemIdentifier, n as LegendItem, o as LegendItemsConstraint, p as LegendItemChangeCallbackParams, q as LayerFilters, F as Filters, r as GetRenderedFeaturesConstraint, s as LayerFeature, t as GeoJsonFeature, u as GetLayerCategoriesParams, v as GetLayerCategoriesGroup, w as GetLayerHistogramParams, x as GetLayerHistogramBin, A as AggregationMethod, y as GetLayerCalculationParams, z as LayerSchema, M as MapInteractionEvent, B as MapDetails, D as EntityNode, H as FeatureSelection, T as ToolType, I as InputToolSettings, J as ConfigurableToolType, K as ToolSettingsMap, N as ToolSettingsChangeEvent, O as zInfer, P as SortConfig, V as ViewportState, Q as SetViewportCenterZoomParams, R as ViewportConstraints, U as ViewportFitBoundsParams, W as ViewportCenterZoom } from './types-BQxcl9Qq.js';
2
+ export { aJ as AggregationConfig, X as CircleElementCreate, Y as CircleElementRead, Z as CircleElementUpdate, b2 as CircleToolSettings, an as DataOnlyLayer, aN as ElementGroupNode, aO as ElementNode, aP as FeatureNode, aS as FeltBoundary, ao as FeltTiledVectorSource, aT as FeltZoom, aG as FilterExpression, aH as FilterLogicGate, aI as FilterTernary, ap as GeoJsonDataVectorSource, aq as GeoJsonFileVectorSource, aU as GeoJsonProperties, ar as GeoJsonUrlVectorSource, aK as GeometryFilter, _ as HighlighterElementCreate, $ as HighlighterElementRead, a0 as HighlighterElementUpdate, b3 as HighlighterToolSettings, a1 as ImageElementCreate, a2 as ImageElementRead, a3 as ImageElementUpdate, aV as LatLng, as as LayerCommon, aQ as LayerGroupNode, aR as LayerNode, at as LayerProcessingStatus, az as LayerSchemaAttribute, aA as LayerSchemaBooleanAttribute, aB as LayerSchemaCommonAttribute, aC as LayerSchemaDateAttribute, aD as LayerSchemaDateTimeAttribute, aE as LayerSchemaNumericAttribute, aF as LayerSchemaTextAttribute, aW as LineStringGeometry, b4 as LineToolSettings, a4 as LinkElementRead, aX as LngLatTuple, a5 as MarkerElementCreate, a6 as MarkerElementRead, a7 as MarkerElementUpdate, b5 as MarkerToolSettings, aL as MultiAggregationConfig, aY as MultiLineStringGeometry, aZ as MultiPointGeometry, a_ as MultiPolygonGeometry, a8 as NoteElementCreate, a9 as NoteElementRead, aa as NoteElementUpdate, b6 as NoteToolSettings, ab as PathElementCreate, ac as PathElementRead, ad as PathElementUpdate, b7 as PinToolSettings, ae as PlaceElementCreate, af as PlaceElementRead, ag as PlaceElementUpdate, b8 as PlaceFrame, b9 as PlaceSymbol, a$ as PointGeometry, ah as PolygonElementCreate, ai as PolygonElementRead, aj as PolygonElementUpdate, b0 as PolygonGeometry, ba as PolygonToolSettings, au as RasterBand, av as RasterLayer, aw as RasterLayerSource, ax as RasterValue, bb as RouteToolSettings, b1 as SortDirection, ak as TextElementCreate, al as TextElementRead, am as TextElementUpdate, bc as TextToolSettings, aM as ValueConfiguration, ay as VectorLayer } from './types-BQxcl9Qq.js';
3
3
  import { z } from 'zod';
4
4
 
5
5
  /**
@@ -454,25 +454,36 @@ interface LayersController {
454
454
  *
455
455
  * @example
456
456
  * ```typescript
457
- * const layerFromFile = await felt.createLayer({
458
- * source: { type: "application/geo+json", name: "Parcels", file: someFile},
457
+ * const layerFromFile = await felt.createLayersFromGeoJson({
458
+ * source: {
459
+ * type: "geoJsonFile",
460
+ * file: someFile,
461
+ * },
462
+ * name: "Parcels",
459
463
  * });
460
464
  *
461
- * const layerFromUrl = await felt.createLayer({
462
- * source: { type: "application/geo+json", name: "Parcels", url: "https://example.com/parcels.geojson" },
463
- * });
465
+ * const layerFromUrl = await felt.createLayersFromGeoJson({
466
+ * source: {
467
+ * sourceType: "geoJsonUrl",
468
+ * url: "https://example.com/parcels.geojson",
469
+ * },
470
+ * name: "Parcels",
464
471
  * ```
465
472
  */
466
- createLayer(params: {
473
+ createLayersFromGeoJson(params: CreateLayersFromGeoJsonParams): Promise<{
474
+ /**
475
+ * The layer group that was created containing the created layers.
476
+ */
477
+ layerGroup: LayerGroup;
467
478
  /**
468
- * The source that you want to add to the map. These can be GeoJSON files or URLs.
479
+ * The layers that were created from the source.
469
480
  */
470
- source: GeoJsonArrayBufferSource | GeoJsonFileSource | GeoJsonUrlSource;
471
- }): Promise<LayerGroup | null>;
481
+ layers: Array<Layer>;
482
+ } | null>;
472
483
  /**
473
484
  * Delete a layer from the map by its id.
474
485
  *
475
- * @remarks This only works for layers created via the SDK `createLayer` method, not layers added via the Felt UI.
486
+ * @remarks This only works for layers created via the SDK `createLayersFromGeoJson` method, not layers added via the Felt UI.
476
487
  *
477
488
  * @example
478
489
  * ```typescript
@@ -1768,4 +1779,4 @@ declare const Felt: {
1768
1779
  connect(feltWindow: Pick<Window, "postMessage">): Promise<FeltController>;
1769
1780
  };
1770
1781
 
1771
- export { AggregationMethod, ConfigurableToolType, Element, ElementChangeCallbackParams, ElementCreate, ElementGroup, ElementGroupChangeCallbackParams, ElementUpdate, type ElementsController, EntityNode, FeatureSelection, Felt, type FeltController, type FeltEmbedOptions, Filters, GeoJsonArrayBufferSource, GeoJsonFeature, GeoJsonFileSource, GeoJsonGeometry, GeoJsonUrlSource, GetElementGroupsConstraint, GetElementsConstraint, GetLayerCalculationParams, GetLayerCategoriesGroup, GetLayerCategoriesParams, GetLayerGroupsConstraint, GetLayerHistogramBin, GetLayerHistogramParams, GetLayersConstraint, GetRenderedFeaturesConstraint, InputToolSettings, type InteractionsController, Layer, LayerChangeCallbackParams, LayerFeature, LayerFilters, LayerGroup, LayerGroupChangeCallbackParams, LayerSchema, type LayersController, LegendItem, LegendItemChangeCallbackParams, LegendItemIdentifier, LegendItemsConstraint, MapDetails, MapInteractionEvent, type MiscController, type UiOnMapInteractionsOptions as OnMapInteractionsOptions, type SelectionController, SetViewportCenterZoomParams, SetVisibilityRequest, SortConfig, ToolSettingsChangeEvent, ToolSettingsMap, ToolType, type ToolsController, type UiController, type UiControlsOptions, ViewportCenterZoom, ViewportConstraints, type ViewportController, ViewportFitBoundsParams, ViewportState };
1782
+ export { AggregationMethod, ConfigurableToolType, CreateLayersFromGeoJsonParams, Element, ElementChangeCallbackParams, ElementCreate, ElementGroup, ElementGroupChangeCallbackParams, ElementUpdate, type ElementsController, EntityNode, FeatureSelection, Felt, type FeltController, type FeltEmbedOptions, Filters, GeoJsonFeature, GeoJsonGeometry, GetElementGroupsConstraint, GetElementsConstraint, GetLayerCalculationParams, GetLayerCategoriesGroup, GetLayerCategoriesParams, GetLayerGroupsConstraint, GetLayerHistogramBin, GetLayerHistogramParams, GetLayersConstraint, GetRenderedFeaturesConstraint, InputToolSettings, type InteractionsController, Layer, LayerChangeCallbackParams, LayerFeature, LayerFilters, LayerGroup, LayerGroupChangeCallbackParams, LayerSchema, type LayersController, LegendItem, LegendItemChangeCallbackParams, LegendItemIdentifier, LegendItemsConstraint, MapDetails, MapInteractionEvent, type MiscController, type UiOnMapInteractionsOptions as OnMapInteractionsOptions, type SelectionController, SetViewportCenterZoomParams, SetVisibilityRequest, SortConfig, ToolSettingsChangeEvent, ToolSettingsMap, ToolType, type ToolsController, type UiController, type UiControlsOptions, ViewportCenterZoom, ViewportConstraints, type ViewportController, ViewportFitBoundsParams, ViewportState };
package/dist/client.js CHANGED
@@ -1 +1 @@
1
- import{a as c}from"./chunk-QXPO53SH.js";function r(e,n){return o=>{let s=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:n,id:m,options:a}:{eventName:n,id:m}},"*",[s.port2]),s.port1.onmessage=g=>{c(g)||l(g.data)},()=>{s.port1.onmessage=null,s.port1.close(),s.port2.close(),e.postMessage({type:"felt.removeListener",id:m},"*")}}}function t(e,n,o){return async s=>{let l=new MessageChannel,a=s&&o?await o(s):s;return e.postMessage({type:n,params:a},"*",[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()}})}}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 L=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"),createLayer:t(e,"createLayer",async n=>"url"in n.source||"arrayBuffer"in n.source?n:{source:{...n.source,arrayBuffer:await n.source.file.arrayBuffer()}}),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"),getGeoJsonFeature:t(e,"getGeoJsonFeature"),getCategoryData:t(e,"getCategoryData"),getHistogramData:t(e,"getHistogramData"),getAggregates:t(e,"getAggregates"),getLayerSchema:t(e,"getLayerSchema")});var h=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 P=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 E=e=>({updateUiControls:t(e,"updateUiControls"),setOnMapInteractionsUi:t(e,"setOnMapInteractionsUi"),showLayerDataTable:t(e,"showLayerDataTable"),hideLayerDataTable:t(e,"hideLayerDataTable")});var v=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,...v(e),...E(e),...L(e),...u(e),...T(e),...C(e),...P(e),...h(e)}}var F={embed(e,n,o){let s={uiControls:{showLegend:!0,cooperativeGestures:!0,fullScreenButton:!0,geolocation:!1,zoomControls:!0,scaleBar:!0},initialViewport:void 0,origin:"https://felt.com"},l=o?.origin??s.origin,a=new URL(`${l}/embed/map/${n}`),m={showLegend:"legend",cooperativeGestures:"cooperativeGestures",fullScreenButton:"link",geolocation:"geolocation",zoomControls:"zoomControls",scaleBar:"scaleBar"},g={...s.uiControls,...o?.uiControls};for(let[p,d]of G(g))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 y=e.tagName==="IFRAME",i=y?e:e.ownerDocument.createElement("iframe");return i.src=a.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(F.connect).then(p=>(Object.defineProperties(p,{iframe:{value:i,writable:!1,configurable:!1}}),p))},connect(e){let n=M(e);return new Promise((o,s)=>{let l=setTimeout(()=>{s(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=g=>{g.data===!0&&(clearInterval(m),clearTimeout(l),a.port1.close(),a.port2.close(),o(n))}})}},G=Object.entries;export{F as Felt};
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=y=>{c(y)||l(y.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,y)=>{l.port1.onmessage=g=>{c(g)?y(new Error(g.data.__error__)):m(g.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 L=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",async a=>{let{source:o}=a;return o.type==="geoJsonFile"?{...a,data:await o.file.arrayBuffer()}:a}),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"),getGeoJsonFeature:t(e,"getGeoJsonFeature"),getCategoryData:t(e,"getCategoryData"),getHistogramData:t(e,"getHistogramData"),getAggregates:t(e,"getAggregates"),getLayerSchema:t(e,"getLayerSchema")});var h=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 P=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 E=e=>({updateUiControls:t(e,"updateUiControls"),setOnMapInteractionsUi:t(e,"setOnMapInteractionsUi"),showLayerDataTable:t(e,"showLayerDataTable"),hideLayerDataTable:t(e,"hideLayerDataTable")});var v=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,...v(e),...E(e),...L(e),...u(e),...T(e),...C(e),...P(e),...h(e)}}var F={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"},y={...n.uiControls,...o?.uiControls};for(let[p,d]of G(y))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 g=e.tagName==="IFRAME",i=g?e:e.ownerDocument.createElement("iframe");return i.src=s.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(F.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=y=>{y.data===!0&&(clearInterval(m),clearTimeout(l),s.port1.close(),s.port2.close(),o(a))}})}},G=Object.entries;export{F as Felt};
package/dist/handler.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var oe=Object.defineProperty;var it=Object.getOwnPropertyDescriptor;var st=Object.getOwnPropertyNames;var lt=Object.prototype.hasOwnProperty;var pt=(o,l)=>{for(var G in l)oe(o,G,{get:l[G],enumerable:!0})},mt=(o,l,G,z)=>{if(l&&typeof l=="object"||typeof l=="function")for(let b of st(l))!lt.call(o,b)&&b!==G&&oe(o,b,{get:()=>l[b],enumerable:!(z=it(l,b))||z.enumerable});return o};var ct=o=>mt(oe({},"__esModule",{value:!0}),o);var yr={};pt(yr,{createMessageHandler:()=>sr});module.exports=ct(yr);var g=require("zod");function re(o){return{__error__:gt(o)}}function gt(o){return o instanceof Error?o.message:typeof o=="object"&&o!==null&&"message"in o?String(o.message):typeof o=="string"?o:"Unknown error"}var d=require("zod");var f=require("zod");function t(o,l){return f.z.strictObject({type:f.z.literal(o),params:l})}function S(o,l){return f.z.strictObject({eventName:f.z.literal(o),id:f.z.string(),options:l})}function p(o){return f.z.strictObject({eventName:f.z.literal(o),id:f.z.string()})}var i=require("zod"),H=i.z.number(),D=i.z.number(),Z=i.z.object({latitude:D,longitude:H}),C=i.z.tuple([H,D]),P=i.z.object({type:i.z.literal("Polygon"),coordinates:i.z.array(i.z.array(C).min(4).refine(o=>o[0][0]===o[o.length-1][0]&&o[0][1]===o[o.length-1][1],"The last point of each ring must be identical to the first"))}),fe=i.z.object({type:i.z.literal("MultiPolygon"),coordinates:i.z.array(P.shape.coordinates)}),yt=i.z.object({type:i.z.literal("LineString"),coordinates:i.z.array(C).min(2)}),w=i.z.object({type:i.z.literal("MultiLineString"),coordinates:i.z.array(yt.shape.coordinates)}),Se=i.z.number().min(1).max(23),I=i.z.tuple([H,D,H,D]),T=i.z.object({show:i.z.array(i.z.string()).optional(),hide:i.z.array(i.z.string()).optional()}),dt=i.z.enum(["asc","desc"]),xe=i.z.object({attribute:i.z.string(),direction:dt});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()}),Q=e.z.object({imageUrl:e.z.string().nullable()}),ne=e.z.object({strokeOpacity:e.z.number(),strokeWidth:e.z.number(),strokeStyle:e.z.enum(["solid","dashed","dotted"])}),ut=e.z.enum(["meter","kilometer","foot","mile"]),q=h.extend(Q.shape).extend({type:e.z.literal("Place"),coordinates:C,symbol:e.z.string(),frame:e.z.enum(["frame-circle","frame-square"]).nullable(),hideLabel:e.z.boolean()}),V=h.extend(Q.shape).extend(ne.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(Q.shape).extend(ne.shape).extend({type:e.z.literal("Polygon"),coordinates:P.shape.coordinates,fillOpacity:e.z.number().min(0).max(1),areaMarker:e.z.boolean()}),J=h.extend(Q.shape).extend(ne.shape).extend({type:e.z.literal("Circle"),center:C,radius:e.z.number(),radiusMarker:e.z.boolean(),radiusDisplayAngle:e.z.number(),radiusDisplayUnit:ut.nullable(),fillOpacity:e.z.number().min(0).max(1)}),U=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)}),j=h.extend({type:e.z.literal("Highlighter"),coordinates:fe.shape.coordinates,renderHoles:e.z.boolean(),opacity:e.z.number().min(0).max(1)}),Le=e.z.object({position:C,rotation:e.z.number(),scale:e.z.number(),zoom:e.z.number().min(0).max(23),coordinates:P.shape.coordinates}),Me=e.z.object({text:e.z.string(),align:e.z.enum(["left","center","right"]),style:e.z.enum(["italic","light","regular","caps"]),name:e.z.string()}),_=h.extend(Le.shape).extend(Me.shape).extend({type:e.z.literal("Text")}),W=h.extend(Le.shape).extend(Me.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}),ht=h.extend({type:e.z.literal("Link"),coordinates:w.shape.coordinates,url:e.z.string()}),F={type:!0,coordinates:!0},x={id:!0},ae=q.partial().extend(q.pick(F).shape).omit(x),$=V.partial().extend(V.pick(F).shape).omit(x),ie=O.partial().extend(O.pick(F).shape).omit(x),se=J.partial().extend(J.pick({type:!0,center:!0,radius:!0}).shape).omit(x),le=U.partial().extend(U.pick(F).shape).omit(x),pe=j.partial().extend(j.pick(F).shape).omit(x),me=_.partial().omit({...x,coordinates:!0,name:!0,type:!0}).extend({type:e.z.literal("Text"),text:e.z.string()}),ce=W.partial().omit({...x,coordinates:!0,name:!0,type:!0}).extend({type:e.z.literal("Note"),text:e.z.string()}),ft=N.partial().extend(N.pick({...F,imageUrl:!0}).shape).omit(x),be=e.z.discriminatedUnion("type",[ae,$,ie,se,le,pe,ft,me,ce]);var Lr=V.omit({coordinates:!0}),Mr=O.omit({coordinates:!0});var br=U.omit({coordinates:!0}),Cr=j.omit({coordinates:!0}),Gr=_.omit({coordinates:!0}),Ir=W.omit({coordinates:!0}),Tr=N.omit({coordinates:!0}),Er=ht.omit({coordinates:!0}),L={type:!0,id:!0},St=q.partial().extend(q.pick(L).shape),xt=V.partial().extend(V.pick(L).shape),Lt=O.partial().extend(O.pick(L).shape),Mt=J.partial().extend(J.pick(L).shape),bt=U.partial().extend(U.pick(L).shape),Ct=j.partial().extend(j.pick(L).shape),Gt=_.partial().extend(_.pick(L).shape).omit({coordinates:!0,name:!0}),It=W.partial().extend(W.pick(L).shape).omit({coordinates:!0,name:!0}),Tt=N.partial().extend(N.pick(L).shape),Ce=e.z.discriminatedUnion("type",[St,xt,Lt,Mt,bt,Ct,Gt,It,Tt]),Ge=e.z.object({ids:e.z.array(e.z.string()).optional()}),Ie=e.z.object({ids:e.z.array(e.z.string()).optional()});var Et=t("getElement",d.z.string()),zt=t("getElementGeometry",d.z.string()),Pt=t("getElements",Ge.optional()),Ft=t("getElementGroup",d.z.string()),kt=t("getElementGroups",Ie.optional()),vt=t("setElementGroupVisibility",T),wt=S("onElementChange",d.z.object({id:d.z.string()})),Vt=p("onElementCreate"),Ot=p("onElementCreateEnd"),Ut=S("onElementDelete",d.z.object({id:d.z.string()})),jt=S("onElementGroupChange",d.z.object({id:d.z.string()})),Nt=t("createElement",be),Rt=t("updateElement",Ce),At=t("deleteElement",d.z.string()),Te={methods:[Et,zt,Pt,Ft,kt,vt,Nt,Rt,At],listeners:[wt,Vt,Ot,Ut,jt]};var Bt=p("onPointerClick"),Ht=p("onPointerMove"),Ee={methods:null,listeners:[Bt,Ht]};var s=require("zod");var a=require("zod"),Dt=a.z.enum(["in","ni"]),Zt=a.z.enum(["lt","gt","le","ge","eq","ne","cn","nc","is","isnt"]),Or=a.z.enum(["and","or"]),ze=a.z.union([a.z.number(),a.z.string(),a.z.boolean(),a.z.null()]),Pe=a.z.string().or(a.z.null()),qt=a.z.tuple([Pe,Dt,a.z.array(ze).or(a.z.null())]),Jt=a.z.tuple([Pe,Zt,ze]),ge=a.z.union([qt,Jt]),ye=a.z.tuple([a.z.lazy(()=>a.z.union([ye,ge,a.z.null(),a.z.boolean()])),a.z.enum(["and","or"]),a.z.lazy(()=>a.z.union([ye,ge,a.z.null(),a.z.boolean()]))]),E=a.z.union([ye,ge,a.z.null(),a.z.boolean()]);var r=require("zod");var Fe=r.z.enum(["avg","max","min","sum","median"]),_t=r.z.object({method:Fe,attribute:r.z.string()}),Wt=r.z.object({methods:r.z.array(r.z.union([Fe,r.z.literal("count")])),attribute:r.z.string().optional()}),K=r.z.union([I,P,r.z.array(C)]),ke=r.z.object({boundary:K.optional(),filters:E.optional(),aggregation:_t.optional()}),ve=r.z.object({layerId:r.z.string(),attribute:r.z.string(),limit:r.z.number().optional(),boundary:K.optional(),filters:E.optional(),values:ke.optional()}),Rr=r.z.object({key:r.z.union([r.z.number(),r.z.string(),r.z.boolean()]),value:r.z.number().nullable()}),Qt=r.z.object({type:r.z.literal("equal-intervals"),count:r.z.number()}),$t=r.z.object({type:r.z.literal("time-interval"),interval:r.z.enum(["hour","day","week","month","year"])}),we=r.z.object({layerId:r.z.string(),attribute:r.z.string(),steps:r.z.union([Qt,$t,r.z.array(r.z.number())]),boundary:K.optional(),filters:E.optional(),values:ke.optional()}),Ar=r.z.object({min:r.z.number(),max:r.z.number(),value:r.z.number()}),Ve=r.z.object({layerId:r.z.string(),boundary:K.optional(),filters:E.optional(),aggregation:Wt});var n=require("zod");var Dr=n.z.enum(["processing","completed","failed","incomplete"]),Oe=n.z.object({ids:n.z.array(n.z.string()).optional()}),Ue=n.z.object({ids:n.z.array(n.z.string()).optional()}),k=n.z.object({id:n.z.string(),layerId:n.z.string()}),je=n.z.object({ids:k.array().optional(),layerIds:n.z.string().array().optional()}),Ne=n.z.object({layerIds:n.z.array(n.z.string()).optional(),areaQuery:n.z.union([n.z.object({coordinates:Z}),n.z.object({boundary:I})]).optional()}),Kt=n.z.object({Point:n.z.object({}).passthrough().optional(),Line:n.z.object({}).passthrough().optional(),Polygon:n.z.object({}).passthrough().optional()}),de=n.z.object({type:n.z.literal("application/geo+json"),name:n.z.string(),geometryStyles:Kt.optional()}),Xt=de.extend({file:n.z.instanceof(File)}),Yt=de.extend({url:n.z.string().url()}),eo=de.extend({arrayBuffer:n.z.instanceof(ArrayBuffer)}),Re=n.z.union([eo,Xt,Yt]);var to=t("getLayer",s.z.string()),oo=t("getLayers",Oe.optional()),ro=t("setLayerVisibility",T),no=S("onLayerChange",s.z.object({id:s.z.string()})),ao=t("setLayerStyle",s.z.object({id:s.z.string(),style:s.z.object({}).passthrough()})),io=t("setLayerLegendVisibility",T),so=t("createLayer",s.z.object({source:Re})),lo=t("deleteLayer",s.z.string()),po=t("getLayerGroup",s.z.string()),mo=t("getLayerGroups",Ue.optional()),co=t("setLayerGroupVisibility",T),go=t("setLayerGroupLegendVisibility",T),yo=S("onLayerGroupChange",s.z.object({id:s.z.string()})),uo=t("getLegendItem",k),ho=t("getLegendItems",je.optional()),fo=S("onLegendItemChange",k),So=t("setLegendItemVisibility",s.z.object({show:k.array().optional(),hide:k.array().optional()})),xo=t("getLayerFilters",s.z.string()),Lo=t("setLayerFilters",s.z.object({layerId:s.z.string(),filters:E,note:s.z.string().optional()})),Mo=S("onLayerFiltersChange",s.z.object({layerId:s.z.string()})),bo=t("getRenderedFeatures",Ne.optional()),Co=t("getFeature",s.z.object({id:s.z.string().or(s.z.number()),layerId:s.z.string()})),Go=t("getGeoJsonFeature",s.z.object({id:s.z.string().or(s.z.number()),layerId:s.z.string()})),Io=t("getCategoryData",ve),To=t("getHistogramData",we),Eo=t("getAggregates",Ve),zo=t("getLayerSchema",s.z.string()),Ae={methods:[to,oo,ro,ao,io,so,lo,po,mo,co,go,uo,ho,So,xo,Lo,bo,Co,Go,Io,To,Eo,zo],listeners:[no,yo,fo,Mo]};var Be=require("zod");var Po=t("getMapDetails",Be.z.undefined()),He={methods:[Po],listeners:[]};var R=require("zod");var M=require("zod"),De=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",R.z.undefined()),ko=p("onSelectionChange"),vo=t("selectFeature",De),wo=t("clearSelection",R.z.object({features:R.z.boolean().optional(),elements:R.z.boolean().optional()}).optional()),Ze={methods:[Fo,vo,wo],listeners:[ko]};var Qe=require("zod");var m=require("zod");var qe=["pin","line","route","polygon","circle","marker","highlighter","text","note"],Je=m.z.enum([...qe,"link"]),_e=m.z.enum(qe),Vo=ae.pick({color:!0,symbol:!0,frame:!0}).extend({afterCreation:m.z.enum(["enter name","add another","select"])}).required(),Oo=$.pick({color:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,distanceMarker:!0}).required(),Uo=$.pick({color:!0,routingMode:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,distanceMarker:!0,endCaps:!0}).required(),jo=ie.pick({color:!0,fillOpacity:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,areaMarker:!0}).required(),No=se.pick({color:!0,fillOpacity:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,radiusMarker:!0}).required(),Ro=le.pick({color:!0,opacity:!0,size:!0}).required(),Ao=pe.pick({color:!0,opacity:!0,renderHoles:!0}).extend({size:m.z.number().min(0).max(200)}).required(),Bo=me.pick({color:!0,align:!0,style:!0}).required(),Ho=ce.pick({color:!0,align:!0,style:!0}).required(),We=m.z.discriminatedUnion("tool",[Vo.partial().extend({tool:m.z.literal("pin")}),Oo.partial().extend({tool:m.z.literal("line")}),Uo.partial().extend({tool:m.z.literal("route")}),jo.partial().extend({tool:m.z.literal("polygon")}),No.partial().extend({tool:m.z.literal("circle")}),Ro.partial().extend({tool:m.z.literal("marker")}),Ao.partial().extend({tool:m.z.literal("highlighter")}),Bo.partial().extend({tool:m.z.literal("text")}),Ho.partial().extend({tool:m.z.literal("note")})]);var Do=t("setTool",Je.nullable()),Zo=t("getTool",Qe.z.undefined()),qo=p("onToolChange"),Jo=t("setToolSettings",We),_o=t("getToolSettings",_e),Wo=p("onToolSettingsChange"),$e={methods:[Do,Zo,Jo,_o],listeners:[qo,Wo]};var X=require("zod");var c=require("zod"),Ke=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()}),Xe=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",Ke),$o=t("setOnMapInteractionsUi",Xe),Ko=t("showLayerDataTable",X.z.object({layerId:X.z.string(),sorting:xe.optional()}).optional()),Xo=t("hideLayerDataTable",X.z.undefined()),Ye={methods:[Qo,$o,Ko,Xo],listeners:null};var ue=require("zod");var A=require("zod");var Y=A.z.object({center:Z,zoom:Se}),et=A.z.object({center:Y.shape.center.optional(),zoom:Y.shape.zoom.optional()}),tt=A.z.object({minZoom:Y.shape.zoom.nullish(),maxZoom:Y.shape.zoom.nullish(),bounds:I.nullish()}).nullable(),ot=A.z.object({bounds:I});var Yo=t("getViewport",ue.z.undefined()),er=t("setViewport",et),tr=t("getViewportConstraints",ue.z.undefined()),or=t("setViewportConstraints",tt),rr=t("fitViewportToBounds",ot),nr=p("onViewportMove"),ar=p("onViewportMoveEnd"),ir=p("onMapIdle"),rt={methods:[er,Yo,tr,or,rr],listeners:[nr,ar,ir]};var he=[Ye,rt,Ae,Te,Ze,Ee,$e,He];function sr(o,l,G){let z=new Map;async function b(u){if(!gr.safeParse(u.data).success){G?.onUnknownMessage?.(u.data);return}let B=at.safeParse(u.data);if(!B.success){G?.onInvalidMessage?.(u.data,B.error),u.ports[0]?.postMessage(re(B.error.message));return}let{data:y}=B;if(y.type==="felt.ready")u.ports[0]?.postMessage(!0);else if(y.type==="felt.addListener"){if(y.event.eventName==="")throw new Error("felt.addListener eventName cannot be empty");let v="options"in y.event?{options:"options"in y.event?y.event.options:void 0,handler:te=>{u.ports[0]?.postMessage(te)}}:{handler:te=>{u.ports[0]?.postMessage(te)}},ee=l.listeners[y.event.eventName](v);z.set(y.event.id,ee)}else if(y.type==="felt.removeListener")z.get(y.id)?.(),z.delete(y.id);else try{let v=l.methods[y.type],ee=await v(y.params);u.ports[0]?.postMessage(ee)}catch(v){u.ports[0]?.postMessage(re(v))}}return o.addEventListener("message",b),()=>{o.removeEventListener("message",b)}}var nt={methods:he.map(o=>o.methods??[]).flat(),listeners:he.map(o=>o.listeners??[]).flat()},lr=g.z.discriminatedUnion("eventName",[g.z.strictObject({eventName:g.z.literal("")}),...nt.listeners]),pr=g.z.strictObject({type:g.z.literal("felt.addListener"),event:lr}),mr=g.z.strictObject({type:g.z.literal("felt.removeListener"),id:g.z.string()}),cr=g.z.strictObject({type:g.z.literal("felt.ready")}),at=g.z.discriminatedUnion("type",[cr,pr,mr,...nt.methods]),gr=g.z.object({type:g.z.enum(at.options.map(o=>o.shape.type.value))});0&&(module.exports={createMessageHandler});
1
+ "use strict";var re=Object.defineProperty;var at=Object.getOwnPropertyDescriptor;var it=Object.getOwnPropertyNames;var st=Object.prototype.hasOwnProperty;var lt=(o,l)=>{for(var G in l)re(o,G,{get:l[G],enumerable:!0})},pt=(o,l,G,z)=>{if(l&&typeof l=="object"||typeof l=="function")for(let M of it(l))!st.call(o,M)&&M!==G&&re(o,M,{get:()=>l[M],enumerable:!(z=at(l,M))||z.enumerable});return o};var mt=o=>pt(re({},"__esModule",{value:!0}),o);var yr={};lt(yr,{createMessageHandler:()=>ar});module.exports=mt(yr);var y=require("zod");var d=require("zod");var f=require("zod");function t(o,l){return f.z.strictObject({type:f.z.literal(o),params:l})}function S(o,l){return f.z.strictObject({eventName:f.z.literal(o),id:f.z.string(),options:l})}function p(o){return f.z.strictObject({eventName:f.z.literal(o),id:f.z.string()})}var i=require("zod"),H=i.z.number(),J=i.z.number(),B=i.z.object({latitude:J,longitude:H}),C=i.z.tuple([H,J]),P=i.z.object({type:i.z.literal("Polygon"),coordinates:i.z.array(i.z.array(C).min(4).refine(o=>o[0][0]===o[o.length-1][0]&&o[0][1]===o[o.length-1][1],"The last point of each ring must be identical to the first"))}),Z=i.z.object({type:i.z.literal("MultiPolygon"),coordinates:i.z.array(P.shape.coordinates)}),ct=i.z.object({type:i.z.literal("LineString"),coordinates:i.z.array(C).min(2)}),v=i.z.object({type:i.z.literal("MultiLineString"),coordinates:i.z.array(ct.shape.coordinates)}),he=i.z.number().min(1).max(23),I=i.z.tuple([H,J,H,J]),T=i.z.object({show:i.z.array(i.z.string()).optional(),hide:i.z.array(i.z.string()).optional()}),yt=i.z.enum(["asc","desc"]),fe=i.z.object({attribute:i.z.string(),direction:yt});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()}),ne=e.z.object({strokeOpacity:e.z.number(),strokeWidth:e.z.number(),strokeStyle:e.z.enum(["solid","dashed","dotted"])}),gt=e.z.enum(["meter","kilometer","foot","mile"]),q=h.extend($.shape).extend({type:e.z.literal("Place"),coordinates:C,symbol:e.z.string(),frame:e.z.enum(["frame-circle","frame-square"]).nullable(),hideLabel:e.z.boolean()}),w=h.extend($.shape).extend(ne.shape).extend({type:e.z.literal("Path"),coordinates:v.shape.coordinates,distanceMarker:e.z.boolean(),routingMode:e.z.enum(["driving","cycling","walking","flying"]).nullable(),endCaps:e.z.boolean()}),O=h.extend($.shape).extend(ne.shape).extend({type:e.z.literal("Polygon"),coordinates:P.shape.coordinates,fillOpacity:e.z.number().min(0).max(1),areaMarker:e.z.boolean()}),W=h.extend($.shape).extend(ne.shape).extend({type:e.z.literal("Circle"),center:C,radius:e.z.number(),radiusMarker:e.z.boolean(),radiusDisplayAngle:e.z.number(),radiusDisplayUnit:gt.nullable(),fillOpacity:e.z.number().min(0).max(1)}),U=h.extend({type:e.z.literal("Marker"),coordinates:v.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)}),j=h.extend({type:e.z.literal("Highlighter"),coordinates:Z.shape.coordinates,renderHoles:e.z.boolean(),opacity:e.z.number().min(0).max(1)}),Se=e.z.object({position:C,rotation:e.z.number(),scale:e.z.number(),zoom:e.z.number().min(0).max(23),coordinates:P.shape.coordinates}),xe=e.z.object({text:e.z.string(),align:e.z.enum(["left","center","right"]),style:e.z.enum(["italic","light","regular","caps"]),name:e.z.string()}),_=h.extend(Se.shape).extend(xe.shape).extend({type:e.z.literal("Text")}),Q=h.extend(Se.shape).extend(xe.shape).extend({type:e.z.literal("Note"),widthScale:e.z.number().min(0)}),R=h.extend({type:e.z.literal("Image"),coordinates:v.shape.coordinates,imageUrl:e.z.string(),opacity:e.z.number().min(0).max(1)}).omit({color:!0}),dt=h.extend({type:e.z.literal("Link"),coordinates:v.shape.coordinates,url:e.z.string()}),F={type:!0,coordinates:!0},x={id:!0},ae=q.partial().extend(q.pick(F).shape).omit(x),K=w.partial().extend(w.pick(F).shape).omit(x),ie=O.partial().extend(O.pick(F).shape).omit(x),se=W.partial().extend(W.pick({type:!0,center:!0,radius:!0}).shape).omit(x),le=U.partial().extend(U.pick(F).shape).omit(x),pe=j.partial().extend(j.pick(F).shape).omit(x),me=_.partial().omit({...x,coordinates:!0,name:!0,type:!0}).extend({type:e.z.literal("Text"),text:e.z.string()}),ce=Q.partial().omit({...x,coordinates:!0,name:!0,type:!0}).extend({type:e.z.literal("Note"),text:e.z.string()}),ut=R.partial().extend(R.pick({...F,imageUrl:!0}).shape).omit(x),Le=e.z.discriminatedUnion("type",[ae,K,ie,se,le,pe,ut,me,ce]);var Sr=w.omit({coordinates:!0}),xr=O.omit({coordinates:!0});var Lr=U.omit({coordinates:!0}),br=j.omit({coordinates:!0}),Mr=_.omit({coordinates:!0}),Cr=Q.omit({coordinates:!0}),Gr=R.omit({coordinates:!0}),Ir=dt.omit({coordinates:!0}),L={type:!0,id:!0},ht=q.partial().extend(q.pick(L).shape),ft=w.partial().extend(w.pick(L).shape),St=O.partial().extend(O.pick(L).shape),xt=W.partial().extend(W.pick(L).shape),Lt=U.partial().extend(U.pick(L).shape),bt=j.partial().extend(j.pick(L).shape),Mt=_.partial().extend(_.pick(L).shape).omit({coordinates:!0,name:!0}),Ct=Q.partial().extend(Q.pick(L).shape).omit({coordinates:!0,name:!0}),Gt=R.partial().extend(R.pick(L).shape),be=e.z.discriminatedUnion("type",[ht,ft,St,xt,Lt,bt,Mt,Ct,Gt]),Me=e.z.object({ids:e.z.array(e.z.string()).optional()}),Ce=e.z.object({ids:e.z.array(e.z.string()).optional()});var It=t("getElement",d.z.string()),Tt=t("getElementGeometry",d.z.string()),Et=t("getElements",Me.optional()),zt=t("getElementGroup",d.z.string()),Pt=t("getElementGroups",Ce.optional()),Ft=t("setElementGroupVisibility",T),kt=S("onElementChange",d.z.object({id:d.z.string()})),Vt=p("onElementCreate"),vt=p("onElementCreateEnd"),wt=S("onElementDelete",d.z.object({id:d.z.string()})),Ot=S("onElementGroupChange",d.z.object({id:d.z.string()})),Ut=t("createElement",Le),jt=t("updateElement",be),Rt=t("deleteElement",d.z.string()),Ge={methods:[It,Tt,Et,zt,Pt,Ft,Ut,jt,Rt],listeners:[kt,Vt,vt,wt,Ot]};var Nt=p("onPointerClick"),At=p("onPointerMove"),Ie={methods:null,listeners:[Nt,At]};var s=require("zod");var a=require("zod"),Dt=a.z.enum(["in","ni"]),Ht=a.z.enum(["lt","gt","le","ge","eq","ne","cn","nc","is","isnt"]),vr=a.z.enum(["and","or"]),Te=a.z.union([a.z.number(),a.z.string(),a.z.boolean(),a.z.null()]),Ee=a.z.string().or(a.z.null()),Jt=a.z.tuple([Ee,Dt,a.z.array(Te).or(a.z.null())]),Bt=a.z.tuple([Ee,Ht,Te]),ye=a.z.union([Jt,Bt]),ge=a.z.tuple([a.z.lazy(()=>a.z.union([ge,ye,a.z.null(),a.z.boolean()])),a.z.enum(["and","or"]),a.z.lazy(()=>a.z.union([ge,ye,a.z.null(),a.z.boolean()]))]),E=a.z.union([ge,ye,a.z.null(),a.z.boolean()]);var r=require("zod");var ze=r.z.enum(["avg","max","min","sum","median"]),Zt=r.z.object({method:ze,attribute:r.z.string()}),qt=r.z.object({methods:r.z.array(r.z.union([ze,r.z.literal("count")])),attribute:r.z.string().optional()}),X=r.z.union([I,P,Z,r.z.array(C)]),Pe=r.z.object({boundary:X.optional(),filters:E.optional(),aggregation:Zt.optional()}),Fe=r.z.object({layerId:r.z.string(),attribute:r.z.string(),limit:r.z.number().optional(),boundary:X.optional(),filters:E.optional(),values:Pe.optional()}),jr=r.z.object({key:r.z.union([r.z.number(),r.z.string(),r.z.boolean()]),value:r.z.number().nullable()}),Wt=r.z.object({type:r.z.literal("equal-intervals"),count:r.z.number()}),_t=r.z.object({type:r.z.literal("time-interval"),interval:r.z.enum(["hour","day","week","month","year"])}),ke=r.z.object({layerId:r.z.string(),attribute:r.z.string(),steps:r.z.union([Wt,_t,r.z.array(r.z.number())]),boundary:X.optional(),filters:E.optional(),values:Pe.optional()}),Rr=r.z.object({min:r.z.number(),max:r.z.number(),value:r.z.number()}),Ve=r.z.object({layerId:r.z.string(),boundary:X.optional(),filters:E.optional(),aggregation:qt});var n=require("zod");var Dr=n.z.enum(["processing","completed","failed","incomplete"]),Qt=n.z.object({type:n.z.literal("geoJsonUrl"),url:n.z.string().url()}),$t=n.z.object({type:n.z.literal("geoJsonData"),data:n.z.object({}).passthrough()}),Kt=n.z.object({type:n.z.literal("geoJsonFile"),file:n.z.instanceof(File)}),ve=n.z.object({ids:n.z.array(n.z.string()).optional()}),we=n.z.object({ids:n.z.array(n.z.string()).optional()}),k=n.z.object({id:n.z.string(),layerId:n.z.string()}),Oe=n.z.object({ids:k.array().optional(),layerIds:n.z.string().array().optional()}),Ue=n.z.object({layerIds:n.z.array(n.z.string()).optional(),areaQuery:n.z.union([n.z.object({coordinates:B}),n.z.object({boundary:I})]).optional()}),Xt=n.z.object({Point:n.z.object({}).passthrough().optional(),Line:n.z.object({}).passthrough().optional(),Polygon:n.z.object({}).passthrough().optional()}),je=n.z.object({source:n.z.union([Qt,$t,Kt]),name:n.z.string(),geometryStyles:Xt.optional()});var Yt=t("getLayer",s.z.string()),eo=t("getLayers",ve.optional()),to=t("setLayerVisibility",T),oo=S("onLayerChange",s.z.object({id:s.z.string()})),ro=t("setLayerStyle",s.z.object({id:s.z.string(),style:s.z.object({}).passthrough()})),no=t("setLayerLegendVisibility",T),ao=t("createLayersFromGeoJson",je),io=t("deleteLayer",s.z.string()),so=t("getLayerGroup",s.z.string()),lo=t("getLayerGroups",we.optional()),po=t("setLayerGroupVisibility",T),mo=t("setLayerGroupLegendVisibility",T),co=S("onLayerGroupChange",s.z.object({id:s.z.string()})),yo=t("getLegendItem",k),go=t("getLegendItems",Oe.optional()),uo=S("onLegendItemChange",k),ho=t("setLegendItemVisibility",s.z.object({show:k.array().optional(),hide:k.array().optional()})),fo=t("getLayerFilters",s.z.string()),So=t("setLayerFilters",s.z.object({layerId:s.z.string(),filters:E,note:s.z.string().optional()})),xo=S("onLayerFiltersChange",s.z.object({layerId:s.z.string()})),Lo=t("getRenderedFeatures",Ue.optional()),bo=t("getFeature",s.z.object({id:s.z.string().or(s.z.number()),layerId:s.z.string()})),Mo=t("getGeoJsonFeature",s.z.object({id:s.z.string().or(s.z.number()),layerId:s.z.string()})),Co=t("getCategoryData",Fe),Go=t("getHistogramData",ke),Io=t("getAggregates",Ve),To=t("getLayerSchema",s.z.string()),Re={methods:[Yt,eo,to,ro,no,ao,io,so,lo,po,mo,yo,go,ho,fo,So,Lo,bo,Mo,Co,Go,Io,To],listeners:[oo,co,uo,xo]};var Ne=require("zod");var Eo=t("getMapDetails",Ne.z.undefined()),Ae={methods:[Eo],listeners:[]};var N=require("zod");var b=require("zod"),De=b.z.object({id:b.z.string().or(b.z.number()),layerId:b.z.string(),showPopup:b.z.boolean().optional(),fitViewport:b.z.boolean().or(b.z.object({maxZoom:b.z.number()})).optional()});var zo=t("getSelection",N.z.undefined()),Po=p("onSelectionChange"),Fo=t("selectFeature",De),ko=t("clearSelection",N.z.object({features:N.z.boolean().optional(),elements:N.z.boolean().optional()}).optional()),He={methods:[zo,Fo,ko],listeners:[Po]};var We=require("zod");var m=require("zod");var Je=["pin","line","route","polygon","circle","marker","highlighter","text","note"],Be=m.z.enum([...Je,"link"]),Ze=m.z.enum(Je),Vo=ae.pick({color:!0,symbol:!0,frame:!0}).extend({afterCreation:m.z.enum(["enter name","add another","select"])}).required(),vo=K.pick({color:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,distanceMarker:!0}).required(),wo=K.pick({color:!0,routingMode:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,distanceMarker:!0,endCaps:!0}).required(),Oo=ie.pick({color:!0,fillOpacity:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,areaMarker:!0}).required(),Uo=se.pick({color:!0,fillOpacity:!0,strokeOpacity:!0,strokeWidth:!0,strokeStyle:!0,radiusMarker:!0}).required(),jo=le.pick({color:!0,opacity:!0,size:!0}).required(),Ro=pe.pick({color:!0,opacity:!0,renderHoles:!0}).extend({size:m.z.number().min(0).max(200)}).required(),No=me.pick({color:!0,align:!0,style:!0}).required(),Ao=ce.pick({color:!0,align:!0,style:!0}).required(),qe=m.z.discriminatedUnion("tool",[Vo.partial().extend({tool:m.z.literal("pin")}),vo.partial().extend({tool:m.z.literal("line")}),wo.partial().extend({tool:m.z.literal("route")}),Oo.partial().extend({tool:m.z.literal("polygon")}),Uo.partial().extend({tool:m.z.literal("circle")}),jo.partial().extend({tool:m.z.literal("marker")}),Ro.partial().extend({tool:m.z.literal("highlighter")}),No.partial().extend({tool:m.z.literal("text")}),Ao.partial().extend({tool:m.z.literal("note")})]);var Do=t("setTool",Be.nullable()),Ho=t("getTool",We.z.undefined()),Jo=p("onToolChange"),Bo=t("setToolSettings",qe),Zo=t("getToolSettings",Ze),qo=p("onToolSettingsChange"),_e={methods:[Do,Ho,Bo,Zo],listeners:[Jo,qo]};var Y=require("zod");var c=require("zod"),Qe=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()}),$e=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 Wo=t("updateUiControls",Qe),_o=t("setOnMapInteractionsUi",$e),Qo=t("showLayerDataTable",Y.z.object({layerId:Y.z.string(),sorting:fe.optional()}).optional()),$o=t("hideLayerDataTable",Y.z.undefined()),Ke={methods:[Wo,_o,Qo,$o],listeners:null};var de=require("zod");var A=require("zod");var ee=A.z.object({center:B,zoom:he}),Xe=A.z.object({center:ee.shape.center.optional(),zoom:ee.shape.zoom.optional()}),Ye=A.z.object({minZoom:ee.shape.zoom.nullish(),maxZoom:ee.shape.zoom.nullish(),bounds:I.nullish()}).nullable(),et=A.z.object({bounds:I});var Ko=t("getViewport",de.z.undefined()),Xo=t("setViewport",Xe),Yo=t("getViewportConstraints",de.z.undefined()),er=t("setViewportConstraints",Ye),tr=t("fitViewportToBounds",et),or=p("onViewportMove"),rr=p("onViewportMoveEnd"),nr=p("onMapIdle"),tt={methods:[Xo,Ko,Yo,er,tr],listeners:[or,rr,nr]};var ue=[Ke,tt,Re,Ge,He,Ie,_e,Ae];function ar(o,l,G){let z=new Map;async function M(u){if(!mr.safeParse(u.data).success){G?.onUnknownMessage?.(u.data);return}let D=nt.safeParse(u.data);if(!D.success){G?.onInvalidMessage?.(u.data,D.error),u.ports[0]?.postMessage(ot(D.error.message));return}let{data:g}=D;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:oe=>{u.ports[0]?.postMessage(oe)}}:{handler:oe=>{u.ports[0]?.postMessage(oe)}},te=l.listeners[g.event.eventName](V);z.set(g.event.id,te)}else if(g.type==="felt.removeListener")z.get(g.id)?.(),z.delete(g.id);else try{let V=l.methods[g.type],te=await V(g.params);u.ports[0]?.postMessage(te)}catch(V){u.ports[0]?.postMessage(ot(V))}}return o.addEventListener("message",M),()=>{o.removeEventListener("message",M)}}var rt={methods:ue.map(o=>o.methods??[]).flat(),listeners:ue.map(o=>o.listeners??[]).flat()},ir=y.z.discriminatedUnion("eventName",[y.z.strictObject({eventName:y.z.literal("")}),...rt.listeners]),sr=y.z.strictObject({type:y.z.literal("felt.addListener"),event:ir}),lr=y.z.strictObject({type:y.z.literal("felt.removeListener"),id:y.z.string()}),pr=y.z.strictObject({type:y.z.literal("felt.ready")}),nt=y.z.discriminatedUnion("type",[pr,sr,lr,...rt.methods]),mr=y.z.object({type:y.z.enum(nt.options.map(o=>o.shape.type.value))});function ot(o){return{__error__:cr(o)}}function cr(o){return o instanceof Error?o.message:typeof o=="object"&&o!==null&&"message"in o?String(o.message):typeof o=="string"?o:"Unknown error"}0&&(module.exports={createMessageHandler});