@gooddata/sdk-ui-vis-commons 11.57.0-alpha.5 → 11.57.0-alpha.6
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/customTooltip/referenceResolver.d.ts +1 -1
- package/esm/customTooltip/referenceResolver.d.ts.map +1 -1
- package/esm/customTooltip/referenceResolver.js +11 -4
- package/esm/customTooltip/tooltipExecution.d.ts +6 -2
- package/esm/customTooltip/tooltipExecution.d.ts.map +1 -1
- package/esm/customTooltip/tooltipExecution.js +54 -27
- package/esm/customTooltip/tooltipLookup.d.ts.map +1 -1
- package/esm/customTooltip/tooltipLookup.js +4 -4
- package/esm/customTooltip/types.d.ts +18 -4
- package/esm/customTooltip/types.d.ts.map +1 -1
- package/esm/customTooltip/types.js +11 -0
- package/esm/index.d.ts +1 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -1
- package/esm/sdk-ui-vis-commons.d.ts +26 -7
- package/package.json +14 -14
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type IResolvedReferenceValues, type ITooltipLocalizedStrings } from "./types.js";
|
|
2
2
|
/**
|
|
3
|
-
* Substitutes `{metric/id}` and `{
|
|
3
|
+
* Substitutes `{metric/id}`, `{label/id}` and `{computed_attribute/id}` references in markdown content
|
|
4
4
|
* with resolved values from the lookup table.
|
|
5
5
|
*
|
|
6
6
|
* Substituted values come from data and may contain markdown metacharacters
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"referenceResolver.d.ts","sourceRoot":"","sources":["../../src/customTooltip/referenceResolver.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,
|
|
1
|
+
{"version":3,"file":"referenceResolver.d.ts","sourceRoot":"","sources":["../../src/customTooltip/referenceResolver.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAKhC,MAAM,YAAY,CAAC;AA+EpB;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,wBAAwB,EAChC,OAAO,EAAE,wBAAwB,GAClC,MAAM,CAWR"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// (C) 2026 GoodData Corporation
|
|
2
2
|
import { REFERENCE_REGEX_MATCH } from "@gooddata/sdk-ui-kit";
|
|
3
3
|
import { URL_PATTERN } from "./markdownToHtml.js";
|
|
4
|
-
import { labelKey, metricKey, } from "./types.js";
|
|
4
|
+
import { computedAttributeKey, labelKey, metricKey, } from "./types.js";
|
|
5
5
|
// Markdown metacharacters that, if present in a substituted value, would be
|
|
6
6
|
// reinterpreted as formatting by `markdownToHtml`. Backslash-escape them so the
|
|
7
7
|
// parser treats them as literal text. The set covers every char that can start
|
|
@@ -29,9 +29,16 @@ function renderReference(ref, strings) {
|
|
|
29
29
|
return strings.noFetch;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
//
|
|
32
|
+
// One key namespace per object type, so an id reused across types resolves to the right value.
|
|
33
|
+
// The prefix is matched case-insensitively; LDM identifiers are case-sensitive.
|
|
34
|
+
const KEY_BUILDERS = {
|
|
35
|
+
metric: metricKey,
|
|
36
|
+
label: labelKey,
|
|
37
|
+
computed_attribute: computedAttributeKey,
|
|
38
|
+
};
|
|
33
39
|
function lookupRef(values, prefix, identifier) {
|
|
34
|
-
|
|
40
|
+
const buildKey = KEY_BUILDERS[prefix.toLowerCase()];
|
|
41
|
+
return buildKey ? values[buildKey(identifier)] : undefined;
|
|
35
42
|
}
|
|
36
43
|
// In image/link URL targets a no-data reference must collapse to empty rather than
|
|
37
44
|
// the "(No data)" placeholder, which would break markdown parsing and leak the raw
|
|
@@ -50,7 +57,7 @@ function blankNonValueTargets(content, values) {
|
|
|
50
57
|
.replace(LINK_CONSTRUCT_REGEX, (_match, text, url = "") => `[${text}](${blankNonValueRefs(url, values)})`);
|
|
51
58
|
}
|
|
52
59
|
/**
|
|
53
|
-
* Substitutes `{metric/id}` and `{
|
|
60
|
+
* Substitutes `{metric/id}`, `{label/id}` and `{computed_attribute/id}` references in markdown content
|
|
54
61
|
* with resolved values from the lookup table.
|
|
55
62
|
*
|
|
56
63
|
* Substituted values come from data and may contain markdown metacharacters
|
|
@@ -11,8 +11,12 @@ export interface ITooltipExecutionMeta {
|
|
|
11
11
|
labelCountMap: Record<string, string>;
|
|
12
12
|
/** tooltip metric localId → LDM measure identifier. */
|
|
13
13
|
measureIdMap: Record<string, string>;
|
|
14
|
-
/**
|
|
15
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Attribute value localId → the lookup key its value is published under. A key rather than a
|
|
16
|
+
* bare id, because a label and a computed attribute may share an identifier and each belongs
|
|
17
|
+
* in its own namespace - see {@link @gooddata/sdk-ui-vis-commons#computedAttributeKey}.
|
|
18
|
+
*/
|
|
19
|
+
attributeKeyMap: Record<string, string>;
|
|
16
20
|
}
|
|
17
21
|
/**
|
|
18
22
|
* Prepared tooltip execution paired with the meta needed to interpret its result.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltipExecution.d.ts","sourceRoot":"","sources":["../../src/customTooltip/tooltipExecution.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EAEH,KAAK,oBAAoB,
|
|
1
|
+
{"version":3,"file":"tooltipExecution.d.ts","sourceRoot":"","sources":["../../src/customTooltip/tooltipExecution.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EAEH,KAAK,oBAAoB,EAe5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,KAAK,oBAAoB,EAAkC,MAAM,YAAY,CAAC;AAoLvF;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IAClC,qEAAqE;IACrE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACpC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,IAAI,EAAE,qBAAqB,CAAC;CAC/B;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,uBAAuB,CAAC;IAC/B,MAAM,EAAE,MAAM,SAAS,uBAAuB,EAAE,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC1C;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChD;AAwCD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACjC,gBAAgB,EAAE,iBAAiB,EACnC,eAAe,EAAE,oBAAoB,EACrC,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,6BAA6B,GACxC,iBAAiB,GAAG,IAAI,CAgC1B;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC3C,gBAAgB,EAAE,iBAAiB,EACnC,eAAe,EAAE,oBAAoB,EACrC,aAAa,EAAE,oBAAoB,GAAG,SAAS,EAC/C,OAAO,CAAC,EAAE,6BAA6B,GACxC,iBAAiB,GAAG,SAAS,CAQ/B"}
|
|
@@ -1,24 +1,31 @@
|
|
|
1
1
|
// (C) 2026 GoodData Corporation
|
|
2
|
-
import { MeasureGroupIdentifier, filterMeasureRef, idRef, isIdentifierRef, isLocalIdRef, isSimpleMeasure, measureItem, measureLocalId, newAttribute, newMeasure, newTwoDimensional, } from "@gooddata/sdk-model";
|
|
2
|
+
import { MeasureGroupIdentifier, filterMeasureRef, idRef, isComputedAttributeRef, isIdentifierRef, isLocalIdRef, isSimpleMeasure, measureItem, measureLocalId, newAttribute, newMeasure, newTwoDimensional, } from "@gooddata/sdk-model";
|
|
3
3
|
import { REFERENCE_REGEX_MATCH } from "@gooddata/sdk-ui-kit";
|
|
4
|
+
import { computedAttributeKey, labelKey } from "./types.js";
|
|
5
|
+
// Keyed by the prefix lowercased, as the regex matches it case-insensitively.
|
|
6
|
+
const CANONICAL_TYPE = {
|
|
7
|
+
metric: "metric",
|
|
8
|
+
label: "label",
|
|
9
|
+
computed_attribute: "computed_attribute",
|
|
10
|
+
};
|
|
4
11
|
function parseReferences(content) {
|
|
5
12
|
const refs = [];
|
|
6
13
|
const seen = new Set();
|
|
7
14
|
// REFERENCE_REGEX_MATCH lives in sdk-ui-kit; match[3] is the kind
|
|
8
|
-
// ("label" | "metric"), match[4] is the id.
|
|
15
|
+
// ("label" | "metric" | "computed_attribute"), match[4] is the id.
|
|
9
16
|
for (const match of content.matchAll(REFERENCE_REGEX_MATCH)) {
|
|
10
|
-
const
|
|
17
|
+
const type = CANONICAL_TYPE[match[3].toLowerCase()];
|
|
11
18
|
// Synonyms like `measure` / `displayForm` aren't canonical here; let
|
|
12
19
|
// them fall through so the rest of the pipeline doesn't silently treat
|
|
13
20
|
// a `measure` ref as a metric.
|
|
14
|
-
if (
|
|
21
|
+
if (!type) {
|
|
15
22
|
continue;
|
|
16
23
|
}
|
|
17
24
|
const id = match[4];
|
|
18
|
-
const key = `${
|
|
25
|
+
const key = `${type}/${id}`;
|
|
19
26
|
if (!seen.has(key)) {
|
|
20
27
|
seen.add(key);
|
|
21
|
-
refs.push({ type
|
|
28
|
+
refs.push({ type, id });
|
|
22
29
|
}
|
|
23
30
|
}
|
|
24
31
|
return refs;
|
|
@@ -35,18 +42,26 @@ function getChartMetricIds(definition) {
|
|
|
35
42
|
}
|
|
36
43
|
return ids;
|
|
37
44
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
45
|
+
/**
|
|
46
|
+
* The chart's attribute-shaped ids, kept apart by object type. A computed attribute's own ref is
|
|
47
|
+
* what sits on the display form slot, so without the split a label and a computed attribute of the
|
|
48
|
+
* same id would be indistinguishable here - and a reference to one would be answered by the other.
|
|
49
|
+
*
|
|
50
|
+
* Only identifier refs match. Refs in user content using a URI ref or a parent attribute id miss
|
|
51
|
+
* the set, fall into the secondary execution, and fail backend-side (one bad ref drops the whole
|
|
52
|
+
* call).
|
|
53
|
+
*/
|
|
54
|
+
function getChartAttributeIds(definition) {
|
|
55
|
+
const labelIds = new Set();
|
|
56
|
+
const computedAttributeIds = new Set();
|
|
43
57
|
for (const attr of definition.attributes) {
|
|
44
58
|
const ref = attr.attribute.displayForm;
|
|
45
|
-
if (isIdentifierRef(ref)) {
|
|
46
|
-
|
|
59
|
+
if (!isIdentifierRef(ref)) {
|
|
60
|
+
continue;
|
|
47
61
|
}
|
|
62
|
+
(isComputedAttributeRef(ref) ? computedAttributeIds : labelIds).add(ref.identifier);
|
|
48
63
|
}
|
|
49
|
-
return
|
|
64
|
+
return { labelIds, computedAttributeIds };
|
|
50
65
|
}
|
|
51
66
|
/**
|
|
52
67
|
* Chart measures that MVF/ranking filters depend on. Must be included in the
|
|
@@ -68,8 +83,8 @@ function getFilterDependencyMeasures(filters, chartMeasures) {
|
|
|
68
83
|
}
|
|
69
84
|
/**
|
|
70
85
|
* Build tooltip-only measures for the given references (already filtered to
|
|
71
|
-
* those not in the chart). Labels get a max+count pair
|
|
72
|
-
* widget pattern) so the lookup can render "(Multiple items)" when a label
|
|
86
|
+
* those not in the chart). Labels and computed attributes get a max+count pair
|
|
87
|
+
* (mirrors the RichText widget pattern) so the lookup can render "(Multiple items)" when a label
|
|
73
88
|
* resolves to >1 value per row.
|
|
74
89
|
*
|
|
75
90
|
* LocalId prefixes `tt_m_`, `tt_lv_`, `tt_lc_` are reserved — collision with
|
|
@@ -78,7 +93,7 @@ function getFilterDependencyMeasures(filters, chartMeasures) {
|
|
|
78
93
|
function buildTooltipItems(refs) {
|
|
79
94
|
const measures = [];
|
|
80
95
|
const labelCountMap = {};
|
|
81
|
-
const
|
|
96
|
+
const attributeKeyMap = {};
|
|
82
97
|
const measureIdMap = {};
|
|
83
98
|
let idx = 0;
|
|
84
99
|
for (const ref of refs) {
|
|
@@ -91,13 +106,19 @@ function buildTooltipItems(refs) {
|
|
|
91
106
|
const valueLocalId = `tt_lv_${idx}`;
|
|
92
107
|
const countLocalId = `tt_lc_${idx}`;
|
|
93
108
|
idx++;
|
|
94
|
-
|
|
95
|
-
|
|
109
|
+
// A computed attribute has no labels on the backend and is referenced by its own type;
|
|
110
|
+
// both aggregations below are supported over it.
|
|
111
|
+
const isComputedAttribute = ref.type === "computed_attribute";
|
|
112
|
+
const attributeRef = idRef(ref.id, isComputedAttribute ? "computedAttribute" : "displayForm");
|
|
113
|
+
measures.push(newMeasure(attributeRef, (m) => m.localId(valueLocalId).aggregation("max")));
|
|
114
|
+
measures.push(newMeasure(attributeRef, (m) => m.localId(countLocalId).aggregation("count")));
|
|
96
115
|
labelCountMap[valueLocalId] = countLocalId;
|
|
97
|
-
|
|
116
|
+
attributeKeyMap[valueLocalId] = isComputedAttribute
|
|
117
|
+
? computedAttributeKey(ref.id)
|
|
118
|
+
: labelKey(ref.id);
|
|
98
119
|
}
|
|
99
120
|
}
|
|
100
|
-
return { measures, labelCountMap,
|
|
121
|
+
return { measures, labelCountMap, attributeKeyMap, measureIdMap };
|
|
101
122
|
}
|
|
102
123
|
/**
|
|
103
124
|
* Slicing attributes for the tooltip execution's row dimension. When
|
|
@@ -125,7 +146,7 @@ function getSlicingAttributes(definition, slicingAttributeLocalIds) {
|
|
|
125
146
|
* when there are no measures to fetch.
|
|
126
147
|
*/
|
|
127
148
|
function buildBundle(executionFactory, chartDefinition, externalRefs, options) {
|
|
128
|
-
const { measures, labelCountMap,
|
|
149
|
+
const { measures, labelCountMap, attributeKeyMap, measureIdMap } = buildTooltipItems(externalRefs);
|
|
129
150
|
if (measures.length === 0) {
|
|
130
151
|
return null;
|
|
131
152
|
}
|
|
@@ -141,7 +162,7 @@ function buildBundle(executionFactory, chartDefinition, externalRefs, options) {
|
|
|
141
162
|
}
|
|
142
163
|
return {
|
|
143
164
|
execution,
|
|
144
|
-
meta: { labelCountMap, measureIdMap,
|
|
165
|
+
meta: { labelCountMap, measureIdMap, attributeKeyMap },
|
|
145
166
|
};
|
|
146
167
|
}
|
|
147
168
|
/**
|
|
@@ -158,10 +179,16 @@ export function buildTooltipExecution(executionFactory, chartDefinition, tooltip
|
|
|
158
179
|
return null;
|
|
159
180
|
}
|
|
160
181
|
const chartMetricIds = getChartMetricIds(chartDefinition);
|
|
161
|
-
const
|
|
162
|
-
// References not already resolvable from the chart's own drill data.
|
|
163
|
-
|
|
164
|
-
|
|
182
|
+
const { labelIds, computedAttributeIds } = getChartAttributeIds(chartDefinition);
|
|
183
|
+
// References not already resolvable from the chart's own drill data. Each type is matched
|
|
184
|
+
// against the ids of its own type only: an id may name a label and a computed attribute at
|
|
185
|
+
// once, and answering one from the other would show a value belonging to a different object.
|
|
186
|
+
const inChartIds = {
|
|
187
|
+
metric: chartMetricIds,
|
|
188
|
+
label: labelIds,
|
|
189
|
+
computed_attribute: computedAttributeIds,
|
|
190
|
+
};
|
|
191
|
+
const externalRefs = refs.filter((ref) => !inChartIds[ref.type].has(ref.id));
|
|
165
192
|
const batch = buildBundle(executionFactory, chartDefinition, externalRefs, options);
|
|
166
193
|
if (!batch) {
|
|
167
194
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltipLookup.d.ts","sourceRoot":"","sources":["../../src/customTooltip/tooltipLookup.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,qBAAqB,CAAC;AAIhF,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,KAAK,wBAAwB,
|
|
1
|
+
{"version":3,"file":"tooltipLookup.d.ts","sourceRoot":"","sources":["../../src/customTooltip/tooltipLookup.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,qBAAqB,CAAC;AAIhF,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,KAAK,wBAAwB,EAAa,MAAM,YAAY,CAAC;AAEtE;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,SAAS,EACnB,IAAI,EAAE,qBAAqB,EAC3B,UAAU,CAAC,EAAE,WAAW,GACzB,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAqEvC"}
|
|
@@ -3,7 +3,7 @@ import { isResultAttributeHeader } from "@gooddata/sdk-model";
|
|
|
3
3
|
import { DataViewFacade } from "@gooddata/sdk-ui";
|
|
4
4
|
import { labelReference, measureReference } from "./referenceStatus.js";
|
|
5
5
|
import { buildKeySegment, joinKeySegments } from "./tooltipKey.js";
|
|
6
|
-
import {
|
|
6
|
+
import { metricKey } from "./types.js";
|
|
7
7
|
/**
|
|
8
8
|
* Build a per-data-point lookup keyed by `${displayFormId}:${uri}` segments
|
|
9
9
|
* (joined by `|`, sorted). Iteration is orientation-agnostic via slices/series.
|
|
@@ -43,15 +43,15 @@ export function buildLookupTable(dataView, meta, separators) {
|
|
|
43
43
|
if (countLocalIds.has(localId)) {
|
|
44
44
|
continue;
|
|
45
45
|
}
|
|
46
|
-
const
|
|
47
|
-
if (
|
|
46
|
+
const attributeKey = meta.attributeKeyMap[localId];
|
|
47
|
+
if (attributeKey) {
|
|
48
48
|
const countLocalId = meta.labelCountMap[localId];
|
|
49
49
|
const countSeries = countLocalId ? seriesByLocalId.get(countLocalId) : undefined;
|
|
50
50
|
const countValue = countSeries
|
|
51
51
|
? Number(countSeries.dataPoints()[sliceIdx]?.rawValue ?? 0)
|
|
52
52
|
: 1;
|
|
53
53
|
// count > 1 → "(Multiple items)"; else empty/value via the shared helper.
|
|
54
|
-
values[
|
|
54
|
+
values[attributeKey] = countValue > 1 ? { kind: "multiple" } : labelReference(rawValue);
|
|
55
55
|
continue;
|
|
56
56
|
}
|
|
57
57
|
const metricId = meta.measureIdMap[localId];
|
|
@@ -37,13 +37,14 @@ export interface ICustomTooltipConfig {
|
|
|
37
37
|
*
|
|
38
38
|
* Not supported: tables, code blocks, blockquotes, nested lists, raw HTML.
|
|
39
39
|
*
|
|
40
|
-
* Also accepts metric/attribute references (\{metric/id\}, \{label/id\}
|
|
41
|
-
* that resolve dynamically per hovered data point. Resolved values are
|
|
40
|
+
* Also accepts metric/attribute references (\{metric/id\}, \{label/id\},
|
|
41
|
+
* \{computed_attribute/id\}) that resolve dynamically per hovered data point. Resolved values are
|
|
42
42
|
* automatically backslash-escaped, so data containing markdown metacharacters
|
|
43
43
|
* renders as literal text — no manual escaping is required.
|
|
44
44
|
*
|
|
45
45
|
* Use display-form identifiers (NOT parent attribute identifiers) inside
|
|
46
|
-
* `{label/id}
|
|
46
|
+
* `{label/id}`; a computed attribute has no labels and is named by its own
|
|
47
|
+
* identifier inside `{computed_attribute/id}`. An attribute id renders correctly for attributes that are
|
|
47
48
|
* already in the chart, but it cannot be fetched as a label for external
|
|
48
49
|
* attributes — and a single such ref causes the secondary tooltip fetch
|
|
49
50
|
* to fail backend-side, dropping every other external ref alongside it.
|
|
@@ -77,7 +78,9 @@ export type ResolvedReference = {
|
|
|
77
78
|
readonly kind: "multiple";
|
|
78
79
|
};
|
|
79
80
|
/**
|
|
80
|
-
* Lookup of resolved reference statuses keyed by
|
|
81
|
+
* Lookup of resolved reference statuses, keyed by `<prefix>/<id>` - one namespace per object type,
|
|
82
|
+
* so ids reused across types cannot collide. The key is exactly the text between the braces of the
|
|
83
|
+
* reference it answers, lowercased prefix aside.
|
|
81
84
|
*
|
|
82
85
|
* @internal
|
|
83
86
|
*/
|
|
@@ -100,6 +103,17 @@ export declare const metricKey: (id: string) => string;
|
|
|
100
103
|
* @internal
|
|
101
104
|
*/
|
|
102
105
|
export declare const labelKey: (id: string) => string;
|
|
106
|
+
/**
|
|
107
|
+
* Builds the `computed_attribute/<id>` lookup key for a computed attribute reference.
|
|
108
|
+
*
|
|
109
|
+
* A computed attribute gets a namespace of its own rather than sharing the label one: ids are
|
|
110
|
+
* unique per object type, so a label and a computed attribute may both be called `tier` and would
|
|
111
|
+
* otherwise overwrite each other in the lookup - silently showing one's value for the other.
|
|
112
|
+
* See {@link metricKey}.
|
|
113
|
+
*
|
|
114
|
+
* @internal
|
|
115
|
+
*/
|
|
116
|
+
export declare const computedAttributeKey: (id: string) => string;
|
|
103
117
|
/**
|
|
104
118
|
* Localized placeholder strings for the non-value reference states. Built once
|
|
105
119
|
* at the render site (where `intl` is available) and threaded into
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/customTooltip/types.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAEnE;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/customTooltip/types.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAEnE;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACtC;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GACvB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACrC,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;CACzD;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,OAAQ,MAAM,KAAG,MAAwB,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,QAAQ,OAAQ,MAAM,KAAG,MAAuB,CAAC;AAE9D;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,OAAQ,MAAM,KAAG,MAAoC,CAAC;AAEvF;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -15,3 +15,14 @@ export const metricKey = (id) => `metric/${id}`;
|
|
|
15
15
|
* @internal
|
|
16
16
|
*/
|
|
17
17
|
export const labelKey = (id) => `label/${id}`;
|
|
18
|
+
/**
|
|
19
|
+
* Builds the `computed_attribute/<id>` lookup key for a computed attribute reference.
|
|
20
|
+
*
|
|
21
|
+
* A computed attribute gets a namespace of its own rather than sharing the label one: ids are
|
|
22
|
+
* unique per object type, so a label and a computed attribute may both be called `tier` and would
|
|
23
|
+
* otherwise overwrite each other in the lookup - silently showing one's value for the other.
|
|
24
|
+
* See {@link metricKey}.
|
|
25
|
+
*
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
export const computedAttributeKey = (id) => `computed_attribute/${id}`;
|
package/esm/index.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export { getHeadlineResponsiveClassName } from "./utils/headlineResponsiveClassN
|
|
|
29
29
|
export { getLegendDetails, type ILegendDetails, type ILegendDetailOptions, } from "./legend/PopUpLegend/helpers.js";
|
|
30
30
|
export { PATTERN_FILLS, getPatternFillByIndex, getPatternFillByName, getPatternFill, type IPatternFill, type PatternFillName, type IChartFillConfig, } from "./coloring/patternFills.js";
|
|
31
31
|
export { PatternFill, type IPatternFillProps } from "./coloring/PatternFill.js";
|
|
32
|
-
export { type ICustomTooltipConfig, type CustomTooltipPlacement, type IResolvedReferenceValues, type ResolvedReference, type ITooltipLocalizedStrings, metricKey, labelKey, } from "./customTooltip/types.js";
|
|
32
|
+
export { type ICustomTooltipConfig, type CustomTooltipPlacement, type IResolvedReferenceValues, type ResolvedReference, type ITooltipLocalizedStrings, metricKey, labelKey, computedAttributeKey, } from "./customTooltip/types.js";
|
|
33
33
|
export { markdownToHtml } from "./customTooltip/markdownToHtml.js";
|
|
34
34
|
export { resolveReferences } from "./customTooltip/referenceResolver.js";
|
|
35
35
|
export { measureReference, labelReference } from "./customTooltip/referenceStatus.js";
|
package/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/esm/index.js
CHANGED
|
@@ -30,7 +30,7 @@ export { getHeadlineResponsiveClassName } from "./utils/headlineResponsiveClassN
|
|
|
30
30
|
export { getLegendDetails, } from "./legend/PopUpLegend/helpers.js";
|
|
31
31
|
export { PATTERN_FILLS, getPatternFillByIndex, getPatternFillByName, getPatternFill, } from "./coloring/patternFills.js";
|
|
32
32
|
export { PatternFill } from "./coloring/PatternFill.js";
|
|
33
|
-
export { metricKey, labelKey, } from "./customTooltip/types.js";
|
|
33
|
+
export { metricKey, labelKey, computedAttributeKey, } from "./customTooltip/types.js";
|
|
34
34
|
export { markdownToHtml } from "./customTooltip/markdownToHtml.js";
|
|
35
35
|
export { resolveReferences } from "./customTooltip/referenceResolver.js";
|
|
36
36
|
export { measureReference, labelReference } from "./customTooltip/referenceStatus.js";
|
|
@@ -157,6 +157,18 @@ export declare const ColorUtils: {
|
|
|
157
157
|
*/
|
|
158
158
|
export declare function composeCustomTooltipSectionHtml(content: string, inChartValues: IResolvedReferenceValues, externalValues: IResolvedReferenceValues, localizedStrings: ITooltipLocalizedStrings): string;
|
|
159
159
|
|
|
160
|
+
/**
|
|
161
|
+
* Builds the `computed_attribute/<id>` lookup key for a computed attribute reference.
|
|
162
|
+
*
|
|
163
|
+
* A computed attribute gets a namespace of its own rather than sharing the label one: ids are
|
|
164
|
+
* unique per object type, so a label and a computed attribute may both be called `tier` and would
|
|
165
|
+
* otherwise overwrite each other in the lookup - silently showing one's value for the other.
|
|
166
|
+
* See {@link metricKey}.
|
|
167
|
+
*
|
|
168
|
+
* @internal
|
|
169
|
+
*/
|
|
170
|
+
export declare const computedAttributeKey: (id: string) => string;
|
|
171
|
+
|
|
160
172
|
/**
|
|
161
173
|
* Names of the custom (non built-in) point-shape symbols to register on the Highcharts renderer.
|
|
162
174
|
*
|
|
@@ -484,13 +496,14 @@ export declare interface ICustomTooltipConfig {
|
|
|
484
496
|
*
|
|
485
497
|
* Not supported: tables, code blocks, blockquotes, nested lists, raw HTML.
|
|
486
498
|
*
|
|
487
|
-
* Also accepts metric/attribute references (\{metric/id\}, \{label/id\}
|
|
488
|
-
* that resolve dynamically per hovered data point. Resolved values are
|
|
499
|
+
* Also accepts metric/attribute references (\{metric/id\}, \{label/id\},
|
|
500
|
+
* \{computed_attribute/id\}) that resolve dynamically per hovered data point. Resolved values are
|
|
489
501
|
* automatically backslash-escaped, so data containing markdown metacharacters
|
|
490
502
|
* renders as literal text — no manual escaping is required.
|
|
491
503
|
*
|
|
492
504
|
* Use display-form identifiers (NOT parent attribute identifiers) inside
|
|
493
|
-
* `{label/id}
|
|
505
|
+
* `{label/id}`; a computed attribute has no labels and is named by its own
|
|
506
|
+
* identifier inside `{computed_attribute/id}`. An attribute id renders correctly for attributes that are
|
|
494
507
|
* already in the chart, but it cannot be fetched as a label for external
|
|
495
508
|
* attributes — and a single such ref causes the secondary tooltip fetch
|
|
496
509
|
* to fail backend-side, dropping every other external ref alongside it.
|
|
@@ -729,7 +742,9 @@ export declare interface IRange {
|
|
|
729
742
|
}
|
|
730
743
|
|
|
731
744
|
/**
|
|
732
|
-
* Lookup of resolved reference statuses keyed by
|
|
745
|
+
* Lookup of resolved reference statuses, keyed by `<prefix>/<id>` - one namespace per object type,
|
|
746
|
+
* so ids reused across types cannot collide. The key is exactly the text between the braces of the
|
|
747
|
+
* reference it answers, lowercased prefix aside.
|
|
733
748
|
*
|
|
734
749
|
* @internal
|
|
735
750
|
*/
|
|
@@ -871,8 +886,12 @@ export declare interface ITooltipExecutionMeta {
|
|
|
871
886
|
labelCountMap: Record<string, string>;
|
|
872
887
|
/** tooltip metric localId → LDM measure identifier. */
|
|
873
888
|
measureIdMap: Record<string, string>;
|
|
874
|
-
/**
|
|
875
|
-
|
|
889
|
+
/**
|
|
890
|
+
* Attribute value localId → the lookup key its value is published under. A key rather than a
|
|
891
|
+
* bare id, because a label and a computed attribute may share an identifier and each belongs
|
|
892
|
+
* in its own namespace - see {@link @gooddata/sdk-ui-vis-commons#computedAttributeKey}.
|
|
893
|
+
*/
|
|
894
|
+
attributeKeyMap: Record<string, string>;
|
|
876
895
|
}
|
|
877
896
|
|
|
878
897
|
/**
|
|
@@ -1102,7 +1121,7 @@ export declare type ResolvedReference = {
|
|
|
1102
1121
|
export declare function resolveMeasureLdmIdentifier(measure: IMeasure, allMeasures: IMeasure[]): string | undefined;
|
|
1103
1122
|
|
|
1104
1123
|
/**
|
|
1105
|
-
* Substitutes `{metric/id}` and `{
|
|
1124
|
+
* Substitutes `{metric/id}`, `{label/id}` and `{computed_attribute/id}` references in markdown content
|
|
1106
1125
|
* with resolved values from the lookup table.
|
|
1107
1126
|
*
|
|
1108
1127
|
* Substituted values come from data and may contain markdown metacharacters
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-ui-vis-commons",
|
|
3
|
-
"version": "11.57.0-alpha.
|
|
3
|
+
"version": "11.57.0-alpha.6",
|
|
4
4
|
"description": "GoodData.UI SDK - common functionality for different types of visualizations",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "GoodData Corporation",
|
|
@@ -36,11 +36,11 @@
|
|
|
36
36
|
"react-intl": "10.1.25",
|
|
37
37
|
"react-measure": "^2.5.2",
|
|
38
38
|
"tslib": "2.8.1",
|
|
39
|
-
"@gooddata/sdk-backend-spi": "11.57.0-alpha.
|
|
40
|
-
"@gooddata/sdk-model": "11.57.0-alpha.
|
|
41
|
-
"@gooddata/sdk-ui": "11.57.0-alpha.
|
|
42
|
-
"@gooddata/sdk-ui-kit": "11.57.0-alpha.
|
|
43
|
-
"@gooddata/sdk-ui-theme-provider": "11.57.0-alpha.
|
|
39
|
+
"@gooddata/sdk-backend-spi": "11.57.0-alpha.6",
|
|
40
|
+
"@gooddata/sdk-model": "11.57.0-alpha.6",
|
|
41
|
+
"@gooddata/sdk-ui": "11.57.0-alpha.6",
|
|
42
|
+
"@gooddata/sdk-ui-kit": "11.57.0-alpha.6",
|
|
43
|
+
"@gooddata/sdk-ui-theme-provider": "11.57.0-alpha.6"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@microsoft/api-documenter": "7.30.10",
|
|
@@ -65,23 +65,23 @@
|
|
|
65
65
|
"eslint-plugin-sonarjs": "3.0.6",
|
|
66
66
|
"happy-dom": "20.12.0",
|
|
67
67
|
"npm-run-all": "4.1.5",
|
|
68
|
-
"oxfmt": "0.
|
|
69
|
-
"oxlint": "1.
|
|
68
|
+
"oxfmt": "0.68.0",
|
|
69
|
+
"oxlint": "1.83.0",
|
|
70
70
|
"oxlint-plugin-eslint": "1.82.0",
|
|
71
71
|
"oxlint-tsgolint": "7.0.2001",
|
|
72
72
|
"raf": "3.4.1",
|
|
73
73
|
"react": "19.1.1",
|
|
74
74
|
"react-dom": "19.1.1",
|
|
75
|
-
"sass": "1.104.
|
|
75
|
+
"sass": "1.104.1",
|
|
76
76
|
"stylelint": "16.26.1",
|
|
77
77
|
"typescript": "7.0.2",
|
|
78
78
|
"vitest": "4.1.8",
|
|
79
79
|
"vitest-dom": "0.1.1",
|
|
80
|
-
"@gooddata/eslint-config": "11.57.0-alpha.
|
|
81
|
-
"@gooddata/oxlint-config": "11.57.0-alpha.
|
|
82
|
-
"@gooddata/
|
|
83
|
-
"@gooddata/
|
|
84
|
-
"@gooddata/
|
|
80
|
+
"@gooddata/eslint-config": "11.57.0-alpha.6",
|
|
81
|
+
"@gooddata/oxlint-config": "11.57.0-alpha.6",
|
|
82
|
+
"@gooddata/reference-workspace": "11.57.0-alpha.6",
|
|
83
|
+
"@gooddata/sdk-backend-mockingbird": "11.57.0-alpha.6",
|
|
84
|
+
"@gooddata/stylelint-config": "11.57.0-alpha.6"
|
|
85
85
|
},
|
|
86
86
|
"peerDependencies": {
|
|
87
87
|
"react": "^18.0.0 || ^19.0.0",
|