@gooddata/sdk-ui-catalog 11.31.0 → 11.32.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/esm/AnalyticsCatalogDetail.d.ts.map +1 -1
  2. package/esm/AnalyticsCatalogDetail.js +3 -1
  3. package/esm/AnalyticsCatalogDetail.js.map +1 -1
  4. package/esm/catalog/Catalog.d.ts.map +1 -1
  5. package/esm/catalog/Catalog.js +3 -2
  6. package/esm/catalog/Catalog.js.map +1 -1
  7. package/esm/catalogDetail/CatalogDetailActions.d.ts +19 -0
  8. package/esm/catalogDetail/CatalogDetailActions.d.ts.map +1 -0
  9. package/esm/catalogDetail/CatalogDetailActions.js +94 -0
  10. package/esm/catalogDetail/CatalogDetailActions.js.map +1 -0
  11. package/esm/catalogDetail/CatalogDetailContent.d.ts +10 -14
  12. package/esm/catalogDetail/CatalogDetailContent.d.ts.map +1 -1
  13. package/esm/catalogDetail/CatalogDetailContent.js +8 -19
  14. package/esm/catalogDetail/CatalogDetailContent.js.map +1 -1
  15. package/esm/catalogDetail/hooks/useCatalogItemUpdate.d.ts +4 -1
  16. package/esm/catalogDetail/hooks/useCatalogItemUpdate.d.ts.map +1 -1
  17. package/esm/catalogDetail/hooks/useCatalogItemUpdate.js +13 -1
  18. package/esm/catalogDetail/hooks/useCatalogItemUpdate.js.map +1 -1
  19. package/esm/header/CreateObjectButton.d.ts.map +1 -1
  20. package/esm/header/CreateObjectButton.js +6 -17
  21. package/esm/header/CreateObjectButton.js.map +1 -1
  22. package/esm/main/Main.d.ts.map +1 -1
  23. package/esm/main/Main.js +23 -11
  24. package/esm/main/Main.js.map +1 -1
  25. package/esm/parameter/ParameterCreateDialog.d.ts +4 -3
  26. package/esm/parameter/ParameterCreateDialog.d.ts.map +1 -1
  27. package/esm/parameter/ParameterCreateDialog.js +45 -4
  28. package/esm/parameter/ParameterCreateDialog.js.map +1 -1
  29. package/esm/parameter/ParameterDeleteDialog.d.ts +1 -4
  30. package/esm/parameter/ParameterDeleteDialog.d.ts.map +1 -1
  31. package/esm/parameter/ParameterDeleteDialog.js +5 -8
  32. package/esm/parameter/ParameterDeleteDialog.js.map +1 -1
  33. package/esm/parameter/ParameterEditDialog.d.ts +2 -5
  34. package/esm/parameter/ParameterEditDialog.d.ts.map +1 -1
  35. package/esm/parameter/ParameterEditDialog.js +6 -10
  36. package/esm/parameter/ParameterEditDialog.js.map +1 -1
  37. package/esm/parameter/ParameterMutationContext.d.ts +16 -0
  38. package/esm/parameter/ParameterMutationContext.d.ts.map +1 -0
  39. package/esm/parameter/ParameterMutationContext.js +33 -0
  40. package/esm/parameter/ParameterMutationContext.js.map +1 -0
  41. package/esm/parameter/parameterCopy.d.ts +1 -2
  42. package/esm/parameter/parameterCopy.d.ts.map +1 -1
  43. package/esm/parameter/parameterCopy.js +2 -15
  44. package/esm/parameter/parameterCopy.js.map +1 -1
  45. package/esm/parameter/parameterMutationPort.d.ts +16 -0
  46. package/esm/parameter/parameterMutationPort.d.ts.map +1 -0
  47. package/esm/parameter/parameterMutationPort.js +22 -0
  48. package/esm/parameter/parameterMutationPort.js.map +1 -0
  49. package/esm/parameter/tests/parameterMutationPort.test.utils.d.ts +7 -0
  50. package/esm/parameter/tests/parameterMutationPort.test.utils.d.ts.map +1 -0
  51. package/esm/parameter/tests/parameterMutationPort.test.utils.js +29 -0
  52. package/esm/parameter/tests/parameterMutationPort.test.utils.js.map +1 -0
  53. package/esm/sdk-ui-catalog.d.ts +8 -12
  54. package/package.json +13 -13
  55. package/esm/parameter/ParameterActions.d.ts +0 -20
  56. package/esm/parameter/ParameterActions.d.ts.map +0 -1
  57. package/esm/parameter/ParameterActions.js +0 -96
  58. package/esm/parameter/ParameterActions.js.map +0 -1
  59. package/esm/parameter/ParameterDuplicateDialog.d.ts +0 -12
  60. package/esm/parameter/ParameterDuplicateDialog.d.ts.map +0 -1
  61. package/esm/parameter/ParameterDuplicateDialog.js +0 -35
  62. package/esm/parameter/ParameterDuplicateDialog.js.map +0 -1
package/esm/main/Main.js CHANGED
@@ -4,6 +4,7 @@ import {} from "react";
4
4
  import { FormattedMessage, defineMessages, useIntl } from "react-intl";
5
5
  import { useToastMessage } from "@gooddata/sdk-ui-kit";
6
6
  import { CatalogDetail } from "../catalogDetail/CatalogDetail.js";
7
+ import { useCatalogFeedActions } from "../catalogItem/CatalogFeedContext.js";
7
8
  import { CatalogItemFeed } from "../catalogItem/CatalogItemFeed.js";
8
9
  import {} from "../catalogItem/types.js";
9
10
  import { FilterCertificationMemo } from "../filter/FilterCertification.js";
@@ -16,7 +17,7 @@ import { FilterQualityMemo } from "../filter/FilterQuality.js";
16
17
  import { FilterResetButtonMemo } from "../filter/FilterResetButton.js";
17
18
  import { FilterTagsMemo } from "../filter/FilterTags.js";
18
19
  import { FilterVisibilityMemo } from "../filter/FilterVisibility.js";
19
- import { ParameterActions } from "../parameter/ParameterActions.js";
20
+ import { ObjectTypes } from "../objectType/constants.js";
20
21
  import { useIsCatalogQualityEnabled } from "../quality/gate.js";
21
22
  import { Table } from "../table/Table.js";
22
23
  const messages = defineMessages({
@@ -28,22 +29,33 @@ export function Main({ backend, workspace, open, openedItem, setItemOpened, onOp
28
29
  const intl = useIntl();
29
30
  const { addError } = useToastMessage();
30
31
  const { toggleTag } = useFilterActions();
32
+ const { updateItem, removeItem, refetchObjectType } = useCatalogFeedActions();
31
33
  const isQualityEnabled = useIsCatalogQualityEnabled();
32
34
  return (_jsxs("section", { className: "gd-analytics-catalog__main", children: [
33
35
  _jsxs("div", { className: "gd-analytics-catalog__main__filters", children: [
34
36
  _jsx(FilterObjectTypeMemo, {}), _jsxs(FilterGroupLayout, { title: _jsx(FormattedMessage, { id: "analyticsCatalog.filter.title" }), children: [
35
37
  _jsx(FilterCreatedByMemo, { backend: backend, workspace: workspace }), _jsx(FilterTagsMemo, {}), _jsx(FilterOriginGuard, { backend: backend, workspace: workspace, children: _jsx(FilterOriginMemo, {}) }), isQualityEnabled ? _jsx(FilterQualityMemo, {}) : null, _jsx(FilterVisibilityMemo, {}), _jsx(FilterCertificationMemo, {}), _jsx(FilterResetButtonMemo, {})
36
38
  ] })
37
- ] }), _jsx(CatalogItemFeed, { children: ({ items, next, hasNext, totalCount, status }) => (_jsx(Table, { status: status, items: items, next: next, hasNext: hasNext, totalCount: totalCount, onItemClick: onOpenDetail, onTagClick: toggleTag })) }), _jsx(ParameterActions, { backend: backend, workspace: workspace, setItemOpened: setItemOpened, onCloseDetail: onCloseDetail, children: ({ getItemActions, onItemAction, onEditClick, onItemUpdate }) => (_jsx(CatalogDetail, { open: open, objectDefinition: openedItem, onClose: onCloseDetail, onOpenClick: onOpenClick, onCatalogItemNavigation: (event, ref) => {
38
- setItemOpened(ref);
39
- onCatalogItemNavigation?.(event, ref);
40
- }, onEditClick: onEditClick, getItemActions: getItemActions, onItemAction: onItemAction, onCatalogItemUpdate: onItemUpdate, onCatalogItemUpdateError: (err) => {
41
- addError(messages.updateFailed, {
42
- showLess: intl.formatMessage(messages.showLess),
43
- showMore: intl.formatMessage(messages.showMore),
44
- errorDetail: `${err.name} ${err.message}`,
45
- });
46
- } })) })
39
+ ] }), _jsx(CatalogItemFeed, { children: ({ items, next, hasNext, totalCount, status }) => (_jsx(Table, { status: status, items: items, next: next, hasNext: hasNext, totalCount: totalCount, onItemClick: onOpenDetail, onTagClick: toggleTag })) }), _jsx(CatalogDetail, { open: open, objectDefinition: openedItem, onClose: onCloseDetail, onOpenClick: onOpenClick, onCatalogItemNavigation: (event, ref) => {
40
+ setItemOpened(ref);
41
+ onCatalogItemNavigation?.(event, ref);
42
+ }, onCatalogItemCreate: (item) => {
43
+ setItemOpened(item);
44
+ refetchObjectType(ObjectTypes.PARAMETER);
45
+ }, onCatalogItemUpdate: (item) => {
46
+ setItemOpened(item);
47
+ updateItem(item);
48
+ }, onCatalogItemDelete: (ref) => {
49
+ removeItem(ref);
50
+ refetchObjectType(ObjectTypes.PARAMETER);
51
+ onCloseDetail();
52
+ }, onCatalogItemUpdateError: (err) => {
53
+ addError(messages.updateFailed, {
54
+ showLess: intl.formatMessage(messages.showLess),
55
+ showMore: intl.formatMessage(messages.showMore),
56
+ errorDetail: `${err.name} ${err.message}`,
57
+ });
58
+ } })
47
59
  ] }));
48
60
  }
49
61
  //# sourceMappingURL=Main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Main.js","sourceRoot":"","sources":["../../src/main/Main.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Main.js","sourceRoot":"","sources":["../../src/main/Main.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
- import type { IParameterMetadataObjectDefinition } from "@gooddata/sdk-model";
1
+ import type { ICatalogItemParameter } from "../catalogItem/types.js";
2
2
  type Props = {
3
+ sourceItem?: ICatalogItemParameter;
3
4
  onClose: () => void;
4
- onSubmit: (parameter: IParameterMetadataObjectDefinition) => Promise<void>;
5
+ onCreated?: (item: ICatalogItemParameter) => void;
5
6
  };
6
- export declare function ParameterCreateDialog({ onClose, onSubmit }: Props): import("react/jsx-runtime").JSX.Element;
7
+ export declare function ParameterCreateDialog({ sourceItem, onClose, onCreated }: Props): import("react/jsx-runtime").JSX.Element;
7
8
  export {};
8
9
  //# sourceMappingURL=ParameterCreateDialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ParameterCreateDialog.d.ts","sourceRoot":"","sources":["../../src/parameter/ParameterCreateDialog.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,qBAAqB,CAAC;AAiB9E,KAAK,KAAK,GAAG;IACT,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,SAAS,EAAE,kCAAkC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9E,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,KAAK,2CAWjE"}
1
+ {"version":3,"file":"ParameterCreateDialog.d.ts","sourceRoot":"","sources":["../../src/parameter/ParameterCreateDialog.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAsBrE,KAAK,KAAK,GAAG;IACT,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACrD,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,KAAK,2CAkD9E"}
@@ -1,8 +1,15 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  // (C) 2026 GoodData Corporation
3
- import { Suspense, lazy } from "react";
3
+ import { Suspense, lazy, useCallback, useMemo } from "react";
4
+ import { defineMessages } from "react-intl";
5
+ import { useToastMessage } from "@gooddata/sdk-ui-kit";
6
+ import { createCopiedParameter, isDuplicateIdError } from "./parameterCopy.js";
7
+ import { useParameterMutation } from "./ParameterMutationContext.js";
4
8
  const ParameterDialog = lazy(() => import("./ParameterDialog.js").then((m) => ({ default: m.ParameterDialog })));
5
- const initialParameter = {
9
+ const messages = defineMessages({
10
+ parameterCreateSuccess: { id: "analyticsCatalog.parameter.create.success" },
11
+ });
12
+ const defaultInitialParameter = {
6
13
  title: "My Parameter",
7
14
  description: "",
8
15
  definition: {
@@ -10,7 +17,41 @@ const initialParameter = {
10
17
  defaultValue: 0,
11
18
  },
12
19
  };
13
- export function ParameterCreateDialog({ onClose, onSubmit }) {
14
- return (_jsx(Suspense, { fallback: null, children: _jsx(ParameterDialog, { mode: "create", initialParameter: initialParameter, onClose: onClose, onSubmit: onSubmit }) }));
20
+ export function ParameterCreateDialog({ sourceItem, onClose, onCreated }) {
21
+ const { addSuccess } = useToastMessage();
22
+ const mutation = useParameterMutation();
23
+ const initialParameter = useMemo(() => {
24
+ if (!sourceItem) {
25
+ return defaultInitialParameter;
26
+ }
27
+ return createCopiedParameter({
28
+ id: sourceItem.identifier,
29
+ type: "parameter",
30
+ title: sourceItem.title,
31
+ description: sourceItem.description,
32
+ tags: sourceItem.tags,
33
+ definition: sourceItem.definition,
34
+ });
35
+ }, [sourceItem]);
36
+ const copiedId = sourceItem ? initialParameter.id : undefined;
37
+ const handleSubmit = useCallback(async (parameter) => {
38
+ let createdParameter;
39
+ try {
40
+ createdParameter = await mutation.create(parameter);
41
+ }
42
+ catch (error) {
43
+ if (copiedId !== undefined && parameter.id === copiedId && isDuplicateIdError(error)) {
44
+ const { id: _id, ...parameterWithoutId } = parameter;
45
+ createdParameter = await mutation.create(parameterWithoutId);
46
+ }
47
+ else {
48
+ throw error;
49
+ }
50
+ }
51
+ onCreated?.(createdParameter);
52
+ onClose();
53
+ addSuccess(messages.parameterCreateSuccess);
54
+ }, [addSuccess, copiedId, mutation, onClose, onCreated]);
55
+ return (_jsx(Suspense, { fallback: null, children: _jsx(ParameterDialog, { mode: "create", initialParameter: initialParameter, onClose: onClose, onSubmit: handleSubmit }) }));
15
56
  }
16
57
  //# sourceMappingURL=ParameterCreateDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ParameterCreateDialog.js","sourceRoot":"","sources":["../../src/parameter/ParameterCreateDialog.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAMvC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAC9B,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAC/E,CAAC;AAEF,MAAM,gBAAgB,GAAoC;IACtD,KAAK,EAAE,cAAc;IACrB,WAAW,EAAE,EAAE;IACf,UAAU,EAAE;QACR,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,CAAC;KAClB;CACJ,CAAC;AAOF,MAAM,UAAU,qBAAqB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAS,EAAE;IAChE,OAAO,CACH,KAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI,YACpB,KAAC,eAAe,IACZ,IAAI,EAAC,QAAQ,EACb,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,GACpB,GACK,CACd,CAAC;AAAA,CACL"}
1
+ {"version":3,"file":"ParameterCreateDialog.js","sourceRoot":"","sources":["../../src/parameter/ParameterCreateDialog.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +1,9 @@
1
- import type { IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
2
1
  import { type ICatalogItemParameter } from "../catalogItem/types.js";
3
2
  type Props = {
4
- backend: IAnalyticalBackend;
5
- workspace: string;
6
3
  item: ICatalogItemParameter;
7
4
  onClose: () => void;
8
5
  onDeleted: () => void;
9
6
  };
10
- export declare function ParameterDeleteDialog({ backend, workspace, item, onClose, onDeleted }: Props): import("react/jsx-runtime").JSX.Element;
7
+ export declare function ParameterDeleteDialog({ item, onClose, onDeleted }: Props): import("react/jsx-runtime").JSX.Element;
11
8
  export {};
12
9
  //# sourceMappingURL=ParameterDeleteDialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ParameterDeleteDialog.d.ts","sourceRoot":"","sources":["../../src/parameter/ParameterDeleteDialog.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAMpE,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAWrE,KAAK,KAAK,GAAG;IACT,OAAO,EAAE,kBAAkB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,KAAK,2CA6C5F"}
1
+ {"version":3,"file":"ParameterDeleteDialog.d.ts","sourceRoot":"","sources":["../../src/parameter/ParameterDeleteDialog.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAYrE,KAAK,KAAK,GAAG;IACT,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,KAAK,2CA4CxE"}
@@ -2,11 +2,9 @@ import { jsx as _jsx } 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
- import { idRef } from "@gooddata/sdk-model";
6
5
  import { ConfirmDialog, useToastMessage } from "@gooddata/sdk-ui-kit";
7
- import { useCatalogFeedActions } from "../catalogItem/CatalogFeedContext.js";
8
- import { deleteParameterCatalogItem } from "../catalogItem/query.js";
9
6
  import {} from "../catalogItem/types.js";
7
+ import { useParameterMutation } from "./ParameterMutationContext.js";
10
8
  const messages = defineMessages({
11
9
  title: { id: "analyticsCatalog.parameter.dialog.delete.title" },
12
10
  body: { id: "analyticsCatalog.parameter.dialog.delete.body" },
@@ -15,26 +13,25 @@ const messages = defineMessages({
15
13
  deleteSuccess: { id: "analyticsCatalog.parameter.delete.success" },
16
14
  deleteError: { id: "analyticsCatalog.parameter.delete.error" },
17
15
  });
18
- export function ParameterDeleteDialog({ backend, workspace, item, onClose, onDeleted }) {
16
+ export function ParameterDeleteDialog({ item, onClose, onDeleted }) {
19
17
  const intl = useIntl();
20
18
  const { addSuccess, addError } = useToastMessage();
21
- const { refetchObjectType } = useCatalogFeedActions();
19
+ const mutation = useParameterMutation();
22
20
  const [isDeleting, setIsDeleting] = useState(false);
23
21
  const displayName = item.title || item.identifier;
24
22
  const handleDelete = useCallback(async () => {
25
23
  setIsDeleting(true);
26
24
  try {
27
- await deleteParameterCatalogItem(backend, workspace, idRef(item.identifier, "parameter"));
25
+ await mutation.delete(item);
28
26
  onDeleted();
29
27
  onClose();
30
28
  addSuccess(messages.deleteSuccess);
31
- await refetchObjectType("parameter");
32
29
  }
33
30
  catch {
34
31
  addError(messages.deleteError);
35
32
  setIsDeleting(false);
36
33
  }
37
- }, [addError, addSuccess, backend, item.identifier, onClose, onDeleted, refetchObjectType, workspace]);
34
+ }, [addError, addSuccess, item, mutation, onClose, onDeleted]);
38
35
  return (_jsx(ConfirmDialog, { headline: intl.formatMessage(messages.title), cancelButtonText: intl.formatMessage(messages.cancel), submitButtonText: intl.formatMessage(messages.submit), isPositive: false, isSubmitDisabled: isDeleting, isCancelDisabled: isDeleting, showProgressIndicator: isDeleting, onCancel: onClose, onClose: onClose, onSubmit: handleDelete, displayCloseButton: !isDeleting, children: _jsx(FormattedMessage, { ...messages.body, values: {
39
36
  name: displayName,
40
37
  b: (chunks) => _jsx("b", { children: chunks }),
@@ -1 +1 @@
1
- {"version":3,"file":"ParameterDeleteDialog.js","sourceRoot":"","sources":["../../src/parameter/ParameterDeleteDialog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ParameterDeleteDialog.js","sourceRoot":"","sources":["../../src/parameter/ParameterDeleteDialog.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEvE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAA8B,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,QAAQ,GAAG,cAAc,CAAC;IAC5B,KAAK,EAAE,EAAE,EAAE,EAAE,gDAAgD,EAAE;IAC/D,IAAI,EAAE,EAAE,EAAE,EAAE,+CAA+C,EAAE;IAC7D,MAAM,EAAE,EAAE,EAAE,EAAE,iDAAiD,EAAE;IACjE,MAAM,EAAE,EAAE,EAAE,EAAE,0CAA0C,EAAE;IAC1D,aAAa,EAAE,EAAE,EAAE,EAAE,2CAA2C,EAAE;IAClE,WAAW,EAAE,EAAE,EAAE,EAAE,yCAAyC,EAAE;CACjE,CAAC,CAAC;AAQH,MAAM,UAAU,qBAAqB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAS,EAAE;IACvE,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,eAAe,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;IACxC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC;IAElD,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;QACzC,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC;YACD,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACL,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC/B,aAAa,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IAAA,CACJ,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAE/D,OAAO,CACH,KAAC,aAAa,IACV,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC5C,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EACrD,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EACrD,UAAU,EAAE,KAAK,EACjB,gBAAgB,EAAE,UAAU,EAC5B,gBAAgB,EAAE,UAAU,EAC5B,qBAAqB,EAAE,UAAU,EACjC,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,YAAY,EACtB,kBAAkB,EAAE,CAAC,UAAU,YAE/B,KAAC,gBAAgB,OACT,QAAQ,CAAC,IAAI,EACjB,MAAM,EAAE;gBACJ,IAAI,EAAE,WAAW;gBACjB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,sBAAI,MAAM,GAAK;aACjC,GACH,GACU,CACnB,CAAC;AAAA,CACL"}
@@ -1,14 +1,11 @@
1
- import type { IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
2
1
  import type { IParameterMetadataObjectDefinition } from "@gooddata/sdk-model";
3
2
  import { type ICatalogItemParameter } from "../catalogItem/types.js";
4
3
  type Props = {
5
- backend: IAnalyticalBackend;
6
- workspace: string;
7
4
  item: ICatalogItemParameter;
8
5
  onClose: () => void;
9
6
  onSaved: (item: ICatalogItemParameter) => void;
10
- onDuplicate: (parameter: IParameterMetadataObjectDefinition) => void;
7
+ onDuplicate?: (parameter: IParameterMetadataObjectDefinition) => void;
11
8
  };
12
- export declare function ParameterEditDialog({ backend, workspace, item, onClose, onSaved, onDuplicate }: Props): import("react/jsx-runtime").JSX.Element;
9
+ export declare function ParameterEditDialog({ item, onClose, onSaved, onDuplicate }: Props): import("react/jsx-runtime").JSX.Element;
13
10
  export {};
14
11
  //# sourceMappingURL=ParameterEditDialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ParameterEditDialog.d.ts","sourceRoot":"","sources":["../../src/parameter/ParameterEditDialog.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,qBAAqB,CAAC;AAM9E,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAUrE,KAAK,KAAK,GAAG;IACT,OAAO,EAAE,kBAAkB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC/C,WAAW,EAAE,CAAC,SAAS,EAAE,kCAAkC,KAAK,IAAI,CAAC;CACxE,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,KAAK,2CAwCrG"}
1
+ {"version":3,"file":"ParameterEditDialog.d.ts","sourceRoot":"","sources":["../../src/parameter/ParameterEditDialog.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,qBAAqB,CAAC;AAG9E,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAWrE,KAAK,KAAK,GAAG;IACT,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC/C,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,kCAAkC,KAAK,IAAI,CAAC;CACzE,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,KAAK,2CAsCjF"}
@@ -3,19 +3,17 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { Suspense, lazy, useCallback } from "react";
4
4
  import { defineMessages } from "react-intl";
5
5
  import { useToastMessage } from "@gooddata/sdk-ui-kit";
6
- import { useCatalogFeedActions } from "../catalogItem/CatalogFeedContext.js";
7
- import { convertParameterToCatalogItem } from "../catalogItem/converter.js";
8
- import { updateParameterCatalogItem } from "../catalogItem/query.js";
9
6
  import {} from "../catalogItem/types.js";
7
+ import { useParameterMutation } from "./ParameterMutationContext.js";
10
8
  const ParameterDialog = lazy(() => import("./ParameterDialog.js").then((m) => ({ default: m.ParameterDialog })));
11
9
  const messages = defineMessages({
12
10
  parameterUpdateSuccess: { id: "analyticsCatalog.parameter.update.success" },
13
11
  });
14
- export function ParameterEditDialog({ backend, workspace, item, onClose, onSaved, onDuplicate }) {
12
+ export function ParameterEditDialog({ item, onClose, onSaved, onDuplicate }) {
15
13
  const { addSuccess } = useToastMessage();
16
- const { refetchObjectType } = useCatalogFeedActions();
14
+ const mutation = useParameterMutation();
17
15
  const handleSubmit = useCallback(async (parameter) => {
18
- const savedParameter = await updateParameterCatalogItem(backend, workspace, {
16
+ const savedParameter = await mutation.update({
19
17
  ...item,
20
18
  title: parameter.title ?? item.title,
21
19
  description: parameter.description ?? item.description,
@@ -23,12 +21,10 @@ export function ParameterEditDialog({ backend, workspace, item, onClose, onSaved
23
21
  definition: parameter.definition,
24
22
  updatedAt: new Date(),
25
23
  });
26
- const nextParameter = convertParameterToCatalogItem(savedParameter);
27
- onSaved(nextParameter);
24
+ onSaved(savedParameter);
28
25
  onClose();
29
26
  addSuccess(messages.parameterUpdateSuccess);
30
- await refetchObjectType("parameter");
31
- }, [addSuccess, backend, item, onClose, onSaved, refetchObjectType, workspace]);
27
+ }, [addSuccess, item, mutation, onClose, onSaved]);
32
28
  return (_jsx(Suspense, { fallback: null, children: _jsx(ParameterDialog, { mode: "edit", initialParameter: {
33
29
  id: item.identifier,
34
30
  title: item.title,
@@ -1 +1 @@
1
- {"version":3,"file":"ParameterEditDialog.js","sourceRoot":"","sources":["../../src/parameter/ParameterEditDialog.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAA8B,MAAM,yBAAyB,CAAC;AAErE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAC9B,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAC/E,CAAC;AAEF,MAAM,QAAQ,GAAG,cAAc,CAAC;IAC5B,sBAAsB,EAAE,EAAE,EAAE,EAAE,2CAA2C,EAAE;CAC9E,CAAC,CAAC;AAWH,MAAM,UAAU,mBAAmB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAS,EAAE;IACpG,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,EAAE,CAAC;IACzC,MAAM,EAAE,iBAAiB,EAAE,GAAG,qBAAqB,EAAE,CAAC;IAEtD,MAAM,YAAY,GAAG,WAAW,CAC5B,KAAK,EAAE,SAA6C,EAAE,EAAE,CAAC;QACrD,MAAM,cAAc,GAAG,MAAM,0BAA0B,CAAC,OAAO,EAAE,SAAS,EAAE;YACxE,GAAG,IAAI;YACP,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;YACpC,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW;YACtD,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;YACjC,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,SAAS,EAAE,IAAI,IAAI,EAAE;SACxB,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,6BAA6B,CAAC,cAAc,CAAC,CAAC;QACpE,OAAO,CAAC,aAAa,CAAC,CAAC;QACvB,OAAO,EAAE,CAAC;QACV,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAC5C,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAAA,CACxC,EACD,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAC9E,CAAC;IAEF,OAAO,CACH,KAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI,YACpB,KAAC,eAAe,IACZ,IAAI,EAAC,MAAM,EACX,gBAAgB,EAAE;gBACd,EAAE,EAAE,IAAI,CAAC,UAAU;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;aAClB,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,WAAW,GAC1B,GACK,CACd,CAAC;AAAA,CACL"}
1
+ {"version":3,"file":"ParameterEditDialog.js","sourceRoot":"","sources":["../../src/parameter/ParameterEditDialog.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAA8B,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAC9B,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAC/E,CAAC;AAEF,MAAM,QAAQ,GAAG,cAAc,CAAC;IAC5B,sBAAsB,EAAE,EAAE,EAAE,EAAE,2CAA2C,EAAE;CAC9E,CAAC,CAAC;AASH,MAAM,UAAU,mBAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAS,EAAE;IAChF,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;IAExC,MAAM,YAAY,GAAG,WAAW,CAC5B,KAAK,EAAE,SAA6C,EAAE,EAAE,CAAC;QACrD,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACzC,GAAG,IAAI;YACP,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;YACpC,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW;YACtD,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;YACjC,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,SAAS,EAAE,IAAI,IAAI,EAAE;SACxB,CAAC,CAAC;QACH,OAAO,CAAC,cAAc,CAAC,CAAC;QACxB,OAAO,EAAE,CAAC;QACV,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAAA,CAC/C,EACD,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CACjD,CAAC;IAEF,OAAO,CACH,KAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI,YACpB,KAAC,eAAe,IACZ,IAAI,EAAC,MAAM,EACX,gBAAgB,EAAE;gBACd,EAAE,EAAE,IAAI,CAAC,UAAU;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;aAClB,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,WAAW,GAC1B,GACK,CACd,CAAC;AAAA,CACL"}
@@ -0,0 +1,16 @@
1
+ import { type PropsWithChildren } from "react";
2
+ import { type IParameterMutationPort } from "./parameterMutationPort.js";
3
+ type ProviderProps = PropsWithChildren<{
4
+ port?: IParameterMutationPort;
5
+ }>;
6
+ /**
7
+ * Must be placed inside `BackendProvider` and `WorkspaceProvider`.
8
+ * @internal
9
+ */
10
+ export declare function ParameterMutationProvider({ children, port }: ProviderProps): import("react/jsx-runtime").JSX.Element;
11
+ /**
12
+ * @internal
13
+ */
14
+ export declare function useParameterMutation(): IParameterMutationPort;
15
+ export {};
16
+ //# sourceMappingURL=ParameterMutationContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParameterMutationContext.d.ts","sourceRoot":"","sources":["../../src/parameter/ParameterMutationContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAsC,MAAM,OAAO,CAAC;AAInF,OAAO,EAAE,KAAK,sBAAsB,EAAkC,MAAM,4BAA4B,CAAC;AAIzG,KAAK,aAAa,GAAG,iBAAiB,CAAC;IACnC,IAAI,CAAC,EAAE,sBAAsB,CAAC;CACjC,CAAC,CAAC;AAEH;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,aAAa,2CAK1E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,sBAAsB,CAM7D"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // (C) 2026 GoodData Corporation
3
+ import { createContext, useContext, useMemo } from "react";
4
+ import { useBackendStrict, useWorkspaceStrict } from "@gooddata/sdk-ui";
5
+ import { createParameterMutationAdapter } from "./parameterMutationPort.js";
6
+ const ParameterMutationContext = createContext(null);
7
+ /**
8
+ * Must be placed inside `BackendProvider` and `WorkspaceProvider`.
9
+ * @internal
10
+ */
11
+ export function ParameterMutationProvider({ children, port }) {
12
+ if (port) {
13
+ return _jsx(ParameterMutationContext.Provider, { value: port, children: children });
14
+ }
15
+ return _jsx(DefaultParameterMutationProvider, { children: children });
16
+ }
17
+ /**
18
+ * @internal
19
+ */
20
+ export function useParameterMutation() {
21
+ const mutation = useContext(ParameterMutationContext);
22
+ if (!mutation) {
23
+ throw new Error("useParameterMutation must be used within ParameterMutationProvider");
24
+ }
25
+ return mutation;
26
+ }
27
+ function DefaultParameterMutationProvider({ children }) {
28
+ const backend = useBackendStrict();
29
+ const workspace = useWorkspaceStrict();
30
+ const mutation = useMemo(() => createParameterMutationAdapter(backend, workspace), [backend, workspace]);
31
+ return _jsx(ParameterMutationContext.Provider, { value: mutation, children: children });
32
+ }
33
+ //# sourceMappingURL=ParameterMutationContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParameterMutationContext.js","sourceRoot":"","sources":["../../src/parameter/ParameterMutationContext.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAA0B,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEnF,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAExE,OAAO,EAA+B,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAEzG,MAAM,wBAAwB,GAAG,aAAa,CAAgC,IAAI,CAAC,CAAC;AAMpF;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAiB,EAAE;IACzE,IAAI,IAAI,EAAE,CAAC;QACP,OAAO,KAAC,wBAAwB,CAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,YAAG,QAAQ,GAAqC,CAAC;IAC1G,CAAC;IACD,OAAO,KAAC,gCAAgC,cAAE,QAAQ,GAAoC,CAAC;AAAA,CAC1F;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,GAA2B;IAC3D,MAAM,QAAQ,GAAG,UAAU,CAAC,wBAAwB,CAAC,CAAC;IACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,QAAQ,CAAC;AAAA,CACnB;AAED,SAAS,gCAAgC,CAAC,EAAE,QAAQ,EAAqB,EAAE;IACvE,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,8BAA8B,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IACzG,OAAO,KAAC,wBAAwB,CAAC,QAAQ,IAAC,KAAK,EAAE,QAAQ,YAAG,QAAQ,GAAqC,CAAC;AAAA,CAC7G"}
@@ -1,5 +1,4 @@
1
- import { type IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
2
1
  import type { IParameterMetadataObjectDefinition } from "@gooddata/sdk-model";
3
- export declare function createCopiedParameterCatalogItem(backend: IAnalyticalBackend, workspace: string, parameter: IParameterMetadataObjectDefinition, initialCopiedId: string | undefined): Promise<import("@gooddata/sdk-model").IParameterMetadataObject>;
4
2
  export declare function createCopiedParameter(parameter: IParameterMetadataObjectDefinition): IParameterMetadataObjectDefinition;
3
+ export declare function isDuplicateIdError(error: unknown): boolean;
5
4
  //# sourceMappingURL=parameterCopy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parameterCopy.d.ts","sourceRoot":"","sources":["../../src/parameter/parameterCopy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,kBAAkB,EAA6B,MAAM,2BAA2B,CAAC;AAC/F,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,qBAAqB,CAAC;AAO9E,wBAAsB,gCAAgC,CAClD,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,kCAAkC,EAC7C,eAAe,EAAE,MAAM,GAAG,SAAS,mEAWtC;AAED,wBAAgB,qBAAqB,CACjC,SAAS,EAAE,kCAAkC,GAC9C,kCAAkC,CASpC"}
1
+ {"version":3,"file":"parameterCopy.d.ts","sourceRoot":"","sources":["../../src/parameter/parameterCopy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,qBAAqB,CAAC;AAK9E,wBAAgB,qBAAqB,CACjC,SAAS,EAAE,kCAAkC,GAC9C,kCAAkC,CASpC;AAqCD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE1D"}
@@ -1,20 +1,7 @@
1
1
  // (C) 2026 GoodData Corporation
2
2
  import { isUnexpectedResponseError } from "@gooddata/sdk-backend-spi";
3
- import { createParameterCatalogItem } from "../catalogItem/query.js";
4
3
  const canonicalUuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
5
4
  const trailingCopySuffixRegex = /^(.*) \((\d+)\)$/;
6
- export async function createCopiedParameterCatalogItem(backend, workspace, parameter, initialCopiedId) {
7
- try {
8
- return await createParameterCatalogItem(backend, workspace, parameter);
9
- }
10
- catch (error) {
11
- if (!parameter.id || parameter.id !== initialCopiedId || !isDuplicateIdError(error)) {
12
- throw error;
13
- }
14
- const { id: _id, ...parameterWithoutId } = parameter;
15
- return createParameterCatalogItem(backend, workspace, parameterWithoutId);
16
- }
17
- }
18
5
  export function createCopiedParameter(parameter) {
19
6
  const { id: _id, title: _title, ...parameterRest } = parameter;
20
7
  const title = getCopiedTitle(parameter.title);
@@ -56,7 +43,7 @@ function getCopiedId(title) {
56
43
  function isCanonicalUuid(value) {
57
44
  return canonicalUuidRegex.test(value);
58
45
  }
59
- function isDuplicateIdError(error) {
60
- return error instanceof Error && isUnexpectedResponseError(error) && error.httpStatus === 409;
46
+ export function isDuplicateIdError(error) {
47
+ return isUnexpectedResponseError(error) && error.httpStatus === 409;
61
48
  }
62
49
  //# sourceMappingURL=parameterCopy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parameterCopy.js","sourceRoot":"","sources":["../../src/parameter/parameterCopy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parameterCopy.js","sourceRoot":"","sources":["../../src/parameter/parameterCopy.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAGtE,MAAM,kBAAkB,GAAG,iEAAiE,CAAC;AAC7F,MAAM,uBAAuB,GAAG,kBAAkB,CAAC;AAEnD,MAAM,UAAU,qBAAqB,CACjC,SAA6C,EACX;IAClC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,GAAG,SAAS,CAAC;IAC/D,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7E,OAAO;QACH,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;QACnC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACzC,GAAG,aAAa;KACnB,CAAC;AAAA,CACL;AAED,SAAS,cAAc,CAAC,KAAyB,EAAsB;IACnE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACnD,IAAI,KAAK,EAAE,CAAC;QACR,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;QACjC,OAAO,GAAG,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;IAC/C,CAAC;IACD,OAAO,GAAG,KAAK,MAAM,CAAC;AAAA,CACzB;AAED,SAAS,kBAAkB,CAAC,EAAsB,EAAW;IACzD,OAAO,EAAE,KAAK,SAAS,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;AAAA,CAClD;AAED,SAAS,WAAW,CAAC,KAAyB,EAAsB;IAChE,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,eAAe,GAAG,KAAK;SACxB,SAAS,CAAC,MAAM,CAAC;SACjB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,WAAW,EAAE,CAAC;IACnB,OAAO,eAAe,IAAI,SAAS,CAAC;AAAA,CACvC;AAED,SAAS,eAAe,CAAC,KAAa,EAAW;IAC7C,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAAA,CACzC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc,EAAW;IACxD,OAAO,yBAAyB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,KAAK,GAAG,CAAC;AAAA,CACvE"}
@@ -0,0 +1,16 @@
1
+ import type { IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
2
+ import type { IParameterMetadataObjectDefinition } from "@gooddata/sdk-model";
3
+ import type { ICatalogItemParameter, ICatalogItemRef } from "../catalogItem/types.js";
4
+ /**
5
+ * @internal
6
+ */
7
+ export interface IParameterMutationPort {
8
+ create(definition: IParameterMetadataObjectDefinition): Promise<ICatalogItemParameter>;
9
+ update(item: ICatalogItemParameter): Promise<ICatalogItemParameter>;
10
+ delete(ref: ICatalogItemRef): Promise<void>;
11
+ }
12
+ /**
13
+ * @internal
14
+ */
15
+ export declare function createParameterMutationAdapter(backend: IAnalyticalBackend, workspace: string): IParameterMutationPort;
16
+ //# sourceMappingURL=parameterMutationPort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameterMutationPort.d.ts","sourceRoot":"","sources":["../../src/parameter/parameterMutationPort.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,qBAAqB,CAAC;AAQ9E,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEtF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,MAAM,CAAC,UAAU,EAAE,kCAAkC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACvF,MAAM,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpE,MAAM,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC1C,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,MAAM,GAClB,sBAAsB,CAcxB"}
@@ -0,0 +1,22 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { convertParameterToCatalogItem } from "../catalogItem/converter.js";
3
+ import { createParameterCatalogItem, deleteParameterCatalogItem, updateParameterCatalogItem, } from "../catalogItem/query.js";
4
+ /**
5
+ * @internal
6
+ */
7
+ export function createParameterMutationAdapter(backend, workspace) {
8
+ return {
9
+ async create(definition) {
10
+ const savedParameter = await createParameterCatalogItem(backend, workspace, definition);
11
+ return convertParameterToCatalogItem(savedParameter);
12
+ },
13
+ async update(item) {
14
+ const savedParameter = await updateParameterCatalogItem(backend, workspace, item);
15
+ return convertParameterToCatalogItem(savedParameter);
16
+ },
17
+ async delete(ref) {
18
+ await deleteParameterCatalogItem(backend, workspace, ref);
19
+ },
20
+ };
21
+ }
22
+ //# sourceMappingURL=parameterMutationPort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameterMutationPort.js","sourceRoot":"","sources":["../../src/parameter/parameterMutationPort.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAKhC,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EACH,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,GAC7B,MAAM,yBAAyB,CAAC;AAYjC;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAC1C,OAA2B,EAC3B,SAAiB,EACK;IACtB,OAAO;QACH,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE;YACrB,MAAM,cAAc,GAAG,MAAM,0BAA0B,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;YACxF,OAAO,6BAA6B,CAAC,cAAc,CAAC,CAAC;QAAA,CACxD;QACD,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;YACf,MAAM,cAAc,GAAG,MAAM,0BAA0B,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAClF,OAAO,6BAA6B,CAAC,cAAc,CAAC,CAAC;QAAA,CACxD;QACD,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE;YACd,MAAM,0BAA0B,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAAA,CAC7D;KACJ,CAAC;AAAA,CACL"}
@@ -0,0 +1,7 @@
1
+ import type { IParameterMutationPort } from "../parameterMutationPort.js";
2
+ /**
3
+ * Test utility. Returns a parameter mutation port with vi.fn() stubs.
4
+ * @internal
5
+ */
6
+ export declare function createTestParameterMutationPort(overrides?: Partial<IParameterMutationPort>): IParameterMutationPort;
7
+ //# sourceMappingURL=parameterMutationPort.test.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameterMutationPort.test.utils.d.ts","sourceRoot":"","sources":["../../../src/parameter/tests/parameterMutationPort.test.utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAiB1E;;;GAGG;AACH,wBAAgB,+BAA+B,CAC3C,SAAS,GAAE,OAAO,CAAC,sBAAsB,CAAM,GAChD,sBAAsB,CAOxB"}
@@ -0,0 +1,29 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { vi } from "vitest";
3
+ const defaultSavedItem = {
4
+ identifier: "test-parameter",
5
+ type: "parameter",
6
+ title: "Test Parameter",
7
+ description: "",
8
+ tags: [],
9
+ createdBy: "test",
10
+ updatedBy: "test",
11
+ createdAt: null,
12
+ updatedAt: null,
13
+ isLocked: false,
14
+ isEditable: true,
15
+ definition: { type: "NUMBER", defaultValue: 0 },
16
+ };
17
+ /**
18
+ * Test utility. Returns a parameter mutation port with vi.fn() stubs.
19
+ * @internal
20
+ */
21
+ export function createTestParameterMutationPort(overrides = {}) {
22
+ return {
23
+ create: vi.fn().mockResolvedValue(defaultSavedItem),
24
+ update: vi.fn().mockResolvedValue(defaultSavedItem),
25
+ delete: vi.fn().mockResolvedValue(undefined),
26
+ ...overrides,
27
+ };
28
+ }
29
+ //# sourceMappingURL=parameterMutationPort.test.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameterMutationPort.test.utils.js","sourceRoot":"","sources":["../../../src/parameter/tests/parameterMutationPort.test.utils.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAK5B,MAAM,gBAAgB,GAA0B;IAC5C,UAAU,EAAE,gBAAgB;IAC5B,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,gBAAgB;IACvB,WAAW,EAAE,EAAE;IACf,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,KAAK;IACf,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,EAAE;CAClD,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,+BAA+B,CAC3C,SAAS,GAAoC,EAAE,EACzB;IACtB,OAAO;QACH,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;QACnD,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;QACnD,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;QAC5C,GAAG,SAAS;KACf,CAAC;AAAA,CACL"}
@@ -224,10 +224,6 @@ export declare interface ICatalogDetailContentProps {
224
224
  * Handler for opening catalog items.
225
225
  */
226
226
  onOpenClick?: (event: MouseEvent_2, linkClickEvent: OpenHandlerEvent) => void;
227
- /**
228
- * Handler for editing catalog items.
229
- */
230
- onEditClick?: (event: MouseEvent_2, editClickEvent: EditHandlerEvent) => void;
231
227
  /**
232
228
  * Handler for tag click.
233
229
  */
@@ -237,21 +233,21 @@ export declare interface ICatalogDetailContentProps {
237
233
  */
238
234
  onCatalogItemNavigation?: (event: MouseEvent_2, ref: ICatalogItemRef) => void;
239
235
  /**
240
- * Handler for catalog item update.
236
+ * Handler for catalog item create (e.g. duplicate).
241
237
  */
242
- onCatalogItemUpdate?: (item: ICatalogItem) => void;
238
+ onCatalogItemCreate?: (item: ICatalogItem) => void;
243
239
  /**
244
- * Handler for catalog item update error.
240
+ * Handler for catalog item update.
245
241
  */
246
- onCatalogItemUpdateError?: (error: Error) => void;
242
+ onCatalogItemUpdate?: (item: ICatalogItem) => void;
247
243
  /**
248
- * Returns item-specific actions for the detail actions menu.
244
+ * Handler for catalog item delete.
249
245
  */
250
- getItemActions?: (item: ICatalogItem) => ICatalogDetailAction[];
246
+ onCatalogItemDelete?: (ref: ICatalogItemRef) => void;
251
247
  /**
252
- * Handles selection of an item-specific detail action.
248
+ * Handler for catalog item update error.
253
249
  */
254
- onItemAction?: (item: ICatalogItem, actionId: string) => void;
250
+ onCatalogItemUpdateError?: (error: Error) => void;
255
251
  }
256
252
 
257
253
  /**