@equinor/fusion-framework-react-components-bookmark 2.0.0 → 2.0.2

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 (108) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +69 -0
  3. package/dist/esm/components/Bookmark.js +12 -2
  4. package/dist/esm/components/Bookmark.js.map +1 -1
  5. package/dist/esm/components/BookmarkProvider.js +16 -0
  6. package/dist/esm/components/BookmarkProvider.js.map +1 -1
  7. package/dist/esm/components/create-bookmark/{CreateBookmark.js → CreateBookmarkModal.js} +13 -5
  8. package/dist/esm/components/create-bookmark/CreateBookmarkModal.js.map +1 -0
  9. package/dist/esm/components/create-bookmark/index.js +1 -1
  10. package/dist/esm/components/create-bookmark/index.js.map +1 -1
  11. package/dist/esm/components/edit-bookmark/{EditBookmark.js → EditBookmarkModal.js} +16 -4
  12. package/dist/esm/components/edit-bookmark/EditBookmarkModal.js.map +1 -0
  13. package/dist/esm/components/edit-bookmark/index.js +1 -1
  14. package/dist/esm/components/edit-bookmark/index.js.map +1 -1
  15. package/dist/esm/components/filter/{Filter.js → BookmarkFilter.js} +9 -3
  16. package/dist/esm/components/filter/BookmarkFilter.js.map +1 -0
  17. package/dist/esm/components/import-bookmark/{ImportBookmark.js → ImportBookmarkModal.js} +13 -1
  18. package/dist/esm/components/import-bookmark/ImportBookmarkModal.js.map +1 -0
  19. package/dist/esm/components/import-bookmark/index.js +1 -1
  20. package/dist/esm/components/import-bookmark/index.js.map +1 -1
  21. package/dist/esm/components/loading/Loading.js +5 -0
  22. package/dist/esm/components/loading/Loading.js.map +1 -1
  23. package/dist/esm/components/messages/Message.js +7 -0
  24. package/dist/esm/components/messages/Message.js.map +1 -1
  25. package/dist/esm/components/row/MoreMenu.js +15 -7
  26. package/dist/esm/components/row/MoreMenu.js.map +1 -1
  27. package/dist/esm/components/row/Row.js +9 -4
  28. package/dist/esm/components/row/Row.js.map +1 -1
  29. package/dist/esm/components/section/Section.js +6 -0
  30. package/dist/esm/components/section/Section.js.map +1 -1
  31. package/dist/esm/components/sectionList/SectionList.js +16 -5
  32. package/dist/esm/components/sectionList/SectionList.js.map +1 -1
  33. package/dist/esm/components/shared/SharedIcon.js +7 -1
  34. package/dist/esm/components/shared/SharedIcon.js.map +1 -1
  35. package/dist/esm/hooks/useBookmarkGrouping.js +23 -10
  36. package/dist/esm/hooks/useBookmarkGrouping.js.map +1 -1
  37. package/dist/esm/index.js +10 -0
  38. package/dist/esm/index.js.map +1 -1
  39. package/dist/esm/utils/{append-bookmark-to-uri.js → append-bookmark-id-to-url.js} +1 -1
  40. package/dist/esm/utils/append-bookmark-id-to-url.js.map +1 -0
  41. package/dist/esm/utils/filter-empty-groups.js +4 -0
  42. package/dist/esm/utils/filter-empty-groups.js.map +1 -0
  43. package/dist/esm/utils/sort-by-name.js +2 -0
  44. package/dist/esm/utils/sort-by-name.js.map +1 -0
  45. package/dist/esm/utils/to-human-readable.js +6 -0
  46. package/dist/esm/utils/to-human-readable.js.map +1 -0
  47. package/dist/esm/version.js +1 -1
  48. package/dist/tsconfig.tsbuildinfo +1 -1
  49. package/dist/types/components/Bookmark.d.ts +6 -1
  50. package/dist/types/components/BookmarkProvider.d.ts +16 -1
  51. package/dist/types/components/create-bookmark/CreateBookmarkModal.d.ts +12 -0
  52. package/dist/types/components/create-bookmark/index.d.ts +1 -1
  53. package/dist/types/components/edit-bookmark/EditBookmarkModal.d.ts +14 -0
  54. package/dist/types/components/edit-bookmark/index.d.ts +1 -1
  55. package/dist/types/components/filter/BookmarkFilter.d.ts +16 -0
  56. package/dist/types/components/import-bookmark/ImportBookmarkModal.d.ts +6 -0
  57. package/dist/types/components/import-bookmark/index.d.ts +1 -1
  58. package/dist/types/components/loading/Loading.d.ts +6 -1
  59. package/dist/types/components/messages/Message.d.ts +7 -1
  60. package/dist/types/components/row/MoreMenu.d.ts +7 -1
  61. package/dist/types/components/row/Row.d.ts +7 -1
  62. package/dist/types/components/section/Section.d.ts +7 -1
  63. package/dist/types/components/sectionList/SectionList.d.ts +7 -1
  64. package/dist/types/components/shared/SharedIcon.d.ts +7 -1
  65. package/dist/types/hooks/useBookmarkGrouping.d.ts +6 -0
  66. package/dist/types/index.d.ts +10 -0
  67. package/dist/types/utils/filter-empty-groups.d.ts +5 -0
  68. package/dist/types/utils/sort-by-name.d.ts +2 -0
  69. package/dist/types/utils/to-human-readable.d.ts +1 -0
  70. package/dist/types/version.d.ts +1 -1
  71. package/package.json +8 -8
  72. package/src/components/Bookmark.tsx +12 -5
  73. package/src/components/BookmarkProvider.tsx +16 -0
  74. package/src/components/create-bookmark/{CreateBookmark.tsx → CreateBookmarkModal.tsx} +12 -4
  75. package/src/components/create-bookmark/index.ts +1 -1
  76. package/src/components/edit-bookmark/{EditBookmark.tsx → EditBookmarkModal.tsx} +16 -4
  77. package/src/components/edit-bookmark/index.ts +1 -1
  78. package/src/components/filter/{Filter.tsx → BookmarkFilter.tsx} +11 -5
  79. package/src/components/import-bookmark/{ImportBookmark.tsx → ImportBookmarkModal.tsx} +12 -0
  80. package/src/components/import-bookmark/index.ts +1 -1
  81. package/src/components/loading/Loading.tsx +5 -1
  82. package/src/components/messages/Message.tsx +7 -0
  83. package/src/components/row/MoreMenu.tsx +24 -17
  84. package/src/components/row/Row.tsx +8 -1
  85. package/src/components/section/Section.tsx +6 -0
  86. package/src/components/sectionList/SectionList.tsx +16 -5
  87. package/src/components/shared/SharedIcon.tsx +6 -0
  88. package/src/hooks/useBookmarkGrouping.ts +29 -18
  89. package/src/index.ts +10 -0
  90. package/src/utils/filter-empty-groups.ts +5 -0
  91. package/src/utils/sort-by-name.ts +4 -0
  92. package/src/utils/to-human-readable.ts +6 -0
  93. package/src/version.ts +1 -1
  94. package/dist/esm/components/create-bookmark/CreateBookmark.js.map +0 -1
  95. package/dist/esm/components/edit-bookmark/EditBookmark.js.map +0 -1
  96. package/dist/esm/components/filter/Filter.js.map +0 -1
  97. package/dist/esm/components/import-bookmark/ImportBookmark.js.map +0 -1
  98. package/dist/esm/utils/append-bookmark-to-uri.js.map +0 -1
  99. package/dist/esm/utils/utils.js +0 -9
  100. package/dist/esm/utils/utils.js.map +0 -1
  101. package/dist/types/components/create-bookmark/CreateBookmark.d.ts +0 -4
  102. package/dist/types/components/edit-bookmark/EditBookmark.d.ts +0 -5
  103. package/dist/types/components/filter/Filter.d.ts +0 -10
  104. package/dist/types/components/import-bookmark/ImportBookmark.d.ts +0 -1
  105. package/dist/types/utils/utils.d.ts +0 -7
  106. package/src/utils/utils.ts +0 -13
  107. /package/dist/types/utils/{append-bookmark-to-uri.d.ts → append-bookmark-id-to-url.d.ts} +0 -0
  108. /package/src/utils/{append-bookmark-to-uri.ts → append-bookmark-id-to-url.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Change Log
2
2
 
3
+ ## 2.0.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 80c3e4a: Internal: resolve `fusion-lint` `no-todo-without-issue` warnings by referencing tracking issues (#5089-#5095) and removing a stale empty TODO.
8
+ - 80c3e4a: Internal: align bookmark source filenames with their exported symbols; no public API changes.
9
+ - 80c3e4a: Internal: add intent comments to control-flow statements and iterator calls across bookmark UI components and hooks to satisfy the `require-intent-comment/flow` and `require-intent-comment/iterators` lint rules. No functional change.
10
+ - 80c3e4a: Internal: add intent comments to control-flow statements in `ImportBookmark.tsx` to satisfy the `require-intent-comment/flow` lint rule. No functional change.
11
+ - 80c3e4a: Internal: add intent comments to `.pipe()` operator chains in `Bookmark.tsx` and `ImportBookmark.tsx` to satisfy the `require-intent-comment/rxjs` lint rule. No functional change.
12
+ - 80c3e4a: Internal: add missing TSDoc comments to `Bookmark`, `BookmarkProvider`, `useBookmarkComponentContext`, `useBookmarkGrouping`, `CreateBookmarkModal`, `EditBookmarkModal`, `BookmarkFilter`, `ImportBookmarkModal`, `Loading`, `Message`, `Section`, `MoreMenu`, `Row`, `SectionList`, and `SharedIcon` to satisfy the `require-component-tsdoc`/`require-hook-tsdoc` lint rules. No functional change.
13
+ - 80c3e4a: Internal: split multi-export files into one export per file and convert pure interop re-exports to `export { X } from 'y'` syntax, per `fusion-lint`'s `single-export-per-file` rule. Also removed `modules/event/src/EventProvider.tsx`, a fully dead duplicate of `eventContext.ts`/`useEventProvider.ts`/`useModulesEventProvider.ts` with no remaining consumers. No behavior changes.
14
+
15
+ ## 2.0.1
16
+
17
+ ### Patch Changes
18
+
19
+ - 4f71408: Internal: Bump `@equinor/eds-core-react` from 2.4.1 to 2.5.0.
20
+ - 1fc204f: Internal: Bump `@equinor/eds-icons` from 1.3.0 to 1.4.0 (adds `partial_completion` icon).
21
+
3
22
  ## 2.0.0
4
23
 
5
24
  ### Major Changes
package/README.md ADDED
@@ -0,0 +1,69 @@
1
+ # @equinor/fusion-framework-react-components-bookmark
2
+
3
+ Pre-built React UI components for bookmark management in Fusion applications. Provides a complete bookmark panel with filtering, grouping, create/edit/import modals, and clipboard sharing.
4
+
5
+ **Import:**
6
+
7
+ ```ts
8
+ import { Bookmark, BookmarkProvider } from '@equinor/fusion-framework-react-components-bookmark';
9
+ ```
10
+
11
+ ## Components vs Hooks
12
+
13
+ | Need | Package |
14
+ | ------------------------------------- | -------------------------------------------------- |
15
+ | Ready-made bookmark UI panel | `@equinor/fusion-framework-react-components-bookmark` (this package) |
16
+ | Bookmark hooks for custom UI | `@equinor/fusion-framework-react-app/bookmark` |
17
+ | Bookmark module configuration/types | `@equinor/fusion-framework-module-bookmark` |
18
+
19
+ Use this package when you want a drop-in bookmark sidebar. Use the hooks package when building a fully custom bookmark UI.
20
+
21
+ ## Exports
22
+
23
+ | Export | Type | Description |
24
+ | ---------------------------- | --------- | ------------------------------------------------------- |
25
+ | `Bookmark` | Component | Full bookmark list with filtering, grouping, and actions |
26
+ | `BookmarkProvider` | Component | Context provider with create/edit/import modals |
27
+ | `useBookmarkComponentContext`| Hook | Access the bookmark component context (provider, modals) |
28
+
29
+ ## Usage
30
+
31
+ Wrap your bookmark area in `BookmarkProvider` and render the `Bookmark` list:
32
+
33
+ ```tsx
34
+ import { Bookmark, BookmarkProvider } from '@equinor/fusion-framework-react-components-bookmark';
35
+
36
+ const BookmarkPanel = ({ provider, currentApp, currentUser }) => (
37
+ <BookmarkProvider
38
+ provider={provider}
39
+ currentApp={currentApp}
40
+ currentUser={currentUser}
41
+ >
42
+ <Bookmark />
43
+ </BookmarkProvider>
44
+ );
45
+ ```
46
+
47
+ ### BookmarkProvider props
48
+
49
+ | Prop | Type | Description |
50
+ | ------------- | ------------------ | ---------------------------------- |
51
+ | `provider` | `IBookmarkProvider`| Bookmark provider from the module |
52
+ | `currentApp` | `{ appKey, name }` | Current application identity |
53
+ | `currentUser` | `{ id, name }` | Current user identity |
54
+
55
+ The provider manages modal state for creating, editing, and importing bookmarks. It also provides clipboard-based bookmark sharing via URL parameters.
56
+
57
+ ## Built-in Features
58
+
59
+ - **Filtering** — text search across bookmark names
60
+ - **Grouping** — group bookmarks by app, creator, or other criteria
61
+ - **Create modal** — form for creating new bookmarks
62
+ - **Edit modal** — form for updating existing bookmarks
63
+ - **Import modal** — import bookmarks shared via URL
64
+ - **Clipboard sharing** — copy bookmark URL to clipboard
65
+
66
+ ## Related
67
+
68
+ - [`@equinor/fusion-framework-module-bookmark`](../../../modules/bookmark/README.md) — the underlying bookmark module
69
+ - `@equinor/fusion-framework-react-app/bookmark` — bookmark hooks for custom UI
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { EMPTY, map } from 'rxjs';
3
3
  import { useBookmarkGrouping } from '../hooks';
4
- import { BookmarkFilter } from './filter/Filter';
4
+ import { BookmarkFilter } from './filter/BookmarkFilter';
5
5
  import { SectionList } from './sectionList/SectionList';
6
6
  import { useMemo } from 'react';
7
7
  import { Icon } from '@equinor/eds-core-react';
@@ -38,15 +38,25 @@ const Styled = {
38
38
  right: 0px;
39
39
  `,
40
40
  };
41
+ /**
42
+ * Renders the list of bookmark sections and the current bookmark's loading/message state.
43
+ *
44
+ * @returns The bookmark list UI
45
+ */
41
46
  export const Bookmark = () => {
42
47
  const { provider } = useBookmarkComponentContext();
43
48
  const { value: bookmarks } = useObservableState(useMemo(() => provider?.bookmarks$ || EMPTY, [provider]));
44
- const { value: isLoading } = useObservableState(useMemo(() => (provider?.status$ || EMPTY).pipe(map((status) => !!status.has('fetch_bookmarks'))), [provider]), { initial: true });
49
+ const { value: isLoading } = useObservableState(useMemo(() => {
50
+ // Derive a boolean loading flag from whether 'fetch_bookmarks' is an active status
51
+ return (provider?.status$ || EMPTY).pipe(map((status) => !!status.has('fetch_bookmarks')));
52
+ }, [provider]), { initial: true });
45
53
  const { bookmarkGroups, groupingModes, searchText, setGroupBy, setSearchText, groupByKey } = useBookmarkGrouping(bookmarks);
46
54
  const content = useMemo(() => {
55
+ // Show the loading placeholder while bookmarks are still being fetched
47
56
  if (isLoading) {
48
57
  return _jsx(Loading, {});
49
58
  }
59
+ // Show an empty-state message when there are no bookmark groups to display
50
60
  if (bookmarkGroups.length === 0) {
51
61
  return (_jsx(Message, { title: "No Bookmarks", type: "NoContent", children: "You have not created any bookmarks yet." }));
52
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Bookmark.js","sourceRoot":"","sources":["../../../src/components/Bookmark.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Bookmark.js","sourceRoot":"","sources":["../../../src/components/Bookmark.tsx"],"names":[],"mappings":"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"}
@@ -5,7 +5,22 @@ import { CreateBookmarkModal } from './create-bookmark';
5
5
  import { EditBookmarkModal } from './edit-bookmark';
6
6
  import { ImportBookmarkModal } from './import-bookmark';
7
7
  const bookmarkProviderContext = createContext(null);
8
+ /**
9
+ * Hook for accessing the bookmark component context provided by `BookmarkProvider`.
10
+ *
11
+ * @returns The current bookmark provider state
12
+ */
8
13
  export const useBookmarkComponentContext = () => useContext(bookmarkProviderContext);
14
+ /**
15
+ * Provides bookmark state and modals (create/edit/import) to descendant bookmark components.
16
+ *
17
+ * @param props - The provider's props
18
+ * @param props.provider - The bookmark provider used to fetch/manage bookmarks
19
+ * @param props.currentApp - The app the bookmarks belong to
20
+ * @param props.currentUser - The current user, used to determine bookmark ownership
21
+ * @param props.children - The descendant components that can access the bookmark context
22
+ * @returns The provider with its context and modals
23
+ */
9
24
  export const BookmarkProvider = (props) => {
10
25
  const { provider, currentApp, currentUser, children } = props;
11
26
  const [isCreateBookmarkOpen, setIsCreateBookmarkOpen] = useState(false);
@@ -20,6 +35,7 @@ export const BookmarkProvider = (props) => {
20
35
  navigator.clipboard.writeText(String(url));
21
36
  setSnackbarContent('Bookmark url copied to clipboard');
22
37
  }, []);
38
+ // Render children without a live provider context when no provider is configured
23
39
  if (!provider) {
24
40
  return (_jsx(bookmarkProviderContext.Provider, { value: {
25
41
  provider: undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"BookmarkProvider.js","sourceRoot":"","sources":["../../../src/components/BookmarkProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAA0B,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAsBxD,MAAM,uBAAuB,GAAG,aAAa,CAAuB,IAAI,CAAC,CAAC;AAQ1E,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,EAAE,CAC9C,UAAU,CAAC,uBAAuB,CAAkB,CAAC;AAEvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAA+C,EAAE,EAAE;IAClF,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE9D,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,EAAsB,CAAC;IAE3E,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC1C,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE3D,MAAM,sBAAsB,GAAG,WAAW,CAAC,CAAC,UAAkB,EAAE,EAAE;QAChE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAC/C,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,kBAAkB,CAAC,kCAAkC,CAAC,CAAC;IACzD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CACL,KAAC,uBAAuB,CAAC,QAAQ,IAC/B,KAAK,EAAE;gBACL,QAAQ,EAAE,SAAS;gBACnB,UAAU;gBACV,WAAW;gBACX,kBAAkB;gBAClB,gBAAgB,EAAE,iBAAiB;gBACnC,sBAAsB;aACvB,YAEA,QAAQ,GACwB,CACpC,CAAC;IACJ,CAAC;IAED,OAAO,CACL,MAAC,uBAAuB,CAAC,QAAQ,IAC/B,KAAK,EAAE;YACL,QAAQ;YACR,UAAU;YACV,WAAW;YACX,kBAAkB;YAClB,gBAAgB,EAAE,iBAAiB;YACnC,sBAAsB;SACvB,aAED,KAAC,mBAAmB,IAAC,MAAM,EAAE,oBAAoB,EAAE,OAAO,EAAE,uBAAuB,GAAI,EACtF,cAAc,IAAI,CACjB,KAAC,iBAAiB,IAChB,MAAM,EAAE,CAAC,CAAC,cAAc,EACxB,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAC3C,UAAU,EAAE,cAAc,GAC1B,CACH,EACD,KAAC,mBAAmB,KAAG,EACvB,KAAC,QAAQ,IACP,gBAAgB,EAAE,IAAI,EACtB,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,EACrC,IAAI,EAAE,CAAC,CAAC,eAAe,YAEtB,eAAe,GACP,EACV,QAAQ,IACwB,CACpC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"BookmarkProvider.js","sourceRoot":"","sources":["../../../src/components/BookmarkProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAA0B,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAsBxD,MAAM,uBAAuB,GAAG,aAAa,CAAuB,IAAI,CAAC,CAAC;AAQ1E;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,EAAE,CAC9C,UAAU,CAAC,uBAAuB,CAAkB,CAAC;AAEvD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAA+C,EAAE,EAAE;IAClF,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE9D,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,EAAsB,CAAC;IAE3E,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC1C,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE3D,MAAM,sBAAsB,GAAG,WAAW,CAAC,CAAC,UAAkB,EAAE,EAAE;QAChE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAC/C,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,kBAAkB,CAAC,kCAAkC,CAAC,CAAC;IACzD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,iFAAiF;IACjF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CACL,KAAC,uBAAuB,CAAC,QAAQ,IAC/B,KAAK,EAAE;gBACL,QAAQ,EAAE,SAAS;gBACnB,UAAU;gBACV,WAAW;gBACX,kBAAkB;gBAClB,gBAAgB,EAAE,iBAAiB;gBACnC,sBAAsB;aACvB,YAEA,QAAQ,GACwB,CACpC,CAAC;IACJ,CAAC;IAED,OAAO,CACL,MAAC,uBAAuB,CAAC,QAAQ,IAC/B,KAAK,EAAE;YACL,QAAQ;YACR,UAAU;YACV,WAAW;YACX,kBAAkB;YAClB,gBAAgB,EAAE,iBAAiB;YACnC,sBAAsB;SACvB,aAED,KAAC,mBAAmB,IAAC,MAAM,EAAE,oBAAoB,EAAE,OAAO,EAAE,uBAAuB,GAAI,EACtF,cAAc,IAAI,CACjB,KAAC,iBAAiB,IAChB,MAAM,EAAE,CAAC,CAAC,cAAc,EACxB,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAC3C,UAAU,EAAE,cAAc,GAC1B,CACH,EACD,KAAC,mBAAmB,KAAG,EACvB,KAAC,QAAQ,IACP,gBAAgB,EAAE,IAAI,EACtB,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,EACrC,IAAI,EAAE,CAAC,CAAC,eAAe,YAEtB,eAAe,GACP,EACV,QAAQ,IACwB,CACpC,CAAC;AACJ,CAAC,CAAC"}
@@ -4,12 +4,19 @@ import { useBookmarkComponentContext } from '../BookmarkProvider';
4
4
  import { Button, Checkbox, Dialog, Input, Label, Textarea } from '@equinor/eds-core-react';
5
5
  import styled from 'styled-components';
6
6
  import { from } from 'rxjs';
7
- // TODO
8
7
  const StyledContent = styled(Dialog.Content) `
9
8
  display: flex;
10
9
  flex-direction: column;
11
10
  gap: 1rem;
12
11
  `;
12
+ /**
13
+ * Modal for creating a new bookmark.
14
+ *
15
+ * @param props - The component's props
16
+ * @param props.isOpen - Whether the modal is open
17
+ * @param props.onClose - Callback invoked to close the modal
18
+ * @returns The create bookmark modal
19
+ */
13
20
  export const CreateBookmarkModal = ({ isOpen, onClose, }) => {
14
21
  const { provider, currentApp } = useBookmarkComponentContext();
15
22
  const [state, setState] = useState({
@@ -23,13 +30,14 @@ export const CreateBookmarkModal = ({ isOpen, onClose, }) => {
23
30
  setState((s) => ({ ...s, appKey: currentApp?.appKey || '' }));
24
31
  }, [currentApp]);
25
32
  const createBookmark = useCallback(async (args) => {
33
+ // Cannot create a bookmark without a provider to persist it
26
34
  if (!provider) {
27
35
  console.error('Provider not available');
28
36
  return;
29
37
  }
30
- // TODO: Show success message
31
- // TODO: should this call onCreated, with the new bookmark?
32
- // TODO: should current bookmark be updated?
38
+ // TODO(#5089): Show success message
39
+ // TODO(#5090): should this call onCreated, with the new bookmark?
40
+ // TODO(#5090): should current bookmark be updated?
33
41
  const sub = from(provider.createBookmark(args)).subscribe({
34
42
  next: (bookmark) => {
35
43
  console.debug('Bookmark created', bookmark);
@@ -53,4 +61,4 @@ export const CreateBookmarkModal = ({ isOpen, onClose, }) => {
53
61
  createBookmark(state);
54
62
  }, children: "Create" })] }) })] }));
55
63
  };
56
- //# sourceMappingURL=CreateBookmark.js.map
64
+ //# sourceMappingURL=CreateBookmarkModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateBookmarkModal.js","sourceRoot":"","sources":["../../../../src/components/create-bookmark/CreateBookmarkModal.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { CreateBookmarkModal } from './CreateBookmark';
1
+ export { CreateBookmarkModal } from './CreateBookmarkModal';
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/create-bookmark/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/create-bookmark/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -24,6 +24,15 @@ const Styled = {
24
24
  gap: 0.2em;
25
25
  `,
26
26
  };
27
+ /**
28
+ * Modal for editing an existing bookmark.
29
+ *
30
+ * @param props - The component's props
31
+ * @param props.isOpen - Whether the modal is open
32
+ * @param props.onClose - Callback invoked to close the modal
33
+ * @param props.bookmarkId - The id of the bookmark to edit
34
+ * @returns The edit bookmark modal
35
+ */
27
36
  export const EditBookmarkModal = ({ isOpen, onClose, bookmarkId, }) => {
28
37
  const { provider, addBookmarkToClipboard, currentApp } = useBookmarkComponentContext();
29
38
  const [state, setState] = useState({
@@ -38,15 +47,17 @@ export const EditBookmarkModal = ({ isOpen, onClose, bookmarkId, }) => {
38
47
  const { value: bookmark } = useObservableState(bookmark$);
39
48
  // set the state when the bookmark is loaded
40
49
  useEffect(() => {
50
+ // Only populate local state once the bookmark has actually loaded
41
51
  if (bookmark) {
42
52
  const { name, description, isShared } = bookmark;
43
53
  setState({ name, description, isShared });
44
54
  }
45
55
  }, [bookmark]);
46
- // TODO - this should be on the bookmark object
56
+ // TODO(#5091): this should be on the bookmark object
47
57
  const appProvider = useFrameworkModule('app');
48
58
  const { value: appName } = useObservableState(useMemo(() => (bookmark && appProvider ? appProvider.getAppManifest(bookmark.appKey) : of(undefined)), [appProvider, bookmark]));
49
59
  const updateBookmark = useCallback(async (updates) => {
60
+ // Cannot update a bookmark without a provider to persist the change
50
61
  if (!provider) {
51
62
  console.error('Provider not available');
52
63
  return;
@@ -64,8 +75,8 @@ export const EditBookmarkModal = ({ isOpen, onClose, bookmarkId, }) => {
64
75
  onClose(false);
65
76
  },
66
77
  });
67
- // TODO: Show success message
68
- // TODO: should this call onUpdated, with the updated bookmark?
78
+ // TODO(#5089): Show success message
79
+ // TODO(#5090): should this call onUpdated, with the updated bookmark?
69
80
  onClose(false);
70
81
  }, [onClose, provider, bookmarkId, updatePayload]);
71
82
  return (_jsxs(Styled.Dialog, { open: isOpen, children: [_jsx(Dialog.Header, { children: "Edit bookmark" }), _jsxs(Styled.DialogContent, { children: [_jsxs("div", { children: [_jsx(Label, { htmlFor: nameId, label: "Name" }), _jsx(Input, { id: nameId, autoComplete: "off", value: state?.name, onChange: (event) => {
@@ -74,6 +85,7 @@ export const EditBookmarkModal = ({ isOpen, onClose, bookmarkId, }) => {
74
85
  setState((s) => ({ ...s, description: event.target.value }));
75
86
  } }) }), _jsxs("div", { children: [_jsx(Label, { htmlFor: "app", label: "App" }), _jsx(Input, { readOnly: true, value: appName?.displayName || '' })] }), _jsxs(Styled.CheckboxWrapper, { children: [_jsx(Checkbox, { label: "Is Shared", checked: state.isShared, onChange: (changeEvent) => {
76
87
  const isShared = changeEvent.target.checked;
88
+ // Copy the bookmark URL when the user shares it so it's easy to send along
77
89
  if (isShared) {
78
90
  addBookmarkToClipboard(bookmarkId);
79
91
  }
@@ -84,4 +96,4 @@ export const EditBookmarkModal = ({ isOpen, onClose, bookmarkId, }) => {
84
96
  updateBookmark(state);
85
97
  }, children: "Save" })] }) })] }));
86
98
  };
87
- //# sourceMappingURL=EditBookmark.js.map
99
+ //# sourceMappingURL=EditBookmarkModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditBookmarkModal.js","sourceRoot":"","sources":["../../../../src/components/edit-bookmark/EditBookmarkModal.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export * from './EditBookmark';
1
+ export * from './EditBookmarkModal';
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/edit-bookmark/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/edit-bookmark/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
@@ -1,16 +1,22 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Search } from '@equinor/eds-core-react';
3
3
  import styled from 'styled-components';
4
- const Styled = {
4
+ const _Styled = {
5
5
  Root: styled.div `
6
6
  display: flex;
7
7
  align-items: center;
8
8
  justify-content: space-between;
9
9
  `,
10
10
  };
11
- export const BookmarkFilter = ({ searchText, setGroupBy, setSearchText, groupingModes, groupBy, }) => {
11
+ /**
12
+ * Search and grouping filter controls for the bookmark list.
13
+ *
14
+ * @param props - The component's props
15
+ * @returns The filter controls
16
+ */
17
+ export const BookmarkFilter = ({ searchText, setGroupBy: _setGroupBy, setSearchText, groupingModes: _groupingModes, groupBy: _groupBy, }) => {
12
18
  return (_jsx(Search, { placeholder: "Search in my bookmarks", value: searchText ?? '', onChange: (e) => {
13
19
  setSearchText(e.currentTarget.value.length ? e.currentTarget.value : null);
14
20
  } }));
15
21
  };
16
- //# sourceMappingURL=Filter.js.map
22
+ //# sourceMappingURL=BookmarkFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BookmarkFilter.js","sourceRoot":"","sources":["../../../../src/components/filter/BookmarkFilter.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAGjD,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAUvC,MAAM,OAAO,GAAG;IACd,IAAI,EAAE,MAAM,CAAC,GAAG,CAAA;;;;KAIb;CACJ,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,UAAU,EACV,UAAU,EAAE,WAAW,EACvB,aAAa,EACb,aAAa,EAAE,cAAc,EAC7B,OAAO,EAAE,QAAQ,GACG,EAAE,EAAE;IACxB,OAAO,CACL,KAAC,MAAM,IACL,WAAW,EAAC,wBAAwB,EACpC,KAAK,EAAE,UAAU,IAAI,EAAE,EACvB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;YACd,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7E,CAAC,GACD,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -12,31 +12,42 @@ const Styled = {
12
12
  gap: 1rem;
13
13
  `,
14
14
  };
15
+ /**
16
+ * Modal that prompts the user to import a bookmark shared via a `bookmarkId` URL parameter.
17
+ *
18
+ * @returns The import bookmark modal
19
+ */
15
20
  export const ImportBookmarkModal = () => {
16
21
  const [isOpen, setIsOpen] = useState(false);
17
22
  const { provider, currentUser } = useBookmarkComponentContext();
18
23
  // Observe changes to current bookmark and check if it is already in bookmarks or favorites
19
24
  const newBookmark$ = useMemo(() => {
25
+ // Without a provider there is no bookmark data source to observe
20
26
  if (!provider) {
21
27
  return of(null);
22
28
  }
29
+ // Watch the current bookmark and resolve whether it should prompt an import
23
30
  return provider.currentBookmark$.pipe(
24
31
  // filter out null values, not interested in those
25
32
  filter((bookmark) => !!bookmark), switchMap((bookmark) => {
26
33
  const checkBookmark = bookmark && bookmark.createdBy.id !== currentUser?.id;
34
+ // Only prompt to import bookmarks created by someone else
27
35
  if (!checkBookmark) {
28
36
  return of(null);
29
37
  }
38
+ // Resolve to null once the bookmark is already a favorite, otherwise pass it through
30
39
  return from(provider.isBookmarkInFavorites(bookmark.id)).pipe(map((isFavorite) => (isFavorite ? null : bookmark)));
31
40
  }));
32
41
  }, [provider, currentUser?.id]);
33
42
  const { value: newBookmark } = useObservableState(newBookmark$);
34
43
  useEffect(() => {
44
+ // Open the import dialog whenever a new importable bookmark is detected
35
45
  if (newBookmark) {
36
46
  setIsOpen(true);
37
47
  }
38
48
  }, [newBookmark]);
39
49
  const onAddBookmarkFavorite = useCallback((e) => {
50
+ // Without a provider we cannot persist the favorite, so bail out
40
51
  if (!provider) {
41
52
  console.error('Provider not available');
42
53
  return;
@@ -47,9 +58,10 @@ export const ImportBookmarkModal = () => {
47
58
  },
48
59
  });
49
60
  }, [provider]);
61
+ // Nothing to import when there is no candidate bookmark
50
62
  if (!newBookmark) {
51
63
  return null;
52
64
  }
53
65
  return (_jsxs(Dialog, { style: { width: '600px' }, open: isOpen, children: [_jsx(Dialog.Header, { children: "Import bookmark" }), _jsxs(Dialog.Content, { children: [_jsxs("p", { children: ["This bookmark was created by ", newBookmark.createdBy.name] }), _jsx("p", { children: "Would you like to import it?" })] }), _jsx(Dialog.Actions, { children: _jsxs(Styled.Actions, { children: [_jsx(Button, { onClick: () => setIsOpen(false), variant: 'ghost', style: { width: '70px' }, children: "No" }), _jsx(Button, { value: newBookmark.id, onClick: onAddBookmarkFavorite, variant: "ghost", children: "Import" })] }) })] }));
54
66
  };
55
- //# sourceMappingURL=ImportBookmark.js.map
67
+ //# sourceMappingURL=ImportBookmarkModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImportBookmarkModal.js","sourceRoot":"","sources":["../../../../src/components/import-bookmark/ImportBookmarkModal.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export * from './ImportBookmark';
1
+ export * from './ImportBookmarkModal';
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/import-bookmark/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/import-bookmark/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -1,5 +1,10 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { CircularProgress } from '@equinor/eds-core-react';
3
+ /**
4
+ * A centered loading spinner.
5
+ *
6
+ * @returns The loading indicator
7
+ */
3
8
  export const Loading = () => (_jsx("div", { style: {
4
9
  display: 'flex',
5
10
  alignItems: 'center',
@@ -1 +1 @@
1
- {"version":3,"file":"Loading.js","sourceRoot":"","sources":["../../../../src/components/loading/Loading.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAC3B,cACE,KAAK,EAAE;QACL,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,MAAM;KACd,YAED,KAAC,gBAAgB,KAAG,GAChB,CACP,CAAC"}
1
+ {"version":3,"file":"Loading.js","sourceRoot":"","sources":["../../../../src/components/loading/Loading.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAC3B,cACE,KAAK,EAAE;QACL,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,MAAM;KACd,YAED,KAAC,gBAAgB,KAAG,GAChB,CACP,CAAC"}
@@ -4,6 +4,7 @@ import { tokens } from '@equinor/eds-tokens';
4
4
  import styled from 'styled-components';
5
5
  import { error_outlined, file_description } from '@equinor/eds-icons';
6
6
  const getMessageType = (type) => {
7
+ // Map each message type to its icon and color; unknown types render nothing
7
8
  switch (type) {
8
9
  case 'Error':
9
10
  return { color: tokens.colors.interactive.danger__resting.hex, icon: error_outlined };
@@ -38,6 +39,12 @@ const Styles = {
38
39
  justify-content: center;
39
40
  `,
40
41
  };
42
+ /**
43
+ * Displays a titled message with an icon matching its type.
44
+ *
45
+ * @param props - The component's props
46
+ * @returns The message
47
+ */
41
48
  export const Message = ({ title, type = 'Info', color, children, }) => {
42
49
  const currentType = getMessageType(type);
43
50
  return (_jsxs(Styles.Wrapper, { children: [_jsx(Icon, { "data-testid": "icon", size: 40, color: currentType?.color || color || tokens.colors.text.static_icons__tertiary.hex, data: currentType?.icon || error_outlined }), _jsxs(Styles.Content, { children: [_jsx(Typography, { color: tokens.colors.text.static_icons__default.hex, variant: 'h3', "aria-label": `Title for ${type} message`, children: title }), _jsx(Typography, { children: children && children })] })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"Message.js","sourceRoot":"","sources":["../../../../src/components/messages/Message.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItE,MAAM,cAAc,GAAG,CAAC,IAAwB,EAAE,EAAE;IAClD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QACxF,KAAK,MAAM;YACT,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QACzF,KAAK,SAAS;YACZ,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QACzF,KAAK,WAAW;YACd,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG;gBACrD,IAAI,EAAE,gBAAgB;aACvB,CAAC;QACJ;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,MAAM,CAAC,GAAG,CAAA;;;;;;;;KAQhB;IACH,OAAO,EAAE,MAAM,CAAC,GAAG,CAAA;;;;;;KAMhB;CACJ,CAAC;AASF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EACtB,KAAK,EACL,IAAI,GAAG,MAAM,EACb,KAAK,EACL,QAAQ,GACwB,EAAE,EAAE;IACpC,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,CACL,MAAC,MAAM,CAAC,OAAO,eACb,KAAC,IAAI,mBACS,MAAM,EAClB,IAAI,EAAE,EAAE,EACR,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,EACnF,IAAI,EAAE,WAAW,EAAE,IAAI,IAAI,cAAc,GACzC,EACF,MAAC,MAAM,CAAC,OAAO,eACb,KAAC,UAAU,IACT,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,EACnD,OAAO,EAAE,IAAI,gBACD,aAAa,IAAI,UAAU,YAEtC,KAAK,GACK,EAEb,KAAC,UAAU,cAAE,QAAQ,IAAI,QAAQ,GAAc,IAChC,IACF,CAClB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Message.js","sourceRoot":"","sources":["../../../../src/components/messages/Message.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItE,MAAM,cAAc,GAAG,CAAC,IAAwB,EAAE,EAAE;IAClD,4EAA4E;IAC5E,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QACxF,KAAK,MAAM;YACT,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QACzF,KAAK,SAAS;YACZ,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QACzF,KAAK,WAAW;YACd,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG;gBACrD,IAAI,EAAE,gBAAgB;aACvB,CAAC;QACJ;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,MAAM,CAAC,GAAG,CAAA;;;;;;;;KAQhB;IACH,OAAO,EAAE,MAAM,CAAC,GAAG,CAAA;;;;;;KAMhB;CACJ,CAAC;AASF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EACtB,KAAK,EACL,IAAI,GAAG,MAAM,EACb,KAAK,EACL,QAAQ,GACwB,EAAE,EAAE;IACpC,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,CACL,MAAC,MAAM,CAAC,OAAO,eACb,KAAC,IAAI,mBACS,MAAM,EAClB,IAAI,EAAE,EAAE,EACR,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,EACnF,IAAI,EAAE,WAAW,EAAE,IAAI,IAAI,cAAc,GACzC,EACF,MAAC,MAAM,CAAC,OAAO,eACb,KAAC,UAAU,IACT,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,EACnD,OAAO,EAAE,IAAI,gBACD,aAAa,IAAI,UAAU,YAEtC,KAAK,GACK,EAEb,KAAC,UAAU,cAAE,QAAQ,IAAI,QAAQ,GAAc,IAChC,IACF,CAClB,CAAC;AACJ,CAAC,CAAC"}
@@ -1,11 +1,19 @@
1
- import { Fragment as _Fragment, jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Menu } from '@equinor/eds-core-react';
3
+ /**
4
+ * A dropdown menu of row actions anchored to a reference element.
5
+ *
6
+ * @param props - The component's props
7
+ * @returns The menu
8
+ */
3
9
  export const MoreMenu = ({ pRef, onClose, open, options }) => {
4
- return (_jsx(Menu, { open: open, anchorEl: pRef.current, children: options.map(({ onClick, name, disabled, Icon }) => (_jsx(Menu.Item, { disabled: disabled, onClick: (e) => {
5
- e.stopPropagation();
6
- e.preventDefault();
7
- onClick();
8
- onClose();
9
- }, children: _jsxs(_Fragment, { children: [Icon && Icon, name] }) }, name))) }));
10
+ // Render one menu item per configured row action
11
+ const items = options.map(({ onClick, name, disabled, Icon }) => (_jsxs(Menu.Item, { disabled: disabled, onClick: (e) => {
12
+ e.stopPropagation();
13
+ e.preventDefault();
14
+ onClick();
15
+ onClose();
16
+ }, children: [Icon && Icon, name] }, name)));
17
+ return (_jsx(Menu, { open: open, anchorEl: pRef.current, children: items }));
10
18
  };
11
19
  //# sourceMappingURL=MoreMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MoreMenu.js","sourceRoot":"","sources":["../../../../src/components/row/MoreMenu.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAW/C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAa,EAAE,EAAE;IACtE,OAAO,CACL,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,YACrC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAClD,KAAC,IAAI,CAAC,IAAI,IACR,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACb,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpB,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;YACZ,CAAC,YAGD,8BACG,IAAI,IAAI,IAAI,EACZ,IAAI,IACJ,IALE,IAAI,CAMC,CACb,CAAC,GACG,CACR,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"MoreMenu.js","sourceRoot":"","sources":["../../../../src/components/row/MoreMenu.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAW/C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAa,EAAE,EAAE;IACtE,iDAAiD;IACjD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAC/D,MAAC,IAAI,CAAC,IAAI,IACR,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACZ,CAAC,aAGA,IAAI,IAAI,IAAI,EACZ,IAAI,KAHA,IAAI,CAIC,CACb,CAAC,CAAC;IAEH,OAAO,CACL,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,YACrC,KAAK,GACD,CACR,CAAC;AACJ,CAAC,CAAC"}
@@ -29,21 +29,26 @@ const Styled = {
29
29
  border-bottom: 1px solid ${tokens.colors.ui.background__medium.hex};
30
30
  `,
31
31
  };
32
+ /**
33
+ * A single bookmark row, with actions and click-to-set-current behavior.
34
+ *
35
+ * @param props - The component's props
36
+ * @returns The row
37
+ */
32
38
  export const Row = ({ name, menuOptions, children, id, menuOpen, onMenuOpen }) => {
33
39
  const pRef = useRef(null);
34
40
  const { provider } = useBookmarkComponentContext();
35
41
  const onListItemClick = useCallback((e) => {
36
42
  e.preventDefault();
37
43
  e.stopPropagation();
44
+ // Only attempt to set the current bookmark when a provider is available
38
45
  if (provider) {
39
46
  from(provider.setCurrentBookmark(id)).subscribe();
40
47
  }
41
48
  }, [provider, id]);
42
49
  useOutsideClick(pRef.current, () => onMenuOpen(''));
43
- // TODO: @noggling fix this
44
- return (
45
- /* eslint-disable-next-line styled-components-a11y/click-events-have-key-events, styled-components-a11y/no-static-element-interactions*/
46
- _jsxs(Styled.ListItem, { onClick: onListItemClick, children: [_jsx(Typography, { children: name }), _jsxs(Styled.Icons, { children: [children, !!menuOptions?.length && (_jsx(Icon, { name: "more_vertical", onClick: (e) => {
50
+ // TODO(#5093): fix accessibility (keyboard support) for this click handler
51
+ return (_jsxs(Styled.ListItem, { onClick: onListItemClick, children: [_jsx(Typography, { children: name }), _jsxs(Styled.Icons, { children: [children, !!menuOptions?.length && (_jsx(Icon, { name: "more_vertical", onClick: (e) => {
47
52
  e.preventDefault();
48
53
  e.stopPropagation();
49
54
  onMenuOpen(id);
@@ -1 +1 @@
1
- {"version":3,"file":"Row.js","sourceRoot":"","sources":["../../../../src/components/row/Row.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAyC,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAkB5B,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,MAAM,CAAC,GAAG,CAAA;;;;;KAKd;IACH,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAA;;;gCAGU,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG;;;;;;;;;mCASnC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC,GAAG;KACrE;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAY,EAAE,EAAE;IACzF,MAAM,IAAI,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IAC9C,MAAM,EAAE,QAAQ,EAAE,GAAG,2BAA2B,EAAE,CAAC;IAEnD,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,CAAmB,EAAE,EAAE;QACtB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QACpD,CAAC;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,EAAE,CAAC,CACf,CAAC;IAEF,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpD,2BAA2B;IAC3B,OAAO;IACL,wIAAwI;IACxI,MAAC,MAAM,CAAC,QAAQ,IAAC,OAAO,EAAE,eAAe,aACvC,KAAC,UAAU,cAAE,IAAI,GAAc,EAC/B,MAAC,MAAM,CAAC,KAAK,eACV,QAAQ,EACR,CAAC,CAAC,WAAW,EAAE,MAAM,IAAI,CACxB,KAAC,IAAI,IACH,IAAI,EAAC,eAAe,EACpB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;4BACb,CAAC,CAAC,cAAc,EAAE,CAAC;4BACnB,CAAC,CAAC,eAAe,EAAE,CAAC;4BACpB,UAAU,CAAC,EAAE,CAAC,CAAC;wBACjB,CAAC,EACD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,EACrD,GAAG,EAAE,IAAkD,GACvD,CACH,EAED,KAAC,QAAQ,IACP,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,GAAG,EAAE;4BACZ,UAAU,CAAC,EAAE,CAAC,CAAC;wBACjB,CAAC,EACD,IAAI,EAAE,IAAI,GACV,IACW,IACC,CACnB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Row.js","sourceRoot":"","sources":["../../../../src/components/row/Row.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAyC,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAkB5B,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,MAAM,CAAC,GAAG,CAAA;;;;;KAKd;IACH,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAA;;;gCAGU,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG;;;;;;;;;mCASnC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC,GAAG;KACrE;CACJ,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAY,EAAE,EAAE;IACzF,MAAM,IAAI,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IAC9C,MAAM,EAAE,QAAQ,EAAE,GAAG,2BAA2B,EAAE,CAAC;IAEnD,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,CAAmB,EAAE,EAAE;QACtB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,wEAAwE;QACxE,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QACpD,CAAC;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,EAAE,CAAC,CACf,CAAC;IAEF,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpD,2EAA2E;IAC3E,OAAO,CAEL,MAAC,MAAM,CAAC,QAAQ,IAAC,OAAO,EAAE,eAAe,aACvC,KAAC,UAAU,cAAE,IAAI,GAAc,EAC/B,MAAC,MAAM,CAAC,KAAK,eACV,QAAQ,EACR,CAAC,CAAC,WAAW,EAAE,MAAM,IAAI,CACxB,KAAC,IAAI,IACH,IAAI,EAAC,eAAe,EACpB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;4BACb,CAAC,CAAC,cAAc,EAAE,CAAC;4BACnB,CAAC,CAAC,eAAe,EAAE,CAAC;4BACpB,UAAU,CAAC,EAAE,CAAC,CAAC;wBACjB,CAAC,EACD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,EACrD,GAAG,EAAE,IAAkD,GACvD,CACH,EAED,KAAC,QAAQ,IACP,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,GAAG,EAAE;4BACZ,UAAU,CAAC,EAAE,CAAC,CAAC;wBACjB,CAAC,EACD,IAAI,EAAE,IAAI,GACV,IACW,IACC,CACnB,CAAC;AACJ,CAAC,CAAC"}
@@ -34,6 +34,12 @@ Icon.add({
34
34
  chevron_down,
35
35
  chevron_right,
36
36
  });
37
+ /**
38
+ * A collapsible section with a named header and its contents.
39
+ *
40
+ * @param props - The component's props
41
+ * @returns The section
42
+ */
37
43
  export const Section = ({ children, name }) => {
38
44
  const [isExpanded, setIsExpanded] = useState(true);
39
45
  return (_jsxs("div", { children: [_jsxs(Styled.Button, { variant: "ghost", onClick: () => setIsExpanded((s) => !s), children: [_jsx(Icon, { name: isExpanded ? chevron_down.name : chevron_right.name }), _jsx(Typography, { variant: "h6", children: name })] }), isExpanded && _jsx(Styled.List, { children: children })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"Section.js","sourceRoot":"","sources":["../../../../src/components/section/Section.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,MAAM,MAAM,GAAG;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;;;;;;;;;;iBAUP,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,GAAG;;;;;KAKjE;IACH,IAAI,EAAE,MAAM,CAAC,EAAE,CAAA;;;;;;iCAMgB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,GAAG;KACjF;CACJ,CAAC;AAEF,IAAI,CAAC,GAAG,CAAC;IACP,YAAY;IACZ,aAAa;CACd,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAgB,EAAE,EAAE;IAC1D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEnD,OAAO,CACL,0BACE,MAAC,MAAM,CAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aACpE,KAAC,IAAI,IAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,GAAI,EACnE,KAAC,UAAU,IAAC,OAAO,EAAC,IAAI,YAAE,IAAI,GAAc,IAC9B,EACf,UAAU,IAAI,KAAC,MAAM,CAAC,IAAI,cAAE,QAAQ,GAAe,IAChD,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Section.js","sourceRoot":"","sources":["../../../../src/components/section/Section.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,MAAM,MAAM,GAAG;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;;;;;;;;;;iBAUP,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,GAAG;;;;;KAKjE;IACH,IAAI,EAAE,MAAM,CAAC,EAAE,CAAA;;;;;;iCAMgB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,GAAG;KACjF;CACJ,CAAC;AAEF,IAAI,CAAC,GAAG,CAAC;IACP,YAAY;IACZ,aAAa;CACd,CAAC,CAAC;AAMH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAgB,EAAE,EAAE;IAC1D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEnD,OAAO,CACL,0BACE,MAAC,MAAM,CAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aACpE,KAAC,IAAI,IAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,GAAI,EACnE,KAAC,UAAU,IAAC,OAAO,EAAC,IAAI,YAAE,IAAI,GAAc,IAC9B,EACf,UAAU,IAAI,KAAC,MAAM,CAAC,IAAI,cAAE,QAAQ,GAAe,IAChD,CACP,CAAC;AACJ,CAAC,CAAC"}