@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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// (C) 2025 GoodData Corporation
|
|
2
2
|
import { omit } from "lodash-es";
|
|
3
3
|
import { AttributeColorStrategy, ColorStrategy, getColorFromMapping, isValidMappedColor, } from "@gooddata/sdk-ui-vis-commons";
|
|
4
|
-
import {
|
|
4
|
+
import { findPushpinAttributesInDimension, } from "../data/pushpinTransformation.js";
|
|
5
5
|
/**
|
|
6
6
|
* Color strategy for GeoPushpinChartNext
|
|
7
7
|
*
|
|
@@ -74,7 +74,7 @@ class GeoChartColorStrategy extends ColorStrategy {
|
|
|
74
74
|
* @internal
|
|
75
75
|
*/
|
|
76
76
|
export function getColorStrategy(colorPalette, colorMapping, geoData, dv) {
|
|
77
|
-
const { locationAttribute, segmentByAttribute } =
|
|
77
|
+
const { locationAttribute, segmentByAttribute } = findPushpinAttributesInDimension(dv, geoData);
|
|
78
78
|
const locationAttributeHeader = {
|
|
79
79
|
attributeHeader: omit(locationAttribute, "items"),
|
|
80
80
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colorStrategy.js","sourceRoot":"","sources":["../../../../src/next/features/coloring/colorStrategy.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,OAAO,EACH,sBAAsB,EACtB,aAAa,EAIb,mBAAmB,EACnB,kBAAkB,GACrB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,
|
|
1
|
+
{"version":3,"file":"colorStrategy.js","sourceRoot":"","sources":["../../../../src/next/features/coloring/colorStrategy.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,OAAO,EACH,sBAAsB,EACtB,aAAa,EAIb,mBAAmB,EACnB,kBAAkB,GACrB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAEH,gCAAgC,GACnC,MAAM,kCAAkC,CAAC;AAE1C;;;;;;;;GAQG;AACH,MAAM,qBAAsB,SAAQ,aAAa;IAC7C;;;;;;OAMG;IACO,qBAAqB,CAC3B,YAA2B,EAC3B,YAA6B,EAC7B,iBAAuC,EACvC,kBAA+C,EAC/C,EAAkB;QAElB,oCAAoC;QACpC,IAAI,kBAAkB,EAAE,CAAC;YACrB,OAAO;gBACH,mBAAmB,EAAE,IAAI,CAAC,4BAA4B,CAClD,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,EAAE,CACL;aACJ,CAAC;QACN,CAAC;QAED,mCAAmC;QACnC,OAAO;YACH,mBAAmB,EAAE;gBACjB,IAAI,CAAC,2BAA2B,CAAC,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,EAAE,CAAC;aACtF;SACJ,CAAC;IACN,CAAC;IAED;;OAEG;IACK,4BAA4B,CAChC,YAA2B,EAC3B,YAA6B,EAC7B,kBAAwC,EACxC,EAAkB;QAElB,MAAM,aAAa,GAAmB,IAAI,sBAAsB,CAC5D,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,kBAAkB,EAClB,EAAE,CACL,CAAC;QAEF,OAAO,aAAa,CAAC,kBAAkB,EAAE,CAAC;IAC9C,CAAC;IAED;;OAEG;IACK,2BAA2B,CAC/B,YAA2B,EAC3B,YAA6B,EAC7B,iBAAuC,EACvC,EAAkB;QAElB,MAAM,WAAW,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;QAC7E,MAAM,KAAK,GACP,WAAW,KAAK,SAAS,IAAI,kBAAkB,CAAC,WAAW,EAAE,YAAY,CAAC;YACtE,CAAC,CAAC,WAAW;YACb,CAAC,CAAC;gBACI,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;aAC9B,CAAC;QAEZ,OAAO;YACH,UAAU,EAAE,iBAAiB;YAC7B,KAAK;SACR,CAAC;IACN,CAAC;CACJ;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,gBAAgB,CAC5B,YAA2B,EAC3B,YAA6B,EAC7B,OAAwB,EACxB,EAAkB;IAElB,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,GAC3C,gCAAgC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAElD,MAAM,uBAAuB,GAAyB;QAClD,eAAe,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC;KACpD,CAAC;IAEF,OAAO,IAAI,qBAAqB,CAC5B,YAAY,EACZ,YAAY,EACZ,uBAAuB,EACvB,kBAAkB,EAClB,EAAE,CACL,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { IAttributeDescriptor, IResultHeader } from "@gooddata/sdk-model";
|
|
2
|
+
import { DataViewFacade } from "@gooddata/sdk-ui";
|
|
3
|
+
import { IPushpinCategoryLegendItem } from "@gooddata/sdk-ui-vis-commons";
|
|
4
|
+
import { IAreaGeoData, IAvailableLegends } from "../../types/shared.js";
|
|
5
|
+
/**
|
|
6
|
+
* Transforms data view into area geo data structure
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* This is the main data transformation function for area charts.
|
|
10
|
+
* It extracts geographic area identifiers and color values from the execution result.
|
|
11
|
+
*
|
|
12
|
+
* @param dv - Data view facade
|
|
13
|
+
* @param emptyHeaderString - String to use for empty headers
|
|
14
|
+
* @param nullHeaderString - String to use for null headers
|
|
15
|
+
* @returns Structured area geo data
|
|
16
|
+
*
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
export declare function getAreaGeoData(dv: DataViewFacade, emptyHeaderString: string, nullHeaderString: string): IAreaGeoData;
|
|
20
|
+
/**
|
|
21
|
+
* Determines which legends should be available for area based on data
|
|
22
|
+
*
|
|
23
|
+
* @remarks
|
|
24
|
+
* Analyzes area geo data to determine which legend types are applicable:
|
|
25
|
+
* - Category legend: When segments exist
|
|
26
|
+
* - Color legend: When color measure exists with varying values
|
|
27
|
+
* - Size legend: Never for area (always omitted)
|
|
28
|
+
*
|
|
29
|
+
* @param categoryItems - Category legend items
|
|
30
|
+
* @param geoData - Area geo data structure
|
|
31
|
+
* @returns Object indicating which legends are available
|
|
32
|
+
*
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
35
|
+
export declare function getAreaAvailableLegends(categoryItems: IPushpinCategoryLegendItem[], geoData: IAreaGeoData): IAvailableLegends;
|
|
36
|
+
/**
|
|
37
|
+
* Attribute information with header items
|
|
38
|
+
*/
|
|
39
|
+
export type IAreaAttributeInfo = IAttributeDescriptor["attributeHeader"] & {
|
|
40
|
+
items: IResultHeader[];
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Area attributes in dimension
|
|
44
|
+
*/
|
|
45
|
+
export interface IAreaAttributesInDimension {
|
|
46
|
+
areaAttribute: IAreaAttributeInfo;
|
|
47
|
+
segmentByAttribute: IAreaAttributeInfo | undefined;
|
|
48
|
+
tooltipTextAttribute: IAreaAttributeInfo | undefined;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Finds area attributes in the data view dimension
|
|
52
|
+
*
|
|
53
|
+
* @param dv - Data view facade
|
|
54
|
+
* @param geoData - Area geo data structure
|
|
55
|
+
* @returns Area attributes information
|
|
56
|
+
*
|
|
57
|
+
* @internal
|
|
58
|
+
*/
|
|
59
|
+
export declare function findAreaAttributesInDimension(dv: DataViewFacade, geoData: IAreaGeoData): IAreaAttributesInDimension;
|
|
60
|
+
//# sourceMappingURL=areaTransformation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"areaTransformation.d.ts","sourceRoot":"","sources":["../../../../src/next/features/data/areaTransformation.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,oBAAoB,EAGpB,aAAa,EAOhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAe,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAG1E,OAAO,EACH,YAAY,EACZ,iBAAiB,EAKpB,MAAM,uBAAuB,CAAC;AAuN/B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC1B,EAAE,EAAE,cAAc,EAClB,iBAAiB,EAAE,MAAM,EACzB,gBAAgB,EAAE,MAAM,GACzB,YAAY,CA6Cd;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACnC,aAAa,EAAE,0BAA0B,EAAE,EAC3C,OAAO,EAAE,YAAY,GACtB,iBAAiB,CAWnB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IACvE,KAAK,EAAE,aAAa,EAAE,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC,aAAa,EAAE,kBAAkB,CAAC;IAClC,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACnD,oBAAoB,EAAE,kBAAkB,GAAG,SAAS,CAAC;CACxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CACzC,EAAE,EAAE,cAAc,EAClB,OAAO,EAAE,YAAY,GACtB,0BAA0B,CAkC5B"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { attributeLocalId, isAttribute, isMeasure, isResultAttributeHeader, measureLocalId, resultHeaderName, } from "@gooddata/sdk-model";
|
|
3
|
+
import { BucketNames } from "@gooddata/sdk-ui";
|
|
4
|
+
import { dataValueAsFloat } from "./transformationCommon.js";
|
|
5
|
+
import { getMinMax } from "../size/calculations.js";
|
|
6
|
+
/**
|
|
7
|
+
* Gets attribute header items from data view for area data
|
|
8
|
+
*
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
function getAreaAttributeHeaderItems(dv, geoData) {
|
|
12
|
+
const { color } = geoData;
|
|
13
|
+
const hasColorMeasure = color !== undefined;
|
|
14
|
+
const attrHeaderItemIndex = hasColorMeasure ? 1 : 0;
|
|
15
|
+
return dv.meta().allHeaders()[attrHeaderItemIndex];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Gets format string from execution response for a measure
|
|
19
|
+
*
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
function getFormatFromExecutionResponse(dv, indexMeasure) {
|
|
23
|
+
const measureDescriptors = dv.meta().measureDescriptors();
|
|
24
|
+
return measureDescriptors[indexMeasure].measureHeaderItem.format;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Extracts segment data and URIs from attribute header items
|
|
28
|
+
*/
|
|
29
|
+
function getSegmentDataAndUris(attributeHeaderItems, dataIndex, nullHeaderString) {
|
|
30
|
+
const headerItems = attributeHeaderItems[dataIndex];
|
|
31
|
+
return headerItems.reduce((result, headerItem) => {
|
|
32
|
+
if (headerItem && isResultAttributeHeader(headerItem)) {
|
|
33
|
+
const { uri, name } = headerItem.attributeHeaderItem;
|
|
34
|
+
return { uris: [...result.uris, uri], data: [...result.data, name ?? nullHeaderString] };
|
|
35
|
+
}
|
|
36
|
+
return result;
|
|
37
|
+
}, { uris: [], data: [] });
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Extracts area data and URIs from attribute header items
|
|
41
|
+
*/
|
|
42
|
+
function getAreaDataAndUris(attributeHeaderItems, dataIndex, emptyHeaderString, nullHeaderString) {
|
|
43
|
+
const headerItems = attributeHeaderItems[dataIndex];
|
|
44
|
+
return headerItems.reduce((result, headerItem) => {
|
|
45
|
+
if (headerItem && isResultAttributeHeader(headerItem)) {
|
|
46
|
+
const { uri, name } = headerItem.attributeHeaderItem;
|
|
47
|
+
const displayName = name ?? nullHeaderString;
|
|
48
|
+
const finalName = name === "" ? emptyHeaderString : displayName;
|
|
49
|
+
return { uris: [...result.uris, uri], data: [...result.data, finalName] };
|
|
50
|
+
}
|
|
51
|
+
return result;
|
|
52
|
+
}, { uris: [], data: [] });
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Extracts measure data from data view
|
|
56
|
+
*/
|
|
57
|
+
function getMeasureData(dv, dataIndex) {
|
|
58
|
+
const twoDimData = dv.rawData().twoDimData();
|
|
59
|
+
const measureValues = twoDimData[dataIndex];
|
|
60
|
+
return measureValues.map(dataValueAsFloat);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Extracts attribute data from attribute header items
|
|
64
|
+
*/
|
|
65
|
+
function getAttributeData(attributeHeaderItems, dataIndex, emptyHeaderString, nullHeaderString) {
|
|
66
|
+
const headerItems = attributeHeaderItems[dataIndex];
|
|
67
|
+
return headerItems.map((i) => {
|
|
68
|
+
const name = resultHeaderName(i);
|
|
69
|
+
if (name) {
|
|
70
|
+
return name;
|
|
71
|
+
}
|
|
72
|
+
return name === "" ? emptyHeaderString : nullHeaderString;
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Gets bucket item names and data indices from data view for area
|
|
77
|
+
*/
|
|
78
|
+
function getBucketItemNameAndDataIndex(dv) {
|
|
79
|
+
const attributeDescriptors = dv.meta().attributeDescriptors();
|
|
80
|
+
const measureDescriptors = dv.meta().measureDescriptors();
|
|
81
|
+
const buckets = dv.def().buckets();
|
|
82
|
+
const result = {};
|
|
83
|
+
const areaInfo = getAttributeBucketInfo(buckets, attributeDescriptors, BucketNames.AREA) ??
|
|
84
|
+
getAttributeBucketInfo(buckets, attributeDescriptors, BucketNames.LOCATION);
|
|
85
|
+
if (areaInfo) {
|
|
86
|
+
result.area = areaInfo;
|
|
87
|
+
}
|
|
88
|
+
const segmentInfo = getAttributeBucketInfo(buckets, attributeDescriptors, BucketNames.SEGMENT);
|
|
89
|
+
if (segmentInfo) {
|
|
90
|
+
result[BucketNames.SEGMENT] = segmentInfo;
|
|
91
|
+
}
|
|
92
|
+
const tooltipInfo = getAttributeBucketInfo(buckets, attributeDescriptors, BucketNames.TOOLTIP_TEXT);
|
|
93
|
+
if (tooltipInfo) {
|
|
94
|
+
result[BucketNames.TOOLTIP_TEXT] = tooltipInfo;
|
|
95
|
+
}
|
|
96
|
+
const colorInfo = getMeasureBucketInfo(buckets, measureDescriptors, BucketNames.COLOR);
|
|
97
|
+
if (colorInfo) {
|
|
98
|
+
result[BucketNames.COLOR] = colorInfo;
|
|
99
|
+
}
|
|
100
|
+
return result;
|
|
101
|
+
}
|
|
102
|
+
function getAttributeBucketInfo(buckets, attributeDescriptors, bucketName) {
|
|
103
|
+
const bucket = buckets.find((item) => item.localIdentifier === bucketName);
|
|
104
|
+
if (!bucket) {
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
const attributeItem = bucket.items.find(isAttribute);
|
|
108
|
+
if (!attributeItem) {
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
const localIdentifier = attributeLocalId(attributeItem);
|
|
112
|
+
const index = attributeDescriptors.findIndex((descriptor) => descriptor.attributeHeader.localIdentifier === localIdentifier);
|
|
113
|
+
if (index === -1) {
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
return {
|
|
117
|
+
index,
|
|
118
|
+
name: attributeDescriptors[index].attributeHeader.formOf.name,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
function getMeasureBucketInfo(buckets, measureDescriptors, bucketName) {
|
|
122
|
+
const bucket = buckets.find((item) => item.localIdentifier === bucketName);
|
|
123
|
+
if (!bucket) {
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
const measureItem = bucket.items.find(isMeasure);
|
|
127
|
+
if (!measureItem) {
|
|
128
|
+
return undefined;
|
|
129
|
+
}
|
|
130
|
+
const localIdentifier = measureLocalId(measureItem);
|
|
131
|
+
const index = measureDescriptors.findIndex((descriptor) => descriptor.measureHeaderItem.localIdentifier === localIdentifier);
|
|
132
|
+
if (index === -1) {
|
|
133
|
+
return undefined;
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
index,
|
|
137
|
+
name: measureDescriptors[index].measureHeaderItem.name,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Transforms data view into area geo data structure
|
|
142
|
+
*
|
|
143
|
+
* @remarks
|
|
144
|
+
* This is the main data transformation function for area charts.
|
|
145
|
+
* It extracts geographic area identifiers and color values from the execution result.
|
|
146
|
+
*
|
|
147
|
+
* @param dv - Data view facade
|
|
148
|
+
* @param emptyHeaderString - String to use for empty headers
|
|
149
|
+
* @param nullHeaderString - String to use for null headers
|
|
150
|
+
* @returns Structured area geo data
|
|
151
|
+
*
|
|
152
|
+
* @internal
|
|
153
|
+
*/
|
|
154
|
+
export function getAreaGeoData(dv, emptyHeaderString, nullHeaderString) {
|
|
155
|
+
const geoData = getBucketItemNameAndDataIndex(dv);
|
|
156
|
+
const attributeHeaderItems = getAreaAttributeHeaderItems(dv, geoData);
|
|
157
|
+
const areaIndex = geoData.area?.index;
|
|
158
|
+
const segmentIndex = geoData?.segment?.index;
|
|
159
|
+
const tooltipTextIndex = geoData?.tooltipText?.index;
|
|
160
|
+
const colorIndex = geoData?.color?.index;
|
|
161
|
+
// Process location data (area identifiers with URIs)
|
|
162
|
+
if (areaIndex !== undefined) {
|
|
163
|
+
const { data, uris } = getAreaDataAndUris(attributeHeaderItems, areaIndex, emptyHeaderString, nullHeaderString);
|
|
164
|
+
geoData.area.data = data;
|
|
165
|
+
geoData.area.uris = uris;
|
|
166
|
+
}
|
|
167
|
+
// Process segment data
|
|
168
|
+
if (segmentIndex !== undefined) {
|
|
169
|
+
const { data, uris } = getSegmentDataAndUris(attributeHeaderItems, segmentIndex, nullHeaderString);
|
|
170
|
+
geoData[BucketNames.SEGMENT].data = data;
|
|
171
|
+
geoData[BucketNames.SEGMENT].uris = uris;
|
|
172
|
+
}
|
|
173
|
+
// Process tooltip text data
|
|
174
|
+
if (tooltipTextIndex !== undefined) {
|
|
175
|
+
geoData[BucketNames.TOOLTIP_TEXT].data = getAttributeData(attributeHeaderItems, tooltipTextIndex, emptyHeaderString, nullHeaderString);
|
|
176
|
+
}
|
|
177
|
+
// Process color measure data
|
|
178
|
+
if (colorIndex !== undefined) {
|
|
179
|
+
geoData[BucketNames.COLOR].data = getMeasureData(dv, colorIndex);
|
|
180
|
+
geoData[BucketNames.COLOR].format = getFormatFromExecutionResponse(dv, colorIndex);
|
|
181
|
+
}
|
|
182
|
+
return geoData;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Determines which legends should be available for area based on data
|
|
186
|
+
*
|
|
187
|
+
* @remarks
|
|
188
|
+
* Analyzes area geo data to determine which legend types are applicable:
|
|
189
|
+
* - Category legend: When segments exist
|
|
190
|
+
* - Color legend: When color measure exists with varying values
|
|
191
|
+
* - Size legend: Never for area (always omitted)
|
|
192
|
+
*
|
|
193
|
+
* @param categoryItems - Category legend items
|
|
194
|
+
* @param geoData - Area geo data structure
|
|
195
|
+
* @returns Object indicating which legends are available
|
|
196
|
+
*
|
|
197
|
+
* @internal
|
|
198
|
+
*/
|
|
199
|
+
export function getAreaAvailableLegends(categoryItems, geoData) {
|
|
200
|
+
const { color: { data: colorData = [] } = {} } = geoData;
|
|
201
|
+
const { min: minColor, max: maxColor } = getMinMax(colorData);
|
|
202
|
+
const hasCategoryLegend = Boolean(categoryItems?.length);
|
|
203
|
+
const hasColorLegend = Boolean(colorData.length) && minColor !== maxColor && !hasCategoryLegend;
|
|
204
|
+
return {
|
|
205
|
+
hasCategoryLegend,
|
|
206
|
+
hasColorLegend,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Finds area attributes in the data view dimension
|
|
211
|
+
*
|
|
212
|
+
* @param dv - Data view facade
|
|
213
|
+
* @param geoData - Area geo data structure
|
|
214
|
+
* @returns Area attributes information
|
|
215
|
+
*
|
|
216
|
+
* @internal
|
|
217
|
+
*/
|
|
218
|
+
export function findAreaAttributesInDimension(dv, geoData) {
|
|
219
|
+
const { color, area, segment, tooltipText } = geoData;
|
|
220
|
+
const areaIndex = area?.index ?? 0;
|
|
221
|
+
const headers = dv.meta().allHeaders();
|
|
222
|
+
const hasMeasure = color !== undefined;
|
|
223
|
+
const attrDimensionIndex = hasMeasure ? 1 : 0;
|
|
224
|
+
const attributeDescriptors = dv.meta().attributeDescriptors();
|
|
225
|
+
const attributeResultHeaderItems = headers[attrDimensionIndex];
|
|
226
|
+
const areaAttribute = {
|
|
227
|
+
...attributeDescriptors[areaIndex].attributeHeader,
|
|
228
|
+
items: attributeResultHeaderItems[areaIndex],
|
|
229
|
+
};
|
|
230
|
+
const segmentByAttribute = segment?.data.length
|
|
231
|
+
? {
|
|
232
|
+
...attributeDescriptors[segment.index].attributeHeader,
|
|
233
|
+
items: attributeResultHeaderItems[segment.index],
|
|
234
|
+
}
|
|
235
|
+
: undefined;
|
|
236
|
+
const tooltipTextAttribute = tooltipText?.data.length
|
|
237
|
+
? {
|
|
238
|
+
...attributeDescriptors[tooltipText.index].attributeHeader,
|
|
239
|
+
items: attributeResultHeaderItems[tooltipText.index],
|
|
240
|
+
}
|
|
241
|
+
: undefined;
|
|
242
|
+
return {
|
|
243
|
+
areaAttribute,
|
|
244
|
+
segmentByAttribute,
|
|
245
|
+
tooltipTextAttribute,
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=areaTransformation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"areaTransformation.js","sourceRoot":"","sources":["../../../../src/next/features/data/areaTransformation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IColorStrategy } from "@gooddata/sdk-ui-vis-commons";
|
|
2
2
|
import { IMapConfig } from "../../types/mapProvider.js";
|
|
3
|
-
import {
|
|
3
|
+
import { IPushpinGeoData } from "../../types/shared.js";
|
|
4
4
|
/**
|
|
5
5
|
* Create GeoJSON data source for map
|
|
6
6
|
*
|
|
@@ -16,5 +16,5 @@ import { IGeoData } from "../../types/shared.js";
|
|
|
16
16
|
*
|
|
17
17
|
* @internal
|
|
18
18
|
*/
|
|
19
|
-
export declare function createGeoDataSource(geoData:
|
|
19
|
+
export declare function createGeoDataSource(geoData: IPushpinGeoData, colorStrategy: IColorStrategy, config: IMapConfig): import("maplibre-gl").GeoJSONSourceSpecification;
|
|
20
20
|
//# sourceMappingURL=dataSourceManagement.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataSourceManagement.d.ts","sourceRoot":"","sources":["../../../../src/next/features/data/dataSourceManagement.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"dataSourceManagement.d.ts","sourceRoot":"","sources":["../../../../src/next/features/data/dataSourceManagement.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,eAAe,EACxB,aAAa,EAAE,cAAc,EAC7B,MAAM,EAAE,UAAU,oDAarB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataSourceManagement.js","sourceRoot":"","sources":["../../../../src/next/features/data/dataSourceManagement.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAIhC,OAAO,EAAuB,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAG9G,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,
|
|
1
|
+
{"version":3,"file":"dataSourceManagement.js","sourceRoot":"","sources":["../../../../src/next/features/data/dataSourceManagement.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAIhC,OAAO,EAAuB,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAG9G,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CAC/B,OAAwB,EACxB,aAA6B,EAC7B,MAAkB;IAElB,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAChD,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAEtF,MAAM,eAAe,GAAwB;QACzC,OAAO;QACP,MAAM;QACN,aAAa;QACb,aAAa;KAChB,CAAC;IAEF,OAAO,uBAAuB,CAAC,eAAe,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { IAttributeDescriptor, IResultHeader } from "@gooddata/sdk-model";
|
|
2
|
+
import { DataViewFacade } from "@gooddata/sdk-ui";
|
|
3
|
+
import { IPushpinCategoryLegendItem } from "@gooddata/sdk-ui-vis-commons";
|
|
4
|
+
import { IAvailableLegends, IPushpinGeoData } from "../../types/shared.js";
|
|
5
|
+
/**
|
|
6
|
+
* Transforms data view into pushpin geo data structure
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* This is the main data transformation function that extracts and structures
|
|
10
|
+
* all geo-related data from the execution result
|
|
11
|
+
*
|
|
12
|
+
* @param dv - Data view facade
|
|
13
|
+
* @param emptyHeaderString - String to use for empty headers
|
|
14
|
+
* @param nullHeaderString - String to use for null headers
|
|
15
|
+
* @returns Structured geo data
|
|
16
|
+
*
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
export declare function getPushpinGeoData(dv: DataViewFacade, emptyHeaderString: string, nullHeaderString: string): IPushpinGeoData;
|
|
20
|
+
/**
|
|
21
|
+
* Determines which legends should be available based on pushpin data
|
|
22
|
+
*
|
|
23
|
+
* @remarks
|
|
24
|
+
* Analyzes geo data to determine which legend types are applicable:
|
|
25
|
+
* - Category legend: When segments exist
|
|
26
|
+
* - Color legend: When color measure exists with varying values
|
|
27
|
+
* - Size legend: When size measure exists with varying values
|
|
28
|
+
*
|
|
29
|
+
* @param categoryItems - Category legend items
|
|
30
|
+
* @param geoData - Geo data structure
|
|
31
|
+
* @returns Object indicating which legends are available
|
|
32
|
+
*
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
35
|
+
export declare function getPushpinAvailableLegends(categoryItems: IPushpinCategoryLegendItem[], geoData: IPushpinGeoData): IAvailableLegends;
|
|
36
|
+
/**
|
|
37
|
+
* Parses GeoJSON properties from feature
|
|
38
|
+
*
|
|
39
|
+
* @remarks
|
|
40
|
+
* Extracts and parses location, color, size, and segment properties from GeoJSON feature
|
|
41
|
+
*
|
|
42
|
+
* @param properties - GeoJSON properties object
|
|
43
|
+
* @returns Parsed properties object
|
|
44
|
+
*
|
|
45
|
+
* @internal
|
|
46
|
+
*/
|
|
47
|
+
export declare function parsePushpinGeoProperties(properties: GeoJSON.GeoJsonProperties): GeoJSON.GeoJsonProperties;
|
|
48
|
+
/**
|
|
49
|
+
* Attribute information with header items
|
|
50
|
+
*/
|
|
51
|
+
export type IPushpinAttributeInfo = IAttributeDescriptor["attributeHeader"] & {
|
|
52
|
+
items: IResultHeader[];
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Geo attributes in dimension
|
|
56
|
+
*/
|
|
57
|
+
export interface IPushpinAttributesInDimension {
|
|
58
|
+
locationAttribute: IPushpinAttributeInfo;
|
|
59
|
+
segmentByAttribute: IPushpinAttributeInfo | undefined;
|
|
60
|
+
tooltipTextAttribute: IPushpinAttributeInfo | undefined;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Finds geo attributes in the data view dimension
|
|
64
|
+
*
|
|
65
|
+
* @param dv - Data view facade
|
|
66
|
+
* @param geoData - Geo data structure
|
|
67
|
+
* @returns Geo attributes information
|
|
68
|
+
*
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
71
|
+
export declare function findPushpinAttributesInDimension(dv: DataViewFacade, geoData: IPushpinGeoData): IPushpinAttributesInDimension;
|
|
72
|
+
//# sourceMappingURL=pushpinTransformation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pushpinTransformation.d.ts","sourceRoot":"","sources":["../../../../src/next/features/data/pushpinTransformation.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,oBAAoB,EAGpB,aAAa,EAWhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAe,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAG1E,OAAO,EACH,iBAAiB,EAKjB,eAAe,EAElB,MAAM,uBAAuB,CAAC;AA+N/B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC7B,EAAE,EAAE,cAAc,EAClB,iBAAiB,EAAE,MAAM,EACzB,gBAAgB,EAAE,MAAM,GACzB,eAAe,CA6EjB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CACtC,aAAa,EAAE,0BAA0B,EAAE,EAC3C,OAAO,EAAE,eAAe,GACzB,iBAAiB,CAenB;AAyBD;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,OAAO,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAQ1G;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAC1E,KAAK,EAAE,aAAa,EAAE,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC1C,iBAAiB,EAAE,qBAAqB,CAAC;IACzC,kBAAkB,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACtD,oBAAoB,EAAE,qBAAqB,GAAG,SAAS,CAAC;CAC3D;AAED;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAC5C,EAAE,EAAE,cAAc,EAClB,OAAO,EAAE,eAAe,GACzB,6BAA6B,CAkC/B"}
|
|
@@ -1,66 +1,8 @@
|
|
|
1
1
|
// (C) 2025 GoodData Corporation
|
|
2
2
|
import { attributeDisplayFormRef, attributeLocalId, isAttribute, isIdentifierRef, isResultAttributeHeader, measureItem, measureLocalId, resultHeaderName, } from "@gooddata/sdk-model";
|
|
3
3
|
import { BucketNames } from "@gooddata/sdk-ui";
|
|
4
|
+
import { dataValueAsFloat, getLocation, parseCoordinate } from "./transformationCommon.js";
|
|
4
5
|
import { getMinMax } from "../size/calculations.js";
|
|
5
|
-
/**
|
|
6
|
-
* Converts a data value to a float
|
|
7
|
-
*
|
|
8
|
-
* @param value - Data value from execution result
|
|
9
|
-
* @returns Parsed float value, or NaN if parsing fails
|
|
10
|
-
*
|
|
11
|
-
* @internal
|
|
12
|
-
*/
|
|
13
|
-
export function dataValueAsFloat(value) {
|
|
14
|
-
if (value === null) {
|
|
15
|
-
return NaN;
|
|
16
|
-
}
|
|
17
|
-
const parsedNumber = typeof value === "string" ? parseFloat(value) : value;
|
|
18
|
-
if (isNaN(parsedNumber)) {
|
|
19
|
-
console.warn(`SDK: dataValueAsFloat: ${value} is not a number`);
|
|
20
|
-
}
|
|
21
|
-
return parsedNumber;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Parses a location string in "lat;lng" format into coordinates
|
|
25
|
-
*
|
|
26
|
-
* @param latlng - Location string in "latitude;longitude" format
|
|
27
|
-
* @returns Coordinate object or null if invalid
|
|
28
|
-
*
|
|
29
|
-
* @internal
|
|
30
|
-
*/
|
|
31
|
-
export function getLocation(latlng) {
|
|
32
|
-
if (!latlng) {
|
|
33
|
-
return null;
|
|
34
|
-
}
|
|
35
|
-
const [latitude, longitude] = latlng.split(";").map(dataValueAsFloat);
|
|
36
|
-
if (isNaN(latitude) || isNaN(longitude)) {
|
|
37
|
-
console.warn("GeoPushpinChartNext: Invalid location format", latlng);
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
return {
|
|
41
|
-
lat: latitude,
|
|
42
|
-
lng: longitude,
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Parses a coordinate string into a number
|
|
47
|
-
*
|
|
48
|
-
* @param coordinate - Coordinate string
|
|
49
|
-
* @returns Parsed number or null if invalid
|
|
50
|
-
*
|
|
51
|
-
* @internal
|
|
52
|
-
*/
|
|
53
|
-
export function parseCoordinate(coordinate) {
|
|
54
|
-
if (!coordinate) {
|
|
55
|
-
return null;
|
|
56
|
-
}
|
|
57
|
-
const numericalCoordinate = dataValueAsFloat(coordinate);
|
|
58
|
-
if (isNaN(numericalCoordinate)) {
|
|
59
|
-
console.warn("GeoPushpinChartNext: Invalid coordinate", coordinate);
|
|
60
|
-
return null;
|
|
61
|
-
}
|
|
62
|
-
return numericalCoordinate;
|
|
63
|
-
}
|
|
64
6
|
/**
|
|
65
7
|
* Gets attribute header items from data view for geo data
|
|
66
8
|
*
|
|
@@ -206,7 +148,7 @@ function getBucketItemNameAndDataIndex(dv) {
|
|
|
206
148
|
return result;
|
|
207
149
|
}
|
|
208
150
|
/**
|
|
209
|
-
* Transforms data view into geo data structure
|
|
151
|
+
* Transforms data view into pushpin geo data structure
|
|
210
152
|
*
|
|
211
153
|
* @remarks
|
|
212
154
|
* This is the main data transformation function that extracts and structures
|
|
@@ -219,7 +161,7 @@ function getBucketItemNameAndDataIndex(dv) {
|
|
|
219
161
|
*
|
|
220
162
|
* @internal
|
|
221
163
|
*/
|
|
222
|
-
export function
|
|
164
|
+
export function getPushpinGeoData(dv, emptyHeaderString, nullHeaderString) {
|
|
223
165
|
const geoData = getBucketItemNameAndDataIndex(dv);
|
|
224
166
|
const attributeHeaderItems = getGeoAttributeHeaderItems(dv, geoData);
|
|
225
167
|
const locationIndex = geoData.location?.index;
|
|
@@ -269,7 +211,7 @@ export function getGeoData(dv, emptyHeaderString, nullHeaderString) {
|
|
|
269
211
|
return geoData;
|
|
270
212
|
}
|
|
271
213
|
/**
|
|
272
|
-
* Determines which legends should be available based on data
|
|
214
|
+
* Determines which legends should be available based on pushpin data
|
|
273
215
|
*
|
|
274
216
|
* @remarks
|
|
275
217
|
* Analyzes geo data to determine which legend types are applicable:
|
|
@@ -283,7 +225,7 @@ export function getGeoData(dv, emptyHeaderString, nullHeaderString) {
|
|
|
283
225
|
*
|
|
284
226
|
* @internal
|
|
285
227
|
*/
|
|
286
|
-
export function
|
|
228
|
+
export function getPushpinAvailableLegends(categoryItems, geoData) {
|
|
287
229
|
const { color: { data: colorData = [] } = {}, size: { data: sizeData = [] } = {} } = geoData;
|
|
288
230
|
const { min: minColor, max: maxColor } = getMinMax(colorData);
|
|
289
231
|
const { min: minSize, max: maxSize } = getMinMax(sizeData);
|
|
@@ -300,12 +242,21 @@ export function getAvailableLegends(categoryItems, geoData) {
|
|
|
300
242
|
* Parses a GeoJSON property item from JSON string
|
|
301
243
|
*/
|
|
302
244
|
function parseGeoPropertyItem(item) {
|
|
303
|
-
|
|
304
|
-
return JSON.parse(item);
|
|
305
|
-
}
|
|
306
|
-
catch {
|
|
245
|
+
if (item === null || item === undefined) {
|
|
307
246
|
return {};
|
|
308
247
|
}
|
|
248
|
+
if (typeof item === "string") {
|
|
249
|
+
try {
|
|
250
|
+
return JSON.parse(item);
|
|
251
|
+
}
|
|
252
|
+
catch {
|
|
253
|
+
return {};
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
if (typeof item === "object") {
|
|
257
|
+
return item;
|
|
258
|
+
}
|
|
259
|
+
return {};
|
|
309
260
|
}
|
|
310
261
|
/**
|
|
311
262
|
* Parses GeoJSON properties from feature
|
|
@@ -318,7 +269,7 @@ function parseGeoPropertyItem(item) {
|
|
|
318
269
|
*
|
|
319
270
|
* @internal
|
|
320
271
|
*/
|
|
321
|
-
export function
|
|
272
|
+
export function parsePushpinGeoProperties(properties) {
|
|
322
273
|
const { locationName = "{}", color = "{}", size = "{}", segment = "{}" } = properties || {};
|
|
323
274
|
return {
|
|
324
275
|
locationName: parseGeoPropertyItem(locationName),
|
|
@@ -336,7 +287,7 @@ export function parseGeoProperties(properties) {
|
|
|
336
287
|
*
|
|
337
288
|
* @internal
|
|
338
289
|
*/
|
|
339
|
-
export function
|
|
290
|
+
export function findPushpinAttributesInDimension(dv, geoData) {
|
|
340
291
|
const { color, location, segment, size, tooltipText } = geoData;
|
|
341
292
|
const locationIndex = location?.index ?? 0;
|
|
342
293
|
const headers = dv.meta().allHeaders();
|
|
@@ -366,4 +317,4 @@ export function findGeoAttributesInDimension(dv, geoData) {
|
|
|
366
317
|
tooltipTextAttribute,
|
|
367
318
|
};
|
|
368
319
|
}
|
|
369
|
-
//# sourceMappingURL=
|
|
320
|
+
//# sourceMappingURL=pushpinTransformation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pushpinTransformation.js","sourceRoot":"","sources":["../../../../src/next/features/data/pushpinTransformation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DataValue } from "@gooddata/sdk-model";
|
|
2
|
+
import { IGeoLngLat } from "../../types/shared.js";
|
|
3
|
+
/**
|
|
4
|
+
* Converts a data value to a float.
|
|
5
|
+
*
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export declare function dataValueAsFloat(value: DataValue): number;
|
|
9
|
+
/**
|
|
10
|
+
* Parses a location string in "lat;lng" format into coordinates.
|
|
11
|
+
*
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export declare function getLocation(latlng: string | null): IGeoLngLat | null;
|
|
15
|
+
/**
|
|
16
|
+
* Parses a coordinate string into a number.
|
|
17
|
+
*
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
export declare function parseCoordinate(coordinate: string | null): number | null;
|
|
21
|
+
//# sourceMappingURL=transformationCommon.d.ts.map
|