@octostar/map-component 0.1.16 → 0.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +61 -35
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +62 -36
- package/dist/index.mjs.map +1 -1
- package/dist/types/components/action-panel.d.ts +8 -0
- package/dist/types/components/action-panel.d.ts.map +1 -0
- package/dist/types/components/cluster-pie-chart.d.ts +16 -0
- package/dist/types/components/cluster-pie-chart.d.ts.map +1 -0
- package/dist/types/components/color-picker-popover.d.ts +9 -0
- package/dist/types/components/color-picker-popover.d.ts.map +1 -0
- package/dist/types/components/debug-sidebar.d.ts +14 -0
- package/dist/types/components/debug-sidebar.d.ts.map +1 -0
- package/dist/types/components/demos/feature-editor-demo.d.ts +2 -0
- package/dist/types/components/demos/feature-editor-demo.d.ts.map +1 -0
- package/dist/types/components/demos/point-editor-demo.d.ts +2 -0
- package/dist/types/components/demos/point-editor-demo.d.ts.map +1 -0
- package/dist/types/components/demos/search-filter-demo.d.ts +2 -0
- package/dist/types/components/demos/search-filter-demo.d.ts.map +1 -0
- package/dist/types/components/demos/standalone-demo.d.ts +2 -0
- package/dist/types/components/demos/standalone-demo.d.ts.map +1 -0
- package/dist/types/components/drawing-toolbar.d.ts +57 -0
- package/dist/types/components/drawing-toolbar.d.ts.map +1 -0
- package/dist/types/components/icon-picker.d.ts +20 -0
- package/dist/types/components/icon-picker.d.ts.map +1 -0
- package/dist/types/components/layers-panel.d.ts +124 -0
- package/dist/types/components/layers-panel.d.ts.map +1 -0
- package/dist/types/components/map-drop-zone.d.ts +7 -0
- package/dist/types/components/map-drop-zone.d.ts.map +1 -0
- package/dist/types/components/map-editor-canvas.d.ts +5 -0
- package/dist/types/components/map-editor-canvas.d.ts.map +1 -0
- package/dist/types/components/properties-panel.d.ts +32 -0
- package/dist/types/components/properties-panel.d.ts.map +1 -0
- package/dist/types/components/status-indicator.d.ts +10 -0
- package/dist/types/components/status-indicator.d.ts.map +1 -0
- package/dist/types/components/timebar.d.ts +15 -0
- package/dist/types/components/timebar.d.ts.map +1 -0
- package/dist/types/hooks/toast-context.d.ts +7 -0
- package/dist/types/hooks/toast-context.d.ts.map +1 -0
- package/dist/types/hooks/use-toast.d.ts +5 -0
- package/dist/types/hooks/use-toast.d.ts.map +1 -0
- package/dist/types/index.d.ts +28 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/lib/map-editor-api.d.ts +547 -0
- package/dist/types/lib/map-editor-api.d.ts.map +1 -0
- package/dist/types/lib/queryClient.d.ts +9 -0
- package/dist/types/lib/queryClient.d.ts.map +1 -0
- package/dist/types/lib/timeline-store.d.ts +37 -0
- package/dist/types/lib/timeline-store.d.ts.map +1 -0
- package/dist/types/lib/utils.d.ts +3 -0
- package/dist/types/lib/utils.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface ActionPanelProps {
|
|
2
|
+
onSave: () => void;
|
|
3
|
+
onLoad: () => void;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function ActionPanel({ onSave, onLoad, disabled }: ActionPanelProps): import("react").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=action-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-panel.d.ts","sourceRoot":"","sources":["../../../client/src/components/action-panel.tsx"],"names":[],"mappings":"AAGA,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,gBAAgB,+BA4CzE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import maplibregl from 'maplibre-gl';
|
|
2
|
+
interface ClusterPieProps {
|
|
3
|
+
map: maplibregl.Map;
|
|
4
|
+
sourceId: string;
|
|
5
|
+
layerId: string;
|
|
6
|
+
categoryValues: string[];
|
|
7
|
+
categoryColorMap: Record<string, string>;
|
|
8
|
+
visible: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function ClusterPieManager(props: ClusterPieProps): null;
|
|
11
|
+
export declare function createClusterPieManager(map: maplibregl.Map, sourceId: string, categoryValues: string[], categoryColorMap: Record<string, string>): {
|
|
12
|
+
update: () => void;
|
|
13
|
+
destroy: () => void;
|
|
14
|
+
};
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=cluster-pie-chart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cluster-pie-chart.d.ts","sourceRoot":"","sources":["../../../client/src/components/cluster-pie-chart.tsx"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,aAAa,CAAC;AAQrC,UAAU,eAAe;IACvB,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;CAClB;AAyJD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,QAiIvD;AAGD,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,UAAU,CAAC,GAAG,EACnB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EAAE,EACxB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC;IAAE,MAAM,EAAE,MAAM,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAkG7C"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
declare const PRESET_COLORS: string[];
|
|
2
|
+
interface ColorPickerPopoverProps {
|
|
3
|
+
value: string;
|
|
4
|
+
onChange: (color: string) => void;
|
|
5
|
+
testId?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function ColorPickerPopover({ value, onChange, testId }: ColorPickerPopoverProps): import("react").JSX.Element;
|
|
8
|
+
export { PRESET_COLORS };
|
|
9
|
+
//# sourceMappingURL=color-picker-popover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-picker-popover.d.ts","sourceRoot":"","sources":["../../../client/src/components/color-picker-popover.tsx"],"names":[],"mappings":"AAEA,QAAA,MAAM,aAAa,UAWlB,CAAC;AAEF,UAAU,uBAAuB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,uBAAuB,+BAsDtF;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse KML file content to GeoJSON using @mapbox/togeojson
|
|
3
|
+
*/
|
|
4
|
+
export declare function parseKMLToGeoJSON(kmlContent: string): GeoJSON.FeatureCollection | null;
|
|
5
|
+
interface DebugSidebarProps {
|
|
6
|
+
onAddRandomPoints: (features: GeoJSON.Feature[]) => void;
|
|
7
|
+
onImportKML?: (name: string, geojson: GeoJSON.FeatureCollection) => void;
|
|
8
|
+
canAddFeatures?: boolean;
|
|
9
|
+
className?: string;
|
|
10
|
+
onCloseMap?: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function DebugSidebar({ onAddRandomPoints, onImportKML, canAddFeatures, className, onCloseMap }: DebugSidebarProps): import("react").JSX.Element;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=debug-sidebar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-sidebar.d.ts","sourceRoot":"","sources":["../../../client/src/components/debug-sidebar.tsx"],"names":[],"mappings":"AA6jBA;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAmBtF;AAgLD,UAAU,iBAAiB;IACzB,iBAAiB,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC;IACzD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,iBAAiB,KAAK,IAAI,CAAC;IACzE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,wBAAgB,YAAY,CAAC,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAqB,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,iBAAiB,+BAmQ/H"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-editor-demo.d.ts","sourceRoot":"","sources":["../../../../client/src/components/demos/feature-editor-demo.tsx"],"names":[],"mappings":"AA6FA,wBAAgB,iBAAiB,gCA0lBhC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"point-editor-demo.d.ts","sourceRoot":"","sources":["../../../../client/src/components/demos/point-editor-demo.tsx"],"names":[],"mappings":"AAgGA,wBAAgB,eAAe,gCA0Q9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-filter-demo.d.ts","sourceRoot":"","sources":["../../../../client/src/components/demos/search-filter-demo.tsx"],"names":[],"mappings":"AAyKA,wBAAgB,gBAAgB,gCA0O/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standalone-demo.d.ts","sourceRoot":"","sources":["../../../../client/src/components/demos/standalone-demo.tsx"],"names":[],"mappings":"AAOA,wBAAgB,cAAc,gCAwlB7B"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { GeocoderProvider } from '@/lib/map-editor-api';
|
|
2
|
+
export type DrawingMode = 'simple_select' | 'view_select' | 'draw_point' | 'draw_line_string' | 'draw_polygon' | 'draw_rectangle' | 'direct_select' | 'draw_text' | 'draw_arrow' | 'draw_circle';
|
|
3
|
+
export type MeasureMode = 'none' | 'distance' | 'area';
|
|
4
|
+
export type SelectionMode = 'click' | 'rectangle' | 'polygon' | 'circle';
|
|
5
|
+
interface DrawingToolbarProps {
|
|
6
|
+
activeMode: DrawingMode;
|
|
7
|
+
onModeChange: (mode: DrawingMode) => void;
|
|
8
|
+
onClear: () => void;
|
|
9
|
+
onDeleteSelected: () => void;
|
|
10
|
+
onUndo: () => void;
|
|
11
|
+
onRedo: () => void;
|
|
12
|
+
featureCount: number;
|
|
13
|
+
selectedCount: number;
|
|
14
|
+
canUndo: boolean;
|
|
15
|
+
canRedo: boolean;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
isEditMode: boolean;
|
|
18
|
+
onToggleEditMode: () => void;
|
|
19
|
+
hasVisibleLayers: boolean;
|
|
20
|
+
hasEditableLayer: boolean;
|
|
21
|
+
measureMode: MeasureMode;
|
|
22
|
+
onMeasureModeChange: (mode: MeasureMode) => void;
|
|
23
|
+
selectionMode: SelectionMode;
|
|
24
|
+
onSelectionModeChange: (mode: SelectionMode) => void;
|
|
25
|
+
enableMeasurement?: boolean;
|
|
26
|
+
enableSelection?: boolean;
|
|
27
|
+
hiddenDrawingTools?: ('point' | 'line' | 'polygon' | 'text' | 'arrow' | 'circle')[];
|
|
28
|
+
hiddenSelectionTools?: ('click' | 'rectangle' | 'polygon' | 'circle')[];
|
|
29
|
+
selectionOnly?: boolean;
|
|
30
|
+
onGoTo?: (coords: [number, number], zoom?: number) => void;
|
|
31
|
+
onDropPoint?: (coords: [number, number], name?: string) => void;
|
|
32
|
+
showGoToButton?: boolean;
|
|
33
|
+
onFitToFeatures?: () => void;
|
|
34
|
+
isSelectionToolActive?: boolean;
|
|
35
|
+
onSelectionToolActiveChange?: (active: boolean) => void;
|
|
36
|
+
showClearFilter?: boolean;
|
|
37
|
+
onClearFilter?: () => void;
|
|
38
|
+
/** Notifies the parent when the filter tool is toggled on or off */
|
|
39
|
+
onFilterActiveChange?: (active: boolean) => void;
|
|
40
|
+
/** Callback to invoke the external search engine - when provided, shows "+" add menu */
|
|
41
|
+
onSearchEngineRequest?: () => Promise<void>;
|
|
42
|
+
/** Whether the search engine request is currently in progress */
|
|
43
|
+
isSearchEngineLoading?: boolean;
|
|
44
|
+
/** Custom geocoding URL - should accept ?q={query} parameter and return Nominatim-compatible JSON */
|
|
45
|
+
geocodingUrl?: string;
|
|
46
|
+
/** Custom geocoder provider function - use instead of geocodingUrl when geocoding is an internal API */
|
|
47
|
+
geocoderProvider?: GeocoderProvider;
|
|
48
|
+
/** Whether to show keyboard shortcut hints in tooltips and menus. Default: true. */
|
|
49
|
+
showShortcutHints?: boolean;
|
|
50
|
+
/** When true, render each selection tool as a separate button instead of a dropdown */
|
|
51
|
+
expandSelectionTools?: boolean;
|
|
52
|
+
/** Show a dedicated Filter button that activates rectangle selection for geo-filtering */
|
|
53
|
+
showFilterTool?: boolean;
|
|
54
|
+
}
|
|
55
|
+
export declare function DrawingToolbar({ activeMode, onModeChange, onClear, onDeleteSelected, onUndo, onRedo, featureCount, selectedCount, canUndo, canRedo, disabled, isEditMode, onToggleEditMode, hasVisibleLayers, hasEditableLayer, measureMode, onMeasureModeChange, selectionMode, onSelectionModeChange, enableMeasurement, enableSelection, hiddenDrawingTools, hiddenSelectionTools, selectionOnly, onGoTo, onDropPoint, showGoToButton, onFitToFeatures, isSelectionToolActive, onSelectionToolActiveChange, showClearFilter, onClearFilter, onFilterActiveChange, onSearchEngineRequest, geocodingUrl, geocoderProvider, showShortcutHints, expandSelectionTools, showFilterTool, }: DrawingToolbarProps): import("react").JSX.Element;
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=drawing-toolbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawing-toolbar.d.ts","sourceRoot":"","sources":["../../../client/src/components/drawing-toolbar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type LucideIcon } from 'lucide-react';
|
|
2
|
+
interface IconDef {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
icon: LucideIcon;
|
|
6
|
+
category: string;
|
|
7
|
+
}
|
|
8
|
+
declare const ICONS: IconDef[];
|
|
9
|
+
declare const ICON_MAP: Map<string, LucideIcon>;
|
|
10
|
+
interface IconPickerProps {
|
|
11
|
+
value: string;
|
|
12
|
+
onChange: (icon: string) => void;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare function IconPicker({ value, onChange, disabled }: IconPickerProps): import("react").JSX.Element;
|
|
16
|
+
export declare function getIconComponent(iconId: string): LucideIcon | null;
|
|
17
|
+
export declare function isValidIconId(value: string): boolean;
|
|
18
|
+
export { ICONS, ICON_MAP };
|
|
19
|
+
export type { IconDef };
|
|
20
|
+
//# sourceMappingURL=icon-picker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-picker.d.ts","sourceRoot":"","sources":["../../../client/src/components/icon-picker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAmBL,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AAEtB,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,QAAA,MAAM,KAAK,EAAE,OAAO,EAqInB,CAAC;AAqBF,QAAA,MAAM,QAAQ,yBAA8D,CAAC;AAE7E,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAgB,EAAE,EAAE,eAAe,+BAuKhF;AAGD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAElE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC3B,YAAY,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { Map } from 'lucide-react';
|
|
2
|
+
export type BuiltInMapStyle = 'streets' | 'satellite' | 'dark';
|
|
3
|
+
export type MapStyle = BuiltInMapStyle | (string & {});
|
|
4
|
+
export declare const MAP_STYLES: {
|
|
5
|
+
id: MapStyle;
|
|
6
|
+
name: string;
|
|
7
|
+
icon: typeof Map;
|
|
8
|
+
}[];
|
|
9
|
+
export interface TraceConfig {
|
|
10
|
+
enabled: boolean;
|
|
11
|
+
groupByField: string | null;
|
|
12
|
+
}
|
|
13
|
+
export interface HeatmapConfig {
|
|
14
|
+
enabled: boolean;
|
|
15
|
+
intensity: number;
|
|
16
|
+
radius: number;
|
|
17
|
+
hideFeatures?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface ClusterConfig {
|
|
20
|
+
enabled: boolean;
|
|
21
|
+
groupByField: string | null;
|
|
22
|
+
showPointDots?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export type LabelMode = 'standard' | 'field' | 'fixed';
|
|
25
|
+
export type SizeMode = 'standard' | 'field' | 'override';
|
|
26
|
+
export type ColorMode = 'standard' | 'field' | 'fixed';
|
|
27
|
+
export interface LabelConfig {
|
|
28
|
+
mode: LabelMode;
|
|
29
|
+
fieldName?: string;
|
|
30
|
+
fixedText?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface SizeConfig {
|
|
33
|
+
mode: SizeMode;
|
|
34
|
+
fieldName?: string;
|
|
35
|
+
overrideValue?: number;
|
|
36
|
+
}
|
|
37
|
+
export interface ColorConfig {
|
|
38
|
+
mode: ColorMode;
|
|
39
|
+
fieldName?: string;
|
|
40
|
+
fixedColor?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface IconConfig {
|
|
43
|
+
enabled: boolean;
|
|
44
|
+
icon: string;
|
|
45
|
+
size: number;
|
|
46
|
+
}
|
|
47
|
+
export interface VisualConfig {
|
|
48
|
+
label?: LabelConfig;
|
|
49
|
+
size?: SizeConfig;
|
|
50
|
+
color?: ColorConfig;
|
|
51
|
+
icon?: IconConfig;
|
|
52
|
+
}
|
|
53
|
+
export type AltitudeDisplayMode = '3d' | 'flat' | 'both';
|
|
54
|
+
export interface Layer {
|
|
55
|
+
id: string;
|
|
56
|
+
name: string;
|
|
57
|
+
visible: boolean;
|
|
58
|
+
featureIds: string[];
|
|
59
|
+
readOnly?: boolean;
|
|
60
|
+
traceConfig?: TraceConfig;
|
|
61
|
+
heatmapConfig?: HeatmapConfig;
|
|
62
|
+
clusterConfig?: ClusterConfig;
|
|
63
|
+
visualConfig?: VisualConfig;
|
|
64
|
+
altitudeDisplayMode?: AltitudeDisplayMode;
|
|
65
|
+
hasAltitudeData?: boolean;
|
|
66
|
+
}
|
|
67
|
+
export interface AutoLabelConfig {
|
|
68
|
+
enabled: boolean;
|
|
69
|
+
threshold: number;
|
|
70
|
+
}
|
|
71
|
+
interface LayersPanelProps {
|
|
72
|
+
layers: Layer[];
|
|
73
|
+
onAddLayer: (name: string) => void;
|
|
74
|
+
onRemoveLayer: (layerId: string) => void;
|
|
75
|
+
onRenameLayer: (layerId: string, name: string) => void;
|
|
76
|
+
onToggleLayerVisibility: (layerId: string) => void;
|
|
77
|
+
onMoveFeatureToLayer: (featureId: string, layerId: string) => void;
|
|
78
|
+
selectedFeatureIds: string[];
|
|
79
|
+
getFeatureCount: (layerId: string) => number;
|
|
80
|
+
/** Get count of unsaved features in a layer (for displaying unsaved badge) */
|
|
81
|
+
getLayerUnsavedCount?: (layerId: string) => number;
|
|
82
|
+
/** Get total count of unsaved features across all layers (for map-level indicator) */
|
|
83
|
+
getMapUnsavedCount?: () => number;
|
|
84
|
+
activeEditingLayerId: string;
|
|
85
|
+
onSetActiveEditingLayer: (layerId: string) => void;
|
|
86
|
+
onSaveLayerGeoJSON: (layerId: string) => void;
|
|
87
|
+
onLoadLayerGeoJSON: (layerId: string) => void;
|
|
88
|
+
onLoadNewLayerGeoJSON: () => void;
|
|
89
|
+
onSaveAllGeoJSON: () => void;
|
|
90
|
+
onSearchAndAddToNewLayer?: () => Promise<void>;
|
|
91
|
+
onWorkspaceLoad?: (layerId: string) => Promise<void>;
|
|
92
|
+
onWorkspaceSave?: (layerId: string) => Promise<void>;
|
|
93
|
+
onFitToFeatures?: () => void;
|
|
94
|
+
onFitToLayerFeatures?: (layerId: string) => void;
|
|
95
|
+
currentMapStyle: MapStyle;
|
|
96
|
+
onMapStyleChange: (style: MapStyle) => void;
|
|
97
|
+
onUpdateTraceConfig: (layerId: string, config: TraceConfig) => void;
|
|
98
|
+
getAvailableTraceFields: (layerId: string) => string[];
|
|
99
|
+
getLayerFields?: (layerId: string) => {
|
|
100
|
+
name: string;
|
|
101
|
+
isNumeric: boolean;
|
|
102
|
+
}[];
|
|
103
|
+
onUpdateHeatmapConfig?: (layerId: string, config: HeatmapConfig) => void;
|
|
104
|
+
onUpdateClusterConfig?: (layerId: string, config: ClusterConfig) => void;
|
|
105
|
+
onUpdateVisualConfig?: (layerId: string, config: VisualConfig) => void;
|
|
106
|
+
hasPointFeatures?: (layerId: string) => boolean;
|
|
107
|
+
autoLabelConfig?: AutoLabelConfig;
|
|
108
|
+
onUpdateAutoLabelConfig?: (config: AutoLabelConfig) => void;
|
|
109
|
+
visibleFeatureCount?: number;
|
|
110
|
+
is3DTerrainEnabled?: boolean;
|
|
111
|
+
onToggle3DTerrain?: () => void;
|
|
112
|
+
onUpdateAltitudeDisplayMode?: (layerId: string, mode: AltitudeDisplayMode) => void;
|
|
113
|
+
/** Hide satellite basemap option (for air-gapped deployments) */
|
|
114
|
+
hideSatellite?: boolean;
|
|
115
|
+
/** Hide terrain basemap and 3D toggle (for air-gapped deployments) */
|
|
116
|
+
hideTerrain?: boolean;
|
|
117
|
+
/** Hide the entire basemap style switcher (for air-gapped deployments with only a local tile server) */
|
|
118
|
+
hideBasemapSwitcher?: boolean;
|
|
119
|
+
/** When true, hide unsaved badges (persistence is handled externally) */
|
|
120
|
+
externalPersistence?: boolean;
|
|
121
|
+
}
|
|
122
|
+
export declare function LayersPanel({ layers, onAddLayer, onRemoveLayer, onRenameLayer, onToggleLayerVisibility, onMoveFeatureToLayer, selectedFeatureIds, getFeatureCount, getLayerUnsavedCount, getMapUnsavedCount, activeEditingLayerId, onSetActiveEditingLayer, onSaveLayerGeoJSON, onLoadLayerGeoJSON, onLoadNewLayerGeoJSON, onSaveAllGeoJSON, onSearchAndAddToNewLayer, onWorkspaceLoad, onWorkspaceSave, onFitToFeatures, onFitToLayerFeatures, currentMapStyle, onMapStyleChange, onUpdateTraceConfig, getAvailableTraceFields, getLayerFields, onUpdateHeatmapConfig, onUpdateClusterConfig, onUpdateVisualConfig, hasPointFeatures, autoLabelConfig, onUpdateAutoLabelConfig, visibleFeatureCount, is3DTerrainEnabled, onToggle3DTerrain, onUpdateAltitudeDisplayMode, hideSatellite, hideTerrain, hideBasemapSwitcher, externalPersistence, }: LayersPanelProps): import("react").JSX.Element;
|
|
123
|
+
export {};
|
|
124
|
+
//# sourceMappingURL=layers-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layers-panel.d.ts","sourceRoot":"","sources":["../../../client/src/components/layers-panel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface MapDropZoneProps {
|
|
2
|
+
onDrop: (name: string, data: GeoJSON.FeatureCollection) => void;
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
}
|
|
5
|
+
export declare function MapDropZone({ onDrop, children }: MapDropZoneProps): import("react").JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=map-drop-zone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-drop-zone.d.ts","sourceRoot":"","sources":["../../../client/src/components/map-drop-zone.tsx"],"names":[],"mappings":"AAIA,UAAU,gBAAgB;IACxB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,iBAAiB,KAAK,IAAI,CAAC;IAChE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,gBAAgB,+BAgEjE"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import 'maplibre-gl/dist/maplibre-gl.css';
|
|
2
|
+
import '@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css';
|
|
3
|
+
import type { MapEditorHandle, MapEditorProps } from '@/lib/map-editor-api';
|
|
4
|
+
export declare const MapEditorCanvas: import("react").ForwardRefExoticComponent<MapEditorProps & import("react").RefAttributes<MapEditorHandle>>;
|
|
5
|
+
//# sourceMappingURL=map-editor-canvas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-editor-canvas.d.ts","sourceRoot":"","sources":["../../../client/src/components/map-editor-canvas.tsx"],"names":[],"mappings":"AA2IA,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gDAAgD,CAAC;AA+NxD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAgF5E,eAAO,MAAM,eAAe,4GAyoO1B,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { EntityCardProvider, TypePickerProvider, FeatureSaveProvider } from '@/lib/map-editor-api';
|
|
2
|
+
interface FeatureProperties {
|
|
3
|
+
name?: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
[key: string]: unknown;
|
|
6
|
+
}
|
|
7
|
+
interface SelectedFeature {
|
|
8
|
+
id: string;
|
|
9
|
+
type: string;
|
|
10
|
+
properties: FeatureProperties;
|
|
11
|
+
geometry: GeoJSON.Geometry;
|
|
12
|
+
}
|
|
13
|
+
interface PropertiesPanelProps {
|
|
14
|
+
selectedFeatures: SelectedFeature[];
|
|
15
|
+
onUpdateProperties: (featureId: string, properties: FeatureProperties) => void;
|
|
16
|
+
onUpdateGeometry?: (featureId: string, geometry: GeoJSON.Geometry) => void;
|
|
17
|
+
onClose: () => void;
|
|
18
|
+
isEditMode?: boolean;
|
|
19
|
+
layerName?: string;
|
|
20
|
+
layerId?: string;
|
|
21
|
+
autoFocusLabel?: boolean;
|
|
22
|
+
entityCardProvider?: EntityCardProvider;
|
|
23
|
+
typePickerProvider?: TypePickerProvider;
|
|
24
|
+
featureSaveProvider?: FeatureSaveProvider;
|
|
25
|
+
onFeatureSaved?: (featureId: string, newId: string, metadata: {
|
|
26
|
+
workspace: string;
|
|
27
|
+
sourceName: string;
|
|
28
|
+
}) => void;
|
|
29
|
+
}
|
|
30
|
+
export declare function PropertiesPanel({ selectedFeatures, onUpdateProperties, onUpdateGeometry, onClose, isEditMode, layerName, layerId, autoFocusLabel, entityCardProvider, typePickerProvider, featureSaveProvider, onFeatureSaved }: PropertiesPanelProps): import("react").JSX.Element | null;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=properties-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"properties-panel.d.ts","sourceRoot":"","sources":["../../../client/src/components/properties-panel.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAc,mBAAmB,EAAsB,MAAM,sBAAsB,CAAC;AAkBxI,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC;CAC5B;AAED,UAAU,oBAAoB;IAC5B,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC/E,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC;IAC3E,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAClH;AAmED,wBAAgB,eAAe,CAAC,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAiB,EAAE,SAAS,EAAE,OAAO,EAAE,cAAsB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,cAAc,EAAE,EAAE,oBAAoB,sCA+lCpQ"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DrawingMode, SelectionMode } from '@/components/drawing-toolbar';
|
|
2
|
+
interface StatusIndicatorProps {
|
|
3
|
+
activeMode: DrawingMode;
|
|
4
|
+
featureCount: number;
|
|
5
|
+
selectedCount?: number;
|
|
6
|
+
selectionMode?: SelectionMode;
|
|
7
|
+
}
|
|
8
|
+
export declare function StatusIndicator({ featureCount, selectedCount }: StatusIndicatorProps): import("react").JSX.Element | null;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=status-indicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-indicator.d.ts","sourceRoot":"","sources":["../../../client/src/components/status-indicator.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE/E,UAAU,oBAAoB;IAC5B,UAAU,EAAE,WAAW,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,wBAAgB,eAAe,CAAC,EAAE,YAAY,EAAE,aAAiB,EAAE,EAAE,oBAAoB,sCAyBxF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const TIMEBAR_HEIGHT = 152;
|
|
2
|
+
export declare const TIMEBAR_BOTTOM_OFFSET = 12;
|
|
3
|
+
interface TimebarProps {
|
|
4
|
+
onFilterChange: (visibleIds: string[], hiddenIds: string[], untimedIds: string[]) => void;
|
|
5
|
+
selectedFeatureIds?: string[];
|
|
6
|
+
selectedFeatureColors?: Map<string, string>;
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function TimebarToggle({ onClick, hasData }: {
|
|
10
|
+
onClick: () => void;
|
|
11
|
+
hasData: boolean;
|
|
12
|
+
}): import("react").JSX.Element | null;
|
|
13
|
+
export declare function Timebar({ onFilterChange, selectedFeatureIds, selectedFeatureColors, className }: TimebarProps): import("react").JSX.Element | null;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=timebar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timebar.d.ts","sourceRoot":"","sources":["../../../client/src/components/timebar.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,UAAU,YAAY;IACpB,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1F,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA2KD,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,sCAa5F;AAED,wBAAgB,OAAO,CAAC,EAAE,cAAc,EAAE,kBAAuB,EAAE,qBAAqB,EAAE,SAAS,EAAE,EAAE,YAAY,sCA2QlH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast-context.d.ts","sourceRoot":"","sources":["../../../client/src/hooks/toast-context.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAA;CAAE,KAAK,IAAI,CAAC;AAEvH,eAAO,MAAM,YAAY,yCAAsC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-toast.d.ts","sourceRoot":"","sources":["../../../client/src/hooks/use-toast.ts"],"names":[],"mappings":"AAIA,wBAAgB,QAAQ;;EA2BvB;AAED,OAAO,EAAE,QAAQ,IAAI,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @octostar/map-component
|
|
3
|
+
*
|
|
4
|
+
* A powerful MapLibre-based map editor component for React applications.
|
|
5
|
+
* Provides drawing tools, layer management, timeline filtering, and more.
|
|
6
|
+
*/
|
|
7
|
+
import './index.css';
|
|
8
|
+
export { MapEditorCanvas } from './components/map-editor-canvas';
|
|
9
|
+
export type { MapEditorHandle, MapEditorConfig, MapEditorProps, ViewportInfo, SearchEngineParams, SearchEngineCallback, GeocoderResult, GeocoderProvider, EntityType, EntityCardProvider, TypePickerProvider, ContextMenuContext, ContextMenuItem, ContextMenuProvider, RasterBasemapDefinition, VectorBasemapDefinition, BasemapDefinition, BuiltInBasemapStyle, TooltipProvider, } from './lib/map-editor-api';
|
|
10
|
+
export { LayersPanel, MAP_STYLES } from './components/layers-panel';
|
|
11
|
+
export type { Layer, BuiltInMapStyle, MapStyle, TraceConfig, HeatmapConfig, ClusterConfig, LabelMode, SizeMode, ColorMode, LabelConfig, SizeConfig, ColorConfig, IconConfig, VisualConfig, AltitudeDisplayMode, AutoLabelConfig, } from './components/layers-panel';
|
|
12
|
+
export { DrawingToolbar } from './components/drawing-toolbar';
|
|
13
|
+
export type { DrawingMode, MeasureMode, SelectionMode, } from './components/drawing-toolbar';
|
|
14
|
+
export { PropertiesPanel } from './components/properties-panel';
|
|
15
|
+
export { Timebar, TimebarToggle, TIMEBAR_HEIGHT, TIMEBAR_BOTTOM_OFFSET } from './components/timebar';
|
|
16
|
+
export { StatusIndicator } from './components/status-indicator';
|
|
17
|
+
export { ColorPickerPopover, PRESET_COLORS } from './components/color-picker-popover';
|
|
18
|
+
export { IconPicker, getIconComponent, isValidIconId } from './components/icon-picker';
|
|
19
|
+
export type { IconDef } from './components/icon-picker';
|
|
20
|
+
export { MapDropZone } from './components/map-drop-zone';
|
|
21
|
+
export { ActionPanel } from './components/action-panel';
|
|
22
|
+
export { ClusterPieManager, createClusterPieManager } from './components/cluster-pie-chart';
|
|
23
|
+
export { DebugSidebar, parseKMLToGeoJSON } from './components/debug-sidebar';
|
|
24
|
+
export { cn } from './lib/utils';
|
|
25
|
+
export { useToast, toast } from './hooks/use-toast';
|
|
26
|
+
export { useTimelineStore, isFeatureInRange, normalizeTemporalProperties } from './lib/timeline-store';
|
|
27
|
+
export type { TemporalFeature, TimelineState } from './lib/timeline-store';
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../client/src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,aAAa,CAAC;AAGrB,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,YAAY,EACV,eAAe,EACf,eAAe,EACf,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EACV,KAAK,EACL,eAAe,EACf,QAAQ,EACR,WAAW,EACX,aAAa,EACb,aAAa,EACb,SAAS,EACT,QAAQ,EACR,SAAS,EACT,WAAW,EACX,UAAU,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,YAAY,EACV,WAAW,EACX,WAAW,EACX,aAAa,GACd,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAGrG,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACvF,YAAY,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAG5F,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG7E,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACvG,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
|