@evergis/react 3.1.4 → 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 +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\" | \"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
@@ -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]);
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;
@@ -447,7 +443,6 @@ const VectorLayer = (_ref) => {
447
443
  });
448
444
  });
449
445
  }, [beforeId, clientStyle, geometryType, layer.name, visible, getLayerTempStyle]);
450
- useEffect(onMount, [layer.name]); // eslint-disable-line
451
446
 
452
447
  if (!layer) {
453
448
  return null;
@@ -468,9 +463,10 @@ const Layer = (_ref) => {
468
463
  visible,
469
464
  beforeId,
470
465
  tileUrl,
466
+ getLayerTempStyle,
471
467
  onMount = () => null
472
468
  } = _ref;
473
- useEffect(onMount, [layer.name]); // eslint-disable-line
469
+ useEffect(onMount, []); // eslint-disable-line
474
470
 
475
471
  if (!layer) {
476
472
  return null;
@@ -481,8 +477,7 @@ const Layer = (_ref) => {
481
477
  layer: layer,
482
478
  tileUrl: tileUrl,
483
479
  visible: visible,
484
- beforeId: beforeId,
485
- onMount: onMount
480
+ beforeId: beforeId
486
481
  });
487
482
  }
488
483
 
@@ -491,12 +486,12 @@ const Layer = (_ref) => {
491
486
  tileUrl: tileUrl,
492
487
  visible: visible,
493
488
  beforeId: beforeId,
494
- onMount: onMount
489
+ getLayerTempStyle: getLayerTempStyle
495
490
  });
496
491
  };
497
492
 
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) => {
493
+ var _templateObject;
494
+ 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
495
  let {
501
496
  $zIndex
502
497
  } = _ref;
@@ -912,7 +907,7 @@ const useWindowResize = (callback, delay) => {
912
907
  }, [debounceCallback]);
913
908
  };
914
909
 
915
- const _excluded = ["zIndex", "lowerSiblings", "upperSiblings", "drawTriggerDeps", "onError", "children"];
910
+ const _excluded = ["zIndex", "lowerSiblings", "upperSiblings", "onError", "children"];
916
911
  const Map = (_ref) => {
917
912
  let {
918
913
  zIndex,