@carto/ps-react-maps 2.0.0 → 3.0.0-canary.0
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/LICENSE.md +29 -0
- package/README.md +16 -13
- package/dist/index.js +2317 -1411
- package/dist/index.js.map +1 -0
- package/dist/styles.css +1 -0
- package/dist/types/common/common.d.ts +3 -0
- package/dist/types/common/index.d.ts +25 -0
- package/dist/types/common/lasso-tools.d.ts +33 -0
- package/dist/types/common/measurement-tools.d.ts +66 -0
- package/dist/types/const.d.ts +31 -0
- package/dist/types/deckgl.d.ts +2 -0
- package/dist/types/editable/const.d.ts +8 -0
- package/dist/types/editable/lasso-tools/const.d.ts +31 -0
- package/dist/types/editable/lasso-tools/lasso-tools-control.d.ts +2 -0
- package/dist/types/editable/lasso-tools/lasso-tools.d.ts +28 -0
- package/dist/types/editable/lasso-tools/layer.d.ts +3 -0
- package/dist/types/editable/lasso-tools/modes/custom-edit-mode.class.d.ts +5 -0
- package/dist/types/editable/lasso-tools/provider/provider.d.ts +4 -0
- package/dist/types/editable/lasso-tools/provider/store.d.ts +2 -0
- package/dist/types/editable/lasso-tools/provider/types.d.ts +14 -0
- package/dist/types/editable/lasso-tools/types.d.ts +77 -0
- package/dist/types/editable/measurement-tools/const.d.ts +67 -0
- package/dist/types/editable/measurement-tools/layer.d.ts +3 -0
- package/dist/types/editable/measurement-tools/measurement-tools-control.d.ts +2 -0
- package/dist/types/editable/measurement-tools/measurement-tools.d.ts +8 -0
- package/dist/types/editable/measurement-tools/modes/custom-measurement-area.class.d.ts +30 -0
- package/dist/types/editable/measurement-tools/modes/custom-measurement-buffer.class.d.ts +28 -0
- package/dist/types/editable/measurement-tools/modes/custom-measurement-distance.class.d.ts +16 -0
- package/dist/types/editable/measurement-tools/provider/provider.d.ts +4 -0
- package/dist/types/editable/measurement-tools/provider/store.d.ts +2 -0
- package/dist/types/editable/measurement-tools/provider/types.d.ts +18 -0
- package/dist/types/editable/measurement-tools/types.d.ts +97 -0
- package/dist/types/editable/measurement-tools/use-measurement-tools.d.ts +36 -0
- package/dist/types/editable/measurement-tools/utils.d.ts +17 -0
- package/dist/types/helpers.d.ts +12 -0
- package/dist/types/index.d.ts +41 -4
- package/dist/types/map.d.ts +2 -0
- package/dist/types/providers/layers/store.d.ts +2 -0
- package/dist/types/providers/layers/types.d.ts +9 -0
- package/dist/types/providers/map/const.d.ts +2 -0
- package/dist/types/providers/map/provider.d.ts +4 -0
- package/dist/types/providers/map/store.d.ts +2 -0
- package/dist/types/providers/map/types.d.ts +59 -0
- package/dist/types/providers/sources/const.d.ts +2 -0
- package/dist/types/providers/sources/store.d.ts +2 -0
- package/dist/types/providers/sources/types.d.ts +17 -0
- package/dist/types/types.d.ts +56 -0
- package/dist/types/use-get-layers.d.ts +4 -0
- package/dist/types/use-map-screenshot.d.ts +8 -0
- package/dist/types/utils/object-to-html/const.d.ts +5 -0
- package/dist/types/utils/object-to-html/object-to-html.test.d.ts +1 -0
- package/dist/types/utils/object-to-html/types.d.ts +3 -6
- package/dist/types/zoom-controls.d.ts +2 -0
- package/package.json +78 -42
- package/dist/index.cjs +0 -30
- package/dist/types/assets/icons/ruler.d.ts +0 -2
- package/dist/types/common-stories/maps/deckgl-maps.component.d.ts +0 -2
- package/dist/types/common-stories/maps/google-maps.component.d.ts +0 -3
- package/dist/types/common-stories/maps/map-container.component.d.ts +0 -4
- package/dist/types/common-stories/maps/map.component.d.ts +0 -2
- package/dist/types/event-manager/index.d.ts +0 -1
- package/dist/types/event-manager/use-event-manager.hook.d.ts +0 -14
- package/dist/types/map-measurement-tool/custom-editable-geojson-layer.class.d.ts +0 -10
- package/dist/types/map-measurement-tool/custom-measurement-distance-mode.class.d.ts +0 -6
- package/dist/types/map-measurement-tool/index.d.ts +0 -9
- package/dist/types/map-measurement-tool/map-measurement-tool.component.d.ts +0 -6
- package/dist/types/map-measurement-tool/map-measurement-tool.const.d.ts +0 -34
- package/dist/types/map-measurement-tool/map-measurement-tool.context.d.ts +0 -5
- package/dist/types/map-measurement-tool/map-measurement-tool.hook.d.ts +0 -10
- package/dist/types/map-measurement-tool/map-measurement-tool.layer.d.ts +0 -10
- package/dist/types/map-measurement-tool/map-measurement-tool.provider.d.ts +0 -8
- package/dist/types/map-measurement-tool/map-measurement-tool.reducer.d.ts +0 -14
- package/dist/types/map-measurement-tool/map-measurement-tool.styles.d.ts +0 -28
- package/dist/types/map-measurement-tool/map-measurement-tool.types.d.ts +0 -87
- package/dist/types/map-measurement-tool/map-measurement-tool.util.d.ts +0 -12
- package/dist/types/map-provider/index.d.ts +0 -6
- package/dist/types/map-provider/map-provider.const.d.ts +0 -33
- package/dist/types/map-provider/map-provider.context.d.ts +0 -6
- package/dist/types/map-provider/map-provider.hook.d.ts +0 -87
- package/dist/types/map-provider/map-provider.provider.d.ts +0 -13
- package/dist/types/map-provider/map-provider.reducer.d.ts +0 -24
- package/dist/types/map-provider/map-provider.types.d.ts +0 -122
- package/dist/types/utils/get-map-type/get-map-type.d.ts +0 -1
- package/dist/types/utils/get-map-type/index.d.ts +0 -2
- package/dist/types/utils/get-map-type/is-gmaps.d.ts +0 -1
- package/dist/types/utils/index.d.ts +0 -2
- 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,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;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,4 +1,41 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
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,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,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,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 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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 =
|
|
4
|
+
export type FormatterType = ValueOf<typeof formatterTypes>;
|
|
8
5
|
export interface Formatter {
|
|
9
6
|
type: FormatterType;
|
|
10
7
|
format: Format;
|