@gooddata/sdk-ui-geo 11.11.0-alpha.2 → 11.11.0-alpha.3
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/esm/next/GeoAreaChart.d.ts +33 -0
- package/esm/next/GeoAreaChart.d.ts.map +1 -0
- package/esm/next/GeoAreaChart.js +65 -0
- package/esm/next/GeoAreaChart.js.map +1 -0
- package/esm/next/GeoPushpinChartNext.js +2 -2
- package/esm/next/GeoPushpinChartNext.js.map +1 -1
- package/esm/next/RenderGeoAreaChart.d.ts +15 -0
- package/esm/next/RenderGeoAreaChart.d.ts.map +1 -0
- package/esm/next/RenderGeoAreaChart.js +104 -0
- package/esm/next/RenderGeoAreaChart.js.map +1 -0
- package/esm/next/RenderGeoPushpinChart.d.ts.map +1 -1
- package/esm/next/RenderGeoPushpinChart.js.map +1 -1
- package/esm/next/components/legends/Legend.js +1 -1
- package/esm/next/components/legends/Legend.js.map +1 -1
- package/esm/next/components/legends/types.d.ts +2 -2
- package/esm/next/components/legends/types.d.ts.map +1 -1
- package/esm/next/context/GeoAreaCollectionContext.d.ts +24 -0
- package/esm/next/context/GeoAreaCollectionContext.d.ts.map +1 -0
- package/esm/next/context/GeoAreaCollectionContext.js +39 -0
- package/esm/next/context/GeoAreaCollectionContext.js.map +1 -0
- package/esm/next/context/GeoAreaDataContext.d.ts +69 -0
- package/esm/next/context/GeoAreaDataContext.d.ts.map +1 -0
- package/esm/next/context/GeoAreaDataContext.js +87 -0
- package/esm/next/context/GeoAreaDataContext.js.map +1 -0
- package/esm/next/context/GeoAreaPropsContext.d.ts +47 -0
- package/esm/next/context/GeoAreaPropsContext.d.ts.map +1 -0
- package/esm/next/context/GeoAreaPropsContext.js +84 -0
- package/esm/next/context/GeoAreaPropsContext.js.map +1 -0
- package/esm/next/context/GeoDataContext.d.ts +13 -19
- package/esm/next/context/GeoDataContext.d.ts.map +1 -1
- package/esm/next/context/GeoDataContext.js +7 -53
- package/esm/next/context/GeoDataContext.js.map +1 -1
- package/esm/next/context/GeoPushpinDataContext.d.ts +14 -0
- package/esm/next/context/GeoPushpinDataContext.d.ts.map +1 -0
- package/esm/next/context/GeoPushpinDataContext.js +51 -0
- package/esm/next/context/GeoPushpinDataContext.js.map +1 -0
- package/esm/next/features/clustering/clustering.d.ts +2 -2
- package/esm/next/features/clustering/clustering.d.ts.map +1 -1
- package/esm/next/features/clustering/clustering.js.map +1 -1
- package/esm/next/features/coloring/areaColorStrategy.d.ts +22 -0
- package/esm/next/features/coloring/areaColorStrategy.d.ts.map +1 -0
- package/esm/next/features/coloring/areaColorStrategy.js +83 -0
- package/esm/next/features/coloring/areaColorStrategy.js.map +1 -0
- package/esm/next/features/coloring/areaPalette.d.ts +28 -0
- package/esm/next/features/coloring/areaPalette.d.ts.map +1 -0
- package/esm/next/features/coloring/areaPalette.js +41 -0
- package/esm/next/features/coloring/areaPalette.js.map +1 -0
- package/esm/next/features/coloring/colorStrategy.d.ts +2 -2
- package/esm/next/features/coloring/colorStrategy.d.ts.map +1 -1
- package/esm/next/features/coloring/colorStrategy.js +2 -2
- package/esm/next/features/coloring/colorStrategy.js.map +1 -1
- package/esm/next/features/data/areaTransformation.d.ts +60 -0
- package/esm/next/features/data/areaTransformation.d.ts.map +1 -0
- package/esm/next/features/data/areaTransformation.js +248 -0
- package/esm/next/features/data/areaTransformation.js.map +1 -0
- package/esm/next/features/data/dataSourceManagement.d.ts +2 -2
- package/esm/next/features/data/dataSourceManagement.d.ts.map +1 -1
- package/esm/next/features/data/dataSourceManagement.js.map +1 -1
- package/esm/next/features/data/pushpinTransformation.d.ts +72 -0
- package/esm/next/features/data/pushpinTransformation.d.ts.map +1 -0
- package/esm/next/features/data/{transformation.js → pushpinTransformation.js} +21 -70
- package/esm/next/features/data/pushpinTransformation.js.map +1 -0
- package/esm/next/features/data/transformationCommon.d.ts +21 -0
- package/esm/next/features/data/transformationCommon.d.ts.map +1 -0
- package/esm/next/features/data/transformationCommon.js +52 -0
- package/esm/next/features/data/transformationCommon.js.map +1 -0
- package/esm/next/features/map/areaLayerManagement.d.ts +51 -0
- package/esm/next/features/map/areaLayerManagement.d.ts.map +1 -0
- package/esm/next/features/map/areaLayerManagement.js +81 -0
- package/esm/next/features/map/areaLayerManagement.js.map +1 -0
- package/esm/next/features/map/layerManagement.d.ts +3 -3
- package/esm/next/features/map/layerManagement.d.ts.map +1 -1
- package/esm/next/features/map/layerManagement.js.map +1 -1
- package/esm/next/features/map/viewportManagement.d.ts +13 -0
- package/esm/next/features/map/viewportManagement.d.ts.map +1 -1
- package/esm/next/features/map/viewportManagement.js +30 -0
- package/esm/next/features/map/viewportManagement.js.map +1 -1
- package/esm/next/features/tooltip/tooltipManagement.d.ts +1 -1
- package/esm/next/features/tooltip/tooltipManagement.d.ts.map +1 -1
- package/esm/next/features/tooltip/tooltipManagement.js +11 -7
- package/esm/next/features/tooltip/tooltipManagement.js.map +1 -1
- package/esm/next/helpers/areaAttributeResolver.d.ts +10 -0
- package/esm/next/helpers/areaAttributeResolver.d.ts.map +1 -0
- package/esm/next/helpers/areaAttributeResolver.js +26 -0
- package/esm/next/helpers/areaAttributeResolver.js.map +1 -0
- package/esm/next/hooks/init/useInitExecution.d.ts +5 -2
- package/esm/next/hooks/init/useInitExecution.d.ts.map +1 -1
- package/esm/next/hooks/init/useInitExecution.js +32 -16
- package/esm/next/hooks/init/useInitExecution.js.map +1 -1
- package/esm/next/hooks/legend/useAreaLegendItems.d.ts +27 -0
- package/esm/next/hooks/legend/useAreaLegendItems.d.ts.map +1 -0
- package/esm/next/hooks/legend/useAreaLegendItems.js +33 -0
- package/esm/next/hooks/legend/useAreaLegendItems.js.map +1 -0
- package/esm/next/hooks/legend/useLegendDetails.d.ts +2 -2
- package/esm/next/hooks/legend/useLegendDetails.d.ts.map +1 -1
- package/esm/next/hooks/legend/useLegendDetails.js.map +1 -1
- package/esm/next/hooks/legend/useLegendProps.d.ts +2 -2
- package/esm/next/hooks/legend/useLegendProps.d.ts.map +1 -1
- package/esm/next/hooks/legend/useLegendProps.js.map +1 -1
- package/esm/next/hooks/legend/{useLegendItems.d.ts → usePushpinLegendItems.d.ts} +3 -3
- package/esm/next/hooks/legend/usePushpinLegendItems.d.ts.map +1 -0
- package/esm/next/hooks/legend/usePushpinLegendItems.js +33 -0
- package/esm/next/hooks/legend/usePushpinLegendItems.js.map +1 -0
- package/esm/next/hooks/map/useAreaMapDataSync.d.ts +9 -0
- package/esm/next/hooks/map/useAreaMapDataSync.d.ts.map +1 -0
- package/esm/next/hooks/map/useAreaMapDataSync.js +71 -0
- package/esm/next/hooks/map/useAreaMapDataSync.js.map +1 -0
- package/esm/next/hooks/map/useMapDataSync.d.ts +2 -2
- package/esm/next/hooks/map/useMapDataSync.d.ts.map +1 -1
- package/esm/next/hooks/map/useMapDataSync.js.map +1 -1
- package/esm/next/hooks/map/useTooltipHandlers.d.ts +1 -1
- package/esm/next/hooks/map/useTooltipHandlers.d.ts.map +1 -1
- package/esm/next/hooks/map/useTooltipHandlers.js +3 -3
- package/esm/next/hooks/map/useTooltipHandlers.js.map +1 -1
- package/esm/next/hooks/shared/geoCollectionBoundingBox.d.ts +17 -0
- package/esm/next/hooks/shared/geoCollectionBoundingBox.d.ts.map +1 -0
- package/esm/next/hooks/shared/geoCollectionBoundingBox.js +86 -0
- package/esm/next/hooks/shared/geoCollectionBoundingBox.js.map +1 -0
- package/esm/next/hooks/shared/useAreaCollectionFeatures.d.ts +43 -0
- package/esm/next/hooks/shared/useAreaCollectionFeatures.d.ts.map +1 -0
- package/esm/next/hooks/shared/useAreaCollectionFeatures.js +213 -0
- package/esm/next/hooks/shared/useAreaCollectionFeatures.js.map +1 -0
- package/esm/next/hooks/shared/useAreaDataTransformation.d.ts +21 -0
- package/esm/next/hooks/shared/useAreaDataTransformation.d.ts.map +1 -0
- package/esm/next/hooks/shared/useAreaDataTransformation.js +25 -0
- package/esm/next/hooks/shared/useAreaDataTransformation.js.map +1 -0
- package/esm/next/hooks/shared/useAreaPushData.d.ts +11 -0
- package/esm/next/hooks/shared/useAreaPushData.d.ts.map +1 -0
- package/esm/next/hooks/shared/useAreaPushData.js +20 -0
- package/esm/next/hooks/shared/useAreaPushData.js.map +1 -0
- package/esm/next/hooks/shared/useGeoDataTransformation.d.ts +4 -18
- package/esm/next/hooks/shared/useGeoDataTransformation.d.ts.map +1 -1
- package/esm/next/hooks/shared/useGeoDataTransformation.js +5 -22
- package/esm/next/hooks/shared/useGeoDataTransformation.js.map +1 -1
- package/esm/next/hooks/shared/useGeoPushData.d.ts +20 -0
- package/esm/next/hooks/shared/useGeoPushData.d.ts.map +1 -0
- package/esm/next/hooks/shared/useGeoPushData.js +36 -0
- package/esm/next/hooks/shared/useGeoPushData.js.map +1 -0
- package/esm/next/hooks/shared/usePushData.d.ts.map +1 -1
- package/esm/next/hooks/shared/usePushData.js +5 -26
- package/esm/next/hooks/shared/usePushData.js.map +1 -1
- package/esm/next/hooks/shared/usePushpinDataTransformation.d.ts +23 -0
- package/esm/next/hooks/shared/usePushpinDataTransformation.d.ts.map +1 -0
- package/esm/next/hooks/shared/usePushpinDataTransformation.js +27 -0
- package/esm/next/hooks/shared/usePushpinDataTransformation.js.map +1 -0
- package/esm/next/hooks/shared/useResolvedAreaProps.d.ts +16 -0
- package/esm/next/hooks/shared/useResolvedAreaProps.d.ts.map +1 -0
- package/esm/next/hooks/shared/useResolvedAreaProps.js +36 -0
- package/esm/next/hooks/shared/useResolvedAreaProps.js.map +1 -0
- package/esm/next/hooks/shared/useResolvedPlaceholderValues.d.ts +8 -0
- package/esm/next/hooks/shared/useResolvedPlaceholderValues.d.ts.map +1 -0
- package/esm/next/hooks/shared/useResolvedPlaceholderValues.js +11 -0
- package/esm/next/hooks/shared/useResolvedPlaceholderValues.js.map +1 -0
- package/esm/next/hooks/shared/useResolvedProps.d.ts.map +1 -1
- package/esm/next/hooks/shared/useResolvedProps.js +3 -3
- package/esm/next/hooks/shared/useResolvedProps.js.map +1 -1
- package/esm/next/hooks/shared/useSegmentLegendItems.d.ts +17 -0
- package/esm/next/hooks/shared/useSegmentLegendItems.d.ts.map +1 -0
- package/esm/next/hooks/shared/useSegmentLegendItems.js +33 -0
- package/esm/next/hooks/shared/useSegmentLegendItems.js.map +1 -0
- package/esm/next/index.d.ts +4 -0
- package/esm/next/index.d.ts.map +1 -1
- package/esm/next/index.js +1 -0
- package/esm/next/index.js.map +1 -1
- package/esm/next/providers/maplibre/maplibreDataLayers.d.ts +2 -2
- package/esm/next/providers/maplibre/maplibreDataLayers.d.ts.map +1 -1
- package/esm/next/providers/maplibre/maplibreDataLayers.js.map +1 -1
- package/esm/next/providers/maplibre/maplibreDataLayersArea.d.ts +41 -0
- package/esm/next/providers/maplibre/maplibreDataLayersArea.d.ts.map +1 -0
- package/esm/next/providers/maplibre/maplibreDataLayersArea.js +83 -0
- package/esm/next/providers/maplibre/maplibreDataLayersArea.js.map +1 -0
- package/esm/next/providers/maplibre/maplibreDataSource.d.ts +2 -2
- package/esm/next/providers/maplibre/maplibreDataSource.d.ts.map +1 -1
- package/esm/next/providers/maplibre/maplibreDataSourceArea.d.ts +34 -0
- package/esm/next/providers/maplibre/maplibreDataSourceArea.d.ts.map +1 -0
- package/esm/next/providers/maplibre/maplibreDataSourceArea.js +209 -0
- package/esm/next/providers/maplibre/maplibreDataSourceArea.js.map +1 -0
- package/esm/next/providers/maplibre/maplibreTooltip.d.ts.map +1 -1
- package/esm/next/providers/maplibre/maplibreTooltip.js +20 -4
- package/esm/next/providers/maplibre/maplibreTooltip.js.map +1 -1
- package/esm/next/types/areaConfig.d.ts +68 -0
- package/esm/next/types/areaConfig.d.ts.map +1 -0
- package/esm/next/types/areaConfig.js +3 -0
- package/esm/next/types/areaConfig.js.map +1 -0
- package/esm/next/types/areaInternal.d.ts +13 -0
- package/esm/next/types/areaInternal.d.ts.map +1 -0
- package/esm/next/types/areaInternal.js +3 -0
- package/esm/next/types/areaInternal.js.map +1 -0
- package/esm/next/types/areaPublic.d.ts +68 -0
- package/esm/next/types/areaPublic.d.ts.map +1 -0
- package/esm/next/types/areaPublic.js +3 -0
- package/esm/next/types/areaPublic.js.map +1 -0
- package/esm/next/types/shared.d.ts +57 -21
- package/esm/next/types/shared.d.ts.map +1 -1
- package/esm/next/utils/geoCollection.d.ts +40 -0
- package/esm/next/utils/geoCollection.d.ts.map +1 -0
- package/esm/next/utils/geoCollection.js +102 -0
- package/esm/next/utils/geoCollection.js.map +1 -0
- package/package.json +10 -9
- package/styles/css/main.css +18 -0
- package/styles/css/main.css.map +1 -1
- package/styles/scss/geo-area-next.scss +24 -0
- package/styles/scss/main.scss +1 -0
- package/esm/next/features/data/transformation.d.ts +0 -99
- package/esm/next/features/data/transformation.d.ts.map +0 -1
- package/esm/next/features/data/transformation.js.map +0 -1
- package/esm/next/hooks/legend/useLegendItems.d.ts.map +0 -1
- package/esm/next/hooks/legend/useLegendItems.js +0 -54
- package/esm/next/hooks/legend/useLegendItems.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformationCommon.d.ts","sourceRoot":"","sources":["../../../../src/next/features/data/transformationCommon.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAYzD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,CAepE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAYxE"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
/**
|
|
3
|
+
* Converts a data value to a float.
|
|
4
|
+
*
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export function dataValueAsFloat(value) {
|
|
8
|
+
if (value === null) {
|
|
9
|
+
return NaN;
|
|
10
|
+
}
|
|
11
|
+
const parsedNumber = typeof value === "string" ? parseFloat(value) : value;
|
|
12
|
+
if (isNaN(parsedNumber)) {
|
|
13
|
+
console.warn(`SDK: dataValueAsFloat: ${value} is not a number`);
|
|
14
|
+
}
|
|
15
|
+
return parsedNumber;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Parses a location string in "lat;lng" format into coordinates.
|
|
19
|
+
*
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export function getLocation(latlng) {
|
|
23
|
+
if (!latlng) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
const [latitude, longitude] = latlng.split(";").map(dataValueAsFloat);
|
|
27
|
+
if (isNaN(latitude) || isNaN(longitude)) {
|
|
28
|
+
console.warn("GeoPushpinChartNext: Invalid location format", latlng);
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
lat: latitude,
|
|
33
|
+
lng: longitude,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Parses a coordinate string into a number.
|
|
38
|
+
*
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
export function parseCoordinate(coordinate) {
|
|
42
|
+
if (!coordinate) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
const numericalCoordinate = dataValueAsFloat(coordinate);
|
|
46
|
+
if (isNaN(numericalCoordinate)) {
|
|
47
|
+
console.warn("GeoPushpinChartNext: Invalid coordinate", coordinate);
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
return numericalCoordinate;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=transformationCommon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformationCommon.js","sourceRoot":"","sources":["../../../../src/next/features/data/transformationCommon.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAMhC;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAgB;IAC7C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAE3E,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,0BAA0B,KAAK,kBAAkB,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,YAAY,CAAC;AACxB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAqB;IAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACtE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,8CAA8C,EAAE,MAAM,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO;QACH,GAAG,EAAE,QAAQ;QACb,GAAG,EAAE,SAAS;KACjB,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,UAAyB;IACrD,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACzD,IAAI,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,yCAAyC,EAAE,UAAU,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,mBAAmB,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { Map as MapLibreMap } from "maplibre-gl";
|
|
2
|
+
import { IGeoJsonFeature } from "@gooddata/sdk-model";
|
|
3
|
+
import { IColorStrategy } from "@gooddata/sdk-ui-vis-commons";
|
|
4
|
+
import { IGeoAreaChartConfig } from "../../types/areaConfig.js";
|
|
5
|
+
import { IAreaGeoData } from "../../types/shared.js";
|
|
6
|
+
export interface IAreaLayerUpdateOptions {
|
|
7
|
+
features?: IGeoJsonFeature[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Add area layers to the map
|
|
11
|
+
*
|
|
12
|
+
* @remarks
|
|
13
|
+
* This function adds fill and outline layers for area visualization.
|
|
14
|
+
* The fill layer renders the colored areas, and the outline layer provides borders.
|
|
15
|
+
*
|
|
16
|
+
* @param map - MapLibre map instance
|
|
17
|
+
* @param dataSourceId - ID of the data source to use
|
|
18
|
+
* @param config - Area configuration
|
|
19
|
+
*
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export declare function addAreaLayers(map: MapLibreMap, dataSourceId: string, config: IGeoAreaChartConfig): void;
|
|
23
|
+
/**
|
|
24
|
+
* Remove all area-related layers from the map
|
|
25
|
+
*
|
|
26
|
+
* @remarks
|
|
27
|
+
* This function removes all area layers along with their data source.
|
|
28
|
+
* It's typically called before updating the map with new data.
|
|
29
|
+
*
|
|
30
|
+
* @param map - MapLibre map instance
|
|
31
|
+
*
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
export declare function removeAreaLayers(map: MapLibreMap): void;
|
|
35
|
+
/**
|
|
36
|
+
* Add data source and layers to the map for area
|
|
37
|
+
*
|
|
38
|
+
* @remarks
|
|
39
|
+
* This function combines data source creation and layer addition into a single
|
|
40
|
+
* operation. It removes any existing layers/source first, then creates a new
|
|
41
|
+
* data source and adds the area layers.
|
|
42
|
+
*
|
|
43
|
+
* @param map - MapLibre map instance
|
|
44
|
+
* @param geoData - Area geographic data to display
|
|
45
|
+
* @param config - Map configuration
|
|
46
|
+
* @param colorStrategy - Color strategy for styling
|
|
47
|
+
*
|
|
48
|
+
* @internal
|
|
49
|
+
*/
|
|
50
|
+
export declare function updateAreaMapLayers(map: MapLibreMap, geoData: IAreaGeoData, config: IGeoAreaChartConfig, colorStrategy: IColorStrategy, options?: IAreaLayerUpdateOptions): void;
|
|
51
|
+
//# sourceMappingURL=areaLayerManagement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"areaLayerManagement.d.ts","sourceRoot":"","sources":["../../../../src/next/features/map/areaLayerManagement.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAU9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,WAAW,uBAAuB;IACpC,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;CAChC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAMvG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAYvD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAC/B,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,mBAAmB,EAC3B,aAAa,EAAE,cAAc,EAC7B,OAAO,GAAE,uBAA4B,GACtC,IAAI,CAsBN"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { DEFAULT_DATA_SOURCE_NAME } from "../../constants/geoChart.js";
|
|
3
|
+
import { DEFAULT_AREA_LAYER_NAME, DEFAULT_AREA_OUTLINE_LAYER_NAME, createAreaFillLayer, createAreaOutlineLayer, } from "../../providers/maplibre/maplibreDataLayersArea.js";
|
|
4
|
+
import { createAreaDataSource } from "../../providers/maplibre/maplibreDataSourceArea.js";
|
|
5
|
+
/**
|
|
6
|
+
* Add area layers to the map
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* This function adds fill and outline layers for area visualization.
|
|
10
|
+
* The fill layer renders the colored areas, and the outline layer provides borders.
|
|
11
|
+
*
|
|
12
|
+
* @param map - MapLibre map instance
|
|
13
|
+
* @param dataSourceId - ID of the data source to use
|
|
14
|
+
* @param config - Area configuration
|
|
15
|
+
*
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
export function addAreaLayers(map, dataSourceId, config) {
|
|
19
|
+
// Add fill layer first (renders below outline)
|
|
20
|
+
map.addLayer(createAreaFillLayer(dataSourceId, config));
|
|
21
|
+
// Add outline layer on top
|
|
22
|
+
map.addLayer(createAreaOutlineLayer(dataSourceId, config));
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Remove all area-related layers from the map
|
|
26
|
+
*
|
|
27
|
+
* @remarks
|
|
28
|
+
* This function removes all area layers along with their data source.
|
|
29
|
+
* It's typically called before updating the map with new data.
|
|
30
|
+
*
|
|
31
|
+
* @param map - MapLibre map instance
|
|
32
|
+
*
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
35
|
+
export function removeAreaLayers(map) {
|
|
36
|
+
const layersToRemove = [DEFAULT_AREA_LAYER_NAME, DEFAULT_AREA_OUTLINE_LAYER_NAME];
|
|
37
|
+
layersToRemove.forEach((layerId) => {
|
|
38
|
+
if (map.getLayer(layerId)) {
|
|
39
|
+
map.removeLayer(layerId);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
if (map.getSource(DEFAULT_DATA_SOURCE_NAME)) {
|
|
43
|
+
map.removeSource(DEFAULT_DATA_SOURCE_NAME);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Add data source and layers to the map for area
|
|
48
|
+
*
|
|
49
|
+
* @remarks
|
|
50
|
+
* This function combines data source creation and layer addition into a single
|
|
51
|
+
* operation. It removes any existing layers/source first, then creates a new
|
|
52
|
+
* data source and adds the area layers.
|
|
53
|
+
*
|
|
54
|
+
* @param map - MapLibre map instance
|
|
55
|
+
* @param geoData - Area geographic data to display
|
|
56
|
+
* @param config - Map configuration
|
|
57
|
+
* @param colorStrategy - Color strategy for styling
|
|
58
|
+
*
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
61
|
+
export function updateAreaMapLayers(map, geoData, config, colorStrategy, options = {}) {
|
|
62
|
+
if (!map.isStyleLoaded()) {
|
|
63
|
+
void map.once("styledata", () => {
|
|
64
|
+
updateAreaMapLayers(map, geoData, config, colorStrategy, options);
|
|
65
|
+
});
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
// Remove existing layers and source
|
|
69
|
+
removeAreaLayers(map);
|
|
70
|
+
// Create and add new data source
|
|
71
|
+
const source = createAreaDataSource({
|
|
72
|
+
geoData,
|
|
73
|
+
config,
|
|
74
|
+
colorStrategy,
|
|
75
|
+
features: options.features,
|
|
76
|
+
});
|
|
77
|
+
map.addSource(DEFAULT_DATA_SOURCE_NAME, source);
|
|
78
|
+
// Add area layers
|
|
79
|
+
addAreaLayers(map, DEFAULT_DATA_SOURCE_NAME, config);
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=areaLayerManagement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"areaLayerManagement.js","sourceRoot":"","sources":["../../../../src/next/features/map/areaLayerManagement.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAOhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EACH,uBAAuB,EACvB,+BAA+B,EAC/B,mBAAmB,EACnB,sBAAsB,GACzB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAQ1F;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAAC,GAAgB,EAAE,YAAoB,EAAE,MAA2B;IAC7F,+CAA+C;IAC/C,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAExD,2BAA2B;IAC3B,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAgB;IAC7C,MAAM,cAAc,GAAG,CAAC,uBAAuB,EAAE,+BAA+B,CAAC,CAAC;IAElF,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC/B,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,GAAG,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;IAC/C,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CAC/B,GAAgB,EAChB,OAAqB,EACrB,MAA2B,EAC3B,aAA6B,EAC7B,UAAmC,EAAE;IAErC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC;QACvB,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YAC5B,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,OAAO;IACX,CAAC;IAED,oCAAoC;IACpC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAEtB,iCAAiC;IACjC,MAAM,MAAM,GAAG,oBAAoB,CAAC;QAChC,OAAO;QACP,MAAM;QACN,aAAa;QACb,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC7B,CAAC,CAAC;IACH,GAAG,CAAC,SAAS,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;IAEhD,kBAAkB;IAClB,aAAa,CAAC,GAAG,EAAE,wBAAwB,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Map as MapLibreMap } from "maplibre-gl";
|
|
2
2
|
import { IColorStrategy } from "@gooddata/sdk-ui-vis-commons";
|
|
3
3
|
import { IMapConfig } from "../../types/mapProvider.js";
|
|
4
|
-
import {
|
|
4
|
+
import { IPushpinGeoData } from "../../types/shared.js";
|
|
5
5
|
/**
|
|
6
6
|
* Add pushpin layers to the map
|
|
7
7
|
*
|
|
@@ -19,7 +19,7 @@ import { IGeoData } from "../../types/shared.js";
|
|
|
19
19
|
*
|
|
20
20
|
* @internal
|
|
21
21
|
*/
|
|
22
|
-
export declare function addPushpinLayers(map: MapLibreMap, dataSourceId: string, geoData:
|
|
22
|
+
export declare function addPushpinLayers(map: MapLibreMap, dataSourceId: string, geoData: IPushpinGeoData, config: IMapConfig, hasClustering: boolean): void;
|
|
23
23
|
/**
|
|
24
24
|
* Remove all geo-related layers from the map
|
|
25
25
|
*
|
|
@@ -47,5 +47,5 @@ export declare function removeGeoLayers(map: MapLibreMap): void;
|
|
|
47
47
|
*
|
|
48
48
|
* @internal
|
|
49
49
|
*/
|
|
50
|
-
export declare function updateMapLayers(map: MapLibreMap, geoData:
|
|
50
|
+
export declare function updateMapLayers(map: MapLibreMap, geoData: IPushpinGeoData, config: IMapConfig, colorStrategy: IColorStrategy): void;
|
|
51
51
|
//# sourceMappingURL=layerManagement.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layerManagement.d.ts","sourceRoot":"","sources":["../../../../src/next/features/map/layerManagement.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAa9D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"layerManagement.d.ts","sourceRoot":"","sources":["../../../../src/next/features/map/layerManagement.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAa9D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIxD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC5B,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,UAAU,EAClB,aAAa,EAAE,OAAO,GACvB,IAAI,CAgBN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAYtD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC3B,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,UAAU,EAClB,aAAa,EAAE,cAAc,GAC9B,IAAI,CAoBN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layerManagement.js","sourceRoot":"","sources":["../../../../src/next/features/map/layerManagement.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAMhC,OAAO,EACH,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACH,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,GACxB,MAAM,gDAAgD,CAAC;AAGxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,gBAAgB,CAC5B,GAAgB,EAChB,YAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"layerManagement.js","sourceRoot":"","sources":["../../../../src/next/features/map/layerManagement.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
import type { Map as MapLibreMap } from "maplibre-gl";
|
|
2
2
|
import { IMapConfig, IMapViewport } from "../../types/mapProvider.js";
|
|
3
3
|
import { IGeoLngLat } from "../../types/shared.js";
|
|
4
|
+
/**
|
|
5
|
+
* Convert GeoJSON bbox array to viewport bounds.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Accepts 2D or 3D bbox arrays returned from collection metadata. Only
|
|
9
|
+
* longitude/latitude values are used, extra coordinates are ignored.
|
|
10
|
+
*
|
|
11
|
+
* @param bbox - Array in the form [minLng, minLat, maxLng, maxLat, ...]
|
|
12
|
+
* @returns Viewport containing normalized bounds or null if invalid
|
|
13
|
+
*
|
|
14
|
+
* @alpha
|
|
15
|
+
*/
|
|
16
|
+
export declare function bboxToViewport(bbox?: number[]): Partial<IMapViewport> | null;
|
|
4
17
|
/**
|
|
5
18
|
* Calculate optimal viewport for data points
|
|
6
19
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewportManagement.d.ts","sourceRoot":"","sources":["../../../../src/next/features/map/viewportManagement.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAwC,GAAG,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AAG5F,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AA2DnD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAQpG;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CACzB,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,EAC/B,OAAO,GAAE,OAAc,GACxB,IAAI,CAoBN;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAa1G;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAC/B,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,GAChC,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAkC1B"}
|
|
1
|
+
{"version":3,"file":"viewportManagement.d.ts","sourceRoot":"","sources":["../../../../src/next/features/map/viewportManagement.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAwC,GAAG,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AAG5F,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AA2DnD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAsB5E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAQpG;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CACzB,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,EAC/B,OAAO,GAAE,OAAc,GACxB,IAAI,CAoBN;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAa1G;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAC/B,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,GAChC,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAkC1B"}
|
|
@@ -42,6 +42,36 @@ function normalizeBounds(bounds) {
|
|
|
42
42
|
}
|
|
43
43
|
return undefined;
|
|
44
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Convert GeoJSON bbox array to viewport bounds.
|
|
47
|
+
*
|
|
48
|
+
* @remarks
|
|
49
|
+
* Accepts 2D or 3D bbox arrays returned from collection metadata. Only
|
|
50
|
+
* longitude/latitude values are used, extra coordinates are ignored.
|
|
51
|
+
*
|
|
52
|
+
* @param bbox - Array in the form [minLng, minLat, maxLng, maxLat, ...]
|
|
53
|
+
* @returns Viewport containing normalized bounds or null if invalid
|
|
54
|
+
*
|
|
55
|
+
* @alpha
|
|
56
|
+
*/
|
|
57
|
+
export function bboxToViewport(bbox) {
|
|
58
|
+
if (!bbox || bbox.length < 4) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
const [minLng, minLat, maxLng, maxLat] = bbox;
|
|
62
|
+
const coords = [minLng, minLat, maxLng, maxLat];
|
|
63
|
+
if (!coords.every((value) => Number.isFinite(value))) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
const bounds = normalizeBounds([
|
|
67
|
+
[minLng, minLat],
|
|
68
|
+
[maxLng, maxLat],
|
|
69
|
+
]);
|
|
70
|
+
if (!bounds) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
return { bounds };
|
|
74
|
+
}
|
|
45
75
|
/**
|
|
46
76
|
* Calculate optimal viewport for data points
|
|
47
77
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewportManagement.js","sourceRoot":"","sources":["../../../../src/next/features/map/viewportManagement.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"viewportManagement.js","sourceRoot":"","sources":["../../../../src/next/features/map/viewportManagement.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ import { IMapConfig } from "../../types/mapProvider.js";
|
|
|
19
19
|
*
|
|
20
20
|
* @internal
|
|
21
21
|
*/
|
|
22
|
-
export declare function setupTooltipHandlers(map: MapLibreMap, tooltip: Popup, config: IMapConfig, drillableItems?: IHeaderPredicate[], intl?: IntlShape): () => void;
|
|
22
|
+
export declare function setupTooltipHandlers(map: MapLibreMap, tooltip: Popup, config: IMapConfig, drillableItems?: IHeaderPredicate[], intl?: IntlShape, layerId?: string): () => void;
|
|
23
23
|
/**
|
|
24
24
|
* Show tooltip at specified location
|
|
25
25
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltipManagement.d.ts","sourceRoot":"","sources":["../../../../src/next/features/tooltip/tooltipManagement.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,IAAI,WAAW,EAAiB,KAAK,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAOpD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAChC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,UAAU,EAClB,cAAc,CAAC,EAAE,gBAAgB,EAAE,EACnC,IAAI,CAAC,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"tooltipManagement.d.ts","sourceRoot":"","sources":["../../../../src/next/features/tooltip/tooltipManagement.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,IAAI,WAAW,EAAiB,KAAK,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAOpD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAChC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,UAAU,EAClB,cAAc,CAAC,EAAE,gBAAgB,EAAE,EACnC,IAAI,CAAC,EAAE,SAAS,EAChB,OAAO,GAAE,MAA2B,GACrC,MAAM,IAAI,CA2BZ;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACvB,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,KAAK,EACd,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EACpC,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,IAAI,CAUN;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,KAAK,GAAG,IAAI,CAEhD"}
|
|
@@ -18,20 +18,24 @@ import { handlePushpinMouseEnter, handlePushpinMouseLeave, } from "../../provide
|
|
|
18
18
|
*
|
|
19
19
|
* @internal
|
|
20
20
|
*/
|
|
21
|
-
export function setupTooltipHandlers(map, tooltip, config, drillableItems, intl) {
|
|
22
|
-
const layerId = DEFAULT_LAYER_NAME;
|
|
21
|
+
export function setupTooltipHandlers(map, tooltip, config, drillableItems, intl, layerId = DEFAULT_LAYER_NAME) {
|
|
23
22
|
const handleMouseMove = (e) => {
|
|
23
|
+
if (!map.getLayer(layerId)) {
|
|
24
|
+
// Layer not yet present in the style; avoid querying MapLibre to prevent errors like
|
|
25
|
+
// "The layer '<layerId>' does not exist" and ensure tooltip is hidden if previously open.
|
|
26
|
+
if (tooltip.isOpen()) {
|
|
27
|
+
handlePushpinMouseLeave(e, map, tooltip, config);
|
|
28
|
+
}
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
24
31
|
const features = map.queryRenderedFeatures(e.point, {
|
|
25
32
|
layers: [layerId],
|
|
26
33
|
});
|
|
27
34
|
if (features && features.length > 0) {
|
|
28
35
|
handlePushpinMouseEnter(e, map, tooltip, config, drillableItems, intl);
|
|
29
36
|
}
|
|
30
|
-
else {
|
|
31
|
-
|
|
32
|
-
if (tooltip.isOpen()) {
|
|
33
|
-
handlePushpinMouseLeave(e, map, tooltip, config);
|
|
34
|
-
}
|
|
37
|
+
else if (tooltip.isOpen()) {
|
|
38
|
+
handlePushpinMouseLeave(e, map, tooltip, config);
|
|
35
39
|
}
|
|
36
40
|
};
|
|
37
41
|
map.on("mousemove", handleMouseMove);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltipManagement.js","sourceRoot":"","sources":["../../../../src/next/features/tooltip/tooltipManagement.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAOhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EACH,uBAAuB,EACvB,uBAAuB,GAC1B,MAAM,6CAA6C,CAAC;AAGrD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,oBAAoB,CAChC,GAAgB,EAChB,OAAc,EACd,MAAkB,EAClB,cAAmC,EACnC,IAAgB;
|
|
1
|
+
{"version":3,"file":"tooltipManagement.js","sourceRoot":"","sources":["../../../../src/next/features/tooltip/tooltipManagement.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAOhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EACH,uBAAuB,EACvB,uBAAuB,GAC1B,MAAM,6CAA6C,CAAC;AAGrD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,oBAAoB,CAChC,GAAgB,EAChB,OAAc,EACd,MAAkB,EAClB,cAAmC,EACnC,IAAgB,EAChB,UAAkB,kBAAkB;IAEpC,MAAM,eAAe,GAAG,CAAC,CAAgB,EAAE,EAAE;QACzC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,qFAAqF;YACrF,0FAA0F;YAC1F,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnB,uBAAuB,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACrD,CAAC;YACD,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,EAAE;YAChD,MAAM,EAAE,CAAC,OAAO,CAAC;SACpB,CAAC,CAAC;QAEH,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,uBAAuB,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QAC3E,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,uBAAuB,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;IACL,CAAC,CAAC;IAEF,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAErC,OAAO,GAAG,EAAE;QACR,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAC1C,CAAC,CAAC;AACN,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CACvB,GAAgB,EAChB,OAAc,EACd,MAAoC,EACpC,IAAY,EACZ,SAAkB,EAClB,MAAyB;IAEzB,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAErE,IAAI,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,OAAc;IACtC,OAAO,CAAC,MAAM,EAAE,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IAttribute, IExecutionDefinition } from "@gooddata/sdk-model";
|
|
2
|
+
/**
|
|
3
|
+
* Extracts the first area attribute from execution buckets.
|
|
4
|
+
*/
|
|
5
|
+
export declare function resolveAreaAttributeFromDefinition(definition?: IExecutionDefinition): IAttribute | undefined;
|
|
6
|
+
/**
|
|
7
|
+
* Returns explicitly provided area attribute or falls back to execution buckets.
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolveEffectiveAreaAttribute(area: IAttribute | undefined, definition?: IExecutionDefinition): IAttribute | undefined;
|
|
10
|
+
//# sourceMappingURL=areaAttributeResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"areaAttributeResolver.d.ts","sourceRoot":"","sources":["../../../src/next/helpers/areaAttributeResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAe,MAAM,qBAAqB,CAAC;AAGpF;;GAEG;AACH,wBAAgB,kCAAkC,CAC9C,UAAU,CAAC,EAAE,oBAAoB,GAClC,UAAU,GAAG,SAAS,CAWxB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CACzC,IAAI,EAAE,UAAU,GAAG,SAAS,EAC5B,UAAU,CAAC,EAAE,oBAAoB,GAClC,UAAU,GAAG,SAAS,CAMxB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { isAttribute } from "@gooddata/sdk-model";
|
|
3
|
+
import { BucketNames } from "@gooddata/sdk-ui";
|
|
4
|
+
/**
|
|
5
|
+
* Extracts the first area attribute from execution buckets.
|
|
6
|
+
*/
|
|
7
|
+
export function resolveAreaAttributeFromDefinition(definition) {
|
|
8
|
+
if (!definition) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
const areaBucket = definition.buckets?.find((bucket) => bucket.localIdentifier === BucketNames.AREA);
|
|
12
|
+
if (!areaBucket) {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
return areaBucket.items.find(isAttribute);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Returns explicitly provided area attribute or falls back to execution buckets.
|
|
19
|
+
*/
|
|
20
|
+
export function resolveEffectiveAreaAttribute(area, definition) {
|
|
21
|
+
if (area) {
|
|
22
|
+
return area;
|
|
23
|
+
}
|
|
24
|
+
return resolveAreaAttributeFromDefinition(definition);
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=areaAttributeResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"areaAttributeResolver.js","sourceRoot":"","sources":["../../../src/next/helpers/areaAttributeResolver.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAoC,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;GAEG;AACH,MAAM,UAAU,kCAAkC,CAC9C,UAAiC;IAEjC,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC;IACrG,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAA2B,CAAC;AACxE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B,CACzC,IAA4B,EAC5B,UAAiC;IAEjC,IAAI,IAAI,EAAE,CAAC;QACP,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,kCAAkC,CAAC,UAAU,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { IPreparedExecution } from "@gooddata/sdk-backend-spi";
|
|
2
2
|
import { IDimension, IExecutionDefinition } from "@gooddata/sdk-model";
|
|
3
|
+
import { IGeoAreaChartProps } from "../../types/areaPublic.js";
|
|
3
4
|
import { IGeoPushpinChartNextResolvedProps } from "../../types/internal.js";
|
|
5
|
+
type GeoExecutionProps = IGeoPushpinChartNextResolvedProps | IGeoAreaChartProps;
|
|
4
6
|
/**
|
|
5
7
|
* Creates dimensions for geo chart execution.
|
|
6
8
|
* @internal
|
|
@@ -14,7 +16,7 @@ export declare function getGeoChartDimensions(def: IExecutionDefinition): IDimen
|
|
|
14
16
|
* the chart is using location mode (single attribute) or lat/lng mode (two attributes).
|
|
15
17
|
*
|
|
16
18
|
* Buckets created:
|
|
17
|
-
* -
|
|
19
|
+
* - AREA: Contains area attribute (or LOCATION/LATITUDE/LONGITUDE for pushpin)
|
|
18
20
|
* - SIZE: Contains size measure/attribute
|
|
19
21
|
* - COLOR: Contains color measure/attribute
|
|
20
22
|
* - SEGMENT: Contains segmentBy attribute
|
|
@@ -25,5 +27,6 @@ export declare function getGeoChartDimensions(def: IExecutionDefinition): IDimen
|
|
|
25
27
|
*
|
|
26
28
|
* @alpha
|
|
27
29
|
*/
|
|
28
|
-
export declare function useInitExecution(props:
|
|
30
|
+
export declare function useInitExecution(props: GeoExecutionProps): IPreparedExecution;
|
|
31
|
+
export {};
|
|
29
32
|
//# sourceMappingURL=useInitExecution.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInitExecution.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/init/useInitExecution.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACH,UAAU,EACV,oBAAoB,EAMvB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;AAE5E;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,oBAAoB,GAAG,UAAU,EAAE,CAM7E;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"useInitExecution.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/init/useInitExecution.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACH,UAAU,EACV,oBAAoB,EAMvB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;AAE5E,KAAK,iBAAiB,GAAG,iCAAiC,GAAG,kBAAkB,CAAC;AAMhF;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,oBAAoB,GAAG,UAAU,EAAE,CAM7E;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CA6E7E"}
|
|
@@ -3,6 +3,9 @@ import { useMemo } from "react";
|
|
|
3
3
|
import { compact } from "lodash-es";
|
|
4
4
|
import { MeasureGroupIdentifier, bucketsAttributes, bucketsMeasures, newBucket, newDimension, } from "@gooddata/sdk-model";
|
|
5
5
|
import { BucketNames, useBackendStrict, useWorkspaceStrict } from "@gooddata/sdk-ui";
|
|
6
|
+
function isAreaProps(props) {
|
|
7
|
+
return props.area !== undefined;
|
|
8
|
+
}
|
|
6
9
|
/**
|
|
7
10
|
* Creates dimensions for geo chart execution.
|
|
8
11
|
* @internal
|
|
@@ -21,7 +24,7 @@ export function getGeoChartDimensions(def) {
|
|
|
21
24
|
* the chart is using location mode (single attribute) or lat/lng mode (two attributes).
|
|
22
25
|
*
|
|
23
26
|
* Buckets created:
|
|
24
|
-
* -
|
|
27
|
+
* - AREA: Contains area attribute (or LOCATION/LATITUDE/LONGITUDE for pushpin)
|
|
25
28
|
* - SIZE: Contains size measure/attribute
|
|
26
29
|
* - COLOR: Contains color measure/attribute
|
|
27
30
|
* - SEGMENT: Contains segmentBy attribute
|
|
@@ -33,23 +36,34 @@ export function getGeoChartDimensions(def) {
|
|
|
33
36
|
* @alpha
|
|
34
37
|
*/
|
|
35
38
|
export function useInitExecution(props) {
|
|
36
|
-
const {
|
|
39
|
+
const { segmentBy, color, config, filters = [], sortBy = [], execConfig } = props;
|
|
37
40
|
const backend = useBackendStrict(props.backend, "useInitExecution");
|
|
38
41
|
const workspace = useWorkspaceStrict(props.workspace, "useInitExecution");
|
|
39
42
|
const { tooltipText } = config ?? {};
|
|
43
|
+
const area = isAreaProps(props);
|
|
44
|
+
const areaArea = area ? props.area : undefined;
|
|
45
|
+
const pushpinLocation = area ? undefined : props.location;
|
|
46
|
+
const pushpinLatitude = area ? undefined : props.latitude;
|
|
47
|
+
const pushpinLongitude = area ? undefined : props.longitude;
|
|
48
|
+
const pushpinSize = area ? undefined : props.size;
|
|
40
49
|
return useMemo(() => {
|
|
41
50
|
const buckets = [];
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
else if (location) {
|
|
48
|
-
buckets.push(newBucket(BucketNames.LOCATION, location));
|
|
51
|
+
if (area) {
|
|
52
|
+
if (areaArea) {
|
|
53
|
+
buckets.push(newBucket(BucketNames.AREA, areaArea));
|
|
54
|
+
}
|
|
49
55
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
56
|
+
else {
|
|
57
|
+
if (pushpinLatitude && pushpinLongitude) {
|
|
58
|
+
buckets.push(newBucket(BucketNames.LATITUDE, pushpinLatitude));
|
|
59
|
+
buckets.push(newBucket(BucketNames.LONGITUDE, pushpinLongitude));
|
|
60
|
+
}
|
|
61
|
+
else if (pushpinLocation) {
|
|
62
|
+
buckets.push(newBucket(BucketNames.LOCATION, pushpinLocation));
|
|
63
|
+
}
|
|
64
|
+
if (pushpinSize) {
|
|
65
|
+
buckets.push(newBucket(BucketNames.SIZE, pushpinSize));
|
|
66
|
+
}
|
|
53
67
|
}
|
|
54
68
|
// Color bucket
|
|
55
69
|
if (color) {
|
|
@@ -76,11 +90,13 @@ export function useInitExecution(props) {
|
|
|
76
90
|
}, [
|
|
77
91
|
backend,
|
|
78
92
|
workspace,
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
93
|
+
area,
|
|
94
|
+
areaArea,
|
|
95
|
+
pushpinLocation,
|
|
96
|
+
pushpinLatitude,
|
|
97
|
+
pushpinLongitude,
|
|
82
98
|
segmentBy,
|
|
83
|
-
|
|
99
|
+
pushpinSize,
|
|
84
100
|
color,
|
|
85
101
|
tooltipText,
|
|
86
102
|
filters,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInitExecution.js","sourceRoot":"","sources":["../../../../src/next/hooks/init/useInitExecution.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAGH,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,YAAY,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"useInitExecution.js","sourceRoot":"","sources":["../../../../src/next/hooks/init/useInitExecution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { DataViewFacade } from "@gooddata/sdk-ui";
|
|
2
|
+
import { IColorStrategy, IPushpinCategoryLegendItem } from "@gooddata/sdk-ui-vis-commons";
|
|
3
|
+
import { IAreaGeoData } from "../../types/shared.js";
|
|
4
|
+
/**
|
|
5
|
+
* Creates legend items from area geo data for segment-based coloring.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* This hook creates category legend items when the visualization uses segment-based
|
|
9
|
+
* coloring (attribute-based). Each unique segment value gets a legend item with:
|
|
10
|
+
* - name: Display name of the segment value
|
|
11
|
+
* - uri: URI of the segment value for identification
|
|
12
|
+
* - color: Color from the color strategy
|
|
13
|
+
* - legendIndex: Index for consistent ordering
|
|
14
|
+
* - isVisible: Visibility state (all visible by default)
|
|
15
|
+
*
|
|
16
|
+
* Legend items are used to display the category legend and to filter visible areas
|
|
17
|
+
* by toggling legend items on/off.
|
|
18
|
+
*
|
|
19
|
+
* @param dataView - Data view facade for attribute metadata
|
|
20
|
+
* @param geoData - Transformed area geographic data containing segment information
|
|
21
|
+
* @param colorStrategy - Color strategy to get colors for legend items
|
|
22
|
+
* @returns Array of category legend items, empty if no segments
|
|
23
|
+
*
|
|
24
|
+
* @alpha
|
|
25
|
+
*/
|
|
26
|
+
export declare function useAreaLegendItems(dataView: DataViewFacade | null, geoData: IAreaGeoData | null, colorStrategy: IColorStrategy | null): IPushpinCategoryLegendItem[];
|
|
27
|
+
//# sourceMappingURL=useAreaLegendItems.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAreaLegendItems.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/legend/useAreaLegendItems.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1F,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAC9B,QAAQ,EAAE,cAAc,GAAG,IAAI,EAC/B,OAAO,EAAE,YAAY,GAAG,IAAI,EAC5B,aAAa,EAAE,cAAc,GAAG,IAAI,GACrC,0BAA0B,EAAE,CAO9B"}
|