maplibre-gl-geoagent 0.1.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 +189 -0
- package/dist/GeoAgentControl-CmfTQTkJ.cjs +47680 -0
- package/dist/GeoAgentControl-CmfTQTkJ.cjs.map +1 -0
- package/dist/GeoAgentControl-c10MBYNG.js +47681 -0
- package/dist/GeoAgentControl-c10MBYNG.js.map +1 -0
- package/dist/anthropic-C7kTy6A0.js +6505 -0
- package/dist/anthropic-C7kTy6A0.js.map +1 -0
- package/dist/anthropic-Y4byflsD.cjs +6505 -0
- package/dist/anthropic-Y4byflsD.cjs.map +1 -0
- package/dist/index-CX7FTecz.js +18878 -0
- package/dist/index-CX7FTecz.js.map +1 -0
- package/dist/index-CzhifCGI.cjs +254 -0
- package/dist/index-CzhifCGI.cjs.map +1 -0
- package/dist/index-DC2fUaFo.cjs +9727 -0
- package/dist/index-DC2fUaFo.cjs.map +1 -0
- package/dist/index-DRJ1yR1n.js +9727 -0
- package/dist/index-DRJ1yR1n.js.map +1 -0
- package/dist/index-Dta4g9Ff.js +254 -0
- package/dist/index-Dta4g9Ff.js.map +1 -0
- package/dist/index-m-aZEiVB.cjs +18878 -0
- package/dist/index-m-aZEiVB.cjs.map +1 -0
- package/dist/index.cjs +12 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.mjs +12 -0
- package/dist/index.mjs.map +1 -0
- package/dist/maplibre-gl-geoagent.css +1664 -0
- package/dist/react.cjs +94 -0
- package/dist/react.cjs.map +1 -0
- package/dist/react.mjs +94 -0
- package/dist/react.mjs.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/lib/core/GeoAgentControl.d.ts +79 -0
- package/dist/types/lib/core/GeoAgentControl.d.ts.map +1 -0
- package/dist/types/lib/core/GeoAgentControlReact.d.ts +3 -0
- package/dist/types/lib/core/GeoAgentControlReact.d.ts.map +1 -0
- package/dist/types/lib/core/maplibre-tools.d.ts +66 -0
- package/dist/types/lib/core/maplibre-tools.d.ts.map +1 -0
- package/dist/types/lib/core/types.d.ts +101 -0
- package/dist/types/lib/core/types.d.ts.map +1 -0
- package/dist/types/lib/hooks/index.d.ts +2 -0
- package/dist/types/lib/hooks/index.d.ts.map +1 -0
- package/dist/types/lib/hooks/useGeoAgentState.d.ts +13 -0
- package/dist/types/lib/hooks/useGeoAgentState.d.ts.map +1 -0
- package/dist/types/lib/utils/helpers.d.ts +86 -0
- package/dist/types/lib/utils/helpers.d.ts.map +1 -0
- package/dist/types/lib/utils/index.d.ts +2 -0
- package/dist/types/lib/utils/index.d.ts.map +1 -0
- package/dist/types/react.d.ts +4 -0
- package/dist/types/react.d.ts.map +1 -0
- package/package.json +111 -0
package/dist/react.cjs
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const react = require("react");
|
|
4
|
+
const GeoAgentControl = require("./GeoAgentControl-CmfTQTkJ.cjs");
|
|
5
|
+
function GeoAgentControlReact({
|
|
6
|
+
map,
|
|
7
|
+
onStateChange,
|
|
8
|
+
...options
|
|
9
|
+
}) {
|
|
10
|
+
const controlRef = react.useRef(null);
|
|
11
|
+
react.useEffect(() => {
|
|
12
|
+
if (!map) return;
|
|
13
|
+
const control = new GeoAgentControl.GeoAgentControl(options);
|
|
14
|
+
controlRef.current = control;
|
|
15
|
+
if (onStateChange) {
|
|
16
|
+
control.on("statechange", (event) => {
|
|
17
|
+
onStateChange(event.state);
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
map.addControl(control, options.position || "top-right");
|
|
21
|
+
return () => {
|
|
22
|
+
if (map.hasControl(control)) {
|
|
23
|
+
map.removeControl(control);
|
|
24
|
+
}
|
|
25
|
+
controlRef.current = null;
|
|
26
|
+
};
|
|
27
|
+
}, [map]);
|
|
28
|
+
react.useEffect(() => {
|
|
29
|
+
if (!controlRef.current) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const currentState = controlRef.current.getState();
|
|
33
|
+
if (options.collapsed !== void 0 && options.collapsed !== currentState.collapsed) {
|
|
34
|
+
if (options.collapsed) {
|
|
35
|
+
controlRef.current.collapse();
|
|
36
|
+
} else {
|
|
37
|
+
controlRef.current.expand();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}, [options.collapsed]);
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
const DEFAULT_STATE = {
|
|
44
|
+
collapsed: true,
|
|
45
|
+
panelWidth: 390,
|
|
46
|
+
busy: false,
|
|
47
|
+
providerId: "openai-responses",
|
|
48
|
+
modelId: "gpt-5.5",
|
|
49
|
+
bedrockRegion: "us-west-2",
|
|
50
|
+
allowCodeExecution: true,
|
|
51
|
+
allowDestructiveTools: true,
|
|
52
|
+
data: {}
|
|
53
|
+
};
|
|
54
|
+
function useGeoAgentState(initialState) {
|
|
55
|
+
const [state, setState] = react.useState({
|
|
56
|
+
...DEFAULT_STATE,
|
|
57
|
+
...initialState
|
|
58
|
+
});
|
|
59
|
+
const setCollapsed = react.useCallback((collapsed) => {
|
|
60
|
+
setState((previous) => ({ ...previous, collapsed }));
|
|
61
|
+
}, []);
|
|
62
|
+
const setPanelWidth = react.useCallback((panelWidth) => {
|
|
63
|
+
setState((previous) => ({ ...previous, panelWidth }));
|
|
64
|
+
}, []);
|
|
65
|
+
const setProviderId = react.useCallback((providerId) => {
|
|
66
|
+
setState((previous) => ({ ...previous, providerId }));
|
|
67
|
+
}, []);
|
|
68
|
+
const setModelId = react.useCallback((modelId) => {
|
|
69
|
+
setState((previous) => ({ ...previous, modelId }));
|
|
70
|
+
}, []);
|
|
71
|
+
const setData = react.useCallback((data) => {
|
|
72
|
+
setState((previous) => ({ ...previous, data: { ...previous.data, ...data } }));
|
|
73
|
+
}, []);
|
|
74
|
+
const reset = react.useCallback(() => {
|
|
75
|
+
setState({ ...DEFAULT_STATE, ...initialState });
|
|
76
|
+
}, [initialState]);
|
|
77
|
+
const toggle = react.useCallback(() => {
|
|
78
|
+
setState((previous) => ({ ...previous, collapsed: !previous.collapsed }));
|
|
79
|
+
}, []);
|
|
80
|
+
return {
|
|
81
|
+
state,
|
|
82
|
+
setState,
|
|
83
|
+
setCollapsed,
|
|
84
|
+
setPanelWidth,
|
|
85
|
+
setProviderId,
|
|
86
|
+
setModelId,
|
|
87
|
+
setData,
|
|
88
|
+
reset,
|
|
89
|
+
toggle
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
exports.GeoAgentControlReact = GeoAgentControlReact;
|
|
93
|
+
exports.useGeoAgentState = useGeoAgentState;
|
|
94
|
+
//# sourceMappingURL=react.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.cjs","sources":["../src/lib/core/GeoAgentControlReact.tsx","../src/lib/hooks/useGeoAgentState.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { GeoAgentControl } from './GeoAgentControl';\nimport type { GeoAgentControlReactProps } from './types';\n\nexport function GeoAgentControlReact({\n map,\n onStateChange,\n ...options\n}: GeoAgentControlReactProps): null {\n const controlRef = useRef<GeoAgentControl | null>(null);\n\n useEffect(() => {\n if (!map) return;\n\n const control = new GeoAgentControl(options);\n controlRef.current = control;\n\n if (onStateChange) {\n control.on('statechange', (event) => {\n onStateChange(event.state);\n });\n }\n\n map.addControl(control, options.position || 'top-right');\n\n return () => {\n if (map.hasControl(control)) {\n map.removeControl(control);\n }\n controlRef.current = null;\n };\n }, [map]);\n\n useEffect(() => {\n if (!controlRef.current) {\n return;\n }\n const currentState = controlRef.current.getState();\n if (options.collapsed !== undefined && options.collapsed !== currentState.collapsed) {\n if (options.collapsed) {\n controlRef.current.collapse();\n } else {\n controlRef.current.expand();\n }\n }\n }, [options.collapsed]);\n\n return null;\n}\n","import { useCallback, useState } from 'react';\nimport type { GeoAgentProviderId, GeoAgentState } from '../core/types';\n\nconst DEFAULT_STATE: GeoAgentState = {\n collapsed: true,\n panelWidth: 390,\n busy: false,\n providerId: 'openai-responses',\n modelId: 'gpt-5.5',\n bedrockRegion: 'us-west-2',\n allowCodeExecution: true,\n allowDestructiveTools: true,\n data: {},\n};\n\nexport function useGeoAgentState(initialState?: Partial<GeoAgentState>) {\n const [state, setState] = useState<GeoAgentState>({\n ...DEFAULT_STATE,\n ...initialState,\n });\n\n const setCollapsed = useCallback((collapsed: boolean) => {\n setState((previous) => ({ ...previous, collapsed }));\n }, []);\n\n const setPanelWidth = useCallback((panelWidth: number) => {\n setState((previous) => ({ ...previous, panelWidth }));\n }, []);\n\n const setProviderId = useCallback((providerId: GeoAgentProviderId) => {\n setState((previous) => ({ ...previous, providerId }));\n }, []);\n\n const setModelId = useCallback((modelId: string) => {\n setState((previous) => ({ ...previous, modelId }));\n }, []);\n\n const setData = useCallback((data: Record<string, unknown>) => {\n setState((previous) => ({ ...previous, data: { ...previous.data, ...data } }));\n }, []);\n\n const reset = useCallback(() => {\n setState({ ...DEFAULT_STATE, ...initialState });\n }, [initialState]);\n\n const toggle = useCallback(() => {\n setState((previous) => ({ ...previous, collapsed: !previous.collapsed }));\n }, []);\n\n return {\n state,\n setState,\n setCollapsed,\n setPanelWidth,\n setProviderId,\n setModelId,\n setData,\n reset,\n toggle,\n };\n}\n"],"names":["useRef","useEffect","GeoAgentControl","useState","useCallback"],"mappings":";;;;AAIO,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAoC;AAClC,QAAM,aAAaA,MAAAA,OAA+B,IAAI;AAEtDC,QAAAA,UAAU,MAAM;AACd,QAAI,CAAC,IAAK;AAEV,UAAM,UAAU,IAAIC,gBAAAA,gBAAgB,OAAO;AAC3C,eAAW,UAAU;AAErB,QAAI,eAAe;AACjB,cAAQ,GAAG,eAAe,CAAC,UAAU;AACnC,sBAAc,MAAM,KAAK;AAAA,MAC3B,CAAC;AAAA,IACH;AAEA,QAAI,WAAW,SAAS,QAAQ,YAAY,WAAW;AAEvD,WAAO,MAAM;AACX,UAAI,IAAI,WAAW,OAAO,GAAG;AAC3B,YAAI,cAAc,OAAO;AAAA,MAC3B;AACA,iBAAW,UAAU;AAAA,IACvB;AAAA,EACF,GAAG,CAAC,GAAG,CAAC;AAERD,QAAAA,UAAU,MAAM;AACd,QAAI,CAAC,WAAW,SAAS;AACvB;AAAA,IACF;AACA,UAAM,eAAe,WAAW,QAAQ,SAAA;AACxC,QAAI,QAAQ,cAAc,UAAa,QAAQ,cAAc,aAAa,WAAW;AACnF,UAAI,QAAQ,WAAW;AACrB,mBAAW,QAAQ,SAAA;AAAA,MACrB,OAAO;AACL,mBAAW,QAAQ,OAAA;AAAA,MACrB;AAAA,IACF;AAAA,EACF,GAAG,CAAC,QAAQ,SAAS,CAAC;AAEtB,SAAO;AACT;AC7CA,MAAM,gBAA+B;AAAA,EACnC,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,EACvB,MAAM,CAAA;AACR;AAEO,SAAS,iBAAiB,cAAuC;AACtE,QAAM,CAAC,OAAO,QAAQ,IAAIE,eAAwB;AAAA,IAChD,GAAG;AAAA,IACH,GAAG;AAAA,EAAA,CACJ;AAED,QAAM,eAAeC,kBAAY,CAAC,cAAuB;AACvD,aAAS,CAAC,cAAc,EAAE,GAAG,UAAU,YAAY;AAAA,EACrD,GAAG,CAAA,CAAE;AAEL,QAAM,gBAAgBA,kBAAY,CAAC,eAAuB;AACxD,aAAS,CAAC,cAAc,EAAE,GAAG,UAAU,aAAa;AAAA,EACtD,GAAG,CAAA,CAAE;AAEL,QAAM,gBAAgBA,kBAAY,CAAC,eAAmC;AACpE,aAAS,CAAC,cAAc,EAAE,GAAG,UAAU,aAAa;AAAA,EACtD,GAAG,CAAA,CAAE;AAEL,QAAM,aAAaA,kBAAY,CAAC,YAAoB;AAClD,aAAS,CAAC,cAAc,EAAE,GAAG,UAAU,UAAU;AAAA,EACnD,GAAG,CAAA,CAAE;AAEL,QAAM,UAAUA,kBAAY,CAAC,SAAkC;AAC7D,aAAS,CAAC,cAAc,EAAE,GAAG,UAAU,MAAM,EAAE,GAAG,SAAS,MAAM,GAAG,KAAA,IAAS;AAAA,EAC/E,GAAG,CAAA,CAAE;AAEL,QAAM,QAAQA,MAAAA,YAAY,MAAM;AAC9B,aAAS,EAAE,GAAG,eAAe,GAAG,cAAc;AAAA,EAChD,GAAG,CAAC,YAAY,CAAC;AAEjB,QAAM,SAASA,MAAAA,YAAY,MAAM;AAC/B,aAAS,CAAC,cAAc,EAAE,GAAG,UAAU,WAAW,CAAC,SAAS,UAAA,EAAY;AAAA,EAC1E,GAAG,CAAA,CAAE;AAEL,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;;;"}
|
package/dist/react.mjs
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { useRef, useEffect, useState, useCallback } from "react";
|
|
2
|
+
import { G as GeoAgentControl } from "./GeoAgentControl-c10MBYNG.js";
|
|
3
|
+
function GeoAgentControlReact({
|
|
4
|
+
map,
|
|
5
|
+
onStateChange,
|
|
6
|
+
...options
|
|
7
|
+
}) {
|
|
8
|
+
const controlRef = useRef(null);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
if (!map) return;
|
|
11
|
+
const control = new GeoAgentControl(options);
|
|
12
|
+
controlRef.current = control;
|
|
13
|
+
if (onStateChange) {
|
|
14
|
+
control.on("statechange", (event) => {
|
|
15
|
+
onStateChange(event.state);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
map.addControl(control, options.position || "top-right");
|
|
19
|
+
return () => {
|
|
20
|
+
if (map.hasControl(control)) {
|
|
21
|
+
map.removeControl(control);
|
|
22
|
+
}
|
|
23
|
+
controlRef.current = null;
|
|
24
|
+
};
|
|
25
|
+
}, [map]);
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
if (!controlRef.current) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const currentState = controlRef.current.getState();
|
|
31
|
+
if (options.collapsed !== void 0 && options.collapsed !== currentState.collapsed) {
|
|
32
|
+
if (options.collapsed) {
|
|
33
|
+
controlRef.current.collapse();
|
|
34
|
+
} else {
|
|
35
|
+
controlRef.current.expand();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}, [options.collapsed]);
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
const DEFAULT_STATE = {
|
|
42
|
+
collapsed: true,
|
|
43
|
+
panelWidth: 390,
|
|
44
|
+
busy: false,
|
|
45
|
+
providerId: "openai-responses",
|
|
46
|
+
modelId: "gpt-5.5",
|
|
47
|
+
bedrockRegion: "us-west-2",
|
|
48
|
+
allowCodeExecution: true,
|
|
49
|
+
allowDestructiveTools: true,
|
|
50
|
+
data: {}
|
|
51
|
+
};
|
|
52
|
+
function useGeoAgentState(initialState) {
|
|
53
|
+
const [state, setState] = useState({
|
|
54
|
+
...DEFAULT_STATE,
|
|
55
|
+
...initialState
|
|
56
|
+
});
|
|
57
|
+
const setCollapsed = useCallback((collapsed) => {
|
|
58
|
+
setState((previous) => ({ ...previous, collapsed }));
|
|
59
|
+
}, []);
|
|
60
|
+
const setPanelWidth = useCallback((panelWidth) => {
|
|
61
|
+
setState((previous) => ({ ...previous, panelWidth }));
|
|
62
|
+
}, []);
|
|
63
|
+
const setProviderId = useCallback((providerId) => {
|
|
64
|
+
setState((previous) => ({ ...previous, providerId }));
|
|
65
|
+
}, []);
|
|
66
|
+
const setModelId = useCallback((modelId) => {
|
|
67
|
+
setState((previous) => ({ ...previous, modelId }));
|
|
68
|
+
}, []);
|
|
69
|
+
const setData = useCallback((data) => {
|
|
70
|
+
setState((previous) => ({ ...previous, data: { ...previous.data, ...data } }));
|
|
71
|
+
}, []);
|
|
72
|
+
const reset = useCallback(() => {
|
|
73
|
+
setState({ ...DEFAULT_STATE, ...initialState });
|
|
74
|
+
}, [initialState]);
|
|
75
|
+
const toggle = useCallback(() => {
|
|
76
|
+
setState((previous) => ({ ...previous, collapsed: !previous.collapsed }));
|
|
77
|
+
}, []);
|
|
78
|
+
return {
|
|
79
|
+
state,
|
|
80
|
+
setState,
|
|
81
|
+
setCollapsed,
|
|
82
|
+
setPanelWidth,
|
|
83
|
+
setProviderId,
|
|
84
|
+
setModelId,
|
|
85
|
+
setData,
|
|
86
|
+
reset,
|
|
87
|
+
toggle
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
export {
|
|
91
|
+
GeoAgentControlReact,
|
|
92
|
+
useGeoAgentState
|
|
93
|
+
};
|
|
94
|
+
//# sourceMappingURL=react.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.mjs","sources":["../src/lib/core/GeoAgentControlReact.tsx","../src/lib/hooks/useGeoAgentState.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { GeoAgentControl } from './GeoAgentControl';\nimport type { GeoAgentControlReactProps } from './types';\n\nexport function GeoAgentControlReact({\n map,\n onStateChange,\n ...options\n}: GeoAgentControlReactProps): null {\n const controlRef = useRef<GeoAgentControl | null>(null);\n\n useEffect(() => {\n if (!map) return;\n\n const control = new GeoAgentControl(options);\n controlRef.current = control;\n\n if (onStateChange) {\n control.on('statechange', (event) => {\n onStateChange(event.state);\n });\n }\n\n map.addControl(control, options.position || 'top-right');\n\n return () => {\n if (map.hasControl(control)) {\n map.removeControl(control);\n }\n controlRef.current = null;\n };\n }, [map]);\n\n useEffect(() => {\n if (!controlRef.current) {\n return;\n }\n const currentState = controlRef.current.getState();\n if (options.collapsed !== undefined && options.collapsed !== currentState.collapsed) {\n if (options.collapsed) {\n controlRef.current.collapse();\n } else {\n controlRef.current.expand();\n }\n }\n }, [options.collapsed]);\n\n return null;\n}\n","import { useCallback, useState } from 'react';\nimport type { GeoAgentProviderId, GeoAgentState } from '../core/types';\n\nconst DEFAULT_STATE: GeoAgentState = {\n collapsed: true,\n panelWidth: 390,\n busy: false,\n providerId: 'openai-responses',\n modelId: 'gpt-5.5',\n bedrockRegion: 'us-west-2',\n allowCodeExecution: true,\n allowDestructiveTools: true,\n data: {},\n};\n\nexport function useGeoAgentState(initialState?: Partial<GeoAgentState>) {\n const [state, setState] = useState<GeoAgentState>({\n ...DEFAULT_STATE,\n ...initialState,\n });\n\n const setCollapsed = useCallback((collapsed: boolean) => {\n setState((previous) => ({ ...previous, collapsed }));\n }, []);\n\n const setPanelWidth = useCallback((panelWidth: number) => {\n setState((previous) => ({ ...previous, panelWidth }));\n }, []);\n\n const setProviderId = useCallback((providerId: GeoAgentProviderId) => {\n setState((previous) => ({ ...previous, providerId }));\n }, []);\n\n const setModelId = useCallback((modelId: string) => {\n setState((previous) => ({ ...previous, modelId }));\n }, []);\n\n const setData = useCallback((data: Record<string, unknown>) => {\n setState((previous) => ({ ...previous, data: { ...previous.data, ...data } }));\n }, []);\n\n const reset = useCallback(() => {\n setState({ ...DEFAULT_STATE, ...initialState });\n }, [initialState]);\n\n const toggle = useCallback(() => {\n setState((previous) => ({ ...previous, collapsed: !previous.collapsed }));\n }, []);\n\n return {\n state,\n setState,\n setCollapsed,\n setPanelWidth,\n setProviderId,\n setModelId,\n setData,\n reset,\n toggle,\n };\n}\n"],"names":[],"mappings":";;AAIO,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAoC;AAClC,QAAM,aAAa,OAA+B,IAAI;AAEtD,YAAU,MAAM;AACd,QAAI,CAAC,IAAK;AAEV,UAAM,UAAU,IAAI,gBAAgB,OAAO;AAC3C,eAAW,UAAU;AAErB,QAAI,eAAe;AACjB,cAAQ,GAAG,eAAe,CAAC,UAAU;AACnC,sBAAc,MAAM,KAAK;AAAA,MAC3B,CAAC;AAAA,IACH;AAEA,QAAI,WAAW,SAAS,QAAQ,YAAY,WAAW;AAEvD,WAAO,MAAM;AACX,UAAI,IAAI,WAAW,OAAO,GAAG;AAC3B,YAAI,cAAc,OAAO;AAAA,MAC3B;AACA,iBAAW,UAAU;AAAA,IACvB;AAAA,EACF,GAAG,CAAC,GAAG,CAAC;AAER,YAAU,MAAM;AACd,QAAI,CAAC,WAAW,SAAS;AACvB;AAAA,IACF;AACA,UAAM,eAAe,WAAW,QAAQ,SAAA;AACxC,QAAI,QAAQ,cAAc,UAAa,QAAQ,cAAc,aAAa,WAAW;AACnF,UAAI,QAAQ,WAAW;AACrB,mBAAW,QAAQ,SAAA;AAAA,MACrB,OAAO;AACL,mBAAW,QAAQ,OAAA;AAAA,MACrB;AAAA,IACF;AAAA,EACF,GAAG,CAAC,QAAQ,SAAS,CAAC;AAEtB,SAAO;AACT;AC7CA,MAAM,gBAA+B;AAAA,EACnC,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,EACvB,MAAM,CAAA;AACR;AAEO,SAAS,iBAAiB,cAAuC;AACtE,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB;AAAA,IAChD,GAAG;AAAA,IACH,GAAG;AAAA,EAAA,CACJ;AAED,QAAM,eAAe,YAAY,CAAC,cAAuB;AACvD,aAAS,CAAC,cAAc,EAAE,GAAG,UAAU,YAAY;AAAA,EACrD,GAAG,CAAA,CAAE;AAEL,QAAM,gBAAgB,YAAY,CAAC,eAAuB;AACxD,aAAS,CAAC,cAAc,EAAE,GAAG,UAAU,aAAa;AAAA,EACtD,GAAG,CAAA,CAAE;AAEL,QAAM,gBAAgB,YAAY,CAAC,eAAmC;AACpE,aAAS,CAAC,cAAc,EAAE,GAAG,UAAU,aAAa;AAAA,EACtD,GAAG,CAAA,CAAE;AAEL,QAAM,aAAa,YAAY,CAAC,YAAoB;AAClD,aAAS,CAAC,cAAc,EAAE,GAAG,UAAU,UAAU;AAAA,EACnD,GAAG,CAAA,CAAE;AAEL,QAAM,UAAU,YAAY,CAAC,SAAkC;AAC7D,aAAS,CAAC,cAAc,EAAE,GAAG,UAAU,MAAM,EAAE,GAAG,SAAS,MAAM,GAAG,KAAA,IAAS;AAAA,EAC/E,GAAG,CAAA,CAAE;AAEL,QAAM,QAAQ,YAAY,MAAM;AAC9B,aAAS,EAAE,GAAG,eAAe,GAAG,cAAc;AAAA,EAChD,GAAG,CAAC,YAAY,CAAC;AAEjB,QAAM,SAAS,YAAY,MAAM;AAC/B,aAAS,CAAC,cAAc,EAAE,GAAG,UAAU,WAAW,CAAC,SAAS,UAAA,EAAY;AAAA,EAC1E,GAAG,CAAA,CAAE;AAEL,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { GeoAgentControl } from './lib/core/GeoAgentControl';
|
|
2
|
+
export { DEFAULT_BASEMAPS, geoJsonBounds, geoJsonGeometryTypes, geojsonLayerDefs, geojsonLayerPaint, slug, toJsonValue, type BBox, type JsonObject, } from './lib/core/maplibre-tools';
|
|
3
|
+
export type { GeoAgentControlEvent, GeoAgentControlEventHandler, GeoAgentControlOptions, GeoAgentControlReactProps, GeoAgentProviderConfig, GeoAgentProviderId, GeoAgentState, } from './lib/core/types';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,mCAAmC,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,IAAI,EACJ,WAAW,EACX,KAAK,IAAI,EACT,KAAK,UAAU,GAChB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,GACd,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { IControl, Map as MapLibreMap } from 'maplibre-gl';
|
|
2
|
+
import { GeoAgentControlEvent, GeoAgentControlEventHandler, GeoAgentControlOptions, GeoAgentState } from './types';
|
|
3
|
+
export declare class GeoAgentControl implements IControl {
|
|
4
|
+
private readonly options;
|
|
5
|
+
private map?;
|
|
6
|
+
private mapContainer?;
|
|
7
|
+
private container?;
|
|
8
|
+
private panel?;
|
|
9
|
+
private ui?;
|
|
10
|
+
private tools?;
|
|
11
|
+
private agent;
|
|
12
|
+
private agentSignature;
|
|
13
|
+
private streamingAssistantTextEl;
|
|
14
|
+
private streamingAssistantText;
|
|
15
|
+
private promptHistory;
|
|
16
|
+
private promptHistoryIndex;
|
|
17
|
+
private promptHistoryDraft;
|
|
18
|
+
private state;
|
|
19
|
+
private eventHandlers;
|
|
20
|
+
private resizeHandler;
|
|
21
|
+
private mapResizeHandler;
|
|
22
|
+
private clickOutsideHandler;
|
|
23
|
+
private panelResizeMoveHandler;
|
|
24
|
+
private panelResizeUpHandler;
|
|
25
|
+
constructor(options?: GeoAgentControlOptions);
|
|
26
|
+
onAdd(map: MapLibreMap): HTMLElement;
|
|
27
|
+
onRemove(): void;
|
|
28
|
+
getState(): GeoAgentState;
|
|
29
|
+
setState(newState: Partial<GeoAgentState>): void;
|
|
30
|
+
toggle(): void;
|
|
31
|
+
expand(): void;
|
|
32
|
+
collapse(): void;
|
|
33
|
+
on(event: GeoAgentControlEvent, handler: GeoAgentControlEventHandler): void;
|
|
34
|
+
off(event: GeoAgentControlEvent, handler: GeoAgentControlEventHandler): void;
|
|
35
|
+
getMap(): MapLibreMap | undefined;
|
|
36
|
+
getContainer(): HTMLElement | undefined;
|
|
37
|
+
getPanel(): HTMLElement | undefined;
|
|
38
|
+
private emit;
|
|
39
|
+
private providerConfigs;
|
|
40
|
+
private providerConfig;
|
|
41
|
+
private initialProviderId;
|
|
42
|
+
private initialModelId;
|
|
43
|
+
private modelStorageKey;
|
|
44
|
+
private bedrockRegionStorageKey;
|
|
45
|
+
private initialBedrockRegion;
|
|
46
|
+
private createContainer;
|
|
47
|
+
private createPanel;
|
|
48
|
+
private requiredElement;
|
|
49
|
+
private populateProviderOptions;
|
|
50
|
+
private wireUiEvents;
|
|
51
|
+
private setupEventListeners;
|
|
52
|
+
private rememberPrompt;
|
|
53
|
+
private applyPromptHistoryValue;
|
|
54
|
+
private handlePromptHistoryKey;
|
|
55
|
+
private constrainPanelWidth;
|
|
56
|
+
private startPanelResize;
|
|
57
|
+
private stopPanelResize;
|
|
58
|
+
private syncUiFromState;
|
|
59
|
+
private currentProviderId;
|
|
60
|
+
private currentProviderConfig;
|
|
61
|
+
private loadProviderSettings;
|
|
62
|
+
private setStatus;
|
|
63
|
+
private appendLog;
|
|
64
|
+
private renderAssistantMarkdown;
|
|
65
|
+
private appendAssistantLog;
|
|
66
|
+
private conversationMarkdown;
|
|
67
|
+
private copyConversationAsMarkdown;
|
|
68
|
+
private updateControls;
|
|
69
|
+
private invalidateAgent;
|
|
70
|
+
private createProviderModel;
|
|
71
|
+
private getAgent;
|
|
72
|
+
private appendAssistantDelta;
|
|
73
|
+
private getStreamingAssistantElement;
|
|
74
|
+
private handleAgentStreamEvent;
|
|
75
|
+
private sendPrompt;
|
|
76
|
+
private getControlPosition;
|
|
77
|
+
private updatePanelPosition;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=GeoAgentControl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeoAgentControl.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/GeoAgentControl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeoAgentControlReact.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/GeoAgentControlReact.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEzD,wBAAgB,oBAAoB,CAAC,EACnC,GAAG,EACH,aAAa,EACb,GAAG,OAAO,EACX,EAAE,yBAAyB,GAAG,IAAI,CAwClC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { JSONValue, Tool } from '@strands-agents/sdk';
|
|
2
|
+
import { Map as MapLibreMap, StyleSpecification } from 'maplibre-gl';
|
|
3
|
+
export type JsonObject = Record<string, unknown>;
|
|
4
|
+
export type BBox = [number, number, number, number];
|
|
5
|
+
interface GeoJsonLayerDefinition {
|
|
6
|
+
id: string;
|
|
7
|
+
suffix: string;
|
|
8
|
+
type: 'fill' | 'line' | 'circle';
|
|
9
|
+
filter: unknown[];
|
|
10
|
+
paint: JsonObject;
|
|
11
|
+
}
|
|
12
|
+
export declare const DEFAULT_BASEMAPS: Record<string, string | StyleSpecification>;
|
|
13
|
+
export declare function numberArg(args: JsonObject, key: string): number;
|
|
14
|
+
export declare function stringArg(args: JsonObject, key: string, fallback?: string): string;
|
|
15
|
+
export declare function objectArg(args: JsonObject, key: string): JsonObject;
|
|
16
|
+
export declare function slug(value: unknown): string;
|
|
17
|
+
export declare function extendBounds(bounds: BBox | null, coordinate: unknown): BBox | null;
|
|
18
|
+
export declare function extendGeometryBounds(bounds: BBox | null, geometry: GeoJSON.Geometry | null | undefined): BBox | null;
|
|
19
|
+
export declare function geoJsonBounds(geojson: GeoJSON.GeoJSON | undefined): BBox | null;
|
|
20
|
+
export declare function geoJsonGeometryTypes(geojson: GeoJSON.GeoJSON | undefined): Set<GeoJSON.GeoJsonGeometryTypes>;
|
|
21
|
+
export declare function geojsonLayerPaint(style: JsonObject): {
|
|
22
|
+
fill: JsonObject;
|
|
23
|
+
line: JsonObject;
|
|
24
|
+
circle: JsonObject;
|
|
25
|
+
};
|
|
26
|
+
export declare function geojsonLayerDefs(baseId: string, paint: ReturnType<typeof geojsonLayerPaint>, geojson: GeoJSON.GeoJSON | undefined): GeoJsonLayerDefinition[];
|
|
27
|
+
export declare function toJsonValue(value: unknown): JSONValue;
|
|
28
|
+
export interface MapLibreAgentToolsOptions {
|
|
29
|
+
basemaps?: Record<string, string | StyleSpecification>;
|
|
30
|
+
allowCodeExecution: () => boolean;
|
|
31
|
+
allowDestructiveTools: () => boolean;
|
|
32
|
+
}
|
|
33
|
+
export declare class MapLibreAgentTools {
|
|
34
|
+
private readonly map;
|
|
35
|
+
private readonly basemaps;
|
|
36
|
+
private readonly allowCodeExecution;
|
|
37
|
+
private readonly allowDestructiveTools;
|
|
38
|
+
private readonly overlays;
|
|
39
|
+
private layerControl;
|
|
40
|
+
private pendingLayerControlInstallHandler;
|
|
41
|
+
constructor(map: MapLibreMap, options: MapLibreAgentToolsOptions);
|
|
42
|
+
destroy(): void;
|
|
43
|
+
installDefaultLayerControl(): void;
|
|
44
|
+
createTools(): Tool[];
|
|
45
|
+
runCommand(command: string, args?: unknown): Promise<JSONValue>;
|
|
46
|
+
private executeCommand;
|
|
47
|
+
private waitForMapIdle;
|
|
48
|
+
private uniqueSourceId;
|
|
49
|
+
private uniqueLayerBaseId;
|
|
50
|
+
private isOverlayLayerId;
|
|
51
|
+
private removeOverlay;
|
|
52
|
+
private clearOverlays;
|
|
53
|
+
private serializableFeature;
|
|
54
|
+
private fetchGeoJson;
|
|
55
|
+
private zoomToGeoJsonBounds;
|
|
56
|
+
private addGeoJsonOverlay;
|
|
57
|
+
private addRasterOverlay;
|
|
58
|
+
private addMarkerOverlay;
|
|
59
|
+
private runMapLibreScript;
|
|
60
|
+
private restoreOverlaysAfterStyleChange;
|
|
61
|
+
private installLayerControl;
|
|
62
|
+
private removeLayerControl;
|
|
63
|
+
private requireDestructiveApproval;
|
|
64
|
+
}
|
|
65
|
+
export {};
|
|
66
|
+
//# sourceMappingURL=maplibre-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maplibre-tools.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/maplibre-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { Map, StyleSpecification } from 'maplibre-gl';
|
|
2
|
+
export type GeoAgentProviderId = 'openai-responses' | 'openai-chat' | 'anthropic' | 'google' | 'bedrock';
|
|
3
|
+
export interface GeoAgentProviderConfig {
|
|
4
|
+
id: GeoAgentProviderId;
|
|
5
|
+
label: string;
|
|
6
|
+
keyLabel: string;
|
|
7
|
+
keyPlaceholder: string;
|
|
8
|
+
storageKey: string;
|
|
9
|
+
defaultModel: string;
|
|
10
|
+
defaultRegion?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface GeoAgentControlOptions {
|
|
13
|
+
/**
|
|
14
|
+
* Whether the panel should start collapsed.
|
|
15
|
+
* @default true
|
|
16
|
+
*/
|
|
17
|
+
collapsed?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Position of the control button on the map.
|
|
20
|
+
* @default 'top-right'
|
|
21
|
+
*/
|
|
22
|
+
position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
|
23
|
+
/**
|
|
24
|
+
* Title displayed in the control header.
|
|
25
|
+
* @default 'GeoAgent'
|
|
26
|
+
*/
|
|
27
|
+
title?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Width of the floating panel in pixels.
|
|
30
|
+
* @default 390
|
|
31
|
+
*/
|
|
32
|
+
panelWidth?: number;
|
|
33
|
+
/**
|
|
34
|
+
* Minimum resizable panel width in pixels.
|
|
35
|
+
* @default 320
|
|
36
|
+
*/
|
|
37
|
+
panelMinWidth?: number;
|
|
38
|
+
/**
|
|
39
|
+
* Maximum resizable panel width in pixels.
|
|
40
|
+
* @default 720
|
|
41
|
+
*/
|
|
42
|
+
panelMaxWidth?: number;
|
|
43
|
+
/**
|
|
44
|
+
* Custom CSS class name for the control button container.
|
|
45
|
+
*/
|
|
46
|
+
className?: string;
|
|
47
|
+
/**
|
|
48
|
+
* Initial provider when there is no stored provider preference.
|
|
49
|
+
* @default 'openai-responses'
|
|
50
|
+
*/
|
|
51
|
+
defaultProvider?: GeoAgentProviderId;
|
|
52
|
+
/**
|
|
53
|
+
* Override the default model for all providers or selected providers.
|
|
54
|
+
*/
|
|
55
|
+
defaultModel?: string | Partial<Record<GeoAgentProviderId, string>>;
|
|
56
|
+
/**
|
|
57
|
+
* Prefix for sessionStorage keys.
|
|
58
|
+
* @default 'geoagent.maplibre'
|
|
59
|
+
*/
|
|
60
|
+
storagePrefix?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Whether the optional MapLibre JavaScript execution tool starts enabled.
|
|
63
|
+
* @default true
|
|
64
|
+
*/
|
|
65
|
+
allowCodeExecutionDefault?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Whether destructive layer removal tools start enabled.
|
|
68
|
+
* @default true
|
|
69
|
+
*/
|
|
70
|
+
allowDestructiveToolsDefault?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Whether to show the permission toggles in the panel.
|
|
73
|
+
* @default false
|
|
74
|
+
*/
|
|
75
|
+
showPermissionToggles?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Known basemap style IDs available to the agent.
|
|
78
|
+
*/
|
|
79
|
+
basemaps?: Record<string, string | StyleSpecification>;
|
|
80
|
+
}
|
|
81
|
+
export interface GeoAgentState {
|
|
82
|
+
collapsed: boolean;
|
|
83
|
+
panelWidth: number;
|
|
84
|
+
busy: boolean;
|
|
85
|
+
providerId: GeoAgentProviderId;
|
|
86
|
+
modelId: string;
|
|
87
|
+
bedrockRegion: string;
|
|
88
|
+
allowCodeExecution: boolean;
|
|
89
|
+
allowDestructiveTools: boolean;
|
|
90
|
+
data?: Record<string, unknown>;
|
|
91
|
+
}
|
|
92
|
+
export interface GeoAgentControlReactProps extends GeoAgentControlOptions {
|
|
93
|
+
map: Map;
|
|
94
|
+
onStateChange?: (state: GeoAgentState) => void;
|
|
95
|
+
}
|
|
96
|
+
export type GeoAgentControlEvent = 'collapse' | 'expand' | 'statechange';
|
|
97
|
+
export type GeoAgentControlEventHandler = (event: {
|
|
98
|
+
type: GeoAgentControlEvent;
|
|
99
|
+
state: GeoAgentState;
|
|
100
|
+
}) => void;
|
|
101
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,MAAM,kBAAkB,GAC1B,kBAAkB,GAClB,aAAa,GACb,WAAW,GACX,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,kBAAkB,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;IAErE;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,eAAe,CAAC,EAAE,kBAAkB,CAAC;IAErC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;IAEpE;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;;OAGG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IAEvC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,kBAAkB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,yBAA0B,SAAQ,sBAAsB;IACvE,GAAG,EAAE,GAAG,CAAC;IACT,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAChD;AAED,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,QAAQ,GAAG,aAAa,CAAC;AAEzE,MAAM,MAAM,2BAA2B,GAAG,CAAC,KAAK,EAAE;IAChD,IAAI,EAAE,oBAAoB,CAAC;IAC3B,KAAK,EAAE,aAAa,CAAC;CACtB,KAAK,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { GeoAgentProviderId, GeoAgentState } from '../core/types';
|
|
2
|
+
export declare function useGeoAgentState(initialState?: Partial<GeoAgentState>): {
|
|
3
|
+
state: GeoAgentState;
|
|
4
|
+
setState: import('react').Dispatch<import('react').SetStateAction<GeoAgentState>>;
|
|
5
|
+
setCollapsed: (collapsed: boolean) => void;
|
|
6
|
+
setPanelWidth: (panelWidth: number) => void;
|
|
7
|
+
setProviderId: (providerId: GeoAgentProviderId) => void;
|
|
8
|
+
setModelId: (modelId: string) => void;
|
|
9
|
+
setData: (data: Record<string, unknown>) => void;
|
|
10
|
+
reset: () => void;
|
|
11
|
+
toggle: () => void;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=useGeoAgentState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGeoAgentState.d.ts","sourceRoot":"","sources":["../../../../src/lib/hooks/useGeoAgentState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAcvE,wBAAgB,gBAAgB,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;;;8BAMvB,OAAO;gCAIL,MAAM;gCAIN,kBAAkB;0BAIxB,MAAM;oBAIZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;EAuB3D"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clamps a value between a minimum and maximum.
|
|
3
|
+
*
|
|
4
|
+
* @param value - The value to clamp
|
|
5
|
+
* @param min - The minimum allowed value
|
|
6
|
+
* @param max - The maximum allowed value
|
|
7
|
+
* @returns The clamped value
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* clamp(5, 0, 10); // returns 5
|
|
12
|
+
* clamp(-5, 0, 10); // returns 0
|
|
13
|
+
* clamp(15, 0, 10); // returns 10
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare function clamp(value: number, min: number, max: number): number;
|
|
17
|
+
/**
|
|
18
|
+
* Formats a numeric value with appropriate decimal places based on step size.
|
|
19
|
+
*
|
|
20
|
+
* @param value - The value to format
|
|
21
|
+
* @param step - The step size to determine decimal places
|
|
22
|
+
* @returns The formatted value as a string
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* formatNumericValue(5, 1); // returns "5"
|
|
27
|
+
* formatNumericValue(0.5, 0.1); // returns "0.5"
|
|
28
|
+
* formatNumericValue(0.55, 0.01); // returns "0.55"
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function formatNumericValue(value: number, step: number): string;
|
|
32
|
+
/**
|
|
33
|
+
* Generates a unique ID string.
|
|
34
|
+
*
|
|
35
|
+
* @param prefix - Optional prefix for the ID
|
|
36
|
+
* @returns A unique ID string
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* generateId('control'); // returns "control-abc123"
|
|
41
|
+
* generateId(); // returns "abc123"
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export declare function generateId(prefix?: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Debounces a function call.
|
|
47
|
+
*
|
|
48
|
+
* @param fn - The function to debounce
|
|
49
|
+
* @param delay - The delay in milliseconds
|
|
50
|
+
* @returns A debounced version of the function
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* const debouncedUpdate = debounce(() => updateMap(), 100);
|
|
55
|
+
* window.addEventListener('resize', debouncedUpdate);
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare function debounce<T extends (...args: unknown[]) => void>(fn: T, delay: number): (...args: Parameters<T>) => void;
|
|
59
|
+
/**
|
|
60
|
+
* Throttles a function call.
|
|
61
|
+
*
|
|
62
|
+
* @param fn - The function to throttle
|
|
63
|
+
* @param limit - The minimum time between calls in milliseconds
|
|
64
|
+
* @returns A throttled version of the function
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```typescript
|
|
68
|
+
* const throttledScroll = throttle(() => handleScroll(), 100);
|
|
69
|
+
* window.addEventListener('scroll', throttledScroll);
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
export declare function throttle<T extends (...args: unknown[]) => void>(fn: T, limit: number): (...args: Parameters<T>) => void;
|
|
73
|
+
/**
|
|
74
|
+
* Creates a CSS class string from an object of class names.
|
|
75
|
+
*
|
|
76
|
+
* @param classes - Object with class names as keys and boolean values
|
|
77
|
+
* @returns A space-separated string of class names
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* classNames({ active: true, disabled: false, visible: true });
|
|
82
|
+
* // returns "active visible"
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export declare function classNames(classes: Record<string, boolean>): string;
|
|
86
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAItE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,EAC7D,EAAE,EAAE,CAAC,EACL,KAAK,EAAE,MAAM,GACZ,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAYlC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,EAC7D,EAAE,EAAE,CAAC,EACL,KAAK,EAAE,MAAM,GACZ,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAYlC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAKnE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,kBAAkB,EAClB,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,UAAU,GACX,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { GeoAgentControlReact } from './lib/core/GeoAgentControlReact';
|
|
2
|
+
export { useGeoAgentState } from './lib/hooks';
|
|
3
|
+
export type { GeoAgentControlEvent, GeoAgentControlEventHandler, GeoAgentControlOptions, GeoAgentControlReactProps, GeoAgentProviderConfig, GeoAgentProviderId, GeoAgentState, } from './lib/core/types';
|
|
4
|
+
//# sourceMappingURL=react.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,YAAY,EACV,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,GACd,MAAM,kBAAkB,CAAC"}
|