@carto/ps-react-maps 2.1.0 → 3.0.0-canary.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.
Files changed (87) hide show
  1. package/LICENSE.md +29 -0
  2. package/README.md +16 -13
  3. package/dist/index.js +2317 -1433
  4. package/dist/index.js.map +1 -0
  5. package/dist/styles.css +1 -0
  6. package/dist/types/common/common.d.ts +3 -0
  7. package/dist/types/common/index.d.ts +25 -0
  8. package/dist/types/common/lasso-tools.d.ts +33 -0
  9. package/dist/types/common/measurement-tools.d.ts +66 -0
  10. package/dist/types/const.d.ts +31 -0
  11. package/dist/types/deckgl.d.ts +2 -0
  12. package/dist/types/editable/const.d.ts +8 -0
  13. package/dist/types/editable/lasso-tools/const.d.ts +31 -0
  14. package/dist/types/editable/lasso-tools/lasso-tools-control.d.ts +2 -0
  15. package/dist/types/editable/lasso-tools/lasso-tools.d.ts +28 -0
  16. package/dist/types/editable/lasso-tools/layer.d.ts +3 -0
  17. package/dist/types/editable/lasso-tools/modes/custom-edit-mode.class.d.ts +5 -0
  18. package/dist/types/editable/lasso-tools/provider/provider.d.ts +4 -0
  19. package/dist/types/editable/lasso-tools/provider/store.d.ts +2 -0
  20. package/dist/types/editable/lasso-tools/provider/types.d.ts +14 -0
  21. package/dist/types/editable/lasso-tools/types.d.ts +77 -0
  22. package/dist/types/editable/measurement-tools/const.d.ts +67 -0
  23. package/dist/types/editable/measurement-tools/layer.d.ts +3 -0
  24. package/dist/types/editable/measurement-tools/measurement-tools-control.d.ts +2 -0
  25. package/dist/types/editable/measurement-tools/measurement-tools.d.ts +8 -0
  26. package/dist/types/editable/measurement-tools/modes/custom-measurement-area.class.d.ts +30 -0
  27. package/dist/types/editable/measurement-tools/modes/custom-measurement-buffer.class.d.ts +28 -0
  28. package/dist/types/editable/measurement-tools/modes/custom-measurement-distance.class.d.ts +16 -0
  29. package/dist/types/editable/measurement-tools/provider/provider.d.ts +4 -0
  30. package/dist/types/editable/measurement-tools/provider/store.d.ts +2 -0
  31. package/dist/types/editable/measurement-tools/provider/types.d.ts +18 -0
  32. package/dist/types/editable/measurement-tools/types.d.ts +97 -0
  33. package/dist/types/editable/measurement-tools/use-measurement-tools.d.ts +36 -0
  34. package/dist/types/editable/measurement-tools/utils.d.ts +17 -0
  35. package/dist/types/helpers.d.ts +12 -0
  36. package/dist/types/index.d.ts +41 -4
  37. package/dist/types/map.d.ts +2 -0
  38. package/dist/types/providers/layers/store.d.ts +2 -0
  39. package/dist/types/providers/layers/types.d.ts +9 -0
  40. package/dist/types/providers/map/const.d.ts +2 -0
  41. package/dist/types/providers/map/provider.d.ts +4 -0
  42. package/dist/types/providers/map/store.d.ts +2 -0
  43. package/dist/types/providers/map/types.d.ts +59 -0
  44. package/dist/types/providers/sources/const.d.ts +2 -0
  45. package/dist/types/providers/sources/store.d.ts +2 -0
  46. package/dist/types/providers/sources/types.d.ts +17 -0
  47. package/dist/types/types.d.ts +56 -0
  48. package/dist/types/use-get-layers.d.ts +4 -0
  49. package/dist/types/use-map-screenshot.d.ts +8 -0
  50. package/dist/types/utils/object-to-html/const.d.ts +5 -0
  51. package/dist/types/utils/object-to-html/object-to-html.test.d.ts +1 -0
  52. package/dist/types/utils/object-to-html/types.d.ts +3 -6
  53. package/dist/types/zoom-controls.d.ts +2 -0
  54. package/package.json +78 -42
  55. package/dist/index.cjs +0 -30
  56. package/dist/types/assets/icons/ruler.d.ts +0 -2
  57. package/dist/types/common-stories/maps/deckgl-maps.component.d.ts +0 -2
  58. package/dist/types/common-stories/maps/google-maps.component.d.ts +0 -3
  59. package/dist/types/common-stories/maps/map-container.component.d.ts +0 -4
  60. package/dist/types/common-stories/maps/map.component.d.ts +0 -2
  61. package/dist/types/event-manager/index.d.ts +0 -1
  62. package/dist/types/event-manager/use-event-manager.hook.d.ts +0 -14
  63. package/dist/types/map-measurement-tool/custom-editable-geojson-layer.class.d.ts +0 -10
  64. package/dist/types/map-measurement-tool/custom-measurement-distance-mode.class.d.ts +0 -6
  65. package/dist/types/map-measurement-tool/index.d.ts +0 -9
  66. package/dist/types/map-measurement-tool/map-measurement-tool.component.d.ts +0 -6
  67. package/dist/types/map-measurement-tool/map-measurement-tool.const.d.ts +0 -34
  68. package/dist/types/map-measurement-tool/map-measurement-tool.context.d.ts +0 -5
  69. package/dist/types/map-measurement-tool/map-measurement-tool.hook.d.ts +0 -10
  70. package/dist/types/map-measurement-tool/map-measurement-tool.layer.d.ts +0 -10
  71. package/dist/types/map-measurement-tool/map-measurement-tool.provider.d.ts +0 -8
  72. package/dist/types/map-measurement-tool/map-measurement-tool.reducer.d.ts +0 -15
  73. package/dist/types/map-measurement-tool/map-measurement-tool.styles.d.ts +0 -28
  74. package/dist/types/map-measurement-tool/map-measurement-tool.types.d.ts +0 -91
  75. package/dist/types/map-measurement-tool/map-measurement-tool.util.d.ts +0 -12
  76. package/dist/types/map-provider/index.d.ts +0 -6
  77. package/dist/types/map-provider/map-provider.const.d.ts +0 -33
  78. package/dist/types/map-provider/map-provider.context.d.ts +0 -6
  79. package/dist/types/map-provider/map-provider.hook.d.ts +0 -87
  80. package/dist/types/map-provider/map-provider.provider.d.ts +0 -13
  81. package/dist/types/map-provider/map-provider.reducer.d.ts +0 -24
  82. package/dist/types/map-provider/map-provider.types.d.ts +0 -122
  83. package/dist/types/utils/get-map-type/get-map-type.d.ts +0 -1
  84. package/dist/types/utils/get-map-type/index.d.ts +0 -2
  85. package/dist/types/utils/get-map-type/is-gmaps.d.ts +0 -1
  86. package/dist/types/utils/index.d.ts +0 -2
  87. package/dist/types/utils/object-to-html/index.d.ts +0 -2
@@ -0,0 +1,28 @@
1
+ import { DrawCircleFromCenterMode, ClickEvent, FeatureCollection, Geometry, GuideFeatureCollection, ModeProps, PointerMoveEvent, Position, Tooltip } from '@deck.gl-community/editable-layers';
2
+ import { ValueOf } from 'type-fest';
3
+ import { MapMeasurementUnitAuto } from '../const';
4
+ import { MeasurementToolsTextProps } from '../types';
5
+ export declare class CustomMeasureBufferMode extends DrawCircleFromCenterMode {
6
+ _isMeasuringSessionFinished: boolean;
7
+ _currentArea: number;
8
+ resultPolygon: FeatureCollection;
9
+ tooltips: Tooltip[];
10
+ handleClick(event: ClickEvent, props: ModeProps<FeatureCollection>): void;
11
+ handlePointerMove(event: PointerMoveEvent, props: ModeProps<FeatureCollection>): void;
12
+ checkAndFinishPolygon(props: ModeProps<FeatureCollection>): void;
13
+ handleKeyUp(event: KeyboardEvent, props: ModeProps<FeatureCollection>): void;
14
+ getGuides(props: ModeProps<FeatureCollection>): GuideFeatureCollection;
15
+ isFinalizedEdition(clickSequence: Position[], tentativeFeature: {
16
+ geometry: Geometry;
17
+ }): boolean;
18
+ finalizeEdition(props: ModeProps<FeatureCollection>): void;
19
+ resetEdition(props: ModeProps<FeatureCollection>): void;
20
+ resetClickSequence(): void;
21
+ getTooltips(): Tooltip[];
22
+ getTooltipText({ meters, locale, unit, options, }: {
23
+ meters: number;
24
+ unit: ValueOf<typeof MapMeasurementUnitAuto>;
25
+ locale: string;
26
+ options?: MeasurementToolsTextProps;
27
+ }): string;
28
+ }
@@ -0,0 +1,16 @@
1
+ import { MeasureDistanceMode, FeatureCollection, ModeProps } from '@deck.gl-community/editable-layers';
2
+ import { BasePointerEvent } from 'node_modules/@deck.gl-community/editable-layers/dist/edit-modes/types';
3
+ import { ValueOf } from 'type-fest';
4
+ import { MapMeasurementUnitAuto } from '../const';
5
+ import { MeasurementToolsTextProps } from '../types';
6
+ export declare class CustomMeasureDistanceMode extends MeasureDistanceMode {
7
+ handleClick(event: BasePointerEvent, props: ModeProps<FeatureCollection>): void;
8
+ handleKeyUp(event: KeyboardEvent, props: ModeProps<FeatureCollection>): void;
9
+ resetClickSequence(): void;
10
+ getTooltipText({ meters, locale, unit, options, }: {
11
+ meters: number;
12
+ unit: ValueOf<typeof MapMeasurementUnitAuto>;
13
+ locale: string;
14
+ options?: MeasurementToolsTextProps;
15
+ }): string;
16
+ }
@@ -0,0 +1,4 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { MeasurementToolsProviderProps, MeasurementToolsStore } from './types';
3
+ export declare function MeasurementToolsProvider({ children, values, }: PropsWithChildren<MeasurementToolsProviderProps>): import("react/jsx-runtime").JSX.Element;
4
+ export declare function useMeasurementToolsState<T>(selector: (state: MeasurementToolsStore) => T): T;
@@ -0,0 +1,2 @@
1
+ import { MeasurementToolsProviderProps, MeasurementToolsStore } from './types';
2
+ export declare const createMeasurementToolsStore: (initProps: MeasurementToolsProviderProps["values"]) => import('zustand').StoreApi<MeasurementToolsStore>;
@@ -0,0 +1,18 @@
1
+ import { MeasurementToolsState } from '../types';
2
+ export interface ValueProps extends Partial<MeasurementToolsState> {
3
+ mapId: MeasurementToolsState['mapId'];
4
+ }
5
+ export interface MeasurementToolsProviderProps {
6
+ values: ValueProps[];
7
+ }
8
+ export interface MeasurementToolsStore {
9
+ measurements: Record<MeasurementToolsState['mapId'], Omit<MeasurementToolsState, 'mapId'>>;
10
+ setModeInstance: (mapId: MeasurementToolsState['mapId'], mode: MeasurementToolsState['modeInstance']) => void;
11
+ setModeSelected: (mapId: MeasurementToolsState['mapId'], mode: MeasurementToolsState['modeSelected']) => void;
12
+ setFinished: (mapId: MeasurementToolsState['mapId'], finished: MeasurementToolsState['finished']) => void;
13
+ setDistance: (mapId: MeasurementToolsState['mapId'], distance: MeasurementToolsState['distance']) => void;
14
+ setUnit: (mapId: MeasurementToolsState['mapId'], unit: MeasurementToolsState['unit']) => void;
15
+ setLocale: (mapId: MeasurementToolsState['mapId'], locale: MeasurementToolsState['locale']) => void;
16
+ setPositions: (mapId: MeasurementToolsState['mapId'], positions: MeasurementToolsState['positions']) => void;
17
+ setEnable: (mapId: MeasurementToolsState['mapId'], enabled: MeasurementToolsState['enabled']) => void;
18
+ }
@@ -0,0 +1,97 @@
1
+ import { Color } from '@deck.gl/core';
2
+ import { Position } from 'geojson';
3
+ import { EditableGeojsonLayerProps } from 'node_modules/@deck.gl-community/editable-layers/dist/editable-layers/editable-geojson-layer';
4
+ import { Class, ValueOf } from 'type-fest';
5
+ import { CustomMeasureMode, MeasurementModes, MeasurementUnits, MapComponentProps, Tooltip } from '../../types';
6
+ import { MapMeasurementUnitAuto } from './const';
7
+ import { GeoJsonEditMode } from '@deck.gl-community/editable-layers';
8
+ export interface MeasurementToolsState {
9
+ mapId: MapComponentProps['id'];
10
+ modeInstance?: CustomMeasureMode<GeoJsonEditMode>;
11
+ modeSelected?: keyof MeasurementModes;
12
+ modes: MeasurementModes<keyof MeasurementModes, CustomMeasureMode<GeoJsonEditMode>>;
13
+ units: MeasurementUnits;
14
+ enabled: boolean;
15
+ finished: boolean;
16
+ distance: number;
17
+ unit: ValueOf<typeof MapMeasurementUnitAuto>;
18
+ locale: string;
19
+ clearLayerOnStart?: boolean;
20
+ positions: Position[];
21
+ }
22
+ export interface MeasurementToolsLayerProps {
23
+ enabled: boolean;
24
+ layerProps: MeasurementToolsLayersProps<never>;
25
+ locale: MeasurementToolsState['locale'];
26
+ unit: MeasurementToolsState['unit'];
27
+ onEdit: (args: MeasurementToolsLayerEditProps) => void;
28
+ guideColor: Color;
29
+ pointColor: Color;
30
+ mode: CustomMeasureMode<GeoJsonEditMode>;
31
+ textOptions?: MeasurementToolsTextProps;
32
+ }
33
+ export interface MeasurementToolsLayersProps<D = unknown> extends Omit<EditableGeojsonLayerProps<D>, 'onHover' | 'mode'> {
34
+ selectedFeatures: D[];
35
+ onChangeFeatures: (features: D[]) => void;
36
+ onHover?: MeasurementToolsLayerHoverProps;
37
+ }
38
+ export interface EditableLayerHoverProps {
39
+ distance: number;
40
+ unit: string;
41
+ locale: string;
42
+ }
43
+ export type MeasurementToolsLayerHoverProps = (info: Tooltip, args: EditableLayerHoverProps) => void;
44
+ export interface MeasurementToolsLayerEditProps {
45
+ editType: string;
46
+ editContext: {
47
+ distance: MeasurementToolsState['distance'];
48
+ finished: MeasurementToolsState['finished'];
49
+ positions: MeasurementToolsState['positions'];
50
+ };
51
+ }
52
+ export interface MeasurementToolsControlProps {
53
+ mapId: MeasurementToolsProps['mapId'];
54
+ textOptions?: MeasurementToolsProps['textOptions'];
55
+ children: (props: Required<MeasurementToolChildrenProps<string, GeoJsonEditMode>>) => React.ReactNode;
56
+ }
57
+ export interface DefaultMeasureToolProps {
58
+ styles: {
59
+ colors: {
60
+ editing: Color;
61
+ finished: Color;
62
+ point: Color;
63
+ };
64
+ };
65
+ }
66
+ export interface MeasurementToolsProps<M extends string = string, T = GeoJsonEditMode> {
67
+ mapId: string;
68
+ modeSelected: keyof MeasurementModes<M, T>;
69
+ defaultProps?: Partial<DefaultMeasureToolProps>;
70
+ layerProps?: MeasurementToolsLayerProps['layerProps'];
71
+ mode?: Class<CustomMeasureMode<T>>;
72
+ textOptions?: MeasurementToolsTextProps;
73
+ }
74
+ export type MeasurementToolChildrenProps<M extends string, T = unknown> = Partial<MeasurementToolsState> & {
75
+ value: string;
76
+ modes: MeasurementModes<M, T>;
77
+ modeSelected?: keyof MeasurementModes<M, T>;
78
+ units: MeasurementUnits;
79
+ setModeSelected: (mode: MeasurementToolsState['modeSelected']) => void;
80
+ setFinished: (finished: MeasurementToolsState['finished']) => void;
81
+ setDistance: (distance: MeasurementToolsState['distance']) => void;
82
+ setUnit: (unit: MeasurementToolsState['unit']) => void;
83
+ setLocale: (locale: MeasurementToolsState['locale']) => void;
84
+ setPositions: (positions: MeasurementToolsState['positions']) => void;
85
+ setEnable: (enabled: MeasurementToolsState['enabled']) => void;
86
+ toggleLayer: (enabled: boolean) => void;
87
+ clearLayer: () => void;
88
+ };
89
+ export type MeasurementToolsTextProps = Intl.NumberFormatOptions & {
90
+ autoSplitNumber?: number;
91
+ };
92
+ export interface EditModeConfig {
93
+ formatTooltip?: (radius: number) => string;
94
+ turfOptions: {
95
+ units: string;
96
+ };
97
+ }
@@ -0,0 +1,36 @@
1
+ import { MeasurementToolsState } from './types';
2
+ export declare function useMeasurementTools({ mapId }: {
3
+ mapId: string;
4
+ }): {
5
+ modes: import('../..').MeasurementModes<import('../..').MeasurementMode, import('@deck.gl-community/editable-layers').GeoJsonEditMode>;
6
+ units: import('../..').MeasurementUnits;
7
+ distance: number;
8
+ clearLayerOnStart: boolean | undefined;
9
+ modeSelected: import('../..').MeasurementMode | undefined;
10
+ enabled: boolean;
11
+ finished: boolean;
12
+ locale: string;
13
+ modeInstance: import('@deck.gl-community/editable-layers').GeoJsonEditMode | undefined;
14
+ positions: import('geojson').Position[];
15
+ unit: import('type-fest').ValueOf<{
16
+ readonly kilometer: "kilometer";
17
+ readonly meter: "meter";
18
+ readonly centimeter: "centimeter";
19
+ readonly milimeter: "milimeter";
20
+ readonly mile: "mile";
21
+ readonly yard: "yard";
22
+ readonly feet: "feet";
23
+ readonly 'm-km': "m-km";
24
+ readonly 'ft-mi': "ft-mi";
25
+ }>;
26
+ setDistance: (distance: number) => void;
27
+ setModeSelected: (mode: MeasurementToolsState["modeSelected"]) => void;
28
+ setFinished: (finished: MeasurementToolsState["finished"]) => void;
29
+ setLocale: (locale: MeasurementToolsState["locale"]) => void;
30
+ setPositions: (positions: MeasurementToolsState["positions"]) => void;
31
+ setUnit: (unit: MeasurementToolsState["unit"]) => void;
32
+ setEnable: (enabled: MeasurementToolsState["enabled"]) => void;
33
+ toggleLayer: (enabled: boolean) => void;
34
+ clearLayer: () => void;
35
+ setModeInstance: (modeInstance: MeasurementToolsState["modeInstance"]) => void;
36
+ };
@@ -0,0 +1,17 @@
1
+ import { Tooltip, Position } from '@deck.gl-community/editable-layers';
2
+ import { ControllerOptions } from 'node_modules/@deck.gl/core/dist/controllers/controller';
3
+ import { ValueOf } from 'type-fest';
4
+ import { DeckGLComponentProps } from '../../types';
5
+ import { MapMeasurementUnit, MapMeasurementUnitAuto } from './const';
6
+ import { EditModeConfig, MeasurementToolsTextProps } from './types';
7
+ export declare function convertMetersTo(distance: number, unit: ValueOf<typeof MapMeasurementUnit>): number;
8
+ export declare function getTextLayerFormattedDistance({ meters, unit, locale, options: { autoSplitNumber, ...intlOptions }, }: {
9
+ meters: number;
10
+ unit: ValueOf<typeof MapMeasurementUnitAuto>;
11
+ locale: string;
12
+ options?: MeasurementToolsTextProps;
13
+ }): string;
14
+ export declare function getDeckController(controller: DeckGLComponentProps['controller'], { hasDoubleClickZoom, }: {
15
+ hasDoubleClickZoom: boolean;
16
+ }): ControllerOptions;
17
+ export declare function buildTooltip(value: number, position: Position, modeConfig: EditModeConfig): Tooltip[];
@@ -0,0 +1,12 @@
1
+ import { Tooltip } from './types';
2
+ export declare function getCursorDefault({ isDragging, isHovering, }: {
3
+ isHovering: boolean;
4
+ isDragging: boolean;
5
+ }): "grabbing" | "pointer" | "grab";
6
+ export declare function getTooltipDefault(info: Tooltip): {
7
+ html: string;
8
+ style: {
9
+ padding: string;
10
+ background: string;
11
+ };
12
+ } | null;
@@ -1,4 +1,41 @@
1
- export * from './event-manager';
2
- export * from './map-provider';
3
- export * from './map-measurement-tool';
4
- export * from './utils';
1
+ export type { BasemapKey, BasemapType, DeckGLComponentProps, GmapsProps, InstanceRef, LayerType, MapComponentProps, OverlayRef, Tooltip, ViewStateChange, ViewStateChangeCallback, ZoomControl, ZoomControlChildrenProps, CustomMeasureMode, MeasurementMode, MeasurementModeOption, MeasurementModes, MeasurementOptionsMode, MeasurementOptionsUnit, MeasurementSystem, MeasurementUnit, MeasurementUnitImperialDistance, MeasurementUnitMetricDistance, MeasurementUnitOption, MeasurementUnits, LassoToolsMode, LassoToolsModeOption, LassoToolsModes, LassoToolOptionsMode, } from './types';
2
+ export { CartoBasemaps, CartoBasemapURL, GmapsBasemap, MAPS_BASEMAP, MapsTypes, } from './const';
3
+ export { DeckGLComponent } from './deckgl';
4
+ export type { DefaultLassoToolsProps, LassoToolsChildrenProps, LassoToolsControlProps, LassoToolsLayerEditProps, LassoToolsLayerProps, LassoToolsLayersProps, LassoToolsProps, LassoToolsState, } from './editable/lasso-tools/types';
5
+ export { DEFAULT_LASSO_TOOLS_COLORS, DEFAULT_LASSO_TOOLS_LAYER_PROPS, DEFAULT_LASSO_TOOLS_MODES, DEFAULT_LASSO_TOOLS_PROPS, DEFAULT_MASK_LAYER_PROPS, MAP_LASSO_TOOLS_LAYER_ID, MAP_MASK_LAYER_ID, } from './editable/lasso-tools/const';
6
+ export { CustomCompositeEditMode } from './editable/lasso-tools/modes/custom-edit-mode.class';
7
+ export { LassoTools } from './editable/lasso-tools/lasso-tools';
8
+ export { getLassoToolsLayer } from './editable/lasso-tools/layer';
9
+ export { LassoToolsProvider, useLassoToolsState, } from './editable/lasso-tools/provider/provider';
10
+ export { createLassoToolsStore } from './editable/lasso-tools/provider/store';
11
+ export type { LassoToolsProviderProps, LassoToolsStore, } from './editable/lasso-tools/provider/types';
12
+ export { DEFAULT_MEASUREMENT_TOOLS_MODES, DEFAULT_MEASUREMENT_TOOLS_UNITS, MEASUREMENT_TOOLS_UNITS_AREA, MEASUREMENT_TOOLS_UNITS_DISTANCE_VALUES, MEASUREMENT_TOOLS_UNITS_DISTANCE, } from './editable/measurement-tools/const';
13
+ export type { DefaultMeasureToolProps, EditableLayerHoverProps, MeasurementToolChildrenProps, MeasurementToolsLayerEditProps, MeasurementToolsLayerHoverProps, MeasurementToolsLayerProps, MeasurementToolsLayersProps, MeasurementToolsProps, MeasurementToolsState, MeasurementToolsTextProps, MeasurementToolsControlProps, } from './editable/measurement-tools/types';
14
+ export { CONVERSIONS_UNITS, DEFAULT_COLORS as DEFAULT_MEASURE_COLORS, INTL_UNITS, MAP_MEASURE_LAYER_ID, MapMeasurementUnitAuto, MapMeasurementUnitTurf, } from './editable/measurement-tools/const';
15
+ export { EditType as EditableEditType } from './editable/const';
16
+ export { CustomMeasureDistanceMode } from './editable/measurement-tools/modes/custom-measurement-distance.class';
17
+ export { CustomMeasureAreaMode } from './editable/measurement-tools/modes/custom-measurement-area.class';
18
+ export { CustomMeasureBufferMode } from './editable/measurement-tools/modes/custom-measurement-buffer.class';
19
+ export { getMeasurementToolsLayer } from './editable/measurement-tools/layer';
20
+ export { MeasurementTools } from './editable/measurement-tools/measurement-tools';
21
+ export { convertMetersTo, getDeckController, getTextLayerFormattedDistance, } from './editable/measurement-tools/utils';
22
+ export type { MeasurementToolsStore, MeasurementToolsProviderProps, ValueProps, } from './editable/measurement-tools/provider/types';
23
+ export { MeasurementToolsProvider, useMeasurementToolsState, } from './editable/measurement-tools/provider/provider';
24
+ export { createMeasurementToolsStore } from './editable/measurement-tools/provider/store';
25
+ export { getCursorDefault, getTooltipDefault } from './helpers';
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';
30
+ export { transitionFlyConfig } from './providers/map/const';
31
+ export { MapProvider, useMapState } from './providers/map/provider';
32
+ export { createMapStateStore } from './providers/map/store';
33
+ export type { QuerySource, Source, SourceStore, TableSource, TilesetSource, } from './providers/sources/types';
34
+ export { ApiBaseUrl, clientID } from './providers/sources/const';
35
+ export { useSource } from './providers/sources/store';
36
+ export { useGetLayers } from './use-get-layers';
37
+ export { useMapScreenshot } from './use-map-screenshot';
38
+ export type { FieldFormatter, Formatter, Formatters, ObjectToHtmlOptions, Value, } from './utils/object-to-html/types';
39
+ export { formatterTypes } from './utils/object-to-html/const';
40
+ export { objectToHtml } from './utils/object-to-html/object-to-html';
41
+ export { ZoomControls } from './zoom-controls';
@@ -0,0 +1,2 @@
1
+ import { MapComponentProps } from './types';
2
+ export declare function MapComponent({ id, onLoad, onViewStateChange, ...props }: MapComponentProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { LayerStore } from './types';
2
+ export declare const useLayers: import('zustand').UseBoundStore<import('zustand').StoreApi<LayerStore>>;
@@ -0,0 +1,9 @@
1
+ import { LayerType } from '../../types';
2
+ export interface Layer extends LayerType {
3
+ order?: number;
4
+ legend?: string;
5
+ }
6
+ export interface LayerStore {
7
+ layers: Record<string, Layer>;
8
+ setLayer: (id: string, layer?: Partial<Layer>) => void;
9
+ }
@@ -0,0 +1,2 @@
1
+ import { MapViewState } from '@deck.gl/core';
2
+ export declare const transitionFlyConfig: Pick<MapViewState, 'transitionDuration' | 'transitionInterpolator'>;
@@ -0,0 +1,4 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { MapProviderProps, MapStateStore } from './types';
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;
@@ -0,0 +1,2 @@
1
+ import { MapProviderProps, MapStateStore } from './types';
2
+ export declare const createMapStateStore: (initProps: MapProviderProps["values"]) => import('zustand').StoreApi<MapStateStore>;
@@ -0,0 +1,59 @@
1
+ import { MapViewState, WebMercatorViewport } from '@deck.gl/core';
2
+ import { InstanceRef, MapComponentProps, OverlayRef } from '../../types';
3
+ interface ValueProps {
4
+ id: MapComponentProps['id'];
5
+ viewState: MapComponentProps['viewState'];
6
+ isLoaded: boolean;
7
+ basemap: NonNullable<MapComponentProps['basemap']>;
8
+ layers?: string[];
9
+ }
10
+ export interface MapProviderProps {
11
+ values: Omit<ValueProps, 'isLoaded'>[];
12
+ }
13
+ export interface MapStore {
14
+ maps: Record<ValueProps['id'], Pick<ValueProps, 'basemap' | 'isLoaded'> & {
15
+ instanceRef?: MapComponentProps['instanceRef'];
16
+ overlayRef?: MapComponentProps['overlayRef'];
17
+ } & {
18
+ layers: NonNullable<ValueProps['layers']>;
19
+ areLayersLoaded: boolean;
20
+ }>;
21
+ setBasemap: (id: ValueProps['id'], basemap: ValueProps['basemap']) => void;
22
+ setLoad: (id: ValueProps['id'], isLoaded: boolean) => void;
23
+ setLayersLoad: (id: ValueProps['id'], isLoaded: boolean) => void;
24
+ getDeckInstance: (id: ValueProps['id']) => InstanceRef['deck'];
25
+ getOverlayInstance: (id: ValueProps['id']) => OverlayRef;
26
+ getViewState: (id: ValueProps['id']) => ValueProps['viewState'];
27
+ getViewports: (id: ValueProps['id'], rect?: ViewportRect) => WebMercatorViewport[] | undefined;
28
+ getViewport: (id: ValueProps['id'], index?: number, rect?: ViewportRect) => WebMercatorViewport | undefined;
29
+ addLayers: (id: ValueProps['id'], layers: NonNullable<ValueProps['layers']>) => void;
30
+ removeLayers: (id: ValueProps['id'], layer: NonNullable<ValueProps['layers']>) => void;
31
+ }
32
+ export interface ViewStateStore {
33
+ viewStates: Record<ValueProps['id'], ValueProps['viewState']>;
34
+ setViewState: (id: MapComponentProps['id'], viewState: MapViewState) => void;
35
+ setZoom: (id: MapComponentProps['id'], zoom: MapViewState['zoom']) => void;
36
+ setMinZoom: (id: MapComponentProps['id'], minZoom: MapViewState['minZoom']) => void;
37
+ setMaxZoom: (id: MapComponentProps['id'], maxZoom: MapViewState['maxPitch']) => void;
38
+ }
39
+ export interface CommonStore {
40
+ fitBounds: (id: ValueProps['id'], bounds: Parameters<WebMercatorViewport['fitBounds']>[0], options?: {
41
+ boundsOptions?: Parameters<WebMercatorViewport['fitBounds']>[1];
42
+ viewStateOptions?: Omit<MapViewState, 'latitude' | 'longitude' | 'zoom'>;
43
+ }) => void;
44
+ flyTo: (id: ValueProps['id'], target: {
45
+ longitude?: MapViewState['longitude'];
46
+ latitude?: MapViewState['latitude'];
47
+ zoom?: MapViewState['zoom'];
48
+ }, options?: {
49
+ viewStateOptions?: Omit<MapViewState, 'latitude' | 'longitude' | 'zoom'>;
50
+ }) => void;
51
+ }
52
+ export type MapStateStore = MapStore & ViewStateStore & CommonStore;
53
+ export interface ViewportRect {
54
+ x: number;
55
+ y: number;
56
+ width?: number;
57
+ height?: number;
58
+ }
59
+ export {};
@@ -0,0 +1,2 @@
1
+ export declare const ApiBaseUrl = "https://gcp-us-east1.api.carto.com";
2
+ export declare const clientID = "ps";
@@ -0,0 +1,2 @@
1
+ import { SourceStore } from './types';
2
+ export declare const useSource: import('zustand').UseBoundStore<import('zustand').StoreApi<SourceStore>>;
@@ -0,0 +1,17 @@
1
+ import { VectorQuerySourceOptions, VectorTableSourceOptions, VectorTilesetSourceOptions } from '@deck.gl/carto';
2
+ export type QuerySource = {
3
+ type: 'query';
4
+ } & Omit<VectorQuerySourceOptions, 'accessToken' | 'sqlQuery'>;
5
+ export type TilesetSource = {
6
+ type: 'tileset';
7
+ } & Omit<VectorTilesetSourceOptions, 'accessToken' | 'tableName'>;
8
+ export type TableSource = {
9
+ type: 'table';
10
+ } & Omit<VectorTableSourceOptions, 'accessToken' | 'tableName'>;
11
+ export type Source = (QuerySource | TilesetSource | TableSource) & {
12
+ data: string;
13
+ };
14
+ export interface SourceStore {
15
+ sources: Record<string, Source>;
16
+ setSource: (id: string, source?: Partial<Source>) => void;
17
+ }
@@ -0,0 +1,56 @@
1
+ import { Class, ValueOf } from 'type-fest';
2
+ import { MutableRefObject, ReactNode, RefObject } from 'react';
3
+ import { Layer, MapViewState, PickingInfo, ViewStateChangeParameters } from '@deck.gl/core';
4
+ import { DeckGLProps, DeckGLRef } from '@deck.gl/react';
5
+ import { MapRef } from 'react-map-gl/maplibre';
6
+ import { CartoBasemaps, GmapsBasemap, MapsTypes } from './const';
7
+ import { MapProps, APIProviderProps } from '@vis.gl/react-google-maps';
8
+ import { ViewStateStore } from './providers/map/types';
9
+ export * from '../types/common';
10
+ export type BasemapKey = keyof typeof CartoBasemaps | keyof typeof GmapsBasemap;
11
+ export type BasemapType = ValueOf<typeof MapsTypes>;
12
+ export interface Tooltip extends PickingInfo {
13
+ text?: string | undefined;
14
+ html?: string | undefined;
15
+ className?: string | undefined;
16
+ style?: Partial<CSSStyleDeclaration> | undefined;
17
+ }
18
+ export interface LayerType<T extends Class<Layer> = Class<Layer>> {
19
+ type: T | null;
20
+ props: unknown;
21
+ }
22
+ export type InstanceRef = DeckGLRef;
23
+ export type OverlayRef = MapRef | google.maps.Map | null | undefined;
24
+ export type GmapsProps = Omit<MapProps, 'mapTypeId'> & {
25
+ apiKey: string;
26
+ APIProviderProps?: Omit<APIProviderProps, 'apiKey'>;
27
+ };
28
+ export interface DeckGLComponentProps extends Omit<DeckGLProps, 'layers' | 'onLoad'> {
29
+ basemap?: BasemapKey;
30
+ instanceRef?: RefObject<InstanceRef>;
31
+ overlayRef?: MutableRefObject<OverlayRef>;
32
+ layers: LayerType[];
33
+ gmapsProps?: GmapsProps;
34
+ onLoad?: (value: boolean) => void;
35
+ }
36
+ export type ViewStateChange = ViewStateChangeParameters<MapViewState>;
37
+ export type ViewStateChangeCallback = (id: MapComponentProps['id'], props: MapViewState) => void;
38
+ export interface MapComponentProps extends Omit<DeckGLComponentProps, 'onViewStateChange' | 'layers'> {
39
+ id: NonNullable<DeckGLComponentProps['id']>;
40
+ onViewStateChange?: (props: ViewStateChangeParameters<MapViewState>, callback: ViewStateChangeCallback) => void;
41
+ }
42
+ export interface LayersLoadedProps {
43
+ id: MapComponentProps['id'];
44
+ }
45
+ export interface ZoomControl {
46
+ id: MapComponentProps['id'];
47
+ children: (props: ZoomControlChildrenProps) => ReactNode;
48
+ }
49
+ export interface ZoomControlChildrenProps {
50
+ zoom: MapViewState['zoom'];
51
+ maxZoom: MapViewState['maxZoom'];
52
+ minZoom: MapViewState['minZoom'];
53
+ isLoading: boolean;
54
+ setZoom: (zoom: Parameters<ViewStateStore['setZoom']>[1]) => void;
55
+ flyTo: (viewState: MapViewState) => void;
56
+ }
@@ -0,0 +1,4 @@
1
+ import { MapComponentProps } from './types';
2
+ export declare function useGetLayers({ id }: {
3
+ id: MapComponentProps['id'];
4
+ }): import('.').Layer[];
@@ -0,0 +1,8 @@
1
+ import { MapComponentProps } from './types';
2
+ export declare function useMapScreenshot({ mapId, }: {
3
+ mapId: MapComponentProps['id'];
4
+ }): {
5
+ takeScreenshot: () => void;
6
+ isLoading: boolean;
7
+ screenshot: string | undefined;
8
+ };
@@ -0,0 +1,5 @@
1
+ export declare const formatterTypes: {
2
+ readonly currency: "CURRENCY";
3
+ readonly default: "DEFAULT";
4
+ readonly number: "NUMBER";
5
+ };
@@ -1,10 +1,7 @@
1
- export declare enum FormatterTypes {
2
- CURRENCY = "CURRENCY",
3
- DEFAULT = "DEFAULT",
4
- NUMBER = "NUMBER"
5
- }
1
+ import { ValueOf } from 'type-fest';
2
+ import { formatterTypes } from './const';
6
3
  export type Format = (value: Value, locale: string) => string;
7
- export type FormatterType = `${FormatterTypes}` | FormatterTypes;
4
+ export type FormatterType = ValueOf<typeof formatterTypes>;
8
5
  export interface Formatter {
9
6
  type: FormatterType;
10
7
  format: Format;
@@ -0,0 +1,2 @@
1
+ import { ZoomControl } from './types';
2
+ export declare function ZoomControls({ children, id }: ZoomControl): import('react').ReactNode;