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