@opengeoweb/core 4.6.0 → 4.6.1
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/index.esm.js +599 -128
- package/index.umd.js +622 -127
- package/lib/components/ConfigurableMap/ConfigurableMapConnect.d.ts +1 -0
- package/lib/components/FeatureInfo/GetFeatureInfoButtonConnect.d.ts +8 -0
- package/lib/components/FeatureInfo/GetFeatureInfoButtonConnect.spec.d.ts +1 -0
- package/lib/components/FeatureInfo/GetFeatureInfoConnect.d.ts +8 -0
- package/lib/components/FeatureInfo/GetFeatureInfoConnect.spec.d.ts +1 -0
- package/lib/components/FeatureInfo/GetFeatureInfoDialog.d.ts +16 -0
- package/lib/components/FeatureInfo/GetFeatureInfoDialog.spec.d.ts +1 -0
- package/lib/components/FeatureInfo/index.d.ts +3 -0
- package/lib/components/FeatureInfo/utils.d.ts +17 -0
- package/lib/components/FeatureInfo/utils.spec.d.ts +1 -0
- package/lib/components/LayerManager/LayerSelect/LayerSelectUtils.d.ts +2 -2
- package/lib/components/LayerManager/LayerSelect/ServiceList/ServiceList.d.ts +2 -2
- package/lib/components/LayerManager/LayerSelect/ServiceOptionsDialog/ServiceOptionsDialog.d.ts +2 -2
- package/lib/components/LayerManager/LayerSelect/ServicePopup/ServicePopup.d.ts +2 -2
- package/lib/components/LayerManager/LayerSelect/ServicePopup/utils.d.ts +3 -3
- package/lib/store/layerSelect/reducer.d.ts +3 -1
- package/lib/store/layerSelect/selectors.d.ts +6 -39
- package/lib/store/layerSelect/types.d.ts +12 -20
- package/lib/store/layerSelect/utils.d.ts +5 -0
- package/lib/store/layerSelect/utils.spec.d.ts +1 -0
- package/lib/store/ui/types.d.ts +2 -1
- package/package.json +10 -9
|
@@ -30,6 +30,7 @@ export interface ConfigurableMapConnectProps {
|
|
|
30
30
|
multiLegend?: boolean;
|
|
31
31
|
shouldShowLayerManager?: boolean;
|
|
32
32
|
showClock?: boolean;
|
|
33
|
+
displayGetFeatureInfoButtonInMap?: boolean;
|
|
33
34
|
children?: React.ReactNode;
|
|
34
35
|
}
|
|
35
36
|
export declare const ConfigurableMapConnect: React.FC<ConfigurableMapConnectProps>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Source } from '../../store/ui/types';
|
|
3
|
+
interface GetFeatureInfoButtonProps {
|
|
4
|
+
mapId: string;
|
|
5
|
+
source?: Source;
|
|
6
|
+
}
|
|
7
|
+
declare const GetFeatureInfoButtonConnect: React.FC<GetFeatureInfoButtonProps>;
|
|
8
|
+
export default GetFeatureInfoButtonConnect;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare const IS_GETFEATUREINFO_OPEN_BY_DEFAULT = false;
|
|
3
|
+
interface GetFeatureInfoConnectProps {
|
|
4
|
+
showMapId?: boolean;
|
|
5
|
+
mapId: string;
|
|
6
|
+
}
|
|
7
|
+
declare const GetFeatureInfoConnect: React.FC<GetFeatureInfoConnectProps>;
|
|
8
|
+
export default GetFeatureInfoConnect;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Layer, MapLocation } from '../../store/mapStore/types';
|
|
3
|
+
import { Source } from '../../store/ui/types';
|
|
4
|
+
interface GetFeatureInfoDialogProps {
|
|
5
|
+
layers: Layer[];
|
|
6
|
+
isOpen: boolean;
|
|
7
|
+
onClose: () => void;
|
|
8
|
+
onMouseDown?: () => void;
|
|
9
|
+
mapId: string;
|
|
10
|
+
showMapId?: boolean;
|
|
11
|
+
order?: number;
|
|
12
|
+
source?: Source;
|
|
13
|
+
mapPinLocation?: MapLocation;
|
|
14
|
+
}
|
|
15
|
+
declare const GetFeatureInfoDialog: React.FC<GetFeatureInfoDialogProps>;
|
|
16
|
+
export default GetFeatureInfoDialog;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Layer } from '../../store/mapStore/types';
|
|
2
|
+
export interface GFIResult {
|
|
3
|
+
data: string;
|
|
4
|
+
isLoading: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface GFILayer {
|
|
7
|
+
layerId: string;
|
|
8
|
+
url: string;
|
|
9
|
+
title: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Make a list of GFI Layers to display.
|
|
13
|
+
* @param layers
|
|
14
|
+
* @param mapId
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
export declare const getLayersToUpdate: (layers: Layer[], mapId: string) => GFILayer[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CSSProperties } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { ActiveServiceObjectEntities } from '../../../store/layerSelect/types';
|
|
3
3
|
export declare const layerSelectColumnsLarge: {
|
|
4
4
|
column1: {
|
|
5
5
|
width: number;
|
|
@@ -74,4 +74,4 @@ export declare const layerSelectColumnsSmall: {
|
|
|
74
74
|
};
|
|
75
75
|
export declare const widthToColumns: (width: number) => Record<string, CSSProperties>;
|
|
76
76
|
export declare const widthToRowHeight: (width: number) => number;
|
|
77
|
-
export declare const sortByService: (serviceObj:
|
|
77
|
+
export declare const sortByService: (serviceObj: ActiveServiceObjectEntities) => ActiveServiceObjectEntities;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { ActiveServiceObjectEntities } from '../../../../store/layerSelect/types';
|
|
3
3
|
interface ServiceListProps {
|
|
4
|
-
activeServices:
|
|
4
|
+
activeServices: ActiveServiceObjectEntities;
|
|
5
5
|
setHeight: (height: number) => void;
|
|
6
6
|
}
|
|
7
7
|
declare const ServiceList: React.FC<ServiceListProps>;
|
package/lib/components/LayerManager/LayerSelect/ServiceOptionsDialog/ServiceOptionsDialog.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { ActiveServiceObjectEntities } from '../../../../store/layerSelect/types';
|
|
3
3
|
import { PopupVariant } from '../ServicePopup/ServicePopup';
|
|
4
4
|
import { ReduxLayer } from '../../../../store/mapStore/types';
|
|
5
5
|
interface ServiceOptionsDialogProps {
|
|
6
|
-
services:
|
|
6
|
+
services: ActiveServiceObjectEntities;
|
|
7
7
|
layerSelectRemoveService?: (serviceId: string, serviceUrl: string, serviceName: string) => void;
|
|
8
8
|
layerSelectReloadService?: (serviceUrl: string) => void;
|
|
9
9
|
selectedLayers: ReduxLayer[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { SetLayersForServicePayload } from '../../../../store/mapStore/types';
|
|
3
|
-
import {
|
|
3
|
+
import { ActiveServiceObjectEntities } from '../../../../store/layerSelect/types';
|
|
4
4
|
export declare type PopupVariant = 'edit' | 'add' | 'save' | 'show';
|
|
5
5
|
export interface ServicePopupProps {
|
|
6
6
|
servicePopupVariant: PopupVariant;
|
|
@@ -12,7 +12,7 @@ export interface ServicePopupProps {
|
|
|
12
12
|
serviceUrl?: string;
|
|
13
13
|
serviceName?: string;
|
|
14
14
|
serviceAbstracts?: string;
|
|
15
|
-
services?:
|
|
15
|
+
services?: ActiveServiceObjectEntities;
|
|
16
16
|
serviceSetLayers: (payload: SetLayersForServicePayload) => void;
|
|
17
17
|
showSnackbar?: (message: string) => void;
|
|
18
18
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ActiveServiceObjectEntities } from '../../../../store/layerSelect/types';
|
|
2
2
|
import { SetLayersForServicePayload } from '../../../../store/mapStore/types';
|
|
3
3
|
export declare type ValidationResult = string | boolean;
|
|
4
4
|
export declare const VALIDATIONS_NAME_EXISTING = "This name already exists. Choose another name.";
|
|
@@ -6,6 +6,6 @@ export declare const VALIDATIONS_SERVICE_EXISTING = "URL already exists.";
|
|
|
6
6
|
export declare const VALIDATIONS_SERVICE_VALID_URL = "Not a valid URL.";
|
|
7
7
|
export declare const VALIDATIONS_REQUEST_FAILED = "Download failed. Check the URL.";
|
|
8
8
|
export declare const VALIDATIONS_FIELD_REQUIRED = "This field is required";
|
|
9
|
-
export declare const validateServiceName: (value: string, services:
|
|
10
|
-
export declare const validateServiceUrl: (value: string, services:
|
|
9
|
+
export declare const validateServiceName: (value: string, services: ActiveServiceObjectEntities, ownServiceName?: string) => ValidationResult;
|
|
10
|
+
export declare const validateServiceUrl: (value: string, services: ActiveServiceObjectEntities) => ValidationResult;
|
|
11
11
|
export declare const loadWMSService: (serviceUrl: string, forceReload?: boolean) => Promise<SetLayersForServicePayload>;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { PayloadAction } from '@reduxjs/toolkit';
|
|
2
|
-
import { AddKeywordsAndActiveServicesPayload, DisableActiveServicePayload, EnableActiveServicePayload, EnableOnlyOneKeywordPayload, LayerSelectRemoveServicePayload, LayerSelectStoreType, SetAllServicesEnabledPayload, SetActiveLayerInfoPayload, SetSearchFilterPayload, ToggleKeywordsPayload } from './types';
|
|
2
|
+
import { AddKeywordsAndActiveServicesPayload, DisableActiveServicePayload, EnableActiveServicePayload, EnableOnlyOneKeywordPayload, LayerSelectRemoveServicePayload, LayerSelectStoreType, SetAllServicesEnabledPayload, SetActiveLayerInfoPayload, SetSearchFilterPayload, ToggleKeywordsPayload, Filter, ActiveServiceObject } from './types';
|
|
3
|
+
export declare const layerSelectFilterAdapter: import("@reduxjs/toolkit").EntityAdapter<Filter>;
|
|
4
|
+
export declare const layerSelectActiveServicesAdapter: import("@reduxjs/toolkit").EntityAdapter<ActiveServiceObject>;
|
|
3
5
|
export declare const initialState: LayerSelectStoreType;
|
|
4
6
|
export declare const reducer: import("redux").Reducer<LayerSelectStoreType, import("redux").AnyAction>;
|
|
5
7
|
export declare const layerSelectActions: import("@reduxjs/toolkit").CaseReducerActions<{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AppStore } from '../../types/types';
|
|
2
|
-
import { LayerSelectStoreType,
|
|
2
|
+
import { LayerSelectStoreType, ActiveServiceObject, ActiveLayerObject, ActiveServiceObjectEntities } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* Returns search filter string
|
|
5
5
|
*
|
|
@@ -24,20 +24,9 @@ export declare const getSearchFilter: ((state: {
|
|
|
24
24
|
*
|
|
25
25
|
* Example getActiveServices(store);
|
|
26
26
|
* @param {object} store store: object - store object
|
|
27
|
-
* @returns {
|
|
27
|
+
* @returns {ActiveServiceObjectEntities} returnType: ActiveServiceObjectEntitiesobject of active services
|
|
28
28
|
*/
|
|
29
|
-
export declare const getActiveServices: (
|
|
30
|
-
syncronizationGroupStore?: import("../generic/synchronizationGroups/types").SynchronizationGroupState | undefined;
|
|
31
|
-
ui?: import("../ui/types").UIStoreType | undefined;
|
|
32
|
-
webmap?: import("../mapStore/types").WebMapState | undefined;
|
|
33
|
-
services?: import("../mapStore/types").ServiceState | undefined;
|
|
34
|
-
layers?: import("../mapStore/types").LayerState | undefined;
|
|
35
|
-
layerSelect?: LayerSelectStoreType | undefined;
|
|
36
|
-
}) => ActiveServices) & import("reselect").OutputSelectorFields<((args_0: LayerSelectStoreType) => ActiveServices) & {
|
|
37
|
-
clearCache: () => void;
|
|
38
|
-
}> & {
|
|
39
|
-
clearCache: () => void;
|
|
40
|
-
};
|
|
29
|
+
export declare const getActiveServices: (store: AppStore) => ActiveServiceObjectEntities;
|
|
41
30
|
/**
|
|
42
31
|
* Returns active services by id
|
|
43
32
|
*
|
|
@@ -92,18 +81,7 @@ export declare const getCheckedFilterIds: ((state: {
|
|
|
92
81
|
* @param {object} store store: object - store object
|
|
93
82
|
* @returns {array} returnType: array of all keyword ids
|
|
94
83
|
*/
|
|
95
|
-
export declare const getAllFilterIds: (
|
|
96
|
-
syncronizationGroupStore?: import("../generic/synchronizationGroups/types").SynchronizationGroupState | undefined;
|
|
97
|
-
ui?: import("../ui/types").UIStoreType | undefined;
|
|
98
|
-
webmap?: import("../mapStore/types").WebMapState | undefined;
|
|
99
|
-
services?: import("../mapStore/types").ServiceState | undefined;
|
|
100
|
-
layers?: import("../mapStore/types").LayerState | undefined;
|
|
101
|
-
layerSelect?: LayerSelectStoreType | undefined;
|
|
102
|
-
}) => string[]) & import("reselect").OutputSelectorFields<((args_0: LayerSelectStoreType) => string[]) & {
|
|
103
|
-
clearCache: () => void;
|
|
104
|
-
}> & {
|
|
105
|
-
clearCache: () => void;
|
|
106
|
-
};
|
|
84
|
+
export declare const getAllFilterIds: (store: AppStore) => string[];
|
|
107
85
|
/**
|
|
108
86
|
* Returns all filters
|
|
109
87
|
*
|
|
@@ -111,18 +89,7 @@ export declare const getAllFilterIds: ((state: {
|
|
|
111
89
|
* @param {object} store store: object - store object
|
|
112
90
|
* @returns {array} returnType: array of all filters
|
|
113
91
|
*/
|
|
114
|
-
export declare const getAllFilters: (
|
|
115
|
-
syncronizationGroupStore?: import("../generic/synchronizationGroups/types").SynchronizationGroupState | undefined;
|
|
116
|
-
ui?: import("../ui/types").UIStoreType | undefined;
|
|
117
|
-
webmap?: import("../mapStore/types").WebMapState | undefined;
|
|
118
|
-
services?: import("../mapStore/types").ServiceState | undefined;
|
|
119
|
-
layers?: import("../mapStore/types").LayerState | undefined;
|
|
120
|
-
layerSelect?: LayerSelectStoreType | undefined;
|
|
121
|
-
}) => Filter[]) & import("reselect").OutputSelectorFields<(args_0: LayerSelectStoreType) => Filter[] & {
|
|
122
|
-
clearCache: () => void;
|
|
123
|
-
}> & {
|
|
124
|
-
clearCache: () => void;
|
|
125
|
-
};
|
|
92
|
+
export declare const getAllFilters: (state: AppStore) => import("./types").Filter[];
|
|
126
93
|
/**
|
|
127
94
|
* Returns if all keywords are checked
|
|
128
95
|
*
|
|
@@ -150,7 +117,7 @@ export declare const isAllFiltersChecked: ((state: {
|
|
|
150
117
|
* @param {string} filterId Id of the keyword
|
|
151
118
|
* @returns {object} object containing keyword information (id, amount, amountVisible, checked)
|
|
152
119
|
*/
|
|
153
|
-
export declare const getFilterById: (
|
|
120
|
+
export declare const getFilterById: (state: AppStore, id: import("@reduxjs/toolkit").EntityId) => import("./types").Filter | undefined;
|
|
154
121
|
/**
|
|
155
122
|
* Returns the active layer info
|
|
156
123
|
*
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EntityState } from '@reduxjs/toolkit';
|
|
1
2
|
import { ServiceLayer, ServiceScope } from '../mapStore/types';
|
|
2
3
|
export interface ActiveLayerObject extends ServiceLayer {
|
|
3
4
|
serviceName: string;
|
|
@@ -10,13 +11,7 @@ export interface ActiveServiceObject {
|
|
|
10
11
|
enabled?: boolean;
|
|
11
12
|
filterIds?: string[];
|
|
12
13
|
scope?: ServiceScope;
|
|
13
|
-
|
|
14
|
-
export interface ActiveServices {
|
|
15
|
-
[key: string]: ActiveServiceObject;
|
|
16
|
-
}
|
|
17
|
-
export interface ActiveServiceType {
|
|
18
|
-
byId: ActiveServices;
|
|
19
|
-
allIds: string[];
|
|
14
|
+
isLoading?: boolean;
|
|
20
15
|
}
|
|
21
16
|
export declare enum FilterType {
|
|
22
17
|
Keyword = "keywords",
|
|
@@ -30,25 +25,21 @@ export interface Filter {
|
|
|
30
25
|
checked?: boolean;
|
|
31
26
|
type: FilterType;
|
|
32
27
|
}
|
|
33
|
-
export
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
export interface
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
export interface LayerSelectModuleState {
|
|
41
|
-
layerSelect?: LayerSelectStoreType;
|
|
28
|
+
export declare type ActiveServiceObjectEntities = Record<string, ActiveServiceObject>;
|
|
29
|
+
export declare type Filters = EntityState<Filter>;
|
|
30
|
+
export declare type ActiveServiceType = EntityState<ActiveServiceObject>;
|
|
31
|
+
export interface FiltersType {
|
|
32
|
+
searchFilter: string;
|
|
33
|
+
activeServices: ActiveServiceType;
|
|
34
|
+
filters: Filters;
|
|
42
35
|
}
|
|
43
36
|
export interface LayerSelectStoreType {
|
|
44
37
|
filters: FiltersType;
|
|
45
38
|
allServicesEnabled: boolean;
|
|
46
39
|
activeLayerInfo: ActiveLayerObject;
|
|
47
40
|
}
|
|
48
|
-
export interface
|
|
49
|
-
|
|
50
|
-
activeServices: ActiveServiceType;
|
|
51
|
-
filters: Filters;
|
|
41
|
+
export interface LayerSelectModuleState {
|
|
42
|
+
layerSelect?: LayerSelectStoreType;
|
|
52
43
|
}
|
|
53
44
|
export interface SetSearchFilterPayload {
|
|
54
45
|
filterText: string;
|
|
@@ -72,6 +63,7 @@ export interface AddKeywordsAndActiveServicesPayload {
|
|
|
72
63
|
keywords: string[];
|
|
73
64
|
scope: ServiceScope;
|
|
74
65
|
groups: string[];
|
|
66
|
+
isLoading?: boolean;
|
|
75
67
|
}
|
|
76
68
|
export interface LayerSelectRemoveServicePayload {
|
|
77
69
|
serviceId: string;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { EntityAdapter } from '@reduxjs/toolkit';
|
|
2
|
+
import { WritableDraft } from 'immer/dist/types/types-external';
|
|
3
|
+
import { Filter, FilterType, LayerSelectStoreType } from './types';
|
|
4
|
+
export declare const getFilterId: (filterType: FilterType, filterName: string) => string;
|
|
5
|
+
export declare const produceFilters: (filterNames: string[], filterType: FilterType, draft: WritableDraft<LayerSelectStoreType>, layerSelectFilterAdapter: EntityAdapter<Filter>) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/lib/store/ui/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { MapActionOrigin } from '../mapStore/types';
|
|
2
2
|
declare type LegendDialogType = string;
|
|
3
|
+
declare type GetFeatureInfoDialogType = string;
|
|
3
4
|
export declare enum DialogTypes {
|
|
4
5
|
LayerInfo = "layerInfo",
|
|
5
6
|
SyncGroups = "syncGroups",
|
|
@@ -11,7 +12,7 @@ export declare enum DialogTypes {
|
|
|
11
12
|
LayerManager = "layerManager",
|
|
12
13
|
LayerSelect = "layerSelect"
|
|
13
14
|
}
|
|
14
|
-
export declare type DialogType = DialogTypes | LegendDialogType;
|
|
15
|
+
export declare type DialogType = DialogTypes | LegendDialogType | GetFeatureInfoDialogType;
|
|
15
16
|
export declare type Source = 'app' | 'module';
|
|
16
17
|
export interface UIType {
|
|
17
18
|
type: DialogType;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeoweb/core",
|
|
3
|
-
"version": "4.6.
|
|
3
|
+
"version": "4.6.1",
|
|
4
4
|
"description": "GeoWeb Core library for the opengeoweb project",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -13,24 +13,25 @@
|
|
|
13
13
|
"dependencies": {},
|
|
14
14
|
"peerDependencies": {
|
|
15
15
|
"react": "^17.0.2",
|
|
16
|
-
"@opengeoweb/theme": "4.6.
|
|
16
|
+
"@opengeoweb/theme": "4.6.1",
|
|
17
17
|
"@mui/material": "^5.10.8",
|
|
18
18
|
"moment": "^2.29.0",
|
|
19
19
|
"react-redux": "^8.0.4",
|
|
20
|
-
"
|
|
21
|
-
"
|
|
20
|
+
"@opengeoweb/webmap": "4.6.1",
|
|
21
|
+
"throttle-debounce": "^3.0.1",
|
|
22
|
+
"proj4": "^2.6.2",
|
|
23
|
+
"axios": "^0.25.0",
|
|
24
|
+
"@opengeoweb/api": "4.6.1",
|
|
25
|
+
"@opengeoweb/shared": "4.6.1",
|
|
22
26
|
"react-draggable": "^4.4.5",
|
|
23
27
|
"re-resizable": "^6.9.0",
|
|
24
28
|
"@redux-eggs/core": "^2.2.0",
|
|
25
|
-
"@opengeoweb/form-fields": "4.6.
|
|
29
|
+
"@opengeoweb/form-fields": "4.6.1",
|
|
26
30
|
"react-hook-form": "^6.12.1",
|
|
27
31
|
"moment-timezone": "^0.5.31",
|
|
28
32
|
"@mui/x-date-pickers": "^5.0.4",
|
|
29
33
|
"lodash": "^4.17.20",
|
|
30
|
-
"
|
|
31
|
-
"@opengeoweb/webmap": "4.6.0",
|
|
32
|
-
"throttle-debounce": "^3.0.1",
|
|
33
|
-
"proj4": "^2.6.2",
|
|
34
|
+
"react-intl": "^5.17.5",
|
|
34
35
|
"react-sortablejs": "^6.1.4",
|
|
35
36
|
"sortablejs": "^1.15.0",
|
|
36
37
|
"react-window": "^1.8.7",
|