@gooddata/sdk-ui-geo 11.6.0-alpha.5 → 11.6.0-alpha.7

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 (231) hide show
  1. package/esm/next/GeoPushpinChartNext.d.ts +12 -0
  2. package/esm/next/GeoPushpinChartNext.d.ts.map +1 -0
  3. package/esm/next/GeoPushpinChartNext.js +42 -0
  4. package/esm/next/GeoPushpinChartNext.js.map +1 -0
  5. package/esm/next/RenderGeoPushpinChart.d.ts +15 -0
  6. package/esm/next/RenderGeoPushpinChart.d.ts.map +1 -0
  7. package/esm/next/RenderGeoPushpinChart.js +97 -0
  8. package/esm/next/RenderGeoPushpinChart.js.map +1 -0
  9. package/esm/next/components/ErrorComponent.d.ts +13 -0
  10. package/esm/next/components/ErrorComponent.d.ts.map +1 -0
  11. package/esm/next/components/ErrorComponent.js +19 -0
  12. package/esm/next/components/ErrorComponent.js.map +1 -0
  13. package/esm/next/components/LoadingComponent.d.ts +5 -0
  14. package/esm/next/components/LoadingComponent.d.ts.map +1 -0
  15. package/esm/next/components/LoadingComponent.js +13 -0
  16. package/esm/next/components/LoadingComponent.js.map +1 -0
  17. package/esm/next/components/legends/Legend.d.ts +28 -0
  18. package/esm/next/components/legends/Legend.d.ts.map +1 -0
  19. package/esm/next/components/legends/Legend.js +54 -0
  20. package/esm/next/components/legends/Legend.js.map +1 -0
  21. package/esm/next/components/legends/LegendBody.d.ts +12 -0
  22. package/esm/next/components/legends/LegendBody.d.ts.map +1 -0
  23. package/esm/next/components/legends/LegendBody.js +30 -0
  24. package/esm/next/components/legends/LegendBody.js.map +1 -0
  25. package/esm/next/components/legends/legendPropsAdapter.d.ts +14 -0
  26. package/esm/next/components/legends/legendPropsAdapter.d.ts.map +1 -0
  27. package/esm/next/components/legends/legendPropsAdapter.js +34 -0
  28. package/esm/next/components/legends/legendPropsAdapter.js.map +1 -0
  29. package/esm/next/components/legends/types.d.ts +16 -0
  30. package/esm/next/components/legends/types.d.ts.map +1 -0
  31. package/esm/next/components/legends/types.js +3 -0
  32. package/esm/next/components/legends/types.js.map +1 -0
  33. package/esm/next/constants/geoChart.d.ts +108 -0
  34. package/esm/next/constants/geoChart.d.ts.map +1 -0
  35. package/esm/next/constants/geoChart.js +130 -0
  36. package/esm/next/constants/geoChart.js.map +1 -0
  37. package/esm/next/constants/internal.d.ts +19 -0
  38. package/esm/next/constants/internal.d.ts.map +1 -0
  39. package/esm/next/constants/internal.js +20 -0
  40. package/esm/next/constants/internal.js.map +1 -0
  41. package/esm/next/context/GeoDataContext.d.ts +69 -0
  42. package/esm/next/context/GeoDataContext.d.ts.map +1 -0
  43. package/esm/next/context/GeoDataContext.js +80 -0
  44. package/esm/next/context/GeoDataContext.js.map +1 -0
  45. package/esm/next/context/GeoLegendContext.d.ts +78 -0
  46. package/esm/next/context/GeoLegendContext.d.ts.map +1 -0
  47. package/esm/next/context/GeoLegendContext.js +74 -0
  48. package/esm/next/context/GeoLegendContext.js.map +1 -0
  49. package/esm/next/context/GeoPushpinPropsContext.d.ts +47 -0
  50. package/esm/next/context/GeoPushpinPropsContext.d.ts.map +1 -0
  51. package/esm/next/context/GeoPushpinPropsContext.js +81 -0
  52. package/esm/next/context/GeoPushpinPropsContext.js.map +1 -0
  53. package/esm/next/context/InitialExecutionContext.d.ts +43 -0
  54. package/esm/next/context/InitialExecutionContext.d.ts.map +1 -0
  55. package/esm/next/context/InitialExecutionContext.js +45 -0
  56. package/esm/next/context/InitialExecutionContext.js.map +1 -0
  57. package/esm/next/context/MapInstanceContext.d.ts +42 -0
  58. package/esm/next/context/MapInstanceContext.d.ts.map +1 -0
  59. package/esm/next/context/MapInstanceContext.js +62 -0
  60. package/esm/next/context/MapInstanceContext.js.map +1 -0
  61. package/esm/next/features/clustering/clustering.d.ts +23 -0
  62. package/esm/next/features/clustering/clustering.d.ts.map +1 -0
  63. package/esm/next/features/clustering/clustering.js +26 -0
  64. package/esm/next/features/clustering/clustering.js.map +1 -0
  65. package/esm/next/features/coloring/colorStrategy.d.ts +22 -0
  66. package/esm/next/features/coloring/colorStrategy.d.ts.map +1 -0
  67. package/esm/next/features/coloring/colorStrategy.js +83 -0
  68. package/esm/next/features/coloring/colorStrategy.js.map +1 -0
  69. package/esm/next/features/coloring/palette.d.ts +81 -0
  70. package/esm/next/features/coloring/palette.d.ts.map +1 -0
  71. package/esm/next/features/coloring/palette.js +233 -0
  72. package/esm/next/features/coloring/palette.js.map +1 -0
  73. package/esm/next/features/data/dataSourceManagement.d.ts +20 -0
  74. package/esm/next/features/data/dataSourceManagement.d.ts.map +1 -0
  75. package/esm/next/features/data/dataSourceManagement.js +30 -0
  76. package/esm/next/features/data/dataSourceManagement.js.map +1 -0
  77. package/esm/next/features/data/transformation.d.ts +99 -0
  78. package/esm/next/features/data/transformation.d.ts.map +1 -0
  79. package/esm/next/features/data/transformation.js +369 -0
  80. package/esm/next/features/data/transformation.js.map +1 -0
  81. package/esm/next/features/map/initializeMap.d.ts +30 -0
  82. package/esm/next/features/map/initializeMap.d.ts.map +1 -0
  83. package/esm/next/features/map/initializeMap.js +58 -0
  84. package/esm/next/features/map/initializeMap.js.map +1 -0
  85. package/esm/next/features/map/layerManagement.d.ts +51 -0
  86. package/esm/next/features/map/layerManagement.d.ts.map +1 -0
  87. package/esm/next/features/map/layerManagement.js +95 -0
  88. package/esm/next/features/map/layerManagement.js.map +1 -0
  89. package/esm/next/features/map/viewportManagement.d.ts +76 -0
  90. package/esm/next/features/map/viewportManagement.d.ts.map +1 -0
  91. package/esm/next/features/map/viewportManagement.js +193 -0
  92. package/esm/next/features/map/viewportManagement.js.map +1 -0
  93. package/esm/next/features/size/calculations.d.ts +32 -0
  94. package/esm/next/features/size/calculations.d.ts.map +1 -0
  95. package/esm/next/features/size/calculations.js +37 -0
  96. package/esm/next/features/size/calculations.js.map +1 -0
  97. package/esm/next/features/tooltip/formatting.d.ts +28 -0
  98. package/esm/next/features/tooltip/formatting.d.ts.map +1 -0
  99. package/esm/next/features/tooltip/formatting.js +51 -0
  100. package/esm/next/features/tooltip/formatting.js.map +1 -0
  101. package/esm/next/features/tooltip/tooltipManagement.d.ts +47 -0
  102. package/esm/next/features/tooltip/tooltipManagement.d.ts.map +1 -0
  103. package/esm/next/features/tooltip/tooltipManagement.js +73 -0
  104. package/esm/next/features/tooltip/tooltipManagement.js.map +1 -0
  105. package/esm/next/hooks/init/useInitExecution.d.ts +29 -0
  106. package/esm/next/hooks/init/useInitExecution.d.ts.map +1 -0
  107. package/esm/next/hooks/init/useInitExecution.js +91 -0
  108. package/esm/next/hooks/init/useInitExecution.js.map +1 -0
  109. package/esm/next/hooks/init/useInitExecutionResult.d.ts +17 -0
  110. package/esm/next/hooks/init/useInitExecutionResult.d.ts.map +1 -0
  111. package/esm/next/hooks/init/useInitExecutionResult.js +44 -0
  112. package/esm/next/hooks/init/useInitExecutionResult.js.map +1 -0
  113. package/esm/next/hooks/legend/useLegendConfig.d.ts +35 -0
  114. package/esm/next/hooks/legend/useLegendConfig.d.ts.map +1 -0
  115. package/esm/next/hooks/legend/useLegendConfig.js +25 -0
  116. package/esm/next/hooks/legend/useLegendConfig.js.map +1 -0
  117. package/esm/next/hooks/legend/useLegendDetails.d.ts +27 -0
  118. package/esm/next/hooks/legend/useLegendDetails.d.ts.map +1 -0
  119. package/esm/next/hooks/legend/useLegendDetails.js +39 -0
  120. package/esm/next/hooks/legend/useLegendDetails.js.map +1 -0
  121. package/esm/next/hooks/legend/useLegendItemClick.d.ts +16 -0
  122. package/esm/next/hooks/legend/useLegendItemClick.d.ts.map +1 -0
  123. package/esm/next/hooks/legend/useLegendItemClick.js +23 -0
  124. package/esm/next/hooks/legend/useLegendItemClick.js.map +1 -0
  125. package/esm/next/hooks/legend/useLegendItems.d.ts +27 -0
  126. package/esm/next/hooks/legend/useLegendItems.d.ts.map +1 -0
  127. package/esm/next/hooks/legend/useLegendItems.js +54 -0
  128. package/esm/next/hooks/legend/useLegendItems.js.map +1 -0
  129. package/esm/next/hooks/legend/useLegendItemsWithState.d.ts +21 -0
  130. package/esm/next/hooks/legend/useLegendItemsWithState.d.ts.map +1 -0
  131. package/esm/next/hooks/legend/useLegendItemsWithState.js +42 -0
  132. package/esm/next/hooks/legend/useLegendItemsWithState.js.map +1 -0
  133. package/esm/next/hooks/legend/useLegendProps.d.ts +53 -0
  134. package/esm/next/hooks/legend/useLegendProps.d.ts.map +1 -0
  135. package/esm/next/hooks/legend/useLegendProps.js +38 -0
  136. package/esm/next/hooks/legend/useLegendProps.js.map +1 -0
  137. package/esm/next/hooks/legend/useSelectedSegments.d.ts +17 -0
  138. package/esm/next/hooks/legend/useSelectedSegments.d.ts.map +1 -0
  139. package/esm/next/hooks/legend/useSelectedSegments.js +32 -0
  140. package/esm/next/hooks/legend/useSelectedSegments.js.map +1 -0
  141. package/esm/next/hooks/map/useAfterRender.d.ts +19 -0
  142. package/esm/next/hooks/map/useAfterRender.d.ts.map +1 -0
  143. package/esm/next/hooks/map/useAfterRender.js +99 -0
  144. package/esm/next/hooks/map/useAfterRender.js.map +1 -0
  145. package/esm/next/hooks/map/useMapCallbacks.d.ts +20 -0
  146. package/esm/next/hooks/map/useMapCallbacks.d.ts.map +1 -0
  147. package/esm/next/hooks/map/useMapCallbacks.js +44 -0
  148. package/esm/next/hooks/map/useMapCallbacks.js.map +1 -0
  149. package/esm/next/hooks/map/useMapDataSync.d.ts +44 -0
  150. package/esm/next/hooks/map/useMapDataSync.d.ts.map +1 -0
  151. package/esm/next/hooks/map/useMapDataSync.js +87 -0
  152. package/esm/next/hooks/map/useMapDataSync.js.map +1 -0
  153. package/esm/next/hooks/map/useMapInitialization.d.ts +56 -0
  154. package/esm/next/hooks/map/useMapInitialization.d.ts.map +1 -0
  155. package/esm/next/hooks/map/useMapInitialization.js +121 -0
  156. package/esm/next/hooks/map/useMapInitialization.js.map +1 -0
  157. package/esm/next/hooks/map/useTooltipHandlers.d.ts +22 -0
  158. package/esm/next/hooks/map/useTooltipHandlers.d.ts.map +1 -0
  159. package/esm/next/hooks/map/useTooltipHandlers.js +28 -0
  160. package/esm/next/hooks/map/useTooltipHandlers.js.map +1 -0
  161. package/esm/next/hooks/shared/useGeoDataTransformation.d.ts +23 -0
  162. package/esm/next/hooks/shared/useGeoDataTransformation.d.ts.map +1 -0
  163. package/esm/next/hooks/shared/useGeoDataTransformation.js +37 -0
  164. package/esm/next/hooks/shared/useGeoDataTransformation.js.map +1 -0
  165. package/esm/next/hooks/shared/usePushData.d.ts +8 -0
  166. package/esm/next/hooks/shared/usePushData.d.ts.map +1 -0
  167. package/esm/next/hooks/shared/usePushData.js +36 -0
  168. package/esm/next/hooks/shared/usePushData.js.map +1 -0
  169. package/esm/next/hooks/shared/useResolvedProps.d.ts +16 -0
  170. package/esm/next/hooks/shared/useResolvedProps.d.ts.map +1 -0
  171. package/esm/next/hooks/shared/useResolvedProps.js +40 -0
  172. package/esm/next/hooks/shared/useResolvedProps.js.map +1 -0
  173. package/esm/next/index.d.ts +5 -0
  174. package/esm/next/index.d.ts.map +1 -0
  175. package/esm/next/index.js +3 -0
  176. package/esm/next/index.js.map +1 -0
  177. package/esm/next/providers/maplibre/maplibreConfig.d.ts +68 -0
  178. package/esm/next/providers/maplibre/maplibreConfig.d.ts.map +1 -0
  179. package/esm/next/providers/maplibre/maplibreConfig.js +104 -0
  180. package/esm/next/providers/maplibre/maplibreConfig.js.map +1 -0
  181. package/esm/next/providers/maplibre/maplibreDataLayers.d.ts +51 -0
  182. package/esm/next/providers/maplibre/maplibreDataLayers.d.ts.map +1 -0
  183. package/esm/next/providers/maplibre/maplibreDataLayers.js +195 -0
  184. package/esm/next/providers/maplibre/maplibreDataLayers.js.map +1 -0
  185. package/esm/next/providers/maplibre/maplibreDataSource.d.ts +28 -0
  186. package/esm/next/providers/maplibre/maplibreDataSource.d.ts.map +1 -0
  187. package/esm/next/providers/maplibre/maplibreDataSource.js +117 -0
  188. package/esm/next/providers/maplibre/maplibreDataSource.js.map +1 -0
  189. package/esm/next/providers/maplibre/maplibreTooltip.d.ts +54 -0
  190. package/esm/next/providers/maplibre/maplibreTooltip.d.ts.map +1 -0
  191. package/esm/next/providers/maplibre/maplibreTooltip.js +158 -0
  192. package/esm/next/providers/maplibre/maplibreTooltip.js.map +1 -0
  193. package/esm/next/providers/maplibre/maplibreViewport.d.ts +45 -0
  194. package/esm/next/providers/maplibre/maplibreViewport.d.ts.map +1 -0
  195. package/esm/next/providers/maplibre/maplibreViewport.js +92 -0
  196. package/esm/next/providers/maplibre/maplibreViewport.js.map +1 -0
  197. package/esm/next/providers/maplibre/style.d.ts +3 -0
  198. package/esm/next/providers/maplibre/style.d.ts.map +1 -0
  199. package/esm/next/providers/maplibre/style.js +8361 -0
  200. package/esm/next/providers/maplibre/style.js.map +1 -0
  201. package/esm/next/types/config.d.ts +89 -0
  202. package/esm/next/types/config.d.ts.map +1 -0
  203. package/esm/next/types/config.js +3 -0
  204. package/esm/next/types/config.js.map +1 -0
  205. package/esm/next/types/internal.d.ts +17 -0
  206. package/esm/next/types/internal.d.ts.map +1 -0
  207. package/esm/next/types/internal.js +3 -0
  208. package/esm/next/types/internal.js.map +1 -0
  209. package/esm/next/types/mapProvider.d.ts +122 -0
  210. package/esm/next/types/mapProvider.d.ts.map +1 -0
  211. package/esm/next/types/mapProvider.js +3 -0
  212. package/esm/next/types/mapProvider.js.map +1 -0
  213. package/esm/next/types/public.d.ts +84 -0
  214. package/esm/next/types/public.d.ts.map +1 -0
  215. package/esm/next/types/public.js +15 -0
  216. package/esm/next/types/public.js.map +1 -0
  217. package/esm/next/types/shared.d.ts +209 -0
  218. package/esm/next/types/shared.d.ts.map +1 -0
  219. package/esm/next/types/shared.js +3 -0
  220. package/esm/next/types/shared.js.map +1 -0
  221. package/esm/next/utils/mapLocale.d.ts +26 -0
  222. package/esm/next/utils/mapLocale.d.ts.map +1 -0
  223. package/esm/next/utils/mapLocale.js +22 -0
  224. package/esm/next/utils/mapLocale.js.map +1 -0
  225. package/package.json +13 -10
  226. package/styles/css/main.css +925 -0
  227. package/styles/css/main.css.map +1 -1
  228. package/styles/scss/_geo-pushpin-next-legend.scss +166 -0
  229. package/styles/scss/_maplibre-overrides.scss +64 -0
  230. package/styles/scss/geo-pushpin-next.scss +58 -0
  231. package/styles/scss/main.scss +1 -0
@@ -0,0 +1,130 @@
1
+ // (C) 2025 GoodData Corporation
2
+ // =============================================================================
3
+ // Pushpin Size Configuration
4
+ // =============================================================================
5
+ /**
6
+ * Pushpin size mapping for different size options
7
+ *
8
+ * @remarks
9
+ * Defines minimum and maximum pushpin sizes for each size preset
10
+ */
11
+ export const PUSHPIN_SIZE_OPTIONS_MAP = {
12
+ min: {
13
+ default: 8,
14
+ "0.5x": 4,
15
+ "0.75x": 6,
16
+ normal: 8,
17
+ "1.25x": 10,
18
+ "1.5x": 12,
19
+ },
20
+ max: {
21
+ default: 60,
22
+ "0.5x": 30,
23
+ "0.75x": 45,
24
+ normal: 60,
25
+ "1.25x": 75,
26
+ "1.5x": 90,
27
+ },
28
+ };
29
+ // =============================================================================
30
+ // Pushpin Color Configuration
31
+ // =============================================================================
32
+ /**
33
+ * Default border color for pushpins
34
+ */
35
+ export const DEFAULT_PUSHPIN_BORDER_COLOR_VALUE = "rgb(233,237,241)";
36
+ /**
37
+ * Default opacity for pushpin colors
38
+ */
39
+ export const DEFAULT_PUSHPIN_COLOR_OPACITY = 0.7;
40
+ /**
41
+ * Number of color scale steps for color gradients
42
+ *
43
+ * @remarks
44
+ * Used for creating color palettes. Should be less than 20 for performance.
45
+ */
46
+ export const DEFAULT_PUSHPIN_COLOR_SCALE = 6;
47
+ /**
48
+ * Default color value for pushpins
49
+ *
50
+ * @remarks
51
+ * Used as fallback color when no color mapping is defined
52
+ */
53
+ export const DEFAULT_PUSHPIN_COLOR_VALUE = "rgb(20,178,226)";
54
+ // =============================================================================
55
+ // Clustering Configuration
56
+ // =============================================================================
57
+ /**
58
+ * Maximum zoom level at which to cluster points
59
+ */
60
+ export const DEFAULT_CLUSTER_MAX_ZOOM = 14;
61
+ /**
62
+ * Radius in pixels within which points will be clustered
63
+ */
64
+ export const DEFAULT_CLUSTER_RADIUS = 50;
65
+ // =============================================================================
66
+ // Layer and Data Source Names
67
+ // =============================================================================
68
+ /**
69
+ * Default name for the pushpin data source
70
+ */
71
+ export const DEFAULT_DATA_SOURCE_NAME = "gdcPushpinsData";
72
+ /**
73
+ * Default name for the pushpin layer
74
+ */
75
+ export const DEFAULT_LAYER_NAME = "gdcPushpins";
76
+ /**
77
+ * Default name for the cluster layer
78
+ */
79
+ export const DEFAULT_CLUSTER_LAYER_NAME = "gdcClusters";
80
+ /**
81
+ * Suffix for label layers
82
+ */
83
+ export const LAYER_STYLE_LABEL_PREFIX = "-label";
84
+ // =============================================================================
85
+ // Pushpin Style Properties
86
+ // =============================================================================
87
+ /**
88
+ * Pushpin circle style type
89
+ */
90
+ export const PUSHPIN_STYLE_CIRCLE = "circle";
91
+ /**
92
+ * Pushpin circle color property
93
+ */
94
+ export const PUSHPIN_STYLE_CIRCLE_COLOR = "circle-color";
95
+ /**
96
+ * Pushpin circle size property
97
+ */
98
+ export const PUSHPIN_STYLE_CIRCLE_SIZE = "circle-radius";
99
+ /**
100
+ * Pushpin circle stroke color property
101
+ */
102
+ export const PUSHPIN_STYLE_CIRCLE_STROKE_COLOR = "circle-stroke-color";
103
+ // =============================================================================
104
+ // Data Limits
105
+ // =============================================================================
106
+ /**
107
+ * Maximum number of data points to render
108
+ *
109
+ * @remarks
110
+ * Limits are in place for performance reasons
111
+ */
112
+ export const DEFAULT_DATA_POINTS_LIMIT = 25000;
113
+ // =============================================================================
114
+ // Tooltip Configuration
115
+ // =============================================================================
116
+ /**
117
+ * Default options for pushpin styling
118
+ */
119
+ export const DEFAULT_PUSHPIN_OPTIONS = {
120
+ "circle-stroke-width": 1,
121
+ };
122
+ /**
123
+ * Value to display when data is null
124
+ */
125
+ export const NULL_TOOLTIP_VALUE = "-";
126
+ /**
127
+ * Value used for empty segment filters
128
+ */
129
+ export const EMPTY_SEGMENT_VALUE = "empty-segment-filter";
130
+ //# sourceMappingURL=geoChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geoChart.js","sourceRoot":"","sources":["../../../src/next/constants/geoChart.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACpC,GAAG,EAAE;QACD,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;KACb;IACD,GAAG,EAAE;QACD,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;KACb;CACK,CAAC;AAEX,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,kBAAkB,CAAC;AAErE;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;AAE7D,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;AAE1D;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,aAAa,CAAC;AAExD;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC;AAEjD,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,cAAc,CAAC;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,eAAe,CAAC;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,qBAAqB,CAAC;AAEvE,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAE/C,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACnC,qBAAqB,EAAE,CAAC;CAClB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Empty arrays (referentially stable)
3
+ *
4
+ * @internal
5
+ */
6
+ export declare const EMPTY_DRILLS: [];
7
+ /**
8
+ * @internal
9
+ */
10
+ export declare const EMPTY_FILTERS: [];
11
+ /**
12
+ * @internal
13
+ */
14
+ export declare const EMPTY_SORT_BY: [];
15
+ /**
16
+ * @internal
17
+ */
18
+ export declare const EMPTY_OBJECT: {};
19
+ //# sourceMappingURL=internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/next/constants/internal.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,EAAO,CAAC;AAEnC;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,EAAO,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,EAAO,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,YAAY,IAAK,CAAC"}
@@ -0,0 +1,20 @@
1
+ // (C) 2025 GoodData Corporation
2
+ /**
3
+ * Empty arrays (referentially stable)
4
+ *
5
+ * @internal
6
+ */
7
+ export const EMPTY_DRILLS = [];
8
+ /**
9
+ * @internal
10
+ */
11
+ export const EMPTY_FILTERS = [];
12
+ /**
13
+ * @internal
14
+ */
15
+ export const EMPTY_SORT_BY = [];
16
+ /**
17
+ * @internal
18
+ */
19
+ export const EMPTY_OBJECT = {};
20
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/next/constants/internal.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAO,EAAE,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAO,EAAE,CAAC;AAEpC;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAO,EAAE,CAAC;AAEpC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,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 { IAvailableLegends, IGeoData } from "../types/shared.js";
5
+ /**
6
+ * Context for 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 IGeoDataContext {
16
+ /**
17
+ * Transformed geographic data
18
+ */
19
+ geoData: IGeoData | 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 geographic data.
39
+ *
40
+ * @remarks
41
+ * This provider computes all derived data from the initial execution result:
42
+ * - Transforms DataView to IGeoData
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 GeoDataProvider({ children }: {
53
+ children: ReactNode;
54
+ }): import("react/jsx-runtime").JSX.Element;
55
+ /**
56
+ * Hook to access 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 Geographic data context
63
+ * @throws Error if used outside of GeoDataProvider
64
+ *
65
+ * @alpha
66
+ */
67
+ export declare function useGeoData(): IGeoDataContext;
68
+ export {};
69
+ //# sourceMappingURL=GeoDataContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeoDataContext.d.ts","sourceRoot":"","sources":["../../../src/next/context/GeoDataContext.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;AAQ1F,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEjE;;;;;;;;;GASG;AACH,UAAU,eAAe;IACrB;;OAEG;IACH,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAC;IAEzB;;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;AAUD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CA4CpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,IAAI,eAAe,CAQ5C"}
@@ -0,0 +1,80 @@
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 { useGeoPushpinProps } from "./GeoPushpinPropsContext.js";
6
+ import { useInitialExecution } from "./InitialExecutionContext.js";
7
+ import { getColorStrategy } from "../features/coloring/colorStrategy.js";
8
+ import { getAvailableLegends } from "../features/data/transformation.js";
9
+ import { useLegendItems } from "../hooks/legend/useLegendItems.js";
10
+ import { useGeoDataTransformation } from "../hooks/shared/useGeoDataTransformation.js";
11
+ const GeoDataContext = createContext(undefined);
12
+ const EMPTY_AVAILABLE_LEGENDS = {
13
+ hasCategoryLegend: false,
14
+ hasColorLegend: false,
15
+ hasSizeLegend: false,
16
+ };
17
+ /**
18
+ * Provider for geographic data.
19
+ *
20
+ * @remarks
21
+ * This provider computes all derived data from the initial execution result:
22
+ * - Transforms DataView to IGeoData
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 GeoDataProvider({ children }) {
33
+ const props = useGeoPushpinProps();
34
+ const { initialDataView } = useInitialExecution();
35
+ // Transform execution data to geo format
36
+ const geoData = useGeoDataTransformation(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
+ ? getColorStrategy(colorPalette, colorMapping, geoData, initialDataView)
42
+ : null, [colorPalette, colorMapping, geoData, initialDataView]);
43
+ // Get base legend items (with colors, but always isVisible: true)
44
+ const baseLegendItems = useLegendItems(initialDataView, geoData, colorStrategy);
45
+ // Compute available legends
46
+ const availableLegends = useMemo(() => {
47
+ if (!geoData) {
48
+ return EMPTY_AVAILABLE_LEGENDS;
49
+ }
50
+ return getAvailableLegends(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
+ return _jsx(GeoDataContext.Provider, { value: value, children: children });
60
+ }
61
+ /**
62
+ * Hook to access geographic data.
63
+ *
64
+ * @remarks
65
+ * Use this hook to access all computed data derived from the execution result.
66
+ * All values are already computed and memoized.
67
+ *
68
+ * @returns Geographic data context
69
+ * @throws Error if used outside of GeoDataProvider
70
+ *
71
+ * @alpha
72
+ */
73
+ export function useGeoData() {
74
+ const context = useContext(GeoDataContext);
75
+ if (context === undefined) {
76
+ throw new Error("useGeoData must be used within a GeoDataProvider");
77
+ }
78
+ return context;
79
+ }
80
+ //# sourceMappingURL=GeoDataContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeoDataContext.js","sourceRoot":"","sources":["../../../src/next/context/GeoDataContext.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import { ReactNode } from "react";
2
+ import { PositionType } from "@gooddata/sdk-ui-vis-commons";
3
+ /**
4
+ * Context for managing legend state and behavior.
5
+ *
6
+ * @remarks
7
+ * This context manages which legend items are enabled/visible, the legend position,
8
+ * and responsive layout behavior for smaller screens.
9
+ *
10
+ * @alpha
11
+ */
12
+ interface IGeoLegendContext {
13
+ /**
14
+ * URIs of enabled legend items (empty array means all enabled)
15
+ */
16
+ enabledLegendItems: string[];
17
+ /**
18
+ * Updates the enabled legend items
19
+ */
20
+ setEnabledLegendItems: (items: string[]) => void;
21
+ /**
22
+ * Toggles a legend item's enabled state
23
+ *
24
+ * @param uri - The URI of the legend item to toggle
25
+ * @param allUris - All available legend item URIs (for toggle logic)
26
+ */
27
+ toggleLegendItem: (uri: string, allUris: string[]) => void;
28
+ /**
29
+ * Position of the legend relative to the chart
30
+ */
31
+ legendPosition: PositionType;
32
+ /**
33
+ * Updates the legend position
34
+ */
35
+ setLegendPosition: (position: PositionType) => void;
36
+ /**
37
+ * Whether the legend is in responsive mode (horizontal layout on small screens)
38
+ */
39
+ isResponsive: boolean;
40
+ /**
41
+ * Updates the responsive state
42
+ */
43
+ setIsResponsive: (responsive: boolean) => void;
44
+ /**
45
+ * Whether the legend should show in a popup on small screens
46
+ */
47
+ showPopup: boolean;
48
+ /**
49
+ * Updates the popup state
50
+ */
51
+ setShowPopup: (show: boolean) => void;
52
+ }
53
+ /**
54
+ * Provider for legend state management.
55
+ *
56
+ * @remarks
57
+ * This provider manages the state of the legend including which items are visible,
58
+ * the legend position, and responsive behavior.
59
+ *
60
+ * @alpha
61
+ */
62
+ export declare function GeoLegendProvider({ children }: {
63
+ children: ReactNode;
64
+ }): import("react/jsx-runtime").JSX.Element;
65
+ /**
66
+ * Hook to access legend state and controls.
67
+ *
68
+ * @remarks
69
+ * Use this hook to manage legend visibility, position, and responsive behavior.
70
+ *
71
+ * @returns Legend context
72
+ * @throws Error if used outside of GeoLegendProvider
73
+ *
74
+ * @alpha
75
+ */
76
+ export declare function useGeoLegend(): IGeoLegendContext;
77
+ export {};
78
+ //# sourceMappingURL=GeoLegendContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeoLegendContext.d.ts","sourceRoot":"","sources":["../../../src/next/context/GeoLegendContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAuC,MAAM,OAAO,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D;;;;;;;;GAQG;AACH,UAAU,iBAAiB;IACvB;;OAEG;IACH,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAE7B;;OAEG;IACH,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAEjD;;;;;OAKG;IACH,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAE3D;;OAEG;IACH,cAAc,EAAE,YAAY,CAAC;IAE7B;;OAEG;IACH,iBAAiB,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IAEpD;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,eAAe,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAE/C;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AAID;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAmDtE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,IAAI,iBAAiB,CAQhD"}
@@ -0,0 +1,74 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // (C) 2025 GoodData Corporation
3
+ import { createContext, useContext, useState } from "react";
4
+ const GeoLegendContext = createContext(undefined);
5
+ /**
6
+ * Provider for legend state management.
7
+ *
8
+ * @remarks
9
+ * This provider manages the state of the legend including which items are visible,
10
+ * the legend position, and responsive behavior.
11
+ *
12
+ * @alpha
13
+ */
14
+ export function GeoLegendProvider({ children }) {
15
+ const [enabledLegendItems, setEnabledLegendItems] = useState([]);
16
+ const [legendPosition, setLegendPosition] = useState("top");
17
+ const [isResponsive, setIsResponsive] = useState(false);
18
+ const [showPopup, setShowPopup] = useState(false);
19
+ const toggleLegendItem = (uri, allUris) => {
20
+ setEnabledLegendItems((prev) => {
21
+ // If empty (all enabled), clicking disables the clicked item
22
+ // by enabling all EXCEPT the clicked one
23
+ if (prev.length === 0) {
24
+ return allUris.filter((itemUri) => itemUri !== uri);
25
+ }
26
+ // If the item is enabled, disable it
27
+ if (prev.includes(uri)) {
28
+ const newEnabled = prev.filter((item) => item !== uri);
29
+ // If all items would be enabled again, return to "all enabled" state (empty array)
30
+ if (newEnabled.length === allUris.length - 1) {
31
+ return [];
32
+ }
33
+ return newEnabled;
34
+ }
35
+ // If the item is disabled, enable it
36
+ const newEnabled = [...prev, uri];
37
+ // If all items are now enabled, return to "all enabled" state (empty array)
38
+ if (newEnabled.length === allUris.length) {
39
+ return [];
40
+ }
41
+ return newEnabled;
42
+ });
43
+ };
44
+ return (_jsx(GeoLegendContext.Provider, { value: {
45
+ enabledLegendItems,
46
+ setEnabledLegendItems,
47
+ toggleLegendItem,
48
+ legendPosition,
49
+ setLegendPosition,
50
+ isResponsive,
51
+ setIsResponsive,
52
+ showPopup,
53
+ setShowPopup,
54
+ }, children: children }));
55
+ }
56
+ /**
57
+ * Hook to access legend state and controls.
58
+ *
59
+ * @remarks
60
+ * Use this hook to manage legend visibility, position, and responsive behavior.
61
+ *
62
+ * @returns Legend context
63
+ * @throws Error if used outside of GeoLegendProvider
64
+ *
65
+ * @alpha
66
+ */
67
+ export function useGeoLegend() {
68
+ const context = useContext(GeoLegendContext);
69
+ if (context === undefined) {
70
+ throw new Error("useGeoLegend must be used within a GeoLegendProvider");
71
+ }
72
+ return context;
73
+ }
74
+ //# sourceMappingURL=GeoLegendContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeoLegendContext.js","sourceRoot":"","sources":["../../../src/next/context/GeoLegendContext.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAa,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AA+DvE,MAAM,gBAAgB,GAAG,aAAa,CAAgC,SAAS,CAAC,CAAC;AAEjF;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAE,QAAQ,EAA2B;IACnE,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAC;IAC3E,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAe,KAAK,CAAC,CAAC;IAC1E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,OAAiB,EAAE,EAAE;QACxD,qBAAqB,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,6DAA6D;YAC7D,yCAAyC;YACzC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC;YACxD,CAAC;YAED,qCAAqC;YACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;gBACvD,mFAAmF;gBACnF,IAAI,UAAU,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3C,OAAO,EAAE,CAAC;gBACd,CAAC;gBACD,OAAO,UAAU,CAAC;YACtB,CAAC;YAED,qCAAqC;YACrC,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;YAClC,4EAA4E;YAC5E,IAAI,UAAU,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvC,OAAO,EAAE,CAAC;YACd,CAAC;YACD,OAAO,UAAU,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,OAAO,CACH,KAAC,gBAAgB,CAAC,QAAQ,IACtB,KAAK,EAAE;YACH,kBAAkB;YAClB,qBAAqB;YACrB,gBAAgB;YAChB,cAAc;YACd,iBAAiB;YACjB,YAAY;YACZ,eAAe;YACf,SAAS;YACT,YAAY;SACf,YAEA,QAAQ,GACe,CAC/B,CAAC;AACN,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY;IACxB,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAE7C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { ReactNode } from "react";
2
+ import { IGeoPushpinChartNextConfig } from "../types/config.js";
3
+ import { ICoreGeoPushpinChartNextProps } from "../types/internal.js";
4
+ /**
5
+ * Provider for GeoPushpinChartNext component props.
6
+ *
7
+ * @remarks
8
+ * This context provides access to all props passed to the GeoPushpinChartNext component
9
+ * including configuration, data properties, and callback handlers.
10
+ *
11
+ * @alpha
12
+ */
13
+ export declare function GeoPushpinPropsProvider({ children, ...props }: ICoreGeoPushpinChartNextProps & {
14
+ children: ReactNode;
15
+ }): import("react/jsx-runtime").JSX.Element;
16
+ type WithRequired<T, K extends keyof T> = T & Required<Pick<T, K>>;
17
+ type ConfigDefaults = "points" | "legend";
18
+ type ConfigWithDefaults = WithRequired<IGeoPushpinChartNextConfig, ConfigDefaults>;
19
+ type RootPropsDefaults = "drillableItems" | "filters" | "sortBy" | "config" | "execConfig";
20
+ type RootPropsWithDefaults = WithRequired<ICoreGeoPushpinChartNextProps, RootPropsDefaults>;
21
+ type GeoPushpinPropsWithDefaults = RootPropsWithDefaults & {
22
+ config: ConfigWithDefaults;
23
+ };
24
+ /**
25
+ * Applies default values to GeoPushpinChartNext props.
26
+ *
27
+ * @param props - The component props
28
+ * @returns Props with defaults applied
29
+ *
30
+ * @alpha
31
+ */
32
+ export declare function applyGeoPushpinDefaultProps(props: ICoreGeoPushpinChartNextProps): GeoPushpinPropsWithDefaults;
33
+ /**
34
+ * Hook to access GeoPushpinChartNext component props.
35
+ *
36
+ * @remarks
37
+ * This hook provides access to all component props with default values applied
38
+ * and deep memoization for stable references across renders.
39
+ *
40
+ * @returns Component props with defaults
41
+ * @throws Error if used outside of GeoPushpinPropsProvider
42
+ *
43
+ * @alpha
44
+ */
45
+ export declare function useGeoPushpinProps(): GeoPushpinPropsWithDefaults;
46
+ export {};
47
+ //# sourceMappingURL=GeoPushpinPropsContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeoPushpinPropsContext.d.ts","sourceRoot":"","sources":["../../../src/next/context/GeoPushpinPropsContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAA6B,MAAM,OAAO,CAAC;AAK7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAIrE;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,EACpC,QAAQ,EACR,GAAG,KAAK,EACX,EAAE,6BAA6B,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAEzD;AAED,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEnE,KAAK,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE1C,KAAK,kBAAkB,GAAG,YAAY,CAAC,0BAA0B,EAAE,cAAc,CAAC,CAAC;AAEnF,KAAK,iBAAiB,GAAG,gBAAgB,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE3F,KAAK,qBAAqB,GAAG,YAAY,CAAC,6BAA6B,EAAE,iBAAiB,CAAC,CAAC;AAE5F,KAAK,2BAA2B,GAAG,qBAAqB,GAAG;IACvD,MAAM,EAAE,kBAAkB,CAAC;CAC9B,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACvC,KAAK,EAAE,6BAA6B,GACrC,2BAA2B,CAwB7B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,IAAI,2BAA2B,CAmBhE"}
@@ -0,0 +1,81 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // (C) 2025 GoodData Corporation
3
+ import { createContext, useContext } from "react";
4
+ import { useDeepMemo } from "@gooddata/sdk-ui/internal";
5
+ import { EMPTY_DRILLS, EMPTY_FILTERS, EMPTY_OBJECT, EMPTY_SORT_BY } from "../constants/internal.js";
6
+ const GeoPushpinPropsContext = createContext(undefined);
7
+ /**
8
+ * Provider for GeoPushpinChartNext component props.
9
+ *
10
+ * @remarks
11
+ * This context provides access to all props passed to the GeoPushpinChartNext component
12
+ * including configuration, data properties, and callback handlers.
13
+ *
14
+ * @alpha
15
+ */
16
+ export function GeoPushpinPropsProvider({ children, ...props }) {
17
+ return _jsx(GeoPushpinPropsContext.Provider, { value: props, children: children });
18
+ }
19
+ /**
20
+ * Applies default values to GeoPushpinChartNext props.
21
+ *
22
+ * @param props - The component props
23
+ * @returns Props with defaults applied
24
+ *
25
+ * @alpha
26
+ */
27
+ export function applyGeoPushpinDefaultProps(props) {
28
+ return {
29
+ ...props,
30
+ drillableItems: props.drillableItems ?? EMPTY_DRILLS,
31
+ filters: props.filters ?? EMPTY_FILTERS,
32
+ sortBy: props.sortBy ?? EMPTY_SORT_BY,
33
+ config: {
34
+ ...(props.config ?? {}),
35
+ center: props.config?.center,
36
+ zoom: props.config?.zoom,
37
+ points: {
38
+ ...(props.config?.points ?? {}),
39
+ minSize: props.config?.points?.minSize ?? "normal",
40
+ maxSize: props.config?.points?.maxSize ?? "normal",
41
+ groupNearbyPoints: props.config?.points?.groupNearbyPoints ?? true,
42
+ },
43
+ legend: {
44
+ ...(props.config?.legend ?? {}),
45
+ enabled: props.config?.legend?.enabled ?? true,
46
+ position: props.config?.legend?.position ?? "top",
47
+ },
48
+ },
49
+ execConfig: props.execConfig ?? EMPTY_OBJECT,
50
+ };
51
+ }
52
+ /**
53
+ * Hook to access GeoPushpinChartNext component props.
54
+ *
55
+ * @remarks
56
+ * This hook provides access to all component props with default values applied
57
+ * and deep memoization for stable references across renders.
58
+ *
59
+ * @returns Component props with defaults
60
+ * @throws Error if used outside of GeoPushpinPropsProvider
61
+ *
62
+ * @alpha
63
+ */
64
+ export function useGeoPushpinProps() {
65
+ const context = useContext(GeoPushpinPropsContext);
66
+ const memoizeDeep = useDeepMemo();
67
+ if (context === undefined) {
68
+ throw new Error("useGeoPushpinProps must be used within a GeoPushpinPropsProvider");
69
+ }
70
+ const baseProps = applyGeoPushpinDefaultProps(context);
71
+ // Recursively memoize nested properties to maintain stable references
72
+ return {
73
+ ...baseProps,
74
+ drillableItems: memoizeDeep("drillableItems", baseProps.drillableItems),
75
+ filters: memoizeDeep("filters", baseProps.filters),
76
+ sortBy: memoizeDeep("sortBy", baseProps.sortBy),
77
+ execConfig: memoizeDeep("execConfig", baseProps.execConfig),
78
+ config: memoizeDeep("config", baseProps.config),
79
+ };
80
+ }
81
+ //# sourceMappingURL=GeoPushpinPropsContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeoPushpinPropsContext.js","sourceRoot":"","sources":["../../../src/next/context/GeoPushpinPropsContext.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAa,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAIpG,MAAM,sBAAsB,GAAG,aAAa,CAA4C,SAAS,CAAC,CAAC;AAEnG;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,EACpC,QAAQ,EACR,GAAG,KAAK,EAC8C;IACtD,OAAO,KAAC,sBAAsB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAmC,CAAC;AACvG,CAAC;AAgBD;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CACvC,KAAoC;IAEpC,OAAO;QACH,GAAG,KAAK;QACR,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,YAAY;QACpD,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,aAAa;QACvC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,aAAa;QACrC,MAAM,EAAE;YACJ,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;YACvB,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM;YAC5B,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI;YACxB,MAAM,EAAE;gBACJ,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC;gBAC/B,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,IAAI,QAAQ;gBAClD,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,IAAI,QAAQ;gBAClD,iBAAiB,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,IAAI,IAAI;aACrE;YACD,MAAM,EAAE;gBACJ,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC;gBAC/B,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI;gBAC9C,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,IAAI,KAAK;aACpD;SACJ;QACD,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,YAAY;KAC/C,CAAC;AACN,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB;IAC9B,MAAM,OAAO,GAAG,UAAU,CAAC,sBAAsB,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,WAAW,EAAE,CAAC;IAElC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,SAAS,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAEvD,sEAAsE;IACtE,OAAO;QACH,GAAG,SAAS;QACZ,cAAc,EAAE,WAAW,CAAC,gBAAgB,EAAE,SAAS,CAAC,cAAc,CAAC;QACvE,OAAO,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC;QAClD,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC;QAC/C,UAAU,EAAE,WAAW,CAAC,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC;QAC3D,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC;KAClD,CAAC;AACN,CAAC"}