@evergis/react 3.1.1 → 3.1.2
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/ErrorBoundary/index.d.ts +12 -0
- package/dist/components/ErrorBoundary/styled.d.ts +1 -0
- package/dist/components/ErrorBoundary/types.d.ts +7 -0
- package/dist/components/Map/Map.d.ts +5 -0
- package/dist/components/Map/components/BuildingsLayer/BuildingsLayer.d.ts +3 -0
- package/dist/components/Map/components/BuildingsLayer/index.d.ts +2 -0
- package/dist/components/Map/components/BuildingsLayer/types.d.ts +4 -0
- package/dist/components/Map/components/Layer/Layer.d.ts +3 -0
- package/dist/components/Map/components/Layer/RasterLayer.d.ts +3 -0
- package/dist/components/Map/components/Layer/VectorLayer.d.ts +3 -0
- package/dist/components/Map/components/Layer/constants.d.ts +137 -0
- package/dist/components/Map/components/Layer/index.d.ts +2 -0
- package/dist/components/Map/components/Layer/types.d.ts +12 -0
- package/dist/components/Map/components/Layer/utils/getClientStyleItemPrefixSuffix.d.ts +3 -0
- package/dist/components/Map/components/index.d.ts +2 -0
- package/dist/components/Map/index.d.ts +3 -0
- package/dist/components/Map/styled.d.ts +4 -0
- package/dist/components/Map/types.d.ts +10 -0
- package/dist/components/MapContext/MapContext.d.ts +2 -0
- package/dist/components/MapContext/MapProvider.d.ts +3 -0
- package/dist/components/MapContext/index.d.ts +3 -0
- package/dist/components/MapContext/types.d.ts +138 -0
- package/dist/components/ResizablePanel/ResizablePanel.d.ts +3 -0
- package/dist/components/ResizablePanel/index.d.ts +2 -0
- package/dist/components/ResizablePanel/styled.d.ts +11 -0
- package/dist/components/ResizablePanel/types.d.ts +14 -0
- package/dist/components/ServerNotificationsContext/ServerNotificationsContext.d.ts +2 -0
- package/dist/components/ServerNotificationsContext/ServerNotificationsProvider.d.ts +3 -0
- package/dist/components/ServerNotificationsContext/index.d.ts +3 -0
- package/dist/components/ServerNotificationsContext/types.d.ts +12 -0
- package/dist/components/index.d.ts +5 -0
- package/dist/core/classification/findAttributeInExpression.d.ts +2 -0
- package/dist/core/classification/getActualExtrusionHeight.d.ts +2 -0
- package/dist/core/classification/index.d.ts +3 -0
- package/dist/core/classification/parseClientStyle.d.ts +2 -0
- package/dist/core/feature/convertSpToTurfFeature.d.ts +3 -0
- package/dist/core/feature/index.d.ts +1 -0
- package/dist/core/geometrySelection/drawModeToGeometrySelectionType.d.ts +3 -0
- package/dist/core/geometrySelection/getGeometrySelectionTurfFeature.d.ts +3 -0
- package/dist/core/geometrySelection/index.d.ts +2 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/types/index.d.ts +2 -0
- package/dist/core/types/map.d.ts +5 -0
- package/dist/core/types/styling.d.ts +15 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/map/index.d.ts +22 -0
- package/dist/hooks/map/useCurrentSelectedFeature.d.ts +2 -0
- package/dist/hooks/map/useEditingFeature.d.ts +1 -0
- package/dist/hooks/map/useEwktGeometry.d.ts +1 -0
- package/dist/hooks/map/useGeometryEditor.d.ts +2 -0
- package/dist/hooks/map/useGeometrySelection.d.ts +2 -0
- package/dist/hooks/map/useGeometrySelectionBuffer.d.ts +1 -0
- package/dist/hooks/map/useMapContext.d.ts +1 -0
- package/dist/hooks/map/useMapDraw/customModes.d.ts +2 -0
- package/dist/hooks/map/useMapDraw/customStyles.d.ts +58 -0
- package/dist/hooks/map/useMapDraw/index.d.ts +1 -0
- package/dist/hooks/map/useRedrawLayer.d.ts +1 -0
- package/dist/hooks/map/useSelectFeaturesCount.d.ts +1 -0
- package/dist/hooks/map/useSelectFeaturesCurrentIndex.d.ts +1 -0
- package/dist/hooks/map/useSelectFeaturesGeometryMasking.d.ts +1 -0
- package/dist/hooks/map/useSelectFeaturesInitialized.d.ts +1 -0
- package/dist/hooks/map/useSelectFeaturesLayerName.d.ts +1 -0
- package/dist/hooks/map/useSelectFeaturesPagination.d.ts +4 -0
- package/dist/hooks/map/useSelectFeaturesStatisticsActive.d.ts +1 -0
- package/dist/hooks/map/useSelectFeaturesTotalCounts.d.ts +1 -0
- package/dist/hooks/map/useSelectedFeatures.d.ts +2 -0
- package/dist/hooks/map/useUpdateCurrentFeature.d.ts +2 -0
- package/dist/hooks/map/useZoomToFeatures.d.ts +2 -0
- package/dist/hooks/map/useZoomToLayer.d.ts +7 -0
- package/dist/hooks/map/useZoomToPoint.d.ts +1 -0
- package/dist/hooks/serverNotifications/index.d.ts +2 -0
- package/dist/hooks/serverNotifications/useServerNotifications.d.ts +2 -0
- package/dist/hooks/serverNotifications/useServerNotificationsContext.d.ts +1 -0
- package/dist/hooks/useResizer.d.ts +28 -0
- package/dist/hooks/useToggle.d.ts +1 -1
- package/dist/jest.config.d.ts +11 -0
- package/dist/react.cjs.development.js +811 -5
- 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 +781 -6
- package/dist/react.esm.js.map +1 -1
- package/dist/utils/date.d.ts +2 -2
- package/dist/utils/geometryToWkt.d.ts +2 -0
- package/dist/utils/index.d.ts +1 -0
- package/package.json +30 -23
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.cjs.development.js","sources":["../src/hooks/useToggle.ts","../src/utils/date.ts","../src/utils/isNumeric.ts","../src/utils/isObject.ts"],"sourcesContent":["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 { 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 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"],"names":["useToggle","initial","state","setState","useState","undefined","toggle","useCallback","NO_CONTENT_VALUE","DateFormat","stringDateParsers","parseJSON","parseISO","rawDate","Date","getDate","parser","date","isValid","toDate","parsedDate","formatDate","dateFormat","ClientDefaultFormat","defaultValue","dateValue","format","toString","isNumeric","number","isNaN","parseFloat","isFinite","isObject","value","Array","isArray"],"mappings":";;;;;;;MAEaA,SAAS,GAAIC,OAAD;AACvB,QAAM,CAACC,KAAD,EAAQC,QAAR,IAAoBC,cAAQ,CAACH,OAAO,KAAKI,SAAZ,GAAwBJ,OAAxB,GAAkC,KAAnC,CAAlC;AAEA,QAAMK,MAAM,GAAGC,iBAAW,CAAC,MAAMJ,QAAQ,CAAC,CAACD,KAAF,CAAf,EAAyB,CAACA,KAAD,CAAzB,CAA1B;AAEA,SAAO,CAACA,KAAD,EAAQI,MAAR,EAAgBH,QAAhB,CAAP;AACD;;MCNYK,gBAAgB,GAAG,GAAzB;AAKP;AAAA,WAAYC;AACVA,EAAAA,iCAAA,qBAAA;AACAA,EAAAA,sBAAA,wBAAA;AACAA,EAAAA,iBAAA,iCAAA;AACAA,EAAAA,yBAAA,gBAAA;AACD,CALD,EAAYA,kBAAU,KAAVA,kBAAU,KAAA,CAAtB;;AAYA,MAAMC,iBAAiB,GAAmC,CAACC,iBAAD,EAAYC,gBAAZ,EAAsBC,OAAO,IAAI,IAAIC,IAAJ,CAASD,OAAT,CAAjC,CAA1D;AAEA,MAAaE,OAAO,GAAIF,OAAD;AACrB,MAAI,CAACA,OAAL,EAAc,OAAO,IAAP;;AAEd,MAAI,OAAOA,OAAP,KAAmB,QAAvB,EAAiC;AAC/B,SAAK,MAAMG,MAAX,IAAqBN,iBAArB,EAAwC;AACtC,YAAMO,IAAI,GAAGD,MAAM,CAACH,OAAD,CAAnB;;AAEA,UAAIK,eAAO,CAACD,IAAD,CAAX,EAAmB;AACjB,eAAOE,cAAM,CAACF,IAAD,CAAb;AACD;AACF;;AAED,WAAO,IAAP;AACD;;AAED,QAAMG,UAAU,GAAGD,cAAM,CAACN,OAAD,CAAzB;AAEA,SAAOK,eAAO,CAACE,UAAD,CAAP,GAAsBA,UAAtB,GAAmC,IAA1C;AACD,CAlBM;AAoBP,MAAaC,UAAU,GAAG,SAAbA,UAAa,CACxBJ,IADwB;MAExB;AAAEK,IAAAA,UAAU,GAAGb,kBAAU,CAACc,mBAA1B;AAA+CC,IAAAA,YAAY,GAAGhB;AAA9D,yBAAsG;AAEtG,QAAMiB,SAAS,GAAGR,IAAI,GAAGF,OAAO,CAACE,IAAD,CAAV,GAAmB,IAAzC;;AAEA,MAAIC,eAAO,CAACO,SAAD,CAAX,EAAwB;AACtB,WAAOC,cAAM,CAACD,SAAD,EAAoBH,UAApB,CAAb;AACD;;AAED,SAAOE,YAAY,CAACG,QAAb,EAAP;AACD,CAXM;;MCzCMC,SAAS,GAAIC,MAAD,IACvB,CAACC,KAAK,CAACC,UAAU,CAACF,MAAD,CAAX,CAAN,IAAwCG,QAAQ,CAACH,MAAD,CAD3C;;SCASI,SAAYC;AAC1B,SAAO,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,KAAK,IAAvC,IAA+C,CAACC,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAvD;AACD;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"react.cjs.development.js","sources":["../src/core/classification/findAttributeInExpression.ts","../src/core/classification/getActualExtrusionHeight.ts","../src/core/classification/parseClientStyle.ts","../src/core/feature/convertSpToTurfFeature.ts","../src/hooks/map/useMapContext.ts","../src/hooks/map/useCurrentSelectedFeature.ts","../src/components/MapContext/MapContext.ts","../src/components/MapContext/types.ts","../src/hooks/map/useGeometryEditor.ts","../src/hooks/map/useEditingFeature.ts","../src/hooks/map/useGeometrySelection.ts","../src/utils/date.ts","../src/utils/geometryToWkt.ts","../src/utils/isNumeric.ts","../src/utils/isObject.ts","../src/hooks/map/useEwktGeometry.ts","../src/hooks/map/useGeometrySelectionBuffer.ts","../src/hooks/map/useMapDraw/customModes.ts","../src/hooks/map/useMapDraw/customStyles.ts","../src/hooks/map/useMapDraw/index.ts","../src/hooks/map/useRedrawLayer.ts","../src/hooks/map/useSelectedFeatures.ts","../src/hooks/map/useSelectFeaturesCount.ts","../src/hooks/map/useSelectFeaturesCurrentIndex.ts","../src/hooks/map/useSelectFeaturesGeometryMasking.ts","../src/hooks/map/useSelectFeaturesInitialized.ts","../src/hooks/map/useSelectFeaturesLayerName.ts","../src/hooks/map/useSelectFeaturesPagination.ts","../src/hooks/map/useSelectFeaturesStatisticsActive.ts","../src/hooks/map/useSelectFeaturesTotalCounts.ts","../src/hooks/map/useUpdateCurrentFeature.ts","../src/hooks/map/useZoomToFeatures.ts","../src/hooks/map/useZoomToLayer.ts","../src/hooks/map/useZoomToPoint.ts","../src/hooks/serverNotifications/useServerNotifications.ts","../src/components/ServerNotificationsContext/ServerNotificationsContext.ts","../src/hooks/serverNotifications/useServerNotificationsContext.ts","../src/hooks/useResizer.ts","../src/hooks/useToggle.ts","../src/core/geometrySelection/drawModeToGeometrySelectionType.ts","../src/core/geometrySelection/getGeometrySelectionTurfFeature.ts"],"sourcesContent":["import { ExpressionSpecification } from \"mapbox-gl\";\n\nexport const findAttributeInExpression = (expression: ExpressionSpecification): string[] => {\n if (Array.isArray(expression) && expression.length === 2 && expression[0] === \"get\") {\n return [expression[1]];\n }\n\n return expression.reduce((acc: string[], curr) => {\n if (!Array.isArray(curr)) {\n return acc;\n }\n\n if (curr[0] === \"get\") {\n return [...new Set([...acc, curr[1]])];\n }\n\n return [...new Set([...acc, ...findAttributeInExpression(curr as ExpressionSpecification)])];\n }, []);\n};\n","import { AnyPaint } from \"mapbox-gl\";\n\nexport const getActualExtrusionHeight = (paint: AnyPaint) => {\n return Array.isArray(paint?.[\"fill-extrusion-height\"]) && paint?.[\"fill-extrusion-height\"][0] === \"+\"\n ? paint?.[\"fill-extrusion-height\"][1]\n : paint?.[\"fill-extrusion-height\"];\n};\n","import { isEmpty } from \"lodash\";\nimport { ExpressionSpecification } from \"mapbox-gl\";\n\nimport { findAttributeInExpression } from \"./findAttributeInExpression\";\n\nimport { ClientStyle } from \"../types\";\n\nexport const parseClientStyle = (style?: ClientStyle): string[] => {\n if (!style) {\n return [];\n }\n\n return style?.items?.reduce((acc: string[], curr) => {\n if (!curr.paint || isEmpty(curr.paint)) {\n return acc;\n }\n\n return Object.entries(curr.paint)?.reduce((paintAcc: string[], [, value]) => {\n if (!Array.isArray(value)) {\n return paintAcc;\n }\n\n return [...new Set([...paintAcc, ...findAttributeInExpression(value as ExpressionSpecification)])];\n }, []);\n }, []);\n};\n","import { GeometryType } from \"@evergis/api\";\nimport { multiLineString, multiPoint, point, polygon } from \"@turf/turf\";\nimport { Feature } from \"geojson\";\n\nimport { FeaturedDcExtendedGeometry } from \"../../components\";\n\nexport const convertSpToTurfFeature = (geometry?: FeaturedDcExtendedGeometry): Feature<any> | undefined => {\n if (!geometry) {\n return;\n }\n\n switch (geometry.type) {\n case GeometryType.Point:\n return point(geometry.coordinates);\n case GeometryType.Multipoint:\n return multiPoint(geometry.coordinates);\n case GeometryType.Polyline:\n return multiLineString(geometry.coordinates);\n case GeometryType.Polygon:\n case GeometryType.Envelope:\n return polygon(geometry.coordinates);\n default:\n }\n};\n","import { useContext } from \"react\";\n\nimport { MapContext } from \"../../components\";\n\nexport const useMapContext = () => {\n return useContext(MapContext);\n};\n","import { useMemo } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nimport { SelectedFeature } from \"../../components/MapContext\";\n\nexport const useCurrentSelectedFeature = (): SelectedFeature => {\n const { selectFeatures } = useMapContext();\n\n return useMemo(() => {\n return selectFeatures.features?.[selectFeatures.layerName]?.find(item => item.id === selectFeatures.currentId);\n }, [selectFeatures]);\n};\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\";\nimport { FeatureDc, LayerDefinitionDc, GeometryType } from \"@evergis/api\";\nimport { Feature } from \"geojson\";\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 enum GeometrySelectionTypes {\n Point = \"select_point\",\n Line = \"select_line\",\n Circle = \"select_circle\",\n Rect = \"select_rect\",\n Polygon = \"select_polygon\",\n Zones = \"zones_selection\",\n Coordinates = \"xy\",\n Route = \"selection_route\",\n}\n\nexport enum GeometrySelectionToolTypes {\n Replace = \"Replace\",\n Unite = \"Unite\",\n Crop = \"Crop\",\n Edit = \"Edit\",\n}\n\nexport type SelectionHistoryFeature = Feature;\n\nexport interface SelectionHistory {\n features: Array<SelectionHistoryFeature[]>;\n zones?: Array<Array<Feature[]>>;\n step: number;\n}\n\nexport enum GeometrySelectionZoneTypes {\n Walking = \"Walking\",\n Car = \"Car\",\n}\n\nexport enum GeometrySelectionRouteTypes {\n Walking = \"Walking\",\n Car = \"Car\",\n}\n\nexport interface GeometrySelectionSettings {\n zoneDuration?: number;\n zoneType?: GeometrySelectionZoneTypes;\n routeType?: GeometrySelectionRouteTypes;\n bufferRadius?: string;\n bufferMultiplier?: string;\n bufferInclude?: boolean;\n selectOutside?: boolean;\n}\n\nexport interface GeometrySelection {\n active?: boolean;\n loading?: boolean;\n type?: GeometrySelectionTypes;\n currentTool?: GeometrySelectionToolTypes;\n history?: SelectionHistory;\n editHistory?: SelectionHistory;\n isBuffer?: boolean;\n settings?: GeometrySelectionSettings;\n}\n\nexport enum GeometryEditorMode {\n Create,\n Edit,\n Transform,\n Expand,\n Unite,\n Subtract,\n}\n\nexport type Coordinates = [number, number];\n\nexport type Positions = Coordinates | Coordinates[] | Coordinates[][];\n\nexport interface GeometryEditor {\n active: boolean;\n geometryType?: GeometryType;\n layerName?: string;\n geometry?: Positions;\n mode?: GeometryEditorMode;\n}\n\nexport interface FeaturedDcExtendedGeometry extends Omit<FeatureDc[\"geometry\"], \"coordinates\"> {\n coordinates?: any;\n}\n\nexport interface FeatureDcExtended extends Omit<FeatureDc, \"geometry\"> {\n geometry: FeaturedDcExtendedGeometry;\n layer: string;\n}\n\nexport interface SelectedFeature extends FeatureDcExtended {\n layerDefinition: LayerDefinitionDc;\n}\n\nexport interface SelectFeatures {\n initialized?: boolean;\n layerName?: string;\n currentId: string | null;\n selectionOffset?: number;\n features: Record<string, SelectedFeature[]>;\n totalCounts: Record<string, number>;\n statisticsActive?: boolean;\n geometryMasking?: boolean;\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 globeProjection?: boolean;\n setGlobeProjection?: Dispatch<SetStateAction<boolean>>;\n geometrySelection?: GeometrySelection;\n setGeometrySelection?: Dispatch<SetStateAction<GeometrySelection>>;\n resetGeometrySelection?: VoidFunction;\n geometryEditor?: GeometryEditor;\n setGeometryEditor?: Dispatch<SetStateAction<GeometryEditor>>;\n resetGeometryEditor?: VoidFunction;\n selectFeatures?: SelectFeatures;\n setNextFeature?: VoidFunction;\n setPrevFeature?: VoidFunction;\n setSelectedFeatures?: (payload?: SelectFeatures[\"features\"], currentId?: any, offset?: number) => void;\n setSelectedFeaturesTotalCounts?: Dispatch<SetStateAction<SelectFeatures[\"totalCounts\"]>>;\n setSelectFeaturesInitialized?: Dispatch<SetStateAction<boolean>>;\n setSelectFeaturesLayerName?: Dispatch<SetStateAction<string>>;\n setSelectFeaturesStatisticsActive?: Dispatch<SetStateAction<boolean>>;\n setSelectFeaturesGeometryMasking?: Dispatch<SetStateAction<boolean>>;\n updateCurrentFeature?: Dispatch<SetStateAction<Partial<SelectedFeature>>>;\n resetSelectedFeatures?: VoidFunction;\n}\n\nexport interface MapProviderProps extends PropsWithChildren {\n basemapItems: BaseMapItem[];\n defaultBasemap: string;\n}\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nimport { GeometryEditor } from \"../../components\";\n\nexport const useGeometryEditor = (): [GeometryEditor, (state: Partial<GeometryEditor>) => void] => {\n const { geometryEditor, setGeometryEditor } = useMapContext();\n\n const update = useCallback(\n (newState: Partial<GeometryEditor>) => {\n setGeometryEditor(prevState => ({\n ...prevState,\n ...newState,\n }));\n },\n [setGeometryEditor],\n );\n\n return [geometryEditor, update];\n};\n","import { useMemo } from \"react\";\n\nimport { GeometryEditorMode } from \"../../components/MapContext\";\n\nimport { useGeometryEditor } from \"./useGeometryEditor\";\nimport { useCurrentSelectedFeature } from \"./useCurrentSelectedFeature\";\n\nexport const useEditingFeature = (): boolean => {\n const [{ layerName, active, mode }] = useGeometryEditor();\n const currentSelectedFeature = useCurrentSelectedFeature();\n\n return useMemo(() => {\n return (\n active &&\n ((mode === GeometryEditorMode.Edit && layerName === currentSelectedFeature?.layer) ||\n mode === GeometryEditorMode.Create)\n );\n }, [active, currentSelectedFeature, layerName, mode]);\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nimport { GeometrySelection } from \"../../components\";\n\nexport const useGeometrySelection = (): [GeometrySelection, (state: Partial<GeometrySelection>) => void] => {\n const { geometrySelection, setGeometrySelection } = useMapContext();\n\n const updateGeometrySelection = useCallback(\n (newState: Partial<GeometrySelection>) => {\n setGeometrySelection(prevState => ({\n ...prevState,\n ...newState,\n }));\n },\n [setGeometrySelection],\n );\n\n return [geometrySelection, updateGeometrySelection];\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","import { stringify } from \"wkt\";\n\nimport { SelectionHistoryFeature } from \"../components\";\n\nexport const geometryToWkt = (features: SelectionHistoryFeature[] = []): string => {\n if (features.length === 0) {\n return \"\";\n }\n\n return stringify(features[0]);\n};\n","export const isNumeric = (number: string | number): boolean =>\n !isNaN(parseFloat(number as string)) && isFinite(number as number);\n","export function isObject<T>(value: T | object): value is object {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import { useMemo } from \"react\";\nimport { isEmpty } from \"lodash\";\n\nimport { useGeometrySelection } from \"./useGeometrySelection\";\nimport { geometryToWkt } from \"../../utils\";\n\nimport { GeometrySelectionTypes } from \"../../components\";\n\nexport const useEwktGeometry = () => {\n const [{ history, type }] = useGeometrySelection();\n\n return useMemo(() => {\n if (history.step === -1) {\n return \"\";\n }\n\n return type === GeometrySelectionTypes.Zones\n ? !isEmpty(history.zones[history.step]?.[0])\n ? `SRID=3857;${geometryToWkt(history.zones[history.step]?.[0])}`\n : `SRID=3857;${geometryToWkt(history.features[history.step])}`\n : `SRID=3857;${geometryToWkt(history.features[history.step])}`;\n }, [history.features, history.step, history.zones, type]);\n};\n","import { useMemo } from \"react\";\n\nimport { useGeometrySelection } from \"./useGeometrySelection\";\n\nexport const useGeometrySelectionBuffer = (): string | undefined => {\n const [\n {\n settings: { bufferRadius, bufferMultiplier },\n isBuffer,\n },\n ] = useGeometrySelection();\n\n return useMemo((): string | undefined => {\n if (!isBuffer || !bufferRadius) {\n return undefined;\n }\n\n return Number((+bufferRadius || 0) * +bufferMultiplier).toFixed(2);\n }, [isBuffer, bufferRadius, bufferMultiplier]);\n};\n","import MapboxDraw, { DrawCustomMode } from \"@mapbox/mapbox-gl-draw\";\n\nimport { ExtendedMapboxDrawModes } from \"../../../core\";\n\nexport const customModes = MapboxDraw.modes as ExtendedMapboxDrawModes;\n\nconst StaticMode = {} as DrawCustomMode;\n\nStaticMode.onSetup = function () {\n this.setActionableState(undefined);\n\n return {};\n};\n\nStaticMode.toDisplayFeatures = function (state, geojson, display) {\n display(geojson);\n};\n\ncustomModes.static = StaticMode;\n","export const customStyles = [\n {\n id: \"gl-draw-point\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"]],\n paint: {\n \"circle-radius\": 5,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"highlight-inactive-points\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"feature\"], [\"==\", \"active\", \"false\"]],\n paint: {\n \"circle-radius\": 5,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"highlight-active-points\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"feature\"], [\"==\", \"active\", \"true\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#fbb03b\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 1,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"gl-draw-polygon-fill-static\",\n type: \"fill\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n paint: {\n \"fill-color\": \"#D20C0C\",\n \"fill-outline-color\": \"#D20C0C\",\n \"fill-opacity\": 0.1,\n },\n },\n {\n id: \"gl-draw-line\",\n type: \"line\",\n filter: [\"all\", [\"==\", \"$type\", \"LineString\"]],\n layout: {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n },\n paint: {\n \"line-color\": \"#D20C0C\",\n \"line-dasharray\": [0.2, 2],\n \"line-width\": 2,\n },\n },\n {\n id: \"gl-draw-polygon-fill\",\n type: \"fill\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n paint: {\n \"fill-color\": \"#D20C0C\",\n \"fill-outline-color\": \"#D20C0C\",\n \"fill-opacity\": 0.1,\n },\n },\n {\n id: \"gl-draw-polygon-midpoint\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"meta\", \"midpoint\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#fbb03b\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 1,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n {\n id: \"gl-draw-polygon-stroke-active\",\n type: \"line\",\n filter: [\"all\", [\"==\", \"$type\", \"Polygon\"]],\n layout: {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n },\n paint: {\n \"line-color\": \"#D20C0C\",\n \"line-dasharray\": [0.2, 2],\n \"line-width\": 2,\n },\n },\n {\n id: \"gl-draw-polygon-and-line-vertex-active\",\n type: \"circle\",\n filter: [\"all\", [\"==\", \"meta\", \"vertex\"], [\"==\", \"$type\", \"Point\"]],\n paint: {\n \"circle-radius\": 3,\n \"circle-color\": \"#D20C0C\",\n \"circle-stroke-color\": \"#FFFFFF\",\n \"circle-stroke-width\": 3,\n \"circle-stroke-opacity\": 0.3,\n },\n },\n];\n","import { useEffect } from \"react\";\nimport MapboxDraw from \"@mapbox/mapbox-gl-draw\";\n\nimport { customModes } from \"./customModes\";\nimport { customStyles } from \"./customStyles\";\n\nimport { useMapContext } from \"../useMapContext\";\n\nconst draw = new MapboxDraw({\n displayControlsDefault: false,\n styles: customStyles,\n modes: customModes,\n defaultMode: \"draw_point\",\n controls: {\n trash: true,\n },\n});\n\nexport const useMapDraw = (triggerDeps: Array<unknown> = []) => {\n const { map, draw: drawContext, loaded, basemapName } = useMapContext();\n\n useEffect(() => {\n if (!loaded || !map.current) {\n return;\n }\n\n drawContext.current = draw;\n map.current.addControl(drawContext.current);\n }, [loaded]); // eslint-disable-line\n\n useEffect(() => {\n if (map.current && map.current.hasControl(drawContext.current)) {\n map.current.removeControl(drawContext.current);\n map.current.addControl(drawContext.current);\n }\n }, [basemapName, ...triggerDeps]); // eslint-disable-line\n};\n","import { useCallback } from \"react\";\nimport { VectorSourceImpl } from \"mapbox-gl\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useRedrawLayer = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (layerName: string) => {\n const layerTileSource: VectorSourceImpl = map.current.getSource(layerName);\n\n layerTileSource.setTiles(layerTileSource.tiles);\n },\n [map],\n );\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nimport { SelectedFeature } from \"../../components\";\n\nexport const useSelectedFeatures = (): [\n Record<string, SelectedFeature[]>,\n (features: Record<string, SelectedFeature[]>) => void,\n] => {\n const { selectFeatures, setSelectedFeatures } = useMapContext();\n\n const updatSelectedFeatures = useCallback(\n (features: Record<string, SelectedFeature[]>) => {\n setSelectedFeatures(features);\n },\n [setSelectedFeatures],\n );\n\n return [selectFeatures.features ?? ({} as Record<string, SelectedFeature[]>), updatSelectedFeatures];\n};\n","import { useMemo } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useSelectFeaturesCount = (): number => {\n const { selectFeatures } = useMapContext();\n\n return useMemo(() => {\n return selectFeatures.features?.[selectFeatures.layerName]?.length ?? 0;\n }, [selectFeatures]);\n};\n","import { useMemo } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useSelectFeaturesCurrentIndex = (): number => {\n const { selectFeatures } = useMapContext();\n\n return useMemo(() => {\n return selectFeatures.features?.[selectFeatures.layerName]?.length\n ? selectFeatures.features?.[selectFeatures.layerName]?.findIndex(\n feature => feature.id === selectFeatures.currentId,\n )\n : -1;\n }, [selectFeatures]);\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useSelectFeaturesGeometryMasking = (): [boolean, (state: boolean) => void] => {\n const { selectFeatures, setSelectFeaturesGeometryMasking } = useMapContext();\n\n const update = useCallback(\n (state: boolean) => {\n setSelectFeaturesGeometryMasking(state);\n },\n [setSelectFeaturesGeometryMasking],\n );\n\n return [selectFeatures.geometryMasking, update];\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useSelectFeaturesInitialized = (): [boolean, (value: boolean) => void] => {\n const { selectFeatures, setSelectFeaturesInitialized } = useMapContext();\n\n const update = useCallback(\n (state: boolean) => {\n setSelectFeaturesInitialized(state);\n },\n [setSelectFeaturesInitialized],\n );\n\n return [selectFeatures.initialized, update];\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useSelectFeaturesLayerName = (): [string, (name?: string) => void] => {\n const { selectFeatures, setSelectFeaturesLayerName } = useMapContext();\n\n const update = useCallback(\n (name: string) => {\n setSelectFeaturesLayerName(name);\n },\n [setSelectFeaturesLayerName],\n );\n\n return [selectFeatures.layerName, update];\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useSelectFeaturesPagination = () => {\n const { setNextFeature, setPrevFeature } = useMapContext();\n\n const onNext = useCallback(() => {\n setNextFeature();\n }, [setNextFeature]);\n\n const onPrev = useCallback(() => {\n setPrevFeature();\n }, [setPrevFeature]);\n\n return { onNext, onPrev } as const;\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useSelectFeaturesStatisticsActive = (): [boolean, (state: boolean) => void] => {\n const { selectFeatures, setSelectFeaturesStatisticsActive } = useMapContext();\n\n const update = useCallback(\n (state: boolean) => {\n setSelectFeaturesStatisticsActive(state);\n },\n [setSelectFeaturesStatisticsActive],\n );\n\n return [selectFeatures.statisticsActive, update];\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useSelectFeaturesTotalCounts = (): [\n Record<string, number>,\n (totalCounts: Record<string, number>) => void,\n] => {\n const { selectFeatures, setSelectedFeaturesTotalCounts } = useMapContext();\n\n const update = useCallback(\n (totalCounts: Record<string, number>) => {\n setSelectedFeaturesTotalCounts(totalCounts);\n },\n [setSelectedFeaturesTotalCounts],\n );\n\n return [selectFeatures.totalCounts ?? {}, update];\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nimport { SelectedFeature } from \"../../components\";\n\nexport const useUpdateCurrentFeature = () => {\n const { updateCurrentFeature } = useMapContext();\n\n return useCallback(\n (values: Partial<SelectedFeature>) => {\n updateCurrentFeature(values);\n },\n [updateCurrentFeature],\n );\n};\n","import { useCallback } from \"react\";\nimport { bbox } from \"@turf/turf\";\n\nimport { useMapContext } from \"./useMapContext\";\nimport { convertSpToTurfFeature } from \"../../core\";\n\nimport { FeatureDcExtended } from \"../../components\";\n\nexport const useZoomToFeatures = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (features?: FeatureDcExtended[], 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\";\nimport { BulkExtentsDc } from \"@evergis/api\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nconst DEFAULT_PADDING = 50;\n\ninterface ZoomToLayerOptions {\n discardFilters?: boolean;\n padding?: number;\n}\n\nexport const useZoomToLayer = () => {\n const { map } = useMapContext();\n\n return useCallback(\n async (bulkExtent: BulkExtentsDc, options?: ZoomToLayerOptions) => {\n if (!bulkExtent || !bulkExtent.overall) {\n return;\n }\n\n map.current.fitBounds(\n [...bulkExtent.overall.coordinates[0], ...bulkExtent.overall.coordinates[1]] as [\n number,\n number,\n number,\n number,\n ],\n { padding: options?.padding ?? DEFAULT_PADDING },\n );\n },\n [map],\n );\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useZoomToPoint = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (options, callback?: VoidFunction) => {\n if (map.current) {\n if (callback) {\n map.current.once(\"moveend\", () => {\n callback();\n });\n }\n\n map.current.flyTo(options);\n } else {\n callback?.();\n }\n },\n [map],\n );\n};\n","import { useEffect, useRef, useState } from \"react\";\nimport { HubConnection, HubConnectionBuilder, LogLevel } from \"@microsoft/signalr\";\n\nexport const useServerNotifications = (url: string, initialized: boolean): HubConnection | null => {\n const hubConnection = useRef<HubConnection | null>(null);\n const [connection, setConnection] = useState<HubConnection | null>(null);\n\n useEffect(() => {\n if (!initialized) {\n return;\n }\n\n hubConnection.current = new HubConnectionBuilder()\n .withUrl(url, {\n withCredentials: true,\n })\n .configureLogging(LogLevel.Information)\n .build();\n\n hubConnection.current\n .start()\n .then(() => console.info(\"Серверные нотификации подключены\"))\n .catch(err => console.info(\"Ошибка:\", err))\n .finally(() => setConnection(hubConnection.current));\n }, [initialized]); // eslint-disable-line\n\n useEffect(() => {\n if (!connection || connection.state !== \"Connected\") {\n return;\n }\n\n connection\n .invoke(\"SubscribeNotifications\", [])\n .then(() => console.info(\"Подписка `SubscribeNotifications` оформлена\"))\n .catch(err => console.info(\"Ошибка подписки `SubscribeNotifications`:\", err));\n }, [connection]);\n\n return connection;\n};\n","import { createContext } from \"react\";\n\nimport { ServerNotificationsContextProps } from \"./types\";\n\nexport const ServerNotificationsContext = createContext<ServerNotificationsContextProps>({});\n","import { useContext } from \"react\";\n\nimport { ServerNotificationsContext } from \"../../components/ServerNotificationsContext/ServerNotificationsContext\";\n\nexport const useServerNotificationsContext = () => {\n return useContext(ServerNotificationsContext);\n};\n","import { useCallback, useLayoutEffect, useRef } from \"react\";\nimport { isNil } from \"lodash\";\n\nexport enum VerticalPosition {\n Top = \"top\",\n Bottom = \"bottom\",\n}\n\nexport enum HorizontalPosition {\n Left = \"left\",\n Right = \"right\",\n}\n\nexport interface ResizerOptions {\n handleVerticalPosition?: VerticalPosition;\n handleHorizontalPosition?: HorizontalPosition;\n minWidth?: number;\n maxWidth?: number;\n minHeight?: number;\n maxHeight?: number;\n horizontal?: boolean;\n vertical?: boolean;\n useResize?: boolean;\n onResize?: (width: number, height: number) => void;\n onResizeEnd?: (width: number, height: number) => void;\n onResizeStart?: (width: number, height: number) => void;\n}\n\nexport const useResizer = ({\n handleVerticalPosition,\n handleHorizontalPosition,\n minWidth = Number.MIN_SAFE_INTEGER,\n maxWidth = Number.MAX_SAFE_INTEGER,\n horizontal = true,\n minHeight = Number.MIN_SAFE_INTEGER,\n maxHeight = Number.MAX_SAFE_INTEGER,\n vertical = true,\n useResize = false,\n onResize,\n onResizeEnd,\n onResizeStart,\n}: ResizerOptions) => {\n const containerRef = useRef<HTMLDivElement>();\n const verticalHandleRef = useRef<HTMLDivElement>();\n const horizontalHandleRef = useRef<HTMLDivElement>();\n\n const updateSizes = useCallback(\n (width: number, height: number) => {\n let newWidth = width;\n let newHeight = height;\n\n if (horizontal && newWidth < minWidth) {\n newWidth = minWidth;\n }\n\n if (horizontal && newWidth > Math.min(window.innerWidth - horizontalHandleRef.current?.clientWidth, maxWidth)) {\n newWidth = maxWidth;\n }\n\n if (vertical && newHeight < minHeight) {\n newHeight = minHeight;\n }\n\n if (vertical && newHeight > Math.min(window.innerHeight - verticalHandleRef.current?.clientHeight, maxHeight)) {\n newHeight = maxHeight;\n }\n\n if (horizontal) {\n requestAnimationFrame(() => {\n if (!isNil(containerRef.current)) {\n containerRef.current.style.width = `${newWidth}px`;\n }\n });\n }\n\n if (vertical) {\n requestAnimationFrame(() => {\n if (!isNil(containerRef.current)) {\n containerRef.current.style.height = `${newHeight}px`;\n }\n });\n }\n\n onResize?.(newWidth, newHeight);\n },\n [minWidth, maxWidth, minHeight, maxHeight, horizontal, vertical], // eslint-disable-line\n );\n\n const onPointerMove = useCallback(\n (pointerMoveEvent: PointerEvent) => {\n const { x, y } = containerRef.current?.getBoundingClientRect();\n const reverseHorizontal = handleHorizontalPosition === HorizontalPosition.Right;\n const reverseVertical = handleVerticalPosition === VerticalPosition.Bottom;\n\n const newWidth = reverseHorizontal\n ? pointerMoveEvent.pageX - x\n : containerRef.current?.offsetWidth + x - pointerMoveEvent.pageX;\n const newHeight = reverseVertical\n ? pointerMoveEvent.pageY - y\n : containerRef.current?.offsetHeight + y - pointerMoveEvent.pageY;\n\n document.body.style.userSelect = \"none\";\n\n updateSizes(newWidth, newHeight);\n },\n [updateSizes],\n );\n\n const onPointerDown = useCallback(() => {\n const onPointerUp = () => {\n document.body.style.userSelect = \"initial\";\n document.body.removeEventListener(\"pointermove\", onPointerMove);\n\n if (!isNil(containerRef.current)) {\n onResizeEnd?.(containerRef.current.offsetWidth, containerRef.current.offsetHeight);\n }\n };\n\n if (!isNil(containerRef.current)) {\n onResizeStart?.(containerRef.current.offsetWidth, containerRef.current.offsetHeight);\n }\n\n document.body.addEventListener(\"pointermove\", onPointerMove);\n document.body.addEventListener(\"pointerup\", onPointerUp, { once: true });\n }, [onPointerMove]); // eslint-disable-line\n\n useLayoutEffect(() => {\n if (useResize && !isNil(containerRef.current)) {\n updateSizes(containerRef.current.offsetWidth, containerRef.current.offsetHeight);\n }\n }, [updateSizes, useResize]);\n\n return {\n containerRef,\n verticalHandleRef,\n horizontalHandleRef,\n onPointerDown,\n };\n};\n","import { useCallback, useState } from \"react\";\n\nexport const useToggle = (initial?: boolean): [boolean, VoidFunction, (value: boolean) => void] => {\n const [state, setState] = useState(initial !== undefined ? initial : false);\n\n const toggle = useCallback(() => setState(!state), [state]);\n\n return [state, toggle, setState];\n};\n","import { DrawMode } from \"@mapbox/mapbox-gl-draw\";\n\nimport { GeometrySelectionTypes } from \"../../components\";\n\nexport const drawModeToGeometrySelectionType = (mode: DrawMode | string): GeometrySelectionTypes => {\n switch (mode) {\n case \"draw_point\":\n return GeometrySelectionTypes.Point;\n case \"draw_polygon\":\n return GeometrySelectionTypes.Polygon;\n case \"draw_line_string\":\n return GeometrySelectionTypes.Line;\n default:\n return GeometrySelectionTypes.Point;\n }\n};\n","import { toMercator, toWgs84, point, polygon, lineString } from \"@turf/turf\";\nimport { Feature, LineString, Point, Polygon, Position } from \"geojson\";\n\nimport { GeometrySelectionTypes } from \"../../components\";\n\nexport const getGeometrySelectionTurfFeature = (\n coordinates: Position | Position[] | Position[][] | Position[][][],\n selectionType: GeometrySelectionTypes,\n toWgs?: boolean,\n): Feature<Point | LineString | Polygon> => {\n if (toWgs) {\n switch (selectionType) {\n case GeometrySelectionTypes.Point:\n return toWgs84(point(coordinates as Position));\n case GeometrySelectionTypes.Polygon:\n return toWgs84(polygon(coordinates as Position[][]));\n case GeometrySelectionTypes.Line:\n return toWgs84(lineString(coordinates as Position[]));\n default:\n }\n }\n\n switch (selectionType) {\n case GeometrySelectionTypes.Point:\n return toMercator(point(coordinates as Position));\n case GeometrySelectionTypes.Polygon:\n return toMercator(polygon(coordinates as Position[][]));\n case GeometrySelectionTypes.Line:\n return toMercator(lineString(coordinates as Position[]));\n default:\n }\n};\n"],"names":["findAttributeInExpression","expression","Array","isArray","length","reduce","acc","curr","Set","getActualExtrusionHeight","paint","parseClientStyle","style","items","isEmpty","Object","entries","paintAcc","value","convertSpToTurfFeature","geometry","type","GeometryType","Point","point","coordinates","Multipoint","multiPoint","Polyline","multiLineString","Polygon","Envelope","polygon","useMapContext","useContext","MapContext","useCurrentSelectedFeature","selectFeatures","useMemo","features","layerName","find","item","id","currentId","createContext","BaseMapTheme","GeometrySelectionTypes","GeometrySelectionToolTypes","GeometrySelectionZoneTypes","GeometrySelectionRouteTypes","GeometryEditorMode","useGeometryEditor","geometryEditor","setGeometryEditor","update","useCallback","newState","prevState","useEditingFeature","active","mode","currentSelectedFeature","Edit","layer","Create","useGeometrySelection","geometrySelection","setGeometrySelection","updateGeometrySelection","NO_CONTENT_VALUE","DateFormat","stringDateParsers","parseJSON","parseISO","rawDate","Date","getDate","parser","date","isValid","toDate","parsedDate","formatDate","dateFormat","ClientDefaultFormat","defaultValue","dateValue","format","toString","geometryToWkt","stringify","isNumeric","number","isNaN","parseFloat","isFinite","isObject","useEwktGeometry","history","step","Zones","zones","useGeometrySelectionBuffer","settings","bufferRadius","bufferMultiplier","isBuffer","undefined","Number","toFixed","customModes","MapboxDraw","modes","StaticMode","onSetup","setActionableState","toDisplayFeatures","state","geojson","display","static","customStyles","filter","layout","draw","displayControlsDefault","styles","defaultMode","controls","trash","useMapDraw","triggerDeps","map","drawContext","loaded","basemapName","useEffect","current","addControl","hasControl","removeControl","useRedrawLayer","layerTileSource","getSource","setTiles","tiles","useSelectedFeatures","setSelectedFeatures","updatSelectedFeatures","useSelectFeaturesCount","useSelectFeaturesCurrentIndex","findIndex","feature","useSelectFeaturesGeometryMasking","setSelectFeaturesGeometryMasking","geometryMasking","useSelectFeaturesInitialized","setSelectFeaturesInitialized","initialized","useSelectFeaturesLayerName","setSelectFeaturesLayerName","name","useSelectFeaturesPagination","setNextFeature","setPrevFeature","onNext","onPrev","useSelectFeaturesStatisticsActive","setSelectFeaturesStatisticsActive","statisticsActive","useSelectFeaturesTotalCounts","setSelectedFeaturesTotalCounts","totalCounts","useUpdateCurrentFeature","updateCurrentFeature","values","useZoomToFeatures","padding","currentFeatureCenter","bbox","fitBounds","DEFAULT_PADDING","useZoomToLayer","bulkExtent","options","overall","useZoomToPoint","callback","once","flyTo","useServerNotifications","url","hubConnection","useRef","connection","setConnection","useState","HubConnectionBuilder","withUrl","withCredentials","configureLogging","LogLevel","Information","build","start","then","console","info","catch","err","finally","invoke","ServerNotificationsContext","useServerNotificationsContext","VerticalPosition","HorizontalPosition","useResizer","handleVerticalPosition","handleHorizontalPosition","minWidth","MIN_SAFE_INTEGER","maxWidth","MAX_SAFE_INTEGER","horizontal","minHeight","maxHeight","vertical","useResize","onResize","onResizeEnd","onResizeStart","containerRef","verticalHandleRef","horizontalHandleRef","updateSizes","width","height","newWidth","newHeight","Math","min","window","innerWidth","clientWidth","innerHeight","clientHeight","requestAnimationFrame","isNil","onPointerMove","pointerMoveEvent","x","y","getBoundingClientRect","reverseHorizontal","Right","reverseVertical","Bottom","pageX","offsetWidth","pageY","offsetHeight","document","body","userSelect","onPointerDown","onPointerUp","removeEventListener","addEventListener","useLayoutEffect","useToggle","initial","setState","toggle","drawModeToGeometrySelectionType","Line","getGeometrySelectionTurfFeature","selectionType","toWgs","toWgs84","lineString","toMercator"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),e=require("date-fns");const r="—";var s;(s=exports.DateFormat||(exports.DateFormat={})).ClientDefaultFormat="dd.MM.yyyy HH:mm",s.DateTime="dd.MM.yyyy HH:mm:ss",s.UTC="yyyy-MM-dd'T'HH:mm:ss.sssxxx",s.AxisTooltip="d MMMM yyyy";const o=[e.parseJSON,e.parseISO,t=>new Date(t)],a=t=>{if(!t)return null;if("string"==typeof t){for(const r of o){const s=r(t);if(e.isValid(s))return e.toDate(s)}return null}const r=e.toDate(t);return e.isValid(r)?r:null};exports.NO_CONTENT_VALUE=r,exports.formatDate=function(t,s){let{dateFormat:o=exports.DateFormat.ClientDefaultFormat,defaultValue:i=r}=void 0===s?{}:s;const n=t?a(t):null;return e.isValid(n)?e.format(n,o):i.toString()},exports.getDate=a,exports.isNumeric=t=>!isNaN(parseFloat(t))&&isFinite(t),exports.isObject=function(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)},exports.useToggle=e=>{const[r,s]=t.useState(void 0!==e&&e),o=t.useCallback(()=>s(!r),[r]);return[r,o,s]};
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("lodash"),r=require("@evergis/api"),o=require("@turf/turf"),n=require("react");e(n),require("styled-components"),require("react-map-gl/mapbox"),require("@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css"),require("find-and");var i=require("date-fns"),l=require("wkt"),s=e(require("@mapbox/mapbox-gl-draw")),a=require("@microsoft/signalr");require("mapbox-gl/dist/mapbox-gl.css");const u=e=>Array.isArray(e)&&2===e.length&&"get"===e[0]?[e[1]]:e.reduce((e,t)=>Array.isArray(t)?"get"===t[0]?[...new Set([...e,t[1]])]:[...new Set([...e,...u(t)])]:e,[]),c=e=>{if(e)switch(e.type){case r.GeometryType.Point:return o.point(e.coordinates);case r.GeometryType.Multipoint:return o.multiPoint(e.coordinates);case r.GeometryType.Polyline:return o.multiLineString(e.coordinates);case r.GeometryType.Polygon:case r.GeometryType.Envelope:return o.polygon(e.coordinates)}};function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e}).apply(this,arguments)}const p=()=>n.useContext(y),f=()=>{const{selectFeatures:e}=p();return n.useMemo(()=>{var t;return null==(t=e.features)||null==(t=t[e.layerName])?void 0:t.find(t=>t.id===e.currentId)},[e])},y=n.createContext({});var m,g,x,F,v,C;!function(e){e.Light="light",e.Dark="dark"}(m||(m={})),function(e){e.Point="select_point",e.Line="select_line",e.Circle="select_circle",e.Rect="select_rect",e.Polygon="select_polygon",e.Zones="zones_selection",e.Coordinates="xy",e.Route="selection_route"}(g||(g={})),function(e){e.Replace="Replace",e.Unite="Unite",e.Crop="Crop",e.Edit="Edit"}(x||(x={})),function(e){e.Walking="Walking",e.Car="Car"}(F||(F={})),function(e){e.Walking="Walking",e.Car="Car"}(v||(v={})),function(e){e[e.Create=0]="Create",e[e.Edit=1]="Edit",e[e.Transform=2]="Transform",e[e.Expand=3]="Expand",e[e.Unite=4]="Unite",e[e.Subtract=5]="Subtract"}(C||(C={}));const h=()=>{const{geometryEditor:e,setGeometryEditor:t}=p();return[e,n.useCallback(e=>{t(t=>d({},t,e))},[t])]},b=()=>{const{geometrySelection:e,setGeometrySelection:t}=p();return[e,n.useCallback(e=>{t(t=>d({},t,e))},[t])]},S="—";var k;(k=exports.DateFormat||(exports.DateFormat={})).ClientDefaultFormat="dd.MM.yyyy HH:mm",k.DateTime="dd.MM.yyyy HH:mm:ss",k.UTC="yyyy-MM-dd'T'HH:mm:ss.sssxxx",k.AxisTooltip="d MMMM yyyy";const w=[i.parseJSON,i.parseISO,e=>new Date(e)],E=e=>{if(!e)return null;if("string"==typeof e){for(const t of w){const r=t(e);if(i.isValid(r))return i.toDate(r)}return null}const t=i.toDate(e);return i.isValid(t)?t:null},N=function(e){return void 0===e&&(e=[]),0===e.length?"":l.stringify(e[0])},P=s.modes;P.static={onSetup:function(){return this.setActionableState(void 0),{}},toDisplayFeatures:function(e,t,r){r(t)}};const M=new s({displayControlsDefault:!1,styles:[{id:"gl-draw-point",type:"circle",filter:["all",["==","$type","Point"]],paint:{"circle-radius":5,"circle-color":"#D20C0C","circle-stroke-color":"#FFFFFF","circle-stroke-width":3,"circle-stroke-opacity":.3}},{id:"highlight-inactive-points",type:"circle",filter:["all",["==","$type","Point"],["==","meta","feature"],["==","active","false"]],paint:{"circle-radius":5,"circle-color":"#D20C0C","circle-stroke-color":"#FFFFFF","circle-stroke-width":3,"circle-stroke-opacity":.3}},{id:"highlight-active-points",type:"circle",filter:["all",["==","$type","Point"],["==","meta","feature"],["==","active","true"]],paint:{"circle-radius":3,"circle-color":"#fbb03b","circle-stroke-color":"#FFFFFF","circle-stroke-width":1,"circle-stroke-opacity":.3}},{id:"gl-draw-polygon-fill-static",type:"fill",filter:["all",["==","$type","Polygon"]],paint:{"fill-color":"#D20C0C","fill-outline-color":"#D20C0C","fill-opacity":.1}},{id:"gl-draw-line",type:"line",filter:["all",["==","$type","LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#D20C0C","line-dasharray":[.2,2],"line-width":2}},{id:"gl-draw-polygon-fill",type:"fill",filter:["all",["==","$type","Polygon"]],paint:{"fill-color":"#D20C0C","fill-outline-color":"#D20C0C","fill-opacity":.1}},{id:"gl-draw-polygon-midpoint",type:"circle",filter:["all",["==","$type","Point"],["==","meta","midpoint"]],paint:{"circle-radius":3,"circle-color":"#fbb03b","circle-stroke-color":"#FFFFFF","circle-stroke-width":1,"circle-stroke-opacity":.3}},{id:"gl-draw-polygon-stroke-active",type:"line",filter:["all",["==","$type","Polygon"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#D20C0C","line-dasharray":[.2,2],"line-width":2}},{id:"gl-draw-polygon-and-line-vertex-active",type:"circle",filter:["all",["==","meta","vertex"],["==","$type","Point"]],paint:{"circle-radius":3,"circle-color":"#D20C0C","circle-stroke-color":"#FFFFFF","circle-stroke-width":3,"circle-stroke-opacity":.3}}],modes:P,defaultMode:"draw_point",controls:{trash:!0}}),T=n.createContext({});var D,R;(D=exports.VerticalPosition||(exports.VerticalPosition={})).Top="top",D.Bottom="bottom",(R=exports.HorizontalPosition||(exports.HorizontalPosition={})).Left="left",R.Right="right",exports.NO_CONTENT_VALUE=S,exports.convertSpToTurfFeature=c,exports.drawModeToGeometrySelectionType=e=>{switch(e){case"draw_point":return g.Point;case"draw_polygon":return g.Polygon;case"draw_line_string":return g.Line;default:return g.Point}},exports.findAttributeInExpression=u,exports.formatDate=function(e,t){let{dateFormat:r=exports.DateFormat.ClientDefaultFormat,defaultValue:o=S}=void 0===t?{}:t;const n=e?E(e):null;return i.isValid(n)?i.format(n,r):o.toString()},exports.geometryToWkt=N,exports.getActualExtrusionHeight=e=>Array.isArray(null==e?void 0:e["fill-extrusion-height"])&&"+"===(null==e?void 0:e["fill-extrusion-height"][0])?null==e?void 0:e["fill-extrusion-height"][1]:null==e?void 0:e["fill-extrusion-height"],exports.getDate=E,exports.getGeometrySelectionTurfFeature=(e,t,r)=>{if(r)switch(t){case g.Point:return o.toWgs84(o.point(e));case g.Polygon:return o.toWgs84(o.polygon(e));case g.Line:return o.toWgs84(o.lineString(e))}switch(t){case g.Point:return o.toMercator(o.point(e));case g.Polygon:return o.toMercator(o.polygon(e));case g.Line:return o.toMercator(o.lineString(e))}},exports.isNumeric=e=>!isNaN(parseFloat(e))&&isFinite(e),exports.isObject=function(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)},exports.parseClientStyle=e=>{var r;return e?null==e||null==(r=e.items)?void 0:r.reduce((e,r)=>{var o;return!r.paint||t.isEmpty(r.paint)?e:null==(o=Object.entries(r.paint))?void 0:o.reduce((e,t)=>{let[,r]=t;return Array.isArray(r)?[...new Set([...e,...u(r)])]:e},[])},[]):[]},exports.useCurrentSelectedFeature=f,exports.useEditingFeature=()=>{const[{layerName:e,active:t,mode:r}]=h(),o=f();return n.useMemo(()=>t&&(r===C.Edit&&e===(null==o?void 0:o.layer)||r===C.Create),[t,o,e,r])},exports.useEwktGeometry=()=>{const[{history:e,type:r}]=b();return n.useMemo(()=>{var o,n;return-1===e.step?"":r===g.Zones?t.isEmpty(null==(o=e.zones[e.step])?void 0:o[0])?"SRID=3857;"+N(e.features[e.step]):"SRID=3857;"+N(null==(n=e.zones[e.step])?void 0:n[0]):"SRID=3857;"+N(e.features[e.step])},[e.features,e.step,e.zones,r])},exports.useGeometryEditor=h,exports.useGeometrySelection=b,exports.useGeometrySelectionBuffer=()=>{const[{settings:{bufferRadius:e,bufferMultiplier:t},isBuffer:r}]=b();return n.useMemo(()=>{if(r&&e)return Number((+e||0)*+t).toFixed(2)},[r,e,t])},exports.useMapContext=p,exports.useMapDraw=function(e){void 0===e&&(e=[]);const{map:t,draw:r,loaded:o,basemapName:i}=p();n.useEffect(()=>{o&&t.current&&(r.current=M,t.current.addControl(r.current))},[o]),n.useEffect(()=>{t.current&&t.current.hasControl(r.current)&&(t.current.removeControl(r.current),t.current.addControl(r.current))},[i,...e])},exports.useRedrawLayer=()=>{const{map:e}=p();return n.useCallback(t=>{const r=e.current.getSource(t);r.setTiles(r.tiles)},[e])},exports.useResizer=e=>{let{handleVerticalPosition:r,handleHorizontalPosition:o,minWidth:i=Number.MIN_SAFE_INTEGER,maxWidth:l=Number.MAX_SAFE_INTEGER,horizontal:s=!0,minHeight:a=Number.MIN_SAFE_INTEGER,maxHeight:u=Number.MAX_SAFE_INTEGER,vertical:c=!0,useResize:d=!1,onResize:p,onResizeEnd:f,onResizeStart:y}=e;const m=n.useRef(),g=n.useRef(),x=n.useRef(),F=n.useCallback((e,r)=>{var o,n;let d=e,f=r;s&&d<i&&(d=i),s&&d>Math.min(window.innerWidth-(null==(o=x.current)?void 0:o.clientWidth),l)&&(d=l),c&&f<a&&(f=a),c&&f>Math.min(window.innerHeight-(null==(n=g.current)?void 0:n.clientHeight),u)&&(f=u),s&&requestAnimationFrame(()=>{t.isNil(m.current)||(m.current.style.width=d+"px")}),c&&requestAnimationFrame(()=>{t.isNil(m.current)||(m.current.style.height=f+"px")}),null==p||p(d,f)},[i,l,a,u,s,c]),v=n.useCallback(e=>{var t,n,i;const{x:l,y:s}=null==(t=m.current)?void 0:t.getBoundingClientRect(),a=o===exports.HorizontalPosition.Right,u=r===exports.VerticalPosition.Bottom,c=a?e.pageX-l:(null==(n=m.current)?void 0:n.offsetWidth)+l-e.pageX,d=u?e.pageY-s:(null==(i=m.current)?void 0:i.offsetHeight)+s-e.pageY;document.body.style.userSelect="none",F(c,d)},[F]),C=n.useCallback(()=>{t.isNil(m.current)||null==y||y(m.current.offsetWidth,m.current.offsetHeight),document.body.addEventListener("pointermove",v),document.body.addEventListener("pointerup",()=>{document.body.style.userSelect="initial",document.body.removeEventListener("pointermove",v),t.isNil(m.current)||null==f||f(m.current.offsetWidth,m.current.offsetHeight)},{once:!0})},[v]);return n.useLayoutEffect(()=>{d&&!t.isNil(m.current)&&F(m.current.offsetWidth,m.current.offsetHeight)},[F,d]),{containerRef:m,verticalHandleRef:g,horizontalHandleRef:x,onPointerDown:C}},exports.useSelectFeaturesCount=()=>{const{selectFeatures:e}=p();return n.useMemo(()=>{var t,r;return null!=(t=null==(r=e.features)||null==(r=r[e.layerName])?void 0:r.length)?t:0},[e])},exports.useSelectFeaturesCurrentIndex=()=>{const{selectFeatures:e}=p();return n.useMemo(()=>{var t,r;return null!=(t=e.features)&&null!=(t=t[e.layerName])&&t.length?null==(r=e.features)||null==(r=r[e.layerName])?void 0:r.findIndex(t=>t.id===e.currentId):-1},[e])},exports.useSelectFeaturesGeometryMasking=()=>{const{selectFeatures:e,setSelectFeaturesGeometryMasking:t}=p(),r=n.useCallback(e=>{t(e)},[t]);return[e.geometryMasking,r]},exports.useSelectFeaturesInitialized=()=>{const{selectFeatures:e,setSelectFeaturesInitialized:t}=p(),r=n.useCallback(e=>{t(e)},[t]);return[e.initialized,r]},exports.useSelectFeaturesLayerName=()=>{const{selectFeatures:e,setSelectFeaturesLayerName:t}=p(),r=n.useCallback(e=>{t(e)},[t]);return[e.layerName,r]},exports.useSelectFeaturesPagination=()=>{const{setNextFeature:e,setPrevFeature:t}=p();return{onNext:n.useCallback(()=>{e()},[e]),onPrev:n.useCallback(()=>{t()},[t])}},exports.useSelectFeaturesStatisticsActive=()=>{const{selectFeatures:e,setSelectFeaturesStatisticsActive:t}=p(),r=n.useCallback(e=>{t(e)},[t]);return[e.statisticsActive,r]},exports.useSelectFeaturesTotalCounts=()=>{var e;const{selectFeatures:t,setSelectedFeaturesTotalCounts:r}=p(),o=n.useCallback(e=>{r(e)},[r]);return[null!=(e=t.totalCounts)?e:{},o]},exports.useSelectedFeatures=()=>{var e;const{selectFeatures:t,setSelectedFeatures:r}=p(),o=n.useCallback(e=>{r(e)},[r]);return[null!=(e=t.features)?e:{},o]},exports.useServerNotifications=(e,t)=>{const r=n.useRef(null),[o,i]=n.useState(null);return n.useEffect(()=>{t&&(r.current=(new a.HubConnectionBuilder).withUrl(e,{withCredentials:!0}).configureLogging(a.LogLevel.Information).build(),r.current.start().then(()=>console.info("Серверные нотификации подключены")).catch(e=>console.info("Ошибка:",e)).finally(()=>i(r.current)))},[t]),n.useEffect(()=>{o&&"Connected"===o.state&&o.invoke("SubscribeNotifications",[]).then(()=>console.info("Подписка `SubscribeNotifications` оформлена")).catch(e=>console.info("Ошибка подписки `SubscribeNotifications`:",e))},[o]),o},exports.useServerNotificationsContext=()=>n.useContext(T),exports.useToggle=e=>{const[t,r]=n.useState(void 0!==e&&e),o=n.useCallback(()=>r(!t),[t]);return[t,o,r]},exports.useUpdateCurrentFeature=()=>{const{updateCurrentFeature:e}=p();return n.useCallback(t=>{e(t)},[e])},exports.useZoomToFeatures=()=>{const{map:e}=p();return n.useCallback((t,r)=>{if(!t)return;const n=o.bbox({type:"FeatureCollection",features:t.map(e=>c(e.geometry))});e.current.fitBounds(n,{padding:null!=r?r:150})},[e])},exports.useZoomToLayer=()=>{const{map:e}=p();return n.useCallback(async(t,r)=>{var o;t&&t.overall&&e.current.fitBounds([...t.overall.coordinates[0],...t.overall.coordinates[1]],{padding:null!=(o=null==r?void 0:r.padding)?o:50})},[e])},exports.useZoomToPoint=()=>{const{map:e}=p();return n.useCallback((t,r)=>{e.current?(r&&e.current.once("moveend",()=>{r()}),e.current.flyTo(t)):null==r||r()},[e])};
|
|
2
2
|
//# sourceMappingURL=react.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.cjs.production.min.js","sources":["../src/utils/date.ts","../src/utils/isNumeric.ts","../src/utils/isObject.ts","../src/hooks/useToggle.ts"],"sourcesContent":["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 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 { 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"],"names":["NO_CONTENT_VALUE","DateFormat","stringDateParsers","parseJSON","parseISO","rawDate","Date","getDate","parser","date","isValid","toDate","parsedDate","dateFormat","ClientDefaultFormat","defaultValue","dateValue","format","toString","number","isNaN","parseFloat","isFinite","value","Array","isArray","initial","state","setState","useState","undefined","toggle","useCallback"],"mappings":"uHAEaA,EAAmB,IAKhC,IAAYC,GAAAA,EAAAA,qBAAAA,+DAEVA,iCACAA,qCACAA,4BAQF,MAAMC,EAAoD,CAACC,YAAWC,WAAUC,GAAW,IAAIC,KAAKD,IAEvFE,EAAWF,QACjBA,EAAS,OAAO,QAEE,iBAAZA,EAAsB,KAC1B,MAAMG,KAAUN,EAAmB,OAChCO,EAAOD,EAAOH,MAEhBK,UAAQD,UACHE,SAAOF,UAIX,WAGHG,EAAaD,SAAON,UAEnBK,UAAQE,GAAcA,EAAa,oDAGlB,SACxBH,SACAI,WAAEA,EAAaZ,mBAAWa,oBAA1BC,aAA+CA,EAAef,cAAwC,WAEhGgB,EAAYP,EAAOF,EAAQE,GAAQ,YAErCC,UAAQM,GACHC,SAAOD,EAAmBH,GAG5BE,EAAaG,gDCnDIC,IACvBC,MAAMC,WAAWF,KAAsBG,SAASH,6BCDvBI,SACF,iBAAVA,GAAgC,OAAVA,IAAmBC,MAAMC,QAAQF,sBCC7CG,UACjBC,EAAOC,GAAYC,gBAAqBC,IAAZJ,GAAwBA,GAErDK,EAASC,cAAY,IAAMJ,GAAUD,GAAQ,CAACA,UAE7C,CAACA,EAAOI,EAAQH"}
|
|
1
|
+
{"version":3,"file":"react.cjs.production.min.js","sources":["../src/core/classification/findAttributeInExpression.ts","../src/core/feature/convertSpToTurfFeature.ts","../src/hooks/map/useMapContext.ts","../src/hooks/map/useCurrentSelectedFeature.ts","../src/components/MapContext/MapContext.ts","../src/components/MapContext/types.ts","../src/hooks/map/useGeometryEditor.ts","../src/hooks/map/useGeometrySelection.ts","../src/utils/date.ts","../src/utils/geometryToWkt.ts","../src/hooks/map/useMapDraw/customModes.ts","../src/hooks/map/useMapDraw/index.ts","../src/hooks/map/useMapDraw/customStyles.ts","../src/components/ServerNotificationsContext/ServerNotificationsContext.ts","../src/hooks/useResizer.ts","../src/core/geometrySelection/drawModeToGeometrySelectionType.ts","../src/core/classification/getActualExtrusionHeight.ts","../src/core/geometrySelection/getGeometrySelectionTurfFeature.ts","../src/utils/isNumeric.ts","../src/utils/isObject.ts","../src/core/classification/parseClientStyle.ts","../src/hooks/map/useEditingFeature.ts","../src/hooks/map/useEwktGeometry.ts","../src/hooks/map/useGeometrySelectionBuffer.ts","../src/hooks/map/useRedrawLayer.ts","../src/hooks/map/useSelectFeaturesCount.ts","../src/hooks/map/useSelectFeaturesCurrentIndex.ts","../src/hooks/map/useSelectFeaturesGeometryMasking.ts","../src/hooks/map/useSelectFeaturesInitialized.ts","../src/hooks/map/useSelectFeaturesLayerName.ts","../src/hooks/map/useSelectFeaturesPagination.ts","../src/hooks/map/useSelectFeaturesStatisticsActive.ts","../src/hooks/map/useSelectFeaturesTotalCounts.ts","../src/hooks/map/useSelectedFeatures.ts","../src/hooks/serverNotifications/useServerNotifications.ts","../src/hooks/serverNotifications/useServerNotificationsContext.ts","../src/hooks/useToggle.ts","../src/hooks/map/useUpdateCurrentFeature.ts","../src/hooks/map/useZoomToFeatures.ts","../src/hooks/map/useZoomToLayer.ts","../src/hooks/map/useZoomToPoint.ts"],"sourcesContent":["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 { GeometryType } from \"@evergis/api\";\nimport { multiLineString, multiPoint, point, polygon } from \"@turf/turf\";\nimport { Feature } from \"geojson\";\n\nimport { FeaturedDcExtendedGeometry } from \"../../components\";\n\nexport const convertSpToTurfFeature = (geometry?: FeaturedDcExtendedGeometry): Feature<any> | undefined => {\n if (!geometry) {\n return;\n }\n\n switch (geometry.type) {\n case GeometryType.Point:\n return point(geometry.coordinates);\n case GeometryType.Multipoint:\n return multiPoint(geometry.coordinates);\n case GeometryType.Polyline:\n return multiLineString(geometry.coordinates);\n case GeometryType.Polygon:\n case GeometryType.Envelope:\n return polygon(geometry.coordinates);\n default:\n }\n};\n","import { useContext } from \"react\";\n\nimport { MapContext } from \"../../components\";\n\nexport const useMapContext = () => {\n return useContext(MapContext);\n};\n","import { useMemo } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nimport { SelectedFeature } from \"../../components/MapContext\";\n\nexport const useCurrentSelectedFeature = (): SelectedFeature => {\n const { selectFeatures } = useMapContext();\n\n return useMemo(() => {\n return selectFeatures.features?.[selectFeatures.layerName]?.find(item => item.id === selectFeatures.currentId);\n }, [selectFeatures]);\n};\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\";\nimport { FeatureDc, LayerDefinitionDc, GeometryType } from \"@evergis/api\";\nimport { Feature } from \"geojson\";\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 enum GeometrySelectionTypes {\n Point = \"select_point\",\n Line = \"select_line\",\n Circle = \"select_circle\",\n Rect = \"select_rect\",\n Polygon = \"select_polygon\",\n Zones = \"zones_selection\",\n Coordinates = \"xy\",\n Route = \"selection_route\",\n}\n\nexport enum GeometrySelectionToolTypes {\n Replace = \"Replace\",\n Unite = \"Unite\",\n Crop = \"Crop\",\n Edit = \"Edit\",\n}\n\nexport type SelectionHistoryFeature = Feature;\n\nexport interface SelectionHistory {\n features: Array<SelectionHistoryFeature[]>;\n zones?: Array<Array<Feature[]>>;\n step: number;\n}\n\nexport enum GeometrySelectionZoneTypes {\n Walking = \"Walking\",\n Car = \"Car\",\n}\n\nexport enum GeometrySelectionRouteTypes {\n Walking = \"Walking\",\n Car = \"Car\",\n}\n\nexport interface GeometrySelectionSettings {\n zoneDuration?: number;\n zoneType?: GeometrySelectionZoneTypes;\n routeType?: GeometrySelectionRouteTypes;\n bufferRadius?: string;\n bufferMultiplier?: string;\n bufferInclude?: boolean;\n selectOutside?: boolean;\n}\n\nexport interface GeometrySelection {\n active?: boolean;\n loading?: boolean;\n type?: GeometrySelectionTypes;\n currentTool?: GeometrySelectionToolTypes;\n history?: SelectionHistory;\n editHistory?: SelectionHistory;\n isBuffer?: boolean;\n settings?: GeometrySelectionSettings;\n}\n\nexport enum GeometryEditorMode {\n Create,\n Edit,\n Transform,\n Expand,\n Unite,\n Subtract,\n}\n\nexport type Coordinates = [number, number];\n\nexport type Positions = Coordinates | Coordinates[] | Coordinates[][];\n\nexport interface GeometryEditor {\n active: boolean;\n geometryType?: GeometryType;\n layerName?: string;\n geometry?: Positions;\n mode?: GeometryEditorMode;\n}\n\nexport interface FeaturedDcExtendedGeometry extends Omit<FeatureDc[\"geometry\"], \"coordinates\"> {\n coordinates?: any;\n}\n\nexport interface FeatureDcExtended extends Omit<FeatureDc, \"geometry\"> {\n geometry: FeaturedDcExtendedGeometry;\n layer: string;\n}\n\nexport interface SelectedFeature extends FeatureDcExtended {\n layerDefinition: LayerDefinitionDc;\n}\n\nexport interface SelectFeatures {\n initialized?: boolean;\n layerName?: string;\n currentId: string | null;\n selectionOffset?: number;\n features: Record<string, SelectedFeature[]>;\n totalCounts: Record<string, number>;\n statisticsActive?: boolean;\n geometryMasking?: boolean;\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 globeProjection?: boolean;\n setGlobeProjection?: Dispatch<SetStateAction<boolean>>;\n geometrySelection?: GeometrySelection;\n setGeometrySelection?: Dispatch<SetStateAction<GeometrySelection>>;\n resetGeometrySelection?: VoidFunction;\n geometryEditor?: GeometryEditor;\n setGeometryEditor?: Dispatch<SetStateAction<GeometryEditor>>;\n resetGeometryEditor?: VoidFunction;\n selectFeatures?: SelectFeatures;\n setNextFeature?: VoidFunction;\n setPrevFeature?: VoidFunction;\n setSelectedFeatures?: (payload?: SelectFeatures[\"features\"], currentId?: any, offset?: number) => void;\n setSelectedFeaturesTotalCounts?: Dispatch<SetStateAction<SelectFeatures[\"totalCounts\"]>>;\n setSelectFeaturesInitialized?: Dispatch<SetStateAction<boolean>>;\n setSelectFeaturesLayerName?: Dispatch<SetStateAction<string>>;\n setSelectFeaturesStatisticsActive?: Dispatch<SetStateAction<boolean>>;\n setSelectFeaturesGeometryMasking?: Dispatch<SetStateAction<boolean>>;\n updateCurrentFeature?: Dispatch<SetStateAction<Partial<SelectedFeature>>>;\n resetSelectedFeatures?: VoidFunction;\n}\n\nexport interface MapProviderProps extends PropsWithChildren {\n basemapItems: BaseMapItem[];\n defaultBasemap: string;\n}\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nimport { GeometryEditor } from \"../../components\";\n\nexport const useGeometryEditor = (): [GeometryEditor, (state: Partial<GeometryEditor>) => void] => {\n const { geometryEditor, setGeometryEditor } = useMapContext();\n\n const update = useCallback(\n (newState: Partial<GeometryEditor>) => {\n setGeometryEditor(prevState => ({\n ...prevState,\n ...newState,\n }));\n },\n [setGeometryEditor],\n );\n\n return [geometryEditor, update];\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nimport { GeometrySelection } from \"../../components\";\n\nexport const useGeometrySelection = (): [GeometrySelection, (state: Partial<GeometrySelection>) => void] => {\n const { geometrySelection, setGeometrySelection } = useMapContext();\n\n const updateGeometrySelection = useCallback(\n (newState: Partial<GeometrySelection>) => {\n setGeometrySelection(prevState => ({\n ...prevState,\n ...newState,\n }));\n },\n [setGeometrySelection],\n );\n\n return [geometrySelection, updateGeometrySelection];\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","import { stringify } from \"wkt\";\n\nimport { SelectionHistoryFeature } from \"../components\";\n\nexport const geometryToWkt = (features: SelectionHistoryFeature[] = []): string => {\n if (features.length === 0) {\n return \"\";\n }\n\n return stringify(features[0]);\n};\n","import MapboxDraw, { DrawCustomMode } from \"@mapbox/mapbox-gl-draw\";\n\nimport { ExtendedMapboxDrawModes } from \"../../../core\";\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 { 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 { createContext } from \"react\";\n\nimport { ServerNotificationsContextProps } from \"./types\";\n\nexport const ServerNotificationsContext = createContext<ServerNotificationsContextProps>({});\n","import { useCallback, useLayoutEffect, useRef } from \"react\";\nimport { isNil } from \"lodash\";\n\nexport enum VerticalPosition {\n Top = \"top\",\n Bottom = \"bottom\",\n}\n\nexport enum HorizontalPosition {\n Left = \"left\",\n Right = \"right\",\n}\n\nexport interface ResizerOptions {\n handleVerticalPosition?: VerticalPosition;\n handleHorizontalPosition?: HorizontalPosition;\n minWidth?: number;\n maxWidth?: number;\n minHeight?: number;\n maxHeight?: number;\n horizontal?: boolean;\n vertical?: boolean;\n useResize?: boolean;\n onResize?: (width: number, height: number) => void;\n onResizeEnd?: (width: number, height: number) => void;\n onResizeStart?: (width: number, height: number) => void;\n}\n\nexport const useResizer = ({\n handleVerticalPosition,\n handleHorizontalPosition,\n minWidth = Number.MIN_SAFE_INTEGER,\n maxWidth = Number.MAX_SAFE_INTEGER,\n horizontal = true,\n minHeight = Number.MIN_SAFE_INTEGER,\n maxHeight = Number.MAX_SAFE_INTEGER,\n vertical = true,\n useResize = false,\n onResize,\n onResizeEnd,\n onResizeStart,\n}: ResizerOptions) => {\n const containerRef = useRef<HTMLDivElement>();\n const verticalHandleRef = useRef<HTMLDivElement>();\n const horizontalHandleRef = useRef<HTMLDivElement>();\n\n const updateSizes = useCallback(\n (width: number, height: number) => {\n let newWidth = width;\n let newHeight = height;\n\n if (horizontal && newWidth < minWidth) {\n newWidth = minWidth;\n }\n\n if (horizontal && newWidth > Math.min(window.innerWidth - horizontalHandleRef.current?.clientWidth, maxWidth)) {\n newWidth = maxWidth;\n }\n\n if (vertical && newHeight < minHeight) {\n newHeight = minHeight;\n }\n\n if (vertical && newHeight > Math.min(window.innerHeight - verticalHandleRef.current?.clientHeight, maxHeight)) {\n newHeight = maxHeight;\n }\n\n if (horizontal) {\n requestAnimationFrame(() => {\n if (!isNil(containerRef.current)) {\n containerRef.current.style.width = `${newWidth}px`;\n }\n });\n }\n\n if (vertical) {\n requestAnimationFrame(() => {\n if (!isNil(containerRef.current)) {\n containerRef.current.style.height = `${newHeight}px`;\n }\n });\n }\n\n onResize?.(newWidth, newHeight);\n },\n [minWidth, maxWidth, minHeight, maxHeight, horizontal, vertical], // eslint-disable-line\n );\n\n const onPointerMove = useCallback(\n (pointerMoveEvent: PointerEvent) => {\n const { x, y } = containerRef.current?.getBoundingClientRect();\n const reverseHorizontal = handleHorizontalPosition === HorizontalPosition.Right;\n const reverseVertical = handleVerticalPosition === VerticalPosition.Bottom;\n\n const newWidth = reverseHorizontal\n ? pointerMoveEvent.pageX - x\n : containerRef.current?.offsetWidth + x - pointerMoveEvent.pageX;\n const newHeight = reverseVertical\n ? pointerMoveEvent.pageY - y\n : containerRef.current?.offsetHeight + y - pointerMoveEvent.pageY;\n\n document.body.style.userSelect = \"none\";\n\n updateSizes(newWidth, newHeight);\n },\n [updateSizes],\n );\n\n const onPointerDown = useCallback(() => {\n const onPointerUp = () => {\n document.body.style.userSelect = \"initial\";\n document.body.removeEventListener(\"pointermove\", onPointerMove);\n\n if (!isNil(containerRef.current)) {\n onResizeEnd?.(containerRef.current.offsetWidth, containerRef.current.offsetHeight);\n }\n };\n\n if (!isNil(containerRef.current)) {\n onResizeStart?.(containerRef.current.offsetWidth, containerRef.current.offsetHeight);\n }\n\n document.body.addEventListener(\"pointermove\", onPointerMove);\n document.body.addEventListener(\"pointerup\", onPointerUp, { once: true });\n }, [onPointerMove]); // eslint-disable-line\n\n useLayoutEffect(() => {\n if (useResize && !isNil(containerRef.current)) {\n updateSizes(containerRef.current.offsetWidth, containerRef.current.offsetHeight);\n }\n }, [updateSizes, useResize]);\n\n return {\n containerRef,\n verticalHandleRef,\n horizontalHandleRef,\n onPointerDown,\n };\n};\n","import { DrawMode } from \"@mapbox/mapbox-gl-draw\";\n\nimport { GeometrySelectionTypes } from \"../../components\";\n\nexport const drawModeToGeometrySelectionType = (mode: DrawMode | string): GeometrySelectionTypes => {\n switch (mode) {\n case \"draw_point\":\n return GeometrySelectionTypes.Point;\n case \"draw_polygon\":\n return GeometrySelectionTypes.Polygon;\n case \"draw_line_string\":\n return GeometrySelectionTypes.Line;\n default:\n return GeometrySelectionTypes.Point;\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 { toMercator, toWgs84, point, polygon, lineString } from \"@turf/turf\";\nimport { Feature, LineString, Point, Polygon, Position } from \"geojson\";\n\nimport { GeometrySelectionTypes } from \"../../components\";\n\nexport const getGeometrySelectionTurfFeature = (\n coordinates: Position | Position[] | Position[][] | Position[][][],\n selectionType: GeometrySelectionTypes,\n toWgs?: boolean,\n): Feature<Point | LineString | Polygon> => {\n if (toWgs) {\n switch (selectionType) {\n case GeometrySelectionTypes.Point:\n return toWgs84(point(coordinates as Position));\n case GeometrySelectionTypes.Polygon:\n return toWgs84(polygon(coordinates as Position[][]));\n case GeometrySelectionTypes.Line:\n return toWgs84(lineString(coordinates as Position[]));\n default:\n }\n }\n\n switch (selectionType) {\n case GeometrySelectionTypes.Point:\n return toMercator(point(coordinates as Position));\n case GeometrySelectionTypes.Polygon:\n return toMercator(polygon(coordinates as Position[][]));\n case GeometrySelectionTypes.Line:\n return toMercator(lineString(coordinates as Position[]));\n default:\n }\n};\n","export const isNumeric = (number: string | number): boolean =>\n !isNaN(parseFloat(number as string)) && isFinite(number as number);\n","export function isObject<T>(value: T | object): value is object {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import { 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 { GeometryEditorMode } from \"../../components/MapContext\";\n\nimport { useGeometryEditor } from \"./useGeometryEditor\";\nimport { useCurrentSelectedFeature } from \"./useCurrentSelectedFeature\";\n\nexport const useEditingFeature = (): boolean => {\n const [{ layerName, active, mode }] = useGeometryEditor();\n const currentSelectedFeature = useCurrentSelectedFeature();\n\n return useMemo(() => {\n return (\n active &&\n ((mode === GeometryEditorMode.Edit && layerName === currentSelectedFeature?.layer) ||\n mode === GeometryEditorMode.Create)\n );\n }, [active, currentSelectedFeature, layerName, mode]);\n};\n","import { useMemo } from \"react\";\nimport { isEmpty } from \"lodash\";\n\nimport { useGeometrySelection } from \"./useGeometrySelection\";\nimport { geometryToWkt } from \"../../utils\";\n\nimport { GeometrySelectionTypes } from \"../../components\";\n\nexport const useEwktGeometry = () => {\n const [{ history, type }] = useGeometrySelection();\n\n return useMemo(() => {\n if (history.step === -1) {\n return \"\";\n }\n\n return type === GeometrySelectionTypes.Zones\n ? !isEmpty(history.zones[history.step]?.[0])\n ? `SRID=3857;${geometryToWkt(history.zones[history.step]?.[0])}`\n : `SRID=3857;${geometryToWkt(history.features[history.step])}`\n : `SRID=3857;${geometryToWkt(history.features[history.step])}`;\n }, [history.features, history.step, history.zones, type]);\n};\n","import { useMemo } from \"react\";\n\nimport { useGeometrySelection } from \"./useGeometrySelection\";\n\nexport const useGeometrySelectionBuffer = (): string | undefined => {\n const [\n {\n settings: { bufferRadius, bufferMultiplier },\n isBuffer,\n },\n ] = useGeometrySelection();\n\n return useMemo((): string | undefined => {\n if (!isBuffer || !bufferRadius) {\n return undefined;\n }\n\n return Number((+bufferRadius || 0) * +bufferMultiplier).toFixed(2);\n }, [isBuffer, bufferRadius, bufferMultiplier]);\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 { useMemo } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useSelectFeaturesCount = (): number => {\n const { selectFeatures } = useMapContext();\n\n return useMemo(() => {\n return selectFeatures.features?.[selectFeatures.layerName]?.length ?? 0;\n }, [selectFeatures]);\n};\n","import { useMemo } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useSelectFeaturesCurrentIndex = (): number => {\n const { selectFeatures } = useMapContext();\n\n return useMemo(() => {\n return selectFeatures.features?.[selectFeatures.layerName]?.length\n ? selectFeatures.features?.[selectFeatures.layerName]?.findIndex(\n feature => feature.id === selectFeatures.currentId,\n )\n : -1;\n }, [selectFeatures]);\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useSelectFeaturesGeometryMasking = (): [boolean, (state: boolean) => void] => {\n const { selectFeatures, setSelectFeaturesGeometryMasking } = useMapContext();\n\n const update = useCallback(\n (state: boolean) => {\n setSelectFeaturesGeometryMasking(state);\n },\n [setSelectFeaturesGeometryMasking],\n );\n\n return [selectFeatures.geometryMasking, update];\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useSelectFeaturesInitialized = (): [boolean, (value: boolean) => void] => {\n const { selectFeatures, setSelectFeaturesInitialized } = useMapContext();\n\n const update = useCallback(\n (state: boolean) => {\n setSelectFeaturesInitialized(state);\n },\n [setSelectFeaturesInitialized],\n );\n\n return [selectFeatures.initialized, update];\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useSelectFeaturesLayerName = (): [string, (name?: string) => void] => {\n const { selectFeatures, setSelectFeaturesLayerName } = useMapContext();\n\n const update = useCallback(\n (name: string) => {\n setSelectFeaturesLayerName(name);\n },\n [setSelectFeaturesLayerName],\n );\n\n return [selectFeatures.layerName, update];\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useSelectFeaturesPagination = () => {\n const { setNextFeature, setPrevFeature } = useMapContext();\n\n const onNext = useCallback(() => {\n setNextFeature();\n }, [setNextFeature]);\n\n const onPrev = useCallback(() => {\n setPrevFeature();\n }, [setPrevFeature]);\n\n return { onNext, onPrev } as const;\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useSelectFeaturesStatisticsActive = (): [boolean, (state: boolean) => void] => {\n const { selectFeatures, setSelectFeaturesStatisticsActive } = useMapContext();\n\n const update = useCallback(\n (state: boolean) => {\n setSelectFeaturesStatisticsActive(state);\n },\n [setSelectFeaturesStatisticsActive],\n );\n\n return [selectFeatures.statisticsActive, update];\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nexport const useSelectFeaturesTotalCounts = (): [\n Record<string, number>,\n (totalCounts: Record<string, number>) => void,\n] => {\n const { selectFeatures, setSelectedFeaturesTotalCounts } = useMapContext();\n\n const update = useCallback(\n (totalCounts: Record<string, number>) => {\n setSelectedFeaturesTotalCounts(totalCounts);\n },\n [setSelectedFeaturesTotalCounts],\n );\n\n return [selectFeatures.totalCounts ?? {}, update];\n};\n","import { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nimport { SelectedFeature } from \"../../components\";\n\nexport const useSelectedFeatures = (): [\n Record<string, SelectedFeature[]>,\n (features: Record<string, SelectedFeature[]>) => void,\n] => {\n const { selectFeatures, setSelectedFeatures } = useMapContext();\n\n const updatSelectedFeatures = useCallback(\n (features: Record<string, SelectedFeature[]>) => {\n setSelectedFeatures(features);\n },\n [setSelectedFeatures],\n );\n\n return [selectFeatures.features ?? ({} as Record<string, SelectedFeature[]>), updatSelectedFeatures];\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","import { useContext } from \"react\";\n\nimport { ServerNotificationsContext } from \"../../components/ServerNotificationsContext/ServerNotificationsContext\";\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 { useCallback } from \"react\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nimport { SelectedFeature } from \"../../components\";\n\nexport const useUpdateCurrentFeature = () => {\n const { updateCurrentFeature } = useMapContext();\n\n return useCallback(\n (values: Partial<SelectedFeature>) => {\n updateCurrentFeature(values);\n },\n [updateCurrentFeature],\n );\n};\n","import { useCallback } from \"react\";\nimport { bbox } from \"@turf/turf\";\n\nimport { useMapContext } from \"./useMapContext\";\nimport { convertSpToTurfFeature } from \"../../core\";\n\nimport { FeatureDcExtended } from \"../../components\";\n\nexport const useZoomToFeatures = () => {\n const { map } = useMapContext();\n\n return useCallback(\n (features?: FeatureDcExtended[], 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\";\nimport { BulkExtentsDc } from \"@evergis/api\";\n\nimport { useMapContext } from \"./useMapContext\";\n\nconst DEFAULT_PADDING = 50;\n\ninterface ZoomToLayerOptions {\n discardFilters?: boolean;\n padding?: number;\n}\n\nexport const useZoomToLayer = () => {\n const { map } = useMapContext();\n\n return useCallback(\n async (bulkExtent: BulkExtentsDc, options?: ZoomToLayerOptions) => {\n if (!bulkExtent || !bulkExtent.overall) {\n return;\n }\n\n map.current.fitBounds(\n [...bulkExtent.overall.coordinates[0], ...bulkExtent.overall.coordinates[1]] as [\n number,\n number,\n number,\n number,\n ],\n { padding: options?.padding ?? DEFAULT_PADDING },\n );\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":["findAttributeInExpression","expression","Array","isArray","length","reduce","acc","curr","Set","convertSpToTurfFeature","geometry","type","GeometryType","Point","point","coordinates","Multipoint","multiPoint","Polyline","multiLineString","Polygon","Envelope","polygon","useMapContext","useContext","MapContext","useCurrentSelectedFeature","selectFeatures","useMemo","features","_selectFeatures$featu","layerName","find","item","id","currentId","createContext","BaseMapTheme","GeometrySelectionTypes","GeometrySelectionToolTypes","GeometrySelectionZoneTypes","GeometrySelectionRouteTypes","GeometryEditorMode","useGeometryEditor","geometryEditor","setGeometryEditor","useCallback","newState","prevState","useGeometrySelection","geometrySelection","setGeometrySelection","NO_CONTENT_VALUE","DateFormat","stringDateParsers","parseJSON","parseISO","rawDate","Date","getDate","parser","date","isValid","toDate","parsedDate","geometryToWkt","stringify","customModes","MapboxDraw","modes","static","StaticMode","setActionableState","undefined","state","geojson","display","draw","displayControlsDefault","styles","filter","paint","layout","defaultMode","controls","trash","ServerNotificationsContext","VerticalPosition","HorizontalPosition","mode","Line","dateFormat","ClientDefaultFormat","defaultValue","dateValue","format","toString","selectionType","toWgs","toWgs84","lineString","toMercator","number","isNaN","parseFloat","isFinite","value","style","items","_style$items","isEmpty","Object","entries","_Object$entries","paintAcc","active","currentSelectedFeature","Edit","layer","Create","history","step","Zones","zones","_history$zones$histor","_history$zones$histor2","settings","bufferRadius","bufferMultiplier","isBuffer","Number","toFixed","triggerDeps","map","drawContext","loaded","basemapName","useEffect","current","addControl","hasControl","removeControl","layerTileSource","getSource","setTiles","tiles","handleVerticalPosition","handleHorizontalPosition","minWidth","MIN_SAFE_INTEGER","maxWidth","MAX_SAFE_INTEGER","horizontal","minHeight","maxHeight","vertical","useResize","onResize","onResizeEnd","onResizeStart","containerRef","useRef","verticalHandleRef","horizontalHandleRef","updateSizes","width","height","newWidth","newHeight","Math","min","window","innerWidth","_horizontalHandleRef$","clientWidth","innerHeight","_verticalHandleRef$cu","clientHeight","requestAnimationFrame","isNil","onPointerMove","pointerMoveEvent","x","y","_containerRef$current","getBoundingClientRect","reverseHorizontal","Right","reverseVertical","Bottom","pageX","offsetWidth","pageY","offsetHeight","document","body","userSelect","onPointerDown","addEventListener","removeEventListener","once","useLayoutEffect","_selectFeatures$featu2","findIndex","feature","setSelectFeaturesGeometryMasking","update","geometryMasking","setSelectFeaturesInitialized","initialized","setSelectFeaturesLayerName","name","setNextFeature","setPrevFeature","onNext","onPrev","setSelectFeaturesStatisticsActive","statisticsActive","setSelectedFeaturesTotalCounts","totalCounts","setSelectedFeatures","updatSelectedFeatures","url","hubConnection","connection","setConnection","useState","HubConnectionBuilder","withUrl","withCredentials","configureLogging","LogLevel","Information","build","start","then","console","info","catch","err","finally","invoke","initial","setState","toggle","updateCurrentFeature","values","padding","currentFeatureCenter","bbox","fitBounds","async","bulkExtent","options","overall","callback","flyTo"],"mappings":"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"}
|