@carto/ps-react-maps 3.0.0-canary.1 → 3.0.0-canary.3

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.
Files changed (37) hide show
  1. package/dist/index.js +2040 -1448
  2. package/dist/index.js.map +1 -1
  3. package/dist/types/editable/lasso-tools/const.d.ts +1 -0
  4. package/dist/types/editable/lasso-tools/lasso-tools.d.ts +1 -1
  5. package/dist/types/editable/lasso-tools/util.d.ts +4 -0
  6. package/dist/types/editable/measurement-tools/measurement-tools.d.ts +1 -1
  7. package/dist/types/editable/measurement-tools/provider/types.d.ts +1 -1
  8. package/dist/types/editable/measurement-tools/types.d.ts +1 -1
  9. package/dist/types/editable/measurement-tools/use-measurement-tools.d.ts +1 -1
  10. package/dist/types/index.d.ts +22 -7
  11. package/dist/types/models/categories.d.ts +7 -0
  12. package/dist/types/models/features.d.ts +7 -0
  13. package/dist/types/models/formula.d.ts +7 -0
  14. package/dist/types/models/histogram..d.ts +7 -0
  15. package/dist/types/models/range.d.ts +7 -0
  16. package/dist/types/models/scatter.d.ts +7 -0
  17. package/dist/types/models/table.d.ts +7 -0
  18. package/dist/types/models/time-series.d.ts +7 -0
  19. package/dist/types/models/types.d.ts +7 -0
  20. package/dist/types/models/use-widget-model.d.ts +1 -0
  21. package/dist/types/provider.d.ts +11 -0
  22. package/dist/types/providers/layers/store.d.ts +1 -1
  23. package/dist/types/providers/layers/types.d.ts +13 -1
  24. package/dist/types/providers/map/provider.d.ts +2 -2
  25. package/dist/types/providers/map/store.d.ts +2 -2
  26. package/dist/types/providers/map/types.d.ts +6 -4
  27. package/dist/types/providers/sources/store.d.ts +3 -2
  28. package/dist/types/providers/sources/types.d.ts +46 -5
  29. package/dist/types/types.d.ts +9 -9
  30. package/dist/types/use-layers.d.ts +4 -0
  31. package/dist/types/use-legend.d.ts +16 -0
  32. package/dist/types/use-spatial-filter.d.ts +15 -0
  33. package/dist/types/utils/mapping-meridian.d.ts +15 -0
  34. package/dist/types/utils/sort-layers.d.ts +2 -0
  35. package/dist/types/zoom-controls.d.ts +1 -1
  36. package/package.json +23 -17
  37. package/dist/types/use-get-layers.d.ts +0 -4
@@ -27,5 +27,6 @@ export declare const DEFAULT_MASK_LAYER_PROPS: {
27
27
  lineWidthUnits: string;
28
28
  getLineWidth: number;
29
29
  lineWidthMinPixels: number;
30
+ operation: string;
30
31
  };
31
32
  export declare const DEFAULT_LASSO_TOOLS_MODES: LassoToolsModes<LassoToolsMode>;
@@ -21,7 +21,7 @@ import { LassoToolsControls } from './lasso-tools-control';
21
21
  * </LassoTools>
22
22
  */
23
23
  export declare function LassoTools({ children, mapId, defaultProps: { styles, labels }, layerProps, defaultType, }: LassoToolsProps & {
24
- children: ReactNode;
24
+ children?: ReactNode;
25
25
  }): ReactNode;
26
26
  export declare namespace LassoTools {
27
27
  var Controls: typeof LassoToolsControls;
@@ -0,0 +1,4 @@
1
+ import { LassoToolsStore } from './provider/types';
2
+ export declare function getMaskValues({ values, }: {
3
+ values?: LassoToolsStore['data'][number]['values'];
4
+ }): import('./types').LassoToolsData[];
@@ -1,7 +1,7 @@
1
1
  import { MeasurementToolsControl } from './measurement-tools-control';
2
2
  import { MeasurementToolsProps } from './types';
3
3
  export declare function MeasurementTools({ children, mapId, defaultProps: { styles }, layerProps, textOptions, }: MeasurementToolsProps & {
4
- children: React.ReactNode;
4
+ children?: React.ReactNode;
5
5
  }): import('react').ReactNode;
6
6
  export declare namespace MeasurementTools {
7
7
  var Controls: typeof MeasurementToolsControl;
@@ -14,5 +14,5 @@ export interface MeasurementToolsStore {
14
14
  setUnit: (mapId: MeasurementToolsState['mapId'], unit: MeasurementToolsState['unit']) => void;
15
15
  setLocale: (mapId: MeasurementToolsState['mapId'], locale: MeasurementToolsState['locale']) => void;
16
16
  setPositions: (mapId: MeasurementToolsState['mapId'], positions: MeasurementToolsState['positions']) => void;
17
- setEnable: (mapId: MeasurementToolsState['mapId'], enabled: MeasurementToolsState['enabled']) => void;
17
+ setEnabled: (mapId: MeasurementToolsState['mapId'], enabled: MeasurementToolsState['enabled']) => void;
18
18
  }
@@ -82,7 +82,7 @@ export type MeasurementToolChildrenProps<M extends string, T = unknown> = Partia
82
82
  setUnit: (unit: MeasurementToolsState['unit']) => void;
83
83
  setLocale: (locale: MeasurementToolsState['locale']) => void;
84
84
  setPositions: (positions: MeasurementToolsState['positions']) => void;
85
- setEnable: (enabled: MeasurementToolsState['enabled']) => void;
85
+ setEnabled: (enabled: MeasurementToolsState['enabled']) => void;
86
86
  toggleLayer: (enabled: boolean) => void;
87
87
  clearLayer: () => void;
88
88
  };
@@ -29,7 +29,7 @@ export declare function useMeasurementTools({ mapId }: {
29
29
  setLocale: (locale: MeasurementToolsState["locale"]) => void;
30
30
  setPositions: (positions: MeasurementToolsState["positions"]) => void;
31
31
  setUnit: (unit: MeasurementToolsState["unit"]) => void;
32
- setEnable: (enabled: MeasurementToolsState["enabled"]) => void;
32
+ setEnabled: (enabled: MeasurementToolsState["enabled"]) => void;
33
33
  toggleLayer: (enabled: boolean) => void;
34
34
  clearLayer: () => void;
35
35
  setModeInstance: (modeInstance: MeasurementToolsState["modeInstance"]) => void;
@@ -24,18 +24,33 @@ export { MeasurementToolsProvider, useMeasurementToolsState, } from './editable/
24
24
  export { createMeasurementToolsStore } from './editable/measurement-tools/provider/store';
25
25
  export { getCursorDefault, getTooltipDefault } from './helpers';
26
26
  export { MapComponent } from './map';
27
- export type { Layer, LayerStore } from './providers/layers/types';
28
- export { useLayers } from './providers/layers/store';
29
- export type { MapProviderProps, MapStateStore, ViewportRect, } from './providers/map/types';
27
+ export type { ModelProps } from './models/types';
28
+ export { CategoriesModel, useCategories } from './models/categories';
29
+ export { FeaturesModel, useFeatures } from './models/features';
30
+ export { FormulaModel, useFormula } from './models/formula';
31
+ export { HistogramModel, useHistogram } from './models/histogram.';
32
+ export { RangeModel, useRange } from './models/range';
33
+ export { ScatterModel, useScatter } from './models/scatter';
34
+ export { TableModel, useTable } from './models/table';
35
+ export { TimeSeriesModel, useTimeSeries } from './models/time-series';
36
+ export { useWidgetModel } from './models/use-widget-model';
37
+ export type { Layer, LayerStore, LayerLegend } from './providers/layers/types';
38
+ export { useLayerStore } from './providers/layers/store';
39
+ export type { MapProviderProps, MapStore, ViewportRect, } from './providers/map/types';
30
40
  export { transitionFlyConfig } from './providers/map/const';
31
- export { MapProvider, useMapState } from './providers/map/provider';
32
- export { createMapStateStore } from './providers/map/store';
41
+ export { MapProvider, useMapStore } from './providers/map/provider';
42
+ export { createMapStore } from './providers/map/store';
33
43
  export type { QuerySource, Source, SourceStore, TableSource, TilesetSource, } from './providers/sources/types';
34
44
  export { ApiBaseUrl, clientID } from './providers/sources/const';
35
- export { useSource } from './providers/sources/store';
36
- export { useGetLayers } from './use-get-layers';
45
+ export { useSourceStore } from './providers/sources/store';
46
+ export { MapsProvider } from './provider';
47
+ export { useLayers } from './use-layers';
48
+ export { useLegend } from './use-legend';
37
49
  export { useMapScreenshot } from './use-map-screenshot';
50
+ export { useSpatialFilter, useLassoToolsSpatialFilter, useViewportSpatialFilter, } from './use-spatial-filter';
38
51
  export type { FieldFormatter, Formatter, Formatters, ObjectToHtmlOptions, Value, } from './utils/object-to-html/types';
39
52
  export { formatterTypes } from './utils/object-to-html/const';
40
53
  export { objectToHtml } from './utils/object-to-html/object-to-html';
54
+ export { mappingLegendMeridian } from './utils/mapping-meridian';
55
+ export { sortLayers } from './utils/sort-layers';
41
56
  export { ZoomControls } from './zoom-controls';
@@ -0,0 +1,7 @@
1
+ import { UseQueryResult } from '@tanstack/react-query';
2
+ import { CategoryRequestOptions, CategoryResponse } from '@carto/api-client';
3
+ import { ModelProps } from './types';
4
+ export declare function useCategories({ accessToken, sourceId, widgetProps, useQueryProps: { enabled, ...useQueryProps }, }: ModelProps<CategoryRequestOptions, CategoryResponse>): UseQueryResult<CategoryResponse, Error>;
5
+ export declare function CategoriesModel({ children, ...modelProps }: ModelProps<CategoryRequestOptions, CategoryResponse> & {
6
+ children: (props: UseQueryResult<CategoryResponse, Error>) => React.ReactNode;
7
+ }): import('react').ReactNode;
@@ -0,0 +1,7 @@
1
+ import { UseQueryResult } from '@tanstack/react-query';
2
+ import { FeaturesRequestOptions, FeaturesResponse } from '@carto/api-client';
3
+ import { ModelProps } from './types';
4
+ export declare function useFeatures({ accessToken, sourceId, widgetProps, useQueryProps: { enabled, ...useQueryProps }, }: ModelProps<FeaturesRequestOptions, FeaturesResponse>): UseQueryResult<FeaturesResponse, Error>;
5
+ export declare function FeaturesModel({ children, ...modelProps }: ModelProps<FeaturesRequestOptions, FeaturesResponse> & {
6
+ children: (props: UseQueryResult<FeaturesResponse, Error>) => React.ReactNode;
7
+ }): import('react').ReactNode;
@@ -0,0 +1,7 @@
1
+ import { UseQueryResult } from '@tanstack/react-query';
2
+ import { FormulaRequestOptions, FormulaResponse } from '@carto/api-client';
3
+ import { ModelProps } from './types';
4
+ export declare function useFormula({ accessToken, sourceId, widgetProps, useQueryProps: { enabled, ...useQueryProps }, }: ModelProps<FormulaRequestOptions, FormulaResponse>): UseQueryResult<FormulaResponse, Error>;
5
+ export declare function FormulaModel({ children, ...modelProps }: ModelProps<FormulaRequestOptions, FormulaResponse> & {
6
+ children: (props: UseQueryResult<FormulaResponse, Error>) => React.ReactNode;
7
+ }): import('react').ReactNode;
@@ -0,0 +1,7 @@
1
+ import { UseQueryResult } from '@tanstack/react-query';
2
+ import { HistogramRequestOptions, HistogramResponse } from '@carto/api-client';
3
+ import { ModelProps } from './types';
4
+ export declare function useHistogram({ accessToken, sourceId, widgetProps, useQueryProps: { enabled, ...useQueryProps }, }: ModelProps<HistogramRequestOptions, HistogramResponse>): UseQueryResult<HistogramResponse, Error>;
5
+ export declare function HistogramModel({ children, ...modelProps }: ModelProps<HistogramRequestOptions, HistogramResponse> & {
6
+ children: (props: UseQueryResult<HistogramResponse, Error>) => React.ReactNode;
7
+ }): import('react').ReactNode;
@@ -0,0 +1,7 @@
1
+ import { UseQueryResult } from '@tanstack/react-query';
2
+ import { RangeRequestOptions, RangeResponse } from '@carto/api-client';
3
+ import { ModelProps } from './types';
4
+ export declare function useRange({ accessToken, sourceId, widgetProps, useQueryProps: { enabled, ...useQueryProps }, }: ModelProps<RangeRequestOptions, RangeResponse>): UseQueryResult<RangeResponse, Error>;
5
+ export declare function RangeModel({ children, ...modelProps }: ModelProps<RangeRequestOptions, RangeResponse> & {
6
+ children: (props: UseQueryResult<RangeResponse, Error>) => React.ReactNode;
7
+ }): import('react').ReactNode;
@@ -0,0 +1,7 @@
1
+ import { UseQueryResult } from '@tanstack/react-query';
2
+ import { ScatterRequestOptions, ScatterResponse } from '@carto/api-client';
3
+ import { ModelProps } from './types';
4
+ export declare function useScatter({ accessToken, sourceId, widgetProps, useQueryProps: { enabled, ...useQueryProps }, }: ModelProps<ScatterRequestOptions, ScatterResponse>): UseQueryResult<ScatterResponse, Error>;
5
+ export declare function ScatterModel({ children, ...modelProps }: ModelProps<ScatterRequestOptions, ScatterResponse> & {
6
+ children: (props: UseQueryResult<ScatterResponse, Error>) => React.ReactNode;
7
+ }): import('react').ReactNode;
@@ -0,0 +1,7 @@
1
+ import { UseQueryResult } from '@tanstack/react-query';
2
+ import { TableRequestOptions, TableResponse } from '@carto/api-client';
3
+ import { ModelProps } from './types';
4
+ export declare function useTable({ accessToken, sourceId, widgetProps, useQueryProps: { enabled, ...useQueryProps }, }: ModelProps<TableRequestOptions, TableResponse>): UseQueryResult<TableResponse, Error>;
5
+ export declare function TableModel({ children, ...modelProps }: ModelProps<TableRequestOptions, TableResponse> & {
6
+ children: (props: UseQueryResult<TableResponse, Error>) => React.ReactNode;
7
+ }): import('react').ReactNode;
@@ -0,0 +1,7 @@
1
+ import { UseQueryResult } from '@tanstack/react-query';
2
+ import { TimeSeriesRequestOptions, TimeSeriesResponse } from '@carto/api-client';
3
+ import { ModelProps } from './types';
4
+ export declare function useTimeSeries({ accessToken, sourceId, widgetProps, useQueryProps: { enabled, ...useQueryProps }, }: ModelProps<TimeSeriesRequestOptions, TimeSeriesResponse>): UseQueryResult<TimeSeriesResponse, Error>;
5
+ export declare function TimeSeriesModel({ children, ...modelProps }: ModelProps<TimeSeriesRequestOptions, TimeSeriesResponse> & {
6
+ children: (props: UseQueryResult<TimeSeriesResponse, Error>) => React.ReactNode;
7
+ }): import('react').ReactNode;
@@ -0,0 +1,7 @@
1
+ import { UseQueryOptions } from '@tanstack/react-query';
2
+ export interface ModelProps<T, R> {
3
+ accessToken: string;
4
+ sourceId: string;
5
+ widgetProps: T;
6
+ useQueryProps?: Omit<UseQueryOptions<unknown, Error, R>, 'queryKey' | 'queryFn'>;
7
+ }
@@ -0,0 +1 @@
1
+ export declare function useWidgetModel(accessToken: string, sourceId: string): import('@carto/api-client').WidgetRemoteSource<import('@carto/api-client').WidgetSourceProps> | null;
@@ -0,0 +1,11 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { MapProviderProps } from './providers/map/types';
3
+ import { LassoToolsProviderProps } from './editable/lasso-tools/provider/types';
4
+ import { MeasurementToolsProviderProps } from './editable/measurement-tools/provider/types';
5
+ interface Props {
6
+ maps: MapProviderProps['values'];
7
+ lassoTools?: LassoToolsProviderProps['values'];
8
+ measureTools?: MeasurementToolsProviderProps['values'];
9
+ }
10
+ export declare function MapsProvider({ children, maps, lassoTools, measureTools, }: PropsWithChildren<Props>): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -1,2 +1,2 @@
1
1
  import { LayerStore } from './types';
2
- export declare const useLayers: import('zustand').UseBoundStore<import('zustand').StoreApi<LayerStore>>;
2
+ export declare const useLayerStore: import('zustand').UseBoundStore<import('zustand').StoreApi<LayerStore>>;
@@ -1,9 +1,21 @@
1
+ import { ReactNode } from 'react';
1
2
  import { LayerType } from '../../types';
2
3
  export interface Layer extends LayerType {
4
+ legend?: LayerLegend;
5
+ name?: string;
3
6
  order?: number;
4
- legend?: string;
5
7
  }
6
8
  export interface LayerStore {
7
9
  layers: Record<string, Layer>;
8
10
  setLayer: (id: string, layer?: Partial<Layer>) => void;
9
11
  }
12
+ export interface LayerLegend {
13
+ collapsed?: boolean;
14
+ collapsible?: boolean;
15
+ helperText?: ReactNode;
16
+ maxZoom?: number;
17
+ minZoom?: number;
18
+ opacityControl?: boolean;
19
+ switchable?: boolean;
20
+ variables?: unknown;
21
+ }
@@ -1,4 +1,4 @@
1
1
  import { PropsWithChildren } from 'react';
2
- import { MapProviderProps, MapStateStore } from './types';
2
+ import { MapProviderProps, MapStore } from './types';
3
3
  export declare function MapProvider({ children, values, }: PropsWithChildren<MapProviderProps>): import("react/jsx-runtime").JSX.Element;
4
- export declare function useMapState<T>(selector: (state: MapStateStore) => T): T;
4
+ export declare function useMapStore<T>(selector: (state: MapStore) => T): T;
@@ -1,2 +1,2 @@
1
- import { MapProviderProps, MapStateStore } from './types';
2
- export declare const createMapStateStore: (initProps: MapProviderProps["values"]) => import('zustand').StoreApi<MapStateStore>;
1
+ import { MapProviderProps, MapStore } from './types';
2
+ export declare const createMapStore: (initProps: MapProviderProps["values"]) => import('zustand').StoreApi<MapStore>;
@@ -10,7 +10,7 @@ interface ValueProps {
10
10
  export interface MapProviderProps {
11
11
  values: Omit<ValueProps, 'isLoaded'>[];
12
12
  }
13
- export interface MapStore {
13
+ export interface MapSlice {
14
14
  maps: Record<ValueProps['id'], Pick<ValueProps, 'basemap' | 'isLoaded'> & {
15
15
  instanceRef?: MapComponentProps['instanceRef'];
16
16
  overlayRef?: MapComponentProps['overlayRef'];
@@ -29,14 +29,16 @@ export interface MapStore {
29
29
  addLayers: (id: ValueProps['id'], layers: NonNullable<ValueProps['layers']>) => void;
30
30
  removeLayers: (id: ValueProps['id'], layer: NonNullable<ValueProps['layers']>) => void;
31
31
  }
32
- export interface ViewStateStore {
32
+ export interface ViewStateSlice {
33
+ viewports: Record<ValueProps['id'], WebMercatorViewport | null>;
34
+ updateViewPort: (id: ValueProps['id']) => void;
33
35
  viewStates: Record<ValueProps['id'], ValueProps['viewState']>;
34
36
  setViewState: (id: MapComponentProps['id'], viewState: MapViewState) => void;
35
37
  setZoom: (id: MapComponentProps['id'], zoom: MapViewState['zoom']) => void;
36
38
  setMinZoom: (id: MapComponentProps['id'], minZoom: MapViewState['minZoom']) => void;
37
39
  setMaxZoom: (id: MapComponentProps['id'], maxZoom: MapViewState['maxPitch']) => void;
38
40
  }
39
- export interface CommonStore {
41
+ export interface CommonSlice {
40
42
  fitBounds: (id: ValueProps['id'], bounds: Parameters<WebMercatorViewport['fitBounds']>[0], options?: {
41
43
  boundsOptions?: Parameters<WebMercatorViewport['fitBounds']>[1];
42
44
  viewStateOptions?: Omit<MapViewState, 'latitude' | 'longitude' | 'zoom'>;
@@ -49,7 +51,7 @@ export interface CommonStore {
49
51
  viewStateOptions?: Omit<MapViewState, 'latitude' | 'longitude' | 'zoom'>;
50
52
  }) => void;
51
53
  }
52
- export type MapStateStore = MapStore & ViewStateStore & CommonStore;
54
+ export type MapStore = MapSlice & ViewStateSlice & CommonSlice;
53
55
  export interface ViewportRect {
54
56
  x: number;
55
57
  y: number;
@@ -1,2 +1,3 @@
1
- import { SourceStore } from './types';
2
- export declare const useSource: import('zustand').UseBoundStore<import('zustand').StoreApi<SourceStore>>;
1
+ import { Source, SourceStore } from './types';
2
+ export declare const useSourceStore: import('zustand').UseBoundStore<import('zustand').StoreApi<SourceStore>>;
3
+ export declare function useSource(id: string): Source | undefined;
@@ -1,17 +1,58 @@
1
- import { VectorQuerySourceOptions, VectorTableSourceOptions, VectorTilesetSourceOptions } from '@deck.gl/carto';
1
+ import { WidgetRemoteSource, WidgetRemoteSourceProps, VectorQuerySourceOptions, VectorTableSourceOptions, VectorTilesetSourceOptions, TileFormat, BoundaryQuerySourceOptions, BoundaryTableSourceOptions, H3QuerySourceOptions, QuadbinQuerySourceOptions, H3TilesetSourceOptions, QuadbinTilesetSourceOptions, H3TableSourceOptions, QuadbinTableSourceOptions, RasterSourceOptions, RasterMetadata } from '@carto/api-client';
2
+ type _Omit<T, P extends string = ''> = Omit<T, 'accessToken' | P>;
3
+ type OmitQuery<T, P extends string = ''> = _Omit<T, 'sqlQuery' | P>;
4
+ type OmitTable<T, P extends string = ''> = _Omit<T, 'tableName' | P>;
2
5
  export type QuerySource = {
3
6
  type: 'query';
4
- } & Omit<VectorQuerySourceOptions, 'accessToken' | 'sqlQuery'>;
7
+ } & OmitQuery<VectorQuerySourceOptions>;
8
+ export type H3QuerySource = {
9
+ type: 'query+h3';
10
+ } & OmitQuery<H3QuerySourceOptions>;
11
+ export type QuadbinQuerySource = {
12
+ type: 'query+quadbin';
13
+ } & OmitQuery<QuadbinQuerySourceOptions>;
14
+ export type BoundaryQuerySource = {
15
+ type: 'query+boundary';
16
+ } & _Omit<BoundaryQuerySourceOptions, 'tilesetTableName'>;
17
+ export type AllQuerySource = QuerySource | H3QuerySource | QuadbinQuerySource | BoundaryQuerySource;
5
18
  export type TilesetSource = {
6
19
  type: 'tileset';
7
- } & Omit<VectorTilesetSourceOptions, 'accessToken' | 'tableName'>;
20
+ tileFormat: TileFormat;
21
+ } & OmitTable<VectorTilesetSourceOptions>;
22
+ export type H3TilesetSource = {
23
+ type: 'tileset+h3';
24
+ tileFormat: TileFormat;
25
+ } & OmitTable<H3TilesetSourceOptions>;
26
+ export type QuadbinTilesetSource = {
27
+ type: 'tileset+quadbin';
28
+ tileFormat: TileFormat;
29
+ } & OmitTable<QuadbinTilesetSourceOptions>;
30
+ export type AllTilesetSource = TilesetSource | H3TilesetSource | QuadbinTilesetSource;
8
31
  export type TableSource = {
9
32
  type: 'table';
10
- } & Omit<VectorTableSourceOptions, 'accessToken' | 'tableName'>;
11
- export type Source = (QuerySource | TilesetSource | TableSource) & {
33
+ } & OmitTable<VectorTableSourceOptions>;
34
+ export type h3TableSource = {
35
+ type: 'table+h3';
36
+ } & OmitTable<H3TableSourceOptions>;
37
+ export type QuadbinTableSource = {
38
+ type: 'table+quadbin';
39
+ } & OmitTable<QuadbinTableSourceOptions>;
40
+ export type BoundaryTableSource = {
41
+ type: 'table+boundary';
42
+ } & _Omit<BoundaryTableSourceOptions, 'tilesetTableName'>;
43
+ export type AllTableSource = TableSource | h3TableSource | QuadbinTableSource | BoundaryTableSource;
44
+ export type RasterQuadbinTilesetSource = {
45
+ type: 'raster';
46
+ tileFormat: TileFormat;
47
+ rasterMetadata?: RasterMetadata;
48
+ } & OmitTable<RasterSourceOptions>;
49
+ export type AllRasterSource = RasterQuadbinTilesetSource;
50
+ export type Source = (AllQuerySource | AllTilesetSource | AllTableSource | AllRasterSource) & {
12
51
  data: string;
52
+ widgets?: WidgetRemoteSource<WidgetRemoteSourceProps> | null;
13
53
  };
14
54
  export interface SourceStore {
15
55
  sources: Record<string, Source>;
16
56
  setSource: (id: string, source?: Partial<Source>) => void;
17
57
  }
58
+ export {};
@@ -1,23 +1,23 @@
1
1
  import { Class, ValueOf } from 'type-fest';
2
- import { MutableRefObject, ReactNode, RefObject } from 'react';
3
- import { Layer, MapViewState, PickingInfo, ViewStateChangeParameters } from '@deck.gl/core';
2
+ import { ReactNode, RefObject } from 'react';
3
+ import { Layer, LayerProps, MapViewState, PickingInfo, ViewStateChangeParameters } from '@deck.gl/core';
4
4
  import { DeckGLProps, DeckGLRef } from '@deck.gl/react';
5
5
  import { MapRef } from 'react-map-gl/maplibre';
6
6
  import { CartoBasemaps, GmapsBasemap, MapsTypes } from './const';
7
7
  import { MapProps, APIProviderProps } from '@vis.gl/react-google-maps';
8
- import { ViewStateStore } from './providers/map/types';
8
+ import { ViewStateSlice } from './providers/map/types';
9
9
  export * from '../types/common';
10
10
  export type BasemapKey = keyof typeof CartoBasemaps | keyof typeof GmapsBasemap;
11
11
  export type BasemapType = ValueOf<typeof MapsTypes>;
12
- export interface Tooltip extends PickingInfo {
12
+ export interface Tooltip<T = unknown> extends PickingInfo<T> {
13
13
  text?: string | undefined;
14
14
  html?: string | undefined;
15
15
  className?: string | undefined;
16
16
  style?: Partial<CSSStyleDeclaration> | undefined;
17
17
  }
18
- export interface LayerType<T extends Class<Layer> = Class<Layer>> {
18
+ export interface LayerType<T extends Class<Layer> = Class<Layer>, P extends LayerProps = LayerProps> {
19
19
  type: T | null;
20
- props: unknown;
20
+ props: Partial<P>;
21
21
  }
22
22
  export type InstanceRef = DeckGLRef;
23
23
  export type OverlayRef = MapRef | google.maps.Map | null | undefined;
@@ -28,7 +28,7 @@ export type GmapsProps = Omit<MapProps, 'mapTypeId'> & {
28
28
  export interface DeckGLComponentProps extends Omit<DeckGLProps, 'layers' | 'onLoad'> {
29
29
  basemap?: BasemapKey;
30
30
  instanceRef?: RefObject<InstanceRef>;
31
- overlayRef?: MutableRefObject<OverlayRef>;
31
+ overlayRef?: RefObject<OverlayRef>;
32
32
  layers: LayerType[];
33
33
  gmapsProps?: GmapsProps;
34
34
  onLoad?: (value: boolean) => void;
@@ -43,7 +43,7 @@ export interface LayersLoadedProps {
43
43
  id: MapComponentProps['id'];
44
44
  }
45
45
  export interface ZoomControl {
46
- id: MapComponentProps['id'];
46
+ mapId: MapComponentProps['id'];
47
47
  children: (props: ZoomControlChildrenProps) => ReactNode;
48
48
  }
49
49
  export interface ZoomControlChildrenProps {
@@ -51,6 +51,6 @@ export interface ZoomControlChildrenProps {
51
51
  maxZoom: MapViewState['maxZoom'];
52
52
  minZoom: MapViewState['minZoom'];
53
53
  isLoading: boolean;
54
- setZoom: (zoom: Parameters<ViewStateStore['setZoom']>[1]) => void;
54
+ setZoom: (zoom: Parameters<ViewStateSlice['setZoom']>[1]) => void;
55
55
  flyTo: (viewState: MapViewState) => void;
56
56
  }
@@ -0,0 +1,4 @@
1
+ import { MapComponentProps } from './types';
2
+ export declare function useLayers({ mapId }: {
3
+ mapId: MapComponentProps['id'];
4
+ }): import('.').Layer[];
@@ -0,0 +1,16 @@
1
+ import { Layer, LayerLegend } from './providers/layers/types';
2
+ export declare function useLegend<T>(layersId: string[], callback: (layer: Layer) => T): {
3
+ legend: T[];
4
+ onChangeVisibility: ({ id, visible, ...legend }: {
5
+ id: string;
6
+ visible: boolean;
7
+ } & Partial<LayerLegend>) => void;
8
+ onChangeOpacity: ({ id, opacity }: {
9
+ id: string;
10
+ opacity: number;
11
+ }) => void;
12
+ onChangRowCollapsed: ({ id, collapsed }: {
13
+ id: string;
14
+ collapsed: boolean;
15
+ }) => void;
16
+ };
@@ -0,0 +1,15 @@
1
+ import { MapComponentProps } from './types';
2
+ import { SpatialFilter } from '@carto/api-client';
3
+ export declare function useSpatialFilter({ mapId, }: {
4
+ mapId: MapComponentProps['id'];
5
+ }): {
6
+ spatialFilter: SpatialFilter | undefined;
7
+ lassoToolsSpatialFilter: SpatialFilter | undefined;
8
+ viewportSpatialFilter: SpatialFilter | undefined;
9
+ };
10
+ export declare function useViewportSpatialFilter({ mapId, }: {
11
+ mapId: MapComponentProps['id'];
12
+ }): SpatialFilter | undefined;
13
+ export declare function useLassoToolsSpatialFilter({ mapId, }: {
14
+ mapId: MapComponentProps['id'];
15
+ }): import('geojson').MultiPolygon | undefined;
@@ -0,0 +1,15 @@
1
+ import { Layer } from '../providers/layers/types';
2
+ export declare function mappingLegendMeridian<T>(layer: Layer): {
3
+ collapsed: boolean | undefined;
4
+ collapsible: boolean | undefined;
5
+ helperText: import('react').ReactNode;
6
+ id: string | undefined;
7
+ legend: T;
8
+ maxZoom: number | undefined;
9
+ minZoom: number | undefined;
10
+ opacity: number;
11
+ opacityControl: boolean | undefined;
12
+ switchable: boolean | undefined;
13
+ title: string | undefined;
14
+ visible: boolean;
15
+ };
@@ -0,0 +1,2 @@
1
+ import { Layer } from '../providers/layers/types';
2
+ export declare function sortLayers(layers: Layer[]): Layer[];
@@ -1,2 +1,2 @@
1
1
  import { ZoomControl } from './types';
2
- export declare function ZoomControls({ children, id }: ZoomControl): import('react').ReactNode;
2
+ export declare function ZoomControls({ children, mapId }: ZoomControl): import('react').ReactNode;
package/package.json CHANGED
@@ -1,33 +1,38 @@
1
1
  {
2
2
  "name": "@carto/ps-react-maps",
3
- "version": "3.0.0-canary.1",
3
+ "version": "3.0.0-canary.3",
4
4
  "description": "CARTO's Professional Service React DeckGL library",
5
5
  "type": "module",
6
6
  "dependencies": {
7
- "@turf/turf": "7.1.0"
7
+ "@turf/turf": "7.2.0"
8
8
  },
9
9
  "devDependencies": {
10
+ "@tanstack/react-query": "5.64.2",
11
+ "@carto/api-client": "0.5.0-alpha.3",
10
12
  "@deck.gl-community/editable-layers": "9.0.3",
11
- "@deck.gl/aggregation-layers": "9.0.38",
12
- "@deck.gl/carto": "9.0.38",
13
- "@deck.gl/core": "9.0.38",
14
- "@deck.gl/extensions": "9.0.38",
15
- "@deck.gl/geo-layers": "9.0.38",
16
- "@deck.gl/google-maps": "9.0.38",
17
- "@deck.gl/layers": "9.0.38",
18
- "@deck.gl/mesh-layers": "9.0.38",
19
- "@deck.gl/react": "9.0.38",
13
+ "@deck.gl/aggregation-layers": "9.0.40",
14
+ "@deck.gl/carto": "9.0.40",
15
+ "@deck.gl/core": "9.0.40",
16
+ "@deck.gl/extensions": "9.0.40",
17
+ "@deck.gl/geo-layers": "9.0.40",
18
+ "@deck.gl/google-maps": "9.0.40",
19
+ "@deck.gl/layers": "9.0.40",
20
+ "@deck.gl/mesh-layers": "9.0.40",
21
+ "@deck.gl/react": "9.0.40",
22
+ "@turf/helpers": "7.2.0",
20
23
  "@types/geojson": "7946.0.15",
21
- "@vis.gl/react-google-maps": "1.4.3",
24
+ "@vis.gl/react-google-maps": "1.5.0",
22
25
  "convert-units": "3.0.0-beta.7",
23
26
  "html2canvas": "1.4.1",
24
27
  "maplibre-gl": "4.7.1",
25
- "react-map-gl": "7.2.0-beta.1",
28
+ "react-map-gl": "7.1.8",
26
29
  "zustand": "5.0.3",
27
- "@carto/ps-utils": "2.0.0-canary.1"
30
+ "@carto/ps-utils": "2.0.0-canary.3"
28
31
  },
29
32
  "peerDependencies": {
30
- "@deck.gl-community/editable-layers": "^9.0.0",
33
+ "@tanstack/react-query": "^5.61.0",
34
+ "@carto/api-client": "^0.5.0-alpha.1",
35
+ "@deck.gl-community/editable-layers": "^9.0.3",
31
36
  "@deck.gl/aggregation-layers": "^9.0.0",
32
37
  "@deck.gl/carto": "^9.0.0",
33
38
  "@deck.gl/core": "^9.0.0",
@@ -37,14 +42,15 @@
37
42
  "@deck.gl/layers": "^9.0.0",
38
43
  "@deck.gl/mesh-layers": "^9.0.0",
39
44
  "@deck.gl/react": "^9.0.0",
45
+ "@turf/helpers": "^7.2.0",
40
46
  "@vis.gl/react-google-maps": "^1.0.0",
41
47
  "convert-units": "3.0.0-beta.7",
42
48
  "html2canvas": "^1.4.1",
43
49
  "maplibre-gl": "^4.0.0",
44
50
  "react": "^18.0.0 || ^19.0.0",
45
- "react-map-gl": "7.2.0-beta.1",
51
+ "react-map-gl": "^7.1.8",
46
52
  "zustand": "^5.0.0",
47
- "@carto/ps-utils": "2.0.0-canary.1"
53
+ "@carto/ps-utils": "2.0.0-canary.3"
48
54
  },
49
55
  "exports": {
50
56
  ".": {
@@ -1,4 +0,0 @@
1
- import { MapComponentProps } from './types';
2
- export declare function useGetLayers({ id }: {
3
- id: MapComponentProps['id'];
4
- }): import('.').Layer[];