@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.
Files changed (102) hide show
  1. package/esm/asCode/AsCodeDeleteDialog.d.ts.map +1 -1
  2. package/esm/asCode/AsCodeDeleteDialog.js +19 -6
  3. package/esm/asCode/descriptor.d.ts +10 -2
  4. package/esm/asCode/descriptor.d.ts.map +1 -1
  5. package/esm/asCodeRegistry.d.ts.map +1 -1
  6. package/esm/asCodeRegistry.js +6 -1
  7. package/esm/catalogDetail/hooks/useCatalogItemLoad.d.ts.map +1 -1
  8. package/esm/catalogDetail/hooks/useCatalogItemLoad.js +11 -1
  9. package/esm/catalogItem/catalogBackend.test.utils.d.ts.map +1 -1
  10. package/esm/catalogItem/catalogBackend.test.utils.js +5 -0
  11. package/esm/catalogItem/converter.d.ts +4 -3
  12. package/esm/catalogItem/converter.d.ts.map +1 -1
  13. package/esm/catalogItem/converter.js +20 -1
  14. package/esm/catalogItem/guards.d.ts +5 -1
  15. package/esm/catalogItem/guards.d.ts.map +1 -1
  16. package/esm/catalogItem/guards.js +6 -0
  17. package/esm/catalogItem/query.d.ts +2 -1
  18. package/esm/catalogItem/query.d.ts.map +1 -1
  19. package/esm/catalogItem/query.js +34 -0
  20. package/esm/catalogItem/types.d.ts +13 -1
  21. package/esm/catalogItem/types.d.ts.map +1 -1
  22. package/esm/catalogItem/useCatalogEndpoints.d.ts +3 -2
  23. package/esm/catalogItem/useCatalogEndpoints.d.ts.map +1 -1
  24. package/esm/catalogItem/useCatalogEndpoints.js +17 -2
  25. package/esm/catalogItem/useCatalogItemFeed.d.ts +1 -0
  26. package/esm/catalogItem/useCatalogItemFeed.d.ts.map +1 -1
  27. package/esm/catalogItem/useCatalogItemFeed.js +1 -0
  28. package/esm/catalogItem/useCatalogItemSemanticSearch.js +2 -1
  29. package/esm/computedAttribute/computedAttributeCompletions.d.ts +8 -0
  30. package/esm/computedAttribute/computedAttributeCompletions.d.ts.map +1 -0
  31. package/esm/computedAttribute/computedAttributeCompletions.js +21 -0
  32. package/esm/computedAttribute/computedAttributeConverter.d.ts +38 -0
  33. package/esm/computedAttribute/computedAttributeConverter.d.ts.map +1 -0
  34. package/esm/computedAttribute/computedAttributeConverter.js +71 -0
  35. package/esm/computedAttribute/computedAttributeCopy.d.ts +3 -0
  36. package/esm/computedAttribute/computedAttributeCopy.d.ts.map +1 -0
  37. package/esm/computedAttribute/computedAttributeCopy.js +20 -0
  38. package/esm/computedAttribute/computedAttributeDescriptor.d.ts +7 -0
  39. package/esm/computedAttribute/computedAttributeDescriptor.d.ts.map +1 -0
  40. package/esm/computedAttribute/computedAttributeDescriptor.js +101 -0
  41. package/esm/computedAttribute/computedAttributeMutationPort.d.ts +17 -0
  42. package/esm/computedAttribute/computedAttributeMutationPort.d.ts.map +1 -0
  43. package/esm/computedAttribute/computedAttributeMutationPort.js +53 -0
  44. package/esm/computedAttribute/computedAttributeMutationPort.test.utils.d.ts +4 -0
  45. package/esm/computedAttribute/computedAttributeMutationPort.test.utils.d.ts.map +1 -0
  46. package/esm/computedAttribute/computedAttributeMutationPort.test.utils.js +24 -0
  47. package/esm/computedAttribute/computedAttributeSchema.d.ts +27 -0
  48. package/esm/computedAttribute/computedAttributeSchema.d.ts.map +1 -0
  49. package/esm/computedAttribute/computedAttributeSchema.js +27 -0
  50. package/esm/computedAttribute/computedAttributeSerialization.d.ts +15 -0
  51. package/esm/computedAttribute/computedAttributeSerialization.d.ts.map +1 -0
  52. package/esm/computedAttribute/computedAttributeSerialization.js +29 -0
  53. package/esm/computedAttribute/computedAttributeValidation.d.ts +15 -0
  54. package/esm/computedAttribute/computedAttributeValidation.d.ts.map +1 -0
  55. package/esm/computedAttribute/computedAttributeValidation.js +37 -0
  56. package/esm/computedAttribute/gate.d.ts +4 -0
  57. package/esm/computedAttribute/gate.d.ts.map +1 -0
  58. package/esm/computedAttribute/gate.js +4 -0
  59. package/esm/filter/FilterObjectType.js +3 -3
  60. package/esm/header/CreateObjectButton.d.ts.map +1 -1
  61. package/esm/header/CreateObjectButton.js +1 -0
  62. package/esm/index.d.ts +2 -2
  63. package/esm/index.d.ts.map +1 -1
  64. package/esm/index.js +1 -1
  65. package/esm/insight/insightDescriptor.js +2 -2
  66. package/esm/insight/insightMutationPort.d.ts +2 -2
  67. package/esm/insight/insightMutationPort.d.ts.map +1 -1
  68. package/esm/insight/insightMutationPort.js +3 -3
  69. package/esm/lineage/const.d.ts.map +1 -1
  70. package/esm/lineage/const.js +1 -0
  71. package/esm/localization/bundles/en-US.localization-bundle.d.ts +108 -0
  72. package/esm/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
  73. package/esm/localization/bundles/en-US.localization-bundle.js +108 -0
  74. package/esm/metric/metricDescriptor.js +2 -2
  75. package/esm/metric/metricMutationPort.d.ts +2 -2
  76. package/esm/metric/metricMutationPort.d.ts.map +1 -1
  77. package/esm/metric/metricMutationPort.js +7 -4
  78. package/esm/objectType/ObjectTypeIcon.js +1 -1
  79. package/esm/objectType/ObjectTypeSelect.d.ts +2 -2
  80. package/esm/objectType/ObjectTypeSelect.d.ts.map +1 -1
  81. package/esm/objectType/ObjectTypeSelect.js +13 -14
  82. package/esm/objectType/constants.d.ts +28 -3
  83. package/esm/objectType/constants.d.ts.map +1 -1
  84. package/esm/objectType/constants.js +10 -9
  85. package/esm/objectType/labels.d.ts.map +1 -1
  86. package/esm/objectType/labels.js +1 -0
  87. package/esm/objectType/mapping.d.ts +1 -1
  88. package/esm/objectType/mapping.d.ts.map +1 -1
  89. package/esm/objectType/types.d.ts +2 -2
  90. package/esm/objectType/types.d.ts.map +1 -1
  91. package/esm/sdk-ui-catalog.d.ts +21 -3
  92. package/package.json +17 -17
  93. package/styles/css/codeDialog.css +8 -0
  94. package/styles/css/codeDialog.css.map +1 -1
  95. package/styles/css/detail.css +9 -1
  96. package/styles/css/detail.css.map +1 -1
  97. package/styles/css/main.css +9 -1
  98. package/styles/css/main.css.map +1 -1
  99. package/styles/css/objectType.css +1 -1
  100. package/styles/css/objectType.css.map +1 -1
  101. package/styles/scss/codeDialog.scss +9 -0
  102. 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;AAOzD,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,2CAoEjF"}
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.count(backend, workspace, item) : undefined }, [item, backend, workspace]);
22
- const referencingCount = !referenceCounted || status === "error" ? 0 : result;
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, { ...msg.deleteBody, values: {
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: { count: referencingCount } }) })) : null] }));
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
- count(backend: IAnalyticalBackend, workspace: string, item: TItem): Promise<number>;
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":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAE1E,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAErE,MAAM,MAAM,gBAAgB,GACtB,OAAO,WAAW,CAAC,MAAM,GACzB,OAAO,WAAW,CAAC,SAAS,GAC5B,OAAO,WAAW,CAAC,aAAa,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,kBAAkB,EAAE,iBAAiB,CAAC;IACtC,aAAa,EAAE,iBAAiB,CAAC;IACjC,aAAa,EAAE,iBAAiB,CAAC;IACjC,aAAa,EAAE,iBAAiB,CAAC;IACjC,oBAAoB,EAAE,iBAAiB,CAAC;IACxC,IAAI,EAAE,iBAAiB,CAAC;IACxB,WAAW,EAAE,iBAAiB,CAAC;IAE/B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,YAAY,EAAE,iBAAiB,CAAC;IAChC,aAAa,EAAE,iBAAiB,CAAC;IACjC,WAAW,EAAE,iBAAiB,CAAC;CAClC;AAED,gBAAgB;AAChB,MAAM,MAAM,gBAAgB,CAAC,IAAI,IAAI;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7G;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAC7B;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GACpB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAE9B,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,GAAG,SAAS,CAEtF;AAED,gBAAgB;AAChB,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,gBAAgB;AAChB,MAAM,WAAW,cAAc,CAAC,IAAI;IAChC,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wFAAwF;IACxF,SAAS,CAAC,UAAU,EAAE,IAAI,GAAG,mBAAmB,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAClF,kGAAkG;IAClG,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC;CAC9C;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB,CAAC,IAAI,GAAG,OAAO,EAAE,KAAK,SAAS,YAAY,GAAG,YAAY;IAC1F,MAAM,CAAC,UAAU,EAAE,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAED;;;;GAIG;AACH,MAAM,MAAM,UAAU,CAAC,IAAI,EAAE,KAAK,SAAS,YAAY,IACjD;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAC;IAAC,SAAS,CAAC,EAAE,KAAK,CAAA;CAAE,GAChE;IACI,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,IAAI,CAAC,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,SAAS,EAAE,iBAAiB,CAAC;CAChC,CAAC;AAER,gBAAgB;AAChB,wBAAgB,UAAU,CAAC,IAAI,EAAE,KAAK,SAAS,YAAY,EACvD,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,GAC9B,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;IAAE,SAAS,EAAE,iBAAiB,CAAA;CAAE,CAAC,CAE5E;AAED,gBAAgB;AAChB,wBAAgB,WAAW,CAAC,UAAU,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,SAAS,CAExF;AAED,gBAAgB;AAChB,MAAM,MAAM,oBAAoB,CAAC,KAAK,SAAS,YAAY,IAAI;IAC3D,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpF,YAAY,EAAE,iBAAiB,CAAC;CACnC,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,cAAc,CAAC,IAAI,IAAI;IAC/B,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3C,KAAK,CAAC,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,iBAAiB,CAAC,IAAI,GAAG,OAAO,EAAE,KAAK,SAAS,YAAY,GAAG,YAAY;IACxF,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,QAAQ,EAAE,eAAe,CAAC;IAE1B,4DAA4D;IAC5D,UAAU,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1C;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,iBAAiB,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACzC,yFAAyF;IACzF,aAAa,CAAC,IAAI,OAAO,CAAC;IAC1B,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAErG,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9B,gBAAgB,CAAC,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,6EAA6E;IAC7E,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAClC;AAED,wFAAwF;AACxF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,KAAK,SAAS,YAAY,EACnE,UAAU,EAAE,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,GAC3C,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAEhC"}
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;AAIlF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIxD,gBAAgB;AAChB,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CAIzE,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,CAcvE"}
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"}
@@ -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":"AAqBA,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
+ {"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;AAyCD,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;AAyBvF,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"}
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,EASb,MAAM,qBAAqB,CAAC;AAK7B,OAAO,KAAK,EACR,YAAY,EACZ,qBAAqB,EACrB,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,mBAAmB,GACnB,wBAAwB,GACxB,sBAAsB,GACtB,SAAS,GAChB,YAAY,CAuBd;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,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
+ {"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":"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"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/catalogItem/query.ts"],"names":[],"mappings":"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"}
@@ -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;AAGnF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAWzD,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,CAAC;AAE7B,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;AAqCrE,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,UAAU,EAAE,EACnB,YAAY,EAAE,wBAAwB,EACtC,KAAK,EAAE,aAAa,GAAG,SAAS,GACjC,YAAY,EAAE,CAEhB;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
+ {"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 { getAttributesQuery, getDashboardsQuery, getDateDatasetsQuery, getFactsQuery, getInsightsQuery, getMetricsQuery, getParametersQuery, } from "./query.js";
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.gatedBy?.some((flag) => !flags?.[flag])) {
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,
@@ -15,6 +15,7 @@ export declare function useCatalogItemFeed(feedOptions: ICatalogItemFeedOptions)
15
15
  fact: number;
16
16
  dataSet: number;
17
17
  parameter: number;
18
+ computedAttribute: number;
18
19
  };
19
20
  hasNext: boolean;
20
21
  next: () => Promise<void>;
@@ -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;;;;;;;;;;;;;;;;;;;;;EA8EtE"}
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
- if (a === "parameter") {
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"}