@gooddata/sdk-ui-catalog 11.54.0-alpha.6 → 11.54.0-alpha.7
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/asCode/AsCodeDeleteDialog.d.ts.map +1 -1
- package/esm/asCode/AsCodeDeleteDialog.js +19 -6
- package/esm/asCode/descriptor.d.ts +10 -2
- package/esm/asCode/descriptor.d.ts.map +1 -1
- package/esm/asCodeRegistry.d.ts.map +1 -1
- package/esm/asCodeRegistry.js +6 -1
- package/esm/catalogDetail/hooks/useCatalogItemLoad.d.ts.map +1 -1
- package/esm/catalogDetail/hooks/useCatalogItemLoad.js +11 -1
- package/esm/catalogItem/catalogBackend.test.utils.d.ts.map +1 -1
- package/esm/catalogItem/catalogBackend.test.utils.js +5 -0
- package/esm/catalogItem/converter.d.ts +4 -3
- package/esm/catalogItem/converter.d.ts.map +1 -1
- package/esm/catalogItem/converter.js +20 -1
- package/esm/catalogItem/guards.d.ts +5 -1
- package/esm/catalogItem/guards.d.ts.map +1 -1
- package/esm/catalogItem/guards.js +6 -0
- package/esm/catalogItem/query.d.ts +2 -1
- package/esm/catalogItem/query.d.ts.map +1 -1
- package/esm/catalogItem/query.js +34 -0
- package/esm/catalogItem/types.d.ts +13 -1
- package/esm/catalogItem/types.d.ts.map +1 -1
- package/esm/catalogItem/useCatalogEndpoints.d.ts +3 -2
- package/esm/catalogItem/useCatalogEndpoints.d.ts.map +1 -1
- package/esm/catalogItem/useCatalogEndpoints.js +17 -2
- package/esm/catalogItem/useCatalogItemFeed.d.ts +1 -0
- package/esm/catalogItem/useCatalogItemFeed.d.ts.map +1 -1
- package/esm/catalogItem/useCatalogItemFeed.js +1 -0
- package/esm/catalogItem/useCatalogItemSemanticSearch.js +2 -1
- package/esm/computedAttribute/computedAttributeCompletions.d.ts +8 -0
- package/esm/computedAttribute/computedAttributeCompletions.d.ts.map +1 -0
- package/esm/computedAttribute/computedAttributeCompletions.js +21 -0
- package/esm/computedAttribute/computedAttributeConverter.d.ts +38 -0
- package/esm/computedAttribute/computedAttributeConverter.d.ts.map +1 -0
- package/esm/computedAttribute/computedAttributeConverter.js +71 -0
- package/esm/computedAttribute/computedAttributeCopy.d.ts +3 -0
- package/esm/computedAttribute/computedAttributeCopy.d.ts.map +1 -0
- package/esm/computedAttribute/computedAttributeCopy.js +20 -0
- package/esm/computedAttribute/computedAttributeDescriptor.d.ts +7 -0
- package/esm/computedAttribute/computedAttributeDescriptor.d.ts.map +1 -0
- package/esm/computedAttribute/computedAttributeDescriptor.js +101 -0
- package/esm/computedAttribute/computedAttributeMutationPort.d.ts +17 -0
- package/esm/computedAttribute/computedAttributeMutationPort.d.ts.map +1 -0
- package/esm/computedAttribute/computedAttributeMutationPort.js +53 -0
- package/esm/computedAttribute/computedAttributeMutationPort.test.utils.d.ts +4 -0
- package/esm/computedAttribute/computedAttributeMutationPort.test.utils.d.ts.map +1 -0
- package/esm/computedAttribute/computedAttributeMutationPort.test.utils.js +24 -0
- package/esm/computedAttribute/computedAttributeSchema.d.ts +27 -0
- package/esm/computedAttribute/computedAttributeSchema.d.ts.map +1 -0
- package/esm/computedAttribute/computedAttributeSchema.js +27 -0
- package/esm/computedAttribute/computedAttributeSerialization.d.ts +15 -0
- package/esm/computedAttribute/computedAttributeSerialization.d.ts.map +1 -0
- package/esm/computedAttribute/computedAttributeSerialization.js +29 -0
- package/esm/computedAttribute/computedAttributeValidation.d.ts +15 -0
- package/esm/computedAttribute/computedAttributeValidation.d.ts.map +1 -0
- package/esm/computedAttribute/computedAttributeValidation.js +37 -0
- package/esm/computedAttribute/gate.d.ts +4 -0
- package/esm/computedAttribute/gate.d.ts.map +1 -0
- package/esm/computedAttribute/gate.js +4 -0
- package/esm/filter/FilterObjectType.js +3 -3
- package/esm/header/CreateObjectButton.d.ts.map +1 -1
- package/esm/header/CreateObjectButton.js +1 -0
- package/esm/index.d.ts +2 -2
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -1
- package/esm/insight/insightDescriptor.js +2 -2
- package/esm/insight/insightMutationPort.d.ts +2 -2
- package/esm/insight/insightMutationPort.d.ts.map +1 -1
- package/esm/insight/insightMutationPort.js +3 -3
- package/esm/lineage/const.d.ts.map +1 -1
- package/esm/lineage/const.js +1 -0
- package/esm/localization/bundles/en-US.localization-bundle.d.ts +108 -0
- package/esm/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
- package/esm/localization/bundles/en-US.localization-bundle.js +108 -0
- package/esm/metric/metricDescriptor.js +2 -2
- package/esm/metric/metricMutationPort.d.ts +2 -2
- package/esm/metric/metricMutationPort.d.ts.map +1 -1
- package/esm/metric/metricMutationPort.js +7 -4
- package/esm/objectType/ObjectTypeIcon.js +1 -1
- package/esm/objectType/ObjectTypeSelect.d.ts +2 -2
- package/esm/objectType/ObjectTypeSelect.d.ts.map +1 -1
- package/esm/objectType/ObjectTypeSelect.js +13 -14
- package/esm/objectType/constants.d.ts +28 -3
- package/esm/objectType/constants.d.ts.map +1 -1
- package/esm/objectType/constants.js +10 -9
- package/esm/objectType/labels.d.ts.map +1 -1
- package/esm/objectType/labels.js +1 -0
- package/esm/objectType/mapping.d.ts +1 -1
- package/esm/objectType/mapping.d.ts.map +1 -1
- package/esm/objectType/types.d.ts +2 -2
- package/esm/objectType/types.d.ts.map +1 -1
- package/esm/sdk-ui-catalog.d.ts +21 -3
- package/package.json +17 -17
- package/styles/css/codeDialog.css +8 -0
- package/styles/css/codeDialog.css.map +1 -1
- package/styles/css/detail.css +9 -1
- package/styles/css/detail.css.map +1 -1
- package/styles/css/main.css +9 -1
- package/styles/css/main.css.map +1 -1
- package/styles/css/objectType.css +1 -1
- package/styles/css/objectType.css.map +1 -1
- package/styles/scss/codeDialog.scss +9 -0
- package/styles/scss/objectType.scss +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AsCodeDeleteDialog.d.ts","sourceRoot":"","sources":["../../src/asCode/AsCodeDeleteDialog.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"AsCodeDeleteDialog.d.ts","sourceRoot":"","sources":["../../src/asCode/AsCodeDeleteDialog.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AASzD,KAAK,KAAK,GAAG;IACT,UAAU,EAAE,iBAAiB,CAAC;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAEF,gBAAgB;AAChB,wBAAgB,kBAAkB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,KAAK,2CAyGjF"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2026 GoodData Corporation
|
|
3
3
|
import { useCallback, useState } from "react";
|
|
4
4
|
import { FormattedMessage, defineMessages, useIntl } from "react-intl";
|
|
5
5
|
import { useBackendStrict, useCancelablePromise, useWorkspaceStrict } from "@gooddata/sdk-ui";
|
|
6
|
-
import { ConfirmDialog, useToastMessage } from "@gooddata/sdk-ui-kit";
|
|
6
|
+
import { ConfirmDialog, Message, UiLink, useToastMessage } from "@gooddata/sdk-ui-kit";
|
|
7
7
|
import { useMutationPort } from "./useMutationPort.js";
|
|
8
8
|
const messages = defineMessages({
|
|
9
9
|
cancel: { id: "analyticsCatalog.asCode.dialog.cancel" },
|
|
10
|
+
showMore: { id: "analyticsCatalog.asCode.dialog.delete.showMore" },
|
|
11
|
+
showLess: { id: "analyticsCatalog.asCode.dialog.delete.showLess" },
|
|
10
12
|
});
|
|
11
13
|
/** @internal */
|
|
12
14
|
export function AsCodeDeleteDialog({ descriptor, item, onClose, onDeleted }) {
|
|
@@ -17,9 +19,14 @@ export function AsCodeDeleteDialog({ descriptor, item, onClose, onDeleted }) {
|
|
|
17
19
|
const port = useMutationPort(descriptor);
|
|
18
20
|
const { messages: msg, referenceCounted } = descriptor;
|
|
19
21
|
const [isDeleting, setIsDeleting] = useState(false);
|
|
22
|
+
const [areReferencesShown, setAreReferencesShown] = useState(false);
|
|
20
23
|
// Block deletion until the usage lookup resolves, so the dependent-object warning surfaces first.
|
|
21
|
-
const { result, status } = useCancelablePromise({ promise: referenceCounted ? () => referenceCounted.
|
|
22
|
-
const
|
|
24
|
+
const { result, status } = useCancelablePromise({ promise: referenceCounted ? () => referenceCounted.load(backend, workspace, item) : undefined }, [item, backend, workspace]);
|
|
25
|
+
const references = !referenceCounted || status === "error" ? [] : result;
|
|
26
|
+
const referencingCount = references?.length;
|
|
27
|
+
// A failed lookup leaves the count at zero, so a blocking type stays deletable rather than
|
|
28
|
+
// becoming permanently undeletable on a transient error; the backend refuses it either way.
|
|
29
|
+
const isBlocked = Boolean(referenceCounted?.blockedBody) && Boolean(referencingCount);
|
|
23
30
|
const displayName = item.title || item.identifier;
|
|
24
31
|
const handleDelete = useCallback(async () => {
|
|
25
32
|
setIsDeleting(true);
|
|
@@ -39,8 +46,14 @@ export function AsCodeDeleteDialog({ descriptor, item, onClose, onDeleted }) {
|
|
|
39
46
|
onClose();
|
|
40
47
|
}
|
|
41
48
|
}, [isDeleting, onClose]);
|
|
42
|
-
return (_jsxs(ConfirmDialog, { headline: intl.formatMessage(msg.deleteTitle), cancelButtonText: intl.formatMessage(messages.cancel), submitButtonText: intl.formatMessage(msg.deleteSubmit), isPositive: false, isSubmitDisabled: isDeleting || referencingCount === undefined, isCancelDisabled: isDeleting, showProgressIndicator: isDeleting, onCancel: handleClose, onClose: handleClose, onSubmit: handleDelete, displayCloseButton: !isDeleting, children: [_jsx(FormattedMessage, { ...
|
|
49
|
+
return (_jsxs(ConfirmDialog, { headline: intl.formatMessage(msg.deleteTitle), cancelButtonText: intl.formatMessage(messages.cancel), submitButtonText: intl.formatMessage(msg.deleteSubmit), isPositive: false, isSubmitDisabled: isDeleting || referencingCount === undefined || isBlocked, isCancelDisabled: isDeleting, showProgressIndicator: isDeleting, onCancel: handleClose, onClose: handleClose, onSubmit: handleDelete, displayCloseButton: !isDeleting, children: [_jsx(FormattedMessage, { ...(isBlocked && referenceCounted?.blockedBody
|
|
50
|
+
? referenceCounted.blockedBody
|
|
51
|
+
: msg.deleteBody), values: {
|
|
43
52
|
name: displayName,
|
|
44
53
|
b: (chunks) => _jsx("b", { children: chunks }),
|
|
45
|
-
} }), referencingCount && referenceCounted ? (_jsx("div", { children: _jsx(FormattedMessage, { ...referenceCounted.usageWarning, values: {
|
|
54
|
+
} }), referencingCount && referenceCounted ? (_jsx("div", { className: "gd-analytics-catalog__as-code-dialog__usage", children: _jsxs(Message, { type: "warning", children: [_jsx(FormattedMessage, { ...referenceCounted.usageWarning, values: {
|
|
55
|
+
count: referencingCount,
|
|
56
|
+
b: (chunks) => _jsx("b", { children: chunks }),
|
|
57
|
+
} }), referenceCounted.listReferences ? (_jsxs(_Fragment, { children: [" ", _jsx(UiLink, { variant: "secondary", role: "button", tabIndex: 0, onClick: () => setAreReferencesShown(!areReferencesShown), "aria-expanded": areReferencesShown, children: intl.formatMessage(areReferencesShown ? messages.showLess : messages.showMore) })
|
|
58
|
+
] })) : null, referenceCounted.listReferences && areReferencesShown ? (_jsx("ul", { className: "gd-analytics-catalog__as-code-dialog__usage-list", children: references?.map((title) => (_jsx("li", { children: title }, title))) })) : null] }) })) : null] }));
|
|
46
59
|
}
|
|
@@ -6,7 +6,7 @@ import type { ObjectTypes } from "../objectType/constants.js";
|
|
|
6
6
|
import type { ObjectType } from "../objectType/types.js";
|
|
7
7
|
import type { useFeatureFlag } from "../permission/PermissionsContext.js";
|
|
8
8
|
export type AsCodeFeatureFlag = Parameters<typeof useFeatureFlag>[0];
|
|
9
|
-
export type AsCodeObjectType = typeof ObjectTypes.METRIC | typeof ObjectTypes.PARAMETER | typeof ObjectTypes.VISUALIZATION;
|
|
9
|
+
export type AsCodeObjectType = typeof ObjectTypes.METRIC | typeof ObjectTypes.PARAMETER | typeof ObjectTypes.COMPUTED_ATTRIBUTE | typeof ObjectTypes.VISUALIZATION;
|
|
10
10
|
export interface IAsCodeMessages {
|
|
11
11
|
createTitle: MessageDescriptor;
|
|
12
12
|
editTitle: MessageDescriptor;
|
|
@@ -97,8 +97,16 @@ export declare function isLoadSeed<TDef, TItem extends ICatalogItem>(seed: AsCod
|
|
|
97
97
|
export declare function loadErrorOf(descriptor: IAsCodeDescriptor): MessageDescriptor | undefined;
|
|
98
98
|
/** @internal */
|
|
99
99
|
export type AsCodeReferenceCount<TItem extends ICatalogItem> = {
|
|
100
|
-
|
|
100
|
+
/** Titles of the objects referencing the item; the count in the warning is their number. */
|
|
101
|
+
load(backend: IAnalyticalBackend, workspace: string, item: TItem): Promise<string[]>;
|
|
101
102
|
usageWarning: MessageDescriptor;
|
|
103
|
+
/** Discloses the referencing titles behind a Show more/Show less toggle. */
|
|
104
|
+
listReferences?: boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Refuses the deletion while any reference exists — for a type the backend rejects rather than
|
|
107
|
+
* cascades — and replaces the delete body with this text.
|
|
108
|
+
*/
|
|
109
|
+
blockedBody?: MessageDescriptor;
|
|
102
110
|
};
|
|
103
111
|
/**
|
|
104
112
|
* Duplicate-collision retry: the create dialog retries without the id when a copy's derived id
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../src/asCode/descriptor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../src/asCode/descriptor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asCodeRegistry.d.ts","sourceRoot":"","sources":["../src/asCodeRegistry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"asCodeRegistry.d.ts","sourceRoot":"","sources":["../src/asCodeRegistry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAKlF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIxD,gBAAgB;AAChB,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CAMzE,CAAC;AAMF,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,iBAAiB,GAAG,SAAS,CAEnF;AAED,mHAAmH;AACnH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAM1F;AASD,gBAAgB;AAChB,wBAAgB,uBAAuB,IAAI,WAAW,CAAC,gBAAgB,CAAC,CAgBvE"}
|
package/esm/asCodeRegistry.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// (C) 2026 GoodData Corporation
|
|
2
2
|
import { useMemo } from "react";
|
|
3
|
+
import { computedAttributeDescriptor } from "./computedAttribute/computedAttributeDescriptor.js";
|
|
3
4
|
import { visualizationDescriptor } from "./insight/insightDescriptor.js";
|
|
4
5
|
import { metricDescriptor } from "./metric/metricDescriptor.js";
|
|
5
6
|
import { ObjectTypes } from "./objectType/constants.js";
|
|
@@ -8,6 +9,8 @@ import { useFeatureFlags, useWorkspacePermission } from "./permission/Permission
|
|
|
8
9
|
/** @internal */
|
|
9
10
|
export const asCodeDescriptors = {
|
|
10
11
|
[ObjectTypes.METRIC]: metricDescriptor,
|
|
12
|
+
// Key order drives the create-menu order.
|
|
13
|
+
[ObjectTypes.COMPUTED_ATTRIBUTE]: computedAttributeDescriptor,
|
|
11
14
|
[ObjectTypes.PARAMETER]: parameterDescriptor,
|
|
12
15
|
[ObjectTypes.VISUALIZATION]: visualizationDescriptor,
|
|
13
16
|
};
|
|
@@ -37,14 +40,16 @@ export function useCreatableObjectTypes() {
|
|
|
37
40
|
// One unconditional hook call per registered type (fixed count for the rules of hooks).
|
|
38
41
|
const metric = useIsAsCodeTypeCreatable(asCodeDescriptors[ObjectTypes.METRIC]);
|
|
39
42
|
const parameter = useIsAsCodeTypeCreatable(asCodeDescriptors[ObjectTypes.PARAMETER]);
|
|
43
|
+
const computedAttribute = useIsAsCodeTypeCreatable(asCodeDescriptors[ObjectTypes.COMPUTED_ATTRIBUTE]);
|
|
40
44
|
const visualization = useIsAsCodeTypeCreatable(asCodeDescriptors[ObjectTypes.VISUALIZATION]);
|
|
41
45
|
return useMemo(() => {
|
|
42
46
|
// The `Record<AsCodeObjectType, …>` makes a newly registered type a compile error until listed here.
|
|
43
47
|
const creatable = {
|
|
44
48
|
[ObjectTypes.METRIC]: metric,
|
|
49
|
+
[ObjectTypes.COMPUTED_ATTRIBUTE]: computedAttribute,
|
|
45
50
|
[ObjectTypes.PARAMETER]: parameter,
|
|
46
51
|
[ObjectTypes.VISUALIZATION]: visualization,
|
|
47
52
|
};
|
|
48
53
|
return new Set(Object.keys(creatable).filter((type) => creatable[type]));
|
|
49
|
-
}, [metric, parameter, visualization]);
|
|
54
|
+
}, [computedAttribute, metric, parameter, visualization]);
|
|
50
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCatalogItemLoad.d.ts","sourceRoot":"","sources":["../../../src/catalogDetail/hooks/useCatalogItemLoad.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useCatalogItemLoad.d.ts","sourceRoot":"","sources":["../../../src/catalogDetail/hooks/useCatalogItemLoad.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,gBAAgB,CAAC,EAAE,eAAe,GAAG,YAAY,GAAG,IAAI,CAAC;CAC5D;AAED,wBAAgB,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,mBAAmB,GAAG;IACjG,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACpD,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;CACjB,CAmDA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// (C) 2025-2026 GoodData Corporation
|
|
2
2
|
import { convertError, isNotFound, useBackendStrict, useCancelablePromise, useWorkspaceStrict, } from "@gooddata/sdk-ui";
|
|
3
|
-
import { convertAttributeToCatalogItem, convertDashboardToCatalogItem, convertDataSetToCatalogItem, convertFactToCatalogItem, convertInsightToCatalogItem, convertMeasureToCatalogItem, convertParameterToCatalogItem, } from "../../catalogItem/converter.js";
|
|
3
|
+
import { convertAttributeToCatalogItem, convertComputedAttributeToCatalogItem, convertDashboardToCatalogItem, convertDataSetToCatalogItem, convertFactToCatalogItem, convertInsightToCatalogItem, convertMeasureToCatalogItem, convertParameterToCatalogItem, } from "../../catalogItem/converter.js";
|
|
4
4
|
import { isCatalogItemLoaded } from "../../catalogItem/guards.js";
|
|
5
5
|
import {} from "../../catalogItem/types.js";
|
|
6
6
|
import {} from "../../objectType/types.js";
|
|
@@ -107,6 +107,16 @@ async function loadObjectDefinition(workspace, id, type) {
|
|
|
107
107
|
identifier: id,
|
|
108
108
|
})
|
|
109
109
|
.then(convertParameterToCatalogItem);
|
|
110
|
+
case "computedAttribute":
|
|
111
|
+
return workspace
|
|
112
|
+
.computedAttributes()
|
|
113
|
+
.getComputedAttribute({
|
|
114
|
+
type: "computedAttribute",
|
|
115
|
+
identifier: id,
|
|
116
|
+
}, {
|
|
117
|
+
loadUserData: true,
|
|
118
|
+
})
|
|
119
|
+
.then(convertComputedAttributeToCatalogItem);
|
|
110
120
|
case "fact":
|
|
111
121
|
return workspace
|
|
112
122
|
.facts()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalogBackend.test.utils.d.ts","sourceRoot":"","sources":["../../src/catalogItem/catalogBackend.test.utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,IAAI,EAAM,MAAM,QAAQ,CAAC;AAEvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAIpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;;;;;;GASG;AAEH,8FAA8F;AAC9F,MAAM,WAAW,SAAS;IACtB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;CACd;AAED,UAAU,aAAa;IACnB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,kGAAkG;AAClG,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,SAAS,CAgB5D;AAED,yFAAuF;AACvF,wBAAgB,SAAS,IAAI,SAAS,CAErC;
|
|
1
|
+
{"version":3,"file":"catalogBackend.test.utils.d.ts","sourceRoot":"","sources":["../../src/catalogItem/catalogBackend.test.utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,IAAI,EAAM,MAAM,QAAQ,CAAC;AAEvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAIpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;;;;;;GASG;AAEH,8FAA8F;AAC9F,MAAM,WAAW,SAAS;IACtB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;CACd;AAED,UAAU,aAAa;IACnB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,kGAAkG;AAClG,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,SAAS,CAgB5D;AAED,yFAAuF;AACvF,wBAAgB,SAAS,IAAI,SAAS,CAErC;AA6CD,6FAA6F;AAC7F,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED,6FAA6F;AAC7F,QAAA,MAAM,uBAAuB,8HASnB,CAAC;AAEX,2FAA2F;AAC3F,QAAA,MAAM,wBAAwB,mJAQpB,CAAC;AAEX,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,CAAC;AAE/F,KAAK,kBAAkB,GAAG,gBAAgB,CAAC,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACrF,KAAK,mBAAmB,GAAG,gBAAgB,CAAC,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AA0BvF,gEAAgE;AAChE,UAAU,2BAA2B;IACjC,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/B,aAAa,EAAE,OAAO,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,0FAAwF;IACxF,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClC,2FAA2F;IAC3F,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IACjD,sFAAsF;IACtF,mBAAmB,EAAE,IAAI,CAAC;IAC1B,qBAAqB,EAAE,mBAAmB,CAAC;IAC3C,4FAA4F;IAC5F,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACnE,oFAAoF;IACpF,yBAAyB,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,2BAA2B,CAAC,GAAG,IAAI,CAAC;CACvF;AAED,wBAAgB,wBAAwB,IAAI,mBAAmB,CA4C9D"}
|
|
@@ -52,6 +52,10 @@ const ENTITY_FACTORIES = {
|
|
|
52
52
|
...metadataEntity(id, "parameter"),
|
|
53
53
|
definition: { type: "NUMBER", defaultValue: 0 },
|
|
54
54
|
}),
|
|
55
|
+
[ObjectTypes.COMPUTED_ATTRIBUTE]: (id) => ({
|
|
56
|
+
...metadataEntity(id, "computedAttribute"),
|
|
57
|
+
expression: "SELECT 1",
|
|
58
|
+
}),
|
|
55
59
|
[ObjectTypes.ATTRIBUTE]: (id) => metadataEntity(id, "attribute"),
|
|
56
60
|
[ObjectTypes.FACT]: (id) => metadataEntity(id, "fact"),
|
|
57
61
|
[ObjectTypes.DATASET]: (id) => metadataEntity(id, "dataSet"),
|
|
@@ -98,6 +102,7 @@ const QUERY_SERVICES = {
|
|
|
98
102
|
[ObjectTypes.VISUALIZATION]: ["insights", "getInsightsQuery"],
|
|
99
103
|
[ObjectTypes.METRIC]: ["measures", "getMeasuresQuery"],
|
|
100
104
|
[ObjectTypes.PARAMETER]: ["parameters", "getParametersQuery"],
|
|
105
|
+
[ObjectTypes.COMPUTED_ATTRIBUTE]: ["computedAttributes", "getComputedAttributesQuery"],
|
|
101
106
|
[ObjectTypes.ATTRIBUTE]: ["attributes", "getAttributesQuery"],
|
|
102
107
|
[ObjectTypes.FACT]: ["facts", "getFactsQuery"],
|
|
103
108
|
[ObjectTypes.DATASET]: ["datasets", "getDatasetsQuery"],
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import type { IAnalyticsCatalogTrendingObject } from "@gooddata/sdk-backend-spi";
|
|
2
|
-
import { type IAttributeMetadataObject, type IDashboard, type IDataSetMetadataObject, type IFactMetadataObject, type IInsight, type IListedDashboard, type IMeasureMetadataObject, type IParameterMetadataObject, type IUser } from "@gooddata/sdk-model";
|
|
3
|
-
import type { ICatalogItem, ICatalogItemAttribute, ICatalogItemDashboard, ICatalogItemDataSet, ICatalogItemFact, ICatalogItemInsight, ICatalogItemMeasure, ICatalogItemParameter } from "./types.js";
|
|
4
|
-
export declare function convertEntityToCatalogItem(entity: IInsight | IListedDashboard | IMeasureMetadataObject | IParameterMetadataObject | IFactMetadataObject | IAttributeMetadataObject | IDataSetMetadataObject | undefined): ICatalogItem;
|
|
2
|
+
import { type IAttributeMetadataObject, type IComputedAttributeMetadataObject, type IDashboard, type IDataSetMetadataObject, type IFactMetadataObject, type IInsight, type IListedDashboard, type IMeasureMetadataObject, type IParameterMetadataObject, type IUser } from "@gooddata/sdk-model";
|
|
3
|
+
import type { ICatalogItem, ICatalogItemAttribute, ICatalogItemComputedAttribute, ICatalogItemDashboard, ICatalogItemDataSet, ICatalogItemFact, ICatalogItemInsight, ICatalogItemMeasure, ICatalogItemParameter } from "./types.js";
|
|
4
|
+
export declare function convertEntityToCatalogItem(entity: IInsight | IListedDashboard | IMeasureMetadataObject | IParameterMetadataObject | IComputedAttributeMetadataObject | IFactMetadataObject | IAttributeMetadataObject | IDataSetMetadataObject | undefined): ICatalogItem;
|
|
5
5
|
export declare function convertDashboardToCatalogItem(dashboard: IDashboard | IListedDashboard): ICatalogItemDashboard;
|
|
6
6
|
export declare function convertInsightToCatalogItem({ insight }: IInsight): ICatalogItemInsight;
|
|
7
7
|
export declare function convertMeasureToCatalogItem(measure: IMeasureMetadataObject): ICatalogItemMeasure;
|
|
8
8
|
export declare function convertFactToCatalogItem(fact: IFactMetadataObject): ICatalogItemFact;
|
|
9
9
|
export declare function convertParameterToCatalogItem(parameter: IParameterMetadataObject): ICatalogItemParameter;
|
|
10
|
+
export declare function convertComputedAttributeToCatalogItem(computedAttribute: IComputedAttributeMetadataObject): ICatalogItemComputedAttribute;
|
|
10
11
|
export declare function convertAttributeToCatalogItem(attribute: IAttributeMetadataObject): ICatalogItemAttribute;
|
|
11
12
|
export declare function convertDataSetToCatalogItem(dataSet: IDataSetMetadataObject): ICatalogItemDataSet;
|
|
12
13
|
export declare function getDisplayName(user?: IUser | null): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/catalogItem/converter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAEH,KAAK,wBAAwB,EAC7B,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAE3B,KAAK,wBAAwB,EAC7B,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/catalogItem/converter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAEH,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EACrC,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAE3B,KAAK,wBAAwB,EAC7B,KAAK,KAAK,EAUb,MAAM,qBAAqB,CAAC;AAK7B,OAAO,KAAK,EACR,YAAY,EACZ,qBAAqB,EACrB,6BAA6B,EAC7B,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EAExB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,0BAA0B,CACtC,MAAM,EACA,QAAQ,GACR,gBAAgB,GAChB,sBAAsB,GACtB,wBAAwB,GACxB,gCAAgC,GAChC,mBAAmB,GACnB,wBAAwB,GACxB,sBAAsB,GACtB,SAAS,GAChB,YAAY,CA0Bd;AAED,wBAAgB,6BAA6B,CACzC,SAAS,EAAE,UAAU,GAAG,gBAAgB,GACzC,qBAAqB,CAiBvB;AAED,wBAAgB,2BAA2B,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,GAAG,mBAAmB,CAkBtF;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,sBAAsB,GAAG,mBAAmB,CAsBhG;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,mBAAmB,GAAG,gBAAgB,CAgBpF;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,wBAAwB,GAAG,qBAAqB,CAiBxG;AAED,wBAAgB,qCAAqC,CACjD,iBAAiB,EAAE,gCAAgC,GACpD,6BAA6B,CAgB/B;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,wBAAwB,GAAG,qBAAqB,CAgBxG;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,sBAAsB,GAAG,mBAAmB,CAehG;AAED,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,CAW1D;AAcD,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,+BAA+B,GAAG,YAAY,CAuBrG"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// (C) 2025-2026 GoodData Corporation
|
|
2
|
-
import { isAttributeMetadataObject, isDashboard, isDataSetMetadataObject, isFactMetadataObject, isInsight, isListedDashboard, isMeasureMetadataObject, isParameterMetadataObject, } from "@gooddata/sdk-model";
|
|
2
|
+
import { isAttributeMetadataObject, isComputedAttributeMetadataObject, isDashboard, isDataSetMetadataObject, isFactMetadataObject, isInsight, isListedDashboard, isMeasureMetadataObject, isParameterMetadataObject, } from "@gooddata/sdk-model";
|
|
3
3
|
import { mapObjectType } from "../objectType/mapping.js";
|
|
4
4
|
import { parseBackendDate } from "../utils/date.js";
|
|
5
5
|
export function convertEntityToCatalogItem(entity) {
|
|
@@ -15,6 +15,9 @@ export function convertEntityToCatalogItem(entity) {
|
|
|
15
15
|
if (isParameterMetadataObject(entity)) {
|
|
16
16
|
return convertParameterToCatalogItem(entity);
|
|
17
17
|
}
|
|
18
|
+
if (isComputedAttributeMetadataObject(entity)) {
|
|
19
|
+
return convertComputedAttributeToCatalogItem(entity);
|
|
20
|
+
}
|
|
18
21
|
if (isFactMetadataObject(entity)) {
|
|
19
22
|
return convertFactToCatalogItem(entity);
|
|
20
23
|
}
|
|
@@ -118,6 +121,22 @@ export function convertParameterToCatalogItem(parameter) {
|
|
|
118
121
|
definition: parameter.definition,
|
|
119
122
|
};
|
|
120
123
|
}
|
|
124
|
+
export function convertComputedAttributeToCatalogItem(computedAttribute) {
|
|
125
|
+
const updatedAt = computedAttribute.updated || computedAttribute.created;
|
|
126
|
+
return {
|
|
127
|
+
identifier: computedAttribute.id,
|
|
128
|
+
type: "computedAttribute",
|
|
129
|
+
title: computedAttribute.title,
|
|
130
|
+
description: computedAttribute.description,
|
|
131
|
+
tags: computedAttribute.tags ?? [],
|
|
132
|
+
createdBy: getDisplayName(computedAttribute.createdBy),
|
|
133
|
+
createdAt: computedAttribute.created ? parseBackendDate(computedAttribute.created) : null,
|
|
134
|
+
updatedBy: getDisplayName(computedAttribute.updatedBy),
|
|
135
|
+
updatedAt: updatedAt ? parseBackendDate(updatedAt) : null,
|
|
136
|
+
isLocked: computedAttribute.isLocked ?? false,
|
|
137
|
+
isEditable: true,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
121
140
|
export function convertAttributeToCatalogItem(attribute) {
|
|
122
141
|
return {
|
|
123
142
|
identifier: attribute.id,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ICatalogItem, ICatalogItemAttribute, ICatalogItemDashboard, ICatalogItemDataSet, ICatalogItemFact, ICatalogItemHidable, ICatalogItemInsight, ICatalogItemMeasure, ICatalogItemParameter, ICatalogItemRef, VisualizationType } from "./types.js";
|
|
1
|
+
import type { ICatalogItem, ICatalogItemAttribute, ICatalogItemComputedAttribute, ICatalogItemDashboard, ICatalogItemDataSet, ICatalogItemFact, ICatalogItemHidable, ICatalogItemInsight, ICatalogItemMeasure, ICatalogItemParameter, ICatalogItemRef, VisualizationType } from "./types.js";
|
|
2
2
|
/**
|
|
3
3
|
* @internal
|
|
4
4
|
*/
|
|
@@ -15,6 +15,10 @@ export declare function isCatalogItemMeasure(item: ICatalogItem | undefined | nu
|
|
|
15
15
|
* @internal
|
|
16
16
|
*/
|
|
17
17
|
export declare function isCatalogItemParameter(item: ICatalogItem | undefined | null): item is ICatalogItemParameter;
|
|
18
|
+
/**
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
21
|
+
export declare function isCatalogItemComputedAttribute(item: ICatalogItem | undefined | null): item is ICatalogItemComputedAttribute;
|
|
18
22
|
/**
|
|
19
23
|
* @internal
|
|
20
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/catalogItem/guards.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACpB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,IAAI,qBAAqB,CAE3G;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,IAAI,mBAAmB,CAEvG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,IAAI,mBAAmB,CAEvG;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,IAAI,qBAAqB,CAE3G;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,IAAI,qBAAqB,CAE3G;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,IAAI,gBAAgB,CAEjG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,IAAI,mBAAmB,CAEvG;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,IAAI,mBAAmB,CAOvG;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,eAAe,GAAG,YAAY,GAAG,SAAS,GAAG,IAAI,GACxD,IAAI,IAAI,YAAY,CAEtB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,iBAAiB,GAAG,SAAS,CAEzG"}
|
|
1
|
+
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/catalogItem/guards.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,YAAY,EACZ,qBAAqB,EACrB,6BAA6B,EAC7B,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACpB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,IAAI,qBAAqB,CAE3G;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,IAAI,mBAAmB,CAEvG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,IAAI,mBAAmB,CAEvG;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,IAAI,qBAAqB,CAE3G;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC1C,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GACtC,IAAI,IAAI,6BAA6B,CAEvC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,IAAI,qBAAqB,CAE3G;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,IAAI,gBAAgB,CAEjG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,IAAI,mBAAmB,CAEvG;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,IAAI,mBAAmB,CAOvG;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,eAAe,GAAG,YAAY,GAAG,SAAS,GAAG,IAAI,GACxD,IAAI,IAAI,YAAY,CAEtB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,iBAAiB,GAAG,SAAS,CAEzG"}
|
|
@@ -23,6 +23,12 @@ export function isCatalogItemMeasure(item) {
|
|
|
23
23
|
export function isCatalogItemParameter(item) {
|
|
24
24
|
return item?.type === "parameter";
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
export function isCatalogItemComputedAttribute(item) {
|
|
30
|
+
return item?.type === "computedAttribute";
|
|
31
|
+
}
|
|
26
32
|
/**
|
|
27
33
|
* @internal
|
|
28
34
|
*/
|
|
@@ -11,10 +11,11 @@ export declare function getDashboardsQuery({ backend, workspace, search, origin,
|
|
|
11
11
|
export declare function getInsightsQuery({ backend, workspace, search, origin, id, excludeId, createdBy, excludeCreatedBy, tags, excludeTags, isHidden, certification, pageSize }: ICatalogItemQueryOptions): import("@gooddata/sdk-backend-spi").IInsightsQuery;
|
|
12
12
|
export declare function getMetricsQuery({ backend, workspace, search, origin, id, excludeId, createdBy, excludeCreatedBy, tags, excludeTags, isHidden, certification, pageSize }: ICatalogItemQueryOptions): import("@gooddata/sdk-backend-spi").IMeasuresQuery;
|
|
13
13
|
export declare function getParametersQuery({ backend, workspace, search, origin, id, excludeId, createdBy, excludeCreatedBy, tags, excludeTags, pageSize }: ICatalogItemQueryOptions): import("@gooddata/sdk-backend-spi").IParametersQuery;
|
|
14
|
+
export declare function getComputedAttributesQuery({ backend, workspace, search, origin, id, excludeId, createdBy, excludeCreatedBy, tags, excludeTags, pageSize }: ICatalogItemQueryOptions): import("@gooddata/sdk-backend-spi").IComputedAttributesQuery;
|
|
14
15
|
export declare function getAttributesQuery({ backend, workspace, search, origin, id, excludeId, tags, excludeTags, isHidden, pageSize }: ICatalogItemQueryOptions): import("@gooddata/sdk-backend-spi").IAttributesQuery;
|
|
15
16
|
export declare function getFactsQuery({ backend, workspace, search, origin, id, excludeId, tags, excludeTags, isHidden, pageSize }: ICatalogItemQueryOptions): import("@gooddata/sdk-backend-spi").IFactsQuery;
|
|
16
17
|
export declare function getDateDatasetsQuery({ backend, workspace, search, origin, id, excludeId, tags, excludeTags, isHidden, pageSize }: ICatalogItemQueryOptions): import("@gooddata/sdk-backend-spi").IDatasetsQuery;
|
|
17
|
-
export declare function updateCatalogItem(backend: IAnalyticalBackend, workspace: string, item: ICatalogItem): Promise<import("@gooddata/sdk-model").IAttributeMetadataObject> | Promise<import("@gooddata/sdk-model").IDashboard<import("@gooddata/sdk-model").IDashboardWidget>> | Promise<import("@gooddata/sdk-model").IDataSetMetadataObject> | Promise<import("@gooddata/sdk-model").IFactMetadataObject> | Promise<import("@gooddata/sdk-model").IParameterMetadataObject> | Promise<import("@gooddata/sdk-model").IInsight> | Promise<IMeasureMetadataObject>;
|
|
18
|
+
export declare function updateCatalogItem(backend: IAnalyticalBackend, workspace: string, item: ICatalogItem): Promise<import("@gooddata/sdk-model").IAttributeMetadataObject> | Promise<import("@gooddata/sdk-model").IDashboard<import("@gooddata/sdk-model").IDashboardWidget>> | Promise<import("@gooddata/sdk-model").IDataSetMetadataObject> | Promise<import("@gooddata/sdk-model").IFactMetadataObject> | Promise<import("@gooddata/sdk-model").IParameterMetadataObject> | Promise<import("@gooddata/sdk-model").IComputedAttributeMetadataObject> | Promise<import("@gooddata/sdk-model").IInsight> | Promise<IMeasureMetadataObject>;
|
|
18
19
|
export declare function createParameterCatalogItem(backend: IAnalyticalBackend, workspace: string, parameter: IParameterMetadataObjectDefinition): Promise<import("@gooddata/sdk-model").IParameterMetadataObject>;
|
|
19
20
|
export declare function updateParameterCatalogItem(backend: IAnalyticalBackend, workspace: string, definition: IParameterMetadataObjectDefinition & {
|
|
20
21
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/catalogItem/query.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,6CAA6C,EAC7C,kBAAkB,EACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACH,KAAK,sBAAsB,EAC3B,KAAK,gCAAgC,EACrC,KAAK,kCAAkC,EACvC,KAAK,MAAM,EAEd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EACR,YAAY,
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/catalogItem/query.ts"],"names":[],"mappings":"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"}
|
package/esm/catalogItem/query.js
CHANGED
|
@@ -103,6 +103,27 @@ export function getParametersQuery({ backend, workspace, search, origin, id, exc
|
|
|
103
103
|
})
|
|
104
104
|
.withMethod("POST");
|
|
105
105
|
}
|
|
106
|
+
export function getComputedAttributesQuery({ backend, workspace, search, origin, id, excludeId, createdBy, excludeCreatedBy, tags, excludeTags, pageSize = PAGE_SIZE, }) {
|
|
107
|
+
return backend
|
|
108
|
+
.workspace(workspace)
|
|
109
|
+
.computedAttributes()
|
|
110
|
+
.getComputedAttributesQuery()
|
|
111
|
+
.withPage(0)
|
|
112
|
+
.withSize(pageSize)
|
|
113
|
+
.withInclude(["createdBy", "modifiedBy"])
|
|
114
|
+
.withSorting(["title,asc"])
|
|
115
|
+
.withOrigin(origin)
|
|
116
|
+
.withFilter({
|
|
117
|
+
search,
|
|
118
|
+
id,
|
|
119
|
+
excludeId,
|
|
120
|
+
tags,
|
|
121
|
+
excludeTags,
|
|
122
|
+
createdBy,
|
|
123
|
+
excludeCreatedBy,
|
|
124
|
+
})
|
|
125
|
+
.withMethod("POST");
|
|
126
|
+
}
|
|
106
127
|
export function getAttributesQuery({ backend, workspace, search, origin, id, excludeId, tags, excludeTags, isHidden, pageSize = PAGE_SIZE, }) {
|
|
107
128
|
return (backend
|
|
108
129
|
.workspace(workspace)
|
|
@@ -185,6 +206,8 @@ export function updateCatalogItem(backend, workspace, item) {
|
|
|
185
206
|
return updateDataSetCatalogItemMeta(backend, workspace, item);
|
|
186
207
|
case "parameter":
|
|
187
208
|
return updateParameterCatalogItemMeta(backend, workspace, item);
|
|
209
|
+
case "computedAttribute":
|
|
210
|
+
return updateComputedAttributeCatalogItemMeta(backend, workspace, item);
|
|
188
211
|
default:
|
|
189
212
|
throw new Error(`Unsupported catalog item type`);
|
|
190
213
|
}
|
|
@@ -289,6 +312,17 @@ export function updateParameterCatalogItem(backend, workspace, definition) {
|
|
|
289
312
|
export function deleteParameterCatalogItem(backend, workspace, ref) {
|
|
290
313
|
return backend.workspace(workspace).parameters().deleteParameter(ref);
|
|
291
314
|
}
|
|
315
|
+
function updateComputedAttributeCatalogItemMeta(backend, workspace, item) {
|
|
316
|
+
return backend
|
|
317
|
+
.workspace(workspace)
|
|
318
|
+
.computedAttributes()
|
|
319
|
+
.updateComputedAttributeMeta({
|
|
320
|
+
...buildIdentity(item),
|
|
321
|
+
title: item.title,
|
|
322
|
+
description: item.description,
|
|
323
|
+
tags: item.tags,
|
|
324
|
+
});
|
|
325
|
+
}
|
|
292
326
|
export function createMeasureCatalogItem(backend, workspace, measure) {
|
|
293
327
|
return backend.workspace(workspace).measures().createMeasure(measure);
|
|
294
328
|
}
|
|
@@ -38,7 +38,7 @@ export interface ICatalogItemBase extends ICatalogItemRef {
|
|
|
38
38
|
* `visualizationType`, `dataSet`, `definition`, `format`, or `metricType`.
|
|
39
39
|
* @public
|
|
40
40
|
*/
|
|
41
|
-
export type ICatalogItem = ICatalogItemDashboard | ICatalogItemInsight | ICatalogItemMeasure | ICatalogItemParameter | ICatalogItemAttribute | ICatalogItemFact | ICatalogItemDataSet;
|
|
41
|
+
export type ICatalogItem = ICatalogItemDashboard | ICatalogItemInsight | ICatalogItemMeasure | ICatalogItemParameter | ICatalogItemComputedAttribute | ICatalogItemAttribute | ICatalogItemFact | ICatalogItemDataSet;
|
|
42
42
|
/**
|
|
43
43
|
* Catalog item for analytical dashboards.
|
|
44
44
|
* @public
|
|
@@ -77,6 +77,18 @@ export interface ICatalogItemParameter extends ICatalogItemBase {
|
|
|
77
77
|
type: "parameter";
|
|
78
78
|
definition: IParameterDefinition;
|
|
79
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Catalog item for computed attributes.
|
|
82
|
+
*
|
|
83
|
+
* @remarks
|
|
84
|
+
* The MAQL expression and the value-shaping fields are not carried here; the editor loads the full
|
|
85
|
+
* computed attribute on demand.
|
|
86
|
+
*
|
|
87
|
+
* @public
|
|
88
|
+
*/
|
|
89
|
+
export interface ICatalogItemComputedAttribute extends ICatalogItemBase {
|
|
90
|
+
type: "computedAttribute";
|
|
91
|
+
}
|
|
80
92
|
/**
|
|
81
93
|
* Catalog item for attributes.
|
|
82
94
|
* @public
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/catalogItem/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/catalogItem/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { IAttributesQueryResult, IDashboardsQueryResult, IDatasetsQueryResult, IFactsQueryResult, IInsightsQueryResult, IMeasuresQueryResult, IParametersQueryResult } from "@gooddata/sdk-backend-spi";
|
|
1
|
+
import type { IAttributesQueryResult, IComputedAttributesQueryResult, IDashboardsQueryResult, IDatasetsQueryResult, IFactsQueryResult, IInsightsQueryResult, IMeasuresQueryResult, IParametersQueryResult } from "@gooddata/sdk-backend-spi";
|
|
2
2
|
import type { IFeatureFlags, Identifier, ObjectOrigin } from "@gooddata/sdk-model";
|
|
3
3
|
import { type ObjectType } from "../objectType/types.js";
|
|
4
4
|
import type { ICatalogItemFeedOptions, ICatalogItemQueryOptions } from "./types.js";
|
|
5
|
-
export type EndpointResult = IMeasuresQueryResult | IDashboardsQueryResult | IFactsQueryResult | IInsightsQueryResult | IAttributesQueryResult | IDatasetsQueryResult | IParametersQueryResult;
|
|
5
|
+
export type EndpointResult = IMeasuresQueryResult | IDashboardsQueryResult | IFactsQueryResult | IInsightsQueryResult | IAttributesQueryResult | IDatasetsQueryResult | IParametersQueryResult | IComputedAttributesQueryResult;
|
|
6
6
|
export type FeedEndpoint = {
|
|
7
7
|
type: ObjectType;
|
|
8
8
|
query: () => Promise<EndpointResult>;
|
|
@@ -29,6 +29,7 @@ export interface ICatalogEndpoint {
|
|
|
29
29
|
}
|
|
30
30
|
type FilterSlot = "createdBy" | "excludeCreatedBy" | "certification";
|
|
31
31
|
export declare function useCatalogEndpoints(types: ObjectType[], queryOptions: ICatalogItemQueryOptions, flags: IFeatureFlags | undefined): FeedEndpoint[];
|
|
32
|
+
export declare function useEnabledObjectTypes(): ObjectType[];
|
|
32
33
|
export declare function selectCatalogEndpoints(types: readonly ObjectType[], options: ICatalogItemQueryOptions, flags: IFeatureFlags | undefined, endpoints?: readonly ICatalogEndpoint[]): FeedEndpoint[];
|
|
33
34
|
export {};
|
|
34
35
|
//# sourceMappingURL=useCatalogEndpoints.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCatalogEndpoints.d.ts","sourceRoot":"","sources":["../../src/catalogItem/useCatalogEndpoints.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACR,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useCatalogEndpoints.d.ts","sourceRoot":"","sources":["../../src/catalogItem/useCatalogEndpoints.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACR,sBAAsB,EACtB,8BAA8B,EAC9B,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAazD,OAAO,KAAK,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEpF,MAAM,MAAM,cAAc,GACpB,oBAAoB,GACpB,sBAAsB,GACtB,iBAAiB,GACjB,oBAAoB,GACpB,sBAAsB,GACtB,oBAAoB,GACpB,sBAAsB,GACtB,8BAA8B,CAAC;AAErC,MAAM,MAAM,YAAY,GAAG;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;CACxC,CAAC;AAEF,UAAU,YAAY,CAAC,CAAC;IACpB,MAAM,EAAE,CAAC,CAAC;IACV,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;IAClC,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7B,UAAU,EAAE,YAAY,CAAC,UAAU,EAAE,CAAC,GAAG,SAAS,CAAC;IACnD,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,aAAa,EAAE,OAAO,GAAG,SAAS,CAAC;CACtC;AAED,wBAAgB,sBAAsB,CAClC,WAAW,EAAE,uBAAuB,EACpC,YAAY,EAAE,yBAAyB,GACxC,wBAAwB,CA4C1B;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IACnE,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,aAAa,CAAC,EAAE,CAAC;IAC3C,cAAc,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;CAC1C;AAED,KAAK,UAAU,GAAG,WAAW,GAAG,kBAAkB,GAAG,eAAe,CAAC;AA2CrE,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,UAAU,EAAE,EACnB,YAAY,EAAE,wBAAwB,EACtC,KAAK,EAAE,aAAa,GAAG,SAAS,GACjC,YAAY,EAAE,CAEhB;AAED,wBAAgB,qBAAqB,IAAI,UAAU,EAAE,CAMpD;AAED,wBAAgB,sBAAsB,CAClC,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,aAAa,GAAG,SAAS,EAChC,SAAS,GAAE,SAAS,gBAAgB,EAAc,GACnD,YAAY,EAAE,CAqBhB"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
// (C) 2026 GoodData Corporation
|
|
2
2
|
import { useMemo } from "react";
|
|
3
|
+
import { COMPUTED_ATTRIBUTE_FEATURE_FLAG } from "../computedAttribute/gate.js";
|
|
3
4
|
import { ObjectTypes } from "../objectType/constants.js";
|
|
4
5
|
import {} from "../objectType/types.js";
|
|
5
|
-
import {
|
|
6
|
+
import { useFeatureFlags } from "../permission/PermissionsContext.js";
|
|
7
|
+
import { getAttributesQuery, getComputedAttributesQuery, getDashboardsQuery, getDateDatasetsQuery, getFactsQuery, getInsightsQuery, getMetricsQuery, getParametersQuery, } from "./query.js";
|
|
6
8
|
export function useCatalogQueryOptions(feedOptions, filterInputs) {
|
|
7
9
|
const { backend, workspace, id, pageSize } = feedOptions;
|
|
8
10
|
const { search, origin, createdBy, tags, qualityIds, isHidden, certification } = filterInputs;
|
|
@@ -64,6 +66,12 @@ const ENDPOINTS = [
|
|
|
64
66
|
query: (opts) => getParametersQuery(opts).query(),
|
|
65
67
|
gatedBy: ["enableParameters"],
|
|
66
68
|
},
|
|
69
|
+
{
|
|
70
|
+
type: ObjectTypes.COMPUTED_ATTRIBUTE,
|
|
71
|
+
query: (opts) => getComputedAttributesQuery(opts).query(),
|
|
72
|
+
gatedBy: [COMPUTED_ATTRIBUTE_FEATURE_FLAG],
|
|
73
|
+
cannotFilterBy: ["certification"],
|
|
74
|
+
},
|
|
67
75
|
{
|
|
68
76
|
type: ObjectTypes.ATTRIBUTE,
|
|
69
77
|
query: (opts) => getAttributesQuery(opts).query(),
|
|
@@ -83,6 +91,10 @@ const ENDPOINTS = [
|
|
|
83
91
|
export function useCatalogEndpoints(types, queryOptions, flags) {
|
|
84
92
|
return useMemo(() => selectCatalogEndpoints(types, queryOptions, flags), [flags, queryOptions, types]);
|
|
85
93
|
}
|
|
94
|
+
export function useEnabledObjectTypes() {
|
|
95
|
+
const flags = useFeatureFlags();
|
|
96
|
+
return useMemo(() => ENDPOINTS.filter((endpoint) => isEndpointEnabled(endpoint, flags)).map(({ type }) => type), [flags]);
|
|
97
|
+
}
|
|
86
98
|
export function selectCatalogEndpoints(types, options, flags, endpoints = ENDPOINTS) {
|
|
87
99
|
if (options.id?.length === 0) {
|
|
88
100
|
return [];
|
|
@@ -94,7 +106,7 @@ export function selectCatalogEndpoints(types, options, flags, endpoints = ENDPOI
|
|
|
94
106
|
continue;
|
|
95
107
|
}
|
|
96
108
|
// gates rule: every listed flag must be on
|
|
97
|
-
if (endpoint
|
|
109
|
+
if (!isEndpointEnabled(endpoint, flags)) {
|
|
98
110
|
continue;
|
|
99
111
|
}
|
|
100
112
|
// compatibility rule: backend rejects these filters on this endpoint
|
|
@@ -105,6 +117,9 @@ export function selectCatalogEndpoints(types, options, flags, endpoints = ENDPOI
|
|
|
105
117
|
}
|
|
106
118
|
return result;
|
|
107
119
|
}
|
|
120
|
+
function isEndpointEnabled(endpoint, flags) {
|
|
121
|
+
return !endpoint.gatedBy?.some((flag) => !flags?.[flag]);
|
|
122
|
+
}
|
|
108
123
|
const isSlotActive = {
|
|
109
124
|
createdBy: (options) => (options.createdBy?.length ?? 0) > 0,
|
|
110
125
|
excludeCreatedBy: (options) => (options.excludeCreatedBy?.length ?? 0) > 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCatalogItemFeed.d.ts","sourceRoot":"","sources":["../../src/catalogItem/useCatalogItemFeed.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAKzD,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKzF,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,uBAAuB
|
|
1
|
+
{"version":3,"file":"useCatalogItemFeed.d.ts","sourceRoot":"","sources":["../../src/catalogItem/useCatalogItemFeed.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAKzD,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKzF,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,uBAAuB;;;;;;;;;;;;;;;;;;;;;;EA8EtE"}
|
|
@@ -71,6 +71,7 @@ function getTotalCountByType(endpoints, totalCounts) {
|
|
|
71
71
|
[ObjectTypes.FACT]: 0,
|
|
72
72
|
[ObjectTypes.DATASET]: 0,
|
|
73
73
|
[ObjectTypes.PARAMETER]: 0,
|
|
74
|
+
[ObjectTypes.COMPUTED_ATTRIBUTE]: 0,
|
|
74
75
|
};
|
|
75
76
|
endpoints.forEach((endpoint, idx) => {
|
|
76
77
|
base[endpoint.type] = totalCounts[idx] ?? 0;
|
|
@@ -68,7 +68,8 @@ function convertTypesToGenAiTypes(types) {
|
|
|
68
68
|
}
|
|
69
69
|
return types
|
|
70
70
|
.map((a) => {
|
|
71
|
-
|
|
71
|
+
// Neither type is indexed for semantic search.
|
|
72
|
+
if (a === "parameter" || a === "computedAttribute") {
|
|
72
73
|
return null;
|
|
73
74
|
}
|
|
74
75
|
return mapGenAIObjectType(a);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CompletionContext, CompletionResult } from "@codemirror/autocomplete";
|
|
2
|
+
/**
|
|
3
|
+
* Completion source for the computed attribute YAML schema. The schema is a flat mapping, so
|
|
4
|
+
* completion only offers the top-level property names, and only at column zero — an indented line
|
|
5
|
+
* sits inside a sequence value (e.g. under `tags:`), where those keys must not be offered.
|
|
6
|
+
*/
|
|
7
|
+
export declare function computedAttributeCompletions(context: CompletionContext): CompletionResult | null;
|
|
8
|
+
//# sourceMappingURL=computedAttributeCompletions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computedAttributeCompletions.d.ts","sourceRoot":"","sources":["../../src/computedAttribute/computedAttributeCompletions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AASpF;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,GAAG,IAAI,CAWhG"}
|