@box/metadata-view 1.53.0 → 1.53.1

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 (47) hide show
  1. package/dist/chunks/types.js +6 -4
  2. package/dist/esm/index.js +40 -37
  3. package/dist/esm/lib/components/header/header.js +79 -0
  4. package/dist/esm/lib/components/header/index.js +4 -0
  5. package/dist/esm/lib/components/header/messages.js +18 -0
  6. package/dist/esm/lib/components/index.js +12 -10
  7. package/dist/esm/lib/hooks/use-header.js +38 -0
  8. package/dist/esm/lib/index.js +40 -37
  9. package/dist/esm/lib/metadata-view.js +107 -85
  10. package/dist/i18n/bn-IN.js +3 -0
  11. package/dist/i18n/da-DK.js +3 -0
  12. package/dist/i18n/de-DE.js +3 -0
  13. package/dist/i18n/en-AU.js +3 -0
  14. package/dist/i18n/en-CA.js +3 -0
  15. package/dist/i18n/en-GB.js +3 -0
  16. package/dist/i18n/en-US.js +3 -0
  17. package/dist/i18n/en-US.properties +6 -0
  18. package/dist/i18n/en-x-pseudo.js +3 -0
  19. package/dist/i18n/es-419.js +3 -0
  20. package/dist/i18n/es-ES.js +3 -0
  21. package/dist/i18n/fi-FI.js +3 -0
  22. package/dist/i18n/fr-CA.js +3 -0
  23. package/dist/i18n/fr-FR.js +3 -0
  24. package/dist/i18n/hi-IN.js +3 -0
  25. package/dist/i18n/it-IT.js +3 -0
  26. package/dist/i18n/ja-JP.js +3 -0
  27. package/dist/i18n/json/src/lib/components/header/messages.json +1 -0
  28. package/dist/i18n/ko-KR.js +3 -0
  29. package/dist/i18n/nb-NO.js +3 -0
  30. package/dist/i18n/nl-NL.js +3 -0
  31. package/dist/i18n/pl-PL.js +3 -0
  32. package/dist/i18n/pt-BR.js +3 -0
  33. package/dist/i18n/ru-RU.js +3 -0
  34. package/dist/i18n/sv-SE.js +3 -0
  35. package/dist/i18n/tr-TR.js +3 -0
  36. package/dist/i18n/zh-CN.js +3 -0
  37. package/dist/i18n/zh-TW.js +3 -0
  38. package/dist/styles/header.css +1 -0
  39. package/dist/types/lib/components/header/header.d.ts +2 -0
  40. package/dist/types/lib/components/header/index.d.ts +1 -0
  41. package/dist/types/lib/components/header/messages.d.ts +18 -0
  42. package/dist/types/lib/components/index.d.ts +1 -0
  43. package/dist/types/lib/hooks/use-header.d.ts +20 -0
  44. package/dist/types/lib/metadata-view.d.ts +2 -18
  45. package/dist/types/lib/test-utils/mock-data.d.ts +2 -2
  46. package/dist/types/lib/types.d.ts +35 -0
  47. package/package.json +1 -1
@@ -1,9 +1,11 @@
1
- let e = /* @__PURE__ */ (function(t) {
1
+ const L = "all";
2
+ let l = /* @__PURE__ */ (function(t) {
2
3
  return t.INLINE = "inline", t.COLUMN = "column", t.INLINE_SUBTITLE = "inline-subtitle", t;
3
- })({}), i = /* @__PURE__ */ (function(t) {
4
+ })({}), e = /* @__PURE__ */ (function(t) {
4
5
  return t.GRID = "grid", t.LIST = "list", t;
5
6
  })({});
6
7
  export {
7
- e as I,
8
- i as V
8
+ l as I,
9
+ L as S,
10
+ e as V
9
11
  };
package/dist/esm/index.js CHANGED
@@ -1,56 +1,59 @@
1
1
  import { MetadataView as o } from "./lib/metadata-view.js";
2
- import { I as a, V as i } from "../chunks/types.js";
3
- import { ActionBar as m } from "./lib/components/action-bar/action-bar.js";
4
- import { FilterRow as x } from "./lib/components/filter-row/filter-row.js";
5
- import { FormFilterChip as n } from "./lib/components/filter-row/form-filter-chip.js";
6
- import { MetadataFilterChip as F } from "./lib/components/filter-row/metadata-filter-chip.js";
7
- import { SelectFilterChip as C } from "./lib/components/filter-row/select-filter-chip.js";
8
- import { PredefinedFilterName as c } from "./lib/components/filter-row/predefinedFilters/index.js";
2
+ import { I as a, S as i, V as p } from "../chunks/types.js";
3
+ import { ActionBar as f } from "./lib/components/action-bar/action-bar.js";
4
+ import { FilterRow as d } from "./lib/components/filter-row/filter-row.js";
5
+ import { FormFilterChip as l } from "./lib/components/filter-row/form-filter-chip.js";
6
+ import { MetadataFilterChip as M } from "./lib/components/filter-row/metadata-filter-chip.js";
7
+ import { SelectFilterChip as s } from "./lib/components/filter-row/select-filter-chip.js";
8
+ import { PredefinedFilterName as S } from "./lib/components/filter-row/predefinedFilters/index.js";
9
9
  import { Filter as P } from "./lib/components/filter-sidepanel/filter.js";
10
10
  import { FilterSidePanel as w } from "./lib/components/filter-sidepanel/filter-side-panel.js";
11
- import { ItemActionMenu as I } from "./lib/components/item-action-menu/item-action-menu.js";
12
- import { MetadataGrid as B } from "./lib/components/metadata-grid/metadata-grid.js";
13
- import { MetadataTable as b } from "./lib/components/metadata-table/metadata-table.js";
14
- import { InlineEditingCell as A } from "./lib/components/metadata-table/table-body/inline-editing-cell/inline-editing-cell.js";
15
- import { TableRenderer as k } from "./lib/components/metadata-table/table-renderer.js";
16
- import { MetadataFileChip as E } from "./lib/components/metadata-value/metadata-file-chip.js";
17
- import { MetadataFileField as L } from "./lib/components/metadata-value/metadata-file-field.js";
11
+ import { ItemActionMenu as L } from "./lib/components/item-action-menu/item-action-menu.js";
12
+ import { MetadataGrid as A } from "./lib/components/metadata-grid/metadata-grid.js";
13
+ import { MetadataTable as E } from "./lib/components/metadata-table/metadata-table.js";
14
+ import { InlineEditingCell as T } from "./lib/components/metadata-table/table-body/inline-editing-cell/inline-editing-cell.js";
15
+ import { TableRenderer as u } from "./lib/components/metadata-table/table-renderer.js";
16
+ import { MetadataFileChip as D } from "./lib/components/metadata-value/metadata-file-chip.js";
17
+ import { MetadataFileField as H } from "./lib/components/metadata-value/metadata-file-field.js";
18
18
  import { MetadataLocationField as O } from "./lib/components/metadata-value/metadata-location-field.js";
19
- import { MetadataRadioField as q } from "./lib/components/metadata-value/metadata-radio-field.js";
20
- import { MetadataSearchField as y } from "./lib/components/metadata-value/metadata-search-field.js";
21
- import { Pagination as H } from "./lib/components/pagination/pagination.js";
19
+ import { MetadataRadioField as j } from "./lib/components/metadata-value/metadata-radio-field.js";
20
+ import { MetadataSearchField as v } from "./lib/components/metadata-value/metadata-search-field.js";
21
+ import { Pagination as z } from "./lib/components/pagination/pagination.js";
22
22
  import { MarkerBasedPagination as K } from "./lib/components/pagination/marker-based-pagination.js";
23
23
  import { OffsetBasedPagination as U } from "./lib/components/pagination/offset-based-pagination.js";
24
24
  import { PaginationControls as X } from "./lib/components/pagination/pagination-controls.js";
25
25
  import { SortDropdown as Z } from "./lib/components/sort-dropdown/sort-dropdown.js";
26
- import { Case as $, SwitchCase as ee } from "./lib/components/switch-case/switch-case.js";
26
+ import { Case as ee, SwitchCase as re } from "./lib/components/switch-case/switch-case.js";
27
+ import { Header as te } from "./lib/components/header/header.js";
27
28
  export {
28
- m as ActionBar,
29
- $ as Case,
29
+ f as ActionBar,
30
+ ee as Case,
30
31
  P as Filter,
31
- x as FilterRow,
32
+ d as FilterRow,
32
33
  w as FilterSidePanel,
33
- n as FormFilterChip,
34
+ l as FormFilterChip,
35
+ te as Header,
34
36
  a as IconColumnVariant,
35
- A as InlineEditingCell,
36
- I as ItemActionMenu,
37
+ T as InlineEditingCell,
38
+ L as ItemActionMenu,
37
39
  K as MarkerBasedPagination,
38
- E as MetadataFileChip,
39
- L as MetadataFileField,
40
- F as MetadataFilterChip,
41
- B as MetadataGrid,
40
+ D as MetadataFileChip,
41
+ H as MetadataFileField,
42
+ M as MetadataFilterChip,
43
+ A as MetadataGrid,
42
44
  O as MetadataLocationField,
43
- q as MetadataRadioField,
44
- y as MetadataSearchField,
45
- b as MetadataTable,
45
+ j as MetadataRadioField,
46
+ v as MetadataSearchField,
47
+ E as MetadataTable,
46
48
  o as MetadataView,
47
49
  U as OffsetBasedPagination,
48
- H as Pagination,
50
+ z as Pagination,
49
51
  X as PaginationControls,
50
- c as PredefinedFilterName,
51
- C as SelectFilterChip,
52
+ S as PredefinedFilterName,
53
+ i as SELECT_ALL,
54
+ s as SelectFilterChip,
52
55
  Z as SortDropdown,
53
- ee as SwitchCase,
54
- k as TableRenderer,
55
- i as ViewMode
56
+ re as SwitchCase,
57
+ u as TableRenderer,
58
+ p as ViewMode
56
59
  };
@@ -0,0 +1,79 @@
1
+ import { Text as m, PageHeader as n, IconButton as _, Status as x } from "@box/blueprint-web";
2
+ import { XMark as y } from "@box/blueprint-web-assets/icons/Fill";
3
+ import { useIntl as H } from "react-intl";
4
+ import { SwitchCase as b, Case as u } from "../switch-case/switch-case.js";
5
+ import o from "./messages.js";
6
+ import { jsx as e, jsxs as a } from "react/jsx-runtime";
7
+ import '../../../../styles/header.css';const L = "_viewHeader_11wvf_1", M = "_titleBar_11wvf_5", C = "_clearSelectionButton_11wvf_11", t = {
8
+ viewHeader: L,
9
+ titleBar: M,
10
+ clearSelectionButton: C
11
+ };
12
+ function z({
13
+ title: r,
14
+ itemCount: i,
15
+ isItemCountVisible: h = !0,
16
+ onClearSelection: S,
17
+ selectionCount: l = 0,
18
+ isSelectionCountVisible: f = !0,
19
+ selectedItemName: s
20
+ }) {
21
+ const {
22
+ formatMessage: c
23
+ } = H(), d = f && l > 0, g = h && i != null;
24
+ if (!r && !d)
25
+ return null;
26
+ const [v, B] = s ? [o.singleItemSelected, {
27
+ name: s
28
+ }] : [o.itemsSelected, {
29
+ count: l
30
+ }], p = c(v, {
31
+ ...B,
32
+ b: (w) => /* @__PURE__ */ e(m, {
33
+ color: "textOnLightDefault",
34
+ variant: "bodyLargeBold",
35
+ as: "span",
36
+ children: w
37
+ })
38
+ });
39
+ return /* @__PURE__ */ e(n.Root, {
40
+ variant: "inline",
41
+ sticky: !1,
42
+ className: t.viewHeader,
43
+ children: /* @__PURE__ */ a(b, {
44
+ children: [/* @__PURE__ */ a(u, {
45
+ condition: d,
46
+ children: [/* @__PURE__ */ e(n.Corner, {
47
+ children: /* @__PURE__ */ e(_, {
48
+ "aria-label": c(o.clearSelectionAriaLabel),
49
+ icon: y,
50
+ onClick: S,
51
+ size: "small",
52
+ variant: "small-utility",
53
+ className: t.clearSelectionButton
54
+ })
55
+ }), /* @__PURE__ */ e(n.StartElements, {
56
+ children: /* @__PURE__ */ e(m, {
57
+ as: "span",
58
+ color: "textOnLightSecondary",
59
+ variant: "bodyLarge",
60
+ children: p
61
+ })
62
+ })]
63
+ }), /* @__PURE__ */ e(u, {
64
+ condition: !!r,
65
+ children: /* @__PURE__ */ a("div", {
66
+ className: t.titleBar,
67
+ children: [r, g && /* @__PURE__ */ e(x, {
68
+ className: t.itemCount,
69
+ colorIndex: 0,
70
+ text: String(i)
71
+ })]
72
+ })
73
+ })]
74
+ })
75
+ });
76
+ }
77
+ export {
78
+ z as Header
79
+ };
@@ -0,0 +1,4 @@
1
+ import { Header as o } from "./header.js";
2
+ export {
3
+ o as Header
4
+ };
@@ -0,0 +1,18 @@
1
+ import { defineMessages as e } from "react-intl";
2
+ const t = e({
3
+ clearSelectionAriaLabel: {
4
+ id: "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel",
5
+ defaultMessage: "Clear selection"
6
+ },
7
+ itemsSelected: {
8
+ id: "groupSharedFeatures.metadataView.header.itemsSelected",
9
+ defaultMessage: "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}"
10
+ },
11
+ singleItemSelected: {
12
+ id: "groupSharedFeatures.metadataView.header.singleItemSelected",
13
+ defaultMessage: "<b>{name}</b> is selected"
14
+ }
15
+ });
16
+ export {
17
+ t as default
18
+ };
@@ -14,14 +14,15 @@ import { TableRenderer as A } from "./metadata-table/table-renderer.js";
14
14
  import { MetadataFileChip as T } from "./metadata-value/metadata-file-chip.js";
15
15
  import { MetadataFileField as u } from "./metadata-value/metadata-file-field.js";
16
16
  import { MetadataLocationField as E } from "./metadata-value/metadata-location-field.js";
17
- import { MetadataRadioField as L } from "./metadata-value/metadata-radio-field.js";
18
- import { MetadataSearchField as O } from "./metadata-value/metadata-search-field.js";
19
- import { Pagination as q } from "./pagination/pagination.js";
20
- import { MarkerBasedPagination as y } from "./pagination/marker-based-pagination.js";
21
- import { OffsetBasedPagination as H } from "./pagination/offset-based-pagination.js";
17
+ import { MetadataRadioField as H } from "./metadata-value/metadata-radio-field.js";
18
+ import { MetadataSearchField as N } from "./metadata-value/metadata-search-field.js";
19
+ import { Pagination as j } from "./pagination/pagination.js";
20
+ import { MarkerBasedPagination as v } from "./pagination/marker-based-pagination.js";
21
+ import { OffsetBasedPagination as z } from "./pagination/offset-based-pagination.js";
22
22
  import { PaginationControls as K } from "./pagination/pagination-controls.js";
23
23
  import { SortDropdown as U } from "./sort-dropdown/sort-dropdown.js";
24
24
  import { Case as W, SwitchCase as X } from "./switch-case/switch-case.js";
25
+ import { Header as Z } from "./header/header.js";
25
26
  export {
26
27
  o as ActionBar,
27
28
  W as Case,
@@ -29,19 +30,20 @@ export {
29
30
  a as FilterRow,
30
31
  c as FilterSidePanel,
31
32
  p as FormFilterChip,
33
+ Z as Header,
32
34
  R as InlineEditingCell,
33
35
  s as ItemActionMenu,
34
- y as MarkerBasedPagination,
36
+ v as MarkerBasedPagination,
35
37
  T as MetadataFileChip,
36
38
  u as MetadataFileField,
37
39
  m as MetadataFilterChip,
38
40
  g as MetadataGrid,
39
41
  E as MetadataLocationField,
40
- L as MetadataRadioField,
41
- O as MetadataSearchField,
42
+ H as MetadataRadioField,
43
+ N as MetadataSearchField,
42
44
  w as MetadataTable,
43
- H as OffsetBasedPagination,
44
- q as Pagination,
45
+ z as OffsetBasedPagination,
46
+ j as Pagination,
45
47
  K as PaginationControls,
46
48
  n as PredefinedFilterName,
47
49
  d as SelectFilterChip,
@@ -0,0 +1,38 @@
1
+ import { useState as r, useEffect as h, useCallback as s, useMemo as x } from "react";
2
+ import { S as a } from "../../../chunks/types.js";
3
+ function w({
4
+ headerProps: f,
5
+ items: i,
6
+ selectedKeys: n,
7
+ isSelectionEnabled: v,
8
+ onSelectionChange: o
9
+ }) {
10
+ const [I, c] = r(0), [l, S] = r(void 0), [d, g] = r(0), e = f?.itemCount ?? i.length;
11
+ h(() => {
12
+ if (n) {
13
+ const t = n === a ? e : [...n].length;
14
+ c(t), t === 1 && S(String([...n][0]));
15
+ }
16
+ }, [n, e]);
17
+ const p = s((t) => {
18
+ if (!n) {
19
+ const m = t === a ? e : t.size;
20
+ c(m), m === 1 && t !== a && S(t.values().next().value);
21
+ }
22
+ o?.(t);
23
+ }, [o, n, e]), C = f?.onClearSelection, E = s(() => {
24
+ C?.(), o?.(/* @__PURE__ */ new Set()), n || (c(0), g((t) => t + 1));
25
+ }, [C, o, n]), u = v ? I : 0, L = x(() => u === 1 && l ? i.find((t) => t.id === l)?.name : null, [u, l, i]);
26
+ return {
27
+ headerSelectionProps: {
28
+ onClearSelection: E,
29
+ selectionCount: u,
30
+ selectedItemName: L
31
+ },
32
+ handleSelectionChange: p,
33
+ selectionResetKey: d
34
+ };
35
+ }
36
+ export {
37
+ w as useHeader
38
+ };
@@ -1,56 +1,59 @@
1
1
  import { MetadataView as o } from "./metadata-view.js";
2
- import { I as a, V as i } from "../../chunks/types.js";
3
- import { ActionBar as m } from "./components/action-bar/action-bar.js";
4
- import { FilterRow as x } from "./components/filter-row/filter-row.js";
5
- import { FormFilterChip as n } from "./components/filter-row/form-filter-chip.js";
6
- import { MetadataFilterChip as F } from "./components/filter-row/metadata-filter-chip.js";
7
- import { SelectFilterChip as C } from "./components/filter-row/select-filter-chip.js";
8
- import { PredefinedFilterName as c } from "./components/filter-row/predefinedFilters/index.js";
2
+ import { I as a, S as i, V as p } from "../../chunks/types.js";
3
+ import { ActionBar as f } from "./components/action-bar/action-bar.js";
4
+ import { FilterRow as d } from "./components/filter-row/filter-row.js";
5
+ import { FormFilterChip as l } from "./components/filter-row/form-filter-chip.js";
6
+ import { MetadataFilterChip as M } from "./components/filter-row/metadata-filter-chip.js";
7
+ import { SelectFilterChip as s } from "./components/filter-row/select-filter-chip.js";
8
+ import { PredefinedFilterName as S } from "./components/filter-row/predefinedFilters/index.js";
9
9
  import { Filter as P } from "./components/filter-sidepanel/filter.js";
10
10
  import { FilterSidePanel as w } from "./components/filter-sidepanel/filter-side-panel.js";
11
- import { ItemActionMenu as I } from "./components/item-action-menu/item-action-menu.js";
12
- import { MetadataGrid as B } from "./components/metadata-grid/metadata-grid.js";
13
- import { MetadataTable as b } from "./components/metadata-table/metadata-table.js";
14
- import { InlineEditingCell as A } from "./components/metadata-table/table-body/inline-editing-cell/inline-editing-cell.js";
15
- import { TableRenderer as k } from "./components/metadata-table/table-renderer.js";
16
- import { MetadataFileChip as E } from "./components/metadata-value/metadata-file-chip.js";
17
- import { MetadataFileField as L } from "./components/metadata-value/metadata-file-field.js";
11
+ import { ItemActionMenu as L } from "./components/item-action-menu/item-action-menu.js";
12
+ import { MetadataGrid as A } from "./components/metadata-grid/metadata-grid.js";
13
+ import { MetadataTable as E } from "./components/metadata-table/metadata-table.js";
14
+ import { InlineEditingCell as T } from "./components/metadata-table/table-body/inline-editing-cell/inline-editing-cell.js";
15
+ import { TableRenderer as u } from "./components/metadata-table/table-renderer.js";
16
+ import { MetadataFileChip as D } from "./components/metadata-value/metadata-file-chip.js";
17
+ import { MetadataFileField as H } from "./components/metadata-value/metadata-file-field.js";
18
18
  import { MetadataLocationField as O } from "./components/metadata-value/metadata-location-field.js";
19
- import { MetadataRadioField as q } from "./components/metadata-value/metadata-radio-field.js";
20
- import { MetadataSearchField as y } from "./components/metadata-value/metadata-search-field.js";
21
- import { Pagination as H } from "./components/pagination/pagination.js";
19
+ import { MetadataRadioField as j } from "./components/metadata-value/metadata-radio-field.js";
20
+ import { MetadataSearchField as v } from "./components/metadata-value/metadata-search-field.js";
21
+ import { Pagination as z } from "./components/pagination/pagination.js";
22
22
  import { MarkerBasedPagination as K } from "./components/pagination/marker-based-pagination.js";
23
23
  import { OffsetBasedPagination as U } from "./components/pagination/offset-based-pagination.js";
24
24
  import { PaginationControls as X } from "./components/pagination/pagination-controls.js";
25
25
  import { SortDropdown as Z } from "./components/sort-dropdown/sort-dropdown.js";
26
- import { Case as $, SwitchCase as ee } from "./components/switch-case/switch-case.js";
26
+ import { Case as ee, SwitchCase as re } from "./components/switch-case/switch-case.js";
27
+ import { Header as te } from "./components/header/header.js";
27
28
  export {
28
- m as ActionBar,
29
- $ as Case,
29
+ f as ActionBar,
30
+ ee as Case,
30
31
  P as Filter,
31
- x as FilterRow,
32
+ d as FilterRow,
32
33
  w as FilterSidePanel,
33
- n as FormFilterChip,
34
+ l as FormFilterChip,
35
+ te as Header,
34
36
  a as IconColumnVariant,
35
- A as InlineEditingCell,
36
- I as ItemActionMenu,
37
+ T as InlineEditingCell,
38
+ L as ItemActionMenu,
37
39
  K as MarkerBasedPagination,
38
- E as MetadataFileChip,
39
- L as MetadataFileField,
40
- F as MetadataFilterChip,
41
- B as MetadataGrid,
40
+ D as MetadataFileChip,
41
+ H as MetadataFileField,
42
+ M as MetadataFilterChip,
43
+ A as MetadataGrid,
42
44
  O as MetadataLocationField,
43
- q as MetadataRadioField,
44
- y as MetadataSearchField,
45
- b as MetadataTable,
45
+ j as MetadataRadioField,
46
+ v as MetadataSearchField,
47
+ E as MetadataTable,
46
48
  o as MetadataView,
47
49
  U as OffsetBasedPagination,
48
- H as Pagination,
50
+ z as Pagination,
49
51
  X as PaginationControls,
50
- c as PredefinedFilterName,
51
- C as SelectFilterChip,
52
+ S as PredefinedFilterName,
53
+ i as SELECT_ALL,
54
+ s as SelectFilterChip,
52
55
  Z as SortDropdown,
53
- ee as SwitchCase,
54
- k as TableRenderer,
55
- i as ViewMode
56
+ re as SwitchCase,
57
+ u as TableRenderer,
58
+ p as ViewMode
56
59
  };
@@ -1,5 +1,5 @@
1
- import { V as e, I as O } from "../../chunks/types.js";
2
- import { ActionBar as Z } from "./components/action-bar/action-bar.js";
1
+ import { V as e, I as F } from "../../chunks/types.js";
2
+ import { ActionBar as U } from "./components/action-bar/action-bar.js";
3
3
  import "./components/filter-row/filter-row.js";
4
4
  import "./components/filter-row/form-filter-chip.js";
5
5
  import "./components/filter-row/metadata-filter-chip.js";
@@ -9,7 +9,7 @@ import "./components/filter-sidepanel/filter.js";
9
9
  import "./components/filter-sidepanel/filter-side-panel.js";
10
10
  import "./components/item-action-menu/item-action-menu.js";
11
11
  import { MetadataGrid as b } from "./components/metadata-grid/metadata-grid.js";
12
- import { MetadataTable as k } from "./components/metadata-table/metadata-table.js";
12
+ import { MetadataTable as q } from "./components/metadata-table/metadata-table.js";
13
13
  import "./components/metadata-table/table-body/inline-editing-cell/inline-editing-cell.js";
14
14
  import "./components/metadata-table/table-renderer.js";
15
15
  import "./components/metadata-value/metadata-file-chip.js";
@@ -17,109 +17,131 @@ import "./components/metadata-value/metadata-file-field.js";
17
17
  import "./components/metadata-value/metadata-location-field.js";
18
18
  import "./components/metadata-value/metadata-radio-field.js";
19
19
  import "./components/metadata-value/metadata-search-field.js";
20
- import { Pagination as z } from "./components/pagination/pagination.js";
20
+ import { Pagination as J } from "./components/pagination/pagination.js";
21
21
  import "./components/pagination/marker-based-pagination.js";
22
22
  import "./components/pagination/offset-based-pagination.js";
23
23
  import "./components/pagination/pagination-controls.js";
24
24
  import "./components/sort-dropdown/sort-dropdown.js";
25
- import { SwitchCase as A, Case as c } from "./components/switch-case/switch-case.js";
26
- import { TooltipProvider as F } from "@box/blueprint-web";
27
- import { useState as p, useRef as U, useCallback as q } from "react";
28
- import { jsx as o, jsxs as v, Fragment as H } from "react/jsx-runtime";
29
- import { ErrorState as J } from "./components/error-state/error-state.js";
30
- import K from "./components/empty-state/empty-state.js";
31
- import '../../styles/metadata-view.css';const Q = "_container_1o9go_5", W = "_contentContainer_1o9go_15", T = {
32
- container: Q,
33
- contentContainer: W
25
+ import { SwitchCase as Q, Case as s } from "./components/switch-case/switch-case.js";
26
+ import { Header as W } from "./components/header/header.js";
27
+ import { TooltipProvider as X } from "@box/blueprint-web";
28
+ import { useState as d, useRef as Y, useCallback as $ } from "react";
29
+ import { useHeader as B } from "./hooks/use-header.js";
30
+ import { jsx as o, jsxs as _, Fragment as K } from "react/jsx-runtime";
31
+ import { ErrorState as P } from "./components/error-state/error-state.js";
32
+ import oo from "./components/empty-state/empty-state.js";
33
+ import '../../styles/metadata-view.css';const to = "_container_1o9go_5", eo = "_contentContainer_1o9go_15", D = {
34
+ container: to,
35
+ contentContainer: eo
34
36
  };
35
- function _o({
36
- actionBarProps: r,
37
- columns: s,
38
- tableProps: i,
39
- hasError: V,
40
- onRefresh: L,
41
- initialViewMode: _ = e.LIST,
42
- paginationProps: l,
43
- isLoading: d,
44
- isSelectAllEnabled: y = !0,
45
- isSelectionEnabled: C,
46
- areSelectionCheckboxesDisabled: h,
47
- ...m
37
+ function Oo({
38
+ actionBarProps: i,
39
+ columns: C,
40
+ tableProps: m,
41
+ hasError: R,
42
+ headerProps: a,
43
+ onRefresh: y,
44
+ onSelectionChange: x,
45
+ selectedKeys: c,
46
+ initialViewMode: G = e.LIST,
47
+ paginationProps: h,
48
+ isLoading: f,
49
+ isSelectAllEnabled: N = !0,
50
+ isSelectionEnabled: p,
51
+ areSelectionCheckboxesDisabled: S,
52
+ ...n
48
53
  }) {
49
- const [n, f] = p(_), [S, u] = p(void 0), [a, D] = p(0), g = U(null), R = () => {
50
- n === e.LIST ? f(e.GRID) : f(e.LIST);
51
- }, x = !d && m.items.length === 0, E = r && r.sortDropdownProps && s.filter((t) => t.type !== "multiSelect" && t.type !== "enum" && t.allowsSorting === !0), {
52
- iconColumnVariant: M
53
- } = i || {}, G = M && M === O.COLUMN, w = i?.onSortChange, N = q(({
54
+ const [r, g] = d(G), [u, M] = d(void 0), [l, j] = d(0), w = Y(null), {
55
+ headerSelectionProps: E,
56
+ handleSelectionChange: I,
57
+ selectionResetKey: v
58
+ } = B({
59
+ headerProps: a,
60
+ items: n.items,
61
+ selectedKeys: c,
62
+ isSelectionEnabled: p,
63
+ onSelectionChange: x
64
+ }), H = () => {
65
+ r === e.LIST ? g(e.GRID) : g(e.LIST);
66
+ }, O = !f && n.items.length === 0, Z = i && i.sortDropdownProps && C.filter((t) => t.type !== "multiSelect" && t.type !== "enum" && t.allowsSorting === !0), {
67
+ iconColumnVariant: T
68
+ } = m || {}, k = T && T === F.COLUMN, V = m?.onSortChange, z = $(({
54
69
  column: t,
55
- direction: I
70
+ direction: L
56
71
  }) => {
57
- u({
72
+ M({
58
73
  column: t,
59
- direction: I
60
- }), w?.({
74
+ direction: L
75
+ }), V?.({
61
76
  column: t,
62
- direction: I
77
+ direction: L
63
78
  });
64
- }, [w]), j = {
65
- ...i,
66
- sortDescriptor: S,
67
- onSortChange: N
79
+ }, [V]), A = {
80
+ ...m,
81
+ sortDescriptor: u,
82
+ onSortChange: z
68
83
  };
69
- return /* @__PURE__ */ o(F, {
84
+ return /* @__PURE__ */ o(X, {
70
85
  children: /* @__PURE__ */ o("div", {
71
- ref: g,
72
- className: T.container,
73
- children: V ? /* @__PURE__ */ o(J, {
74
- onRefresh: L
75
- }) : /* @__PURE__ */ v(H, {
76
- children: [/* @__PURE__ */ o(Z, {
77
- ...r,
78
- containerRef: g,
79
- isIconColumnEnabled: G,
80
- onSortDescriptorChange: u,
81
- onViewModeClick: R,
82
- onZoomLevelChange: D,
83
- sortableColumns: E,
84
- sortDescriptor: S,
85
- viewMode: n,
86
- zoomLevel: a
86
+ ref: w,
87
+ className: D.container,
88
+ children: R ? /* @__PURE__ */ o(P, {
89
+ onRefresh: y
90
+ }) : /* @__PURE__ */ _(K, {
91
+ children: [a && /* @__PURE__ */ o(W, {
92
+ ...a,
93
+ ...E
94
+ }), /* @__PURE__ */ o(U, {
95
+ ...i,
96
+ containerRef: w,
97
+ isIconColumnEnabled: k,
98
+ onSortDescriptorChange: M,
99
+ onViewModeClick: H,
100
+ onZoomLevelChange: j,
101
+ sortableColumns: Z,
102
+ sortDescriptor: u,
103
+ viewMode: r,
104
+ zoomLevel: l
87
105
  }), /* @__PURE__ */ o("div", {
88
- className: T.contentContainer,
89
- children: /* @__PURE__ */ v(A, {
90
- children: [/* @__PURE__ */ o(c, {
91
- condition: x,
92
- children: /* @__PURE__ */ o(K, {})
93
- }), /* @__PURE__ */ o(c, {
94
- condition: n === e.LIST,
95
- children: /* @__PURE__ */ o(k, {
96
- areSelectionCheckboxesDisabled: h,
97
- columns: s,
98
- isLoading: d,
99
- isSelectAllEnabled: y,
100
- selectionMode: C ? "multiple" : "none",
101
- zoomLevel: a,
102
- ...m,
103
- ...j
104
- })
105
- }), /* @__PURE__ */ o(c, {
106
- condition: n === e.GRID,
106
+ className: D.contentContainer,
107
+ children: /* @__PURE__ */ _(Q, {
108
+ children: [/* @__PURE__ */ o(s, {
109
+ condition: O,
110
+ children: /* @__PURE__ */ o(oo, {})
111
+ }), /* @__PURE__ */ o(s, {
112
+ condition: r === e.LIST,
113
+ children: /* @__PURE__ */ o(q, {
114
+ areSelectionCheckboxesDisabled: S,
115
+ columns: C,
116
+ isLoading: f,
117
+ isSelectAllEnabled: N,
118
+ onSelectionChange: I,
119
+ selectedKeys: c,
120
+ selectionMode: p ? "multiple" : "none",
121
+ zoomLevel: l,
122
+ ...n,
123
+ ...A
124
+ }, v)
125
+ }), /* @__PURE__ */ o(s, {
126
+ condition: r === e.GRID,
107
127
  children: /* @__PURE__ */ o(b, {
108
- areSelectionCheckboxesDisabled: h,
109
- selectionMode: C ? "multiple" : "none",
110
- zoomLevel: a,
111
- ...m
112
- })
128
+ areSelectionCheckboxesDisabled: S,
129
+ onSelectionChange: I,
130
+ selectedKeys: c,
131
+ selectionMode: p ? "multiple" : "none",
132
+ zoomLevel: l,
133
+ ...n
134
+ }, v)
113
135
  })]
114
136
  })
115
- }), l && /* @__PURE__ */ o(z, {
116
- ...l
137
+ }), h && /* @__PURE__ */ o(J, {
138
+ ...h
117
139
  })]
118
140
  })
119
141
  })
120
142
  });
121
143
  }
122
144
  export {
123
- _o as MetadataView,
124
- _o as default
145
+ Oo as MetadataView,
146
+ Oo as default
125
147
  };
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "ফিল্টারগুলি",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "অনুসন্ধান করুন",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "গ্রিড ভিউ",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "অ্যাকশন মেনু",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "কোনো সমস্যা হয়েছে। অনুগ্রহ করে এই পৃষ্ঠাটি রিফ্রেশ করুন।",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "Filtre",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "Søg",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "Gittervisning",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Handlingsmenu",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "Noget gik galt. Opdater denne side.",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "Filter",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "Suchen",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "Rasteransicht",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Aktionen-Auswahl",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "Es ist ein Fehler aufgetreten. Bitte aktualisieren Sie diese Seite.",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "Filters",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "Search",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "Grid View",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "Something went wrong. Please refresh this page.",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "Filters",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "Search",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "Grid View",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "Something went wrong. Please refresh this page.",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "Filters",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "Search",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "Grid View",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "Something went wrong. Please refresh this page.",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "Filters",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "Search",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "Grid View",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "Something went wrong. Please refresh this page.",
@@ -40,6 +40,12 @@ groupSharedFeatures.metadataView.filterSidepanel.filtersHeader = Filters
40
40
  groupSharedFeatures.metadataView.filterSidepanel.showResultsButton = Search
41
41
  # Label for the grid view of files and folders
42
42
  groupSharedFeatures.metadataView.gridList.gridView = Grid View
43
+ # Aria label for the clear selection button
44
+ groupSharedFeatures.metadataView.header.clearSelectionAriaLabel = Clear selection
45
+ # Selection count text in the header when multiple items are selected or item name is unavailable
46
+ groupSharedFeatures.metadataView.header.itemsSelected = {count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}
47
+ # Selection text in the header when a single item is selected, showing the item name
48
+ groupSharedFeatures.metadataView.header.singleItemSelected = <b>{name}</b> is selected
43
49
  # Label for the default unselected option in inline editing dropdowns
44
50
  groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel = --
45
51
  # Label for the action menu for an item in the metadata view list
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "⟦萬萬 ₣ιļťëřś 國國⟧",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "⟦萬 Ŝèǻŗ¢ĥ 國⟧",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "⟦萬萬 Ğгĭď Víέш 國國⟧",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "⟦ -- ⟧",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "⟦萬萬萬 Āсťïõη mέηü 國國國⟧",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ŝοměťнįηĝ ώêйτ ώѓолğ. Pľёáŝě ѓêƒґєşĥ ťнίş Ράğε. 國國國國國國國國國國國國國國⟧",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "Filtros",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "Buscar",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "Vista de cuadrícula",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Menú de acción",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "Se ha producido un error. Actualice esta página.",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "Filtros",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "Buscar",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "Vista de cuadrícula",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Menú de acción",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "Se ha producido un error. Actualice esta página.",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "Suodattimet",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "Hae",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "Ruudukkonäkymä",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Toimintovalikko",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "Jokin meni vikaan. Päivitä tämä sivu.",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "Filtres",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "Rechercher",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "Affichage Grille",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Menu des actions",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "Une erreur s'est produite. Veuillez actualiser cette page.",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "Filtres",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "Rechercher",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "Affichage Grille",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Menu des actions",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "Une erreur s'est produite. Veuillez actualiser cette page.",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "फ़िल्टर्स",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "खोजें",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "ग्रिड दृश्य",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "कार्र्यवाही मेनू",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "कुछ गड़बड़ हो गयी। कृपया इस पेज को रिफ्रेश करें।",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "Filtri",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "Cerca",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "Vista griglia",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Menu azioni",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "Si è verificato un errore. Per favore, aggiorna questa pagina.",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "フィルタ",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "検索",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "グリッドビュー",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "アクションメニュー",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "問題が発生しました。このページを更新してください。",
@@ -0,0 +1 @@
1
+ [{"id":"groupSharedFeatures.metadataView.header.clearSelectionAriaLabel","description":"Aria label for the clear selection button","defaultMessage":"Clear selection"},{"id":"groupSharedFeatures.metadataView.header.itemsSelected","description":"Selection count text in the header when multiple items are selected or item name is unavailable","defaultMessage":"{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}"},{"id":"groupSharedFeatures.metadataView.header.singleItemSelected","description":"Selection text in the header when a single item is selected, showing the item name","defaultMessage":"<b>{name}</b> is selected"}]
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "필터",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "검색",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "격자 보기",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "작업 메뉴",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "문제가 발생했습니다. 이 페이지를 새로 고침해 주세요.",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "Filtre",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "Søk",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "Rutenettvisning",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Handlingsvalg",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "Noe gikk galt. Oppdater denne siden.",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "Filters",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "Zoeken",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "Rasterweergave",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Actiemenu",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "Er is iets misgegaan. Gelieve deze pagina te vernieuwen.",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "Filtry",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "Wyszukaj",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "Widok siatki",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Menu operacji",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "Wystąpił błąd. Odśwież tę stronę.",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "Filtros",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "Pesquisar",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "Visualização em grade",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Menu de ação",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "Algo saiu errado. Recarregue esta página.",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "Фильтры",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "Поиск",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "Сетка",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Меню действий",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "Что-то пошло не так. Обновите эту страницу.",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "Filter",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "Sök",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "Rutnätsvy",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Åtgärdsmeny",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "Något gick fel. Uppdatera den här sidan.",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "Filtreler",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "Ara",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "Kılavuz Görünümü",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "İşlem menüsü",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "Bir hata oluştu. Lütfen bu sayfayı yenileyin.",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "筛选",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "搜索",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "网格视图",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "操作菜单",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "发生错误。请刷新此页面。",
@@ -20,6 +20,9 @@ export default {
20
20
  "groupSharedFeatures.metadataView.filterSidepanel.filtersHeader": "篩選",
21
21
  "groupSharedFeatures.metadataView.filterSidepanel.showResultsButton": "搜尋",
22
22
  "groupSharedFeatures.metadataView.gridList.gridView": "方格檢視",
23
+ "groupSharedFeatures.metadataView.header.clearSelectionAriaLabel": "Clear selection",
24
+ "groupSharedFeatures.metadataView.header.itemsSelected": "{count, plural, one {<b># item</b> is selected} other {<b># items</b> are selected}}",
25
+ "groupSharedFeatures.metadataView.header.singleItemSelected": "<b>{name}</b> is selected",
23
26
  "groupSharedFeatures.metadataView.inlineEditingCell.unselectedOptionLabel": "--",
24
27
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "動作選單",
25
28
  "groupSharedFeatures.metadataView.itemList.errorMessage": "出了點問題。請重新整理此頁面。",
@@ -0,0 +1 @@
1
+ ._viewHeader_11wvf_1{padding-bottom:var(--space-2)}._titleBar_11wvf_5{display:flex;align-items:center;gap:var(--space-2)}._clearSelectionButton_11wvf_11{border-radius:var(--bp-radius-16);margin-right:var(--space-3)}
@@ -0,0 +1,2 @@
1
+ import { HeaderProps } from '../../types';
2
+ export declare function Header({ title, itemCount, isItemCountVisible, onClearSelection, selectionCount, isSelectionCountVisible, selectedItemName, }: HeaderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export { Header } from './header';
@@ -0,0 +1,18 @@
1
+ declare const messages: {
2
+ clearSelectionAriaLabel: {
3
+ id: string;
4
+ defaultMessage: string;
5
+ description: string;
6
+ };
7
+ itemsSelected: {
8
+ id: string;
9
+ defaultMessage: string;
10
+ description: string;
11
+ };
12
+ singleItemSelected: {
13
+ id: string;
14
+ defaultMessage: string;
15
+ description: string;
16
+ };
17
+ };
18
+ export default messages;
@@ -8,3 +8,4 @@ export * from './metadata-value';
8
8
  export * from './pagination';
9
9
  export * from './sort-dropdown';
10
10
  export * from './switch-case';
11
+ export * from './header';
@@ -0,0 +1,20 @@
1
+ import { Selection } from 'react-aria-components';
2
+ import { Item } from '@box/types';
3
+ import { SELECT_ALL, HeaderProps } from '../types';
4
+ interface UseHeaderParams {
5
+ headerProps?: HeaderProps;
6
+ items: Item[];
7
+ selectedKeys?: typeof SELECT_ALL | Iterable<string | number>;
8
+ isSelectionEnabled?: boolean;
9
+ onSelectionChange?: (keys: Selection) => void;
10
+ }
11
+ export declare function useHeader({ headerProps, items, selectedKeys, isSelectionEnabled, onSelectionChange, }: UseHeaderParams): {
12
+ headerSelectionProps: {
13
+ onClearSelection: () => void;
14
+ selectionCount: number;
15
+ selectedItemName: string;
16
+ };
17
+ handleSelectionChange: (keys: Selection) => void;
18
+ selectionResetKey: number;
19
+ };
20
+ export {};
@@ -1,19 +1,3 @@
1
- import { Selection } from 'react-aria-components';
2
- import { ActionBarProps, MetadataTableProps, PaginationProps } from './components';
3
- import { ViewMode, Column, MetadataProps } from './types';
4
- export interface MetadataViewProps extends MetadataProps {
5
- actionBarProps?: Omit<ActionBarProps, 'onViewModeClick' | 'onZoomLevelChange' | 'viewMode'>;
6
- columns: Column[];
7
- hasError?: boolean;
8
- initialViewMode?: ViewMode;
9
- onRefresh?: () => void;
10
- onSelectionChange?: (keys: Selection) => void;
11
- selectedKeys?: 'all' | Iterable<string | number>;
12
- isSelectAllEnabled?: boolean;
13
- isSelectionEnabled?: boolean;
14
- areSelectionCheckboxesDisabled?: boolean;
15
- tableProps?: Omit<MetadataTableProps, 'columns' | 'isSelectAllEnabled' | 'items' | 'itemActionMenuProps' | 'onSelectionChange' | 'selectedKeys'>;
16
- paginationProps?: PaginationProps;
17
- }
18
- export declare function MetadataView({ actionBarProps, columns, tableProps, hasError, onRefresh, initialViewMode, paginationProps, isLoading, isSelectAllEnabled, isSelectionEnabled, areSelectionCheckboxesDisabled, ...rest }: MetadataViewProps): import("react/jsx-runtime").JSX.Element;
1
+ import { MetadataViewProps } from './types';
2
+ export declare function MetadataView({ actionBarProps, columns, tableProps, hasError, headerProps, onRefresh, onSelectionChange, selectedKeys, initialViewMode, paginationProps, isLoading, isSelectAllEnabled, isSelectionEnabled, areSelectionCheckboxesDisabled, ...rest }: MetadataViewProps): import("react/jsx-runtime").JSX.Element;
19
3
  export default MetadataView;
@@ -7,8 +7,7 @@ import { ItemActionMenuProps } from '../components/item-action-menu/item-action-
7
7
  import { MetadataTableProps } from '../components/metadata-table';
8
8
  import { PaginationProps } from '../components/pagination/pagination';
9
9
  import { SortDropdownProps } from '../components/sort-dropdown/sort-dropdown';
10
- import { MetadataViewProps } from '../metadata-view';
11
- import { Column } from '../types';
10
+ import { MetadataViewProps, Column, HeaderProps } from '../types';
12
11
  export declare const getMockFilterGroups: (filters: FilterOption[]) => Array<FilterGroup>;
13
12
  export declare const mockActiveFilterIds: string[];
14
13
  export declare const mockColumnData: Column[];
@@ -98,6 +97,7 @@ export declare const mockActionBarProps: ActionBarProps;
98
97
  export declare const mockTableProps: MetadataTableProps;
99
98
  export declare const mockItemActionMenuProps: ItemActionMenuProps;
100
99
  export declare const mockMetadataViewProps: MetadataViewProps;
100
+ export declare const mockHeaderProps: HeaderProps;
101
101
  export type SortArgs = {
102
102
  column: string;
103
103
  direction: SortDirection;
@@ -1,6 +1,9 @@
1
1
  import { ColumnProps } from '@box/blueprint-web';
2
2
  import { Item } from '@box/types';
3
+ import { Selection } from 'react-aria-components';
4
+ import { ActionBarProps, MetadataTableProps, PaginationProps } from './components';
3
5
  import { ItemActionMenuProps } from './components/item-action-menu';
6
+ export declare const SELECT_ALL: "all";
4
7
  export type MetadataFieldType = 'date' | 'enum' | 'float' | 'multiSelect' | 'string';
5
8
  export type FilterVariant = 'default' | 'search' | 'file' | 'radio' | 'relative' | 'checkbox';
6
9
  export interface Column extends Partial<ColumnProps> {
@@ -19,6 +22,23 @@ export declare enum IconColumnVariant {
19
22
  COLUMN = "column",
20
23
  INLINE_SUBTITLE = "inline-subtitle"
21
24
  }
25
+ /** Props for the optional header (title row + selection bar). */
26
+ export interface HeaderProps {
27
+ /** Custom title content rendered when no items are selected. */
28
+ title?: React.ReactNode;
29
+ /** Total item count displayed as a badge next to the title, and used as the selection count when all items are selected. */
30
+ itemCount: number;
31
+ /** Whether to show the item count badge next to the title. Defaults to true. */
32
+ isItemCountVisible?: boolean;
33
+ /** Whether to show selection bar when rows are selected. Only applicable when isSelectionEnabled is true. Defaults to true. */
34
+ isSelectionCountVisible?: boolean;
35
+ /** Called when selection is cleared (e.g. clear control in the header), in addition to internal state being reset. */
36
+ onClearSelection?: () => void;
37
+ /** The number of items selected. */
38
+ selectionCount?: number;
39
+ /** Name of the selected item, shown instead of the count when exactly one item is selected. */
40
+ selectedItemName?: string;
41
+ }
22
42
  export interface MetadataProps {
23
43
  isLoading?: boolean;
24
44
  items: Item[];
@@ -28,3 +48,18 @@ export declare enum ViewMode {
28
48
  GRID = "grid",
29
49
  LIST = "list"
30
50
  }
51
+ export interface MetadataViewProps extends MetadataProps {
52
+ actionBarProps?: Omit<ActionBarProps, 'onViewModeClick' | 'onZoomLevelChange' | 'viewMode'>;
53
+ columns: Column[];
54
+ hasError?: boolean;
55
+ initialViewMode?: ViewMode;
56
+ onRefresh?: () => void;
57
+ onSelectionChange?: (keys: Selection) => void;
58
+ selectedKeys?: typeof SELECT_ALL | Iterable<string | number>;
59
+ isSelectAllEnabled?: boolean;
60
+ isSelectionEnabled?: boolean;
61
+ areSelectionCheckboxesDisabled?: boolean;
62
+ tableProps?: Omit<MetadataTableProps, 'columns' | 'isSelectAllEnabled' | 'items' | 'itemActionMenuProps' | 'onSelectionChange' | 'selectedKeys'>;
63
+ paginationProps?: PaginationProps;
64
+ headerProps?: HeaderProps;
65
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@box/metadata-view",
3
- "version": "1.53.0",
3
+ "version": "1.53.1",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "peerDependencies": {
6
6
  "@box/blueprint-web": "^13.11.0",