@box/metadata-template-browser 2.1.34 → 2.1.36

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 (59) hide show
  1. package/dist/chunks/breadcrumb-navigation.js +1 -35
  2. package/dist/chunks/browser-row.js +1 -60
  3. package/dist/chunks/grid-list-load-more-sentinel.js +1 -31
  4. package/dist/chunks/load-more-error-row.js +1 -36
  5. package/dist/chunks/load-more-loading-row.js +1 -26
  6. package/dist/chunks/loader-skeleton.js +1 -16
  7. package/dist/chunks/metadata-template-browser-container.js +1 -42
  8. package/dist/chunks/metadata-template-browser-controller.js +1 -36
  9. package/dist/chunks/metadata-template-browser-list-box.js +1 -65
  10. package/dist/chunks/types.js +1 -4
  11. package/dist/chunks/virtualized-grid-list.js +1 -59
  12. package/dist/esm/index.js +1 -2
  13. package/dist/esm/lib/components/breadcrumb-navigation/breadcrumb-navigation.js +1 -2
  14. package/dist/esm/lib/components/breadcrumb-navigation/index.js +1 -2
  15. package/dist/esm/lib/components/breadcrumb-navigation/messages.js +1 -16
  16. package/dist/esm/lib/components/browse-list/browse-list.js +1 -60
  17. package/dist/esm/lib/components/browse-list/index.js +1 -2
  18. package/dist/esm/lib/components/browse-list/messages.js +1 -20
  19. package/dist/esm/lib/components/browser-row/browser-row.js +1 -2
  20. package/dist/esm/lib/components/browser-row/index.js +1 -2
  21. package/dist/esm/lib/components/error-state/error-state.js +1 -23
  22. package/dist/esm/lib/components/error-state/index.js +1 -2
  23. package/dist/esm/lib/components/error-state/messages.js +1 -6
  24. package/dist/esm/lib/components/index.js +1 -12
  25. package/dist/esm/lib/components/load-more-feedback/index.js +1 -3
  26. package/dist/esm/lib/components/load-more-feedback/load-more-error-row.js +1 -2
  27. package/dist/esm/lib/components/load-more-feedback/load-more-loading-row.js +1 -2
  28. package/dist/esm/lib/components/load-more-feedback/messages.js +1 -20
  29. package/dist/esm/lib/components/loader-skeleton/index.js +1 -2
  30. package/dist/esm/lib/components/loader-skeleton/loader-skeleton.js +1 -2
  31. package/dist/esm/lib/components/messages.js +1 -32
  32. package/dist/esm/lib/components/metadata-template-browser-container.js +1 -2
  33. package/dist/esm/lib/components/metadata-template-browser-controller.js +1 -2
  34. package/dist/esm/lib/components/metadata-template-browser-list-box/index.js +1 -2
  35. package/dist/esm/lib/components/metadata-template-browser-list-box/metadata-template-browser-list-box.js +1 -2
  36. package/dist/esm/lib/components/namespace-row/index.js +1 -2
  37. package/dist/esm/lib/components/namespace-row/messages.js +1 -6
  38. package/dist/esm/lib/components/namespace-row/namespace-row.js +1 -22
  39. package/dist/esm/lib/components/search-list/index.js +1 -2
  40. package/dist/esm/lib/components/search-list/messages.js +1 -20
  41. package/dist/esm/lib/components/search-list/search-list.js +1 -54
  42. package/dist/esm/lib/components/template-row/index.js +1 -2
  43. package/dist/esm/lib/components/template-row/messages.js +1 -12
  44. package/dist/esm/lib/components/template-row/template-row.js +1 -51
  45. package/dist/esm/lib/components/virtualized-grid-list/grid-list-load-more-sentinel.js +1 -2
  46. package/dist/esm/lib/components/virtualized-grid-list/index.js +1 -2
  47. package/dist/esm/lib/components/virtualized-grid-list/messages.js +1 -6
  48. package/dist/esm/lib/components/virtualized-grid-list/virtualized-grid-list.js +1 -2
  49. package/dist/esm/lib/constants.js +1 -2
  50. package/dist/esm/lib/contexts/contexts.js +1 -104
  51. package/dist/esm/lib/contexts/hooks.js +1 -33
  52. package/dist/esm/lib/contexts/index.js +1 -5
  53. package/dist/esm/lib/contexts/provider.js +1 -53
  54. package/dist/esm/lib/contexts/reducer.js +1 -156
  55. package/dist/esm/lib/contexts/use-template-browser-actions.js +1 -232
  56. package/dist/esm/lib/hooks/use-focus-first-row-after-navigation.js +1 -32
  57. package/dist/esm/lib/hooks/use-is-initial-browse-loading.js +1 -6
  58. package/dist/esm/lib/metadata-template-browser.js +1 -21
  59. package/package.json +7 -7
@@ -1,6 +1 @@
1
- import { defineMessages as e } from "react-intl";
2
- var t = e({ retryLabel: {
3
- id: "groupSharedFeatures.metadataTemplateBrowser.errorState.retryLabel",
4
- defaultMessage: "Try again"
5
- } });
6
- export { t as messages };
1
+ import{defineMessages}from"react-intl";var messages=defineMessages({retryLabel:{id:`groupSharedFeatures.metadataTemplateBrowser.errorState.retryLabel`,defaultMessage:`Try again`}});export{messages};
@@ -1,12 +1 @@
1
- import { t as e } from "../../../chunks/breadcrumb-navigation.js";
2
- import { ErrorState as t } from "./error-state/error-state.js";
3
- import { t as n } from "../../../chunks/loader-skeleton.js";
4
- import { NamespaceRow as r } from "./namespace-row/namespace-row.js";
5
- import { TemplateRow as i } from "./template-row/template-row.js";
6
- import { t as a } from "../../../chunks/virtualized-grid-list.js";
7
- import { BrowseList as o } from "./browse-list/browse-list.js";
8
- import { SearchList as s } from "./search-list/search-list.js";
9
- import { t as c } from "../../../chunks/metadata-template-browser-container.js";
10
- import { t as l } from "../../../chunks/metadata-template-browser-list-box.js";
11
- import { t as u } from "../../../chunks/metadata-template-browser-controller.js";
12
- export { e as BreadcrumbNavigation, o as BrowseList, t as ErrorState, n as LoaderSkeleton, c as MetadataTemplateBrowserContainer, u as MetadataTemplateBrowserController, l as MetadataTemplateBrowserListBox, r as NamespaceRow, s as SearchList, i as TemplateRow, a as VirtualizedGridList };
1
+ import{t as BreadcrumbNavigation}from"../../../chunks/breadcrumb-navigation.js";import{ErrorState}from"./error-state/error-state.js";import{t as LoaderSkeleton}from"../../../chunks/loader-skeleton.js";import{NamespaceRow}from"./namespace-row/namespace-row.js";import{TemplateRow}from"./template-row/template-row.js";import{t as VirtualizedGridList}from"../../../chunks/virtualized-grid-list.js";import{BrowseList}from"./browse-list/browse-list.js";import{SearchList}from"./search-list/search-list.js";import{t as MetadataTemplateBrowserContainer}from"../../../chunks/metadata-template-browser-container.js";import{t as MetadataTemplateBrowserListBox}from"../../../chunks/metadata-template-browser-list-box.js";import{t as MetadataTemplateBrowserController}from"../../../chunks/metadata-template-browser-controller.js";export{BreadcrumbNavigation,BrowseList,ErrorState,LoaderSkeleton,MetadataTemplateBrowserContainer,MetadataTemplateBrowserController,MetadataTemplateBrowserListBox,NamespaceRow,SearchList,TemplateRow,VirtualizedGridList};
@@ -1,3 +1 @@
1
- import { t as e } from "../../../../chunks/load-more-error-row.js";
2
- import { t } from "../../../../chunks/load-more-loading-row.js";
3
- export { e as LoadMoreErrorRow, t as LoadMoreLoadingRow };
1
+ import{t as LoadMoreErrorRow}from"../../../../chunks/load-more-error-row.js";import{t as LoadMoreLoadingRow}from"../../../../chunks/load-more-loading-row.js";export{LoadMoreErrorRow,LoadMoreLoadingRow};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../chunks/load-more-error-row.js";
2
- export { e as LoadMoreErrorRow };
1
+ import{t as LoadMoreErrorRow}from"../../../../chunks/load-more-error-row.js";export{LoadMoreErrorRow};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../chunks/load-more-loading-row.js";
2
- export { e as LoadMoreLoadingRow };
1
+ import{t as LoadMoreLoadingRow}from"../../../../chunks/load-more-loading-row.js";export{LoadMoreLoadingRow};
@@ -1,20 +1 @@
1
- import { defineMessages as e } from "react-intl";
2
- var t = e({
3
- loadingRowAriaLabel: {
4
- id: "groupSharedFeatures.metadataTemplateBrowser.loadMoreFeedback.loadingRowAriaLabel",
5
- defaultMessage: "Loading more items"
6
- },
7
- errorIconAriaLabel: {
8
- id: "groupSharedFeatures.metadataTemplateBrowser.loadMoreFeedback.errorIconAriaLabel",
9
- defaultMessage: "Error"
10
- },
11
- loadMoreErrorBody: {
12
- id: "groupSharedFeatures.metadataTemplateBrowser.loadMoreFeedback.loadMoreErrorBody",
13
- defaultMessage: "Failed to load more items."
14
- },
15
- retryLabel: {
16
- id: "groupSharedFeatures.metadataTemplateBrowser.loadMoreFeedback.retryLabel",
17
- defaultMessage: "Try again"
18
- }
19
- });
20
- export { t as messages };
1
+ import{defineMessages}from"react-intl";var messages=defineMessages({loadingRowAriaLabel:{id:`groupSharedFeatures.metadataTemplateBrowser.loadMoreFeedback.loadingRowAriaLabel`,defaultMessage:`Loading more items`},errorIconAriaLabel:{id:`groupSharedFeatures.metadataTemplateBrowser.loadMoreFeedback.errorIconAriaLabel`,defaultMessage:`Error`},loadMoreErrorBody:{id:`groupSharedFeatures.metadataTemplateBrowser.loadMoreFeedback.loadMoreErrorBody`,defaultMessage:`Failed to load more items.`},retryLabel:{id:`groupSharedFeatures.metadataTemplateBrowser.loadMoreFeedback.retryLabel`,defaultMessage:`Try again`}});export{messages};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../chunks/loader-skeleton.js";
2
- export { e as LoaderSkeleton };
1
+ import{t as LoaderSkeleton}from"../../../../chunks/loader-skeleton.js";export{LoaderSkeleton};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../chunks/loader-skeleton.js";
2
- export { e as LoaderSkeleton };
1
+ import{t as LoaderSkeleton}from"../../../../chunks/loader-skeleton.js";export{LoaderSkeleton};
@@ -1,32 +1 @@
1
- import { defineMessages as e } from "react-intl";
2
- var t = e({
3
- searchInputPlaceholder: {
4
- id: "groupSharedFeatures.metadataTemplateBrowser.container.searchInputPlaceholder",
5
- defaultMessage: "Search templates"
6
- },
7
- searchInputAriaLabel: {
8
- id: "groupSharedFeatures.metadataTemplateBrowser.container.searchInputAriaLabel",
9
- defaultMessage: "Search templates"
10
- },
11
- searchInputClearAriaLabel: {
12
- id: "groupSharedFeatures.metadataTemplateBrowser.container.searchInputClearAriaLabel",
13
- defaultMessage: "Clear search"
14
- },
15
- loadingAriaLabel: {
16
- id: "groupSharedFeatures.metadataTemplateBrowser.container.loadingAriaLabel",
17
- defaultMessage: "Loading templates"
18
- },
19
- initialEmptyStateBody: {
20
- id: "groupSharedFeatures.metadataTemplateBrowser.container.initialEmptyStateBody",
21
- defaultMessage: "At the moment, there are no metadata templates ready for use. You can create the first one by reaching out to your Admin."
22
- },
23
- initialLoadErrorBody: {
24
- id: "groupSharedFeatures.metadataTemplateBrowser.container.initialLoadErrorBody",
25
- defaultMessage: "Something went wrong while loading templates."
26
- },
27
- createTemplateButtonLabel: {
28
- id: "groupSharedFeatures.metadataTemplateBrowser.container.createTemplateButtonLabel",
29
- defaultMessage: "New Template"
30
- }
31
- });
32
- export { t as messages };
1
+ import{defineMessages}from"react-intl";var messages=defineMessages({searchInputPlaceholder:{id:`groupSharedFeatures.metadataTemplateBrowser.container.searchInputPlaceholder`,defaultMessage:`Search templates`},searchInputAriaLabel:{id:`groupSharedFeatures.metadataTemplateBrowser.container.searchInputAriaLabel`,defaultMessage:`Search templates`},searchInputClearAriaLabel:{id:`groupSharedFeatures.metadataTemplateBrowser.container.searchInputClearAriaLabel`,defaultMessage:`Clear search`},loadingAriaLabel:{id:`groupSharedFeatures.metadataTemplateBrowser.container.loadingAriaLabel`,defaultMessage:`Loading templates`},initialEmptyStateBody:{id:`groupSharedFeatures.metadataTemplateBrowser.container.initialEmptyStateBody`,defaultMessage:`At the moment, there are no metadata templates ready for use. You can create the first one by reaching out to your Admin.`},initialLoadErrorBody:{id:`groupSharedFeatures.metadataTemplateBrowser.container.initialLoadErrorBody`,defaultMessage:`Something went wrong while loading templates.`},createTemplateButtonLabel:{id:`groupSharedFeatures.metadataTemplateBrowser.container.createTemplateButtonLabel`,defaultMessage:`New Template`}});export{messages};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../chunks/metadata-template-browser-container.js";
2
- export { e as MetadataTemplateBrowserContainer };
1
+ import{t as MetadataTemplateBrowserContainer}from"../../../chunks/metadata-template-browser-container.js";export{MetadataTemplateBrowserContainer};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../chunks/metadata-template-browser-controller.js";
2
- export { e as MetadataTemplateBrowserController };
1
+ import{t as MetadataTemplateBrowserController}from"../../../chunks/metadata-template-browser-controller.js";export{MetadataTemplateBrowserController};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../chunks/metadata-template-browser-list-box.js";
2
- export { e as MetadataTemplateBrowserListBox };
1
+ import{t as MetadataTemplateBrowserListBox}from"../../../../chunks/metadata-template-browser-list-box.js";export{MetadataTemplateBrowserListBox};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../chunks/metadata-template-browser-list-box.js";
2
- export { e as MetadataTemplateBrowserListBox };
1
+ import{t as MetadataTemplateBrowserListBox}from"../../../../chunks/metadata-template-browser-list-box.js";export{MetadataTemplateBrowserListBox};
@@ -1,2 +1 @@
1
- import { NamespaceRow as e } from "./namespace-row.js";
2
- export { e as NamespaceRow };
1
+ import{NamespaceRow}from"./namespace-row.js";export{NamespaceRow};
@@ -1,6 +1 @@
1
- import { defineMessages as e } from "react-intl";
2
- var t = e({ navigateAriaLabel: {
3
- id: "groupSharedFeatures.metadataTemplateBrowser.namespaceRow.navigateAriaLabel",
4
- defaultMessage: "Navigate into {displayName}"
5
- } });
6
- export { t as messages };
1
+ import{defineMessages}from"react-intl";var messages=defineMessages({navigateAriaLabel:{id:`groupSharedFeatures.metadataTemplateBrowser.namespaceRow.navigateAriaLabel`,defaultMessage:`Navigate into {displayName}`}});export{messages};
@@ -1,22 +1 @@
1
- import { useConsumerState as e } from "../../contexts/hooks.js";
2
- import { t } from "../../../../chunks/browser-row.js";
3
- import { messages as n } from "./messages.js";
4
- import { IconButton as r } from "@box/blueprint-web";
5
- import { useIntl as i } from "react-intl";
6
- import { jsx as a } from "react/jsx-runtime";
7
- import { ChevronRight as o, Folder as s } from "@box/blueprint-web-assets/icons/Medium";
8
- function c({ namespace: c }) {
9
- let { formatMessage: l } = i(), { isDisabled: u } = e();
10
- return /* @__PURE__ */ a(t, {
11
- id: c.id,
12
- leadingIcon: /* @__PURE__ */ a(s, {}),
13
- title: c.displayName,
14
- trailingSlot: /* @__PURE__ */ a(r, {
15
- "aria-label": l(n.navigateAriaLabel, { displayName: c.displayName }),
16
- disabled: u,
17
- icon: o,
18
- size: "x-small"
19
- })
20
- });
21
- }
22
- export { c as NamespaceRow };
1
+ import{useConsumerState}from"../../contexts/hooks.js";import{t as BrowserRow}from"../../../../chunks/browser-row.js";import{messages}from"./messages.js";import{IconButton}from"@box/blueprint-web";import{useIntl}from"react-intl";import{jsx}from"react/jsx-runtime";import{ChevronRight,Folder}from"@box/blueprint-web-assets/icons/Medium";function NamespaceRow({namespace}){let{formatMessage}=useIntl(),{isDisabled}=useConsumerState();return jsx(BrowserRow,{id:namespace.id,leadingIcon:jsx(Folder,{}),title:namespace.displayName,trailingSlot:jsx(IconButton,{"aria-label":formatMessage(messages.navigateAriaLabel,{displayName:namespace.displayName}),disabled:isDisabled,icon:ChevronRight,size:`x-small`})})}export{NamespaceRow};
@@ -1,2 +1 @@
1
- import { SearchList as e } from "./search-list.js";
2
- export { e as SearchList };
1
+ import{SearchList}from"./search-list.js";export{SearchList};
@@ -1,20 +1 @@
1
- import { defineMessages as e } from "react-intl";
2
- var t = e({
3
- listAriaLabel: {
4
- id: "groupSharedFeatures.metadataTemplateBrowser.searchList.listAriaLabel",
5
- defaultMessage: "Search results"
6
- },
7
- emptyStateHeading: {
8
- id: "groupSharedFeatures.metadataTemplateBrowser.searchList.emptyStateHeading",
9
- defaultMessage: "We couldn't find what you're looking for"
10
- },
11
- emptyStateBody: {
12
- id: "groupSharedFeatures.metadataTemplateBrowser.searchList.emptyStateBody",
13
- defaultMessage: "Try using simpler search terms and then filtering the results."
14
- },
15
- searchErrorBody: {
16
- id: "groupSharedFeatures.metadataTemplateBrowser.searchList.searchErrorBody",
17
- defaultMessage: "Something went wrong while searching."
18
- }
19
- });
20
- export { t as messages };
1
+ import{defineMessages}from"react-intl";var messages=defineMessages({listAriaLabel:{id:`groupSharedFeatures.metadataTemplateBrowser.searchList.listAriaLabel`,defaultMessage:`Search results`},emptyStateHeading:{id:`groupSharedFeatures.metadataTemplateBrowser.searchList.emptyStateHeading`,defaultMessage:`We couldn't find what you're looking for`},emptyStateBody:{id:`groupSharedFeatures.metadataTemplateBrowser.searchList.emptyStateBody`,defaultMessage:`Try using simpler search terms and then filtering the results.`},searchErrorBody:{id:`groupSharedFeatures.metadataTemplateBrowser.searchList.searchErrorBody`,defaultMessage:`Something went wrong while searching.`}});export{messages};
@@ -1,54 +1 @@
1
- import { useBrowseState as e, useBrowserActions as t, useSearchState as n } from "../../contexts/hooks.js";
2
- import { t as r } from "../../../../chunks/types.js";
3
- import { ErrorState as i } from "../error-state/error-state.js";
4
- import { t as a } from "../../../../chunks/loader-skeleton.js";
5
- import { TemplateRow as o } from "../template-row/template-row.js";
6
- import { t as s } from "../../../../chunks/virtualized-grid-list.js";
7
- import { messages as c } from "./messages.js";
8
- import { EmptyState as l, Text as u } from "@box/blueprint-web";
9
- import { useIntl as d } from "react-intl";
10
- import { useCallback as f } from "react";
11
- import { jsx as p } from "react/jsx-runtime";
12
- import { CustomTemplate as m } from "@box/blueprint-web-assets/illustrations/Small";
13
- function h({ onAction: h, selectedKeys: g }) {
14
- let { formatMessage: _ } = d(), { searchResults: v, searchNextMarker: y, isFetchingSearch: b, searchError: x } = n(), { isFetchingMore: S, loadMoreError: C } = e(), { loadMore: w, retry: T, editTemplate: E } = t(), D = y !== void 0, O = f((e) => /* @__PURE__ */ p(o, {
15
- onEdit: E,
16
- template: e.template,
17
- variant: r.Search
18
- }), [E]);
19
- if (b) return /* @__PURE__ */ p(a, {});
20
- if (x !== null) return /* @__PURE__ */ p(i, {
21
- body: _(c.searchErrorBody),
22
- onRetry: T
23
- });
24
- if (v.length === 0) return /* @__PURE__ */ p(l, {
25
- body: /* @__PURE__ */ p(u, {
26
- as: "p",
27
- children: _(c.emptyStateBody)
28
- }),
29
- heading: /* @__PURE__ */ p(u, {
30
- as: "p",
31
- children: _(c.emptyStateHeading)
32
- }),
33
- illustration: m,
34
- size: "small"
35
- });
36
- let k = v.map((e) => ({
37
- id: e.id,
38
- template: e
39
- }));
40
- return /* @__PURE__ */ p(s, {
41
- ariaLabel: _(c.listAriaLabel),
42
- isFetchingMore: S,
43
- items: k,
44
- listType: r.Search,
45
- loadMoreError: C,
46
- onAction: h,
47
- hasMoreItems: D,
48
- onLoadMore: w,
49
- onRetry: w,
50
- selectedKeys: g,
51
- children: O
52
- });
53
- }
54
- export { h as SearchList };
1
+ import{useBrowseState,useBrowserActions,useSearchState}from"../../contexts/hooks.js";import{t as TemplateRowVariant}from"../../../../chunks/types.js";import{ErrorState}from"../error-state/error-state.js";import{t as LoaderSkeleton}from"../../../../chunks/loader-skeleton.js";import{TemplateRow}from"../template-row/template-row.js";import{t as VirtualizedGridList}from"../../../../chunks/virtualized-grid-list.js";import{messages}from"./messages.js";import{EmptyState,Text}from"@box/blueprint-web";import{useIntl}from"react-intl";import{useCallback}from"react";import{jsx}from"react/jsx-runtime";import{CustomTemplate}from"@box/blueprint-web-assets/illustrations/Small";function SearchList({onAction,selectedKeys}){let{formatMessage}=useIntl(),{searchResults,searchNextMarker,isFetchingSearch,searchError}=useSearchState(),{isFetchingMore,loadMoreError}=useBrowseState(),{loadMore,retry,editTemplate}=useBrowserActions(),hasMoreSearchItems=searchNextMarker!==void 0,renderItem=useCallback(item=>jsx(TemplateRow,{onEdit:editTemplate,template:item.template,variant:TemplateRowVariant.Search}),[editTemplate]);if(isFetchingSearch)return jsx(LoaderSkeleton,{});if(searchError!==null)return jsx(ErrorState,{body:formatMessage(messages.searchErrorBody),onRetry:retry});if(searchResults.length===0)return jsx(EmptyState,{body:jsx(Text,{as:`p`,children:formatMessage(messages.emptyStateBody)}),heading:jsx(Text,{as:`p`,children:formatMessage(messages.emptyStateHeading)}),illustration:CustomTemplate,size:`small`});let items=searchResults.map(template=>({id:template.id,template}));return jsx(VirtualizedGridList,{ariaLabel:formatMessage(messages.listAriaLabel),isFetchingMore,items,listType:TemplateRowVariant.Search,loadMoreError,onAction,hasMoreItems:hasMoreSearchItems,onLoadMore:loadMore,onRetry:loadMore,selectedKeys,children:renderItem})}export{SearchList};
@@ -1,2 +1 @@
1
- import { TemplateRow as e } from "./template-row.js";
2
- export { e as TemplateRow };
1
+ import{TemplateRow}from"./template-row.js";export{TemplateRow};
@@ -1,12 +1 @@
1
- import { defineMessages as e } from "react-intl";
2
- var t = e({
3
- alreadyApplied: {
4
- id: "groupSharedFeatures.metadataTemplateBrowser.templateRow.alreadyApplied",
5
- defaultMessage: "Template is already applied."
6
- },
7
- editAriaLabel: {
8
- id: "groupSharedFeatures.metadataTemplateBrowser.templateRow.editAriaLabel",
9
- defaultMessage: "Edit {displayName}"
10
- }
11
- });
12
- export { t as messages };
1
+ import{defineMessages}from"react-intl";var messages=defineMessages({alreadyApplied:{id:`groupSharedFeatures.metadataTemplateBrowser.templateRow.alreadyApplied`,defaultMessage:`Template is already applied.`},editAriaLabel:{id:`groupSharedFeatures.metadataTemplateBrowser.templateRow.editAriaLabel`,defaultMessage:`Edit {displayName}`}});export{messages};
@@ -1,51 +1 @@
1
- import { useConsumerState as e } from "../../contexts/hooks.js";
2
- import { t } from "../../../../chunks/types.js";
3
- import { t as n } from "../../../../chunks/browser-row.js";
4
- import { messages as r } from "./messages.js";
5
- import { IconButton as i, Text as a } from "@box/blueprint-web";
6
- import { useIntl as o } from "react-intl";
7
- import { Fragment as s, useCallback as c } from "react";
8
- import { jsx as l, jsxs as u } from "react/jsx-runtime";
9
- import { Metadata as d } from "@box/blueprint-web-assets/icons/Medium";
10
- import { Pencil as f } from "@box/blueprint-web-assets/icons/Fill";
11
- var p = (e) => {
12
- if (!e.ancestors || e.ancestors.length === 0) return;
13
- let t = e.ancestors.length - 1;
14
- return e.ancestors.map((e, n) => /* @__PURE__ */ u(s, { children: [n > 0 && /* @__PURE__ */ l(a, {
15
- "aria-hidden": "true",
16
- as: "span",
17
- color: "textOnLightSecondary",
18
- variant: "caption",
19
- children: " / "
20
- }), /* @__PURE__ */ l(a, {
21
- as: "span",
22
- color: "textOnLightSecondary",
23
- variant: n === t ? "captionBold" : "caption",
24
- children: e.displayName
25
- })] }, e.fqn));
26
- };
27
- function m({ template: a, variant: s, onEdit: u }) {
28
- let { formatMessage: m } = o(), { isDisabled: h, appliedTemplateIds: g } = e(), _ = g.has(a.id), v = c((e) => {
29
- e.stopPropagation(), u(a.id);
30
- }, [u, a.id]), y = s === t.Search, b = !!a.canEdit;
31
- return /* @__PURE__ */ l(n, {
32
- id: a.id,
33
- isApplied: _,
34
- isTrailingSlotHoverOnly: b,
35
- leadingIcon: y ? void 0 : /* @__PURE__ */ l(d, {}),
36
- subtitle: y ? p(a) : void 0,
37
- title: a.displayName,
38
- tooltipContent: _ ? m(r.alreadyApplied) : void 0,
39
- trailingSlot: b ? /* @__PURE__ */ l("div", {
40
- onPointerDown: (e) => e.stopPropagation(),
41
- children: /* @__PURE__ */ l(i, {
42
- "aria-label": m(r.editAriaLabel, { displayName: a.displayName }),
43
- disabled: h,
44
- icon: f,
45
- onClick: v,
46
- size: "x-small"
47
- })
48
- }) : void 0
49
- });
50
- }
51
- export { m as TemplateRow };
1
+ import{useConsumerState}from"../../contexts/hooks.js";import{t as TemplateRowVariant}from"../../../../chunks/types.js";import{t as BrowserRow}from"../../../../chunks/browser-row.js";import{messages}from"./messages.js";import{IconButton,Text}from"@box/blueprint-web";import{useIntl}from"react-intl";import{Fragment,useCallback}from"react";import{jsx,jsxs}from"react/jsx-runtime";import{Metadata}from"@box/blueprint-web-assets/icons/Medium";import{Pencil}from"@box/blueprint-web-assets/icons/Fill";var deriveBreadcrumbPath=template=>{if(!template.ancestors||template.ancestors.length===0)return;let lastIndex=template.ancestors.length-1;return template.ancestors.map((ancestor,index)=>jsxs(Fragment,{children:[index>0&&jsx(Text,{"aria-hidden":`true`,as:`span`,color:`textOnLightSecondary`,variant:`caption`,children:` / `}),jsx(Text,{as:`span`,color:`textOnLightSecondary`,variant:index===lastIndex?`captionBold`:`caption`,children:ancestor.displayName})]},ancestor.fqn))};function TemplateRow({template,variant,onEdit}){let{formatMessage}=useIntl(),{isDisabled,appliedTemplateIds}=useConsumerState(),isApplied=appliedTemplateIds.has(template.id),handleEditClick=useCallback(event=>{event.stopPropagation(),onEdit(template.id)},[onEdit,template.id]),isSearchVariant=variant===TemplateRowVariant.Search,showEditButton=!!template.canEdit;return jsx(BrowserRow,{id:template.id,isApplied,isTrailingSlotHoverOnly:showEditButton,leadingIcon:isSearchVariant?void 0:jsx(Metadata,{}),subtitle:isSearchVariant?deriveBreadcrumbPath(template):void 0,title:template.displayName,tooltipContent:isApplied?formatMessage(messages.alreadyApplied):void 0,trailingSlot:showEditButton?jsx(`div`,{onPointerDown:e=>e.stopPropagation(),children:jsx(IconButton,{"aria-label":formatMessage(messages.editAriaLabel,{displayName:template.displayName}),disabled:isDisabled,icon:Pencil,onClick:handleEditClick,size:`x-small`})}):void 0})}export{TemplateRow};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../chunks/grid-list-load-more-sentinel.js";
2
- export { e as GridListLoadMoreSentinel };
1
+ import{t as GridListLoadMoreSentinel}from"../../../../chunks/grid-list-load-more-sentinel.js";export{GridListLoadMoreSentinel};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../chunks/virtualized-grid-list.js";
2
- export { e as VirtualizedGridList };
1
+ import{t as VirtualizedGridList}from"../../../../chunks/virtualized-grid-list.js";export{VirtualizedGridList};
@@ -1,6 +1 @@
1
- import { defineMessages as e } from "react-intl";
2
- var t = e({ loadMoreSentinelAriaLabel: {
3
- id: "groupSharedFeatures.metadataTemplateBrowser.virtualizedGridList.loadMoreSentinelAriaLabel",
4
- defaultMessage: "Load more items"
5
- } });
6
- export { t as messages };
1
+ import{defineMessages}from"react-intl";var messages=defineMessages({loadMoreSentinelAriaLabel:{id:`groupSharedFeatures.metadataTemplateBrowser.virtualizedGridList.loadMoreSentinelAriaLabel`,defaultMessage:`Load more items`}});export{messages};
@@ -1,2 +1 @@
1
- import { t as e } from "../../../../chunks/virtualized-grid-list.js";
2
- export { e as VirtualizedGridList };
1
+ import{t as VirtualizedGridList}from"../../../../chunks/virtualized-grid-list.js";export{VirtualizedGridList};
@@ -1,2 +1 @@
1
- var e = "LOAD_MORE_ERROR_ROW_ID", t = "LOAD_MORE_LOADING_ROW_ID", n = "LOAD_MORE_SENTINEL_ID", r = 200, i = 500, a = { entries: [] }, o = { entries: [] };
2
- export { e as LOAD_MORE_ERROR_ROW_ID, t as LOAD_MORE_LOADING_ROW_ID, n as LOAD_MORE_SENTINEL_ID, r as PAGE_SIZE, i as SEARCH_DEBOUNCE_MS, a as emptyNamespacesResponse, o as emptyTemplatesResponse };
1
+ var LOAD_MORE_ERROR_ROW_ID=`LOAD_MORE_ERROR_ROW_ID`,LOAD_MORE_LOADING_ROW_ID=`LOAD_MORE_LOADING_ROW_ID`,LOAD_MORE_SENTINEL_ID=`LOAD_MORE_SENTINEL_ID`,PAGE_SIZE=200,SEARCH_DEBOUNCE_MS=500,emptyNamespacesResponse={entries:[]},emptyTemplatesResponse={entries:[]};export{LOAD_MORE_ERROR_ROW_ID,LOAD_MORE_LOADING_ROW_ID,LOAD_MORE_SENTINEL_ID,PAGE_SIZE,SEARCH_DEBOUNCE_MS,emptyNamespacesResponse,emptyTemplatesResponse};
@@ -1,104 +1 @@
1
- import { useTemplateBrowserActions as e } from "./use-template-browser-actions.js";
2
- import { createContext as t, useMemo as n } from "react";
3
- import { jsx as r } from "react/jsx-runtime";
4
- var i = /*#__PURE__*/ t(null);
5
- function a({ children: e, namespaceFQN: t, path: a, canCreateInCurrentNamespace: o }) {
6
- let s = n(() => ({
7
- namespaceFQN: t,
8
- path: a,
9
- canCreateInCurrentNamespace: o
10
- }), [
11
- t,
12
- a,
13
- o
14
- ]);
15
- return /* @__PURE__ */ r(i.Provider, {
16
- value: s,
17
- children: e
18
- });
19
- }
20
- var o = /*#__PURE__*/ t(null);
21
- function s({ children: e, namespaces: t, templates: i, isNamespacesExhausted: a, namespaceNextMarker: s, templateNextMarker: c, isFetching: l, isFetchingMore: u, initialLoadError: d, browseError: f, loadMoreError: p }) {
22
- let m = n(() => ({
23
- namespaces: t,
24
- templates: i,
25
- isNamespacesExhausted: a,
26
- namespaceNextMarker: s,
27
- templateNextMarker: c,
28
- isFetching: l,
29
- isFetchingMore: u,
30
- initialLoadError: d,
31
- browseError: f,
32
- loadMoreError: p
33
- }), [
34
- t,
35
- i,
36
- a,
37
- s,
38
- c,
39
- l,
40
- u,
41
- d,
42
- f,
43
- p
44
- ]);
45
- return /* @__PURE__ */ r(o.Provider, {
46
- value: m,
47
- children: e
48
- });
49
- }
50
- var c = /*#__PURE__*/ t(null);
51
- function l({ children: e, searchValue: t, searchQuery: i, searchResults: a, searchNextMarker: o, isFetchingSearch: s, searchError: l }) {
52
- let u = n(() => ({
53
- searchValue: t,
54
- searchQuery: i,
55
- searchResults: a,
56
- searchNextMarker: o,
57
- isFetchingSearch: s,
58
- searchError: l
59
- }), [
60
- t,
61
- i,
62
- a,
63
- o,
64
- s,
65
- l
66
- ]);
67
- return /* @__PURE__ */ r(c.Provider, {
68
- value: u,
69
- children: e
70
- });
71
- }
72
- var u = /*#__PURE__*/ t(null);
73
- function d({ children: e, selectedTemplateId: t }) {
74
- let i = n(() => ({ selectedTemplateId: t }), [t]);
75
- return /* @__PURE__ */ r(u.Provider, {
76
- value: i,
77
- children: e
78
- });
79
- }
80
- var f = /*#__PURE__*/ t(null), p = /* @__PURE__ */ new Set();
81
- function m({ children: e, isLoading: t = !1, isDisabled: i = !1, appliedTemplateIds: a = p }) {
82
- let o = n(() => ({
83
- isLoading: t,
84
- isDisabled: i,
85
- appliedTemplateIds: a
86
- }), [
87
- t,
88
- i,
89
- a
90
- ]);
91
- return /* @__PURE__ */ r(f.Provider, {
92
- value: o,
93
- children: e
94
- });
95
- }
96
- var h = /*#__PURE__*/ t(null);
97
- function g({ children: t, itemsServiceRef: n, eventServiceRef: i, stateRef: a, dispatch: o, levelCache: s }) {
98
- let c = e(n, i, a, o, s);
99
- return /* @__PURE__ */ r(h.Provider, {
100
- value: c,
101
- children: t
102
- });
103
- }
104
- export { o as BrowseStateContext, s as BrowseStateContextProvider, h as BrowserActionsContext, g as BrowserActionsContextProvider, f as ConsumerStateContext, m as ConsumerStateContextProvider, i as NavigationStateContext, a as NavigationStateContextProvider, c as SearchStateContext, l as SearchStateContextProvider, u as SelectionStateContext, d as SelectionStateContextProvider };
1
+ import{useTemplateBrowserActions}from"./use-template-browser-actions.js";import{createContext,useMemo}from"react";import{jsx}from"react/jsx-runtime";var NavigationStateContext=createContext(null);function NavigationStateContextProvider({children,namespaceFQN,path,canCreateInCurrentNamespace}){let value=useMemo(()=>({namespaceFQN,path,canCreateInCurrentNamespace}),[namespaceFQN,path,canCreateInCurrentNamespace]);return jsx(NavigationStateContext.Provider,{value,children})}var BrowseStateContext=createContext(null);function BrowseStateContextProvider({children,namespaces,templates,isNamespacesExhausted,namespaceNextMarker,templateNextMarker,isFetching,isFetchingMore,initialLoadError,browseError,loadMoreError}){let value=useMemo(()=>({namespaces,templates,isNamespacesExhausted,namespaceNextMarker,templateNextMarker,isFetching,isFetchingMore,initialLoadError,browseError,loadMoreError}),[namespaces,templates,isNamespacesExhausted,namespaceNextMarker,templateNextMarker,isFetching,isFetchingMore,initialLoadError,browseError,loadMoreError]);return jsx(BrowseStateContext.Provider,{value,children})}var SearchStateContext=createContext(null);function SearchStateContextProvider({children,searchValue,searchQuery,searchResults,searchNextMarker,isFetchingSearch,searchError}){let value=useMemo(()=>({searchValue,searchQuery,searchResults,searchNextMarker,isFetchingSearch,searchError}),[searchValue,searchQuery,searchResults,searchNextMarker,isFetchingSearch,searchError]);return jsx(SearchStateContext.Provider,{value,children})}var SelectionStateContext=createContext(null);function SelectionStateContextProvider({children,selectedTemplateId}){let value=useMemo(()=>({selectedTemplateId}),[selectedTemplateId]);return jsx(SelectionStateContext.Provider,{value,children})}var ConsumerStateContext=createContext(null),EMPTY_APPLIED_TEMPLATE_IDS=new Set;function ConsumerStateContextProvider({children,isLoading=!1,isDisabled=!1,appliedTemplateIds=EMPTY_APPLIED_TEMPLATE_IDS}){let value=useMemo(()=>({isLoading,isDisabled,appliedTemplateIds}),[isLoading,isDisabled,appliedTemplateIds]);return jsx(ConsumerStateContext.Provider,{value,children})}var BrowserActionsContext=createContext(null);function BrowserActionsContextProvider({children,itemsServiceRef,eventServiceRef,stateRef,dispatch,levelCache}){let actions=useTemplateBrowserActions(itemsServiceRef,eventServiceRef,stateRef,dispatch,levelCache);return jsx(BrowserActionsContext.Provider,{value:actions,children})}export{BrowseStateContext,BrowseStateContextProvider,BrowserActionsContext,BrowserActionsContextProvider,ConsumerStateContext,ConsumerStateContextProvider,NavigationStateContext,NavigationStateContextProvider,SearchStateContext,SearchStateContextProvider,SelectionStateContext,SelectionStateContextProvider};
@@ -1,33 +1 @@
1
- import { BrowseStateContext as e, BrowserActionsContext as t, ConsumerStateContext as n, NavigationStateContext as r, SearchStateContext as i, SelectionStateContext as a } from "./contexts.js";
2
- import { useContext as o } from "react";
3
- function s() {
4
- let e = o(r);
5
- if (e === null) throw Error("useNavigationState must be used within a MetadataTemplateBrowserProvider");
6
- return e;
7
- }
8
- function c() {
9
- let t = o(e);
10
- if (t === null) throw Error("useBrowseState must be used within a MetadataTemplateBrowserProvider");
11
- return t;
12
- }
13
- function l() {
14
- let e = o(i);
15
- if (e === null) throw Error("useSearchState must be used within a MetadataTemplateBrowserProvider");
16
- return e;
17
- }
18
- function u() {
19
- let e = o(a);
20
- if (e === null) throw Error("useSelectionState must be used within a MetadataTemplateBrowserProvider");
21
- return e;
22
- }
23
- function d() {
24
- let e = o(n);
25
- if (e === null) throw Error("useConsumerState must be used within a ConsumerStateContextProvider");
26
- return e;
27
- }
28
- function f() {
29
- let e = o(t);
30
- if (e === null) throw Error("useBrowserActions must be used within a MetadataTemplateBrowserProvider");
31
- return e;
32
- }
33
- export { c as useBrowseState, f as useBrowserActions, d as useConsumerState, s as useNavigationState, l as useSearchState, u as useSelectionState };
1
+ import{BrowseStateContext,BrowserActionsContext,ConsumerStateContext,NavigationStateContext,SearchStateContext,SelectionStateContext}from"./contexts.js";import{useContext}from"react";function useNavigationState(){let context=useContext(NavigationStateContext);if(context===null)throw Error(`useNavigationState must be used within a MetadataTemplateBrowserProvider`);return context}function useBrowseState(){let context=useContext(BrowseStateContext);if(context===null)throw Error(`useBrowseState must be used within a MetadataTemplateBrowserProvider`);return context}function useSearchState(){let context=useContext(SearchStateContext);if(context===null)throw Error(`useSearchState must be used within a MetadataTemplateBrowserProvider`);return context}function useSelectionState(){let context=useContext(SelectionStateContext);if(context===null)throw Error(`useSelectionState must be used within a MetadataTemplateBrowserProvider`);return context}function useConsumerState(){let context=useContext(ConsumerStateContext);if(context===null)throw Error(`useConsumerState must be used within a ConsumerStateContextProvider`);return context}function useBrowserActions(){let context=useContext(BrowserActionsContext);if(context===null)throw Error(`useBrowserActions must be used within a MetadataTemplateBrowserProvider`);return context}export{useBrowseState,useBrowserActions,useConsumerState,useNavigationState,useSearchState,useSelectionState};
@@ -1,5 +1 @@
1
- import { browserReducer as e, initialState as t } from "./reducer.js";
2
- import { ConsumerStateContext as n, ConsumerStateContextProvider as r } from "./contexts.js";
3
- import { MetadataTemplateBrowserProvider as i } from "./provider.js";
4
- import { useBrowseState as a, useBrowserActions as o, useConsumerState as s, useNavigationState as c, useSearchState as l, useSelectionState as u } from "./hooks.js";
5
- export { n as ConsumerStateContext, r as ConsumerStateContextProvider, i as MetadataTemplateBrowserProvider, e as browserReducer, t as initialState, a as useBrowseState, o as useBrowserActions, s as useConsumerState, c as useNavigationState, l as useSearchState, u as useSelectionState };
1
+ import{browserReducer,initialState}from"./reducer.js";import{ConsumerStateContext,ConsumerStateContextProvider}from"./contexts.js";import{MetadataTemplateBrowserProvider}from"./provider.js";import{useBrowseState,useBrowserActions,useConsumerState,useNavigationState,useSearchState,useSelectionState}from"./hooks.js";export{ConsumerStateContext,ConsumerStateContextProvider,MetadataTemplateBrowserProvider,browserReducer,initialState,useBrowseState,useBrowserActions,useConsumerState,useNavigationState,useSearchState,useSelectionState};
@@ -1,53 +1 @@
1
- import { browserReducer as e, initialState as t } from "./reducer.js";
2
- import { BrowseStateContextProvider as n, BrowserActionsContextProvider as r, NavigationStateContextProvider as i, SearchStateContextProvider as a, SelectionStateContextProvider as o } from "./contexts.js";
3
- import { useReducer as s, useRef as c } from "react";
4
- import { jsx as l } from "react/jsx-runtime";
5
- function u({ children: u, namespaceFQN: d, itemsService: f, eventService: p, initialSelectedTemplateId: m, canCreateAtRoot: h = !1 }) {
6
- let [g, _] = s(e, {
7
- ...t,
8
- namespaceFQN: d,
9
- selectedTemplateId: m ?? null,
10
- canCreateInCurrentNamespace: h
11
- }), v = c(g);
12
- v.current = g;
13
- let y = c(/* @__PURE__ */ new Map()), b = c(f);
14
- b.current = f;
15
- let x = c(p);
16
- return x.current = p, /* @__PURE__ */ l(i, {
17
- namespaceFQN: g.namespaceFQN,
18
- path: g.path,
19
- canCreateInCurrentNamespace: g.canCreateInCurrentNamespace,
20
- children: /* @__PURE__ */ l(n, {
21
- namespaces: g.namespaces,
22
- templates: g.templates,
23
- isNamespacesExhausted: g.isNamespacesExhausted,
24
- namespaceNextMarker: g.namespaceNextMarker,
25
- templateNextMarker: g.templateNextMarker,
26
- isFetching: g.isFetching,
27
- isFetchingMore: g.isFetchingMore,
28
- initialLoadError: g.initialLoadError,
29
- browseError: g.browseError,
30
- loadMoreError: g.loadMoreError,
31
- children: /* @__PURE__ */ l(a, {
32
- searchValue: g.searchValue,
33
- searchQuery: g.searchQuery,
34
- searchResults: g.searchResults,
35
- searchNextMarker: g.searchNextMarker,
36
- isFetchingSearch: g.isFetchingSearch,
37
- searchError: g.searchError,
38
- children: /* @__PURE__ */ l(o, {
39
- selectedTemplateId: g.selectedTemplateId,
40
- children: /* @__PURE__ */ l(r, {
41
- itemsServiceRef: b,
42
- eventServiceRef: x,
43
- stateRef: v,
44
- dispatch: _,
45
- levelCache: y,
46
- children: u
47
- })
48
- })
49
- })
50
- })
51
- });
52
- }
53
- export { u as MetadataTemplateBrowserProvider };
1
+ import{browserReducer,initialState}from"./reducer.js";import{BrowseStateContextProvider,BrowserActionsContextProvider,NavigationStateContextProvider,SearchStateContextProvider,SelectionStateContextProvider}from"./contexts.js";import{useReducer,useRef}from"react";import{jsx}from"react/jsx-runtime";function MetadataTemplateBrowserProvider({children,namespaceFQN,itemsService,eventService,initialSelectedTemplateId,canCreateAtRoot=!1}){let[state,dispatch]=useReducer(browserReducer,{...initialState,namespaceFQN,selectedTemplateId:initialSelectedTemplateId??null,canCreateInCurrentNamespace:canCreateAtRoot}),stateRef=useRef(state);stateRef.current=state;let levelCache=useRef(new Map),itemsServiceRef=useRef(itemsService);itemsServiceRef.current=itemsService;let eventServiceRef=useRef(eventService);return eventServiceRef.current=eventService,jsx(NavigationStateContextProvider,{namespaceFQN:state.namespaceFQN,path:state.path,canCreateInCurrentNamespace:state.canCreateInCurrentNamespace,children:jsx(BrowseStateContextProvider,{namespaces:state.namespaces,templates:state.templates,isNamespacesExhausted:state.isNamespacesExhausted,namespaceNextMarker:state.namespaceNextMarker,templateNextMarker:state.templateNextMarker,isFetching:state.isFetching,isFetchingMore:state.isFetchingMore,initialLoadError:state.initialLoadError,browseError:state.browseError,loadMoreError:state.loadMoreError,children:jsx(SearchStateContextProvider,{searchValue:state.searchValue,searchQuery:state.searchQuery,searchResults:state.searchResults,searchNextMarker:state.searchNextMarker,isFetchingSearch:state.isFetchingSearch,searchError:state.searchError,children:jsx(SelectionStateContextProvider,{selectedTemplateId:state.selectedTemplateId,children:jsx(BrowserActionsContextProvider,{itemsServiceRef,eventServiceRef,stateRef,dispatch,levelCache,children})})})})})}export{MetadataTemplateBrowserProvider};