@map-colonies/react-components 4.13.5 → 4.14.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.
@@ -1,3 +1,8 @@
1
+ body[dir='rtl'] .cesium-viewer .activeLayersPanel .cesium-cesiumInspector-sectionHeader::before {
2
+ margin-right: 0;
3
+ margin-left: 5px;
4
+ }
5
+
1
6
  .cesium-viewer .activeLayersPanel .layer {
2
7
  display: flex;
3
8
  justify-content: space-between;
@@ -11,6 +16,10 @@
11
16
  text-overflow: ellipsis;
12
17
  }
13
18
 
19
+ .cesium-viewer .activeLayersPanel .name:not(.disabled) {
20
+ cursor: default;
21
+ }
22
+
14
23
  .cesium-viewer .activeLayersPanel .name.disabled {
15
24
  opacity: 0.5;
16
25
  pointer-events: none;
@@ -0,0 +1,95 @@
1
+ .cesium-viewer .cesium-mc-title {
2
+ cursor: text;
3
+ }
4
+
5
+ .cesium-viewer .debuggerWidgetSections {
6
+ display: flex;
7
+ flex-direction: column;
8
+ gap: 8px;
9
+ }
10
+
11
+ .cesium-viewer .debuggerWidgetSection {
12
+ border: 1px solid rgba(255, 255, 255, 0.2);
13
+ border-radius: 6px;
14
+ background: rgba(0, 0, 0, 0.25);
15
+ overflow: hidden;
16
+ }
17
+
18
+ .cesium-viewer .debuggerWidgetSectionHeader {
19
+ display: flex;
20
+ align-items: center;
21
+ justify-content: flex-start;
22
+ padding: 6px 8px;
23
+ font-size: 13px;
24
+ font-weight: 700;
25
+ letter-spacing: 0.2px;
26
+ text-transform: uppercase;
27
+ color: var(--mdc-theme-cesium-color);
28
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.03));
29
+ border-bottom: 1px solid rgba(255, 255, 255, 0.14);
30
+ cursor: pointer;
31
+ user-select: none;
32
+ }
33
+
34
+ .cesium-viewer .debuggerWidgetSectionHeaderLabel {
35
+ flex: 1;
36
+ }
37
+
38
+ .cesium-viewer .debuggerWidgetSectionHeaderToggle {
39
+ margin-right: 5px;
40
+ }
41
+
42
+ body[dir='rtl'] .cesium-viewer .debuggerWidgetSectionHeaderToggle {
43
+ margin-right: 0;
44
+ margin-left: 5px;
45
+ }
46
+
47
+ .cesium-viewer .debuggerWidgetSectionContent {
48
+ padding: 8px;
49
+ }
50
+
51
+ .cesium-viewer .debuggerWidgetSectionContent .wfsContainer {
52
+ margin-top: 0;
53
+ }
54
+
55
+ .cesium-viewer .debuggerWidgetSectionContent .wfsContainer .title {
56
+ display: none;
57
+ }
58
+
59
+ .cesium-viewer .debuggerWidgetSectionContent .optimizationCheckbox,
60
+ .cesium-viewer .debuggerWidgetSectionContent .cesiumInspectorCheckbox {
61
+ margin-bottom: 0;
62
+ }
63
+
64
+ .cesium-viewer .debuggerWidgetSectionContent .optimizationCheckbox label,
65
+ .cesium-viewer .debuggerWidgetSectionContent .cesiumInspectorCheckbox label {
66
+ cursor: pointer;
67
+ }
68
+
69
+ .cesium-viewer .debuggerLayerList {
70
+ margin-top: 8px;
71
+ display: flex;
72
+ flex-direction: column;
73
+ gap: 4px;
74
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
75
+ padding-top: 6px;
76
+ text-align: left;
77
+ direction: ltr;
78
+ }
79
+
80
+ .cesium-viewer .debuggerLayerItem {
81
+ font-size: 11px;
82
+ line-height: 1.6;
83
+ font-weight: bold;
84
+ opacity: 0.5;
85
+ cursor: text;
86
+ }
87
+
88
+ .cesium-viewer .debuggerLayerItem.relevant {
89
+ color: #AEF;
90
+ opacity: 1;
91
+ }
92
+
93
+ .cesium-viewer .debuggerLayerItem[data-has-tooltip='true'] {
94
+ cursor: default;
95
+ }
@@ -11,10 +11,10 @@ interface IFeatureTypeMetadata {
11
11
  export type IActiveFeatureTypes = IFeatureTypeMetadata & {
12
12
  zoomLevel: number;
13
13
  };
14
- export interface IWFSDebugWidgetProps extends IWidgetProps {
14
+ export interface IDebuggerWidgetProps extends IWidgetProps {
15
15
  locale?: {
16
16
  [key: string]: string;
17
17
  };
18
18
  }
19
- export declare const WFSDebugWidget: (props: Omit<IWFSDebugWidgetProps, keyof IWidgetProps>) => React.JSX.Element;
19
+ export declare const DebuggerWidget: (props: Omit<IDebuggerWidgetProps, keyof IWidgetProps>) => React.JSX.Element;
20
20
  export {};
@@ -1,3 +1,7 @@
1
+ .cesium-viewer .wfsContainer {
2
+ margin-top: 12px;
3
+ }
4
+
1
5
  .cesium-viewer .wfsContainer .title {
2
6
  text-align: center;
3
7
  font-weight: bold;
@@ -5,6 +9,14 @@
5
9
  width: 260px;
6
10
  }
7
11
 
12
+ .cesium-viewer .optimizationCheckbox {
13
+ margin-bottom: 12px;
14
+ }
15
+
16
+ .cesium-viewer .cesiumInspectorCheckbox {
17
+ margin-bottom: 12px;
18
+ }
19
+
8
20
  .cesium-viewer .wfsContainer .featureType {
9
21
  font-size: 12px;
10
22
  margin-bottom: 12px;
@@ -32,6 +44,12 @@ body[dir='rtl'] .cesium-viewer .wfsContainer .featureType {
32
44
  margin: 0 20px;
33
45
  }
34
46
 
47
+ .cesium-viewer .wfsContainer .noDataLayers {
48
+ font-size: 12px;
49
+ opacity: 0.5;
50
+ cursor: text;
51
+ }
52
+
35
53
  .cesium-viewer .wfsContainer .blinking {
36
54
  animation: blink 1s infinite;
37
55
  }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { IActiveFeatureTypes } from './wfs-debug-widget';
2
+ import { IActiveFeatureTypes } from './debugger-widget';
3
3
  interface IWFSProps {
4
4
  featureTypes: IActiveFeatureTypes[];
5
5
  locale?: {
@@ -4,15 +4,23 @@ import { CesiumViewer } from '../map';
4
4
  export interface CustomImageryProvider extends ImageryProvider {
5
5
  readonly layerListInstance: ICesiumImageryLayer[];
6
6
  tileTransparencyCheckedCounter: number;
7
+ examinedTilesForTransparencyCheck: IExaminedTileCoordinates[];
7
8
  mapViewer: CesiumViewer;
8
9
  readonly maxTilesForTransparencyCheck: number;
9
10
  }
11
+ interface IExaminedTileCoordinates {
12
+ x: number;
13
+ y: number;
14
+ level: number;
15
+ }
10
16
  export declare const HAS_TRANSPARENCY_META_PROP = "hasTransparency";
17
+ export declare const EXAMINED_TILES_META_PROP = "examinedTiles";
11
18
  export declare class CustomUrlTemplateImageryProvider extends UrlTemplateImageryProvider {
12
19
  readonly layerListInstance: ICesiumImageryLayer[];
13
20
  readonly mapViewer: CesiumViewer;
14
21
  readonly maxTilesForTransparencyCheck = 3;
15
22
  tileTransparencyCheckedCounter: number;
23
+ examinedTilesForTransparencyCheck: IExaminedTileCoordinates[];
16
24
  constructor(opts: UrlTemplateImageryProvider.ConstructorOptions, mapViewer: CesiumViewer);
17
25
  requestImage(x: number, y: number, level: number, request?: Request | undefined): Promise<ImageryTypes> | undefined;
18
26
  }
@@ -21,6 +29,7 @@ export declare class CustomWebMapServiceImageryProvider extends WebMapServiceIma
21
29
  readonly mapViewer: CesiumViewer;
22
30
  readonly maxTilesForTransparencyCheck = 3;
23
31
  tileTransparencyCheckedCounter: number;
32
+ examinedTilesForTransparencyCheck: IExaminedTileCoordinates[];
24
33
  constructor(opts: WebMapServiceImageryProvider.ConstructorOptions, mapViewer: CesiumViewer);
25
34
  requestImage(x: number, y: number, level: number, request?: Request | undefined): Promise<ImageryTypes> | undefined;
26
35
  }
@@ -29,6 +38,8 @@ export declare class CustomWebMapTileServiceImageryProvider extends WebMapTileSe
29
38
  readonly mapViewer: CesiumViewer;
30
39
  readonly maxTilesForTransparencyCheck = 3;
31
40
  tileTransparencyCheckedCounter: number;
41
+ examinedTilesForTransparencyCheck: IExaminedTileCoordinates[];
32
42
  constructor(opts: WebMapTileServiceImageryProvider.ConstructorOptions, mapViewer: CesiumViewer);
33
43
  requestImage(x: number, y: number, level: number, request?: Request | undefined): Promise<ImageryTypes> | undefined;
34
44
  }
45
+ export {};
@@ -38,6 +38,7 @@ export declare const center: (bbox: Rectangle) => Feature<Point>;
38
38
  * @returns BBox array
39
39
  */
40
40
  export declare const rectangle2bbox: (bbox: Rectangle) => BBox;
41
+ export declare const rectangle2Feature: (rect: Rectangle) => Feature<Polygon>;
41
42
  export declare const customComputeViewRectangle: (mapViewer: CesiumViewer) => Rectangle;
42
43
  /**
43
44
  * Computes a limited view rectangle in case of 3D mode based on the camera position and max distance.
@@ -21,9 +21,33 @@ export interface ICesiumWFSLayerLabelingOptions {
21
21
  strokeStyle: string | CanvasGradient | CanvasPattern;
22
22
  lineWidth: number;
23
23
  }
24
+ export interface IGqlServiceConfig {
25
+ query: string;
26
+ variablesDescriptor: {
27
+ featureProp: string;
28
+ startIndexProp: string;
29
+ countProp: string;
30
+ typeNameProp: string;
31
+ };
32
+ variables: {
33
+ data: Record<string, unknown>;
34
+ };
35
+ }
36
+ export interface IApiServiceConfig {
37
+ method?: 'GET' | 'POST';
38
+ headers?: Record<string, string>;
39
+ }
40
+ export type AlternativePayload = {
41
+ type: 'gql';
42
+ gql: IGqlServiceConfig;
43
+ } | {
44
+ type: 'api';
45
+ api: IApiServiceConfig;
46
+ };
24
47
  export interface ICesiumWFSLayerOptions {
25
48
  url: string;
26
49
  featureType: string;
50
+ alternativePayload?: AlternativePayload;
27
51
  style: {
28
52
  color: string;
29
53
  hover: string;
@@ -26,6 +26,7 @@ export interface IVectorLayer {
26
26
  export type LegendExtractor = (layers: (any & {
27
27
  meta: any;
28
28
  })[]) => IMapLegend[];
29
+ export declare const TRANSPARENT_LAYER_ID = "TRANSPARENT_BASE_LAYER";
29
30
  declare class LayerManager {
30
31
  mapViewer: CesiumViewer;
31
32
  legendsList: IMapLegend[];
@@ -35,7 +36,9 @@ declare class LayerManager {
35
36
  private readonly dataLayers;
36
37
  private readonly legendsExtractor?;
37
38
  private readonly layerManagerFootprintMetaFieldPath;
38
- private readonly shouldOptimizedTileRequests?;
39
+ private shouldOptimizedTileRequests?;
40
+ private relevancyListenersCleanup;
41
+ private relevancyLayerUpdatedHandler?;
39
42
  constructor(mapViewer: CesiumViewer, legendsExtractor?: LegendExtractor, onLayersUpdate?: () => void, layerManagerFootprintMetaFieldPath?: string, shouldOptimizedTileRequests?: boolean);
40
43
  get layerList(): ICesiumImageryLayer[];
41
44
  get dataLayerList(): ICesiumWFSLayer[];
@@ -64,12 +67,17 @@ declare class LayerManager {
64
67
  removeLayerUpdatedListener(callback: (meta: any) => void): void;
65
68
  addDataLayerUpdatedListener(callback: (meta: any) => void): void;
66
69
  removeDataLayerUpdatedListener(callback: (meta: any) => void): void;
70
+ setShouldOptimizedTileRequests(shouldOptimize: boolean): void;
67
71
  findDataLayerById(dataLayerId: string): ICesiumWFSLayer | undefined;
68
72
  private setLegends;
69
73
  private getBaseLayersCount;
70
74
  private findLayerById;
71
75
  private updateLayersOrder;
72
76
  private hideNonRelevantLayers;
77
+ private restoreAllLayersVisibility;
78
+ private clearLayersRelevancy;
79
+ private bindRelevancyListeners;
80
+ private unbindRelevancyListeners;
73
81
  private markRelevantLayersForExtent;
74
82
  }
75
83
  export default LayerManager;
@@ -18,6 +18,10 @@ body[dir='rtl'] .cesium-viewer .cesium-viewer-toolbar {
18
18
  .cesium-viewer .widgetsContainer {
19
19
  top: 24px;
20
20
  left: 10px;
21
+ display: flex;
22
+ flex-direction: row;
23
+ align-items: flex-start;
24
+ gap: 12px;
21
25
  }
22
26
 
23
27
  body[dir='rtl'] .cesium-viewer .widgetsContainer {
@@ -25,6 +29,31 @@ body[dir='rtl'] .cesium-viewer .widgetsContainer {
25
29
  right: 10px;
26
30
  }
27
31
 
32
+ .cesium-viewer .cesium-viewer-cesiumInspectorWrapper .cesium-viewer-cesiumInspectorContainer {
33
+ left: 0;
34
+ }
35
+
36
+ body[dir='rtl'] .cesium-viewer .cesium-viewer-cesiumInspectorWrapper .cesium-viewer-cesiumInspectorContainer {
37
+ left: unset;
38
+ right: 0;
39
+ }
40
+
41
+ .cesium-viewer .cesium-viewer-cesiumInspectorWrapper {
42
+ direction: ltr;
43
+ }
44
+
45
+ .cesium-viewer .cesium-viewer-cesiumInspectorWrapper .cesium-cesiumInspector {
46
+ box-sizing: content-box;
47
+ }
48
+
49
+ .cesium-viewer .cesium-viewer-cesiumInspectorWrapper .cesium-cesiumInspector-hidden {
50
+ height: 16px;
51
+ }
52
+
53
+ .cesium-viewer .cesium-viewer-cesiumInspectorWrapper .cesium-cesiumInspector-visible {
54
+ width: auto;
55
+ }
56
+
28
57
  .cesium-viewer .cesium-mc-tool {
29
58
  display: block;
30
59
  position: absolute;
@@ -147,7 +176,7 @@ body[dir='rtl'] .cesium-viewer .bottomToolsContainer {
147
176
  right: unset;
148
177
  }
149
178
 
150
- /* #region for NATIVE CONTROLS */
179
+ /* #region NATIVE CONTROLS */
151
180
  .cesium-viewer input[type='checkbox'] {
152
181
  accent-color: var(--mdc-theme-cesium-checkbox-color);
153
182
  }
@@ -178,10 +207,9 @@ body[dir='rtl'] .cesium-viewer .bottomToolsContainer {
178
207
  background-color: #aaa;
179
208
  border-radius: 6px;
180
209
  }
181
-
182
210
  /* #endregion for NATIVE CONTROLS */
183
211
 
184
- /* #region for mdc-checkbox */
212
+ /* #region mdc-checkbox */
185
213
  .cesium-viewer .mdc-checkbox .mdc-checkbox__native-control:enabled:checked ~ .mdc-checkbox__background,
186
214
  .mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate ~ .mdc-checkbox__background,
187
215
  .mdc-checkbox .mdc-checkbox__native-control[data-indeterminate='true']:enabled ~ .mdc-checkbox__background {
@@ -216,7 +244,6 @@ body[dir='rtl'] .cesium-viewer .bottomToolsContainer {
216
244
  .cesium-viewer .mdc-ripple-upgraded--unbounded {
217
245
  --mdc-ripple-fg-size: 0px !important;
218
246
  }
219
-
220
247
  /* #endregion mdc-checkbox */
221
248
 
222
249
  /* #region mdc-list */
@@ -238,7 +265,6 @@ body[dir='rtl'] .cesium-viewer .bottomToolsContainer {
238
265
  .cesium-viewer .mdc-text-field--filled {
239
266
  height: 32px;
240
267
  }
241
-
242
268
  /* #endregion mdc-list */
243
269
 
244
270
  /* #region mdc-TextField */
@@ -262,7 +288,6 @@ body[dir='rtl'] .cesium-viewer .bottomToolsContainer {
262
288
  .cesium-viewer .mdc-line-ripple::after {
263
289
  border-bottom: none !important;
264
290
  }
265
-
266
291
  /* #endregion mdc-TextField */
267
292
 
268
293
  .cesium-viewer .disabled {
@@ -14,6 +14,7 @@ export declare class CesiumViewer extends CesiumViewerCls {
14
14
  export type MapViewState = {
15
15
  currentZoomLevel: number;
16
16
  shouldOptimizedTileRequests: boolean;
17
+ showCesiumInspector: boolean;
17
18
  };
18
19
  interface IMapViewState {
19
20
  viewState: MapViewState;
@@ -83,7 +84,6 @@ export interface CesiumMapProps extends ViewerProps {
83
84
  };
84
85
  baseMaps?: IBaseMaps;
85
86
  terrains?: ITerrain[];
86
- useOptimizedTileRequests?: boolean;
87
87
  terrainProvider?: TerrainProvider;
88
88
  imageryContextMenu?: React.ReactElement<IContextMenuData>;
89
89
  imageryContextMenuSize?: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@map-colonies/react-components",
3
- "version": "4.13.5",
3
+ "version": "4.14.1",
4
4
  "main": "./dist/@map-colonies/react-components.umd.js",
5
5
  "module": "./dist/@map-colonies/react-components.es.js",
6
6
  "types": "./dist/index.d.ts",
@@ -87,5 +87,5 @@
87
87
  "files": [
88
88
  "dist"
89
89
  ],
90
- "gitHead": "7b59e4a26949588febe4e6ced814260ecdc7bf14"
90
+ "gitHead": "7bf420cd0cd690cfa1c966a592fccf7b7c5fbb35"
91
91
  }