@box/metadata-filter 1.74.0 → 1.75.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.
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-multi-select-field/metadata-multi-select-field-advanced.js +67 -63
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-multi-select-field/metadata-multi-select-field.js +41 -38
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-taxonomy-field/metadata-taxonomy-field-advanced.js +70 -70
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-taxonomy-field/metadata-taxonomy-field.js +32 -32
- package/dist/esm/lib/components/metadata-filter-fields/metadata-filter-fields.js +32 -30
- package/dist/esm/lib/metadata-filter.js +29 -27
- package/dist/types/lib/components/metadata-filter-fields/components/metadata-multi-select-field/metadata-multi-select-field-advanced.d.ts +1 -1
- package/dist/types/lib/components/metadata-filter-fields/components/metadata-multi-select-field/metadata-multi-select-field.d.ts +1 -1
- package/dist/types/lib/components/metadata-filter-fields/metadata-filter-fields.d.ts +1 -1
- package/dist/types/lib/components/metadata-filter-fields/types.d.ts +2 -0
- package/dist/types/lib/metadata-filter.d.ts +1 -1
- package/dist/types/lib/types.d.ts +1 -0
- package/package.json +7 -7
|
@@ -1,82 +1,86 @@
|
|
|
1
|
-
import { TooltipProvider as
|
|
2
|
-
import { useFormikContext as
|
|
3
|
-
import { useState as p, useCallback as
|
|
4
|
-
import { useIntl as
|
|
5
|
-
import
|
|
6
|
-
import { F as
|
|
7
|
-
import { fieldDefaultProps as
|
|
8
|
-
import { getInitialAdvancedFilterValue as
|
|
9
|
-
import { jsx as a, jsxs as
|
|
10
|
-
import { A as
|
|
11
|
-
const
|
|
12
|
-
label:
|
|
13
|
-
fieldNamePrefix:
|
|
1
|
+
import { TooltipProvider as U, Combobox as Y } from "@box/blueprint-web";
|
|
2
|
+
import { useFormikContext as q, getIn as G, Field as J } from "formik";
|
|
3
|
+
import { useMemo as Q, useState as p, useRef as w, useCallback as s } from "react";
|
|
4
|
+
import { useIntl as W } from "react-intl";
|
|
5
|
+
import X from "../../../../messages.js";
|
|
6
|
+
import { F as f } from "../../../../../../chunks/types.js";
|
|
7
|
+
import { fieldDefaultProps as Z } from "../constants.js";
|
|
8
|
+
import { getInitialAdvancedFilterValue as E, createFieldValue as y, getInputValue as ee } from "./utils.js";
|
|
9
|
+
import { jsx as a, jsxs as te, Fragment as oe } from "react/jsx-runtime";
|
|
10
|
+
import { A as ne } from "../../../../../../chunks/index.js";
|
|
11
|
+
const T = (o) => o === f.IS_BLANK || o === f.IS_NOT_BLANK, he = ({
|
|
12
|
+
label: o,
|
|
13
|
+
fieldNamePrefix: c,
|
|
14
14
|
disableForm: h,
|
|
15
15
|
isAdvancedFilterEnabled: r,
|
|
16
|
-
onAdvancedFilterOptionChange:
|
|
16
|
+
onAdvancedFilterOptionChange: i,
|
|
17
17
|
fieldAdvancedFilterOptions: g,
|
|
18
|
-
filterOptionsMap:
|
|
19
|
-
portalElement:
|
|
20
|
-
hasAccordion:
|
|
21
|
-
isModified:
|
|
18
|
+
filterOptionsMap: d,
|
|
19
|
+
portalElement: C,
|
|
20
|
+
hasAccordion: k,
|
|
21
|
+
isModified: v,
|
|
22
|
+
hasExperimentalVirtualization: M
|
|
22
23
|
}) => {
|
|
23
24
|
const {
|
|
24
|
-
setFieldValue:
|
|
25
|
-
values:
|
|
26
|
-
} =
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
}, [
|
|
32
|
-
|
|
33
|
-
}, []),
|
|
34
|
-
|
|
35
|
-
|
|
25
|
+
setFieldValue: V,
|
|
26
|
+
values: O
|
|
27
|
+
} = q(), S = W(), n = `${c}.value.enum`, _ = Q(() => G(O, `${c}.options`, []).map((e) => e?.key).filter((e) => typeof e == "string"), [O, c]), [u, A] = p(E(g, d) || f.MATCH_ANY), [B, I] = p(!1), [K, F] = p(!1), R = (e, t) => typeof t != "string" ? !1 : t.toLowerCase().includes(e.toLowerCase()), x = w([]), m = w(null), L = s((e, t, l) => {
|
|
28
|
+
const b = e;
|
|
29
|
+
A(b), i?.(n, b);
|
|
30
|
+
const H = T(e) ? [] : t, P = y(H, e, r);
|
|
31
|
+
l.setFieldValue(n, P);
|
|
32
|
+
}, [n, r, i]), $ = s((e) => {
|
|
33
|
+
m.current && L(e, x.current, m.current);
|
|
34
|
+
}, [L]), j = s((e) => {
|
|
35
|
+
const t = y(e, u, r);
|
|
36
|
+
V(n, t);
|
|
37
|
+
}, [u, n, r, V]), N = s((e) => {
|
|
38
|
+
I(e), e && F(!1);
|
|
39
|
+
}, []), z = s((e) => {
|
|
40
|
+
F(e), e && I(!1);
|
|
41
|
+
}, []), D = s((e) => !e || e.length === 0 ? S.formatMessage(X.multiselectPlaceholder) : "", [S]);
|
|
36
42
|
return /* @__PURE__ */ a("div", {
|
|
37
|
-
"data-testid": `${
|
|
38
|
-
children: /* @__PURE__ */ a(
|
|
39
|
-
name:
|
|
43
|
+
"data-testid": `${o}-field`,
|
|
44
|
+
children: /* @__PURE__ */ a(J, {
|
|
45
|
+
name: n,
|
|
40
46
|
children: ({
|
|
41
47
|
field: e,
|
|
42
|
-
form:
|
|
48
|
+
form: t
|
|
43
49
|
}) => {
|
|
44
|
-
const
|
|
45
|
-
return /* @__PURE__ */
|
|
46
|
-
children: [/* @__PURE__ */ a(
|
|
50
|
+
const l = ee(e.value, r);
|
|
51
|
+
return x.current = l, m.current = t, /* @__PURE__ */ te(oe, {
|
|
52
|
+
children: [/* @__PURE__ */ a(ne, {
|
|
47
53
|
disableForm: h,
|
|
48
54
|
fieldAdvancedFilterOptions: g,
|
|
49
|
-
fieldNamePrefix:
|
|
50
|
-
filterOptionsMap:
|
|
51
|
-
isModified:
|
|
52
|
-
label:
|
|
53
|
-
onAdvancedFilterOptionChange:
|
|
54
|
-
onOpenChange:
|
|
55
|
-
onValueChange:
|
|
56
|
-
open:
|
|
57
|
-
portalElement:
|
|
58
|
-
showLabel: !
|
|
55
|
+
fieldNamePrefix: c,
|
|
56
|
+
filterOptionsMap: d,
|
|
57
|
+
isModified: v,
|
|
58
|
+
label: o,
|
|
59
|
+
onAdvancedFilterOptionChange: i,
|
|
60
|
+
onOpenChange: z,
|
|
61
|
+
onValueChange: $,
|
|
62
|
+
open: K,
|
|
63
|
+
portalElement: C,
|
|
64
|
+
showLabel: !k,
|
|
59
65
|
value: u
|
|
60
|
-
}), !
|
|
61
|
-
children: /* @__PURE__ */ a(
|
|
62
|
-
...
|
|
66
|
+
}), !T(u) && /* @__PURE__ */ a(U, {
|
|
67
|
+
children: /* @__PURE__ */ a(Y, {
|
|
68
|
+
...Z,
|
|
63
69
|
as: "input",
|
|
64
70
|
disabled: h,
|
|
65
|
-
|
|
71
|
+
experimentalVirtualization: M,
|
|
72
|
+
filterFn: R,
|
|
66
73
|
hideLabel: !0,
|
|
67
|
-
label:
|
|
74
|
+
label: o,
|
|
68
75
|
multiselect: !0,
|
|
69
76
|
name: e.name,
|
|
70
|
-
onOpenChange:
|
|
71
|
-
onValueChange:
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
placeholder: !n || n.length === 0 ? w.formatMessage(Y.multiselectPlaceholder) : "",
|
|
78
|
-
portalElement: V,
|
|
79
|
-
value: n
|
|
77
|
+
onOpenChange: N,
|
|
78
|
+
onValueChange: j,
|
|
79
|
+
open: B,
|
|
80
|
+
options: _,
|
|
81
|
+
placeholder: D(l),
|
|
82
|
+
portalElement: C,
|
|
83
|
+
value: l
|
|
80
84
|
})
|
|
81
85
|
})]
|
|
82
86
|
});
|
|
@@ -85,5 +89,5 @@ const S = (t) => t === d.IS_BLANK || t === d.IS_NOT_BLANK, ae = ({
|
|
|
85
89
|
});
|
|
86
90
|
};
|
|
87
91
|
export {
|
|
88
|
-
|
|
92
|
+
he as MetadataMultiSelectFieldAdvanced
|
|
89
93
|
};
|
|
@@ -1,47 +1,50 @@
|
|
|
1
|
-
import { TooltipProvider as
|
|
2
|
-
import { useFormikContext as
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
import { TooltipProvider as b, Combobox as f } from "@box/blueprint-web";
|
|
2
|
+
import { useFormikContext as F, getIn as M, Field as V } from "formik";
|
|
3
|
+
import { useMemo as $, useCallback as l } from "react";
|
|
4
|
+
import { useIntl as x } from "react-intl";
|
|
5
|
+
import L from "../../../../messages.js";
|
|
6
|
+
import { fieldDefaultProps as k } from "../constants.js";
|
|
7
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
8
|
+
const T = ({
|
|
9
|
+
disableForm: m,
|
|
10
|
+
fieldNamePrefix: t,
|
|
11
|
+
label: r,
|
|
12
|
+
portalElement: u,
|
|
13
|
+
hasAccordion: d,
|
|
14
|
+
hasExperimentalVirtualization: c
|
|
13
15
|
}) => {
|
|
14
16
|
const {
|
|
15
|
-
setFieldValue:
|
|
16
|
-
values:
|
|
17
|
-
} =
|
|
17
|
+
setFieldValue: n,
|
|
18
|
+
values: s
|
|
19
|
+
} = F(), i = x(), a = `${t}.value.enum`, p = $(() => M(s, `${t}.options`, []).map(({
|
|
18
20
|
key: e
|
|
19
|
-
}) => e),
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
}) => e), [s, t]), h = l((e, v) => v.toLowerCase().includes(e.toLowerCase()), []), g = l((e) => n(a, e), [n, a]), C = l((e) => (
|
|
22
|
+
// Empty array must be substituted if there is no value found
|
|
23
|
+
// Otherwise no placeholder appears despite no selection
|
|
24
|
+
(e || [])?.length === 0 ? i.formatMessage(L.multiselectPlaceholder) : ""
|
|
25
|
+
), [i]);
|
|
26
|
+
return /* @__PURE__ */ o("div", {
|
|
27
|
+
"data-testid": `${r}-field`,
|
|
28
|
+
children: /* @__PURE__ */ o(V, {
|
|
29
|
+
name: a,
|
|
24
30
|
children: ({
|
|
25
31
|
field: e
|
|
26
|
-
}) => /* @__PURE__ */
|
|
27
|
-
children: /* @__PURE__ */
|
|
28
|
-
|
|
32
|
+
}) => /* @__PURE__ */ o(b, {
|
|
33
|
+
children: /* @__PURE__ */ o(f, {
|
|
34
|
+
...k,
|
|
29
35
|
as: "input",
|
|
30
|
-
"data-target-id": `Combobox-${
|
|
31
|
-
disabled:
|
|
32
|
-
filterFn:
|
|
33
|
-
hideLabel:
|
|
34
|
-
label:
|
|
36
|
+
"data-target-id": `Combobox-${t}`,
|
|
37
|
+
disabled: m,
|
|
38
|
+
filterFn: h,
|
|
39
|
+
hideLabel: d,
|
|
40
|
+
label: r,
|
|
35
41
|
multiselect: !0,
|
|
42
|
+
experimentalVirtualization: c,
|
|
36
43
|
name: e.name,
|
|
37
|
-
onValueChange:
|
|
38
|
-
options:
|
|
39
|
-
placeholder: (
|
|
40
|
-
|
|
41
|
-
// Otherwise an no placeholder appears despite no selection
|
|
42
|
-
(e.value || [])?.length === 0 ? d.formatMessage(b.multiselectPlaceholder) : ""
|
|
43
|
-
),
|
|
44
|
-
portalElement: s,
|
|
44
|
+
onValueChange: g,
|
|
45
|
+
options: p,
|
|
46
|
+
placeholder: C(e.value),
|
|
47
|
+
portalElement: u,
|
|
45
48
|
value: e.value
|
|
46
49
|
})
|
|
47
50
|
})
|
|
@@ -49,6 +52,6 @@ const j = ({
|
|
|
49
52
|
});
|
|
50
53
|
};
|
|
51
54
|
export {
|
|
52
|
-
|
|
53
|
-
|
|
55
|
+
T as MetadataMultiSelectField,
|
|
56
|
+
T as default
|
|
54
57
|
};
|
|
@@ -1,105 +1,105 @@
|
|
|
1
1
|
import { ComboboxWithApiTreeView as J, ComboboxWithApiPagination as N } from "@box/combobox-with-api";
|
|
2
|
-
import
|
|
2
|
+
import j from "clsx";
|
|
3
3
|
import { useFormikContext as Q, getIn as X, Field as Y } from "formik";
|
|
4
|
-
import { useState as
|
|
4
|
+
import { useState as F, useCallback as c } from "react";
|
|
5
5
|
import { useIntl as Z } from "react-intl";
|
|
6
6
|
import E from "../../../../messages.js";
|
|
7
|
-
import { getInitialAdvancedFilterValue as ee,
|
|
8
|
-
import { jsx as
|
|
9
|
-
import { A as
|
|
10
|
-
import '../../../../../../styles/metadata-taxonomy-field-advanced.css';const ae = "_comboboxWrapper_1e1d8_1", ne = "_disabled_1e1d8_1",
|
|
7
|
+
import { getInitialAdvancedFilterValue as ee, isBlankOption as M, createFieldValue as P, getInputValue as oe } from "./utils.js";
|
|
8
|
+
import { jsx as s, jsxs as te, Fragment as se } from "react/jsx-runtime";
|
|
9
|
+
import { A as le } from "../../../../../../chunks/index.js";
|
|
10
|
+
import '../../../../../../styles/metadata-taxonomy-field-advanced.css';const ae = "_comboboxWrapper_1e1d8_1", ne = "_disabled_1e1d8_1", ce = "_disabledTreeView_1e1d8_5", V = {
|
|
11
11
|
comboboxWrapper: ae,
|
|
12
12
|
disabled: ne,
|
|
13
|
-
disabledTreeView:
|
|
14
|
-
},
|
|
13
|
+
disabledTreeView: ce
|
|
14
|
+
}, ge = ({
|
|
15
15
|
className: g,
|
|
16
16
|
disableForm: l,
|
|
17
|
-
fieldNamePrefix:
|
|
18
|
-
label:
|
|
19
|
-
portalElement:
|
|
20
|
-
taxonomyOptionsFetcher:
|
|
21
|
-
isMultilevelTaxonomyFieldEnabled:
|
|
22
|
-
hasAccordion:
|
|
23
|
-
isAdvancedFilterEnabled:
|
|
24
|
-
onAdvancedFilterOptionChange:
|
|
17
|
+
fieldNamePrefix: d,
|
|
18
|
+
label: u,
|
|
19
|
+
portalElement: m,
|
|
20
|
+
taxonomyOptionsFetcher: p,
|
|
21
|
+
isMultilevelTaxonomyFieldEnabled: $,
|
|
22
|
+
hasAccordion: A,
|
|
23
|
+
isAdvancedFilterEnabled: a,
|
|
24
|
+
onAdvancedFilterOptionChange: h,
|
|
25
25
|
fieldAdvancedFilterOptions: f,
|
|
26
|
-
filterOptionsMap:
|
|
27
|
-
isModified:
|
|
26
|
+
filterOptionsMap: C,
|
|
27
|
+
isModified: B
|
|
28
28
|
}) => {
|
|
29
29
|
const {
|
|
30
|
-
setFieldValue:
|
|
30
|
+
setFieldValue: v,
|
|
31
31
|
values: x
|
|
32
32
|
} = Q(), {
|
|
33
33
|
metadata: {
|
|
34
34
|
templateKey: _,
|
|
35
35
|
scope: w
|
|
36
36
|
}
|
|
37
|
-
} = x,
|
|
38
|
-
key:
|
|
37
|
+
} = x, T = Z(), t = `${d}.value`, K = X(x, d), {
|
|
38
|
+
key: W,
|
|
39
39
|
optionsRules: R,
|
|
40
40
|
levels: U
|
|
41
|
-
} = K,
|
|
41
|
+
} = K, k = !0, i = R?.selectableLevels, q = $ && i?.some((e) => e > 1), [r, z] = F(ee(f, C)), [D, I] = F(!1), S = c((e) => p ? p(w, _, W, i?.[0] ?? 0, e) : Promise.resolve({
|
|
42
42
|
options: []
|
|
43
|
-
}), [
|
|
44
|
-
z(e),
|
|
45
|
-
const
|
|
46
|
-
o.setFieldValue(
|
|
47
|
-
},
|
|
48
|
-
e &&
|
|
49
|
-
}, []),
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
}, [
|
|
53
|
-
return /* @__PURE__ */
|
|
54
|
-
"data-testid": `${
|
|
55
|
-
children: /* @__PURE__ */
|
|
56
|
-
name:
|
|
43
|
+
}), [W, w, i, p, _]), L = c((e) => e?.length === 0 ? T.formatMessage(E.multiselectPlaceholder) : "", [T]), G = c((e, n, o) => {
|
|
44
|
+
z(e), h?.(t, e);
|
|
45
|
+
const b = M(e) ? [] : n, H = P(b, e, a);
|
|
46
|
+
o.setFieldValue(t, H);
|
|
47
|
+
}, [t, a, h]), O = c((e) => {
|
|
48
|
+
e && I(!1);
|
|
49
|
+
}, []), y = c((e) => {
|
|
50
|
+
const n = P(e, r, a);
|
|
51
|
+
v(t, n);
|
|
52
|
+
}, [r, t, a, v]);
|
|
53
|
+
return /* @__PURE__ */ s("div", {
|
|
54
|
+
"data-testid": `${u}-field`,
|
|
55
|
+
children: /* @__PURE__ */ s(Y, {
|
|
56
|
+
name: t,
|
|
57
57
|
children: ({
|
|
58
58
|
field: e,
|
|
59
|
-
form:
|
|
59
|
+
form: n
|
|
60
60
|
}) => {
|
|
61
|
-
const o = oe(e.value,
|
|
62
|
-
return /* @__PURE__ */ te(
|
|
63
|
-
children: [/* @__PURE__ */
|
|
61
|
+
const o = oe(e.value, a);
|
|
62
|
+
return /* @__PURE__ */ te(se, {
|
|
63
|
+
children: [/* @__PURE__ */ s(le, {
|
|
64
64
|
disableForm: l ?? !1,
|
|
65
65
|
fieldAdvancedFilterOptions: f,
|
|
66
|
-
fieldNamePrefix:
|
|
67
|
-
filterOptionsMap:
|
|
68
|
-
isModified:
|
|
69
|
-
label:
|
|
70
|
-
onAdvancedFilterOptionChange:
|
|
71
|
-
onOpenChange:
|
|
72
|
-
onValueChange: (
|
|
66
|
+
fieldNamePrefix: d,
|
|
67
|
+
filterOptionsMap: C,
|
|
68
|
+
isModified: B,
|
|
69
|
+
label: u,
|
|
70
|
+
onAdvancedFilterOptionChange: h,
|
|
71
|
+
onOpenChange: I,
|
|
72
|
+
onValueChange: (b) => G(b, o, n),
|
|
73
73
|
open: D,
|
|
74
|
-
portalElement:
|
|
75
|
-
showLabel: !
|
|
76
|
-
value:
|
|
77
|
-
}), !
|
|
78
|
-
className:
|
|
79
|
-
children: q ? /* @__PURE__ */
|
|
80
|
-
className:
|
|
81
|
-
defaultFetcher:
|
|
74
|
+
portalElement: m,
|
|
75
|
+
showLabel: !A,
|
|
76
|
+
value: r
|
|
77
|
+
}), !M(r) && /* @__PURE__ */ s("div", {
|
|
78
|
+
className: j(V.comboboxWrapper, l && V.disabled),
|
|
79
|
+
children: q ? /* @__PURE__ */ s(J, {
|
|
80
|
+
className: j(g, l && V.disabledTreeView),
|
|
81
|
+
defaultFetcher: S,
|
|
82
82
|
disabled: l,
|
|
83
83
|
hideLabel: !0,
|
|
84
|
-
label:
|
|
84
|
+
label: u,
|
|
85
85
|
levels: U,
|
|
86
|
-
multiselect:
|
|
87
|
-
onOpenChange:
|
|
88
|
-
onValueChange:
|
|
89
|
-
placeholder:
|
|
90
|
-
portalElement:
|
|
86
|
+
multiselect: k,
|
|
87
|
+
onOpenChange: O,
|
|
88
|
+
onValueChange: y,
|
|
89
|
+
placeholder: L(o),
|
|
90
|
+
portalElement: m,
|
|
91
91
|
selectableLevels: i,
|
|
92
92
|
value: o
|
|
93
|
-
}) : /* @__PURE__ */
|
|
93
|
+
}) : /* @__PURE__ */ s(N, {
|
|
94
94
|
className: g,
|
|
95
|
-
defaultFetcher:
|
|
95
|
+
defaultFetcher: S,
|
|
96
96
|
disabled: l,
|
|
97
97
|
label: void 0,
|
|
98
|
-
multiselect:
|
|
99
|
-
onOpenChange:
|
|
100
|
-
onValueChange:
|
|
101
|
-
placeholder:
|
|
102
|
-
portalElement:
|
|
98
|
+
multiselect: k,
|
|
99
|
+
onOpenChange: O,
|
|
100
|
+
onValueChange: y,
|
|
101
|
+
placeholder: L(o),
|
|
102
|
+
portalElement: m,
|
|
103
103
|
value: o
|
|
104
104
|
})
|
|
105
105
|
})]
|
|
@@ -109,6 +109,6 @@ import '../../../../../../styles/metadata-taxonomy-field-advanced.css';const ae
|
|
|
109
109
|
});
|
|
110
110
|
};
|
|
111
111
|
export {
|
|
112
|
-
|
|
113
|
-
|
|
112
|
+
ge as MetadataTaxonomyFieldAdvanced,
|
|
113
|
+
ge as default
|
|
114
114
|
};
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
import { ComboboxWithApiTreeView as
|
|
2
|
-
import { useFormikContext as
|
|
3
|
-
import { useCallback as
|
|
1
|
+
import { ComboboxWithApiTreeView as T, ComboboxWithApiPagination as I } from "@box/combobox-with-api";
|
|
2
|
+
import { useFormikContext as L, getIn as P, Field as W } from "formik";
|
|
3
|
+
import { useCallback as n } from "react";
|
|
4
4
|
import { useIntl as $ } from "react-intl";
|
|
5
5
|
import j from "../../../../messages.js";
|
|
6
|
-
import { jsx as
|
|
6
|
+
import { jsx as l } from "react/jsx-runtime";
|
|
7
7
|
const z = ({
|
|
8
|
-
className:
|
|
8
|
+
className: i,
|
|
9
9
|
disableForm: r,
|
|
10
10
|
fieldNamePrefix: u,
|
|
11
|
-
label:
|
|
11
|
+
label: a,
|
|
12
12
|
portalElement: m,
|
|
13
13
|
taxonomyOptionsFetcher: d,
|
|
14
|
-
isMultilevelTaxonomyFieldEnabled:
|
|
14
|
+
isMultilevelTaxonomyFieldEnabled: k,
|
|
15
15
|
hasAccordion: c
|
|
16
16
|
}) => {
|
|
17
17
|
const {
|
|
18
18
|
setFieldValue: v,
|
|
19
|
-
values:
|
|
20
|
-
} =
|
|
19
|
+
values: h
|
|
20
|
+
} = L(), {
|
|
21
21
|
metadata: {
|
|
22
|
-
templateKey:
|
|
22
|
+
templateKey: p,
|
|
23
23
|
scope: g
|
|
24
24
|
}
|
|
25
|
-
} =
|
|
26
|
-
key:
|
|
25
|
+
} = h, b = $(), s = `${u}.value`, y = P(h, u), {
|
|
26
|
+
key: f,
|
|
27
27
|
optionsRules: {
|
|
28
|
-
multiSelect:
|
|
29
|
-
selectableLevels:
|
|
28
|
+
multiSelect: t,
|
|
29
|
+
selectableLevels: o
|
|
30
30
|
},
|
|
31
31
|
levels: F
|
|
32
|
-
} = y,
|
|
33
|
-
return /* @__PURE__ */
|
|
34
|
-
"data-testid": `${
|
|
35
|
-
children: /* @__PURE__ */
|
|
36
|
-
name:
|
|
32
|
+
} = y, M = k && o?.some((e) => e > 1), C = n((e) => d(g, p, f, o?.[0], e), [f, g, o, d, p]), x = n((e) => t || !e?.length ? b.formatMessage(j.taxonomyPlaceholder) : void 0, [t, b]), V = n((e) => v(s, e), [v, s]);
|
|
33
|
+
return /* @__PURE__ */ l("div", {
|
|
34
|
+
"data-testid": `${a}-field`,
|
|
35
|
+
children: /* @__PURE__ */ l(W, {
|
|
36
|
+
name: s,
|
|
37
37
|
children: ({
|
|
38
38
|
field: e
|
|
39
|
-
}) =>
|
|
40
|
-
className:
|
|
41
|
-
defaultFetcher:
|
|
39
|
+
}) => M ? /* @__PURE__ */ l(T, {
|
|
40
|
+
className: i,
|
|
41
|
+
defaultFetcher: C,
|
|
42
42
|
disabled: r,
|
|
43
43
|
hideLabel: c,
|
|
44
|
-
label:
|
|
44
|
+
label: a,
|
|
45
45
|
levels: F,
|
|
46
|
-
multiselect:
|
|
47
|
-
onValueChange:
|
|
46
|
+
multiselect: t,
|
|
47
|
+
onValueChange: V,
|
|
48
48
|
placeholder: x(e.value),
|
|
49
49
|
portalElement: m,
|
|
50
|
-
selectableLevels:
|
|
50
|
+
selectableLevels: o,
|
|
51
51
|
value: e.value
|
|
52
|
-
}) : /* @__PURE__ */
|
|
53
|
-
className:
|
|
54
|
-
defaultFetcher:
|
|
52
|
+
}) : /* @__PURE__ */ l(I, {
|
|
53
|
+
className: i,
|
|
54
|
+
defaultFetcher: C,
|
|
55
55
|
disabled: r,
|
|
56
|
-
label: c ? void 0 :
|
|
57
|
-
multiselect:
|
|
58
|
-
onValueChange:
|
|
56
|
+
label: c ? void 0 : a,
|
|
57
|
+
multiselect: t,
|
|
58
|
+
onValueChange: V,
|
|
59
59
|
placeholder: x(e.value),
|
|
60
60
|
portalElement: m,
|
|
61
61
|
value: e.value
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Text as m } from "@box/blueprint-web";
|
|
2
|
-
import { useFormikContext as
|
|
3
|
-
import { useEffect as
|
|
4
|
-
import { useIntl as
|
|
5
|
-
import
|
|
6
|
-
import { processMetadataField as
|
|
7
|
-
import { isAnyFieldModified as
|
|
8
|
-
import { s as
|
|
9
|
-
import { jsx as i, jsxs as
|
|
10
|
-
const
|
|
2
|
+
import { useFormikContext as L, getIn as l, FieldArray as S } from "formik";
|
|
3
|
+
import { useEffect as V } from "react";
|
|
4
|
+
import { useIntl as $, FormattedMessage as w } from "react-intl";
|
|
5
|
+
import C from "../../messages.js";
|
|
6
|
+
import { processMetadataField as P } from "./field-processing-utils.js";
|
|
7
|
+
import { isAnyFieldModified as q, isFieldModifiedFromValue as z } from "./is-modified-utils.js";
|
|
8
|
+
import { s as B } from "../../../../chunks/index.js";
|
|
9
|
+
import { jsx as i, jsxs as G } from "react/jsx-runtime";
|
|
10
|
+
const Z = ({
|
|
11
11
|
disableForm: d,
|
|
12
12
|
locale: p,
|
|
13
13
|
portalElement: c,
|
|
@@ -20,46 +20,48 @@ const Y = ({
|
|
|
20
20
|
isMultilevelTaxonomyFieldEnabled: y,
|
|
21
21
|
filterOptionsMap: O,
|
|
22
22
|
onDirtyChange: a,
|
|
23
|
-
isAdvancedTaxonomy: h
|
|
23
|
+
isAdvancedTaxonomy: h,
|
|
24
|
+
hasExperimentalVirtualization: g
|
|
24
25
|
}) => {
|
|
25
26
|
const {
|
|
26
27
|
values: o
|
|
27
|
-
} =
|
|
28
|
-
return
|
|
28
|
+
} = L(), v = $(), r = "metadata.fields", s = l(o, r);
|
|
29
|
+
return V(() => {
|
|
29
30
|
if (a) {
|
|
30
|
-
const t =
|
|
31
|
+
const t = q(s, o, e);
|
|
31
32
|
a(t);
|
|
32
33
|
}
|
|
33
|
-
}, [o, e, a, s]), s.length ? /* @__PURE__ */ i(
|
|
34
|
+
}, [o, e, a, s]), s.length ? /* @__PURE__ */ i(S, {
|
|
34
35
|
name: r,
|
|
35
36
|
validateOnChange: !1,
|
|
36
37
|
children: () => s.map((t, n) => {
|
|
37
38
|
const {
|
|
38
|
-
MetadataFilterField:
|
|
39
|
-
showField:
|
|
40
|
-
getFilterOptionsForField:
|
|
41
|
-
} =
|
|
39
|
+
MetadataFilterField: N,
|
|
40
|
+
showField: T,
|
|
41
|
+
getFilterOptionsForField: k
|
|
42
|
+
} = P({
|
|
42
43
|
field: t,
|
|
43
44
|
isAdvancedFilterEnabled: e,
|
|
44
45
|
isAdvancedTaxonomy: h,
|
|
45
|
-
intl:
|
|
46
|
+
intl: v,
|
|
46
47
|
filterOptionsMap: O
|
|
47
|
-
}),
|
|
48
|
-
return
|
|
49
|
-
children: [/* @__PURE__ */ i(
|
|
48
|
+
}), j = l(o, `metadata.fields[${n}].value`), A = t.advancedFilterOptionToExecute, I = z(t.type, j, e, A);
|
|
49
|
+
return T && /* @__PURE__ */ G("div", {
|
|
50
|
+
children: [/* @__PURE__ */ i(N, {
|
|
50
51
|
canUseRelativeDates: u,
|
|
51
52
|
disableForm: d,
|
|
52
53
|
fieldAdvancedFilterOptions: M?.[t.key],
|
|
53
54
|
fieldNamePrefix: `metadata.fields[${n}]`,
|
|
54
|
-
filterOptionsMap:
|
|
55
|
+
filterOptionsMap: k(),
|
|
55
56
|
isAdvancedFilterEnabled: e,
|
|
56
|
-
isModified:
|
|
57
|
+
isModified: I && F,
|
|
57
58
|
isMultilevelTaxonomyFieldEnabled: y,
|
|
58
59
|
label: t.displayName,
|
|
59
60
|
locale: p,
|
|
60
61
|
onAdvancedFilterOptionChange: x,
|
|
61
62
|
portalElement: c,
|
|
62
|
-
taxonomyOptionsFetcher: f
|
|
63
|
+
taxonomyOptionsFetcher: f,
|
|
64
|
+
hasExperimentalVirtualization: g
|
|
63
65
|
}), !!t.description && /* @__PURE__ */ i(m, {
|
|
64
66
|
as: "span",
|
|
65
67
|
color: "textOnLightSecondary",
|
|
@@ -70,14 +72,14 @@ const Y = ({
|
|
|
70
72
|
})
|
|
71
73
|
}) : /* @__PURE__ */ i(m, {
|
|
72
74
|
as: "span",
|
|
73
|
-
className:
|
|
75
|
+
className: B.noAttributesText,
|
|
74
76
|
color: "textOnLightSecondary",
|
|
75
|
-
children: /* @__PURE__ */ i(
|
|
76
|
-
...
|
|
77
|
+
children: /* @__PURE__ */ i(w, {
|
|
78
|
+
...C.noTemplateAtributesError
|
|
77
79
|
})
|
|
78
80
|
});
|
|
79
81
|
};
|
|
80
82
|
export {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
+
Z as MetadataFilterFields,
|
|
84
|
+
Z as default
|
|
83
85
|
};
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import "@box/combobox-with-api";
|
|
2
2
|
import "./components/metadata-filter-fields/components/metadata-date-field/date-conversion-utils.js";
|
|
3
|
-
import { defaultInitialValues as
|
|
4
|
-
import { LoadingIndicator as
|
|
5
|
-
import { useFormikContext as
|
|
6
|
-
import { useEffect as
|
|
7
|
-
import { useIntl as
|
|
8
|
-
import { MetadataFilterFields as
|
|
9
|
-
import { MetadataFilterFieldsAccordion as
|
|
10
|
-
import { MetadataTemplateSelector as
|
|
11
|
-
import { mapDataFromTemplate as
|
|
12
|
-
import
|
|
13
|
-
import { jsxs as
|
|
3
|
+
import { defaultInitialValues as N } from "./defaults.js";
|
|
4
|
+
import { LoadingIndicator as V } from "@box/blueprint-web";
|
|
5
|
+
import { useFormikContext as b } from "formik";
|
|
6
|
+
import { useEffect as k } from "react";
|
|
7
|
+
import { useIntl as D } from "react-intl";
|
|
8
|
+
import { MetadataFilterFields as L } from "./components/metadata-filter-fields/metadata-filter-fields.js";
|
|
9
|
+
import { MetadataFilterFieldsAccordion as S } from "./components/metadata-filter-fields/metadata-filter-fields-accordion.js";
|
|
10
|
+
import { MetadataTemplateSelector as q } from "./components/metadata-template-selector/metadata-template-selector.js";
|
|
11
|
+
import { mapDataFromTemplate as w } from "./mappers.js";
|
|
12
|
+
import z from "./messages.js";
|
|
13
|
+
import { jsxs as A, jsx as r } from "react/jsx-runtime";
|
|
14
14
|
import "../../chunks/types.js";
|
|
15
15
|
import "./components/metadata-filter-fields/components/metadata-date-field/metadata-date-field.js";
|
|
16
16
|
import "./components/metadata-filter-fields/components/metadata-enum-field/metadata-enum-field.js";
|
|
17
17
|
import "./components/metadata-filter-fields/components/metadata-float-field/metadata-float-field.js";
|
|
18
18
|
import "./components/metadata-filter-fields/components/metadata-multi-select-field/metadata-multi-select-field.js";
|
|
19
19
|
import "./components/metadata-filter-fields/components/metadata-string-field/metadata-string-field.js";
|
|
20
|
-
import '../../styles/metadata-filter.css';const
|
|
21
|
-
container:
|
|
22
|
-
loadingIndicator:
|
|
23
|
-
},
|
|
20
|
+
import '../../styles/metadata-filter.css';const B = "_container_p63iy_1", G = "_loadingIndicator_p63iy_7", e = {
|
|
21
|
+
container: B,
|
|
22
|
+
loadingIndicator: G
|
|
23
|
+
}, at = ({
|
|
24
24
|
isAdvancedFilterEnabled: m,
|
|
25
25
|
isModifiedMarkerEnabled: s,
|
|
26
26
|
metadataTemplateOptions: l,
|
|
@@ -39,18 +39,19 @@ import '../../styles/metadata-filter.css';const A = "_container_p63iy_1", B = "_
|
|
|
39
39
|
fieldAdvancedFilterOptions: x,
|
|
40
40
|
hasAccordion: n = !1,
|
|
41
41
|
onDirtyChange: C,
|
|
42
|
-
isAdvancedTaxonomy: y = !1
|
|
42
|
+
isAdvancedTaxonomy: y = !1,
|
|
43
|
+
hasExperimentalVirtualization: j = !1
|
|
43
44
|
}) => {
|
|
44
45
|
const {
|
|
45
46
|
setFieldValue: o
|
|
46
|
-
} =
|
|
47
|
-
|
|
48
|
-
t ? o("metadata",
|
|
47
|
+
} = b(), v = D();
|
|
48
|
+
k(() => {
|
|
49
|
+
t ? o("metadata", w(t)) : o("metadata", N);
|
|
49
50
|
}, [t, o]);
|
|
50
|
-
const
|
|
51
|
-
"aria-label":
|
|
51
|
+
const M = () => d ? /* @__PURE__ */ r(V, {
|
|
52
|
+
"aria-label": v.formatMessage(z.loading),
|
|
52
53
|
className: e.loadingIndicator
|
|
53
|
-
}) : t ? /* @__PURE__ */ r(n ?
|
|
54
|
+
}) : t ? /* @__PURE__ */ r(n ? S : L, {
|
|
54
55
|
canUseRelativeDates: g,
|
|
55
56
|
disableForm: c,
|
|
56
57
|
fieldAdvancedFilterOptions: x,
|
|
@@ -64,17 +65,18 @@ import '../../styles/metadata-filter.css';const A = "_container_p63iy_1", B = "_
|
|
|
64
65
|
onAdvancedFilterOptionChange: _,
|
|
65
66
|
onDirtyChange: C,
|
|
66
67
|
portalElement: i,
|
|
67
|
-
taxonomyOptionsFetcher: f
|
|
68
|
+
taxonomyOptionsFetcher: f,
|
|
69
|
+
hasExperimentalVirtualization: j
|
|
68
70
|
}) : null;
|
|
69
|
-
return /* @__PURE__ */
|
|
71
|
+
return /* @__PURE__ */ A("div", {
|
|
70
72
|
className: e.container,
|
|
71
|
-
children: [p && /* @__PURE__ */ r(
|
|
73
|
+
children: [p && /* @__PURE__ */ r(q, {
|
|
72
74
|
hasError: a,
|
|
73
75
|
metadataTemplateOptions: l,
|
|
74
76
|
portalElement: i
|
|
75
|
-
}), !a &&
|
|
77
|
+
}), !a && M()]
|
|
76
78
|
});
|
|
77
79
|
};
|
|
78
80
|
export {
|
|
79
|
-
|
|
81
|
+
at as MetadataFilter
|
|
80
82
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { MetadataFieldProps } from '../../types';
|
|
2
|
-
export declare const MetadataMultiSelectFieldAdvanced: ({ label, fieldNamePrefix, disableForm, isAdvancedFilterEnabled, onAdvancedFilterOptionChange, fieldAdvancedFilterOptions, filterOptionsMap, portalElement, hasAccordion, isModified, }: MetadataFieldProps) => import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare const MetadataMultiSelectFieldAdvanced: ({ label, fieldNamePrefix, disableForm, isAdvancedFilterEnabled, onAdvancedFilterOptionChange, fieldAdvancedFilterOptions, filterOptionsMap, portalElement, hasAccordion, isModified, hasExperimentalVirtualization, }: MetadataFieldProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { MetadataFieldProps } from '../../types';
|
|
2
|
-
export declare const MetadataMultiSelectField: ({ disableForm, fieldNamePrefix, label, portalElement, hasAccordion, }: Omit<MetadataFieldProps, "locale" | "taxonomyOptionsFetcher">) => import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare const MetadataMultiSelectField: ({ disableForm, fieldNamePrefix, label, portalElement, hasAccordion, hasExperimentalVirtualization, }: Omit<MetadataFieldProps, "locale" | "taxonomyOptionsFetcher">) => import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export default MetadataMultiSelectField;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { MetadataFilterFieldsProps } from './types';
|
|
2
|
-
export declare const MetadataFilterFields: ({ disableForm, locale, portalElement, taxonomyOptionsFetcher, canUseRelativeDates, isAdvancedFilterEnabled, isModifiedMarkerEnabled, onAdvancedFilterOptionChange, fieldAdvancedFilterOptions, isMultilevelTaxonomyFieldEnabled, filterOptionsMap, onDirtyChange, isAdvancedTaxonomy, }: MetadataFilterFieldsProps) => import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare const MetadataFilterFields: ({ disableForm, locale, portalElement, taxonomyOptionsFetcher, canUseRelativeDates, isAdvancedFilterEnabled, isModifiedMarkerEnabled, onAdvancedFilterOptionChange, fieldAdvancedFilterOptions, isMultilevelTaxonomyFieldEnabled, filterOptionsMap, onDirtyChange, isAdvancedTaxonomy, hasExperimentalVirtualization, }: MetadataFilterFieldsProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export default MetadataFilterFields;
|
|
@@ -28,6 +28,7 @@ export type MetadataFilterFieldsProps = {
|
|
|
28
28
|
hasAccordion?: boolean;
|
|
29
29
|
onDirtyChange?: (isDirty: boolean) => void;
|
|
30
30
|
isAdvancedTaxonomy?: boolean;
|
|
31
|
+
hasExperimentalVirtualization?: boolean;
|
|
31
32
|
};
|
|
32
33
|
export type MetadataFieldProps = {
|
|
33
34
|
description?: string | null;
|
|
@@ -52,6 +53,7 @@ export type MetadataFieldProps = {
|
|
|
52
53
|
hasAccordion?: boolean;
|
|
53
54
|
isModified?: boolean;
|
|
54
55
|
placeholder?: string;
|
|
56
|
+
hasExperimentalVirtualization?: boolean;
|
|
55
57
|
};
|
|
56
58
|
export type FieldType = Extract<MetadataTemplateFieldType, 'string' | 'float' | 'enum' | 'multiSelect' | 'date' | 'taxonomy'>;
|
|
57
59
|
export type PartialRangeValue = Partial<RangeValue>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { MetadataFilterProps } from './types';
|
|
2
|
-
export declare const MetadataFilter: ({ isAdvancedFilterEnabled, isModifiedMarkerEnabled, metadataTemplateOptions, portalElement, selectedMetadataTemplate, taxonomyOptionsFetcher, showMetadataSelector, disableForm, isLoading, hasError, locale, canUseRelativeDates, isMultilevelTaxonomyFieldEnabled, filterOptionsMap, onAdvancedFilterOptionChange, fieldAdvancedFilterOptions, hasAccordion, onDirtyChange, isAdvancedTaxonomy, }: MetadataFilterProps) => import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare const MetadataFilter: ({ isAdvancedFilterEnabled, isModifiedMarkerEnabled, metadataTemplateOptions, portalElement, selectedMetadataTemplate, taxonomyOptionsFetcher, showMetadataSelector, disableForm, isLoading, hasError, locale, canUseRelativeDates, isMultilevelTaxonomyFieldEnabled, filterOptionsMap, onAdvancedFilterOptionChange, fieldAdvancedFilterOptions, hasAccordion, onDirtyChange, isAdvancedTaxonomy, hasExperimentalVirtualization, }: MetadataFilterProps) => import("react/jsx-runtime").JSX.Element;
|
package/package.json
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@box/metadata-filter",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.75.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@box/blueprint-web": "^13.1.
|
|
6
|
-
"@box/blueprint-web-assets": "^4.101.
|
|
7
|
-
"@box/combobox-with-api": "^1.39.
|
|
5
|
+
"@box/blueprint-web": "^13.1.2",
|
|
6
|
+
"@box/blueprint-web-assets": "^4.101.12",
|
|
7
|
+
"@box/combobox-with-api": "^1.39.1",
|
|
8
8
|
"formik": "^2.0.3",
|
|
9
9
|
"react": "^17.0.0 || ^18.0.0",
|
|
10
10
|
"react-dom": "^17.0.0 || ^18.0.0",
|
|
11
11
|
"react-intl": "6.4.2"
|
|
12
12
|
},
|
|
13
13
|
"devDependencies": {
|
|
14
|
-
"@box/blueprint-web": "^13.1.
|
|
15
|
-
"@box/blueprint-web-assets": "^4.101.
|
|
16
|
-
"@box/storybook-utils": "^0.16.
|
|
14
|
+
"@box/blueprint-web": "^13.1.2",
|
|
15
|
+
"@box/blueprint-web-assets": "^4.101.12",
|
|
16
|
+
"@box/storybook-utils": "^0.16.49",
|
|
17
17
|
"react": "^18.3.0",
|
|
18
18
|
"react-dom": "^18.3.0",
|
|
19
19
|
"react-intl": "6.4.2"
|