@feltmaps/js-sdk 1.3.0 → 1.4.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 f=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var M=(e,r)=>{for(var i in r)c(e,i,{get:r[i],enumerable:!0})},G=(e,r,i,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of f(r))!I.call(e,o)&&o!==i&&c(e,o,{get:()=>r[o],enumerable:!(s=V(r,o))||s.enumerable});return e};var b=e=>G(c({},"__esModule",{value:!0}),e);var x={};M(x,{Felt:()=>P});module.exports=b(x);function n(e,r){return({handler:i,options:s})=>{let o=new MessageChannel,a=crypto.randomUUID();return e.postMessage({type:"felt.addListener",event:s?{eventName:r,id:a,options:s}:{eventName:r,id:a}},"*",[o.port2]),o.port1.onmessage=l=>{i(l.data)},()=>{o.port1.onmessage=null,o.port1.close(),o.port2.close(),e.postMessage({type:"felt.removeListener",id:a},"*")}}}function t(e,r){return i=>{let s=new MessageChannel;return e.postMessage({type:r,params:i},"*",[s.port2]),new Promise((o,a)=>{s.port1.onmessage=l=>{l.data&&"__error__"in l.data?a(new Error(l.data.__error__)):o(l.data),s.port1.close(),s.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:n(e,"onElementChange"),onElementGroupChange:n(e,"onElementGroupChange")});var C=e=>({onPointerClick:n(e,"onPointerClick"),onPointerMove:n(e,"onPointerMove")});var L=e=>({getLayer:t(e,"getLayer"),getLayers:t(e,"getLayers"),setLayerVisibility:t(e,"setLayerVisibility"),setLayerStyle:t(e,"setLayerStyle"),onLayerChange:n(e,"onLayerChange"),getLayerGroup:t(e,"getLayerGroup"),getLayerGroups:t(e,"getLayerGroups"),setLayerGroupVisibility:t(e,"setLayerGroupVisibility"),onLayerGroupChange:n(e,"onLayerGroupChange"),getLegendItem:t(e,"getLegendItem"),getLegendItems:t(e,"getLegendItems"),setLegendItemVisibility:t(e,"setLegendItemVisibility"),onLegendItemChange:n(e,"onLegendItemChange"),getLayerFilters:t(e,"getLayerFilters"),setLayerFilters:t(e,"setLayerFilters"),getRenderedFeatures:t(e,"getRenderedFeatures")});var h=e=>({onSelectionChange:n(e,"onSelectionChange"),getSelection:t(e,"getSelection"),selectFeature:t(e,"selectFeature")});var E=e=>({updateUiControls:t(e,"updateUiControls"),setOnMapInteractionsUi:t(e,"setOnMapInteractionsUi")});var v=e=>({getViewport:t(e,"getViewport"),setViewport:t(e,"setViewport"),fitViewportToBounds:t(e,"fitViewportToBounds"),onViewportMove:n(e,"onViewportMove"),onViewportMoveEnd:n(e,"onViewportMoveEnd"),onMapIdle:n(e,"onMapIdle")});function F(e){return{iframe:null,...v(e),...E(e),...L(e),...u(e),...h(e),...C(e)}}var P={embed(e,r,i){let s={uiControls:{showLegend:!0,cooperativeGestures:!0,fullScreenButton:!0,geolocation:!1,zoomControls:!0,scaleBar:!0},initialViewport:void 0,origin:"https://felt.com"},o={showLegend:"legend",cooperativeGestures:"cooperativeGestures",fullScreenButton:"link",geolocation:"geolocation",zoomControls:"zoomControls",scaleBar:"scaleBar"},a={...s.uiControls,...i?.uiControls},l=i?.origin??s.origin,d=new URL(`${l}/embed/map/${r}`);for(let[m,y]of T(a))y!=null&&d.searchParams.set(o[m],y?"1":"0");if(i?.initialViewport){let m=i.initialViewport;d.searchParams.set("loc",`${m.center.latitude},${m.center.longitude},${m.zoom}z`)}let g=e.tagName==="IFRAME",p=g?e:e.ownerDocument.createElement("iframe");return p.src=d.toString(),g||(p.style.width="100%",p.style.height="100%",p.style.border="none",p.style.margin="0",e.appendChild(p)),p.referrerPolicy="strict-origin-when-cross-origin",new Promise((m,y)=>{p.addEventListener("load",()=>{p.contentWindow==null?y(new Error("Failed to load Felt map")):m(p.contentWindow)},{once:!0})}).then(P.connect).then(m=>(Object.defineProperties(m,{iframe:{value:p,writable:!1,configurable:!1}}),m))},connect(e){let r=F(e);return new Promise((i,s)=>{let o=setTimeout(()=>{s(new Error("Failed to load Felt map")),clearInterval(l)},5e3),a=new MessageChannel,l=setInterval(()=>{e.postMessage({type:"felt.ready"},"*",[a.port2])},100);a.port1.onmessage=d=>{d.data===!0&&(clearInterval(l),clearTimeout(o),a.port1.close(),a.port2.close(),i(r))}})}},T=Object.entries;0&&(module.exports={Felt});
1
+ "use strict";var c=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var M=(e,r)=>{for(var o in r)c(e,o,{get:r[o],enumerable:!0})},G=(e,r,o,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of f(r))!I.call(e,n)&&n!==o&&c(e,n,{get:()=>r[n],enumerable:!(s=V(r,n))||s.enumerable});return e};var b=e=>G(c({},"__esModule",{value:!0}),e);var x={};M(x,{Felt:()=>F});module.exports=b(x);function i(e,r){return({handler:o,options:s})=>{let n=new MessageChannel,a=crypto.randomUUID();return e.postMessage({type:"felt.addListener",event:s?{eventName:r,id:a,options:s}:{eventName:r,id:a}},"*",[n.port2]),n.port1.onmessage=l=>{o(l.data)},()=>{n.port1.onmessage=null,n.port1.close(),n.port2.close(),e.postMessage({type:"felt.removeListener",id:a},"*")}}}function t(e,r){return o=>{let s=new MessageChannel;return e.postMessage({type:r,params:o},"*",[s.port2]),new Promise((n,a)=>{s.port1.onmessage=l=>{l.data&&"__error__"in l.data?a(new Error(l.data.__error__)):n(l.data),s.port1.close(),s.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:i(e,"onElementChange"),onElementGroupChange:i(e,"onElementGroupChange")});var C=e=>({onPointerClick:i(e,"onPointerClick"),onPointerMove:i(e,"onPointerMove")});var h=e=>({getLayer:t(e,"getLayer"),getLayers:t(e,"getLayers"),setLayerVisibility:t(e,"setLayerVisibility"),setLayerStyle:t(e,"setLayerStyle"),onLayerChange:i(e,"onLayerChange"),getLayerGroup:t(e,"getLayerGroup"),getLayerGroups:t(e,"getLayerGroups"),setLayerGroupVisibility:t(e,"setLayerGroupVisibility"),onLayerGroupChange:i(e,"onLayerGroupChange"),getLegendItem:t(e,"getLegendItem"),getLegendItems:t(e,"getLegendItems"),setLegendItemVisibility:t(e,"setLegendItemVisibility"),onLegendItemChange:i(e,"onLegendItemChange"),getLayerFilters:t(e,"getLayerFilters"),setLayerFilters:t(e,"setLayerFilters"),getRenderedFeatures:t(e,"getRenderedFeatures")});var L=e=>({onSelectionChange:i(e,"onSelectionChange"),getSelection:t(e,"getSelection"),selectFeature:t(e,"selectFeature"),clearSelection:t(e,"clearSelection")});var v=e=>({updateUiControls:t(e,"updateUiControls"),setOnMapInteractionsUi:t(e,"setOnMapInteractionsUi")});var E=e=>({getViewport:t(e,"getViewport"),setViewport:t(e,"setViewport"),fitViewportToBounds:t(e,"fitViewportToBounds"),onViewportMove:i(e,"onViewportMove"),onViewportMoveEnd:i(e,"onViewportMoveEnd"),onMapIdle:i(e,"onMapIdle")});function P(e){return{iframe:null,...E(e),...v(e),...h(e),...u(e),...L(e),...C(e)}}var F={embed(e,r,o){let s={uiControls:{showLegend:!0,cooperativeGestures:!0,fullScreenButton:!0,geolocation:!1,zoomControls:!0,scaleBar:!0},initialViewport:void 0,origin:"https://felt.com"},n=o?.origin??s.origin,a=new URL(`${n}/embed/map/${r}`),l={showLegend:"legend",cooperativeGestures:"cooperativeGestures",fullScreenButton:"link",geolocation:"geolocation",zoomControls:"zoomControls",scaleBar:"scaleBar"},y={...s.uiControls,...o?.uiControls};for(let[m,d]of T(y))d!=null&&a.searchParams.set(l[m],d?"1":"0");if(o?.token&&a.searchParams.set("token",o.token),o?.initialViewport){let m=o.initialViewport;a.searchParams.set("loc",`${m.center.latitude},${m.center.longitude},${m.zoom}z`)}let g=e.tagName==="IFRAME",p=g?e:e.ownerDocument.createElement("iframe");return p.src=a.toString(),g||(p.style.width="100%",p.style.height="100%",p.style.border="none",p.style.margin="0",e.appendChild(p)),p.referrerPolicy="strict-origin-when-cross-origin",new Promise((m,d)=>{p.addEventListener("load",()=>{p.contentWindow==null?d(new Error("Failed to load Felt map")):m(p.contentWindow)},{once:!0})}).then(F.connect).then(m=>(Object.defineProperties(m,{iframe:{value:p,writable:!1,configurable:!1}}),m))},connect(e){let r=P(e);return new Promise((o,s)=>{let n=setTimeout(()=>{s(new Error("Failed to load Felt map")),clearInterval(l)},5e3),a=new MessageChannel,l=setInterval(()=>{e.postMessage({type:"felt.ready"},"*",[a.port2])},100);a.port1.onmessage=y=>{y.data===!0&&(clearInterval(l),clearTimeout(n),a.port1.close(),a.port2.close(),o(r))}})}},T=Object.entries;0&&(module.exports={Felt});
package/dist/client.d.cts CHANGED
@@ -561,7 +561,7 @@ interface SelectionController {
561
561
  *
562
562
  * @example
563
563
  * ```typescript
564
- * await felt.selectFeature({
564
+ * felt.selectFeature({
565
565
  * id: 123,
566
566
  * layerId: "my-layer",
567
567
  * showPopup: true,
@@ -570,6 +570,40 @@ interface SelectionController {
570
570
  * ```
571
571
  */
572
572
  selectFeature(params: FeatureSelection): Promise<void>;
573
+ /**
574
+ * Clears the current selection. This clears the selection of
575
+ *
576
+ * @example
577
+ * ```typescript
578
+ *
579
+ * // Removes all features and elements from the selection
580
+ * felt.clearSelection();
581
+ *
582
+ * // Removes only features from the selection
583
+ * felt.clearSelection({ features: true });
584
+ *
585
+ * // Removes only elements from the selection
586
+ * felt.clearSelection({ elements: true });
587
+ * ```
588
+ *
589
+ * @default
590
+ * ```typescript
591
+ * { features: true, elements: true }
592
+ * ```
593
+ *
594
+ * @param params - The parameters to clear the selection. If this is not provided,
595
+ * both features and elements will be cleared.
596
+ */
597
+ clearSelection(params?: {
598
+ /**
599
+ * Whether to clear the features from the selection.
600
+ */
601
+ features?: boolean;
602
+ /**
603
+ * Whether to clear the elements from the selection.
604
+ */
605
+ elements?: boolean;
606
+ }): Promise<void>;
573
607
  }
574
608
 
575
609
  /**
@@ -872,7 +906,7 @@ interface FeltController extends ViewportController, UiController, LayersControl
872
906
  * @public
873
907
  */
874
908
  interface FeltEmbedOptions extends zInfer<typeof FeltEmbedOptionsSchema> {
875
- uiControls: UiControlsOptions;
909
+ uiControls?: UiControlsOptions;
876
910
  initialViewport?: ViewportCenterZoom;
877
911
  }
878
912
  /**
@@ -883,7 +917,12 @@ declare const FeltEmbedOptionsSchema: z.ZodObject<{
883
917
  * @hidden
884
918
  */
885
919
  origin: z.ZodOptional<z.ZodString>;
886
- uiControls: z.ZodObject<{
920
+ /**
921
+ * An authentication token to use for showing embeds that are configured to be
922
+ * private.
923
+ */
924
+ token: z.ZodOptional<z.ZodString>;
925
+ uiControls: z.ZodOptional<z.ZodObject<{
887
926
  showLegend: z.ZodOptional<z.ZodBoolean>;
888
927
  cooperativeGestures: z.ZodOptional<z.ZodBoolean>;
889
928
  fullScreenButton: z.ZodOptional<z.ZodBoolean>;
@@ -904,7 +943,7 @@ declare const FeltEmbedOptionsSchema: z.ZodObject<{
904
943
  geolocation?: boolean | undefined;
905
944
  zoomControls?: boolean | undefined;
906
945
  scaleBar?: boolean | undefined;
907
- }>;
946
+ }>>;
908
947
  initialViewport: z.ZodOptional<z.ZodObject<{
909
948
  center: z.ZodObject<{
910
949
  latitude: z.ZodNumber;
@@ -931,15 +970,16 @@ declare const FeltEmbedOptionsSchema: z.ZodObject<{
931
970
  zoom: number;
932
971
  }>>;
933
972
  }, "strip", z.ZodTypeAny, {
934
- uiControls: {
973
+ origin?: string | undefined;
974
+ token?: string | undefined;
975
+ uiControls?: {
935
976
  showLegend?: boolean | undefined;
936
977
  cooperativeGestures?: boolean | undefined;
937
978
  fullScreenButton?: boolean | undefined;
938
979
  geolocation?: boolean | undefined;
939
980
  zoomControls?: boolean | undefined;
940
981
  scaleBar?: boolean | undefined;
941
- };
942
- origin?: string | undefined;
982
+ } | undefined;
943
983
  initialViewport?: {
944
984
  center: {
945
985
  latitude: number;
@@ -948,15 +988,16 @@ declare const FeltEmbedOptionsSchema: z.ZodObject<{
948
988
  zoom: number;
949
989
  } | undefined;
950
990
  }, {
951
- uiControls: {
991
+ origin?: string | undefined;
992
+ token?: string | undefined;
993
+ uiControls?: {
952
994
  showLegend?: boolean | undefined;
953
995
  cooperativeGestures?: boolean | undefined;
954
996
  fullScreenButton?: boolean | undefined;
955
997
  geolocation?: boolean | undefined;
956
998
  zoomControls?: boolean | undefined;
957
999
  scaleBar?: boolean | undefined;
958
- };
959
- origin?: string | undefined;
1000
+ } | undefined;
960
1001
  initialViewport?: {
961
1002
  center: {
962
1003
  latitude: number;
package/dist/client.d.ts CHANGED
@@ -561,7 +561,7 @@ interface SelectionController {
561
561
  *
562
562
  * @example
563
563
  * ```typescript
564
- * await felt.selectFeature({
564
+ * felt.selectFeature({
565
565
  * id: 123,
566
566
  * layerId: "my-layer",
567
567
  * showPopup: true,
@@ -570,6 +570,40 @@ interface SelectionController {
570
570
  * ```
571
571
  */
572
572
  selectFeature(params: FeatureSelection): Promise<void>;
573
+ /**
574
+ * Clears the current selection. This clears the selection of
575
+ *
576
+ * @example
577
+ * ```typescript
578
+ *
579
+ * // Removes all features and elements from the selection
580
+ * felt.clearSelection();
581
+ *
582
+ * // Removes only features from the selection
583
+ * felt.clearSelection({ features: true });
584
+ *
585
+ * // Removes only elements from the selection
586
+ * felt.clearSelection({ elements: true });
587
+ * ```
588
+ *
589
+ * @default
590
+ * ```typescript
591
+ * { features: true, elements: true }
592
+ * ```
593
+ *
594
+ * @param params - The parameters to clear the selection. If this is not provided,
595
+ * both features and elements will be cleared.
596
+ */
597
+ clearSelection(params?: {
598
+ /**
599
+ * Whether to clear the features from the selection.
600
+ */
601
+ features?: boolean;
602
+ /**
603
+ * Whether to clear the elements from the selection.
604
+ */
605
+ elements?: boolean;
606
+ }): Promise<void>;
573
607
  }
574
608
 
575
609
  /**
@@ -872,7 +906,7 @@ interface FeltController extends ViewportController, UiController, LayersControl
872
906
  * @public
873
907
  */
874
908
  interface FeltEmbedOptions extends zInfer<typeof FeltEmbedOptionsSchema> {
875
- uiControls: UiControlsOptions;
909
+ uiControls?: UiControlsOptions;
876
910
  initialViewport?: ViewportCenterZoom;
877
911
  }
878
912
  /**
@@ -883,7 +917,12 @@ declare const FeltEmbedOptionsSchema: z.ZodObject<{
883
917
  * @hidden
884
918
  */
885
919
  origin: z.ZodOptional<z.ZodString>;
886
- uiControls: z.ZodObject<{
920
+ /**
921
+ * An authentication token to use for showing embeds that are configured to be
922
+ * private.
923
+ */
924
+ token: z.ZodOptional<z.ZodString>;
925
+ uiControls: z.ZodOptional<z.ZodObject<{
887
926
  showLegend: z.ZodOptional<z.ZodBoolean>;
888
927
  cooperativeGestures: z.ZodOptional<z.ZodBoolean>;
889
928
  fullScreenButton: z.ZodOptional<z.ZodBoolean>;
@@ -904,7 +943,7 @@ declare const FeltEmbedOptionsSchema: z.ZodObject<{
904
943
  geolocation?: boolean | undefined;
905
944
  zoomControls?: boolean | undefined;
906
945
  scaleBar?: boolean | undefined;
907
- }>;
946
+ }>>;
908
947
  initialViewport: z.ZodOptional<z.ZodObject<{
909
948
  center: z.ZodObject<{
910
949
  latitude: z.ZodNumber;
@@ -931,15 +970,16 @@ declare const FeltEmbedOptionsSchema: z.ZodObject<{
931
970
  zoom: number;
932
971
  }>>;
933
972
  }, "strip", z.ZodTypeAny, {
934
- uiControls: {
973
+ origin?: string | undefined;
974
+ token?: string | undefined;
975
+ uiControls?: {
935
976
  showLegend?: boolean | undefined;
936
977
  cooperativeGestures?: boolean | undefined;
937
978
  fullScreenButton?: boolean | undefined;
938
979
  geolocation?: boolean | undefined;
939
980
  zoomControls?: boolean | undefined;
940
981
  scaleBar?: boolean | undefined;
941
- };
942
- origin?: string | undefined;
982
+ } | undefined;
943
983
  initialViewport?: {
944
984
  center: {
945
985
  latitude: number;
@@ -948,15 +988,16 @@ declare const FeltEmbedOptionsSchema: z.ZodObject<{
948
988
  zoom: number;
949
989
  } | undefined;
950
990
  }, {
951
- uiControls: {
991
+ origin?: string | undefined;
992
+ token?: string | undefined;
993
+ uiControls?: {
952
994
  showLegend?: boolean | undefined;
953
995
  cooperativeGestures?: boolean | undefined;
954
996
  fullScreenButton?: boolean | undefined;
955
997
  geolocation?: boolean | undefined;
956
998
  zoomControls?: boolean | undefined;
957
999
  scaleBar?: boolean | undefined;
958
- };
959
- origin?: string | undefined;
1000
+ } | undefined;
960
1001
  initialViewport?: {
961
1002
  center: {
962
1003
  latitude: number;
package/dist/client.js CHANGED
@@ -1 +1 @@
1
- function r(e,m){return({handler:l,options:o})=>{let i=new MessageChannel,n=crypto.randomUUID();return e.postMessage({type:"felt.addListener",event:o?{eventName:m,id:n,options:o}:{eventName:m,id:n}},"*",[i.port2]),i.port1.onmessage=s=>{l(s.data)},()=>{i.port1.onmessage=null,i.port1.close(),i.port2.close(),e.postMessage({type:"felt.removeListener",id:n},"*")}}}function t(e,m){return l=>{let o=new MessageChannel;return e.postMessage({type:m,params:l},"*",[o.port2]),new Promise((i,n)=>{o.port1.onmessage=s=>{s.data&&"__error__"in s.data?n(new Error(s.data.__error__)):i(s.data),o.port1.close(),o.port2.close()}})}}var g=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"),onElementGroupChange:r(e,"onElementGroupChange")});var u=e=>({onPointerClick:r(e,"onPointerClick"),onPointerMove:r(e,"onPointerMove")});var C=e=>({getLayer:t(e,"getLayer"),getLayers:t(e,"getLayers"),setLayerVisibility:t(e,"setLayerVisibility"),setLayerStyle:t(e,"setLayerStyle"),onLayerChange:r(e,"onLayerChange"),getLayerGroup:t(e,"getLayerGroup"),getLayerGroups:t(e,"getLayerGroups"),setLayerGroupVisibility:t(e,"setLayerGroupVisibility"),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"),getRenderedFeatures:t(e,"getRenderedFeatures")});var L=e=>({onSelectionChange:r(e,"onSelectionChange"),getSelection:t(e,"getSelection"),selectFeature:t(e,"selectFeature")});var h=e=>({updateUiControls:t(e,"updateUiControls"),setOnMapInteractionsUi:t(e,"setOnMapInteractionsUi")});var E=e=>({getViewport:t(e,"getViewport"),setViewport:t(e,"setViewport"),fitViewportToBounds:t(e,"fitViewportToBounds"),onViewportMove:r(e,"onViewportMove"),onViewportMoveEnd:r(e,"onViewportMoveEnd"),onMapIdle:r(e,"onMapIdle")});function v(e){return{iframe:null,...E(e),...h(e),...C(e),...g(e),...L(e),...u(e)}}var F={embed(e,m,l){let o={uiControls:{showLegend:!0,cooperativeGestures:!0,fullScreenButton:!0,geolocation:!1,zoomControls:!0,scaleBar:!0},initialViewport:void 0,origin:"https://felt.com"},i={showLegend:"legend",cooperativeGestures:"cooperativeGestures",fullScreenButton:"link",geolocation:"geolocation",zoomControls:"zoomControls",scaleBar:"scaleBar"},n={...o.uiControls,...l?.uiControls},s=l?.origin??o.origin,d=new URL(`${s}/embed/map/${m}`);for(let[p,y]of P(n))y!=null&&d.searchParams.set(i[p],y?"1":"0");if(l?.initialViewport){let p=l.initialViewport;d.searchParams.set("loc",`${p.center.latitude},${p.center.longitude},${p.zoom}z`)}let c=e.tagName==="IFRAME",a=c?e:e.ownerDocument.createElement("iframe");return a.src=d.toString(),c||(a.style.width="100%",a.style.height="100%",a.style.border="none",a.style.margin="0",e.appendChild(a)),a.referrerPolicy="strict-origin-when-cross-origin",new Promise((p,y)=>{a.addEventListener("load",()=>{a.contentWindow==null?y(new Error("Failed to load Felt map")):p(a.contentWindow)},{once:!0})}).then(F.connect).then(p=>(Object.defineProperties(p,{iframe:{value:a,writable:!1,configurable:!1}}),p))},connect(e){let m=v(e);return new Promise((l,o)=>{let i=setTimeout(()=>{o(new Error("Failed to load Felt map")),clearInterval(s)},5e3),n=new MessageChannel,s=setInterval(()=>{e.postMessage({type:"felt.ready"},"*",[n.port2])},100);n.port1.onmessage=d=>{d.data===!0&&(clearInterval(s),clearTimeout(i),n.port1.close(),n.port2.close(),l(m))}})}},P=Object.entries;export{F as Felt};
1
+ function r(e,m){return({handler:n,options:i})=>{let s=new MessageChannel,o=crypto.randomUUID();return e.postMessage({type:"felt.addListener",event:i?{eventName:m,id:o,options:i}:{eventName:m,id:o}},"*",[s.port2]),s.port1.onmessage=a=>{n(a.data)},()=>{s.port1.onmessage=null,s.port1.close(),s.port2.close(),e.postMessage({type:"felt.removeListener",id:o},"*")}}}function t(e,m){return n=>{let i=new MessageChannel;return e.postMessage({type:m,params:n},"*",[i.port2]),new Promise((s,o)=>{i.port1.onmessage=a=>{a.data&&"__error__"in a.data?o(new Error(a.data.__error__)):s(a.data),i.port1.close(),i.port2.close()}})}}var g=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"),onElementGroupChange:r(e,"onElementGroupChange")});var u=e=>({onPointerClick:r(e,"onPointerClick"),onPointerMove:r(e,"onPointerMove")});var C=e=>({getLayer:t(e,"getLayer"),getLayers:t(e,"getLayers"),setLayerVisibility:t(e,"setLayerVisibility"),setLayerStyle:t(e,"setLayerStyle"),onLayerChange:r(e,"onLayerChange"),getLayerGroup:t(e,"getLayerGroup"),getLayerGroups:t(e,"getLayerGroups"),setLayerGroupVisibility:t(e,"setLayerGroupVisibility"),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"),getRenderedFeatures:t(e,"getRenderedFeatures")});var h=e=>({onSelectionChange:r(e,"onSelectionChange"),getSelection:t(e,"getSelection"),selectFeature:t(e,"selectFeature"),clearSelection:t(e,"clearSelection")});var L=e=>({updateUiControls:t(e,"updateUiControls"),setOnMapInteractionsUi:t(e,"setOnMapInteractionsUi")});var v=e=>({getViewport:t(e,"getViewport"),setViewport:t(e,"setViewport"),fitViewportToBounds:t(e,"fitViewportToBounds"),onViewportMove:r(e,"onViewportMove"),onViewportMoveEnd:r(e,"onViewportMoveEnd"),onMapIdle:r(e,"onMapIdle")});function E(e){return{iframe:null,...v(e),...L(e),...C(e),...g(e),...h(e),...u(e)}}var P={embed(e,m,n){let i={uiControls:{showLegend:!0,cooperativeGestures:!0,fullScreenButton:!0,geolocation:!1,zoomControls:!0,scaleBar:!0},initialViewport:void 0,origin:"https://felt.com"},s=n?.origin??i.origin,o=new URL(`${s}/embed/map/${m}`),a={showLegend:"legend",cooperativeGestures:"cooperativeGestures",fullScreenButton:"link",geolocation:"geolocation",zoomControls:"zoomControls",scaleBar:"scaleBar"},y={...i.uiControls,...n?.uiControls};for(let[p,d]of F(y))d!=null&&o.searchParams.set(a[p],d?"1":"0");if(n?.token&&o.searchParams.set("token",n.token),n?.initialViewport){let p=n.initialViewport;o.searchParams.set("loc",`${p.center.latitude},${p.center.longitude},${p.zoom}z`)}let c=e.tagName==="IFRAME",l=c?e:e.ownerDocument.createElement("iframe");return l.src=o.toString(),c||(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(P.connect).then(p=>(Object.defineProperties(p,{iframe:{value:l,writable:!1,configurable:!1}}),p))},connect(e){let m=E(e);return new Promise((n,i)=>{let s=setTimeout(()=>{i(new Error("Failed to load Felt map")),clearInterval(a)},5e3),o=new MessageChannel,a=setInterval(()=>{e.postMessage({type:"felt.ready"},"*",[o.port2])},100);o.port1.onmessage=y=>{y.data===!0&&(clearInterval(a),clearTimeout(s),o.port1.close(),o.port2.close(),n(m))}})}},F=Object.entries;export{P as Felt};
package/dist/handler.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var z=Object.defineProperty;var ie=Object.getOwnPropertyDescriptor;var le=Object.getOwnPropertyNames;var pe=Object.prototype.hasOwnProperty;var me=(e,r)=>{for(var f in r)z(e,f,{get:r[f],enumerable:!0})},ce=(e,r,f,L)=>{if(r&&typeof r=="object"||typeof r=="function")for(let g of le(r))!pe.call(e,g)&&g!==f&&z(e,g,{get:()=>r[g],enumerable:!(L=ie(r,g))||L.enumerable});return e};var ye=e=>ce(z({},"__esModule",{value:!0}),e);var it={};me(it,{createMessageHandler:()=>et});module.exports=ye(it);var i=require("zod");var u=require("zod");var c=require("zod");function t(e,r){return c.z.strictObject({type:c.z.literal(e),params:r})}function h(e,r){return c.z.strictObject({eventName:c.z.literal(e),id:c.z.string(),options:r})}function y(e){return c.z.strictObject({eventName:c.z.literal(e),id:c.z.string()})}var p=require("zod"),v=p.z.number(),V=p.z.number(),I=p.z.object({latitude:V,longitude:v}),j=p.z.number().min(1).max(23),x=p.z.tuple([v,V,v,V]),G=p.z.object({show:p.z.array(p.z.string()).optional(),hide:p.z.array(p.z.string()).optional()});var S=require("zod"),k=S.z.object({ids:S.z.array(S.z.string()).optional()}),N=S.z.object({ids:S.z.array(S.z.string()).optional()});var de=t("getElement",u.z.string()),ge=t("getElementGeometry",u.z.string()),ue=t("getElements",k.optional()),fe=t("getElementGroup",u.z.string()),he=t("getElementGroups",N.optional()),Se=t("setElementGroupVisibility",G),Le=h("onElementChange",u.z.object({id:u.z.string()})),Me=h("onElementGroupChange",u.z.object({id:u.z.string()})),R={methods:[de,ge,ue,fe,he,Se],listeners:[Le,Me]};var be=y("onPointerClick"),Ge=y("onPointerMove"),U={methods:null,listeners:[be,Ge]};var s=require("zod");var o=require("zod"),Ie=o.z.enum(["in","ni"]),xe=o.z.enum(["lt","gt","le","ge","eq","ne","cn","nc","is","isnt"]),Lt=o.z.enum(["and","or"]),B=o.z.union([o.z.number(),o.z.string(),o.z.boolean(),o.z.null()]),Z=o.z.string().or(o.z.null()),Fe=o.z.tuple([Z,Ie,o.z.array(B).or(o.z.null())]),Ce=o.z.tuple([Z,xe,B]),P=o.z.union([Fe,Ce]),w=o.z.tuple([o.z.lazy(()=>o.z.union([w,P,o.z.null(),o.z.boolean()])),o.z.enum(["and","or"]),o.z.lazy(()=>o.z.union([w,P,o.z.null(),o.z.boolean()]))]),A=o.z.union([w,P,o.z.null(),o.z.boolean()]);var n=require("zod");var Gt=n.z.enum(["processing","completed","failed","incomplete"]),q=n.z.object({ids:n.z.array(n.z.string()).optional()}),H=n.z.object({ids:n.z.array(n.z.string()).optional()}),M=n.z.object({id:n.z.string(),layerId:n.z.string()}),_=n.z.object({ids:M.array().optional(),layerIds:n.z.string().array().optional()}),W=n.z.object({layerIds:n.z.array(n.z.string()).optional(),areaQuery:n.z.union([n.z.object({coordinates:I}),n.z.object({boundary:x})]).optional()});var Ee=t("getLayer",s.z.string()),ze=t("getLayers",q.optional()),ve=t("setLayerVisibility",G),Ve=h("onLayerChange",s.z.object({id:s.z.string()})),Pe=t("setLayerStyle",s.z.object({id:s.z.string(),style:s.z.object({}).passthrough()})),we=t("getLayerGroup",s.z.string()),Oe=t("getLayerGroups",H.optional()),Te=t("setLayerGroupVisibility",G),je=h("onLayerGroupChange",s.z.object({id:s.z.string()})),ke=t("getLegendItem",M),Ne=t("getLegendItems",_.optional()),Re=h("onLegendItemChange",M),Ue=t("setLegendItemVisibility",s.z.object({show:M.array().optional(),hide:M.array().optional()})),Be=t("getLayerFilters",s.z.string()),Ze=t("setLayerFilters",s.z.object({layerId:s.z.string(),filters:A,note:s.z.string().optional()})),Ae=t("getRenderedFeatures",W.optional()),Q={methods:[Ee,ze,ve,Pe,we,Oe,Te,ke,Ne,Ue,Be,Ze,Ae],listeners:[Ve,je,Re]};var J=require("zod");var d=require("zod"),D=d.z.object({id:d.z.string().or(d.z.number()),layerId:d.z.string(),showPopup:d.z.boolean().optional(),fitViewport:d.z.boolean().or(d.z.object({maxZoom:d.z.number()})).optional()});var qe=t("getSelection",J.z.undefined()),He=y("onSelectionChange"),_e=t("selectFeature",D),K={methods:[qe,_e],listeners:[He]};var a=require("zod"),X=a.z.object({showLegend:a.z.boolean().optional(),cooperativeGestures:a.z.boolean().optional(),fullScreenButton:a.z.boolean().optional(),geolocation:a.z.boolean().optional(),zoomControls:a.z.boolean().optional(),scaleBar:a.z.boolean().optional()}),Y=a.z.object({featureSelectPanel:a.z.boolean().optional(),featureHoverPanel:a.z.boolean().optional(),elementSelectPanel:a.z.boolean().optional(),linkClickOpen:a.z.boolean().optional(),imageLightboxOpen:a.z.boolean().optional()});var We=t("updateUiControls",X),Qe=t("setOnMapInteractionsUi",Y),$={methods:[We,Qe],listeners:null};var ne=require("zod");var F=require("zod");var ee=F.z.object({center:I,zoom:j}),te=F.z.object({center:ee.shape.center.optional(),zoom:ee.shape.zoom.optional()}),oe=F.z.object({bounds:x});var De=t("getViewport",ne.z.undefined()),Je=t("setViewport",te),Ke=t("fitViewportToBounds",oe),Xe=y("onViewportMove"),Ye=y("onViewportMoveEnd"),$e=y("onMapIdle"),re={methods:[Je,De,Ke],listeners:[Xe,Ye,$e]};var O=[$,re,Q,R,K,U];function et(e,r,f){let L=new Map;async function g(m){if(!at.safeParse(m.data).success){f?.onUnknownMessage?.(m.data);return}let T=ae.safeParse(m.data);if(!T.success){f?.onInvalidMessage?.(m.data);return}let{data:l}=T;if(l.type==="felt.ready")m.ports[0]?.postMessage(!0);else if(l.type==="felt.addListener"){if(l.event.eventName==="")throw new Error("felt.addListener eventName cannot be empty");let b="options"in l.event?{options:"options"in l.event?l.event.options:void 0,handler:E=>{m.ports[0]?.postMessage(E)}}:{handler:E=>{m.ports[0]?.postMessage(E)}},C=r.listeners[l.event.eventName](b);L.set(l.event.id,C)}else if(l.type==="felt.removeListener")L.get(l.id)?.(),L.delete(l.id);else try{let b=r.methods[l.type],C=await b(l.params);m.ports[0]?.postMessage(C)}catch(b){m.ports[0]?.postMessage({__error__:tt(b)})}}return e.addEventListener("message",g),()=>{e.removeEventListener("message",g)}}function tt(e){return e instanceof Error?e.message:typeof e=="object"&&e!==null&&"message"in e?String(e.message):typeof e=="string"?e:"Unknown error"}var se={methods:O.map(e=>e.methods??[]).flat(),listeners:O.map(e=>e.listeners??[]).flat()},ot=i.z.discriminatedUnion("eventName",[i.z.strictObject({eventName:i.z.literal("")}),...se.listeners]),nt=i.z.strictObject({type:i.z.literal("felt.addListener"),event:ot}),rt=i.z.strictObject({type:i.z.literal("felt.removeListener"),id:i.z.string()}),st=i.z.strictObject({type:i.z.literal("felt.ready")}),ae=i.z.discriminatedUnion("type",[st,nt,rt,...se.methods]),at=i.z.object({type:i.z.enum(ae.options.map(e=>e.shape.type.value))});0&&(module.exports={createMessageHandler});
1
+ "use strict";var v=Object.defineProperty;var ie=Object.getOwnPropertyDescriptor;var le=Object.getOwnPropertyNames;var pe=Object.prototype.hasOwnProperty;var me=(t,r)=>{for(var f in r)v(t,f,{get:r[f],enumerable:!0})},ce=(t,r,f,M)=>{if(r&&typeof r=="object"||typeof r=="function")for(let g of le(r))!pe.call(t,g)&&g!==f&&v(t,g,{get:()=>r[g],enumerable:!(M=ie(r,g))||M.enumerable});return t};var ye=t=>ce(v({},"__esModule",{value:!0}),t);var lt={};me(lt,{createMessageHandler:()=>tt});module.exports=ye(lt);var i=require("zod");var u=require("zod");var c=require("zod");function e(t,r){return c.z.strictObject({type:c.z.literal(t),params:r})}function h(t,r){return c.z.strictObject({eventName:c.z.literal(t),id:c.z.string(),options:r})}function y(t){return c.z.strictObject({eventName:c.z.literal(t),id:c.z.string()})}var p=require("zod"),V=p.z.number(),P=p.z.number(),x=p.z.object({latitude:P,longitude:V}),k=p.z.number().min(1).max(23),C=p.z.tuple([V,P,V,P]),G=p.z.object({show:p.z.array(p.z.string()).optional(),hide:p.z.array(p.z.string()).optional()});var S=require("zod"),N=S.z.object({ids:S.z.array(S.z.string()).optional()}),R=S.z.object({ids:S.z.array(S.z.string()).optional()});var de=e("getElement",u.z.string()),ge=e("getElementGeometry",u.z.string()),ue=e("getElements",N.optional()),fe=e("getElementGroup",u.z.string()),he=e("getElementGroups",R.optional()),Se=e("setElementGroupVisibility",G),Me=h("onElementChange",u.z.object({id:u.z.string()})),Le=h("onElementGroupChange",u.z.object({id:u.z.string()})),U={methods:[de,ge,ue,fe,he,Se],listeners:[Me,Le]};var be=y("onPointerClick"),Ge=y("onPointerMove"),B={methods:null,listeners:[be,Ge]};var s=require("zod");var o=require("zod"),Ie=o.z.enum(["in","ni"]),xe=o.z.enum(["lt","gt","le","ge","eq","ne","cn","nc","is","isnt"]),Lt=o.z.enum(["and","or"]),Z=o.z.union([o.z.number(),o.z.string(),o.z.boolean(),o.z.null()]),A=o.z.string().or(o.z.null()),Ce=o.z.tuple([A,Ie,o.z.array(Z).or(o.z.null())]),Fe=o.z.tuple([A,xe,Z]),w=o.z.union([Ce,Fe]),O=o.z.tuple([o.z.lazy(()=>o.z.union([O,w,o.z.null(),o.z.boolean()])),o.z.enum(["and","or"]),o.z.lazy(()=>o.z.union([O,w,o.z.null(),o.z.boolean()]))]),q=o.z.union([O,w,o.z.null(),o.z.boolean()]);var n=require("zod");var It=n.z.enum(["processing","completed","failed","incomplete"]),H=n.z.object({ids:n.z.array(n.z.string()).optional()}),_=n.z.object({ids:n.z.array(n.z.string()).optional()}),L=n.z.object({id:n.z.string(),layerId:n.z.string()}),W=n.z.object({ids:L.array().optional(),layerIds:n.z.string().array().optional()}),Q=n.z.object({layerIds:n.z.array(n.z.string()).optional(),areaQuery:n.z.union([n.z.object({coordinates:x}),n.z.object({boundary:C})]).optional()});var Ee=e("getLayer",s.z.string()),ze=e("getLayers",H.optional()),ve=e("setLayerVisibility",G),Ve=h("onLayerChange",s.z.object({id:s.z.string()})),Pe=e("setLayerStyle",s.z.object({id:s.z.string(),style:s.z.object({}).passthrough()})),we=e("getLayerGroup",s.z.string()),Oe=e("getLayerGroups",_.optional()),Te=e("setLayerGroupVisibility",G),je=h("onLayerGroupChange",s.z.object({id:s.z.string()})),ke=e("getLegendItem",L),Ne=e("getLegendItems",W.optional()),Re=h("onLegendItemChange",L),Ue=e("setLegendItemVisibility",s.z.object({show:L.array().optional(),hide:L.array().optional()})),Be=e("getLayerFilters",s.z.string()),Ze=e("setLayerFilters",s.z.object({layerId:s.z.string(),filters:q,note:s.z.string().optional()})),Ae=e("getRenderedFeatures",Q.optional()),D={methods:[Ee,ze,ve,Pe,we,Oe,Te,ke,Ne,Ue,Be,Ze,Ae],listeners:[Ve,je,Re]};var I=require("zod");var d=require("zod"),J=d.z.object({id:d.z.string().or(d.z.number()),layerId:d.z.string(),showPopup:d.z.boolean().optional(),fitViewport:d.z.boolean().or(d.z.object({maxZoom:d.z.number()})).optional()});var qe=e("getSelection",I.z.undefined()),He=y("onSelectionChange"),_e=e("selectFeature",J),We=e("clearSelection",I.z.object({features:I.z.boolean().optional(),elements:I.z.boolean().optional()}).optional()),K={methods:[qe,_e,We],listeners:[He]};var a=require("zod"),X=a.z.object({showLegend:a.z.boolean().optional(),cooperativeGestures:a.z.boolean().optional(),fullScreenButton:a.z.boolean().optional(),geolocation:a.z.boolean().optional(),zoomControls:a.z.boolean().optional(),scaleBar:a.z.boolean().optional()}),Y=a.z.object({featureSelectPanel:a.z.boolean().optional(),featureHoverPanel:a.z.boolean().optional(),elementSelectPanel:a.z.boolean().optional(),linkClickOpen:a.z.boolean().optional(),imageLightboxOpen:a.z.boolean().optional()});var Qe=e("updateUiControls",X),De=e("setOnMapInteractionsUi",Y),$={methods:[Qe,De],listeners:null};var ne=require("zod");var F=require("zod");var ee=F.z.object({center:x,zoom:k}),te=F.z.object({center:ee.shape.center.optional(),zoom:ee.shape.zoom.optional()}),oe=F.z.object({bounds:C});var Je=e("getViewport",ne.z.undefined()),Ke=e("setViewport",te),Xe=e("fitViewportToBounds",oe),Ye=y("onViewportMove"),$e=y("onViewportMoveEnd"),et=y("onMapIdle"),re={methods:[Ke,Je,Xe],listeners:[Ye,$e,et]};var T=[$,re,D,U,K,B];function tt(t,r,f){let M=new Map;async function g(m){if(!it.safeParse(m.data).success){f?.onUnknownMessage?.(m.data);return}let j=ae.safeParse(m.data);if(!j.success){f?.onInvalidMessage?.(m.data);return}let{data:l}=j;if(l.type==="felt.ready")m.ports[0]?.postMessage(!0);else if(l.type==="felt.addListener"){if(l.event.eventName==="")throw new Error("felt.addListener eventName cannot be empty");let b="options"in l.event?{options:"options"in l.event?l.event.options:void 0,handler:z=>{m.ports[0]?.postMessage(z)}}:{handler:z=>{m.ports[0]?.postMessage(z)}},E=r.listeners[l.event.eventName](b);M.set(l.event.id,E)}else if(l.type==="felt.removeListener")M.get(l.id)?.(),M.delete(l.id);else try{let b=r.methods[l.type],E=await b(l.params);m.ports[0]?.postMessage(E)}catch(b){m.ports[0]?.postMessage({__error__:ot(b)})}}return t.addEventListener("message",g),()=>{t.removeEventListener("message",g)}}function ot(t){return t instanceof Error?t.message:typeof t=="object"&&t!==null&&"message"in t?String(t.message):typeof t=="string"?t:"Unknown error"}var se={methods:T.map(t=>t.methods??[]).flat(),listeners:T.map(t=>t.listeners??[]).flat()},nt=i.z.discriminatedUnion("eventName",[i.z.strictObject({eventName:i.z.literal("")}),...se.listeners]),rt=i.z.strictObject({type:i.z.literal("felt.addListener"),event:nt}),st=i.z.strictObject({type:i.z.literal("felt.removeListener"),id:i.z.string()}),at=i.z.strictObject({type:i.z.literal("felt.ready")}),ae=i.z.discriminatedUnion("type",[at,rt,st,...se.methods]),it=i.z.object({type:i.z.enum(ae.options.map(t=>t.shape.type.value))});0&&(module.exports={createMessageHandler});
@@ -735,10 +735,36 @@ declare const SelectFeatureMessage: z.ZodObject<{
735
735
  };
736
736
  type: "selectFeature";
737
737
  }>;
738
+ declare const ClearSelectionMessage: z.ZodObject<{
739
+ type: z.ZodLiteral<"clearSelection">;
740
+ params: z.ZodOptional<z.ZodObject<{
741
+ features: z.ZodOptional<z.ZodBoolean>;
742
+ elements: z.ZodOptional<z.ZodBoolean>;
743
+ }, "strip", z.ZodTypeAny, {
744
+ features?: boolean | undefined;
745
+ elements?: boolean | undefined;
746
+ }, {
747
+ features?: boolean | undefined;
748
+ elements?: boolean | undefined;
749
+ }>>;
750
+ }, z.UnknownKeysParam, z.ZodTypeAny, {
751
+ type: "clearSelection";
752
+ params?: {
753
+ features?: boolean | undefined;
754
+ elements?: boolean | undefined;
755
+ } | undefined;
756
+ }, {
757
+ type: "clearSelection";
758
+ params?: {
759
+ features?: boolean | undefined;
760
+ elements?: boolean | undefined;
761
+ } | undefined;
762
+ }>;
738
763
  type SelectionSchema = {
739
764
  methods: {
740
765
  getSelection: Method<zInfer<typeof GetSelectionMessage>, Array<EntityNode>>;
741
766
  selectFeature: Method<zInfer<typeof SelectFeatureMessage>, void>;
767
+ clearSelection: Method<zInfer<typeof ClearSelectionMessage>, void>;
742
768
  };
743
769
  listeners: {
744
770
  onSelectionChange: Listener<void, {
package/dist/handler.d.ts CHANGED
@@ -735,10 +735,36 @@ declare const SelectFeatureMessage: z.ZodObject<{
735
735
  };
736
736
  type: "selectFeature";
737
737
  }>;
738
+ declare const ClearSelectionMessage: z.ZodObject<{
739
+ type: z.ZodLiteral<"clearSelection">;
740
+ params: z.ZodOptional<z.ZodObject<{
741
+ features: z.ZodOptional<z.ZodBoolean>;
742
+ elements: z.ZodOptional<z.ZodBoolean>;
743
+ }, "strip", z.ZodTypeAny, {
744
+ features?: boolean | undefined;
745
+ elements?: boolean | undefined;
746
+ }, {
747
+ features?: boolean | undefined;
748
+ elements?: boolean | undefined;
749
+ }>>;
750
+ }, z.UnknownKeysParam, z.ZodTypeAny, {
751
+ type: "clearSelection";
752
+ params?: {
753
+ features?: boolean | undefined;
754
+ elements?: boolean | undefined;
755
+ } | undefined;
756
+ }, {
757
+ type: "clearSelection";
758
+ params?: {
759
+ features?: boolean | undefined;
760
+ elements?: boolean | undefined;
761
+ } | undefined;
762
+ }>;
738
763
  type SelectionSchema = {
739
764
  methods: {
740
765
  getSelection: Method<zInfer<typeof GetSelectionMessage>, Array<EntityNode>>;
741
766
  selectFeature: Method<zInfer<typeof SelectFeatureMessage>, void>;
767
+ clearSelection: Method<zInfer<typeof ClearSelectionMessage>, void>;
742
768
  };
743
769
  listeners: {
744
770
  onSelectionChange: Listener<void, {
package/dist/handler.js CHANGED
@@ -1 +1 @@
1
- import{z as i}from"zod";import{z as g}from"zod";import{z as c}from"zod";function e(o,u){return c.strictObject({type:c.literal(o),params:u})}function d(o,u){return c.strictObject({eventName:c.literal(o),id:c.string(),options:u})}function m(o){return c.strictObject({eventName:c.literal(o),id:c.string()})}import{z as l}from"zod";var F=l.number(),C=l.number(),M=l.object({latitude:C,longitude:F}),T=l.number().min(1).max(23),b=l.tuple([F,C,F,C]),L=l.object({show:l.array(l.string()).optional(),hide:l.array(l.string()).optional()});import{z as f}from"zod";var j=f.object({ids:f.array(f.string()).optional()}),k=f.object({ids:f.array(f.string()).optional()});var re=e("getElement",g.string()),se=e("getElementGeometry",g.string()),ae=e("getElements",j.optional()),ie=e("getElementGroup",g.string()),le=e("getElementGroups",k.optional()),pe=e("setElementGroupVisibility",L),me=d("onElementChange",g.object({id:g.string()})),ce=d("onElementGroupChange",g.object({id:g.string()})),N={methods:[re,se,ae,ie,le,pe],listeners:[me,ce]};var ye=m("onPointerClick"),de=m("onPointerMove"),R={methods:null,listeners:[ye,de]};import{z as r}from"zod";import{z as t}from"zod";var ge=t.enum(["in","ni"]),ue=t.enum(["lt","gt","le","ge","eq","ne","cn","nc","is","isnt"]),gt=t.enum(["and","or"]),U=t.union([t.number(),t.string(),t.boolean(),t.null()]),B=t.string().or(t.null()),fe=t.tuple([B,ge,t.array(U).or(t.null())]),he=t.tuple([B,ue,U]),E=t.union([fe,he]),z=t.tuple([t.lazy(()=>t.union([z,E,t.null(),t.boolean()])),t.enum(["and","or"]),t.lazy(()=>t.union([z,E,t.null(),t.boolean()]))]),Z=t.union([z,E,t.null(),t.boolean()]);import{z as n}from"zod";var St=n.enum(["processing","completed","failed","incomplete"]),A=n.object({ids:n.array(n.string()).optional()}),q=n.object({ids:n.array(n.string()).optional()}),h=n.object({id:n.string(),layerId:n.string()}),H=n.object({ids:h.array().optional(),layerIds:n.string().array().optional()}),_=n.object({layerIds:n.array(n.string()).optional(),areaQuery:n.union([n.object({coordinates:M}),n.object({boundary:b})]).optional()});var Se=e("getLayer",r.string()),Le=e("getLayers",A.optional()),Me=e("setLayerVisibility",L),be=d("onLayerChange",r.object({id:r.string()})),Ge=e("setLayerStyle",r.object({id:r.string(),style:r.object({}).passthrough()})),Ie=e("getLayerGroup",r.string()),xe=e("getLayerGroups",q.optional()),Fe=e("setLayerGroupVisibility",L),Ce=d("onLayerGroupChange",r.object({id:r.string()})),Ee=e("getLegendItem",h),ze=e("getLegendItems",H.optional()),ve=d("onLegendItemChange",h),Ve=e("setLegendItemVisibility",r.object({show:h.array().optional(),hide:h.array().optional()})),Pe=e("getLayerFilters",r.string()),we=e("setLayerFilters",r.object({layerId:r.string(),filters:Z,note:r.string().optional()})),Oe=e("getRenderedFeatures",_.optional()),W={methods:[Se,Le,Me,Ge,Ie,xe,Fe,Ee,ze,Ve,Pe,we,Oe],listeners:[be,Ce,ve]};import{z as Te}from"zod";import{z as y}from"zod";var Q=y.object({id:y.string().or(y.number()),layerId:y.string(),showPopup:y.boolean().optional(),fitViewport:y.boolean().or(y.object({maxZoom:y.number()})).optional()});var je=e("getSelection",Te.undefined()),ke=m("onSelectionChange"),Ne=e("selectFeature",Q),D={methods:[je,Ne],listeners:[ke]};import{z as a}from"zod";var J=a.object({showLegend:a.boolean().optional(),cooperativeGestures:a.boolean().optional(),fullScreenButton:a.boolean().optional(),geolocation:a.boolean().optional(),zoomControls:a.boolean().optional(),scaleBar:a.boolean().optional()}),K=a.object({featureSelectPanel:a.boolean().optional(),featureHoverPanel:a.boolean().optional(),elementSelectPanel:a.boolean().optional(),linkClickOpen:a.boolean().optional(),imageLightboxOpen:a.boolean().optional()});var Re=e("updateUiControls",J),Ue=e("setOnMapInteractionsUi",K),X={methods:[Re,Ue],listeners:null};import{z as Be}from"zod";import{z as v}from"zod";var Y=v.object({center:M,zoom:T}),$=v.object({center:Y.shape.center.optional(),zoom:Y.shape.zoom.optional()}),ee=v.object({bounds:b});var Ze=e("getViewport",Be.undefined()),Ae=e("setViewport",$),qe=e("fitViewportToBounds",ee),He=m("onViewportMove"),_e=m("onViewportMoveEnd"),We=m("onMapIdle"),te={methods:[Ae,Ze,qe],listeners:[He,_e,We]};var V=[X,te,W,N,D,R];function $t(o,u,P){let G=new Map;async function w(p){if(!Ye.safeParse(p.data).success){P?.onUnknownMessage?.(p.data);return}let O=ne.safeParse(p.data);if(!O.success){P?.onInvalidMessage?.(p.data);return}let{data:s}=O;if(s.type==="felt.ready")p.ports[0]?.postMessage(!0);else if(s.type==="felt.addListener"){if(s.event.eventName==="")throw new Error("felt.addListener eventName cannot be empty");let S="options"in s.event?{options:"options"in s.event?s.event.options:void 0,handler:x=>{p.ports[0]?.postMessage(x)}}:{handler:x=>{p.ports[0]?.postMessage(x)}},I=u.listeners[s.event.eventName](S);G.set(s.event.id,I)}else if(s.type==="felt.removeListener")G.get(s.id)?.(),G.delete(s.id);else try{let S=u.methods[s.type],I=await S(s.params);p.ports[0]?.postMessage(I)}catch(S){p.ports[0]?.postMessage({__error__:Qe(S)})}}return o.addEventListener("message",w),()=>{o.removeEventListener("message",w)}}function Qe(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 oe={methods:V.map(o=>o.methods??[]).flat(),listeners:V.map(o=>o.listeners??[]).flat()},De=i.discriminatedUnion("eventName",[i.strictObject({eventName:i.literal("")}),...oe.listeners]),Je=i.strictObject({type:i.literal("felt.addListener"),event:De}),Ke=i.strictObject({type:i.literal("felt.removeListener"),id:i.string()}),Xe=i.strictObject({type:i.literal("felt.ready")}),ne=i.discriminatedUnion("type",[Xe,Je,Ke,...oe.methods]),Ye=i.object({type:i.enum(ne.options.map(o=>o.shape.type.value))});export{$t as createMessageHandler};
1
+ import{z as i}from"zod";import{z as g}from"zod";import{z as c}from"zod";function e(o,u){return c.strictObject({type:c.literal(o),params:u})}function d(o,u){return c.strictObject({eventName:c.literal(o),id:c.string(),options:u})}function m(o){return c.strictObject({eventName:c.literal(o),id:c.string()})}import{z as l}from"zod";var F=l.number(),E=l.number(),L=l.object({latitude:E,longitude:F}),j=l.number().min(1).max(23),b=l.tuple([F,E,F,E]),M=l.object({show:l.array(l.string()).optional(),hide:l.array(l.string()).optional()});import{z as f}from"zod";var k=f.object({ids:f.array(f.string()).optional()}),N=f.object({ids:f.array(f.string()).optional()});var se=e("getElement",g.string()),ae=e("getElementGeometry",g.string()),ie=e("getElements",k.optional()),le=e("getElementGroup",g.string()),pe=e("getElementGroups",N.optional()),me=e("setElementGroupVisibility",M),ce=d("onElementChange",g.object({id:g.string()})),ye=d("onElementGroupChange",g.object({id:g.string()})),R={methods:[se,ae,ie,le,pe,me],listeners:[ce,ye]};var de=m("onPointerClick"),ge=m("onPointerMove"),U={methods:null,listeners:[de,ge]};import{z as r}from"zod";import{z as t}from"zod";var ue=t.enum(["in","ni"]),fe=t.enum(["lt","gt","le","ge","eq","ne","cn","nc","is","isnt"]),ut=t.enum(["and","or"]),B=t.union([t.number(),t.string(),t.boolean(),t.null()]),Z=t.string().or(t.null()),he=t.tuple([Z,ue,t.array(B).or(t.null())]),Se=t.tuple([Z,fe,B]),z=t.union([he,Se]),v=t.tuple([t.lazy(()=>t.union([v,z,t.null(),t.boolean()])),t.enum(["and","or"]),t.lazy(()=>t.union([v,z,t.null(),t.boolean()]))]),A=t.union([v,z,t.null(),t.boolean()]);import{z as n}from"zod";var Mt=n.enum(["processing","completed","failed","incomplete"]),q=n.object({ids:n.array(n.string()).optional()}),H=n.object({ids:n.array(n.string()).optional()}),h=n.object({id:n.string(),layerId:n.string()}),_=n.object({ids:h.array().optional(),layerIds:n.string().array().optional()}),W=n.object({layerIds:n.array(n.string()).optional(),areaQuery:n.union([n.object({coordinates:L}),n.object({boundary:b})]).optional()});var Me=e("getLayer",r.string()),Le=e("getLayers",q.optional()),be=e("setLayerVisibility",M),Ge=d("onLayerChange",r.object({id:r.string()})),Ie=e("setLayerStyle",r.object({id:r.string(),style:r.object({}).passthrough()})),xe=e("getLayerGroup",r.string()),Ce=e("getLayerGroups",H.optional()),Fe=e("setLayerGroupVisibility",M),Ee=d("onLayerGroupChange",r.object({id:r.string()})),ze=e("getLegendItem",h),ve=e("getLegendItems",_.optional()),Ve=d("onLegendItemChange",h),Pe=e("setLegendItemVisibility",r.object({show:h.array().optional(),hide:h.array().optional()})),we=e("getLayerFilters",r.string()),Oe=e("setLayerFilters",r.object({layerId:r.string(),filters:A,note:r.string().optional()})),Te=e("getRenderedFeatures",W.optional()),Q={methods:[Me,Le,be,Ie,xe,Ce,Fe,ze,ve,Pe,we,Oe,Te],listeners:[Ge,Ee,Ve]};import{z as G}from"zod";import{z as y}from"zod";var D=y.object({id:y.string().or(y.number()),layerId:y.string(),showPopup:y.boolean().optional(),fitViewport:y.boolean().or(y.object({maxZoom:y.number()})).optional()});var je=e("getSelection",G.undefined()),ke=m("onSelectionChange"),Ne=e("selectFeature",D),Re=e("clearSelection",G.object({features:G.boolean().optional(),elements:G.boolean().optional()}).optional()),J={methods:[je,Ne,Re],listeners:[ke]};import{z as a}from"zod";var K=a.object({showLegend:a.boolean().optional(),cooperativeGestures:a.boolean().optional(),fullScreenButton:a.boolean().optional(),geolocation:a.boolean().optional(),zoomControls:a.boolean().optional(),scaleBar:a.boolean().optional()}),X=a.object({featureSelectPanel:a.boolean().optional(),featureHoverPanel:a.boolean().optional(),elementSelectPanel:a.boolean().optional(),linkClickOpen:a.boolean().optional(),imageLightboxOpen:a.boolean().optional()});var Ue=e("updateUiControls",K),Be=e("setOnMapInteractionsUi",X),Y={methods:[Ue,Be],listeners:null};import{z as Ze}from"zod";import{z as V}from"zod";var $=V.object({center:L,zoom:j}),ee=V.object({center:$.shape.center.optional(),zoom:$.shape.zoom.optional()}),te=V.object({bounds:b});var Ae=e("getViewport",Ze.undefined()),qe=e("setViewport",ee),He=e("fitViewportToBounds",te),_e=m("onViewportMove"),We=m("onViewportMoveEnd"),Qe=m("onMapIdle"),oe={methods:[qe,Ae,He],listeners:[_e,We,Qe]};var P=[Y,oe,Q,R,J,U];function eo(o,u,w){let I=new Map;async function O(p){if(!$e.safeParse(p.data).success){w?.onUnknownMessage?.(p.data);return}let T=re.safeParse(p.data);if(!T.success){w?.onInvalidMessage?.(p.data);return}let{data:s}=T;if(s.type==="felt.ready")p.ports[0]?.postMessage(!0);else if(s.type==="felt.addListener"){if(s.event.eventName==="")throw new Error("felt.addListener eventName cannot be empty");let S="options"in s.event?{options:"options"in s.event?s.event.options:void 0,handler:C=>{p.ports[0]?.postMessage(C)}}:{handler:C=>{p.ports[0]?.postMessage(C)}},x=u.listeners[s.event.eventName](S);I.set(s.event.id,x)}else if(s.type==="felt.removeListener")I.get(s.id)?.(),I.delete(s.id);else try{let S=u.methods[s.type],x=await S(s.params);p.ports[0]?.postMessage(x)}catch(S){p.ports[0]?.postMessage({__error__:De(S)})}}return o.addEventListener("message",O),()=>{o.removeEventListener("message",O)}}function De(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 ne={methods:P.map(o=>o.methods??[]).flat(),listeners:P.map(o=>o.listeners??[]).flat()},Je=i.discriminatedUnion("eventName",[i.strictObject({eventName:i.literal("")}),...ne.listeners]),Ke=i.strictObject({type:i.literal("felt.addListener"),event:Je}),Xe=i.strictObject({type:i.literal("felt.removeListener"),id:i.string()}),Ye=i.strictObject({type:i.literal("felt.ready")}),re=i.discriminatedUnion("type",[Ye,Ke,Xe,...ne.methods]),$e=i.object({type:i.enum(re.options.map(o=>o.shape.type.value))});export{eo as createMessageHandler};
package/handler.d.ts CHANGED
@@ -735,10 +735,36 @@ declare const SelectFeatureMessage: z.ZodObject<{
735
735
  };
736
736
  type: "selectFeature";
737
737
  }>;
738
+ declare const ClearSelectionMessage: z.ZodObject<{
739
+ type: z.ZodLiteral<"clearSelection">;
740
+ params: z.ZodOptional<z.ZodObject<{
741
+ features: z.ZodOptional<z.ZodBoolean>;
742
+ elements: z.ZodOptional<z.ZodBoolean>;
743
+ }, "strip", z.ZodTypeAny, {
744
+ features?: boolean | undefined;
745
+ elements?: boolean | undefined;
746
+ }, {
747
+ features?: boolean | undefined;
748
+ elements?: boolean | undefined;
749
+ }>>;
750
+ }, z.UnknownKeysParam, z.ZodTypeAny, {
751
+ type: "clearSelection";
752
+ params?: {
753
+ features?: boolean | undefined;
754
+ elements?: boolean | undefined;
755
+ } | undefined;
756
+ }, {
757
+ type: "clearSelection";
758
+ params?: {
759
+ features?: boolean | undefined;
760
+ elements?: boolean | undefined;
761
+ } | undefined;
762
+ }>;
738
763
  type SelectionSchema = {
739
764
  methods: {
740
765
  getSelection: Method<zInfer<typeof GetSelectionMessage>, Array<EntityNode>>;
741
766
  selectFeature: Method<zInfer<typeof SelectFeatureMessage>, void>;
767
+ clearSelection: Method<zInfer<typeof ClearSelectionMessage>, void>;
742
768
  };
743
769
  listeners: {
744
770
  onSelectionChange: Listener<void, {
package/handler.js CHANGED
@@ -1 +1 @@
1
- "use strict";var z=Object.defineProperty;var ie=Object.getOwnPropertyDescriptor;var le=Object.getOwnPropertyNames;var pe=Object.prototype.hasOwnProperty;var me=(e,r)=>{for(var f in r)z(e,f,{get:r[f],enumerable:!0})},ce=(e,r,f,L)=>{if(r&&typeof r=="object"||typeof r=="function")for(let g of le(r))!pe.call(e,g)&&g!==f&&z(e,g,{get:()=>r[g],enumerable:!(L=ie(r,g))||L.enumerable});return e};var ye=e=>ce(z({},"__esModule",{value:!0}),e);var it={};me(it,{createMessageHandler:()=>et});module.exports=ye(it);var i=require("zod");var u=require("zod");var c=require("zod");function t(e,r){return c.z.strictObject({type:c.z.literal(e),params:r})}function h(e,r){return c.z.strictObject({eventName:c.z.literal(e),id:c.z.string(),options:r})}function y(e){return c.z.strictObject({eventName:c.z.literal(e),id:c.z.string()})}var p=require("zod"),v=p.z.number(),V=p.z.number(),I=p.z.object({latitude:V,longitude:v}),j=p.z.number().min(1).max(23),x=p.z.tuple([v,V,v,V]),G=p.z.object({show:p.z.array(p.z.string()).optional(),hide:p.z.array(p.z.string()).optional()});var S=require("zod"),k=S.z.object({ids:S.z.array(S.z.string()).optional()}),N=S.z.object({ids:S.z.array(S.z.string()).optional()});var de=t("getElement",u.z.string()),ge=t("getElementGeometry",u.z.string()),ue=t("getElements",k.optional()),fe=t("getElementGroup",u.z.string()),he=t("getElementGroups",N.optional()),Se=t("setElementGroupVisibility",G),Le=h("onElementChange",u.z.object({id:u.z.string()})),Me=h("onElementGroupChange",u.z.object({id:u.z.string()})),R={methods:[de,ge,ue,fe,he,Se],listeners:[Le,Me]};var be=y("onPointerClick"),Ge=y("onPointerMove"),U={methods:null,listeners:[be,Ge]};var s=require("zod");var o=require("zod"),Ie=o.z.enum(["in","ni"]),xe=o.z.enum(["lt","gt","le","ge","eq","ne","cn","nc","is","isnt"]),Lt=o.z.enum(["and","or"]),B=o.z.union([o.z.number(),o.z.string(),o.z.boolean(),o.z.null()]),Z=o.z.string().or(o.z.null()),Fe=o.z.tuple([Z,Ie,o.z.array(B).or(o.z.null())]),Ce=o.z.tuple([Z,xe,B]),P=o.z.union([Fe,Ce]),w=o.z.tuple([o.z.lazy(()=>o.z.union([w,P,o.z.null(),o.z.boolean()])),o.z.enum(["and","or"]),o.z.lazy(()=>o.z.union([w,P,o.z.null(),o.z.boolean()]))]),A=o.z.union([w,P,o.z.null(),o.z.boolean()]);var n=require("zod");var Gt=n.z.enum(["processing","completed","failed","incomplete"]),q=n.z.object({ids:n.z.array(n.z.string()).optional()}),H=n.z.object({ids:n.z.array(n.z.string()).optional()}),M=n.z.object({id:n.z.string(),layerId:n.z.string()}),_=n.z.object({ids:M.array().optional(),layerIds:n.z.string().array().optional()}),W=n.z.object({layerIds:n.z.array(n.z.string()).optional(),areaQuery:n.z.union([n.z.object({coordinates:I}),n.z.object({boundary:x})]).optional()});var Ee=t("getLayer",s.z.string()),ze=t("getLayers",q.optional()),ve=t("setLayerVisibility",G),Ve=h("onLayerChange",s.z.object({id:s.z.string()})),Pe=t("setLayerStyle",s.z.object({id:s.z.string(),style:s.z.object({}).passthrough()})),we=t("getLayerGroup",s.z.string()),Oe=t("getLayerGroups",H.optional()),Te=t("setLayerGroupVisibility",G),je=h("onLayerGroupChange",s.z.object({id:s.z.string()})),ke=t("getLegendItem",M),Ne=t("getLegendItems",_.optional()),Re=h("onLegendItemChange",M),Ue=t("setLegendItemVisibility",s.z.object({show:M.array().optional(),hide:M.array().optional()})),Be=t("getLayerFilters",s.z.string()),Ze=t("setLayerFilters",s.z.object({layerId:s.z.string(),filters:A,note:s.z.string().optional()})),Ae=t("getRenderedFeatures",W.optional()),Q={methods:[Ee,ze,ve,Pe,we,Oe,Te,ke,Ne,Ue,Be,Ze,Ae],listeners:[Ve,je,Re]};var J=require("zod");var d=require("zod"),D=d.z.object({id:d.z.string().or(d.z.number()),layerId:d.z.string(),showPopup:d.z.boolean().optional(),fitViewport:d.z.boolean().or(d.z.object({maxZoom:d.z.number()})).optional()});var qe=t("getSelection",J.z.undefined()),He=y("onSelectionChange"),_e=t("selectFeature",D),K={methods:[qe,_e],listeners:[He]};var a=require("zod"),X=a.z.object({showLegend:a.z.boolean().optional(),cooperativeGestures:a.z.boolean().optional(),fullScreenButton:a.z.boolean().optional(),geolocation:a.z.boolean().optional(),zoomControls:a.z.boolean().optional(),scaleBar:a.z.boolean().optional()}),Y=a.z.object({featureSelectPanel:a.z.boolean().optional(),featureHoverPanel:a.z.boolean().optional(),elementSelectPanel:a.z.boolean().optional(),linkClickOpen:a.z.boolean().optional(),imageLightboxOpen:a.z.boolean().optional()});var We=t("updateUiControls",X),Qe=t("setOnMapInteractionsUi",Y),$={methods:[We,Qe],listeners:null};var ne=require("zod");var F=require("zod");var ee=F.z.object({center:I,zoom:j}),te=F.z.object({center:ee.shape.center.optional(),zoom:ee.shape.zoom.optional()}),oe=F.z.object({bounds:x});var De=t("getViewport",ne.z.undefined()),Je=t("setViewport",te),Ke=t("fitViewportToBounds",oe),Xe=y("onViewportMove"),Ye=y("onViewportMoveEnd"),$e=y("onMapIdle"),re={methods:[Je,De,Ke],listeners:[Xe,Ye,$e]};var O=[$,re,Q,R,K,U];function et(e,r,f){let L=new Map;async function g(m){if(!at.safeParse(m.data).success){f?.onUnknownMessage?.(m.data);return}let T=ae.safeParse(m.data);if(!T.success){f?.onInvalidMessage?.(m.data);return}let{data:l}=T;if(l.type==="felt.ready")m.ports[0]?.postMessage(!0);else if(l.type==="felt.addListener"){if(l.event.eventName==="")throw new Error("felt.addListener eventName cannot be empty");let b="options"in l.event?{options:"options"in l.event?l.event.options:void 0,handler:E=>{m.ports[0]?.postMessage(E)}}:{handler:E=>{m.ports[0]?.postMessage(E)}},C=r.listeners[l.event.eventName](b);L.set(l.event.id,C)}else if(l.type==="felt.removeListener")L.get(l.id)?.(),L.delete(l.id);else try{let b=r.methods[l.type],C=await b(l.params);m.ports[0]?.postMessage(C)}catch(b){m.ports[0]?.postMessage({__error__:tt(b)})}}return e.addEventListener("message",g),()=>{e.removeEventListener("message",g)}}function tt(e){return e instanceof Error?e.message:typeof e=="object"&&e!==null&&"message"in e?String(e.message):typeof e=="string"?e:"Unknown error"}var se={methods:O.map(e=>e.methods??[]).flat(),listeners:O.map(e=>e.listeners??[]).flat()},ot=i.z.discriminatedUnion("eventName",[i.z.strictObject({eventName:i.z.literal("")}),...se.listeners]),nt=i.z.strictObject({type:i.z.literal("felt.addListener"),event:ot}),rt=i.z.strictObject({type:i.z.literal("felt.removeListener"),id:i.z.string()}),st=i.z.strictObject({type:i.z.literal("felt.ready")}),ae=i.z.discriminatedUnion("type",[st,nt,rt,...se.methods]),at=i.z.object({type:i.z.enum(ae.options.map(e=>e.shape.type.value))});0&&(module.exports={createMessageHandler});
1
+ "use strict";var v=Object.defineProperty;var ie=Object.getOwnPropertyDescriptor;var le=Object.getOwnPropertyNames;var pe=Object.prototype.hasOwnProperty;var me=(t,r)=>{for(var f in r)v(t,f,{get:r[f],enumerable:!0})},ce=(t,r,f,M)=>{if(r&&typeof r=="object"||typeof r=="function")for(let g of le(r))!pe.call(t,g)&&g!==f&&v(t,g,{get:()=>r[g],enumerable:!(M=ie(r,g))||M.enumerable});return t};var ye=t=>ce(v({},"__esModule",{value:!0}),t);var lt={};me(lt,{createMessageHandler:()=>tt});module.exports=ye(lt);var i=require("zod");var u=require("zod");var c=require("zod");function e(t,r){return c.z.strictObject({type:c.z.literal(t),params:r})}function h(t,r){return c.z.strictObject({eventName:c.z.literal(t),id:c.z.string(),options:r})}function y(t){return c.z.strictObject({eventName:c.z.literal(t),id:c.z.string()})}var p=require("zod"),V=p.z.number(),P=p.z.number(),x=p.z.object({latitude:P,longitude:V}),k=p.z.number().min(1).max(23),C=p.z.tuple([V,P,V,P]),G=p.z.object({show:p.z.array(p.z.string()).optional(),hide:p.z.array(p.z.string()).optional()});var S=require("zod"),N=S.z.object({ids:S.z.array(S.z.string()).optional()}),R=S.z.object({ids:S.z.array(S.z.string()).optional()});var de=e("getElement",u.z.string()),ge=e("getElementGeometry",u.z.string()),ue=e("getElements",N.optional()),fe=e("getElementGroup",u.z.string()),he=e("getElementGroups",R.optional()),Se=e("setElementGroupVisibility",G),Me=h("onElementChange",u.z.object({id:u.z.string()})),Le=h("onElementGroupChange",u.z.object({id:u.z.string()})),U={methods:[de,ge,ue,fe,he,Se],listeners:[Me,Le]};var be=y("onPointerClick"),Ge=y("onPointerMove"),B={methods:null,listeners:[be,Ge]};var s=require("zod");var o=require("zod"),Ie=o.z.enum(["in","ni"]),xe=o.z.enum(["lt","gt","le","ge","eq","ne","cn","nc","is","isnt"]),Lt=o.z.enum(["and","or"]),Z=o.z.union([o.z.number(),o.z.string(),o.z.boolean(),o.z.null()]),A=o.z.string().or(o.z.null()),Ce=o.z.tuple([A,Ie,o.z.array(Z).or(o.z.null())]),Fe=o.z.tuple([A,xe,Z]),w=o.z.union([Ce,Fe]),O=o.z.tuple([o.z.lazy(()=>o.z.union([O,w,o.z.null(),o.z.boolean()])),o.z.enum(["and","or"]),o.z.lazy(()=>o.z.union([O,w,o.z.null(),o.z.boolean()]))]),q=o.z.union([O,w,o.z.null(),o.z.boolean()]);var n=require("zod");var It=n.z.enum(["processing","completed","failed","incomplete"]),H=n.z.object({ids:n.z.array(n.z.string()).optional()}),_=n.z.object({ids:n.z.array(n.z.string()).optional()}),L=n.z.object({id:n.z.string(),layerId:n.z.string()}),W=n.z.object({ids:L.array().optional(),layerIds:n.z.string().array().optional()}),Q=n.z.object({layerIds:n.z.array(n.z.string()).optional(),areaQuery:n.z.union([n.z.object({coordinates:x}),n.z.object({boundary:C})]).optional()});var Ee=e("getLayer",s.z.string()),ze=e("getLayers",H.optional()),ve=e("setLayerVisibility",G),Ve=h("onLayerChange",s.z.object({id:s.z.string()})),Pe=e("setLayerStyle",s.z.object({id:s.z.string(),style:s.z.object({}).passthrough()})),we=e("getLayerGroup",s.z.string()),Oe=e("getLayerGroups",_.optional()),Te=e("setLayerGroupVisibility",G),je=h("onLayerGroupChange",s.z.object({id:s.z.string()})),ke=e("getLegendItem",L),Ne=e("getLegendItems",W.optional()),Re=h("onLegendItemChange",L),Ue=e("setLegendItemVisibility",s.z.object({show:L.array().optional(),hide:L.array().optional()})),Be=e("getLayerFilters",s.z.string()),Ze=e("setLayerFilters",s.z.object({layerId:s.z.string(),filters:q,note:s.z.string().optional()})),Ae=e("getRenderedFeatures",Q.optional()),D={methods:[Ee,ze,ve,Pe,we,Oe,Te,ke,Ne,Ue,Be,Ze,Ae],listeners:[Ve,je,Re]};var I=require("zod");var d=require("zod"),J=d.z.object({id:d.z.string().or(d.z.number()),layerId:d.z.string(),showPopup:d.z.boolean().optional(),fitViewport:d.z.boolean().or(d.z.object({maxZoom:d.z.number()})).optional()});var qe=e("getSelection",I.z.undefined()),He=y("onSelectionChange"),_e=e("selectFeature",J),We=e("clearSelection",I.z.object({features:I.z.boolean().optional(),elements:I.z.boolean().optional()}).optional()),K={methods:[qe,_e,We],listeners:[He]};var a=require("zod"),X=a.z.object({showLegend:a.z.boolean().optional(),cooperativeGestures:a.z.boolean().optional(),fullScreenButton:a.z.boolean().optional(),geolocation:a.z.boolean().optional(),zoomControls:a.z.boolean().optional(),scaleBar:a.z.boolean().optional()}),Y=a.z.object({featureSelectPanel:a.z.boolean().optional(),featureHoverPanel:a.z.boolean().optional(),elementSelectPanel:a.z.boolean().optional(),linkClickOpen:a.z.boolean().optional(),imageLightboxOpen:a.z.boolean().optional()});var Qe=e("updateUiControls",X),De=e("setOnMapInteractionsUi",Y),$={methods:[Qe,De],listeners:null};var ne=require("zod");var F=require("zod");var ee=F.z.object({center:x,zoom:k}),te=F.z.object({center:ee.shape.center.optional(),zoom:ee.shape.zoom.optional()}),oe=F.z.object({bounds:C});var Je=e("getViewport",ne.z.undefined()),Ke=e("setViewport",te),Xe=e("fitViewportToBounds",oe),Ye=y("onViewportMove"),$e=y("onViewportMoveEnd"),et=y("onMapIdle"),re={methods:[Ke,Je,Xe],listeners:[Ye,$e,et]};var T=[$,re,D,U,K,B];function tt(t,r,f){let M=new Map;async function g(m){if(!it.safeParse(m.data).success){f?.onUnknownMessage?.(m.data);return}let j=ae.safeParse(m.data);if(!j.success){f?.onInvalidMessage?.(m.data);return}let{data:l}=j;if(l.type==="felt.ready")m.ports[0]?.postMessage(!0);else if(l.type==="felt.addListener"){if(l.event.eventName==="")throw new Error("felt.addListener eventName cannot be empty");let b="options"in l.event?{options:"options"in l.event?l.event.options:void 0,handler:z=>{m.ports[0]?.postMessage(z)}}:{handler:z=>{m.ports[0]?.postMessage(z)}},E=r.listeners[l.event.eventName](b);M.set(l.event.id,E)}else if(l.type==="felt.removeListener")M.get(l.id)?.(),M.delete(l.id);else try{let b=r.methods[l.type],E=await b(l.params);m.ports[0]?.postMessage(E)}catch(b){m.ports[0]?.postMessage({__error__:ot(b)})}}return t.addEventListener("message",g),()=>{t.removeEventListener("message",g)}}function ot(t){return t instanceof Error?t.message:typeof t=="object"&&t!==null&&"message"in t?String(t.message):typeof t=="string"?t:"Unknown error"}var se={methods:T.map(t=>t.methods??[]).flat(),listeners:T.map(t=>t.listeners??[]).flat()},nt=i.z.discriminatedUnion("eventName",[i.z.strictObject({eventName:i.z.literal("")}),...se.listeners]),rt=i.z.strictObject({type:i.z.literal("felt.addListener"),event:nt}),st=i.z.strictObject({type:i.z.literal("felt.removeListener"),id:i.z.string()}),at=i.z.strictObject({type:i.z.literal("felt.ready")}),ae=i.z.discriminatedUnion("type",[at,rt,st,...se.methods]),it=i.z.object({type:i.z.enum(ae.options.map(t=>t.shape.type.value))});0&&(module.exports={createMessageHandler});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@feltmaps/js-sdk",
3
- "version": "1.3.0",
3
+ "version": "1.4.0-next.1",
4
4
  "description": "An SDK for Felt maps",
5
5
  "keywords": [
6
6
  "felt",