@evergis/react 3.1.5 → 3.1.6

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,3 @@
1
1
  import { FC } from "react";
2
2
  import { LayerProps } from "./types";
3
- export declare const RasterLayer: FC<Omit<LayerProps, "layerType" | "onMount">>;
3
+ export declare const RasterLayer: FC<Omit<LayerProps, "layerType" | "onMount" | "getLayerTempStyle">>;
@@ -2,7 +2,6 @@ import { CSSProperties, ReactNode } from "react";
2
2
  import { MapProps as MapGLProps } from "react-map-gl/mapbox";
3
3
  export interface MapProps extends MapGLProps {
4
4
  zIndex?: CSSProperties["zIndex"];
5
- maxPitch?: number;
6
5
  lowerSiblings?: ReactNode;
7
6
  upperSiblings?: ReactNode;
8
7
  onError?: (error: any) => void;
@@ -421,7 +421,7 @@ const VectorLayer = (_ref) => {
421
421
  default:
422
422
  return null;
423
423
  }
424
- }, [geometryType, layer, beforeId, visible, getLayerTempStyle == null ? void 0 : getLayerTempStyle(layer.name, "circle"), getLayerTempStyle == null ? void 0 : getLayerTempStyle(layer.name, "fill"), getLayerTempStyle == null ? void 0 : getLayerTempStyle(layer.name, "fill-extrusion"), getLayerTempStyle == null ? void 0 : getLayerTempStyle(layer.name, "line")]);
424
+ }, [geometryType, layer, beforeId, visible, getLayerTempStyle]);
425
425
  const renderClientStyle = React.useCallback(() => {
426
426
  return clientStyle.items.map(mockItem => {
427
427
  var _clientStyle$items, _getLayerTempStyle15, _getLayerTempStyle16, _currentSettings$fill, _currentSettings$fill2, _clientStyle$minzoom, _clientStyle$maxzoom, _getLayerTempStyle17, _getLayerTempStyle18;
@@ -450,7 +450,7 @@ const VectorLayer = (_ref) => {
450
450
  paint: _extends({}, mockItem.paint, getLayerTempStyle == null || (_getLayerTempStyle18 = getLayerTempStyle(layer.name, mockItem.type)) == null ? void 0 : _getLayerTempStyle18.paint)
451
451
  });
452
452
  });
453
- }, [beforeId, clientStyle, geometryType, layer.name, visible, getLayerTempStyle == null ? void 0 : getLayerTempStyle(layer.name, "circle"), getLayerTempStyle == null ? void 0 : getLayerTempStyle(layer.name, "fill"), getLayerTempStyle == null ? void 0 : getLayerTempStyle(layer.name, "fill-extrusion"), getLayerTempStyle == null ? void 0 : getLayerTempStyle(layer.name, "line")]);
453
+ }, [beforeId, clientStyle, geometryType, layer.name, visible, getLayerTempStyle]);
454
454
 
455
455
  if (!layer) {
456
456
  return null;
@@ -471,6 +471,7 @@ const Layer = (_ref) => {
471
471
  visible,
472
472
  beforeId,
473
473
  tileUrl,
474
+ getLayerTempStyle,
474
475
  onMount = () => null
475
476
  } = _ref;
476
477
  React.useEffect(onMount, []); // eslint-disable-line
@@ -492,7 +493,8 @@ const Layer = (_ref) => {
492
493
  layer: layer,
493
494
  tileUrl: tileUrl,
494
495
  visible: visible,
495
- beforeId: beforeId
496
+ beforeId: beforeId,
497
+ getLayerTempStyle: getLayerTempStyle
496
498
  });
497
499
  };
498
500
 
@@ -1 +1 @@
1
- {"version":3,"file":"react.cjs.development.js","sources":["../src/components/ErrorBoundary/index.tsx","../src/components/Layer/constants.ts","../src/components/Layer/RasterLayer.tsx","../src/components/Layer/utils/getClientStyleItemPrefixSuffix.ts","../src/core/classification/findAttributeInExpression.ts","../src/core/classification/getActualExtrusionHeight.ts","../src/core/classification/parseClientStyle.ts","../src/core/feature/convertSpToTurfFeature.ts","../src/components/Layer/VectorLayer.tsx","../src/components/Layer/Layer.tsx","../src/components/Map/styled.ts","../src/hooks/map/useMapDraw/customModes.ts","../src/hooks/map/useMapDraw/customStyles.ts","../src/contexts/MapContext/MapContext.ts","../src/contexts/MapContext/MapProvider.tsx","../src/contexts/MapContext/types.ts","../src/contexts/ServerNotificationsContext/ServerNotificationsContext.ts","../src/contexts/ServerNotificationsContext/hooks/useServerNotifications.ts","../src/contexts/ServerNotificationsContext/ServerNotificationsProvider.tsx","../src/hooks/map/useMapContext.ts","../src/hooks/map/useMapDraw/index.ts","../src/hooks/map/useRedrawLayer.ts","../src/hooks/map/useZoomToFeatures.ts","../src/hooks/map/useZoomToPoint.ts","../src/hooks/serverNotifications/useServerNotificationsContext.ts","../src/utils/date.ts","../src/utils/debounce.ts","../src/utils/isNumeric.ts","../src/utils/isObject.ts","../src/hooks/useDebouncedCallback.ts","../src/hooks/useToggle.ts","../src/hooks/useWindowResize.ts","../src/components/Map/Map.tsx"],"sourcesContent":["import React, { Component } from \"react\";\n\nimport { ErrorBoundaryProps, ErrorBoundaryState } from \"./types\";\n\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n public state = { hasError: false };\n\n public static getDerivedStateFromError() {\n return { hasError: true };\n }\n\n public componentDidCatch(error: Error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n\n public render() {\n const { children, errorContents } = this.props;\n const { hasError } = this.state;\n\n return !hasError ? (\n <>{children}</>\n ) : (\n <>{errorContents}</>\n );\n }\n}\n","import { CirclePaint, FillPaint, FillExtrusionPaint, LinePaint } from \"mapbox-gl\";\n\nconst DEFAULT_COLOR = \"#00ffff\";\nconst DEFAULT_OPACITY = 0.5;\nconst DEFAULT_SIZE = 4;\nconst DEFAULT_LINE_WIDTH = 1;\n\nexport const DEFAULT_CIRCLE_PAINT = {\n \"circle-radius\": DEFAULT_SIZE,\n \"circle-color\": DEFAULT_COLOR,\n \"circle-opacity\": DEFAULT_OPACITY,\n \"circle-stroke-width\": 0,\n \"circle-stroke-color\": DEFAULT_COLOR,\n \"circle-stroke-opacity\": DEFAULT_OPACITY,\n} as CirclePaint;\n\nexport const DEFAULT_FILL_PAINT = {\n \"fill-color\": DEFAULT_COLOR,\n \"fill-opacity\": DEFAULT_OPACITY,\n} as FillPaint;\n\nexport const DEFAULT_FILL_EXTRUSION_PAINT = {\n \"fill-extrusion-base\": 0,\n \"fill-extrusion-vertical-gradient\": true,\n \"fill-extrusion-color\": DEFAULT_COLOR,\n \"fill-extrusion-opacity\": DEFAULT_OPACITY,\n \"fill-extrusion-height\": 0,\n} as FillExtrusionPaint;\n\nexport const DEFAULT_LINE_PAINT = {\n \"line-color\": DEFAULT_COLOR,\n \"line-width\": DEFAULT_LINE_WIDTH,\n \"line-opacity\": DEFAULT_OPACITY,\n} as LinePaint;\n","import React, { FC } from \"react\";\nimport { Source, Layer as MapboxLayer } from \"react-map-gl/mapbox\";\n\nimport { LayerProps } from \"./types\";\n\nexport const RasterLayer: FC<Omit<LayerProps, \"layerType\" | \"onMount\">> = ({\n layer,\n tileUrl,\n visible,\n beforeId,\n}) => {\n if (!layer) {\n return null;\n }\n\n return (\n <Source id={layer.name} type=\"raster\" tiles={[tileUrl]}>\n <MapboxLayer\n id={layer.name}\n type=\"raster\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{ visibility: visible ? \"visible\" : \"none\" }}\n />\n </Source>\n );\n};\n","import { GeometryType } from \"@evergis/api\";\n\nimport { ClientStyleItem } from \"../../../types\";\n\nexport const getClientStyleItemPrefixSuffix = (\n geometryType: GeometryType,\n type: ClientStyleItem[\"type\"],\n): [string, string] => {\n switch (geometryType) {\n case GeometryType.Point:\n return [\"point-layer-\", \"\"];\n case GeometryType.Polyline:\n return [\"polyline-layer-\", \"\"];\n case GeometryType.Polygon:\n switch (type) {\n case \"line\":\n return [\"polygon-stroke-layer-\", \"-stroke\"];\n case \"fill-extrusion\":\n return [\"polygon-extrusion-layer-\", \"-extrusion\"];\n default:\n return [\"polygon-layer-\", \"\"];\n }\n default:\n return [\"\", \"\"];\n }\n};\n","import { ExpressionSpecification } from \"mapbox-gl\";\n\nexport const findAttributeInExpression = (expression: ExpressionSpecification): string[] => {\n if (Array.isArray(expression) && expression.length === 2 && expression[0] === \"get\") {\n return [expression[1]];\n }\n\n return expression.reduce((acc: string[], curr) => {\n if (!Array.isArray(curr)) {\n return acc;\n }\n\n if (curr[0] === \"get\") {\n return [...new Set([...acc, curr[1]])];\n }\n\n return [...new Set([...acc, ...findAttributeInExpression(curr as ExpressionSpecification)])];\n }, []);\n};\n","import { AnyPaint } from \"mapbox-gl\";\n\nexport const getActualExtrusionHeight = (paint: AnyPaint) => {\n return Array.isArray(paint?.[\"fill-extrusion-height\"]) && paint?.[\"fill-extrusion-height\"][0] === \"+\"\n ? paint?.[\"fill-extrusion-height\"][1]\n : paint?.[\"fill-extrusion-height\"];\n};\n","import { isEmpty } from \"lodash\";\nimport { ExpressionSpecification } from \"mapbox-gl\";\n\nimport { findAttributeInExpression } from \"./findAttributeInExpression\";\n\nimport { ClientStyle } from \"../../types\";\n\nexport const parseClientStyle = (style?: ClientStyle): string[] => {\n if (!style) {\n return [];\n }\n\n return style?.items?.reduce((acc: string[], curr) => {\n if (!curr.paint || isEmpty(curr.paint)) {\n return acc;\n }\n\n return Object.entries(curr.paint)?.reduce((paintAcc: string[], [, value]) => {\n if (!Array.isArray(value)) {\n return paintAcc;\n }\n\n return [...new Set([...paintAcc, ...findAttributeInExpression(value as ExpressionSpecification)])];\n }, []);\n }, []);\n};\n","import { FeatureDc, GeometryType, PositionDc } from \"@evergis/api\";\nimport { multiLineString, multiPoint, point, polygon } from \"@turf/turf\";\nimport { Feature } from \"geojson\";\n\nexport const convertSpToTurfFeature = (geometry?: FeatureDc[\"geometry\"]): Feature<any> | undefined => {\n if (!geometry) {\n return;\n }\n\n switch (geometry.type) {\n case GeometryType.Point:\n return point(geometry.coordinates as PositionDc);\n case GeometryType.Multipoint:\n return multiPoint(geometry.coordinates as PositionDc[]);\n case GeometryType.Polyline:\n return multiLineString(geometry.coordinates as PositionDc[][]);\n case GeometryType.Polygon:\n case GeometryType.Envelope:\n return polygon(geometry.coordinates as PositionDc[][]);\n default:\n }\n};\n","import React, { FC, useCallback } from \"react\";\nimport { Layer as MapboxLayer, Source } from \"react-map-gl/mapbox\";\nimport { FeatureLayerServiceInfoDc, GeometryType, QueryLayerServiceConfigurationDc } from \"@evergis/api\";\nimport { AnyPaint, CirclePaint, FillExtrusionPaint, FillPaint, LinePaint } from \"mapbox-gl\";\n\nimport {\n DEFAULT_CIRCLE_PAINT,\n DEFAULT_FILL_EXTRUSION_PAINT,\n DEFAULT_FILL_PAINT,\n DEFAULT_LINE_PAINT,\n} from \"./constants\";\n\nimport { getClientStyleItemPrefixSuffix } from \"./utils/getClientStyleItemPrefixSuffix\";\nimport { getActualExtrusionHeight } from \"../../core\";\n\nimport { LayerProps } from \"./types\";\nimport { ClientStyle } from \"../../types\";\n\nexport const VectorLayer: FC<Omit<LayerProps, \"layerType\" | \"onMount\">> = ({\n layer,\n tileUrl,\n visible,\n beforeId,\n getLayerTempStyle,\n}) => {\n const clientStyle = (layer?.configuration as QueryLayerServiceConfigurationDc)?.clientStyle as ClientStyle;\n const { idAttribute, geometryType } = (layer as FeatureLayerServiceInfoDc).layerDefinition || {};\n\n const renderLayerByGeometryType = useCallback(() => {\n const visibility = visible ? \"visible\" : \"none\";\n\n switch (geometryType) {\n case GeometryType.Point:\n return (\n <MapboxLayer\n id={layer.name}\n type=\"circle\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"circle\")?.layout,\n visibility,\n }}\n paint={{\n ...DEFAULT_CIRCLE_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"circle\")?.paint as CirclePaint),\n }}\n />\n );\n case GeometryType.Polygon:\n return [\n <MapboxLayer\n key={`polygon-layer-${layer.name}`}\n id={layer.name}\n type=\"fill\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"fill\")?.layout,\n visibility:\n visible &&\n getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.settings?.fill?.showBottomSurface !== false &&\n Boolean(\n getActualExtrusionHeight({\n ...DEFAULT_FILL_EXTRUSION_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint as FillExtrusionPaint),\n }),\n )\n ? \"visible\"\n : \"none\",\n }}\n paint={{\n ...DEFAULT_FILL_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill\")?.paint as FillPaint),\n }}\n />,\n <MapboxLayer\n key={`polygon-stroke-layer-${layer.name}`}\n id={`${layer.name}-stroke`}\n type=\"line\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"line\")?.layout,\n visibility:\n visible &&\n getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.settings?.fill?.showBottomSurface !== false &&\n Boolean(\n getActualExtrusionHeight({\n ...DEFAULT_FILL_EXTRUSION_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint as FillExtrusionPaint),\n }),\n )\n ? \"visible\"\n : \"none\",\n }}\n paint={{\n ...DEFAULT_LINE_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"line\")?.paint as LinePaint),\n }}\n />,\n <MapboxLayer\n key={`polygon-extrusion-layer-${layer.name}`}\n id={`${layer.name}-extrusion`}\n type=\"fill-extrusion\"\n source-layer=\"default\"\n beforeId={beforeId}\n minzoom={0}\n maxzoom={23}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.layout,\n visibility,\n }}\n paint={{\n ...DEFAULT_FILL_EXTRUSION_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint as FillExtrusionPaint),\n }}\n />,\n ];\n case GeometryType.Polyline:\n return (\n <MapboxLayer\n id={layer.name}\n type=\"line\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"line\")?.layout,\n visibility,\n }}\n paint={{\n ...DEFAULT_LINE_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"line\")?.paint as LinePaint),\n }}\n />\n );\n default:\n return null;\n }\n }, [\n geometryType,\n layer,\n beforeId,\n visible,\n getLayerTempStyle?.(layer.name, \"circle\"),\n getLayerTempStyle?.(layer.name, \"fill\"),\n getLayerTempStyle?.(layer.name, \"fill-extrusion\"),\n getLayerTempStyle?.(layer.name, \"line\"),\n ]);\n\n const renderClientStyle = useCallback(() => {\n return clientStyle.items.map(mockItem => {\n const prefixSuffix = getClientStyleItemPrefixSuffix(geometryType, mockItem.type);\n const isExtrusionItem = mockItem.type === \"fill-extrusion\";\n const isPolygonPart =\n clientStyle.items.some(item => item.type === \"fill-extrusion\") &&\n (mockItem.type === \"fill\" || mockItem.type === \"line\");\n const fillExtrusionPaint =\n isPolygonPart || isExtrusionItem\n ? {\n ...clientStyle.items?.find(item => item.type === \"fill-extrusion\")?.paint,\n ...getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint,\n }\n : undefined;\n const currentSettings = {\n ...clientStyle?.settings,\n ...getLayerTempStyle?.(layer.name, mockItem.type)?.settings,\n };\n const processedExtrusionHeight = getActualExtrusionHeight(fillExtrusionPaint);\n const hasExtrusion = Boolean(processedExtrusionHeight);\n const visibility =\n visible &&\n ((isExtrusionItem && hasExtrusion) ||\n (!isPolygonPart && !isExtrusionItem) ||\n (isPolygonPart && (!hasExtrusion || (currentSettings?.fill?.showBottomSurface ?? true))))\n ? \"visible\"\n : \"none\";\n\n return (\n <MapboxLayer\n key={`${prefixSuffix[0]}${layer.name}`}\n id={`${layer.name}${prefixSuffix[1]}`}\n type={mockItem.type}\n source-layer=\"default\"\n beforeId={beforeId}\n minzoom={clientStyle?.minzoom ?? 0}\n maxzoom={clientStyle?.maxzoom ?? 23}\n layout={{\n ...mockItem.layout,\n ...getLayerTempStyle?.(layer.name, mockItem.type)?.layout,\n visibility,\n }}\n paint={\n {\n ...mockItem.paint,\n ...getLayerTempStyle?.(layer.name, mockItem.type)?.paint,\n } as AnyPaint\n }\n />\n );\n });\n }, [\n beforeId,\n clientStyle,\n geometryType,\n layer.name,\n visible,\n getLayerTempStyle?.(layer.name, \"circle\"),\n getLayerTempStyle?.(layer.name, \"fill\"),\n getLayerTempStyle?.(layer.name, \"fill-extrusion\"),\n getLayerTempStyle?.(layer.name, \"line\"),\n ]);\n\n if (!layer) {\n return null;\n }\n\n return (\n <Source\n promoteId={idAttribute}\n id={layer.name}\n type=\"vector\"\n tiles={[tileUrl]}\n >\n {clientStyle?.items ? renderClientStyle() : renderLayerByGeometryType()}\n </Source>\n );\n};\n","import React, { FC, useEffect } from \"react\";\n\nimport { RasterLayer } from \"./RasterLayer\";\nimport { VectorLayer } from \"./VectorLayer\";\n\nimport { LayerProps } from \"./types\";\n\nexport const Layer: FC<LayerProps> = ({\n layer,\n layerType,\n visible,\n beforeId,\n tileUrl,\n onMount = () => null,\n}) => {\n useEffect(onMount, []); // eslint-disable-line\n\n if (!layer) {\n return null;\n }\n\n if (layerType === \"RasterTileLayer\") {\n return (\n <RasterLayer\n layer={layer}\n tileUrl={tileUrl}\n visible={visible}\n beforeId={beforeId}\n />\n );\n }\n\n return (\n <VectorLayer\n layer={layer}\n tileUrl={tileUrl}\n visible={visible}\n beforeId={beforeId}\n />\n );\n};\n","import { CSSProperties } from \"react\";\nimport styled from \"styled-components\";\n\nexport const MapWrapper = styled.div<{ $zIndex?: CSSProperties[\"zIndex\"] }>`\n position: relative;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n z-index: ${({ $zIndex }) => $zIndex ?? 1};\n\n .mapbox-gl-draw_trash {\n display: none;\n }\n\n .mapboxgl-ctrl-logo {\n display: none;\n }\n\n .mapboxgl-ctrl.mapboxgl-ctrl-attrib {\n display: none;\n }\n\n .mapboxgl-ctrl-geocoder.mapboxgl-ctrl {\n width: 350px;\n }\n`;\n","import MapboxDraw, { DrawCustomMode } from \"@mapbox/mapbox-gl-draw\";\n\ninterface ExtendedMapboxDrawModes extends MapboxDraw.Modes {\n [key: string]: DrawCustomMode;\n static: DrawCustomMode;\n}\n\nexport const customModes = MapboxDraw.modes as ExtendedMapboxDrawModes;\n\nconst StaticMode = {} as DrawCustomMode;\n\nStaticMode.onSetup = function () {\n this.setActionableState(undefined);\n\n return {};\n};\n\nStaticMode.toDisplayFeatures = function (state, geojson, display) {\n display(geojson);\n};\n\ncustomModes.static = StaticMode;\n","export const customStyles = [\n {\n id: \"gl-draw-point\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"]],\n paint: {\n \"circle-radius\": 5,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"highlight-inactive-points\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"feature\"], [\"==\", \"active\", \"false\"]],\n paint: {\n \"circle-radius\": 5,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"highlight-active-points\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"feature\"], [\"==\", \"active\", \"true\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#fbb03b\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 1,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"gl-draw-polygon-fill-static\",\n type: \"fill\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n paint: {\n \"fill-color\": \"#D20C0C\",\n \"fill-outline-color\": \"#D20C0C\",\n \"fill-opacity\": 0.1,\n },\n },\n {\n id: \"gl-draw-line\",\n type: \"line\",\n filter: [\"all\", [\"==\", \"$type\", \"LineString\"]],\n layout: {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n },\n paint: {\n \"line-color\": \"#D20C0C\",\n \"line-dasharray\": [0.2, 2],\n \"line-width\": 2,\n },\n },\n {\n id: \"gl-draw-polygon-fill\",\n type: \"fill\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n paint: {\n \"fill-color\": \"#D20C0C\",\n \"fill-outline-color\": \"#D20C0C\",\n \"fill-opacity\": 0.1,\n },\n },\n {\n id: \"gl-draw-polygon-midpoint\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"midpoint\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#fbb03b\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 1,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"gl-draw-polygon-stroke-active\",\n type: \"line\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n layout: {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n },\n paint: {\n \"line-color\": \"#D20C0C\",\n \"line-dasharray\": [0.2, 2],\n \"line-width\": 2,\n },\n },\n {\n id: \"gl-draw-polygon-and-line-vertex-active\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"meta\", \"vertex\"], [\"==\", \"$type\", \"Point\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n];\n","import { createContext } from \"react\";\n\nimport { MapContextProps } from \"./types\";\n\nexport const MapContext = createContext<MapContextProps>({});\n","import React, { FC, useRef, useState } from \"react\";\nimport { Map as MapboxGLMap } from \"mapbox-gl\";\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\n\nimport { MapContext } from \"./MapContext\";\n\nimport { MapProviderProps } from \"./types\";\n\nexport const MapProvider: FC<MapProviderProps> = ({ basemapItems, defaultBasemap, children }) => {\n const map = useRef<MapboxGLMap | undefined>();\n const draw = useRef<MapboxDraw | undefined>();\n const [loaded, setLoaded] = useState<boolean>(false);\n const [basemapName, setBasemapName] = useState(defaultBasemap);\n\n return (\n <MapContext.Provider\n value={{\n map,\n draw,\n loaded,\n setLoaded,\n basemapItems,\n basemapName,\n setBasemapName,\n defaultBasemap,\n }}\n >\n {children}\n </MapContext.Provider>\n );\n};\n","import { Dispatch, MutableRefObject, PropsWithChildren, SetStateAction } from \"react\";\nimport { Map as MapboxGLMap } from \"mapbox-gl\";\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\n\nexport enum BaseMapTheme {\n Light = \"light\",\n Dark = \"dark\",\n}\n\nexport interface BaseMapItem {\n name: string;\n source: string;\n preview?: string;\n imgSrc?: string;\n title: string;\n theme?: BaseMapTheme;\n opacity?: number;\n color?: string;\n}\n\nexport interface MapContextProps {\n map?: MutableRefObject<MapboxGLMap>;\n draw?: MutableRefObject<Omit<MapboxDraw, \"getDefaultPosition\">>;\n loaded?: boolean;\n setLoaded?: Dispatch<SetStateAction<boolean>>;\n basemapItems?: BaseMapItem[];\n basemapName?: string;\n setBasemapName?: Dispatch<SetStateAction<string>>;\n defaultBasemap?: string;\n}\n\nexport interface MapProviderProps extends PropsWithChildren {\n basemapItems: BaseMapItem[];\n defaultBasemap: string;\n}\n","import { createContext } from \"react\";\n\nimport { ServerNotificationsContextProps } from \"./types\";\n\nexport const ServerNotificationsContext = createContext<ServerNotificationsContextProps>({});\n","import { useEffect, useRef, useState } from \"react\";\nimport { HubConnection, HubConnectionBuilder, LogLevel } from \"@microsoft/signalr\";\n\nexport const useServerNotifications = (url: string, initialized: boolean): HubConnection | null => {\n const hubConnection = useRef<HubConnection | null>(null);\n const [connection, setConnection] = useState<HubConnection | null>(null);\n\n useEffect(() => {\n if (!initialized) {\n return;\n }\n\n hubConnection.current = new HubConnectionBuilder()\n .withUrl(url, {\n withCredentials: true,\n })\n .configureLogging(LogLevel.Information)\n .build();\n\n hubConnection.current\n .start()\n .then(() => console.info(\"Серверные нотификации подключены\"))\n .catch(err => console.info(\"Ошибка:\", err))\n .finally(() => setConnection(hubConnection.current));\n }, [initialized]); // eslint-disable-line\n\n useEffect(() => {\n if (!connection || connection.state !== \"Connected\") {\n return;\n }\n\n connection\n .invoke(\"SubscribeNotifications\", [])\n .then(() => console.info(\"Подписка `SubscribeNotifications` оформлена\"))\n .catch(err => console.info(\"Ошибка подписки `SubscribeNotifications`:\", err));\n }, [connection]);\n\n return connection;\n};\n","import React, { FC, useCallback } from \"react\";\n\nimport { ServerNotificationsContext } from \"./ServerNotificationsContext\";\n\nimport { useServerNotifications } from \"./hooks/useServerNotifications\";\n\nimport { ServerNotificationsProviderProps } from \"./types\";\n\nexport const ServerNotificationsProvider: FC<ServerNotificationsProviderProps> = ({ url, initialized, children }) => {\n const connection = useServerNotifications(url, initialized);\n\n const addSubscription = useCallback(\n async (payload?: any): Promise<string | null> => {\n if (!connection || connection.state !== \"Connected\" || !payload) {\n return;\n }\n\n try {\n const id = await connection.invoke(\"AddSubscription\", payload);\n\n console.info(\"Подписка добавлена, id:\", id);\n\n return id;\n } catch (err) {\n console.info(\"Ошибка добавления подписки:\", err);\n\n return Promise.resolve(null);\n }\n },\n [connection],\n );\n\n const updateSubscription = useCallback(\n async (id: string | null, payload?: any): Promise<void> => {\n if (!connection || connection.state !== \"Connected\" || !id || !payload) {\n return;\n }\n\n try {\n await connection.invoke(\"UpdateSubscription\", id, payload);\n } catch (err) {\n console.info(`Ошибка обновления подписки ${id}:`, err);\n }\n },\n [connection],\n );\n\n const unsubscribeById = useCallback(\n async (id: string | null): Promise<void> => {\n if (!connection || connection.state !== \"Connected\" || !id) {\n return;\n }\n\n try {\n await connection.invoke(\"Unsubscribe\", [id]);\n } catch (err) {\n console.info(`Ошибка отписки по ${id}:`, err);\n }\n },\n [connection],\n );\n\n return (\n <ServerNotificationsContext.Provider value={{ connection, addSubscription, updateSubscription, unsubscribeById }}>\n {children}\n </ServerNotificationsContext.Provider>\n );\n};\n","import { useContext } from \"react\";\n\nimport { MapContext } from \"../../contexts\";\n\nexport const useMapContext = () => {\n return useContext(MapContext);\n};\n","import { useEffect } from \"react\";\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\n\nimport { customModes } from \"./customModes\";\nimport { customStyles } from \"./customStyles\";\n\nimport { useMapContext } from \"../useMapContext\";\n\nconst draw = new MapboxDraw({\n displayControlsDefault: false,\n styles: customStyles,\n modes: customModes,\n defaultMode: \"draw_point\",\n controls: {\n trash: true,\n },\n});\n\nexport const useMapDraw = (triggerDeps: Array<unknown> = []) => {\n const { map, draw: drawContext, loaded, basemapName } = useMapContext();\n\n useEffect(() => {\n if (!loaded || !map.current) {\n return;\n }\n\n drawContext.current = draw;\n map.current.addControl(drawContext.current);\n }, [loaded]); // eslint-disable-line\n\n useEffect(() => {\n if (map.current && map.current.hasControl(drawContext.current)) {\n map.current.removeControl(drawContext.current);\n map.current.addControl(drawContext.current);\n }\n }, [basemapName, ...triggerDeps]); // eslint-disable-line\n};\n","import { useCallback } from \"react\";\nimport { VectorSourceImpl } from \"mapbox-gl\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useRedrawLayer = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (layerName: string) => {\n const layerTileSource: VectorSourceImpl = map.current.getSource(layerName);\n\n layerTileSource.setTiles(layerTileSource.tiles);\n },\n [map],\n );\n};\n","import { useCallback } from \"react\";\nimport { bbox } from \"@turf/turf\";\nimport { FeatureDc } from \"@evergis/api\";\n\nimport { useMapContext } from \"./useMapContext\";\nimport { convertSpToTurfFeature } from \"../../core\";\n\nexport const useZoomToFeatures = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (features?: FeatureDc[], padding?: number) => {\n if (!features) {\n return;\n }\n\n const currentFeatureCenter = bbox({\n type: \"FeatureCollection\",\n features: features.map(feature => convertSpToTurfFeature(feature.geometry)),\n });\n\n map.current.fitBounds(currentFeatureCenter as [number, number, number, number], { padding: padding ?? 150 });\n },\n [map],\n );\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useZoomToPoint = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (options, callback?: VoidFunction) => {\n if (map.current) {\n if (callback) {\n map.current.once(\"moveend\", () => {\n callback();\n });\n }\n\n map.current.flyTo(options);\n } else {\n callback?.();\n }\n },\n [map],\n );\n};\n","import { useContext } from \"react\";\n\nimport { ServerNotificationsContext } from \"../../contexts\";\n\nexport const useServerNotificationsContext = () => {\n return useContext(ServerNotificationsContext);\n};\n","import { parseJSON, parseISO, isValid, format, toDate } from \"date-fns\";\n\nexport const NO_CONTENT_VALUE = \"—\";\n\nexport type DateType = number | Date;\nexport type RawDateType = string | DateType;\n\nexport enum DateFormat {\n ClientDefaultFormat = \"dd.MM.yyyy HH:mm\",\n DateTime = \"dd.MM.yyyy HH:mm:ss\",\n UTC = \"yyyy-MM-dd'T'HH:mm:ss.sssxxx\",\n AxisTooltip = \"d MMMM yyyy\",\n}\n\ninterface FormatDateOptions {\n dateFormat?: DateFormat;\n defaultValue?: RawDateType;\n}\n\nconst stringDateParsers: ((date: string) => DateType)[] = [parseJSON, parseISO, rawDate => new Date(rawDate)];\n\nexport const getDate = (rawDate?: RawDateType | null): Date | null => {\n if (!rawDate) return null;\n\n if (typeof rawDate === \"string\") {\n for (const parser of stringDateParsers) {\n const date = parser(rawDate);\n\n if (isValid(date)) {\n return toDate(date);\n }\n }\n\n return null;\n }\n\n const parsedDate = toDate(rawDate);\n\n return isValid(parsedDate) ? parsedDate : null;\n};\n\nexport const formatDate = (\n date?: RawDateType,\n { dateFormat = DateFormat.ClientDefaultFormat, defaultValue = NO_CONTENT_VALUE }: FormatDateOptions = {},\n): string => {\n const dateValue = date ? getDate(date) : null;\n\n if (isValid(dateValue)) {\n return format(dateValue as Date, dateFormat);\n }\n\n return defaultValue.toString();\n};\n","export const debounce = (callback: any, delay: number): ((...args) => void) => {\n let timeId: number;\n\n return (...args) => {\n if (timeId) {\n window.clearTimeout(timeId);\n }\n\n timeId = window.setTimeout(() => {\n callback(...args);\n }, delay);\n };\n};\n","export const isNumeric = (number: string | number): boolean =>\n !isNaN(parseFloat(number as string)) && isFinite(number as number);\n","export function isObject<T>(value: T | object): value is object {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import { useMemo } from \"react\";\n\nimport { debounce } from \"../utils\";\n\nexport const useDebouncedCallback = <CallbackFn extends () => void>(interval: number): ((cb: CallbackFn) => void) => {\n return useMemo(\n () =>\n debounce((cb: CallbackFn) => {\n cb();\n }, interval),\n [interval],\n );\n};\n","import { useCallback, useState } from \"react\";\n\nexport const useToggle = (initial?: boolean): [boolean, VoidFunction, (value: boolean) => void] => {\n const [state, setState] = useState(initial !== undefined ? initial : false);\n\n const toggle = useCallback(() => setState(!state), [state]);\n\n return [state, toggle, setState];\n};\n","import { useEffect, useMemo } from \"react\";\n\nimport { debounce } from \"../utils\";\n\nconst DEBOUNCE_DELAY = 144;\n\nexport const useWindowResize = (callback?: (...args: any) => any, delay?: number) => {\n const debounceCallback = useMemo(() => {\n return callback ? debounce(callback, delay || DEBOUNCE_DELAY) : undefined;\n }, [callback, delay]);\n\n useEffect(() => {\n debounceCallback && window.addEventListener(\"resize\", debounceCallback);\n\n return () => debounceCallback && window.removeEventListener(\"resize\", debounceCallback);\n }, [debounceCallback]);\n};\n","import React, { FC } from \"react\";\nimport { default as MapGL } from \"react-map-gl/mapbox\";\nimport { Map as MapboxGLMap } from \"mapbox-gl\";\nimport \"@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css\";\n\nimport { MapWrapper } from \"./styled\";\n\nimport { useMapContext } from \"../../hooks\";\n\nimport { MapProps } from \"./types\";\n\nimport \"mapbox-gl/dist/mapbox-gl.css\";\n\nexport const Map: FC<MapProps> = ({\n zIndex,\n lowerSiblings,\n upperSiblings,\n onError,\n children,\n ...rest\n}) => {\n const { map, setLoaded } = useMapContext();\n\n return (\n <MapWrapper $zIndex={zIndex}>\n {lowerSiblings}\n <MapGL\n {...rest}\n renderWorldCopies\n antialias\n doubleClickZoom={false}\n cursor=\"default\"\n onLoad={e => {\n map.current = e.target as MapboxGLMap;\n\n map.current.on(\"error\", onError);\n\n setLoaded(true);\n }}\n >\n {children}\n </MapGL>\n {upperSiblings}\n </MapWrapper>\n );\n};\n"],"names":["ErrorBoundary","hasError","componentDidCatch","error","console","render","children","errorContents","props","state","React","getDerivedStateFromError","Component","DEFAULT_COLOR","DEFAULT_OPACITY","DEFAULT_SIZE","DEFAULT_LINE_WIDTH","DEFAULT_CIRCLE_PAINT","DEFAULT_FILL_PAINT","DEFAULT_FILL_EXTRUSION_PAINT","DEFAULT_LINE_PAINT","RasterLayer","layer","tileUrl","visible","beforeId","Source","id","name","type","tiles","MapboxLayer","layout","visibility","getClientStyleItemPrefixSuffix","geometryType","GeometryType","Point","Polyline","Polygon","findAttributeInExpression","expression","Array","isArray","length","reduce","acc","curr","Set","getActualExtrusionHeight","paint","parseClientStyle","style","items","isEmpty","Object","entries","paintAcc","value","convertSpToTurfFeature","geometry","point","coordinates","Multipoint","multiPoint","multiLineString","Envelope","polygon","VectorLayer","getLayerTempStyle","clientStyle","configuration","idAttribute","layerDefinition","renderLayerByGeometryType","useCallback","key","settings","fill","showBottomSurface","Boolean","minzoom","maxzoom","renderClientStyle","map","mockItem","prefixSuffix","isExtrusionItem","isPolygonPart","some","item","fillExtrusionPaint","find","undefined","currentSettings","processedExtrusionHeight","hasExtrusion","promoteId","Layer","layerType","onMount","useEffect","MapWrapper","styled","div","$zIndex","customModes","MapboxDraw","modes","StaticMode","onSetup","setActionableState","toDisplayFeatures","geojson","display","static","customStyles","filter","MapContext","createContext","MapProvider","basemapItems","defaultBasemap","useRef","draw","loaded","setLoaded","useState","basemapName","setBasemapName","Provider","BaseMapTheme","ServerNotificationsContext","useServerNotifications","url","initialized","hubConnection","connection","setConnection","current","HubConnectionBuilder","withUrl","withCredentials","configureLogging","LogLevel","Information","build","start","then","info","catch","err","finally","invoke","ServerNotificationsProvider","addSubscription","payload","Promise","resolve","updateSubscription","unsubscribeById","useMapContext","useContext","displayControlsDefault","styles","defaultMode","controls","trash","useMapDraw","triggerDeps","drawContext","addControl","hasControl","removeControl","useRedrawLayer","layerName","layerTileSource","getSource","setTiles","useZoomToFeatures","features","padding","currentFeatureCenter","bbox","feature","fitBounds","useZoomToPoint","options","callback","once","flyTo","useServerNotificationsContext","NO_CONTENT_VALUE","DateFormat","stringDateParsers","parseJSON","parseISO","rawDate","Date","getDate","parser","date","isValid","toDate","parsedDate","formatDate","dateFormat","ClientDefaultFormat","defaultValue","dateValue","format","toString","debounce","delay","timeId","args","window","clearTimeout","setTimeout","isNumeric","number","isNaN","parseFloat","isFinite","isObject","useDebouncedCallback","interval","useMemo","cb","useToggle","initial","setState","toggle","DEBOUNCE_DELAY","useWindowResize","debounceCallback","addEventListener","removeEventListener","Map","zIndex","lowerSiblings","upperSiblings","onError","rest","MapGL","renderWorldCopies","antialias","doubleClickZoom","cursor","onLoad","e","target","on"],"mappings":"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"}
1
+ {"version":3,"file":"react.cjs.development.js","sources":["../src/components/ErrorBoundary/index.tsx","../src/components/Layer/constants.ts","../src/components/Layer/RasterLayer.tsx","../src/components/Layer/utils/getClientStyleItemPrefixSuffix.ts","../src/core/classification/findAttributeInExpression.ts","../src/core/classification/getActualExtrusionHeight.ts","../src/core/classification/parseClientStyle.ts","../src/core/feature/convertSpToTurfFeature.ts","../src/components/Layer/VectorLayer.tsx","../src/components/Layer/Layer.tsx","../src/components/Map/styled.ts","../src/hooks/map/useMapDraw/customModes.ts","../src/hooks/map/useMapDraw/customStyles.ts","../src/contexts/MapContext/MapContext.ts","../src/contexts/MapContext/MapProvider.tsx","../src/contexts/MapContext/types.ts","../src/contexts/ServerNotificationsContext/ServerNotificationsContext.ts","../src/contexts/ServerNotificationsContext/hooks/useServerNotifications.ts","../src/contexts/ServerNotificationsContext/ServerNotificationsProvider.tsx","../src/hooks/map/useMapContext.ts","../src/hooks/map/useMapDraw/index.ts","../src/hooks/map/useRedrawLayer.ts","../src/hooks/map/useZoomToFeatures.ts","../src/hooks/map/useZoomToPoint.ts","../src/hooks/serverNotifications/useServerNotificationsContext.ts","../src/utils/date.ts","../src/utils/debounce.ts","../src/utils/isNumeric.ts","../src/utils/isObject.ts","../src/hooks/useDebouncedCallback.ts","../src/hooks/useToggle.ts","../src/hooks/useWindowResize.ts","../src/components/Map/Map.tsx"],"sourcesContent":["import React, { Component } from \"react\";\n\nimport { ErrorBoundaryProps, ErrorBoundaryState } from \"./types\";\n\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n public state = { hasError: false };\n\n public static getDerivedStateFromError() {\n return { hasError: true };\n }\n\n public componentDidCatch(error: Error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n\n public render() {\n const { children, errorContents } = this.props;\n const { hasError } = this.state;\n\n return !hasError ? (\n <>{children}</>\n ) : (\n <>{errorContents}</>\n );\n }\n}\n","import { CirclePaint, FillPaint, FillExtrusionPaint, LinePaint } from \"mapbox-gl\";\n\nconst DEFAULT_COLOR = \"#00ffff\";\nconst DEFAULT_OPACITY = 0.5;\nconst DEFAULT_SIZE = 4;\nconst DEFAULT_LINE_WIDTH = 1;\n\nexport const DEFAULT_CIRCLE_PAINT = {\n \"circle-radius\": DEFAULT_SIZE,\n \"circle-color\": DEFAULT_COLOR,\n \"circle-opacity\": DEFAULT_OPACITY,\n \"circle-stroke-width\": 0,\n \"circle-stroke-color\": DEFAULT_COLOR,\n \"circle-stroke-opacity\": DEFAULT_OPACITY,\n} as CirclePaint;\n\nexport const DEFAULT_FILL_PAINT = {\n \"fill-color\": DEFAULT_COLOR,\n \"fill-opacity\": DEFAULT_OPACITY,\n} as FillPaint;\n\nexport const DEFAULT_FILL_EXTRUSION_PAINT = {\n \"fill-extrusion-base\": 0,\n \"fill-extrusion-vertical-gradient\": true,\n \"fill-extrusion-color\": DEFAULT_COLOR,\n \"fill-extrusion-opacity\": DEFAULT_OPACITY,\n \"fill-extrusion-height\": 0,\n} as FillExtrusionPaint;\n\nexport const DEFAULT_LINE_PAINT = {\n \"line-color\": DEFAULT_COLOR,\n \"line-width\": DEFAULT_LINE_WIDTH,\n \"line-opacity\": DEFAULT_OPACITY,\n} as LinePaint;\n","import React, { FC } from \"react\";\nimport { Source, Layer as MapboxLayer } from \"react-map-gl/mapbox\";\n\nimport { LayerProps } from \"./types\";\n\nexport const RasterLayer: FC<Omit<LayerProps, \"layerType\" | \"onMount\" | \"getLayerTempStyle\">> = ({\n layer,\n tileUrl,\n visible,\n beforeId,\n}) => {\n if (!layer) {\n return null;\n }\n\n return (\n <Source id={layer.name} type=\"raster\" tiles={[tileUrl]}>\n <MapboxLayer\n id={layer.name}\n type=\"raster\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{ visibility: visible ? \"visible\" : \"none\" }}\n />\n </Source>\n );\n};\n","import { GeometryType } from \"@evergis/api\";\n\nimport { ClientStyleItem } from \"../../../types\";\n\nexport const getClientStyleItemPrefixSuffix = (\n geometryType: GeometryType,\n type: ClientStyleItem[\"type\"],\n): [string, string] => {\n switch (geometryType) {\n case GeometryType.Point:\n return [\"point-layer-\", \"\"];\n case GeometryType.Polyline:\n return [\"polyline-layer-\", \"\"];\n case GeometryType.Polygon:\n switch (type) {\n case \"line\":\n return [\"polygon-stroke-layer-\", \"-stroke\"];\n case \"fill-extrusion\":\n return [\"polygon-extrusion-layer-\", \"-extrusion\"];\n default:\n return [\"polygon-layer-\", \"\"];\n }\n default:\n return [\"\", \"\"];\n }\n};\n","import { ExpressionSpecification } from \"mapbox-gl\";\n\nexport const findAttributeInExpression = (expression: ExpressionSpecification): string[] => {\n if (Array.isArray(expression) && expression.length === 2 && expression[0] === \"get\") {\n return [expression[1]];\n }\n\n return expression.reduce((acc: string[], curr) => {\n if (!Array.isArray(curr)) {\n return acc;\n }\n\n if (curr[0] === \"get\") {\n return [...new Set([...acc, curr[1]])];\n }\n\n return [...new Set([...acc, ...findAttributeInExpression(curr as ExpressionSpecification)])];\n }, []);\n};\n","import { AnyPaint } from \"mapbox-gl\";\n\nexport const getActualExtrusionHeight = (paint: AnyPaint) => {\n return Array.isArray(paint?.[\"fill-extrusion-height\"]) && paint?.[\"fill-extrusion-height\"][0] === \"+\"\n ? paint?.[\"fill-extrusion-height\"][1]\n : paint?.[\"fill-extrusion-height\"];\n};\n","import { isEmpty } from \"lodash\";\nimport { ExpressionSpecification } from \"mapbox-gl\";\n\nimport { findAttributeInExpression } from \"./findAttributeInExpression\";\n\nimport { ClientStyle } from \"../../types\";\n\nexport const parseClientStyle = (style?: ClientStyle): string[] => {\n if (!style) {\n return [];\n }\n\n return style?.items?.reduce((acc: string[], curr) => {\n if (!curr.paint || isEmpty(curr.paint)) {\n return acc;\n }\n\n return Object.entries(curr.paint)?.reduce((paintAcc: string[], [, value]) => {\n if (!Array.isArray(value)) {\n return paintAcc;\n }\n\n return [...new Set([...paintAcc, ...findAttributeInExpression(value as ExpressionSpecification)])];\n }, []);\n }, []);\n};\n","import { FeatureDc, GeometryType, PositionDc } from \"@evergis/api\";\nimport { multiLineString, multiPoint, point, polygon } from \"@turf/turf\";\nimport { Feature } from \"geojson\";\n\nexport const convertSpToTurfFeature = (geometry?: FeatureDc[\"geometry\"]): Feature<any> | undefined => {\n if (!geometry) {\n return;\n }\n\n switch (geometry.type) {\n case GeometryType.Point:\n return point(geometry.coordinates as PositionDc);\n case GeometryType.Multipoint:\n return multiPoint(geometry.coordinates as PositionDc[]);\n case GeometryType.Polyline:\n return multiLineString(geometry.coordinates as PositionDc[][]);\n case GeometryType.Polygon:\n case GeometryType.Envelope:\n return polygon(geometry.coordinates as PositionDc[][]);\n default:\n }\n};\n","import React, { FC, useCallback } from \"react\";\nimport { Layer as MapboxLayer, Source } from \"react-map-gl/mapbox\";\nimport { FeatureLayerServiceInfoDc, GeometryType, QueryLayerServiceConfigurationDc } from \"@evergis/api\";\nimport { AnyPaint, CirclePaint, FillExtrusionPaint, FillPaint, LinePaint } from \"mapbox-gl\";\n\nimport {\n DEFAULT_CIRCLE_PAINT,\n DEFAULT_FILL_EXTRUSION_PAINT,\n DEFAULT_FILL_PAINT,\n DEFAULT_LINE_PAINT,\n} from \"./constants\";\n\nimport { getClientStyleItemPrefixSuffix } from \"./utils/getClientStyleItemPrefixSuffix\";\nimport { getActualExtrusionHeight } from \"../../core\";\n\nimport { LayerProps } from \"./types\";\nimport { ClientStyle } from \"../../types\";\n\nexport const VectorLayer: FC<Omit<LayerProps, \"layerType\" | \"onMount\">> = ({\n layer,\n tileUrl,\n visible,\n beforeId,\n getLayerTempStyle,\n}) => {\n const clientStyle = (layer?.configuration as QueryLayerServiceConfigurationDc)?.clientStyle as ClientStyle;\n const { idAttribute, geometryType } = (layer as FeatureLayerServiceInfoDc).layerDefinition || {};\n\n const renderLayerByGeometryType = useCallback(() => {\n const visibility = visible ? \"visible\" : \"none\";\n\n switch (geometryType) {\n case GeometryType.Point:\n return (\n <MapboxLayer\n id={layer.name}\n type=\"circle\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"circle\")?.layout,\n visibility,\n }}\n paint={{\n ...DEFAULT_CIRCLE_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"circle\")?.paint as CirclePaint),\n }}\n />\n );\n case GeometryType.Polygon:\n return [\n <MapboxLayer\n key={`polygon-layer-${layer.name}`}\n id={layer.name}\n type=\"fill\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"fill\")?.layout,\n visibility:\n visible &&\n getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.settings?.fill?.showBottomSurface !== false &&\n Boolean(\n getActualExtrusionHeight({\n ...DEFAULT_FILL_EXTRUSION_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint as FillExtrusionPaint),\n }),\n )\n ? \"visible\"\n : \"none\",\n }}\n paint={{\n ...DEFAULT_FILL_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill\")?.paint as FillPaint),\n }}\n />,\n <MapboxLayer\n key={`polygon-stroke-layer-${layer.name}`}\n id={`${layer.name}-stroke`}\n type=\"line\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"line\")?.layout,\n visibility:\n visible &&\n getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.settings?.fill?.showBottomSurface !== false &&\n Boolean(\n getActualExtrusionHeight({\n ...DEFAULT_FILL_EXTRUSION_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint as FillExtrusionPaint),\n }),\n )\n ? \"visible\"\n : \"none\",\n }}\n paint={{\n ...DEFAULT_LINE_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"line\")?.paint as LinePaint),\n }}\n />,\n <MapboxLayer\n key={`polygon-extrusion-layer-${layer.name}`}\n id={`${layer.name}-extrusion`}\n type=\"fill-extrusion\"\n source-layer=\"default\"\n beforeId={beforeId}\n minzoom={0}\n maxzoom={23}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.layout,\n visibility,\n }}\n paint={{\n ...DEFAULT_FILL_EXTRUSION_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint as FillExtrusionPaint),\n }}\n />,\n ];\n case GeometryType.Polyline:\n return (\n <MapboxLayer\n id={layer.name}\n type=\"line\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"line\")?.layout,\n visibility,\n }}\n paint={{\n ...DEFAULT_LINE_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"line\")?.paint as LinePaint),\n }}\n />\n );\n default:\n return null;\n }\n }, [\n geometryType,\n layer,\n beforeId,\n visible,\n getLayerTempStyle,\n ]);\n\n const renderClientStyle = useCallback(() => {\n return clientStyle.items.map(mockItem => {\n const prefixSuffix = getClientStyleItemPrefixSuffix(geometryType, mockItem.type);\n const isExtrusionItem = mockItem.type === \"fill-extrusion\";\n const isPolygonPart =\n clientStyle.items.some(item => item.type === \"fill-extrusion\") &&\n (mockItem.type === \"fill\" || mockItem.type === \"line\");\n const fillExtrusionPaint =\n isPolygonPart || isExtrusionItem\n ? {\n ...clientStyle.items?.find(item => item.type === \"fill-extrusion\")?.paint,\n ...getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint,\n }\n : undefined;\n const currentSettings = {\n ...clientStyle?.settings,\n ...getLayerTempStyle?.(layer.name, mockItem.type)?.settings,\n };\n const processedExtrusionHeight = getActualExtrusionHeight(fillExtrusionPaint);\n const hasExtrusion = Boolean(processedExtrusionHeight);\n const visibility =\n visible &&\n ((isExtrusionItem && hasExtrusion) ||\n (!isPolygonPart && !isExtrusionItem) ||\n (isPolygonPart && (!hasExtrusion || (currentSettings?.fill?.showBottomSurface ?? true))))\n ? \"visible\"\n : \"none\";\n\n return (\n <MapboxLayer\n key={`${prefixSuffix[0]}${layer.name}`}\n id={`${layer.name}${prefixSuffix[1]}`}\n type={mockItem.type}\n source-layer=\"default\"\n beforeId={beforeId}\n minzoom={clientStyle?.minzoom ?? 0}\n maxzoom={clientStyle?.maxzoom ?? 23}\n layout={{\n ...mockItem.layout,\n ...getLayerTempStyle?.(layer.name, mockItem.type)?.layout,\n visibility,\n }}\n paint={\n {\n ...mockItem.paint,\n ...getLayerTempStyle?.(layer.name, mockItem.type)?.paint,\n } as AnyPaint\n }\n />\n );\n });\n }, [\n beforeId,\n clientStyle,\n geometryType,\n layer.name,\n visible,\n getLayerTempStyle,\n ]);\n\n if (!layer) {\n return null;\n }\n\n return (\n <Source\n promoteId={idAttribute}\n id={layer.name}\n type=\"vector\"\n tiles={[tileUrl]}\n >\n {clientStyle?.items ? renderClientStyle() : renderLayerByGeometryType()}\n </Source>\n );\n};\n","import React, { FC, useEffect } from \"react\";\n\nimport { RasterLayer } from \"./RasterLayer\";\nimport { VectorLayer } from \"./VectorLayer\";\n\nimport { LayerProps } from \"./types\";\n\nexport const Layer: FC<LayerProps> = ({\n layer,\n layerType,\n visible,\n beforeId,\n tileUrl,\n getLayerTempStyle,\n onMount = () => null,\n}) => {\n useEffect(onMount, []); // eslint-disable-line\n\n if (!layer) {\n return null;\n }\n\n if (layerType === \"RasterTileLayer\") {\n return (\n <RasterLayer\n layer={layer}\n tileUrl={tileUrl}\n visible={visible}\n beforeId={beforeId}\n />\n );\n }\n\n return (\n <VectorLayer\n layer={layer}\n tileUrl={tileUrl}\n visible={visible}\n beforeId={beforeId}\n getLayerTempStyle={getLayerTempStyle}\n />\n );\n};\n","import { CSSProperties } from \"react\";\nimport styled from \"styled-components\";\n\nexport const MapWrapper = styled.div<{ $zIndex?: CSSProperties[\"zIndex\"] }>`\n position: relative;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n z-index: ${({ $zIndex }) => $zIndex ?? 1};\n\n .mapbox-gl-draw_trash {\n display: none;\n }\n\n .mapboxgl-ctrl-logo {\n display: none;\n }\n\n .mapboxgl-ctrl.mapboxgl-ctrl-attrib {\n display: none;\n }\n\n .mapboxgl-ctrl-geocoder.mapboxgl-ctrl {\n width: 350px;\n }\n`;\n","import MapboxDraw, { DrawCustomMode } from \"@mapbox/mapbox-gl-draw\";\n\ninterface ExtendedMapboxDrawModes extends MapboxDraw.Modes {\n [key: string]: DrawCustomMode;\n static: DrawCustomMode;\n}\n\nexport const customModes = MapboxDraw.modes as ExtendedMapboxDrawModes;\n\nconst StaticMode = {} as DrawCustomMode;\n\nStaticMode.onSetup = function () {\n this.setActionableState(undefined);\n\n return {};\n};\n\nStaticMode.toDisplayFeatures = function (state, geojson, display) {\n display(geojson);\n};\n\ncustomModes.static = StaticMode;\n","export const customStyles = [\n {\n id: \"gl-draw-point\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"]],\n paint: {\n \"circle-radius\": 5,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"highlight-inactive-points\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"feature\"], [\"==\", \"active\", \"false\"]],\n paint: {\n \"circle-radius\": 5,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"highlight-active-points\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"feature\"], [\"==\", \"active\", \"true\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#fbb03b\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 1,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"gl-draw-polygon-fill-static\",\n type: \"fill\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n paint: {\n \"fill-color\": \"#D20C0C\",\n \"fill-outline-color\": \"#D20C0C\",\n \"fill-opacity\": 0.1,\n },\n },\n {\n id: \"gl-draw-line\",\n type: \"line\",\n filter: [\"all\", [\"==\", \"$type\", \"LineString\"]],\n layout: {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n },\n paint: {\n \"line-color\": \"#D20C0C\",\n \"line-dasharray\": [0.2, 2],\n \"line-width\": 2,\n },\n },\n {\n id: \"gl-draw-polygon-fill\",\n type: \"fill\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n paint: {\n \"fill-color\": \"#D20C0C\",\n \"fill-outline-color\": \"#D20C0C\",\n \"fill-opacity\": 0.1,\n },\n },\n {\n id: \"gl-draw-polygon-midpoint\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"midpoint\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#fbb03b\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 1,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"gl-draw-polygon-stroke-active\",\n type: \"line\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n layout: {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n },\n paint: {\n \"line-color\": \"#D20C0C\",\n \"line-dasharray\": [0.2, 2],\n \"line-width\": 2,\n },\n },\n {\n id: \"gl-draw-polygon-and-line-vertex-active\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"meta\", \"vertex\"], [\"==\", \"$type\", \"Point\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n];\n","import { createContext } from \"react\";\n\nimport { MapContextProps } from \"./types\";\n\nexport const MapContext = createContext<MapContextProps>({});\n","import React, { FC, useRef, useState } from \"react\";\nimport { Map as MapboxGLMap } from \"mapbox-gl\";\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\n\nimport { MapContext } from \"./MapContext\";\n\nimport { MapProviderProps } from \"./types\";\n\nexport const MapProvider: FC<MapProviderProps> = ({ basemapItems, defaultBasemap, children }) => {\n const map = useRef<MapboxGLMap | undefined>();\n const draw = useRef<MapboxDraw | undefined>();\n const [loaded, setLoaded] = useState<boolean>(false);\n const [basemapName, setBasemapName] = useState(defaultBasemap);\n\n return (\n <MapContext.Provider\n value={{\n map,\n draw,\n loaded,\n setLoaded,\n basemapItems,\n basemapName,\n setBasemapName,\n defaultBasemap,\n }}\n >\n {children}\n </MapContext.Provider>\n );\n};\n","import { Dispatch, MutableRefObject, PropsWithChildren, SetStateAction } from \"react\";\nimport { Map as MapboxGLMap } from \"mapbox-gl\";\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\n\nexport enum BaseMapTheme {\n Light = \"light\",\n Dark = \"dark\",\n}\n\nexport interface BaseMapItem {\n name: string;\n source: string;\n preview?: string;\n imgSrc?: string;\n title: string;\n theme?: BaseMapTheme;\n opacity?: number;\n color?: string;\n}\n\nexport interface MapContextProps {\n map?: MutableRefObject<MapboxGLMap>;\n draw?: MutableRefObject<Omit<MapboxDraw, \"getDefaultPosition\">>;\n loaded?: boolean;\n setLoaded?: Dispatch<SetStateAction<boolean>>;\n basemapItems?: BaseMapItem[];\n basemapName?: string;\n setBasemapName?: Dispatch<SetStateAction<string>>;\n defaultBasemap?: string;\n}\n\nexport interface MapProviderProps extends PropsWithChildren {\n basemapItems: BaseMapItem[];\n defaultBasemap: string;\n}\n","import { createContext } from \"react\";\n\nimport { ServerNotificationsContextProps } from \"./types\";\n\nexport const ServerNotificationsContext = createContext<ServerNotificationsContextProps>({});\n","import { useEffect, useRef, useState } from \"react\";\nimport { HubConnection, HubConnectionBuilder, LogLevel } from \"@microsoft/signalr\";\n\nexport const useServerNotifications = (url: string, initialized: boolean): HubConnection | null => {\n const hubConnection = useRef<HubConnection | null>(null);\n const [connection, setConnection] = useState<HubConnection | null>(null);\n\n useEffect(() => {\n if (!initialized) {\n return;\n }\n\n hubConnection.current = new HubConnectionBuilder()\n .withUrl(url, {\n withCredentials: true,\n })\n .configureLogging(LogLevel.Information)\n .build();\n\n hubConnection.current\n .start()\n .then(() => console.info(\"Серверные нотификации подключены\"))\n .catch(err => console.info(\"Ошибка:\", err))\n .finally(() => setConnection(hubConnection.current));\n }, [initialized]); // eslint-disable-line\n\n useEffect(() => {\n if (!connection || connection.state !== \"Connected\") {\n return;\n }\n\n connection\n .invoke(\"SubscribeNotifications\", [])\n .then(() => console.info(\"Подписка `SubscribeNotifications` оформлена\"))\n .catch(err => console.info(\"Ошибка подписки `SubscribeNotifications`:\", err));\n }, [connection]);\n\n return connection;\n};\n","import React, { FC, useCallback } from \"react\";\n\nimport { ServerNotificationsContext } from \"./ServerNotificationsContext\";\n\nimport { useServerNotifications } from \"./hooks/useServerNotifications\";\n\nimport { ServerNotificationsProviderProps } from \"./types\";\n\nexport const ServerNotificationsProvider: FC<ServerNotificationsProviderProps> = ({ url, initialized, children }) => {\n const connection = useServerNotifications(url, initialized);\n\n const addSubscription = useCallback(\n async (payload?: any): Promise<string | null> => {\n if (!connection || connection.state !== \"Connected\" || !payload) {\n return;\n }\n\n try {\n const id = await connection.invoke(\"AddSubscription\", payload);\n\n console.info(\"Подписка добавлена, id:\", id);\n\n return id;\n } catch (err) {\n console.info(\"Ошибка добавления подписки:\", err);\n\n return Promise.resolve(null);\n }\n },\n [connection],\n );\n\n const updateSubscription = useCallback(\n async (id: string | null, payload?: any): Promise<void> => {\n if (!connection || connection.state !== \"Connected\" || !id || !payload) {\n return;\n }\n\n try {\n await connection.invoke(\"UpdateSubscription\", id, payload);\n } catch (err) {\n console.info(`Ошибка обновления подписки ${id}:`, err);\n }\n },\n [connection],\n );\n\n const unsubscribeById = useCallback(\n async (id: string | null): Promise<void> => {\n if (!connection || connection.state !== \"Connected\" || !id) {\n return;\n }\n\n try {\n await connection.invoke(\"Unsubscribe\", [id]);\n } catch (err) {\n console.info(`Ошибка отписки по ${id}:`, err);\n }\n },\n [connection],\n );\n\n return (\n <ServerNotificationsContext.Provider value={{ connection, addSubscription, updateSubscription, unsubscribeById }}>\n {children}\n </ServerNotificationsContext.Provider>\n );\n};\n","import { useContext } from \"react\";\n\nimport { MapContext } from \"../../contexts\";\n\nexport const useMapContext = () => {\n return useContext(MapContext);\n};\n","import { useEffect } from \"react\";\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\n\nimport { customModes } from \"./customModes\";\nimport { customStyles } from \"./customStyles\";\n\nimport { useMapContext } from \"../useMapContext\";\n\nconst draw = new MapboxDraw({\n displayControlsDefault: false,\n styles: customStyles,\n modes: customModes,\n defaultMode: \"draw_point\",\n controls: {\n trash: true,\n },\n});\n\nexport const useMapDraw = (triggerDeps: Array<unknown> = []) => {\n const { map, draw: drawContext, loaded, basemapName } = useMapContext();\n\n useEffect(() => {\n if (!loaded || !map.current) {\n return;\n }\n\n drawContext.current = draw;\n map.current.addControl(drawContext.current);\n }, [loaded]); // eslint-disable-line\n\n useEffect(() => {\n if (map.current && map.current.hasControl(drawContext.current)) {\n map.current.removeControl(drawContext.current);\n map.current.addControl(drawContext.current);\n }\n }, [basemapName, ...triggerDeps]); // eslint-disable-line\n};\n","import { useCallback } from \"react\";\nimport { VectorSourceImpl } from \"mapbox-gl\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useRedrawLayer = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (layerName: string) => {\n const layerTileSource: VectorSourceImpl = map.current.getSource(layerName);\n\n layerTileSource.setTiles(layerTileSource.tiles);\n },\n [map],\n );\n};\n","import { useCallback } from \"react\";\nimport { bbox } from \"@turf/turf\";\nimport { FeatureDc } from \"@evergis/api\";\n\nimport { useMapContext } from \"./useMapContext\";\nimport { convertSpToTurfFeature } from \"../../core\";\n\nexport const useZoomToFeatures = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (features?: FeatureDc[], padding?: number) => {\n if (!features) {\n return;\n }\n\n const currentFeatureCenter = bbox({\n type: \"FeatureCollection\",\n features: features.map(feature => convertSpToTurfFeature(feature.geometry)),\n });\n\n map.current.fitBounds(currentFeatureCenter as [number, number, number, number], { padding: padding ?? 150 });\n },\n [map],\n );\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useZoomToPoint = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (options, callback?: VoidFunction) => {\n if (map.current) {\n if (callback) {\n map.current.once(\"moveend\", () => {\n callback();\n });\n }\n\n map.current.flyTo(options);\n } else {\n callback?.();\n }\n },\n [map],\n );\n};\n","import { useContext } from \"react\";\n\nimport { ServerNotificationsContext } from \"../../contexts\";\n\nexport const useServerNotificationsContext = () => {\n return useContext(ServerNotificationsContext);\n};\n","import { parseJSON, parseISO, isValid, format, toDate } from \"date-fns\";\n\nexport const NO_CONTENT_VALUE = \"—\";\n\nexport type DateType = number | Date;\nexport type RawDateType = string | DateType;\n\nexport enum DateFormat {\n ClientDefaultFormat = \"dd.MM.yyyy HH:mm\",\n DateTime = \"dd.MM.yyyy HH:mm:ss\",\n UTC = \"yyyy-MM-dd'T'HH:mm:ss.sssxxx\",\n AxisTooltip = \"d MMMM yyyy\",\n}\n\ninterface FormatDateOptions {\n dateFormat?: DateFormat;\n defaultValue?: RawDateType;\n}\n\nconst stringDateParsers: ((date: string) => DateType)[] = [parseJSON, parseISO, rawDate => new Date(rawDate)];\n\nexport const getDate = (rawDate?: RawDateType | null): Date | null => {\n if (!rawDate) return null;\n\n if (typeof rawDate === \"string\") {\n for (const parser of stringDateParsers) {\n const date = parser(rawDate);\n\n if (isValid(date)) {\n return toDate(date);\n }\n }\n\n return null;\n }\n\n const parsedDate = toDate(rawDate);\n\n return isValid(parsedDate) ? parsedDate : null;\n};\n\nexport const formatDate = (\n date?: RawDateType,\n { dateFormat = DateFormat.ClientDefaultFormat, defaultValue = NO_CONTENT_VALUE }: FormatDateOptions = {},\n): string => {\n const dateValue = date ? getDate(date) : null;\n\n if (isValid(dateValue)) {\n return format(dateValue as Date, dateFormat);\n }\n\n return defaultValue.toString();\n};\n","export const debounce = (callback: any, delay: number): ((...args) => void) => {\n let timeId: number;\n\n return (...args) => {\n if (timeId) {\n window.clearTimeout(timeId);\n }\n\n timeId = window.setTimeout(() => {\n callback(...args);\n }, delay);\n };\n};\n","export const isNumeric = (number: string | number): boolean =>\n !isNaN(parseFloat(number as string)) && isFinite(number as number);\n","export function isObject<T>(value: T | object): value is object {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import { useMemo } from \"react\";\n\nimport { debounce } from \"../utils\";\n\nexport const useDebouncedCallback = <CallbackFn extends () => void>(interval: number): ((cb: CallbackFn) => void) => {\n return useMemo(\n () =>\n debounce((cb: CallbackFn) => {\n cb();\n }, interval),\n [interval],\n );\n};\n","import { useCallback, useState } from \"react\";\n\nexport const useToggle = (initial?: boolean): [boolean, VoidFunction, (value: boolean) => void] => {\n const [state, setState] = useState(initial !== undefined ? initial : false);\n\n const toggle = useCallback(() => setState(!state), [state]);\n\n return [state, toggle, setState];\n};\n","import { useEffect, useMemo } from \"react\";\n\nimport { debounce } from \"../utils\";\n\nconst DEBOUNCE_DELAY = 144;\n\nexport const useWindowResize = (callback?: (...args: any) => any, delay?: number) => {\n const debounceCallback = useMemo(() => {\n return callback ? debounce(callback, delay || DEBOUNCE_DELAY) : undefined;\n }, [callback, delay]);\n\n useEffect(() => {\n debounceCallback && window.addEventListener(\"resize\", debounceCallback);\n\n return () => debounceCallback && window.removeEventListener(\"resize\", debounceCallback);\n }, [debounceCallback]);\n};\n","import React, { FC } from \"react\";\nimport { default as MapGL } from \"react-map-gl/mapbox\";\nimport { Map as MapboxGLMap } from \"mapbox-gl\";\nimport \"@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css\";\n\nimport { MapWrapper } from \"./styled\";\n\nimport { useMapContext } from \"../../hooks\";\n\nimport { MapProps } from \"./types\";\n\nimport \"mapbox-gl/dist/mapbox-gl.css\";\n\nexport const Map: FC<MapProps> = ({\n zIndex,\n lowerSiblings,\n upperSiblings,\n onError,\n children,\n ...rest\n}) => {\n const { map, setLoaded } = useMapContext();\n\n return (\n <MapWrapper $zIndex={zIndex}>\n {lowerSiblings}\n <MapGL\n {...rest}\n renderWorldCopies\n antialias\n doubleClickZoom={false}\n cursor=\"default\"\n onLoad={e => {\n map.current = e.target as MapboxGLMap;\n\n map.current.on(\"error\", onError);\n\n setLoaded(true);\n }}\n >\n {children}\n </MapGL>\n {upperSiblings}\n </MapWrapper>\n );\n};\n"],"names":["ErrorBoundary","hasError","componentDidCatch","error","console","render","children","errorContents","props","state","React","getDerivedStateFromError","Component","DEFAULT_COLOR","DEFAULT_OPACITY","DEFAULT_SIZE","DEFAULT_LINE_WIDTH","DEFAULT_CIRCLE_PAINT","DEFAULT_FILL_PAINT","DEFAULT_FILL_EXTRUSION_PAINT","DEFAULT_LINE_PAINT","RasterLayer","layer","tileUrl","visible","beforeId","Source","id","name","type","tiles","MapboxLayer","layout","visibility","getClientStyleItemPrefixSuffix","geometryType","GeometryType","Point","Polyline","Polygon","findAttributeInExpression","expression","Array","isArray","length","reduce","acc","curr","Set","getActualExtrusionHeight","paint","parseClientStyle","style","items","isEmpty","Object","entries","paintAcc","value","convertSpToTurfFeature","geometry","point","coordinates","Multipoint","multiPoint","multiLineString","Envelope","polygon","VectorLayer","getLayerTempStyle","clientStyle","configuration","idAttribute","layerDefinition","renderLayerByGeometryType","useCallback","key","settings","fill","showBottomSurface","Boolean","minzoom","maxzoom","renderClientStyle","map","mockItem","prefixSuffix","isExtrusionItem","isPolygonPart","some","item","fillExtrusionPaint","find","undefined","currentSettings","processedExtrusionHeight","hasExtrusion","promoteId","Layer","layerType","onMount","useEffect","MapWrapper","styled","div","$zIndex","customModes","MapboxDraw","modes","StaticMode","onSetup","setActionableState","toDisplayFeatures","geojson","display","static","customStyles","filter","MapContext","createContext","MapProvider","basemapItems","defaultBasemap","useRef","draw","loaded","setLoaded","useState","basemapName","setBasemapName","Provider","BaseMapTheme","ServerNotificationsContext","useServerNotifications","url","initialized","hubConnection","connection","setConnection","current","HubConnectionBuilder","withUrl","withCredentials","configureLogging","LogLevel","Information","build","start","then","info","catch","err","finally","invoke","ServerNotificationsProvider","addSubscription","payload","Promise","resolve","updateSubscription","unsubscribeById","useMapContext","useContext","displayControlsDefault","styles","defaultMode","controls","trash","useMapDraw","triggerDeps","drawContext","addControl","hasControl","removeControl","useRedrawLayer","layerName","layerTileSource","getSource","setTiles","useZoomToFeatures","features","padding","currentFeatureCenter","bbox","feature","fitBounds","useZoomToPoint","options","callback","once","flyTo","useServerNotificationsContext","NO_CONTENT_VALUE","DateFormat","stringDateParsers","parseJSON","parseISO","rawDate","Date","getDate","parser","date","isValid","toDate","parsedDate","formatDate","dateFormat","ClientDefaultFormat","defaultValue","dateValue","format","toString","debounce","delay","timeId","args","window","clearTimeout","setTimeout","isNumeric","number","isNaN","parseFloat","isFinite","isObject","useDebouncedCallback","interval","useMemo","cb","useToggle","initial","setState","toggle","DEBOUNCE_DELAY","useWindowResize","debounceCallback","addEventListener","removeEventListener","Map","zIndex","lowerSiblings","upperSiblings","onError","rest","MapGL","renderWorldCopies","antialias","doubleClickZoom","cursor","onLoad","e","target","on"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),r=e(t),n=require("react-map-gl/mapbox"),l=e(n),o=require("@evergis/api"),i=require("lodash"),a=require("@turf/turf");require("@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css");var u=e(require("styled-components")),s=e(require("@mapbox/mapbox-gl-draw")),c=require("@microsoft/signalr"),p=require("date-fns");function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function y(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function m(e){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function b(e,t){return t||(t=e.slice(0)),e.raw=t,e}function x(e,t,r){return t=m(t),n=e,!(l=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){return!1}}()?Reflect.construct(t,r||[],m(e).constructor):t.apply(e,r))||"object"!=typeof l&&"function"!=typeof l?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(n):l;var n,l}require("mapbox-gl/dist/mapbox-gl.css");let g=function(e){function n(){var e;return d(this,n),(e=x(this,n,arguments)).state={hasError:!1},e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}(n,t.Component),l=n,i=[{key:"getDerivedStateFromError",value:function(){return{hasError:!0}}}],(o=[{key:"componentDidCatch",value:function(e){console.error(e)}},{key:"render",value:function(){const{children:e,errorContents:t}=this.props,{hasError:n}=this.state;return r.createElement(r.Fragment,null,n?t:e)}}])&&y(l.prototype,o),i&&y(l,i),l;var l,o,i}();const h={"circle-radius":4,"circle-color":"#00ffff","circle-opacity":.5,"circle-stroke-width":0,"circle-stroke-color":"#00ffff","circle-stroke-opacity":.5},w={"fill-color":"#00ffff","fill-opacity":.5},C={"fill-extrusion-base":0,"fill-extrusion-vertical-gradient":!0,"fill-extrusion-color":"#00ffff","fill-extrusion-opacity":.5,"fill-extrusion-height":0},F={"line-color":"#00ffff","line-width":1,"line-opacity":.5},k=e=>{let{layer:t,tileUrl:l,visible:o,beforeId:i}=e;return t?r.createElement(n.Source,{id:t.name,type:"raster",tiles:[l]},r.createElement(n.Layer,{id:t.name,type:"raster","source-layer":"default",beforeId:i,layout:{visibility:o?"visible":"none"}})):null},E=e=>Array.isArray(e)&&2===e.length&&"get"===e[0]?[e[1]]:e.reduce((e,t)=>Array.isArray(t)?"get"===t[0]?[...new Set([...e,t[1]])]:[...new Set([...e,...E(t)])]:e,[]),T=e=>Array.isArray(null==e?void 0:e["fill-extrusion-height"])&&"+"===(null==e?void 0:e["fill-extrusion-height"][0])?null==e?void 0:e["fill-extrusion-height"][1]:null==e?void 0:e["fill-extrusion-height"],S=e=>{if(e)switch(e.type){case o.GeometryType.Point:return a.point(e.coordinates);case o.GeometryType.Multipoint:return a.multiPoint(e.coordinates);case o.GeometryType.Polyline:return a.multiLineString(e.coordinates);case o.GeometryType.Polygon:case o.GeometryType.Envelope:return a.polygon(e.coordinates)}},P=e=>{var l;let{layer:i,tileUrl:a,visible:u,beforeId:s,getLayerTempStyle:c}=e;const p=null==i||null==(l=i.configuration)?void 0:l.clientStyle,{idAttribute:d,geometryType:y}=i.layerDefinition||{},m=t.useCallback(()=>{var e,t,l,a,p,d,m,v,b,x,g,k,E,S;const P=u?"visible":"none";switch(y){case o.GeometryType.Point:return r.createElement(n.Layer,{id:i.name,type:"circle","source-layer":"default",beforeId:s,layout:f({},null==c||null==(e=c(i.name,"circle"))?void 0:e.layout,{visibility:P}),paint:f({},h,null==c||null==(t=c(i.name,"circle"))?void 0:t.paint)});case o.GeometryType.Polygon:return[r.createElement(n.Layer,{key:"polygon-layer-"+i.name,id:i.name,type:"fill","source-layer":"default",beforeId:s,layout:f({},null==c||null==(l=c(i.name,"fill"))?void 0:l.layout,{visibility:u&&!1!==(null==c||null==(a=c(i.name,"fill-extrusion"))||null==(a=a.settings)||null==(a=a.fill)?void 0:a.showBottomSurface)&&Boolean(T(f({},C,null==c||null==(p=c(i.name,"fill-extrusion"))?void 0:p.paint)))?"visible":"none"}),paint:f({},w,null==c||null==(d=c(i.name,"fill"))?void 0:d.paint)}),r.createElement(n.Layer,{key:"polygon-stroke-layer-"+i.name,id:i.name+"-stroke",type:"line","source-layer":"default",beforeId:s,layout:f({},null==c||null==(m=c(i.name,"line"))?void 0:m.layout,{visibility:u&&!1!==(null==c||null==(v=c(i.name,"fill-extrusion"))||null==(v=v.settings)||null==(v=v.fill)?void 0:v.showBottomSurface)&&Boolean(T(f({},C,null==c||null==(b=c(i.name,"fill-extrusion"))?void 0:b.paint)))?"visible":"none"}),paint:f({},F,null==c||null==(x=c(i.name,"line"))?void 0:x.paint)}),r.createElement(n.Layer,{key:"polygon-extrusion-layer-"+i.name,id:i.name+"-extrusion",type:"fill-extrusion","source-layer":"default",beforeId:s,minzoom:0,maxzoom:23,layout:f({},null==c||null==(g=c(i.name,"fill-extrusion"))?void 0:g.layout,{visibility:P}),paint:f({},C,null==c||null==(k=c(i.name,"fill-extrusion"))?void 0:k.paint)})];case o.GeometryType.Polyline:return r.createElement(n.Layer,{id:i.name,type:"line","source-layer":"default",beforeId:s,layout:f({},null==c||null==(E=c(i.name,"line"))?void 0:E.layout,{visibility:P}),paint:f({},F,null==c||null==(S=c(i.name,"line"))?void 0:S.paint)});default:return null}},[y,i,s,u,null==c?void 0:c(i.name,"circle"),null==c?void 0:c(i.name,"fill"),null==c?void 0:c(i.name,"fill-extrusion"),null==c?void 0:c(i.name,"line")]),v=t.useCallback(()=>p.items.map(e=>{var t,l,a,d,m,v,b,x,g;const h=((e,t)=>{switch(e){case o.GeometryType.Point:return["point-layer-",""];case o.GeometryType.Polyline:return["polyline-layer-",""];case o.GeometryType.Polygon:switch(t){case"line":return["polygon-stroke-layer-","-stroke"];case"fill-extrusion":return["polygon-extrusion-layer-","-extrusion"];default:return["polygon-layer-",""]}default:return["",""]}})(y,e.type),w="fill-extrusion"===e.type,C=p.items.some(e=>"fill-extrusion"===e.type)&&("fill"===e.type||"line"===e.type),F=C||w?f({},null==(t=p.items)||null==(t=t.find(e=>"fill-extrusion"===e.type))?void 0:t.paint,null==c||null==(l=c(i.name,"fill-extrusion"))?void 0:l.paint):void 0,k=f({},null==p?void 0:p.settings,null==c||null==(a=c(i.name,e.type))?void 0:a.settings),E=T(F),S=Boolean(E),P=u&&(w&&S||!C&&!w||C&&(!S||null==(d=null==k||null==(m=k.fill)?void 0:m.showBottomSurface)||d))?"visible":"none";return r.createElement(n.Layer,{key:""+h[0]+i.name,id:""+i.name+h[1],type:e.type,"source-layer":"default",beforeId:s,minzoom:null!=(v=null==p?void 0:p.minzoom)?v:0,maxzoom:null!=(b=null==p?void 0:p.maxzoom)?b:23,layout:f({},e.layout,null==c||null==(x=c(i.name,e.type))?void 0:x.layout,{visibility:P}),paint:f({},e.paint,null==c||null==(g=c(i.name,e.type))?void 0:g.paint)})}),[s,p,y,i.name,u,null==c?void 0:c(i.name,"circle"),null==c?void 0:c(i.name,"fill"),null==c?void 0:c(i.name,"fill-extrusion"),null==c?void 0:c(i.name,"line")]);return i?r.createElement(n.Source,{promoteId:d,id:i.name,type:"vector",tiles:[a]},null!=p&&p.items?v():m()):null};var L;const D=u.div(L||(L=b(["\n position: relative;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n z-index: ",";\n\n .mapbox-gl-draw_trash {\n display: none;\n }\n\n .mapboxgl-ctrl-logo {\n display: none;\n }\n\n .mapboxgl-ctrl.mapboxgl-ctrl-attrib {\n display: none;\n }\n\n .mapboxgl-ctrl-geocoder.mapboxgl-ctrl {\n width: 350px;\n }\n"])),e=>{let{$zIndex:t}=e;return null!=t?t:1}),I=s.modes;I.static={onSetup:function(){return this.setActionableState(void 0),{}},toDisplayFeatures:function(e,t,r){r(t)}};const A=t.createContext({});var O;(O=exports.BaseMapTheme||(exports.BaseMapTheme={})).Light="light",O.Dark="dark";const M=t.createContext({}),_=()=>t.useContext(A),N=new s({displayControlsDefault:!1,styles:[{id:"gl-draw-point",type:"circle",filter:["all",["==","$type","Point"]],paint:{"circle-radius":5,"circle-color":"#D20C0C","circle-stroke-color":"#FFFFFF","circle-stroke-width":3,"circle-stroke-opacity":.3}},{id:"highlight-inactive-points",type:"circle",filter:["all",["==","$type","Point"],["==","meta","feature"],["==","active","false"]],paint:{"circle-radius":5,"circle-color":"#D20C0C","circle-stroke-color":"#FFFFFF","circle-stroke-width":3,"circle-stroke-opacity":.3}},{id:"highlight-active-points",type:"circle",filter:["all",["==","$type","Point"],["==","meta","feature"],["==","active","true"]],paint:{"circle-radius":3,"circle-color":"#fbb03b","circle-stroke-color":"#FFFFFF","circle-stroke-width":1,"circle-stroke-opacity":.3}},{id:"gl-draw-polygon-fill-static",type:"fill",filter:["all",["==","$type","Polygon"]],paint:{"fill-color":"#D20C0C","fill-outline-color":"#D20C0C","fill-opacity":.1}},{id:"gl-draw-line",type:"line",filter:["all",["==","$type","LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#D20C0C","line-dasharray":[.2,2],"line-width":2}},{id:"gl-draw-polygon-fill",type:"fill",filter:["all",["==","$type","Polygon"]],paint:{"fill-color":"#D20C0C","fill-outline-color":"#D20C0C","fill-opacity":.1}},{id:"gl-draw-polygon-midpoint",type:"circle",filter:["all",["==","$type","Point"],["==","meta","midpoint"]],paint:{"circle-radius":3,"circle-color":"#fbb03b","circle-stroke-color":"#FFFFFF","circle-stroke-width":1,"circle-stroke-opacity":.3}},{id:"gl-draw-polygon-stroke-active",type:"line",filter:["all",["==","$type","Polygon"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#D20C0C","line-dasharray":[.2,2],"line-width":2}},{id:"gl-draw-polygon-and-line-vertex-active",type:"circle",filter:["all",["==","meta","vertex"],["==","$type","Point"]],paint:{"circle-radius":3,"circle-color":"#D20C0C","circle-stroke-color":"#FFFFFF","circle-stroke-width":3,"circle-stroke-opacity":.3}}],modes:I,defaultMode:"draw_point",controls:{trash:!0}}),j="—";var B;(B=exports.DateFormat||(exports.DateFormat={})).ClientDefaultFormat="dd.MM.yyyy HH:mm",B.DateTime="dd.MM.yyyy HH:mm:ss",B.UTC="yyyy-MM-dd'T'HH:mm:ss.sssxxx",B.AxisTooltip="d MMMM yyyy";const z=[p.parseJSON,p.parseISO,e=>new Date(e)],R=e=>{if(!e)return null;if("string"==typeof e){for(const t of z){const r=t(e);if(p.isValid(r))return p.toDate(r)}return null}const t=p.toDate(e);return p.isValid(t)?t:null},U=(e,t)=>{let r;return function(){for(var n=arguments.length,l=new Array(n),o=0;o<n;o++)l[o]=arguments[o];r&&window.clearTimeout(r),r=window.setTimeout(()=>{e(...l)},t)}},q=["zIndex","lowerSiblings","upperSiblings","onError","children"];exports.DEFAULT_CIRCLE_PAINT=h,exports.DEFAULT_FILL_EXTRUSION_PAINT=C,exports.DEFAULT_FILL_PAINT=w,exports.DEFAULT_LINE_PAINT=F,exports.ErrorBoundary=g,exports.Layer=e=>{let{layer:n,layerType:l,visible:o,beforeId:i,tileUrl:a,onMount:u=(()=>null)}=e;return t.useEffect(u,[]),n?r.createElement("RasterTileLayer"===l?k:P,{layer:n,tileUrl:a,visible:o,beforeId:i}):null},exports.Map=e=>{let{zIndex:t,lowerSiblings:n,upperSiblings:o,onError:i,children:a}=e,u=function(e,t){if(null==e)return{};var r,n,l={},o=Object.keys(e);for(n=0;n<o.length;n++)t.indexOf(r=o[n])>=0||(l[r]=e[r]);return l}(e,q);const{map:s,setLoaded:c}=_();return r.createElement(D,{$zIndex:t},n,r.createElement(l,Object.assign({},u,{renderWorldCopies:!0,antialias:!0,doubleClickZoom:!1,cursor:"default",onLoad:e=>{s.current=e.target,s.current.on("error",i),c(!0)}}),a),o)},exports.MapContext=A,exports.MapProvider=e=>{let{basemapItems:n,defaultBasemap:l,children:o}=e;const i=t.useRef(),a=t.useRef(),[u,s]=t.useState(!1),[c,p]=t.useState(l);return r.createElement(A.Provider,{value:{map:i,draw:a,loaded:u,setLoaded:s,basemapItems:n,basemapName:c,setBasemapName:p,defaultBasemap:l}},o)},exports.NO_CONTENT_VALUE=j,exports.ServerNotificationsContext=M,exports.ServerNotificationsProvider=e=>{let{url:n,initialized:l,children:o}=e;const i=((e,r)=>{const n=t.useRef(null),[l,o]=t.useState(null);return t.useEffect(()=>{r&&(n.current=(new c.HubConnectionBuilder).withUrl(e,{withCredentials:!0}).configureLogging(c.LogLevel.Information).build(),n.current.start().then(()=>console.info("Серверные нотификации подключены")).catch(e=>console.info("Ошибка:",e)).finally(()=>o(n.current)))},[r]),t.useEffect(()=>{l&&"Connected"===l.state&&l.invoke("SubscribeNotifications",[]).then(()=>console.info("Подписка `SubscribeNotifications` оформлена")).catch(e=>console.info("Ошибка подписки `SubscribeNotifications`:",e))},[l]),l})(n,l),a=t.useCallback(async e=>{if(i&&"Connected"===i.state&&e)try{const t=await i.invoke("AddSubscription",e);return console.info("Подписка добавлена, id:",t),t}catch(e){return console.info("Ошибка добавления подписки:",e),Promise.resolve(null)}},[i]),u=t.useCallback(async(e,t)=>{if(i&&"Connected"===i.state&&e&&t)try{await i.invoke("UpdateSubscription",e,t)}catch(t){console.info("Ошибка обновления подписки "+e+":",t)}},[i]),s=t.useCallback(async e=>{if(i&&"Connected"===i.state&&e)try{await i.invoke("Unsubscribe",[e])}catch(t){console.info("Ошибка отписки по "+e+":",t)}},[i]);return r.createElement(M.Provider,{value:{connection:i,addSubscription:a,updateSubscription:u,unsubscribeById:s}},o)},exports.convertSpToTurfFeature=S,exports.debounce=U,exports.findAttributeInExpression=E,exports.formatDate=function(e,t){let{dateFormat:r=exports.DateFormat.ClientDefaultFormat,defaultValue:n=j}=void 0===t?{}:t;const l=e?R(e):null;return p.isValid(l)?p.format(l,r):n.toString()},exports.getActualExtrusionHeight=T,exports.getDate=R,exports.isNumeric=e=>!isNaN(parseFloat(e))&&isFinite(e),exports.isObject=function(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)},exports.parseClientStyle=e=>{var t;return e?null==e||null==(t=e.items)?void 0:t.reduce((e,t)=>{var r;return!t.paint||i.isEmpty(t.paint)?e:null==(r=Object.entries(t.paint))?void 0:r.reduce((e,t)=>{let[,r]=t;return Array.isArray(r)?[...new Set([...e,...E(r)])]:e},[])},[]):[]},exports.useDebouncedCallback=e=>t.useMemo(()=>U(e=>{e()},e),[e]),exports.useMapContext=_,exports.useMapDraw=function(e){void 0===e&&(e=[]);const{map:r,draw:n,loaded:l,basemapName:o}=_();t.useEffect(()=>{l&&r.current&&(n.current=N,r.current.addControl(n.current))},[l]),t.useEffect(()=>{r.current&&r.current.hasControl(n.current)&&(r.current.removeControl(n.current),r.current.addControl(n.current))},[o,...e])},exports.useRedrawLayer=()=>{const{map:e}=_();return t.useCallback(t=>{const r=e.current.getSource(t);r.setTiles(r.tiles)},[e])},exports.useServerNotificationsContext=()=>t.useContext(M),exports.useToggle=e=>{const[r,n]=t.useState(void 0!==e&&e),l=t.useCallback(()=>n(!r),[r]);return[r,l,n]},exports.useWindowResize=(e,r)=>{const n=t.useMemo(()=>e?U(e,r||144):void 0,[e,r]);t.useEffect(()=>(n&&window.addEventListener("resize",n),()=>n&&window.removeEventListener("resize",n)),[n])},exports.useZoomToFeatures=()=>{const{map:e}=_();return t.useCallback((t,r)=>{if(!t)return;const n=a.bbox({type:"FeatureCollection",features:t.map(e=>S(e.geometry))});e.current.fitBounds(n,{padding:null!=r?r:150})},[e])},exports.useZoomToPoint=()=>{const{map:e}=_();return t.useCallback((t,r)=>{e.current?(r&&e.current.once("moveend",()=>{r()}),e.current.flyTo(t)):null==r||r()},[e])};
1
+ "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),r=e(t),n=require("react-map-gl/mapbox"),o=e(n),l=require("@evergis/api"),i=require("lodash"),a=require("@turf/turf");require("@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css");var u=e(require("styled-components")),s=e(require("@mapbox/mapbox-gl-draw")),c=require("@microsoft/signalr"),p=require("date-fns");function y(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function d(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function m(e){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function b(e,t){return(b=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function v(e,t){return t||(t=e.slice(0)),e.raw=t,e}function x(e,t,r){return t=m(t),n=e,!(o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){return!1}}()?Reflect.construct(t,r||[],m(e).constructor):t.apply(e,r))||"object"!=typeof o&&"function"!=typeof o?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(n):o;var n,o}require("mapbox-gl/dist/mapbox-gl.css");let g=function(e){function n(){var e;return y(this,n),(e=x(this,n,arguments)).state={hasError:!1},e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&b(e,t)}(n,t.Component),o=n,i=[{key:"getDerivedStateFromError",value:function(){return{hasError:!0}}}],(l=[{key:"componentDidCatch",value:function(e){console.error(e)}},{key:"render",value:function(){const{children:e,errorContents:t}=this.props,{hasError:n}=this.state;return r.createElement(r.Fragment,null,n?t:e)}}])&&d(o.prototype,l),i&&d(o,i),o;var o,l,i}();const h={"circle-radius":4,"circle-color":"#00ffff","circle-opacity":.5,"circle-stroke-width":0,"circle-stroke-color":"#00ffff","circle-stroke-opacity":.5},w={"fill-color":"#00ffff","fill-opacity":.5},C={"fill-extrusion-base":0,"fill-extrusion-vertical-gradient":!0,"fill-extrusion-color":"#00ffff","fill-extrusion-opacity":.5,"fill-extrusion-height":0},F={"line-color":"#00ffff","line-width":1,"line-opacity":.5},k=e=>{let{layer:t,tileUrl:o,visible:l,beforeId:i}=e;return t?r.createElement(n.Source,{id:t.name,type:"raster",tiles:[o]},r.createElement(n.Layer,{id:t.name,type:"raster","source-layer":"default",beforeId:i,layout:{visibility:l?"visible":"none"}})):null},E=e=>Array.isArray(e)&&2===e.length&&"get"===e[0]?[e[1]]:e.reduce((e,t)=>Array.isArray(t)?"get"===t[0]?[...new Set([...e,t[1]])]:[...new Set([...e,...E(t)])]:e,[]),T=e=>Array.isArray(null==e?void 0:e["fill-extrusion-height"])&&"+"===(null==e?void 0:e["fill-extrusion-height"][0])?null==e?void 0:e["fill-extrusion-height"][1]:null==e?void 0:e["fill-extrusion-height"],S=e=>{if(e)switch(e.type){case l.GeometryType.Point:return a.point(e.coordinates);case l.GeometryType.Multipoint:return a.multiPoint(e.coordinates);case l.GeometryType.Polyline:return a.multiLineString(e.coordinates);case l.GeometryType.Polygon:case l.GeometryType.Envelope:return a.polygon(e.coordinates)}},P=e=>{var o;let{layer:i,tileUrl:a,visible:u,beforeId:s,getLayerTempStyle:c}=e;const p=null==i||null==(o=i.configuration)?void 0:o.clientStyle,{idAttribute:y,geometryType:d}=i.layerDefinition||{},m=t.useCallback(()=>{var e,t,o,a,p,y,m,b,v,x,g,k,E,S;const P=u?"visible":"none";switch(d){case l.GeometryType.Point:return r.createElement(n.Layer,{id:i.name,type:"circle","source-layer":"default",beforeId:s,layout:f({},null==c||null==(e=c(i.name,"circle"))?void 0:e.layout,{visibility:P}),paint:f({},h,null==c||null==(t=c(i.name,"circle"))?void 0:t.paint)});case l.GeometryType.Polygon:return[r.createElement(n.Layer,{key:"polygon-layer-"+i.name,id:i.name,type:"fill","source-layer":"default",beforeId:s,layout:f({},null==c||null==(o=c(i.name,"fill"))?void 0:o.layout,{visibility:u&&!1!==(null==c||null==(a=c(i.name,"fill-extrusion"))||null==(a=a.settings)||null==(a=a.fill)?void 0:a.showBottomSurface)&&Boolean(T(f({},C,null==c||null==(p=c(i.name,"fill-extrusion"))?void 0:p.paint)))?"visible":"none"}),paint:f({},w,null==c||null==(y=c(i.name,"fill"))?void 0:y.paint)}),r.createElement(n.Layer,{key:"polygon-stroke-layer-"+i.name,id:i.name+"-stroke",type:"line","source-layer":"default",beforeId:s,layout:f({},null==c||null==(m=c(i.name,"line"))?void 0:m.layout,{visibility:u&&!1!==(null==c||null==(b=c(i.name,"fill-extrusion"))||null==(b=b.settings)||null==(b=b.fill)?void 0:b.showBottomSurface)&&Boolean(T(f({},C,null==c||null==(v=c(i.name,"fill-extrusion"))?void 0:v.paint)))?"visible":"none"}),paint:f({},F,null==c||null==(x=c(i.name,"line"))?void 0:x.paint)}),r.createElement(n.Layer,{key:"polygon-extrusion-layer-"+i.name,id:i.name+"-extrusion",type:"fill-extrusion","source-layer":"default",beforeId:s,minzoom:0,maxzoom:23,layout:f({},null==c||null==(g=c(i.name,"fill-extrusion"))?void 0:g.layout,{visibility:P}),paint:f({},C,null==c||null==(k=c(i.name,"fill-extrusion"))?void 0:k.paint)})];case l.GeometryType.Polyline:return r.createElement(n.Layer,{id:i.name,type:"line","source-layer":"default",beforeId:s,layout:f({},null==c||null==(E=c(i.name,"line"))?void 0:E.layout,{visibility:P}),paint:f({},F,null==c||null==(S=c(i.name,"line"))?void 0:S.paint)});default:return null}},[d,i,s,u,c]),b=t.useCallback(()=>p.items.map(e=>{var t,o,a,y,m,b,v,x,g;const h=((e,t)=>{switch(e){case l.GeometryType.Point:return["point-layer-",""];case l.GeometryType.Polyline:return["polyline-layer-",""];case l.GeometryType.Polygon:switch(t){case"line":return["polygon-stroke-layer-","-stroke"];case"fill-extrusion":return["polygon-extrusion-layer-","-extrusion"];default:return["polygon-layer-",""]}default:return["",""]}})(d,e.type),w="fill-extrusion"===e.type,C=p.items.some(e=>"fill-extrusion"===e.type)&&("fill"===e.type||"line"===e.type),F=C||w?f({},null==(t=p.items)||null==(t=t.find(e=>"fill-extrusion"===e.type))?void 0:t.paint,null==c||null==(o=c(i.name,"fill-extrusion"))?void 0:o.paint):void 0,k=f({},null==p?void 0:p.settings,null==c||null==(a=c(i.name,e.type))?void 0:a.settings),E=T(F),S=Boolean(E),P=u&&(w&&S||!C&&!w||C&&(!S||null==(y=null==k||null==(m=k.fill)?void 0:m.showBottomSurface)||y))?"visible":"none";return r.createElement(n.Layer,{key:""+h[0]+i.name,id:""+i.name+h[1],type:e.type,"source-layer":"default",beforeId:s,minzoom:null!=(b=null==p?void 0:p.minzoom)?b:0,maxzoom:null!=(v=null==p?void 0:p.maxzoom)?v:23,layout:f({},e.layout,null==c||null==(x=c(i.name,e.type))?void 0:x.layout,{visibility:P}),paint:f({},e.paint,null==c||null==(g=c(i.name,e.type))?void 0:g.paint)})}),[s,p,d,i.name,u,c]);return i?r.createElement(n.Source,{promoteId:y,id:i.name,type:"vector",tiles:[a]},null!=p&&p.items?b():m()):null};var L;const D=u.div(L||(L=v(["\n position: relative;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n z-index: ",";\n\n .mapbox-gl-draw_trash {\n display: none;\n }\n\n .mapboxgl-ctrl-logo {\n display: none;\n }\n\n .mapboxgl-ctrl.mapboxgl-ctrl-attrib {\n display: none;\n }\n\n .mapboxgl-ctrl-geocoder.mapboxgl-ctrl {\n width: 350px;\n }\n"])),e=>{let{$zIndex:t}=e;return null!=t?t:1}),I=s.modes;I.static={onSetup:function(){return this.setActionableState(void 0),{}},toDisplayFeatures:function(e,t,r){r(t)}};const A=t.createContext({});var O;(O=exports.BaseMapTheme||(exports.BaseMapTheme={})).Light="light",O.Dark="dark";const M=t.createContext({}),_=()=>t.useContext(A),N=new s({displayControlsDefault:!1,styles:[{id:"gl-draw-point",type:"circle",filter:["all",["==","$type","Point"]],paint:{"circle-radius":5,"circle-color":"#D20C0C","circle-stroke-color":"#FFFFFF","circle-stroke-width":3,"circle-stroke-opacity":.3}},{id:"highlight-inactive-points",type:"circle",filter:["all",["==","$type","Point"],["==","meta","feature"],["==","active","false"]],paint:{"circle-radius":5,"circle-color":"#D20C0C","circle-stroke-color":"#FFFFFF","circle-stroke-width":3,"circle-stroke-opacity":.3}},{id:"highlight-active-points",type:"circle",filter:["all",["==","$type","Point"],["==","meta","feature"],["==","active","true"]],paint:{"circle-radius":3,"circle-color":"#fbb03b","circle-stroke-color":"#FFFFFF","circle-stroke-width":1,"circle-stroke-opacity":.3}},{id:"gl-draw-polygon-fill-static",type:"fill",filter:["all",["==","$type","Polygon"]],paint:{"fill-color":"#D20C0C","fill-outline-color":"#D20C0C","fill-opacity":.1}},{id:"gl-draw-line",type:"line",filter:["all",["==","$type","LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#D20C0C","line-dasharray":[.2,2],"line-width":2}},{id:"gl-draw-polygon-fill",type:"fill",filter:["all",["==","$type","Polygon"]],paint:{"fill-color":"#D20C0C","fill-outline-color":"#D20C0C","fill-opacity":.1}},{id:"gl-draw-polygon-midpoint",type:"circle",filter:["all",["==","$type","Point"],["==","meta","midpoint"]],paint:{"circle-radius":3,"circle-color":"#fbb03b","circle-stroke-color":"#FFFFFF","circle-stroke-width":1,"circle-stroke-opacity":.3}},{id:"gl-draw-polygon-stroke-active",type:"line",filter:["all",["==","$type","Polygon"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#D20C0C","line-dasharray":[.2,2],"line-width":2}},{id:"gl-draw-polygon-and-line-vertex-active",type:"circle",filter:["all",["==","meta","vertex"],["==","$type","Point"]],paint:{"circle-radius":3,"circle-color":"#D20C0C","circle-stroke-color":"#FFFFFF","circle-stroke-width":3,"circle-stroke-opacity":.3}}],modes:I,defaultMode:"draw_point",controls:{trash:!0}}),j="—";var B;(B=exports.DateFormat||(exports.DateFormat={})).ClientDefaultFormat="dd.MM.yyyy HH:mm",B.DateTime="dd.MM.yyyy HH:mm:ss",B.UTC="yyyy-MM-dd'T'HH:mm:ss.sssxxx",B.AxisTooltip="d MMMM yyyy";const z=[p.parseJSON,p.parseISO,e=>new Date(e)],U=e=>{if(!e)return null;if("string"==typeof e){for(const t of z){const r=t(e);if(p.isValid(r))return p.toDate(r)}return null}const t=p.toDate(e);return p.isValid(t)?t:null},R=(e,t)=>{let r;return function(){for(var n=arguments.length,o=new Array(n),l=0;l<n;l++)o[l]=arguments[l];r&&window.clearTimeout(r),r=window.setTimeout(()=>{e(...o)},t)}},q=["zIndex","lowerSiblings","upperSiblings","onError","children"];exports.DEFAULT_CIRCLE_PAINT=h,exports.DEFAULT_FILL_EXTRUSION_PAINT=C,exports.DEFAULT_FILL_PAINT=w,exports.DEFAULT_LINE_PAINT=F,exports.ErrorBoundary=g,exports.Layer=e=>{let{layer:n,layerType:o,visible:l,beforeId:i,tileUrl:a,getLayerTempStyle:u,onMount:s=(()=>null)}=e;return t.useEffect(s,[]),n?"RasterTileLayer"===o?r.createElement(k,{layer:n,tileUrl:a,visible:l,beforeId:i}):r.createElement(P,{layer:n,tileUrl:a,visible:l,beforeId:i,getLayerTempStyle:u}):null},exports.Map=e=>{let{zIndex:t,lowerSiblings:n,upperSiblings:l,onError:i,children:a}=e,u=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)t.indexOf(r=l[n])>=0||(o[r]=e[r]);return o}(e,q);const{map:s,setLoaded:c}=_();return r.createElement(D,{$zIndex:t},n,r.createElement(o,Object.assign({},u,{renderWorldCopies:!0,antialias:!0,doubleClickZoom:!1,cursor:"default",onLoad:e=>{s.current=e.target,s.current.on("error",i),c(!0)}}),a),l)},exports.MapContext=A,exports.MapProvider=e=>{let{basemapItems:n,defaultBasemap:o,children:l}=e;const i=t.useRef(),a=t.useRef(),[u,s]=t.useState(!1),[c,p]=t.useState(o);return r.createElement(A.Provider,{value:{map:i,draw:a,loaded:u,setLoaded:s,basemapItems:n,basemapName:c,setBasemapName:p,defaultBasemap:o}},l)},exports.NO_CONTENT_VALUE=j,exports.ServerNotificationsContext=M,exports.ServerNotificationsProvider=e=>{let{url:n,initialized:o,children:l}=e;const i=((e,r)=>{const n=t.useRef(null),[o,l]=t.useState(null);return t.useEffect(()=>{r&&(n.current=(new c.HubConnectionBuilder).withUrl(e,{withCredentials:!0}).configureLogging(c.LogLevel.Information).build(),n.current.start().then(()=>console.info("Серверные нотификации подключены")).catch(e=>console.info("Ошибка:",e)).finally(()=>l(n.current)))},[r]),t.useEffect(()=>{o&&"Connected"===o.state&&o.invoke("SubscribeNotifications",[]).then(()=>console.info("Подписка `SubscribeNotifications` оформлена")).catch(e=>console.info("Ошибка подписки `SubscribeNotifications`:",e))},[o]),o})(n,o),a=t.useCallback(async e=>{if(i&&"Connected"===i.state&&e)try{const t=await i.invoke("AddSubscription",e);return console.info("Подписка добавлена, id:",t),t}catch(e){return console.info("Ошибка добавления подписки:",e),Promise.resolve(null)}},[i]),u=t.useCallback(async(e,t)=>{if(i&&"Connected"===i.state&&e&&t)try{await i.invoke("UpdateSubscription",e,t)}catch(t){console.info("Ошибка обновления подписки "+e+":",t)}},[i]),s=t.useCallback(async e=>{if(i&&"Connected"===i.state&&e)try{await i.invoke("Unsubscribe",[e])}catch(t){console.info("Ошибка отписки по "+e+":",t)}},[i]);return r.createElement(M.Provider,{value:{connection:i,addSubscription:a,updateSubscription:u,unsubscribeById:s}},l)},exports.convertSpToTurfFeature=S,exports.debounce=R,exports.findAttributeInExpression=E,exports.formatDate=function(e,t){let{dateFormat:r=exports.DateFormat.ClientDefaultFormat,defaultValue:n=j}=void 0===t?{}:t;const o=e?U(e):null;return p.isValid(o)?p.format(o,r):n.toString()},exports.getActualExtrusionHeight=T,exports.getDate=U,exports.isNumeric=e=>!isNaN(parseFloat(e))&&isFinite(e),exports.isObject=function(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)},exports.parseClientStyle=e=>{var t;return e?null==e||null==(t=e.items)?void 0:t.reduce((e,t)=>{var r;return!t.paint||i.isEmpty(t.paint)?e:null==(r=Object.entries(t.paint))?void 0:r.reduce((e,t)=>{let[,r]=t;return Array.isArray(r)?[...new Set([...e,...E(r)])]:e},[])},[]):[]},exports.useDebouncedCallback=e=>t.useMemo(()=>R(e=>{e()},e),[e]),exports.useMapContext=_,exports.useMapDraw=function(e){void 0===e&&(e=[]);const{map:r,draw:n,loaded:o,basemapName:l}=_();t.useEffect(()=>{o&&r.current&&(n.current=N,r.current.addControl(n.current))},[o]),t.useEffect(()=>{r.current&&r.current.hasControl(n.current)&&(r.current.removeControl(n.current),r.current.addControl(n.current))},[l,...e])},exports.useRedrawLayer=()=>{const{map:e}=_();return t.useCallback(t=>{const r=e.current.getSource(t);r.setTiles(r.tiles)},[e])},exports.useServerNotificationsContext=()=>t.useContext(M),exports.useToggle=e=>{const[r,n]=t.useState(void 0!==e&&e),o=t.useCallback(()=>n(!r),[r]);return[r,o,n]},exports.useWindowResize=(e,r)=>{const n=t.useMemo(()=>e?R(e,r||144):void 0,[e,r]);t.useEffect(()=>(n&&window.addEventListener("resize",n),()=>n&&window.removeEventListener("resize",n)),[n])},exports.useZoomToFeatures=()=>{const{map:e}=_();return t.useCallback((t,r)=>{if(!t)return;const n=a.bbox({type:"FeatureCollection",features:t.map(e=>S(e.geometry))});e.current.fitBounds(n,{padding:null!=r?r:150})},[e])},exports.useZoomToPoint=()=>{const{map:e}=_();return t.useCallback((t,r)=>{e.current?(r&&e.current.once("moveend",()=>{r()}),e.current.flyTo(t)):null==r||r()},[e])};
2
2
  //# sourceMappingURL=react.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react.cjs.production.min.js","sources":["../src/components/ErrorBoundary/index.tsx","../src/components/Layer/constants.ts","../src/components/Layer/RasterLayer.tsx","../src/core/classification/findAttributeInExpression.ts","../src/core/classification/getActualExtrusionHeight.ts","../src/core/feature/convertSpToTurfFeature.ts","../src/components/Layer/VectorLayer.tsx","../src/components/Layer/utils/getClientStyleItemPrefixSuffix.ts","../src/components/Map/styled.ts","../src/hooks/map/useMapDraw/customModes.ts","../src/contexts/MapContext/MapContext.ts","../src/contexts/MapContext/types.ts","../src/contexts/ServerNotificationsContext/ServerNotificationsContext.ts","../src/hooks/map/useMapContext.ts","../src/hooks/map/useMapDraw/index.ts","../src/hooks/map/useMapDraw/customStyles.ts","../src/utils/date.ts","../src/utils/debounce.ts","../src/components/Layer/Layer.tsx","../src/components/Map/Map.tsx","../src/contexts/MapContext/MapProvider.tsx","../src/contexts/ServerNotificationsContext/ServerNotificationsProvider.tsx","../src/contexts/ServerNotificationsContext/hooks/useServerNotifications.ts","../src/utils/isNumeric.ts","../src/utils/isObject.ts","../src/core/classification/parseClientStyle.ts","../src/hooks/useDebouncedCallback.ts","../src/hooks/map/useRedrawLayer.ts","../src/hooks/serverNotifications/useServerNotificationsContext.ts","../src/hooks/useToggle.ts","../src/hooks/useWindowResize.ts","../src/hooks/map/useZoomToFeatures.ts","../src/hooks/map/useZoomToPoint.ts"],"sourcesContent":["import React, { Component } from \"react\";\n\nimport { ErrorBoundaryProps, ErrorBoundaryState } from \"./types\";\n\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n public state = { hasError: false };\n\n public static getDerivedStateFromError() {\n return { hasError: true };\n }\n\n public componentDidCatch(error: Error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n\n public render() {\n const { children, errorContents } = this.props;\n const { hasError } = this.state;\n\n return !hasError ? (\n <>{children}</>\n ) : (\n <>{errorContents}</>\n );\n }\n}\n","import { CirclePaint, FillPaint, FillExtrusionPaint, LinePaint } from \"mapbox-gl\";\n\nconst DEFAULT_COLOR = \"#00ffff\";\nconst DEFAULT_OPACITY = 0.5;\nconst DEFAULT_SIZE = 4;\nconst DEFAULT_LINE_WIDTH = 1;\n\nexport const DEFAULT_CIRCLE_PAINT = {\n \"circle-radius\": DEFAULT_SIZE,\n \"circle-color\": DEFAULT_COLOR,\n \"circle-opacity\": DEFAULT_OPACITY,\n \"circle-stroke-width\": 0,\n \"circle-stroke-color\": DEFAULT_COLOR,\n \"circle-stroke-opacity\": DEFAULT_OPACITY,\n} as CirclePaint;\n\nexport const DEFAULT_FILL_PAINT = {\n \"fill-color\": DEFAULT_COLOR,\n \"fill-opacity\": DEFAULT_OPACITY,\n} as FillPaint;\n\nexport const DEFAULT_FILL_EXTRUSION_PAINT = {\n \"fill-extrusion-base\": 0,\n \"fill-extrusion-vertical-gradient\": true,\n \"fill-extrusion-color\": DEFAULT_COLOR,\n \"fill-extrusion-opacity\": DEFAULT_OPACITY,\n \"fill-extrusion-height\": 0,\n} as FillExtrusionPaint;\n\nexport const DEFAULT_LINE_PAINT = {\n \"line-color\": DEFAULT_COLOR,\n \"line-width\": DEFAULT_LINE_WIDTH,\n \"line-opacity\": DEFAULT_OPACITY,\n} as LinePaint;\n","import React, { FC } from \"react\";\nimport { Source, Layer as MapboxLayer } from \"react-map-gl/mapbox\";\n\nimport { LayerProps } from \"./types\";\n\nexport const RasterLayer: FC<Omit<LayerProps, \"layerType\" | \"onMount\">> = ({\n layer,\n tileUrl,\n visible,\n beforeId,\n}) => {\n if (!layer) {\n return null;\n }\n\n return (\n <Source id={layer.name} type=\"raster\" tiles={[tileUrl]}>\n <MapboxLayer\n id={layer.name}\n type=\"raster\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{ visibility: visible ? \"visible\" : \"none\" }}\n />\n </Source>\n );\n};\n","import { ExpressionSpecification } from \"mapbox-gl\";\n\nexport const findAttributeInExpression = (expression: ExpressionSpecification): string[] => {\n if (Array.isArray(expression) && expression.length === 2 && expression[0] === \"get\") {\n return [expression[1]];\n }\n\n return expression.reduce((acc: string[], curr) => {\n if (!Array.isArray(curr)) {\n return acc;\n }\n\n if (curr[0] === \"get\") {\n return [...new Set([...acc, curr[1]])];\n }\n\n return [...new Set([...acc, ...findAttributeInExpression(curr as ExpressionSpecification)])];\n }, []);\n};\n","import { AnyPaint } from \"mapbox-gl\";\n\nexport const getActualExtrusionHeight = (paint: AnyPaint) => {\n return Array.isArray(paint?.[\"fill-extrusion-height\"]) && paint?.[\"fill-extrusion-height\"][0] === \"+\"\n ? paint?.[\"fill-extrusion-height\"][1]\n : paint?.[\"fill-extrusion-height\"];\n};\n","import { FeatureDc, GeometryType, PositionDc } from \"@evergis/api\";\nimport { multiLineString, multiPoint, point, polygon } from \"@turf/turf\";\nimport { Feature } from \"geojson\";\n\nexport const convertSpToTurfFeature = (geometry?: FeatureDc[\"geometry\"]): Feature<any> | undefined => {\n if (!geometry) {\n return;\n }\n\n switch (geometry.type) {\n case GeometryType.Point:\n return point(geometry.coordinates as PositionDc);\n case GeometryType.Multipoint:\n return multiPoint(geometry.coordinates as PositionDc[]);\n case GeometryType.Polyline:\n return multiLineString(geometry.coordinates as PositionDc[][]);\n case GeometryType.Polygon:\n case GeometryType.Envelope:\n return polygon(geometry.coordinates as PositionDc[][]);\n default:\n }\n};\n","import React, { FC, useCallback } from \"react\";\nimport { Layer as MapboxLayer, Source } from \"react-map-gl/mapbox\";\nimport { FeatureLayerServiceInfoDc, GeometryType, QueryLayerServiceConfigurationDc } from \"@evergis/api\";\nimport { AnyPaint, CirclePaint, FillExtrusionPaint, FillPaint, LinePaint } from \"mapbox-gl\";\n\nimport {\n DEFAULT_CIRCLE_PAINT,\n DEFAULT_FILL_EXTRUSION_PAINT,\n DEFAULT_FILL_PAINT,\n DEFAULT_LINE_PAINT,\n} from \"./constants\";\n\nimport { getClientStyleItemPrefixSuffix } from \"./utils/getClientStyleItemPrefixSuffix\";\nimport { getActualExtrusionHeight } from \"../../core\";\n\nimport { LayerProps } from \"./types\";\nimport { ClientStyle } from \"../../types\";\n\nexport const VectorLayer: FC<Omit<LayerProps, \"layerType\" | \"onMount\">> = ({\n layer,\n tileUrl,\n visible,\n beforeId,\n getLayerTempStyle,\n}) => {\n const clientStyle = (layer?.configuration as QueryLayerServiceConfigurationDc)?.clientStyle as ClientStyle;\n const { idAttribute, geometryType } = (layer as FeatureLayerServiceInfoDc).layerDefinition || {};\n\n const renderLayerByGeometryType = useCallback(() => {\n const visibility = visible ? \"visible\" : \"none\";\n\n switch (geometryType) {\n case GeometryType.Point:\n return (\n <MapboxLayer\n id={layer.name}\n type=\"circle\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"circle\")?.layout,\n visibility,\n }}\n paint={{\n ...DEFAULT_CIRCLE_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"circle\")?.paint as CirclePaint),\n }}\n />\n );\n case GeometryType.Polygon:\n return [\n <MapboxLayer\n key={`polygon-layer-${layer.name}`}\n id={layer.name}\n type=\"fill\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"fill\")?.layout,\n visibility:\n visible &&\n getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.settings?.fill?.showBottomSurface !== false &&\n Boolean(\n getActualExtrusionHeight({\n ...DEFAULT_FILL_EXTRUSION_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint as FillExtrusionPaint),\n }),\n )\n ? \"visible\"\n : \"none\",\n }}\n paint={{\n ...DEFAULT_FILL_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill\")?.paint as FillPaint),\n }}\n />,\n <MapboxLayer\n key={`polygon-stroke-layer-${layer.name}`}\n id={`${layer.name}-stroke`}\n type=\"line\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"line\")?.layout,\n visibility:\n visible &&\n getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.settings?.fill?.showBottomSurface !== false &&\n Boolean(\n getActualExtrusionHeight({\n ...DEFAULT_FILL_EXTRUSION_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint as FillExtrusionPaint),\n }),\n )\n ? \"visible\"\n : \"none\",\n }}\n paint={{\n ...DEFAULT_LINE_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"line\")?.paint as LinePaint),\n }}\n />,\n <MapboxLayer\n key={`polygon-extrusion-layer-${layer.name}`}\n id={`${layer.name}-extrusion`}\n type=\"fill-extrusion\"\n source-layer=\"default\"\n beforeId={beforeId}\n minzoom={0}\n maxzoom={23}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.layout,\n visibility,\n }}\n paint={{\n ...DEFAULT_FILL_EXTRUSION_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint as FillExtrusionPaint),\n }}\n />,\n ];\n case GeometryType.Polyline:\n return (\n <MapboxLayer\n id={layer.name}\n type=\"line\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"line\")?.layout,\n visibility,\n }}\n paint={{\n ...DEFAULT_LINE_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"line\")?.paint as LinePaint),\n }}\n />\n );\n default:\n return null;\n }\n }, [\n geometryType,\n layer,\n beforeId,\n visible,\n getLayerTempStyle?.(layer.name, \"circle\"),\n getLayerTempStyle?.(layer.name, \"fill\"),\n getLayerTempStyle?.(layer.name, \"fill-extrusion\"),\n getLayerTempStyle?.(layer.name, \"line\"),\n ]);\n\n const renderClientStyle = useCallback(() => {\n return clientStyle.items.map(mockItem => {\n const prefixSuffix = getClientStyleItemPrefixSuffix(geometryType, mockItem.type);\n const isExtrusionItem = mockItem.type === \"fill-extrusion\";\n const isPolygonPart =\n clientStyle.items.some(item => item.type === \"fill-extrusion\") &&\n (mockItem.type === \"fill\" || mockItem.type === \"line\");\n const fillExtrusionPaint =\n isPolygonPart || isExtrusionItem\n ? {\n ...clientStyle.items?.find(item => item.type === \"fill-extrusion\")?.paint,\n ...getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint,\n }\n : undefined;\n const currentSettings = {\n ...clientStyle?.settings,\n ...getLayerTempStyle?.(layer.name, mockItem.type)?.settings,\n };\n const processedExtrusionHeight = getActualExtrusionHeight(fillExtrusionPaint);\n const hasExtrusion = Boolean(processedExtrusionHeight);\n const visibility =\n visible &&\n ((isExtrusionItem && hasExtrusion) ||\n (!isPolygonPart && !isExtrusionItem) ||\n (isPolygonPart && (!hasExtrusion || (currentSettings?.fill?.showBottomSurface ?? true))))\n ? \"visible\"\n : \"none\";\n\n return (\n <MapboxLayer\n key={`${prefixSuffix[0]}${layer.name}`}\n id={`${layer.name}${prefixSuffix[1]}`}\n type={mockItem.type}\n source-layer=\"default\"\n beforeId={beforeId}\n minzoom={clientStyle?.minzoom ?? 0}\n maxzoom={clientStyle?.maxzoom ?? 23}\n layout={{\n ...mockItem.layout,\n ...getLayerTempStyle?.(layer.name, mockItem.type)?.layout,\n visibility,\n }}\n paint={\n {\n ...mockItem.paint,\n ...getLayerTempStyle?.(layer.name, mockItem.type)?.paint,\n } as AnyPaint\n }\n />\n );\n });\n }, [\n beforeId,\n clientStyle,\n geometryType,\n layer.name,\n visible,\n getLayerTempStyle?.(layer.name, \"circle\"),\n getLayerTempStyle?.(layer.name, \"fill\"),\n getLayerTempStyle?.(layer.name, \"fill-extrusion\"),\n getLayerTempStyle?.(layer.name, \"line\"),\n ]);\n\n if (!layer) {\n return null;\n }\n\n return (\n <Source\n promoteId={idAttribute}\n id={layer.name}\n type=\"vector\"\n tiles={[tileUrl]}\n >\n {clientStyle?.items ? renderClientStyle() : renderLayerByGeometryType()}\n </Source>\n );\n};\n","import { GeometryType } from \"@evergis/api\";\n\nimport { ClientStyleItem } from \"../../../types\";\n\nexport const getClientStyleItemPrefixSuffix = (\n geometryType: GeometryType,\n type: ClientStyleItem[\"type\"],\n): [string, string] => {\n switch (geometryType) {\n case GeometryType.Point:\n return [\"point-layer-\", \"\"];\n case GeometryType.Polyline:\n return [\"polyline-layer-\", \"\"];\n case GeometryType.Polygon:\n switch (type) {\n case \"line\":\n return [\"polygon-stroke-layer-\", \"-stroke\"];\n case \"fill-extrusion\":\n return [\"polygon-extrusion-layer-\", \"-extrusion\"];\n default:\n return [\"polygon-layer-\", \"\"];\n }\n default:\n return [\"\", \"\"];\n }\n};\n","import { CSSProperties } from \"react\";\nimport styled from \"styled-components\";\n\nexport const MapWrapper = styled.div<{ $zIndex?: CSSProperties[\"zIndex\"] }>`\n position: relative;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n z-index: ${({ $zIndex }) => $zIndex ?? 1};\n\n .mapbox-gl-draw_trash {\n display: none;\n }\n\n .mapboxgl-ctrl-logo {\n display: none;\n }\n\n .mapboxgl-ctrl.mapboxgl-ctrl-attrib {\n display: none;\n }\n\n .mapboxgl-ctrl-geocoder.mapboxgl-ctrl {\n width: 350px;\n }\n`;\n","import MapboxDraw, { DrawCustomMode } from \"@mapbox/mapbox-gl-draw\";\n\ninterface ExtendedMapboxDrawModes extends MapboxDraw.Modes {\n [key: string]: DrawCustomMode;\n static: DrawCustomMode;\n}\n\nexport const customModes = MapboxDraw.modes as ExtendedMapboxDrawModes;\n\nconst StaticMode = {} as DrawCustomMode;\n\nStaticMode.onSetup = function () {\n this.setActionableState(undefined);\n\n return {};\n};\n\nStaticMode.toDisplayFeatures = function (state, geojson, display) {\n display(geojson);\n};\n\ncustomModes.static = StaticMode;\n","import { createContext } from \"react\";\n\nimport { MapContextProps } from \"./types\";\n\nexport const MapContext = createContext<MapContextProps>({});\n","import { Dispatch, MutableRefObject, PropsWithChildren, SetStateAction } from \"react\";\nimport { Map as MapboxGLMap } from \"mapbox-gl\";\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\n\nexport enum BaseMapTheme {\n Light = \"light\",\n Dark = \"dark\",\n}\n\nexport interface BaseMapItem {\n name: string;\n source: string;\n preview?: string;\n imgSrc?: string;\n title: string;\n theme?: BaseMapTheme;\n opacity?: number;\n color?: string;\n}\n\nexport interface MapContextProps {\n map?: MutableRefObject<MapboxGLMap>;\n draw?: MutableRefObject<Omit<MapboxDraw, \"getDefaultPosition\">>;\n loaded?: boolean;\n setLoaded?: Dispatch<SetStateAction<boolean>>;\n basemapItems?: BaseMapItem[];\n basemapName?: string;\n setBasemapName?: Dispatch<SetStateAction<string>>;\n defaultBasemap?: string;\n}\n\nexport interface MapProviderProps extends PropsWithChildren {\n basemapItems: BaseMapItem[];\n defaultBasemap: string;\n}\n","import { createContext } from \"react\";\n\nimport { ServerNotificationsContextProps } from \"./types\";\n\nexport const ServerNotificationsContext = createContext<ServerNotificationsContextProps>({});\n","import { useContext } from \"react\";\n\nimport { MapContext } from \"../../contexts\";\n\nexport const useMapContext = () => {\n return useContext(MapContext);\n};\n","import { useEffect } from \"react\";\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\n\nimport { customModes } from \"./customModes\";\nimport { customStyles } from \"./customStyles\";\n\nimport { useMapContext } from \"../useMapContext\";\n\nconst draw = new MapboxDraw({\n displayControlsDefault: false,\n styles: customStyles,\n modes: customModes,\n defaultMode: \"draw_point\",\n controls: {\n trash: true,\n },\n});\n\nexport const useMapDraw = (triggerDeps: Array<unknown> = []) => {\n const { map, draw: drawContext, loaded, basemapName } = useMapContext();\n\n useEffect(() => {\n if (!loaded || !map.current) {\n return;\n }\n\n drawContext.current = draw;\n map.current.addControl(drawContext.current);\n }, [loaded]); // eslint-disable-line\n\n useEffect(() => {\n if (map.current && map.current.hasControl(drawContext.current)) {\n map.current.removeControl(drawContext.current);\n map.current.addControl(drawContext.current);\n }\n }, [basemapName, ...triggerDeps]); // eslint-disable-line\n};\n","export const customStyles = [\n {\n id: \"gl-draw-point\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"]],\n paint: {\n \"circle-radius\": 5,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"highlight-inactive-points\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"feature\"], [\"==\", \"active\", \"false\"]],\n paint: {\n \"circle-radius\": 5,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"highlight-active-points\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"feature\"], [\"==\", \"active\", \"true\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#fbb03b\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 1,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"gl-draw-polygon-fill-static\",\n type: \"fill\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n paint: {\n \"fill-color\": \"#D20C0C\",\n \"fill-outline-color\": \"#D20C0C\",\n \"fill-opacity\": 0.1,\n },\n },\n {\n id: \"gl-draw-line\",\n type: \"line\",\n filter: [\"all\", [\"==\", \"$type\", \"LineString\"]],\n layout: {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n },\n paint: {\n \"line-color\": \"#D20C0C\",\n \"line-dasharray\": [0.2, 2],\n \"line-width\": 2,\n },\n },\n {\n id: \"gl-draw-polygon-fill\",\n type: \"fill\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n paint: {\n \"fill-color\": \"#D20C0C\",\n \"fill-outline-color\": \"#D20C0C\",\n \"fill-opacity\": 0.1,\n },\n },\n {\n id: \"gl-draw-polygon-midpoint\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"midpoint\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#fbb03b\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 1,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"gl-draw-polygon-stroke-active\",\n type: \"line\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n layout: {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n },\n paint: {\n \"line-color\": \"#D20C0C\",\n \"line-dasharray\": [0.2, 2],\n \"line-width\": 2,\n },\n },\n {\n id: \"gl-draw-polygon-and-line-vertex-active\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"meta\", \"vertex\"], [\"==\", \"$type\", \"Point\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n];\n","import { parseJSON, parseISO, isValid, format, toDate } from \"date-fns\";\n\nexport const NO_CONTENT_VALUE = \"—\";\n\nexport type DateType = number | Date;\nexport type RawDateType = string | DateType;\n\nexport enum DateFormat {\n ClientDefaultFormat = \"dd.MM.yyyy HH:mm\",\n DateTime = \"dd.MM.yyyy HH:mm:ss\",\n UTC = \"yyyy-MM-dd'T'HH:mm:ss.sssxxx\",\n AxisTooltip = \"d MMMM yyyy\",\n}\n\ninterface FormatDateOptions {\n dateFormat?: DateFormat;\n defaultValue?: RawDateType;\n}\n\nconst stringDateParsers: ((date: string) => DateType)[] = [parseJSON, parseISO, rawDate => new Date(rawDate)];\n\nexport const getDate = (rawDate?: RawDateType | null): Date | null => {\n if (!rawDate) return null;\n\n if (typeof rawDate === \"string\") {\n for (const parser of stringDateParsers) {\n const date = parser(rawDate);\n\n if (isValid(date)) {\n return toDate(date);\n }\n }\n\n return null;\n }\n\n const parsedDate = toDate(rawDate);\n\n return isValid(parsedDate) ? parsedDate : null;\n};\n\nexport const formatDate = (\n date?: RawDateType,\n { dateFormat = DateFormat.ClientDefaultFormat, defaultValue = NO_CONTENT_VALUE }: FormatDateOptions = {},\n): string => {\n const dateValue = date ? getDate(date) : null;\n\n if (isValid(dateValue)) {\n return format(dateValue as Date, dateFormat);\n }\n\n return defaultValue.toString();\n};\n","export const debounce = (callback: any, delay: number): ((...args) => void) => {\n let timeId: number;\n\n return (...args) => {\n if (timeId) {\n window.clearTimeout(timeId);\n }\n\n timeId = window.setTimeout(() => {\n callback(...args);\n }, delay);\n };\n};\n","import React, { FC, useEffect } from \"react\";\n\nimport { RasterLayer } from \"./RasterLayer\";\nimport { VectorLayer } from \"./VectorLayer\";\n\nimport { LayerProps } from \"./types\";\n\nexport const Layer: FC<LayerProps> = ({\n layer,\n layerType,\n visible,\n beforeId,\n tileUrl,\n onMount = () => null,\n}) => {\n useEffect(onMount, []); // eslint-disable-line\n\n if (!layer) {\n return null;\n }\n\n if (layerType === \"RasterTileLayer\") {\n return (\n <RasterLayer\n layer={layer}\n tileUrl={tileUrl}\n visible={visible}\n beforeId={beforeId}\n />\n );\n }\n\n return (\n <VectorLayer\n layer={layer}\n tileUrl={tileUrl}\n visible={visible}\n beforeId={beforeId}\n />\n );\n};\n","import React, { FC } from \"react\";\nimport { default as MapGL } from \"react-map-gl/mapbox\";\nimport { Map as MapboxGLMap } from \"mapbox-gl\";\nimport \"@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css\";\n\nimport { MapWrapper } from \"./styled\";\n\nimport { useMapContext } from \"../../hooks\";\n\nimport { MapProps } from \"./types\";\n\nimport \"mapbox-gl/dist/mapbox-gl.css\";\n\nexport const Map: FC<MapProps> = ({\n zIndex,\n lowerSiblings,\n upperSiblings,\n onError,\n children,\n ...rest\n}) => {\n const { map, setLoaded } = useMapContext();\n\n return (\n <MapWrapper $zIndex={zIndex}>\n {lowerSiblings}\n <MapGL\n {...rest}\n renderWorldCopies\n antialias\n doubleClickZoom={false}\n cursor=\"default\"\n onLoad={e => {\n map.current = e.target as MapboxGLMap;\n\n map.current.on(\"error\", onError);\n\n setLoaded(true);\n }}\n >\n {children}\n </MapGL>\n {upperSiblings}\n </MapWrapper>\n );\n};\n","import React, { FC, useRef, useState } from \"react\";\nimport { Map as MapboxGLMap } from \"mapbox-gl\";\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\n\nimport { MapContext } from \"./MapContext\";\n\nimport { MapProviderProps } from \"./types\";\n\nexport const MapProvider: FC<MapProviderProps> = ({ basemapItems, defaultBasemap, children }) => {\n const map = useRef<MapboxGLMap | undefined>();\n const draw = useRef<MapboxDraw | undefined>();\n const [loaded, setLoaded] = useState<boolean>(false);\n const [basemapName, setBasemapName] = useState(defaultBasemap);\n\n return (\n <MapContext.Provider\n value={{\n map,\n draw,\n loaded,\n setLoaded,\n basemapItems,\n basemapName,\n setBasemapName,\n defaultBasemap,\n }}\n >\n {children}\n </MapContext.Provider>\n );\n};\n","import React, { FC, useCallback } from \"react\";\n\nimport { ServerNotificationsContext } from \"./ServerNotificationsContext\";\n\nimport { useServerNotifications } from \"./hooks/useServerNotifications\";\n\nimport { ServerNotificationsProviderProps } from \"./types\";\n\nexport const ServerNotificationsProvider: FC<ServerNotificationsProviderProps> = ({ url, initialized, children }) => {\n const connection = useServerNotifications(url, initialized);\n\n const addSubscription = useCallback(\n async (payload?: any): Promise<string | null> => {\n if (!connection || connection.state !== \"Connected\" || !payload) {\n return;\n }\n\n try {\n const id = await connection.invoke(\"AddSubscription\", payload);\n\n console.info(\"Подписка добавлена, id:\", id);\n\n return id;\n } catch (err) {\n console.info(\"Ошибка добавления подписки:\", err);\n\n return Promise.resolve(null);\n }\n },\n [connection],\n );\n\n const updateSubscription = useCallback(\n async (id: string | null, payload?: any): Promise<void> => {\n if (!connection || connection.state !== \"Connected\" || !id || !payload) {\n return;\n }\n\n try {\n await connection.invoke(\"UpdateSubscription\", id, payload);\n } catch (err) {\n console.info(`Ошибка обновления подписки ${id}:`, err);\n }\n },\n [connection],\n );\n\n const unsubscribeById = useCallback(\n async (id: string | null): Promise<void> => {\n if (!connection || connection.state !== \"Connected\" || !id) {\n return;\n }\n\n try {\n await connection.invoke(\"Unsubscribe\", [id]);\n } catch (err) {\n console.info(`Ошибка отписки по ${id}:`, err);\n }\n },\n [connection],\n );\n\n return (\n <ServerNotificationsContext.Provider value={{ connection, addSubscription, updateSubscription, unsubscribeById }}>\n {children}\n </ServerNotificationsContext.Provider>\n );\n};\n","import { useEffect, useRef, useState } from \"react\";\nimport { HubConnection, HubConnectionBuilder, LogLevel } from \"@microsoft/signalr\";\n\nexport const useServerNotifications = (url: string, initialized: boolean): HubConnection | null => {\n const hubConnection = useRef<HubConnection | null>(null);\n const [connection, setConnection] = useState<HubConnection | null>(null);\n\n useEffect(() => {\n if (!initialized) {\n return;\n }\n\n hubConnection.current = new HubConnectionBuilder()\n .withUrl(url, {\n withCredentials: true,\n })\n .configureLogging(LogLevel.Information)\n .build();\n\n hubConnection.current\n .start()\n .then(() => console.info(\"Серверные нотификации подключены\"))\n .catch(err => console.info(\"Ошибка:\", err))\n .finally(() => setConnection(hubConnection.current));\n }, [initialized]); // eslint-disable-line\n\n useEffect(() => {\n if (!connection || connection.state !== \"Connected\") {\n return;\n }\n\n connection\n .invoke(\"SubscribeNotifications\", [])\n .then(() => console.info(\"Подписка `SubscribeNotifications` оформлена\"))\n .catch(err => console.info(\"Ошибка подписки `SubscribeNotifications`:\", err));\n }, [connection]);\n\n return connection;\n};\n","export const isNumeric = (number: string | number): boolean =>\n !isNaN(parseFloat(number as string)) && isFinite(number as number);\n","export function isObject<T>(value: T | object): value is object {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import { isEmpty } from \"lodash\";\nimport { ExpressionSpecification } from \"mapbox-gl\";\n\nimport { findAttributeInExpression } from \"./findAttributeInExpression\";\n\nimport { ClientStyle } from \"../../types\";\n\nexport const parseClientStyle = (style?: ClientStyle): string[] => {\n if (!style) {\n return [];\n }\n\n return style?.items?.reduce((acc: string[], curr) => {\n if (!curr.paint || isEmpty(curr.paint)) {\n return acc;\n }\n\n return Object.entries(curr.paint)?.reduce((paintAcc: string[], [, value]) => {\n if (!Array.isArray(value)) {\n return paintAcc;\n }\n\n return [...new Set([...paintAcc, ...findAttributeInExpression(value as ExpressionSpecification)])];\n }, []);\n }, []);\n};\n","import { useMemo } from \"react\";\n\nimport { debounce } from \"../utils\";\n\nexport const useDebouncedCallback = <CallbackFn extends () => void>(interval: number): ((cb: CallbackFn) => void) => {\n return useMemo(\n () =>\n debounce((cb: CallbackFn) => {\n cb();\n }, interval),\n [interval],\n );\n};\n","import { useCallback } from \"react\";\nimport { VectorSourceImpl } from \"mapbox-gl\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useRedrawLayer = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (layerName: string) => {\n const layerTileSource: VectorSourceImpl = map.current.getSource(layerName);\n\n layerTileSource.setTiles(layerTileSource.tiles);\n },\n [map],\n );\n};\n","import { useContext } from \"react\";\n\nimport { ServerNotificationsContext } from \"../../contexts\";\n\nexport const useServerNotificationsContext = () => {\n return useContext(ServerNotificationsContext);\n};\n","import { useCallback, useState } from \"react\";\n\nexport const useToggle = (initial?: boolean): [boolean, VoidFunction, (value: boolean) => void] => {\n const [state, setState] = useState(initial !== undefined ? initial : false);\n\n const toggle = useCallback(() => setState(!state), [state]);\n\n return [state, toggle, setState];\n};\n","import { useEffect, useMemo } from \"react\";\n\nimport { debounce } from \"../utils\";\n\nconst DEBOUNCE_DELAY = 144;\n\nexport const useWindowResize = (callback?: (...args: any) => any, delay?: number) => {\n const debounceCallback = useMemo(() => {\n return callback ? debounce(callback, delay || DEBOUNCE_DELAY) : undefined;\n }, [callback, delay]);\n\n useEffect(() => {\n debounceCallback && window.addEventListener(\"resize\", debounceCallback);\n\n return () => debounceCallback && window.removeEventListener(\"resize\", debounceCallback);\n }, [debounceCallback]);\n};\n","import { useCallback } from \"react\";\nimport { bbox } from \"@turf/turf\";\nimport { FeatureDc } from \"@evergis/api\";\n\nimport { useMapContext } from \"./useMapContext\";\nimport { convertSpToTurfFeature } from \"../../core\";\n\nexport const useZoomToFeatures = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (features?: FeatureDc[], padding?: number) => {\n if (!features) {\n return;\n }\n\n const currentFeatureCenter = bbox({\n type: \"FeatureCollection\",\n features: features.map(feature => convertSpToTurfFeature(feature.geometry)),\n });\n\n map.current.fitBounds(currentFeatureCenter as [number, number, number, number], { padding: padding ?? 150 });\n },\n [map],\n );\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useZoomToPoint = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (options, callback?: VoidFunction) => {\n if (map.current) {\n if (callback) {\n map.current.once(\"moveend\", () => {\n callback();\n });\n }\n\n map.current.flyTo(options);\n } else {\n callback?.();\n }\n },\n [map],\n );\n};\n"],"names":["ErrorBoundary","hasError","Component","error","console","children","errorContents","this","props","state","React","DEFAULT_CIRCLE_PAINT","DEFAULT_FILL_PAINT","DEFAULT_FILL_EXTRUSION_PAINT","DEFAULT_LINE_PAINT","RasterLayer","layer","tileUrl","visible","beforeId","Source","id","name","type","tiles","MapboxLayer","layout","visibility","findAttributeInExpression","expression","Array","isArray","length","reduce","acc","curr","Set","getActualExtrusionHeight","paint","convertSpToTurfFeature","geometry","GeometryType","Point","point","coordinates","Multipoint","multiPoint","Polyline","multiLineString","Polygon","Envelope","polygon","VectorLayer","getLayerTempStyle","clientStyle","configuration","_layer$configuration","idAttribute","geometryType","layerDefinition","renderLayerByGeometryType","useCallback","_getLayerTempStyle","_getLayerTempStyle2","key","_getLayerTempStyle3","settings","fill","showBottomSurface","Boolean","_getLayerTempStyle5","_getLayerTempStyle6","_getLayerTempStyle7","_getLayerTempStyle9","_getLayerTempStyle10","minzoom","maxzoom","_getLayerTempStyle11","_getLayerTempStyle12","_getLayerTempStyle13","_getLayerTempStyle14","renderClientStyle","items","map","mockItem","prefixSuffix","getClientStyleItemPrefixSuffix","isExtrusionItem","isPolygonPart","some","item","fillExtrusionPaint","_clientStyle$items","find","_getLayerTempStyle15","undefined","currentSettings","_getLayerTempStyle16","processedExtrusionHeight","hasExtrusion","_currentSettings$fill2","_getLayerTempStyle17","_getLayerTempStyle18","promoteId","MapWrapper","styled","div","$zIndex","customModes","MapboxDraw","modes","static","StaticMode","setActionableState","geojson","display","MapContext","createContext","BaseMapTheme","ServerNotificationsContext","useMapContext","useContext","draw","displayControlsDefault","styles","filter","defaultMode","controls","trash","NO_CONTENT_VALUE","DateFormat","stringDateParsers","parseJSON","parseISO","rawDate","Date","getDate","parser","date","isValid","toDate","parsedDate","debounce","callback","delay","timeId","args","window","clearTimeout","setTimeout","layerType","onMount","useEffect","zIndex","lowerSiblings","upperSiblings","onError","rest","setLoaded","MapGL","renderWorldCopies","antialias","doubleClickZoom","cursor","onLoad","e","current","target","on","basemapItems","defaultBasemap","useRef","loaded","useState","basemapName","setBasemapName","Provider","value","url","initialized","connection","hubConnection","setConnection","HubConnectionBuilder","withUrl","withCredentials","configureLogging","LogLevel","Information","build","start","then","info","catch","err","finally","invoke","useServerNotifications","addSubscription","async","payload","Promise","resolve","updateSubscription","unsubscribeById","dateFormat","ClientDefaultFormat","defaultValue","dateValue","format","toString","number","isNaN","parseFloat","isFinite","style","_style$items","isEmpty","Object","entries","_Object$entries","paintAcc","interval","useMemo","cb","triggerDeps","drawContext","addControl","hasControl","removeControl","layerName","layerTileSource","getSource","setTiles","initial","setState","toggle","debounceCallback","addEventListener","removeEventListener","features","padding","currentFeatureCenter","bbox","feature","fitBounds","options","once","flyTo"],"mappings":"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"}
1
+ {"version":3,"file":"react.cjs.production.min.js","sources":["../src/components/ErrorBoundary/index.tsx","../src/components/Layer/constants.ts","../src/components/Layer/RasterLayer.tsx","../src/core/classification/findAttributeInExpression.ts","../src/core/classification/getActualExtrusionHeight.ts","../src/core/feature/convertSpToTurfFeature.ts","../src/components/Layer/VectorLayer.tsx","../src/components/Layer/utils/getClientStyleItemPrefixSuffix.ts","../src/components/Map/styled.ts","../src/hooks/map/useMapDraw/customModes.ts","../src/contexts/MapContext/MapContext.ts","../src/contexts/MapContext/types.ts","../src/contexts/ServerNotificationsContext/ServerNotificationsContext.ts","../src/hooks/map/useMapContext.ts","../src/hooks/map/useMapDraw/index.ts","../src/hooks/map/useMapDraw/customStyles.ts","../src/utils/date.ts","../src/utils/debounce.ts","../src/components/Layer/Layer.tsx","../src/components/Map/Map.tsx","../src/contexts/MapContext/MapProvider.tsx","../src/contexts/ServerNotificationsContext/ServerNotificationsProvider.tsx","../src/contexts/ServerNotificationsContext/hooks/useServerNotifications.ts","../src/utils/isNumeric.ts","../src/utils/isObject.ts","../src/core/classification/parseClientStyle.ts","../src/hooks/useDebouncedCallback.ts","../src/hooks/map/useRedrawLayer.ts","../src/hooks/serverNotifications/useServerNotificationsContext.ts","../src/hooks/useToggle.ts","../src/hooks/useWindowResize.ts","../src/hooks/map/useZoomToFeatures.ts","../src/hooks/map/useZoomToPoint.ts"],"sourcesContent":["import React, { Component } from \"react\";\n\nimport { ErrorBoundaryProps, ErrorBoundaryState } from \"./types\";\n\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n public state = { hasError: false };\n\n public static getDerivedStateFromError() {\n return { hasError: true };\n }\n\n public componentDidCatch(error: Error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n\n public render() {\n const { children, errorContents } = this.props;\n const { hasError } = this.state;\n\n return !hasError ? (\n <>{children}</>\n ) : (\n <>{errorContents}</>\n );\n }\n}\n","import { CirclePaint, FillPaint, FillExtrusionPaint, LinePaint } from \"mapbox-gl\";\n\nconst DEFAULT_COLOR = \"#00ffff\";\nconst DEFAULT_OPACITY = 0.5;\nconst DEFAULT_SIZE = 4;\nconst DEFAULT_LINE_WIDTH = 1;\n\nexport const DEFAULT_CIRCLE_PAINT = {\n \"circle-radius\": DEFAULT_SIZE,\n \"circle-color\": DEFAULT_COLOR,\n \"circle-opacity\": DEFAULT_OPACITY,\n \"circle-stroke-width\": 0,\n \"circle-stroke-color\": DEFAULT_COLOR,\n \"circle-stroke-opacity\": DEFAULT_OPACITY,\n} as CirclePaint;\n\nexport const DEFAULT_FILL_PAINT = {\n \"fill-color\": DEFAULT_COLOR,\n \"fill-opacity\": DEFAULT_OPACITY,\n} as FillPaint;\n\nexport const DEFAULT_FILL_EXTRUSION_PAINT = {\n \"fill-extrusion-base\": 0,\n \"fill-extrusion-vertical-gradient\": true,\n \"fill-extrusion-color\": DEFAULT_COLOR,\n \"fill-extrusion-opacity\": DEFAULT_OPACITY,\n \"fill-extrusion-height\": 0,\n} as FillExtrusionPaint;\n\nexport const DEFAULT_LINE_PAINT = {\n \"line-color\": DEFAULT_COLOR,\n \"line-width\": DEFAULT_LINE_WIDTH,\n \"line-opacity\": DEFAULT_OPACITY,\n} as LinePaint;\n","import React, { FC } from \"react\";\nimport { Source, Layer as MapboxLayer } from \"react-map-gl/mapbox\";\n\nimport { LayerProps } from \"./types\";\n\nexport const RasterLayer: FC<Omit<LayerProps, \"layerType\" | \"onMount\" | \"getLayerTempStyle\">> = ({\n layer,\n tileUrl,\n visible,\n beforeId,\n}) => {\n if (!layer) {\n return null;\n }\n\n return (\n <Source id={layer.name} type=\"raster\" tiles={[tileUrl]}>\n <MapboxLayer\n id={layer.name}\n type=\"raster\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{ visibility: visible ? \"visible\" : \"none\" }}\n />\n </Source>\n );\n};\n","import { ExpressionSpecification } from \"mapbox-gl\";\n\nexport const findAttributeInExpression = (expression: ExpressionSpecification): string[] => {\n if (Array.isArray(expression) && expression.length === 2 && expression[0] === \"get\") {\n return [expression[1]];\n }\n\n return expression.reduce((acc: string[], curr) => {\n if (!Array.isArray(curr)) {\n return acc;\n }\n\n if (curr[0] === \"get\") {\n return [...new Set([...acc, curr[1]])];\n }\n\n return [...new Set([...acc, ...findAttributeInExpression(curr as ExpressionSpecification)])];\n }, []);\n};\n","import { AnyPaint } from \"mapbox-gl\";\n\nexport const getActualExtrusionHeight = (paint: AnyPaint) => {\n return Array.isArray(paint?.[\"fill-extrusion-height\"]) && paint?.[\"fill-extrusion-height\"][0] === \"+\"\n ? paint?.[\"fill-extrusion-height\"][1]\n : paint?.[\"fill-extrusion-height\"];\n};\n","import { FeatureDc, GeometryType, PositionDc } from \"@evergis/api\";\nimport { multiLineString, multiPoint, point, polygon } from \"@turf/turf\";\nimport { Feature } from \"geojson\";\n\nexport const convertSpToTurfFeature = (geometry?: FeatureDc[\"geometry\"]): Feature<any> | undefined => {\n if (!geometry) {\n return;\n }\n\n switch (geometry.type) {\n case GeometryType.Point:\n return point(geometry.coordinates as PositionDc);\n case GeometryType.Multipoint:\n return multiPoint(geometry.coordinates as PositionDc[]);\n case GeometryType.Polyline:\n return multiLineString(geometry.coordinates as PositionDc[][]);\n case GeometryType.Polygon:\n case GeometryType.Envelope:\n return polygon(geometry.coordinates as PositionDc[][]);\n default:\n }\n};\n","import React, { FC, useCallback } from \"react\";\nimport { Layer as MapboxLayer, Source } from \"react-map-gl/mapbox\";\nimport { FeatureLayerServiceInfoDc, GeometryType, QueryLayerServiceConfigurationDc } from \"@evergis/api\";\nimport { AnyPaint, CirclePaint, FillExtrusionPaint, FillPaint, LinePaint } from \"mapbox-gl\";\n\nimport {\n DEFAULT_CIRCLE_PAINT,\n DEFAULT_FILL_EXTRUSION_PAINT,\n DEFAULT_FILL_PAINT,\n DEFAULT_LINE_PAINT,\n} from \"./constants\";\n\nimport { getClientStyleItemPrefixSuffix } from \"./utils/getClientStyleItemPrefixSuffix\";\nimport { getActualExtrusionHeight } from \"../../core\";\n\nimport { LayerProps } from \"./types\";\nimport { ClientStyle } from \"../../types\";\n\nexport const VectorLayer: FC<Omit<LayerProps, \"layerType\" | \"onMount\">> = ({\n layer,\n tileUrl,\n visible,\n beforeId,\n getLayerTempStyle,\n}) => {\n const clientStyle = (layer?.configuration as QueryLayerServiceConfigurationDc)?.clientStyle as ClientStyle;\n const { idAttribute, geometryType } = (layer as FeatureLayerServiceInfoDc).layerDefinition || {};\n\n const renderLayerByGeometryType = useCallback(() => {\n const visibility = visible ? \"visible\" : \"none\";\n\n switch (geometryType) {\n case GeometryType.Point:\n return (\n <MapboxLayer\n id={layer.name}\n type=\"circle\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"circle\")?.layout,\n visibility,\n }}\n paint={{\n ...DEFAULT_CIRCLE_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"circle\")?.paint as CirclePaint),\n }}\n />\n );\n case GeometryType.Polygon:\n return [\n <MapboxLayer\n key={`polygon-layer-${layer.name}`}\n id={layer.name}\n type=\"fill\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"fill\")?.layout,\n visibility:\n visible &&\n getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.settings?.fill?.showBottomSurface !== false &&\n Boolean(\n getActualExtrusionHeight({\n ...DEFAULT_FILL_EXTRUSION_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint as FillExtrusionPaint),\n }),\n )\n ? \"visible\"\n : \"none\",\n }}\n paint={{\n ...DEFAULT_FILL_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill\")?.paint as FillPaint),\n }}\n />,\n <MapboxLayer\n key={`polygon-stroke-layer-${layer.name}`}\n id={`${layer.name}-stroke`}\n type=\"line\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"line\")?.layout,\n visibility:\n visible &&\n getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.settings?.fill?.showBottomSurface !== false &&\n Boolean(\n getActualExtrusionHeight({\n ...DEFAULT_FILL_EXTRUSION_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint as FillExtrusionPaint),\n }),\n )\n ? \"visible\"\n : \"none\",\n }}\n paint={{\n ...DEFAULT_LINE_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"line\")?.paint as LinePaint),\n }}\n />,\n <MapboxLayer\n key={`polygon-extrusion-layer-${layer.name}`}\n id={`${layer.name}-extrusion`}\n type=\"fill-extrusion\"\n source-layer=\"default\"\n beforeId={beforeId}\n minzoom={0}\n maxzoom={23}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.layout,\n visibility,\n }}\n paint={{\n ...DEFAULT_FILL_EXTRUSION_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint as FillExtrusionPaint),\n }}\n />,\n ];\n case GeometryType.Polyline:\n return (\n <MapboxLayer\n id={layer.name}\n type=\"line\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"line\")?.layout,\n visibility,\n }}\n paint={{\n ...DEFAULT_LINE_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"line\")?.paint as LinePaint),\n }}\n />\n );\n default:\n return null;\n }\n }, [\n geometryType,\n layer,\n beforeId,\n visible,\n getLayerTempStyle,\n ]);\n\n const renderClientStyle = useCallback(() => {\n return clientStyle.items.map(mockItem => {\n const prefixSuffix = getClientStyleItemPrefixSuffix(geometryType, mockItem.type);\n const isExtrusionItem = mockItem.type === \"fill-extrusion\";\n const isPolygonPart =\n clientStyle.items.some(item => item.type === \"fill-extrusion\") &&\n (mockItem.type === \"fill\" || mockItem.type === \"line\");\n const fillExtrusionPaint =\n isPolygonPart || isExtrusionItem\n ? {\n ...clientStyle.items?.find(item => item.type === \"fill-extrusion\")?.paint,\n ...getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint,\n }\n : undefined;\n const currentSettings = {\n ...clientStyle?.settings,\n ...getLayerTempStyle?.(layer.name, mockItem.type)?.settings,\n };\n const processedExtrusionHeight = getActualExtrusionHeight(fillExtrusionPaint);\n const hasExtrusion = Boolean(processedExtrusionHeight);\n const visibility =\n visible &&\n ((isExtrusionItem && hasExtrusion) ||\n (!isPolygonPart && !isExtrusionItem) ||\n (isPolygonPart && (!hasExtrusion || (currentSettings?.fill?.showBottomSurface ?? true))))\n ? \"visible\"\n : \"none\";\n\n return (\n <MapboxLayer\n key={`${prefixSuffix[0]}${layer.name}`}\n id={`${layer.name}${prefixSuffix[1]}`}\n type={mockItem.type}\n source-layer=\"default\"\n beforeId={beforeId}\n minzoom={clientStyle?.minzoom ?? 0}\n maxzoom={clientStyle?.maxzoom ?? 23}\n layout={{\n ...mockItem.layout,\n ...getLayerTempStyle?.(layer.name, mockItem.type)?.layout,\n visibility,\n }}\n paint={\n {\n ...mockItem.paint,\n ...getLayerTempStyle?.(layer.name, mockItem.type)?.paint,\n } as AnyPaint\n }\n />\n );\n });\n }, [\n beforeId,\n clientStyle,\n geometryType,\n layer.name,\n visible,\n getLayerTempStyle,\n ]);\n\n if (!layer) {\n return null;\n }\n\n return (\n <Source\n promoteId={idAttribute}\n id={layer.name}\n type=\"vector\"\n tiles={[tileUrl]}\n >\n {clientStyle?.items ? renderClientStyle() : renderLayerByGeometryType()}\n </Source>\n );\n};\n","import { GeometryType } from \"@evergis/api\";\n\nimport { ClientStyleItem } from \"../../../types\";\n\nexport const getClientStyleItemPrefixSuffix = (\n geometryType: GeometryType,\n type: ClientStyleItem[\"type\"],\n): [string, string] => {\n switch (geometryType) {\n case GeometryType.Point:\n return [\"point-layer-\", \"\"];\n case GeometryType.Polyline:\n return [\"polyline-layer-\", \"\"];\n case GeometryType.Polygon:\n switch (type) {\n case \"line\":\n return [\"polygon-stroke-layer-\", \"-stroke\"];\n case \"fill-extrusion\":\n return [\"polygon-extrusion-layer-\", \"-extrusion\"];\n default:\n return [\"polygon-layer-\", \"\"];\n }\n default:\n return [\"\", \"\"];\n }\n};\n","import { CSSProperties } from \"react\";\nimport styled from \"styled-components\";\n\nexport const MapWrapper = styled.div<{ $zIndex?: CSSProperties[\"zIndex\"] }>`\n position: relative;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n z-index: ${({ $zIndex }) => $zIndex ?? 1};\n\n .mapbox-gl-draw_trash {\n display: none;\n }\n\n .mapboxgl-ctrl-logo {\n display: none;\n }\n\n .mapboxgl-ctrl.mapboxgl-ctrl-attrib {\n display: none;\n }\n\n .mapboxgl-ctrl-geocoder.mapboxgl-ctrl {\n width: 350px;\n }\n`;\n","import MapboxDraw, { DrawCustomMode } from \"@mapbox/mapbox-gl-draw\";\n\ninterface ExtendedMapboxDrawModes extends MapboxDraw.Modes {\n [key: string]: DrawCustomMode;\n static: DrawCustomMode;\n}\n\nexport const customModes = MapboxDraw.modes as ExtendedMapboxDrawModes;\n\nconst StaticMode = {} as DrawCustomMode;\n\nStaticMode.onSetup = function () {\n this.setActionableState(undefined);\n\n return {};\n};\n\nStaticMode.toDisplayFeatures = function (state, geojson, display) {\n display(geojson);\n};\n\ncustomModes.static = StaticMode;\n","import { createContext } from \"react\";\n\nimport { MapContextProps } from \"./types\";\n\nexport const MapContext = createContext<MapContextProps>({});\n","import { Dispatch, MutableRefObject, PropsWithChildren, SetStateAction } from \"react\";\nimport { Map as MapboxGLMap } from \"mapbox-gl\";\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\n\nexport enum BaseMapTheme {\n Light = \"light\",\n Dark = \"dark\",\n}\n\nexport interface BaseMapItem {\n name: string;\n source: string;\n preview?: string;\n imgSrc?: string;\n title: string;\n theme?: BaseMapTheme;\n opacity?: number;\n color?: string;\n}\n\nexport interface MapContextProps {\n map?: MutableRefObject<MapboxGLMap>;\n draw?: MutableRefObject<Omit<MapboxDraw, \"getDefaultPosition\">>;\n loaded?: boolean;\n setLoaded?: Dispatch<SetStateAction<boolean>>;\n basemapItems?: BaseMapItem[];\n basemapName?: string;\n setBasemapName?: Dispatch<SetStateAction<string>>;\n defaultBasemap?: string;\n}\n\nexport interface MapProviderProps extends PropsWithChildren {\n basemapItems: BaseMapItem[];\n defaultBasemap: string;\n}\n","import { createContext } from \"react\";\n\nimport { ServerNotificationsContextProps } from \"./types\";\n\nexport const ServerNotificationsContext = createContext<ServerNotificationsContextProps>({});\n","import { useContext } from \"react\";\n\nimport { MapContext } from \"../../contexts\";\n\nexport const useMapContext = () => {\n return useContext(MapContext);\n};\n","import { useEffect } from \"react\";\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\n\nimport { customModes } from \"./customModes\";\nimport { customStyles } from \"./customStyles\";\n\nimport { useMapContext } from \"../useMapContext\";\n\nconst draw = new MapboxDraw({\n displayControlsDefault: false,\n styles: customStyles,\n modes: customModes,\n defaultMode: \"draw_point\",\n controls: {\n trash: true,\n },\n});\n\nexport const useMapDraw = (triggerDeps: Array<unknown> = []) => {\n const { map, draw: drawContext, loaded, basemapName } = useMapContext();\n\n useEffect(() => {\n if (!loaded || !map.current) {\n return;\n }\n\n drawContext.current = draw;\n map.current.addControl(drawContext.current);\n }, [loaded]); // eslint-disable-line\n\n useEffect(() => {\n if (map.current && map.current.hasControl(drawContext.current)) {\n map.current.removeControl(drawContext.current);\n map.current.addControl(drawContext.current);\n }\n }, [basemapName, ...triggerDeps]); // eslint-disable-line\n};\n","export const customStyles = [\n {\n id: \"gl-draw-point\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"]],\n paint: {\n \"circle-radius\": 5,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"highlight-inactive-points\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"feature\"], [\"==\", \"active\", \"false\"]],\n paint: {\n \"circle-radius\": 5,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"highlight-active-points\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"feature\"], [\"==\", \"active\", \"true\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#fbb03b\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 1,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"gl-draw-polygon-fill-static\",\n type: \"fill\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n paint: {\n \"fill-color\": \"#D20C0C\",\n \"fill-outline-color\": \"#D20C0C\",\n \"fill-opacity\": 0.1,\n },\n },\n {\n id: \"gl-draw-line\",\n type: \"line\",\n filter: [\"all\", [\"==\", \"$type\", \"LineString\"]],\n layout: {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n },\n paint: {\n \"line-color\": \"#D20C0C\",\n \"line-dasharray\": [0.2, 2],\n \"line-width\": 2,\n },\n },\n {\n id: \"gl-draw-polygon-fill\",\n type: \"fill\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n paint: {\n \"fill-color\": \"#D20C0C\",\n \"fill-outline-color\": \"#D20C0C\",\n \"fill-opacity\": 0.1,\n },\n },\n {\n id: \"gl-draw-polygon-midpoint\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"midpoint\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#fbb03b\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 1,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"gl-draw-polygon-stroke-active\",\n type: \"line\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n layout: {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n },\n paint: {\n \"line-color\": \"#D20C0C\",\n \"line-dasharray\": [0.2, 2],\n \"line-width\": 2,\n },\n },\n {\n id: \"gl-draw-polygon-and-line-vertex-active\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"meta\", \"vertex\"], [\"==\", \"$type\", \"Point\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n];\n","import { parseJSON, parseISO, isValid, format, toDate } from \"date-fns\";\n\nexport const NO_CONTENT_VALUE = \"—\";\n\nexport type DateType = number | Date;\nexport type RawDateType = string | DateType;\n\nexport enum DateFormat {\n ClientDefaultFormat = \"dd.MM.yyyy HH:mm\",\n DateTime = \"dd.MM.yyyy HH:mm:ss\",\n UTC = \"yyyy-MM-dd'T'HH:mm:ss.sssxxx\",\n AxisTooltip = \"d MMMM yyyy\",\n}\n\ninterface FormatDateOptions {\n dateFormat?: DateFormat;\n defaultValue?: RawDateType;\n}\n\nconst stringDateParsers: ((date: string) => DateType)[] = [parseJSON, parseISO, rawDate => new Date(rawDate)];\n\nexport const getDate = (rawDate?: RawDateType | null): Date | null => {\n if (!rawDate) return null;\n\n if (typeof rawDate === \"string\") {\n for (const parser of stringDateParsers) {\n const date = parser(rawDate);\n\n if (isValid(date)) {\n return toDate(date);\n }\n }\n\n return null;\n }\n\n const parsedDate = toDate(rawDate);\n\n return isValid(parsedDate) ? parsedDate : null;\n};\n\nexport const formatDate = (\n date?: RawDateType,\n { dateFormat = DateFormat.ClientDefaultFormat, defaultValue = NO_CONTENT_VALUE }: FormatDateOptions = {},\n): string => {\n const dateValue = date ? getDate(date) : null;\n\n if (isValid(dateValue)) {\n return format(dateValue as Date, dateFormat);\n }\n\n return defaultValue.toString();\n};\n","export const debounce = (callback: any, delay: number): ((...args) => void) => {\n let timeId: number;\n\n return (...args) => {\n if (timeId) {\n window.clearTimeout(timeId);\n }\n\n timeId = window.setTimeout(() => {\n callback(...args);\n }, delay);\n };\n};\n","import React, { FC, useEffect } from \"react\";\n\nimport { RasterLayer } from \"./RasterLayer\";\nimport { VectorLayer } from \"./VectorLayer\";\n\nimport { LayerProps } from \"./types\";\n\nexport const Layer: FC<LayerProps> = ({\n layer,\n layerType,\n visible,\n beforeId,\n tileUrl,\n getLayerTempStyle,\n onMount = () => null,\n}) => {\n useEffect(onMount, []); // eslint-disable-line\n\n if (!layer) {\n return null;\n }\n\n if (layerType === \"RasterTileLayer\") {\n return (\n <RasterLayer\n layer={layer}\n tileUrl={tileUrl}\n visible={visible}\n beforeId={beforeId}\n />\n );\n }\n\n return (\n <VectorLayer\n layer={layer}\n tileUrl={tileUrl}\n visible={visible}\n beforeId={beforeId}\n getLayerTempStyle={getLayerTempStyle}\n />\n );\n};\n","import React, { FC } from \"react\";\nimport { default as MapGL } from \"react-map-gl/mapbox\";\nimport { Map as MapboxGLMap } from \"mapbox-gl\";\nimport \"@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css\";\n\nimport { MapWrapper } from \"./styled\";\n\nimport { useMapContext } from \"../../hooks\";\n\nimport { MapProps } from \"./types\";\n\nimport \"mapbox-gl/dist/mapbox-gl.css\";\n\nexport const Map: FC<MapProps> = ({\n zIndex,\n lowerSiblings,\n upperSiblings,\n onError,\n children,\n ...rest\n}) => {\n const { map, setLoaded } = useMapContext();\n\n return (\n <MapWrapper $zIndex={zIndex}>\n {lowerSiblings}\n <MapGL\n {...rest}\n renderWorldCopies\n antialias\n doubleClickZoom={false}\n cursor=\"default\"\n onLoad={e => {\n map.current = e.target as MapboxGLMap;\n\n map.current.on(\"error\", onError);\n\n setLoaded(true);\n }}\n >\n {children}\n </MapGL>\n {upperSiblings}\n </MapWrapper>\n );\n};\n","import React, { FC, useRef, useState } from \"react\";\nimport { Map as MapboxGLMap } from \"mapbox-gl\";\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\n\nimport { MapContext } from \"./MapContext\";\n\nimport { MapProviderProps } from \"./types\";\n\nexport const MapProvider: FC<MapProviderProps> = ({ basemapItems, defaultBasemap, children }) => {\n const map = useRef<MapboxGLMap | undefined>();\n const draw = useRef<MapboxDraw | undefined>();\n const [loaded, setLoaded] = useState<boolean>(false);\n const [basemapName, setBasemapName] = useState(defaultBasemap);\n\n return (\n <MapContext.Provider\n value={{\n map,\n draw,\n loaded,\n setLoaded,\n basemapItems,\n basemapName,\n setBasemapName,\n defaultBasemap,\n }}\n >\n {children}\n </MapContext.Provider>\n );\n};\n","import React, { FC, useCallback } from \"react\";\n\nimport { ServerNotificationsContext } from \"./ServerNotificationsContext\";\n\nimport { useServerNotifications } from \"./hooks/useServerNotifications\";\n\nimport { ServerNotificationsProviderProps } from \"./types\";\n\nexport const ServerNotificationsProvider: FC<ServerNotificationsProviderProps> = ({ url, initialized, children }) => {\n const connection = useServerNotifications(url, initialized);\n\n const addSubscription = useCallback(\n async (payload?: any): Promise<string | null> => {\n if (!connection || connection.state !== \"Connected\" || !payload) {\n return;\n }\n\n try {\n const id = await connection.invoke(\"AddSubscription\", payload);\n\n console.info(\"Подписка добавлена, id:\", id);\n\n return id;\n } catch (err) {\n console.info(\"Ошибка добавления подписки:\", err);\n\n return Promise.resolve(null);\n }\n },\n [connection],\n );\n\n const updateSubscription = useCallback(\n async (id: string | null, payload?: any): Promise<void> => {\n if (!connection || connection.state !== \"Connected\" || !id || !payload) {\n return;\n }\n\n try {\n await connection.invoke(\"UpdateSubscription\", id, payload);\n } catch (err) {\n console.info(`Ошибка обновления подписки ${id}:`, err);\n }\n },\n [connection],\n );\n\n const unsubscribeById = useCallback(\n async (id: string | null): Promise<void> => {\n if (!connection || connection.state !== \"Connected\" || !id) {\n return;\n }\n\n try {\n await connection.invoke(\"Unsubscribe\", [id]);\n } catch (err) {\n console.info(`Ошибка отписки по ${id}:`, err);\n }\n },\n [connection],\n );\n\n return (\n <ServerNotificationsContext.Provider value={{ connection, addSubscription, updateSubscription, unsubscribeById }}>\n {children}\n </ServerNotificationsContext.Provider>\n );\n};\n","import { useEffect, useRef, useState } from \"react\";\nimport { HubConnection, HubConnectionBuilder, LogLevel } from \"@microsoft/signalr\";\n\nexport const useServerNotifications = (url: string, initialized: boolean): HubConnection | null => {\n const hubConnection = useRef<HubConnection | null>(null);\n const [connection, setConnection] = useState<HubConnection | null>(null);\n\n useEffect(() => {\n if (!initialized) {\n return;\n }\n\n hubConnection.current = new HubConnectionBuilder()\n .withUrl(url, {\n withCredentials: true,\n })\n .configureLogging(LogLevel.Information)\n .build();\n\n hubConnection.current\n .start()\n .then(() => console.info(\"Серверные нотификации подключены\"))\n .catch(err => console.info(\"Ошибка:\", err))\n .finally(() => setConnection(hubConnection.current));\n }, [initialized]); // eslint-disable-line\n\n useEffect(() => {\n if (!connection || connection.state !== \"Connected\") {\n return;\n }\n\n connection\n .invoke(\"SubscribeNotifications\", [])\n .then(() => console.info(\"Подписка `SubscribeNotifications` оформлена\"))\n .catch(err => console.info(\"Ошибка подписки `SubscribeNotifications`:\", err));\n }, [connection]);\n\n return connection;\n};\n","export const isNumeric = (number: string | number): boolean =>\n !isNaN(parseFloat(number as string)) && isFinite(number as number);\n","export function isObject<T>(value: T | object): value is object {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import { isEmpty } from \"lodash\";\nimport { ExpressionSpecification } from \"mapbox-gl\";\n\nimport { findAttributeInExpression } from \"./findAttributeInExpression\";\n\nimport { ClientStyle } from \"../../types\";\n\nexport const parseClientStyle = (style?: ClientStyle): string[] => {\n if (!style) {\n return [];\n }\n\n return style?.items?.reduce((acc: string[], curr) => {\n if (!curr.paint || isEmpty(curr.paint)) {\n return acc;\n }\n\n return Object.entries(curr.paint)?.reduce((paintAcc: string[], [, value]) => {\n if (!Array.isArray(value)) {\n return paintAcc;\n }\n\n return [...new Set([...paintAcc, ...findAttributeInExpression(value as ExpressionSpecification)])];\n }, []);\n }, []);\n};\n","import { useMemo } from \"react\";\n\nimport { debounce } from \"../utils\";\n\nexport const useDebouncedCallback = <CallbackFn extends () => void>(interval: number): ((cb: CallbackFn) => void) => {\n return useMemo(\n () =>\n debounce((cb: CallbackFn) => {\n cb();\n }, interval),\n [interval],\n );\n};\n","import { useCallback } from \"react\";\nimport { VectorSourceImpl } from \"mapbox-gl\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useRedrawLayer = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (layerName: string) => {\n const layerTileSource: VectorSourceImpl = map.current.getSource(layerName);\n\n layerTileSource.setTiles(layerTileSource.tiles);\n },\n [map],\n );\n};\n","import { useContext } from \"react\";\n\nimport { ServerNotificationsContext } from \"../../contexts\";\n\nexport const useServerNotificationsContext = () => {\n return useContext(ServerNotificationsContext);\n};\n","import { useCallback, useState } from \"react\";\n\nexport const useToggle = (initial?: boolean): [boolean, VoidFunction, (value: boolean) => void] => {\n const [state, setState] = useState(initial !== undefined ? initial : false);\n\n const toggle = useCallback(() => setState(!state), [state]);\n\n return [state, toggle, setState];\n};\n","import { useEffect, useMemo } from \"react\";\n\nimport { debounce } from \"../utils\";\n\nconst DEBOUNCE_DELAY = 144;\n\nexport const useWindowResize = (callback?: (...args: any) => any, delay?: number) => {\n const debounceCallback = useMemo(() => {\n return callback ? debounce(callback, delay || DEBOUNCE_DELAY) : undefined;\n }, [callback, delay]);\n\n useEffect(() => {\n debounceCallback && window.addEventListener(\"resize\", debounceCallback);\n\n return () => debounceCallback && window.removeEventListener(\"resize\", debounceCallback);\n }, [debounceCallback]);\n};\n","import { useCallback } from \"react\";\nimport { bbox } from \"@turf/turf\";\nimport { FeatureDc } from \"@evergis/api\";\n\nimport { useMapContext } from \"./useMapContext\";\nimport { convertSpToTurfFeature } from \"../../core\";\n\nexport const useZoomToFeatures = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (features?: FeatureDc[], padding?: number) => {\n if (!features) {\n return;\n }\n\n const currentFeatureCenter = bbox({\n type: \"FeatureCollection\",\n features: features.map(feature => convertSpToTurfFeature(feature.geometry)),\n });\n\n map.current.fitBounds(currentFeatureCenter as [number, number, number, number], { padding: padding ?? 150 });\n },\n [map],\n );\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useZoomToPoint = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (options, callback?: VoidFunction) => {\n if (map.current) {\n if (callback) {\n map.current.once(\"moveend\", () => {\n callback();\n });\n }\n\n map.current.flyTo(options);\n } else {\n callback?.();\n }\n },\n [map],\n );\n};\n"],"names":["ErrorBoundary","hasError","Component","error","console","children","errorContents","this","props","state","React","DEFAULT_CIRCLE_PAINT","DEFAULT_FILL_PAINT","DEFAULT_FILL_EXTRUSION_PAINT","DEFAULT_LINE_PAINT","RasterLayer","layer","tileUrl","visible","beforeId","Source","id","name","type","tiles","MapboxLayer","layout","visibility","findAttributeInExpression","expression","Array","isArray","length","reduce","acc","curr","Set","getActualExtrusionHeight","paint","convertSpToTurfFeature","geometry","GeometryType","Point","point","coordinates","Multipoint","multiPoint","Polyline","multiLineString","Polygon","Envelope","polygon","VectorLayer","getLayerTempStyle","clientStyle","configuration","_layer$configuration","idAttribute","geometryType","layerDefinition","renderLayerByGeometryType","useCallback","_getLayerTempStyle","_getLayerTempStyle2","key","_getLayerTempStyle3","settings","fill","showBottomSurface","Boolean","_getLayerTempStyle5","_getLayerTempStyle6","_getLayerTempStyle7","_getLayerTempStyle9","_getLayerTempStyle10","minzoom","maxzoom","_getLayerTempStyle11","_getLayerTempStyle12","_getLayerTempStyle13","_getLayerTempStyle14","renderClientStyle","items","map","mockItem","prefixSuffix","getClientStyleItemPrefixSuffix","isExtrusionItem","isPolygonPart","some","item","fillExtrusionPaint","_clientStyle$items","find","_getLayerTempStyle15","undefined","currentSettings","_getLayerTempStyle16","processedExtrusionHeight","hasExtrusion","_currentSettings$fill2","_getLayerTempStyle17","_getLayerTempStyle18","promoteId","MapWrapper","styled","div","$zIndex","customModes","MapboxDraw","modes","static","StaticMode","setActionableState","geojson","display","MapContext","createContext","BaseMapTheme","ServerNotificationsContext","useMapContext","useContext","draw","displayControlsDefault","styles","filter","defaultMode","controls","trash","NO_CONTENT_VALUE","DateFormat","stringDateParsers","parseJSON","parseISO","rawDate","Date","getDate","parser","date","isValid","toDate","parsedDate","debounce","callback","delay","timeId","args","window","clearTimeout","setTimeout","layerType","onMount","useEffect","zIndex","lowerSiblings","upperSiblings","onError","rest","setLoaded","MapGL","renderWorldCopies","antialias","doubleClickZoom","cursor","onLoad","e","current","target","on","basemapItems","defaultBasemap","useRef","loaded","useState","basemapName","setBasemapName","Provider","value","url","initialized","connection","hubConnection","setConnection","HubConnectionBuilder","withUrl","withCredentials","configureLogging","LogLevel","Information","build","start","then","info","catch","err","finally","invoke","useServerNotifications","addSubscription","async","payload","Promise","resolve","updateSubscription","unsubscribeById","dateFormat","ClientDefaultFormat","defaultValue","dateValue","format","toString","number","isNaN","parseFloat","isFinite","style","_style$items","isEmpty","Object","entries","_Object$entries","paintAcc","interval","useMemo","cb","triggerDeps","drawContext","addControl","hasControl","removeControl","layerName","layerTileSource","getSource","setTiles","initial","setState","toggle","debounceCallback","addEventListener","removeEventListener","features","padding","currentFeatureCenter","bbox","feature","fitBounds","options","once","flyTo"],"mappings":"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"}
package/dist/react.esm.js CHANGED
@@ -413,7 +413,7 @@ const VectorLayer = (_ref) => {
413
413
  default:
414
414
  return null;
415
415
  }
416
- }, [geometryType, layer, beforeId, visible, getLayerTempStyle == null ? void 0 : getLayerTempStyle(layer.name, "circle"), getLayerTempStyle == null ? void 0 : getLayerTempStyle(layer.name, "fill"), getLayerTempStyle == null ? void 0 : getLayerTempStyle(layer.name, "fill-extrusion"), getLayerTempStyle == null ? void 0 : getLayerTempStyle(layer.name, "line")]);
416
+ }, [geometryType, layer, beforeId, visible, getLayerTempStyle]);
417
417
  const renderClientStyle = useCallback(() => {
418
418
  return clientStyle.items.map(mockItem => {
419
419
  var _clientStyle$items, _getLayerTempStyle15, _getLayerTempStyle16, _currentSettings$fill, _currentSettings$fill2, _clientStyle$minzoom, _clientStyle$maxzoom, _getLayerTempStyle17, _getLayerTempStyle18;
@@ -442,7 +442,7 @@ const VectorLayer = (_ref) => {
442
442
  paint: _extends({}, mockItem.paint, getLayerTempStyle == null || (_getLayerTempStyle18 = getLayerTempStyle(layer.name, mockItem.type)) == null ? void 0 : _getLayerTempStyle18.paint)
443
443
  });
444
444
  });
445
- }, [beforeId, clientStyle, geometryType, layer.name, visible, getLayerTempStyle == null ? void 0 : getLayerTempStyle(layer.name, "circle"), getLayerTempStyle == null ? void 0 : getLayerTempStyle(layer.name, "fill"), getLayerTempStyle == null ? void 0 : getLayerTempStyle(layer.name, "fill-extrusion"), getLayerTempStyle == null ? void 0 : getLayerTempStyle(layer.name, "line")]);
445
+ }, [beforeId, clientStyle, geometryType, layer.name, visible, getLayerTempStyle]);
446
446
 
447
447
  if (!layer) {
448
448
  return null;
@@ -463,6 +463,7 @@ const Layer = (_ref) => {
463
463
  visible,
464
464
  beforeId,
465
465
  tileUrl,
466
+ getLayerTempStyle,
466
467
  onMount = () => null
467
468
  } = _ref;
468
469
  useEffect(onMount, []); // eslint-disable-line
@@ -484,7 +485,8 @@ const Layer = (_ref) => {
484
485
  layer: layer,
485
486
  tileUrl: tileUrl,
486
487
  visible: visible,
487
- beforeId: beforeId
488
+ beforeId: beforeId,
489
+ getLayerTempStyle: getLayerTempStyle
488
490
  });
489
491
  };
490
492
 
@@ -1 +1 @@
1
- {"version":3,"file":"react.esm.js","sources":["../src/components/ErrorBoundary/index.tsx","../src/components/Layer/constants.ts","../src/components/Layer/RasterLayer.tsx","../src/components/Layer/utils/getClientStyleItemPrefixSuffix.ts","../src/core/classification/findAttributeInExpression.ts","../src/core/classification/getActualExtrusionHeight.ts","../src/core/classification/parseClientStyle.ts","../src/core/feature/convertSpToTurfFeature.ts","../src/components/Layer/VectorLayer.tsx","../src/components/Layer/Layer.tsx","../src/components/Map/styled.ts","../src/hooks/map/useMapDraw/customModes.ts","../src/hooks/map/useMapDraw/customStyles.ts","../src/contexts/MapContext/MapContext.ts","../src/contexts/MapContext/MapProvider.tsx","../src/contexts/MapContext/types.ts","../src/contexts/ServerNotificationsContext/ServerNotificationsContext.ts","../src/contexts/ServerNotificationsContext/hooks/useServerNotifications.ts","../src/contexts/ServerNotificationsContext/ServerNotificationsProvider.tsx","../src/hooks/map/useMapContext.ts","../src/hooks/map/useMapDraw/index.ts","../src/hooks/map/useRedrawLayer.ts","../src/hooks/map/useZoomToFeatures.ts","../src/hooks/map/useZoomToPoint.ts","../src/hooks/serverNotifications/useServerNotificationsContext.ts","../src/utils/date.ts","../src/utils/debounce.ts","../src/utils/isNumeric.ts","../src/utils/isObject.ts","../src/hooks/useDebouncedCallback.ts","../src/hooks/useToggle.ts","../src/hooks/useWindowResize.ts","../src/components/Map/Map.tsx"],"sourcesContent":["import React, { Component } from \"react\";\n\nimport { ErrorBoundaryProps, ErrorBoundaryState } from \"./types\";\n\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n public state = { hasError: false };\n\n public static getDerivedStateFromError() {\n return { hasError: true };\n }\n\n public componentDidCatch(error: Error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n\n public render() {\n const { children, errorContents } = this.props;\n const { hasError } = this.state;\n\n return !hasError ? (\n <>{children}</>\n ) : (\n <>{errorContents}</>\n );\n }\n}\n","import { CirclePaint, FillPaint, FillExtrusionPaint, LinePaint } from \"mapbox-gl\";\n\nconst DEFAULT_COLOR = \"#00ffff\";\nconst DEFAULT_OPACITY = 0.5;\nconst DEFAULT_SIZE = 4;\nconst DEFAULT_LINE_WIDTH = 1;\n\nexport const DEFAULT_CIRCLE_PAINT = {\n \"circle-radius\": DEFAULT_SIZE,\n \"circle-color\": DEFAULT_COLOR,\n \"circle-opacity\": DEFAULT_OPACITY,\n \"circle-stroke-width\": 0,\n \"circle-stroke-color\": DEFAULT_COLOR,\n \"circle-stroke-opacity\": DEFAULT_OPACITY,\n} as CirclePaint;\n\nexport const DEFAULT_FILL_PAINT = {\n \"fill-color\": DEFAULT_COLOR,\n \"fill-opacity\": DEFAULT_OPACITY,\n} as FillPaint;\n\nexport const DEFAULT_FILL_EXTRUSION_PAINT = {\n \"fill-extrusion-base\": 0,\n \"fill-extrusion-vertical-gradient\": true,\n \"fill-extrusion-color\": DEFAULT_COLOR,\n \"fill-extrusion-opacity\": DEFAULT_OPACITY,\n \"fill-extrusion-height\": 0,\n} as FillExtrusionPaint;\n\nexport const DEFAULT_LINE_PAINT = {\n \"line-color\": DEFAULT_COLOR,\n \"line-width\": DEFAULT_LINE_WIDTH,\n \"line-opacity\": DEFAULT_OPACITY,\n} as LinePaint;\n","import React, { FC } from \"react\";\nimport { Source, Layer as MapboxLayer } from \"react-map-gl/mapbox\";\n\nimport { LayerProps } from \"./types\";\n\nexport const RasterLayer: FC<Omit<LayerProps, \"layerType\" | \"onMount\">> = ({\n layer,\n tileUrl,\n visible,\n beforeId,\n}) => {\n if (!layer) {\n return null;\n }\n\n return (\n <Source id={layer.name} type=\"raster\" tiles={[tileUrl]}>\n <MapboxLayer\n id={layer.name}\n type=\"raster\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{ visibility: visible ? \"visible\" : \"none\" }}\n />\n </Source>\n );\n};\n","import { GeometryType } from \"@evergis/api\";\n\nimport { ClientStyleItem } from \"../../../types\";\n\nexport const getClientStyleItemPrefixSuffix = (\n geometryType: GeometryType,\n type: ClientStyleItem[\"type\"],\n): [string, string] => {\n switch (geometryType) {\n case GeometryType.Point:\n return [\"point-layer-\", \"\"];\n case GeometryType.Polyline:\n return [\"polyline-layer-\", \"\"];\n case GeometryType.Polygon:\n switch (type) {\n case \"line\":\n return [\"polygon-stroke-layer-\", \"-stroke\"];\n case \"fill-extrusion\":\n return [\"polygon-extrusion-layer-\", \"-extrusion\"];\n default:\n return [\"polygon-layer-\", \"\"];\n }\n default:\n return [\"\", \"\"];\n }\n};\n","import { ExpressionSpecification } from \"mapbox-gl\";\n\nexport const findAttributeInExpression = (expression: ExpressionSpecification): string[] => {\n if (Array.isArray(expression) && expression.length === 2 && expression[0] === \"get\") {\n return [expression[1]];\n }\n\n return expression.reduce((acc: string[], curr) => {\n if (!Array.isArray(curr)) {\n return acc;\n }\n\n if (curr[0] === \"get\") {\n return [...new Set([...acc, curr[1]])];\n }\n\n return [...new Set([...acc, ...findAttributeInExpression(curr as ExpressionSpecification)])];\n }, []);\n};\n","import { AnyPaint } from \"mapbox-gl\";\n\nexport const getActualExtrusionHeight = (paint: AnyPaint) => {\n return Array.isArray(paint?.[\"fill-extrusion-height\"]) && paint?.[\"fill-extrusion-height\"][0] === \"+\"\n ? paint?.[\"fill-extrusion-height\"][1]\n : paint?.[\"fill-extrusion-height\"];\n};\n","import { isEmpty } from \"lodash\";\nimport { ExpressionSpecification } from \"mapbox-gl\";\n\nimport { findAttributeInExpression } from \"./findAttributeInExpression\";\n\nimport { ClientStyle } from \"../../types\";\n\nexport const parseClientStyle = (style?: ClientStyle): string[] => {\n if (!style) {\n return [];\n }\n\n return style?.items?.reduce((acc: string[], curr) => {\n if (!curr.paint || isEmpty(curr.paint)) {\n return acc;\n }\n\n return Object.entries(curr.paint)?.reduce((paintAcc: string[], [, value]) => {\n if (!Array.isArray(value)) {\n return paintAcc;\n }\n\n return [...new Set([...paintAcc, ...findAttributeInExpression(value as ExpressionSpecification)])];\n }, []);\n }, []);\n};\n","import { FeatureDc, GeometryType, PositionDc } from \"@evergis/api\";\nimport { multiLineString, multiPoint, point, polygon } from \"@turf/turf\";\nimport { Feature } from \"geojson\";\n\nexport const convertSpToTurfFeature = (geometry?: FeatureDc[\"geometry\"]): Feature<any> | undefined => {\n if (!geometry) {\n return;\n }\n\n switch (geometry.type) {\n case GeometryType.Point:\n return point(geometry.coordinates as PositionDc);\n case GeometryType.Multipoint:\n return multiPoint(geometry.coordinates as PositionDc[]);\n case GeometryType.Polyline:\n return multiLineString(geometry.coordinates as PositionDc[][]);\n case GeometryType.Polygon:\n case GeometryType.Envelope:\n return polygon(geometry.coordinates as PositionDc[][]);\n default:\n }\n};\n","import React, { FC, useCallback } from \"react\";\nimport { Layer as MapboxLayer, Source } from \"react-map-gl/mapbox\";\nimport { FeatureLayerServiceInfoDc, GeometryType, QueryLayerServiceConfigurationDc } from \"@evergis/api\";\nimport { AnyPaint, CirclePaint, FillExtrusionPaint, FillPaint, LinePaint } from \"mapbox-gl\";\n\nimport {\n DEFAULT_CIRCLE_PAINT,\n DEFAULT_FILL_EXTRUSION_PAINT,\n DEFAULT_FILL_PAINT,\n DEFAULT_LINE_PAINT,\n} from \"./constants\";\n\nimport { getClientStyleItemPrefixSuffix } from \"./utils/getClientStyleItemPrefixSuffix\";\nimport { getActualExtrusionHeight } from \"../../core\";\n\nimport { LayerProps } from \"./types\";\nimport { ClientStyle } from \"../../types\";\n\nexport const VectorLayer: FC<Omit<LayerProps, \"layerType\" | \"onMount\">> = ({\n layer,\n tileUrl,\n visible,\n beforeId,\n getLayerTempStyle,\n}) => {\n const clientStyle = (layer?.configuration as QueryLayerServiceConfigurationDc)?.clientStyle as ClientStyle;\n const { idAttribute, geometryType } = (layer as FeatureLayerServiceInfoDc).layerDefinition || {};\n\n const renderLayerByGeometryType = useCallback(() => {\n const visibility = visible ? \"visible\" : \"none\";\n\n switch (geometryType) {\n case GeometryType.Point:\n return (\n <MapboxLayer\n id={layer.name}\n type=\"circle\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"circle\")?.layout,\n visibility,\n }}\n paint={{\n ...DEFAULT_CIRCLE_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"circle\")?.paint as CirclePaint),\n }}\n />\n );\n case GeometryType.Polygon:\n return [\n <MapboxLayer\n key={`polygon-layer-${layer.name}`}\n id={layer.name}\n type=\"fill\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"fill\")?.layout,\n visibility:\n visible &&\n getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.settings?.fill?.showBottomSurface !== false &&\n Boolean(\n getActualExtrusionHeight({\n ...DEFAULT_FILL_EXTRUSION_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint as FillExtrusionPaint),\n }),\n )\n ? \"visible\"\n : \"none\",\n }}\n paint={{\n ...DEFAULT_FILL_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill\")?.paint as FillPaint),\n }}\n />,\n <MapboxLayer\n key={`polygon-stroke-layer-${layer.name}`}\n id={`${layer.name}-stroke`}\n type=\"line\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"line\")?.layout,\n visibility:\n visible &&\n getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.settings?.fill?.showBottomSurface !== false &&\n Boolean(\n getActualExtrusionHeight({\n ...DEFAULT_FILL_EXTRUSION_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint as FillExtrusionPaint),\n }),\n )\n ? \"visible\"\n : \"none\",\n }}\n paint={{\n ...DEFAULT_LINE_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"line\")?.paint as LinePaint),\n }}\n />,\n <MapboxLayer\n key={`polygon-extrusion-layer-${layer.name}`}\n id={`${layer.name}-extrusion`}\n type=\"fill-extrusion\"\n source-layer=\"default\"\n beforeId={beforeId}\n minzoom={0}\n maxzoom={23}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.layout,\n visibility,\n }}\n paint={{\n ...DEFAULT_FILL_EXTRUSION_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint as FillExtrusionPaint),\n }}\n />,\n ];\n case GeometryType.Polyline:\n return (\n <MapboxLayer\n id={layer.name}\n type=\"line\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"line\")?.layout,\n visibility,\n }}\n paint={{\n ...DEFAULT_LINE_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"line\")?.paint as LinePaint),\n }}\n />\n );\n default:\n return null;\n }\n }, [\n geometryType,\n layer,\n beforeId,\n visible,\n getLayerTempStyle?.(layer.name, \"circle\"),\n getLayerTempStyle?.(layer.name, \"fill\"),\n getLayerTempStyle?.(layer.name, \"fill-extrusion\"),\n getLayerTempStyle?.(layer.name, \"line\"),\n ]);\n\n const renderClientStyle = useCallback(() => {\n return clientStyle.items.map(mockItem => {\n const prefixSuffix = getClientStyleItemPrefixSuffix(geometryType, mockItem.type);\n const isExtrusionItem = mockItem.type === \"fill-extrusion\";\n const isPolygonPart =\n clientStyle.items.some(item => item.type === \"fill-extrusion\") &&\n (mockItem.type === \"fill\" || mockItem.type === \"line\");\n const fillExtrusionPaint =\n isPolygonPart || isExtrusionItem\n ? {\n ...clientStyle.items?.find(item => item.type === \"fill-extrusion\")?.paint,\n ...getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint,\n }\n : undefined;\n const currentSettings = {\n ...clientStyle?.settings,\n ...getLayerTempStyle?.(layer.name, mockItem.type)?.settings,\n };\n const processedExtrusionHeight = getActualExtrusionHeight(fillExtrusionPaint);\n const hasExtrusion = Boolean(processedExtrusionHeight);\n const visibility =\n visible &&\n ((isExtrusionItem && hasExtrusion) ||\n (!isPolygonPart && !isExtrusionItem) ||\n (isPolygonPart && (!hasExtrusion || (currentSettings?.fill?.showBottomSurface ?? true))))\n ? \"visible\"\n : \"none\";\n\n return (\n <MapboxLayer\n key={`${prefixSuffix[0]}${layer.name}`}\n id={`${layer.name}${prefixSuffix[1]}`}\n type={mockItem.type}\n source-layer=\"default\"\n beforeId={beforeId}\n minzoom={clientStyle?.minzoom ?? 0}\n maxzoom={clientStyle?.maxzoom ?? 23}\n layout={{\n ...mockItem.layout,\n ...getLayerTempStyle?.(layer.name, mockItem.type)?.layout,\n visibility,\n }}\n paint={\n {\n ...mockItem.paint,\n ...getLayerTempStyle?.(layer.name, mockItem.type)?.paint,\n } as AnyPaint\n }\n />\n );\n });\n }, [\n beforeId,\n clientStyle,\n geometryType,\n layer.name,\n visible,\n getLayerTempStyle?.(layer.name, \"circle\"),\n getLayerTempStyle?.(layer.name, \"fill\"),\n getLayerTempStyle?.(layer.name, \"fill-extrusion\"),\n getLayerTempStyle?.(layer.name, \"line\"),\n ]);\n\n if (!layer) {\n return null;\n }\n\n return (\n <Source\n promoteId={idAttribute}\n id={layer.name}\n type=\"vector\"\n tiles={[tileUrl]}\n >\n {clientStyle?.items ? renderClientStyle() : renderLayerByGeometryType()}\n </Source>\n );\n};\n","import React, { FC, useEffect } from \"react\";\n\nimport { RasterLayer } from \"./RasterLayer\";\nimport { VectorLayer } from \"./VectorLayer\";\n\nimport { LayerProps } from \"./types\";\n\nexport const Layer: FC<LayerProps> = ({\n layer,\n layerType,\n visible,\n beforeId,\n tileUrl,\n onMount = () => null,\n}) => {\n useEffect(onMount, []); // eslint-disable-line\n\n if (!layer) {\n return null;\n }\n\n if (layerType === \"RasterTileLayer\") {\n return (\n <RasterLayer\n layer={layer}\n tileUrl={tileUrl}\n visible={visible}\n beforeId={beforeId}\n />\n );\n }\n\n return (\n <VectorLayer\n layer={layer}\n tileUrl={tileUrl}\n visible={visible}\n beforeId={beforeId}\n />\n );\n};\n","import { CSSProperties } from \"react\";\nimport styled from \"styled-components\";\n\nexport const MapWrapper = styled.div<{ $zIndex?: CSSProperties[\"zIndex\"] }>`\n position: relative;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n z-index: ${({ $zIndex }) => $zIndex ?? 1};\n\n .mapbox-gl-draw_trash {\n display: none;\n }\n\n .mapboxgl-ctrl-logo {\n display: none;\n }\n\n .mapboxgl-ctrl.mapboxgl-ctrl-attrib {\n display: none;\n }\n\n .mapboxgl-ctrl-geocoder.mapboxgl-ctrl {\n width: 350px;\n }\n`;\n","import MapboxDraw, { DrawCustomMode } from \"@mapbox/mapbox-gl-draw\";\n\ninterface ExtendedMapboxDrawModes extends MapboxDraw.Modes {\n [key: string]: DrawCustomMode;\n static: DrawCustomMode;\n}\n\nexport const customModes = MapboxDraw.modes as ExtendedMapboxDrawModes;\n\nconst StaticMode = {} as DrawCustomMode;\n\nStaticMode.onSetup = function () {\n this.setActionableState(undefined);\n\n return {};\n};\n\nStaticMode.toDisplayFeatures = function (state, geojson, display) {\n display(geojson);\n};\n\ncustomModes.static = StaticMode;\n","export const customStyles = [\n {\n id: \"gl-draw-point\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"]],\n paint: {\n \"circle-radius\": 5,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"highlight-inactive-points\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"feature\"], [\"==\", \"active\", \"false\"]],\n paint: {\n \"circle-radius\": 5,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"highlight-active-points\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"feature\"], [\"==\", \"active\", \"true\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#fbb03b\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 1,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"gl-draw-polygon-fill-static\",\n type: \"fill\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n paint: {\n \"fill-color\": \"#D20C0C\",\n \"fill-outline-color\": \"#D20C0C\",\n \"fill-opacity\": 0.1,\n },\n },\n {\n id: \"gl-draw-line\",\n type: \"line\",\n filter: [\"all\", [\"==\", \"$type\", \"LineString\"]],\n layout: {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n },\n paint: {\n \"line-color\": \"#D20C0C\",\n \"line-dasharray\": [0.2, 2],\n \"line-width\": 2,\n },\n },\n {\n id: \"gl-draw-polygon-fill\",\n type: \"fill\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n paint: {\n \"fill-color\": \"#D20C0C\",\n \"fill-outline-color\": \"#D20C0C\",\n \"fill-opacity\": 0.1,\n },\n },\n {\n id: \"gl-draw-polygon-midpoint\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"midpoint\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#fbb03b\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 1,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"gl-draw-polygon-stroke-active\",\n type: \"line\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n layout: {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n },\n paint: {\n \"line-color\": \"#D20C0C\",\n \"line-dasharray\": [0.2, 2],\n \"line-width\": 2,\n },\n },\n {\n id: \"gl-draw-polygon-and-line-vertex-active\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"meta\", \"vertex\"], [\"==\", \"$type\", \"Point\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n];\n","import { createContext } from \"react\";\n\nimport { MapContextProps } from \"./types\";\n\nexport const MapContext = createContext<MapContextProps>({});\n","import React, { FC, useRef, useState } from \"react\";\nimport { Map as MapboxGLMap } from \"mapbox-gl\";\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\n\nimport { MapContext } from \"./MapContext\";\n\nimport { MapProviderProps } from \"./types\";\n\nexport const MapProvider: FC<MapProviderProps> = ({ basemapItems, defaultBasemap, children }) => {\n const map = useRef<MapboxGLMap | undefined>();\n const draw = useRef<MapboxDraw | undefined>();\n const [loaded, setLoaded] = useState<boolean>(false);\n const [basemapName, setBasemapName] = useState(defaultBasemap);\n\n return (\n <MapContext.Provider\n value={{\n map,\n draw,\n loaded,\n setLoaded,\n basemapItems,\n basemapName,\n setBasemapName,\n defaultBasemap,\n }}\n >\n {children}\n </MapContext.Provider>\n );\n};\n","import { Dispatch, MutableRefObject, PropsWithChildren, SetStateAction } from \"react\";\nimport { Map as MapboxGLMap } from \"mapbox-gl\";\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\n\nexport enum BaseMapTheme {\n Light = \"light\",\n Dark = \"dark\",\n}\n\nexport interface BaseMapItem {\n name: string;\n source: string;\n preview?: string;\n imgSrc?: string;\n title: string;\n theme?: BaseMapTheme;\n opacity?: number;\n color?: string;\n}\n\nexport interface MapContextProps {\n map?: MutableRefObject<MapboxGLMap>;\n draw?: MutableRefObject<Omit<MapboxDraw, \"getDefaultPosition\">>;\n loaded?: boolean;\n setLoaded?: Dispatch<SetStateAction<boolean>>;\n basemapItems?: BaseMapItem[];\n basemapName?: string;\n setBasemapName?: Dispatch<SetStateAction<string>>;\n defaultBasemap?: string;\n}\n\nexport interface MapProviderProps extends PropsWithChildren {\n basemapItems: BaseMapItem[];\n defaultBasemap: string;\n}\n","import { createContext } from \"react\";\n\nimport { ServerNotificationsContextProps } from \"./types\";\n\nexport const ServerNotificationsContext = createContext<ServerNotificationsContextProps>({});\n","import { useEffect, useRef, useState } from \"react\";\nimport { HubConnection, HubConnectionBuilder, LogLevel } from \"@microsoft/signalr\";\n\nexport const useServerNotifications = (url: string, initialized: boolean): HubConnection | null => {\n const hubConnection = useRef<HubConnection | null>(null);\n const [connection, setConnection] = useState<HubConnection | null>(null);\n\n useEffect(() => {\n if (!initialized) {\n return;\n }\n\n hubConnection.current = new HubConnectionBuilder()\n .withUrl(url, {\n withCredentials: true,\n })\n .configureLogging(LogLevel.Information)\n .build();\n\n hubConnection.current\n .start()\n .then(() => console.info(\"Серверные нотификации подключены\"))\n .catch(err => console.info(\"Ошибка:\", err))\n .finally(() => setConnection(hubConnection.current));\n }, [initialized]); // eslint-disable-line\n\n useEffect(() => {\n if (!connection || connection.state !== \"Connected\") {\n return;\n }\n\n connection\n .invoke(\"SubscribeNotifications\", [])\n .then(() => console.info(\"Подписка `SubscribeNotifications` оформлена\"))\n .catch(err => console.info(\"Ошибка подписки `SubscribeNotifications`:\", err));\n }, [connection]);\n\n return connection;\n};\n","import React, { FC, useCallback } from \"react\";\n\nimport { ServerNotificationsContext } from \"./ServerNotificationsContext\";\n\nimport { useServerNotifications } from \"./hooks/useServerNotifications\";\n\nimport { ServerNotificationsProviderProps } from \"./types\";\n\nexport const ServerNotificationsProvider: FC<ServerNotificationsProviderProps> = ({ url, initialized, children }) => {\n const connection = useServerNotifications(url, initialized);\n\n const addSubscription = useCallback(\n async (payload?: any): Promise<string | null> => {\n if (!connection || connection.state !== \"Connected\" || !payload) {\n return;\n }\n\n try {\n const id = await connection.invoke(\"AddSubscription\", payload);\n\n console.info(\"Подписка добавлена, id:\", id);\n\n return id;\n } catch (err) {\n console.info(\"Ошибка добавления подписки:\", err);\n\n return Promise.resolve(null);\n }\n },\n [connection],\n );\n\n const updateSubscription = useCallback(\n async (id: string | null, payload?: any): Promise<void> => {\n if (!connection || connection.state !== \"Connected\" || !id || !payload) {\n return;\n }\n\n try {\n await connection.invoke(\"UpdateSubscription\", id, payload);\n } catch (err) {\n console.info(`Ошибка обновления подписки ${id}:`, err);\n }\n },\n [connection],\n );\n\n const unsubscribeById = useCallback(\n async (id: string | null): Promise<void> => {\n if (!connection || connection.state !== \"Connected\" || !id) {\n return;\n }\n\n try {\n await connection.invoke(\"Unsubscribe\", [id]);\n } catch (err) {\n console.info(`Ошибка отписки по ${id}:`, err);\n }\n },\n [connection],\n );\n\n return (\n <ServerNotificationsContext.Provider value={{ connection, addSubscription, updateSubscription, unsubscribeById }}>\n {children}\n </ServerNotificationsContext.Provider>\n );\n};\n","import { useContext } from \"react\";\n\nimport { MapContext } from \"../../contexts\";\n\nexport const useMapContext = () => {\n return useContext(MapContext);\n};\n","import { useEffect } from \"react\";\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\n\nimport { customModes } from \"./customModes\";\nimport { customStyles } from \"./customStyles\";\n\nimport { useMapContext } from \"../useMapContext\";\n\nconst draw = new MapboxDraw({\n displayControlsDefault: false,\n styles: customStyles,\n modes: customModes,\n defaultMode: \"draw_point\",\n controls: {\n trash: true,\n },\n});\n\nexport const useMapDraw = (triggerDeps: Array<unknown> = []) => {\n const { map, draw: drawContext, loaded, basemapName } = useMapContext();\n\n useEffect(() => {\n if (!loaded || !map.current) {\n return;\n }\n\n drawContext.current = draw;\n map.current.addControl(drawContext.current);\n }, [loaded]); // eslint-disable-line\n\n useEffect(() => {\n if (map.current && map.current.hasControl(drawContext.current)) {\n map.current.removeControl(drawContext.current);\n map.current.addControl(drawContext.current);\n }\n }, [basemapName, ...triggerDeps]); // eslint-disable-line\n};\n","import { useCallback } from \"react\";\nimport { VectorSourceImpl } from \"mapbox-gl\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useRedrawLayer = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (layerName: string) => {\n const layerTileSource: VectorSourceImpl = map.current.getSource(layerName);\n\n layerTileSource.setTiles(layerTileSource.tiles);\n },\n [map],\n );\n};\n","import { useCallback } from \"react\";\nimport { bbox } from \"@turf/turf\";\nimport { FeatureDc } from \"@evergis/api\";\n\nimport { useMapContext } from \"./useMapContext\";\nimport { convertSpToTurfFeature } from \"../../core\";\n\nexport const useZoomToFeatures = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (features?: FeatureDc[], padding?: number) => {\n if (!features) {\n return;\n }\n\n const currentFeatureCenter = bbox({\n type: \"FeatureCollection\",\n features: features.map(feature => convertSpToTurfFeature(feature.geometry)),\n });\n\n map.current.fitBounds(currentFeatureCenter as [number, number, number, number], { padding: padding ?? 150 });\n },\n [map],\n );\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useZoomToPoint = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (options, callback?: VoidFunction) => {\n if (map.current) {\n if (callback) {\n map.current.once(\"moveend\", () => {\n callback();\n });\n }\n\n map.current.flyTo(options);\n } else {\n callback?.();\n }\n },\n [map],\n );\n};\n","import { useContext } from \"react\";\n\nimport { ServerNotificationsContext } from \"../../contexts\";\n\nexport const useServerNotificationsContext = () => {\n return useContext(ServerNotificationsContext);\n};\n","import { parseJSON, parseISO, isValid, format, toDate } from \"date-fns\";\n\nexport const NO_CONTENT_VALUE = \"—\";\n\nexport type DateType = number | Date;\nexport type RawDateType = string | DateType;\n\nexport enum DateFormat {\n ClientDefaultFormat = \"dd.MM.yyyy HH:mm\",\n DateTime = \"dd.MM.yyyy HH:mm:ss\",\n UTC = \"yyyy-MM-dd'T'HH:mm:ss.sssxxx\",\n AxisTooltip = \"d MMMM yyyy\",\n}\n\ninterface FormatDateOptions {\n dateFormat?: DateFormat;\n defaultValue?: RawDateType;\n}\n\nconst stringDateParsers: ((date: string) => DateType)[] = [parseJSON, parseISO, rawDate => new Date(rawDate)];\n\nexport const getDate = (rawDate?: RawDateType | null): Date | null => {\n if (!rawDate) return null;\n\n if (typeof rawDate === \"string\") {\n for (const parser of stringDateParsers) {\n const date = parser(rawDate);\n\n if (isValid(date)) {\n return toDate(date);\n }\n }\n\n return null;\n }\n\n const parsedDate = toDate(rawDate);\n\n return isValid(parsedDate) ? parsedDate : null;\n};\n\nexport const formatDate = (\n date?: RawDateType,\n { dateFormat = DateFormat.ClientDefaultFormat, defaultValue = NO_CONTENT_VALUE }: FormatDateOptions = {},\n): string => {\n const dateValue = date ? getDate(date) : null;\n\n if (isValid(dateValue)) {\n return format(dateValue as Date, dateFormat);\n }\n\n return defaultValue.toString();\n};\n","export const debounce = (callback: any, delay: number): ((...args) => void) => {\n let timeId: number;\n\n return (...args) => {\n if (timeId) {\n window.clearTimeout(timeId);\n }\n\n timeId = window.setTimeout(() => {\n callback(...args);\n }, delay);\n };\n};\n","export const isNumeric = (number: string | number): boolean =>\n !isNaN(parseFloat(number as string)) && isFinite(number as number);\n","export function isObject<T>(value: T | object): value is object {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import { useMemo } from \"react\";\n\nimport { debounce } from \"../utils\";\n\nexport const useDebouncedCallback = <CallbackFn extends () => void>(interval: number): ((cb: CallbackFn) => void) => {\n return useMemo(\n () =>\n debounce((cb: CallbackFn) => {\n cb();\n }, interval),\n [interval],\n );\n};\n","import { useCallback, useState } from \"react\";\n\nexport const useToggle = (initial?: boolean): [boolean, VoidFunction, (value: boolean) => void] => {\n const [state, setState] = useState(initial !== undefined ? initial : false);\n\n const toggle = useCallback(() => setState(!state), [state]);\n\n return [state, toggle, setState];\n};\n","import { useEffect, useMemo } from \"react\";\n\nimport { debounce } from \"../utils\";\n\nconst DEBOUNCE_DELAY = 144;\n\nexport const useWindowResize = (callback?: (...args: any) => any, delay?: number) => {\n const debounceCallback = useMemo(() => {\n return callback ? debounce(callback, delay || DEBOUNCE_DELAY) : undefined;\n }, [callback, delay]);\n\n useEffect(() => {\n debounceCallback && window.addEventListener(\"resize\", debounceCallback);\n\n return () => debounceCallback && window.removeEventListener(\"resize\", debounceCallback);\n }, [debounceCallback]);\n};\n","import React, { FC } from \"react\";\nimport { default as MapGL } from \"react-map-gl/mapbox\";\nimport { Map as MapboxGLMap } from \"mapbox-gl\";\nimport \"@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css\";\n\nimport { MapWrapper } from \"./styled\";\n\nimport { useMapContext } from \"../../hooks\";\n\nimport { MapProps } from \"./types\";\n\nimport \"mapbox-gl/dist/mapbox-gl.css\";\n\nexport const Map: FC<MapProps> = ({\n zIndex,\n lowerSiblings,\n upperSiblings,\n onError,\n children,\n ...rest\n}) => {\n const { map, setLoaded } = useMapContext();\n\n return (\n <MapWrapper $zIndex={zIndex}>\n {lowerSiblings}\n <MapGL\n {...rest}\n renderWorldCopies\n antialias\n doubleClickZoom={false}\n cursor=\"default\"\n onLoad={e => {\n map.current = e.target as MapboxGLMap;\n\n map.current.on(\"error\", onError);\n\n setLoaded(true);\n }}\n >\n {children}\n </MapGL>\n {upperSiblings}\n </MapWrapper>\n );\n};\n"],"names":["ErrorBoundary","hasError","componentDidCatch","error","console","render","children","errorContents","props","state","React","getDerivedStateFromError","Component","DEFAULT_COLOR","DEFAULT_OPACITY","DEFAULT_SIZE","DEFAULT_LINE_WIDTH","DEFAULT_CIRCLE_PAINT","DEFAULT_FILL_PAINT","DEFAULT_FILL_EXTRUSION_PAINT","DEFAULT_LINE_PAINT","RasterLayer","layer","tileUrl","visible","beforeId","Source","id","name","type","tiles","MapboxLayer","layout","visibility","getClientStyleItemPrefixSuffix","geometryType","GeometryType","Point","Polyline","Polygon","findAttributeInExpression","expression","Array","isArray","length","reduce","acc","curr","Set","getActualExtrusionHeight","paint","parseClientStyle","style","items","isEmpty","Object","entries","paintAcc","value","convertSpToTurfFeature","geometry","point","coordinates","Multipoint","multiPoint","multiLineString","Envelope","polygon","VectorLayer","getLayerTempStyle","clientStyle","configuration","idAttribute","layerDefinition","renderLayerByGeometryType","useCallback","key","settings","fill","showBottomSurface","Boolean","minzoom","maxzoom","renderClientStyle","map","mockItem","prefixSuffix","isExtrusionItem","isPolygonPart","some","item","fillExtrusionPaint","find","undefined","currentSettings","processedExtrusionHeight","hasExtrusion","promoteId","Layer","layerType","onMount","useEffect","MapWrapper","styled","div","$zIndex","customModes","MapboxDraw","modes","StaticMode","onSetup","setActionableState","toDisplayFeatures","geojson","display","static","customStyles","filter","MapContext","createContext","MapProvider","basemapItems","defaultBasemap","useRef","draw","loaded","setLoaded","useState","basemapName","setBasemapName","Provider","BaseMapTheme","ServerNotificationsContext","useServerNotifications","url","initialized","hubConnection","connection","setConnection","current","HubConnectionBuilder","withUrl","withCredentials","configureLogging","LogLevel","Information","build","start","then","info","catch","err","finally","invoke","ServerNotificationsProvider","addSubscription","payload","Promise","resolve","updateSubscription","unsubscribeById","useMapContext","useContext","displayControlsDefault","styles","defaultMode","controls","trash","useMapDraw","triggerDeps","drawContext","addControl","hasControl","removeControl","useRedrawLayer","layerName","layerTileSource","getSource","setTiles","useZoomToFeatures","features","padding","currentFeatureCenter","bbox","feature","fitBounds","useZoomToPoint","options","callback","once","flyTo","useServerNotificationsContext","NO_CONTENT_VALUE","DateFormat","stringDateParsers","parseJSON","parseISO","rawDate","Date","getDate","parser","date","isValid","toDate","parsedDate","formatDate","dateFormat","ClientDefaultFormat","defaultValue","dateValue","format","toString","debounce","delay","timeId","args","window","clearTimeout","setTimeout","isNumeric","number","isNaN","parseFloat","isFinite","isObject","useDebouncedCallback","interval","useMemo","cb","useToggle","initial","setState","toggle","DEBOUNCE_DELAY","useWindowResize","debounceCallback","addEventListener","removeEventListener","Map","zIndex","lowerSiblings","upperSiblings","onError","rest","MapGL","renderWorldCopies","antialias","doubleClickZoom","cursor","onLoad","e","target","on"],"mappings":"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"}
1
+ {"version":3,"file":"react.esm.js","sources":["../src/components/ErrorBoundary/index.tsx","../src/components/Layer/constants.ts","../src/components/Layer/RasterLayer.tsx","../src/components/Layer/utils/getClientStyleItemPrefixSuffix.ts","../src/core/classification/findAttributeInExpression.ts","../src/core/classification/getActualExtrusionHeight.ts","../src/core/classification/parseClientStyle.ts","../src/core/feature/convertSpToTurfFeature.ts","../src/components/Layer/VectorLayer.tsx","../src/components/Layer/Layer.tsx","../src/components/Map/styled.ts","../src/hooks/map/useMapDraw/customModes.ts","../src/hooks/map/useMapDraw/customStyles.ts","../src/contexts/MapContext/MapContext.ts","../src/contexts/MapContext/MapProvider.tsx","../src/contexts/MapContext/types.ts","../src/contexts/ServerNotificationsContext/ServerNotificationsContext.ts","../src/contexts/ServerNotificationsContext/hooks/useServerNotifications.ts","../src/contexts/ServerNotificationsContext/ServerNotificationsProvider.tsx","../src/hooks/map/useMapContext.ts","../src/hooks/map/useMapDraw/index.ts","../src/hooks/map/useRedrawLayer.ts","../src/hooks/map/useZoomToFeatures.ts","../src/hooks/map/useZoomToPoint.ts","../src/hooks/serverNotifications/useServerNotificationsContext.ts","../src/utils/date.ts","../src/utils/debounce.ts","../src/utils/isNumeric.ts","../src/utils/isObject.ts","../src/hooks/useDebouncedCallback.ts","../src/hooks/useToggle.ts","../src/hooks/useWindowResize.ts","../src/components/Map/Map.tsx"],"sourcesContent":["import React, { Component } from \"react\";\n\nimport { ErrorBoundaryProps, ErrorBoundaryState } from \"./types\";\n\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n public state = { hasError: false };\n\n public static getDerivedStateFromError() {\n return { hasError: true };\n }\n\n public componentDidCatch(error: Error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n\n public render() {\n const { children, errorContents } = this.props;\n const { hasError } = this.state;\n\n return !hasError ? (\n <>{children}</>\n ) : (\n <>{errorContents}</>\n );\n }\n}\n","import { CirclePaint, FillPaint, FillExtrusionPaint, LinePaint } from \"mapbox-gl\";\n\nconst DEFAULT_COLOR = \"#00ffff\";\nconst DEFAULT_OPACITY = 0.5;\nconst DEFAULT_SIZE = 4;\nconst DEFAULT_LINE_WIDTH = 1;\n\nexport const DEFAULT_CIRCLE_PAINT = {\n \"circle-radius\": DEFAULT_SIZE,\n \"circle-color\": DEFAULT_COLOR,\n \"circle-opacity\": DEFAULT_OPACITY,\n \"circle-stroke-width\": 0,\n \"circle-stroke-color\": DEFAULT_COLOR,\n \"circle-stroke-opacity\": DEFAULT_OPACITY,\n} as CirclePaint;\n\nexport const DEFAULT_FILL_PAINT = {\n \"fill-color\": DEFAULT_COLOR,\n \"fill-opacity\": DEFAULT_OPACITY,\n} as FillPaint;\n\nexport const DEFAULT_FILL_EXTRUSION_PAINT = {\n \"fill-extrusion-base\": 0,\n \"fill-extrusion-vertical-gradient\": true,\n \"fill-extrusion-color\": DEFAULT_COLOR,\n \"fill-extrusion-opacity\": DEFAULT_OPACITY,\n \"fill-extrusion-height\": 0,\n} as FillExtrusionPaint;\n\nexport const DEFAULT_LINE_PAINT = {\n \"line-color\": DEFAULT_COLOR,\n \"line-width\": DEFAULT_LINE_WIDTH,\n \"line-opacity\": DEFAULT_OPACITY,\n} as LinePaint;\n","import React, { FC } from \"react\";\nimport { Source, Layer as MapboxLayer } from \"react-map-gl/mapbox\";\n\nimport { LayerProps } from \"./types\";\n\nexport const RasterLayer: FC<Omit<LayerProps, \"layerType\" | \"onMount\" | \"getLayerTempStyle\">> = ({\n layer,\n tileUrl,\n visible,\n beforeId,\n}) => {\n if (!layer) {\n return null;\n }\n\n return (\n <Source id={layer.name} type=\"raster\" tiles={[tileUrl]}>\n <MapboxLayer\n id={layer.name}\n type=\"raster\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{ visibility: visible ? \"visible\" : \"none\" }}\n />\n </Source>\n );\n};\n","import { GeometryType } from \"@evergis/api\";\n\nimport { ClientStyleItem } from \"../../../types\";\n\nexport const getClientStyleItemPrefixSuffix = (\n geometryType: GeometryType,\n type: ClientStyleItem[\"type\"],\n): [string, string] => {\n switch (geometryType) {\n case GeometryType.Point:\n return [\"point-layer-\", \"\"];\n case GeometryType.Polyline:\n return [\"polyline-layer-\", \"\"];\n case GeometryType.Polygon:\n switch (type) {\n case \"line\":\n return [\"polygon-stroke-layer-\", \"-stroke\"];\n case \"fill-extrusion\":\n return [\"polygon-extrusion-layer-\", \"-extrusion\"];\n default:\n return [\"polygon-layer-\", \"\"];\n }\n default:\n return [\"\", \"\"];\n }\n};\n","import { ExpressionSpecification } from \"mapbox-gl\";\n\nexport const findAttributeInExpression = (expression: ExpressionSpecification): string[] => {\n if (Array.isArray(expression) && expression.length === 2 && expression[0] === \"get\") {\n return [expression[1]];\n }\n\n return expression.reduce((acc: string[], curr) => {\n if (!Array.isArray(curr)) {\n return acc;\n }\n\n if (curr[0] === \"get\") {\n return [...new Set([...acc, curr[1]])];\n }\n\n return [...new Set([...acc, ...findAttributeInExpression(curr as ExpressionSpecification)])];\n }, []);\n};\n","import { AnyPaint } from \"mapbox-gl\";\n\nexport const getActualExtrusionHeight = (paint: AnyPaint) => {\n return Array.isArray(paint?.[\"fill-extrusion-height\"]) && paint?.[\"fill-extrusion-height\"][0] === \"+\"\n ? paint?.[\"fill-extrusion-height\"][1]\n : paint?.[\"fill-extrusion-height\"];\n};\n","import { isEmpty } from \"lodash\";\nimport { ExpressionSpecification } from \"mapbox-gl\";\n\nimport { findAttributeInExpression } from \"./findAttributeInExpression\";\n\nimport { ClientStyle } from \"../../types\";\n\nexport const parseClientStyle = (style?: ClientStyle): string[] => {\n if (!style) {\n return [];\n }\n\n return style?.items?.reduce((acc: string[], curr) => {\n if (!curr.paint || isEmpty(curr.paint)) {\n return acc;\n }\n\n return Object.entries(curr.paint)?.reduce((paintAcc: string[], [, value]) => {\n if (!Array.isArray(value)) {\n return paintAcc;\n }\n\n return [...new Set([...paintAcc, ...findAttributeInExpression(value as ExpressionSpecification)])];\n }, []);\n }, []);\n};\n","import { FeatureDc, GeometryType, PositionDc } from \"@evergis/api\";\nimport { multiLineString, multiPoint, point, polygon } from \"@turf/turf\";\nimport { Feature } from \"geojson\";\n\nexport const convertSpToTurfFeature = (geometry?: FeatureDc[\"geometry\"]): Feature<any> | undefined => {\n if (!geometry) {\n return;\n }\n\n switch (geometry.type) {\n case GeometryType.Point:\n return point(geometry.coordinates as PositionDc);\n case GeometryType.Multipoint:\n return multiPoint(geometry.coordinates as PositionDc[]);\n case GeometryType.Polyline:\n return multiLineString(geometry.coordinates as PositionDc[][]);\n case GeometryType.Polygon:\n case GeometryType.Envelope:\n return polygon(geometry.coordinates as PositionDc[][]);\n default:\n }\n};\n","import React, { FC, useCallback } from \"react\";\nimport { Layer as MapboxLayer, Source } from \"react-map-gl/mapbox\";\nimport { FeatureLayerServiceInfoDc, GeometryType, QueryLayerServiceConfigurationDc } from \"@evergis/api\";\nimport { AnyPaint, CirclePaint, FillExtrusionPaint, FillPaint, LinePaint } from \"mapbox-gl\";\n\nimport {\n DEFAULT_CIRCLE_PAINT,\n DEFAULT_FILL_EXTRUSION_PAINT,\n DEFAULT_FILL_PAINT,\n DEFAULT_LINE_PAINT,\n} from \"./constants\";\n\nimport { getClientStyleItemPrefixSuffix } from \"./utils/getClientStyleItemPrefixSuffix\";\nimport { getActualExtrusionHeight } from \"../../core\";\n\nimport { LayerProps } from \"./types\";\nimport { ClientStyle } from \"../../types\";\n\nexport const VectorLayer: FC<Omit<LayerProps, \"layerType\" | \"onMount\">> = ({\n layer,\n tileUrl,\n visible,\n beforeId,\n getLayerTempStyle,\n}) => {\n const clientStyle = (layer?.configuration as QueryLayerServiceConfigurationDc)?.clientStyle as ClientStyle;\n const { idAttribute, geometryType } = (layer as FeatureLayerServiceInfoDc).layerDefinition || {};\n\n const renderLayerByGeometryType = useCallback(() => {\n const visibility = visible ? \"visible\" : \"none\";\n\n switch (geometryType) {\n case GeometryType.Point:\n return (\n <MapboxLayer\n id={layer.name}\n type=\"circle\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"circle\")?.layout,\n visibility,\n }}\n paint={{\n ...DEFAULT_CIRCLE_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"circle\")?.paint as CirclePaint),\n }}\n />\n );\n case GeometryType.Polygon:\n return [\n <MapboxLayer\n key={`polygon-layer-${layer.name}`}\n id={layer.name}\n type=\"fill\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"fill\")?.layout,\n visibility:\n visible &&\n getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.settings?.fill?.showBottomSurface !== false &&\n Boolean(\n getActualExtrusionHeight({\n ...DEFAULT_FILL_EXTRUSION_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint as FillExtrusionPaint),\n }),\n )\n ? \"visible\"\n : \"none\",\n }}\n paint={{\n ...DEFAULT_FILL_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill\")?.paint as FillPaint),\n }}\n />,\n <MapboxLayer\n key={`polygon-stroke-layer-${layer.name}`}\n id={`${layer.name}-stroke`}\n type=\"line\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"line\")?.layout,\n visibility:\n visible &&\n getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.settings?.fill?.showBottomSurface !== false &&\n Boolean(\n getActualExtrusionHeight({\n ...DEFAULT_FILL_EXTRUSION_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint as FillExtrusionPaint),\n }),\n )\n ? \"visible\"\n : \"none\",\n }}\n paint={{\n ...DEFAULT_LINE_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"line\")?.paint as LinePaint),\n }}\n />,\n <MapboxLayer\n key={`polygon-extrusion-layer-${layer.name}`}\n id={`${layer.name}-extrusion`}\n type=\"fill-extrusion\"\n source-layer=\"default\"\n beforeId={beforeId}\n minzoom={0}\n maxzoom={23}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.layout,\n visibility,\n }}\n paint={{\n ...DEFAULT_FILL_EXTRUSION_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint as FillExtrusionPaint),\n }}\n />,\n ];\n case GeometryType.Polyline:\n return (\n <MapboxLayer\n id={layer.name}\n type=\"line\"\n source-layer=\"default\"\n beforeId={beforeId}\n layout={{\n ...getLayerTempStyle?.(layer.name, \"line\")?.layout,\n visibility,\n }}\n paint={{\n ...DEFAULT_LINE_PAINT,\n ...(getLayerTempStyle?.(layer.name, \"line\")?.paint as LinePaint),\n }}\n />\n );\n default:\n return null;\n }\n }, [\n geometryType,\n layer,\n beforeId,\n visible,\n getLayerTempStyle,\n ]);\n\n const renderClientStyle = useCallback(() => {\n return clientStyle.items.map(mockItem => {\n const prefixSuffix = getClientStyleItemPrefixSuffix(geometryType, mockItem.type);\n const isExtrusionItem = mockItem.type === \"fill-extrusion\";\n const isPolygonPart =\n clientStyle.items.some(item => item.type === \"fill-extrusion\") &&\n (mockItem.type === \"fill\" || mockItem.type === \"line\");\n const fillExtrusionPaint =\n isPolygonPart || isExtrusionItem\n ? {\n ...clientStyle.items?.find(item => item.type === \"fill-extrusion\")?.paint,\n ...getLayerTempStyle?.(layer.name, \"fill-extrusion\")?.paint,\n }\n : undefined;\n const currentSettings = {\n ...clientStyle?.settings,\n ...getLayerTempStyle?.(layer.name, mockItem.type)?.settings,\n };\n const processedExtrusionHeight = getActualExtrusionHeight(fillExtrusionPaint);\n const hasExtrusion = Boolean(processedExtrusionHeight);\n const visibility =\n visible &&\n ((isExtrusionItem && hasExtrusion) ||\n (!isPolygonPart && !isExtrusionItem) ||\n (isPolygonPart && (!hasExtrusion || (currentSettings?.fill?.showBottomSurface ?? true))))\n ? \"visible\"\n : \"none\";\n\n return (\n <MapboxLayer\n key={`${prefixSuffix[0]}${layer.name}`}\n id={`${layer.name}${prefixSuffix[1]}`}\n type={mockItem.type}\n source-layer=\"default\"\n beforeId={beforeId}\n minzoom={clientStyle?.minzoom ?? 0}\n maxzoom={clientStyle?.maxzoom ?? 23}\n layout={{\n ...mockItem.layout,\n ...getLayerTempStyle?.(layer.name, mockItem.type)?.layout,\n visibility,\n }}\n paint={\n {\n ...mockItem.paint,\n ...getLayerTempStyle?.(layer.name, mockItem.type)?.paint,\n } as AnyPaint\n }\n />\n );\n });\n }, [\n beforeId,\n clientStyle,\n geometryType,\n layer.name,\n visible,\n getLayerTempStyle,\n ]);\n\n if (!layer) {\n return null;\n }\n\n return (\n <Source\n promoteId={idAttribute}\n id={layer.name}\n type=\"vector\"\n tiles={[tileUrl]}\n >\n {clientStyle?.items ? renderClientStyle() : renderLayerByGeometryType()}\n </Source>\n );\n};\n","import React, { FC, useEffect } from \"react\";\n\nimport { RasterLayer } from \"./RasterLayer\";\nimport { VectorLayer } from \"./VectorLayer\";\n\nimport { LayerProps } from \"./types\";\n\nexport const Layer: FC<LayerProps> = ({\n layer,\n layerType,\n visible,\n beforeId,\n tileUrl,\n getLayerTempStyle,\n onMount = () => null,\n}) => {\n useEffect(onMount, []); // eslint-disable-line\n\n if (!layer) {\n return null;\n }\n\n if (layerType === \"RasterTileLayer\") {\n return (\n <RasterLayer\n layer={layer}\n tileUrl={tileUrl}\n visible={visible}\n beforeId={beforeId}\n />\n );\n }\n\n return (\n <VectorLayer\n layer={layer}\n tileUrl={tileUrl}\n visible={visible}\n beforeId={beforeId}\n getLayerTempStyle={getLayerTempStyle}\n />\n );\n};\n","import { CSSProperties } from \"react\";\nimport styled from \"styled-components\";\n\nexport const MapWrapper = styled.div<{ $zIndex?: CSSProperties[\"zIndex\"] }>`\n position: relative;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n z-index: ${({ $zIndex }) => $zIndex ?? 1};\n\n .mapbox-gl-draw_trash {\n display: none;\n }\n\n .mapboxgl-ctrl-logo {\n display: none;\n }\n\n .mapboxgl-ctrl.mapboxgl-ctrl-attrib {\n display: none;\n }\n\n .mapboxgl-ctrl-geocoder.mapboxgl-ctrl {\n width: 350px;\n }\n`;\n","import MapboxDraw, { DrawCustomMode } from \"@mapbox/mapbox-gl-draw\";\n\ninterface ExtendedMapboxDrawModes extends MapboxDraw.Modes {\n [key: string]: DrawCustomMode;\n static: DrawCustomMode;\n}\n\nexport const customModes = MapboxDraw.modes as ExtendedMapboxDrawModes;\n\nconst StaticMode = {} as DrawCustomMode;\n\nStaticMode.onSetup = function () {\n this.setActionableState(undefined);\n\n return {};\n};\n\nStaticMode.toDisplayFeatures = function (state, geojson, display) {\n display(geojson);\n};\n\ncustomModes.static = StaticMode;\n","export const customStyles = [\n {\n id: \"gl-draw-point\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"]],\n paint: {\n \"circle-radius\": 5,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"highlight-inactive-points\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"feature\"], [\"==\", \"active\", \"false\"]],\n paint: {\n \"circle-radius\": 5,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"highlight-active-points\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"feature\"], [\"==\", \"active\", \"true\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#fbb03b\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 1,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"gl-draw-polygon-fill-static\",\n type: \"fill\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n paint: {\n \"fill-color\": \"#D20C0C\",\n \"fill-outline-color\": \"#D20C0C\",\n \"fill-opacity\": 0.1,\n },\n },\n {\n id: \"gl-draw-line\",\n type: \"line\",\n filter: [\"all\", [\"==\", \"$type\", \"LineString\"]],\n layout: {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n },\n paint: {\n \"line-color\": \"#D20C0C\",\n \"line-dasharray\": [0.2, 2],\n \"line-width\": 2,\n },\n },\n {\n id: \"gl-draw-polygon-fill\",\n type: \"fill\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n paint: {\n \"fill-color\": \"#D20C0C\",\n \"fill-outline-color\": \"#D20C0C\",\n \"fill-opacity\": 0.1,\n },\n },\n {\n id: \"gl-draw-polygon-midpoint\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"midpoint\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#fbb03b\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 1,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"gl-draw-polygon-stroke-active\",\n type: \"line\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n layout: {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n },\n paint: {\n \"line-color\": \"#D20C0C\",\n \"line-dasharray\": [0.2, 2],\n \"line-width\": 2,\n },\n },\n {\n id: \"gl-draw-polygon-and-line-vertex-active\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"meta\", \"vertex\"], [\"==\", \"$type\", \"Point\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n];\n","import { createContext } from \"react\";\n\nimport { MapContextProps } from \"./types\";\n\nexport const MapContext = createContext<MapContextProps>({});\n","import React, { FC, useRef, useState } from \"react\";\nimport { Map as MapboxGLMap } from \"mapbox-gl\";\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\n\nimport { MapContext } from \"./MapContext\";\n\nimport { MapProviderProps } from \"./types\";\n\nexport const MapProvider: FC<MapProviderProps> = ({ basemapItems, defaultBasemap, children }) => {\n const map = useRef<MapboxGLMap | undefined>();\n const draw = useRef<MapboxDraw | undefined>();\n const [loaded, setLoaded] = useState<boolean>(false);\n const [basemapName, setBasemapName] = useState(defaultBasemap);\n\n return (\n <MapContext.Provider\n value={{\n map,\n draw,\n loaded,\n setLoaded,\n basemapItems,\n basemapName,\n setBasemapName,\n defaultBasemap,\n }}\n >\n {children}\n </MapContext.Provider>\n );\n};\n","import { Dispatch, MutableRefObject, PropsWithChildren, SetStateAction } from \"react\";\nimport { Map as MapboxGLMap } from \"mapbox-gl\";\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\n\nexport enum BaseMapTheme {\n Light = \"light\",\n Dark = \"dark\",\n}\n\nexport interface BaseMapItem {\n name: string;\n source: string;\n preview?: string;\n imgSrc?: string;\n title: string;\n theme?: BaseMapTheme;\n opacity?: number;\n color?: string;\n}\n\nexport interface MapContextProps {\n map?: MutableRefObject<MapboxGLMap>;\n draw?: MutableRefObject<Omit<MapboxDraw, \"getDefaultPosition\">>;\n loaded?: boolean;\n setLoaded?: Dispatch<SetStateAction<boolean>>;\n basemapItems?: BaseMapItem[];\n basemapName?: string;\n setBasemapName?: Dispatch<SetStateAction<string>>;\n defaultBasemap?: string;\n}\n\nexport interface MapProviderProps extends PropsWithChildren {\n basemapItems: BaseMapItem[];\n defaultBasemap: string;\n}\n","import { createContext } from \"react\";\n\nimport { ServerNotificationsContextProps } from \"./types\";\n\nexport const ServerNotificationsContext = createContext<ServerNotificationsContextProps>({});\n","import { useEffect, useRef, useState } from \"react\";\nimport { HubConnection, HubConnectionBuilder, LogLevel } from \"@microsoft/signalr\";\n\nexport const useServerNotifications = (url: string, initialized: boolean): HubConnection | null => {\n const hubConnection = useRef<HubConnection | null>(null);\n const [connection, setConnection] = useState<HubConnection | null>(null);\n\n useEffect(() => {\n if (!initialized) {\n return;\n }\n\n hubConnection.current = new HubConnectionBuilder()\n .withUrl(url, {\n withCredentials: true,\n })\n .configureLogging(LogLevel.Information)\n .build();\n\n hubConnection.current\n .start()\n .then(() => console.info(\"Серверные нотификации подключены\"))\n .catch(err => console.info(\"Ошибка:\", err))\n .finally(() => setConnection(hubConnection.current));\n }, [initialized]); // eslint-disable-line\n\n useEffect(() => {\n if (!connection || connection.state !== \"Connected\") {\n return;\n }\n\n connection\n .invoke(\"SubscribeNotifications\", [])\n .then(() => console.info(\"Подписка `SubscribeNotifications` оформлена\"))\n .catch(err => console.info(\"Ошибка подписки `SubscribeNotifications`:\", err));\n }, [connection]);\n\n return connection;\n};\n","import React, { FC, useCallback } from \"react\";\n\nimport { ServerNotificationsContext } from \"./ServerNotificationsContext\";\n\nimport { useServerNotifications } from \"./hooks/useServerNotifications\";\n\nimport { ServerNotificationsProviderProps } from \"./types\";\n\nexport const ServerNotificationsProvider: FC<ServerNotificationsProviderProps> = ({ url, initialized, children }) => {\n const connection = useServerNotifications(url, initialized);\n\n const addSubscription = useCallback(\n async (payload?: any): Promise<string | null> => {\n if (!connection || connection.state !== \"Connected\" || !payload) {\n return;\n }\n\n try {\n const id = await connection.invoke(\"AddSubscription\", payload);\n\n console.info(\"Подписка добавлена, id:\", id);\n\n return id;\n } catch (err) {\n console.info(\"Ошибка добавления подписки:\", err);\n\n return Promise.resolve(null);\n }\n },\n [connection],\n );\n\n const updateSubscription = useCallback(\n async (id: string | null, payload?: any): Promise<void> => {\n if (!connection || connection.state !== \"Connected\" || !id || !payload) {\n return;\n }\n\n try {\n await connection.invoke(\"UpdateSubscription\", id, payload);\n } catch (err) {\n console.info(`Ошибка обновления подписки ${id}:`, err);\n }\n },\n [connection],\n );\n\n const unsubscribeById = useCallback(\n async (id: string | null): Promise<void> => {\n if (!connection || connection.state !== \"Connected\" || !id) {\n return;\n }\n\n try {\n await connection.invoke(\"Unsubscribe\", [id]);\n } catch (err) {\n console.info(`Ошибка отписки по ${id}:`, err);\n }\n },\n [connection],\n );\n\n return (\n <ServerNotificationsContext.Provider value={{ connection, addSubscription, updateSubscription, unsubscribeById }}>\n {children}\n </ServerNotificationsContext.Provider>\n );\n};\n","import { useContext } from \"react\";\n\nimport { MapContext } from \"../../contexts\";\n\nexport const useMapContext = () => {\n return useContext(MapContext);\n};\n","import { useEffect } from \"react\";\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\n\nimport { customModes } from \"./customModes\";\nimport { customStyles } from \"./customStyles\";\n\nimport { useMapContext } from \"../useMapContext\";\n\nconst draw = new MapboxDraw({\n displayControlsDefault: false,\n styles: customStyles,\n modes: customModes,\n defaultMode: \"draw_point\",\n controls: {\n trash: true,\n },\n});\n\nexport const useMapDraw = (triggerDeps: Array<unknown> = []) => {\n const { map, draw: drawContext, loaded, basemapName } = useMapContext();\n\n useEffect(() => {\n if (!loaded || !map.current) {\n return;\n }\n\n drawContext.current = draw;\n map.current.addControl(drawContext.current);\n }, [loaded]); // eslint-disable-line\n\n useEffect(() => {\n if (map.current && map.current.hasControl(drawContext.current)) {\n map.current.removeControl(drawContext.current);\n map.current.addControl(drawContext.current);\n }\n }, [basemapName, ...triggerDeps]); // eslint-disable-line\n};\n","import { useCallback } from \"react\";\nimport { VectorSourceImpl } from \"mapbox-gl\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useRedrawLayer = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (layerName: string) => {\n const layerTileSource: VectorSourceImpl = map.current.getSource(layerName);\n\n layerTileSource.setTiles(layerTileSource.tiles);\n },\n [map],\n );\n};\n","import { useCallback } from \"react\";\nimport { bbox } from \"@turf/turf\";\nimport { FeatureDc } from \"@evergis/api\";\n\nimport { useMapContext } from \"./useMapContext\";\nimport { convertSpToTurfFeature } from \"../../core\";\n\nexport const useZoomToFeatures = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (features?: FeatureDc[], padding?: number) => {\n if (!features) {\n return;\n }\n\n const currentFeatureCenter = bbox({\n type: \"FeatureCollection\",\n features: features.map(feature => convertSpToTurfFeature(feature.geometry)),\n });\n\n map.current.fitBounds(currentFeatureCenter as [number, number, number, number], { padding: padding ?? 150 });\n },\n [map],\n );\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useZoomToPoint = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (options, callback?: VoidFunction) => {\n if (map.current) {\n if (callback) {\n map.current.once(\"moveend\", () => {\n callback();\n });\n }\n\n map.current.flyTo(options);\n } else {\n callback?.();\n }\n },\n [map],\n );\n};\n","import { useContext } from \"react\";\n\nimport { ServerNotificationsContext } from \"../../contexts\";\n\nexport const useServerNotificationsContext = () => {\n return useContext(ServerNotificationsContext);\n};\n","import { parseJSON, parseISO, isValid, format, toDate } from \"date-fns\";\n\nexport const NO_CONTENT_VALUE = \"—\";\n\nexport type DateType = number | Date;\nexport type RawDateType = string | DateType;\n\nexport enum DateFormat {\n ClientDefaultFormat = \"dd.MM.yyyy HH:mm\",\n DateTime = \"dd.MM.yyyy HH:mm:ss\",\n UTC = \"yyyy-MM-dd'T'HH:mm:ss.sssxxx\",\n AxisTooltip = \"d MMMM yyyy\",\n}\n\ninterface FormatDateOptions {\n dateFormat?: DateFormat;\n defaultValue?: RawDateType;\n}\n\nconst stringDateParsers: ((date: string) => DateType)[] = [parseJSON, parseISO, rawDate => new Date(rawDate)];\n\nexport const getDate = (rawDate?: RawDateType | null): Date | null => {\n if (!rawDate) return null;\n\n if (typeof rawDate === \"string\") {\n for (const parser of stringDateParsers) {\n const date = parser(rawDate);\n\n if (isValid(date)) {\n return toDate(date);\n }\n }\n\n return null;\n }\n\n const parsedDate = toDate(rawDate);\n\n return isValid(parsedDate) ? parsedDate : null;\n};\n\nexport const formatDate = (\n date?: RawDateType,\n { dateFormat = DateFormat.ClientDefaultFormat, defaultValue = NO_CONTENT_VALUE }: FormatDateOptions = {},\n): string => {\n const dateValue = date ? getDate(date) : null;\n\n if (isValid(dateValue)) {\n return format(dateValue as Date, dateFormat);\n }\n\n return defaultValue.toString();\n};\n","export const debounce = (callback: any, delay: number): ((...args) => void) => {\n let timeId: number;\n\n return (...args) => {\n if (timeId) {\n window.clearTimeout(timeId);\n }\n\n timeId = window.setTimeout(() => {\n callback(...args);\n }, delay);\n };\n};\n","export const isNumeric = (number: string | number): boolean =>\n !isNaN(parseFloat(number as string)) && isFinite(number as number);\n","export function isObject<T>(value: T | object): value is object {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import { useMemo } from \"react\";\n\nimport { debounce } from \"../utils\";\n\nexport const useDebouncedCallback = <CallbackFn extends () => void>(interval: number): ((cb: CallbackFn) => void) => {\n return useMemo(\n () =>\n debounce((cb: CallbackFn) => {\n cb();\n }, interval),\n [interval],\n );\n};\n","import { useCallback, useState } from \"react\";\n\nexport const useToggle = (initial?: boolean): [boolean, VoidFunction, (value: boolean) => void] => {\n const [state, setState] = useState(initial !== undefined ? initial : false);\n\n const toggle = useCallback(() => setState(!state), [state]);\n\n return [state, toggle, setState];\n};\n","import { useEffect, useMemo } from \"react\";\n\nimport { debounce } from \"../utils\";\n\nconst DEBOUNCE_DELAY = 144;\n\nexport const useWindowResize = (callback?: (...args: any) => any, delay?: number) => {\n const debounceCallback = useMemo(() => {\n return callback ? debounce(callback, delay || DEBOUNCE_DELAY) : undefined;\n }, [callback, delay]);\n\n useEffect(() => {\n debounceCallback && window.addEventListener(\"resize\", debounceCallback);\n\n return () => debounceCallback && window.removeEventListener(\"resize\", debounceCallback);\n }, [debounceCallback]);\n};\n","import React, { FC } from \"react\";\nimport { default as MapGL } from \"react-map-gl/mapbox\";\nimport { Map as MapboxGLMap } from \"mapbox-gl\";\nimport \"@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css\";\n\nimport { MapWrapper } from \"./styled\";\n\nimport { useMapContext } from \"../../hooks\";\n\nimport { MapProps } from \"./types\";\n\nimport \"mapbox-gl/dist/mapbox-gl.css\";\n\nexport const Map: FC<MapProps> = ({\n zIndex,\n lowerSiblings,\n upperSiblings,\n onError,\n children,\n ...rest\n}) => {\n const { map, setLoaded } = useMapContext();\n\n return (\n <MapWrapper $zIndex={zIndex}>\n {lowerSiblings}\n <MapGL\n {...rest}\n renderWorldCopies\n antialias\n doubleClickZoom={false}\n cursor=\"default\"\n onLoad={e => {\n map.current = e.target as MapboxGLMap;\n\n map.current.on(\"error\", onError);\n\n setLoaded(true);\n }}\n >\n {children}\n </MapGL>\n {upperSiblings}\n </MapWrapper>\n );\n};\n"],"names":["ErrorBoundary","hasError","componentDidCatch","error","console","render","children","errorContents","props","state","React","getDerivedStateFromError","Component","DEFAULT_COLOR","DEFAULT_OPACITY","DEFAULT_SIZE","DEFAULT_LINE_WIDTH","DEFAULT_CIRCLE_PAINT","DEFAULT_FILL_PAINT","DEFAULT_FILL_EXTRUSION_PAINT","DEFAULT_LINE_PAINT","RasterLayer","layer","tileUrl","visible","beforeId","Source","id","name","type","tiles","MapboxLayer","layout","visibility","getClientStyleItemPrefixSuffix","geometryType","GeometryType","Point","Polyline","Polygon","findAttributeInExpression","expression","Array","isArray","length","reduce","acc","curr","Set","getActualExtrusionHeight","paint","parseClientStyle","style","items","isEmpty","Object","entries","paintAcc","value","convertSpToTurfFeature","geometry","point","coordinates","Multipoint","multiPoint","multiLineString","Envelope","polygon","VectorLayer","getLayerTempStyle","clientStyle","configuration","idAttribute","layerDefinition","renderLayerByGeometryType","useCallback","key","settings","fill","showBottomSurface","Boolean","minzoom","maxzoom","renderClientStyle","map","mockItem","prefixSuffix","isExtrusionItem","isPolygonPart","some","item","fillExtrusionPaint","find","undefined","currentSettings","processedExtrusionHeight","hasExtrusion","promoteId","Layer","layerType","onMount","useEffect","MapWrapper","styled","div","$zIndex","customModes","MapboxDraw","modes","StaticMode","onSetup","setActionableState","toDisplayFeatures","geojson","display","static","customStyles","filter","MapContext","createContext","MapProvider","basemapItems","defaultBasemap","useRef","draw","loaded","setLoaded","useState","basemapName","setBasemapName","Provider","BaseMapTheme","ServerNotificationsContext","useServerNotifications","url","initialized","hubConnection","connection","setConnection","current","HubConnectionBuilder","withUrl","withCredentials","configureLogging","LogLevel","Information","build","start","then","info","catch","err","finally","invoke","ServerNotificationsProvider","addSubscription","payload","Promise","resolve","updateSubscription","unsubscribeById","useMapContext","useContext","displayControlsDefault","styles","defaultMode","controls","trash","useMapDraw","triggerDeps","drawContext","addControl","hasControl","removeControl","useRedrawLayer","layerName","layerTileSource","getSource","setTiles","useZoomToFeatures","features","padding","currentFeatureCenter","bbox","feature","fitBounds","useZoomToPoint","options","callback","once","flyTo","useServerNotificationsContext","NO_CONTENT_VALUE","DateFormat","stringDateParsers","parseJSON","parseISO","rawDate","Date","getDate","parser","date","isValid","toDate","parsedDate","formatDate","dateFormat","ClientDefaultFormat","defaultValue","dateValue","format","toString","debounce","delay","timeId","args","window","clearTimeout","setTimeout","isNumeric","number","isNaN","parseFloat","isFinite","isObject","useDebouncedCallback","interval","useMemo","cb","useToggle","initial","setState","toggle","DEBOUNCE_DELAY","useWindowResize","debounceCallback","addEventListener","removeEventListener","Map","zIndex","lowerSiblings","upperSiblings","onError","rest","MapGL","renderWorldCopies","antialias","doubleClickZoom","cursor","onLoad","e","target","on"],"mappings":"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"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.1.5",
2
+ "version": "3.1.6",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -42,7 +42,7 @@
42
42
  "@babel/core": "^7.17.5",
43
43
  "@babel/plugin-transform-classes": "^7.16.7",
44
44
  "@babel/preset-env": "^7.16.11",
45
- "@evergis/api": "^4.1.5",
45
+ "@evergis/api": "^4.1.6",
46
46
  "@storybook/addon-actions": "^6.4.18",
47
47
  "@storybook/addon-controls": "^6.4.18",
48
48
  "@storybook/addon-docs": "^6.4.18",
@@ -87,5 +87,5 @@
87
87
  "styled-system": "^5.1.5",
88
88
  "wkt": "^0.1.1"
89
89
  },
90
- "gitHead": "fe86d6104f25d231ba908afa9edd2ae64ae765a3"
90
+ "gitHead": "dc8ee4b2d88bee50357ef6d3d80e2230a43094a6"
91
91
  }