@gisfun/maplibre-gl-components 0.15.0-alpha.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 +21 -0
- package/README.md +1960 -0
- package/dist/ControlGrid-DN5md8hp.cjs +19636 -0
- package/dist/ControlGrid-rVNG7B9O.js +170422 -0
- package/dist/DuckDBConverter-B98M0DFs.cjs +23 -0
- package/dist/DuckDBConverter-RPq48-t0.js +434 -0
- package/dist/ShapefileConverter-AjbEjEyq.cjs +1 -0
- package/dist/ShapefileConverter-trvt8J3z.js +125 -0
- package/dist/decoder-CLokFc0V.js +8 -0
- package/dist/decoder-D9LU4bUo.cjs +1 -0
- package/dist/deflate-BA1jZeSX.js +10 -0
- package/dist/deflate-DEdCz12a.cjs +1 -0
- package/dist/geojson-BQSVgKFt.cjs +1 -0
- package/dist/geojson-BSUuDj5k.js +2551 -0
- package/dist/geotiff-De1w1lBy.cjs +8 -0
- package/dist/geotiff-o_Fq1Na4.js +3108 -0
- package/dist/index-8ZZtuDTp.js +705 -0
- package/dist/index-B-Nr9y7J.cjs +84 -0
- package/dist/index-B5NoFrpY.js +8892 -0
- package/dist/index-Bi1MMPUx.js +4163 -0
- package/dist/index-C9fk_HKR.js +167 -0
- package/dist/index-CBBRBJvR.cjs +274 -0
- package/dist/index-CZxPF1qt.js +4 -0
- package/dist/index-CiDPSJ9T.cjs +1 -0
- package/dist/index-CjM_nbxd.cjs +107 -0
- package/dist/index-DQXdX5y1.js +4666 -0
- package/dist/index-Dh1kpCb6.cjs +1 -0
- package/dist/index-IrsIiQNM.cjs +4 -0
- package/dist/index.cjs +3819 -0
- package/dist/index.mjs +19580 -0
- package/dist/jpeg-CF9OGQg_.js +533 -0
- package/dist/jpeg-JSQOxGHy.cjs +1 -0
- package/dist/lerc-7LlQoT6u.js +1032 -0
- package/dist/lerc-BIsodce9.cjs +1 -0
- package/dist/lzw-BZniWIYG.js +84 -0
- package/dist/lzw-BhML-BvT.cjs +1 -0
- package/dist/main-dist-Bymiy5aM.cjs +2 -0
- package/dist/main-dist-Cv8AKwrY.js +629 -0
- package/dist/maplibre-geoman.es-Bxdg-2EU.cjs +129 -0
- package/dist/maplibre-geoman.es-CFgM2ajb.js +22827 -0
- package/dist/maplibre-gl-components.css +1 -0
- package/dist/packbits-B9b7gX2c.cjs +1 -0
- package/dist/packbits-DWY5O-FG.js +24 -0
- package/dist/pako.esm-Bx5X36Wo.js +1074 -0
- package/dist/pako.esm-DZC2QrbJ.cjs +1 -0
- package/dist/raw-C3ARbSFo.cjs +1 -0
- package/dist/raw-DUslI1gr.js +9 -0
- package/dist/react.cjs +1 -0
- package/dist/react.mjs +1306 -0
- package/dist/types/index.d.ts +44 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/lib/adapters/AddVectorAdapter.d.ts +66 -0
- package/dist/types/lib/adapters/AddVectorAdapter.d.ts.map +1 -0
- package/dist/types/lib/adapters/CogLayerAdapter.d.ts +126 -0
- package/dist/types/lib/adapters/CogLayerAdapter.d.ts.map +1 -0
- package/dist/types/lib/adapters/PMTilesLayerAdapter.d.ts +78 -0
- package/dist/types/lib/adapters/PMTilesLayerAdapter.d.ts.map +1 -0
- package/dist/types/lib/adapters/StacLayerAdapter.d.ts +71 -0
- package/dist/types/lib/adapters/StacLayerAdapter.d.ts.map +1 -0
- package/dist/types/lib/adapters/ZarrLayerAdapter.d.ts +72 -0
- package/dist/types/lib/adapters/ZarrLayerAdapter.d.ts.map +1 -0
- package/dist/types/lib/adapters/index.d.ts +7 -0
- package/dist/types/lib/adapters/index.d.ts.map +1 -0
- package/dist/types/lib/addControlGrid.d.ts +80 -0
- package/dist/types/lib/addControlGrid.d.ts.map +1 -0
- package/dist/types/lib/colormaps/diverging.d.ts +30 -0
- package/dist/types/lib/colormaps/diverging.d.ts.map +1 -0
- package/dist/types/lib/colormaps/index.d.ts +32 -0
- package/dist/types/lib/colormaps/index.d.ts.map +1 -0
- package/dist/types/lib/colormaps/misc.d.ts +38 -0
- package/dist/types/lib/colormaps/misc.d.ts.map +1 -0
- package/dist/types/lib/colormaps/sequential.d.ts +22 -0
- package/dist/types/lib/colormaps/sequential.d.ts.map +1 -0
- package/dist/types/lib/converters/DuckDBConverter.d.ts +112 -0
- package/dist/types/lib/converters/DuckDBConverter.d.ts.map +1 -0
- package/dist/types/lib/converters/ShapefileConverter.d.ts +56 -0
- package/dist/types/lib/converters/ShapefileConverter.d.ts.map +1 -0
- package/dist/types/lib/converters/index.d.ts +8 -0
- package/dist/types/lib/converters/index.d.ts.map +1 -0
- package/dist/types/lib/converters/types.d.ts +75 -0
- package/dist/types/lib/converters/types.d.ts.map +1 -0
- package/dist/types/lib/core/AddVector.d.ts +116 -0
- package/dist/types/lib/core/AddVector.d.ts.map +1 -0
- package/dist/types/lib/core/Basemap.d.ts +206 -0
- package/dist/types/lib/core/Basemap.d.ts.map +1 -0
- package/dist/types/lib/core/BasemapReact.d.ts +32 -0
- package/dist/types/lib/core/BasemapReact.d.ts.map +1 -0
- package/dist/types/lib/core/BookmarkControl.d.ts +180 -0
- package/dist/types/lib/core/BookmarkControl.d.ts.map +1 -0
- package/dist/types/lib/core/ChoroplethControl.d.ts +105 -0
- package/dist/types/lib/core/ChoroplethControl.d.ts.map +1 -0
- package/dist/types/lib/core/CogLayer.d.ts +139 -0
- package/dist/types/lib/core/CogLayer.d.ts.map +1 -0
- package/dist/types/lib/core/CogLayerReact.d.ts +32 -0
- package/dist/types/lib/core/CogLayerReact.d.ts.map +1 -0
- package/dist/types/lib/core/Colorbar.d.ts +133 -0
- package/dist/types/lib/core/Colorbar.d.ts.map +1 -0
- package/dist/types/lib/core/ColorbarGuiControl.d.ts +79 -0
- package/dist/types/lib/core/ColorbarGuiControl.d.ts.map +1 -0
- package/dist/types/lib/core/ColorbarReact.d.ts +34 -0
- package/dist/types/lib/core/ColorbarReact.d.ts.map +1 -0
- package/dist/types/lib/core/ControlGrid.d.ts +125 -0
- package/dist/types/lib/core/ControlGrid.d.ts.map +1 -0
- package/dist/types/lib/core/ControlGridReact.d.ts +32 -0
- package/dist/types/lib/core/ControlGridReact.d.ts.map +1 -0
- package/dist/types/lib/core/HtmlControl.d.ts +140 -0
- package/dist/types/lib/core/HtmlControl.d.ts.map +1 -0
- package/dist/types/lib/core/HtmlControlReact.d.ts +32 -0
- package/dist/types/lib/core/HtmlControlReact.d.ts.map +1 -0
- package/dist/types/lib/core/HtmlGuiControl.d.ts +68 -0
- package/dist/types/lib/core/HtmlGuiControl.d.ts.map +1 -0
- package/dist/types/lib/core/InspectControl.d.ts +202 -0
- package/dist/types/lib/core/InspectControl.d.ts.map +1 -0
- package/dist/types/lib/core/InspectControlReact.d.ts +32 -0
- package/dist/types/lib/core/InspectControlReact.d.ts.map +1 -0
- package/dist/types/lib/core/Legend.d.ts +142 -0
- package/dist/types/lib/core/Legend.d.ts.map +1 -0
- package/dist/types/lib/core/LegendGuiControl.d.ts +69 -0
- package/dist/types/lib/core/LegendGuiControl.d.ts.map +1 -0
- package/dist/types/lib/core/LegendReact.d.ts +34 -0
- package/dist/types/lib/core/LegendReact.d.ts.map +1 -0
- package/dist/types/lib/core/MeasureControl.d.ts +211 -0
- package/dist/types/lib/core/MeasureControl.d.ts.map +1 -0
- package/dist/types/lib/core/MinimapControl.d.ts +77 -0
- package/dist/types/lib/core/MinimapControl.d.ts.map +1 -0
- package/dist/types/lib/core/MinimapControlReact.d.ts +32 -0
- package/dist/types/lib/core/MinimapControlReact.d.ts.map +1 -0
- package/dist/types/lib/core/PMTilesLayer.d.ts +119 -0
- package/dist/types/lib/core/PMTilesLayer.d.ts.map +1 -0
- package/dist/types/lib/core/PrintControl.d.ts +226 -0
- package/dist/types/lib/core/PrintControl.d.ts.map +1 -0
- package/dist/types/lib/core/SearchControl.d.ts +172 -0
- package/dist/types/lib/core/SearchControl.d.ts.map +1 -0
- package/dist/types/lib/core/SearchControlReact.d.ts +32 -0
- package/dist/types/lib/core/SearchControlReact.d.ts.map +1 -0
- package/dist/types/lib/core/StacLayer.d.ts +107 -0
- package/dist/types/lib/core/StacLayer.d.ts.map +1 -0
- package/dist/types/lib/core/StacSearch.d.ts +109 -0
- package/dist/types/lib/core/StacSearch.d.ts.map +1 -0
- package/dist/types/lib/core/Terrain.d.ts +165 -0
- package/dist/types/lib/core/Terrain.d.ts.map +1 -0
- package/dist/types/lib/core/TerrainReact.d.ts +32 -0
- package/dist/types/lib/core/TerrainReact.d.ts.map +1 -0
- package/dist/types/lib/core/VectorDataset.d.ts +228 -0
- package/dist/types/lib/core/VectorDataset.d.ts.map +1 -0
- package/dist/types/lib/core/VectorDatasetReact.d.ts +31 -0
- package/dist/types/lib/core/VectorDatasetReact.d.ts.map +1 -0
- package/dist/types/lib/core/ViewStateControl.d.ts +205 -0
- package/dist/types/lib/core/ViewStateControl.d.ts.map +1 -0
- package/dist/types/lib/core/ViewStateControlReact.d.ts +32 -0
- package/dist/types/lib/core/ViewStateControlReact.d.ts.map +1 -0
- package/dist/types/lib/core/ZarrLayer.d.ts +110 -0
- package/dist/types/lib/core/ZarrLayer.d.ts.map +1 -0
- package/dist/types/lib/core/types.d.ts +2793 -0
- package/dist/types/lib/core/types.d.ts.map +1 -0
- package/dist/types/lib/hooks/index.d.ts +13 -0
- package/dist/types/lib/hooks/index.d.ts.map +1 -0
- package/dist/types/lib/hooks/useBasemap.d.ts +43 -0
- package/dist/types/lib/hooks/useBasemap.d.ts.map +1 -0
- package/dist/types/lib/hooks/useCogLayer.d.ts +44 -0
- package/dist/types/lib/hooks/useCogLayer.d.ts.map +1 -0
- package/dist/types/lib/hooks/useColorbar.d.ts +36 -0
- package/dist/types/lib/hooks/useColorbar.d.ts.map +1 -0
- package/dist/types/lib/hooks/useControlGrid.d.ts +41 -0
- package/dist/types/lib/hooks/useControlGrid.d.ts.map +1 -0
- package/dist/types/lib/hooks/useHtmlControl.d.ts +39 -0
- package/dist/types/lib/hooks/useHtmlControl.d.ts.map +1 -0
- package/dist/types/lib/hooks/useInspectControl.d.ts +49 -0
- package/dist/types/lib/hooks/useInspectControl.d.ts.map +1 -0
- package/dist/types/lib/hooks/useLegend.d.ts +41 -0
- package/dist/types/lib/hooks/useLegend.d.ts.map +1 -0
- package/dist/types/lib/hooks/useMinimapControl.d.ts +35 -0
- package/dist/types/lib/hooks/useMinimapControl.d.ts.map +1 -0
- package/dist/types/lib/hooks/useSearchControl.d.ts +43 -0
- package/dist/types/lib/hooks/useSearchControl.d.ts.map +1 -0
- package/dist/types/lib/hooks/useTerrain.d.ts +43 -0
- package/dist/types/lib/hooks/useTerrain.d.ts.map +1 -0
- package/dist/types/lib/hooks/useVectorDataset.d.ts +35 -0
- package/dist/types/lib/hooks/useVectorDataset.d.ts.map +1 -0
- package/dist/types/lib/hooks/useViewState.d.ts +43 -0
- package/dist/types/lib/hooks/useViewState.d.ts.map +1 -0
- package/dist/types/lib/utils/color.d.ts +47 -0
- package/dist/types/lib/utils/color.d.ts.map +1 -0
- package/dist/types/lib/utils/fileHelpers.d.ts +207 -0
- package/dist/types/lib/utils/fileHelpers.d.ts.map +1 -0
- package/dist/types/lib/utils/helpers.d.ts +48 -0
- package/dist/types/lib/utils/helpers.d.ts.map +1 -0
- package/dist/types/lib/utils/index.d.ts +4 -0
- package/dist/types/lib/utils/index.d.ts.map +1 -0
- package/dist/types/lib/utils/providers.d.ts +46 -0
- package/dist/types/lib/utils/providers.d.ts.map +1 -0
- package/dist/types/react.d.ts +15 -0
- package/dist/types/react.d.ts.map +1 -0
- package/dist/webimage-CBRffWZD.cjs +1 -0
- package/dist/webimage-ibSPOLHJ.js +19 -0
- package/package.json +137 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { CogLayerControlReactProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* React wrapper component for CogLayerControl.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```tsx
|
|
7
|
+
* import { CogLayerReact } from 'maplibre-gl-components/react';
|
|
8
|
+
*
|
|
9
|
+
* function MyMap() {
|
|
10
|
+
* const [map, setMap] = useState<Map | null>(null);
|
|
11
|
+
*
|
|
12
|
+
* return (
|
|
13
|
+
* <>
|
|
14
|
+
* <div ref={mapContainer} />
|
|
15
|
+
* {map && (
|
|
16
|
+
* <CogLayerReact
|
|
17
|
+
* map={map}
|
|
18
|
+
* defaultUrl="https://example.com/cog.tif"
|
|
19
|
+
* defaultColormap="terrain"
|
|
20
|
+
* onLayerAdd={(url) => console.log('Added:', url)}
|
|
21
|
+
* />
|
|
22
|
+
* )}
|
|
23
|
+
* </>
|
|
24
|
+
* );
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @param props - Component props including map instance and COG layer options.
|
|
29
|
+
* @returns null - This component renders nothing directly.
|
|
30
|
+
*/
|
|
31
|
+
export declare function CogLayerReact({ map, onLayerAdd, onLayerRemove, onLayerUpdate, onError, onStateChange, position, ...options }: CogLayerControlReactProps): null;
|
|
32
|
+
//# sourceMappingURL=CogLayerReact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CogLayerReact.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/CogLayerReact.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAwB,MAAM,SAAS,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,aAAa,CAAC,EAC5B,GAAG,EACH,UAAU,EACV,aAAa,EACb,aAAa,EACb,OAAO,EACP,aAAa,EACb,QAAsB,EACtB,GAAG,OAAO,EACX,EAAE,yBAAyB,GAAG,IAAI,CA+ElC"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { IControl, Map as MapLibreMap } from 'maplibre-gl';
|
|
2
|
+
import { ColorbarOptions, ColorbarState, ComponentEvent, ComponentEventHandler } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* A continuous gradient colorbar control for MapLibre GL maps.
|
|
5
|
+
*
|
|
6
|
+
* Displays a color gradient legend with customizable colormaps,
|
|
7
|
+
* tick marks, labels, and positioning.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const colorbar = new Colorbar({
|
|
12
|
+
* colormap: 'viridis',
|
|
13
|
+
* vmin: 0,
|
|
14
|
+
* vmax: 100,
|
|
15
|
+
* label: 'Temperature',
|
|
16
|
+
* units: '°C',
|
|
17
|
+
* orientation: 'vertical',
|
|
18
|
+
* });
|
|
19
|
+
* map.addControl(colorbar, 'bottom-right');
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare class Colorbar implements IControl {
|
|
23
|
+
private _container?;
|
|
24
|
+
private _options;
|
|
25
|
+
private _state;
|
|
26
|
+
private _eventHandlers;
|
|
27
|
+
private _map?;
|
|
28
|
+
private _handleZoom?;
|
|
29
|
+
private _zoomVisible;
|
|
30
|
+
/**
|
|
31
|
+
* Creates a new Colorbar instance.
|
|
32
|
+
*
|
|
33
|
+
* @param options - Configuration options for the colorbar.
|
|
34
|
+
*/
|
|
35
|
+
constructor(options?: ColorbarOptions);
|
|
36
|
+
/**
|
|
37
|
+
* Called when the control is added to the map.
|
|
38
|
+
* Implements the IControl interface.
|
|
39
|
+
*
|
|
40
|
+
* @param map - The MapLibre GL map instance.
|
|
41
|
+
* @returns The control's container element.
|
|
42
|
+
*/
|
|
43
|
+
onAdd(map: MapLibreMap): HTMLElement;
|
|
44
|
+
/**
|
|
45
|
+
* Called when the control is removed from the map.
|
|
46
|
+
* Implements the IControl interface.
|
|
47
|
+
*/
|
|
48
|
+
onRemove(): void;
|
|
49
|
+
/**
|
|
50
|
+
* Shows the colorbar.
|
|
51
|
+
*/
|
|
52
|
+
show(): void;
|
|
53
|
+
/**
|
|
54
|
+
* Hides the colorbar.
|
|
55
|
+
*/
|
|
56
|
+
hide(): void;
|
|
57
|
+
/**
|
|
58
|
+
* Updates the colorbar options and re-renders.
|
|
59
|
+
*
|
|
60
|
+
* @param options - Partial options to update.
|
|
61
|
+
*/
|
|
62
|
+
update(options: Partial<ColorbarOptions>): void;
|
|
63
|
+
/**
|
|
64
|
+
* Gets the current state.
|
|
65
|
+
*
|
|
66
|
+
* @returns The current colorbar state.
|
|
67
|
+
*/
|
|
68
|
+
getState(): ColorbarState;
|
|
69
|
+
/**
|
|
70
|
+
* Registers an event handler.
|
|
71
|
+
*
|
|
72
|
+
* @param event - The event type to listen for.
|
|
73
|
+
* @param handler - The callback function.
|
|
74
|
+
*/
|
|
75
|
+
on(event: ComponentEvent, handler: ComponentEventHandler<ColorbarState>): void;
|
|
76
|
+
/**
|
|
77
|
+
* Removes an event handler.
|
|
78
|
+
*
|
|
79
|
+
* @param event - The event type.
|
|
80
|
+
* @param handler - The callback function to remove.
|
|
81
|
+
*/
|
|
82
|
+
off(event: ComponentEvent, handler: ComponentEventHandler<ColorbarState>): void;
|
|
83
|
+
/**
|
|
84
|
+
* Gets the resolved color stops for the current colormap.
|
|
85
|
+
*
|
|
86
|
+
* @returns Array of color stops.
|
|
87
|
+
*/
|
|
88
|
+
private _getColorStops;
|
|
89
|
+
/**
|
|
90
|
+
* Generates the CSS gradient string.
|
|
91
|
+
*
|
|
92
|
+
* @returns CSS linear-gradient string.
|
|
93
|
+
*/
|
|
94
|
+
private _generateGradient;
|
|
95
|
+
/**
|
|
96
|
+
* Generates tick values.
|
|
97
|
+
*
|
|
98
|
+
* @returns Array of tick values.
|
|
99
|
+
*/
|
|
100
|
+
private _generateTicks;
|
|
101
|
+
/**
|
|
102
|
+
* Formats a tick value for display.
|
|
103
|
+
*
|
|
104
|
+
* @param value - The tick value.
|
|
105
|
+
* @returns Formatted string.
|
|
106
|
+
*/
|
|
107
|
+
private _formatTick;
|
|
108
|
+
/**
|
|
109
|
+
* Emits an event to all registered handlers.
|
|
110
|
+
*
|
|
111
|
+
* @param event - The event type to emit.
|
|
112
|
+
*/
|
|
113
|
+
private _emit;
|
|
114
|
+
/**
|
|
115
|
+
* Checks if the current zoom level is within the visibility range.
|
|
116
|
+
*/
|
|
117
|
+
private _checkZoomVisibility;
|
|
118
|
+
/**
|
|
119
|
+
* Updates the display state based on visibility and zoom level.
|
|
120
|
+
*/
|
|
121
|
+
private _updateDisplayState;
|
|
122
|
+
/**
|
|
123
|
+
* Creates the main container element.
|
|
124
|
+
*
|
|
125
|
+
* @returns The container element.
|
|
126
|
+
*/
|
|
127
|
+
private _createContainer;
|
|
128
|
+
/**
|
|
129
|
+
* Renders the colorbar content.
|
|
130
|
+
*/
|
|
131
|
+
private _render;
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=Colorbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Colorbar.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/Colorbar.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,cAAc,EACd,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AAiCjB;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,QAAS,YAAW,QAAQ;IACvC,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,QAAQ,CAEd;IACF,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,cAAc,CAGR;IACd,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,YAAY,CAAiB;IAErC;;;;OAIG;gBACS,OAAO,CAAC,EAAE,eAAe;IAUrC;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW;IAepC;;;OAGG;IACH,QAAQ,IAAI,IAAI;IAWhB;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAU/C;;;;OAIG;IACH,QAAQ,IAAI,aAAa;IAIzB;;;;;OAKG;IACH,EAAE,CACA,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,qBAAqB,CAAC,aAAa,CAAC,GAC5C,IAAI;IAOP;;;;;OAKG;IACH,GAAG,CACD,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,qBAAqB,CAAC,aAAa,CAAC,GAC5C,IAAI;IAIP;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAyBtB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAYtB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAcnB;;;;OAIG;IACH,OAAO,CAAC,KAAK;IAQb;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,OAAO,CAAC,OAAO;CAmGhB"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { IControl, Map as MapLibreMap, ControlPosition } from 'maplibre-gl';
|
|
2
|
+
import { ColorbarGuiControlOptions, ColorbarGuiControlState, ColorbarGuiEvent, ColorbarGuiEventHandler } from './types';
|
|
3
|
+
import { Colorbar } from './Colorbar';
|
|
4
|
+
/**
|
|
5
|
+
* A GUI control for adding and configuring colorbars on the map.
|
|
6
|
+
*
|
|
7
|
+
* Provides a panel with colormap selection, value range, label, units,
|
|
8
|
+
* orientation, and position settings. The colorbar is added as a
|
|
9
|
+
* separate control to the map.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const colorbarGui = new ColorbarGuiControl({ collapsed: true });
|
|
14
|
+
* map.addControl(colorbarGui, 'top-right');
|
|
15
|
+
*
|
|
16
|
+
* colorbarGui.on('colorbaradd', (e) => {
|
|
17
|
+
* console.log('Colorbar added:', e.state);
|
|
18
|
+
* });
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare class ColorbarGuiControl implements IControl {
|
|
22
|
+
private _container?;
|
|
23
|
+
private _button?;
|
|
24
|
+
private _panel?;
|
|
25
|
+
private _options;
|
|
26
|
+
private _state;
|
|
27
|
+
private _eventHandlers;
|
|
28
|
+
private _map?;
|
|
29
|
+
private _handleZoom?;
|
|
30
|
+
private _zoomVisible;
|
|
31
|
+
private _colorbar?;
|
|
32
|
+
private _colormapSelect?;
|
|
33
|
+
private _vminInput?;
|
|
34
|
+
private _vmaxInput?;
|
|
35
|
+
private _labelInput?;
|
|
36
|
+
private _unitsInput?;
|
|
37
|
+
private _orientationSelect?;
|
|
38
|
+
private _positionSelect?;
|
|
39
|
+
private _addBtn?;
|
|
40
|
+
private _removeBtn?;
|
|
41
|
+
private _previewEl?;
|
|
42
|
+
private _customColorsTextarea?;
|
|
43
|
+
private _modeNamedRadio?;
|
|
44
|
+
private _modeCustomRadio?;
|
|
45
|
+
private _namedSection?;
|
|
46
|
+
private _customSection?;
|
|
47
|
+
constructor(options?: ColorbarGuiControlOptions);
|
|
48
|
+
onAdd(map: MapLibreMap): HTMLElement;
|
|
49
|
+
onRemove(): void;
|
|
50
|
+
getDefaultPosition(): ControlPosition;
|
|
51
|
+
on(event: ColorbarGuiEvent, handler: ColorbarGuiEventHandler): this;
|
|
52
|
+
off(event: ColorbarGuiEvent, handler: ColorbarGuiEventHandler): this;
|
|
53
|
+
private _emit;
|
|
54
|
+
expand(): void;
|
|
55
|
+
collapse(): void;
|
|
56
|
+
show(): this;
|
|
57
|
+
hide(): this;
|
|
58
|
+
getState(): ColorbarGuiControlState;
|
|
59
|
+
private _createContainer;
|
|
60
|
+
private _createPanel;
|
|
61
|
+
private _createField;
|
|
62
|
+
private _setMode;
|
|
63
|
+
private _parseCustomColors;
|
|
64
|
+
private _updatePreview;
|
|
65
|
+
private _getColormapValue;
|
|
66
|
+
private _addColorbar;
|
|
67
|
+
private _updateColorbar;
|
|
68
|
+
private _removeColorbar;
|
|
69
|
+
private _updateButtonStates;
|
|
70
|
+
private _togglePanel;
|
|
71
|
+
private _showPanel;
|
|
72
|
+
private _hidePanel;
|
|
73
|
+
private _setupZoomHandler;
|
|
74
|
+
/**
|
|
75
|
+
* Get the active Colorbar instance (if any).
|
|
76
|
+
*/
|
|
77
|
+
getColorbar(): Colorbar | undefined;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=ColorbarGuiControl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColorbarGuiControl.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/ColorbarGuiControl.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EACV,QAAQ,EACR,GAAG,IAAI,WAAW,EAClB,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,yBAAyB,EACzB,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,EAGxB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA4BtC;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,kBAAmB,YAAW,QAAQ;IACjD,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,OAAO,CAAC,CAAoB;IACpC,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAAsC;IACtD,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,cAAc,CACV;IACZ,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,YAAY,CAAiB;IAGrC,OAAO,CAAC,SAAS,CAAC,CAAW;IAG7B,OAAO,CAAC,eAAe,CAAC,CAAoB;IAC5C,OAAO,CAAC,UAAU,CAAC,CAAmB;IACtC,OAAO,CAAC,UAAU,CAAC,CAAmB;IACtC,OAAO,CAAC,WAAW,CAAC,CAAmB;IACvC,OAAO,CAAC,WAAW,CAAC,CAAmB;IACvC,OAAO,CAAC,kBAAkB,CAAC,CAAoB;IAC/C,OAAO,CAAC,eAAe,CAAC,CAAoB;IAC5C,OAAO,CAAC,OAAO,CAAC,CAAoB;IACpC,OAAO,CAAC,UAAU,CAAC,CAAoB;IACvC,OAAO,CAAC,UAAU,CAAC,CAAc;IAGjC,OAAO,CAAC,qBAAqB,CAAC,CAAsB;IACpD,OAAO,CAAC,eAAe,CAAC,CAAmB;IAC3C,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,aAAa,CAAC,CAAc;IACpC,OAAO,CAAC,cAAc,CAAC,CAAc;gBAEzB,OAAO,CAAC,EAAE,yBAAyB;IAkB/C,KAAK,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW;IAUpC,QAAQ,IAAI,IAAI;IAUhB,kBAAkB,IAAI,eAAe;IAIrC,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,uBAAuB,GAAG,IAAI;IAQnE,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,uBAAuB,GAAG,IAAI;IAKpE,OAAO,CAAC,KAAK;IAQb,MAAM,IAAI,IAAI;IAOd,QAAQ,IAAI,IAAI;IAOhB,IAAI,IAAI,IAAI;IASZ,IAAI,IAAI,IAAI;IASZ,QAAQ,IAAI,uBAAuB;IAInC,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,YAAY;IA0PpB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,cAAc;IA2BtB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,WAAW,IAAI,QAAQ,GAAG,SAAS;CAGpC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ColorbarReactProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* React wrapper component for Colorbar.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```tsx
|
|
7
|
+
* import { ColorbarReact } from 'maplibre-gl-components/react';
|
|
8
|
+
*
|
|
9
|
+
* function MyMap() {
|
|
10
|
+
* const [map, setMap] = useState<Map | null>(null);
|
|
11
|
+
*
|
|
12
|
+
* return (
|
|
13
|
+
* <>
|
|
14
|
+
* <div ref={mapContainer} />
|
|
15
|
+
* {map && (
|
|
16
|
+
* <ColorbarReact
|
|
17
|
+
* map={map}
|
|
18
|
+
* colormap="viridis"
|
|
19
|
+
* vmin={0}
|
|
20
|
+
* vmax={100}
|
|
21
|
+
* label="Temperature"
|
|
22
|
+
* units="°C"
|
|
23
|
+
* />
|
|
24
|
+
* )}
|
|
25
|
+
* </>
|
|
26
|
+
* );
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @param props - Component props including map instance and colorbar options.
|
|
31
|
+
* @returns null - This component renders nothing directly.
|
|
32
|
+
*/
|
|
33
|
+
export declare function ColorbarReact({ map, onStateChange, position, ...options }: ColorbarReactProps): null;
|
|
34
|
+
//# sourceMappingURL=ColorbarReact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColorbarReact.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/ColorbarReact.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,SAAS,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,aAAa,CAAC,EAC5B,GAAG,EACH,aAAa,EACb,QAAyB,EACzB,GAAG,OAAO,EACX,EAAE,kBAAkB,GAAG,IAAI,CA+D3B"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { IControl, Map as MapLibreMap } from 'maplibre-gl';
|
|
2
|
+
import { ControlGridOptions, ControlGridState, ControlGridEvent, ControlGridEventHandler } from './types';
|
|
3
|
+
import { CustomLayerAdapter } from '../adapters/CogLayerAdapter';
|
|
4
|
+
/**
|
|
5
|
+
* A collapsible grid container for MapLibre IControl instances.
|
|
6
|
+
*
|
|
7
|
+
* Hosts multiple controls (e.g. SearchControl, TerrainControl) in a grid layout.
|
|
8
|
+
* Users can configure rows/columns and dynamically add or remove controls.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const grid = new ControlGrid({
|
|
13
|
+
* title: 'Map Tools',
|
|
14
|
+
* rows: 2,
|
|
15
|
+
* columns: 2,
|
|
16
|
+
* collapsible: true,
|
|
17
|
+
* });
|
|
18
|
+
* grid.addControl(new TerrainControl());
|
|
19
|
+
* grid.addControl(new SearchControl());
|
|
20
|
+
* map.addControl(grid, 'top-right');
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare class ControlGrid implements IControl {
|
|
24
|
+
private _container?;
|
|
25
|
+
private _gridEl?;
|
|
26
|
+
private _options;
|
|
27
|
+
private _state;
|
|
28
|
+
private _children;
|
|
29
|
+
private _eventHandlers;
|
|
30
|
+
private _map?;
|
|
31
|
+
private _handleZoom?;
|
|
32
|
+
private _zoomVisible;
|
|
33
|
+
private _floatingEntry;
|
|
34
|
+
private _floatingPanel;
|
|
35
|
+
/** True during a click that originated inside the grid (not the floating panel). */
|
|
36
|
+
private _clickInGrid;
|
|
37
|
+
private _docCaptureHandler?;
|
|
38
|
+
private _docBubbleHandler?;
|
|
39
|
+
constructor(options?: ControlGridOptions);
|
|
40
|
+
private _createDefaultControl;
|
|
41
|
+
onAdd(map: MapLibreMap): HTMLElement;
|
|
42
|
+
onRemove(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Add a control to the grid. If the control is already on the map, it is mounted into the grid.
|
|
45
|
+
*/
|
|
46
|
+
addControl(control: IControl): void;
|
|
47
|
+
/**
|
|
48
|
+
* Remove a control from the grid. The control's onRemove is called.
|
|
49
|
+
*/
|
|
50
|
+
removeControl(control: IControl): void;
|
|
51
|
+
/**
|
|
52
|
+
* Set the number of grid rows.
|
|
53
|
+
*/
|
|
54
|
+
setRows(rows: number): void;
|
|
55
|
+
/**
|
|
56
|
+
* Set the number of grid columns.
|
|
57
|
+
*/
|
|
58
|
+
setColumns(columns: number): void;
|
|
59
|
+
/**
|
|
60
|
+
* Get the list of controls currently in the grid.
|
|
61
|
+
*/
|
|
62
|
+
getControls(): IControl[];
|
|
63
|
+
/**
|
|
64
|
+
* Create custom layer adapters for all data-layer controls in the grid.
|
|
65
|
+
* Returns adapters suitable for registering with a LayerControl via
|
|
66
|
+
* `layerControl.registerCustomAdapter(adapter)`.
|
|
67
|
+
*
|
|
68
|
+
* Supported controls: CogLayerControl, ZarrLayerControl,
|
|
69
|
+
* PMTilesLayerControl, StacLayerControl, AddVectorControl.
|
|
70
|
+
*/
|
|
71
|
+
getAdapters(): CustomLayerAdapter[];
|
|
72
|
+
show(): void;
|
|
73
|
+
hide(): void;
|
|
74
|
+
expand(): void;
|
|
75
|
+
collapse(): void;
|
|
76
|
+
toggle(): void;
|
|
77
|
+
getState(): ControlGridState;
|
|
78
|
+
update(options: Partial<ControlGridOptions>): void;
|
|
79
|
+
on(event: ControlGridEvent, handler: ControlGridEventHandler): void;
|
|
80
|
+
off(event: ControlGridEvent, handler: ControlGridEventHandler): void;
|
|
81
|
+
private _emit;
|
|
82
|
+
private _checkZoomVisibility;
|
|
83
|
+
private _updateDisplayState;
|
|
84
|
+
private _createContainer;
|
|
85
|
+
private _autoGrowRows;
|
|
86
|
+
private _applyGridStyle;
|
|
87
|
+
private _mountChildren;
|
|
88
|
+
/**
|
|
89
|
+
* Set title on the control's button if it doesn't already have one.
|
|
90
|
+
*/
|
|
91
|
+
private _applyTooltip;
|
|
92
|
+
private _unmountChildren;
|
|
93
|
+
private _isExpandable;
|
|
94
|
+
private _attachExpandListeners;
|
|
95
|
+
private _detachExpandListeners;
|
|
96
|
+
private _onChildExpand;
|
|
97
|
+
private _onChildCollapse;
|
|
98
|
+
private _mountAsFloating;
|
|
99
|
+
private _ensureFloatingPanel;
|
|
100
|
+
private _clearFloating;
|
|
101
|
+
private _collapseFloatingChild;
|
|
102
|
+
/**
|
|
103
|
+
* Hide the control's toggle button when it is inside the floating panel
|
|
104
|
+
* so only the expanded panel content is visible.
|
|
105
|
+
* Only applies to internal controls (no external panel).
|
|
106
|
+
*/
|
|
107
|
+
private _hideFloatingButton;
|
|
108
|
+
/**
|
|
109
|
+
* Restore the control's toggle button visibility when moving
|
|
110
|
+
* back from the floating panel to the grid.
|
|
111
|
+
*/
|
|
112
|
+
private _showFloatingButton;
|
|
113
|
+
/**
|
|
114
|
+
* Move an external panel (appended to the map container by the upstream control)
|
|
115
|
+
* into the floating panel, stripping its absolute positioning.
|
|
116
|
+
*/
|
|
117
|
+
private _relocateExternalPanel;
|
|
118
|
+
/**
|
|
119
|
+
* Move an external panel back to its original parent and clear
|
|
120
|
+
* the inline overrides set during relocation.
|
|
121
|
+
*/
|
|
122
|
+
private _restoreExternalPanel;
|
|
123
|
+
private _render;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=ControlGrid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ControlGrid.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/ControlGrid.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ControlGridReactProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* React wrapper component for ControlGrid.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```tsx
|
|
7
|
+
* import { ControlGridReact, TerrainControl, SearchControl } from 'maplibre-gl-components/react';
|
|
8
|
+
*
|
|
9
|
+
* function MyMap() {
|
|
10
|
+
* const [map, setMap] = useState<Map | null>(null);
|
|
11
|
+
* const terrainRef = useRef(new TerrainControl());
|
|
12
|
+
* const searchRef = useRef(new SearchControl());
|
|
13
|
+
*
|
|
14
|
+
* return (
|
|
15
|
+
* <>
|
|
16
|
+
* <div ref={mapContainer} />
|
|
17
|
+
* {map && (
|
|
18
|
+
* <ControlGridReact
|
|
19
|
+
* map={map}
|
|
20
|
+
* title="Tools"
|
|
21
|
+
* rows={2}
|
|
22
|
+
* columns={2}
|
|
23
|
+
* controls={[terrainRef.current, searchRef.current]}
|
|
24
|
+
* />
|
|
25
|
+
* )}
|
|
26
|
+
* </>
|
|
27
|
+
* );
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function ControlGridReact({ map, onStateChange, position, controls: controlsProp, ...options }: ControlGridReactProps): null;
|
|
32
|
+
//# sourceMappingURL=ControlGridReact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ControlGridReact.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/ControlGridReact.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAoB,MAAM,SAAS,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,GAAG,EACH,aAAa,EACb,QAAsB,EACtB,QAAQ,EAAE,YAAiB,EAC3B,GAAG,OAAO,EACX,EAAE,qBAAqB,GAAG,IAAI,CAoG9B"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { IControl, Map as MapLibreMap } from 'maplibre-gl';
|
|
2
|
+
import { HtmlControlOptions, HtmlControlState, ComponentEvent, ComponentEventHandler } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* A flexible HTML content control for MapLibre GL maps.
|
|
5
|
+
*
|
|
6
|
+
* Allows displaying arbitrary HTML content that can be dynamically updated.
|
|
7
|
+
* Supports collapsible mode with a toggle button.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const htmlControl = new HtmlControl({
|
|
12
|
+
* html: '<div><strong>Stats:</strong> 1,234 features</div>',
|
|
13
|
+
* position: 'top-left',
|
|
14
|
+
* collapsible: true,
|
|
15
|
+
* title: 'Statistics',
|
|
16
|
+
* });
|
|
17
|
+
* map.addControl(htmlControl, 'top-left');
|
|
18
|
+
*
|
|
19
|
+
* // Update content dynamically
|
|
20
|
+
* htmlControl.setHtml('<div><strong>Stats:</strong> 5,678 features</div>');
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare class HtmlControl implements IControl {
|
|
24
|
+
private _container?;
|
|
25
|
+
private _contentEl?;
|
|
26
|
+
private _options;
|
|
27
|
+
private _state;
|
|
28
|
+
private _eventHandlers;
|
|
29
|
+
private _map?;
|
|
30
|
+
private _handleZoom?;
|
|
31
|
+
private _zoomVisible;
|
|
32
|
+
/**
|
|
33
|
+
* Creates a new HtmlControl instance.
|
|
34
|
+
*
|
|
35
|
+
* @param options - Configuration options for the control.
|
|
36
|
+
*/
|
|
37
|
+
constructor(options?: HtmlControlOptions);
|
|
38
|
+
/**
|
|
39
|
+
* Called when the control is added to the map.
|
|
40
|
+
* Implements the IControl interface.
|
|
41
|
+
*
|
|
42
|
+
* @param map - The MapLibre GL map instance.
|
|
43
|
+
* @returns The control's container element.
|
|
44
|
+
*/
|
|
45
|
+
onAdd(map: MapLibreMap): HTMLElement;
|
|
46
|
+
/**
|
|
47
|
+
* Called when the control is removed from the map.
|
|
48
|
+
* Implements the IControl interface.
|
|
49
|
+
*/
|
|
50
|
+
onRemove(): void;
|
|
51
|
+
/**
|
|
52
|
+
* Shows the control.
|
|
53
|
+
*/
|
|
54
|
+
show(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Hides the control.
|
|
57
|
+
*/
|
|
58
|
+
hide(): void;
|
|
59
|
+
/**
|
|
60
|
+
* Expands the control (if collapsible).
|
|
61
|
+
*/
|
|
62
|
+
expand(): void;
|
|
63
|
+
/**
|
|
64
|
+
* Collapses the control (if collapsible).
|
|
65
|
+
*/
|
|
66
|
+
collapse(): void;
|
|
67
|
+
/**
|
|
68
|
+
* Toggles the collapsed state.
|
|
69
|
+
*/
|
|
70
|
+
toggle(): void;
|
|
71
|
+
/**
|
|
72
|
+
* Sets the HTML content.
|
|
73
|
+
*
|
|
74
|
+
* @param html - The HTML string to display.
|
|
75
|
+
*/
|
|
76
|
+
setHtml(html: string): void;
|
|
77
|
+
/**
|
|
78
|
+
* Sets a DOM element as content.
|
|
79
|
+
*
|
|
80
|
+
* @param element - The DOM element to display.
|
|
81
|
+
*/
|
|
82
|
+
setElement(element: HTMLElement): void;
|
|
83
|
+
/**
|
|
84
|
+
* Gets the content container element.
|
|
85
|
+
*
|
|
86
|
+
* @returns The content container element, or undefined if not yet added to map.
|
|
87
|
+
*/
|
|
88
|
+
getElement(): HTMLElement | undefined;
|
|
89
|
+
/**
|
|
90
|
+
* Updates control options and re-renders.
|
|
91
|
+
*
|
|
92
|
+
* @param options - Partial options to update.
|
|
93
|
+
*/
|
|
94
|
+
update(options: Partial<HtmlControlOptions>): void;
|
|
95
|
+
/**
|
|
96
|
+
* Gets the current state.
|
|
97
|
+
*
|
|
98
|
+
* @returns The current control state.
|
|
99
|
+
*/
|
|
100
|
+
getState(): HtmlControlState;
|
|
101
|
+
/**
|
|
102
|
+
* Registers an event handler.
|
|
103
|
+
*
|
|
104
|
+
* @param event - The event type to listen for.
|
|
105
|
+
* @param handler - The callback function.
|
|
106
|
+
*/
|
|
107
|
+
on(event: ComponentEvent, handler: ComponentEventHandler<HtmlControlState>): void;
|
|
108
|
+
/**
|
|
109
|
+
* Removes an event handler.
|
|
110
|
+
*
|
|
111
|
+
* @param event - The event type.
|
|
112
|
+
* @param handler - The callback function to remove.
|
|
113
|
+
*/
|
|
114
|
+
off(event: ComponentEvent, handler: ComponentEventHandler<HtmlControlState>): void;
|
|
115
|
+
/**
|
|
116
|
+
* Emits an event to all registered handlers.
|
|
117
|
+
*
|
|
118
|
+
* @param event - The event type to emit.
|
|
119
|
+
*/
|
|
120
|
+
private _emit;
|
|
121
|
+
/**
|
|
122
|
+
* Checks if the current zoom level is within the visibility range.
|
|
123
|
+
*/
|
|
124
|
+
private _checkZoomVisibility;
|
|
125
|
+
/**
|
|
126
|
+
* Updates the display state based on visibility and zoom level.
|
|
127
|
+
*/
|
|
128
|
+
private _updateDisplayState;
|
|
129
|
+
/**
|
|
130
|
+
* Creates the main container element.
|
|
131
|
+
*
|
|
132
|
+
* @returns The container element.
|
|
133
|
+
*/
|
|
134
|
+
private _createContainer;
|
|
135
|
+
/**
|
|
136
|
+
* Renders the control content.
|
|
137
|
+
*/
|
|
138
|
+
private _render;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=HtmlControl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HtmlControl.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/HtmlControl.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACtB,MAAM,SAAS,CAAC;AA4BjB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,WAAY,YAAW,QAAQ;IAC1C,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,QAAQ,CAEd;IACF,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,cAAc,CAGR;IACd,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,YAAY,CAAiB;IAErC;;;;OAIG;gBACS,OAAO,CAAC,EAAE,kBAAkB;IASxC;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW;IAepC;;;OAGG;IACH,QAAQ,IAAI,IAAI;IAYhB;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,MAAM,IAAI,IAAI;IAQd;;OAEG;IACH,QAAQ,IAAI,IAAI;IAQhB;;OAEG;IACH,MAAM,IAAI,IAAI;IAQd;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAU3B;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAWtC;;;;OAIG;IACH,UAAU,IAAI,WAAW,GAAG,SAAS;IAIrC;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAUlD;;;;OAIG;IACH,QAAQ,IAAI,gBAAgB;IAI5B;;;;;OAKG;IACH,EAAE,CACA,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,GAC/C,IAAI;IAOP;;;;;OAKG;IACH,GAAG,CACD,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,GAC/C,IAAI;IAIP;;;;OAIG;IACH,OAAO,CAAC,KAAK;IAQb;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,OAAO,CAAC,OAAO;CA8FhB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { HtmlControlReactProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* React wrapper component for HtmlControl.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```tsx
|
|
7
|
+
* import { HtmlControlReact } from 'maplibre-gl-components/react';
|
|
8
|
+
*
|
|
9
|
+
* function MyMap() {
|
|
10
|
+
* const [map, setMap] = useState<Map | null>(null);
|
|
11
|
+
* const [stats, setStats] = useState('Loading...');
|
|
12
|
+
*
|
|
13
|
+
* return (
|
|
14
|
+
* <>
|
|
15
|
+
* <div ref={mapContainer} />
|
|
16
|
+
* {map && (
|
|
17
|
+
* <HtmlControlReact
|
|
18
|
+
* map={map}
|
|
19
|
+
* html={`<div><strong>Stats:</strong> ${stats}</div>`}
|
|
20
|
+
* position="top-left"
|
|
21
|
+
* />
|
|
22
|
+
* )}
|
|
23
|
+
* </>
|
|
24
|
+
* );
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @param props - Component props including map instance and control options.
|
|
29
|
+
* @returns null - This component renders nothing directly.
|
|
30
|
+
*/
|
|
31
|
+
export declare function HtmlControlReact({ map, onStateChange, position, ...options }: HtmlControlReactProps): null;
|
|
32
|
+
//# sourceMappingURL=HtmlControlReact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HtmlControlReact.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/HtmlControlReact.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAoB,MAAM,SAAS,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,GAAG,EACH,aAAa,EACb,QAAqB,EACrB,GAAG,OAAO,EACX,EAAE,qBAAqB,GAAG,IAAI,CAsF9B"}
|