@gooddata/sdk-backend-tiger 11.56.0-alpha.1 → 11.56.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/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/backend/workspace/attributes/elements/index.d.ts.map +1 -1
- package/esm/backend/workspace/attributes/elements/index.js +18 -1
- package/esm/backend/workspace/catalog/availableItemsFactory.d.ts.map +1 -1
- package/esm/backend/workspace/catalog/availableItemsFactory.js +2 -1
- package/esm/backend/workspace/catalog/factory.d.ts.map +1 -1
- package/esm/backend/workspace/catalog/factory.js +2 -1
- package/esm/backend/workspace/catalog/rsqlFilter.d.ts +1 -1
- package/esm/backend/workspace/catalog/rsqlFilter.d.ts.map +1 -1
- package/esm/backend/workspace/dashboards/dashboardSideloads.d.ts +10 -0
- package/esm/backend/workspace/dashboards/dashboardSideloads.d.ts.map +1 -0
- package/esm/backend/workspace/dashboards/dashboardSideloads.js +23 -0
- package/esm/backend/workspace/dashboards/index.js +2 -1
- package/esm/backend/workspace/dashboards/referenceAvailability.d.ts +4 -11
- package/esm/backend/workspace/dashboards/referenceAvailability.d.ts.map +1 -1
- package/esm/backend/workspace/dashboards/referenceAvailability.js +12 -25
- package/esm/backend/workspace/execution/preparedExecution.d.ts +1 -1
- package/esm/backend/workspace/execution/preparedExecution.d.ts.map +1 -1
- package/esm/backend/workspace/genAI/ChatConversations.d.ts +1 -1
- package/esm/backend/workspace/genAI/ChatConversations.d.ts.map +1 -1
- package/esm/backend/workspace/genAI/ChatConversations.js +2 -2
- package/esm/backend/workspace/measures/index.d.ts +3 -3
- package/esm/backend/workspace/measures/index.d.ts.map +1 -1
- package/esm/backend/workspace/measures/index.js +8 -0
- package/esm/convertors/fromBackend/HierarchyConverter.d.ts +2 -2
- package/esm/convertors/fromBackend/HierarchyConverter.d.ts.map +1 -1
- package/esm/convertors/fromBackend/MetadataConverter.d.ts.map +1 -1
- package/esm/convertors/fromBackend/MetadataConverter.js +6 -1
- package/esm/convertors/fromBackend/MetricConverter.d.ts.map +1 -1
- package/esm/convertors/fromBackend/MetricConverter.js +4 -0
- package/esm/convertors/fromBackend/analyticalDashboards/v2/AnalyticalDashboardConverter.d.ts +1 -1
- package/esm/convertors/fromBackend/analyticalDashboards/v2/AnalyticalDashboardConverter.d.ts.map +1 -1
- package/esm/convertors/fromBackend/conditionalFormattingConversions.d.ts +12 -0
- package/esm/convertors/fromBackend/conditionalFormattingConversions.d.ts.map +1 -0
- package/esm/convertors/fromBackend/conditionalFormattingConversions.js +48 -0
- package/esm/convertors/fromBackend/genAIConvertor.d.ts.map +1 -1
- package/esm/convertors/fromBackend/genAIConvertor.js +54 -29
- package/esm/convertors/toBackend/MetricConverter.d.ts.map +1 -1
- package/esm/convertors/toBackend/MetricConverter.js +4 -0
- package/package.json +13 -13
package/esm/__version.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const LIB_VERSION = "11.56.0-alpha.
|
|
1
|
+
export declare const LIB_VERSION = "11.56.0-alpha.3";
|
|
2
2
|
export declare const LIB_DESCRIPTION = "GoodData Backend SPI implementation for GoodData Cloud and GoodData.CN";
|
|
3
3
|
export declare const LIB_NAME = "@gooddata/sdk-backend-tiger";
|
|
4
4
|
//# sourceMappingURL=__version.d.ts.map
|
package/esm/__version.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// (C) 2021 GoodData Corporation
|
|
2
2
|
// DO NOT CHANGE THIS FILE, IT IS RE-GENERATED ON EVERY BUILD
|
|
3
|
-
export const LIB_VERSION = "11.56.0-alpha.
|
|
3
|
+
export const LIB_VERSION = "11.56.0-alpha.3";
|
|
4
4
|
export const LIB_DESCRIPTION = "GoodData Backend SPI implementation for GoodData Cloud and GoodData.CN";
|
|
5
5
|
export const LIB_NAME = "@gooddata/sdk-backend-tiger";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/backend/workspace/attributes/elements/index.ts"],"names":[],"mappings":"AAaA,OAAO,EACH,KAAK,4BAA4B,EACjC,KAAK,cAAc,EAEnB,KAAK,qBAAqB,EAG1B,KAAK,oBAAoB,EAK5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAQH,KAAK,MAAM,EAYd,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,4DAA4D,CAAC;AAGhG,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/backend/workspace/attributes/elements/index.ts"],"names":[],"mappings":"AAaA,OAAO,EACH,KAAK,4BAA4B,EACjC,KAAK,cAAc,EAEnB,KAAK,qBAAqB,EAG1B,KAAK,oBAAoB,EAK5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAQH,KAAK,MAAM,EAYd,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,4DAA4D,CAAC;AAGhG,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAsB9E,qBAAa,sBAAuB,YAAW,qBAAqB;IAE5D,OAAO,CAAC,QAAQ,CAAC,QAAQ;aACT,SAAS,EAAE,MAAM;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAHlC,YACqB,QAAQ,EAAE,2BAA2B,EACtC,SAAS,EAAE,MAAM,EAChB,aAAa,EAAE,aAAa,EAC7C;IAEG,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAEjD;IAEM,SAAS,CAAC,MAAM,EAAE,4BAA4B,GAAG,oBAAoB,CAE3E;CACJ"}
|
|
@@ -16,6 +16,16 @@ const MATCH_OPERATOR_TO_TIGER = {
|
|
|
16
16
|
endsWith: "ENDS_WITH",
|
|
17
17
|
contains: "CONTAINS",
|
|
18
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* The collectLabelElements API takes labels and computed attributes by bare id, so an id shared by
|
|
21
|
+
* both is ambiguous and resolves label-first. The optional `type` discriminator resolves the
|
|
22
|
+
* ambiguity; state it for a computed attribute (its fabricated display form ref carries the
|
|
23
|
+
* "computedAttribute" type) and leave it out otherwise — for a label the default resolution is
|
|
24
|
+
* already correct, and an explicit "label" would only invalidate every recorded request body.
|
|
25
|
+
*/
|
|
26
|
+
function toElementsLabelType(ref) {
|
|
27
|
+
return isIdentifierRef(ref) && ref.type === "computedAttribute" ? "computedAttribute" : undefined;
|
|
28
|
+
}
|
|
19
29
|
export class TigerWorkspaceElements {
|
|
20
30
|
authCall;
|
|
21
31
|
workspace;
|
|
@@ -116,11 +126,14 @@ class TigerWorkspaceElementsQuery {
|
|
|
116
126
|
.map((filter) => {
|
|
117
127
|
const { attributeFilter } = filter;
|
|
118
128
|
const complementFilter = isNegativeAttributeFilter(attributeFilter);
|
|
119
|
-
const
|
|
129
|
+
const labelRef = filterObjRef(attributeFilter);
|
|
130
|
+
const label = objRefToString(labelRef);
|
|
131
|
+
const type = toElementsLabelType(labelRef);
|
|
120
132
|
const elements = filterAttributeElements(attributeFilter);
|
|
121
133
|
const values = isAttributeElementsByRef(elements) ? elements.uris : elements.values;
|
|
122
134
|
return {
|
|
123
135
|
label,
|
|
136
|
+
...(type && { type }),
|
|
124
137
|
values: values,
|
|
125
138
|
complementFilter,
|
|
126
139
|
};
|
|
@@ -131,8 +144,10 @@ class TigerWorkspaceElementsQuery {
|
|
|
131
144
|
!filterIsEmpty(filter.attributeFilter))
|
|
132
145
|
.map((filter) => {
|
|
133
146
|
const { label, values, negativeSelection } = filter.attributeFilter.arbitraryAttributeFilter;
|
|
147
|
+
const type = toElementsLabelType(label);
|
|
134
148
|
return {
|
|
135
149
|
label: objRefToString(label),
|
|
150
|
+
...(type && { type }),
|
|
136
151
|
values,
|
|
137
152
|
complementFilter: negativeSelection ?? false,
|
|
138
153
|
};
|
|
@@ -163,8 +178,10 @@ class TigerWorkspaceElementsQuery {
|
|
|
163
178
|
return result.length > 0 ? { dependsOn: result } : {};
|
|
164
179
|
}
|
|
165
180
|
buildElementsRequest(options, labelIdentifier, cacheId) {
|
|
181
|
+
const labelType = toElementsLabelType(this.ref);
|
|
166
182
|
return {
|
|
167
183
|
label: labelIdentifier,
|
|
184
|
+
...(labelType && { type: labelType }),
|
|
168
185
|
...(options?.complement && { complementFilter: options.complement }),
|
|
169
186
|
...(options?.filter && { patternFilter: options.filter }),
|
|
170
187
|
...this.getExactFilterSpec(options ?? {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"availableItemsFactory.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/catalog/availableItemsFactory.ts"],"names":[],"mappings":"AAOA,OAAO,
|
|
1
|
+
{"version":3,"file":"availableItemsFactory.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/catalog/availableItemsFactory.ts"],"names":[],"mappings":"AAOA,OAAO,EAEH,KAAK,sCAAsC,EAC3C,KAAK,iDAAiD,EACzD,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,eAAe,EAEpB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,KAAK,MAAM,EAmBd,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAE3E,OAAO,EAAE,uCAAuC,EAAE,MAAM,gCAAgC,CAAC;AAiDzF,qBAAa,0CAA2C,YAAW,sCAAsC;IAEjG,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAMxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAX5B,YACqB,QAAQ,EAAE,2BAA2B,EACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,aAAa,EAAE,EACvB,KAAK,EAAE,WAAW,EAAE,EACpB,OAAO,GAAE,iDAKzB,EACgB,MAAM,CAAC,EAAE,WAAW,YAAA,EACrC;IAEG,WAAW,CACd,OAAO,EAAE,OAAO,CAAC,iDAAiD,CAAC,GACpE,sCAAsC,CAaxC;IAEM,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,sCAAsC,CAEzE;IAEM,QAAQ,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,sCAAsC,CAEhF;IAEM,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,sCAAsC,CAEzE;IAEM,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,sCAAsC,CAEzE;IAEM,QAAQ,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,sCAAsC,CAEpF;IAEM,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,sCAAsC,CAErF;IAEM,UAAU,CAAC,UAAU,EAAE,OAAO,GAAG,sCAAsC,CAI7E;IAEM,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,sCAAsC,CAS7E;IAEY,IAAI,IAAI,OAAO,CAAC,uCAAuC,CAAC,CAwDpE;CACJ;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAMxF;AAED,gBAAgB;AAChB,eAAO,MAAM,8BAA8B,YAC9B,OAAO,EAAE,qBACC,GAAG,CAAC,MAAM,CAAC,mBACb,GAAG,CAAC,MAAM,CAAC,KAC7B,OAAO,EA0BT,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { compact, intersectionWith, uniq } from "lodash-es";
|
|
3
3
|
import { InvariantError } from "ts-invariant";
|
|
4
4
|
import { ActionsApi_ComputeValidObjects } from "@gooddata/api-client-tiger/endpoints/validObjects";
|
|
5
|
+
import { DefaultWorkspaceCatalogTypes, } from "@gooddata/sdk-backend-spi";
|
|
5
6
|
import { areObjRefsEqual, attributeLocalId, insightAttributes, insightFilters, insightMeasures, isAttribute, isCatalogAttribute, isCatalogAttributeHierarchy, isCatalogComputedAttribute, isCatalogFact, isCatalogMeasure, isFilter, isLocalIdRef, isMeasure, isMeasureValueFilter, isRankingFilter, measureLocalId, } from "@gooddata/sdk-model";
|
|
6
7
|
import { jsonApiIdToObjRef } from "../../../convertors/fromBackend/ObjRefConverter.js";
|
|
7
8
|
import { convertAfmFilters } from "../../../convertors/toBackend/afm/AfmFiltersConverter.js";
|
|
@@ -58,7 +59,7 @@ export class TigerWorkspaceCatalogAvailableItemsFactory {
|
|
|
58
59
|
options;
|
|
59
60
|
signal;
|
|
60
61
|
constructor(authCall, workspace, groups, items, options = {
|
|
61
|
-
types: [
|
|
62
|
+
types: [...DefaultWorkspaceCatalogTypes],
|
|
62
63
|
excludeTags: [],
|
|
63
64
|
includeTags: [],
|
|
64
65
|
loadGroups: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/catalog/factory.ts"],"names":[],"mappings":"AAUA,OAAO,
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/catalog/factory.ts"],"names":[],"mappings":"AAUA,OAAO,EAEH,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACvC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEH,KAAK,eAAe,EAOpB,KAAK,MAAM,EAKd,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAM3E,qBAAa,4BAA6B,YAAW,wBAAwB;IAErE,OAAO,CAAC,QAAQ,CAAC,QAAQ;aACT,SAAS,EAAE,MAAM;aACjB,OAAO,EAAE,+BAA+B;IAMxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAT5B,YACqB,QAAQ,EAAE,2BAA2B,EACtC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,+BAKxB,EACgB,MAAM,CAAC,EAAE,WAAW,YAAA,EACrC;IAEG,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,wBAAwB,CAE/D;IAEM,WAAW,YAAa,OAAO,CAAC,+BAA+B,CAAC,KAAG,wBAAwB,CAMhG;IAEK,UAAU,YAAa,MAAM,KAAG,wBAAwB,CAI7D;IAEK,QAAQ,UAAW,eAAe,EAAE,KAAG,wBAAwB,CAIpE;IAEK,WAAW,SAAU,MAAM,EAAE,KAAG,wBAAwB,CAI7D;IAEK,WAAW,SAAU,MAAM,EAAE,KAAG,wBAAwB,CAI7D;IAEK,UAAU,CAAC,UAAU,EAAE,OAAO,GAAG,wBAAwB,CAI/D;IAEM,IAAI,QAAa,OAAO,CAAC,iBAAiB,CAAC,CAmChD;IAEF,OAAO,CAAC,wBAAwB,CAc9B;IAEF,OAAO,CAAC,oCAAoC,CAmB1C;IAEF,OAAO,CAAC,YAAY,CAuBlB;IAEF,OAAO,CAAC,SAAS,CAef;IAEF,OAAO,CAAC,sBAAsB,CAsB5B;IAIF,OAAO,CAAC,aAAa;CAYxB"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { sortBy, uniqBy } from "lodash-es";
|
|
3
3
|
import { MetadataUtilities, ValidateRelationsHeader } from "@gooddata/api-client-tiger";
|
|
4
4
|
import { EntitiesApi_GetAllEntitiesComputedAttributes, EntitiesApi_GetAllEntitiesFacts, EntitiesApi_GetAllEntitiesMetrics, } from "@gooddata/api-client-tiger/endpoints/entitiesObjects";
|
|
5
|
+
import { DefaultWorkspaceCatalogTypes, } from "@gooddata/sdk-backend-spi";
|
|
5
6
|
import { isCatalogAttribute, isCatalogComputedAttribute, isCatalogFact, isCatalogMeasure, } from "@gooddata/sdk-model";
|
|
6
7
|
import { convertComputedAttributeToCatalogItem, convertFact, convertMeasure, } from "../../../convertors/fromBackend/CatalogConverter.js";
|
|
7
8
|
import { TigerWorkspaceCatalog } from "./catalog.js";
|
|
@@ -13,7 +14,7 @@ export class TigerWorkspaceCatalogFactory {
|
|
|
13
14
|
options;
|
|
14
15
|
signal;
|
|
15
16
|
constructor(authCall, workspace, options = {
|
|
16
|
-
types: [
|
|
17
|
+
types: [...DefaultWorkspaceCatalogTypes],
|
|
17
18
|
excludeTags: [],
|
|
18
19
|
includeTags: [],
|
|
19
20
|
loadGroups: true,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type MetadataGetEntitiesWorkspaceParams } from "@gooddata/api-client-tiger";
|
|
2
2
|
import { type ObjRef } from "@gooddata/sdk-model";
|
|
3
|
-
export declare function tagsToRsqlFilter({ includeTags, excludeTags }: {
|
|
3
|
+
export declare function tagsToRsqlFilter({ includeTags, excludeTags, }: {
|
|
4
4
|
includeTags: ObjRef[];
|
|
5
5
|
excludeTags: ObjRef[];
|
|
6
6
|
}): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsqlFilter.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/catalog/rsqlFilter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,KAAK,MAAM,EAAY,MAAM,qBAAqB,CAAC;AAO5D,wBAAgB,gBAAgB,CAAC,EAC7B,WAAW,EACX,WAAW,
|
|
1
|
+
{"version":3,"file":"rsqlFilter.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/catalog/rsqlFilter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,KAAK,MAAM,EAAY,MAAM,qBAAqB,CAAC;AAO5D,wBAAgB,gBAAgB,CAAC,EAC7B,WAAW,EACX,WAAW,GACd,EAAE;IACC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;CACzB,GAAG,MAAM,CAgBT;AAED,wBAAgB,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,GAAG,SAAS,CAMtF;AAED,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,kCAAkC,EAC9E,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,MAAM,GACf,CAAC,CASH;AAED,wBAAgB,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,UAEtD;AAED,wBAAgB,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,UAErD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type EntitiesApiGetEntityAnalyticalDashboardsRequest } from "@gooddata/api-client-tiger";
|
|
2
|
+
import { type SupportedDashboardReferenceTypes } from "@gooddata/sdk-backend-spi";
|
|
3
|
+
type DashboardInclude = NonNullable<EntitiesApiGetEntityAnalyticalDashboardsRequest["include"]>[number];
|
|
4
|
+
/**
|
|
5
|
+
* Side-loads for a dashboard GET. Filter contexts are always side-loaded because dashboard
|
|
6
|
+
* conversion needs them; labels are fetched from filter-context requests when needed.
|
|
7
|
+
*/
|
|
8
|
+
export declare function dashboardSideloadIncludes(types: SupportedDashboardReferenceTypes[]): DashboardInclude[];
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=dashboardSideloads.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboardSideloads.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/dashboards/dashboardSideloads.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,+CAA+C,EAAE,MAAM,4BAA4B,CAAC;AAClG,OAAO,EAAE,KAAK,gCAAgC,EAAE,MAAM,2BAA2B,CAAC;AAElF,KAAK,gBAAgB,GAAG,WAAW,CAAC,+CAA+C,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAgBxG;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,gCAAgC,EAAE,GAAG,gBAAgB,EAAE,CAOvG"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
const SIDELOADED_REFERENCE_TYPES = [
|
|
3
|
+
"insight",
|
|
4
|
+
"dataSet",
|
|
5
|
+
"dashboardPlugin",
|
|
6
|
+
"analyticalDashboard",
|
|
7
|
+
];
|
|
8
|
+
const SIDELOAD_INCLUDE_BY_TYPE = {
|
|
9
|
+
insight: "visualizationObjects",
|
|
10
|
+
dataSet: "datasets",
|
|
11
|
+
dashboardPlugin: "dashboardPlugins",
|
|
12
|
+
analyticalDashboard: "analyticalDashboards",
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Side-loads for a dashboard GET. Filter contexts are always side-loaded because dashboard
|
|
16
|
+
* conversion needs them; labels are fetched from filter-context requests when needed.
|
|
17
|
+
*/
|
|
18
|
+
export function dashboardSideloadIncludes(types) {
|
|
19
|
+
return [
|
|
20
|
+
"filterContexts",
|
|
21
|
+
...SIDELOADED_REFERENCE_TYPES.filter((type) => types.includes(type)).map((type) => SIDELOAD_INCLUDE_BY_TYPE[type]),
|
|
22
|
+
];
|
|
23
|
+
}
|
|
@@ -25,9 +25,10 @@ import { addFilterLocalIdentifier } from "../../../utils/filterLocalidentifier.j
|
|
|
25
25
|
import { GET_OPTIMIZED_WORKSPACE_PARAMS } from "../constants.js";
|
|
26
26
|
import { getSettingsForCurrentUser } from "../settings/index.js";
|
|
27
27
|
import { buildDashboardPermissions } from "./dashboardPermissions.js";
|
|
28
|
+
import { dashboardSideloadIncludes } from "./dashboardSideloads.js";
|
|
28
29
|
import { DashboardsQuery } from "./dashboardsQuery.js";
|
|
29
30
|
import { getParametersMetadata, patchDashboardParametersFromExport } from "./parameters.js";
|
|
30
|
-
import {
|
|
31
|
+
import { fetchUnavailableFilterDisplayForms, resolveUnavailableDashboardReferences, } from "./referenceAvailability.js";
|
|
31
32
|
import { resolveWidgetFilters, resolveWidgetFiltersWithMultipleDateFilters } from "./widgetFilters.js";
|
|
32
33
|
export function getOrphanedTabFilterContexts(originalTabs, currentTabs) {
|
|
33
34
|
const currentRefs = currentTabs
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type JsonApiAnalyticalDashboardOutDocument, type JsonApiFilterContextOut, type RestrictedObject } from "@gooddata/api-client-tiger";
|
|
2
2
|
import type { IUnavailableDashboardReference, SupportedDashboardReferenceTypes } from "@gooddata/sdk-backend-spi";
|
|
3
3
|
import { type IDashboard } from "@gooddata/sdk-model";
|
|
4
4
|
import { type TigerAuthenticatedCallGuard } from "../../../types/index.js";
|
|
5
|
-
type DashboardInclude = NonNullable<EntitiesApiGetEntityAnalyticalDashboardsRequest["include"]>[number];
|
|
6
|
-
/**
|
|
7
|
-
* Side-loads for a dashboard GET that inspect exactly the requested types. Filter contexts are
|
|
8
|
-
* always side-loaded (the dashboard needs them); labels never are (see file header).
|
|
9
|
-
*/
|
|
10
|
-
export declare function dashboardSideloadIncludes(types: SupportedDashboardReferenceTypes[]): DashboardInclude[];
|
|
11
5
|
/**
|
|
12
6
|
* Resolves which of the requested dashboard references are unavailable and why.
|
|
13
7
|
*/
|
|
@@ -22,10 +16,10 @@ export declare function resolveUnavailableReferences(document: JsonApiAnalytical
|
|
|
22
16
|
export declare function resolveUnavailableDashboardReferences(document: JsonApiAnalyticalDashboardOutDocument, dashboard: IDashboard, types: SupportedDashboardReferenceTypes[]): IUnavailableDashboardReference[];
|
|
23
17
|
/**
|
|
24
18
|
* Resolves which labels (filter display forms) referenced by a filter context are unavailable.
|
|
25
|
-
* The filter context must have been requested with `include: ["labels"]
|
|
26
|
-
*
|
|
19
|
+
* The filter context must have been requested with `include: ["labels"]` so the response contains
|
|
20
|
+
* both relationship linkages and document-level `meta.restricted`.
|
|
27
21
|
*/
|
|
28
|
-
export declare function resolveUnavailableFilterContextReferences(context: JsonApiFilterContextOut,
|
|
22
|
+
export declare function resolveUnavailableFilterContextReferences(context: JsonApiFilterContextOut, restricted?: RestrictedObject[]): IUnavailableDashboardReference[];
|
|
29
23
|
/**
|
|
30
24
|
* Labels relate to filter-context entities, not to the dashboard: the dashboard GET side-loads the
|
|
31
25
|
* filter contexts as bare items (no `relationships`), so the existence linkage for filter display
|
|
@@ -45,5 +39,4 @@ export declare function fetchUnavailableFilterDisplayForms(authCall: TigerAuthen
|
|
|
45
39
|
* the backend can inspect — the synthetic export-override context is skipped by this rule.
|
|
46
40
|
*/
|
|
47
41
|
export declare function inspectableFilterContextIds(dashboard: IDashboard): string[];
|
|
48
|
-
export {};
|
|
49
42
|
//# sourceMappingURL=referenceAvailability.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"referenceAvailability.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/dashboards/referenceAvailability.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"referenceAvailability.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/dashboards/referenceAvailability.ts"],"names":[],"mappings":"AAEA,OAAO,EAGH,KAAK,qCAAqC,EAC1C,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EAExB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACR,8BAA8B,EAC9B,gCAAgC,EACnC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,UAAU,EAA0B,MAAM,qBAAqB,CAAC;AAE9E,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AA6H3E;;GAEG;AACH,wBAAgB,4BAA4B,CACxC,QAAQ,EAAE,qCAAqC,EAC/C,KAAK,EAAE,gCAAgC,EAAE,GAC1C,8BAA8B,EAAE,CAGlC;AAED;;;;;;GAMG;AACH,wBAAgB,qCAAqC,CACjD,QAAQ,EAAE,qCAAqC,EAC/C,SAAS,EAAE,UAAU,EACrB,KAAK,EAAE,gCAAgC,EAAE,GAC1C,8BAA8B,EAAE,CAWlC;AAED;;;;GAIG;AACH,wBAAgB,yCAAyC,CACrD,OAAO,EAAE,uBAAuB,EAChC,UAAU,CAAC,EAAE,gBAAgB,EAAE,GAChC,8BAA8B,EAAE,CAIlC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,kCAAkC,CACpD,QAAQ,EAAE,2BAA2B,EACrC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,UAAU,EACrB,KAAK,EAAE,gCAAgC,EAAE,GAC1C,OAAO,CAAC,8BAA8B,EAAE,CAAC,CAwB3C;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,EAAE,CAQ3E"}
|
|
@@ -14,18 +14,6 @@ const RELATIONSHIP_KEYS = {
|
|
|
14
14
|
displayForm: "labels",
|
|
15
15
|
analyticalDashboard: "analyticalDashboards",
|
|
16
16
|
};
|
|
17
|
-
// in the order the dashboard GET has always requested them (recorded requests match on the URL)
|
|
18
|
-
const SIDELOADED_TYPES = ["insight", "dataSet", "dashboardPlugin", "analyticalDashboard"];
|
|
19
|
-
/**
|
|
20
|
-
* Side-loads for a dashboard GET that inspect exactly the requested types. Filter contexts are
|
|
21
|
-
* always side-loaded (the dashboard needs them); labels never are (see file header).
|
|
22
|
-
*/
|
|
23
|
-
export function dashboardSideloadIncludes(types) {
|
|
24
|
-
return [
|
|
25
|
-
RELATIONSHIP_KEYS.filterContext,
|
|
26
|
-
...SIDELOADED_TYPES.filter((type) => types.includes(type)).map((type) => RELATIONSHIP_KEYS[type]),
|
|
27
|
-
];
|
|
28
|
-
}
|
|
29
17
|
function isLinkage(value) {
|
|
30
18
|
return (typeof value === "object" &&
|
|
31
19
|
value !== null &&
|
|
@@ -36,9 +24,6 @@ function relationshipIds(document, key) {
|
|
|
36
24
|
const data = document.data.relationships?.[key]?.data;
|
|
37
25
|
return new Set(Array.isArray(data) ? data.filter(isLinkage).map((linkage) => linkage.id) : []);
|
|
38
26
|
}
|
|
39
|
-
function includedIds(document, tigerType) {
|
|
40
|
-
return new Set((document.included ?? []).filter((item) => item.type === tigerType).map((item) => item.id));
|
|
41
|
-
}
|
|
42
27
|
/**
|
|
43
28
|
* Collects the `{ identifier: { id, type } }` refs from stored content, grouped by tiger type.
|
|
44
29
|
* Content is free-form JSON, so the walk is structural, not schema-bound.
|
|
@@ -66,14 +51,14 @@ function diffInspectedTypes(document, inspected) {
|
|
|
66
51
|
const tigerType = objectTypeToTigerIdType[type];
|
|
67
52
|
const selfId = document.data.type === tigerType ? document.data.id : undefined;
|
|
68
53
|
const related = relationshipIds(document, RELATIONSHIP_KEYS[type]);
|
|
69
|
-
const
|
|
70
|
-
for (const
|
|
71
|
-
if (id !== selfId &&
|
|
72
|
-
unavailable.push({ ref: idRef(id, type), type, reason: "forbidden" });
|
|
54
|
+
const restricted = document.meta?.restricted ?? [];
|
|
55
|
+
for (const linkage of restricted) {
|
|
56
|
+
if (linkage.type === tigerType && linkage.id !== selfId && related.has(linkage.id)) {
|
|
57
|
+
unavailable.push({ ref: idRef(linkage.id, type), type, reason: "forbidden" });
|
|
73
58
|
}
|
|
74
59
|
}
|
|
75
60
|
for (const id of contentRefIds.get(tigerType) ?? []) {
|
|
76
|
-
if (id !== selfId && !related.has(id)
|
|
61
|
+
if (id !== selfId && !related.has(id)) {
|
|
77
62
|
unavailable.push({ ref: idRef(id, type), type, reason: "notFound" });
|
|
78
63
|
}
|
|
79
64
|
}
|
|
@@ -105,11 +90,13 @@ export function resolveUnavailableDashboardReferences(document, dashboard, types
|
|
|
105
90
|
}
|
|
106
91
|
/**
|
|
107
92
|
* Resolves which labels (filter display forms) referenced by a filter context are unavailable.
|
|
108
|
-
* The filter context must have been requested with `include: ["labels"]
|
|
109
|
-
*
|
|
93
|
+
* The filter context must have been requested with `include: ["labels"]` so the response contains
|
|
94
|
+
* both relationship linkages and document-level `meta.restricted`.
|
|
110
95
|
*/
|
|
111
|
-
export function resolveUnavailableFilterContextReferences(context,
|
|
112
|
-
return diffInspectedTypes({ data: context,
|
|
96
|
+
export function resolveUnavailableFilterContextReferences(context, restricted) {
|
|
97
|
+
return diffInspectedTypes({ data: context, meta: { restricted } }, [
|
|
98
|
+
"displayForm",
|
|
99
|
+
]);
|
|
113
100
|
}
|
|
114
101
|
/**
|
|
115
102
|
* Labels relate to filter-context entities, not to the dashboard: the dashboard GET side-loads the
|
|
@@ -135,7 +122,7 @@ export async function fetchUnavailableFilterDisplayForms(authCall, workspaceId,
|
|
|
135
122
|
include: ["labels"],
|
|
136
123
|
size: filterContextIds.length,
|
|
137
124
|
}).then((result) => result.data));
|
|
138
|
-
return list.data.flatMap((context) => resolveUnavailableFilterContextReferences(context, list.
|
|
125
|
+
return list.data.flatMap((context) => resolveUnavailableFilterContextReferences(context, list.meta?.restricted));
|
|
139
126
|
}
|
|
140
127
|
catch (error) {
|
|
141
128
|
console.warn("Filter context label availability could not be resolved; treating labels as available.", error);
|
|
@@ -13,7 +13,7 @@ export declare class TigerPreparedExecution implements IPreparedExecution {
|
|
|
13
13
|
readonly context?: IExecutionContext;
|
|
14
14
|
constructor(authCall: TigerAuthenticatedCallGuard, definition: IExecutionDefinition, executionFactory: IExecutionFactory, dateFormatter: DateFormatter, options?: IPreparedExecutionOptions | undefined);
|
|
15
15
|
execute(): Promise<IExecutionResult>;
|
|
16
|
-
explain<T extends ExplainType | undefined>({ explainType }: ExplainConfig<T>): IExplainProvider<T>;
|
|
16
|
+
explain<T extends ExplainType | undefined>({ explainType, }: ExplainConfig<T>): IExplainProvider<T>;
|
|
17
17
|
withDimensions(...dimsOrGen: Array<IDimension | DimensionGenerator>): IPreparedExecution;
|
|
18
18
|
withBuckets(...buckets: IBucket[]): IPreparedExecution;
|
|
19
19
|
withSorting(...items: ISortItem[]): IPreparedExecution;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preparedExecution.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/execution/preparedExecution.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAEjC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACH,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,SAAS,EASjB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAE7F,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAK3E,qBAAa,sBAAuB,YAAW,kBAAkB;IAMzD,OAAO,CAAC,QAAQ,CAAC,QAAQ;aACT,UAAU,EAAE,oBAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa;aACd,OAAO,CAAC,EAAE,yBAAyB;IATvD,OAAO,CAAC,YAAY,CAAqB;IACzC,SAAgB,MAAM,EAAE,WAAW,GAAG,SAAS,CAAa;IAC5D,SAAgB,OAAO,CAAC,EAAE,iBAAiB,CAAa;IAExD,YACqB,QAAQ,EAAE,2BAA2B,EACtC,UAAU,EAAE,oBAAoB,EAC/B,gBAAgB,EAAE,iBAAiB,EACnC,aAAa,EAAE,aAAa,EAC7B,OAAO,CAAC,EAAE,yBAAyB,YAAA,EAItD;IAEY,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,CA+BhD;IAEM,OAAO,CAAC,CAAC,SAAS,WAAW,GAAG,SAAS,EAAE,EAC9C,WAAW,
|
|
1
|
+
{"version":3,"file":"preparedExecution.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/execution/preparedExecution.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAEjC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACH,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,SAAS,EASjB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAE7F,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAK3E,qBAAa,sBAAuB,YAAW,kBAAkB;IAMzD,OAAO,CAAC,QAAQ,CAAC,QAAQ;aACT,UAAU,EAAE,oBAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa;aACd,OAAO,CAAC,EAAE,yBAAyB;IATvD,OAAO,CAAC,YAAY,CAAqB;IACzC,SAAgB,MAAM,EAAE,WAAW,GAAG,SAAS,CAAa;IAC5D,SAAgB,OAAO,CAAC,EAAE,iBAAiB,CAAa;IAExD,YACqB,QAAQ,EAAE,2BAA2B,EACtC,UAAU,EAAE,oBAAoB,EAC/B,gBAAgB,EAAE,iBAAiB,EACnC,aAAa,EAAE,aAAa,EAC7B,OAAO,CAAC,EAAE,yBAAyB,YAAA,EAItD;IAEY,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,CA+BhD;IAEM,OAAO,CAAC,CAAC,SAAS,WAAW,GAAG,SAAS,EAAE,EAC9C,WAAW,GACd,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAoCxC;IAEM,cAAc,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,UAAU,GAAG,kBAAkB,CAAC,GAAG,kBAAkB,CAK9F;IAEM,WAAW,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAE5D;IAEM,WAAW,CAAC,GAAG,KAAK,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAE5D;IAEM,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,kBAAkB,CAQzD;IAEM,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,CAK5D;IAEM,WAAW,IAAI,MAAM,CAM3B;IAEM,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,kBAAkB,CAElE;IAEM,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAEhD;IAEM,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,kBAAkB,CAQjE;CACJ"}
|
|
@@ -58,7 +58,7 @@ export declare class ConversationThread implements IChatConversationThread {
|
|
|
58
58
|
/**
|
|
59
59
|
* Resets the conversation. This creates a new conversation.
|
|
60
60
|
*/
|
|
61
|
-
reset(): Promise<IChatConversation>;
|
|
61
|
+
reset(options?: IChatConversationCreateOptions): Promise<IChatConversation>;
|
|
62
62
|
/**
|
|
63
63
|
* Saves feedback for the conversation item.
|
|
64
64
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatConversations.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/genAI/ChatConversations.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ChatConversations.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/genAI/ChatConversations.ts"],"names":[],"mappings":"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"}
|
|
@@ -166,8 +166,8 @@ export class ConversationThread {
|
|
|
166
166
|
/**
|
|
167
167
|
* Resets the conversation. This creates a new conversation.
|
|
168
168
|
*/
|
|
169
|
-
async reset() {
|
|
170
|
-
const conv = await this.service.create();
|
|
169
|
+
async reset(options) {
|
|
170
|
+
const conv = await this.service.create(options);
|
|
171
171
|
this.conversationId = conv.id;
|
|
172
172
|
return conv;
|
|
173
173
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IGetMeasureOptions, IMeasureExpressionToken, IMeasureKeyDrivers, IMeasureReferencing, ISaveMeasureOptions, IWorkspaceMeasuresService } from "@gooddata/sdk-backend-spi";
|
|
2
|
-
import { type IMeasure, type IMeasureMetadataObject, type IMeasureMetadataObjectDefinition, type
|
|
1
|
+
import type { IGetMeasureOptions, IMeasureExpressionToken, IMeasureKeyDrivers, IMeasureReferencing, ISaveMeasureOptions, IUpdateMeasureMetaPayload, IWorkspaceMeasuresService } from "@gooddata/sdk-backend-spi";
|
|
2
|
+
import { type IMeasure, type IMeasureMetadataObject, type IMeasureMetadataObjectDefinition, type IObjectCertificationWrite, type ObjRef } from "@gooddata/sdk-model";
|
|
3
3
|
import { type TigerAuthenticatedCallGuard } from "../../../types/index.js";
|
|
4
4
|
import { MeasuresQuery } from "./measuresQuery.js";
|
|
5
5
|
export declare class TigerWorkspaceMeasures implements IWorkspaceMeasuresService {
|
|
@@ -12,7 +12,7 @@ export declare class TigerWorkspaceMeasures implements IWorkspaceMeasuresService
|
|
|
12
12
|
getMeasureExpressionTokens(ref: ObjRef): Promise<IMeasureExpressionToken[]>;
|
|
13
13
|
createMeasure(measure: IMeasureMetadataObjectDefinition, options?: ISaveMeasureOptions): Promise<IMeasureMetadataObject>;
|
|
14
14
|
updateMeasure(measure: IMeasureMetadataObject): Promise<IMeasureMetadataObject>;
|
|
15
|
-
updateMeasureMeta(measure:
|
|
15
|
+
updateMeasureMeta(measure: IUpdateMeasureMetaPayload): Promise<IMeasureMetadataObject>;
|
|
16
16
|
setCertification(ref: ObjRef, certification?: IObjectCertificationWrite): Promise<void>;
|
|
17
17
|
deleteMeasure(measureRef: ObjRef): Promise<void>;
|
|
18
18
|
getMeasureReferencingObjects: (ref: ObjRef) => Promise<IMeasureReferencing>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/measures/index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACR,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACH,KAAK,QAAQ,EACb,KAAK,sBAAsB,EAC3B,KAAK,gCAAgC,EACrC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/backend/workspace/measures/index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACR,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,EAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACH,KAAK,QAAQ,EACb,KAAK,sBAAsB,EAC3B,KAAK,gCAAgC,EACrC,KAAK,yBAAyB,EAC9B,KAAK,MAAM,EAEd,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAI3E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAQnD,qBAAa,sBAAuB,YAAW,yBAAyB;IAEhE,OAAO,CAAC,QAAQ,CAAC,QAAQ;aACT,SAAS,EAAE,MAAM;IAFrC,YACqB,QAAQ,EAAE,2BAA2B,EACtC,SAAS,EAAE,MAAM,EACjC;IAES,iBAAiB,CAC1B,OAAO,EAAE,QAAQ,EACjB,OAAO,CAAC,EAAE;QAAE,aAAa,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,kBAAkB,CAAC,CAwC7B;IAEY,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CA2BvF;IAEK,aAAa,CACf,OAAO,EAAE,gCAAgC,EACzC,OAAO,GAAE,mBAAwB,GAClC,OAAO,CAAC,sBAAsB,CAAC,CAiBjC;IAEK,aAAa,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAkBpF;IAEK,iBAAiB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAkC3F;IAEK,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAY5F;IAEK,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASrD;IAEM,4BAA4B,QAAe,MAAM,KAAG,OAAO,CAAC,mBAAmB,CAAC,CAqCrF;IAEK,gBAAgB,IAAI,aAAa,CAEvC;IAEY,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAYtG;IAEY,sBAAsB,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBrG;CACJ"}
|
|
@@ -5,6 +5,7 @@ import { EntitiesApi_CreateEntityMetrics, EntitiesApi_DeleteEntityMetrics, Entit
|
|
|
5
5
|
import { SmartFunctionsApi_KeyDriverAnalysis, SmartFunctionsApi_KeyDriverAnalysisResult, } from "@gooddata/api-client-tiger/endpoints/smartFunctions";
|
|
6
6
|
import { ActionsApi_ComputeValidObjects } from "@gooddata/api-client-tiger/endpoints/validObjects";
|
|
7
7
|
import { isIdentifierRef, } from "@gooddata/sdk-model";
|
|
8
|
+
import { toTigerConditionalFormatting } from "../../../convertors/fromBackend/conditionalFormattingConversions.js";
|
|
8
9
|
import { visualizationObjectsItemToInsight } from "../../../convertors/fromBackend/InsightConverter.js";
|
|
9
10
|
import { convertMetricFromBackend } from "../../../convertors/fromBackend/MetricConverter.js";
|
|
10
11
|
import { jsonApiIdToObjRef } from "../../../convertors/fromBackend/ObjRefConverter.js";
|
|
@@ -122,6 +123,13 @@ export class TigerWorkspaceMeasures {
|
|
|
122
123
|
...(measure.isHiddenFromKda === undefined
|
|
123
124
|
? {}
|
|
124
125
|
: { isHiddenFromKda: measure.isHiddenFromKda }),
|
|
126
|
+
...(measure.conditionalFormatting === undefined
|
|
127
|
+
? {}
|
|
128
|
+
: {
|
|
129
|
+
conditionalFormatting: measure.conditionalFormatting
|
|
130
|
+
? toTigerConditionalFormatting(measure.conditionalFormatting)
|
|
131
|
+
: null,
|
|
132
|
+
}),
|
|
125
133
|
},
|
|
126
134
|
},
|
|
127
135
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type JsonApiAttributeHierarchyOut, type JsonApiAttributeHierarchyOutWithLinks } from "@gooddata/api-client-tiger";
|
|
2
2
|
import { type ICatalogAttributeHierarchy } from "@gooddata/sdk-model";
|
|
3
|
-
export declare function convertAttributeHierarchy({ id, type, attributes, links }: JsonApiAttributeHierarchyOutWithLinks): ICatalogAttributeHierarchy;
|
|
4
|
-
export declare function convertAttributeHierarchyWithoutLinks({ id, type, attributes }: JsonApiAttributeHierarchyOut): ICatalogAttributeHierarchy;
|
|
3
|
+
export declare function convertAttributeHierarchy({ id, type, attributes, links, }: JsonApiAttributeHierarchyOutWithLinks): ICatalogAttributeHierarchy;
|
|
4
|
+
export declare function convertAttributeHierarchyWithoutLinks({ id, type, attributes, }: JsonApiAttributeHierarchyOut): ICatalogAttributeHierarchy;
|
|
5
5
|
//# sourceMappingURL=HierarchyConverter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HierarchyConverter.d.ts","sourceRoot":"","sources":["../../../src/convertors/fromBackend/HierarchyConverter.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,4BAA4B,EAEjC,KAAK,qCAAqC,EAE7C,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,KAAK,0BAA0B,EAA0B,MAAM,qBAAqB,CAAC;AAE9F,wBAAgB,yBAAyB,CAAC,EACtC,EAAE,EACF,IAAI,EACJ,UAAU,EACV,KAAK,
|
|
1
|
+
{"version":3,"file":"HierarchyConverter.d.ts","sourceRoot":"","sources":["../../../src/convertors/fromBackend/HierarchyConverter.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,4BAA4B,EAEjC,KAAK,qCAAqC,EAE7C,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,KAAK,0BAA0B,EAA0B,MAAM,qBAAqB,CAAC;AAE9F,wBAAgB,yBAAyB,CAAC,EACtC,EAAE,EACF,IAAI,EACJ,UAAU,EACV,KAAK,GACR,EAAE,qCAAqC,GAAG,0BAA0B,CAEpE;AAED,wBAAgB,qCAAqC,CAAC,EAClD,EAAE,EACF,IAAI,EACJ,UAAU,GACb,EAAE,4BAA4B,GAAG,0BAA0B,CAE3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetadataConverter.d.ts","sourceRoot":"","sources":["../../../src/convertors/fromBackend/MetadataConverter.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,sCAAsC,EAC3C,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAChC,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,oCAAoC,EACzC,KAAK,0BAA0B,EAE/B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAGjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACH,KAAK,sBAAsB,EAM9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACH,KAAK,mCAAmC,EACxC,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAE9B,MAAM,qBAAqB,CAAC;AAM7B,MAAM,MAAM,qBAAqB,GAC3B,4BAA4B,GAC5B,oCAAoC,GACpC,uBAAuB,GACvB,yBAAyB,GACzB,wBAAwB,GACxB,0BAA0B,GAC1B,sCAAsC,CAAC;AAE7C,eAAO,MAAM,iCAAiC,GACzC,KAAK,SAAS,qBAAqB,EAAE,CAAC,SAAS,sBAAsB,QAAQ,KAAK,eACzE,CAAC,KAAG,CAUb,CAAC;AAEN,wBAAgB,cAAc,CAC1B,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC,GAAG,SAAS,GAC9D,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAQ1C;AAED,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC,GAAG,SAAS,GAC9D,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAQ5C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAClC,SAAS,EAAE,mBAAmB,GAAG,4BAA4B,EAC7D,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GACpD,mCAAmC,EAAE,
|
|
1
|
+
{"version":3,"file":"MetadataConverter.d.ts","sourceRoot":"","sources":["../../../src/convertors/fromBackend/MetadataConverter.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,sCAAsC,EAC3C,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAChC,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,oCAAoC,EACzC,KAAK,0BAA0B,EAE/B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAGjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACH,KAAK,sBAAsB,EAM9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACH,KAAK,mCAAmC,EACxC,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAE9B,MAAM,qBAAqB,CAAC;AAM7B,MAAM,MAAM,qBAAqB,GAC3B,4BAA4B,GAC5B,oCAAoC,GACpC,uBAAuB,GACvB,yBAAyB,GACzB,wBAAwB,GACxB,0BAA0B,GAC1B,sCAAsC,CAAC;AAE7C,eAAO,MAAM,iCAAiC,GACzC,KAAK,SAAS,qBAAqB,EAAE,CAAC,SAAS,sBAAsB,QAAQ,KAAK,eACzE,CAAC,KAAG,CAUb,CAAC;AAEN,wBAAgB,cAAc,CAC1B,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC,GAAG,SAAS,GAC9D,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAQ1C;AAED,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC,GAAG,SAAS,GAC9D,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAQ5C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAClC,SAAS,EAAE,mBAAmB,GAAG,4BAA4B,EAC7D,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GACpD,mCAAmC,EAAE,CAwBvC;AA8ED;;;;GAIG;AACH,wBAAgB,oCAAoC,CAChD,SAAS,EAAE,2BAA2B,GACvC,wBAAwB,CAK1B;AAED;;;;GAIG;AACH,wBAAgB,qCAAqC,CACjD,UAAU,EAAE,uBAAuB,GACpC,wBAAwB,EAAE,CAW5B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,EAAE,CAWtF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,sBAAsB,GAAG,mBAAmB,CAehF;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,oBAAoB,GAAG,sBAAsB,EAAE,CAE/F;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,0BAA0B,GAAG,sBAAsB,CAInG;AAyBD;;;;GAIG;AACH,wBAAgB,mCAAmC,CAC/C,SAAS,EAAE,sCAAsC,GAClD,wBAAwB,CAI1B"}
|
|
@@ -36,7 +36,12 @@ export function createDataSetMap(included) {
|
|
|
36
36
|
*/
|
|
37
37
|
export function convertAttributeLabels(attribute, labelsMap) {
|
|
38
38
|
const labelsRefs = attribute.relationships?.labels?.data ?? [];
|
|
39
|
-
const
|
|
39
|
+
const defaultViewRef = attribute.relationships?.defaultView?.data;
|
|
40
|
+
// A label the user may not view is withheld from `included` but keeps its `relationships` linkage,
|
|
41
|
+
// so an unresolvable defaultView must read as absent - otherwise the comparison below matches
|
|
42
|
+
// nothing and no label is marked default. Primary is the safe fallback: it inherits the
|
|
43
|
+
// attribute's view and so can never itself be restricted.
|
|
44
|
+
const defaultView = defaultViewRef && labelsMap[defaultViewRef.id] ? defaultViewRef : undefined;
|
|
40
45
|
return labelsRefs
|
|
41
46
|
.map((ref) => {
|
|
42
47
|
const label = labelsMap[ref.id];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetricConverter.d.ts","sourceRoot":"","sources":["../../../src/convertors/fromBackend/MetricConverter.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,mCAAmC,EACxC,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EACjC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,KAAK,sBAAsB,EAAS,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"MetricConverter.d.ts","sourceRoot":"","sources":["../../../src/convertors/fromBackend/MetricConverter.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,mCAAmC,EACxC,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EACjC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,KAAK,sBAAsB,EAAS,MAAM,qBAAqB,CAAC;AAczE,wBAAgB,wBAAwB,CACpC,IAAI,EAAE,wBAAwB,GAAG,yBAAyB,EAC1D,QAAQ,GAAE,mCAAmC,EAAO,GACrD,sBAAsB,CA+BxB"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { newMeasureMetadataObject } from "@gooddata/sdk-backend-base";
|
|
3
3
|
import { idRef } from "@gooddata/sdk-model";
|
|
4
4
|
import { convertCertificationFromBackend } from "./CertificationConverter.js";
|
|
5
|
+
import { fromTigerConditionalFormatting } from "./conditionalFormattingConversions.js";
|
|
5
6
|
import { isInheritedObject } from "./ObjectInheritance.js";
|
|
6
7
|
import { convertUserIdentifier } from "./UsersConverter.js";
|
|
7
8
|
/**
|
|
@@ -24,6 +25,9 @@ export function convertMetricFromBackend(data, included = []) {
|
|
|
24
25
|
.expression(attributes.content.maql)
|
|
25
26
|
.format(attributes.content.format ?? "")
|
|
26
27
|
.metricType(attributes.content.metricType)
|
|
28
|
+
.conditionalFormatting(attributes.conditionalFormatting
|
|
29
|
+
? fromTigerConditionalFormatting(attributes.conditionalFormatting)
|
|
30
|
+
: undefined)
|
|
27
31
|
.created(createdAt ?? undefined)
|
|
28
32
|
.createdBy(convertUserIdentifier(createdBy, included))
|
|
29
33
|
.updated(modifiedAt ?? undefined)
|
package/esm/convertors/fromBackend/analyticalDashboards/v2/AnalyticalDashboardConverter.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export declare function convertDashboard(analyticalDashboard: JsonApiAnalyticalD
|
|
|
17
17
|
*/
|
|
18
18
|
export declare function convertFilterContextFromBackend(filterContext: JsonApiFilterContextOutDocument): IFilterContext;
|
|
19
19
|
export declare function convertFilterViewContextFilters(content: AnalyticalDashboardModelV2.IFilterContextWithTab): FilterContextItem[];
|
|
20
|
-
export declare function convertDashboardPlugin({ data, links, included }: JsonApiDashboardPluginOutDocument): IDashboardPlugin;
|
|
20
|
+
export declare function convertDashboardPlugin({ data, links, included, }: JsonApiDashboardPluginOutDocument): IDashboardPlugin;
|
|
21
21
|
export declare function convertDashboardPluginWithLinks(plugin: JsonApiDashboardPluginOutWithLinks, included?: JsonApiAnalyticalDashboardOutIncludes[]): IDashboardPlugin;
|
|
22
22
|
export declare function prepareDrillLocalIdentifierIfMissing(layout?: IDashboardLayout): IDashboardLayout<IDashboardWidget> | undefined;
|
|
23
23
|
//# sourceMappingURL=AnalyticalDashboardConverter.d.ts.map
|
package/esm/convertors/fromBackend/analyticalDashboards/v2/AnalyticalDashboardConverter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnalyticalDashboardConverter.d.ts","sourceRoot":"","sources":["../../../../../src/convertors/fromBackend/analyticalDashboards/v2/AnalyticalDashboardConverter.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,KAAK,0BAA0B,EAK/B,KAAK,wBAAwB,EAC7B,KAAK,qCAAqC,EAC1C,KAAK,qCAAqC,EAC1C,KAAK,iCAAiC,EACtC,KAAK,kCAAkC,EACvC,KAAK,+BAA+B,EAEvC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,UAAU,EAIf,KAAK,gBAAgB,EAGrB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EAIrB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAUtB,MAAM,qBAAqB,CAAC;AAgG7B,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,wBAAwB,GAAG,mBAAmB,CAQlG;AA4ID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC5B,mBAAmB,EAAE,qCAAqC,EAC1D,aAAa,CAAC,EAAE,cAAc,GAC/B,UAAU,CA+EZ;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC3C,aAAa,EAAE,+BAA+B,GAC/C,cAAc,CAYhB;AAED,wBAAgB,+BAA+B,CAC3C,OAAO,EAAE,0BAA0B,CAAC,qBAAqB,GAC1D,iBAAiB,EAAE,CAErB;AAED,wBAAgB,sBAAsB,CAAC,EACnC,IAAI,EACJ,KAAK,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"AnalyticalDashboardConverter.d.ts","sourceRoot":"","sources":["../../../../../src/convertors/fromBackend/analyticalDashboards/v2/AnalyticalDashboardConverter.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,KAAK,0BAA0B,EAK/B,KAAK,wBAAwB,EAC7B,KAAK,qCAAqC,EAC1C,KAAK,qCAAqC,EAC1C,KAAK,iCAAiC,EACtC,KAAK,kCAAkC,EACvC,KAAK,+BAA+B,EAEvC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,UAAU,EAIf,KAAK,gBAAgB,EAGrB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EAIrB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAUtB,MAAM,qBAAqB,CAAC;AAgG7B,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,wBAAwB,GAAG,mBAAmB,CAQlG;AA4ID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC5B,mBAAmB,EAAE,qCAAqC,EAC1D,aAAa,CAAC,EAAE,cAAc,GAC/B,UAAU,CA+EZ;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC3C,aAAa,EAAE,+BAA+B,GAC/C,cAAc,CAYhB;AAED,wBAAgB,+BAA+B,CAC3C,OAAO,EAAE,0BAA0B,CAAC,qBAAqB,GAC1D,iBAAiB,EAAE,CAErB;AAED,wBAAgB,sBAAsB,CAAC,EACnC,IAAI,EACJ,KAAK,EACL,QAAQ,GACX,EAAE,iCAAiC,GAAG,gBAAgB,CAoBtD;AAED,wBAAgB,+BAA+B,CAC3C,MAAM,EAAE,kCAAkC,EAC1C,QAAQ,GAAE,qCAAqC,EAAO,GACvD,gBAAgB,CAoBlB;AAED,wBAAgB,oCAAoC,CAAC,MAAM,CAAC,EAAE,gBAAgB,kDA2B7E"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type JsonApiMetricInAttributesConditionalFormatting as TigerConditionalFormatting } from "@gooddata/api-client-tiger";
|
|
2
|
+
import { type ISemanticConditionalFormatting } from "@gooddata/sdk-model";
|
|
3
|
+
/**
|
|
4
|
+
* Converts semantic-layer conditional formatting to the metadata-api wire shape.
|
|
5
|
+
*/
|
|
6
|
+
export declare function toTigerConditionalFormatting(conditionalFormatting: ISemanticConditionalFormatting): TigerConditionalFormatting;
|
|
7
|
+
/**
|
|
8
|
+
* Converts metadata-api wire conditional formatting back to the SDK model. A wire condition without
|
|
9
|
+
* an `id` (another API client may not assign one) gets a fresh client-side one.
|
|
10
|
+
*/
|
|
11
|
+
export declare function fromTigerConditionalFormatting(conditionalFormatting: TigerConditionalFormatting): ISemanticConditionalFormatting;
|
|
12
|
+
//# sourceMappingURL=conditionalFormattingConversions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conditionalFormattingConversions.d.ts","sourceRoot":"","sources":["../../../src/convertors/fromBackend/conditionalFormattingConversions.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,8CAA8C,IAAI,0BAA0B,EAEpF,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAGH,KAAK,8BAA8B,EAEtC,MAAM,qBAAqB,CAAC;AAyB7B;;GAEG;AACH,wBAAgB,4BAA4B,CACxC,qBAAqB,EAAE,8BAA8B,GACtD,0BAA0B,CAQ5B;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC1C,qBAAqB,EAAE,0BAA0B,GAClD,8BAA8B,CAShC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
import { v4 as uuid } from "uuid";
|
|
3
|
+
import { isDateFilterGranularity, } from "@gooddata/sdk-model";
|
|
4
|
+
import { toSdkGranularity, toTigerGranularity } from "./dateGranularityConversions.js";
|
|
5
|
+
// The wire shape equals the SDK model except for the relative-date granularity vocabulary. A wire
|
|
6
|
+
// granularity outside DateFilterGranularity degrades to "GDC.time.date" (see toSdkGranularity).
|
|
7
|
+
const FALLBACK_GRANULARITY = "GDC.time.date";
|
|
8
|
+
function toTigerValue(value) {
|
|
9
|
+
return value.kind === "relativeDate"
|
|
10
|
+
? { ...value, granularity: toTigerGranularity(value.granularity) }
|
|
11
|
+
: value;
|
|
12
|
+
}
|
|
13
|
+
function fromTigerValue(value) {
|
|
14
|
+
if (value.kind !== "relativeDate") {
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
const granularity = toSdkGranularity(value.granularity);
|
|
18
|
+
return {
|
|
19
|
+
...value,
|
|
20
|
+
granularity: isDateFilterGranularity(granularity) ? granularity : FALLBACK_GRANULARITY,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Converts semantic-layer conditional formatting to the metadata-api wire shape.
|
|
25
|
+
*/
|
|
26
|
+
export function toTigerConditionalFormatting(conditionalFormatting) {
|
|
27
|
+
return {
|
|
28
|
+
enabled: conditionalFormatting.enabled ?? true,
|
|
29
|
+
conditions: conditionalFormatting.conditions.map((condition) => ({
|
|
30
|
+
...condition,
|
|
31
|
+
value: toTigerValue(condition.value),
|
|
32
|
+
})),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Converts metadata-api wire conditional formatting back to the SDK model. A wire condition without
|
|
37
|
+
* an `id` (another API client may not assign one) gets a fresh client-side one.
|
|
38
|
+
*/
|
|
39
|
+
export function fromTigerConditionalFormatting(conditionalFormatting) {
|
|
40
|
+
return {
|
|
41
|
+
enabled: conditionalFormatting.enabled,
|
|
42
|
+
conditions: conditionalFormatting.conditions.map((condition) => ({
|
|
43
|
+
...condition,
|
|
44
|
+
id: condition.id ?? uuid(),
|
|
45
|
+
value: fromTigerValue(condition.value),
|
|
46
|
+
})),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"genAIConvertor.d.ts","sourceRoot":"","sources":["../../../src/convertors/fromBackend/genAIConvertor.ts"],"names":[],"mappings":"AAKA,OAAO,EAGH,KAAK,0BAA0B,EAC/B,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,
|
|
1
|
+
{"version":3,"file":"genAIConvertor.d.ts","sourceRoot":"","sources":["../../../src/convertors/fromBackend/genAIConvertor.ts"],"names":[],"mappings":"AAKA,OAAO,EAGH,KAAK,0BAA0B,EAC/B,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAI/B,KAAK,yBAAyB,EAI9B,KAAK,aAAa,EAQrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEH,KAAK,iBAAiB,EAGtB,KAAK,sBAAsB,EAE3B,KAAK,gCAAgC,EACrC,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAGhC,KAAK,gBAAgB,EAExB,MAAM,2BAA2B,CAAC;AAuCnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAIhE,wBAAgB,kCAAkC,CAAC,YAAY,EAAE,sBAAsB,GAAG,iBAAiB,CAS1G;AAED,wBAAgB,sCAAsC,CAClD,IAAI,EAAE,0BAA0B,EAChC,SAAS,EAAE,0BAA0B,CAAC,WAAW,CAAC,GAAG,SAAS,EAC9D,OAAO,EAAE,qBAAqB,EAAE,EAChC,cAAc,EAAE,cAAc,EAC9B,MAAM,CAAC,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,MAAM,GAClB,qBAAqB,GAAG,SAAS,CA6BnC;AAED,wBAAgB,uCAAuC,CACnD,KAAK,EAAE,0BAA0B,EAAE,EACnC,SAAS,EAAE,0BAA0B,CAAC,WAAW,CAAC,GAAG,SAAS,EAC9D,cAAc,EAAE,cAAc,EAC9B,MAAM,CAAC,EAAE,gBAAgB,EACzB,QAAQ,CAAC,EAAE,MAAM,GAClB,qBAAqB,EAAE,CAkBzB;AAoJD,wBAAgB,uCAAuC,CACnD,IAAI,EAAE,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,EACrE,OAAO,CAAC,EAAE,MAAM,GACjB,sBAAsB,CAQxB;AAED;;;GAGG;AACH,wBAAgB,iDAAiD,CAC7D,IAAI,EAAE,yBAAyB,EAC/B,OAAO,CAAC,EAAE,MAAM,GACjB,gCAAgC,CAgBlC;AAED;;;;GAIG;AACH,wBAAgB,4CAA4C,CACxD,MAAM,EAAE,gCAAgC,GAAG,IAAI,GAAG,SAAS,GAC5D,2BAA2B,GAAG,SAAS,CAgEzC;AA2FD,wBAAgB,oCAAoC,CAChD,IAAI,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,GACvC,gBAAgB,CAQlB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// (C) 2024-2026 GoodData Corporation
|
|
2
2
|
import fastJsonPatch from "fast-json-patch";
|
|
3
3
|
import { v4 as uuidv4 } from "uuid";
|
|
4
|
-
import { yamlDashboardToDeclarative, yamlFiltersToDeclarative, yamlVisualisationToMetadataObject, } from "@gooddata/sdk-code-convertors";
|
|
4
|
+
import { yamlDashboardToDeclarative, yamlDatasetToDeclarative, yamlDateDatesetToDeclarative, yamlFiltersToDeclarative, yamlVisualisationToMetadataObject, } from "@gooddata/sdk-code-convertors";
|
|
5
5
|
import { areObjRefsEqual, assertNever, } from "@gooddata/sdk-model";
|
|
6
6
|
import { getFormatByGranularity } from "../../utils/dateUtils.js";
|
|
7
7
|
import { convertMeasure } from "./afm/MeasureConverter.js";
|
|
@@ -104,24 +104,9 @@ function convertChatConversationContentFromBackend(content, history, dateNormali
|
|
|
104
104
|
: null,
|
|
105
105
|
};
|
|
106
106
|
case "dashboard": {
|
|
107
|
-
const data = part.dashboard
|
|
108
|
-
? yamlDashboardToDeclarative([], part.dashboard)
|
|
109
|
-
: null;
|
|
110
|
-
const filters = data?.filterContext
|
|
111
|
-
? convertFilterContextFromBackend(buildFilterContextWrapper(data.filterContext))
|
|
112
|
-
: undefined;
|
|
113
|
-
const insights = part.references?.visualizations.map((vis) => {
|
|
114
|
-
return visualizationObjectsItemToInsight(yamlVisualisationToMetadataObject([], vis));
|
|
115
|
-
}) ?? null;
|
|
116
|
-
const dashboard = data
|
|
117
|
-
? convertDashboard(buildDashboardWrapper(data.dashboard, data.tabFilterContexts, part.saved_dashboard_id), filters)
|
|
118
|
-
: null;
|
|
119
107
|
return {
|
|
120
108
|
type: "dashboard",
|
|
121
|
-
|
|
122
|
-
base: part.dashboard,
|
|
123
|
-
saved: part.saved_dashboard_id,
|
|
124
|
-
dashboard: convertToTemporaryFilterContexts(dashboard),
|
|
109
|
+
...applyDashboardDefinition(part),
|
|
125
110
|
};
|
|
126
111
|
}
|
|
127
112
|
case "dashboardPatch": {
|
|
@@ -150,9 +135,11 @@ function convertChatConversationContentFromBackend(content, history, dateNormali
|
|
|
150
135
|
searchResults: convertSearchResults(part.objects),
|
|
151
136
|
relationships: convertSearchRelationships(part.relationships),
|
|
152
137
|
};
|
|
153
|
-
// Carries no model representation, so it drops like an unknown part.
|
|
154
138
|
case "clarifyingQuestions":
|
|
155
|
-
return
|
|
139
|
+
return {
|
|
140
|
+
type: "clarifyingQuestions",
|
|
141
|
+
questions: part.questions,
|
|
142
|
+
};
|
|
156
143
|
default:
|
|
157
144
|
// Unknown part type (e.g. sent by a newer backend): log and drop
|
|
158
145
|
// it, do not fail the whole item.
|
|
@@ -524,16 +511,7 @@ function applyDashboardPatch(items, patch) {
|
|
|
524
511
|
patchError: e,
|
|
525
512
|
};
|
|
526
513
|
}
|
|
527
|
-
const
|
|
528
|
-
const filters = data?.filterContext
|
|
529
|
-
? convertFilterContextFromBackend(buildFilterContextWrapper(data.filterContext))
|
|
530
|
-
: undefined;
|
|
531
|
-
const insights = patch.references?.visualizations.map((vis) => {
|
|
532
|
-
return visualizationObjectsItemToInsight(yamlVisualisationToMetadataObject([], vis));
|
|
533
|
-
}) ?? [];
|
|
534
|
-
const dashboard = data
|
|
535
|
-
? convertDashboard(buildDashboardWrapper(data.dashboard, data.tabFilterContexts, saved), filters)
|
|
536
|
-
: null;
|
|
514
|
+
const { dashboard, insights } = buildDashboardReferences(newDocument, patch.references, saved);
|
|
537
515
|
return {
|
|
538
516
|
dashboard: convertToTemporaryFilterContexts(dashboard),
|
|
539
517
|
insights: [...previousInsights, ...insights],
|
|
@@ -552,3 +530,50 @@ function collectRelatedItems(items, ref) {
|
|
|
552
530
|
});
|
|
553
531
|
return related;
|
|
554
532
|
}
|
|
533
|
+
// Apply dashboard definition
|
|
534
|
+
function applyDashboardDefinition(part) {
|
|
535
|
+
const { dashboard, insights } = buildDashboardReferences(part.dashboard, part.references, part.saved_dashboard_id);
|
|
536
|
+
return {
|
|
537
|
+
insights,
|
|
538
|
+
base: part.dashboard,
|
|
539
|
+
saved: part.saved_dashboard_id,
|
|
540
|
+
dashboard: convertToTemporaryFilterContexts(dashboard),
|
|
541
|
+
};
|
|
542
|
+
}
|
|
543
|
+
function buildDashboardReferences(aacDashboard, references, savedDashboardId) {
|
|
544
|
+
const dateDatasets = references?.datedatasets?.map((ds) => {
|
|
545
|
+
const data = ds;
|
|
546
|
+
return {
|
|
547
|
+
data,
|
|
548
|
+
path: "",
|
|
549
|
+
type: "dataset",
|
|
550
|
+
id: data.id,
|
|
551
|
+
declarative: yamlDateDatesetToDeclarative(data),
|
|
552
|
+
};
|
|
553
|
+
}) ?? [];
|
|
554
|
+
const datasets = references?.datasets?.map((ds) => {
|
|
555
|
+
const data = ds;
|
|
556
|
+
return {
|
|
557
|
+
data,
|
|
558
|
+
path: "",
|
|
559
|
+
type: "dataset",
|
|
560
|
+
id: data.id,
|
|
561
|
+
declarative: yamlDatasetToDeclarative(dateDatasets, data),
|
|
562
|
+
};
|
|
563
|
+
}) ?? [];
|
|
564
|
+
const entities = [...dateDatasets, ...datasets];
|
|
565
|
+
const data = aacDashboard ? yamlDashboardToDeclarative(entities, aacDashboard) : null;
|
|
566
|
+
const filters = data?.filterContext
|
|
567
|
+
? convertFilterContextFromBackend(buildFilterContextWrapper(data.filterContext))
|
|
568
|
+
: undefined;
|
|
569
|
+
const insights = references?.visualizations.map((vis) => {
|
|
570
|
+
return visualizationObjectsItemToInsight(yamlVisualisationToMetadataObject(entities, vis));
|
|
571
|
+
}) ?? [];
|
|
572
|
+
const dashboard = data
|
|
573
|
+
? convertDashboard(buildDashboardWrapper(data.dashboard, data.tabFilterContexts, savedDashboardId), filters)
|
|
574
|
+
: null;
|
|
575
|
+
return {
|
|
576
|
+
dashboard,
|
|
577
|
+
insights,
|
|
578
|
+
};
|
|
579
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetricConverter.d.ts","sourceRoot":"","sources":["../../../src/convertors/toBackend/MetricConverter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,KAAK,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"MetricConverter.d.ts","sourceRoot":"","sources":["../../../src/convertors/toBackend/MetricConverter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,KAAK,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAI5E,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,gCAAgC,GAAG,yBAAyB,CAgB3G"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// (C) 2021-2026 GoodData Corporation
|
|
2
|
+
import { toTigerConditionalFormatting } from "../fromBackend/conditionalFormattingConversions.js";
|
|
2
3
|
export function convertMetricToBackend(measure) {
|
|
3
4
|
return {
|
|
4
5
|
title: measure.title,
|
|
@@ -11,5 +12,8 @@ export function convertMetricToBackend(measure) {
|
|
|
11
12
|
tags: measure.tags,
|
|
12
13
|
isHidden: measure.isHidden,
|
|
13
14
|
isHiddenFromKda: measure.isHiddenFromKda,
|
|
15
|
+
...(measure.conditionalFormatting
|
|
16
|
+
? { conditionalFormatting: toTigerConditionalFormatting(measure.conditionalFormatting) }
|
|
17
|
+
: {}),
|
|
14
18
|
};
|
|
15
19
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-backend-tiger",
|
|
3
|
-
"version": "11.56.0-alpha.
|
|
3
|
+
"version": "11.56.0-alpha.3",
|
|
4
4
|
"description": "GoodData Backend SPI implementation for GoodData Cloud and GoodData.CN",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "GoodData",
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
"ts-invariant": "0.10.3",
|
|
35
35
|
"tslib": "2.8.1",
|
|
36
36
|
"uuid": "11.1.1",
|
|
37
|
-
"@gooddata/api-client-tiger": "11.56.0-alpha.
|
|
38
|
-
"@gooddata/sdk-backend-base": "11.56.0-alpha.
|
|
39
|
-
"@gooddata/sdk-
|
|
40
|
-
"@gooddata/sdk-
|
|
41
|
-
"@gooddata/sdk-
|
|
42
|
-
"@gooddata/util": "11.56.0-alpha.
|
|
37
|
+
"@gooddata/api-client-tiger": "11.56.0-alpha.3",
|
|
38
|
+
"@gooddata/sdk-backend-base": "11.56.0-alpha.3",
|
|
39
|
+
"@gooddata/sdk-code-convertors": "11.56.0-alpha.3",
|
|
40
|
+
"@gooddata/sdk-model": "11.56.0-alpha.3",
|
|
41
|
+
"@gooddata/sdk-backend-spi": "11.56.0-alpha.3",
|
|
42
|
+
"@gooddata/util": "11.56.0-alpha.3"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@gooddata/fixtures": "3.7.0",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@types/spark-md5": "3.0.5",
|
|
50
50
|
"@typescript-eslint/eslint-plugin": "8.58.0",
|
|
51
51
|
"@typescript-eslint/parser": "8.58.0",
|
|
52
|
-
"@typescript/native-preview": "7.0.0-dev.
|
|
52
|
+
"@typescript/native-preview": "7.0.0-dev.20260701.1",
|
|
53
53
|
"dependency-cruiser": "17.3.10",
|
|
54
54
|
"dotenv": "16.4.5",
|
|
55
55
|
"eslint": "^9.39.2",
|
|
@@ -62,12 +62,12 @@
|
|
|
62
62
|
"oxfmt": "0.66.0",
|
|
63
63
|
"oxlint": "1.57.0",
|
|
64
64
|
"oxlint-tsgolint": "0.15.0",
|
|
65
|
-
"typescript": "
|
|
65
|
+
"typescript": "6.0.3",
|
|
66
66
|
"vitest": "4.1.8",
|
|
67
|
-
"@gooddata/catalog-export": "11.56.0-alpha.
|
|
68
|
-
"@gooddata/
|
|
69
|
-
"@gooddata/
|
|
70
|
-
"@gooddata/
|
|
67
|
+
"@gooddata/catalog-export": "11.56.0-alpha.3",
|
|
68
|
+
"@gooddata/eslint-config": "11.56.0-alpha.3",
|
|
69
|
+
"@gooddata/oxlint-config": "11.56.0-alpha.3",
|
|
70
|
+
"@gooddata/reference-workspace": "11.56.0-alpha.3"
|
|
71
71
|
},
|
|
72
72
|
"scripts": {
|
|
73
73
|
"_phase:build": "npm run build",
|