@gooddata/sdk-ui-geo 11.58.0-alpha.2 → 11.58.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/next/layers/area/adapter.d.ts.map +1 -1
- package/esm/next/layers/area/adapter.js +9 -7
- package/esm/next/layers/area/data/transformation.d.ts.map +1 -1
- package/esm/next/layers/area/data/transformation.js +4 -0
- package/esm/next/layers/area/source.d.ts.map +1 -1
- package/esm/next/layers/area/source.js +5 -1
- package/esm/next/layers/area/tooltip/tooltipManagement.js +2 -2
- package/esm/next/layers/common/customTooltipExecution.d.ts +5 -0
- package/esm/next/layers/common/customTooltipExecution.d.ts.map +1 -1
- package/esm/next/layers/common/customTooltipExecution.js +5 -1
- package/esm/next/layers/common/resolveReferencesFromGeoFeature.d.ts.map +1 -1
- package/esm/next/layers/common/resolveReferencesFromGeoFeature.js +12 -14
- package/esm/next/layers/common/tooltipReferenceMaps.d.ts +5 -8
- package/esm/next/layers/common/tooltipReferenceMaps.d.ts.map +1 -1
- package/esm/next/layers/common/tooltipReferenceMaps.js +13 -17
- package/esm/next/layers/common/tooltipUtils.d.ts +28 -1
- package/esm/next/layers/common/tooltipUtils.d.ts.map +1 -1
- package/esm/next/layers/common/tooltipUtils.js +22 -4
- package/esm/next/layers/pushpin/adapter.d.ts.map +1 -1
- package/esm/next/layers/pushpin/adapter.js +11 -4
- package/esm/next/layers/pushpin/data/transformation.d.ts.map +1 -1
- package/esm/next/layers/pushpin/data/transformation.js +4 -0
- package/esm/next/layers/pushpin/source.d.ts.map +1 -1
- package/esm/next/layers/pushpin/source.js +5 -1
- package/esm/next/layers/pushpin/tooltip/tooltipManagement.d.ts.map +1 -1
- package/esm/next/layers/pushpin/tooltip/tooltipManagement.js +2 -6
- package/esm/next/layers/registry/adapterTypes.d.ts +19 -11
- package/esm/next/layers/registry/adapterTypes.d.ts.map +1 -1
- package/esm/next/types/geoData/area.d.ts +6 -0
- package/esm/next/types/geoData/area.d.ts.map +1 -1
- package/esm/next/types/geoData/common.d.ts +6 -0
- package/esm/next/types/geoData/common.d.ts.map +1 -1
- package/package.json +11 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/next/layers/area/adapter.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAkBjE,OAAO,EACH,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EACxB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/next/layers/area/adapter.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAkBjE,OAAO,EACH,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EACxB,MAAM,6BAA6B,CAAC;AAqIrC,eAAO,MAAM,WAAW,EAAE,gBAAgB,CAAC,aAAa,EAAE,gBAAgB,CAiMzE,CAAC"}
|
|
@@ -82,12 +82,10 @@ function buildAreaTooltipExecution(layer, context, mainDefinition) {
|
|
|
82
82
|
if (!customTooltip?.enabled || !customTooltip.content) {
|
|
83
83
|
return null;
|
|
84
84
|
}
|
|
85
|
-
// idRef-only:
|
|
86
|
-
//
|
|
87
|
-
//
|
|
88
|
-
|
|
89
|
-
const areaAttrId = getAttributeIdRefIdentifier(layer.area);
|
|
90
|
-
if (!areaAttrId) {
|
|
85
|
+
// idRef-only: the tooltip-execution backend path cannot resolve a uriRef-backed
|
|
86
|
+
// display form, so skip the whole tooltip execution rather than fetch values
|
|
87
|
+
// that won't resolve at hover time.
|
|
88
|
+
if (!getAttributeIdRefIdentifier(layer.area)) {
|
|
91
89
|
return null;
|
|
92
90
|
}
|
|
93
91
|
// Slice by AREA only — features are deduplicated by areaUri, so a tooltip
|
|
@@ -103,6 +101,10 @@ function buildAreaTooltipExecution(layer, context, mainDefinition) {
|
|
|
103
101
|
if (!built) {
|
|
104
102
|
return null;
|
|
105
103
|
}
|
|
104
|
+
// The key is built from the execution-local identifier, not the LDM id, because an LDM id
|
|
105
|
+
// is unique only within an object type — see `buildKeySegment`. It is the same localId the
|
|
106
|
+
// tooltip execution was sliced by, so the lookup side agrees.
|
|
107
|
+
const areaAttrLocalId = slicingAttributeLocalIds[0];
|
|
106
108
|
const buildFeatureKey = (properties) => {
|
|
107
109
|
if (!properties) {
|
|
108
110
|
return null;
|
|
@@ -111,7 +113,7 @@ function buildAreaTooltipExecution(layer, context, mainDefinition) {
|
|
|
111
113
|
if (!areaUri) {
|
|
112
114
|
return null;
|
|
113
115
|
}
|
|
114
|
-
return buildKeySegment(
|
|
116
|
+
return buildKeySegment(areaAttrLocalId, areaUri);
|
|
115
117
|
};
|
|
116
118
|
return { execution: built, buildFeatureKey };
|
|
117
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformation.d.ts","sourceRoot":"","sources":["../../../../../src/next/layers/area/data/transformation.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,oBAAoB,EAGzB,KAAK,aAAa,EAKrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGpE,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAC/F,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"transformation.d.ts","sourceRoot":"","sources":["../../../../../src/next/layers/area/data/transformation.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,oBAAoB,EAGzB,KAAK,aAAa,EAKrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGpE,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAC/F,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,gCAAgC,CAAC;AAqRtF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC7B,EAAE,EAAE,cAAc,EAClB,iBAAiB,EAAE,MAAM,EACzB,gBAAgB,EAAE,MAAM,GACzB,YAAY,CAmCd;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACnC,aAAa,EAAE,cAAc,EAAE,EAC/B,OAAO,EAAE,YAAY,GACtB,iBAAiB,CAWnB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IACvE,KAAK,EAAE,aAAa,EAAE,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC,aAAa,EAAE,kBAAkB,CAAC;IAClC,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACnD,oBAAoB,EAAE,kBAAkB,GAAG,SAAS,CAAC;CACxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CACzC,EAAE,EAAE,cAAc,EAClB,OAAO,EAAE,YAAY,GACtB,0BAA0B,CAkC5B"}
|
|
@@ -78,6 +78,7 @@ function getAttributeBucketInfo(buckets, attributeDescriptors, bucketName) {
|
|
|
78
78
|
name: attributeDescriptors[index].attributeHeader.formOf.name,
|
|
79
79
|
displayFormId: attributeDescriptors[index].attributeHeader.identifier ??
|
|
80
80
|
attributeDescriptors[index].attributeHeader.uri,
|
|
81
|
+
localIdentifier: attributeDescriptors[index].attributeHeader.localIdentifier,
|
|
81
82
|
};
|
|
82
83
|
}
|
|
83
84
|
function getMeasureBucketInfo(buckets, measureDescriptors, bucketName) {
|
|
@@ -114,6 +115,7 @@ function processAreaBucket(ctx) {
|
|
|
114
115
|
index: areaBucket.index,
|
|
115
116
|
name: areaBucket.name,
|
|
116
117
|
displayFormId: areaBucket.displayFormId,
|
|
118
|
+
localIdentifier: areaBucket.localIdentifier,
|
|
117
119
|
data,
|
|
118
120
|
uris,
|
|
119
121
|
};
|
|
@@ -133,6 +135,7 @@ function processSegmentBucket(ctx) {
|
|
|
133
135
|
index: segmentBucket.index,
|
|
134
136
|
name: segmentBucket.name,
|
|
135
137
|
displayFormId: segmentBucket.displayFormId,
|
|
138
|
+
localIdentifier: segmentBucket.localIdentifier,
|
|
136
139
|
data,
|
|
137
140
|
uris,
|
|
138
141
|
};
|
|
@@ -152,6 +155,7 @@ function processTooltipTextBucket(ctx) {
|
|
|
152
155
|
index: tooltipTextBucket.index,
|
|
153
156
|
name: tooltipTextBucket.name,
|
|
154
157
|
displayFormId: tooltipTextBucket.displayFormId,
|
|
158
|
+
localIdentifier: tooltipTextBucket.localIdentifier,
|
|
155
159
|
data,
|
|
156
160
|
uris,
|
|
157
161
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../../src/next/layers/area/source.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAgB,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAGzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAMxF;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,aAAa,EAAE,cAAc,CAAC;IAC9B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,YAAY,CAAC;IACtB;;OAEG;IACH,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE;QACb,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACL;AAED,KAAK,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC3F,MAAM,MAAM,uBAAuB,GAAG,sBAAsB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../../src/next/layers/area/source.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAgB,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAGzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAMxF;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,aAAa,EAAE,cAAc,CAAC;IAC9B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,YAAY,CAAC;IACtB;;OAEG;IACH,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE;QACb,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACL;AAED,KAAK,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC3F,MAAM,MAAM,uBAAuB,GAAG,sBAAsB,EAAE,CAAC;AAwN/D;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACjC,MAAM,EAAE,0BAA0B,EAClC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,0BAA0B,CA6B5B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oCAAoC,CAChD,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,kBAAkB,GAC5B,0BAA0B,CA0B5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACtC,MAAM,EAAE,0BAA0B,EAClC,cAAc,EAAE,8BAA8B,EAAE,EAAE,GAAG,SAAS,GAC/D,0BAA0B,CAiB5B;AAkGD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,oBAAoB,GAAG,0BAA0B,CAUtG"}
|
|
@@ -44,7 +44,7 @@ function createPlaceholderGeometry() {
|
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
46
|
function buildAreaProperties(args) {
|
|
47
|
-
const { index, areaIdentifier, areaUri, areaNameTitle, tooltipValue, tooltipUri, tooltipTitle, tooltipAttrId, colorTitle, colorValue, colorFormat, colorLocalId, areaColorFill, segmentTitle, segmentValue, segmentAttrId, segmentUris, } = args;
|
|
47
|
+
const { index, areaIdentifier, areaUri, areaNameTitle, tooltipValue, tooltipUri, tooltipTitle, tooltipAttrId, tooltipAttrLocalId, colorTitle, colorValue, colorFormat, colorLocalId, areaColorFill, segmentTitle, segmentValue, segmentAttrId, segmentAttrLocalId, segmentUris, } = args;
|
|
48
48
|
const properties = {
|
|
49
49
|
areaId: areaIdentifier,
|
|
50
50
|
areaUri,
|
|
@@ -53,6 +53,7 @@ function buildAreaProperties(args) {
|
|
|
53
53
|
title: tooltipTitle ?? areaNameTitle,
|
|
54
54
|
value: tooltipValue ?? areaIdentifier,
|
|
55
55
|
attrId: tooltipAttrId,
|
|
56
|
+
attrLocalId: tooltipAttrLocalId,
|
|
56
57
|
uri: tooltipUri ?? areaUri,
|
|
57
58
|
},
|
|
58
59
|
locationIndex: index,
|
|
@@ -74,6 +75,7 @@ function buildAreaProperties(args) {
|
|
|
74
75
|
uri: segmentUris?.[0],
|
|
75
76
|
uris: segmentUris,
|
|
76
77
|
attrId: segmentAttrId,
|
|
78
|
+
attrLocalId: segmentAttrLocalId,
|
|
77
79
|
};
|
|
78
80
|
}
|
|
79
81
|
return properties;
|
|
@@ -263,6 +265,7 @@ function createAreaFeatures({ geoData, colorStrategy, features, tooltipAttrIds,
|
|
|
263
265
|
tooltipUri: areaData.tooltipUri,
|
|
264
266
|
tooltipTitle: tooltipTextTitle,
|
|
265
267
|
tooltipAttrId: tooltipText?.displayFormId ?? area.displayFormId ?? tooltipAttrIds?.locationName,
|
|
268
|
+
tooltipAttrLocalId: tooltipText?.localIdentifier ?? area.localIdentifier,
|
|
266
269
|
colorTitle,
|
|
267
270
|
colorValue: areaData.colorValue,
|
|
268
271
|
colorFormat,
|
|
@@ -271,6 +274,7 @@ function createAreaFeatures({ geoData, colorStrategy, features, tooltipAttrIds,
|
|
|
271
274
|
segmentTitle: areaData.segmentTitle,
|
|
272
275
|
segmentValue: areaData.segmentValue,
|
|
273
276
|
segmentAttrId: segment?.displayFormId ?? tooltipAttrIds?.segment,
|
|
277
|
+
segmentAttrLocalId: segment?.localIdentifier,
|
|
274
278
|
segmentUris: areaData.segmentUris,
|
|
275
279
|
});
|
|
276
280
|
const mergedProperties = toMaplibreProperties(baseFeature?.properties, properties);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { buildTooltipLocalizedStrings } from "@gooddata/sdk-ui-vis-commons";
|
|
3
3
|
import { buildCustomTooltipPieces, composeTooltipBody } from "../../common/customTooltipSection.js";
|
|
4
4
|
import { presentTooltip } from "../../common/tooltipPlacement.js";
|
|
5
|
-
import {
|
|
5
|
+
import { dedupeAttributePayloads, formatAttributeHtml, formatMeasureHtml, getTooltipProperties, parseTooltipPayload, } from "../../common/tooltipUtils.js";
|
|
6
6
|
function escapeHtml(str) {
|
|
7
7
|
return str
|
|
8
8
|
.replace(/&/g, "&")
|
|
@@ -16,7 +16,7 @@ const tooltipFormatConfig = {
|
|
|
16
16
|
escape: escapeHtml,
|
|
17
17
|
};
|
|
18
18
|
function buildAreaTooltipHtml(rawProperties, locationName, color, segment, strokeColor, separators, customConfig, referenceMaps, intl, tooltipLookup) {
|
|
19
|
-
const attributeItems =
|
|
19
|
+
const attributeItems = dedupeAttributePayloads([locationName, segment], referenceMaps)
|
|
20
20
|
.map((payload) => formatAttributeHtml(payload, tooltipFormatConfig))
|
|
21
21
|
.filter((item) => item !== null);
|
|
22
22
|
const measureItem = formatMeasureHtml(color, separators, tooltipFormatConfig);
|
|
@@ -38,6 +38,10 @@ export declare function getAttributeLocalIdsFromBuckets(definition: IExecutionDe
|
|
|
38
38
|
* to its identifying fields. `attrId === undefined` signals "no stable key for
|
|
39
39
|
* this feature" — callers compare against the expected layer attribute id.
|
|
40
40
|
*
|
|
41
|
+
* `attrLocalId` is the execution-local identifier, which is what the tooltip lookup key is
|
|
42
|
+
* built from: an LDM id is unique only within an object type, so a label and a computed
|
|
43
|
+
* attribute can share one (see `buildKeySegment`).
|
|
44
|
+
*
|
|
41
45
|
* Reuses `parseTooltipPayload` so the JSON-string-or-object handling stays in
|
|
42
46
|
* one place (MapLibre stringifies complex GeoJSON property values when they
|
|
43
47
|
* round-trip through `queryRenderedFeatures`).
|
|
@@ -46,6 +50,7 @@ export declare function getAttributeLocalIdsFromBuckets(definition: IExecutionDe
|
|
|
46
50
|
*/
|
|
47
51
|
export declare function readAttrIdentity(payload: JsonValue | undefined): {
|
|
48
52
|
attrId?: string;
|
|
53
|
+
attrLocalId?: string;
|
|
49
54
|
uri: string;
|
|
50
55
|
};
|
|
51
56
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customTooltipExecution.d.ts","sourceRoot":"","sources":["../../../../src/next/layers/common/customTooltipExecution.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,UAAU,EACf,KAAK,oBAAoB,EAM5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAErG,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIvD;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,iBAAiB,KAAK,MAAM,GAAG,IAAI,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC5C,SAAS,EAAE,iBAAiB,CAAC;IAC7B,eAAe,EAAE,eAAe,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAC9C,eAAe,EAAE,eAAe,CAAC;CACpC;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC3C,UAAU,EAAE,oBAAoB,EAChC,WAAW,EAAE,SAAS,MAAM,EAAE,GAC/B,MAAM,EAAE,CAcV;AAED
|
|
1
|
+
{"version":3,"file":"customTooltipExecution.d.ts","sourceRoot":"","sources":["../../../../src/next/layers/common/customTooltipExecution.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,UAAU,EACf,KAAK,oBAAoB,EAM5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAErG,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIvD;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,iBAAiB,KAAK,MAAM,GAAG,IAAI,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC5C,SAAS,EAAE,iBAAiB,CAAC;IAC7B,eAAe,EAAE,eAAe,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAC9C,eAAe,EAAE,eAAe,CAAC;CACpC;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC3C,UAAU,EAAE,oBAAoB,EAChC,WAAW,EAAE,SAAS,MAAM,EAAE,GAC/B,MAAM,EAAE,CAcV;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACf,CAUA;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CASjG;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAYvF;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC7C,UAAU,EAAE,oBAAoB,EAChC,UAAU,EAAE,MAAM,GACnB,MAAM,GAAG,SAAS,CAMpB"}
|
|
@@ -27,6 +27,10 @@ export function getAttributeLocalIdsFromBuckets(definition, bucketNames) {
|
|
|
27
27
|
* to its identifying fields. `attrId === undefined` signals "no stable key for
|
|
28
28
|
* this feature" — callers compare against the expected layer attribute id.
|
|
29
29
|
*
|
|
30
|
+
* `attrLocalId` is the execution-local identifier, which is what the tooltip lookup key is
|
|
31
|
+
* built from: an LDM id is unique only within an object type, so a label and a computed
|
|
32
|
+
* attribute can share one (see `buildKeySegment`).
|
|
33
|
+
*
|
|
30
34
|
* Reuses `parseTooltipPayload` so the JSON-string-or-object handling stays in
|
|
31
35
|
* one place (MapLibre stringifies complex GeoJSON property values when they
|
|
32
36
|
* round-trip through `queryRenderedFeatures`).
|
|
@@ -42,7 +46,7 @@ export function readAttrIdentity(payload) {
|
|
|
42
46
|
return { uri: "" };
|
|
43
47
|
}
|
|
44
48
|
const parsed = parseTooltipPayload(payload);
|
|
45
|
-
return { attrId: parsed?.attrId, uri: parsed?.uri ?? "" };
|
|
49
|
+
return { attrId: parsed?.attrId, attrLocalId: parsed?.attrLocalId, uri: parsed?.uri ?? "" };
|
|
46
50
|
}
|
|
47
51
|
/**
|
|
48
52
|
* URI refs return `undefined` — the tooltip-execution backend path can't
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveReferencesFromGeoFeature.d.ts","sourceRoot":"","sources":["../../../../src/next/layers/common/resolveReferencesFromGeoFeature.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EACH,KAAK,wBAAwB,
|
|
1
|
+
{"version":3,"file":"resolveReferencesFromGeoFeature.d.ts","sourceRoot":"","sources":["../../../../src/next/layers/common/resolveReferencesFromGeoFeature.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EACH,KAAK,wBAAwB,EAKhC,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAIzE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,+BAA+B,CAC3C,UAAU,EAAE,OAAO,CAAC,iBAAiB,EACrC,aAAa,EAAE,qBAAqB,GAAG,SAAS,EAChD,UAAU,EAAE,WAAW,GAAG,SAAS,GACpC,wBAAwB,CAsE1B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// (C) 2026 GoodData Corporation
|
|
2
|
-
import {
|
|
2
|
+
import { labelKey, labelReference, measureReference, metricKey, } from "@gooddata/sdk-ui-vis-commons";
|
|
3
3
|
import { getTooltipProperties, parseTooltipPayload } from "./tooltipUtils.js";
|
|
4
4
|
/**
|
|
5
5
|
* Builds the resolver lookup table for a hovered GeoJSON feature.
|
|
@@ -24,29 +24,27 @@ export function resolveReferencesFromGeoFeature(properties, referenceMaps, separ
|
|
|
24
24
|
}
|
|
25
25
|
const props = getTooltipProperties(properties);
|
|
26
26
|
const measureLdmByLocalId = referenceMaps?.measures ?? {};
|
|
27
|
-
const
|
|
28
|
-
const computedAttributeIds = new Set(referenceMaps?.computedAttributeIds ?? []);
|
|
27
|
+
const attributeKeysByLocalId = referenceMaps?.attributes ?? {};
|
|
29
28
|
const registerAttribute = (payload) => {
|
|
30
29
|
if (!payload?.attrId || payload.value === undefined) {
|
|
31
30
|
return;
|
|
32
31
|
}
|
|
33
32
|
const status = labelReference(String(payload.value));
|
|
34
|
-
//
|
|
35
|
-
//
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
// The reference keys come from the maps, looked up by the attribute's localIdentifier -
|
|
34
|
+
// exactly how a measure resolves its LDM id. They carry the object type, which the
|
|
35
|
+
// payload's `attrId` cannot: an LDM id is unique only within a type, so a label and a
|
|
36
|
+
// computed attribute may share one. A payload with no localIdentifier predates this and
|
|
37
|
+
// is treated as a label, which is what it would have resolved as before.
|
|
38
|
+
const keys = payload.attrLocalId ? attributeKeysByLocalId[payload.attrLocalId] : undefined;
|
|
39
|
+
const displayFormKey = keys?.displayFormKey ?? labelKey(payload.attrId);
|
|
38
40
|
if (values[displayFormKey] === undefined) {
|
|
39
41
|
values[displayFormKey] = status;
|
|
40
42
|
}
|
|
41
|
-
// When
|
|
43
|
+
// When the display form and the parent attribute ids coincide, `attributeKey`
|
|
42
44
|
// collapses onto `displayFormKey` and the second write is a no-op
|
|
43
45
|
// under first-wins — no self-equality check needed.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const attributeKey = buildKey(attributeId);
|
|
47
|
-
if (values[attributeKey] === undefined) {
|
|
48
|
-
values[attributeKey] = status;
|
|
49
|
-
}
|
|
46
|
+
if (keys && values[keys.attributeKey] === undefined) {
|
|
47
|
+
values[keys.attributeKey] = status;
|
|
50
48
|
}
|
|
51
49
|
};
|
|
52
50
|
const registerMeasure = (payload) => {
|
|
@@ -5,14 +5,11 @@ import { type ITooltipReferenceMaps } from "../registry/adapterTypes.js";
|
|
|
5
5
|
*
|
|
6
6
|
* - `measures`: `localIdentifier` → LDM measure id (skipping measures whose
|
|
7
7
|
* identifier ref can't be resolved, e.g. arithmetic measures).
|
|
8
|
-
* - `attributes`:
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* attribute id
|
|
12
|
-
* callers can do a single lookup without a self-equality check.
|
|
13
|
-
* - `computedAttributeIds`: which of those ids name a computed attribute, read from the
|
|
14
|
-
* descriptor ref the backend types honestly, so the resolver can publish them under their own
|
|
15
|
-
* key namespace instead of the label one.
|
|
8
|
+
* - `attributes`: attribute localIdentifier (surfaced on tooltip payloads as `attrLocalId`)
|
|
9
|
+
* → the typed reference keys for its display form and its parent attribute. The type comes
|
|
10
|
+
* from the descriptor's ref, which the backend types honestly, and is what separates a
|
|
11
|
+
* computed attribute from a label of the same id. Entries where both keys are equal are
|
|
12
|
+
* still emitted so callers can do a single lookup without a self-equality check.
|
|
16
13
|
*
|
|
17
14
|
* @internal
|
|
18
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltipReferenceMaps.d.ts","sourceRoot":"","sources":["../../../../src/next/layers/common/tooltipReferenceMaps.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,
|
|
1
|
+
{"version":3,"file":"tooltipReferenceMaps.d.ts","sourceRoot":"","sources":["../../../../src/next/layers/common/tooltipReferenceMaps.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAA8B,KAAK,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAErG;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,cAAc,GAAG,qBAAqB,CA4BzF"}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
// (C) 2026 GoodData Corporation
|
|
2
2
|
import { isComputedAttributeRef, measureLocalId } from "@gooddata/sdk-model";
|
|
3
|
-
import { resolveMeasureLdmIdentifier } from "@gooddata/sdk-ui-vis-commons";
|
|
3
|
+
import { computedAttributeKey, labelKey, resolveMeasureLdmIdentifier } from "@gooddata/sdk-ui-vis-commons";
|
|
4
4
|
/**
|
|
5
5
|
* Builds the per-layer reference maps the custom-tooltip resolver needs.
|
|
6
6
|
*
|
|
7
7
|
* - `measures`: `localIdentifier` → LDM measure id (skipping measures whose
|
|
8
8
|
* identifier ref can't be resolved, e.g. arithmetic measures).
|
|
9
|
-
* - `attributes`:
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* attribute id
|
|
13
|
-
* callers can do a single lookup without a self-equality check.
|
|
14
|
-
* - `computedAttributeIds`: which of those ids name a computed attribute, read from the
|
|
15
|
-
* descriptor ref the backend types honestly, so the resolver can publish them under their own
|
|
16
|
-
* key namespace instead of the label one.
|
|
9
|
+
* - `attributes`: attribute localIdentifier (surfaced on tooltip payloads as `attrLocalId`)
|
|
10
|
+
* → the typed reference keys for its display form and its parent attribute. The type comes
|
|
11
|
+
* from the descriptor's ref, which the backend types honestly, and is what separates a
|
|
12
|
+
* computed attribute from a label of the same id. Entries where both keys are equal are
|
|
13
|
+
* still emitted so callers can do a single lookup without a self-equality check.
|
|
17
14
|
*
|
|
18
15
|
* @internal
|
|
19
16
|
*/
|
|
@@ -27,20 +24,19 @@ export function buildTooltipReferenceMaps(dataView) {
|
|
|
27
24
|
}
|
|
28
25
|
}
|
|
29
26
|
const attributes = {};
|
|
30
|
-
const computedAttributeIds = [];
|
|
31
27
|
for (const descriptor of dataView.meta().attributeDescriptors()) {
|
|
32
28
|
const header = descriptor.attributeHeader;
|
|
33
29
|
// `identifier` is the display-form id (URI-typed display forms fall
|
|
34
30
|
// back to `uri` since `identifier` is undefined for them).
|
|
35
31
|
const displayFormId = header.identifier ?? header.uri;
|
|
36
32
|
const attributeId = header.formOf?.identifier;
|
|
37
|
-
if (displayFormId && attributeId) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
33
|
+
if (displayFormId && attributeId && header.localIdentifier) {
|
|
34
|
+
const buildKey = isComputedAttributeRef(header.ref) ? computedAttributeKey : labelKey;
|
|
35
|
+
attributes[header.localIdentifier] = {
|
|
36
|
+
displayFormKey: buildKey(displayFormId),
|
|
37
|
+
attributeKey: buildKey(attributeId),
|
|
38
|
+
};
|
|
43
39
|
}
|
|
44
40
|
}
|
|
45
|
-
return { measures, attributes
|
|
41
|
+
return { measures, attributes };
|
|
46
42
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type ISeparators } from "@gooddata/sdk-model";
|
|
2
2
|
import { type JsonValue } from "../../utils/guards.js";
|
|
3
|
+
import { type ITooltipReferenceMaps } from "../registry/adapterTypes.js";
|
|
3
4
|
export type TooltipPayload = {
|
|
4
5
|
title: string;
|
|
5
6
|
value?: string | number;
|
|
@@ -11,6 +12,20 @@ export type TooltipPayload = {
|
|
|
11
12
|
* execution path to build per-feature lookup keys.
|
|
12
13
|
*/
|
|
13
14
|
uri?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Bucket `localIdentifier` of the underlying attribute. By convention only set by
|
|
17
|
+
* attribute payload writers (locationName, segment, tooltipText) — the mirror of
|
|
18
|
+
* {@link TooltipPayload.localId} for measures, and used the same way: as the lookup key
|
|
19
|
+
* into `ITooltipReferenceMaps.attributes`, which yields the reference keys the value is
|
|
20
|
+
* published under.
|
|
21
|
+
*
|
|
22
|
+
* Separate from {@link TooltipPayload.attrId} because that one is the LDM identifier
|
|
23
|
+
* saying WHICH attribute a slot holds, and an LDM identifier is unique only within an
|
|
24
|
+
* object type: a label and a computed attribute may share one, so the identifier alone
|
|
25
|
+
* cannot say which of the two a value belongs to. A localIdentifier is unique within the
|
|
26
|
+
* execution.
|
|
27
|
+
*/
|
|
28
|
+
attrLocalId?: string;
|
|
14
29
|
fill?: string;
|
|
15
30
|
/**
|
|
16
31
|
* Bucket `localIdentifier` of the underlying measure. By convention only
|
|
@@ -24,7 +39,19 @@ export type TooltipPayload = {
|
|
|
24
39
|
export declare function getTooltipProperties(properties: GeoJSON.GeoJsonProperties | undefined): Record<string, JsonValue>;
|
|
25
40
|
export declare function parseTooltipPayload(item: JsonValue): TooltipPayload | undefined;
|
|
26
41
|
export declare function isTooltipPayloadValid(item: JsonValue): boolean;
|
|
27
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Drops the later of two attribute payloads that show the same display form, so a label used
|
|
44
|
+
* both as location/area and as segment-by appears once in the tooltip.
|
|
45
|
+
*
|
|
46
|
+
* The identity is the typed reference key of the display form, not the bare LDM identifier: an
|
|
47
|
+
* LDM identifier is unique only within an object type, so a label and a computed attribute may
|
|
48
|
+
* share one, and those are two different objects that both belong in the tooltip. The key comes
|
|
49
|
+
* from the reference maps, looked up by the payload's localIdentifier; a payload the maps cannot
|
|
50
|
+
* place is treated as a label, which is what it would have resolved as before.
|
|
51
|
+
*
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
export declare function dedupeAttributePayloads(payloads: Array<TooltipPayload | undefined>, referenceMaps: ITooltipReferenceMaps | undefined): Array<TooltipPayload | undefined>;
|
|
28
55
|
export type TooltipFormatConfig = {
|
|
29
56
|
emptyValue: string;
|
|
30
57
|
escape: (value: string) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltipUtils.d.ts","sourceRoot":"","sources":["../../../../src/next/layers/common/tooltipUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"tooltipUtils.d.ts","sourceRoot":"","sources":["../../../../src/next/layers/common/tooltipUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIvD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEzE,MAAM,MAAM,cAAc,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAMF,wBAAgB,oBAAoB,CAChC,UAAU,EAAE,OAAO,CAAC,iBAAiB,GAAG,SAAS,GAClD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAK3B;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,cAAc,GAAG,SAAS,CAsC/E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAE9D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACnC,QAAQ,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,CAAC,EAC3C,aAAa,EAAE,qBAAqB,GAAG,SAAS,GACjD,KAAK,CAAC,cAAc,GAAG,SAAS,CAAC,CAenC;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACrC,CAAC;AAEF,wBAAgB,oBAAoB,CAChC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GACvC,MAAM,CAOR;AAED,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,MAAM,EAAE,mBAAmB,GAC5B,MAAM,GAAG,IAAI,CAQf;AAED,wBAAgB,iBAAiB,CAC7B,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,UAAU,EAAE,WAAW,GAAG,SAAS,EACnC,MAAM,EAAE,mBAAmB,GAC5B,MAAM,GAAG,IAAI,CAYf"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// (C) 2025-2026 GoodData Corporation
|
|
2
|
+
import { labelKey } from "@gooddata/sdk-ui-vis-commons";
|
|
2
3
|
import { formatValueForTooltip } from "../../map/style/tooltipFormatting.js";
|
|
3
4
|
function isPayloadRecord(value) {
|
|
4
5
|
return value !== null && typeof value === "object";
|
|
@@ -31,6 +32,7 @@ export function parseTooltipPayload(item) {
|
|
|
31
32
|
const format = typeof parsed["format"] === "string" ? parsed["format"] : undefined;
|
|
32
33
|
const attrId = typeof parsed["attrId"] === "string" ? parsed["attrId"] : undefined;
|
|
33
34
|
const uri = typeof parsed["uri"] === "string" ? parsed["uri"] : undefined;
|
|
35
|
+
const attrLocalId = typeof parsed["attrLocalId"] === "string" ? parsed["attrLocalId"] : undefined;
|
|
34
36
|
const fill = typeof parsed["fill"] === "string" ? parsed["fill"] : undefined;
|
|
35
37
|
const localId = typeof parsed["localId"] === "string" ? parsed["localId"] : undefined;
|
|
36
38
|
return {
|
|
@@ -38,6 +40,7 @@ export function parseTooltipPayload(item) {
|
|
|
38
40
|
value,
|
|
39
41
|
format,
|
|
40
42
|
attrId,
|
|
43
|
+
attrLocalId,
|
|
41
44
|
uri,
|
|
42
45
|
fill,
|
|
43
46
|
localId,
|
|
@@ -46,16 +49,31 @@ export function parseTooltipPayload(item) {
|
|
|
46
49
|
export function isTooltipPayloadValid(item) {
|
|
47
50
|
return Boolean(parseTooltipPayload(item));
|
|
48
51
|
}
|
|
49
|
-
|
|
50
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Drops the later of two attribute payloads that show the same display form, so a label used
|
|
54
|
+
* both as location/area and as segment-by appears once in the tooltip.
|
|
55
|
+
*
|
|
56
|
+
* The identity is the typed reference key of the display form, not the bare LDM identifier: an
|
|
57
|
+
* LDM identifier is unique only within an object type, so a label and a computed attribute may
|
|
58
|
+
* share one, and those are two different objects that both belong in the tooltip. The key comes
|
|
59
|
+
* from the reference maps, looked up by the payload's localIdentifier; a payload the maps cannot
|
|
60
|
+
* place is treated as a label, which is what it would have resolved as before.
|
|
61
|
+
*
|
|
62
|
+
* @internal
|
|
63
|
+
*/
|
|
64
|
+
export function dedupeAttributePayloads(payloads, referenceMaps) {
|
|
65
|
+
const attributeKeysByLocalId = referenceMaps?.attributes ?? {};
|
|
66
|
+
const seen = new Set();
|
|
51
67
|
return payloads.map((payload) => {
|
|
52
68
|
if (!payload?.attrId) {
|
|
53
69
|
return payload;
|
|
54
70
|
}
|
|
55
|
-
|
|
71
|
+
const keys = payload.attrLocalId ? attributeKeysByLocalId[payload.attrLocalId] : undefined;
|
|
72
|
+
const identity = keys?.displayFormKey ?? labelKey(payload.attrId);
|
|
73
|
+
if (seen.has(identity)) {
|
|
56
74
|
return undefined;
|
|
57
75
|
}
|
|
58
|
-
|
|
76
|
+
seen.add(identity);
|
|
59
77
|
return payload;
|
|
60
78
|
});
|
|
61
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/next/layers/pushpin/adapter.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAqBpE,OAAO,KAAK,EAAsB,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAqB7G,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CAuEhG;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/next/layers/pushpin/adapter.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAqBpE,OAAO,KAAK,EAAsB,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAqB7G,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CAuEhG;AAmMD,eAAO,MAAM,cAAc,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,mBAAmB,CA0LlF,CAAC"}
|
|
@@ -212,18 +212,25 @@ function buildPushpinTooltipExecution(layer, context, mainDefinition) {
|
|
|
212
212
|
if (!built) {
|
|
213
213
|
return null;
|
|
214
214
|
}
|
|
215
|
+
// The key is built from execution-local identifiers, not LDM ids, because an LDM id is
|
|
216
|
+
// unique only within an object type — see `buildKeySegment`. The guards still compare the
|
|
217
|
+
// LDM id, which is what identifies WHICH attribute this feature slot holds.
|
|
218
|
+
const tooltipAttrLocalId = getAttributeLocalIdsFromBuckets(mainDefinition, [BucketNames.TOOLTIP_TEXT])[0];
|
|
219
|
+
const segmentAttrLocalId = segmentAttrId
|
|
220
|
+
? getAttributeLocalIdsFromBuckets(mainDefinition, [BucketNames.SEGMENT])[0]
|
|
221
|
+
: undefined;
|
|
215
222
|
const buildFeatureKey = (properties) => {
|
|
216
223
|
if (!properties) {
|
|
217
224
|
return null;
|
|
218
225
|
}
|
|
219
226
|
const locationName = readAttrIdentity(properties["locationName"]);
|
|
220
|
-
if (locationName.attrId !== tooltipAttrId) {
|
|
227
|
+
if (locationName.attrId !== tooltipAttrId || !tooltipAttrLocalId) {
|
|
221
228
|
return null;
|
|
222
229
|
}
|
|
223
|
-
const parts = [buildKeySegment(
|
|
230
|
+
const parts = [buildKeySegment(tooltipAttrLocalId, locationName.uri)];
|
|
224
231
|
if (segmentAttrId) {
|
|
225
232
|
const segment = readAttrIdentity(properties["segment"]);
|
|
226
|
-
if (segment.attrId !== segmentAttrId) {
|
|
233
|
+
if (segment.attrId !== segmentAttrId || !segmentAttrLocalId) {
|
|
227
234
|
return null;
|
|
228
235
|
}
|
|
229
236
|
// Pushpin payload writer substitutes EMPTY_SEGMENT_VALUE for null
|
|
@@ -231,7 +238,7 @@ function buildPushpinTooltipExecution(layer, context, mainDefinition) {
|
|
|
231
238
|
// execution result preserves the original null/empty URI, so
|
|
232
239
|
// normalize back here or the key never matches.
|
|
233
240
|
const segmentUri = segment.uri === EMPTY_SEGMENT_VALUE ? "" : segment.uri;
|
|
234
|
-
parts.push(buildKeySegment(
|
|
241
|
+
parts.push(buildKeySegment(segmentAttrLocalId, segmentUri));
|
|
235
242
|
}
|
|
236
243
|
return joinKeySegments(parts);
|
|
237
244
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformation.d.ts","sourceRoot":"","sources":["../../../../../src/next/layers/pushpin/data/transformation.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,oBAAoB,EAGzB,KAAK,aAAa,EAUrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIpE,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAM/F,OAAO,EAAE,KAAK,eAAe,EAA6B,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"transformation.d.ts","sourceRoot":"","sources":["../../../../../src/next/layers/pushpin/data/transformation.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,oBAAoB,EAGzB,KAAK,aAAa,EAUrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIpE,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAM/F,OAAO,EAAE,KAAK,eAAe,EAA6B,MAAM,mCAAmC,CAAC;AA0bpG;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAChC,EAAE,EAAE,cAAc,EAClB,iBAAiB,EAAE,MAAM,EACzB,gBAAgB,EAAE,MAAM,GACzB,eAAe,CAmDjB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CACtC,aAAa,EAAE,cAAc,EAAE,EAC/B,OAAO,EAAE,eAAe,GACzB,iBAAiB,CAenB;AAsCD;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,OAAO,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CA2B1G;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAC1E,KAAK,EAAE,aAAa,EAAE,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC1C,iBAAiB,EAAE,qBAAqB,CAAC;IACzC,kBAAkB,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACtD,oBAAoB,EAAE,qBAAqB,GAAG,SAAS,CAAC;CAC3D;AAED;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAC5C,EAAE,EAAE,cAAc,EAClB,OAAO,EAAE,eAAe,GACzB,6BAA6B,CAkC/B"}
|
|
@@ -125,6 +125,7 @@ function getBucketItemNameAndDataIndex(dv) {
|
|
|
125
125
|
name,
|
|
126
126
|
displayFormId: attributeDescriptors[index].attributeHeader.identifier ??
|
|
127
127
|
attributeDescriptors[index].attributeHeader.uri,
|
|
128
|
+
localIdentifier: attributeDescriptors[index].attributeHeader.localIdentifier,
|
|
128
129
|
};
|
|
129
130
|
}
|
|
130
131
|
});
|
|
@@ -191,6 +192,7 @@ function processSegmentBucket(ctx) {
|
|
|
191
192
|
index: segmentBucket.index,
|
|
192
193
|
name: segmentBucket.name,
|
|
193
194
|
displayFormId: segmentBucket.displayFormId,
|
|
195
|
+
localIdentifier: segmentBucket.localIdentifier,
|
|
194
196
|
data,
|
|
195
197
|
uris,
|
|
196
198
|
};
|
|
@@ -210,6 +212,7 @@ function processTooltipTextBucket(ctx) {
|
|
|
210
212
|
index: tooltipTextBucket.index,
|
|
211
213
|
name: tooltipTextBucket.name,
|
|
212
214
|
displayFormId: tooltipTextBucket.displayFormId,
|
|
215
|
+
localIdentifier: tooltipTextBucket.localIdentifier,
|
|
213
216
|
data,
|
|
214
217
|
uris,
|
|
215
218
|
};
|
|
@@ -229,6 +232,7 @@ function processGeoIconBucket(ctx) {
|
|
|
229
232
|
index: geoIconBucket.index,
|
|
230
233
|
name: geoIconBucket.name,
|
|
231
234
|
displayFormId: geoIconBucket.displayFormId,
|
|
235
|
+
localIdentifier: geoIconBucket.localIdentifier,
|
|
232
236
|
data,
|
|
233
237
|
};
|
|
234
238
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../../src/next/layers/pushpin/source.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAInE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAE1F,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAazE;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACpC,aAAa,EAAE,cAAc,CAAC;IAC9B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,OAAO,EAAE,eAAe,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE;QACb,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACL;AAED,KAAK,yBAAyB,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC3F,MAAM,MAAM,0BAA0B,GAAG,yBAAyB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../../src/next/layers/pushpin/source.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAInE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAE1F,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAazE;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACpC,aAAa,EAAE,cAAc,CAAC;IAC9B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,OAAO,EAAE,eAAe,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE;QACb,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACL;AAED,KAAK,yBAAyB,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC3F,MAAM,MAAM,0BAA0B,GAAG,yBAAyB,EAAE,CAAC;AAqPrE;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACnC,eAAe,EAAE,uBAAuB,GACzC,0BAA0B,CAoB5B"}
|
|
@@ -23,7 +23,7 @@ function buildFallbackLocationLabels(locations) {
|
|
|
23
23
|
* Builds GeoJSON properties for a single pushpin feature
|
|
24
24
|
*/
|
|
25
25
|
function buildPushpinFeatureProperties(ctx, index) {
|
|
26
|
-
const { locationNameTitle, locationNameUris, colorTitle, sizeTitle, segmentTitle, sizeFormat, colorFormat, sizeLocalId, colorLocalId, locationNameData, segmentData, segmentUris, sizeData, colorData, geoIconData, pushpinColors, geoPointsConfig, minSizeFromData, maxSizeFromData, hasSize, locationNameAttrId, segmentAttrId, } = ctx;
|
|
26
|
+
const { locationNameTitle, locationNameUris, colorTitle, sizeTitle, segmentTitle, sizeFormat, colorFormat, sizeLocalId, colorLocalId, locationNameData, segmentData, segmentUris, sizeData, colorData, geoIconData, pushpinColors, geoPointsConfig, minSizeFromData, maxSizeFromData, hasSize, locationNameAttrId, locationNameAttrLocalId, segmentAttrId, segmentAttrLocalId, } = ctx;
|
|
27
27
|
const canCalculateSize = hasSize && minSizeFromData !== undefined && maxSizeFromData !== undefined;
|
|
28
28
|
const pushpinSize = canCalculateSize
|
|
29
29
|
? calculateSizeInPixel(sizeData[index], minSizeFromData, maxSizeFromData, geoPointsConfig)
|
|
@@ -37,6 +37,7 @@ function buildPushpinFeatureProperties(ctx, index) {
|
|
|
37
37
|
title: locationNameTitle,
|
|
38
38
|
value: locationNameData[index],
|
|
39
39
|
attrId: locationNameAttrId,
|
|
40
|
+
attrLocalId: locationNameAttrLocalId,
|
|
40
41
|
uri: locationNameUris[index],
|
|
41
42
|
},
|
|
42
43
|
locationIndex: index,
|
|
@@ -58,6 +59,7 @@ function buildPushpinFeatureProperties(ctx, index) {
|
|
|
58
59
|
value: segmentData[index],
|
|
59
60
|
uri: segmentUris[index] ?? EMPTY_SEGMENT_VALUE,
|
|
60
61
|
attrId: segmentAttrId,
|
|
62
|
+
attrLocalId: segmentAttrLocalId,
|
|
61
63
|
},
|
|
62
64
|
};
|
|
63
65
|
if (ctx.measures.length > 0) {
|
|
@@ -120,7 +122,9 @@ function createPushpinFeatures({ config, geoData, colorStrategy, tooltipAttrIds,
|
|
|
120
122
|
maxSizeFromData,
|
|
121
123
|
hasSize: size !== undefined,
|
|
122
124
|
locationNameAttrId: tooltipText?.displayFormId ?? tooltipAttrIds?.locationName,
|
|
125
|
+
locationNameAttrLocalId: tooltipText?.localIdentifier,
|
|
123
126
|
segmentAttrId: segment?.displayFormId ?? tooltipAttrIds?.segment,
|
|
127
|
+
segmentAttrLocalId: segment?.localIdentifier,
|
|
124
128
|
};
|
|
125
129
|
return location.data.reduce((result, coordinates, index) => {
|
|
126
130
|
if (!coordinates || !Number.isFinite(coordinates.lat) || !Number.isFinite(coordinates.lng)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltipManagement.d.ts","sourceRoot":"","sources":["../../../../../src/next/layers/pushpin/tooltip/tooltipManagement.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,KAAK,oBAAoB,EAAgC,MAAM,8BAA8B,CAAC;AAGvG,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAQpF,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAErF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAY9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAS/F,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAuErC;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAe/F;AAQD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,CAC1B,aAAa,EAAE,OAAO,CAAC,iBAAiB,EACxC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,WAAW,GAAG,SAAS,EACnC,cAAc,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAC9C,IAAI,EAAE,SAAS,EACf,UAAU,GAAE,OAAc,EAC1B,YAAY,CAAC,EAAE,oBAAoB,EACnC,aAAa,CAAC,EAAE,qBAAqB,EACrC,aAAa,CAAC,EAAE,sBAAsB,GACvC,MAAM,
|
|
1
|
+
{"version":3,"file":"tooltipManagement.d.ts","sourceRoot":"","sources":["../../../../../src/next/layers/pushpin/tooltip/tooltipManagement.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,KAAK,oBAAoB,EAAgC,MAAM,8BAA8B,CAAC;AAGvG,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAQpF,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAErF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAY9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAS/F,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAuErC;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAe/F;AAQD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,CAC1B,aAAa,EAAE,OAAO,CAAC,iBAAiB,EACxC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,WAAW,GAAG,SAAS,EACnC,cAAc,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAC9C,IAAI,EAAE,SAAS,EACf,UAAU,GAAE,OAAc,EAC1B,YAAY,CAAC,EAAE,oBAAoB,EACnC,aAAa,CAAC,EAAE,qBAAqB,EACrC,aAAa,CAAC,EAAE,sBAAsB,GACvC,MAAM,CA4CR;AAcD;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACtC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,sBAAsB,EAC9B,cAAc,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAC9C,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,MAAM,EAAE,EAClB,aAAa,CAAC,EAAE,qBAAqB,EACrC,aAAa,CAAC,EAAE,sBAAsB,GACvC,iBAAiB,CAuEnB"}
|
|
@@ -5,7 +5,7 @@ import { getTooltipContentWidth } from "../../../map/style/tooltipFormatting.js"
|
|
|
5
5
|
import { isGeoJsonPoint, isLngLatTuple, isRecord, } from "../../../utils/guards.js";
|
|
6
6
|
import { buildCustomTooltipPieces, composeTooltipBody } from "../../common/customTooltipSection.js";
|
|
7
7
|
import { presentTooltip } from "../../common/tooltipPlacement.js";
|
|
8
|
-
import {
|
|
8
|
+
import { dedupeAttributePayloads, formatAttributeHtml, formatMeasureHtml, getTooltipProperties, isTooltipPayloadValid, parseTooltipPayload, } from "../../common/tooltipUtils.js";
|
|
9
9
|
import { DEFAULT_PUSHPIN_COLOR_VALUE, NULL_TOOLTIP_VALUE, PUSHPIN_STYLE_FEATURE_PROPERTIES, } from "../constants.js";
|
|
10
10
|
import { parsePushpinGeoProperties } from "../data/transformation.js";
|
|
11
11
|
const TOOLTIP_FULLSCREEN_THRESHOLD = 480;
|
|
@@ -111,11 +111,7 @@ export function getTooltipHtml(geoProperties, tooltipStroke, maxWidth, separator
|
|
|
111
111
|
const measuresPayloads = Array.isArray(rawMeasures) ? rawMeasures.map(parseTooltipPayload) : [];
|
|
112
112
|
const segmentPayload = parseTooltipPayload(properties["segment"]);
|
|
113
113
|
const tooltipTextPayload = parseTooltipPayload(properties["tooltipText"]);
|
|
114
|
-
const [locationAttribute, segmentAttribute, tooltipTextAttribute] =
|
|
115
|
-
locationPayload,
|
|
116
|
-
segmentPayload,
|
|
117
|
-
tooltipTextPayload,
|
|
118
|
-
]);
|
|
114
|
+
const [locationAttribute, segmentAttribute, tooltipTextAttribute] = dedupeAttributePayloads([locationPayload, segmentPayload, tooltipTextPayload], referenceMaps);
|
|
119
115
|
const tooltipItems = [
|
|
120
116
|
formatAttributeHtml(locationAttribute, tooltipFormatConfig),
|
|
121
117
|
formatMeasureHtml(sizePayload, separators, tooltipFormatConfig),
|
|
@@ -101,18 +101,26 @@ export interface ITooltipReferenceMaps {
|
|
|
101
101
|
*/
|
|
102
102
|
measures: Record<string, string>;
|
|
103
103
|
/**
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
* The ids among {@link ITooltipReferenceMaps.attributes} that name a computed attribute rather
|
|
111
|
-
* than a label. Their values are published under the `computed_attribute/` key namespace: an
|
|
112
|
-
* id is unique only within its object type, so a label and a computed attribute may both be
|
|
113
|
-
* called `tier` and must not answer each other's reference.
|
|
104
|
+
* Attribute `localIdentifier` → the reference keys its values are published under.
|
|
105
|
+
*
|
|
106
|
+
* Keyed by localIdentifier, not by display-form id, for the same reason measures are:
|
|
107
|
+
* an LDM identifier is unique only within an object type, so a label and a computed
|
|
108
|
+
* attribute may share one, while a localIdentifier is unique within the execution.
|
|
109
|
+
* The keys themselves carry the object type, which is what a reference names.
|
|
114
110
|
*/
|
|
115
|
-
|
|
111
|
+
attributes: Record<string, ITooltipAttributeKeys>;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* The reference keys one attribute's values are published under: its display form, and its
|
|
115
|
+
* parent attribute, so a user may reference it by either id — mirroring Highcharts.
|
|
116
|
+
*
|
|
117
|
+
* @internal
|
|
118
|
+
*/
|
|
119
|
+
export interface ITooltipAttributeKeys {
|
|
120
|
+
/** `<type>/<displayFormId>`, where the type is the label or computed attribute namespace. */
|
|
121
|
+
displayFormKey: string;
|
|
122
|
+
/** `<type>/<attributeId>`. Equal to {@link displayFormKey} when the ids coincide. */
|
|
123
|
+
attributeKey: string;
|
|
116
124
|
}
|
|
117
125
|
/**
|
|
118
126
|
* Legend computation result.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapterTypes.d.ts","sourceRoot":"","sources":["../../../../src/next/layers/registry/adapterTypes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC3G,OAAO,KAAK,EACR,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAElF,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC5G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EACR,+BAA+B,EAC/B,sBAAsB,EACzB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EACR,mBAAmB,EACnB,0BAA0B,EAC1B,UAAU,EACV,YAAY,EACf,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,OAAO,EAAE,kBAAkB,CAAC;IAE5B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IAEzB;;OAEG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;IAElC;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IAErC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAE7B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC;IAE/B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;CACpB;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,qBAAqB;IAClC;;;;;;;OAOG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC
|
|
1
|
+
{"version":3,"file":"adapterTypes.d.ts","sourceRoot":"","sources":["../../../../src/next/layers/registry/adapterTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,12 @@ export interface IGeoAreaItem extends IGeoDataItem {
|
|
|
9
9
|
* Identifier or URI of the display form used to produce this area data.
|
|
10
10
|
*/
|
|
11
11
|
displayFormId?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Execution-local identifier of the attribute this data came from. Unique within the
|
|
14
|
+
* execution, unlike {@link displayFormId}, so it is what identifies a row in the custom
|
|
15
|
+
* tooltip lookup - see `buildKeySegment`.
|
|
16
|
+
*/
|
|
17
|
+
localIdentifier?: string;
|
|
12
18
|
/**
|
|
13
19
|
* Geographic identifiers for areas (e.g., ISO country codes, region IDs)
|
|
14
20
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"area.d.ts","sourceRoot":"","sources":["../../../../src/next/types/geoData/area.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAErE;;;;GAIG;AACH,MAAM,WAAW,YAAa,SAAQ,YAAY;IAC9C;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAa,SAAQ,cAAc;IAChD;;OAEG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;CACvB"}
|
|
1
|
+
{"version":3,"file":"area.d.ts","sourceRoot":"","sources":["../../../../src/next/types/geoData/area.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAErE;;;;GAIG;AACH,MAAM,WAAW,YAAa,SAAQ,YAAY;IAC9C;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAa,SAAQ,cAAc;IAChD;;OAEG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;CACvB"}
|
|
@@ -23,6 +23,12 @@ export interface IGeoAttributeItem extends IGeoDataItem {
|
|
|
23
23
|
* Identifier or URI of the display form used to produce this attribute data.
|
|
24
24
|
*/
|
|
25
25
|
displayFormId?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Execution-local identifier of the attribute this data came from. Unique within the
|
|
28
|
+
* execution, unlike {@link displayFormId}, so it is what identifies a row in the custom
|
|
29
|
+
* tooltip lookup - see `buildKeySegment`.
|
|
30
|
+
*/
|
|
31
|
+
localIdentifier?: string;
|
|
26
32
|
/**
|
|
27
33
|
* Array of string values for the attribute
|
|
28
34
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/next/types/geoData/common.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,WAAW,YAAY;IACzB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACnD;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACtD;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACjD;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB;;OAEG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B;;OAEG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACnC"}
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/next/types/geoData/common.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,WAAW,YAAY;IACzB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACnD;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACtD;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACjD;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB;;OAEG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B;;OAEG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACnC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-ui-geo",
|
|
3
|
-
"version": "11.58.0-alpha.
|
|
3
|
+
"version": "11.58.0-alpha.3",
|
|
4
4
|
"description": "GoodData.UI SDK - Geo Charts",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "GoodData Corporation",
|
|
@@ -44,12 +44,12 @@
|
|
|
44
44
|
"ts-invariant": "0.10.3",
|
|
45
45
|
"tslib": "2.8.1",
|
|
46
46
|
"uuid": "11.1.1",
|
|
47
|
-
"@gooddata/sdk-backend-spi": "11.58.0-alpha.
|
|
48
|
-
"@gooddata/sdk-model": "11.58.0-alpha.
|
|
49
|
-
"@gooddata/sdk-ui": "11.58.0-alpha.
|
|
50
|
-
"@gooddata/sdk-ui-
|
|
51
|
-
"@gooddata/sdk-ui-
|
|
52
|
-
"@gooddata/sdk-ui-vis-commons": "11.58.0-alpha.
|
|
47
|
+
"@gooddata/sdk-backend-spi": "11.58.0-alpha.3",
|
|
48
|
+
"@gooddata/sdk-model": "11.58.0-alpha.3",
|
|
49
|
+
"@gooddata/sdk-ui": "11.58.0-alpha.3",
|
|
50
|
+
"@gooddata/sdk-ui-theme-provider": "11.58.0-alpha.3",
|
|
51
|
+
"@gooddata/sdk-ui-kit": "11.58.0-alpha.3",
|
|
52
|
+
"@gooddata/sdk-ui-vis-commons": "11.58.0-alpha.3"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@microsoft/api-documenter": "7.30.10",
|
|
@@ -88,10 +88,10 @@
|
|
|
88
88
|
"typescript": "7.0.2",
|
|
89
89
|
"vitest": "4.1.11",
|
|
90
90
|
"vitest-dom": "0.1.1",
|
|
91
|
-
"@gooddata/
|
|
92
|
-
"@gooddata/
|
|
93
|
-
"@gooddata/sdk-backend-mockingbird": "11.58.0-alpha.
|
|
94
|
-
"@gooddata/stylelint-config": "11.58.0-alpha.
|
|
91
|
+
"@gooddata/eslint-config": "11.58.0-alpha.3",
|
|
92
|
+
"@gooddata/oxlint-config": "11.58.0-alpha.3",
|
|
93
|
+
"@gooddata/sdk-backend-mockingbird": "11.58.0-alpha.3",
|
|
94
|
+
"@gooddata/stylelint-config": "11.58.0-alpha.3"
|
|
95
95
|
},
|
|
96
96
|
"peerDependencies": {
|
|
97
97
|
"react": "^18.0.0 || ^19.0.0",
|