-
Notifications
You must be signed in to change notification settings - Fork 48
/
Copy pathindex.ts
221 lines (194 loc) · 7.27 KB
/
index.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/
import { fromMBtoBytes } from './util';
import {
ALLOWED_FILE_EXTENSIONS,
MAX_FILE_PAYLOAD_SIZE,
MAX_FILE_PAYLOAD_SIZE_IN_MB,
PLUGIN_ID,
MAPS_APP_ID,
PLUGIN_NAME,
} from './constants/shared';
export {
fromMBtoBytes,
ALLOWED_FILE_EXTENSIONS,
MAX_FILE_PAYLOAD_SIZE,
MAX_FILE_PAYLOAD_SIZE_IN_MB,
PLUGIN_ID,
MAPS_APP_ID,
PLUGIN_NAME,
};
export const DOCUMENTS_DEFAULT_MARKER_SIZE = 5;
export const DOCUMENTS_MIN_MARKER_SIZE = 0;
export const DOCUMENTS_MAX_MARKER_SIZE = 100;
export const DOCUMENTS_DEFAULT_MARKER_BORDER_THICKNESS = 1;
export const DOCUMENTS_MIN_MARKER_BORDER_THICKNESS = 0;
export const DOCUMENTS_MAX_MARKER_BORDER_THICKNESS = 100;
export const DOCUMENTS_DEFAULT_REQUEST_NUMBER = 1000;
export const DOCUMENTS_DEFAULT_SHOW_TOOLTIPS: boolean = false;
export const DOCUMENTS_DEFAULT_DISPLAY_TOOLTIPS_ON_HOVER: boolean = true;
export const DOCUMENTS_DEFAULT_APPLY_GLOBAL_FILTERS: boolean = true;
export const DOCUMENTS_DEFAULT_TOOLTIPS: string[] = [];
export const DOCUMENTS_DEFAULT_LABEL_ENABLES: boolean = false;
export enum DOCUMENTS_LABEL_TEXT_TYPE {
BY_FIELD = 'by_field',
FIXED = 'fixed',
}
export const DOCUMENTS_DEFAULT_LABEL_TEXT_TYPE: string = DOCUMENTS_LABEL_TEXT_TYPE.BY_FIELD;
export const DOCUMENTS_DEFAULT_LABEL_SIZE: number = 15;
export const DOCUMENTS_MIN_LABEL_SIZE: number = 1;
export const DOCUMENTS_MAX_LABEL_SIZE: number = 100;
export const DOCUMENTS_DEFAULT_LABEL_COLOR: string = '#000000';
export const DOCUMENTS_DEFAULT_LABEL_BORDER_COLOR: string = '#FFFFFF';
export const DOCUMENTS_DEFAULT_LABEL_BORDER_WIDTH: number = 20;
export const DOCUMENTS_NONE_LABEL_BORDER_WIDTH: number = 0;
export const DOCUMENTS_SMALL_LABEL_BORDER_WIDTH: number = 2;
export const DOCUMENTS_MEDIUM_LABEL_BORDER_WIDTH: number = 5;
export const DOCUMENTS_LARGE_LABEL_BORDER_WIDTH: number = 10;
export const LAYER_PANEL_HIDE_LAYER_ICON = 'eyeClosed';
export const LAYER_PANEL_SHOW_LAYER_ICON = 'eye';
export const MAP_DATA_LAYER_DEFAULT_OPACITY = 70;
export const MAP_DEFAULT_MAX_ZOOM = 22;
export const MAP_DEFAULT_MIN_ZOOM = 0;
export const MAP_LAYER_DEFAULT_MAX_OPACITY = 100;
export const MAP_LAYER_DEFAULT_MIN_OPACITY = 0;
export const MAP_LAYER_DEFAULT_NAME = 'Default map';
export const MAP_LAYER_DEFAULT_OPACITY_STEP = 1;
export const MAP_REFERENCE_LAYER_DEFAULT_OPACITY = 100;
// Make this configurable from map settings
export const MAX_LAYER_LIMIT = 100;
export const MAX_LAYER_NAME_LIMIT = 35;
export const MAX_LONGITUDE = 180;
export const MIN_LONGITUDE = -180;
export const NEW_MAP_LAYER_DEFAULT_PREFIX = 'New layer';
export const MAP_SAVED_OBJECT_TYPE = 'map';
// TODO: Replace with actual app icon
export const MAPS_APP_ICON = 'gisApp';
export const MAPS_VISUALIZATION_DESCRIPTION = 'Create map visualization with multiple layers';
export const CLUSTER_DEFAULT_FILL_TYPE = 'gradient';
export const CLUSTER_DEFAULT_PALETTE = 'blue';
export const CLUSTER_MIN_BORDER_THICKNESS = 0;
export const CLUSTER_MAX_BORDER_THICKNESS = 100;
export const CLUSTER_DEFAULT_MARKER_BORDER_THICKNESS = 1;
//This is a valid value in geohex,geotile and geohash aggregation.
export const CLUSTER_DEFAULT_PRECISION = 2;
export const CLUSTER_DEFAULT_METRIC_AGG = 'count';
export const CLUSTER_DEFAULT_CLUSTER_AGG = 'geohash_grid';
// Starting position [lng, lat] and zoom
export const MAP_INITIAL_STATE = {
lng: 0,
lat: 0,
zoom: 1,
};
export const APP_PATH = {
LANDING_PAGE_PATH: '/',
CREATE_MAP: '/create',
EDIT_MAP: '/:id',
STATS: '/stats',
};
export const APP_API = '/api/maps-dashboards';
export enum DASHBOARDS_MAPS_LAYER_NAME {
OPENSEARCH_MAP = 'OpenSearch map',
DOCUMENTS = 'Documents',
CUSTOM_MAP = 'Custom map',
CLUSTER = 'Cluster',
}
export enum DASHBOARDS_MAPS_LAYER_TYPE {
OPENSEARCH_MAP = 'opensearch_vector_tile_map',
DOCUMENTS = 'documents',
CUSTOM_MAP = 'custom_map',
CLUSTER = 'cluster',
}
export enum DASHBOARDS_CUSTOM_MAPS_LAYER_TYPE {
WMS = 'wms',
TMS = 'tms',
}
export enum DASHBOARDS_MAPS_LAYER_ICON {
OPENSEARCH_MAP = 'globe',
DOCUMENTS = 'document',
CUSTOM_MAP = 'globe',
CLUSTER = 'heatmap',
}
export enum DASHBOARDS_MAPS_LAYER_DESCRIPTION {
OPENSEARCH_MAP = 'Use default OpenSearch basemaps.',
DOCUMENTS = 'View points, lines, and polygons on the map.',
CUSTOM_MAP = 'Configure maps to use a custom map source.',
CLUSTER = 'Geospatial data grouped to show density.',
}
export const DOCUMENTS = {
name: DASHBOARDS_MAPS_LAYER_NAME.DOCUMENTS,
type: DASHBOARDS_MAPS_LAYER_TYPE.DOCUMENTS,
icon: DASHBOARDS_MAPS_LAYER_ICON.DOCUMENTS,
description: DASHBOARDS_MAPS_LAYER_DESCRIPTION.DOCUMENTS,
};
export const CLUSTER = {
name: DASHBOARDS_MAPS_LAYER_NAME.CLUSTER,
type: DASHBOARDS_MAPS_LAYER_TYPE.CLUSTER,
icon: DASHBOARDS_MAPS_LAYER_ICON.CLUSTER,
description: DASHBOARDS_MAPS_LAYER_DESCRIPTION.CLUSTER,
};
export const OPENSEARCH_MAP_LAYER = {
name: DASHBOARDS_MAPS_LAYER_NAME.OPENSEARCH_MAP,
type: DASHBOARDS_MAPS_LAYER_TYPE.OPENSEARCH_MAP,
icon: DASHBOARDS_MAPS_LAYER_ICON.OPENSEARCH_MAP,
description: DASHBOARDS_MAPS_LAYER_DESCRIPTION.OPENSEARCH_MAP,
};
export const CUSTOM_MAP = {
name: DASHBOARDS_MAPS_LAYER_NAME.CUSTOM_MAP,
type: DASHBOARDS_MAPS_LAYER_TYPE.CUSTOM_MAP,
icon: DASHBOARDS_MAPS_LAYER_ICON.CUSTOM_MAP,
description: DASHBOARDS_MAPS_LAYER_DESCRIPTION.CUSTOM_MAP,
};
export interface Layer {
name: DASHBOARDS_MAPS_LAYER_NAME;
type: DASHBOARDS_MAPS_LAYER_TYPE;
icon: DASHBOARDS_MAPS_LAYER_ICON;
description: DASHBOARDS_MAPS_LAYER_DESCRIPTION;
}
export const LAYER_VISIBILITY = {
NONE: 'none',
VISIBLE: 'visible',
};
export const LAYER_ICON_TYPE_MAP: { [key: string]: string } = {
[DASHBOARDS_MAPS_LAYER_TYPE.OPENSEARCH_MAP]: 'globe',
[DASHBOARDS_MAPS_LAYER_TYPE.DOCUMENTS]: 'document',
[DASHBOARDS_MAPS_LAYER_TYPE.CUSTOM_MAP]: 'globe',
[DASHBOARDS_MAPS_LAYER_TYPE.CLUSTER]: 'heatmap',
};
// refer https://github.com/opensearch-project/i18n-plugin/blob/main/DEVELOPER_GUIDE.md#new-locale for OSD supported languages
export const OSD_LANGUAGES = ['en', 'es', 'fr', 'de', 'ja', 'ko', 'zh']; // all these codes are also supported in vector tiles map
export const FALLBACK_LANGUAGE = 'en';
export enum TOOLTIP_STATE {
DISPLAY_FEATURES = 'DISPLAY_FEATURES',
FILTER_DRAW_SHAPE = 'FILTER_DRAW_SHAPE',
}
export enum FILTER_DRAW_MODE {
NONE = 'none', // draw filter is inactive
POLYGON = 'polygon', // Filter is active and set to draw polygon
RECTANGLE = 'rectangle', // Filter is active and set to draw rectangle
}
export const MAPBOX_GL_DRAW_CREATE_LISTENER = 'draw.create';
export enum MAPBOX_GL_DRAW_MODES {
DRAW_POLYGON = 'draw_polygon',
DRAW_RECTANGLE = 'draw_rectangle',
SIMPLE_SELECT = 'simple_select',
}
export interface DrawFilterProperties {
relation?: string;
mode: FILTER_DRAW_MODE;
filterLabel?: string;
}
export const DRAW_FILTER_SHAPE_TITLE = 'DRAW SHAPE';
export const DRAW_FILTER_POLYGON_DEFAULT_LABEL = 'polygon';
export const DRAW_FILTER_RECTANGLE_DEFAULT_LABEL = 'rectangle';
export const DRAW_FILTER_POLYGON = 'Draw Polygon';
export const DRAW_FILTER_CANCEL = 'Cancel';
export const DRAW_FILTER_RECTANGLE = 'Draw Rectangle';
export const DRAW_FILTER_SPATIAL_RELATIONS = ['intersects', 'disjoint', 'within'];
export const PER_PAGE_REQUEST_NUMBER = 50;
export const DEFAULT_VECTOR_TILE_STYLES = {
BASIC: 'basic',
DARK: 'dark',
};