@geogirafe/lib-geoportal
Version:
GeoGirafe is a flexible application to build online geoportals.
327 lines (326 loc) • 8.94 kB
TypeScript
export declare enum HighlightMode {
HighlightAll = "highlight-all",
HighlightPerLayer = "highlight-per-layer"
}
import { Config as SanitizeConfig } from 'dompurify';
declare class GirafeConfig {
general: {
locale: string;
defaultUrlPrefix: string;
logLevel: 'debug' | 'info' | 'warn' | 'error';
};
languages: {
translations: {
[key: string]: string[];
};
defaultLanguage: string;
};
interface: {
defaultSelectionComponent: string;
darkFrontendMode: boolean | undefined;
darkMapMode: boolean;
};
themes: {
url: string;
defaultTheme: string;
imagesUrlPrefix: string;
showErrorsOnStart: boolean;
selectionMode: 'add' | 'replace';
};
basemaps: {
show: boolean;
defaultBasemap: string;
OSM: boolean;
SwissTopoVectorTiles: boolean;
emptyBasemap: boolean;
opacityBasemaps: string[];
};
treeview: {
hideLegendWhenLayerIsDeactivated: boolean;
defaultIconSize: {
width: number;
height: number;
};
};
search?: {
providers: ({
type: 'geomapfish';
url: string;
resultSrid: string;
providerName?: string;
} | {
type: 'geoadminch';
bbox?: string;
locationOrigins?: string;
providerName?: string;
})[];
objectPreview?: boolean;
layerPreview?: boolean;
minResolution?: number;
defaultFillColor?: string;
defaultStrokeColor?: string;
defaultStrokeWidth?: number;
paintSearchResults?: boolean;
};
print?: {
url: string;
formats?: string[];
defaultFormat?: string;
layouts?: string[];
defaultLayout?: string;
scales?: number[];
defaultScale?: number;
attributeNames?: string[];
printLegend?: {
useBbox?: boolean;
label?: Record<string, boolean | undefined>;
params?: Record<string, Record<string, unknown>>;
showGroupsTitle?: boolean;
};
customScale?: boolean;
};
selection: {
maxFeature: number;
defaultFillColor: string;
defaultStrokeColor: string;
defaultStrokeWidth: number;
highlightFillColor: string;
highlightStrokeColor: string;
defaultHighlightMode: HighlightMode;
};
drawing: {
defaultFillColor: string;
defaultStrokeColor: string;
defaultStrokeWidth: number;
defaultTextSize: number;
defaultFont: string;
defaultVertexRadius: number;
defaultVertexFillColor: string;
defaultVertexStrokeWidth: number;
};
share?: {
service: 'gmf' | 'geogirafe' | null;
preferNames: boolean;
createUrl: string;
getUrl?: string;
iframeBaseUrl?: string;
};
projections: {
[key: string]: string;
};
map: {
srid: string;
startZoom: string;
startPosition: string;
maxExtent?: string;
scales: number[];
constrainScales: boolean;
constrainRotation: boolean;
showScaleLine: boolean;
};
map3d?: {
terrainImagery: {
url: string;
srid: 4326 | 3857;
minLoD: number | undefined;
maxLoD: number | undefined;
coverageArea: number[] | undefined;
};
tilesetsMaxError: number | undefined;
terrainUrl: string;
tilesetsUrls: string[];
maximumZoomDistance: number;
};
lidar?: {
url: string;
};
news?: {
urls: string[];
autoDisplay: boolean;
sanitizeConfig?: SanitizeConfig;
};
externalLayers?: {
predefinedSources: {
label: string;
type: 'WMS' | 'WMTS';
url: string;
}[];
};
contextmenu: {
crs: {
code: string;
translation: string;
format: 'decimal' | 'dms';
precision: number;
}[];
sources: {
id: string;
translation: string;
prefix: string;
suffix: string;
precision: number;
crs: string;
nodata: number;
url: string;
loading: boolean;
}[];
links: {
translation: string;
crs: string;
url: string;
}[];
};
crs: {
code: string;
definition: string;
}[];
csv: {
encoding: string;
extension: string;
includeHeader: boolean;
quote: string;
separator: string;
};
infoWindow: {
defaultWindowWidth: string;
defaultWindowHeight: string;
defaultWindowPositionTop: string;
defaultWindowPositionLeft: string;
};
offline?: {
downloadStartZoom: number;
downloadEndZoom: number;
};
query: {
legacy: boolean;
sanitizeConfig?: SanitizeConfig;
};
gmfauth?: {
url: string;
loginRequired: boolean;
checkSessionOnLoad: boolean;
audience: string[];
authMode: 'cookie';
alwaysSendCookies: boolean;
refererPolicy: ReferrerPolicy;
audienceExcludedPaths: string[];
};
oauth?: {
issuer: {
url: string;
algorithm: 'oauth2' | 'oidc';
codeChallengeMethod: string;
clientId: string;
scope: string;
loginRequired: boolean;
checkSessionOnLoad: boolean;
audience: string[];
audienceExcludedPaths: string[];
alwaysSendCookies: boolean;
customSilentLoginParams: {
[key: string]: string;
};
customLoginParams: {
[key: string]: string;
};
};
geomapfish: {
userInfoUrl: string;
loginUrl: string;
logoutUrl: string;
anonymousUsername: string;
authMode: 'token' | 'cookie';
refererPolicy: ReferrerPolicy;
};
};
userdata: {
source: 'localStorage' | 'server';
getUrl: string | undefined;
postUrl: string | undefined;
};
contact?: {
url: string;
reasons: string[];
email: string;
};
onboarding?: {
steps: {
component?: string;
element: string;
title: string;
description: string;
}[];
};
api?: {
demo: {
center: string;
zoom: string;
basemap: string;
crosshair: string;
tooltip: string;
layers: string;
multiLayers: string;
layersWithConfig: string;
layersWithConfigCenter: string;
};
};
feedback?: {
url: string;
method: 'POST' | 'GET';
components: {
name: string;
question: string;
placement: 'bottom-left' | 'bottom-center' | 'bottom-right' | 'top-left' | 'top-center' | 'top-right' | 'center-left' | 'center-center' | 'center-right';
margins: string;
}[];
};
filtering?: {
gmfLayerMetadataUrl?: string;
};
permalink?: {
sanitizeConfig?: SanitizeConfig;
};
extendedConfig?: Record<string, object>;
static readonly DEFAULT_LOCALE = "en-US";
/**
* Creates the configuration of the app validating the json passed or giving default values.
*
* Every property of config that is not complying with GirafeConfig type is ignored.
* @param config the configuration
*/
constructor(config: GirafeConfig);
private initConfigProjections;
private initConfigMap3D;
private initConfigMap;
private initConfigQuery;
private initConfigDrawing;
private initConfigShare;
private initConfigSelection;
private initConfigPrint;
private initConfigSearch;
private initConfigTreeview;
private initConfigBasemaps;
private initConfigLidar;
private initConfigNews;
private initConfigCsv;
private initConfigInfoWindow;
private initConfigContact;
private initConfigOffline;
private initConfigThemes;
private initConfigLanguages;
private initConfigInterface;
private initConfigGeneral;
private initGmfOauth;
private initConfigOauth;
private initUserData;
private initContextMenu;
private initCRS;
private initExternalLayers;
private initExtendedConfig;
private initOnboarding;
private initFeedback;
private initApiConfig;
private initConfigFiltering;
private initPermalinkConfig;
}
export default GirafeConfig;