@gooddata/sdk-ui-geo 11.39.0-alpha.3 → 11.39.0-alpha.4

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.
@@ -62,3 +62,11 @@ export declare function getAttributeIdRefIdentifier(attribute: IAttribute | unde
62
62
  * @internal
63
63
  */
64
64
  export declare function getAttributeRefId(attribute: IAttribute | undefined): string | undefined;
65
+ /**
66
+ * Returns the idRef identifier of the first attribute in `bucketName`, or
67
+ * `undefined` when the bucket is missing, has no attribute, or its display form
68
+ * is a uriRef (uriRefs can't form a tooltip lookup key, so callers skip them).
69
+ *
70
+ * @internal
71
+ */
72
+ export declare function getBucketAttributeIdRefIdentifier(definition: IExecutionDefinition, bucketName: string): string | undefined;
@@ -1,5 +1,5 @@
1
1
  // (C) 2026 GoodData Corporation
2
- import { attributeDisplayFormRef, isAttribute, isIdentifierRef, isUriRef, } from "@gooddata/sdk-model";
2
+ import { attributeDisplayFormRef, bucketAttribute, isAttribute, isIdentifierRef, isUriRef, } from "@gooddata/sdk-model";
3
3
  import { parseTooltipPayload } from "./tooltipUtils.js";
4
4
  /**
5
5
  * Returned localIdentifiers follow `bucketNames` order — both the row dim and
@@ -80,3 +80,17 @@ export function getAttributeRefId(attribute) {
80
80
  }
81
81
  return undefined;
82
82
  }
83
+ /**
84
+ * Returns the idRef identifier of the first attribute in `bucketName`, or
85
+ * `undefined` when the bucket is missing, has no attribute, or its display form
86
+ * is a uriRef (uriRefs can't form a tooltip lookup key, so callers skip them).
87
+ *
88
+ * @internal
89
+ */
90
+ export function getBucketAttributeIdRefIdentifier(definition, bucketName) {
91
+ const bucket = definition.buckets.find((b) => b.localIdentifier === bucketName);
92
+ if (!bucket) {
93
+ return undefined;
94
+ }
95
+ return getAttributeIdRefIdentifier(bucketAttribute(bucket));
96
+ }
@@ -6,7 +6,7 @@ import { calculateViewport } from "../../map/viewport/viewportCalculation.js";
6
6
  import { getGeoHeaderStrings } from "../../utils/geoHeaders.js";
7
7
  import { getHeaderPredicateFingerprint } from "../../utils/predicateFingerprint.js";
8
8
  import { computeLegend } from "../common/computeLegend.js";
9
- import { getAttributeIdRefIdentifier, getAttributeLocalIdsFromBuckets, getAttributeRefId, readAttrIdentity, } from "../common/customTooltipExecution.js";
9
+ import { getAttributeIdRefIdentifier, getAttributeLocalIdsFromBuckets, getAttributeRefId, getBucketAttributeIdRefIdentifier, readAttrIdentity, } from "../common/customTooltipExecution.js";
10
10
  import { getGeoChartDimensions } from "../common/dimensions.js";
11
11
  import { canSetGeoJsonSourceData, trySetGeoJsonSourceData } from "../common/layerOps.js";
12
12
  import { buildTooltipReferenceMaps } from "../common/tooltipReferenceMaps.js";
@@ -185,12 +185,12 @@ function buildPushpinTooltipExecution(layer, context, mainDefinition) {
185
185
  if (!customTooltip?.enabled || !customTooltip.content) {
186
186
  return null;
187
187
  }
188
- // Pushpin keys features by tooltipText; without it the feature has no
189
- // stable display-form id to reconcile a tooltip row to.
190
- if (!layer.tooltipText) {
191
- return null;
192
- }
193
- const tooltipAttrId = getAttributeIdRefIdentifier(layer.tooltipText);
188
+ // Key off the prepared TOOLTIP_TEXT bucket, not `layer.tooltipText`: when the
189
+ // layer has no explicit tooltip text, `prepareExecution` still adds the bucket
190
+ // from the location attribute and the feature's `locationName.attrId` is stamped
191
+ // from it, so hover key and lookup key match. Gating on `layer.tooltipText` would
192
+ // drop the execution for location-only charts.
193
+ const tooltipAttrId = getBucketAttributeIdRefIdentifier(mainDefinition, BucketNames.TOOLTIP_TEXT);
194
194
  if (!tooltipAttrId) {
195
195
  return null;
196
196
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-geo",
3
- "version": "11.39.0-alpha.3",
3
+ "version": "11.39.0-alpha.4",
4
4
  "description": "GoodData.UI SDK - Geo Charts",
5
5
  "license": "MIT",
6
6
  "author": "GoodData Corporation",
@@ -43,12 +43,12 @@
43
43
  "ts-invariant": "0.10.3",
44
44
  "tslib": "2.8.1",
45
45
  "uuid": "11.1.0",
46
- "@gooddata/sdk-backend-spi": "11.39.0-alpha.3",
47
- "@gooddata/sdk-model": "11.39.0-alpha.3",
48
- "@gooddata/sdk-ui": "11.39.0-alpha.3",
49
- "@gooddata/sdk-ui-kit": "11.39.0-alpha.3",
50
- "@gooddata/sdk-ui-theme-provider": "11.39.0-alpha.3",
51
- "@gooddata/sdk-ui-vis-commons": "11.39.0-alpha.3"
46
+ "@gooddata/sdk-backend-spi": "11.39.0-alpha.4",
47
+ "@gooddata/sdk-model": "11.39.0-alpha.4",
48
+ "@gooddata/sdk-ui": "11.39.0-alpha.4",
49
+ "@gooddata/sdk-ui-theme-provider": "11.39.0-alpha.4",
50
+ "@gooddata/sdk-ui-kit": "11.39.0-alpha.4",
51
+ "@gooddata/sdk-ui-vis-commons": "11.39.0-alpha.4"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@microsoft/api-documenter": "^7.17.0",
@@ -91,10 +91,10 @@
91
91
  "typescript": "5.9.3",
92
92
  "vitest": "4.1.0",
93
93
  "vitest-dom": "0.1.1",
94
- "@gooddata/eslint-config": "11.39.0-alpha.3",
95
- "@gooddata/sdk-backend-mockingbird": "11.39.0-alpha.3",
96
- "@gooddata/oxlint-config": "11.39.0-alpha.3",
97
- "@gooddata/stylelint-config": "11.39.0-alpha.3"
94
+ "@gooddata/eslint-config": "11.39.0-alpha.4",
95
+ "@gooddata/oxlint-config": "11.39.0-alpha.4",
96
+ "@gooddata/sdk-backend-mockingbird": "11.39.0-alpha.4",
97
+ "@gooddata/stylelint-config": "11.39.0-alpha.4"
98
98
  },
99
99
  "peerDependencies": {
100
100
  "react": "^18.0.0 || ^19.0.0",