@evergis/react 3.1.4 → 3.1.5

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 +1 @@
1
- {"version":3,"file":"react.cjs.production.min.js","sources":["../src/components/ErrorBoundary/styled.ts","../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 styled from \"styled-components\";\n\nexport const ErrorBoundaryContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100vh;\n`;\n","import React, { Component } from \"react\";\n\nimport { ErrorBoundaryContainer } from \"./styled\";\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 <ErrorBoundaryContainer>\n {errorContents}\n </ErrorBoundaryContainer>\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\">> = ({\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, useEffect } 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\">> = ({\n layer,\n tileUrl,\n visible,\n beforeId,\n getLayerTempStyle,\n onMount = () => null,\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 }, [geometryType, layer, beforeId, getLayerTempStyle, visible]);\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 }, [beforeId, clientStyle, geometryType, layer.name, visible, getLayerTempStyle]);\n\n useEffect(onMount, [layer.name]); // eslint-disable-line\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, [layer.name]); // 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 onMount={onMount}\n />\n );\n }\n\n return (\n <VectorLayer\n layer={layer}\n tileUrl={tileUrl}\n visible={visible}\n beforeId={beforeId}\n onMount={onMount}\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 drawTriggerDeps,\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":["ErrorBoundaryContainer","styled","div","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","onMount","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","useEffect","promoteId","MapWrapper","$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","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\">> = ({\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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"}
package/dist/react.esm.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import React, { Component, useCallback, useEffect, createContext, useRef, useState, useContext, useMemo } from 'react';
2
- import styled from 'styled-components';
3
2
  import MapGL, { Source, Layer as Layer$1 } from 'react-map-gl/mapbox';
4
3
  import { GeometryType } from '@evergis/api';
5
4
  import { isEmpty } from 'lodash-es';
6
5
  import { polygon, multiLineString, multiPoint, point, bbox } from '@turf/turf';
7
6
  import '@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css';
7
+ import styled from 'styled-components';
8
8
  import MapboxDraw from '@mapbox/mapbox-gl-draw';
9
9
  import { HubConnectionBuilder, LogLevel } from '@microsoft/signalr';
10
10
  import { isValid, toDate, format, parseJSON, parseISO } from 'date-fns';
@@ -121,9 +121,6 @@ function _taggedTemplateLiteralLoose(strings, raw) {
121
121
  return strings;
122
122
  }
123
123
 
124
- var _templateObject;
125
- const ErrorBoundaryContainer = /*#__PURE__*/styled.div(_templateObject || (_templateObject = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100vh;\n"])));
126
-
127
124
  function _callSuper(_this, derived, args) {
128
125
  function isNativeReflectConstruct() {
129
126
  if (typeof Reflect === "undefined" || !Reflect.construct) return false;
@@ -171,7 +168,7 @@ let ErrorBoundary = /*#__PURE__*/function (_Component) {
171
168
  const {
172
169
  hasError
173
170
  } = this.state;
174
- return !hasError ? React.createElement(React.Fragment, null, children) : React.createElement(ErrorBoundaryContainer, null, errorContents);
171
+ return !hasError ? React.createElement(React.Fragment, null, children) : React.createElement(React.Fragment, null, errorContents);
175
172
  }
176
173
  }], [{
177
174
  key: "getDerivedStateFromError",
@@ -341,8 +338,7 @@ const VectorLayer = (_ref) => {
341
338
  tileUrl,
342
339
  visible,
343
340
  beforeId,
344
- getLayerTempStyle,
345
- onMount = () => null
341
+ getLayerTempStyle
346
342
  } = _ref;
347
343
  const clientStyle = layer == null || (_layer$configuration = layer.configuration) == null ? void 0 : _layer$configuration.clientStyle;
348
344
  const {
@@ -417,7 +413,7 @@ const VectorLayer = (_ref) => {
417
413
  default:
418
414
  return null;
419
415
  }
420
- }, [geometryType, layer, beforeId, getLayerTempStyle, visible]);
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")]);
421
417
  const renderClientStyle = useCallback(() => {
422
418
  return clientStyle.items.map(mockItem => {
423
419
  var _clientStyle$items, _getLayerTempStyle15, _getLayerTempStyle16, _currentSettings$fill, _currentSettings$fill2, _clientStyle$minzoom, _clientStyle$maxzoom, _getLayerTempStyle17, _getLayerTempStyle18;
@@ -446,8 +442,7 @@ const VectorLayer = (_ref) => {
446
442
  paint: _extends({}, mockItem.paint, getLayerTempStyle == null || (_getLayerTempStyle18 = getLayerTempStyle(layer.name, mockItem.type)) == null ? void 0 : _getLayerTempStyle18.paint)
447
443
  });
448
444
  });
449
- }, [beforeId, clientStyle, geometryType, layer.name, visible, getLayerTempStyle]);
450
- useEffect(onMount, [layer.name]); // eslint-disable-line
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")]);
451
446
 
452
447
  if (!layer) {
453
448
  return null;
@@ -470,7 +465,7 @@ const Layer = (_ref) => {
470
465
  tileUrl,
471
466
  onMount = () => null
472
467
  } = _ref;
473
- useEffect(onMount, [layer.name]); // eslint-disable-line
468
+ useEffect(onMount, []); // eslint-disable-line
474
469
 
475
470
  if (!layer) {
476
471
  return null;
@@ -481,8 +476,7 @@ const Layer = (_ref) => {
481
476
  layer: layer,
482
477
  tileUrl: tileUrl,
483
478
  visible: visible,
484
- beforeId: beforeId,
485
- onMount: onMount
479
+ beforeId: beforeId
486
480
  });
487
481
  }
488
482
 
@@ -490,13 +484,12 @@ const Layer = (_ref) => {
490
484
  layer: layer,
491
485
  tileUrl: tileUrl,
492
486
  visible: visible,
493
- beforeId: beforeId,
494
- onMount: onMount
487
+ beforeId: beforeId
495
488
  });
496
489
  };
497
490
 
498
- var _templateObject$1;
499
- const MapWrapper = /*#__PURE__*/styled.div(_templateObject$1 || (_templateObject$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\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"])), (_ref) => {
491
+ var _templateObject;
492
+ const MapWrapper = /*#__PURE__*/styled.div(_templateObject || (_templateObject = /*#__PURE__*/_taggedTemplateLiteralLoose(["\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"])), (_ref) => {
500
493
  let {
501
494
  $zIndex
502
495
  } = _ref;
@@ -912,7 +905,7 @@ const useWindowResize = (callback, delay) => {
912
905
  }, [debounceCallback]);
913
906
  };
914
907
 
915
- const _excluded = ["zIndex", "lowerSiblings", "upperSiblings", "drawTriggerDeps", "onError", "children"];
908
+ const _excluded = ["zIndex", "lowerSiblings", "upperSiblings", "onError", "children"];
916
909
  const Map = (_ref) => {
917
910
  let {
918
911
  zIndex,