@gooddata/sdk-ui-catalog 10.42.0-alpha.1 → 10.42.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/esm/AnalyticsCatalog.d.ts +18 -0
  2. package/esm/AnalyticsCatalog.d.ts.map +1 -1
  3. package/esm/AnalyticsCatalog.js +8 -3
  4. package/esm/AnalyticsCatalog.js.map +1 -1
  5. package/esm/AnalyticsCatalogDetail.d.ts +5 -1
  6. package/esm/AnalyticsCatalogDetail.d.ts.map +1 -1
  7. package/esm/AnalyticsCatalogDetail.js.map +1 -1
  8. package/esm/async/index.d.ts +2 -0
  9. package/esm/async/index.d.ts.map +1 -0
  10. package/esm/async/index.js +3 -0
  11. package/esm/async/index.js.map +1 -0
  12. package/esm/async/types.d.ts +5 -0
  13. package/esm/async/types.d.ts.map +1 -0
  14. package/esm/async/types.js +3 -0
  15. package/esm/async/types.js.map +1 -0
  16. package/esm/automation/testIds.d.ts +1 -0
  17. package/esm/automation/testIds.d.ts.map +1 -1
  18. package/esm/automation/testIds.js +1 -0
  19. package/esm/automation/testIds.js.map +1 -1
  20. package/esm/catalog/Catalog.d.ts +7 -1
  21. package/esm/catalog/Catalog.d.ts.map +1 -1
  22. package/esm/catalog/Catalog.js +4 -3
  23. package/esm/catalog/Catalog.js.map +1 -1
  24. package/esm/catalogDetail/CatalogDetailContent.d.ts +41 -2
  25. package/esm/catalogDetail/CatalogDetailContent.d.ts.map +1 -1
  26. package/esm/catalogDetail/CatalogDetailContent.js +75 -3
  27. package/esm/catalogDetail/CatalogDetailContent.js.map +1 -1
  28. package/esm/catalogDetail/CatalogDetailContentRow.d.ts +7 -0
  29. package/esm/catalogDetail/CatalogDetailContentRow.d.ts.map +1 -0
  30. package/esm/catalogDetail/CatalogDetailContentRow.js +11 -0
  31. package/esm/catalogDetail/CatalogDetailContentRow.js.map +1 -0
  32. package/esm/catalogDetail/hooks/useCatalogItemLoad.d.ts +13 -0
  33. package/esm/catalogDetail/hooks/useCatalogItemLoad.d.ts.map +1 -0
  34. package/esm/catalogDetail/hooks/useCatalogItemLoad.js +107 -0
  35. package/esm/catalogDetail/hooks/useCatalogItemLoad.js.map +1 -0
  36. package/esm/catalogItem/CatalogItemFeed.d.ts +5 -4
  37. package/esm/catalogItem/CatalogItemFeed.d.ts.map +1 -1
  38. package/esm/catalogItem/CatalogItemFeed.js +32 -6
  39. package/esm/catalogItem/CatalogItemFeed.js.map +1 -1
  40. package/esm/catalogItem/converter.d.ts +2 -2
  41. package/esm/catalogItem/converter.d.ts.map +1 -1
  42. package/esm/catalogItem/converter.js +25 -10
  43. package/esm/catalogItem/converter.js.map +1 -1
  44. package/esm/catalogItem/index.d.ts +3 -0
  45. package/esm/catalogItem/index.d.ts.map +1 -0
  46. package/esm/catalogItem/index.js +3 -0
  47. package/esm/catalogItem/index.js.map +1 -0
  48. package/esm/catalogItem/query.d.ts +5 -5
  49. package/esm/catalogItem/query.d.ts.map +1 -1
  50. package/esm/catalogItem/query.js +15 -10
  51. package/esm/catalogItem/query.js.map +1 -1
  52. package/esm/catalogItem/types.d.ts +18 -5
  53. package/esm/catalogItem/types.d.ts.map +1 -1
  54. package/esm/catalogItem/useCatalogItemFeed.d.ts +4 -3
  55. package/esm/catalogItem/useCatalogItemFeed.d.ts.map +1 -1
  56. package/esm/catalogItem/useCatalogItemFeed.js +13 -8
  57. package/esm/catalogItem/useCatalogItemFeed.js.map +1 -1
  58. package/esm/filter/FilterContext.d.ts +13 -0
  59. package/esm/filter/FilterContext.d.ts.map +1 -0
  60. package/esm/filter/FilterContext.js +24 -0
  61. package/esm/filter/FilterContext.js.map +1 -0
  62. package/esm/filter/FilterObjectType.d.ts +4 -0
  63. package/esm/filter/FilterObjectType.d.ts.map +1 -0
  64. package/esm/filter/FilterObjectType.js +11 -0
  65. package/esm/filter/FilterObjectType.js.map +1 -0
  66. package/esm/filter/FilterOrigin.d.ts +11 -0
  67. package/esm/filter/FilterOrigin.d.ts.map +1 -0
  68. package/esm/filter/FilterOrigin.js +40 -0
  69. package/esm/filter/FilterOrigin.js.map +1 -0
  70. package/esm/filter/index.d.ts +3 -0
  71. package/esm/filter/index.d.ts.map +1 -1
  72. package/esm/filter/index.js +3 -0
  73. package/esm/filter/index.js.map +1 -1
  74. package/esm/header/Header.d.ts +5 -1
  75. package/esm/header/Header.d.ts.map +1 -1
  76. package/esm/header/Header.js +5 -2
  77. package/esm/header/Header.js.map +1 -1
  78. package/esm/index.d.ts +3 -1
  79. package/esm/index.d.ts.map +1 -1
  80. package/esm/index.js +2 -0
  81. package/esm/index.js.map +1 -1
  82. package/esm/localization/bundles/en-US.json +65 -1
  83. package/esm/localization/bundles/en-US.localization-bundle.d.ts +16 -0
  84. package/esm/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
  85. package/esm/localization/bundles/en-US.localization-bundle.js +18 -2
  86. package/esm/localization/bundles/en-US.localization-bundle.js.map +1 -1
  87. package/esm/main/Main.d.ts +7 -1
  88. package/esm/main/Main.d.ts.map +1 -1
  89. package/esm/main/Main.js +17 -10
  90. package/esm/main/Main.js.map +1 -1
  91. package/esm/main/hooks/useCatalogItemOpen.d.ts +11 -0
  92. package/esm/main/hooks/useCatalogItemOpen.d.ts.map +1 -0
  93. package/esm/main/hooks/useCatalogItemOpen.js +36 -0
  94. package/esm/main/hooks/useCatalogItemOpen.js.map +1 -0
  95. package/esm/objectType/ObjectTypeContext.d.ts +12 -0
  96. package/esm/objectType/ObjectTypeContext.d.ts.map +1 -0
  97. package/esm/objectType/ObjectTypeContext.js +24 -0
  98. package/esm/objectType/ObjectTypeContext.js.map +1 -0
  99. package/esm/objectType/ObjectTypeIcon.d.ts +8 -0
  100. package/esm/objectType/ObjectTypeIcon.d.ts.map +1 -0
  101. package/esm/objectType/ObjectTypeIcon.js +14 -0
  102. package/esm/objectType/ObjectTypeIcon.js.map +1 -0
  103. package/esm/objectType/ObjectTypeSelect.js +3 -3
  104. package/esm/objectType/ObjectTypeSelect.js.map +1 -1
  105. package/esm/objectType/constants.d.ts +3 -3
  106. package/esm/objectType/constants.js +3 -3
  107. package/esm/objectType/constants.js.map +1 -1
  108. package/esm/objectType/index.d.ts +3 -1
  109. package/esm/objectType/index.d.ts.map +1 -1
  110. package/esm/objectType/index.js +3 -1
  111. package/esm/objectType/index.js.map +1 -1
  112. package/esm/objectType/mapping.d.ts +7 -0
  113. package/esm/objectType/mapping.d.ts.map +1 -0
  114. package/esm/objectType/mapping.js +17 -0
  115. package/esm/objectType/mapping.js.map +1 -0
  116. package/esm/objectType/types.d.ts +2 -1
  117. package/esm/objectType/types.d.ts.map +1 -1
  118. package/esm/permission/index.d.ts +1 -0
  119. package/esm/permission/index.d.ts.map +1 -1
  120. package/esm/permission/index.js +1 -0
  121. package/esm/permission/index.js.map +1 -1
  122. package/esm/sdk-ui-catalog.d.ts +90 -1
  123. package/esm/search/Search.d.ts +9 -0
  124. package/esm/search/Search.d.ts.map +1 -0
  125. package/esm/search/Search.js +45 -0
  126. package/esm/search/Search.js.map +1 -0
  127. package/esm/search/SearchContext.d.ts +21 -0
  128. package/esm/search/SearchContext.d.ts.map +1 -0
  129. package/esm/search/SearchContext.js +33 -0
  130. package/esm/search/SearchContext.js.map +1 -0
  131. package/esm/search/index.d.ts +3 -0
  132. package/esm/search/index.d.ts.map +1 -0
  133. package/esm/search/index.js +4 -0
  134. package/esm/search/index.js.map +1 -0
  135. package/esm/table/Table.d.ts +2 -1
  136. package/esm/table/Table.d.ts.map +1 -1
  137. package/esm/table/Table.js +3 -2
  138. package/esm/table/Table.js.map +1 -1
  139. package/esm/table/columns/TitleColumn.d.ts.map +1 -1
  140. package/esm/table/columns/TitleColumn.js +3 -8
  141. package/esm/table/columns/TitleColumn.js.map +1 -1
  142. package/package.json +11 -9
  143. package/styles/css/detail.css +87 -0
  144. package/styles/css/detail.css.map +1 -0
  145. package/styles/css/main.css +98 -4
  146. package/styles/css/main.css.map +1 -1
  147. package/styles/scss/detail.scss +111 -0
  148. package/styles/scss/main.scss +16 -4
@@ -1,5 +1,7 @@
1
1
  import React from "react";
2
2
  import type { IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
3
+ import type { OpenHandlerEvent } from "./catalogDetail/CatalogDetailContent.js";
4
+ import type { ICatalogItemRef } from "./catalogItem/index.js";
3
5
  /**
4
6
  * @internal
5
7
  */
@@ -16,6 +18,22 @@ export interface IAnalyticsCatalogProps {
16
18
  * A locale to use for translations. Can be omitted and taken from context.
17
19
  */
18
20
  locale?: string;
21
+ /**
22
+ * Reference to the catalog item to open on initial render.
23
+ */
24
+ openCatalogItemRef?: ICatalogItemRef;
25
+ /**
26
+ * Handler for opening catalog items.
27
+ */
28
+ onCatalogItemOpenClick?: (e: React.MouseEvent, linkClickEvent: OpenHandlerEvent) => void;
29
+ /**
30
+ * Handler when opening catalog detail.
31
+ */
32
+ onCatalogDetailOpened?: (ref: ICatalogItemRef) => void;
33
+ /**
34
+ * Handler when closing catalog detail.
35
+ */
36
+ onCatalogDetailClosed?: () => void;
19
37
  }
20
38
  /**
21
39
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"AnalyticsCatalog.d.ts","sourceRoot":"","sources":["../src/AnalyticsCatalog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAQpE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,sBAAsB,qBAY7D"}
1
+ {"version":3,"file":"AnalyticsCatalog.d.ts","sourceRoot":"","sources":["../src/AnalyticsCatalog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAIpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAO9D;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,kBAAkB,CAAC,EAAE,eAAe,CAAC;IAErC;;OAEG;IACH,sBAAsB,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,cAAc,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAEzF;;OAEG;IACH,qBAAqB,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC;IAEvD;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;CACtC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,sBAAsB,qBAyB7D"}
@@ -2,9 +2,11 @@
2
2
  import React from "react";
3
3
  import { useBackendStrict, useWorkspaceStrict } from "@gooddata/sdk-ui";
4
4
  import { Catalog } from "./catalog/Catalog.js";
5
+ import { FilterProvider } from "./filter/index.js";
5
6
  import { IntlWrapper } from "./localization/IntlWrapper.js";
6
- import { PermissionsProvider } from "./permission/index.js";
7
- import { usePermissionsQuery } from "./permission/usePermissionsQuery.js";
7
+ import { ObjectTypeProvider } from "./objectType/index.js";
8
+ import { PermissionsProvider, usePermissionsQuery } from "./permission/index.js";
9
+ import { SearchProvider } from "./search/index.js";
8
10
  /**
9
11
  * @internal
10
12
  */
@@ -14,6 +16,9 @@ export function AnalyticsCatalog(props) {
14
16
  const permissionsState = usePermissionsQuery({ backend, workspace });
15
17
  return (React.createElement(IntlWrapper, { locale: props.locale },
16
18
  React.createElement(PermissionsProvider, { permissionsState: permissionsState },
17
- React.createElement(Catalog, { backend: backend, workspace: workspace }))));
19
+ React.createElement(ObjectTypeProvider, null,
20
+ React.createElement(FilterProvider, null,
21
+ React.createElement(SearchProvider, null,
22
+ React.createElement(Catalog, { backend: backend, workspace: workspace, openCatalogItemRef: props.openCatalogItemRef, onCatalogItemOpenClick: props.onCatalogItemOpenClick, onCatalogDetailOpened: props.onCatalogDetailOpened, onCatalogDetailClosed: props.onCatalogDetailClosed })))))));
18
23
  }
19
24
  //# sourceMappingURL=AnalyticsCatalog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AnalyticsCatalog.js","sourceRoot":"","sources":["../src/AnalyticsCatalog.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAoB1E;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAA6B;IAC1D,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAErE,OAAO,CACH,oBAAC,WAAW,IAAC,MAAM,EAAE,KAAK,CAAC,MAAM;QAC7B,oBAAC,mBAAmB,IAAC,gBAAgB,EAAE,gBAAgB;YACnD,oBAAC,OAAO,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAI,CACjC,CACZ,CACjB,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"AnalyticsCatalog.js","sourceRoot":"","sources":["../src/AnalyticsCatalog.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAwCnD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAA6B;IAC1D,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAErE,OAAO,CACH,oBAAC,WAAW,IAAC,MAAM,EAAE,KAAK,CAAC,MAAM;QAC7B,oBAAC,mBAAmB,IAAC,gBAAgB,EAAE,gBAAgB;YACnD,oBAAC,kBAAkB;gBACf,oBAAC,cAAc;oBACX,oBAAC,cAAc;wBACX,oBAAC,OAAO,IACJ,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAC5C,sBAAsB,EAAE,KAAK,CAAC,sBAAsB,EACpD,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,EAClD,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,GACpD,CACW,CACJ,CACA,CACH,CACZ,CACjB,CAAC;AACN,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import type { IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
3
3
  import { type CatalogDetailProps } from "./catalogDetail/CatalogDetail.js";
4
- import { type CatalogDetailContentProps } from "./catalogDetail/CatalogDetailContent.js";
4
+ import { type CatalogDetailContentProps, type OpenHandlerEvent } from "./catalogDetail/CatalogDetailContent.js";
5
5
  /**
6
6
  * @internal
7
7
  */
@@ -39,6 +39,10 @@ export interface AnalyticsCatalogDetailContentProps extends CatalogDetailContent
39
39
  * A locale to use for translations. Can be omitted and taken from context.
40
40
  */
41
41
  locale?: string;
42
+ /**
43
+ * Handler for opening catalog items.
44
+ */
45
+ onOpenClick?: (e: React.MouseEvent, linkClickEvent: OpenHandlerEvent) => void;
42
46
  }
43
47
  /**
44
48
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"AnalyticsCatalogDetail.d.ts","sourceRoot":"","sources":["../src/AnalyticsCatalogDetail.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AASpE,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAEH,KAAK,yBAAyB,EACjC,MAAM,yCAAyC,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,kBAAkB;IACnE;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,qBAcxE;AAED;;GAEG;AACH,MAAM,WAAW,kCAAmC,SAAQ,yBAAyB;IACjF;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,kCAAkC,qBActF"}
1
+ {"version":3,"file":"AnalyticsCatalogDetail.d.ts","sourceRoot":"","sources":["../src/AnalyticsCatalogDetail.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AASpE,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAEH,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACxB,MAAM,yCAAyC,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,kBAAkB;IACnE;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,qBAcxE;AAED;;GAEG;AACH,MAAM,WAAW,kCAAmC,SAAQ,yBAAyB;IACjF;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,cAAc,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACjF;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,kCAAkC,qBActF"}
@@ -1 +1 @@
1
- {"version":3,"file":"AnalyticsCatalogDetail.js","sourceRoot":"","sources":["../src/AnalyticsCatalogDetail.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EACH,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,aAAa,EAA2B,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EACH,oBAAoB,GAEvB,MAAM,yCAAyC,CAAC;AAoBjD;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAkC;IACrE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAC3D,MAAM,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAExC,OAAO,CACH,oBAAC,eAAe,IAAC,OAAO,EAAE,CAAC;QACvB,oBAAC,iBAAiB,IAAC,SAAS,EAAE,CAAC;YAC3B,oBAAC,WAAW,IAAC,MAAM,EAAE,MAAM;gBACvB,oBAAC,aAAa,OAAK,SAAS,GAAI,CACtB,CACE,CACN,CACrB,CAAC;AACN,CAAC;AAoBD;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAAyC;IACnF,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAC3D,MAAM,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAExC,OAAO,CACH,oBAAC,eAAe,IAAC,OAAO,EAAE,CAAC;QACvB,oBAAC,iBAAiB,IAAC,SAAS,EAAE,CAAC;YAC3B,oBAAC,WAAW,IAAC,MAAM,EAAE,MAAM;gBACvB,oBAAC,oBAAoB,OAAK,SAAS,GAAI,CAC7B,CACE,CACN,CACrB,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"AnalyticsCatalogDetail.js","sourceRoot":"","sources":["../src/AnalyticsCatalogDetail.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EACH,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,aAAa,EAA2B,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EACH,oBAAoB,GAGvB,MAAM,yCAAyC,CAAC;AAoBjD;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAkC;IACrE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAC3D,MAAM,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAExC,OAAO,CACH,oBAAC,eAAe,IAAC,OAAO,EAAE,CAAC;QACvB,oBAAC,iBAAiB,IAAC,SAAS,EAAE,CAAC;YAC3B,oBAAC,WAAW,IAAC,MAAM,EAAE,MAAM;gBACvB,oBAAC,aAAa,OAAK,SAAS,GAAI,CACtB,CACE,CACN,CACrB,CAAC;AACN,CAAC;AAwBD;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAAyC;IACnF,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAC3D,MAAM,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAExC,OAAO,CACH,oBAAC,eAAe,IAAC,OAAO,EAAE,CAAC;QACvB,oBAAC,iBAAiB,IAAC,SAAS,EAAE,CAAC;YAC3B,oBAAC,WAAW,IAAC,MAAM,EAAE,MAAM;gBACvB,oBAAC,oBAAoB,OAAK,SAAS,GAAI,CAC7B,CACE,CACN,CACrB,CAAC;AACN,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type { AsyncStatus } from "./types.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/async/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ // (C) 2025 GoodData Corporation
2
+ export {};
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/async/index.ts"],"names":[],"mappings":"AAAA,gCAAgC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * The status of an asynchronous operation.
3
+ */
4
+ export type AsyncStatus = "idle" | "loading" | "success" | "error";
5
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/async/types.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC"}
@@ -0,0 +1,3 @@
1
+ // (C) 2025 GoodData Corporation
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/async/types.ts"],"names":[],"mappings":"AAAA,gCAAgC"}
@@ -1,4 +1,5 @@
1
1
  export declare const catalog = "analytics-catalog";
2
2
  export declare const objectType = "analytics-catalog-object-type";
3
3
  export declare const filter = "analytics-catalog-filter";
4
+ export declare const filterOrigin = "analytics-catalog-filter/origin";
4
5
  //# sourceMappingURL=testIds.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testIds.d.ts","sourceRoot":"","sources":["../../src/automation/testIds.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,OAAO,sBAAsB,CAAC;AAC3C,eAAO,MAAM,UAAU,kCAA2B,CAAC;AACnD,eAAO,MAAM,MAAM,6BAAsB,CAAC"}
1
+ {"version":3,"file":"testIds.d.ts","sourceRoot":"","sources":["../../src/automation/testIds.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,OAAO,sBAAsB,CAAC;AAC3C,eAAO,MAAM,UAAU,kCAA2B,CAAC;AACnD,eAAO,MAAM,MAAM,6BAAsB,CAAC;AAC1C,eAAO,MAAM,YAAY,oCAAqB,CAAC"}
@@ -5,4 +5,5 @@
5
5
  export const catalog = "analytics-catalog";
6
6
  export const objectType = `${catalog}-object-type`;
7
7
  export const filter = `${catalog}-filter`;
8
+ export const filterOrigin = `${filter}/origin`;
8
9
  //# sourceMappingURL=testIds.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"testIds.js","sourceRoot":"","sources":["../../src/automation/testIds.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC;;GAEG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,mBAAmB,CAAC;AAC3C,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,OAAO,cAAc,CAAC;AACnD,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO,SAAS,CAAC"}
1
+ {"version":3,"file":"testIds.js","sourceRoot":"","sources":["../../src/automation/testIds.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC;;GAEG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,mBAAmB,CAAC;AAC3C,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,OAAO,cAAc,CAAC;AACnD,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO,SAAS,CAAC;AAC1C,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,MAAM,SAAS,CAAC"}
@@ -1,9 +1,15 @@
1
1
  import React from "react";
2
2
  import type { IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
3
+ import type { OpenHandlerEvent } from "../catalogDetail/CatalogDetailContent.js";
4
+ import type { ICatalogItemRef } from "../catalogItem/index.js";
3
5
  type Props = {
4
6
  backend: IAnalyticalBackend;
5
7
  workspace: string;
8
+ openCatalogItemRef?: ICatalogItemRef;
9
+ onCatalogItemOpenClick?: (e: React.MouseEvent, linkClickEvent: OpenHandlerEvent) => void;
10
+ onCatalogDetailOpened?: (ref: ICatalogItemRef) => void;
11
+ onCatalogDetailClosed?: () => void;
6
12
  };
7
- export declare function Catalog({ backend, workspace }: Props): React.JSX.Element;
13
+ export declare function Catalog({ openCatalogItemRef, backend, workspace, onCatalogItemOpenClick, onCatalogDetailOpened, onCatalogDetailClosed, }: Props): React.JSX.Element;
8
14
  export {};
9
15
  //# sourceMappingURL=Catalog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Catalog.d.ts","sourceRoot":"","sources":["../../src/catalog/Catalog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AASpE,KAAK,KAAK,GAAG;IACT,OAAO,EAAE,kBAAkB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,KAAK,qBA6BpD"}
1
+ {"version":3,"file":"Catalog.d.ts","sourceRoot":"","sources":["../../src/catalog/Catalog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAKpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAM/D,KAAK,KAAK,GAAG;IACT,OAAO,EAAE,kBAAkB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,eAAe,CAAC;IACrC,sBAAsB,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,cAAc,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzF,qBAAqB,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC;IACvD,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;CACtC,CAAC;AAEF,wBAAgB,OAAO,CAAC,EACpB,kBAAkB,EAClB,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,GACxB,EAAE,KAAK,qBAmCP"}
@@ -7,7 +7,8 @@ import { Layout } from "./Layout.js";
7
7
  import { Header } from "../header/Header.js";
8
8
  import { Main } from "../main/Main.js";
9
9
  import { PermissionsGate } from "../permission/index.js";
10
- export function Catalog({ backend, workspace }) {
10
+ import { Search } from "../search/Search.js";
11
+ export function Catalog({ openCatalogItemRef, backend, workspace, onCatalogItemOpenClick, onCatalogDetailOpened, onCatalogDetailClosed, }) {
11
12
  const intl = useIntl();
12
13
  return (React.createElement(Layout, null,
13
14
  React.createElement(PermissionsGate, { loadingNode: React.createElement(LoadingMask, null), errorNode: React.createElement(ErrorComponent, { message: intl.formatMessage({ id: "analyticsCatalog.error.unknown.message" }), description: intl.formatMessage({
@@ -15,7 +16,7 @@ export function Catalog({ backend, workspace }) {
15
16
  }) }), unauthorizedNode: React.createElement(ErrorComponent, { message: intl.formatMessage({ id: "analyticsCatalog.error.unauthorized.message" }), description: intl.formatMessage({
16
17
  id: "analyticsCatalog.error.unauthorized.description",
17
18
  }) }) },
18
- React.createElement(Header, null),
19
- React.createElement(Main, { workspace: workspace, backend: backend }))));
19
+ React.createElement(Header, { searchNode: React.createElement(Search, { backend: backend, workspace: workspace }) }),
20
+ React.createElement(Main, { openCatalogItemRef: openCatalogItemRef, workspace: workspace, backend: backend, onCatalogItemOpenClick: onCatalogItemOpenClick, onCatalogDetailOpened: onCatalogDetailOpened, onCatalogDetailClosed: onCatalogDetailClosed }))));
20
21
  }
21
22
  //# sourceMappingURL=Catalog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Catalog.js","sourceRoot":"","sources":["../../src/catalog/Catalog.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGrC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAOzD,MAAM,UAAU,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAS;IACjD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,OAAO,CACH,oBAAC,MAAM;QACH,oBAAC,eAAe,IACZ,WAAW,EAAE,oBAAC,WAAW,OAAG,EAC5B,SAAS,EACL,oBAAC,cAAc,IACX,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,wCAAwC,EAAE,CAAC,EAC7E,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;oBAC5B,EAAE,EAAE,4CAA4C;iBACnD,CAAC,GACJ,EAEN,gBAAgB,EACZ,oBAAC,cAAc,IACX,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,6CAA6C,EAAE,CAAC,EAClF,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;oBAC5B,EAAE,EAAE,iDAAiD;iBACxD,CAAC,GACJ;YAGN,oBAAC,MAAM,OAAG;YAEV,oBAAC,IAAI,IAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAI,CAClC,CACb,CACZ,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"Catalog.js","sourceRoot":"","sources":["../../src/catalog/Catalog.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGrC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAW7C,MAAM,UAAU,OAAO,CAAC,EACpB,kBAAkB,EAClB,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,GACjB;IACJ,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,OAAO,CACH,oBAAC,MAAM;QACH,oBAAC,eAAe,IACZ,WAAW,EAAE,oBAAC,WAAW,OAAG,EAC5B,SAAS,EACL,oBAAC,cAAc,IACX,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,wCAAwC,EAAE,CAAC,EAC7E,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;oBAC5B,EAAE,EAAE,4CAA4C;iBACnD,CAAC,GACJ,EAEN,gBAAgB,EACZ,oBAAC,cAAc,IACX,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,6CAA6C,EAAE,CAAC,EAClF,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;oBAC5B,EAAE,EAAE,iDAAiD;iBACxD,CAAC,GACJ;YAGN,oBAAC,MAAM,IAAC,UAAU,EAAE,oBAAC,MAAM,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAI,GAAI;YAC1E,oBAAC,IAAI,IACD,kBAAkB,EAAE,kBAAkB,EACtC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,sBAAsB,EAAE,sBAAsB,EAC9C,qBAAqB,EAAE,qBAAqB,EAC5C,qBAAqB,EAAE,qBAAqB,GAC9C,CACY,CACb,CACZ,CAAC;AACN,CAAC"}
@@ -1,4 +1,27 @@
1
1
  import React from "react";
2
+ import type { ICatalogItem } from "../catalogItem/types.js";
3
+ import type { ObjectType } from "../objectType/index.js";
4
+ /**
5
+ * @internal
6
+ */
7
+ export type OpenHandlerEvent = {
8
+ /**
9
+ * Catalog item to open.
10
+ */
11
+ item: ICatalogItem;
12
+ /**
13
+ * Workspace ID.
14
+ */
15
+ workspaceId: string;
16
+ /**
17
+ * Whether to open the catalog item in a new tab.
18
+ */
19
+ newTab: boolean;
20
+ /**
21
+ * Prevents the default action.
22
+ */
23
+ preventDefault: () => void;
24
+ };
2
25
  /**
3
26
  * @internal
4
27
  */
@@ -6,12 +29,28 @@ export interface CatalogDetailContentProps {
6
29
  /**
7
30
  * An object id of the catalog item.
8
31
  */
9
- objectId: string | undefined | null;
32
+ objectId?: string | null;
33
+ /**
34
+ * An object type of the catalog item.
35
+ */
36
+ objectType?: ObjectType | null;
37
+ /**
38
+ * An object definition of the catalog item.
39
+ */
40
+ objectDefinition?: Partial<ICatalogItem> | null;
41
+ /**
42
+ * Handler for opening catalog items.
43
+ */
44
+ onOpenClick?: (event: React.MouseEvent, linkClickEvent: OpenHandlerEvent) => void;
45
+ /**
46
+ * Handler for tag click.
47
+ */
48
+ onTagClick?: (tag: string) => void;
10
49
  }
11
50
  /**
12
51
  * @internal
13
52
  */
14
- export declare function CatalogDetailContent(props: CatalogDetailContentProps & {
53
+ export declare function CatalogDetailContent({ objectId, objectType, objectDefinition, focusRef, onOpenClick, onTagClick, }: CatalogDetailContentProps & {
15
54
  focusRef?: React.RefObject<HTMLElement>;
16
55
  }): React.JSX.Element;
17
56
  //# sourceMappingURL=CatalogDetailContent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CatalogDetailContent.d.ts","sourceRoot":"","sources":["../../src/catalogDetail/CatalogDetailContent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC;;OAEG;IACH,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;CACvC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAChC,KAAK,EAAE,yBAAyB,GAAG;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;CAC3C,qBAOJ"}
1
+ {"version":3,"file":"CatalogDetailContent.d.ts","sourceRoot":"","sources":["../../src/catalogDetail/CatalogDetailContent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAC;AASjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC;IACnB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,cAAc,EAAE,MAAM,IAAI,CAAC;CAC9B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IAChD;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,cAAc,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClF;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EACjC,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,UAAU,GACb,EAAE,yBAAyB,GAAG;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;CAC3C,qBAiKA"}
@@ -1,9 +1,81 @@
1
1
  // (C) 2025 GoodData Corporation
2
- import React from "react";
2
+ import React, { useMemo, useState } from "react";
3
+ import { FormattedMessage, useIntl } from "react-intl";
4
+ import { ErrorComponent, LoadingComponent, useWorkspaceStrict } from "@gooddata/sdk-ui";
5
+ import { UiButton, UiCard, UiDate, UiTabs, UiTags } from "@gooddata/sdk-ui-kit";
6
+ import { CatalogDetailContentRow } from "./CatalogDetailContentRow.js";
7
+ import { useCatalogItemLoad } from "./hooks/useCatalogItemLoad.js";
8
+ import { ObjectTypeIcon } from "../objectType/ObjectTypeIcon.js";
3
9
  /**
4
10
  * @internal
5
11
  */
6
- export function CatalogDetailContent(props) {
7
- return (React.createElement("div", { tabIndex: 0, ref: props.focusRef }, "This is the content of the catalog item"));
12
+ export function CatalogDetailContent({ objectId, objectType, objectDefinition, focusRef, onOpenClick, onTagClick, }) {
13
+ const intl = useIntl();
14
+ const workspaceId = useWorkspaceStrict();
15
+ const { item, status, error } = useCatalogItemLoad({ objectId, objectType, objectDefinition });
16
+ const isDeletable = false;
17
+ const isCreatable = false;
18
+ const tabs = useMemo(() => [
19
+ {
20
+ id: "details",
21
+ label: intl.formatMessage({ id: "analyticsCatalog.catalogItem.tab.details" }),
22
+ },
23
+ ], [intl]);
24
+ const [selectedTab, setSelectedTab] = useState(tabs[0]);
25
+ return (React.createElement("div", { className: "gd-analytics-catalog-detail" },
26
+ status === "loading" || status === "pending" ? (React.createElement("div", { className: "gd-analytics-catalog-detail__loading" },
27
+ React.createElement(LoadingComponent, null))) : null,
28
+ status === "error" && error ? (React.createElement("div", { className: "gd-analytics-catalog-detail__error" },
29
+ React.createElement(ErrorComponent, { message: intl.formatMessage({ id: "analyticsCatalog.error.unknown.message" }), description: error.message }))) : null,
30
+ status === "success" && item ? (React.createElement("div", { className: "gd-analytics-catalog-detail__content" },
31
+ React.createElement(UiCard, { elevation: "1" },
32
+ React.createElement("div", { className: "gd-analytics-catalog-detail__card" },
33
+ React.createElement("div", { className: "gd-analytics-catalog-detail__card__header" },
34
+ React.createElement("div", { className: "gd-analytics-catalog-detail__card__header__title" },
35
+ React.createElement(ObjectTypeIcon, { type: item.type ?? "analyticalDashboard" }),
36
+ React.createElement("div", { className: "gd-analytics-catalog-detail__card__header__title__name" }, item.title)),
37
+ item.description ? (React.createElement("div", { className: "gd-analytics-catalog-detail__card__header__row" },
38
+ React.createElement("div", { className: "gd-analytics-catalog-detail__card__header__row__subtitle" },
39
+ React.createElement(FormattedMessage, { id: "analyticsCatalog.catalogItem.description" })),
40
+ React.createElement("div", { className: "gd-analytics-catalog-detail__card__header__row__content" }, item.description))) : null,
41
+ React.createElement("div", null,
42
+ React.createElement("div", { className: "gd-analytics-catalog-detail__card__header__row__subtitle" },
43
+ React.createElement(FormattedMessage, { id: "analyticsCatalog.catalogItem.id" })),
44
+ React.createElement("div", { className: "gd-analytics-catalog-detail__card__header__row__content" }, item.identifier))),
45
+ React.createElement("div", { className: "gd-analytics-catalog-detail__card__actions" },
46
+ React.createElement(UiButton, { label: intl.formatMessage({ id: "analyticsCatalog.catalogItem.open" }), variant: "primary", ref: focusRef, onClick: (e) => {
47
+ onOpenClick?.(e, {
48
+ item,
49
+ workspaceId,
50
+ newTab: e.metaKey || e.ctrlKey,
51
+ preventDefault: e.preventDefault.bind(e),
52
+ });
53
+ } })))),
54
+ React.createElement(UiTabs, { size: "large", tabs: tabs, onTabSelect: setSelectedTab, selectedTabId: selectedTab?.id ?? "" }),
55
+ React.createElement("div", { className: "gd-analytics-catalog-detail__tab-content" },
56
+ React.createElement(CatalogDetailContentRow, { title: React.createElement(FormattedMessage, { id: "analyticsCatalog.column.title.createdBy" }), content: item.createdBy ?? undefined }),
57
+ React.createElement(CatalogDetailContentRow, { title: React.createElement(FormattedMessage, { id: "analyticsCatalog.column.title.createdAt" }), content: item.createdAt ? (React.createElement(UiDate, { date: item.createdAt, locale: intl.locale })) : undefined }),
58
+ item.createdBy === item.updatedBy && !item.updatedBy ? null : (React.createElement(CatalogDetailContentRow, { title: React.createElement(FormattedMessage, { id: "analyticsCatalog.column.title.updatedBy" }), content: item.updatedBy ?? undefined })),
59
+ item.createdAt?.getTime() === item.updatedAt?.getTime() ? null : (React.createElement(CatalogDetailContentRow, { title: React.createElement(FormattedMessage, { id: "analyticsCatalog.column.title.updatedAt" }), content: item.updatedAt ? (React.createElement(UiDate, { date: item.updatedAt, locale: intl.locale })) : undefined })),
60
+ React.createElement(CatalogDetailContentRow, { title: React.createElement(FormattedMessage, { id: "analyticsCatalog.column.title.tags" }), content: React.createElement(React.Fragment, null,
61
+ React.createElement(UiTags, { tags: item.tags.map((tag) => ({ id: tag, label: tag, isDeletable })), canCreateTag: isCreatable, canDeleteTags: isDeletable, mode: "multi-line", onTagClick: (tag) => {
62
+ onTagClick?.(tag.label);
63
+ }, addLabel: intl.formatMessage({
64
+ id: "analyticsCatalog.tags.manager.label.addLabel",
65
+ }), nameLabel: intl.formatMessage({
66
+ id: "analyticsCatalog.tags.manager.label.nameLabel",
67
+ }), cancelLabel: intl.formatMessage({
68
+ id: "analyticsCatalog.tags.manager.label.cancelLabel",
69
+ }), saveLabel: intl.formatMessage({
70
+ id: "analyticsCatalog.tags.manager.label.saveLabel",
71
+ }), removeLabel: intl.formatMessage({
72
+ id: "analyticsCatalog.tags.manager.label.removeLabel",
73
+ }), moreLabel: intl.formatMessage({
74
+ id: "analyticsCatalog.tags.manager.label.more",
75
+ }), noTagsLabel: intl.formatMessage({
76
+ id: "analyticsCatalog.tags.manager.label.noTags",
77
+ }), closeLabel: intl.formatMessage({
78
+ id: "analyticsCatalog.tags.manager.label.close",
79
+ }) })) })))) : null));
8
80
  }
9
81
  //# sourceMappingURL=CatalogDetailContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CatalogDetailContent.js","sourceRoot":"","sources":["../../src/catalogDetail/CatalogDetailContent.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAChC,KAEC;IAED,OAAO,CACH,6BAAK,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,QAA2C,8CAElE,CACT,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"CatalogDetailContent.js","sourceRoot":"","sources":["../../src/catalogDetail/CatalogDetailContent.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ export interface CatalogDetailContentRowProps {
3
+ title: React.ReactNode;
4
+ content?: React.ReactNode;
5
+ }
6
+ export declare function CatalogDetailContentRow({ title, content }: CatalogDetailContentRowProps): React.JSX.Element | null;
7
+ //# sourceMappingURL=CatalogDetailContentRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CatalogDetailContentRow.d.ts","sourceRoot":"","sources":["../../src/catalogDetail/CatalogDetailContentRow.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,4BAA4B;IACzC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAED,wBAAgB,uBAAuB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,4BAA4B,4BAcvF"}
@@ -0,0 +1,11 @@
1
+ // (C) 2025 GoodData Corporation
2
+ import React from "react";
3
+ export function CatalogDetailContentRow({ title, content }) {
4
+ if (!content) {
5
+ return null;
6
+ }
7
+ return (React.createElement(React.Fragment, null,
8
+ React.createElement("div", { className: "gd-analytics-catalog-detail__tab-content__cell gd-analytics-catalog-detail__title-cell" }, title),
9
+ React.createElement("div", { className: "gd-analytics-catalog-detail__tab-content__cell gd-analytics-catalog-detail__detail-cell" }, content)));
10
+ }
11
+ //# sourceMappingURL=CatalogDetailContentRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CatalogDetailContentRow.js","sourceRoot":"","sources":["../../src/catalogDetail/CatalogDetailContentRow.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,UAAU,uBAAuB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAgC;IACpF,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,CACH;QACI,6BAAK,SAAS,EAAC,wFAAwF,IAClG,KAAK,CACJ;QACN,6BAAK,SAAS,EAAC,yFAAyF,IACnG,OAAO,CACN,CACP,CACN,CAAC;AACN,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { ICatalogItem } from "../../catalogItem/index.js";
2
+ import type { ObjectType } from "../../objectType/index.js";
3
+ export interface UseCatalogItemLoad {
4
+ objectId?: string | null;
5
+ objectType?: ObjectType | null;
6
+ objectDefinition?: Partial<ICatalogItem> | null;
7
+ }
8
+ export declare function useCatalogItemLoad({ objectDefinition, objectId, objectType }: UseCatalogItemLoad): {
9
+ status: "loading" | "success" | "error" | "pending";
10
+ item?: ICatalogItem | null;
11
+ error?: Error;
12
+ };
13
+ //# sourceMappingURL=useCatalogItemLoad.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCatalogItemLoad.d.ts","sourceRoot":"","sources":["../../../src/catalogDetail/hooks/useCatalogItemLoad.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;CACnD;AAED,wBAAgB,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,kBAAkB,GAAG;IAChG,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,CA6CA"}
@@ -0,0 +1,107 @@
1
+ // (C) 2025 GoodData Corporation
2
+ import every from "lodash/every.js";
3
+ import isUndefined from "lodash/isUndefined.js";
4
+ import { useBackendStrict, useCancelablePromise, useWorkspaceStrict } from "@gooddata/sdk-ui";
5
+ import { convertAttributeToCatalogItem, convertDashboardToCatalogItem, convertFactToCatalogItem, convertInsightToCatalogItem, convertMeasureToCatalogItem, } from "../../catalogItem/converter.js";
6
+ export function useCatalogItemLoad({ objectDefinition, objectId, objectType }) {
7
+ const id = objectId ?? objectDefinition?.identifier;
8
+ const type = objectType ?? objectDefinition?.type;
9
+ const filled = isCatalogItemFilled(objectDefinition ?? undefined);
10
+ const backend = useBackendStrict();
11
+ const workspace = useWorkspaceStrict();
12
+ const { status, error, result } = useCancelablePromise({
13
+ promise: () => {
14
+ // Object id and type are required
15
+ if (!id || !type) {
16
+ return Promise.resolve(undefined);
17
+ }
18
+ // Object is already loaded
19
+ if (filled) {
20
+ return Promise.resolve(objectDefinition);
21
+ }
22
+ return loadObjectDefinition(backend.workspace(workspace), id, type);
23
+ },
24
+ }, [backend, workspace, id, type, filled]);
25
+ // Object id is required
26
+ if (!id) {
27
+ return {
28
+ status: "error",
29
+ error: new Error("The object id is required"),
30
+ };
31
+ }
32
+ // Object type is required
33
+ if (!type) {
34
+ return {
35
+ status: "error",
36
+ error: new Error("The object type is required"),
37
+ };
38
+ }
39
+ return {
40
+ status,
41
+ error,
42
+ item: result,
43
+ };
44
+ }
45
+ function isCatalogItemFilled(item = {}) {
46
+ const keys = [
47
+ "identifier",
48
+ "type",
49
+ "title",
50
+ "description",
51
+ "tags",
52
+ "createdBy",
53
+ "createdAt",
54
+ "updatedBy",
55
+ "updatedAt",
56
+ ];
57
+ return every(keys, (key) => !isUndefined(item[key]));
58
+ }
59
+ async function loadObjectDefinition(workspace, id, type) {
60
+ switch (type) {
61
+ case "attribute":
62
+ return workspace
63
+ .attributes()
64
+ .getAttribute({
65
+ type: "attribute",
66
+ identifier: id,
67
+ })
68
+ .then(convertAttributeToCatalogItem);
69
+ case "analyticalDashboard":
70
+ return workspace
71
+ .dashboards()
72
+ .getDashboard({
73
+ type: "analyticalDashboard",
74
+ identifier: id,
75
+ }, undefined, {
76
+ loadUserData: true,
77
+ })
78
+ .then(convertDashboardToCatalogItem);
79
+ case "insight":
80
+ return workspace
81
+ .insights()
82
+ .getInsight({
83
+ type: "insight",
84
+ identifier: id,
85
+ })
86
+ .then(convertInsightToCatalogItem);
87
+ case "measure":
88
+ return workspace
89
+ .measures()
90
+ .getMeasure({
91
+ type: "measure",
92
+ identifier: id,
93
+ })
94
+ .then(convertMeasureToCatalogItem);
95
+ case "fact":
96
+ return workspace
97
+ .facts()
98
+ .getFact({
99
+ type: "fact",
100
+ identifier: id,
101
+ })
102
+ .then(convertFactToCatalogItem);
103
+ default:
104
+ throw new Error(`Unsupported object type: ${type}`);
105
+ }
106
+ }
107
+ //# sourceMappingURL=useCatalogItemLoad.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCatalogItemLoad.js","sourceRoot":"","sources":["../../../src/catalogDetail/hooks/useCatalogItemLoad.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,15 @@
1
1
  import React from "react";
2
- import type { ICatalogItem, ICatalogItemFeedProps } from "./types.js";
3
- type Props = ICatalogItemFeedProps & {
2
+ import type { ICatalogItem, ICatalogItemFeedOptions } from "./types.js";
3
+ import type { AsyncStatus } from "../async/index.js";
4
+ type Props = ICatalogItemFeedOptions & {
4
5
  children: (props: {
5
6
  items: ICatalogItem[];
6
7
  totalCount: number;
7
8
  next: () => Promise<void>;
8
9
  hasNext: boolean;
9
- status: "loading" | "success" | "error" | "pending";
10
+ status: AsyncStatus;
10
11
  }) => React.ReactNode;
11
12
  };
12
- export declare function CatalogItemFeed({ types, backend, workspace, children, tags, createdBy, pageSize }: Props): React.JSX.Element;
13
+ export declare function CatalogItemFeed({ backend, workspace, children, tags, createdBy, pageSize }: Props): React.JSX.Element;
13
14
  export {};
14
15
  //# sourceMappingURL=CatalogItemFeed.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CatalogItemFeed.d.ts","sourceRoot":"","sources":["../../src/catalogItem/CatalogItemFeed.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGtE,KAAK,KAAK,GAAG,qBAAqB,GAAG;IACjC,QAAQ,EAAE,CAAC,KAAK,EAAE;QACd,KAAK,EAAE,YAAY,EAAE,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;KACvD,KAAK,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,KAAK,qBAuBxG"}
1
+ {"version":3,"file":"CatalogItemFeed.d.ts","sourceRoot":"","sources":["../../src/catalogItem/CatalogItemFeed.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAOvC,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,KAAK,KAAK,GAAG,uBAAuB,GAAG;IACnC,QAAQ,EAAE,CAAC,KAAK,EAAE;QACd,KAAK,EAAE,YAAY,EAAE,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,WAAW,CAAC;KACvB,KAAK,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,KAAK,qBAiCjG"}