@gooddata/sdk-ui-geo 11.25.0-alpha.5 → 11.25.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.
- package/esm/index.d.ts +1 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js.map +1 -1
- package/esm/internal/index.d.ts +2 -0
- package/esm/internal/index.d.ts.map +1 -1
- package/esm/internal/index.js +1 -0
- package/esm/internal/index.js.map +1 -1
- package/esm/next/components/GeoChartDataLoader.d.ts.map +1 -1
- package/esm/next/components/GeoChartDataLoader.js +32 -7
- package/esm/next/components/GeoChartDataLoader.js.map +1 -1
- package/esm/next/components/RenderGeoChart.d.ts +6 -1
- package/esm/next/components/RenderGeoChart.d.ts.map +1 -1
- package/esm/next/components/RenderGeoChart.js +2 -17
- package/esm/next/components/RenderGeoChart.js.map +1 -1
- package/esm/next/components/multiLayerLegend/LayerToggleSwitch.d.ts +2 -2
- package/esm/next/components/multiLayerLegend/LayerToggleSwitch.d.ts.map +1 -1
- package/esm/next/components/multiLayerLegend/LayerToggleSwitch.js +4 -14
- package/esm/next/components/multiLayerLegend/LayerToggleSwitch.js.map +1 -1
- package/esm/next/components/multiLayerLegend/MultiLayerLegendPanel.d.ts +2 -2
- package/esm/next/components/multiLayerLegend/MultiLayerLegendPanel.d.ts.map +1 -1
- package/esm/next/components/multiLayerLegend/MultiLayerLegendPanel.js +2 -11
- package/esm/next/components/multiLayerLegend/MultiLayerLegendPanel.js.map +1 -1
- package/esm/next/hooks/layers/processSettledLayerResults.d.ts +23 -0
- package/esm/next/hooks/layers/processSettledLayerResults.d.ts.map +1 -0
- package/esm/next/hooks/layers/processSettledLayerResults.js +30 -0
- package/esm/next/hooks/layers/processSettledLayerResults.js.map +1 -0
- package/esm/next/hooks/layers/useLayersData.d.ts +6 -6
- package/esm/next/hooks/layers/useLayersData.d.ts.map +1 -1
- package/esm/next/hooks/layers/useLayersData.js +34 -8
- package/esm/next/hooks/layers/useLayersData.js.map +1 -1
- package/esm/next/hooks/layers/useLayersPrepare.d.ts +5 -5
- package/esm/next/hooks/layers/useLayersPrepare.d.ts.map +1 -1
- package/esm/next/hooks/layers/useLayersPrepare.js +32 -7
- package/esm/next/hooks/layers/useLayersPrepare.js.map +1 -1
- package/esm/next/hooks/legend/useLegendConfig.d.ts +2 -2
- package/esm/next/hooks/legend/useLegendConfig.d.ts.map +1 -1
- package/esm/next/hooks/legend/useLegendConfig.js +2 -1
- package/esm/next/hooks/legend/useLegendConfig.js.map +1 -1
- package/esm/next/hooks/legend/useLegendDetails.d.ts +9 -12
- package/esm/next/hooks/legend/useLegendDetails.d.ts.map +1 -1
- package/esm/next/hooks/legend/useLegendDetails.js +36 -18
- package/esm/next/hooks/legend/useLegendDetails.js.map +1 -1
- package/esm/next/hooks/map/useMapInitialization.d.ts +2 -1
- package/esm/next/hooks/map/useMapInitialization.d.ts.map +1 -1
- package/esm/next/hooks/map/useMapInitialization.js +3 -1
- package/esm/next/hooks/map/useMapInitialization.js.map +1 -1
- package/esm/next/layers/area/adapter.d.ts.map +1 -1
- package/esm/next/layers/area/adapter.js +5 -10
- package/esm/next/layers/area/adapter.js.map +1 -1
- package/esm/next/map/MapController.d.ts +3 -2
- package/esm/next/map/MapController.d.ts.map +1 -1
- package/esm/next/map/MapController.js +5 -3
- package/esm/next/map/MapController.js.map +1 -1
- package/esm/next/map/style/sharedDefaults.js +1 -1
- package/esm/next/map/style/sharedDefaults.js.map +1 -1
- package/esm/next/types/config/legend.d.ts +31 -1
- package/esm/next/types/config/legend.d.ts.map +1 -1
- package/esm/next/utils/legend/geoLegendPosition.d.ts +11 -0
- package/esm/next/utils/legend/geoLegendPosition.d.ts.map +1 -0
- package/esm/next/utils/legend/geoLegendPosition.js +37 -0
- package/esm/next/utils/legend/geoLegendPosition.js.map +1 -0
- package/esm/sdk-ui-geo.d.ts +34 -1
- package/package.json +11 -11
- package/styles/css/main.css +3 -75
- package/styles/css/main.css.map +1 -1
- package/styles/scss/_geo-multi-layer-legend.scss +4 -111
package/esm/index.d.ts
CHANGED
|
@@ -27,7 +27,7 @@ export { isGeoLayerArea, isGeoLayerPushpin, type GeoLayerType, type IGeoLayerBas
|
|
|
27
27
|
export { createAreaLayer } from "./next/layers/area/layerFactory.js";
|
|
28
28
|
export { createPushpinLayer } from "./next/layers/pushpin/layerFactory.js";
|
|
29
29
|
export type { IGeoCommonExecutionProps, IGeoSingleLayerWrapperProps } from "./next/types/props/shared.js";
|
|
30
|
-
export type { IGeoChartLegendConfig } from "./next/types/config/legend.js";
|
|
30
|
+
export type { GeoLegendCornerPosition, GeoLegendPosition, LegacyGeoLegendPosition, IGeoChartLegendConfig, } from "./next/types/config/legend.js";
|
|
31
31
|
export { isValidViewportArea, type IGeoChartViewportNavigation, type IGeoChartViewport, type IGeoChartViewportArea, } from "./next/types/config/viewport.js";
|
|
32
32
|
export { isValidPushpinSizeOption, type GeoChartPushpinSizeOption, type IGeoChartPointsConfig, } from "./next/types/config/points.js";
|
|
33
33
|
export type { StyleSpecification } from "./next/layers/common/mapFacade.js";
|
package/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,YAAY,EACR,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,+BAA+B,EAC/B,4CAA4C,EAC5C,2BAA2B,GAC9B,MAAM,eAAe,CAAC;AACvB,YAAY,EACR,yBAAyB,EACzB,sCAAsC,EACtC,6BAA6B,EAC7B,qBAAqB,GACxB,MAAM,2CAA2C,CAAC;AACnD,YAAY,EACR,6BAA6B,EAC7B,UAAU,EACV,gBAAgB,EAChB,mBAAmB,GACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAEpF,YAAY,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAElF,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,YAAY,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACzG,YAAY,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,YAAY,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EACH,cAAc,EACd,iBAAiB,EACjB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACxB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,YAAY,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAE1G,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,YAAY,EACR,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,+BAA+B,EAC/B,4CAA4C,EAC5C,2BAA2B,GAC9B,MAAM,eAAe,CAAC;AACvB,YAAY,EACR,yBAAyB,EACzB,sCAAsC,EACtC,6BAA6B,EAC7B,qBAAqB,GACxB,MAAM,2CAA2C,CAAC;AACnD,YAAY,EACR,6BAA6B,EAC7B,UAAU,EACV,gBAAgB,EAChB,mBAAmB,GACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAEpF,YAAY,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAElF,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,YAAY,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACzG,YAAY,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,YAAY,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EACH,cAAc,EACd,iBAAiB,EACjB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACxB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,YAAY,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAE1G,YAAY,EACR,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,GACxB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACH,mBAAmB,EACnB,KAAK,2BAA2B,EAChC,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,GAC7B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACH,wBAAwB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,GAC7B,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAE5E,OAAO,EACH,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,iBAAiB,GACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EACR,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAClF,YAAY,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AAG9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC"}
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AA6CrC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAIpF,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAMtD,OAAO,EACH,cAAc,EACd,iBAAiB,GAOpB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AA6CrC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAIpF,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAMtD,OAAO,EACH,cAAc,EACd,iBAAiB,GAOpB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAS3E,OAAO,EACH,mBAAmB,GAItB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACH,wBAAwB,GAG3B,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EACH,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,iBAAiB,GACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAStD,4HAA4H;AAC5H,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC"}
|
package/esm/internal/index.d.ts
CHANGED
|
@@ -14,4 +14,6 @@ export { AREA_LAYER_ID } from "../next/layers/area/layerFactory.js";
|
|
|
14
14
|
export { PUSHPIN_LAYER_ID } from "../next/layers/pushpin/layerFactory.js";
|
|
15
15
|
export { GEO_LAYER_TYPES, insightLayerToGeoLayer, insightLayersToGeoLayers, geoLayerToInsightLayer, geoLayersToInsightLayers, } from "../next/utils/layerConversion.js";
|
|
16
16
|
export { isConcreteViewportPreset } from "../next/types/config/viewport.js";
|
|
17
|
+
export { normalizeGeoLegendPosition } from "../next/utils/legend/geoLegendPosition.js";
|
|
18
|
+
export type { GeoLegendCornerPosition, GeoLegendPosition, LegacyGeoLegendPosition, } from "../next/types/config/legend.js";
|
|
17
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/internal/index.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AACtF,YAAY,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAClF,YAAY,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EACH,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,GAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/internal/index.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AACtF,YAAY,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAClF,YAAY,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EACH,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,GAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AACvF,YAAY,EACR,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,GAC1B,MAAM,gCAAgC,CAAC"}
|
package/esm/internal/index.js
CHANGED
|
@@ -14,4 +14,5 @@ export { AREA_LAYER_ID } from "../next/layers/area/layerFactory.js";
|
|
|
14
14
|
export { PUSHPIN_LAYER_ID } from "../next/layers/pushpin/layerFactory.js";
|
|
15
15
|
export { GEO_LAYER_TYPES, insightLayerToGeoLayer, insightLayersToGeoLayers, geoLayerToInsightLayer, geoLayersToInsightLayers, } from "../next/utils/layerConversion.js";
|
|
16
16
|
export { isConcreteViewportPreset } from "../next/types/config/viewport.js";
|
|
17
|
+
export { normalizeGeoLegendPosition } from "../next/utils/legend/geoLegendPosition.js";
|
|
17
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/internal/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,oDAAoD;AAEpD;;;;;;;GAOG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAGtF,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EACH,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,GAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/internal/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,oDAAoD;AAEpD;;;;;;;GAOG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAGtF,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EACH,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,GAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeoChartDataLoader.d.ts","sourceRoot":"","sources":["../../../src/next/components/GeoChartDataLoader.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"GeoChartDataLoader.d.ts","sourceRoot":"","sources":["../../../src/next/components/GeoChartDataLoader.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,OAAO,CAAC;AAmB7D,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAEjF;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EAC/B,eAAe,EAClB,EAAE;IACC,eAAe,EAAE,qBAAqB,EAAE,CAAC;CAC5C,GAAG,YAAY,CAwFf"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2025-2026 GoodData Corporation
|
|
3
|
+
import { useMemo, useState } from "react";
|
|
2
4
|
import { useIntl } from "react-intl";
|
|
3
5
|
import { createExportErrorFunction, createExportFunction, useBackendStrict, useWorkspaceStrict, } from "@gooddata/sdk-ui";
|
|
4
6
|
import { GeoChartProviders } from "./GeoChartProviders.js";
|
|
@@ -27,25 +29,48 @@ export function GeoChartDataLoader({ layerExecutions, }) {
|
|
|
27
29
|
execConfig: props.execConfig,
|
|
28
30
|
intl,
|
|
29
31
|
});
|
|
32
|
+
const mapInitializationInputs = useMemo(() => ({
|
|
33
|
+
backend,
|
|
34
|
+
mapStyle: props.config?.mapStyle,
|
|
35
|
+
tileset: props.config?.tileset,
|
|
36
|
+
}), [backend, props.config?.mapStyle, props.config?.tileset]);
|
|
37
|
+
const [mapError, setMapError] = useState(null);
|
|
38
|
+
const [previousMapInitializationInputs, setPreviousMapInitializationInputs] = useState(mapInitializationInputs);
|
|
39
|
+
const isPendingOrLoading = status === "loading" || status === "pending";
|
|
40
|
+
// Reset stale map initialization errors before commit so loading/input changes do not flash the error UI.
|
|
41
|
+
if (previousMapInitializationInputs !== mapInitializationInputs || (mapError && isPendingOrLoading)) {
|
|
42
|
+
if (mapError) {
|
|
43
|
+
setMapError(null);
|
|
44
|
+
}
|
|
45
|
+
if (previousMapInitializationInputs !== mapInitializationInputs) {
|
|
46
|
+
setPreviousMapInitializationInputs(mapInitializationInputs);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const combinedError = error ?? (isPendingOrLoading ? null : mapError);
|
|
30
50
|
const isLoading = status === "loading";
|
|
31
51
|
const { onLoadingChanged, onError } = props;
|
|
32
52
|
useCallbackOnChange(isLoading, (loading) => onLoadingChanged?.({ isLoading: loading }));
|
|
33
|
-
useCallbackOnChange(
|
|
53
|
+
useCallbackOnChange(combinedError, (err) => onError?.(err), Boolean(combinedError));
|
|
34
54
|
const primaryLayerId = layerExecutions[0]?.layerId;
|
|
35
55
|
const primaryDataView = status === "success" && primaryLayerId ? layerOutputs.get(primaryLayerId)?.dataView : undefined;
|
|
36
|
-
|
|
37
|
-
|
|
56
|
+
const primaryDataViewFingerprint = primaryDataView?.fingerprint();
|
|
57
|
+
const exportReadyState = useMemo(() => ({
|
|
58
|
+
fingerprint: primaryDataViewFingerprint,
|
|
59
|
+
hasError: Boolean(combinedError),
|
|
60
|
+
}), [primaryDataViewFingerprint, combinedError]);
|
|
61
|
+
useCallbackOnChange(exportReadyState, () => {
|
|
62
|
+
if (!primaryDataView || combinedError) {
|
|
38
63
|
return;
|
|
39
64
|
}
|
|
40
65
|
props.onExportReady?.(createExportFunction(primaryDataView.result(), props.exportTitle));
|
|
41
66
|
}, status === "success" && Boolean(primaryDataView) && Boolean(props.onExportReady));
|
|
42
|
-
useCallbackOnChange(
|
|
43
|
-
if (
|
|
44
|
-
return _jsx(GeoErrorComponent, { error:
|
|
67
|
+
useCallbackOnChange(combinedError, (err) => props.onExportReady?.(createExportErrorFunction(err)), Boolean(combinedError) && Boolean(props.onExportReady));
|
|
68
|
+
if (combinedError) {
|
|
69
|
+
return _jsx(GeoErrorComponent, { error: combinedError });
|
|
45
70
|
}
|
|
46
71
|
if (status !== "success") {
|
|
47
72
|
return _jsx(GeoLoadingComponent, {});
|
|
48
73
|
}
|
|
49
|
-
return (_jsx(GeoChartProviders, { layerExecutions: layerExecutions, layerOutputs: layerOutputs, children: _jsx(RenderGeoChart, {}) }));
|
|
74
|
+
return (_jsx(GeoChartProviders, { layerExecutions: layerExecutions, layerOutputs: layerOutputs, children: _jsx(RenderGeoChart, { onMapError: setMapError }) }));
|
|
50
75
|
}
|
|
51
76
|
//# sourceMappingURL=GeoChartDataLoader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeoChartDataLoader.js","sourceRoot":"","sources":["../../../src/next/components/GeoChartDataLoader.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"GeoChartDataLoader.js","sourceRoot":"","sources":["../../../src/next/components/GeoChartDataLoader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ReactElement } from "react";
|
|
2
|
+
import { type GoodDataSdkError } from "@gooddata/sdk-ui";
|
|
2
3
|
/**
|
|
3
4
|
* Rendering component for GeoChart.
|
|
4
5
|
*
|
|
@@ -14,5 +15,9 @@ import { type ReactElement } from "react";
|
|
|
14
15
|
*
|
|
15
16
|
* @internal
|
|
16
17
|
*/
|
|
17
|
-
|
|
18
|
+
interface IRenderGeoChartProps {
|
|
19
|
+
onMapError?: (error: GoodDataSdkError | null) => void;
|
|
20
|
+
}
|
|
21
|
+
export declare function RenderGeoChart({ onMapError }: IRenderGeoChartProps): ReactElement;
|
|
22
|
+
export {};
|
|
18
23
|
//# sourceMappingURL=RenderGeoChart.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderGeoChart.d.ts","sourceRoot":"","sources":["../../../src/next/components/RenderGeoChart.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAA0C,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"RenderGeoChart.d.ts","sourceRoot":"","sources":["../../../src/next/components/RenderGeoChart.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAA0C,MAAM,OAAO,CAAC;AAQlF,OAAO,EACH,KAAK,gBAAgB,EAIxB,MAAM,kBAAkB,CAAC;AAqB1B;;;;;;;;;;;;;;GAcG;AACH,UAAU,oBAAoB;IAC1B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI,CAAC;CACzD;AAED,wBAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,EAAE,oBAAoB,GAAG,YAAY,CAkHjF"}
|
|
@@ -19,22 +19,7 @@ import { getMapCanvasInstructionMessageId, getMapCanvasRuntimeCapabilities, mapC
|
|
|
19
19
|
// There are known compatibility issues between CommonJS (CJS) and ECMAScript modules (ESM).
|
|
20
20
|
const Measure = defaultImport(ReactMeasure);
|
|
21
21
|
const containerBaseId = "geo-chart-next";
|
|
22
|
-
|
|
23
|
-
* Rendering component for GeoChart.
|
|
24
|
-
*
|
|
25
|
-
* @remarks
|
|
26
|
-
* This is the final rendering layer that:
|
|
27
|
-
* - Creates the map container
|
|
28
|
-
* - Initializes the map
|
|
29
|
-
* - Syncs all layers to map via useLayerRendering hook
|
|
30
|
-
* - Handles map interactions
|
|
31
|
-
* - Shows legend from primary layer
|
|
32
|
-
*
|
|
33
|
-
* All data is pre-loaded before this component renders - no async operations here.
|
|
34
|
-
*
|
|
35
|
-
* @internal
|
|
36
|
-
*/
|
|
37
|
-
export function RenderGeoChart() {
|
|
22
|
+
export function RenderGeoChart({ onMapError }) {
|
|
38
23
|
const props = useGeoChartProps();
|
|
39
24
|
const intl = useIntl();
|
|
40
25
|
const { layers, layerExecutions, primaryLayer } = useGeoLayers();
|
|
@@ -67,7 +52,7 @@ export function RenderGeoChart() {
|
|
|
67
52
|
return (_jsx(Measure, { client: true, onResize: setChartContainerRect, children: ({ measureRef }) => (_jsxs("div", { id: containerId, "data-testid": isExportMode ? "geo-chart-next-export-mode" : containerBaseId, className: containerClass, ref: measureRef, children: [
|
|
68
53
|
_jsx("div", { ref: mapContainerRef, className: "gd-geo-chart-next__map", children: _jsx(IntlTranslationsProvider, { children: (translationProps) => (_jsx(GeoChartLegendOverlay, { config: props.config, chartContainerRect: chartContainerRect, layers: layers, layerExecutions: layerExecutions, primaryLayer: primaryLayer, numericSymbols: translationProps.numericSymbols, formatMessage: legendMessageFormatter, setLegendPanelElementRef: (element) => {
|
|
69
54
|
legendPanelRef.current = element;
|
|
70
|
-
} })) }) }), isGeoChartA11yImprovementsEnabled && mapInstructionsId ? (_jsx("p", { id: mapInstructionsId, className: "sr-only", children: instructionMessage })) : null, _jsx(MapController, { mapContainerRef: mapContainerRef, chartContainerRect: chartContainerRect, initialViewport: initialViewport, dataViewport: dataViewport, layerExecutions: layerExecutions, drillablePredicates: drillablePredicates, onCenterPositionChanged: props.onCenterPositionChanged, onZoomChanged: props.onZoomChanged, onDrill: props.onDrill, afterRender: props.afterRender, config: props.config, backend: props.backend, mapInstructionsId: mapInstructionsId, mapCanvasTitle: mapCanvasTitle, legendPanelRef: legendPanelRef }), _jsx(PushDataSync, { availableLegends: availableLegends, geoLayerType: props.type })
|
|
55
|
+
} })) }) }), isGeoChartA11yImprovementsEnabled && mapInstructionsId ? (_jsx("p", { id: mapInstructionsId, className: "sr-only", children: instructionMessage })) : null, _jsx(MapController, { mapContainerRef: mapContainerRef, chartContainerRect: chartContainerRect, initialViewport: initialViewport, dataViewport: dataViewport, layerExecutions: layerExecutions, drillablePredicates: drillablePredicates, onCenterPositionChanged: props.onCenterPositionChanged, onZoomChanged: props.onZoomChanged, onDrill: props.onDrill, afterRender: props.afterRender, config: props.config, backend: props.backend, mapInstructionsId: mapInstructionsId, mapCanvasTitle: mapCanvasTitle, legendPanelRef: legendPanelRef, onMapError: onMapError }), _jsx(PushDataSync, { availableLegends: availableLegends, geoLayerType: props.type })
|
|
71
56
|
] })) }));
|
|
72
57
|
}
|
|
73
58
|
//# sourceMappingURL=RenderGeoChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderGeoChart.js","sourceRoot":"","sources":["../../../src/next/components/RenderGeoChart.tsx"],"names":[],"mappings":";AAAA,qCAAqC;AAErC,OAAO,EAAqB,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAElF,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,YAA+D,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAE1B,OAAO,
|
|
1
|
+
{"version":3,"file":"RenderGeoChart.js","sourceRoot":"","sources":["../../../src/next/components/RenderGeoChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -29,8 +29,8 @@ export interface ILayerToggleSwitchProps {
|
|
|
29
29
|
* Toggle switch component for layer visibility control.
|
|
30
30
|
*
|
|
31
31
|
* @remarks
|
|
32
|
-
*
|
|
33
|
-
*
|
|
32
|
+
* Reuses the shared checkbox toggle styling used across the repository
|
|
33
|
+
* while keeping geo-specific test ids and accessibility labels.
|
|
34
34
|
*
|
|
35
35
|
* @internal
|
|
36
36
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayerToggleSwitch.d.ts","sourceRoot":"","sources":["../../../../src/next/components/multiLayerLegend/LayerToggleSwitch.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LayerToggleSwitch.d.ts","sourceRoot":"","sources":["../../../../src/next/components/multiLayerLegend/LayerToggleSwitch.tsx"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACpC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAErC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,+DAuB5B,CAAC"}
|
|
@@ -1,28 +1,18 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2025-2026 GoodData Corporation
|
|
3
3
|
import { memo } from "react";
|
|
4
|
-
import cx from "classnames";
|
|
5
4
|
/**
|
|
6
5
|
* Toggle switch component for layer visibility control.
|
|
7
6
|
*
|
|
8
7
|
* @remarks
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* Reuses the shared checkbox toggle styling used across the repository
|
|
9
|
+
* while keeping geo-specific test ids and accessibility labels.
|
|
11
10
|
*
|
|
12
11
|
* @internal
|
|
13
12
|
*/
|
|
14
13
|
export const LayerToggleSwitch = memo(function LayerToggleSwitch({ id, checked, onChange, ariaLabel, disabled = false, }) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
onChange(!checked);
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
const toggleClassName = cx("gd-geo-legend-toggle", {
|
|
21
|
-
"gd-geo-legend-toggle--checked": checked,
|
|
22
|
-
"gd-geo-legend-toggle--disabled": disabled,
|
|
23
|
-
});
|
|
24
|
-
return (_jsxs("button", { type: "button", id: id, className: toggleClassName, role: "switch", "aria-checked": checked, "aria-label": ariaLabel, disabled: disabled, onClick: handleChange, "data-testid": `gd-geo-legend-toggle-${id}`, children: [
|
|
25
|
-
_jsx("span", { className: "gd-geo-legend-toggle__track" }), _jsx("span", { className: "gd-geo-legend-toggle__thumb" })
|
|
14
|
+
return (_jsxs("label", { className: "input-checkbox-toggle gd-geo-multi-layer-legend__toggle-switch", children: [
|
|
15
|
+
_jsx("input", { id: id, type: "checkbox", role: "switch", "aria-checked": checked, "aria-label": ariaLabel, checked: checked, disabled: disabled, onChange: () => onChange(!checked), "data-testid": `gd-geo-legend-toggle-${id}` }), _jsx("span", { className: "input-label-text" })
|
|
26
16
|
] }));
|
|
27
17
|
});
|
|
28
18
|
//# sourceMappingURL=LayerToggleSwitch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayerToggleSwitch.js","sourceRoot":"","sources":["../../../../src/next/components/multiLayerLegend/LayerToggleSwitch.tsx"],"names":[],"mappings":";AAAA,qCAAqC;AAErC,OAAO,EAAqB,IAAI,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"LayerToggleSwitch.js","sourceRoot":"","sources":["../../../../src/next/components/multiLayerLegend/LayerToggleSwitch.tsx"],"names":[],"mappings":";AAAA,qCAAqC;AAErC,OAAO,EAAqB,IAAI,EAAE,MAAM,OAAO,CAAC;AAkChD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,iBAAiB,CAAC,EAC7D,EAAE,EACF,OAAO,EACP,QAAQ,EACR,SAAS,EACT,QAAQ,GAAG,KAAK,GACM,EAAgB;IACtC,OAAO,CACH,iBAAO,SAAS,EAAC,gEAAgE;YAC7E,gBACI,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,UAAU,EACf,IAAI,EAAC,QAAQ,kBACC,OAAO,gBACT,SAAS,EACrB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,iBACrB,wBAAwB,EAAE,EAAE,GAC3C,EACF,eAAM,SAAS,EAAC,kBAAkB,GAAG;YACjC,CACX,CAAC;AAAA,CACL,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { PositionType } from "@gooddata/sdk-ui-vis-commons";
|
|
2
1
|
import { type LegendMessageFormatter } from "./legendMessages.js";
|
|
2
|
+
import { type GeoLegendPosition } from "../../types/config/legend.js";
|
|
3
3
|
import { type ILegendModel } from "../../types/legend/model.js";
|
|
4
4
|
/**
|
|
5
5
|
* Props for MultiLayerLegendPanel component.
|
|
@@ -19,7 +19,7 @@ export interface IMultiLayerLegendPanelProps {
|
|
|
19
19
|
/**
|
|
20
20
|
* Legend position relative to the chart.
|
|
21
21
|
*/
|
|
22
|
-
position?:
|
|
22
|
+
position?: GeoLegendPosition;
|
|
23
23
|
/**
|
|
24
24
|
* Optional maximum height in pixels (for scrollable legend).
|
|
25
25
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiLayerLegendPanel.d.ts","sourceRoot":"","sources":["../../../../src/next/components/multiLayerLegend/MultiLayerLegendPanel.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"MultiLayerLegendPanel.d.ts","sourceRoot":"","sources":["../../../../src/next/components/multiLayerLegend/MultiLayerLegendPanel.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAgC,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACpG,OAAO,EACH,KAAK,YAAY,EAGpB,MAAM,6BAA6B,CAAC;AA8GrC;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IACxC;;OAEG;IACH,KAAK,EAAE,YAAY,CAAC;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAE7B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE3B;;;OAGG;IACH,uBAAuB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpD;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAErD;;OAEG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;IAEzC;;OAEG;IACH,aAAa,CAAC,EAAE,sBAAsB,CAAC;IAEvC;;OAEG;IACH,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;CACjE;AA2BD,eAAO,MAAM,qBAAqB,mEA+LhC,CAAC"}
|
|
@@ -115,7 +115,7 @@ function initializeExpandedState(model) {
|
|
|
115
115
|
* @internal
|
|
116
116
|
*/
|
|
117
117
|
const EMPTY_HIDDEN_LAYERS = new Set();
|
|
118
|
-
export const MultiLayerLegendPanel = memo(function MultiLayerLegendPanel({ model, enabled = true, position = "
|
|
118
|
+
export const MultiLayerLegendPanel = memo(function MultiLayerLegendPanel({ model, enabled = true, position = "auto", maxHeightPx, hiddenLayers = EMPTY_HIDDEN_LAYERS, onLayerVisibilityChange, onItemClick, enableGeoChartA11yImprovements = false, formatMessage, setPanelElementRef, }) {
|
|
119
119
|
const panelId = useId();
|
|
120
120
|
// Render legend sections in reverse order so the first defined layer appears on top.
|
|
121
121
|
// This is purely a presentation concern - underlying layer order stays unchanged.
|
|
@@ -206,16 +206,7 @@ export const MultiLayerLegendPanel = memo(function MultiLayerLegendPanel({ model
|
|
|
206
206
|
}
|
|
207
207
|
// For single-layer legends, hide the layer visibility toggle unless section requests it.
|
|
208
208
|
const isSingleLayer = sections.length === 1;
|
|
209
|
-
|
|
210
|
-
// Multi-layer legend overlays the map, so we default to top-right to not obscure the map
|
|
211
|
-
const positionToCorner = {
|
|
212
|
-
left: "top-left",
|
|
213
|
-
right: "top-right",
|
|
214
|
-
top: "top-right", // Default to top-right for overlay legend
|
|
215
|
-
bottom: "bottom-right",
|
|
216
|
-
auto: "top-right",
|
|
217
|
-
};
|
|
218
|
-
const corner = positionToCorner[position] ?? "top-right";
|
|
209
|
+
const corner = position === "auto" ? "top-right" : position;
|
|
219
210
|
const panelClassName = cx("gd-geo-multi-layer-legend", `gd-geo-multi-layer-legend--${corner}`);
|
|
220
211
|
const panelStyle = {
|
|
221
212
|
...(containerHeight && { height: containerHeight }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiLayerLegendPanel.js","sourceRoot":"","sources":["../../../../src/next/components/multiLayerLegend/MultiLayerLegendPanel.tsx"],"names":[],"mappings":";AAAA,qCAAqC;AAErC,OAAO,EAEH,IAAI,EACJ,WAAW,EACX,SAAS,EACT,KAAK,EACL,eAAe,EACf,OAAO,EACP,MAAM,EACN,QAAQ,GACX,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"MultiLayerLegendPanel.js","sourceRoot":"","sources":["../../../../src/next/components/multiLayerLegend/MultiLayerLegendPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type GoodDataSdkError } from "@gooddata/sdk-ui";
|
|
2
|
+
import type { ILayerExecutionRecord } from "../../types/props/geoChart/internal.js";
|
|
3
|
+
interface IRejectedLayerResult {
|
|
4
|
+
layerId: string | undefined;
|
|
5
|
+
error: GoodDataSdkError;
|
|
6
|
+
}
|
|
7
|
+
interface IProcessSettledLayerResultsParams<T> {
|
|
8
|
+
settledResults: PromiseSettledResult<T>[];
|
|
9
|
+
layerExecutions: ILayerExecutionRecord[];
|
|
10
|
+
onRejected?: (result: IRejectedLayerResult) => void;
|
|
11
|
+
}
|
|
12
|
+
export interface IProcessedSettledLayerResults<T> {
|
|
13
|
+
fulfilledValues: T[];
|
|
14
|
+
firstError?: GoodDataSdkError;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Collects fulfilled layer results and preserves the first converted error for partial-failure flows.
|
|
18
|
+
*
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
21
|
+
export declare function processSettledLayerResults<T>({ settledResults, layerExecutions, onRejected }: IProcessSettledLayerResultsParams<T>): IProcessedSettledLayerResults<T>;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=processSettledLayerResults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processSettledLayerResults.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/layers/processSettledLayerResults.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAgB,MAAM,kBAAkB,CAAC;AAEvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAEpF,UAAU,oBAAoB;IAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,EAAE,gBAAgB,CAAC;CAC3B;AAED,UAAU,iCAAiC,CAAC,CAAC;IACzC,cAAc,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,eAAe,EAAE,qBAAqB,EAAE,CAAC;IACzC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACvD;AAED,MAAM,WAAW,6BAA6B,CAAC,CAAC;IAC5C,eAAe,EAAE,CAAC,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,gBAAgB,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,EAC1C,cAAc,EACd,eAAe,EACf,UAAU,EACb,EAAE,iCAAiC,CAAC,CAAC,CAAC,GAAG,6BAA6B,CAAC,CAAC,CAAC,CAyBzE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// (C) 2025-2026 GoodData Corporation
|
|
2
|
+
import { convertError } from "@gooddata/sdk-ui";
|
|
3
|
+
/**
|
|
4
|
+
* Collects fulfilled layer results and preserves the first converted error for partial-failure flows.
|
|
5
|
+
*
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export function processSettledLayerResults({ settledResults, layerExecutions, onRejected, }) {
|
|
9
|
+
const fulfilledValues = [];
|
|
10
|
+
let firstError;
|
|
11
|
+
settledResults.forEach((result, index) => {
|
|
12
|
+
if (result.status === "fulfilled") {
|
|
13
|
+
fulfilledValues.push(result.value);
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const error = convertError(result.reason);
|
|
17
|
+
if (!firstError) {
|
|
18
|
+
firstError = error;
|
|
19
|
+
}
|
|
20
|
+
onRejected?.({
|
|
21
|
+
layerId: layerExecutions[index]?.layerId,
|
|
22
|
+
error,
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
return {
|
|
26
|
+
fulfilledValues,
|
|
27
|
+
firstError,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=processSettledLayerResults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processSettledLayerResults.js","sourceRoot":"","sources":["../../../../src/next/hooks/layers/processSettledLayerResults.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,OAAO,EAAyB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAoBvE;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAI,EAC1C,cAAc,EACd,eAAe,EACf,UAAU,GACyB,EAAoC;IACvE,MAAM,eAAe,GAAQ,EAAE,CAAC;IAChC,IAAI,UAAwC,CAAC;IAE7C,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnC,OAAO;QACX,CAAC;QAED,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,UAAU,GAAG,KAAK,CAAC;QACvB,CAAC;QAED,UAAU,EAAE,CAAC;YACT,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,OAAO;YACxC,KAAK;SACR,CAAC,CAAC;IAAA,CACN,CAAC,CAAC;IAEH,OAAO;QACH,eAAe;QACf,UAAU;KACb,CAAC;AAAA,CACL"}
|
|
@@ -9,15 +9,15 @@ import type { ILayerExecutionRecord } from "../../types/props/geoChart/internal.
|
|
|
9
9
|
export interface ILayersDataResult {
|
|
10
10
|
/**
|
|
11
11
|
* Map of layerId to DataViewFacade for each successfully loaded layer.
|
|
12
|
-
*
|
|
12
|
+
* Can contain partial results when some layers fail.
|
|
13
13
|
*/
|
|
14
14
|
layerDataViews: Map<string, DataViewFacade>;
|
|
15
15
|
/**
|
|
16
16
|
* Combined loading status for all layers.
|
|
17
17
|
* - "pending" if no executions provided
|
|
18
18
|
* - "loading" while any execution is in progress
|
|
19
|
-
* - "success" when
|
|
20
|
-
* - "error"
|
|
19
|
+
* - "success" when the primary layer completes successfully
|
|
20
|
+
* - "error" when the primary layer fails
|
|
21
21
|
*/
|
|
22
22
|
status: UseCancelablePromiseStatus;
|
|
23
23
|
/**
|
|
@@ -29,9 +29,9 @@ export interface ILayersDataResult {
|
|
|
29
29
|
* Hook that executes all layer executions in parallel and returns combined results.
|
|
30
30
|
*
|
|
31
31
|
* @remarks
|
|
32
|
-
* Uses Promise.
|
|
33
|
-
* - "success"
|
|
34
|
-
* - "error"
|
|
32
|
+
* Uses Promise.allSettled to execute all layers simultaneously. The status is:
|
|
33
|
+
* - "success" when the primary layer has loaded successfully
|
|
34
|
+
* - "error" when the primary layer fails (returns the primary-layer error)
|
|
35
35
|
* - "loading" while any layer is still loading
|
|
36
36
|
*
|
|
37
37
|
* @param layerExecutions - Array of layer execution records
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLayersData.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/layers/useLayersData.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAsB,MAAM,2BAA2B,CAAC;AACxF,OAAO,EACH,cAAc,EACd,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,
|
|
1
|
+
{"version":3,"file":"useLayersData.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/layers/useLayersData.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAsB,MAAM,2BAA2B,CAAC;AACxF,OAAO,EACH,cAAc,EACd,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,EAMlC,MAAM,kBAAkB,CAAC;AAK1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAGpF;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B;;;OAGG;IACH,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAE5C;;;;;;OAMG;IACH,MAAM,EAAE,0BAA0B,CAAC;IAEnC;;OAEG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAkGD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CACzB,eAAe,EAAE,qBAAqB,EAAE,EACxC,OAAO,CAAC,EAAE,kBAAkB,EAC5B,SAAS,CAAC,EAAE,MAAM,GACnB,iBAAiB,CAuDnB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// (C) 2025-2026 GoodData Corporation
|
|
2
2
|
import { useMemo } from "react";
|
|
3
|
-
import { DataViewFacade, convertError, useBackendStrict, useCancelablePromise, useWorkspaceStrict, } from "@gooddata/sdk-ui";
|
|
3
|
+
import { DataViewFacade, convertError, isNoDataSdkError, useBackendStrict, useCancelablePromise, useWorkspaceStrict, } from "@gooddata/sdk-ui";
|
|
4
|
+
import { processSettledLayerResults } from "./processSettledLayerResults.js";
|
|
4
5
|
import { getLayerAdapter } from "../../layers/registry/adapterRegistry.js";
|
|
5
6
|
import { createExecutionsFingerprint, createLayersStructureFingerprint } from "../../utils/fingerprint.js";
|
|
6
7
|
async function prepareExecution(layerExecution, backend, workspace) {
|
|
@@ -16,7 +17,11 @@ async function prepareExecution(layerExecution, backend, workspace) {
|
|
|
16
17
|
const preparedExecution = await adapter.prepareExecution(layerExecution.layer, context, layerExecution.execution);
|
|
17
18
|
return preparedExecution;
|
|
18
19
|
}
|
|
19
|
-
catch {
|
|
20
|
+
catch (error) {
|
|
21
|
+
console.error("[useLayersData] Failed to prepare layer execution, using fallback execution.", {
|
|
22
|
+
layerId: layerExecution.layerId,
|
|
23
|
+
error,
|
|
24
|
+
});
|
|
20
25
|
return layerExecution.execution;
|
|
21
26
|
}
|
|
22
27
|
}
|
|
@@ -45,15 +50,31 @@ async function executeLayerData(layerExecution, backend, workspace) {
|
|
|
45
50
|
* @internal
|
|
46
51
|
*/
|
|
47
52
|
async function executeAllLayers(layerExecutions, backend, workspace) {
|
|
48
|
-
|
|
53
|
+
const settledResults = await Promise.allSettled(layerExecutions.map((layerExecution) => executeLayerData(layerExecution, backend, workspace)));
|
|
54
|
+
const { fulfilledValues: dataViews, firstError } = processSettledLayerResults({
|
|
55
|
+
settledResults,
|
|
56
|
+
layerExecutions,
|
|
57
|
+
onRejected: ({ layerId, error }) => {
|
|
58
|
+
if (!isNoDataSdkError(error)) {
|
|
59
|
+
console.error("[useLayersData] Failed to load layer data.", {
|
|
60
|
+
layerId,
|
|
61
|
+
error,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
return {
|
|
67
|
+
dataViews,
|
|
68
|
+
firstError,
|
|
69
|
+
};
|
|
49
70
|
}
|
|
50
71
|
/**
|
|
51
72
|
* Hook that executes all layer executions in parallel and returns combined results.
|
|
52
73
|
*
|
|
53
74
|
* @remarks
|
|
54
|
-
* Uses Promise.
|
|
55
|
-
* - "success"
|
|
56
|
-
* - "error"
|
|
75
|
+
* Uses Promise.allSettled to execute all layers simultaneously. The status is:
|
|
76
|
+
* - "success" when the primary layer has loaded successfully
|
|
77
|
+
* - "error" when the primary layer fails (returns the primary-layer error)
|
|
57
78
|
* - "loading" while any layer is still loading
|
|
58
79
|
*
|
|
59
80
|
* @param layerExecutions - Array of layer execution records
|
|
@@ -72,7 +93,7 @@ export function useLayersData(layerExecutions, backend, workspace) {
|
|
|
72
93
|
// dataView's def().buckets() is what determines how data is interpreted (SIZE vs COLOR).
|
|
73
94
|
// When bucket structure changes, we need to re-execute to get a dataView with correct buckets.
|
|
74
95
|
const layersStructureFingerprint = useMemo(() => createLayersStructureFingerprint(layerExecutions), [layerExecutions]);
|
|
75
|
-
const { result, status, error } = useCancelablePromise({
|
|
96
|
+
const { result, status: promiseStatus, error: promiseError, } = useCancelablePromise({
|
|
76
97
|
promise: layerExecutions.length > 0
|
|
77
98
|
? () => executeAllLayers(layerExecutions, resolvedBackend, resolvedWorkspace)
|
|
78
99
|
: undefined,
|
|
@@ -80,12 +101,17 @@ export function useLayersData(layerExecutions, backend, workspace) {
|
|
|
80
101
|
const layerDataViews = useMemo(() => {
|
|
81
102
|
const map = new Map();
|
|
82
103
|
if (result) {
|
|
83
|
-
for (const entry of result) {
|
|
104
|
+
for (const entry of result.dataViews) {
|
|
84
105
|
map.set(entry.layerId, entry.dataView);
|
|
85
106
|
}
|
|
86
107
|
}
|
|
87
108
|
return map;
|
|
88
109
|
}, [result]);
|
|
110
|
+
const primaryLayerId = layerExecutions[0]?.layerId;
|
|
111
|
+
const hasPrimaryLayerLoaded = primaryLayerId ? layerDataViews.has(primaryLayerId) : false;
|
|
112
|
+
const hasLayersToLoad = layerExecutions.length > 0;
|
|
113
|
+
const status = promiseStatus === "success" && hasLayersToLoad && !hasPrimaryLayerLoaded ? "error" : promiseStatus;
|
|
114
|
+
const error = status === "error" && !hasPrimaryLayerLoaded ? (result?.firstError ?? promiseError) : promiseError;
|
|
89
115
|
return {
|
|
90
116
|
layerDataViews,
|
|
91
117
|
status,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLayersData.js","sourceRoot":"","sources":["../../../../src/next/hooks/layers/useLayersData.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,EACH,cAAc,EAGd,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAG3E,OAAO,EAAE,2BAA2B,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"useLayersData.js","sourceRoot":"","sources":["../../../../src/next/hooks/layers/useLayersData.ts"],"names":[],"mappings":"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"}
|