@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,33 @@
|
|
|
1
|
+
import { ReactElement } from "react";
|
|
2
|
+
import { ICoreGeoAreaChartProps } from "./types/areaInternal.js";
|
|
3
|
+
import { IGeoAreaChartProps } from "./types/areaPublic.js";
|
|
4
|
+
/**
|
|
5
|
+
* GeoAreaChart - Geographic area visualization component
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* This component renders an area map where geographic areas (countries, regions, states)
|
|
9
|
+
* are rendered according to the provided geographic attribute. It uses MapLibre GL JS for rendering and supports:
|
|
10
|
+
* - Area-based visualization with polygon fills
|
|
11
|
+
* - Optional color measures or attributes for data-driven styling
|
|
12
|
+
* - Optional segment attributes for categorical grouping
|
|
13
|
+
* - Interactive legends that reflect the active color/segment state
|
|
14
|
+
* - Drilling capabilities inherited from the GoodData.UI visualization props
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* <GeoAreaChart
|
|
19
|
+
* backend={backend}
|
|
20
|
+
* workspace={workspace}
|
|
21
|
+
* area={Md.Country}
|
|
22
|
+
* color={Md.Revenue}
|
|
23
|
+
* />
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @alpha
|
|
27
|
+
*/
|
|
28
|
+
export declare function GeoAreaChart(props: IGeoAreaChartProps): ReactElement;
|
|
29
|
+
/**
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
export declare function GeoAreaChartImplementation(props: ICoreGeoAreaChartProps): ReactElement;
|
|
33
|
+
//# sourceMappingURL=GeoAreaChart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeoAreaChart.d.ts","sourceRoot":"","sources":["../../src/next/GeoAreaChart.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAkBrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CAIpE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,sBAAsB,GAAG,YAAY,CActF"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { IntlWrapper } from "@gooddata/sdk-ui";
|
|
3
|
+
import { ThemeContextProvider } from "@gooddata/sdk-ui-theme-provider";
|
|
4
|
+
import { ErrorComponent } from "./components/ErrorComponent.js";
|
|
5
|
+
import { LoadingComponent } from "./components/LoadingComponent.js";
|
|
6
|
+
import { GeoAreaCollectionProvider } from "./context/GeoAreaCollectionContext.js";
|
|
7
|
+
import { GeoAreaDataProvider } from "./context/GeoAreaDataContext.js";
|
|
8
|
+
import { GeoAreaPropsProvider } from "./context/GeoAreaPropsContext.js";
|
|
9
|
+
import { GeoLegendProvider } from "./context/GeoLegendContext.js";
|
|
10
|
+
import { GeoPushpinPropsProvider } from "./context/GeoPushpinPropsContext.js";
|
|
11
|
+
import { InitialExecutionContextProvider } from "./context/InitialExecutionContext.js";
|
|
12
|
+
import { MapInstanceProvider } from "./context/MapInstanceContext.js";
|
|
13
|
+
import { useInitExecution } from "./hooks/init/useInitExecution.js";
|
|
14
|
+
import { useInitExecutionResult } from "./hooks/init/useInitExecutionResult.js";
|
|
15
|
+
import { useResolvedAreaProps } from "./hooks/shared/useResolvedAreaProps.js";
|
|
16
|
+
import { RenderGeoAreaChart } from "./RenderGeoAreaChart.js";
|
|
17
|
+
/**
|
|
18
|
+
* GeoAreaChart - Geographic area visualization component
|
|
19
|
+
*
|
|
20
|
+
* @remarks
|
|
21
|
+
* This component renders an area map where geographic areas (countries, regions, states)
|
|
22
|
+
* are rendered according to the provided geographic attribute. It uses MapLibre GL JS for rendering and supports:
|
|
23
|
+
* - Area-based visualization with polygon fills
|
|
24
|
+
* - Optional color measures or attributes for data-driven styling
|
|
25
|
+
* - Optional segment attributes for categorical grouping
|
|
26
|
+
* - Interactive legends that reflect the active color/segment state
|
|
27
|
+
* - Drilling capabilities inherited from the GoodData.UI visualization props
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* <GeoAreaChart
|
|
32
|
+
* backend={backend}
|
|
33
|
+
* workspace={workspace}
|
|
34
|
+
* area={Md.Country}
|
|
35
|
+
* color={Md.Revenue}
|
|
36
|
+
* />
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* @alpha
|
|
40
|
+
*/
|
|
41
|
+
export function GeoAreaChart(props) {
|
|
42
|
+
const resolvedProps = useResolvedAreaProps(props);
|
|
43
|
+
const execution = useInitExecution(resolvedProps);
|
|
44
|
+
return _jsx(GeoAreaChartImplementation, { ...resolvedProps, execution: execution });
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
export function GeoAreaChartImplementation(props) {
|
|
50
|
+
return (_jsx(IntlWrapper, { locale: props.locale, children: _jsx(ThemeContextProvider, { theme: props.theme || {}, themeIsLoading: false, children: _jsx(GeoPushpinPropsProvider, { ...props, children: _jsx(GeoAreaPropsProvider, { ...props, children: _jsx(MapInstanceProvider, { children: _jsx(GeoAreaChartWithInitialization, {}) }) }) }) }) }));
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* @internal
|
|
54
|
+
*/
|
|
55
|
+
function GeoAreaChartWithInitialization() {
|
|
56
|
+
const { result: dataView, status, error } = useInitExecutionResult();
|
|
57
|
+
if (status === "error") {
|
|
58
|
+
return _jsx(ErrorComponent, { error: error });
|
|
59
|
+
}
|
|
60
|
+
if (status === "pending" || status === "loading") {
|
|
61
|
+
return _jsx(LoadingComponent, {});
|
|
62
|
+
}
|
|
63
|
+
return (_jsx(InitialExecutionContextProvider, { initialDataView: dataView, children: _jsx(GeoAreaCollectionProvider, { children: _jsx(GeoAreaDataProvider, { children: _jsx(GeoLegendProvider, { children: _jsx(RenderGeoAreaChart, {}) }) }) }) }));
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=GeoAreaChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeoAreaChart.js","sourceRoot":"","sources":["../../src/next/GeoAreaChart.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAK7D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,YAAY,CAAC,KAAyB;IAClD,MAAM,aAAa,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAClD,OAAO,KAAC,0BAA0B,OAAK,aAAa,EAAE,SAAS,EAAE,SAAS,GAAI,CAAC;AACnF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAA6B;IACpE,OAAO,CACH,KAAC,WAAW,IAAC,MAAM,EAAE,KAAK,CAAC,MAAM,YAC7B,KAAC,oBAAoB,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,YACjE,KAAC,uBAAuB,OAAM,KAAkD,YAC5E,KAAC,oBAAoB,OAAK,KAAK,YAC3B,KAAC,mBAAmB,cAChB,KAAC,8BAA8B,KAAG,GAChB,GACH,GACD,GACP,GACb,CACjB,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,8BAA8B;IACnC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAErE,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,KAAC,cAAc,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC;IAC5C,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/C,OAAO,KAAC,gBAAgB,KAAG,CAAC;IAChC,CAAC;IAED,OAAO,CACH,KAAC,+BAA+B,IAAC,eAAe,EAAE,QAAQ,YACtD,KAAC,yBAAyB,cACtB,KAAC,mBAAmB,cAChB,KAAC,iBAAiB,cACd,KAAC,kBAAkB,KAAG,GACN,GACF,GACE,GACE,CACrC,CAAC;AACN,CAAC"}
|
|
@@ -3,8 +3,8 @@ import { IntlWrapper } from "@gooddata/sdk-ui";
|
|
|
3
3
|
import { ThemeContextProvider } from "@gooddata/sdk-ui-theme-provider";
|
|
4
4
|
import { ErrorComponent } from "./components/ErrorComponent.js";
|
|
5
5
|
import { LoadingComponent } from "./components/LoadingComponent.js";
|
|
6
|
-
import { GeoDataProvider } from "./context/GeoDataContext.js";
|
|
7
6
|
import { GeoLegendProvider } from "./context/GeoLegendContext.js";
|
|
7
|
+
import { GeoPushpinDataProvider } from "./context/GeoPushpinDataContext.js";
|
|
8
8
|
import { GeoPushpinPropsProvider } from "./context/GeoPushpinPropsContext.js";
|
|
9
9
|
import { InitialExecutionContextProvider } from "./context/InitialExecutionContext.js";
|
|
10
10
|
import { MapInstanceProvider } from "./context/MapInstanceContext.js";
|
|
@@ -37,6 +37,6 @@ function GeoPushpinChartNextWithInitialization() {
|
|
|
37
37
|
if (status === "pending" || status === "loading") {
|
|
38
38
|
return _jsx(LoadingComponent, {});
|
|
39
39
|
}
|
|
40
|
-
return (_jsx(InitialExecutionContextProvider, { initialDataView: dataView, children: _jsx(
|
|
40
|
+
return (_jsx(InitialExecutionContextProvider, { initialDataView: dataView, children: _jsx(GeoPushpinDataProvider, { children: _jsx(GeoLegendProvider, { children: _jsx(RenderGeoPushpinChart, {}) }) }) }));
|
|
41
41
|
}
|
|
42
42
|
//# sourceMappingURL=GeoPushpinChartNext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeoPushpinChartNext.js","sourceRoot":"","sources":["../../src/next/GeoPushpinChartNext.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"GeoPushpinChartNext.js","sourceRoot":"","sources":["../../src/next/GeoPushpinChartNext.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAInE;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAgC;IAChE,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAClD,OAAO,KAAC,iCAAiC,OAAK,aAAa,EAAE,SAAS,EAAE,SAAS,GAAI,CAAC;AAC1F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iCAAiC,CAAC,KAAoC;IAClF,OAAO,CACH,KAAC,WAAW,IAAC,MAAM,EAAE,KAAK,CAAC,MAAM,YAC7B,KAAC,oBAAoB,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,YACjE,KAAC,uBAAuB,OAAK,KAAK,YAC9B,KAAC,mBAAmB,cAChB,KAAC,qCAAqC,KAAG,GACvB,GACA,GACP,GACb,CACjB,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,qCAAqC;IAC1C,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAErE,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,KAAC,cAAc,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC;IAC5C,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/C,OAAO,KAAC,gBAAgB,KAAG,CAAC;IAChC,CAAC;IAED,OAAO,CACH,KAAC,+BAA+B,IAAC,eAAe,EAAE,QAAQ,YACtD,KAAC,sBAAsB,cACnB,KAAC,iBAAiB,cACd,KAAC,qBAAqB,KAAG,GACT,GACC,GACK,CACrC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ReactElement } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Rendering layer - displays the area map
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* This is the final rendering layer that:
|
|
7
|
+
* - Creates the map container
|
|
8
|
+
* - Initializes the map
|
|
9
|
+
* - Syncs area data to the map
|
|
10
|
+
* - Handles map interactions
|
|
11
|
+
*
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export declare function RenderGeoAreaChart(): ReactElement;
|
|
15
|
+
//# sourceMappingURL=RenderGeoAreaChart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderGeoAreaChart.d.ts","sourceRoot":"","sources":["../../src/next/RenderGeoAreaChart.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAA6B,MAAM,OAAO,CAAC;AAkChE;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAgIjD"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2025 GoodData Corporation
|
|
3
|
+
import { useMemo, useRef, useState } from "react";
|
|
4
|
+
import { defaultImport } from "default-import";
|
|
5
|
+
import { useIntl } from "react-intl";
|
|
6
|
+
import ReactMeasure from "react-measure";
|
|
7
|
+
import { v4 } from "uuid";
|
|
8
|
+
import { convertDrillableItemsToPredicates } from "@gooddata/sdk-ui";
|
|
9
|
+
import { Legend } from "./components/legends/Legend.js";
|
|
10
|
+
import { useGeoAreaCollection } from "./context/GeoAreaCollectionContext.js";
|
|
11
|
+
import { useGeoAreaData } from "./context/GeoAreaDataContext.js";
|
|
12
|
+
import { useGeoAreaProps } from "./context/GeoAreaPropsContext.js";
|
|
13
|
+
import { useInitialExecution } from "./context/InitialExecutionContext.js";
|
|
14
|
+
import { bboxToViewport } from "./features/map/viewportManagement.js";
|
|
15
|
+
import { useLegendConfig } from "./hooks/legend/useLegendConfig.js";
|
|
16
|
+
import { useLegendItemsWithState } from "./hooks/legend/useLegendItemsWithState.js";
|
|
17
|
+
import { useSelectedSegments } from "./hooks/legend/useSelectedSegments.js";
|
|
18
|
+
import { useAfterRender } from "./hooks/map/useAfterRender.js";
|
|
19
|
+
import { useAreaMapDataSync } from "./hooks/map/useAreaMapDataSync.js";
|
|
20
|
+
import { useMapCallbacks } from "./hooks/map/useMapCallbacks.js";
|
|
21
|
+
import { useMapInitialization } from "./hooks/map/useMapInitialization.js";
|
|
22
|
+
import { useMapResize } from "./hooks/map/useMapResize.js";
|
|
23
|
+
import { useTooltipHandlers } from "./hooks/map/useTooltipHandlers.js";
|
|
24
|
+
import { useAreaPushData } from "./hooks/shared/useAreaPushData.js";
|
|
25
|
+
import { DEFAULT_AREA_LAYER_NAME } from "./providers/maplibre/maplibreDataLayersArea.js";
|
|
26
|
+
// There are known compatibility issues between CommonJS (CJS) and ECMAScript modules (ESM).
|
|
27
|
+
// In ESM, default exports of CJS modules are wrapped in default properties instead of being exposed directly.
|
|
28
|
+
// https://github.com/microsoft/TypeScript/issues/52086#issuecomment-1385978414
|
|
29
|
+
const Measure = defaultImport(ReactMeasure);
|
|
30
|
+
const containerBaseId = "geo-area-chart";
|
|
31
|
+
/**
|
|
32
|
+
* Rendering layer - displays the area map
|
|
33
|
+
*
|
|
34
|
+
* @remarks
|
|
35
|
+
* This is the final rendering layer that:
|
|
36
|
+
* - Creates the map container
|
|
37
|
+
* - Initializes the map
|
|
38
|
+
* - Syncs area data to the map
|
|
39
|
+
* - Handles map interactions
|
|
40
|
+
*
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
export function RenderGeoAreaChart() {
|
|
44
|
+
const intl = useIntl();
|
|
45
|
+
const props = useGeoAreaProps();
|
|
46
|
+
const { initialDataView } = useInitialExecution();
|
|
47
|
+
const collection = useGeoAreaCollection();
|
|
48
|
+
const mapContainerRef = useRef(null);
|
|
49
|
+
const containerId = useMemo(() => `${containerBaseId}-${v4()}`, []);
|
|
50
|
+
// Track chart container dimensions for legend responsive behavior
|
|
51
|
+
const [chartContainerRect, setChartContainerRect] = useState(null);
|
|
52
|
+
// Get all computed data from context (no transformations needed here)
|
|
53
|
+
const { geoData, colorStrategy, baseLegendItems, colorPalette } = useGeoAreaData();
|
|
54
|
+
const shouldUseCollectionViewport = useMemo(() => {
|
|
55
|
+
if (props.config?.center) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
if (props.config?.viewport?.area) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
return Boolean(collection.bbox);
|
|
62
|
+
}, [collection.bbox, props.config?.center, props.config?.viewport?.area]);
|
|
63
|
+
const collectionViewport = useMemo(() => (shouldUseCollectionViewport ? bboxToViewport(collection.bbox) : null), [collection.bbox, shouldUseCollectionViewport]);
|
|
64
|
+
// Initialize map with geo collection viewport when available
|
|
65
|
+
const { map, tooltip, isMapReady } = useMapInitialization(mapContainerRef, intl, props.config, collectionViewport);
|
|
66
|
+
// Handle container resize similar to pushpin chart
|
|
67
|
+
useMapResize(map, isMapReady, chartContainerRect, collectionViewport);
|
|
68
|
+
// Merge base items with visibility state from context
|
|
69
|
+
const legendItems = useLegendItemsWithState(baseLegendItems);
|
|
70
|
+
// Get selected segments for filtering (use items with state)
|
|
71
|
+
const selectedSegmentItems = useSelectedSegments(legendItems);
|
|
72
|
+
// Create config with selected segments for filtering
|
|
73
|
+
const configWithSegments = useMemo(() => ({
|
|
74
|
+
...props.config,
|
|
75
|
+
selectedSegmentItems,
|
|
76
|
+
}), [props.config, selectedSegmentItems]);
|
|
77
|
+
// Sync area data to map
|
|
78
|
+
useAreaMapDataSync(map, geoData, configWithSegments, colorStrategy, isMapReady, initialDataView, collection, collectionViewport);
|
|
79
|
+
// Set up map interaction callbacks
|
|
80
|
+
useMapCallbacks(map, {
|
|
81
|
+
onCenterPositionChanged: props.onCenterPositionChanged,
|
|
82
|
+
onZoomChanged: props.onZoomChanged,
|
|
83
|
+
});
|
|
84
|
+
const drillablePredicates = useMemo(() => convertDrillableItemsToPredicates(props.drillableItems ?? []), [props.drillableItems]);
|
|
85
|
+
// Set up tooltip handlers
|
|
86
|
+
useTooltipHandlers(map, tooltip, props.config, drillablePredicates, intl, DEFAULT_AREA_LAYER_NAME);
|
|
87
|
+
// Call afterRender and onLoadingChanged when map finishes rendering
|
|
88
|
+
useAfterRender(map, props.afterRender, props.execution);
|
|
89
|
+
// Push data to analytical designer for configuration panel
|
|
90
|
+
useAreaPushData(colorStrategy, colorPalette);
|
|
91
|
+
// Get legend configuration
|
|
92
|
+
const legendConfig = useLegendConfig(props.config);
|
|
93
|
+
const { position } = legendConfig;
|
|
94
|
+
// Determine if legend should be rendered first (top or left position)
|
|
95
|
+
const isLegendRenderedFirst = position === "top" || position === "left";
|
|
96
|
+
// Container class based on legend position
|
|
97
|
+
// Include gd-geo-component for legacy legend CSS support
|
|
98
|
+
const isRow = position === "left" || position === "right";
|
|
99
|
+
const flexDirection = isRow ? "flex-direction-row" : "flex-direction-column";
|
|
100
|
+
const containerClass = `gd-geo-area-next__container gd-geo-component ${flexDirection} ${isRow ? "gd-geo-area-next__container--flex-row" : "gd-geo-area-next__container--flex-column"}`;
|
|
101
|
+
const legendComponent = (_jsx(Legend, { colorStrategy: colorStrategy, config: props.config, categoryItems: legendItems, containerId: containerId, chartContainerRect: chartContainerRect ?? undefined }));
|
|
102
|
+
return (_jsx(Measure, { client: true, onResize: setChartContainerRect, children: ({ measureRef }) => (_jsxs("div", { id: containerId, "data-testid": "geo-area-chart", className: containerClass, ref: measureRef, children: [isLegendRenderedFirst ? legendComponent : null, _jsx("div", { ref: mapContainerRef, className: "gd-geo-area-next__map" }), isLegendRenderedFirst ? null : legendComponent] })) }));
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=RenderGeoAreaChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderGeoAreaChart.js","sourceRoot":"","sources":["../../src/next/RenderGeoAreaChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderGeoPushpinChart.d.ts","sourceRoot":"","sources":["../../src/next/RenderGeoPushpinChart.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAA6B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"RenderGeoPushpinChart.d.ts","sourceRoot":"","sources":["../../src/next/RenderGeoPushpinChart.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAA6B,MAAM,OAAO,CAAC;AAkChE;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,IAAI,YAAY,CA4HpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderGeoPushpinChart.js","sourceRoot":"","sources":["../../src/next/RenderGeoPushpinChart.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAgB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEhE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,YAAqD,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAE1B,OAAO,EAAE,iCAAiC,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"RenderGeoPushpinChart.js","sourceRoot":"","sources":["../../src/next/RenderGeoPushpinChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ export function Legend({ colorStrategy, config, categoryItems, containerId, char
|
|
|
25
25
|
// Use chart container dimensions for responsive legend behavior (popup mode detection)
|
|
26
26
|
const legendDetails = useLegendDetails(config, geoData, chartContainerRect);
|
|
27
27
|
// Check if legend should be shown at all
|
|
28
|
-
const { hasCategoryLegend, hasColorLegend, hasSizeLegend } = availableLegends;
|
|
28
|
+
const { hasCategoryLegend, hasColorLegend, hasSizeLegend = false } = availableLegends;
|
|
29
29
|
const hasAnyLegend = hasCategoryLegend || hasColorLegend || hasSizeLegend;
|
|
30
30
|
if (!legendConfig.enabled || !hasAnyLegend) {
|
|
31
31
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Legend.js","sourceRoot":"","sources":["../../../../src/next/components/legends/Legend.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAgB,OAAO,EAAE,MAAM,OAAO,CAAC;AAM9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAgB9E;;;;;;;;;GASG;AACH,MAAM,UAAU,MAAM,CAAC,EACnB,aAAa,EACb,MAAM,EACN,aAAa,EACb,WAAW,EACX,kBAAkB,GACP;IACX,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,UAAU,EAAE,CAAC;IAEnD,MAAM,gBAAgB,GAAG,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACnE,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAC/F,MAAM,6BAA6B,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAE3E,uFAAuF;IACvF,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAE5E,yCAAyC;IACzC,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Legend.js","sourceRoot":"","sources":["../../../../src/next/components/legends/Legend.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAgB,OAAO,EAAE,MAAM,OAAO,CAAC;AAM9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAgB9E;;;;;;;;;GASG;AACH,MAAM,UAAU,MAAM,CAAC,EACnB,aAAa,EACb,MAAM,EACN,aAAa,EACb,WAAW,EACX,kBAAkB,GACP;IACX,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,UAAU,EAAE,CAAC;IAEnD,MAAM,gBAAgB,GAAG,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACnE,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAC/F,MAAM,6BAA6B,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAE3E,uFAAuF;IACvF,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAE5E,yCAAyC;IACzC,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,GAAG,KAAK,EAAE,GAAG,gBAAgB,CAAC;IACtF,MAAM,YAAY,GAAG,iBAAiB,IAAI,cAAc,IAAI,aAAa,CAAC;IAE1E,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,+DAA+D;IAC/D,MAAM,WAAW,GAAG,kBAAkB,EAAE,MAAM,EAAE,KAAK,IAAI,GAAG,CAAC;IAC7D,MAAM,YAAY,GAAG,kBAAkB,EAAE,MAAM,EAAE,MAAM,IAAI,GAAG,CAAC;IAE/D,uFAAuF;IACvF,4DAA4D;IAC5D,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,KAAK,IAAI,CAAC;IAEvD,MAAM,eAAe,GAAqB;QACtC,WAAW;QACX,aAAa;QACb,aAAa;QACb,OAAO;QACP,gBAAgB;QAChB,gBAAgB;QAChB,WAAW;QACX,YAAY;QACZ,aAAa;QACb,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,mBAAmB,EAAE,6BAA6B;KACrD,CAAC;IAEF,OAAO,KAAC,UAAU,OAAK,eAAe,GAAI,CAAC;AAC/C,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ILegendDetails, IPushpinCategoryLegendItem } from "@gooddata/sdk-ui-vis-commons";
|
|
2
|
-
import { IAvailableLegends,
|
|
2
|
+
import { IAvailableLegends, IGeoCommonData } from "../../types/shared.js";
|
|
3
3
|
export interface ILegendBodyProps {
|
|
4
4
|
containerId: string;
|
|
5
5
|
legendDetails: ILegendDetails | null;
|
|
6
6
|
categoryItems: IPushpinCategoryLegendItem[];
|
|
7
|
-
geoData:
|
|
7
|
+
geoData: IGeoCommonData | null;
|
|
8
8
|
availableLegends: IAvailableLegends;
|
|
9
9
|
colorLegendValue: string | null;
|
|
10
10
|
legendWidth: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/next/components/legends/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1F,OAAO,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/next/components/legends/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1F,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE1E,MAAM,WAAW,gBAAgB;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,cAAc,GAAG,IAAI,CAAC;IACrC,aAAa,EAAE,0BAA0B,EAAE,CAAC;IAC5C,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,GAAG,uBAAuB,CAAC;IAC9C,mBAAmB,EAAE,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,CAAC;CACnE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
import { IAreaCollectionFeatures } from "../hooks/shared/useAreaCollectionFeatures.js";
|
|
3
|
+
/**
|
|
4
|
+
* Provides geo collection metadata and features for GeoArea charts.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* The provider resolves geo collections using the initial execution result and
|
|
8
|
+
* exposes the resulting features/bounding box via context for reuse across the
|
|
9
|
+
* rendering tree.
|
|
10
|
+
*
|
|
11
|
+
* @alpha
|
|
12
|
+
*/
|
|
13
|
+
export declare function GeoAreaCollectionProvider({ children }: {
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
/**
|
|
17
|
+
* Hook to access geo collection data.
|
|
18
|
+
*
|
|
19
|
+
* @returns Collection features and metadata
|
|
20
|
+
*
|
|
21
|
+
* @alpha
|
|
22
|
+
*/
|
|
23
|
+
export declare function useGeoAreaCollection(): IAreaCollectionFeatures;
|
|
24
|
+
//# sourceMappingURL=GeoAreaCollectionContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeoAreaCollectionContext.d.ts","sourceRoot":"","sources":["../../../src/next/context/GeoAreaCollectionContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAsC,MAAM,OAAO,CAAC;AAItE,OAAO,EACH,uBAAuB,EAE1B,MAAM,8CAA8C,CAAC;AAItD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAO9E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,uBAAuB,CAQ9D"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2025 GoodData Corporation
|
|
3
|
+
import { createContext, useContext, useMemo } from "react";
|
|
4
|
+
import { useGeoAreaProps } from "./GeoAreaPropsContext.js";
|
|
5
|
+
import { useInitialExecution } from "./InitialExecutionContext.js";
|
|
6
|
+
import { useAreaCollectionFeatures, } from "../hooks/shared/useAreaCollectionFeatures.js";
|
|
7
|
+
const GeoAreaCollectionContext = createContext(undefined);
|
|
8
|
+
/**
|
|
9
|
+
* Provides geo collection metadata and features for GeoArea charts.
|
|
10
|
+
*
|
|
11
|
+
* @remarks
|
|
12
|
+
* The provider resolves geo collections using the initial execution result and
|
|
13
|
+
* exposes the resulting features/bounding box via context for reuse across the
|
|
14
|
+
* rendering tree.
|
|
15
|
+
*
|
|
16
|
+
* @alpha
|
|
17
|
+
*/
|
|
18
|
+
export function GeoAreaCollectionProvider({ children }) {
|
|
19
|
+
const props = useGeoAreaProps();
|
|
20
|
+
const { initialDataView } = useInitialExecution();
|
|
21
|
+
const collection = useAreaCollectionFeatures(initialDataView, props.area, props.backend, props.workspace);
|
|
22
|
+
const value = useMemo(() => collection, [collection]);
|
|
23
|
+
return _jsx(GeoAreaCollectionContext.Provider, { value: value, children: children });
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Hook to access geo collection data.
|
|
27
|
+
*
|
|
28
|
+
* @returns Collection features and metadata
|
|
29
|
+
*
|
|
30
|
+
* @alpha
|
|
31
|
+
*/
|
|
32
|
+
export function useGeoAreaCollection() {
|
|
33
|
+
const context = useContext(GeoAreaCollectionContext);
|
|
34
|
+
if (!context) {
|
|
35
|
+
throw new Error("useGeoAreaCollection must be used within a GeoAreaCollectionProvider");
|
|
36
|
+
}
|
|
37
|
+
return context;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=GeoAreaCollectionContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeoAreaCollectionContext.js","sourceRoot":"","sources":["../../../src/next/context/GeoAreaCollectionContext.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAa,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAEH,yBAAyB,GAC5B,MAAM,8CAA8C,CAAC;AAEtD,MAAM,wBAAwB,GAAG,aAAa,CAAsC,SAAS,CAAC,CAAC;AAE/F;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CAAC,EAAE,QAAQ,EAA2B;IAC3E,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,MAAM,EAAE,eAAe,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAClD,MAAM,UAAU,GAAG,yBAAyB,CAAC,eAAe,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1G,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEtD,OAAO,KAAC,wBAAwB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAqC,CAAC;AAC3G,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB;IAChC,MAAM,OAAO,GAAG,UAAU,CAAC,wBAAwB,CAAC,CAAC;IAErD,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
import { IColorPalette } from "@gooddata/sdk-model";
|
|
3
|
+
import { IColorStrategy, IPushpinCategoryLegendItem } from "@gooddata/sdk-ui-vis-commons";
|
|
4
|
+
import { IAreaGeoData, IAvailableLegends } from "../types/shared.js";
|
|
5
|
+
/**
|
|
6
|
+
* Context for area geographic data and derived values.
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* This context provides all computed data derived from the initial execution result.
|
|
10
|
+
* All values are computed once using useMemo and provided down the tree.
|
|
11
|
+
* This eliminates the need for useEffect state synchronization.
|
|
12
|
+
*
|
|
13
|
+
* @alpha
|
|
14
|
+
*/
|
|
15
|
+
interface IGeoAreaDataContext {
|
|
16
|
+
/**
|
|
17
|
+
* Transformed area geographic data
|
|
18
|
+
*/
|
|
19
|
+
geoData: IAreaGeoData | null;
|
|
20
|
+
/**
|
|
21
|
+
* Color strategy used for visualization
|
|
22
|
+
*/
|
|
23
|
+
colorStrategy: IColorStrategy | null;
|
|
24
|
+
/**
|
|
25
|
+
* Color palette used for visualization
|
|
26
|
+
*/
|
|
27
|
+
colorPalette: IColorPalette;
|
|
28
|
+
/**
|
|
29
|
+
* Base category legend items (before applying visibility state)
|
|
30
|
+
*/
|
|
31
|
+
baseLegendItems: IPushpinCategoryLegendItem[];
|
|
32
|
+
/**
|
|
33
|
+
* Available legend types based on data
|
|
34
|
+
*/
|
|
35
|
+
availableLegends: IAvailableLegends;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Provider for area geographic data.
|
|
39
|
+
*
|
|
40
|
+
* @remarks
|
|
41
|
+
* This provider computes all derived data from the initial execution result:
|
|
42
|
+
* - Transforms DataView to IAreaGeoData
|
|
43
|
+
* - Creates color strategy
|
|
44
|
+
* - Generates legend items
|
|
45
|
+
* - Determines available legends
|
|
46
|
+
*
|
|
47
|
+
* All computations use useMemo and happen once per data change.
|
|
48
|
+
* No useEffect or state synchronization needed.
|
|
49
|
+
*
|
|
50
|
+
* @alpha
|
|
51
|
+
*/
|
|
52
|
+
export declare function GeoAreaDataProvider({ children }: {
|
|
53
|
+
children: ReactNode;
|
|
54
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
55
|
+
/**
|
|
56
|
+
* Hook to access area geographic data.
|
|
57
|
+
*
|
|
58
|
+
* @remarks
|
|
59
|
+
* Use this hook to access all computed data derived from the execution result.
|
|
60
|
+
* All values are already computed and memoized.
|
|
61
|
+
*
|
|
62
|
+
* @returns Area geographic data context
|
|
63
|
+
* @throws Error if used outside of GeoAreaDataProvider
|
|
64
|
+
*
|
|
65
|
+
* @alpha
|
|
66
|
+
*/
|
|
67
|
+
export declare function useGeoAreaData(): IGeoAreaDataContext;
|
|
68
|
+
export {};
|
|
69
|
+
//# sourceMappingURL=GeoAreaDataContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeoAreaDataContext.d.ts","sourceRoot":"","sources":["../../../src/next/context/GeoAreaDataContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAsC,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAS1F,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAErE;;;;;;;;;GASG;AACH,UAAU,mBAAmB;IACzB;;OAEG;IACH,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAE7B;;OAEG;IACH,aAAa,EAAE,cAAc,GAAG,IAAI,CAAC;IAErC;;OAEG;IACH,YAAY,EAAE,aAAa,CAAC;IAE5B;;OAEG;IACH,eAAe,EAAE,0BAA0B,EAAE,CAAC;IAE9C;;OAEG;IACH,gBAAgB,EAAE,iBAAiB,CAAC;CACvC;AASD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CA2DxE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,IAAI,mBAAmB,CAQpD"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2025 GoodData Corporation
|
|
3
|
+
import { createContext, useContext, useMemo } from "react";
|
|
4
|
+
import { DefaultColorPalette } from "@gooddata/sdk-ui";
|
|
5
|
+
import { useGeoAreaProps } from "./GeoAreaPropsContext.js";
|
|
6
|
+
import { GeoDataContextProvider } from "./GeoDataContext.js";
|
|
7
|
+
import { useInitialExecution } from "./InitialExecutionContext.js";
|
|
8
|
+
import { getAreaColorStrategy } from "../features/coloring/areaColorStrategy.js";
|
|
9
|
+
import { getAreaAvailableLegends } from "../features/data/areaTransformation.js";
|
|
10
|
+
import { useAreaLegendItems } from "../hooks/legend/useAreaLegendItems.js";
|
|
11
|
+
import { useAreaDataTransformation } from "../hooks/shared/useAreaDataTransformation.js";
|
|
12
|
+
const GeoAreaDataContext = createContext(undefined);
|
|
13
|
+
const EMPTY_AVAILABLE_LEGENDS = {
|
|
14
|
+
hasCategoryLegend: false,
|
|
15
|
+
hasColorLegend: false,
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Provider for area geographic data.
|
|
19
|
+
*
|
|
20
|
+
* @remarks
|
|
21
|
+
* This provider computes all derived data from the initial execution result:
|
|
22
|
+
* - Transforms DataView to IAreaGeoData
|
|
23
|
+
* - Creates color strategy
|
|
24
|
+
* - Generates legend items
|
|
25
|
+
* - Determines available legends
|
|
26
|
+
*
|
|
27
|
+
* All computations use useMemo and happen once per data change.
|
|
28
|
+
* No useEffect or state synchronization needed.
|
|
29
|
+
*
|
|
30
|
+
* @alpha
|
|
31
|
+
*/
|
|
32
|
+
export function GeoAreaDataProvider({ children }) {
|
|
33
|
+
const props = useGeoAreaProps();
|
|
34
|
+
const { initialDataView } = useInitialExecution();
|
|
35
|
+
// Transform execution data to area geo format
|
|
36
|
+
const geoData = useAreaDataTransformation(initialDataView);
|
|
37
|
+
// Create color strategy (memoized to prevent infinite loops)
|
|
38
|
+
const colorPalette = useMemo(() => props.config?.colorPalette || DefaultColorPalette, [props.config?.colorPalette]);
|
|
39
|
+
const colorMapping = useMemo(() => props.config?.colorMapping || [], [props.config?.colorMapping]);
|
|
40
|
+
const colorStrategy = useMemo(() => geoData && initialDataView
|
|
41
|
+
? getAreaColorStrategy(colorPalette, colorMapping, geoData, initialDataView)
|
|
42
|
+
: null, [colorPalette, colorMapping, geoData, initialDataView]);
|
|
43
|
+
// Get base legend items (with colors, but always isVisible: true)
|
|
44
|
+
const baseLegendItems = useAreaLegendItems(initialDataView, geoData, colorStrategy);
|
|
45
|
+
// Compute available legends
|
|
46
|
+
const availableLegends = useMemo(() => {
|
|
47
|
+
if (!geoData) {
|
|
48
|
+
return EMPTY_AVAILABLE_LEGENDS;
|
|
49
|
+
}
|
|
50
|
+
return getAreaAvailableLegends(baseLegendItems, geoData);
|
|
51
|
+
}, [baseLegendItems, geoData]);
|
|
52
|
+
const value = useMemo(() => ({
|
|
53
|
+
geoData,
|
|
54
|
+
colorStrategy,
|
|
55
|
+
colorPalette,
|
|
56
|
+
baseLegendItems,
|
|
57
|
+
availableLegends,
|
|
58
|
+
}), [geoData, colorStrategy, colorPalette, baseLegendItems, availableLegends]);
|
|
59
|
+
const geoDataContextValue = useMemo(() => ({
|
|
60
|
+
geoData,
|
|
61
|
+
colorStrategy,
|
|
62
|
+
colorPalette,
|
|
63
|
+
baseLegendItems,
|
|
64
|
+
availableLegends,
|
|
65
|
+
}), [geoData, colorStrategy, colorPalette, baseLegendItems, availableLegends]);
|
|
66
|
+
return (_jsx(GeoDataContextProvider, { value: geoDataContextValue, children: _jsx(GeoAreaDataContext.Provider, { value: value, children: children }) }));
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Hook to access area geographic data.
|
|
70
|
+
*
|
|
71
|
+
* @remarks
|
|
72
|
+
* Use this hook to access all computed data derived from the execution result.
|
|
73
|
+
* All values are already computed and memoized.
|
|
74
|
+
*
|
|
75
|
+
* @returns Area geographic data context
|
|
76
|
+
* @throws Error if used outside of GeoAreaDataProvider
|
|
77
|
+
*
|
|
78
|
+
* @alpha
|
|
79
|
+
*/
|
|
80
|
+
export function useGeoAreaData() {
|
|
81
|
+
const context = useContext(GeoAreaDataContext);
|
|
82
|
+
if (context === undefined) {
|
|
83
|
+
throw new Error("useGeoAreaData must be used within a GeoAreaDataProvider");
|
|
84
|
+
}
|
|
85
|
+
return context;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=GeoAreaDataContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeoAreaDataContext.js","sourceRoot":"","sources":["../../../src/next/context/GeoAreaDataContext.tsx"],"names":[],"mappings":"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"}
|