@objectstack/service-analytics 9.11.0 → 10.0.0
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/dist/index.cjs +40 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +12 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +40 -2
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -1495,6 +1495,7 @@ var AnalyticsService = class {
|
|
|
1495
1495
|
}
|
|
1496
1496
|
this.readScopeProvider = config.getReadScope;
|
|
1497
1497
|
this.relationshipResolver = config.relationshipResolver;
|
|
1498
|
+
this.measureCurrency = config.measureCurrency;
|
|
1498
1499
|
this.labelResolver = config.labelResolver;
|
|
1499
1500
|
this.draftRowsResolver = config.draftRowsResolver;
|
|
1500
1501
|
if (config.datasets) {
|
|
@@ -1672,8 +1673,21 @@ var AnalyticsService = class {
|
|
|
1672
1673
|
}
|
|
1673
1674
|
throw err;
|
|
1674
1675
|
}
|
|
1675
|
-
|
|
1676
|
-
|
|
1676
|
+
const selectedDims = (selection.dimensions ?? []).map((name) => dataset.dimensions?.find((d) => d.name === name)).filter((d) => !!d);
|
|
1677
|
+
const drillDims = selectedDims.filter((d) => !!d.field && d.type !== "date");
|
|
1678
|
+
if (drillDims.length && result.rows.length) {
|
|
1679
|
+
result.object = dataset.object;
|
|
1680
|
+
result.dimensionFields = Object.fromEntries(
|
|
1681
|
+
drillDims.map((d) => [d.name, d.field])
|
|
1682
|
+
);
|
|
1683
|
+
result.drillRawRows = result.rows.map((row) => {
|
|
1684
|
+
const raw = {};
|
|
1685
|
+
for (const d of drillDims) raw[d.name] = row[d.name];
|
|
1686
|
+
return raw;
|
|
1687
|
+
});
|
|
1688
|
+
}
|
|
1689
|
+
if (this.labelResolver && selectedDims.length) {
|
|
1690
|
+
const dims = selectedDims.filter((d) => !!d.field).map((d) => ({ name: d.name, field: d.field, type: d.type, dateGranularity: d.dateGranularity }));
|
|
1677
1691
|
if (dims.length) {
|
|
1678
1692
|
try {
|
|
1679
1693
|
await resolveDimensionLabels(dataset.object, dims, result.rows, this.labelResolver);
|
|
@@ -1695,6 +1709,25 @@ var AnalyticsService = class {
|
|
|
1695
1709
|
if (!m) continue;
|
|
1696
1710
|
if (f.label == null && typeof m.label === "string") f.label = m.label;
|
|
1697
1711
|
if (f.format == null && m.format) f.format = m.format;
|
|
1712
|
+
const fc = f;
|
|
1713
|
+
const mc = m;
|
|
1714
|
+
if (fc.currency == null) {
|
|
1715
|
+
const meta = m.field ? this.measureCurrency?.(dataset.object, m.field) : void 0;
|
|
1716
|
+
const monetary = !!mc.currency || meta?.type === "currency";
|
|
1717
|
+
if (monetary) {
|
|
1718
|
+
const resolved = mc.currency ?? meta?.defaultCurrency ?? context?.currency;
|
|
1719
|
+
if (resolved) fc.currency = resolved;
|
|
1720
|
+
}
|
|
1721
|
+
}
|
|
1722
|
+
}
|
|
1723
|
+
}
|
|
1724
|
+
if (result.fields?.length && selectedDims.length) {
|
|
1725
|
+
const dimByName = new Map(selectedDims.map((d) => [d.name, d]));
|
|
1726
|
+
const dimByField = new Map(selectedDims.filter((d) => !!d.field).map((d) => [d.field, d]));
|
|
1727
|
+
for (const f of result.fields) {
|
|
1728
|
+
if (f.label != null) continue;
|
|
1729
|
+
const d = dimByName.get(f.name) ?? dimByField.get(f.name);
|
|
1730
|
+
if (d && typeof d.label === "string") f.label = d.label;
|
|
1698
1731
|
}
|
|
1699
1732
|
}
|
|
1700
1733
|
return result;
|
|
@@ -2083,6 +2116,11 @@ var AnalyticsServicePlugin = class {
|
|
|
2083
2116
|
coerceTemporalFilterValue,
|
|
2084
2117
|
relationshipResolver,
|
|
2085
2118
|
labelResolver,
|
|
2119
|
+
// ADR-0053 — source-field currency metadata for the measure currency chain.
|
|
2120
|
+
measureCurrency: (object, field) => {
|
|
2121
|
+
const f = dataEngine()?.getObject?.(object)?.fields?.[field];
|
|
2122
|
+
return f ? { type: f.type, defaultCurrency: f.currencyConfig?.defaultCurrency } : void 0;
|
|
2123
|
+
},
|
|
2086
2124
|
draftRowsResolver
|
|
2087
2125
|
};
|
|
2088
2126
|
if (autoBridgedReadScope) {
|