@geolibre/core 2.7.0 → 2.9.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/dist/index.d.mts +659 -6
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1056 -23
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -1030,6 +1030,80 @@ interface AttributeFormFieldConfig {
|
|
|
1030
1030
|
interface AttributeFormConfig {
|
|
1031
1031
|
fields: AttributeFormFieldConfig[];
|
|
1032
1032
|
}
|
|
1033
|
+
/**
|
|
1034
|
+
* How a popup renders one field's value (issue #2113). `"auto"` reproduces the
|
|
1035
|
+
* untyped rendering the Identify popup has always done — sanitized KML
|
|
1036
|
+
* `description` markup, an inline `data:image/*;base64` value as a thumbnail,
|
|
1037
|
+
* anything else stringified. The remaining kinds are explicit author choices
|
|
1038
|
+
* so a popup never has to guess from the value.
|
|
1039
|
+
*/
|
|
1040
|
+
type PopupFieldKind = "auto" | "text" | "number" | "date" | "link" | "image";
|
|
1041
|
+
/** How a `"date"` field's value is written out. */
|
|
1042
|
+
type PopupDateFormat = "date" | "datetime" | "time" | "iso" | "year";
|
|
1043
|
+
/** Value formatting for one popup field. Every part is optional. */
|
|
1044
|
+
interface PopupFieldFormat {
|
|
1045
|
+
/** Fixed number of decimals for a `"number"` field. */
|
|
1046
|
+
decimals?: number;
|
|
1047
|
+
/** Group thousands with the locale's separator (`"number"` fields). */
|
|
1048
|
+
thousands?: boolean;
|
|
1049
|
+
/** Date rendering for a `"date"` field; defaults to `"date"`. */
|
|
1050
|
+
dateFormat?: PopupDateFormat;
|
|
1051
|
+
/** Text placed before the formatted value. */
|
|
1052
|
+
prefix?: string;
|
|
1053
|
+
/** Text placed after the formatted value, e.g. a unit suffix. */
|
|
1054
|
+
suffix?: string;
|
|
1055
|
+
/** Link text for a `"link"` field; the value itself is used when unset. */
|
|
1056
|
+
linkLabel?: string;
|
|
1057
|
+
}
|
|
1058
|
+
/** One field's entry in a layer's popup configuration. */
|
|
1059
|
+
interface PopupFieldConfig {
|
|
1060
|
+
/** Feature property key. */
|
|
1061
|
+
field: string;
|
|
1062
|
+
/** Display label shown instead of the raw field name. */
|
|
1063
|
+
label?: string;
|
|
1064
|
+
/** How the value renders; defaults to `"auto"`. */
|
|
1065
|
+
kind?: PopupFieldKind;
|
|
1066
|
+
format?: PopupFieldFormat;
|
|
1067
|
+
/** Include this field in the hover tooltip's short subset. */
|
|
1068
|
+
hover?: boolean;
|
|
1069
|
+
}
|
|
1070
|
+
/**
|
|
1071
|
+
* Per-layer configuration for what a viewer sees when they interact with a
|
|
1072
|
+
* feature (issue #2113): which fields the Identify popup shows, in what order,
|
|
1073
|
+
* under what labels and formatting, plus an optional hover tooltip.
|
|
1074
|
+
*
|
|
1075
|
+
* A layer with no `popup` block behaves exactly as it did before this existed:
|
|
1076
|
+
* the layer name as the heading, then every property as a key/value row.
|
|
1077
|
+
* {@link GeoLibreLayer.fieldVisibility} stays authoritative — a `"hidden"` or
|
|
1078
|
+
* `"excluded"` field is dropped even when a popup config names it.
|
|
1079
|
+
*/
|
|
1080
|
+
interface LayerPopupConfig {
|
|
1081
|
+
/** `false` suppresses the Identify popup for this layer. Defaults to `true`. */
|
|
1082
|
+
click?: boolean;
|
|
1083
|
+
/** `true` shows a hover tooltip built from the `hover` fields. Defaults to `false`. */
|
|
1084
|
+
hover?: boolean;
|
|
1085
|
+
/** Field whose value titles the popup instead of the layer name. */
|
|
1086
|
+
titleField?: string;
|
|
1087
|
+
/**
|
|
1088
|
+
* MapLibre expression source producing the popup title. Wins over
|
|
1089
|
+
* {@link titleField}; when it fails or produces nothing the title falls
|
|
1090
|
+
* through to `titleField`, and only then to the layer name.
|
|
1091
|
+
*/
|
|
1092
|
+
titleExpression?: string;
|
|
1093
|
+
/**
|
|
1094
|
+
* MapLibre expression source producing the whole popup body as text, for
|
|
1095
|
+
* authors who want a sentence rather than a table. When it evaluates, it
|
|
1096
|
+
* replaces the field rows.
|
|
1097
|
+
*/
|
|
1098
|
+
bodyExpression?: string;
|
|
1099
|
+
/** `false` drops the synthetic `id` row. Defaults to `true`. */
|
|
1100
|
+
showFeatureId?: boolean;
|
|
1101
|
+
/**
|
|
1102
|
+
* The fields to show and their order. An empty or absent list keeps today's
|
|
1103
|
+
* behavior: every visible property, in the feature's own key order.
|
|
1104
|
+
*/
|
|
1105
|
+
fields?: PopupFieldConfig[];
|
|
1106
|
+
}
|
|
1033
1107
|
/**
|
|
1034
1108
|
* A virtual field attached to a vector layer (QGIS Field Calculator → "Create
|
|
1035
1109
|
* virtual field", issue #1321): a column defined by a MapLibre expression that
|
|
@@ -1072,6 +1146,60 @@ interface LayerVirtualField {
|
|
|
1072
1146
|
*/
|
|
1073
1147
|
errorCount?: number;
|
|
1074
1148
|
}
|
|
1149
|
+
/**
|
|
1150
|
+
* Quick filters (issue #2114): the data-driven filter controls a layer offers
|
|
1151
|
+
* in its Quick Filters section. What persists is the *control state* — field,
|
|
1152
|
+
* kind, chosen values — not the compiled output; `quick-filters.ts` compiles it
|
|
1153
|
+
* to a MapLibre filter at sync time so a saved filter can always be reopened
|
|
1154
|
+
* and edited.
|
|
1155
|
+
*/
|
|
1156
|
+
/** Which control a quick filter renders, and how it compiles. */
|
|
1157
|
+
type QuickFilterKind = "categorical" | "range" | "date" | "text";
|
|
1158
|
+
/** The comparison a `text` quick filter applies (always case-insensitive). */
|
|
1159
|
+
type QuickFilterTextOperator = "contains" | "startsWith" | "equals";
|
|
1160
|
+
/**
|
|
1161
|
+
* How a date field stores its values, deciding whether a `date` quick filter
|
|
1162
|
+
* compares ISO text or epoch numbers. `iso` covers both `YYYY-MM-DD` and full
|
|
1163
|
+
* `YYYY-MM-DDTHH:MM:SSZ` timestamps: only the leading `YYYY-MM-DD` slice is
|
|
1164
|
+
* compared, so a trailing time, a milliseconds fraction, or a `Z` cannot break
|
|
1165
|
+
* a boundary. Mirrors (deliberately, in a smaller form) the value kinds the
|
|
1166
|
+
* Time Slider's `detectValueKind` reports.
|
|
1167
|
+
*/
|
|
1168
|
+
type QuickFilterDateKind = "iso" | "epochMs" | "epochS";
|
|
1169
|
+
/** A single filter control persisted on a layer. */
|
|
1170
|
+
interface LayerQuickFilter {
|
|
1171
|
+
/** Stable id, used as the React key and for edits/removal. */
|
|
1172
|
+
id: string;
|
|
1173
|
+
/** The feature property this control narrows. */
|
|
1174
|
+
field: string;
|
|
1175
|
+
kind: QuickFilterKind;
|
|
1176
|
+
/**
|
|
1177
|
+
* `false` keeps the control configured but inert, so a filter can be muted
|
|
1178
|
+
* without losing the values chosen for it. Defaults to enabled.
|
|
1179
|
+
*/
|
|
1180
|
+
enabled?: boolean;
|
|
1181
|
+
/**
|
|
1182
|
+
* `categorical`: the chosen values. An empty (or omitted) selection means
|
|
1183
|
+
* "every value" and compiles to nothing — unchecking the last box clears the
|
|
1184
|
+
* filter rather than emptying the map.
|
|
1185
|
+
*/
|
|
1186
|
+
values?: (string | number | boolean)[];
|
|
1187
|
+
/** `range`: inclusive bounds. `null`/omitted leaves that side open. */
|
|
1188
|
+
min?: number | null;
|
|
1189
|
+
max?: number | null;
|
|
1190
|
+
/**
|
|
1191
|
+
* `date`: inclusive `YYYY-MM-DD` bounds. The end day is included in full, so
|
|
1192
|
+
* a timestamp field filtered to a single day keeps that whole day.
|
|
1193
|
+
*/
|
|
1194
|
+
start?: string | null;
|
|
1195
|
+
end?: string | null;
|
|
1196
|
+
/** `date`: how the field stores its values. Defaults to `iso`. */
|
|
1197
|
+
dateKind?: QuickFilterDateKind;
|
|
1198
|
+
/** `text`: the comparison. Defaults to `contains`. */
|
|
1199
|
+
operator?: QuickFilterTextOperator;
|
|
1200
|
+
/** `text`: the needle. Blank means no constraint. */
|
|
1201
|
+
text?: string;
|
|
1202
|
+
}
|
|
1075
1203
|
/** Persisted refresh policy and most recent synchronization result for a layer. */
|
|
1076
1204
|
interface LayerConnection {
|
|
1077
1205
|
/** Owning layer id. Repeated here so records remain self-describing when exported. */
|
|
@@ -1124,6 +1252,41 @@ interface LayerCapabilities {
|
|
|
1124
1252
|
/** Can the layer data/symbology be exported/downloaded. */
|
|
1125
1253
|
export?: boolean;
|
|
1126
1254
|
}
|
|
1255
|
+
/**
|
|
1256
|
+
* Application privilege identifiers defining discrete capabilities in GeoLibre.
|
|
1257
|
+
*/
|
|
1258
|
+
type AppPrivilege = "layers:edit" | "layers:add-remote" | "layers:add-local" | "processing:run" | "processing:sidecar" | "project:save" | "project:share" | "project:share-public" | "plugins:install" | "assistant:use" | "connections:manage" | "export:data" | "export:image" | "settings:manage";
|
|
1259
|
+
/**
|
|
1260
|
+
* Standard named roles bundling application privileges.
|
|
1261
|
+
*/
|
|
1262
|
+
type AppRole = "viewer" | "editor" | "publisher" | "administrator" | "custom";
|
|
1263
|
+
/**
|
|
1264
|
+
* Ephemeral application capabilities state defining the active role, effective privileges,
|
|
1265
|
+
* and optional restriction reason for the current session/deployment.
|
|
1266
|
+
*/
|
|
1267
|
+
interface AppCapabilities {
|
|
1268
|
+
/**
|
|
1269
|
+
* The assigned application role. `custom` once an ad-hoc `grantAppPrivilege` /
|
|
1270
|
+
* `revokeAppPrivilege` has moved the set away from the bundle a named role
|
|
1271
|
+
* defines, so the role never claims a shape the privileges do not have.
|
|
1272
|
+
*/
|
|
1273
|
+
role: AppRole;
|
|
1274
|
+
/** List of granted privileges for the active role or custom configuration. */
|
|
1275
|
+
privileges: AppPrivilege[];
|
|
1276
|
+
/**
|
|
1277
|
+
* Optional human-readable reason covering the whole set (e.g. "Action disabled
|
|
1278
|
+
* by deployment policy"), used for any privilege without its own.
|
|
1279
|
+
*/
|
|
1280
|
+
reason?: string;
|
|
1281
|
+
/**
|
|
1282
|
+
* Per-privilege reasons, and why they exist: two privileges can be withheld by
|
|
1283
|
+
* different causes — a role bundle plus a licence limit, say — and a single
|
|
1284
|
+
* `reason` would make the second revocation relabel the first, so every gate
|
|
1285
|
+
* would explain itself with whichever cause happened to be recorded last.
|
|
1286
|
+
* Takes precedence over `reason` for the privileges it names.
|
|
1287
|
+
*/
|
|
1288
|
+
privilegeReasons?: Partial<Record<AppPrivilege, string>>;
|
|
1289
|
+
}
|
|
1127
1290
|
interface GeoLibreLayer {
|
|
1128
1291
|
id: string;
|
|
1129
1292
|
name: string;
|
|
@@ -1156,6 +1319,11 @@ interface GeoLibreLayer {
|
|
|
1156
1319
|
* with the project like {@link joins}.
|
|
1157
1320
|
*/
|
|
1158
1321
|
attributeForm?: AttributeFormConfig;
|
|
1322
|
+
/**
|
|
1323
|
+
* Popup and hover-tooltip design for this layer, authored in the Style
|
|
1324
|
+
* panel's Popup section. Absent means the default full-property dump.
|
|
1325
|
+
*/
|
|
1326
|
+
popup?: LayerPopupConfig;
|
|
1159
1327
|
/**
|
|
1160
1328
|
* Persistent attribute joins applied to this layer's features, in order.
|
|
1161
1329
|
* The joined columns are materialized into `geojson` feature properties (so
|
|
@@ -1183,6 +1351,15 @@ interface GeoLibreLayer {
|
|
|
1183
1351
|
timeFilter?: unknown[];
|
|
1184
1352
|
/** Transient MapLibre expression applied by the iframe embed API. */
|
|
1185
1353
|
embedFilter?: unknown[];
|
|
1354
|
+
/**
|
|
1355
|
+
* Data-driven filter controls authored in the layer's Quick Filters section
|
|
1356
|
+
* (issue #2114). Unlike {@link timeFilter} and {@link embedFilter} this is
|
|
1357
|
+
* persisted control *state*, not a compiled expression: `@geolibre/map`
|
|
1358
|
+
* compiles it at sync time (see `compileQuickFilters`) and combines the
|
|
1359
|
+
* result with the transient filters and the rule-based visibility filter, so
|
|
1360
|
+
* a host page's filter and a user's filter narrow the layer together.
|
|
1361
|
+
*/
|
|
1362
|
+
quickFilters?: LayerQuickFilter[];
|
|
1186
1363
|
sourcePath?: string;
|
|
1187
1364
|
/**
|
|
1188
1365
|
* Id of the {@link LayerGroup} this layer belongs to, or `undefined` when the
|
|
@@ -1470,6 +1647,8 @@ interface MapPreferences {
|
|
|
1470
1647
|
* from Controls -> Elevation.
|
|
1471
1648
|
*/
|
|
1472
1649
|
showPointerElevation: boolean;
|
|
1650
|
+
/** Whether the built-in 3D terrain control and terrain surface are enabled. */
|
|
1651
|
+
terrainEnabled: boolean;
|
|
1473
1652
|
/**
|
|
1474
1653
|
* Notation the status bar reports the pointer coordinate in: `"dd"` decimal
|
|
1475
1654
|
* degrees (default), `"dms"` degrees/minutes/seconds, `"ddm"` degrees and
|
|
@@ -1976,6 +2155,8 @@ interface LayerLibraryEntry {
|
|
|
1976
2155
|
virtualFields?: LayerVirtualField[];
|
|
1977
2156
|
/** Per-field edit-widget/constraint configuration to reapply. */
|
|
1978
2157
|
attributeForm?: AttributeFormConfig;
|
|
2158
|
+
/** Popup/tooltip design to reapply. */
|
|
2159
|
+
popup?: LayerPopupConfig;
|
|
1979
2160
|
/**
|
|
1980
2161
|
* Embedded features, present only for a layer whose source cannot be
|
|
1981
2162
|
* re-read (in-memory features) or whose local file may be unavailable.
|
|
@@ -2005,6 +2186,8 @@ interface GeoLibreProject {
|
|
|
2005
2186
|
basemapStyleUrl: string;
|
|
2006
2187
|
basemapVisible: boolean;
|
|
2007
2188
|
basemapOpacity: number;
|
|
2189
|
+
/** Custom colour for the Blank background. Null uses the current theme default. */
|
|
2190
|
+
blankBackgroundColor?: string | null;
|
|
2008
2191
|
layers: GeoLibreLayer[];
|
|
2009
2192
|
/**
|
|
2010
2193
|
* Layer selected in the Layers panel when the project was saved. Omitted by
|
|
@@ -2670,6 +2853,96 @@ declare function getRegionalBasemapById(id: string | undefined): RegionalBasemap
|
|
|
2670
2853
|
/** Whether a style URL is a regional-basemap sentinel, resolvable or not. */
|
|
2671
2854
|
declare function isRegionalBasemapSentinel(styleUrl: string | undefined): boolean;
|
|
2672
2855
|
//#endregion
|
|
2856
|
+
//#region src/cesium-imagery.d.ts
|
|
2857
|
+
/**
|
|
2858
|
+
* Maps the project's basemap onto imagery the Cesium globe can render.
|
|
2859
|
+
*
|
|
2860
|
+
* The 2D panes render `basemapStyleUrl` through MapLibre, which understands
|
|
2861
|
+
* vector GL styles and GeoLibre's `geolibre://` sentinels. Cesium understands
|
|
2862
|
+
* neither: it draws imagery from tile providers only. So a globe pane that
|
|
2863
|
+
* simply mounted the store basemap would show nothing, which is why the pane
|
|
2864
|
+
* used to hardcode Ion World Imagery (with a token) or OpenStreetMap (without)
|
|
2865
|
+
* and ignore the user's choice entirely — leaving a bright globe beside dark 2D
|
|
2866
|
+
* panes and breaking the "same map, different projection" promise the multi-map
|
|
2867
|
+
* grid makes.
|
|
2868
|
+
*
|
|
2869
|
+
* This module is the translation. It is deliberately **engine-free** — it
|
|
2870
|
+
* returns a plain descriptor and never imports Cesium — so it lives in
|
|
2871
|
+
* `@geolibre/core` beside the basemap catalogs it reads, the 2D and 3D
|
|
2872
|
+
* renderers share one source of truth, and the Cesium chunk boundary in
|
|
2873
|
+
* `vite.config.ts` stays intact.
|
|
2874
|
+
*
|
|
2875
|
+
* Three outcomes are possible, and the caller has to handle all three (see
|
|
2876
|
+
* {@link CesiumBasemapImagery}): tiles to draw, nothing to draw, or "no raster
|
|
2877
|
+
* equivalent exists — pick your own default".
|
|
2878
|
+
*/
|
|
2879
|
+
/**
|
|
2880
|
+
* What the globe should draw underneath the project's data layers.
|
|
2881
|
+
*
|
|
2882
|
+
* - `xyz` — a tile template to render, with the credit and zoom bounds that go
|
|
2883
|
+
* with it.
|
|
2884
|
+
* - `none` — the user chose the blank basemap; draw a bare ellipsoid.
|
|
2885
|
+
* - `default` — this basemap has no raster equivalent (a custom style URL, a
|
|
2886
|
+
* provider style, an offline archive). The renderer falls back to whatever it
|
|
2887
|
+
* can offer, which is Ion World Imagery when a token is configured and
|
|
2888
|
+
* OpenStreetMap otherwise.
|
|
2889
|
+
*/
|
|
2890
|
+
type CesiumBasemapImagery = {
|
|
2891
|
+
kind: "none";
|
|
2892
|
+
} | {
|
|
2893
|
+
kind: "default";
|
|
2894
|
+
} | {
|
|
2895
|
+
kind: "xyz";
|
|
2896
|
+
/** Tile template with `{z}`/`{x}`/`{y}` placeholders. */
|
|
2897
|
+
template: string;
|
|
2898
|
+
/** Credit to show on the globe, as the HTML the 2D map already uses. */
|
|
2899
|
+
attribution: string;
|
|
2900
|
+
/** Max native zoom of the source, so the globe overzooms rather than 404s. */
|
|
2901
|
+
maximumLevel?: number;
|
|
2902
|
+
/**
|
|
2903
|
+
* Tile row ordering. `"tms"` numbers rows from the bottom; absent means
|
|
2904
|
+
* standard XYZ. Cesium has no `scheme` option, so a TMS template needs
|
|
2905
|
+
* `{y}` swapped for its `{reverseY}` placeholder at render time.
|
|
2906
|
+
*/
|
|
2907
|
+
scheme?: "tms";
|
|
2908
|
+
/**
|
|
2909
|
+
* A transparent overlay drawn directly above {@link template} — the
|
|
2910
|
+
* roads-and-labels tiles a hybrid basemap (Amap Hybrid) bakes in, so one
|
|
2911
|
+
* basemap selection still yields a labelled satellite globe.
|
|
2912
|
+
*/
|
|
2913
|
+
overlayTemplate?: string;
|
|
2914
|
+
};
|
|
2915
|
+
/**
|
|
2916
|
+
* Whether two descriptors would draw the same thing.
|
|
2917
|
+
*
|
|
2918
|
+
* Descriptors are built fresh on every call, so two basemaps resolving to the
|
|
2919
|
+
* same analogue — OpenFreeMap `liberty` and `bright` are both the streets
|
|
2920
|
+
* tone — yield equal but distinct objects. A renderer that remembers the
|
|
2921
|
+
* descriptor it drew (to skip redundant work) must compare by value: a
|
|
2922
|
+
* reference check would miss that case and tear down and re-add an identical
|
|
2923
|
+
* tile provider, costing a flash and a round of re-requested tiles for no
|
|
2924
|
+
* visible change.
|
|
2925
|
+
*/
|
|
2926
|
+
declare function sameCesiumImagery(a: CesiumBasemapImagery, b: CesiumBasemapImagery): boolean;
|
|
2927
|
+
/**
|
|
2928
|
+
* Translate a basemap style URL into imagery for the Cesium globe.
|
|
2929
|
+
*
|
|
2930
|
+
* Planetary and regional basemaps are already raster tile sets, so they carry
|
|
2931
|
+
* straight over — the globe shows the same Mars/Moon/Amap tiles the 2D panes
|
|
2932
|
+
* do. GeoLibre's own vector styles map to a keyless raster basemap of matching
|
|
2933
|
+
* tone, so switching the project to a dark basemap darkens the globe too.
|
|
2934
|
+
* Everything else reports `default`, leaving the choice of fallback imagery to
|
|
2935
|
+
* the renderer (which knows whether an Ion token is configured).
|
|
2936
|
+
*
|
|
2937
|
+
* A `geolibre://` sentinel that no longer resolves is treated as the default
|
|
2938
|
+
* basemap, mirroring what `resolveMapStyle` does for the 2D map rather than
|
|
2939
|
+
* handing the sentinel onward as if it were fetchable.
|
|
2940
|
+
*
|
|
2941
|
+
* @param styleUrl - The project's `basemapStyleUrl`.
|
|
2942
|
+
* @returns What the globe should draw beneath the data layers.
|
|
2943
|
+
*/
|
|
2944
|
+
declare function basemapToCesiumImagery(styleUrl: string | undefined): CesiumBasemapImagery;
|
|
2945
|
+
//#endregion
|
|
2673
2946
|
//#region src/geojson-z.d.ts
|
|
2674
2947
|
/**
|
|
2675
2948
|
* Returns true when any coordinate in the GeoJSON carries a finite, non-zero
|
|
@@ -3889,6 +4162,141 @@ declare function validateAttributeFormField(config: AttributeFormFieldConfig, pr
|
|
|
3889
4162
|
*/
|
|
3890
4163
|
declare function validateAttributeFormValues(form: AttributeFormConfig | undefined, properties: Record<string, unknown>, options?: AttributeFormEvalOptions): AttributeFormValidation;
|
|
3891
4164
|
//#endregion
|
|
4165
|
+
//#region src/popup.d.ts
|
|
4166
|
+
/** One resolved popup row, ready for the renderer. */
|
|
4167
|
+
interface PopupRow {
|
|
4168
|
+
/** Feature property key. */
|
|
4169
|
+
field: string;
|
|
4170
|
+
/** Label to print in the key column. */
|
|
4171
|
+
label: string;
|
|
4172
|
+
/** The raw property value, for kinds that need it (image `src`, link `href`). */
|
|
4173
|
+
value: unknown;
|
|
4174
|
+
/** The formatted value text. */
|
|
4175
|
+
text: string;
|
|
4176
|
+
/** How the renderer should draw the value. */
|
|
4177
|
+
kind: PopupFieldKind;
|
|
4178
|
+
/** Link text for a `"link"` row; falls back to the value. */
|
|
4179
|
+
linkLabel?: string;
|
|
4180
|
+
}
|
|
4181
|
+
/** Whether the Identify popup should open for a layer. Default: yes. */
|
|
4182
|
+
declare function isPopupClickEnabled(popup: LayerPopupConfig | undefined): boolean;
|
|
4183
|
+
/** Whether a hover tooltip should follow the pointer. Default: no. */
|
|
4184
|
+
declare function isPopupHoverEnabled(popup: LayerPopupConfig | undefined): boolean;
|
|
4185
|
+
/** The label a popup shows for a configured field. */
|
|
4186
|
+
declare function popupFieldLabel(config: PopupFieldConfig): string;
|
|
4187
|
+
/**
|
|
4188
|
+
* Property keys that never belong in a popup: GeoLibre's own internal columns
|
|
4189
|
+
* and the full-resolution companion of a photo thumbnail (an internal twin of
|
|
4190
|
+
* a value already shown, and often multiple megabytes of data URL).
|
|
4191
|
+
*/
|
|
4192
|
+
declare function isInternalPopupField(key: string): boolean;
|
|
4193
|
+
/**
|
|
4194
|
+
* The property keys a popup may show, before any popup config narrows them:
|
|
4195
|
+
* the feature's own keys minus the internal ones and anything the author
|
|
4196
|
+
* marked `"hidden"` or `"excluded"`.
|
|
4197
|
+
*/
|
|
4198
|
+
declare function visiblePopupFields(properties: Record<string, unknown>, fieldVisibility?: Record<string, FieldVisibility>): string[];
|
|
4199
|
+
/** Options for {@link formatPopupValue} and {@link resolvePopupRows}. */
|
|
4200
|
+
interface PopupFormatOptions {
|
|
4201
|
+
/**
|
|
4202
|
+
* BCP 47 tag for number/date formatting. Omitted means the runtime default,
|
|
4203
|
+
* which is what the browser uses for every other locale-aware rendering.
|
|
4204
|
+
*/
|
|
4205
|
+
locale?: string;
|
|
4206
|
+
}
|
|
4207
|
+
/** Stringify a value the way the untyped popup always has. */
|
|
4208
|
+
declare function stringifyPopupValue(value: unknown): string;
|
|
4209
|
+
/**
|
|
4210
|
+
* Render one value as text under a field's kind and format. `"auto"` and
|
|
4211
|
+
* `"image"` values are returned verbatim (the renderer draws them itself);
|
|
4212
|
+
* every other kind is stringified, formatted, then wrapped in the configured
|
|
4213
|
+
* prefix/suffix.
|
|
4214
|
+
*/
|
|
4215
|
+
declare function formatPopupValue(value: unknown, config?: Pick<PopupFieldConfig, "kind" | "format">, options?: PopupFormatOptions): string;
|
|
4216
|
+
/**
|
|
4217
|
+
* The properties a popup may read, with the author's hidden and excluded
|
|
4218
|
+
* fields and GeoLibre's internal columns removed.
|
|
4219
|
+
*
|
|
4220
|
+
* Expressions get this rather than the raw record. `["get", "ssn"]` in a title
|
|
4221
|
+
* or body would otherwise reach a column the author hid, printing it into the
|
|
4222
|
+
* popup — and onto the hover tooltip, which needs no click at all. The rest of
|
|
4223
|
+
* this module already honors `fieldVisibility` field by field; an expression
|
|
4224
|
+
* has no field list to filter, so the filtering has to happen to its input.
|
|
4225
|
+
*/
|
|
4226
|
+
declare function visiblePopupProperties(properties: Record<string, unknown>, fieldVisibility?: Record<string, FieldVisibility>): Record<string, unknown>;
|
|
4227
|
+
/** Options for {@link resolvePopupRows}. */
|
|
4228
|
+
interface ResolvePopupRowsOptions extends PopupFormatOptions {
|
|
4229
|
+
popup?: LayerPopupConfig;
|
|
4230
|
+
fieldVisibility?: Record<string, FieldVisibility>;
|
|
4231
|
+
/** Resolve the hover subset (fields flagged `hover`) instead of the full list. */
|
|
4232
|
+
hover?: boolean;
|
|
4233
|
+
}
|
|
4234
|
+
/**
|
|
4235
|
+
* The rows a popup (or hover tooltip) should render for one feature's
|
|
4236
|
+
* properties.
|
|
4237
|
+
*
|
|
4238
|
+
* With no `popup.fields`, every visible property is returned in the feature's
|
|
4239
|
+
* own key order and left untyped, which is exactly what the popup did before
|
|
4240
|
+
* the designer existed. With a list, only the listed fields appear, in the
|
|
4241
|
+
* listed order, under their labels and formats — and a listed field the
|
|
4242
|
+
* feature does not carry is skipped rather than printed empty, so one config
|
|
4243
|
+
* can cover a layer whose features have ragged properties.
|
|
4244
|
+
*
|
|
4245
|
+
* `hover: true` narrows the list to fields flagged `hover`. A hover request
|
|
4246
|
+
* with no flagged field returns nothing: an author who turned the tooltip on
|
|
4247
|
+
* without choosing a field gets no tip rather than the whole table following
|
|
4248
|
+
* the pointer.
|
|
4249
|
+
*/
|
|
4250
|
+
declare function resolvePopupRows(properties: Record<string, unknown>, options?: ResolvePopupRowsOptions): PopupRow[];
|
|
4251
|
+
/** Options for {@link resolvePopupTitle} and {@link resolvePopupBody}. */
|
|
4252
|
+
interface PopupExpressionOptions {
|
|
4253
|
+
/**
|
|
4254
|
+
* The author's field visibility, so an expression cannot read a hidden or
|
|
4255
|
+
* excluded column. Omitting it means nothing is hidden.
|
|
4256
|
+
*/
|
|
4257
|
+
fieldVisibility?: Record<string, FieldVisibility>;
|
|
4258
|
+
/** The real feature, when the caller has one — feeds `["geometry-type"]`. */
|
|
4259
|
+
feature?: Feature | null;
|
|
4260
|
+
/** Map zoom for `["zoom"]`; defaults to 0. */
|
|
4261
|
+
zoom?: number;
|
|
4262
|
+
}
|
|
4263
|
+
/**
|
|
4264
|
+
* The heading a popup should show: the title expression's value, else the
|
|
4265
|
+
* title field's value, else the layer name. An expression that fails to
|
|
4266
|
+
* compile or evaluate, and a title field that is empty or hidden, both fall
|
|
4267
|
+
* back to the layer name rather than leaving the popup headless.
|
|
4268
|
+
*/
|
|
4269
|
+
declare function resolvePopupTitle(layerName: string, properties: Record<string, unknown>, popup: LayerPopupConfig | undefined, options?: PopupExpressionOptions): string;
|
|
4270
|
+
/**
|
|
4271
|
+
* The title the author's own configuration produced, or `null` when there is
|
|
4272
|
+
* none — no title field or expression, or one that evaluated to nothing, or a
|
|
4273
|
+
* field the author hid.
|
|
4274
|
+
*
|
|
4275
|
+
* {@link resolvePopupTitle} is this plus the layer-name fallback. The hover
|
|
4276
|
+
* tooltip needs the two apart: a tip with no fields and no configured title
|
|
4277
|
+
* would be a box repeating the layer name, so it is suppressed — but that
|
|
4278
|
+
* decision has to rest on whether a title was *configured*, not on whether the
|
|
4279
|
+
* resolved text happens to equal the layer name. A city layer named "Olympia"
|
|
4280
|
+
* whose feature is also called "Olympia" is a real title, not a fallback.
|
|
4281
|
+
*/
|
|
4282
|
+
declare function resolveConfiguredPopupTitle(properties: Record<string, unknown>, popup: LayerPopupConfig | undefined, options?: PopupExpressionOptions): string | null;
|
|
4283
|
+
/**
|
|
4284
|
+
* The popup body text when the author supplied a body expression, or `null`
|
|
4285
|
+
* when there is none (or it failed) and the field rows should render instead.
|
|
4286
|
+
*/
|
|
4287
|
+
declare function resolvePopupBody(properties: Record<string, unknown>, popup: LayerPopupConfig | undefined, options?: PopupExpressionOptions): string | null;
|
|
4288
|
+
/**
|
|
4289
|
+
* Whether a value should render as an inline image thumbnail under `"auto"`.
|
|
4290
|
+
* Kept here so the renderer and the designer's preview agree on what counts.
|
|
4291
|
+
*/
|
|
4292
|
+
declare function isInlineImageValue(value: unknown): value is string;
|
|
4293
|
+
/**
|
|
4294
|
+
* Whether a URL is safe to put in a popup `href`/`src`. Only http(s) and
|
|
4295
|
+
* inline raster data URLs: a `javascript:` or `data:text/html` value coming
|
|
4296
|
+
* from an untrusted GeoJSON must never become a live link.
|
|
4297
|
+
*/
|
|
4298
|
+
declare function isSafePopupUrl(value: unknown, allowDataImage?: boolean): value is string;
|
|
4299
|
+
//#endregion
|
|
3892
4300
|
//#region src/joins.d.ts
|
|
3893
4301
|
/**
|
|
3894
4302
|
* Match key for a persistent join: empty values (null/undefined/NaN/empty
|
|
@@ -4032,6 +4440,52 @@ interface ApplyVirtualFieldsResult {
|
|
|
4032
4440
|
*/
|
|
4033
4441
|
declare function applyLayerVirtualFields(features: Feature[], fields: LayerVirtualField[] | undefined): ApplyVirtualFieldsResult;
|
|
4034
4442
|
//#endregion
|
|
4443
|
+
//#region src/quick-filters.d.ts
|
|
4444
|
+
/**
|
|
4445
|
+
* Compile one quick filter to a MapLibre filter expression, or `null` when it
|
|
4446
|
+
* places no constraint (switched off, no field, or nothing chosen yet). A
|
|
4447
|
+
* control that has been added but not yet answered must never hide features.
|
|
4448
|
+
*
|
|
4449
|
+
* @param filter - The persisted control state.
|
|
4450
|
+
* @returns A MapLibre filter expression, or `null`.
|
|
4451
|
+
*/
|
|
4452
|
+
declare function compileQuickFilter(filter: LayerQuickFilter): unknown[] | null;
|
|
4453
|
+
/**
|
|
4454
|
+
* Compile a layer's quick filters into a single MapLibre filter expression.
|
|
4455
|
+
* Multiple controls narrow the data together (`["all", …]`), matching how a
|
|
4456
|
+
* viewer reads a stack of filters. Returns `null` when no control constrains
|
|
4457
|
+
* anything, so the common path adds no filter at all.
|
|
4458
|
+
*
|
|
4459
|
+
* @param filters - The layer's persisted quick filters.
|
|
4460
|
+
* @returns A MapLibre filter expression, or `null`.
|
|
4461
|
+
*/
|
|
4462
|
+
declare function compileQuickFilters(filters: readonly LayerQuickFilter[] | undefined): unknown[] | null;
|
|
4463
|
+
/**
|
|
4464
|
+
* The quick filters that actually constrain the layer right now. Drives the
|
|
4465
|
+
* "filtered" badge on the layer row and its count, so an active filter is
|
|
4466
|
+
* never mistaken for missing data.
|
|
4467
|
+
*
|
|
4468
|
+
* @param layer - The layer to inspect.
|
|
4469
|
+
* @returns The constraining filters, in their configured order.
|
|
4470
|
+
*/
|
|
4471
|
+
declare function activeQuickFilters(layer: GeoLibreLayer): LayerQuickFilter[];
|
|
4472
|
+
/**
|
|
4473
|
+
* Whether the layer is currently narrowed by at least one quick filter.
|
|
4474
|
+
*
|
|
4475
|
+
* @param layer - The layer to inspect.
|
|
4476
|
+
* @returns `true` when a quick filter constrains the rendered features.
|
|
4477
|
+
*/
|
|
4478
|
+
declare function hasActiveQuickFilter(layer: GeoLibreLayer): boolean;
|
|
4479
|
+
/**
|
|
4480
|
+
* Clear every chosen value while keeping the controls themselves, so "Clear
|
|
4481
|
+
* filters" is one action that leaves the layer's configured controls in place
|
|
4482
|
+
* for the next question.
|
|
4483
|
+
*
|
|
4484
|
+
* @param filters - The layer's persisted quick filters.
|
|
4485
|
+
* @returns The same controls with their selections emptied.
|
|
4486
|
+
*/
|
|
4487
|
+
declare function clearQuickFilterValues(filters: readonly LayerQuickFilter[] | undefined): LayerQuickFilter[];
|
|
4488
|
+
//#endregion
|
|
4035
4489
|
//#region src/capabilities.d.ts
|
|
4036
4490
|
/**
|
|
4037
4491
|
* Default inferred capabilities for a layer based on its type and metadata.
|
|
@@ -4052,6 +4506,95 @@ declare function resolveLayerCapabilities(layer: GeoLibreLayer | undefined): Req
|
|
|
4052
4506
|
* Normalizes an untrusted capabilities value from JSON/project data.
|
|
4053
4507
|
*/
|
|
4054
4508
|
declare function normalizeLayerCapabilities(raw: unknown): LayerCapabilities | undefined;
|
|
4509
|
+
/**
|
|
4510
|
+
* All supported application privilege identifiers in GeoLibre.
|
|
4511
|
+
*/
|
|
4512
|
+
declare const ALL_APP_PRIVILEGES: readonly AppPrivilege[];
|
|
4513
|
+
/**
|
|
4514
|
+
* Standard privilege bundles for named application roles.
|
|
4515
|
+
*/
|
|
4516
|
+
declare const ROLE_PRIVILEGES: Record<Exclude<AppRole, "custom">, readonly AppPrivilege[]>;
|
|
4517
|
+
/**
|
|
4518
|
+
* Resolves the effective privilege list for a given role, applying custom overrides if specified.
|
|
4519
|
+
*/
|
|
4520
|
+
declare function resolveRolePrivileges(role: AppRole, customPrivileges?: readonly AppPrivilege[]): AppPrivilege[];
|
|
4521
|
+
/**
|
|
4522
|
+
* Intersects multiple sets of privileges to derive the effective permissions when multiple
|
|
4523
|
+
* policies (e.g. deployment, organization, and share link) apply simultaneously.
|
|
4524
|
+
*/
|
|
4525
|
+
declare function intersectPrivileges(...privilegeSets: (readonly AppPrivilege[])[]): AppPrivilege[];
|
|
4526
|
+
/**
|
|
4527
|
+
* Evaluates whether an application capability set grants a specific privilege.
|
|
4528
|
+
*/
|
|
4529
|
+
declare function hasAppPrivilege(capabilities: AppCapabilities | undefined, privilege: AppPrivilege): boolean;
|
|
4530
|
+
/**
|
|
4531
|
+
* Resolves why a privilege is withheld: its own reason if it has one, otherwise
|
|
4532
|
+
* the reason recorded for the capability set as a whole.
|
|
4533
|
+
*
|
|
4534
|
+
* @param capabilities - The active capability set, if any.
|
|
4535
|
+
* @param privilege - The privilege being explained.
|
|
4536
|
+
* @returns The reason, or undefined when none was recorded.
|
|
4537
|
+
*/
|
|
4538
|
+
declare function appPrivilegeReason(capabilities: AppCapabilities | undefined, privilege: AppPrivilege): string | undefined;
|
|
4539
|
+
/**
|
|
4540
|
+
* Creates the default unconstrained application capabilities (Administrator role).
|
|
4541
|
+
*/
|
|
4542
|
+
declare function createDefaultAppCapabilities(): AppCapabilities;
|
|
4543
|
+
/**
|
|
4544
|
+
* Normalizes an untrusted array of privilege strings.
|
|
4545
|
+
*/
|
|
4546
|
+
declare function normalizeAppPrivileges(raw: unknown): AppPrivilege[] | undefined;
|
|
4547
|
+
//#endregion
|
|
4548
|
+
//#region src/deployment-capabilities.d.ts
|
|
4549
|
+
/** A privileged action a deployment can grant or withhold. */
|
|
4550
|
+
type DeploymentCapability =
|
|
4551
|
+
/** Create, save, or otherwise author the project itself. */
|
|
4552
|
+
"project:edit" |
|
|
4553
|
+
/** Bring new data into the map from files, URLs, or services. */
|
|
4554
|
+
"data:add" |
|
|
4555
|
+
/** Run processing/analysis tools (Whitebox, SQL, vector/raster, ML). */
|
|
4556
|
+
"processing:run" |
|
|
4557
|
+
/** Get data or renderings back out (export image, standalone HTML, …). */
|
|
4558
|
+
"export:data" |
|
|
4559
|
+
/** Install, load, or manage plugins. */
|
|
4560
|
+
"plugins:install" |
|
|
4561
|
+
/** Reach the application settings. */
|
|
4562
|
+
"settings:manage";
|
|
4563
|
+
/** Every capability, in a stable order for docs and tests. */
|
|
4564
|
+
declare const DEPLOYMENT_CAPABILITIES: readonly DeploymentCapability[];
|
|
4565
|
+
/**
|
|
4566
|
+
* The default grant: everything. `full` must stay the default so an existing
|
|
4567
|
+
* deployment that configures nothing behaves exactly as it did before.
|
|
4568
|
+
*/
|
|
4569
|
+
declare const ALL_DEPLOYMENT_CAPABILITIES: ReadonlySet<DeploymentCapability>;
|
|
4570
|
+
/** Whether an arbitrary string names a capability we know how to enforce. */
|
|
4571
|
+
declare function isDeploymentCapability(value: string): value is DeploymentCapability;
|
|
4572
|
+
/**
|
|
4573
|
+
* The reserved token that grants nothing, for a deployment that wants the map
|
|
4574
|
+
* and nothing else.
|
|
4575
|
+
*
|
|
4576
|
+
* Needed because a blank value cannot mean it: the deployment env reader treats
|
|
4577
|
+
* an empty string as unset (a `-e VAR=` produces one), and unset has to keep
|
|
4578
|
+
* meaning "full" so existing deployments are unchanged. Without a spelling for
|
|
4579
|
+
* "none", the most locked-down configuration would be the one you cannot write.
|
|
4580
|
+
*/
|
|
4581
|
+
declare const NO_DEPLOYMENT_CAPABILITIES = "none";
|
|
4582
|
+
/**
|
|
4583
|
+
* Parse a comma-separated capability list from deployment configuration.
|
|
4584
|
+
*
|
|
4585
|
+
* Unknown tokens are dropped rather than throwing: a newer container image may
|
|
4586
|
+
* be configured with a capability this build does not know about, and the safe
|
|
4587
|
+
* reading of an unrecognized grant is "not granted".
|
|
4588
|
+
*
|
|
4589
|
+
* Fails closed on purpose. An operator who set the variable at all meant to
|
|
4590
|
+
* restrict something, so a list that parses to nothing grants nothing — only an
|
|
4591
|
+
* absent (or blank) value falls back to the full set, which is the caller's job
|
|
4592
|
+
* to detect.
|
|
4593
|
+
*
|
|
4594
|
+
* @param raw - The configured value, e.g. `"data:add, export:data"`.
|
|
4595
|
+
* @returns The granted capabilities, with duplicates and unknown names removed.
|
|
4596
|
+
*/
|
|
4597
|
+
declare function parseDeploymentCapabilities(raw: string): ReadonlySet<DeploymentCapability>;
|
|
4055
4598
|
//#endregion
|
|
4056
4599
|
//#region src/selection.d.ts
|
|
4057
4600
|
/**
|
|
@@ -4307,6 +4850,7 @@ interface CreateProjectOptions {
|
|
|
4307
4850
|
/** Celestial body the project describes; defaults to Earth when omitted. */
|
|
4308
4851
|
ellipsoidId?: string;
|
|
4309
4852
|
}
|
|
4853
|
+
declare function normalizeBlankBackgroundColor(value: unknown): string | null;
|
|
4310
4854
|
declare function createDefaultMapView(): MapViewState;
|
|
4311
4855
|
declare function createEmptyProject(name?: string, options?: CreateProjectOptions): GeoLibreProject;
|
|
4312
4856
|
/**
|
|
@@ -4426,6 +4970,7 @@ declare function projectFromStore(state: {
|
|
|
4426
4970
|
basemapStyleUrl: string;
|
|
4427
4971
|
basemapVisible: boolean;
|
|
4428
4972
|
basemapOpacity: number;
|
|
4973
|
+
blankBackgroundColor?: string | null;
|
|
4429
4974
|
layers: GeoLibreLayer[];
|
|
4430
4975
|
selectedLayerId?: string | null;
|
|
4431
4976
|
layerGroups?: LayerGroup[];
|
|
@@ -4452,6 +4997,7 @@ declare function applyProjectToStore(project: GeoLibreProject): {
|
|
|
4452
4997
|
basemapStyleUrl: string;
|
|
4453
4998
|
basemapVisible: boolean;
|
|
4454
4999
|
basemapOpacity: number;
|
|
5000
|
+
blankBackgroundColor: string | null;
|
|
4455
5001
|
layers: GeoLibreLayer[];
|
|
4456
5002
|
layerGroups: LayerGroup[];
|
|
4457
5003
|
preferences: ProjectPreferences;
|
|
@@ -4727,6 +5273,7 @@ interface LayerLibraryConfigPatch {
|
|
|
4727
5273
|
joins?: LayerJoin[];
|
|
4728
5274
|
virtualFields?: LayerVirtualField[];
|
|
4729
5275
|
attributeForm?: AttributeFormConfig;
|
|
5276
|
+
popup?: LayerPopupConfig;
|
|
4730
5277
|
}
|
|
4731
5278
|
/** How an entry should be re-added to the current project. */
|
|
4732
5279
|
type LayerLibraryAddPlan =
|
|
@@ -5248,6 +5795,19 @@ declare function layerGroupMoveability(layers: GeoLibreLayer[], groups: LayerGro
|
|
|
5248
5795
|
down: boolean;
|
|
5249
5796
|
}>;
|
|
5250
5797
|
//#endregion
|
|
5798
|
+
//#region src/pixel-format.d.ts
|
|
5799
|
+
/**
|
|
5800
|
+
* Trim a float sample to something readable. A 32-bit raster value decoded to a
|
|
5801
|
+
* JS double prints all 17 digits of its binary representation
|
|
5802
|
+
* (`48.11851119995117`), which is noise past the sensor's precision — six
|
|
5803
|
+
* significant digits is more than any COG carries. Integers are left alone so a
|
|
5804
|
+
* classification code is never shown in exponential form.
|
|
5805
|
+
*
|
|
5806
|
+
* @param value A decoded raster sample.
|
|
5807
|
+
* @returns The sample rendered for display.
|
|
5808
|
+
*/
|
|
5809
|
+
declare function formatPixelValue(value: number): string;
|
|
5810
|
+
//#endregion
|
|
5251
5811
|
//#region src/storymap-sample.d.ts
|
|
5252
5812
|
/**
|
|
5253
5813
|
* Build a ready-to-play sample story map.
|
|
@@ -5339,7 +5899,7 @@ type VectorToolKind = "buffer" | "centroids" | "convex-hull" | "dissolve" | "bou
|
|
|
5339
5899
|
/** Identifiers of the network-analysis tools (`NETWORK_TOOLS` ids). */
|
|
5340
5900
|
type NetworkToolKind = "isochrone" | "od-matrix" | "sequential-route";
|
|
5341
5901
|
/** Identifiers of the spatial-statistics tools (`STATISTICS_TOOLS` ids). */
|
|
5342
|
-
type StatisticsToolKind = "global-morans-i" | "local-morans-i" | "getis-ord-gi" | "average-nearest-neighbor" | "kernel-density" | "emerging-hot-spot";
|
|
5902
|
+
type StatisticsToolKind = "global-morans-i" | "local-morans-i" | "getis-ord-gi" | "average-nearest-neighbor" | "kernel-density" | "emerging-hot-spot" | "composite-score";
|
|
5343
5903
|
/**
|
|
5344
5904
|
* Identifiers of the raster processing tools. Kept in sync by hand with the
|
|
5345
5905
|
* `id` fields of `RASTER_TOOLS` in `@geolibre/processing` (`raster-tools.ts`);
|
|
@@ -5373,6 +5933,7 @@ interface AppState {
|
|
|
5373
5933
|
basemapStyleUrl: string;
|
|
5374
5934
|
basemapVisible: boolean;
|
|
5375
5935
|
basemapOpacity: number;
|
|
5936
|
+
blankBackgroundColor: string | null;
|
|
5376
5937
|
layers: GeoLibreLayer[];
|
|
5377
5938
|
layerGroups: LayerGroup[];
|
|
5378
5939
|
preferences: ProjectPreferences;
|
|
@@ -5434,6 +5995,11 @@ interface AppState {
|
|
|
5434
5995
|
* `null` when the set is empty). A single click leaves exactly one id here.
|
|
5435
5996
|
*/
|
|
5436
5997
|
selectedFeatureIds: string[];
|
|
5998
|
+
/**
|
|
5999
|
+
* Store-layer id targeted by Identify, or {@link IDENTIFY_ALL_LAYERS_ID} for
|
|
6000
|
+
* the map-level mode that queries every visible queryable layer — vector,
|
|
6001
|
+
* DuckDB query, WMS, COG, NetCDF image and time-slider raster alike.
|
|
6002
|
+
*/
|
|
5437
6003
|
identifyLayerId: string | null;
|
|
5438
6004
|
pointerCoords: [number, number] | null;
|
|
5439
6005
|
/**
|
|
@@ -5459,7 +6025,23 @@ interface AppState {
|
|
|
5459
6025
|
metadata: Record<string, unknown>;
|
|
5460
6026
|
recentProjects: RecentProjectEntry[];
|
|
5461
6027
|
attributeFilter: string;
|
|
6028
|
+
/**
|
|
6029
|
+
* What this *deployment* is allowed to do (issue #1673). Set once at startup
|
|
6030
|
+
* from the deployment configuration; never from a project file, a URL
|
|
6031
|
+
* parameter, or anything else the visitor controls, and never edited from the
|
|
6032
|
+
* UI. Defaults to the full set so an unconfigured build behaves as before.
|
|
6033
|
+
*
|
|
6034
|
+
* Excluded from the project file and from undo history: it describes the
|
|
6035
|
+
* server that served the app, not the document being edited.
|
|
6036
|
+
*/
|
|
6037
|
+
deploymentCapabilities: ReadonlySet<DeploymentCapability>;
|
|
5462
6038
|
collaboration: CollaborationState;
|
|
6039
|
+
/**
|
|
6040
|
+
* Ephemeral application capability model (issue #1672). Gating role and
|
|
6041
|
+
* privileges for the current session/deployment. Excluded from the project file
|
|
6042
|
+
* and undo history.
|
|
6043
|
+
*/
|
|
6044
|
+
capabilities: AppCapabilities;
|
|
5463
6045
|
ui: {
|
|
5464
6046
|
processingOpen: boolean;
|
|
5465
6047
|
/**
|
|
@@ -5569,6 +6151,7 @@ interface AppState {
|
|
|
5569
6151
|
restoreEarthBasemap: (styleUrl: string) => void;
|
|
5570
6152
|
setBasemapVisible: (visible: boolean) => void;
|
|
5571
6153
|
setBasemapOpacity: (opacity: number) => void;
|
|
6154
|
+
setBlankBackgroundColor: (color: string | null) => void;
|
|
5572
6155
|
setPreferences: (preferences: ProjectPreferences) => void;
|
|
5573
6156
|
setLegend: (legend: LegendConfig) => void;
|
|
5574
6157
|
/**
|
|
@@ -5704,11 +6287,34 @@ interface AppState {
|
|
|
5704
6287
|
}) => void;
|
|
5705
6288
|
setProjectPath: (path: string | null) => void;
|
|
5706
6289
|
setProjectName: (name: string) => void;
|
|
6290
|
+
/**
|
|
6291
|
+
* Narrow what this deployment may do. Intended for the startup path only —
|
|
6292
|
+
* calling it later would leave already-rendered surfaces stale.
|
|
6293
|
+
*/
|
|
6294
|
+
setDeploymentCapabilities: (capabilities: Iterable<DeploymentCapability>) => void;
|
|
5707
6295
|
setRecentProjects: (projects: RecentProjectEntry[]) => void;
|
|
5708
6296
|
rememberRecentProject: (entry: RecentProjectEntry) => void;
|
|
5709
6297
|
forgetRecentProject: (path: string) => void;
|
|
5710
6298
|
clearRecentProjects: () => void;
|
|
5711
6299
|
markSaved: () => void;
|
|
6300
|
+
/**
|
|
6301
|
+
* Assign an application role (e.g. "viewer", "editor", "publisher", "administrator", "custom"),
|
|
6302
|
+
* deriving the effective privileges and optional reason.
|
|
6303
|
+
*/
|
|
6304
|
+
setAppRole: (role: AppRole, options?: {
|
|
6305
|
+
customPrivileges?: AppPrivilege[];
|
|
6306
|
+
reason?: string;
|
|
6307
|
+
}) => void;
|
|
6308
|
+
/** Set explicit custom privileges and an optional reason. */
|
|
6309
|
+
setAppPrivileges: (privileges: AppPrivilege[], reason?: string) => void;
|
|
6310
|
+
/** Grant an individual application privilege. */
|
|
6311
|
+
grantAppPrivilege: (privilege: AppPrivilege) => void;
|
|
6312
|
+
/** Revoke an individual application privilege with an optional reason. */
|
|
6313
|
+
revokeAppPrivilege: (privilege: AppPrivilege, reason?: string) => void;
|
|
6314
|
+
/** Reset application capabilities back to the default unconstrained Administrator role. */
|
|
6315
|
+
resetAppCapabilities: () => void;
|
|
6316
|
+
/** Check if the current capabilities grant the requested privilege. */
|
|
6317
|
+
hasAppPrivilege: (privilege: AppPrivilege) => boolean;
|
|
5712
6318
|
addLayer: (layer: GeoLibreLayer, beforeLayerId?: string | null) => void;
|
|
5713
6319
|
removeLayer: (id: string) => void;
|
|
5714
6320
|
updateLayer: (id: string, patch: Partial<GeoLibreLayer>) => void;
|
|
@@ -5754,6 +6360,12 @@ interface AppState {
|
|
|
5754
6360
|
* the form config entirely.
|
|
5755
6361
|
*/
|
|
5756
6362
|
setLayerAttributeForm: (id: string, attributeForm: AttributeFormConfig | undefined) => void;
|
|
6363
|
+
/**
|
|
6364
|
+
* Replace the layer's popup/tooltip design (which fields the Identify popup
|
|
6365
|
+
* shows, in what order and under what labels, plus the hover tooltip). Pass
|
|
6366
|
+
* `undefined` to restore the default full-property dump.
|
|
6367
|
+
*/
|
|
6368
|
+
setLayerPopup: (id: string, popup: LayerPopupConfig | undefined) => void;
|
|
5757
6369
|
/**
|
|
5758
6370
|
* Replace the layer's editor tracking configuration (whether creation/edit
|
|
5759
6371
|
* author and timestamp columns are maintained, and under which names). Pass
|
|
@@ -5766,6 +6378,13 @@ interface AppState {
|
|
|
5766
6378
|
* Pass an empty array to detach every virtual field.
|
|
5767
6379
|
*/
|
|
5768
6380
|
setLayerVirtualFields: (id: string, fields: LayerVirtualField[]) => void;
|
|
6381
|
+
/**
|
|
6382
|
+
* Replace a layer's quick filters (issue #2114). The controls persist with
|
|
6383
|
+
* the project and are compiled to a MapLibre filter at sync time, so this
|
|
6384
|
+
* only stores state — nothing re-derives the layer's data. Pass an empty
|
|
6385
|
+
* array to remove every control.
|
|
6386
|
+
*/
|
|
6387
|
+
setLayerQuickFilters: (id: string, filters: LayerQuickFilter[]) => void;
|
|
5769
6388
|
reorderLayer: (id: string, direction: "up" | "down") => void;
|
|
5770
6389
|
moveLayer: (id: string, targetIndex: number) => void;
|
|
5771
6390
|
moveLayersRelative: (layerIds: string[], targetLayerId: string, position: "above" | "below") => void;
|
|
@@ -5828,6 +6447,8 @@ interface AppState {
|
|
|
5828
6447
|
deleteComment: (commentId: string) => void;
|
|
5829
6448
|
setComments: (comments: ProjectComment[]) => void;
|
|
5830
6449
|
}
|
|
6450
|
+
/** Reserved Identify target for querying every visible queryable layer at once. */
|
|
6451
|
+
declare const IDENTIFY_ALL_LAYERS_ID = "__geolibre_identify_all_layers__";
|
|
5831
6452
|
/**
|
|
5832
6453
|
* A fresh, inactive collaboration slice (no live session). Frozen (like
|
|
5833
6454
|
* DEFAULT_LEGEND_CONFIG) to guard against accidental in-place mutation; store
|
|
@@ -5854,6 +6475,7 @@ declare const useAppStore: import("zustand").UseBoundStore<Omit<import("zustand"
|
|
|
5854
6475
|
basemapStyleUrl: string;
|
|
5855
6476
|
basemapVisible: boolean;
|
|
5856
6477
|
basemapOpacity: number;
|
|
6478
|
+
blankBackgroundColor: string | null;
|
|
5857
6479
|
storymap: StoryMap | null;
|
|
5858
6480
|
comments: ProjectComment[];
|
|
5859
6481
|
}>>;
|
|
@@ -5869,6 +6491,16 @@ declare function undo(): void;
|
|
|
5869
6491
|
declare function redo(): void;
|
|
5870
6492
|
/** Empty both the undo and redo stacks (e.g. on new/loaded project). */
|
|
5871
6493
|
declare function clearHistory(): void;
|
|
6494
|
+
/**
|
|
6495
|
+
* React hook for consuming application capability state for a specific privilege.
|
|
6496
|
+
*
|
|
6497
|
+
* @param privilege - The privilege to check.
|
|
6498
|
+
* @returns `{ granted: boolean, reason?: string }`
|
|
6499
|
+
*/
|
|
6500
|
+
declare function useAppCapability(privilege: AppPrivilege): {
|
|
6501
|
+
granted: boolean;
|
|
6502
|
+
reason?: string;
|
|
6503
|
+
};
|
|
5872
6504
|
//#endregion
|
|
5873
6505
|
//#region src/history.d.ts
|
|
5874
6506
|
declare function setHistoryCoalesceMs(ms: number): void;
|
|
@@ -6241,11 +6873,27 @@ declare function geocodeReverse(lon: number, lat: number, options?: {
|
|
|
6241
6873
|
//#region src/runtime-env.d.ts
|
|
6242
6874
|
/**
|
|
6243
6875
|
* Resolves runtime environment variables shared by the external-service clients
|
|
6244
|
-
* (geocoding, routing).
|
|
6876
|
+
* (geocoding, routing). Allowlisted build-time vars (`__GEOLIBRE_BUILD_ENV__`,
|
|
6877
|
+
* injected by `vite.config.ts`) are overlaid
|
|
6245
6878
|
* with project-supplied runtime vars (`window.__GEOLIBRE_RUNTIME_ENV__`, set
|
|
6246
6879
|
* from project preferences) so a self-hosted endpoint can be configured without
|
|
6247
6880
|
* a rebuild. Carries no React/MapLibre dependency so callers stay unit-testable.
|
|
6248
6881
|
*/
|
|
6882
|
+
/**
|
|
6883
|
+
* The allowlisted build-time environment, with no runtime overlay.
|
|
6884
|
+
*
|
|
6885
|
+
* For settings that must be fixed by the build and NOT overridable by a
|
|
6886
|
+
* `.geolibre.json` a user opened — the auth gate, the deployment profile, the
|
|
6887
|
+
* embed origin allowlist. Routing those through {@link getRuntimeEnvironment}
|
|
6888
|
+
* would let project-supplied `__GEOLIBRE_RUNTIME_ENV__` values relax them.
|
|
6889
|
+
*
|
|
6890
|
+
* Callers should prefer this over reading `import.meta.env` directly: a
|
|
6891
|
+
* whole-object read defeats Vite's per-key replacement and inlines every
|
|
6892
|
+
* `VITE_` var on the build machine into the chunk.
|
|
6893
|
+
*
|
|
6894
|
+
* @returns The build-time environment record.
|
|
6895
|
+
*/
|
|
6896
|
+
declare function getBuildEnvironment(): Record<string, string | undefined>;
|
|
6249
6897
|
/**
|
|
6250
6898
|
* Merges build-time env with project runtime env (the latter wins). Falls back
|
|
6251
6899
|
* to build-time env alone outside a browser (e.g. in tests).
|
|
@@ -6325,13 +6973,18 @@ declare function getMapboxAccessToken(env?: Record<string, string | undefined>):
|
|
|
6325
6973
|
/**
|
|
6326
6974
|
* Resolves the Cesium Ion access token from the runtime environment.
|
|
6327
6975
|
*
|
|
6328
|
-
*
|
|
6976
|
+
* Cesium World Terrain and Ion World Imagery need a Cesium Ion token. It is
|
|
6329
6977
|
* supplied via `VITE_CESIUM_TOKEN` (baked in at build time from the bare
|
|
6330
6978
|
* `CESIUM_TOKEN` env var, which `vite.config.ts` copies into the prefixed name)
|
|
6331
6979
|
* or set at runtime through Settings → Environment variables
|
|
6332
6980
|
* (`window.__GEOLIBRE_RUNTIME_ENV__`, which bypasses Vite's envPrefix allowlist,
|
|
6333
|
-
* so a bare `CESIUM_TOKEN` entry works there too).
|
|
6334
|
-
*
|
|
6981
|
+
* so a bare `CESIUM_TOKEN` entry works there too).
|
|
6982
|
+
*
|
|
6983
|
+
* The 3D-globe view itself does **not** need one: it draws the project basemap
|
|
6984
|
+
* as its base imagery whenever that basemap has a raster form (see
|
|
6985
|
+
* {@link basemapToCesiumImagery}), and falls back to Ion World Imagery — or, with
|
|
6986
|
+
* no token, to OpenStreetMap — for the ones that do not. So an absent token
|
|
6987
|
+
* costs terrain and the quality of that fallback, not the view.
|
|
6335
6988
|
*
|
|
6336
6989
|
* @param env - Environment record (defaults to the runtime environment);
|
|
6337
6990
|
* injectable for testing.
|
|
@@ -6628,5 +7281,5 @@ declare function setStoredAuthorName(name: string): void;
|
|
|
6628
7281
|
*/
|
|
6629
7282
|
declare function currentEditorIdentity(): string;
|
|
6630
7283
|
//#endregion
|
|
6631
|
-
export { AddTileLayerOptions, type AppState, ApplyLayerJoinsResult, ApplyVirtualFieldsResult, AttributeFormConfig, AttributeFormEvalOptions, AttributeFormFieldConfig, AttributeFormFieldError, AttributeFormValidation, AttributeFormValueMapEntry, AttributeFormWidget, BLANK_BASEMAP, BLEND_MODES, BUILT_IN_STYLE_PRESETS, BlendMode, CARTOCIUDAD_MIN_INTERVAL_MS, CARTOCIUDAD_PUBLIC_HOST, CHINA_BASEMAPS, CollabInvite, CollaborationChatMessage, CollaborationMode, CollaborationParticipant, CollaborationPresence, CollaborationRole, CollaborationState, ColorRamp, CommentAnchor, CommentAuthor, CommentReply, CompiledFeatureExpression, type ConversionToolKind, CopiedLayerStyle, CopiedRasterStyle, CopiedVectorStyle, CreateProjectOptions, type CredentialRedactionResult, DEFAULT_BASEMAP, DEFAULT_BLEND_MODE, DEFAULT_COLLABORATION_STATE, DEFAULT_DASHBOARD_COLUMNS, DEFAULT_EDITOR_IDENTITY, DEFAULT_EDITOR_TRACKING_CONFIG, DEFAULT_ELLIPSOID_ID, DEFAULT_FORWARD_GEOCODE_ENDPOINT, DEFAULT_GEOCODING_PROVIDER_ID, DEFAULT_LAYER_GROUP_OPACITY, DEFAULT_LAYER_STYLE, DEFAULT_LEGEND_CONFIG, DEFAULT_MAP_GRID_LAYOUT, DEFAULT_PRINT_LAYOUT, DEFAULT_PROJECT_NAME, DEFAULT_PROJECT_PREFERENCES, DEFAULT_REVERSE_GEOCODE_ENDPOINT, DEFAULT_ROUTING_ENDPOINT, DEFAULT_STORY_MAP, DUCKDB_VECTOR_FEATURE_WARN_COUNT, DUCKDB_VECTOR_ROUTE_BYTES, DashboardWidget, DashboardWidgetAggregation, DashboardWidgetType, DiagramData, DiagramDatum, DiagramField, DiagramSizeMode, DiagramType, DominantGeometry, EARTH_MEAN_RADIUS_METERS, EDITOR_IDENTITY_STORAGE_KEY, ELEVATION_REQUEST_TIMEOUT_MS, ELLIPSOIDS, EXPRESSION_FUNCTION_CATEGORIES, EditorTrackingConfig, EditorTrackingStampOptions, EffectiveVectorRule, ElevationFetchError, Ellipsoid, EllipsoidId, EvaluateMapExpressionOptions, ExpressionExpectedType, ExpressionFieldType, ExpressionFunctionCategory, ExpressionFunctionDoc, ExpressionPreview, ExpressionValidation, ExpressionVariable, ExternalNativePaintBridge, ExternalNativePaintMode, FEET_PER_METER, FEET_PER_MILE, FeatureExpressionMatches, FetchLike, FieldVisibility, FillPattern, GEOCODE_DISPLAY_NAME_KEY, GEOCODE_LAT_KEY, GEOCODE_LON_KEY, GEOCODE_PROVIDER_KEY, GEOCODE_SCORE_KEY, GEOCODE_STATUS_KEY, GEOCODING_PROVIDERS, GOOGLE_MAPS_API_KEY_HEADER, GeoLibreLayer, GeoLibreProject, type GeocodeMatch, type GeocodeRequest, type GeocodeStatus, type GeocoderConfig, type GeocodingPreferenceInput, GeocodingPreferences, type GeocodingProvider, type GeocodingProviderId, GeometryGeneratorType, type GpsStatusFix, GraduatedClassificationScheme, IndicatorAggregation, InitialLayerStyleOptions, IsochroneRequestBody, LARGE_VECTOR_FEATURE_THRESHOLD, LAYER_LIBRARY_BUNDLE_TYPE, LAYER_LIBRARY_BUNDLE_VERSION, LAYER_PALETTE, LAYER_TYPES, LabelAnchor, LabelDedupe, LabelStyle, LabelTransform, LayerCapabilities, LayerConnection, LayerGroup, LayerJoin, LayerJoinStats, LayerLibraryAddPlan, LayerLibraryCaptureFailure, LayerLibraryCaptureResult, LayerLibraryConfigPatch, LayerLibraryEntry, LayerPanelGroupHeaders, LayerPanelUnit, LayerStyle, LayerStyleClipboardKind, LayerTreeItem, LayerType, LayerVirtualField, LegendConfig, LegendCustomEntry, LegendCustomItem, LegendCustomShape, LegendItemOverride, LegendPanelPosition, LineDecoration, LngLat, MAX_DASHBOARD_COLUMNS, MAX_DIAGRAM_FEATURES, MAX_DIAGRAM_SCAN_FEATURES, MAX_LAYER_LIBRARY_ENTRIES, MAX_LAYER_LIBRARY_ENTRY_BYTES, MAX_MAP_GRID_DIM, MAX_POINTS_PER_REQUEST, MAX_PROCESSING_HISTORY, MAX_REDACT_DEPTH, MERCATOR_METERS_PER_PIXEL_AT_ZOOM_0, METERS_PER_FOOT, METERS_PER_MILE, METERS_PER_NAUTICAL_MILE, MIN_DASHBOARD_COLUMNS, MIN_DIAGRAM_SIZE, MapGridLayout, MapPreferences, MapProjection, MapScaleUnit, MapViewState, MarkerShape, MatrixRequestBody, ModelGraphEdge, ModelGraphNode, ModelGraphNodeKind, ModelGraphPort, ModelPortKind, ModelToolProvider, NETCDF_IMAGE_SOURCE_KIND, NOMINATIM_MIN_INTERVAL_MS, NOMINATIM_PUBLIC_HOST, type NetworkToolKind, type NominatimForwardResult, type NominatimReverseResult, NonGeographicCoordinates, OPENFREEMAP_BASEMAPS, PHOTO_FULL_PROPERTY, PHOTO_PROPERTY, PLANETARY_BASEMAPS, PLANETARY_BASEMAP_GROUPS, PLANETARY_BASEMAP_SENTINEL_PREFIX, PLANET_SWITCHER_OPTIONS, POINTER_ELEVATION_CACHE_LIMIT, POINTER_ELEVATION_DEBOUNCE_MS, PROJECT_CREDENTIAL_FIELDS, PROJECT_VERSION, PROTOMAPS_BASEMAPS, PUBLIC_GEOCODE_ROW_CAP, PUBLISHABLE_PLUGIN_SETTINGS, ParticipantIdentity, PlanetaryBasemap, PlanetaryBasemapGroup, PlanetaryBasemapSectionId, PointRenderer, PointerElevationResolver, PointerElevationResolverOptions, PolylineBatchOptions, PolylineDecodeResult, PrintLayoutConfig, PrintLayoutCorner, PrintLayoutLegendEntry, PrintLayoutPageFilter, ProcessingModel, ProcessingModelGraph, ProcessingModelStep, ProcessingRerunRequest, ProcessingRun, ProcessingRunKind, ProcessingRunStatus, ProjectComment, ProjectPluginControlPosition, ProjectPluginState, ProjectPreferences, ProjectTemplateEntry, ProportionalSizeRange, RAMP_STYLE_KEYS, RASTER_APPEARANCE_STATE_KEYS, REGIONAL_BASEMAPS, REGIONAL_BASEMAP_GROUPS, REGIONAL_BASEMAP_SENTINEL_PREFIX, type RasterToolKind, RecentProjectEntry, RegionalBasemap, RegionalBasemapRegionId, type ReverseGeocodeDisplay, RouteRequestBody, RoutingConfig, RoutingMetric, RoutingMode, RoutingPoint, RoutingRequestError, RuntimeEnvironmentVariable, SELECTION_MODES, SQL_QUERY_SOURCE_KIND, STYLE_LIBRARY_BUNDLE_TYPE, STYLE_LIBRARY_BUNDLE_VERSION, SYMBOL_STYLE_KEYS, SecondaryMapView, SelectionMode, type StatisticsToolKind, StoryActiveSlideMode, StoryChapter, StoryChapterAlignment, StoryChapterAnimation, StoryChapterLocation, StoryInsetPosition, StoryLayerOpacityChange, StoryMap, StorySlideMode, StrokeWidthUnit, StyleLibraryEntry, StyleLibraryEntryKind, TerrainMapLike, VECTOR_COLOR_RAMPS, ValidateMapExpressionOptions, VectorColorValue, VectorRule, VectorStyleMode, VectorStyleStop, type VectorToolKind, applyCopiedLayerStyle, applyGroupEffects, applyJoinsToLayer, applyLayerJoins, applyLayerVirtualFields, applyMatchedSelection, applyProjectToStore, applySelectionMode, attributeFormFieldLabel, attributeLinkUrl, batchDecodePolylines, bodyLengthToEarth, buildForwardGeocodeUrl, buildIsochroneRequest, buildLayerPanelUnits, buildLayerTree, buildMatrixRequest, buildReverseGeocodeUrl, buildRouteRequest, canRedoProjectRestore, canSaveLayerToLibrary, canUndoProjectRestore, captureLayerLibraryEntry, cascadeLayerJoinRefresh, circleRadiusValue, clearExternalNativePaintBridge, clearHistory, coerceAttributeFormValue, collectDiagramData, collectTransitiveJoinSourceIds, compareSequenceValues, compileFeatureExpression, controlRendersLayer, copyableLayerStyleKind, createDefaultMapView, createDefaultPrintLayout, createEmptyProject, createEqualIntervalBreaks, createGraduatedClassBreaks, createLayerLibraryEntryId, createPointerElevationResolver, createProjectTemplate, createQuantileBreaks, createSampleStoryMap, createStyleLibraryEntryId, csvRowsToGeocodeRequests, currentEditorIdentity, darkenHex, decodePolyline, decodePolylineDetailed, detachProjectCopy, detectNonGeographicCoordinates, diagramAnchor, diagramPixelSize, diagramsSuppressedByPointRenderer, dominantGeometry, drawMarkerPath, earthAreaToBody, earthLengthToBody, editorTrackingFieldNames, effectiveLayerRenderState, effectiveVectorRules, encodePolyline, ensureEditorTrackingFields, evaluateMapExpression, excludeHiddenFieldsFromGeojson, excludeHiddenFieldsFromProject, extractCopiedLayerStyle, extractStyleLibraryStyle, extrusionColorValue, extrusionHeightValue, featureSelectionId, fetchElevations, formatCameraAltitude, formatExpressionPreviewValue, formatRoundNum, generatorCircleRadiusValue, generatorSizeRange, geoJSONToPolylineStr, geocodeForward, geocodeMatchToFeature, geocodeReverse, geocoderMinIntervalMs, geocoderNeedsApiKey, geojsonHasZCoordinates, getActiveBodyRadiusRatio, getActiveEllipsoid, getActiveMeanRadiusMeters, getActiveSemiMajorAxisMeters, getAttributeFormField, getCesiumIonToken, getEllipsoid, getExternalNativePaintBridge, getGeocoderConfig, getGeocodingProvider, getGoogleMapsApiKey, getHistoryCoalesceMs, getMapboxAccessToken, getMaxHistoryFeatureCount, getPlanetaryBasemapById, getPlanetaryBasemapByStyleUrl, getProtomapsApiKey, getProtomapsStyleUrl, getRegionalBasemapById, getRegionalBasemapByStyleUrl, getRoundNum, getRoutingConfig, getRuntimeEnvironment, getSpatialExtensionPath, getVectorColorRamp, googleMapsApiKeyHeaderValue, groupMemberIndices, hasPathTraversal, hasRestorableLayerSource, hasSimpleStyleProperties, inferFieldTypes, inferLayerCapabilities, initialLayerStyle, interpolateColors, interpolateHexColor, interpolateRampColors, invertSelection, isAbsoluteFilesystemPath, isAllowedPluginManifestUrl, isAttributeFormFieldVisible, isCredentialFieldName, isDefaultPrintLayout, isDiagramStyleEnabled, isDuckDBQueryLayer, isExternalNativeLayerRecord, isGooglePhotorealisticTilesetUrl, isHexColor, isInitialLayerStyle, isIpadDesktopUserAgent, isMaintainedEditorTrackingField, isRegionalBasemapSentinel, isStyleLibraryTargetLayer, isStyleSpecColor, isVectorColorExpression, isochroneResponseToFeatures, layerGroupDepth, layerGroupMoveability, layerJoinKey, layerLibraryConfigPatch, layerLibraryEntryNeedsLocalFile, layerPanelGroupHeaders, lineWidthValue, mapZoomStepOutputs, matchFeaturesByExpression, matrixResponseToFeatures, meanRadiusMeters, mercatorMetersPerPixelAtZoom0, metersWidthExpression, nextDelayMs, nextLayerPaletteColor, nominatimResultToFeature, nominatimReverseResultToDisplay, nonEmptyRecord, normalizeDashboardColumns, normalizeGeocodingProviderId, normalizeGroupContiguity, normalizeHexColor, normalizeLayerCapabilities, normalizeLayerLibraryEntries, normalizeMapLayout, normalizeMapViewState, normalizeModelGraph, normalizeModels, normalizePrintLayoutConfig, normalizeProcessingHistory, normalizeProjectComments, normalizeSecondaryMapViews, normalizeStoryMap, normalizeStyleLibraryEntries, normalizeWidgets, parseContours, parseHexColor, parseHexColorList, parseJsonExpression, parseLayerLibrary, parseProject, parseStoryMapCsv, parseStoryMapJson, parseStyleLibrary, parseValueMapText, persistedThreeDTilesRequestHeaders, pickEditorIdentity, planLayerLibraryAdd, pluginOwnsPaint, polylineStrToGeoJSON, printLayoutConfigsEqual, projectFromStore, projectPathLabel, proportionalRadiusExpression, proportionalSizeRange, readStoredAuthorName, reapplyLayerJoins, redactCredentials, redactProjectCredentials, redactUrlCredentials, redo, registerProjectRestoreHistory, removeTrailingJsonCommas, reorderLayerGroupInPanel, requestIsochrone, requestMatrix, requestRoute, resolveEditorTrackingConfig, resolveGeocoderConfig, resolveLayerCapabilities, resolveMapGrid, resolveSvgSource, resolveThreeDTilesRequestHeaders, rgbToHex, routeResponseToFeatures, rowCap, ruleBasedColorExpression, ruleBasedVisibilityFilter, sampleMapTerrain, sampleMapTerrainPoint, sampleRemoteElevations, sanitizeLayerStylePatch, scaleAltitudeToActiveBody, scaleDenomination, scaleSpan, scrubCommentsForRemovedLayers, scrubLegendForRemovedLayers, scrubPrintLayoutForLayers, scrubPrintLayoutForRemovedLayers, scrubWidgetsForRemovedLayers, serializeLayerLibrary, serializeProject, serializeStoryMapCsv, serializeStoryMapJson, serializeStyleLibrary, setActiveEllipsoidId, setExternalNativePaintBridge, setGeocodingFetch, setHistoryCoalesceMs, setMaxHistoryFeatureCount, setStoredAuthorName, shouldThrottle, shouldUseTiledRendering, simpleStyleNumberValue, stampFeatureCollectionEditorTracking, stampFeatureEditorTracking, stampFeaturePropertiesEditorTracking, storyMapHasContent, stripGoogleMapsApiKeyHeader, stripJoinFields, stripVirtualFieldColumns, styleValue, subscribeProjectRestoreHistory, substituteExpressionVariables, supportsBridgedOpacity, transformGeojsonElevation, trimHistoryBySize, undo, unescapePolyline, unmatchedGeocodeFeature, unresolvedLayerLibraryJoins, useAppStore, validateAttributeFormField, validateAttributeFormValues, validateMapExpression, valueMapLabelFor, valueMapToText, vectorCircleColorValue, vectorColorExpression, vectorFillColorValue, vectorFillOpacityValue, vectorLineColorValue, vectorOutlineColorValue, vectorStrokeWidthValue };
|
|
7284
|
+
export { ALL_APP_PRIVILEGES, ALL_DEPLOYMENT_CAPABILITIES, AddTileLayerOptions, AppCapabilities, AppPrivilege, AppRole, type AppState, ApplyLayerJoinsResult, ApplyVirtualFieldsResult, AttributeFormConfig, AttributeFormEvalOptions, AttributeFormFieldConfig, AttributeFormFieldError, AttributeFormValidation, AttributeFormValueMapEntry, AttributeFormWidget, BLANK_BASEMAP, BLEND_MODES, BUILT_IN_STYLE_PRESETS, BlendMode, CARTOCIUDAD_MIN_INTERVAL_MS, CARTOCIUDAD_PUBLIC_HOST, CHINA_BASEMAPS, CesiumBasemapImagery, CollabInvite, CollaborationChatMessage, CollaborationMode, CollaborationParticipant, CollaborationPresence, CollaborationRole, CollaborationState, ColorRamp, CommentAnchor, CommentAuthor, CommentReply, CompiledFeatureExpression, type ConversionToolKind, CopiedLayerStyle, CopiedRasterStyle, CopiedVectorStyle, CreateProjectOptions, type CredentialRedactionResult, DEFAULT_BASEMAP, DEFAULT_BLEND_MODE, DEFAULT_COLLABORATION_STATE, DEFAULT_DASHBOARD_COLUMNS, DEFAULT_EDITOR_IDENTITY, DEFAULT_EDITOR_TRACKING_CONFIG, DEFAULT_ELLIPSOID_ID, DEFAULT_FORWARD_GEOCODE_ENDPOINT, DEFAULT_GEOCODING_PROVIDER_ID, DEFAULT_LAYER_GROUP_OPACITY, DEFAULT_LAYER_STYLE, DEFAULT_LEGEND_CONFIG, DEFAULT_MAP_GRID_LAYOUT, DEFAULT_PRINT_LAYOUT, DEFAULT_PROJECT_NAME, DEFAULT_PROJECT_PREFERENCES, DEFAULT_REVERSE_GEOCODE_ENDPOINT, DEFAULT_ROUTING_ENDPOINT, DEFAULT_STORY_MAP, DEPLOYMENT_CAPABILITIES, DUCKDB_VECTOR_FEATURE_WARN_COUNT, DUCKDB_VECTOR_ROUTE_BYTES, DashboardWidget, DashboardWidgetAggregation, DashboardWidgetType, DeploymentCapability, DiagramData, DiagramDatum, DiagramField, DiagramSizeMode, DiagramType, DominantGeometry, EARTH_MEAN_RADIUS_METERS, EDITOR_IDENTITY_STORAGE_KEY, ELEVATION_REQUEST_TIMEOUT_MS, ELLIPSOIDS, EXPRESSION_FUNCTION_CATEGORIES, EditorTrackingConfig, EditorTrackingStampOptions, EffectiveVectorRule, ElevationFetchError, Ellipsoid, EllipsoidId, EvaluateMapExpressionOptions, ExpressionExpectedType, ExpressionFieldType, ExpressionFunctionCategory, ExpressionFunctionDoc, ExpressionPreview, ExpressionValidation, ExpressionVariable, ExternalNativePaintBridge, ExternalNativePaintMode, FEET_PER_METER, FEET_PER_MILE, FeatureExpressionMatches, FetchLike, FieldVisibility, FillPattern, GEOCODE_DISPLAY_NAME_KEY, GEOCODE_LAT_KEY, GEOCODE_LON_KEY, GEOCODE_PROVIDER_KEY, GEOCODE_SCORE_KEY, GEOCODE_STATUS_KEY, GEOCODING_PROVIDERS, GOOGLE_MAPS_API_KEY_HEADER, GeoLibreLayer, GeoLibreProject, type GeocodeMatch, type GeocodeRequest, type GeocodeStatus, type GeocoderConfig, type GeocodingPreferenceInput, GeocodingPreferences, type GeocodingProvider, type GeocodingProviderId, GeometryGeneratorType, type GpsStatusFix, GraduatedClassificationScheme, IDENTIFY_ALL_LAYERS_ID, IndicatorAggregation, InitialLayerStyleOptions, IsochroneRequestBody, LARGE_VECTOR_FEATURE_THRESHOLD, LAYER_LIBRARY_BUNDLE_TYPE, LAYER_LIBRARY_BUNDLE_VERSION, LAYER_PALETTE, LAYER_TYPES, LabelAnchor, LabelDedupe, LabelStyle, LabelTransform, LayerCapabilities, LayerConnection, LayerGroup, LayerJoin, LayerJoinStats, LayerLibraryAddPlan, LayerLibraryCaptureFailure, LayerLibraryCaptureResult, LayerLibraryConfigPatch, LayerLibraryEntry, LayerPanelGroupHeaders, LayerPanelUnit, LayerPopupConfig, LayerQuickFilter, LayerStyle, LayerStyleClipboardKind, LayerTreeItem, LayerType, LayerVirtualField, LegendConfig, LegendCustomEntry, LegendCustomItem, LegendCustomShape, LegendItemOverride, LegendPanelPosition, LineDecoration, LngLat, MAX_DASHBOARD_COLUMNS, MAX_DIAGRAM_FEATURES, MAX_DIAGRAM_SCAN_FEATURES, MAX_LAYER_LIBRARY_ENTRIES, MAX_LAYER_LIBRARY_ENTRY_BYTES, MAX_MAP_GRID_DIM, MAX_POINTS_PER_REQUEST, MAX_PROCESSING_HISTORY, MAX_REDACT_DEPTH, MERCATOR_METERS_PER_PIXEL_AT_ZOOM_0, METERS_PER_FOOT, METERS_PER_MILE, METERS_PER_NAUTICAL_MILE, MIN_DASHBOARD_COLUMNS, MIN_DIAGRAM_SIZE, MapGridLayout, MapPreferences, MapProjection, MapScaleUnit, MapViewState, MarkerShape, MatrixRequestBody, ModelGraphEdge, ModelGraphNode, ModelGraphNodeKind, ModelGraphPort, ModelPortKind, ModelToolProvider, NETCDF_IMAGE_SOURCE_KIND, NOMINATIM_MIN_INTERVAL_MS, NOMINATIM_PUBLIC_HOST, NO_DEPLOYMENT_CAPABILITIES, type NetworkToolKind, type NominatimForwardResult, type NominatimReverseResult, NonGeographicCoordinates, OPENFREEMAP_BASEMAPS, PHOTO_FULL_PROPERTY, PHOTO_PROPERTY, PLANETARY_BASEMAPS, PLANETARY_BASEMAP_GROUPS, PLANETARY_BASEMAP_SENTINEL_PREFIX, PLANET_SWITCHER_OPTIONS, POINTER_ELEVATION_CACHE_LIMIT, POINTER_ELEVATION_DEBOUNCE_MS, PROJECT_CREDENTIAL_FIELDS, PROJECT_VERSION, PROTOMAPS_BASEMAPS, PUBLIC_GEOCODE_ROW_CAP, PUBLISHABLE_PLUGIN_SETTINGS, ParticipantIdentity, PlanetaryBasemap, PlanetaryBasemapGroup, PlanetaryBasemapSectionId, PointRenderer, PointerElevationResolver, PointerElevationResolverOptions, PolylineBatchOptions, PolylineDecodeResult, PopupDateFormat, PopupExpressionOptions, PopupFieldConfig, PopupFieldFormat, PopupFieldKind, PopupFormatOptions, PopupRow, PrintLayoutConfig, PrintLayoutCorner, PrintLayoutLegendEntry, PrintLayoutPageFilter, ProcessingModel, ProcessingModelGraph, ProcessingModelStep, ProcessingRerunRequest, ProcessingRun, ProcessingRunKind, ProcessingRunStatus, ProjectComment, ProjectPluginControlPosition, ProjectPluginState, ProjectPreferences, ProjectTemplateEntry, ProportionalSizeRange, QuickFilterDateKind, QuickFilterKind, QuickFilterTextOperator, RAMP_STYLE_KEYS, RASTER_APPEARANCE_STATE_KEYS, REGIONAL_BASEMAPS, REGIONAL_BASEMAP_GROUPS, REGIONAL_BASEMAP_SENTINEL_PREFIX, ROLE_PRIVILEGES, type RasterToolKind, RecentProjectEntry, RegionalBasemap, RegionalBasemapRegionId, ResolvePopupRowsOptions, type ReverseGeocodeDisplay, RouteRequestBody, RoutingConfig, RoutingMetric, RoutingMode, RoutingPoint, RoutingRequestError, RuntimeEnvironmentVariable, SELECTION_MODES, SQL_QUERY_SOURCE_KIND, STYLE_LIBRARY_BUNDLE_TYPE, STYLE_LIBRARY_BUNDLE_VERSION, SYMBOL_STYLE_KEYS, SecondaryMapView, SelectionMode, type StatisticsToolKind, StoryActiveSlideMode, StoryChapter, StoryChapterAlignment, StoryChapterAnimation, StoryChapterLocation, StoryInsetPosition, StoryLayerOpacityChange, StoryMap, StorySlideMode, StrokeWidthUnit, StyleLibraryEntry, StyleLibraryEntryKind, TerrainMapLike, VECTOR_COLOR_RAMPS, ValidateMapExpressionOptions, VectorColorValue, VectorRule, VectorStyleMode, VectorStyleStop, type VectorToolKind, activeQuickFilters, appPrivilegeReason, applyCopiedLayerStyle, applyGroupEffects, applyJoinsToLayer, applyLayerJoins, applyLayerVirtualFields, applyMatchedSelection, applyProjectToStore, applySelectionMode, attributeFormFieldLabel, attributeLinkUrl, basemapToCesiumImagery, batchDecodePolylines, bodyLengthToEarth, buildForwardGeocodeUrl, buildIsochroneRequest, buildLayerPanelUnits, buildLayerTree, buildMatrixRequest, buildReverseGeocodeUrl, buildRouteRequest, canRedoProjectRestore, canSaveLayerToLibrary, canUndoProjectRestore, captureLayerLibraryEntry, cascadeLayerJoinRefresh, circleRadiusValue, clearExternalNativePaintBridge, clearHistory, clearQuickFilterValues, coerceAttributeFormValue, collectDiagramData, collectTransitiveJoinSourceIds, compareSequenceValues, compileFeatureExpression, compileQuickFilter, compileQuickFilters, controlRendersLayer, copyableLayerStyleKind, createDefaultAppCapabilities, createDefaultMapView, createDefaultPrintLayout, createEmptyProject, createEqualIntervalBreaks, createGraduatedClassBreaks, createLayerLibraryEntryId, createPointerElevationResolver, createProjectTemplate, createQuantileBreaks, createSampleStoryMap, createStyleLibraryEntryId, csvRowsToGeocodeRequests, currentEditorIdentity, darkenHex, decodePolyline, decodePolylineDetailed, detachProjectCopy, detectNonGeographicCoordinates, diagramAnchor, diagramPixelSize, diagramsSuppressedByPointRenderer, dominantGeometry, drawMarkerPath, earthAreaToBody, earthLengthToBody, editorTrackingFieldNames, effectiveLayerRenderState, effectiveVectorRules, encodePolyline, ensureEditorTrackingFields, evaluateMapExpression, excludeHiddenFieldsFromGeojson, excludeHiddenFieldsFromProject, extractCopiedLayerStyle, extractStyleLibraryStyle, extrusionColorValue, extrusionHeightValue, featureSelectionId, fetchElevations, formatCameraAltitude, formatExpressionPreviewValue, formatPixelValue, formatPopupValue, formatRoundNum, generatorCircleRadiusValue, generatorSizeRange, geoJSONToPolylineStr, geocodeForward, geocodeMatchToFeature, geocodeReverse, geocoderMinIntervalMs, geocoderNeedsApiKey, geojsonHasZCoordinates, getActiveBodyRadiusRatio, getActiveEllipsoid, getActiveMeanRadiusMeters, getActiveSemiMajorAxisMeters, getAttributeFormField, getBuildEnvironment, getCesiumIonToken, getEllipsoid, getExternalNativePaintBridge, getGeocoderConfig, getGeocodingProvider, getGoogleMapsApiKey, getHistoryCoalesceMs, getMapboxAccessToken, getMaxHistoryFeatureCount, getPlanetaryBasemapById, getPlanetaryBasemapByStyleUrl, getProtomapsApiKey, getProtomapsStyleUrl, getRegionalBasemapById, getRegionalBasemapByStyleUrl, getRoundNum, getRoutingConfig, getRuntimeEnvironment, getSpatialExtensionPath, getVectorColorRamp, googleMapsApiKeyHeaderValue, groupMemberIndices, hasActiveQuickFilter, hasAppPrivilege, hasPathTraversal, hasRestorableLayerSource, hasSimpleStyleProperties, inferFieldTypes, inferLayerCapabilities, initialLayerStyle, interpolateColors, interpolateHexColor, interpolateRampColors, intersectPrivileges, invertSelection, isAbsoluteFilesystemPath, isAllowedPluginManifestUrl, isAttributeFormFieldVisible, isCredentialFieldName, isDefaultPrintLayout, isDeploymentCapability, isDiagramStyleEnabled, isDuckDBQueryLayer, isExternalNativeLayerRecord, isGooglePhotorealisticTilesetUrl, isHexColor, isInitialLayerStyle, isInlineImageValue, isInternalPopupField, isIpadDesktopUserAgent, isMaintainedEditorTrackingField, isPopupClickEnabled, isPopupHoverEnabled, isRegionalBasemapSentinel, isSafePopupUrl, isStyleLibraryTargetLayer, isStyleSpecColor, isVectorColorExpression, isochroneResponseToFeatures, layerGroupDepth, layerGroupMoveability, layerJoinKey, layerLibraryConfigPatch, layerLibraryEntryNeedsLocalFile, layerPanelGroupHeaders, lineWidthValue, mapZoomStepOutputs, matchFeaturesByExpression, matrixResponseToFeatures, meanRadiusMeters, mercatorMetersPerPixelAtZoom0, metersWidthExpression, nextDelayMs, nextLayerPaletteColor, nominatimResultToFeature, nominatimReverseResultToDisplay, nonEmptyRecord, normalizeAppPrivileges, normalizeBlankBackgroundColor, normalizeDashboardColumns, normalizeGeocodingProviderId, normalizeGroupContiguity, normalizeHexColor, normalizeLayerCapabilities, normalizeLayerLibraryEntries, normalizeMapLayout, normalizeMapViewState, normalizeModelGraph, normalizeModels, normalizePrintLayoutConfig, normalizeProcessingHistory, normalizeProjectComments, normalizeSecondaryMapViews, normalizeStoryMap, normalizeStyleLibraryEntries, normalizeWidgets, parseContours, parseDeploymentCapabilities, parseHexColor, parseHexColorList, parseJsonExpression, parseLayerLibrary, parseProject, parseStoryMapCsv, parseStoryMapJson, parseStyleLibrary, parseValueMapText, persistedThreeDTilesRequestHeaders, pickEditorIdentity, planLayerLibraryAdd, pluginOwnsPaint, polylineStrToGeoJSON, popupFieldLabel, printLayoutConfigsEqual, projectFromStore, projectPathLabel, proportionalRadiusExpression, proportionalSizeRange, readStoredAuthorName, reapplyLayerJoins, redactCredentials, redactProjectCredentials, redactUrlCredentials, redo, registerProjectRestoreHistory, removeTrailingJsonCommas, reorderLayerGroupInPanel, requestIsochrone, requestMatrix, requestRoute, resolveConfiguredPopupTitle, resolveEditorTrackingConfig, resolveGeocoderConfig, resolveLayerCapabilities, resolveMapGrid, resolvePopupBody, resolvePopupRows, resolvePopupTitle, resolveRolePrivileges, resolveSvgSource, resolveThreeDTilesRequestHeaders, rgbToHex, routeResponseToFeatures, rowCap, ruleBasedColorExpression, ruleBasedVisibilityFilter, sameCesiumImagery, sampleMapTerrain, sampleMapTerrainPoint, sampleRemoteElevations, sanitizeLayerStylePatch, scaleAltitudeToActiveBody, scaleDenomination, scaleSpan, scrubCommentsForRemovedLayers, scrubLegendForRemovedLayers, scrubPrintLayoutForLayers, scrubPrintLayoutForRemovedLayers, scrubWidgetsForRemovedLayers, serializeLayerLibrary, serializeProject, serializeStoryMapCsv, serializeStoryMapJson, serializeStyleLibrary, setActiveEllipsoidId, setExternalNativePaintBridge, setGeocodingFetch, setHistoryCoalesceMs, setMaxHistoryFeatureCount, setStoredAuthorName, shouldThrottle, shouldUseTiledRendering, simpleStyleNumberValue, stampFeatureCollectionEditorTracking, stampFeatureEditorTracking, stampFeaturePropertiesEditorTracking, storyMapHasContent, stringifyPopupValue, stripGoogleMapsApiKeyHeader, stripJoinFields, stripVirtualFieldColumns, styleValue, subscribeProjectRestoreHistory, substituteExpressionVariables, supportsBridgedOpacity, transformGeojsonElevation, trimHistoryBySize, undo, unescapePolyline, unmatchedGeocodeFeature, unresolvedLayerLibraryJoins, useAppCapability, useAppStore, validateAttributeFormField, validateAttributeFormValues, validateMapExpression, valueMapLabelFor, valueMapToText, vectorCircleColorValue, vectorColorExpression, vectorFillColorValue, vectorFillOpacityValue, vectorLineColorValue, vectorOutlineColorValue, vectorStrokeWidthValue, visiblePopupFields, visiblePopupProperties };
|
|
6632
7285
|
//# sourceMappingURL=index.d.mts.map
|