@gooddata/sdk-ui-ext 9.5.0-alpha.12 → 9.5.0-alpha.13

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 (101) hide show
  1. package/esm/index.d.ts +1 -1
  2. package/esm/index.d.ts.map +1 -1
  3. package/esm/index.js +1 -1
  4. package/esm/index.js.map +1 -1
  5. package/esm/internal/assets/icons/attribute-hierarchy.svg +1 -0
  6. package/esm/internal/assets/icons/attribute.svg +1 -0
  7. package/esm/internal/components/attributeHierarchies/attributeHierarchyDetail/AttributeHierarchyDetailBubble.d.ts.map +1 -0
  8. package/esm/internal/components/attributeHierarchies/attributeHierarchyDetail/AttributeHierarchyDetailBubble.js.map +1 -0
  9. package/esm/internal/components/{attributeHierarchy → attributeHierarchies/attributeHierarchyDetail}/AttributeHierarchyDetailPanel.d.ts +1 -0
  10. package/esm/internal/components/attributeHierarchies/attributeHierarchyDetail/AttributeHierarchyDetailPanel.d.ts.map +1 -0
  11. package/esm/internal/components/{attributeHierarchy → attributeHierarchies/attributeHierarchyDetail}/AttributeHierarchyDetailPanel.js +8 -4
  12. package/esm/internal/components/attributeHierarchies/attributeHierarchyDetail/AttributeHierarchyDetailPanel.js.map +1 -0
  13. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AddActionMenu.d.ts +9 -0
  14. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AddActionMenu.d.ts.map +1 -0
  15. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AddActionMenu.js +32 -0
  16. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AddActionMenu.js.map +1 -0
  17. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AddAttributeAction.d.ts +4 -0
  18. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AddAttributeAction.d.ts.map +1 -0
  19. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AddAttributeAction.js +18 -0
  20. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AddAttributeAction.js.map +1 -0
  21. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeDropdown.d.ts +7 -0
  22. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeDropdown.d.ts.map +1 -0
  23. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeDropdown.js +28 -0
  24. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeDropdown.js.map +1 -0
  25. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeDropdownBody.d.ts +11 -0
  26. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeDropdownBody.d.ts.map +1 -0
  27. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeDropdownBody.js +40 -0
  28. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeDropdownBody.js.map +1 -0
  29. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialog.d.ts +17 -0
  30. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialog.d.ts.map +1 -0
  31. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialog.js +12 -0
  32. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialog.js.map +1 -0
  33. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogContent.d.ts +4 -0
  34. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogContent.d.ts.map +1 -0
  35. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogContent.js +24 -0
  36. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogContent.js.map +1 -0
  37. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogCore.d.ts +4 -0
  38. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogCore.d.ts.map +1 -0
  39. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogCore.js +17 -0
  40. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogCore.js.map +1 -0
  41. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogFooter.d.ts +4 -0
  42. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogFooter.d.ts.map +1 -0
  43. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogFooter.js +39 -0
  44. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogFooter.js.map +1 -0
  45. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogHeader.d.ts +4 -0
  46. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogHeader.d.ts.map +1 -0
  47. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogHeader.js +17 -0
  48. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogHeader.js.map +1 -0
  49. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogProvider.d.ts +33 -0
  50. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogProvider.d.ts.map +1 -0
  51. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogProvider.js +89 -0
  52. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogProvider.js.map +1 -0
  53. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeItem.d.ts +9 -0
  54. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeItem.d.ts.map +1 -0
  55. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeItem.js +15 -0
  56. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeItem.js.map +1 -0
  57. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeItemActions.d.ts +7 -0
  58. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeItemActions.d.ts.map +1 -0
  59. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeItemActions.js +26 -0
  60. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeItemActions.js.map +1 -0
  61. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/DeleteAttributeHieraryConfirmation.d.ts +4 -0
  62. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/DeleteAttributeHieraryConfirmation.d.ts.map +1 -0
  63. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/DeleteAttributeHieraryConfirmation.js +22 -0
  64. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/DeleteAttributeHieraryConfirmation.js.map +1 -0
  65. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/types.d.ts +27 -0
  66. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/types.d.ts.map +1 -0
  67. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/types.js +6 -0
  68. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/types.js.map +1 -0
  69. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/useBackendProvider.d.ts +19 -0
  70. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/useBackendProvider.d.ts.map +1 -0
  71. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/useBackendProvider.js +121 -0
  72. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/useBackendProvider.js.map +1 -0
  73. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/utils.d.ts +8 -0
  74. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/utils.d.ts.map +1 -0
  75. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/utils.js +46 -0
  76. package/esm/internal/components/attributeHierarchies/attributeHierarchyDialog/utils.js.map +1 -0
  77. package/esm/internal/components/attributeHierarchies/index.d.ts +4 -0
  78. package/esm/internal/components/attributeHierarchies/index.d.ts.map +1 -0
  79. package/esm/internal/components/attributeHierarchies/index.js +5 -0
  80. package/esm/internal/components/attributeHierarchies/index.js.map +1 -0
  81. package/esm/sdk-ui-ext.d.ts +18 -0
  82. package/package.json +18 -18
  83. package/styles/css/main.css +213 -0
  84. package/styles/css/main.css.map +1 -1
  85. package/styles/internal/css/attribute_hierarchies.css +260 -0
  86. package/styles/internal/css/attribute_hierarchies.css.map +1 -0
  87. package/styles/internal/scss/attribute_hierarchies.scss +309 -0
  88. package/styles/scss/main.scss +1 -1
  89. package/esm/internal/components/attributeHierarchy/AttributeHierarchyDetailBubble.d.ts.map +0 -1
  90. package/esm/internal/components/attributeHierarchy/AttributeHierarchyDetailBubble.js.map +0 -1
  91. package/esm/internal/components/attributeHierarchy/AttributeHierarchyDetailPanel.d.ts.map +0 -1
  92. package/esm/internal/components/attributeHierarchy/AttributeHierarchyDetailPanel.js.map +0 -1
  93. package/esm/internal/components/attributeHierarchy/index.d.ts +0 -3
  94. package/esm/internal/components/attributeHierarchy/index.d.ts.map +0 -1
  95. package/esm/internal/components/attributeHierarchy/index.js +0 -4
  96. package/esm/internal/components/attributeHierarchy/index.js.map +0 -1
  97. package/styles/internal/css/attribute_hierarchy_detail.css +0 -47
  98. package/styles/internal/css/attribute_hierarchy_detail.css.map +0 -1
  99. package/styles/internal/scss/attribute_hierarchy_detail.scss +0 -54
  100. /package/esm/internal/components/{attributeHierarchy → attributeHierarchies/attributeHierarchyDetail}/AttributeHierarchyDetailBubble.d.ts +0 -0
  101. /package/esm/internal/components/{attributeHierarchy → attributeHierarchies/attributeHierarchyDetail}/AttributeHierarchyDetailBubble.js +0 -0
@@ -0,0 +1,89 @@
1
+ // (C) 2023 GoodData Corporation
2
+ import React, { createContext, useContext, useEffect, useState } from "react";
3
+ import noop from "lodash/noop.js";
4
+ import isEmpty from "lodash/isEmpty.js";
5
+ import { useBackendProvider } from "./useBackendProvider.js";
6
+ import { appendEmptyAttribute, convertToCatalogAttributeDataByRefs, findCatalogAttributeByRef, } from "./utils.js";
7
+ export const AttributeHierarchyDialogProviderContext = createContext({
8
+ isEditing: false,
9
+ attributes: [],
10
+ title: "",
11
+ isLoading: true,
12
+ setLoading: noop,
13
+ shouldDisplayDeleteConfirmation: false,
14
+ setDisplayDeleteConfirmation: noop,
15
+ onClose: noop,
16
+ onUpdateTitle: noop,
17
+ onAddEmptyAttribute: noop,
18
+ onCompleteAttribute: noop,
19
+ onDeleteAttribute: noop,
20
+ onSaveAttributeHierarchy: noop,
21
+ onDeleteAttributeHierarchy: noop,
22
+ getValidAttributes: () => Promise.resolve([]),
23
+ });
24
+ export const useAttributeHierarchyDialog = () => useContext(AttributeHierarchyDialogProviderContext);
25
+ export const AttributeHierarchyDialogProvider = ({ initialAttributeRef, editingAttributeHierarchy, children, onClose, onSaveOrUpdateSuccess, onDeleteSuccess, }) => {
26
+ var _a, _b;
27
+ const [isLoading, setLoading] = useState(true);
28
+ const [title, setTitle] = useState((_b = (_a = editingAttributeHierarchy === null || editingAttributeHierarchy === void 0 ? void 0 : editingAttributeHierarchy.attributeHierarchy) === null || _a === void 0 ? void 0 : _a.title) !== null && _b !== void 0 ? _b : "");
29
+ const [attributes, setAttributes] = useState([]);
30
+ const [shouldDisplayDeleteConfirmation, setDisplayDeleteConfirmation] = useState();
31
+ const isEditing = !!editingAttributeHierarchy;
32
+ const { catalogAttributesMap, onSaveAttributeHierarchy, onDeleteAttributeHierarchy, getValidAttributes } = useBackendProvider({
33
+ setLoading,
34
+ title,
35
+ attributes,
36
+ editingAttributeHierarchy,
37
+ onClose,
38
+ onSaveOrUpdateSuccess,
39
+ onDeleteSuccess,
40
+ });
41
+ const handleAddEmptyAttribute = (baseRowIndex) => {
42
+ setAttributes(appendEmptyAttribute(attributes, baseRowIndex));
43
+ };
44
+ const handleCompeteAttribute = (selectedAttribute, rowIndex) => {
45
+ const attribute = Object.assign(Object.assign({}, selectedAttribute), { completed: true });
46
+ const newAttributes = [...attributes];
47
+ newAttributes[rowIndex] = attribute;
48
+ setAttributes(newAttributes);
49
+ };
50
+ const handleDeleteAttribute = (rowIndex) => {
51
+ const newAttributes = [...attributes];
52
+ newAttributes.splice(rowIndex, 1);
53
+ setAttributes(newAttributes);
54
+ };
55
+ useEffect(() => {
56
+ if (editingAttributeHierarchy && !isEmpty(catalogAttributesMap)) {
57
+ const refs = editingAttributeHierarchy.attributeHierarchy.attributes;
58
+ const initAttributes = convertToCatalogAttributeDataByRefs(catalogAttributesMap, refs).map((attribute) => (Object.assign(Object.assign({}, attribute), { completed: true })));
59
+ setAttributes(initAttributes);
60
+ return;
61
+ }
62
+ if (initialAttributeRef && !isEmpty(catalogAttributesMap)) {
63
+ const initialAttribute = findCatalogAttributeByRef(catalogAttributesMap, initialAttributeRef);
64
+ if (initialAttribute) {
65
+ setAttributes([
66
+ Object.assign(Object.assign({}, initialAttribute), { completed: true }),
67
+ ]);
68
+ }
69
+ }
70
+ }, [initialAttributeRef, editingAttributeHierarchy, catalogAttributesMap]);
71
+ return (React.createElement(AttributeHierarchyDialogProviderContext.Provider, { value: {
72
+ isEditing,
73
+ attributes,
74
+ title,
75
+ isLoading,
76
+ setLoading,
77
+ shouldDisplayDeleteConfirmation,
78
+ setDisplayDeleteConfirmation,
79
+ onClose,
80
+ onUpdateTitle: setTitle,
81
+ onAddEmptyAttribute: handleAddEmptyAttribute,
82
+ onCompleteAttribute: handleCompeteAttribute,
83
+ getValidAttributes,
84
+ onDeleteAttribute: handleDeleteAttribute,
85
+ onSaveAttributeHierarchy,
86
+ onDeleteAttributeHierarchy,
87
+ } }, children));
88
+ };
89
+ //# sourceMappingURL=AttributeHierarchyDialogProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttributeHierarchyDialogProvider.js","sourceRoot":"","sources":["../../../../../src/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialogProvider.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import { IAttributeData } from "./types.js";
3
+ interface IAttributeItemCellProps {
4
+ rowIndex: number;
5
+ attribute: IAttributeData;
6
+ }
7
+ declare const AttributeItem: React.FC<IAttributeItemCellProps>;
8
+ export default AttributeItem;
9
+ //# sourceMappingURL=AttributeItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttributeItem.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,UAAU,uBAAuB;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,cAAc,CAAC;CAC7B;AAED,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAmBpD,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,15 @@
1
+ // (C) 2023 GoodData Corporation
2
+ import React from "react";
3
+ import AttributeDropdown from "./AttributeDropdown.js";
4
+ import AttributeItemActions from "./AttributeItemActions.js";
5
+ const AttributeItem = ({ rowIndex, attribute }) => {
6
+ const { title, completed, icon } = attribute;
7
+ return (React.createElement("div", { className: "gd-list-item" },
8
+ React.createElement("div", { className: "attribute-item-content s-attribute-item-content" }, completed ? (React.createElement("div", { className: "attribute-item-title s-attribute-item-title" },
9
+ React.createElement("i", { className: icon }),
10
+ title,
11
+ React.createElement("i", { className: "gd-icon-navigatedown" }))) : (React.createElement(AttributeDropdown, { rowIndex: rowIndex }))),
12
+ completed ? React.createElement(AttributeItemActions, { rowIndex: rowIndex }) : null));
13
+ };
14
+ export default AttributeItem;
15
+ //# sourceMappingURL=AttributeItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttributeItem.js","sourceRoot":"","sources":["../../../../../src/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeItem.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAQ7D,MAAM,aAAa,GAAsC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;IACjF,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;IAE7C,OAAO,CACH,6BAAK,SAAS,EAAC,cAAc;QACzB,6BAAK,SAAS,EAAC,iDAAiD,IAC3D,SAAS,CAAC,CAAC,CAAC,CACT,6BAAK,SAAS,EAAC,6CAA6C;YACxD,2BAAG,SAAS,EAAE,IAAI,GAAI;YACrB,KAAK;YACN,2BAAG,SAAS,EAAC,sBAAsB,GAAG,CACpC,CACT,CAAC,CAAC,CAAC,CACA,oBAAC,iBAAiB,IAAC,QAAQ,EAAE,QAAQ,GAAI,CAC5C,CACC;QACL,SAAS,CAAC,CAAC,CAAC,oBAAC,oBAAoB,IAAC,QAAQ,EAAE,QAAQ,GAAI,CAAC,CAAC,CAAC,IAAI,CAC9D,CACT,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ interface IAttributeItemCellProps {
3
+ rowIndex: number;
4
+ }
5
+ declare const AttributeItemActions: React.FC<IAttributeItemCellProps>;
6
+ export default AttributeItemActions;
7
+ //# sourceMappingURL=AttributeItemActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttributeItemActions.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeItemActions.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAMhD,UAAU,uBAAuB;IAC7B,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAsC3D,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,26 @@
1
+ // (C) 2023 GoodData Corporation
2
+ import React, { useRef, useState } from "react";
3
+ import { Button } from "@gooddata/sdk-ui-kit";
4
+ import { useAttributeHierarchyDialog } from "./AttributeHierarchyDialogProvider.js";
5
+ import AddActionMenu from "./AddActionMenu.js";
6
+ const AttributeItemActions = ({ rowIndex }) => {
7
+ const [shouldDisplayAddActions, setDisplayAddActions] = useState(false);
8
+ const { onDeleteAttribute } = useAttributeHierarchyDialog();
9
+ const addAttributeRef = useRef();
10
+ const handleAddAttribute = () => {
11
+ setDisplayAddActions(true);
12
+ };
13
+ const handleDeleteAttribute = () => {
14
+ onDeleteAttribute(rowIndex);
15
+ };
16
+ const handleCloseAddActionMenu = () => {
17
+ setDisplayAddActions(false);
18
+ };
19
+ return (React.createElement("div", { className: "attribute-item-actions s-attribute-item-actions" },
20
+ React.createElement("div", { ref: addAttributeRef },
21
+ React.createElement(Button, { className: "gd-button-link gd-button-icon-only gd-icon-plus attribute-item-add-action s-attribute-item-add-action", onClick: handleAddAttribute })),
22
+ React.createElement(Button, { className: "gd-button-link gd-button-icon-only gd-icon-trash attribute-item-delete-action s-attribute-item-delete-action", onClick: handleDeleteAttribute }),
23
+ shouldDisplayAddActions ? (React.createElement(AddActionMenu, { rowIndex: rowIndex, alignTo: addAttributeRef.current, onClose: handleCloseAddActionMenu })) : null));
24
+ };
25
+ export default AttributeItemActions;
26
+ //# sourceMappingURL=AttributeItemActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttributeItemActions.js","sourceRoot":"","sources":["../../../../../src/internal/components/attributeHierarchies/attributeHierarchyDialog/AttributeItemActions.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAM/C,MAAM,oBAAoB,GAAsC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC7E,MAAM,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IACjF,MAAM,EAAE,iBAAiB,EAAE,GAAG,2BAA2B,EAAE,CAAC;IAC5D,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC;IAEjC,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC5B,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,GAAG,EAAE;QAC/B,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,MAAM,wBAAwB,GAAG,GAAG,EAAE;QAClC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,OAAO,CACH,6BAAK,SAAS,EAAC,iDAAiD;QAC5D,6BAAK,GAAG,EAAE,eAAe;YACrB,oBAAC,MAAM,IACH,SAAS,EAAC,uGAAuG,EACjH,OAAO,EAAE,kBAAkB,GAC7B,CACA;QACN,oBAAC,MAAM,IACH,SAAS,EAAC,8GAA8G,EACxH,OAAO,EAAE,qBAAqB,GAChC;QACD,uBAAuB,CAAC,CAAC,CAAC,CACvB,oBAAC,aAAa,IACV,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,eAAe,CAAC,OAAO,EAChC,OAAO,EAAE,wBAAwB,GACnC,CACL,CAAC,CAAC,CAAC,IAAI,CACN,CACT,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ declare const DeleteAttributeHierarchyConfirmation: React.FC;
3
+ export default DeleteAttributeHierarchyConfirmation;
4
+ //# sourceMappingURL=DeleteAttributeHieraryConfirmation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeleteAttributeHieraryConfirmation.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/attributeHierarchies/attributeHierarchyDialog/DeleteAttributeHieraryConfirmation.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,QAAA,MAAM,oCAAoC,EAAE,KAAK,CAAC,EAgCjD,CAAC;AAEF,eAAe,oCAAoC,CAAC"}
@@ -0,0 +1,22 @@
1
+ // (C) 2023 GoodData Corporation
2
+ import React from "react";
3
+ import { ConfirmDialog, LoadingMask } from "@gooddata/sdk-ui-kit";
4
+ import { FormattedMessage, useIntl } from "react-intl";
5
+ import { messages } from "@gooddata/sdk-ui";
6
+ import { useAttributeHierarchyDialog } from "./AttributeHierarchyDialogProvider.js";
7
+ const DeleteAttributeHierarchyConfirmation = () => {
8
+ const { formatMessage } = useIntl();
9
+ const { isLoading, setLoading, setDisplayDeleteConfirmation, onDeleteAttributeHierarchy } = useAttributeHierarchyDialog();
10
+ const handleClose = () => {
11
+ setLoading(false);
12
+ setDisplayDeleteConfirmation(false);
13
+ };
14
+ const cancelText = formatMessage(messages.hierarchyCancelButton);
15
+ const deleteText = formatMessage(messages.hierarchyDeleteButton);
16
+ const headlineText = formatMessage(messages.hierarchyDeleteConfirmTitle);
17
+ return (React.createElement(ConfirmDialog, { className: "attribute-hierarchy-delete-confirmation s-attribute-hierarchy-delete-confirmation", cancelButtonText: cancelText, submitButtonText: deleteText, isCancelDisabled: isLoading, isSubmitDisabled: isLoading, headline: headlineText, displayCloseButton: true, onCancel: handleClose, onSubmit: onDeleteAttributeHierarchy },
18
+ React.createElement(FormattedMessage, { id: messages.hierarchyDeleteConfirmMessage.id, tagName: "div" }),
19
+ isLoading ? (React.createElement(LoadingMask, { className: "attribute-hierarchy-content-loading-mask s-attribute-hierarchy-content-loading-mask" })) : null));
20
+ };
21
+ export default DeleteAttributeHierarchyConfirmation;
22
+ //# sourceMappingURL=DeleteAttributeHieraryConfirmation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeleteAttributeHieraryConfirmation.js","sourceRoot":"","sources":["../../../../../src/internal/components/attributeHierarchies/attributeHierarchyDialog/DeleteAttributeHieraryConfirmation.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AAEpF,MAAM,oCAAoC,GAAa,GAAG,EAAE;IACxD,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IACpC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,GACrF,2BAA2B,EAAE,CAAC;IAElC,MAAM,WAAW,GAAG,GAAG,EAAE;QACrB,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,4BAA4B,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;IAEzE,OAAO,CACH,oBAAC,aAAa,IACV,SAAS,EAAC,mFAAmF,EAC7F,gBAAgB,EAAE,UAAU,EAC5B,gBAAgB,EAAE,UAAU,EAC5B,gBAAgB,EAAE,SAAS,EAC3B,gBAAgB,EAAE,SAAS,EAC3B,QAAQ,EAAE,YAAY,EACtB,kBAAkB,EAAE,IAAI,EACxB,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,0BAA0B;QAEpC,oBAAC,gBAAgB,IAAC,EAAE,EAAE,QAAQ,CAAC,6BAA6B,CAAC,EAAE,EAAE,OAAO,EAAC,KAAK,GAAG;QAChF,SAAS,CAAC,CAAC,CAAC,CACT,oBAAC,WAAW,IAAC,SAAS,EAAC,qFAAqF,GAAG,CAClH,CAAC,CAAC,CAAC,IAAI,CACI,CACnB,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,oCAAoC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { ICatalogAttributeHierarchy, ObjRef } from "@gooddata/sdk-model";
2
+ export type EmptyParamCallback = () => void;
3
+ export type SaveOrUpdateCallback = (attributeHierarchy: ICatalogAttributeHierarchy) => void;
4
+ export type SetLoadingCallback = (isLoading: boolean) => void;
5
+ /**
6
+ * @internal
7
+ */
8
+ export interface IAttributeHierarchyDialogProps {
9
+ initialAttributeRef?: ObjRef;
10
+ editingAttributeHierarchy?: ICatalogAttributeHierarchy;
11
+ onClose?: EmptyParamCallback;
12
+ onSaveOrUpdate?: SaveOrUpdateCallback;
13
+ }
14
+ export declare enum CatalogAttributeDataType {
15
+ ATTRIBUTE = "attribute",
16
+ DATE_ATTRIBUTE = "dateAttribute"
17
+ }
18
+ export interface ICatalogAttributeData {
19
+ type?: CatalogAttributeDataType;
20
+ ref?: ObjRef;
21
+ title?: string;
22
+ icon?: string;
23
+ }
24
+ export interface IAttributeData extends ICatalogAttributeData {
25
+ completed?: boolean;
26
+ }
27
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/attributeHierarchies/attributeHierarchyDialog/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAEzE,MAAM,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC;AAC5C,MAAM,MAAM,oBAAoB,GAAG,CAAC,kBAAkB,EAAE,0BAA0B,KAAK,IAAI,CAAC;AAC5F,MAAM,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC3C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,yBAAyB,CAAC,EAAE,0BAA0B,CAAC;IACvD,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,cAAc,CAAC,EAAE,oBAAoB,CAAC;CACzC;AAED,oBAAY,wBAAwB;IAChC,SAAS,cAAc;IACvB,cAAc,kBAAkB;CACnC;AAED,MAAM,WAAW,qBAAqB;IAClC,IAAI,CAAC,EAAE,wBAAwB,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAe,SAAQ,qBAAqB;IACzD,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB"}
@@ -0,0 +1,6 @@
1
+ export var CatalogAttributeDataType;
2
+ (function (CatalogAttributeDataType) {
3
+ CatalogAttributeDataType["ATTRIBUTE"] = "attribute";
4
+ CatalogAttributeDataType["DATE_ATTRIBUTE"] = "dateAttribute";
5
+ })(CatalogAttributeDataType = CatalogAttributeDataType || (CatalogAttributeDataType = {}));
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/internal/components/attributeHierarchies/attributeHierarchyDialog/types.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAN,IAAY,wBAGX;AAHD,WAAY,wBAAwB;IAChC,mDAAuB,CAAA;IACvB,4DAAgC,CAAA;AACpC,CAAC,EAHW,wBAAwB,GAAxB,wBAAwB,KAAxB,wBAAwB,QAGnC"}
@@ -0,0 +1,19 @@
1
+ import { ICatalogAttributeHierarchy } from "@gooddata/sdk-model";
2
+ import { EmptyParamCallback, IAttributeData, ICatalogAttributeData, SaveOrUpdateCallback, SetLoadingCallback } from "./types.js";
3
+ interface IUseBackendProvideDataProps {
4
+ title: string;
5
+ attributes: IAttributeData[];
6
+ editingAttributeHierarchy: ICatalogAttributeHierarchy;
7
+ setLoading: SetLoadingCallback;
8
+ onSaveOrUpdateSuccess?: SaveOrUpdateCallback;
9
+ onDeleteSuccess?: EmptyParamCallback;
10
+ onClose: EmptyParamCallback;
11
+ }
12
+ export declare const useBackendProvider: (params: IUseBackendProvideDataProps) => {
13
+ catalogAttributesMap: Map<string, ICatalogAttributeData>;
14
+ onSaveAttributeHierarchy: () => void;
15
+ onDeleteAttributeHierarchy: () => void;
16
+ getValidAttributes: (rowIndex: number) => Promise<ICatalogAttributeData[]>;
17
+ };
18
+ export {};
19
+ //# sourceMappingURL=useBackendProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBackendProvider.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/attributeHierarchies/attributeHierarchyDialog/useBackendProvider.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,0BAA0B,EAAU,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EACH,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EACrB,MAAM,YAAY,CAAC;AAGpB,UAAU,2BAA2B;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,yBAAyB,EAAE,0BAA0B,CAAC;IACtD,UAAU,EAAE,kBAAkB,CAAC;IAC/B,qBAAqB,CAAC,EAAE,oBAAoB,CAAC;IAC7C,eAAe,CAAC,EAAE,kBAAkB,CAAC;IACrC,OAAO,EAAE,kBAAkB,CAAC;CAC/B;AAED,eAAO,MAAM,kBAAkB,WAAY,2BAA2B;;;;mCAoB7C,MAAM;CA2H9B,CAAC"}
@@ -0,0 +1,121 @@
1
+ // (C) 2023 GoodData Corporation
2
+ import { useCallback, useEffect, useState } from "react";
3
+ import { useIntl } from "react-intl";
4
+ import isEmpty from "lodash/isEmpty.js";
5
+ import { messages, useBackendStrict, useWorkspaceStrict } from "@gooddata/sdk-ui";
6
+ import { useToastMessage } from "@gooddata/sdk-ui-kit";
7
+ import { convertToCatalogAttributeData, convertToCatalogAttributeDataByRefs } from "./utils.js";
8
+ export const useBackendProvider = (params) => {
9
+ const { title, attributes, editingAttributeHierarchy, setLoading, onSaveOrUpdateSuccess, onClose, onDeleteSuccess, } = params;
10
+ const { formatMessage } = useIntl();
11
+ const backend = useBackendStrict();
12
+ const workspace = useWorkspaceStrict();
13
+ const { addSuccess, addError } = useToastMessage();
14
+ const [catalogAttributesMap, setCatalogAttributesMap] = useState(new Map());
15
+ const getValidAttributes = useCallback(async (rowIndex) => {
16
+ var _a;
17
+ const attribute = (_a = attributes[rowIndex - 1]) !== null && _a !== void 0 ? _a : attributes[rowIndex + 1];
18
+ if (attribute) {
19
+ return backend
20
+ .workspace(workspace)
21
+ .attributeHierarchies()
22
+ .getValidDescendants([attribute.ref])
23
+ .then((refs) => {
24
+ const validAttributes = convertToCatalogAttributeDataByRefs(catalogAttributesMap, refs);
25
+ return Promise.resolve(validAttributes);
26
+ });
27
+ }
28
+ else {
29
+ return Array.from(catalogAttributesMap.values());
30
+ }
31
+ }, [attributes, backend, catalogAttributesMap, workspace]);
32
+ const handleCreateAttributeHierarchy = (savingTitle, attributeRefs) => {
33
+ backend
34
+ .workspace(workspace)
35
+ .attributeHierarchies()
36
+ .createAttributeHierarchy(savingTitle, attributeRefs)
37
+ .then((attributeHierarchy) => {
38
+ if (onSaveOrUpdateSuccess) {
39
+ onSaveOrUpdateSuccess(attributeHierarchy);
40
+ }
41
+ setLoading(false);
42
+ addSuccess(messages.hierarchyCreateSuccessMessage);
43
+ onClose();
44
+ })
45
+ .catch(() => {
46
+ addError(messages.hierarchyCreateFailedMessage);
47
+ setLoading(false);
48
+ });
49
+ };
50
+ const handleUpdateAttributeHierarchy = (savingTitle, attributeRefs) => {
51
+ backend
52
+ .workspace(workspace)
53
+ .attributeHierarchies()
54
+ .updateAttributeHierarchy(Object.assign(Object.assign({}, editingAttributeHierarchy), { attributeHierarchy: Object.assign(Object.assign({}, editingAttributeHierarchy.attributeHierarchy), { title: savingTitle, attributes: attributeRefs }) }))
55
+ .then((attributeHierarchy) => {
56
+ if (onSaveOrUpdateSuccess) {
57
+ onSaveOrUpdateSuccess(attributeHierarchy);
58
+ }
59
+ setLoading(false);
60
+ addSuccess(messages.hierarchyUpdateSuccessMessage);
61
+ onClose();
62
+ })
63
+ .catch(() => {
64
+ addError(messages.hierarchyUpdateFailedMessage);
65
+ setLoading(false);
66
+ });
67
+ };
68
+ const onSaveAttributeHierarchy = () => {
69
+ setLoading(true);
70
+ const savingTitle = title || formatMessage(messages.hierarchyUntitled);
71
+ // There maybe some attributes that are not completed, so we need to filter them out
72
+ const attributeRefs = attributes
73
+ .filter((attribute) => attribute.completed)
74
+ .map((attribute) => attribute.ref);
75
+ if (editingAttributeHierarchy) {
76
+ handleUpdateAttributeHierarchy(savingTitle, attributeRefs);
77
+ }
78
+ else {
79
+ handleCreateAttributeHierarchy(savingTitle, attributeRefs);
80
+ }
81
+ };
82
+ const onDeleteAttributeHierarchy = () => {
83
+ setLoading(true);
84
+ backend
85
+ .workspace(workspace)
86
+ .attributeHierarchies()
87
+ .deleteAttributeHierarchy(editingAttributeHierarchy.attributeHierarchy.id)
88
+ .then(() => {
89
+ if (onDeleteSuccess) {
90
+ onDeleteSuccess();
91
+ }
92
+ addSuccess(messages.hierarchyDeleteSuccessMessage);
93
+ onClose();
94
+ })
95
+ .catch(() => {
96
+ addError(messages.hierarchyDeleteFailedMessage);
97
+ setLoading(false);
98
+ });
99
+ };
100
+ // Prepare all catalog attributes
101
+ useEffect(() => {
102
+ if (isEmpty(catalogAttributesMap)) {
103
+ backend
104
+ .workspace(workspace)
105
+ .catalog()
106
+ .forTypes(["attribute", "dateDataset"])
107
+ .load()
108
+ .then((catalog) => {
109
+ setCatalogAttributesMap(convertToCatalogAttributeData(catalog.attributes(), catalog.dateDatasets()));
110
+ setLoading(false);
111
+ });
112
+ }
113
+ }, [workspace, backend, catalogAttributesMap, setLoading]);
114
+ return {
115
+ catalogAttributesMap,
116
+ onSaveAttributeHierarchy,
117
+ onDeleteAttributeHierarchy,
118
+ getValidAttributes,
119
+ };
120
+ };
121
+ //# sourceMappingURL=useBackendProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBackendProvider.js","sourceRoot":"","sources":["../../../../../src/internal/components/attributeHierarchies/attributeHierarchyDialog/useBackendProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ICatalogAttribute, ICatalogDateDataset, ObjRef } from "@gooddata/sdk-model";
2
+ import { IAttributeData, ICatalogAttributeData } from "./types.js";
3
+ export declare const findCatalogAttributeByRef: (catalogAttributesMap: Map<string, ICatalogAttributeData>, ref: ObjRef) => ICatalogAttributeData;
4
+ export declare const convertToCatalogAttributeData: (attributes: ICatalogAttribute[], dates: ICatalogDateDataset[]) => Map<string, ICatalogAttributeData>;
5
+ export declare const convertToCatalogAttributeDataByRefs: (catalogAttributesMap: Map<string, ICatalogAttributeData>, refs: ObjRef[]) => ICatalogAttributeData[];
6
+ export declare const appendEmptyAttribute: (attributes: IAttributeData[], baseRowIndex: number) => IAttributeData[];
7
+ export declare const searchAttributes: (attributes: ICatalogAttributeData[], selectedTab: string, searchString: string) => ICatalogAttributeData[];
8
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/attributeHierarchies/attributeHierarchyDialog/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,EAAmB,MAAM,qBAAqB,CAAC;AAEtG,OAAO,EAA4B,cAAc,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE7F,eAAO,MAAM,yBAAyB,yBACZ,IAAI,MAAM,EAAE,qBAAqB,CAAC,OACnD,MAAM,KACZ,qBAEF,CAAC;AAEF,eAAO,MAAM,6BAA6B,eAC1B,iBAAiB,EAAE,SACxB,mBAAmB,EAAE,KAC7B,IAAI,MAAM,EAAE,qBAAqB,CAsBnC,CAAC;AAEF,eAAO,MAAM,mCAAmC,yBACtB,IAAI,MAAM,EAAE,qBAAqB,CAAC,QAClD,MAAM,EAAE,KACf,qBAAqB,EAEvB,CAAC;AAEF,eAAO,MAAM,oBAAoB,eAAgB,cAAc,EAAE,gBAAgB,MAAM,qBAStF,CAAC;AAEF,eAAO,MAAM,gBAAgB,eACb,qBAAqB,EAAE,eACtB,MAAM,gBACL,MAAM,4BAKvB,CAAC"}
@@ -0,0 +1,46 @@
1
+ // (C) 2023 GoodData Corporation
2
+ import flatMap from "lodash/flatMap.js";
3
+ import compact from "lodash/compact.js";
4
+ import { serializeObjRef } from "@gooddata/sdk-model";
5
+ import { CatalogAttributeDataType } from "./types.js";
6
+ export const findCatalogAttributeByRef = (catalogAttributesMap, ref) => {
7
+ return catalogAttributesMap.get(getCatalogKey(ref));
8
+ };
9
+ export const convertToCatalogAttributeData = (attributes, dates) => {
10
+ const attrs = (attributes !== null && attributes !== void 0 ? attributes : []).map((it) => ({
11
+ type: CatalogAttributeDataType.ATTRIBUTE,
12
+ ref: it.attribute.ref,
13
+ title: it.attribute.title,
14
+ icon: "gd-icon-attribute",
15
+ }));
16
+ const dateAttributes = flatMap(flatMap(dates !== null && dates !== void 0 ? dates : [], (it) => it.dateAttributes), (it) => ({
17
+ type: CatalogAttributeDataType.DATE_ATTRIBUTE,
18
+ ref: it.attribute.ref,
19
+ title: it.attribute.title,
20
+ icon: "gd-icon-date",
21
+ }));
22
+ return [...attrs, ...dateAttributes].reduce((map, attribute) => {
23
+ map.set(getCatalogKey(attribute.ref), attribute);
24
+ return map;
25
+ }, new Map());
26
+ };
27
+ export const convertToCatalogAttributeDataByRefs = (catalogAttributesMap, refs) => {
28
+ return compact(refs.map((ref) => findCatalogAttributeByRef(catalogAttributesMap, ref)));
29
+ };
30
+ export const appendEmptyAttribute = (attributes, baseRowIndex) => {
31
+ const uncompletedItemIndex = attributes.findIndex((attribute) => !attribute.completed);
32
+ const newAttributes = [...attributes].filter((attribute) => attribute.completed);
33
+ // if uncompleted item is above baseRowIndex, we need to insert new empty item at baseRowIndex
34
+ const rowIndex = uncompletedItemIndex > -1 && uncompletedItemIndex < baseRowIndex ? baseRowIndex : baseRowIndex + 1;
35
+ newAttributes.splice(rowIndex, 0, {});
36
+ return newAttributes;
37
+ };
38
+ export const searchAttributes = (attributes, selectedTab, searchString) => {
39
+ return attributes
40
+ .filter((item) => item.type === selectedTab)
41
+ .filter((item) => item.title.toLowerCase().includes(searchString.toLowerCase()));
42
+ };
43
+ const getCatalogKey = (ref) => {
44
+ return serializeObjRef(ref);
45
+ };
46
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/internal/components/attributeHierarchies/attributeHierarchyDialog/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from "../attributeHierarchies/attributeHierarchyDetail/AttributeHierarchyDetailBubble.js";
2
+ export * from "../attributeHierarchies/attributeHierarchyDetail/AttributeHierarchyDetailPanel.js";
3
+ export * from "../attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialog.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/internal/components/attributeHierarchies/index.ts"],"names":[],"mappings":"AAEA,cAAc,oFAAoF,CAAC;AACnG,cAAc,mFAAmF,CAAC;AAClG,cAAc,8EAA8E,CAAC"}
@@ -0,0 +1,5 @@
1
+ // (C) 2023 GoodData Corporation
2
+ export * from "../attributeHierarchies/attributeHierarchyDetail/AttributeHierarchyDetailBubble.js";
3
+ export * from "../attributeHierarchies/attributeHierarchyDetail/AttributeHierarchyDetailPanel.js";
4
+ export * from "../attributeHierarchies/attributeHierarchyDialog/AttributeHierarchyDialog.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/internal/components/attributeHierarchies/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,cAAc,oFAAoF,CAAC;AACnG,cAAc,mFAAmF,CAAC;AAClG,cAAc,8EAA8E,CAAC"}
@@ -17,6 +17,7 @@ import { EmbedType } from '@gooddata/sdk-ui-kit';
17
17
  import { ExplicitDrill } from '@gooddata/sdk-ui';
18
18
  import { GoodDataSdkError } from '@gooddata/sdk-ui';
19
19
  import { IAnalyticalBackend } from '@gooddata/sdk-backend-spi';
20
+ import { ICatalogAttributeHierarchy } from '@gooddata/sdk-model';
20
21
  import { IChartConfig } from '@gooddata/sdk-ui-charts';
21
22
  import { IColorPalette } from '@gooddata/sdk-model';
22
23
  import { IDrillEvent } from '@gooddata/sdk-ui';
@@ -73,6 +74,11 @@ export declare const AttributeHierarchyDetailBubble: React_2.FC<IAttributeHierar
73
74
  */
74
75
  export declare const AttributeHierarchyDetailPanel: React_2.FC<IAttributeHierarchyDetailPanelProps>;
75
76
 
77
+ /**
78
+ * @internal
79
+ */
80
+ export declare const AttributeHierarchyDialog: React_2.FC<IAttributeHierarchyDialogProps>;
81
+
76
82
  /**
77
83
  * Clears all the caches used by the InsightView components.
78
84
  *
@@ -219,6 +225,18 @@ export declare interface IAttributeHierarchyDetailPanelProps {
219
225
  title: string;
220
226
  description?: string;
221
227
  attributes: IAttributeHierarchyDetailItem[];
228
+ onEdit?: () => void;
229
+ }
230
+
231
+ /**
232
+ * @internal
233
+ */
234
+ export declare interface IAttributeHierarchyDialogProps {
235
+ initialAttributeRef?: ObjRef;
236
+ editingAttributeHierarchy?: ICatalogAttributeHierarchy;
237
+ onClose?: () => void;
238
+ onSaveOrUpdateSuccess?: (attributeHierarchy: ICatalogAttributeHierarchy) => void;
239
+ onDeleteSuccess?: () => void;
222
240
  }
223
241
 
224
242
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-ext",
3
- "version": "9.5.0-alpha.12",
3
+ "version": "9.5.0-alpha.13",
4
4
  "description": "GoodData.UI SDK - Extensions",
5
5
  "repository": {
6
6
  "type": "git",
@@ -49,19 +49,19 @@
49
49
  "uuid": "^8.3.2",
50
50
  "debounce-promise": "^3.1.2",
51
51
  "json-stable-stringify": "^1.0.1",
52
- "@gooddata/sdk-backend-base": "9.5.0-alpha.12",
53
- "@gooddata/sdk-backend-spi": "9.5.0-alpha.12",
54
- "@gooddata/sdk-embedding": "9.5.0-alpha.12",
55
- "@gooddata/sdk-model": "9.5.0-alpha.12",
56
- "@gooddata/sdk-ui": "9.5.0-alpha.12",
57
- "@gooddata/sdk-ui-charts": "9.5.0-alpha.12",
58
- "@gooddata/sdk-ui-filters": "9.5.0-alpha.12",
59
- "@gooddata/sdk-ui-geo": "9.5.0-alpha.12",
60
- "@gooddata/sdk-ui-kit": "9.5.0-alpha.12",
61
- "@gooddata/sdk-ui-pivot": "9.5.0-alpha.12",
62
- "@gooddata/sdk-ui-theme-provider": "9.5.0-alpha.12",
63
- "@gooddata/sdk-ui-vis-commons": "9.5.0-alpha.12",
64
- "@gooddata/util": "9.5.0-alpha.12"
52
+ "@gooddata/sdk-backend-base": "9.5.0-alpha.13",
53
+ "@gooddata/sdk-backend-spi": "9.5.0-alpha.13",
54
+ "@gooddata/sdk-embedding": "9.5.0-alpha.13",
55
+ "@gooddata/sdk-model": "9.5.0-alpha.13",
56
+ "@gooddata/sdk-ui": "9.5.0-alpha.13",
57
+ "@gooddata/sdk-ui-charts": "9.5.0-alpha.13",
58
+ "@gooddata/sdk-ui-filters": "9.5.0-alpha.13",
59
+ "@gooddata/sdk-ui-geo": "9.5.0-alpha.13",
60
+ "@gooddata/sdk-ui-kit": "9.5.0-alpha.13",
61
+ "@gooddata/sdk-ui-pivot": "9.5.0-alpha.13",
62
+ "@gooddata/sdk-ui-theme-provider": "9.5.0-alpha.13",
63
+ "@gooddata/sdk-ui-vis-commons": "9.5.0-alpha.13",
64
+ "@gooddata/util": "9.5.0-alpha.13"
65
65
  },
66
66
  "peerDependencies": {
67
67
  "react": "^16.10.0 || ^17.0.0 || ^18.0.0",
@@ -116,10 +116,10 @@
116
116
  "vitest-dom": "0.1.0",
117
117
  "@types/debounce-promise": "^3.1.4",
118
118
  "@types/json-stable-stringify": "^1.0.32",
119
- "@gooddata/i18n-toolkit": "9.5.0-alpha.12",
120
- "@gooddata/reference-workspace": "9.5.0-alpha.12",
121
- "@gooddata/live-examples-workspace": "9.5.0-alpha.12",
122
- "@gooddata/sdk-backend-mockingbird": "9.5.0-alpha.12"
119
+ "@gooddata/i18n-toolkit": "9.5.0-alpha.13",
120
+ "@gooddata/live-examples-workspace": "9.5.0-alpha.13",
121
+ "@gooddata/sdk-backend-mockingbird": "9.5.0-alpha.13",
122
+ "@gooddata/reference-workspace": "9.5.0-alpha.13"
123
123
  },
124
124
  "scripts": {
125
125
  "clean": "rm -rf ci dist esm coverage *.log styles/css",