@map-colonies/react-components 4.9.3 → 4.10.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.
@@ -1,10 +1,8 @@
1
1
  import React from 'react';
2
- import { Cartesian3, Color, Rectangle } from 'cesium';
2
+ import { Cartesian3, Color as CesiumColor, Rectangle } from 'cesium';
3
3
  import { GeoJSON } from 'geojson';
4
4
  import { DrawType } from '../../models';
5
5
  import { RCesiumCustomDataSourceProps } from './custom.data-source';
6
- export declare class CesiumColor extends Color {
7
- }
8
6
  export type PrimitiveCoordinates = Cartesian3[] | Rectangle | undefined;
9
7
  export interface IDrawing {
10
8
  coordinates: PrimitiveCoordinates;
@@ -1,8 +1,20 @@
1
- import React from 'react';
1
+ import React, { ReactNode } from 'react';
2
+ interface IFeatureTypeMetadata {
3
+ id: string;
4
+ items: number;
5
+ total: number;
6
+ cache: number;
7
+ currentZoomLevel: number;
8
+ featureStructure: Record<string, unknown>;
9
+ }
10
+ export type IActiveFeatureTypes = IFeatureTypeMetadata & {
11
+ zoomLevel: number;
12
+ };
2
13
  export interface IDebugPanelProps {
3
- children: React.ReactNode;
14
+ children: ReactNode;
4
15
  locale?: {
5
16
  [key: string]: string;
6
17
  };
7
18
  }
8
19
  export declare const DebugPanel: React.FC<IDebugPanelProps>;
20
+ export {};
@@ -1,5 +1,7 @@
1
1
  import React from 'react';
2
+ import { IActiveFeatureTypes } from './debug-panel';
2
3
  interface IWFSProps {
4
+ featureTypes: IActiveFeatureTypes[];
3
5
  locale?: {
4
6
  [key: string]: string;
5
7
  };
@@ -1,5 +1,4 @@
1
1
  export * from './map';
2
- export * from './map.types';
3
2
  export * from './layers';
4
3
  export * from '../utils/projections';
5
4
  export * from './entities';
@@ -1,18 +1,42 @@
1
1
  import React from 'react';
2
2
  import { GeoJsonDataSource } from 'cesium';
3
+ import { BBox } from 'geojson';
3
4
  import { CesiumViewer } from '../map';
5
+ export interface ICesiumWFSLayerLabelTextField {
6
+ name: string;
7
+ type: 'number' | 'string' | 'boolean' | 'date';
8
+ format?: string;
9
+ predicate?: (value: any) => any;
10
+ }
11
+ export interface ICesiumWFSLayerLabelingOptions {
12
+ dataSourcePrefix: string;
13
+ text: {
14
+ pattern: string;
15
+ fields: ICesiumWFSLayerLabelTextField[];
16
+ };
17
+ fontName: string;
18
+ fontSize: number;
19
+ padding: number;
20
+ fillStyle: string | CanvasGradient | CanvasPattern;
21
+ strokeStyle: string | CanvasGradient | CanvasPattern;
22
+ lineWidth: number;
23
+ }
4
24
  export interface ICesiumWFSLayerOptions {
5
25
  url: string;
6
26
  featureType: string;
7
- style: Record<string, unknown>;
27
+ style: {
28
+ color: string;
29
+ hover: string;
30
+ };
8
31
  pageSize: number;
9
32
  zoomLevel: number;
10
33
  maxCacheSize: number;
11
34
  keyField?: string;
35
+ labeling?: ICesiumWFSLayerLabelingOptions;
12
36
  }
13
37
  export interface ICesiumWFSLayer extends React.Attributes {
14
38
  options: ICesiumWFSLayerOptions;
15
39
  meta: Record<string, unknown>;
16
- visualizationHandler: (mapViewer: CesiumViewer, wfsDataSource: GeoJsonDataSource, processEntityIds: string[]) => void;
40
+ visualizationHandler?: (mapViewer: CesiumViewer, wfsDataSource: GeoJsonDataSource, processEntityIds: string[], extent?: BBox) => void;
17
41
  }
18
42
  export declare const CesiumWFSLayer: React.FC<ICesiumWFSLayer>;
@@ -36,7 +36,8 @@ declare class LayerManager {
36
36
  private readonly dataLayers;
37
37
  private readonly legendsExtractor?;
38
38
  private readonly layerManagerFootprintMetaFieldPath;
39
- constructor(mapViewer: CesiumViewer, legendsExtractor?: LegendExtractor, onLayersUpdate?: () => void, layerManagerFootprintMetaFieldPath?: string);
39
+ private readonly shouldOptimizedTileRequests?;
40
+ constructor(mapViewer: CesiumViewer, legendsExtractor?: LegendExtractor, onLayersUpdate?: () => void, layerManagerFootprintMetaFieldPath?: string, shouldOptimizedTileRequests?: boolean);
40
41
  get layerList(): ICesiumImageryLayer[];
41
42
  get dataLayerList(): ICesiumWFSLayer[];
42
43
  addDataLayer(dataLayer: ICesiumWFSLayer): void;
@@ -2,19 +2,23 @@ import React, { ComponentProps, MouseEvent } from 'react';
2
2
  import { Viewer } from 'resium';
3
3
  import { Viewer as CesiumViewerCls, TerrainProvider } from 'cesium';
4
4
  import { Proj } from '../utils/projections';
5
- import { IBaseMaps } from './settings/settings';
6
- import { IMapLegend } from './map-legend';
7
5
  import LayerManager, { LegendExtractor } from './layers-manager';
8
- import { CesiumSceneModeEnum } from './map.types';
6
+ import { IMapLegend } from './map-legend';
7
+ import { CesiumSceneMode } from './proxied.types';
8
+ import { IBaseMaps } from './settings/settings';
9
9
  interface ViewerProps extends ComponentProps<typeof Viewer> {
10
10
  }
11
11
  export declare class CesiumViewer extends CesiumViewerCls {
12
12
  layersManager?: LayerManager;
13
- currentZoomLevel?: number;
14
- private useOptimizedTileRequests?;
15
13
  constructor(container: string | Element, options?: CesiumViewerCls.ConstructorOptions);
16
- get shouldOptimizedTileRequests(): boolean;
17
- set shouldOptimizedTileRequests(useOptimizedTileRequests: boolean);
14
+ }
15
+ export type MapViewState = {
16
+ currentZoomLevel: number;
17
+ shouldOptimizedTileRequests: boolean;
18
+ };
19
+ interface IMapViewState {
20
+ viewState: MapViewState;
21
+ setViewState: React.Dispatch<React.SetStateAction<MapViewState>>;
18
22
  }
19
23
  export interface IContextMenuData {
20
24
  data: Record<string, unknown>[];
@@ -59,7 +63,7 @@ export interface CesiumMapProps extends ViewerProps {
59
63
  locale?: {
60
64
  [key: string]: string;
61
65
  };
62
- sceneModes?: CesiumSceneModeEnum[];
66
+ sceneModes?: (typeof CesiumSceneMode)[];
63
67
  baseMaps?: IBaseMaps;
64
68
  useOptimizedTileRequests?: boolean;
65
69
  terrainProvider?: TerrainProvider;
@@ -75,5 +79,6 @@ export interface CesiumMapProps extends ViewerProps {
75
79
  debugPanel?: IDebugPanel;
76
80
  }
77
81
  export declare const useCesiumMap: () => CesiumViewer;
82
+ export declare const useCesiumMapViewstate: () => IMapViewState;
78
83
  export declare const CesiumMap: React.FC<CesiumMapProps>;
79
84
  export {};
@@ -1,4 +1,4 @@
1
- import { BillboardGraphics, BoundingSphere, Cartesian2, Cartesian3, Cartographic, CesiumTerrainProvider, ConstantPositionProperty, ConstantProperty, Ellipsoid, EllipsoidTerrainProvider, GeographicTilingScheme, HeightReference, HorizontalOrigin, JulianDate, LabelStyle, PolylineDashMaterialProperty, PolylineGraphics, PositionProperty, Rectangle, Resource, VerticalOrigin } from 'cesium';
1
+ import { BillboardGraphics, BoundingSphere, Cartesian2, Cartesian3, Cartographic, CesiumTerrainProvider, ConstantPositionProperty, ConstantProperty, Ellipsoid, EllipsoidTerrainProvider, GeographicTilingScheme, HeightReference, HorizontalOrigin, JulianDate, LabelStyle, PolylineDashMaterialProperty, PolylineGraphics, PositionProperty, Rectangle, Resource, VerticalOrigin, SceneMode, Scene, Color, PolygonHierarchy } from 'cesium';
2
2
  export declare class CesiumPolylineDashMaterialProperty extends PolylineDashMaterialProperty {
3
3
  }
4
4
  export declare class CesiumConstantProperty extends ConstantProperty {
@@ -33,8 +33,15 @@ export declare class CesiumPositionProperty extends PositionProperty {
33
33
  }
34
34
  export declare class CesiumCesiumBillboardGraphics extends BillboardGraphics {
35
35
  }
36
+ export declare class CesiumColor extends Color {
37
+ }
38
+ export declare class CesiumPolygonHierarchy extends PolygonHierarchy {
39
+ }
40
+ export declare class CesiumScene extends Scene {
41
+ }
36
42
  export declare const CesiumVerticalOrigin: typeof VerticalOrigin;
37
43
  export declare const CesiumHorizontalOrigin: typeof HorizontalOrigin;
44
+ export declare const CesiumSceneMode: typeof SceneMode;
38
45
  export declare const CesiumLabelStyle: typeof LabelStyle;
39
46
  export declare const CesiumHeightReference: typeof HeightReference;
40
- export { Entity as CesiumCesiumEntity, GeoJsonDataSource as CesiumGeoJsonDataSource, Math as CesiumMath, PolygonGraphics as CesiumCesiumPolygonGraphics, sampleTerrainMostDetailed as cesiumSampleTerrainMostDetailed, } from 'cesium';
47
+ export { Entity as CesiumCesiumEntity, GeoJsonDataSource as CesiumGeoJsonDataSource, Math as CesiumMath, SceneTransforms as CesiumSceneTransforms, PolygonGraphics as CesiumCesiumPolygonGraphics, sampleTerrainMostDetailed as cesiumSampleTerrainMostDetailed, } from 'cesium';
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { CesiumSceneModeEnum } from '../map.types';
2
+ import { CesiumSceneMode } from '../proxied.types';
3
3
  export interface RCesiumSceneModesProps {
4
- sceneModes: CesiumSceneModeEnum[];
4
+ sceneModes: typeof CesiumSceneMode[];
5
5
  }
6
6
  export declare const CesiumSceneModes: React.FC<RCesiumSceneModesProps>;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { IRasterLayer, IVectorLayer } from '../layers-manager';
3
- import { CesiumSceneModeEnum } from '../map.types';
3
+ import { CesiumSceneMode } from '../proxied.types';
4
4
  export interface IBaseMap {
5
5
  id: string;
6
6
  title?: string;
@@ -14,7 +14,7 @@ export interface IBaseMaps {
14
14
  maps: IBaseMap[];
15
15
  }
16
16
  export interface RCesiumMapProps {
17
- sceneModes: CesiumSceneModeEnum[];
17
+ sceneModes: typeof CesiumSceneMode[];
18
18
  baseMaps?: IBaseMaps;
19
19
  locale?: {
20
20
  [key: string]: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@map-colonies/react-components",
3
- "version": "4.9.3",
3
+ "version": "4.10.0",
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",
@@ -18,8 +18,9 @@
18
18
  "copyassets:all": "yarn run copyassets:cesium && yarn run copyassets:components",
19
19
  "copyassets:cesium": "copyfiles -u 5 \"../../node_modules/cesium/Build/Cesium/**/*\" \"./public\"",
20
20
  "copyassets:components": "copyfiles -u 1 \"./public/assets/**/*\" \"dist\"",
21
- "storybook": "start-storybook -p 9010",
22
- "build-storybook": "rimraf storybook-static && build-storybook"
21
+ "storybook": "yarn run copy-storybook_data && start-storybook -p 9010",
22
+ "build-storybook": "rimraf storybook-static && build-storybook",
23
+ "copy-storybook_data": "git clone https://github.com/MapColonies/shared-components-data.git && copyfiles -u 1 \"./shared-components-data/stories-data.json\" \".\" && rimraf shared-components-data"
23
24
  },
24
25
  "dependencies": {
25
26
  "@cmcleese/cesium-navigation": "^4.0.7",
@@ -28,10 +29,14 @@
28
29
  "@map-colonies/react-core": "^4.2.0",
29
30
  "@material-ui/core": "^4.11.0",
30
31
  "@material-ui/pickers": "^3.2.10",
32
+ "@turf/area": "^6.5.0",
31
33
  "@turf/bbox": "^6.0.1",
32
34
  "@turf/bbox-polygon": "^6.0.1",
35
+ "@turf/boolean-contains": "^6.5.0",
33
36
  "@turf/boolean-point-in-polygon": "^6.5.0",
37
+ "@turf/centroid": "^7.2.0",
34
38
  "@turf/helpers": "^6.1.4",
39
+ "@turf/intersect": "^6.1.3",
35
40
  "@turf/point-to-polygon-distance": "^7.2.0",
36
41
  "@turf/rewind": "^5.1.5",
37
42
  "cesium": "1.103.0",
@@ -76,5 +81,5 @@
76
81
  "files": [
77
82
  "dist"
78
83
  ],
79
- "gitHead": "714ba9ec7af1e2753670a32ee2a634d6fd77f210"
84
+ "gitHead": "aeca7e9739703a6e2f1f443f041196f7b715e13c"
80
85
  }
@@ -1,8 +0,0 @@
1
- import { SceneMode } from 'cesium';
2
- export type CesiumSceneModeEnum = SceneMode;
3
- export declare const CesiumSceneMode: {
4
- MORPHING: SceneMode;
5
- COLUMBUS_VIEW: SceneMode;
6
- SCENE2D: SceneMode;
7
- SCENE3D: SceneMode;
8
- };