@box/metadata-view 0.8.7 → 0.9.0

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 (40) hide show
  1. package/dist/esm/lib/components/filter-row/filter-row.js +73 -21
  2. package/dist/esm/lib/components/filter-row/messages.js +18 -0
  3. package/dist/esm/lib/components/filter-row/string-filter-chip.js +67 -0
  4. package/dist/i18n/bn-IN.js +3 -0
  5. package/dist/i18n/da-DK.js +3 -0
  6. package/dist/i18n/de-DE.js +3 -0
  7. package/dist/i18n/en-AU.js +3 -0
  8. package/dist/i18n/en-CA.js +3 -0
  9. package/dist/i18n/en-GB.js +3 -0
  10. package/dist/i18n/en-US.js +3 -0
  11. package/dist/i18n/en-US.properties +6 -0
  12. package/dist/i18n/en-x-pseudo.js +3 -0
  13. package/dist/i18n/es-419.js +3 -0
  14. package/dist/i18n/es-ES.js +3 -0
  15. package/dist/i18n/fi-FI.js +3 -0
  16. package/dist/i18n/fr-CA.js +3 -0
  17. package/dist/i18n/fr-FR.js +3 -0
  18. package/dist/i18n/hi-IN.js +3 -0
  19. package/dist/i18n/it-IT.js +3 -0
  20. package/dist/i18n/ja-JP.js +3 -0
  21. package/dist/i18n/json/src/lib/components/filter-row/messages.json +1 -0
  22. package/dist/i18n/ko-KR.js +3 -0
  23. package/dist/i18n/nb-NO.js +3 -0
  24. package/dist/i18n/nl-NL.js +3 -0
  25. package/dist/i18n/pl-PL.js +3 -0
  26. package/dist/i18n/pt-BR.js +3 -0
  27. package/dist/i18n/ru-RU.js +3 -0
  28. package/dist/i18n/sv-SE.js +3 -0
  29. package/dist/i18n/tr-TR.js +3 -0
  30. package/dist/i18n/zh-CN.js +3 -0
  31. package/dist/i18n/zh-TW.js +3 -0
  32. package/dist/styles/string-filter-chip.css +1 -0
  33. package/dist/types/lib/components/filter-row/filter-row.d.ts +2 -12
  34. package/dist/types/lib/components/filter-row/messages.d.ts +18 -0
  35. package/dist/types/lib/components/filter-row/string-filter-chip.d.ts +2 -0
  36. package/dist/types/lib/components/filter-row/types.d.ts +18 -0
  37. package/dist/types/lib/metadata-view.d.ts +1 -1
  38. package/dist/types/lib/test-utils/mock-data.d.ts +6 -1
  39. package/dist/types/lib/types.d.ts +1 -1
  40. package/package.json +6 -3
@@ -1,26 +1,78 @@
1
- import { FilterChip as a } from "@box/blueprint-web";
2
- import { MetadataBadge as d } from "@box/blueprint-web-assets/icons/Line";
3
- import { jsx as t, jsxs as o } from "react/jsx-runtime";
4
- const c = ({
5
- filterOptions: i,
6
- onFilterChange: r
1
+ import { FilterChip as r } from "@box/blueprint-web";
2
+ import { MetadataBadge as h } from "@box/blueprint-web-assets/icons/Line";
3
+ import { Formik as F, Form as f } from "formik";
4
+ import { useState as p, useRef as S } from "react";
5
+ import { StringFilterChip as g } from "./string-filter-chip.js";
6
+ import { jsx as l, jsxs as b } from "react/jsx-runtime";
7
+ const v = (e, s, c) => {
8
+ switch (e.fieldType) {
9
+ case "float":
10
+ case "string":
11
+ return /* @__PURE__ */ l(g, {
12
+ formRef: c,
13
+ id: e.id,
14
+ name: e.name,
15
+ selected: s
16
+ }, e.id);
17
+ case "date":
18
+ case "enum":
19
+ case "multiSelect":
20
+ return /* @__PURE__ */ b(r.Chip, {
21
+ value: e.id,
22
+ children: [/* @__PURE__ */ l(r.Icon, {
23
+ icon: h
24
+ }), /* @__PURE__ */ l(r.Label, {
25
+ children: e.name
26
+ })]
27
+ }, e.id);
28
+ default:
29
+ return null;
30
+ }
31
+ }, k = ({
32
+ filterOptions: e,
33
+ onFilterSubmit: s
7
34
  }) => {
8
- const l = i.filter((e) => e.selected).map((e) => e.id);
9
- return /* @__PURE__ */ t(a.Group, {
10
- name: "metadata-view-filters",
11
- onValueChange: r,
12
- type: "multiple",
13
- value: l,
14
- children: i.map((e) => /* @__PURE__ */ o(a.Chip, {
15
- value: e.id,
16
- children: [/* @__PURE__ */ t(a.Icon, {
17
- icon: d
18
- }), /* @__PURE__ */ t(a.Label, {
19
- children: e.name
20
- })]
21
- }, e.id))
35
+ const [c, m] = p([]), n = ([t, i]) => {
36
+ var a;
37
+ return ((a = i.value) == null ? void 0 : a.enum) && i.value.enum.length > 0;
38
+ }, u = ({
39
+ metadata: {
40
+ fields: t
41
+ }
42
+ }) => {
43
+ const i = Object.entries(t).filter(n).map(([a]) => a);
44
+ m(i), s(t);
45
+ }, o = {
46
+ metadata: {
47
+ fields: e.reduce((t, i) => {
48
+ let a;
49
+ switch (i.fieldType) {
50
+ case "string":
51
+ case "float":
52
+ a = [""];
53
+ break;
54
+ default:
55
+ a = null;
56
+ }
57
+ return t[i.id] = {
58
+ value: a
59
+ }, t;
60
+ }, {})
61
+ }
62
+ }, d = S(null);
63
+ return /* @__PURE__ */ l(F, {
64
+ initialValues: o,
65
+ onSubmit: u,
66
+ children: /* @__PURE__ */ l(f, {
67
+ ref: d,
68
+ children: /* @__PURE__ */ l(r.Group, {
69
+ name: "metadata-view-filters",
70
+ type: "multiple",
71
+ children: e.map((t) => v(t, c.includes(t.id), d))
72
+ })
73
+ })
22
74
  });
23
75
  };
24
76
  export {
25
- c as default
77
+ k as default
26
78
  };
@@ -0,0 +1,18 @@
1
+ import { defineMessages as e } from "react-intl";
2
+ const a = e({
3
+ applyButton: {
4
+ id: "groupSharedFeatures.metadataView.filterRow.applyButton",
5
+ defaultMessage: "Apply"
6
+ },
7
+ clearButton: {
8
+ id: "groupSharedFeatures.metadataView.filterRow.clearButton",
9
+ defaultMessage: "Clear"
10
+ },
11
+ textInputPlaceholder: {
12
+ id: "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder",
13
+ defaultMessage: "Set Value"
14
+ }
15
+ });
16
+ export {
17
+ a as default
18
+ };
@@ -0,0 +1,67 @@
1
+ import { Popover as o, FilterChip as t, Button as p } from "@box/blueprint-web";
2
+ import { MetadataBadge as u } from "@box/blueprint-web-assets/icons/Line";
3
+ import { MetadataStringField as g } from "@box/metadata-filter";
4
+ import { useState as v } from "react";
5
+ import { useIntl as F } from "react-intl";
6
+ import { useFormikContext as C } from "formik";
7
+ import m from "./messages.js";
8
+ import { jsx as e, jsxs as n } from "react/jsx-runtime";
9
+ import '../../../../styles/string-filter-chip.css';const b = "_popoverFooter_1tgko_1", k = {
10
+ popoverFooter: b
11
+ }, _ = ({
12
+ formRef: c,
13
+ id: r,
14
+ name: i,
15
+ selected: d
16
+ }) => {
17
+ const {
18
+ formatMessage: a
19
+ } = F(), [f, l] = v(!1), s = C(), h = () => {
20
+ s.handleSubmit(), l(!1);
21
+ };
22
+ return /* @__PURE__ */ e("div", {
23
+ children: /* @__PURE__ */ n(o.Root, {
24
+ onOpenChange: l,
25
+ open: f,
26
+ children: [/* @__PURE__ */ e(o.Trigger, {
27
+ children: /* @__PURE__ */ n(t.TriggerChip, {
28
+ selected: d,
29
+ value: r,
30
+ children: [/* @__PURE__ */ e(t.Icon, {
31
+ icon: u
32
+ }), /* @__PURE__ */ e(t.Label, {
33
+ children: i
34
+ }), /* @__PURE__ */ e(t.DropdownIndicator, {})]
35
+ }, r)
36
+ }), /* @__PURE__ */ n(o.ContentContainer, {
37
+ align: "start",
38
+ container: c.current,
39
+ children: [/* @__PURE__ */ e(o.MainContent, {
40
+ children: /* @__PURE__ */ e(g, {
41
+ fieldNamePrefix: `metadata.fields.${r}`,
42
+ label: i
43
+ })
44
+ }), /* @__PURE__ */ n(o.Footer, {
45
+ className: k.popoverFooter,
46
+ children: [/* @__PURE__ */ e(p, {
47
+ onClick: () => {
48
+ s.setFieldValue(`metadata.fields.${r}.value.enum`, []);
49
+ },
50
+ size: "small",
51
+ variant: "secondary",
52
+ children: a(m.clearButton)
53
+ }), /* @__PURE__ */ e(p, {
54
+ onClick: h,
55
+ size: "small",
56
+ type: "submit",
57
+ variant: "primary",
58
+ children: a(m.applyButton)
59
+ })]
60
+ })]
61
+ })]
62
+ })
63
+ });
64
+ };
65
+ export {
66
+ _ as StringFilterChip
67
+ };
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all"
@@ -1,3 +1,9 @@
1
+ # Button label to apply the current input as a filter to the metadata table
2
+ groupSharedFeatures.metadataView.filterRow.applyButton = Apply
3
+ # Button label to clear the current input in a textarea
4
+ groupSharedFeatures.metadataView.filterRow.clearButton = Clear
5
+ # Placeholder text for the input field in the filter row
6
+ groupSharedFeatures.metadataView.filterRow.textInputPlaceholder = Set Value
1
7
  # Label for the action menu for an item in the metadata view list
2
8
  groupSharedFeatures.metadataView.itemActionMenu.actionMenu = Action menu
3
9
  # Label for the list of files and folders displayed in a list view
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -0,0 +1 @@
1
+ [{"id":"groupSharedFeatures.metadataView.filterRow.applyButton","description":"Button label to apply the current input as a filter to the metadata table","defaultMessage":"Apply"},{"id":"groupSharedFeatures.metadataView.filterRow.clearButton","description":"Button label to clear the current input in a textarea","defaultMessage":"Clear"},{"id":"groupSharedFeatures.metadataView.filterRow.textInputPlaceholder","description":"Placeholder text for the input field in the filter row","defaultMessage":"Set Value"}]
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ "groupSharedFeatures.metadataView.filterRow.applyButton": "Apply",
3
+ "groupSharedFeatures.metadataView.filterRow.clearButton": "Clear",
4
+ "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder": "Set Value",
2
5
  "groupSharedFeatures.metadataView.itemActionMenu.actionMenu": "Action menu",
3
6
  "groupSharedFeatures.metadataView.itemList.listView": "List view",
4
7
  "groupSharedFeatures.metadataView.itemList.selectAll": "Select all",
@@ -0,0 +1 @@
1
+ ._popoverFooter_1tgko_1{display:flex;flex-direction:row;gap:var(--space-2);align-items:center;justify-content:flex-end}
@@ -1,13 +1,3 @@
1
- export type FieldType = 'string' | 'float' | 'date' | 'enum' | 'multiselect';
2
- export interface FilterOption {
3
- id: string;
4
- name: string;
5
- fieldType: FieldType;
6
- selected: boolean;
7
- }
8
- export interface FilterRowProps {
9
- filterOptions: FilterOption[];
10
- onFilterChange: (activeFilterIds: string[]) => void;
11
- }
12
- declare const FilterRow: ({ filterOptions, onFilterChange }: FilterRowProps) => import("react/jsx-runtime").JSX.Element;
1
+ import { FilterRowProps } from './types';
2
+ declare const FilterRow: ({ filterOptions, onFilterSubmit }: FilterRowProps) => import("react/jsx-runtime").JSX.Element;
13
3
  export default FilterRow;
@@ -0,0 +1,18 @@
1
+ declare const messages: {
2
+ applyButton: {
3
+ defaultMessage: string;
4
+ description: string;
5
+ id: string;
6
+ };
7
+ clearButton: {
8
+ defaultMessage: string;
9
+ description: string;
10
+ id: string;
11
+ };
12
+ textInputPlaceholder: {
13
+ defaultMessage: string;
14
+ description: string;
15
+ id: string;
16
+ };
17
+ };
18
+ export default messages;
@@ -0,0 +1,2 @@
1
+ import { FilterChipProps } from './types';
2
+ export declare const StringFilterChip: ({ formRef, id, name, selected }: FilterChipProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,18 @@
1
+ import { MetadataTemplateField } from '@box/metadata-filter';
2
+ import { MetadataFieldType } from '../../types';
3
+ export interface FilterOption {
4
+ id: string;
5
+ name: string;
6
+ fieldType: MetadataFieldType;
7
+ selected: boolean;
8
+ }
9
+ export interface FilterRowProps {
10
+ filterOptions: FilterOption[];
11
+ onFilterSubmit: (fields: MetadataTemplateField[]) => void;
12
+ }
13
+ export interface FilterChipProps {
14
+ formRef: React.RefObject<HTMLFormElement>;
15
+ id: string;
16
+ name: string;
17
+ selected: boolean;
18
+ }
@@ -1,5 +1,5 @@
1
- import { FilterRowProps } from './components/filter-row/filter-row';
2
1
  import { MetadataTableProps } from './components/metadata-table/metadata-table';
2
+ import { FilterRowProps } from './components/filter-row/types';
3
3
  export interface MetadataViewProps {
4
4
  filterRowProps: FilterRowProps;
5
5
  metadataTableProps: MetadataTableProps;
@@ -1,8 +1,13 @@
1
1
  import { Item } from '@box/types';
2
- import { FilterOption } from '../components/filter-row/filter-row';
2
+ import { FilterOption } from '../components/filter-row/types';
3
3
  import { Column } from '../types';
4
4
  export declare const mockActiveFilterIds: string[];
5
5
  export declare const mockColumnData: Column[];
6
6
  export declare const mockFilterOptions: FilterOption[];
7
7
  export declare const mockFilterOptionsNoSelection: FilterOption[];
8
+ export declare const mockFilterOptionsWithInvalidType: FilterOption[];
8
9
  export declare const mockMetadata: Item[];
10
+ export declare const mockFilterRowArgs: {
11
+ filterOptions: FilterOption[];
12
+ onFilterSubmit: () => void;
13
+ };
@@ -1,7 +1,7 @@
1
1
  import { ColumnProps } from '@box/blueprint-web';
2
2
  import { default as React } from 'react';
3
3
  import { Item } from '@box/types';
4
- export type MetadataFieldType = 'date' | 'enum' | 'float' | 'multiselect' | 'string';
4
+ export type MetadataFieldType = 'date' | 'enum' | 'float' | 'multiSelect' | 'string';
5
5
  export interface Column extends Partial<ColumnProps> {
6
6
  cellRenderer?: (item: Item, column: Column) => React.ReactNode | undefined;
7
7
  headerRenderer?: (name: string, column: Column) => React.ReactNode | undefined;
package/package.json CHANGED
@@ -1,12 +1,14 @@
1
1
  {
2
2
  "name": "@box/metadata-view",
3
- "version": "0.8.7",
3
+ "version": "0.9.0",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "peerDependencies": {
6
6
  "@box/blueprint-web": "^11.12.0",
7
7
  "@box/blueprint-web-assets": "^4.44.1",
8
8
  "@box/item-icon": "^0.9.168",
9
+ "@box/metadata-filter": "^1.8.4",
9
10
  "@box/types": "0.1.0",
11
+ "formik": "^2.4.5",
10
12
  "lodash": "^4.17.15",
11
13
  "react": "^18.0.0",
12
14
  "react-dom": "^18.0.0",
@@ -15,10 +17,11 @@
15
17
  "devDependencies": {
16
18
  "@box/blueprint-web": "^11.12.0",
17
19
  "@box/blueprint-web-assets": "^4.55.0",
20
+ "@box/eslint-plugin-blueprint": "*",
18
21
  "@box/item-icon": "^0.9.172",
19
- "@box/types": "0.2.0",
22
+ "@box/metadata-filter": "^1.10.0",
20
23
  "@box/storybook-utils": "0.13.8",
21
- "@box/eslint-plugin-blueprint": "*",
24
+ "@box/types": "0.2.0",
22
25
  "react-intl": "^6.4.2"
23
26
  },
24
27
  "files": [