@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.
- package/dist/components/Layer/RasterLayer.d.ts +1 -1
- package/dist/components/Layer/VectorLayer.d.ts +1 -1
- package/dist/components/Map/types.d.ts +0 -2
- package/dist/react.cjs.development.js +11 -16
- package/dist/react.cjs.development.js.map +1 -1
- package/dist/react.cjs.production.min.js +1 -1
- package/dist/react.cjs.production.min.js.map +1 -1
- package/dist/react.esm.js +11 -16
- package/dist/react.esm.js.map +1 -1
- package/package.json +3 -3
- package/dist/components/ErrorBoundary/styled.d.ts +0 -1
|
@@ -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(
|
|
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,
|
|
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, [
|
|
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
|
-
|
|
489
|
+
getLayerTempStyle: getLayerTempStyle
|
|
495
490
|
});
|
|
496
491
|
};
|
|
497
492
|
|
|
498
|
-
var _templateObject
|
|
499
|
-
const MapWrapper = /*#__PURE__*/styled.div(_templateObject
|
|
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", "
|
|
910
|
+
const _excluded = ["zIndex", "lowerSiblings", "upperSiblings", "onError", "children"];
|
|
916
911
|
const Map = (_ref) => {
|
|
917
912
|
let {
|
|
918
913
|
zIndex,
|