@box/metadata-filter 2.2.28 → 2.2.30
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/chunks/advanced-filter-select.js +1 -59
- package/dist/chunks/metadata-date-field.module.js +1 -11
- package/dist/chunks/metadata-filter.js +1 -49
- package/dist/chunks/metadata-float-field-advanced.js +1 -78
- package/dist/chunks/metadata-taxonomy-field-advanced.module.js +1 -6
- package/dist/chunks/types.js +1 -6
- package/dist/chunks/types2.js +1 -4
- package/dist/chunks/use-float-validation.js +1 -22
- package/dist/esm/index.js +1 -14
- package/dist/esm/lib/components/metadata-filter-fields/components/constants.js +1 -2
- package/dist/esm/lib/components/metadata-filter-fields/components/index.js +1 -8
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-date-field/constants.js +1 -3
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-date-field/date-conversion-utils.js +1 -49
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-date-field/metadata-date-field-advanced.js +1 -167
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-date-field/metadata-date-field-relative.js +1 -238
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-date-field/metadata-date-field.js +1 -90
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-date-field/use-date-internationalization.js +1 -11
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-date-field/use-date-validation.js +1 -25
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-date-field/use-integer-validation.js +1 -16
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-date-field/utils.js +1 -9
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-enum-field/metadata-enum-field.js +1 -39
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-float-field/handlers.js +1 -13
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-float-field/metadata-float-field-advanced.js +1 -2
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-float-field/metadata-float-field.js +1 -67
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-float-field/use-float-validation.js +1 -2
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-float-field/utils.js +1 -47
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-multi-select-field/metadata-multi-select-field-advanced.js +1 -72
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-multi-select-field/metadata-multi-select-field.js +1 -35
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-multi-select-field/utils.js +1 -12
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-string-field/metadata-string-field.js +1 -64
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-string-field/utils.js +1 -7
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-taxonomy-field/legacy-metadata-taxonomy-field-advanced.js +1 -89
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-taxonomy-field/legacy-metadata-taxonomy-field.js +1 -46
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-taxonomy-field/metadata-taxonomy-field-advanced.js +1 -11
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-taxonomy-field/metadata-taxonomy-field.js +1 -11
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-taxonomy-field/picker/metadata-taxonomy-picker-field-advanced.js +1 -84
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-taxonomy-field/picker/metadata-taxonomy-picker-field.js +1 -46
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-taxonomy-field/picker/value-mapping.js +1 -32
- package/dist/esm/lib/components/metadata-filter-fields/components/metadata-taxonomy-field/utils.js +1 -8
- package/dist/esm/lib/components/metadata-filter-fields/components/shared/advanced-filter-select.js +1 -2
- package/dist/esm/lib/components/metadata-filter-fields/components/shared/index.js +1 -2
- package/dist/esm/lib/components/metadata-filter-fields/field-processing-utils.js +1 -27
- package/dist/esm/lib/components/metadata-filter-fields/filter-field-types.js +1 -27
- package/dist/esm/lib/components/metadata-filter-fields/is-modified-utils.js +1 -85
- package/dist/esm/lib/components/metadata-filter-fields/metadata-filter-fields-accordion.js +1 -63
- package/dist/esm/lib/components/metadata-filter-fields/metadata-filter-fields.js +1 -61
- package/dist/esm/lib/components/metadata-template-selector/metadata-template-selector.js +1 -33
- package/dist/esm/lib/defaults.js +1 -32
- package/dist/esm/lib/mappers.js +1 -18
- package/dist/esm/lib/messages.js +1 -220
- package/dist/esm/lib/metadata-filter.js +1 -3
- package/package.json +9 -9
|
@@ -1,72 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import t from "../../../../messages.js";
|
|
3
|
-
import { t as n } from "../../../../../../chunks/advanced-filter-select.js";
|
|
4
|
-
import { fieldDefaultProps as r } from "../constants.js";
|
|
5
|
-
import { createFieldValue as i, getInitialAdvancedFilterValue as a, getInputValue as o } from "./utils.js";
|
|
6
|
-
import { Combobox as s, TooltipProvider as c } from "@box/blueprint-web";
|
|
7
|
-
import { Field as l, getIn as u, useFormikContext as d } from "formik";
|
|
8
|
-
import { useCallback as f, useMemo as p, useRef as m, useState as h } from "react";
|
|
9
|
-
import { useIntl as g } from "react-intl";
|
|
10
|
-
import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
|
|
11
|
-
var b = (t) => t === e.IS_BLANK || t === e.IS_NOT_BLANK, x = ({ label: x, fieldNamePrefix: S, disableForm: C, onAdvancedFilterOptionChange: w, fieldAdvancedFilterOptions: T, filterOptionsMap: E, portalElement: D, hasAccordion: O, isModified: k, hasExperimentalVirtualization: A }) => {
|
|
12
|
-
let { setFieldValue: j, values: M } = d(), N = g(), P = `${S}.value.enum`, F = p(() => u(M, `${S}.options`, []).map((e) => e?.key).filter((e) => typeof e == "string"), [M, S]), [I, L] = h(a(T, E) || e.MATCH_ANY), [R, z] = h(!1), [B, V] = h(!1), H = (e, t) => typeof t == "string" ? t.toLowerCase().includes(e.toLowerCase()) : !1, U = m([]), W = m(null), G = f((e, t, n) => {
|
|
13
|
-
let r = e;
|
|
14
|
-
L(r), w?.(P, r);
|
|
15
|
-
let a = i(b(e) ? [] : t, e, !0);
|
|
16
|
-
n.setFieldValue(P, a);
|
|
17
|
-
}, [P, w]), K = f((e) => {
|
|
18
|
-
W.current && G(e, U.current, W.current);
|
|
19
|
-
}, [G]), q = f((e) => {
|
|
20
|
-
j(P, i(e, I, !0));
|
|
21
|
-
}, [
|
|
22
|
-
I,
|
|
23
|
-
P,
|
|
24
|
-
j
|
|
25
|
-
]), J = f((e) => {
|
|
26
|
-
z(e), e && V(!1);
|
|
27
|
-
}, []), Y = f((e) => {
|
|
28
|
-
V(e), e && z(!1);
|
|
29
|
-
}, []), X = f((e) => !e || e.length === 0 ? N.formatMessage(t.multiselectPlaceholder) : "", [N]);
|
|
30
|
-
return /* @__PURE__ */ v("div", {
|
|
31
|
-
"data-testid": `${x}-field`,
|
|
32
|
-
children: /* @__PURE__ */ v(l, {
|
|
33
|
-
name: P,
|
|
34
|
-
children: ({ field: e, form: t }) => {
|
|
35
|
-
let i = o(e.value, !0);
|
|
36
|
-
return U.current = i, W.current = t, /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(n, {
|
|
37
|
-
disableForm: C,
|
|
38
|
-
fieldAdvancedFilterOptions: T,
|
|
39
|
-
fieldNamePrefix: S,
|
|
40
|
-
filterOptionsMap: E,
|
|
41
|
-
isModified: k,
|
|
42
|
-
label: x,
|
|
43
|
-
onAdvancedFilterOptionChange: w,
|
|
44
|
-
onOpenChange: Y,
|
|
45
|
-
onValueChange: K,
|
|
46
|
-
open: B,
|
|
47
|
-
portalElement: D,
|
|
48
|
-
showLabel: !O,
|
|
49
|
-
value: I
|
|
50
|
-
}), !b(I) && /* @__PURE__ */ v(c, { children: /* @__PURE__ */ v(s, {
|
|
51
|
-
...r,
|
|
52
|
-
as: "input",
|
|
53
|
-
disabled: C,
|
|
54
|
-
experimentalVirtualization: A,
|
|
55
|
-
filterFn: H,
|
|
56
|
-
hideLabel: !0,
|
|
57
|
-
label: x,
|
|
58
|
-
multiselect: !0,
|
|
59
|
-
name: e.name,
|
|
60
|
-
onOpenChange: J,
|
|
61
|
-
onValueChange: q,
|
|
62
|
-
open: R,
|
|
63
|
-
options: F,
|
|
64
|
-
placeholder: X(i),
|
|
65
|
-
portalElement: D,
|
|
66
|
-
value: i
|
|
67
|
-
}) })] });
|
|
68
|
-
}
|
|
69
|
-
})
|
|
70
|
-
});
|
|
71
|
-
};
|
|
72
|
-
export { x as MetadataMultiSelectFieldAdvanced };
|
|
1
|
+
import{t as FilterKeyTypes}from"../../../../../../chunks/types.js";import messages from"../../../../messages.js";import{t as AdvancedFilterSelect}from"../../../../../../chunks/advanced-filter-select.js";import{fieldDefaultProps}from"../constants.js";import{createFieldValue,getInitialAdvancedFilterValue,getInputValue}from"./utils.js";import{Combobox,TooltipProvider}from"@box/blueprint-web";import{Field,getIn,useFormikContext}from"formik";import{useCallback,useMemo,useRef,useState}from"react";import{useIntl}from"react-intl";import{Fragment,jsx,jsxs}from"react/jsx-runtime";var isBlankOption=advancedFilterOption=>advancedFilterOption===FilterKeyTypes.IS_BLANK||advancedFilterOption===FilterKeyTypes.IS_NOT_BLANK,MetadataMultiSelectFieldAdvanced=({label,fieldNamePrefix,disableForm,onAdvancedFilterOptionChange,fieldAdvancedFilterOptions,filterOptionsMap,portalElement,hasAccordion,isModified,hasExperimentalVirtualization})=>{let{setFieldValue,values}=useFormikContext(),intl=useIntl(),fieldName=`${fieldNamePrefix}.value.enum`,options=useMemo(()=>getIn(values,`${fieldNamePrefix}.options`,[]).map(option=>option?.key).filter(key=>typeof key==`string`),[values,fieldNamePrefix]),[advancedFilterOption,setAdvancedFilterOption]=useState(getInitialAdvancedFilterValue(fieldAdvancedFilterOptions,filterOptionsMap)||FilterKeyTypes.MATCH_ANY),[isComboboxOpen,setIsComboboxOpen]=useState(!1),[isSelectOpen,setIsSelectOpen]=useState(!1),onFilter=(query,option)=>typeof option==`string`?option.toLowerCase().includes(query.toLowerCase()):!1,inputValueRef=useRef([]),formRef=useRef(null),handleAdvancedFilterOptionChange=useCallback((value,inputValue,form)=>{let selectedOption=value;setAdvancedFilterOption(selectedOption),onAdvancedFilterOptionChange?.(fieldName,selectedOption);let newValue=createFieldValue(isBlankOption(value)?[]:inputValue,value,!0);form.setFieldValue(fieldName,newValue)},[fieldName,onAdvancedFilterOptionChange]),handleSelectValueChange=useCallback(value=>{formRef.current&&handleAdvancedFilterOptionChange(value,inputValueRef.current,formRef.current)},[handleAdvancedFilterOptionChange]),handleValueChange=useCallback(value=>{setFieldValue(fieldName,createFieldValue(value,advancedFilterOption,!0))},[advancedFilterOption,fieldName,setFieldValue]),handleComboboxOpenChange=useCallback(open=>{setIsComboboxOpen(open),open&&setIsSelectOpen(!1)},[]),handleSelectOpenChange=useCallback(open=>{setIsSelectOpen(open),open&&setIsComboboxOpen(!1)},[]),getPlaceholder=useCallback(inputValue=>!inputValue||inputValue.length===0?intl.formatMessage(messages.multiselectPlaceholder):``,[intl]);return jsx(`div`,{"data-testid":`${label}-field`,children:jsx(Field,{name:fieldName,children:({field,form})=>{let inputValue=getInputValue(field.value,!0);return inputValueRef.current=inputValue,formRef.current=form,jsxs(Fragment,{children:[jsx(AdvancedFilterSelect,{disableForm,fieldAdvancedFilterOptions,fieldNamePrefix,filterOptionsMap,isModified,label,onAdvancedFilterOptionChange,onOpenChange:handleSelectOpenChange,onValueChange:handleSelectValueChange,open:isSelectOpen,portalElement,showLabel:!hasAccordion,value:advancedFilterOption}),!isBlankOption(advancedFilterOption)&&jsx(TooltipProvider,{children:jsx(Combobox,{...fieldDefaultProps,as:`input`,disabled:disableForm,experimentalVirtualization:hasExperimentalVirtualization,filterFn:onFilter,hideLabel:!0,label,multiselect:!0,name:field.name,onOpenChange:handleComboboxOpenChange,onValueChange:handleValueChange,open:isComboboxOpen,options,placeholder:getPlaceholder(inputValue),portalElement,value:inputValue})})]})}})})};export{MetadataMultiSelectFieldAdvanced};
|
|
@@ -1,35 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { fieldDefaultProps as t } from "../constants.js";
|
|
3
|
-
import { MetadataMultiSelectFieldAdvanced as n } from "./metadata-multi-select-field-advanced.js";
|
|
4
|
-
import { Combobox as r, TooltipProvider as i } from "@box/blueprint-web";
|
|
5
|
-
import { Field as a, getIn as o, useFormikContext as s } from "formik";
|
|
6
|
-
import { useCallback as c, useMemo as l } from "react";
|
|
7
|
-
import { useIntl as u } from "react-intl";
|
|
8
|
-
import { jsx as d } from "react/jsx-runtime";
|
|
9
|
-
var f = ({ disableForm: n, fieldNamePrefix: f, label: p, portalElement: m, hasAccordion: h, hasExperimentalVirtualization: g }) => {
|
|
10
|
-
let { setFieldValue: _, values: v } = s(), y = u(), b = `${f}.value.enum`, x = l(() => o(v, `${f}.options`, []).map(({ key: e }) => e), [v, f]), S = c((e, t) => t.toLowerCase().includes(e.toLowerCase()), []), C = c((e) => _(b, e), [_, b]), w = c((t) => (t || [])?.length === 0 ? y.formatMessage(e.multiselectPlaceholder) : "", [y]);
|
|
11
|
-
return /* @__PURE__ */ d("div", {
|
|
12
|
-
"data-testid": `${p}-field`,
|
|
13
|
-
children: /* @__PURE__ */ d(a, {
|
|
14
|
-
name: b,
|
|
15
|
-
children: ({ field: e }) => /* @__PURE__ */ d(i, { children: /* @__PURE__ */ d(r, {
|
|
16
|
-
...t,
|
|
17
|
-
as: "input",
|
|
18
|
-
"data-target-id": `Combobox-${f}`,
|
|
19
|
-
disabled: n,
|
|
20
|
-
filterFn: S,
|
|
21
|
-
hideLabel: h,
|
|
22
|
-
label: p,
|
|
23
|
-
multiselect: !0,
|
|
24
|
-
experimentalVirtualization: g,
|
|
25
|
-
name: e.name,
|
|
26
|
-
onValueChange: C,
|
|
27
|
-
options: x,
|
|
28
|
-
placeholder: w(e.value),
|
|
29
|
-
portalElement: m,
|
|
30
|
-
value: e.value
|
|
31
|
-
}) })
|
|
32
|
-
})
|
|
33
|
-
});
|
|
34
|
-
}, p = ({ isAdvancedFilterEnabled: e, ...t }) => d(e ? n : f, { ...t });
|
|
35
|
-
export { p as MetadataMultiSelectField, p as default };
|
|
1
|
+
import messages from"../../../../messages.js";import{fieldDefaultProps}from"../constants.js";import{MetadataMultiSelectFieldAdvanced}from"./metadata-multi-select-field-advanced.js";import{Combobox,TooltipProvider}from"@box/blueprint-web";import{Field,getIn,useFormikContext}from"formik";import{useCallback,useMemo}from"react";import{useIntl}from"react-intl";import{jsx}from"react/jsx-runtime";var MetadataMultiSelectFieldBase=({disableForm,fieldNamePrefix,label,portalElement,hasAccordion,hasExperimentalVirtualization})=>{let{setFieldValue,values}=useFormikContext(),intl=useIntl(),fieldName=`${fieldNamePrefix}.value.enum`,options=useMemo(()=>getIn(values,`${fieldNamePrefix}.options`,[]).map(({key})=>key),[values,fieldNamePrefix]),onFilter=useCallback((query,option)=>option.toLowerCase().includes(query.toLowerCase()),[]),handleValueChange=useCallback(value=>setFieldValue(fieldName,value),[setFieldValue,fieldName]),getPlaceholder=useCallback(fieldValue=>(fieldValue||[])?.length===0?intl.formatMessage(messages.multiselectPlaceholder):``,[intl]);return jsx(`div`,{"data-testid":`${label}-field`,children:jsx(Field,{name:fieldName,children:({field})=>jsx(TooltipProvider,{children:jsx(Combobox,{...fieldDefaultProps,as:`input`,"data-target-id":`Combobox-${fieldNamePrefix}`,disabled:disableForm,filterFn:onFilter,hideLabel:hasAccordion,label,multiselect:!0,experimentalVirtualization:hasExperimentalVirtualization,name:field.name,onValueChange:handleValueChange,options,placeholder:getPlaceholder(field.value),portalElement,value:field.value})})})})},MetadataMultiSelectField=({isAdvancedFilterEnabled,...props})=>jsx(isAdvancedFilterEnabled?MetadataMultiSelectFieldAdvanced:MetadataMultiSelectFieldBase,{...props});export{MetadataMultiSelectField,MetadataMultiSelectField as default};
|
|
@@ -1,12 +1 @@
|
|
|
1
|
-
var
|
|
2
|
-
return e.MATCH_ANY = "matchAny", e.MATCH_ALL = "matchAll", e.IS_BLANK = "isBlank", e.IS_NOT_BLANK = "isNotBlank", e;
|
|
3
|
-
}({}), t = (e, t) => e && t?.some(([t]) => t === e) ? e : "matchAny", n = (e, t) => {
|
|
4
|
-
if (Array.isArray(e)) return e.filter((e) => e !== "");
|
|
5
|
-
if (t && typeof e == "object" && e) return (e.value || []).filter((e) => e !== "");
|
|
6
|
-
let n = e || [];
|
|
7
|
-
return Array.isArray(n) ? n.filter((e) => e !== "") : [];
|
|
8
|
-
}, r = (e, t, n) => n ? {
|
|
9
|
-
value: i(t) ? [] : e,
|
|
10
|
-
advancedFilterOption: t
|
|
11
|
-
} : e, i = (e) => e === "isBlank" || e === "isNotBlank";
|
|
12
|
-
export { e as MultiSelectAdvancedFilterOption, r as createFieldValue, t as getInitialAdvancedFilterValue, n as getInputValue };
|
|
1
|
+
var MultiSelectAdvancedFilterOption=function(MultiSelectAdvancedFilterOption){return MultiSelectAdvancedFilterOption.MATCH_ANY=`matchAny`,MultiSelectAdvancedFilterOption.MATCH_ALL=`matchAll`,MultiSelectAdvancedFilterOption.IS_BLANK=`isBlank`,MultiSelectAdvancedFilterOption.IS_NOT_BLANK=`isNotBlank`,MultiSelectAdvancedFilterOption}({}),getInitialAdvancedFilterValue=(fieldAdvancedFilterOptions,filterOptionsMap)=>fieldAdvancedFilterOptions&&filterOptionsMap?.some(([key])=>key===fieldAdvancedFilterOptions)?fieldAdvancedFilterOptions:`matchAny`,getInputValue=(fieldValue,isAdvancedFilterEnabled)=>{if(Array.isArray(fieldValue))return fieldValue.filter(item=>item!==``);if(isAdvancedFilterEnabled&&typeof fieldValue==`object`&&fieldValue)return(fieldValue.value||[]).filter(item=>item!==``);let result=fieldValue||[];return Array.isArray(result)?result.filter(item=>item!==``):[]},createFieldValue=(inputValue,advancedFilterOption,isAdvancedFilterEnabled)=>isAdvancedFilterEnabled?{value:isBlankOption(advancedFilterOption)?[]:inputValue,advancedFilterOption}:inputValue,isBlankOption=advancedFilterOption=>advancedFilterOption===`isBlank`||advancedFilterOption===`isNotBlank`;export{MultiSelectAdvancedFilterOption,createFieldValue,getInitialAdvancedFilterValue,getInputValue};
|
|
@@ -1,64 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import t from "../../../../messages.js";
|
|
3
|
-
import { t as n } from "../../../../../../chunks/advanced-filter-select.js";
|
|
4
|
-
import { fieldDefaultProps as r } from "../constants.js";
|
|
5
|
-
import { createFieldValue as i, getInitialAdvancedFilterValue as a, getInputValue as o, shouldHideTextInput as s } from "./utils.js";
|
|
6
|
-
import { TextInput as c } from "@box/blueprint-web";
|
|
7
|
-
import { Field as l } from "formik";
|
|
8
|
-
import { useCallback as u, useState as d } from "react";
|
|
9
|
-
import { useIntl as f } from "react-intl";
|
|
10
|
-
import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
11
|
-
var g = ({ label: g, fieldNamePrefix: _, disableForm: v, isAdvancedFilterEnabled: y, onAdvancedFilterOptionChange: b, fieldAdvancedFilterOptions: x, filterOptionsMap: S, hasAccordion: C, isModified: w, placeholder: T }) => {
|
|
12
|
-
let E = f(), D = `${_}.value.enum[0]`, [O, k] = d(a(x, S) || e.CONTAINS), A = u((e, t, n) => {
|
|
13
|
-
let r = e;
|
|
14
|
-
k(r), b?.(D, r);
|
|
15
|
-
let a = i(t, e, y);
|
|
16
|
-
n.setFieldValue(D, a);
|
|
17
|
-
}, [
|
|
18
|
-
D,
|
|
19
|
-
y,
|
|
20
|
-
b
|
|
21
|
-
]), j = u((e, t) => {
|
|
22
|
-
let n = e.target.value, r = i(n, O, y);
|
|
23
|
-
t.setFieldValue(D, r);
|
|
24
|
-
}, [
|
|
25
|
-
O,
|
|
26
|
-
y,
|
|
27
|
-
D
|
|
28
|
-
]);
|
|
29
|
-
return /* @__PURE__ */ m("div", {
|
|
30
|
-
"data-testid": `${g}-field`,
|
|
31
|
-
children: /* @__PURE__ */ m(l, {
|
|
32
|
-
name: D,
|
|
33
|
-
children: ({ field: e, meta: i, form: a }) => {
|
|
34
|
-
let l = o(e.value, y);
|
|
35
|
-
return /* @__PURE__ */ h(p, { children: [y && /* @__PURE__ */ m(n, {
|
|
36
|
-
disableForm: v,
|
|
37
|
-
fieldAdvancedFilterOptions: x,
|
|
38
|
-
fieldNamePrefix: _,
|
|
39
|
-
filterOptionsMap: S,
|
|
40
|
-
isModified: w,
|
|
41
|
-
label: g,
|
|
42
|
-
onAdvancedFilterOptionChange: b,
|
|
43
|
-
onValueChange: (e) => A(e, l, a),
|
|
44
|
-
showLabel: y && !C,
|
|
45
|
-
value: O
|
|
46
|
-
}), !s(y, O) && /* @__PURE__ */ m(c, {
|
|
47
|
-
...r,
|
|
48
|
-
...e,
|
|
49
|
-
"aria-label": E.formatMessage(t.enterValueAriaLabel, { label: g }),
|
|
50
|
-
"data-target-id": `TextInput-${_}`,
|
|
51
|
-
disabled: v,
|
|
52
|
-
error: i.error,
|
|
53
|
-
hideLabel: y || C,
|
|
54
|
-
label: g,
|
|
55
|
-
onChange: (e) => j(e, a),
|
|
56
|
-
placeholder: T || E.formatMessage(t.setValuePlaceholder),
|
|
57
|
-
value: l
|
|
58
|
-
})] });
|
|
59
|
-
}
|
|
60
|
-
})
|
|
61
|
-
});
|
|
62
|
-
};
|
|
63
|
-
g.displayName = "MetadataStringField";
|
|
64
|
-
export { g as MetadataStringField, g as default };
|
|
1
|
+
import{t as FilterKeyTypes}from"../../../../../../chunks/types.js";import messages from"../../../../messages.js";import{t as AdvancedFilterSelect}from"../../../../../../chunks/advanced-filter-select.js";import{fieldDefaultProps}from"../constants.js";import{createFieldValue,getInitialAdvancedFilterValue,getInputValue,shouldHideTextInput}from"./utils.js";import{TextInput}from"@box/blueprint-web";import{Field}from"formik";import{useCallback,useState}from"react";import{useIntl}from"react-intl";import{Fragment,jsx,jsxs}from"react/jsx-runtime";var MetadataStringField=({label,fieldNamePrefix,disableForm,isAdvancedFilterEnabled,onAdvancedFilterOptionChange,fieldAdvancedFilterOptions,filterOptionsMap,hasAccordion,isModified,placeholder})=>{let intl=useIntl(),fieldName=`${fieldNamePrefix}.value.enum[0]`,[advancedFilterOption,setAdvancedFilterOption]=useState(getInitialAdvancedFilterValue(fieldAdvancedFilterOptions,filterOptionsMap)||FilterKeyTypes.CONTAINS),handleAdvancedFilterOptionChange=useCallback((value,inputValue,form)=>{let selectedOption=value;setAdvancedFilterOption(selectedOption),onAdvancedFilterOptionChange?.(fieldName,selectedOption);let newValue=createFieldValue(inputValue,value,isAdvancedFilterEnabled);form.setFieldValue(fieldName,newValue)},[fieldName,isAdvancedFilterEnabled,onAdvancedFilterOptionChange]),handleTextInputChange=useCallback((event,form)=>{let newInputValue=event.target.value,newValue=createFieldValue(newInputValue,advancedFilterOption,isAdvancedFilterEnabled);form.setFieldValue(fieldName,newValue)},[advancedFilterOption,isAdvancedFilterEnabled,fieldName]);return jsx(`div`,{"data-testid":`${label}-field`,children:jsx(Field,{name:fieldName,children:({field,meta,form})=>{let inputValue=getInputValue(field.value,isAdvancedFilterEnabled);return jsxs(Fragment,{children:[isAdvancedFilterEnabled&&jsx(AdvancedFilterSelect,{disableForm,fieldAdvancedFilterOptions,fieldNamePrefix,filterOptionsMap,isModified,label,onAdvancedFilterOptionChange,onValueChange:value=>handleAdvancedFilterOptionChange(value,inputValue,form),showLabel:isAdvancedFilterEnabled&&!hasAccordion,value:advancedFilterOption}),!shouldHideTextInput(isAdvancedFilterEnabled,advancedFilterOption)&&jsx(TextInput,{...fieldDefaultProps,...field,"aria-label":intl.formatMessage(messages.enterValueAriaLabel,{label}),"data-target-id":`TextInput-${fieldNamePrefix}`,disabled:disableForm,error:meta.error,hideLabel:isAdvancedFilterEnabled||hasAccordion,label,onChange:event=>handleTextInputChange(event,form),placeholder:placeholder||intl.formatMessage(messages.setValuePlaceholder),value:inputValue})]})}})})};MetadataStringField.displayName=`MetadataStringField`;export{MetadataStringField,MetadataStringField as default};
|
package/dist/esm/lib/components/metadata-filter-fields/components/metadata-string-field/utils.js
CHANGED
|
@@ -1,7 +1 @@
|
|
|
1
|
-
var
|
|
2
|
-
return e.MATCH_EXACTLY = "matchExactly", e.STARTS_WITH = "startsWith", e.CONTAINS = "contains", e.DOES_NOT_CONTAIN = "doesNotContain", e.IS_NOT = "isNot", e.IS_BLANK = "isBlank", e.IS_NOT_BLANK = "isNotBlank", e;
|
|
3
|
-
}({}), t = (e, t) => e && t?.some(([t]) => t === e) ? e : "matchExactly", n = (e) => e === "isBlank" || e === "isNotBlank", r = (e, t) => t && typeof e == "object" && e ? e.value || "" : e || "", i = (e, t, r) => r ? {
|
|
4
|
-
value: n(t) ? "" : e,
|
|
5
|
-
advancedFilterOption: t
|
|
6
|
-
} : e, a = (e, t) => e && n(t);
|
|
7
|
-
export { e as AdvancedFilterOption, i as createFieldValue, t as getInitialAdvancedFilterValue, r as getInputValue, n as isBlankOption, a as shouldHideTextInput };
|
|
1
|
+
var AdvancedFilterOption=function(AdvancedFilterOption){return AdvancedFilterOption.MATCH_EXACTLY=`matchExactly`,AdvancedFilterOption.STARTS_WITH=`startsWith`,AdvancedFilterOption.CONTAINS=`contains`,AdvancedFilterOption.DOES_NOT_CONTAIN=`doesNotContain`,AdvancedFilterOption.IS_NOT=`isNot`,AdvancedFilterOption.IS_BLANK=`isBlank`,AdvancedFilterOption.IS_NOT_BLANK=`isNotBlank`,AdvancedFilterOption}({}),getInitialAdvancedFilterValue=(fieldAdvancedFilterOptions,filterOptionsMap)=>fieldAdvancedFilterOptions&&filterOptionsMap?.some(([key])=>key===fieldAdvancedFilterOptions)?fieldAdvancedFilterOptions:`matchExactly`,isBlankOption=option=>option===`isBlank`||option===`isNotBlank`,getInputValue=(fieldValue,isAdvancedFilterEnabled)=>isAdvancedFilterEnabled&&typeof fieldValue==`object`&&fieldValue?fieldValue.value||``:fieldValue||``,createFieldValue=(inputValue,advancedFilterOption,isAdvancedFilterEnabled)=>isAdvancedFilterEnabled?{value:isBlankOption(advancedFilterOption)?``:inputValue,advancedFilterOption}:inputValue,shouldHideTextInput=(isAdvancedFilterEnabled,advancedFilterOption)=>isAdvancedFilterEnabled&&isBlankOption(advancedFilterOption);export{AdvancedFilterOption,createFieldValue,getInitialAdvancedFilterValue,getInputValue,isBlankOption,shouldHideTextInput};
|
|
@@ -1,89 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { t } from "../../../../../../chunks/advanced-filter-select.js";
|
|
3
|
-
import { t as n } from "../../../../../../chunks/metadata-taxonomy-field-advanced.module.js";
|
|
4
|
-
import { createFieldValue as r, getInitialAdvancedFilterValue as i, getInputValue as a, isBlankOption as o } from "./utils.js";
|
|
5
|
-
import { ComboboxWithApiPagination as s, ComboboxWithApiTreeView as c } from "@box/combobox-with-api";
|
|
6
|
-
import { Field as l, getIn as u, useFormikContext as d } from "formik";
|
|
7
|
-
import { useCallback as f, useState as p } from "react";
|
|
8
|
-
import { useIntl as m } from "react-intl";
|
|
9
|
-
import h from "clsx";
|
|
10
|
-
import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
11
|
-
var y = ({ className: y, disableForm: b, fieldNamePrefix: x, label: S, portalElement: C, taxonomyOptionsFetcher: w, isMultilevelTaxonomyFieldEnabled: T, hasAccordion: E, isAdvancedFilterEnabled: D, onAdvancedFilterOptionChange: O, fieldAdvancedFilterOptions: k, filterOptionsMap: A, isModified: j }) => {
|
|
12
|
-
let { setFieldValue: M, values: N } = d(), { metadata: { templateKey: P, scope: F } } = N, I = m(), L = `${x}.value`, { key: R, optionsRules: z, levels: B } = u(N, x), V = z?.selectableLevels, H = T && V?.some((e) => e > 1), [U, W] = p(i(k, A)), [G, K] = p(!1), q = f((e) => w ? w(F, P, R, V?.[0] ?? 0, e) : Promise.resolve({ options: [] }), [
|
|
13
|
-
R,
|
|
14
|
-
F,
|
|
15
|
-
V,
|
|
16
|
-
w,
|
|
17
|
-
P
|
|
18
|
-
]), J = f((t) => t?.length === 0 ? I.formatMessage(e.multiselectPlaceholder) : "", [I]), Y = f((e, t, n) => {
|
|
19
|
-
W(e), O?.(L, e);
|
|
20
|
-
let i = r(o(e) ? [] : t, e, D);
|
|
21
|
-
n.setFieldValue(L, i);
|
|
22
|
-
}, [
|
|
23
|
-
L,
|
|
24
|
-
D,
|
|
25
|
-
O
|
|
26
|
-
]), X = f((e) => {
|
|
27
|
-
e && K(!1);
|
|
28
|
-
}, []), Z = f((e) => {
|
|
29
|
-
M(L, r(e, U, D));
|
|
30
|
-
}, [
|
|
31
|
-
U,
|
|
32
|
-
L,
|
|
33
|
-
D,
|
|
34
|
-
M
|
|
35
|
-
]);
|
|
36
|
-
return /* @__PURE__ */ _("div", {
|
|
37
|
-
"data-testid": `${S}-field`,
|
|
38
|
-
children: /* @__PURE__ */ _(l, {
|
|
39
|
-
name: L,
|
|
40
|
-
children: ({ field: e, form: r }) => {
|
|
41
|
-
let i = a(e.value, D);
|
|
42
|
-
return /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ _(t, {
|
|
43
|
-
disableForm: b ?? !1,
|
|
44
|
-
fieldAdvancedFilterOptions: k,
|
|
45
|
-
fieldNamePrefix: x,
|
|
46
|
-
filterOptionsMap: A,
|
|
47
|
-
isModified: j,
|
|
48
|
-
label: S,
|
|
49
|
-
onAdvancedFilterOptionChange: O,
|
|
50
|
-
onOpenChange: K,
|
|
51
|
-
onValueChange: (e) => Y(e, i, r),
|
|
52
|
-
open: G,
|
|
53
|
-
portalElement: C,
|
|
54
|
-
showLabel: !E,
|
|
55
|
-
value: U
|
|
56
|
-
}), !o(U) && /* @__PURE__ */ _("div", {
|
|
57
|
-
className: h(n.comboboxWrapper, b && n.disabled),
|
|
58
|
-
children: H ? /* @__PURE__ */ _(c, {
|
|
59
|
-
className: h(y, b && n.disabledTreeView),
|
|
60
|
-
defaultFetcher: q,
|
|
61
|
-
disabled: b,
|
|
62
|
-
hideLabel: !0,
|
|
63
|
-
label: S,
|
|
64
|
-
levels: B,
|
|
65
|
-
multiselect: !0,
|
|
66
|
-
onOpenChange: X,
|
|
67
|
-
onValueChange: Z,
|
|
68
|
-
placeholder: J(i),
|
|
69
|
-
portalElement: C,
|
|
70
|
-
selectableLevels: V,
|
|
71
|
-
value: i
|
|
72
|
-
}) : /* @__PURE__ */ _(s, {
|
|
73
|
-
className: y,
|
|
74
|
-
defaultFetcher: q,
|
|
75
|
-
disabled: b,
|
|
76
|
-
label: void 0,
|
|
77
|
-
multiselect: !0,
|
|
78
|
-
onOpenChange: X,
|
|
79
|
-
onValueChange: Z,
|
|
80
|
-
placeholder: J(i),
|
|
81
|
-
portalElement: C,
|
|
82
|
-
value: i
|
|
83
|
-
})
|
|
84
|
-
})] });
|
|
85
|
-
}
|
|
86
|
-
})
|
|
87
|
-
});
|
|
88
|
-
};
|
|
89
|
-
export { y as LegacyMetadataTaxonomyFieldAdvanced, y as default };
|
|
1
|
+
import messages from"../../../../messages.js";import{t as AdvancedFilterSelect}from"../../../../../../chunks/advanced-filter-select.js";import{t as metadata_taxonomy_field_advanced_module_default}from"../../../../../../chunks/metadata-taxonomy-field-advanced.module.js";import{createFieldValue,getInitialAdvancedFilterValue,getInputValue,isBlankOption}from"./utils.js";import{ComboboxWithApiPagination,ComboboxWithApiTreeView}from"@box/combobox-with-api";import{Field,getIn,useFormikContext}from"formik";import{useCallback,useState}from"react";import{useIntl}from"react-intl";import clsx from"clsx";import{Fragment,jsx,jsxs}from"react/jsx-runtime";var LegacyMetadataTaxonomyFieldAdvanced=({className,disableForm,fieldNamePrefix,label,portalElement,taxonomyOptionsFetcher,isMultilevelTaxonomyFieldEnabled,hasAccordion,isAdvancedFilterEnabled,onAdvancedFilterOptionChange,fieldAdvancedFilterOptions,filterOptionsMap,isModified})=>{let{setFieldValue,values}=useFormikContext(),{metadata:{templateKey,scope}}=values,intl=useIntl(),fieldName=`${fieldNamePrefix}.value`,{key,optionsRules,levels}=getIn(values,fieldNamePrefix),selectableLevels=optionsRules?.selectableLevels,isMultilevelTaxonomy=isMultilevelTaxonomyFieldEnabled&&selectableLevels?.some(level=>level>1),[advancedFilterOption,setAdvancedFilterOption]=useState(getInitialAdvancedFilterValue(fieldAdvancedFilterOptions,filterOptionsMap)),[isSelectOpen,setIsSelectOpen]=useState(!1),defaultFetcher=useCallback(input=>taxonomyOptionsFetcher?taxonomyOptionsFetcher(scope,templateKey,key,selectableLevels?.[0]??0,input):Promise.resolve({options:[]}),[key,scope,selectableLevels,taxonomyOptionsFetcher,templateKey]),getPlaceholder=useCallback(selectedValues=>selectedValues?.length===0?intl.formatMessage(messages.multiselectPlaceholder):``,[intl]),handleAdvancedFilterOptionChange=useCallback((value,inputValue,form)=>{setAdvancedFilterOption(value),onAdvancedFilterOptionChange?.(fieldName,value);let newValue=createFieldValue(isBlankOption(value)?[]:inputValue,value,isAdvancedFilterEnabled);form.setFieldValue(fieldName,newValue)},[fieldName,isAdvancedFilterEnabled,onAdvancedFilterOptionChange]),handleComboboxOpenChange=useCallback(open=>{open&&setIsSelectOpen(!1)},[]),handleValueChange=useCallback(value=>{setFieldValue(fieldName,createFieldValue(value,advancedFilterOption,isAdvancedFilterEnabled))},[advancedFilterOption,fieldName,isAdvancedFilterEnabled,setFieldValue]);return jsx(`div`,{"data-testid":`${label}-field`,children:jsx(Field,{name:fieldName,children:({field,form})=>{let inputValue=getInputValue(field.value,isAdvancedFilterEnabled);return jsxs(Fragment,{children:[jsx(AdvancedFilterSelect,{disableForm:disableForm??!1,fieldAdvancedFilterOptions,fieldNamePrefix,filterOptionsMap,isModified,label,onAdvancedFilterOptionChange,onOpenChange:setIsSelectOpen,onValueChange:value=>handleAdvancedFilterOptionChange(value,inputValue,form),open:isSelectOpen,portalElement,showLabel:!hasAccordion,value:advancedFilterOption}),!isBlankOption(advancedFilterOption)&&jsx(`div`,{className:clsx(metadata_taxonomy_field_advanced_module_default.comboboxWrapper,disableForm&&metadata_taxonomy_field_advanced_module_default.disabled),children:isMultilevelTaxonomy?jsx(ComboboxWithApiTreeView,{className:clsx(className,disableForm&&metadata_taxonomy_field_advanced_module_default.disabledTreeView),defaultFetcher,disabled:disableForm,hideLabel:!0,label,levels,multiselect:!0,onOpenChange:handleComboboxOpenChange,onValueChange:handleValueChange,placeholder:getPlaceholder(inputValue),portalElement,selectableLevels,value:inputValue}):jsx(ComboboxWithApiPagination,{className,defaultFetcher,disabled:disableForm,label:void 0,multiselect:!0,onOpenChange:handleComboboxOpenChange,onValueChange:handleValueChange,placeholder:getPlaceholder(inputValue),portalElement,value:inputValue})})]})}})})};export{LegacyMetadataTaxonomyFieldAdvanced,LegacyMetadataTaxonomyFieldAdvanced as default};
|
|
@@ -1,46 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { ComboboxWithApiPagination as t, ComboboxWithApiTreeView as n } from "@box/combobox-with-api";
|
|
3
|
-
import { Field as r, getIn as i, useFormikContext as a } from "formik";
|
|
4
|
-
import { useCallback as o } from "react";
|
|
5
|
-
import { useIntl as s } from "react-intl";
|
|
6
|
-
import { jsx as c } from "react/jsx-runtime";
|
|
7
|
-
var l = ({ className: l, disableForm: u, fieldNamePrefix: d, label: f, portalElement: p, taxonomyOptionsFetcher: m, isMultilevelTaxonomyFieldEnabled: h, hasAccordion: g }) => {
|
|
8
|
-
let { setFieldValue: _, values: v } = a(), { metadata: { templateKey: y, scope: b } } = v, x = s(), S = `${d}.value`, { key: C, optionsRules: { multiSelect: w, selectableLevels: T }, levels: E } = i(v, d), D = h && T?.some((e) => e > 1), O = o((e) => m(b, y, C, T?.[0], e), [
|
|
9
|
-
C,
|
|
10
|
-
b,
|
|
11
|
-
T,
|
|
12
|
-
m,
|
|
13
|
-
y
|
|
14
|
-
]), k = o((t) => w || !t?.length ? x.formatMessage(e.taxonomyPlaceholder) : void 0, [w, x]), A = o((e) => _(S, e), [_, S]);
|
|
15
|
-
return /* @__PURE__ */ c("div", {
|
|
16
|
-
"data-testid": `${f}-field`,
|
|
17
|
-
children: /* @__PURE__ */ c(r, {
|
|
18
|
-
name: S,
|
|
19
|
-
children: ({ field: e }) => D ? /* @__PURE__ */ c(n, {
|
|
20
|
-
className: l,
|
|
21
|
-
defaultFetcher: O,
|
|
22
|
-
disabled: u,
|
|
23
|
-
hideLabel: g,
|
|
24
|
-
label: f,
|
|
25
|
-
levels: E,
|
|
26
|
-
multiselect: w,
|
|
27
|
-
onValueChange: A,
|
|
28
|
-
placeholder: k(e.value),
|
|
29
|
-
portalElement: p,
|
|
30
|
-
selectableLevels: T,
|
|
31
|
-
value: e.value
|
|
32
|
-
}) : /* @__PURE__ */ c(t, {
|
|
33
|
-
className: l,
|
|
34
|
-
defaultFetcher: O,
|
|
35
|
-
disabled: u,
|
|
36
|
-
label: g ? void 0 : f,
|
|
37
|
-
multiselect: w,
|
|
38
|
-
onValueChange: A,
|
|
39
|
-
placeholder: k(e.value),
|
|
40
|
-
portalElement: p,
|
|
41
|
-
value: e.value
|
|
42
|
-
})
|
|
43
|
-
})
|
|
44
|
-
});
|
|
45
|
-
};
|
|
46
|
-
export { l as LegacyMetadataTaxonomyField, l as default };
|
|
1
|
+
import messages from"../../../../messages.js";import{ComboboxWithApiPagination,ComboboxWithApiTreeView}from"@box/combobox-with-api";import{Field,getIn,useFormikContext}from"formik";import{useCallback}from"react";import{useIntl}from"react-intl";import{jsx}from"react/jsx-runtime";var LegacyMetadataTaxonomyField=({className,disableForm,fieldNamePrefix,label,portalElement,taxonomyOptionsFetcher,isMultilevelTaxonomyFieldEnabled,hasAccordion})=>{let{setFieldValue,values}=useFormikContext(),{metadata:{templateKey,scope}}=values,intl=useIntl(),fieldName=`${fieldNamePrefix}.value`,{key,optionsRules:{multiSelect,selectableLevels},levels}=getIn(values,fieldNamePrefix),isMultilevelTaxonomy=isMultilevelTaxonomyFieldEnabled&&selectableLevels?.some(level=>level>1),defaultFetcher=useCallback(input=>taxonomyOptionsFetcher(scope,templateKey,key,selectableLevels?.[0],input),[key,scope,selectableLevels,taxonomyOptionsFetcher,templateKey]),getPlaceholder=useCallback(selectedValues=>multiSelect||!selectedValues?.length?intl.formatMessage(messages.taxonomyPlaceholder):void 0,[multiSelect,intl]),handleValueChange=useCallback(value=>setFieldValue(fieldName,value),[setFieldValue,fieldName]);return jsx(`div`,{"data-testid":`${label}-field`,children:jsx(Field,{name:fieldName,children:({field})=>isMultilevelTaxonomy?jsx(ComboboxWithApiTreeView,{className,defaultFetcher,disabled:disableForm,hideLabel:hasAccordion,label,levels,multiselect:multiSelect,onValueChange:handleValueChange,placeholder:getPlaceholder(field.value),portalElement,selectableLevels,value:field.value}):jsx(ComboboxWithApiPagination,{className,defaultFetcher,disabled:disableForm,label:hasAccordion?void 0:label,multiselect:multiSelect,onValueChange:handleValueChange,placeholder:getPlaceholder(field.value),portalElement,value:field.value})})})};export{LegacyMetadataTaxonomyField,LegacyMetadataTaxonomyField as default};
|
|
@@ -1,11 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { MetadataTaxonomyPickerFieldAdvanced as t } from "./picker/metadata-taxonomy-picker-field-advanced.js";
|
|
3
|
-
import { jsx as n } from "react/jsx-runtime";
|
|
4
|
-
var r = (r) => {
|
|
5
|
-
let { isTaxonomyPickerEnabled: i, createTaxonomyItemsService: a } = r;
|
|
6
|
-
return i && a ? /* @__PURE__ */ n(t, {
|
|
7
|
-
...r,
|
|
8
|
-
createTaxonomyItemsService: a
|
|
9
|
-
}) : (i && process.env.NODE_ENV !== "production" && console.error("[metadata-filter] isTaxonomyPickerEnabled is true but createTaxonomyItemsService was not provided; falling back to the legacy taxonomy field."), /* @__PURE__ */ n(e, { ...r }));
|
|
10
|
-
};
|
|
11
|
-
export { r as MetadataTaxonomyFieldAdvanced, r as default };
|
|
1
|
+
import{LegacyMetadataTaxonomyFieldAdvanced}from"./legacy-metadata-taxonomy-field-advanced.js";import{MetadataTaxonomyPickerFieldAdvanced}from"./picker/metadata-taxonomy-picker-field-advanced.js";import{jsx}from"react/jsx-runtime";var MetadataTaxonomyFieldAdvanced=props=>{let{isTaxonomyPickerEnabled,createTaxonomyItemsService}=props;return isTaxonomyPickerEnabled&&createTaxonomyItemsService?jsx(MetadataTaxonomyPickerFieldAdvanced,{...props,createTaxonomyItemsService}):(isTaxonomyPickerEnabled&&process.env.NODE_ENV!==`production`&&console.error(`[metadata-filter] isTaxonomyPickerEnabled is true but createTaxonomyItemsService was not provided; falling back to the legacy taxonomy field.`),jsx(LegacyMetadataTaxonomyFieldAdvanced,{...props}))};export{MetadataTaxonomyFieldAdvanced,MetadataTaxonomyFieldAdvanced as default};
|
|
@@ -1,11 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { MetadataTaxonomyPickerField as t } from "./picker/metadata-taxonomy-picker-field.js";
|
|
3
|
-
import { jsx as n } from "react/jsx-runtime";
|
|
4
|
-
var r = (r) => {
|
|
5
|
-
let { isTaxonomyPickerEnabled: i, createTaxonomyItemsService: a } = r;
|
|
6
|
-
return i && a ? /* @__PURE__ */ n(t, {
|
|
7
|
-
...r,
|
|
8
|
-
createTaxonomyItemsService: a
|
|
9
|
-
}) : (i && process.env.NODE_ENV !== "production" && console.error("[metadata-filter] isTaxonomyPickerEnabled is true but createTaxonomyItemsService was not provided; falling back to the legacy taxonomy field."), /* @__PURE__ */ n(e, { ...r }));
|
|
10
|
-
};
|
|
11
|
-
export { r as MetadataTaxonomyField, r as default };
|
|
1
|
+
import{LegacyMetadataTaxonomyField}from"./legacy-metadata-taxonomy-field.js";import{MetadataTaxonomyPickerField}from"./picker/metadata-taxonomy-picker-field.js";import{jsx}from"react/jsx-runtime";var MetadataTaxonomyField=props=>{let{isTaxonomyPickerEnabled,createTaxonomyItemsService}=props;return isTaxonomyPickerEnabled&&createTaxonomyItemsService?jsx(MetadataTaxonomyPickerField,{...props,createTaxonomyItemsService}):(isTaxonomyPickerEnabled&&process.env.NODE_ENV!==`production`&&console.error(`[metadata-filter] isTaxonomyPickerEnabled is true but createTaxonomyItemsService was not provided; falling back to the legacy taxonomy field.`),jsx(LegacyMetadataTaxonomyField,{...props}))};export{MetadataTaxonomyField,MetadataTaxonomyField as default};
|
|
@@ -1,84 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { t } from "../../../../../../../chunks/advanced-filter-select.js";
|
|
3
|
-
import { getTaxonomyPickerMode as n, mapFormValueToTaxonomyValues as r, mapLevelsToTaxonomyLevels as i, mapTaxonomyValuesToFormValue as a } from "./value-mapping.js";
|
|
4
|
-
import { t as o } from "../../../../../../../chunks/metadata-taxonomy-field-advanced.module.js";
|
|
5
|
-
import { createFieldValue as s, getInitialAdvancedFilterValue as c, getInputValue as l, isBlankOption as u } from "../utils.js";
|
|
6
|
-
import { Field as d, getIn as f, useFormikContext as p } from "formik";
|
|
7
|
-
import { useCallback as m, useMemo as h, useRef as g, useState as _ } from "react";
|
|
8
|
-
import { useIntl as v } from "react-intl";
|
|
9
|
-
import ee from "clsx";
|
|
10
|
-
import { Fragment as y, jsx as b, jsxs as x } from "react/jsx-runtime";
|
|
11
|
-
import { MetadataTaxonomyPicker as S } from "@box/metadata-taxonomy-picker";
|
|
12
|
-
var C = ({ className: C, disableForm: w, fieldNamePrefix: T, label: E, portalElement: D, isMultilevelTaxonomyFieldEnabled: O, hasAccordion: k, isAdvancedFilterEnabled: A, onAdvancedFilterOptionChange: j, fieldAdvancedFilterOptions: M, filterOptionsMap: N, isModified: P, createTaxonomyItemsService: F }) => {
|
|
13
|
-
let { setFieldValue: I, values: L } = p(), { metadata: { templateKey: R, scope: z } } = L, B = v(), V = `${T}.value`, { key: H, optionsRules: U, levels: W } = f(L, T), G = U?.selectableLevels, K = n(O, G), [q, J] = _(c(M, N)), [Y, X] = _(!1), Z = g([]), Q = h(() => F({
|
|
14
|
-
scope: z,
|
|
15
|
-
templateKey: R,
|
|
16
|
-
fieldKey: H
|
|
17
|
-
}), [
|
|
18
|
-
F,
|
|
19
|
-
z,
|
|
20
|
-
R,
|
|
21
|
-
H
|
|
22
|
-
]), $ = h(() => i(W, G), [W, G]), te = m((t) => t.length === 0 ? B.formatMessage(e.multiselectPlaceholder) : "", [B]), ne = m((e, t, n) => {
|
|
23
|
-
J(e), j?.(V, e);
|
|
24
|
-
let r = [];
|
|
25
|
-
u(e) || (r = t.length ? t : Z.current);
|
|
26
|
-
let i = s(r, e, A);
|
|
27
|
-
n.setFieldValue(V, i);
|
|
28
|
-
}, [
|
|
29
|
-
V,
|
|
30
|
-
A,
|
|
31
|
-
j
|
|
32
|
-
]), re = h(() => ({ onOpenChange: (e) => {
|
|
33
|
-
e && X(!1);
|
|
34
|
-
} }), []), ie = m((e) => {
|
|
35
|
-
let t = a(e, K);
|
|
36
|
-
Z.current = t, I(V, s(t, q, A));
|
|
37
|
-
}, [
|
|
38
|
-
q,
|
|
39
|
-
V,
|
|
40
|
-
A,
|
|
41
|
-
K,
|
|
42
|
-
I
|
|
43
|
-
]);
|
|
44
|
-
return /* @__PURE__ */ b("div", {
|
|
45
|
-
"data-testid": `${E}-field`,
|
|
46
|
-
children: /* @__PURE__ */ b(d, {
|
|
47
|
-
name: V,
|
|
48
|
-
children: ({ field: e, form: n }) => {
|
|
49
|
-
let i = l(e.value, A), a = r(i);
|
|
50
|
-
return /* @__PURE__ */ x(y, { children: [/* @__PURE__ */ b(t, {
|
|
51
|
-
disableForm: w ?? !1,
|
|
52
|
-
fieldAdvancedFilterOptions: M,
|
|
53
|
-
fieldNamePrefix: T,
|
|
54
|
-
filterOptionsMap: N,
|
|
55
|
-
isModified: P,
|
|
56
|
-
label: E,
|
|
57
|
-
onAdvancedFilterOptionChange: j,
|
|
58
|
-
onOpenChange: X,
|
|
59
|
-
onValueChange: (e) => ne(e, i, n),
|
|
60
|
-
open: Y,
|
|
61
|
-
portalElement: D,
|
|
62
|
-
showLabel: !k,
|
|
63
|
-
value: q
|
|
64
|
-
}), !u(q) && /* @__PURE__ */ b("div", {
|
|
65
|
-
className: ee(o.comboboxWrapper, w && o.disabled),
|
|
66
|
-
children: /* @__PURE__ */ b(S, {
|
|
67
|
-
containerClassName: C,
|
|
68
|
-
disabled: w,
|
|
69
|
-
eventService: re,
|
|
70
|
-
itemsService: Q,
|
|
71
|
-
levels: $,
|
|
72
|
-
mode: K,
|
|
73
|
-
multiSelect: !0,
|
|
74
|
-
onValueChange: ie,
|
|
75
|
-
placeholder: te(a),
|
|
76
|
-
portalElement: D,
|
|
77
|
-
value: a
|
|
78
|
-
})
|
|
79
|
-
})] });
|
|
80
|
-
}
|
|
81
|
-
})
|
|
82
|
-
});
|
|
83
|
-
};
|
|
84
|
-
export { C as MetadataTaxonomyPickerFieldAdvanced, C as default };
|
|
1
|
+
import messages from"../../../../../messages.js";import{t as AdvancedFilterSelect}from"../../../../../../../chunks/advanced-filter-select.js";import{getTaxonomyPickerMode,mapFormValueToTaxonomyValues,mapLevelsToTaxonomyLevels,mapTaxonomyValuesToFormValue}from"./value-mapping.js";import{t as metadata_taxonomy_field_advanced_module_default}from"../../../../../../../chunks/metadata-taxonomy-field-advanced.module.js";import{createFieldValue,getInitialAdvancedFilterValue,getInputValue,isBlankOption}from"../utils.js";import{Field,getIn,useFormikContext}from"formik";import{useCallback,useMemo,useRef,useState}from"react";import{useIntl}from"react-intl";import clsx from"clsx";import{Fragment,jsx,jsxs}from"react/jsx-runtime";import{MetadataTaxonomyPicker}from"@box/metadata-taxonomy-picker";var MetadataTaxonomyPickerFieldAdvanced=({className,disableForm,fieldNamePrefix,label,portalElement,isMultilevelTaxonomyFieldEnabled,hasAccordion,isAdvancedFilterEnabled,onAdvancedFilterOptionChange,fieldAdvancedFilterOptions,filterOptionsMap,isModified,createTaxonomyItemsService})=>{let{setFieldValue,values}=useFormikContext(),{metadata:{templateKey,scope}}=values,intl=useIntl(),fieldName=`${fieldNamePrefix}.value`,{key,optionsRules,levels}=getIn(values,fieldNamePrefix),selectableLevels=optionsRules?.selectableLevels,mode=getTaxonomyPickerMode(isMultilevelTaxonomyFieldEnabled,selectableLevels),[advancedFilterOption,setAdvancedFilterOption]=useState(getInitialAdvancedFilterValue(fieldAdvancedFilterOptions,filterOptionsMap)),[isSelectOpen,setIsSelectOpen]=useState(!1),lastValuesRef=useRef([]),itemsService=useMemo(()=>createTaxonomyItemsService({scope,templateKey,fieldKey:key}),[createTaxonomyItemsService,scope,templateKey,key]),pickerLevels=useMemo(()=>mapLevelsToTaxonomyLevels(levels,selectableLevels),[levels,selectableLevels]),getPlaceholder=useCallback(selectedValues=>selectedValues.length===0?intl.formatMessage(messages.multiselectPlaceholder):``,[intl]),handleAdvancedFilterOptionChange=useCallback((value,inputValue,form)=>{setAdvancedFilterOption(value),onAdvancedFilterOptionChange?.(fieldName,value);let valuesToUse=[];isBlankOption(value)||(valuesToUse=inputValue.length?inputValue:lastValuesRef.current);let newValue=createFieldValue(valuesToUse,value,isAdvancedFilterEnabled);form.setFieldValue(fieldName,newValue)},[fieldName,isAdvancedFilterEnabled,onAdvancedFilterOptionChange]),eventService=useMemo(()=>({onOpenChange:open=>{open&&setIsSelectOpen(!1)}}),[]),handleValueChange=useCallback(newValues=>{let mapped=mapTaxonomyValuesToFormValue(newValues,mode);lastValuesRef.current=mapped,setFieldValue(fieldName,createFieldValue(mapped,advancedFilterOption,isAdvancedFilterEnabled))},[advancedFilterOption,fieldName,isAdvancedFilterEnabled,mode,setFieldValue]);return jsx(`div`,{"data-testid":`${label}-field`,children:jsx(Field,{name:fieldName,children:({field,form})=>{let inputValue=getInputValue(field.value,isAdvancedFilterEnabled),pickerValue=mapFormValueToTaxonomyValues(inputValue);return jsxs(Fragment,{children:[jsx(AdvancedFilterSelect,{disableForm:disableForm??!1,fieldAdvancedFilterOptions,fieldNamePrefix,filterOptionsMap,isModified,label,onAdvancedFilterOptionChange,onOpenChange:setIsSelectOpen,onValueChange:value=>handleAdvancedFilterOptionChange(value,inputValue,form),open:isSelectOpen,portalElement,showLabel:!hasAccordion,value:advancedFilterOption}),!isBlankOption(advancedFilterOption)&&jsx(`div`,{className:clsx(metadata_taxonomy_field_advanced_module_default.comboboxWrapper,disableForm&&metadata_taxonomy_field_advanced_module_default.disabled),children:jsx(MetadataTaxonomyPicker,{containerClassName:className,disabled:disableForm,eventService,itemsService,levels:pickerLevels,mode,multiSelect:!0,onValueChange:handleValueChange,placeholder:getPlaceholder(pickerValue),portalElement,value:pickerValue})})]})}})})};export{MetadataTaxonomyPickerFieldAdvanced,MetadataTaxonomyPickerFieldAdvanced as default};
|
|
@@ -1,46 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { getTaxonomyPickerMode as t, mapFormValueToTaxonomyValues as n, mapLevelsToTaxonomyLevels as r, mapTaxonomyValuesToFormValue as i } from "./value-mapping.js";
|
|
3
|
-
import { Field as a, getIn as o, useFormikContext as s } from "formik";
|
|
4
|
-
import { useCallback as c, useMemo as l } from "react";
|
|
5
|
-
import { useIntl as u } from "react-intl";
|
|
6
|
-
import { jsx as d } from "react/jsx-runtime";
|
|
7
|
-
import { MetadataTaxonomyPicker as f } from "@box/metadata-taxonomy-picker";
|
|
8
|
-
var p = ({ className: p, disableForm: m, fieldNamePrefix: h, label: g, portalElement: _, isMultilevelTaxonomyFieldEnabled: v, hasAccordion: y, createTaxonomyItemsService: b }) => {
|
|
9
|
-
let { setFieldValue: x, values: S } = s(), { metadata: { templateKey: C, scope: w } } = S, T = u(), E = `${h}.value`, { key: D, optionsRules: { multiSelect: O, selectableLevels: k }, levels: A } = o(S, h), j = t(v, k), M = l(() => b({
|
|
10
|
-
scope: w,
|
|
11
|
-
templateKey: C,
|
|
12
|
-
fieldKey: D
|
|
13
|
-
}), [
|
|
14
|
-
b,
|
|
15
|
-
w,
|
|
16
|
-
C,
|
|
17
|
-
D
|
|
18
|
-
]), N = l(() => r(A, k), [A, k]), P = c((t) => O || !t.length ? T.formatMessage(e.taxonomyPlaceholder) : void 0, [O, T]), F = c((e) => x(E, i(e, j)), [
|
|
19
|
-
x,
|
|
20
|
-
E,
|
|
21
|
-
j
|
|
22
|
-
]);
|
|
23
|
-
return /* @__PURE__ */ d("div", {
|
|
24
|
-
"data-testid": `${g}-field`,
|
|
25
|
-
children: /* @__PURE__ */ d(a, {
|
|
26
|
-
name: E,
|
|
27
|
-
children: ({ field: e }) => {
|
|
28
|
-
let t = n(e.value);
|
|
29
|
-
return /* @__PURE__ */ d(f, {
|
|
30
|
-
containerClassName: p,
|
|
31
|
-
disabled: m,
|
|
32
|
-
itemsService: M,
|
|
33
|
-
label: y ? void 0 : g,
|
|
34
|
-
levels: N,
|
|
35
|
-
mode: j,
|
|
36
|
-
multiSelect: O,
|
|
37
|
-
onValueChange: F,
|
|
38
|
-
placeholder: P(t),
|
|
39
|
-
portalElement: _,
|
|
40
|
-
value: t
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
})
|
|
44
|
-
});
|
|
45
|
-
};
|
|
46
|
-
export { p as MetadataTaxonomyPickerField, p as default };
|
|
1
|
+
import messages from"../../../../../messages.js";import{getTaxonomyPickerMode,mapFormValueToTaxonomyValues,mapLevelsToTaxonomyLevels,mapTaxonomyValuesToFormValue}from"./value-mapping.js";import{Field,getIn,useFormikContext}from"formik";import{useCallback,useMemo}from"react";import{useIntl}from"react-intl";import{jsx}from"react/jsx-runtime";import{MetadataTaxonomyPicker}from"@box/metadata-taxonomy-picker";var MetadataTaxonomyPickerField=({className,disableForm,fieldNamePrefix,label,portalElement,isMultilevelTaxonomyFieldEnabled,hasAccordion,createTaxonomyItemsService})=>{let{setFieldValue,values}=useFormikContext(),{metadata:{templateKey,scope}}=values,intl=useIntl(),fieldName=`${fieldNamePrefix}.value`,{key,optionsRules:{multiSelect,selectableLevels},levels}=getIn(values,fieldNamePrefix),mode=getTaxonomyPickerMode(isMultilevelTaxonomyFieldEnabled,selectableLevels),itemsService=useMemo(()=>createTaxonomyItemsService({scope,templateKey,fieldKey:key}),[createTaxonomyItemsService,scope,templateKey,key]),pickerLevels=useMemo(()=>mapLevelsToTaxonomyLevels(levels,selectableLevels),[levels,selectableLevels]),getPlaceholder=useCallback(selectedValues=>multiSelect||!selectedValues.length?intl.formatMessage(messages.taxonomyPlaceholder):void 0,[multiSelect,intl]),handleValueChange=useCallback(newValues=>setFieldValue(fieldName,mapTaxonomyValuesToFormValue(newValues,mode)),[setFieldValue,fieldName,mode]);return jsx(`div`,{"data-testid":`${label}-field`,children:jsx(Field,{name:fieldName,children:({field})=>{let pickerValue=mapFormValueToTaxonomyValues(field.value);return jsx(MetadataTaxonomyPicker,{containerClassName:className,disabled:disableForm,itemsService,label:hasAccordion?void 0:label,levels:pickerLevels,mode,multiSelect,onValueChange:handleValueChange,placeholder:getPlaceholder(pickerValue),portalElement,value:pickerValue})}})})};export{MetadataTaxonomyPickerField,MetadataTaxonomyPickerField as default};
|
|
@@ -1,32 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
function t(e) {
|
|
3
|
-
return Array.isArray(e) ? e.map((e) => ({
|
|
4
|
-
id: e.value,
|
|
5
|
-
displayName: e.displayValue ?? "",
|
|
6
|
-
level: e.level,
|
|
7
|
-
ancestors: e.ancestors
|
|
8
|
-
})) : [];
|
|
9
|
-
}
|
|
10
|
-
function n(t, n) {
|
|
11
|
-
return n === e.SingleLevel ? t.map((e) => ({
|
|
12
|
-
value: e.id,
|
|
13
|
-
displayValue: e.displayName
|
|
14
|
-
})) : t.map((e) => ({
|
|
15
|
-
value: e.id,
|
|
16
|
-
displayValue: e.displayName,
|
|
17
|
-
level: e.level,
|
|
18
|
-
selectable: !0,
|
|
19
|
-
ancestors: e.ancestors
|
|
20
|
-
}));
|
|
21
|
-
}
|
|
22
|
-
function r(t, n) {
|
|
23
|
-
return t && n?.some((e) => e > 1) ? e.MultiLevel : e.SingleLevel;
|
|
24
|
-
}
|
|
25
|
-
function i(e, t) {
|
|
26
|
-
return e?.map((e) => ({
|
|
27
|
-
level: e.level,
|
|
28
|
-
displayName: e.displayName,
|
|
29
|
-
selectable: !!t?.includes(e.level)
|
|
30
|
-
})) ?? [];
|
|
31
|
-
}
|
|
32
|
-
export { r as getTaxonomyPickerMode, t as mapFormValueToTaxonomyValues, i as mapLevelsToTaxonomyLevels, n as mapTaxonomyValuesToFormValue };
|
|
1
|
+
import{TaxonomyPickerMode}from"@box/metadata-taxonomy-picker";function mapFormValueToTaxonomyValues(value){return Array.isArray(value)?value.map(option=>({id:option.value,displayName:option.displayValue??``,level:option.level,ancestors:option.ancestors})):[]}function mapTaxonomyValuesToFormValue(values,mode){return mode===TaxonomyPickerMode.SingleLevel?values.map(value=>({value:value.id,displayValue:value.displayName})):values.map(value=>({value:value.id,displayValue:value.displayName,level:value.level,selectable:!0,ancestors:value.ancestors}))}function getTaxonomyPickerMode(isMultilevelTaxonomyFieldEnabled,selectableLevels){return isMultilevelTaxonomyFieldEnabled&&selectableLevels?.some(level=>level>1)?TaxonomyPickerMode.MultiLevel:TaxonomyPickerMode.SingleLevel}function mapLevelsToTaxonomyLevels(levels,selectableLevels){return levels?.map(level=>({level:level.level,displayName:level.displayName,selectable:!!selectableLevels?.includes(level.level)}))??[]}export{getTaxonomyPickerMode,mapFormValueToTaxonomyValues,mapLevelsToTaxonomyLevels,mapTaxonomyValuesToFormValue};
|
package/dist/esm/lib/components/metadata-filter-fields/components/metadata-taxonomy-field/utils.js
CHANGED
|
@@ -1,8 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
var t = /* @__PURE__ */ function(e) {
|
|
3
|
-
return e.MATCH_ANY = "matchAny", e.MATCH_ALL = "matchAll", e.IS_BLANK = "isBlank", e.IS_NOT_BLANK = "isNotBlank", e;
|
|
4
|
-
}({}), n = (t, n) => t && n?.some(([e]) => e === t) ? t : e.MATCH_ANY, r = (t) => t === e.IS_BLANK || t === e.IS_NOT_BLANK, i = (e, t) => Array.isArray(e) ? e : t && typeof e == "object" && e && e.value || [], a = (e, t, n) => n ? {
|
|
5
|
-
value: r(t) ? [] : e,
|
|
6
|
-
advancedFilterOption: t
|
|
7
|
-
} : e;
|
|
8
|
-
export { t as TaxonomyAdvancedFilterOption, a as createFieldValue, n as getInitialAdvancedFilterValue, i as getInputValue, r as isBlankOption };
|
|
1
|
+
import{t as FilterKeyTypes}from"../../../../../../chunks/types.js";var TaxonomyAdvancedFilterOption=function(TaxonomyAdvancedFilterOption){return TaxonomyAdvancedFilterOption.MATCH_ANY=`matchAny`,TaxonomyAdvancedFilterOption.MATCH_ALL=`matchAll`,TaxonomyAdvancedFilterOption.IS_BLANK=`isBlank`,TaxonomyAdvancedFilterOption.IS_NOT_BLANK=`isNotBlank`,TaxonomyAdvancedFilterOption}({}),getInitialAdvancedFilterValue=(fieldAdvancedFilterOptions,filterOptionsMap)=>fieldAdvancedFilterOptions&&filterOptionsMap?.some(([key])=>key===fieldAdvancedFilterOptions)?fieldAdvancedFilterOptions:FilterKeyTypes.MATCH_ANY,isBlankOption=advancedFilterOption=>advancedFilterOption===FilterKeyTypes.IS_BLANK||advancedFilterOption===FilterKeyTypes.IS_NOT_BLANK,getInputValue=(fieldValue,isAdvancedFilterEnabled)=>Array.isArray(fieldValue)?fieldValue:isAdvancedFilterEnabled&&typeof fieldValue==`object`&&fieldValue&&fieldValue.value||[],createFieldValue=(inputValue,advancedFilterOption,isAdvancedFilterEnabled)=>isAdvancedFilterEnabled?{value:isBlankOption(advancedFilterOption)?[]:inputValue,advancedFilterOption}:inputValue;export{TaxonomyAdvancedFilterOption,createFieldValue,getInitialAdvancedFilterValue,getInputValue,isBlankOption};
|
package/dist/esm/lib/components/metadata-filter-fields/components/shared/advanced-filter-select.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
export { e as AdvancedFilterSelect, e as default };
|
|
1
|
+
import{t as AdvancedFilterSelect}from"../../../../../../chunks/advanced-filter-select.js";export{AdvancedFilterSelect,AdvancedFilterSelect as default};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
export { e as AdvancedFilterSelect };
|
|
1
|
+
import{t as AdvancedFilterSelect}from"../../../../../../chunks/advanced-filter-select.js";export{AdvancedFilterSelect};
|
|
@@ -1,27 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import t from "../../messages.js";
|
|
3
|
-
import { advancedFilterFieldTypes as n, filterFieldTypes as r } from "./filter-field-types.js";
|
|
4
|
-
var i = (n, r, i, a) => {
|
|
5
|
-
if (n.key === "modified_at" && r) return [
|
|
6
|
-
[e.SELECT_FILTER_TYPE, i.formatMessage(t.selectAdvancedFilterType)],
|
|
7
|
-
[e.IS_NOT_BLANK, i.formatMessage(t.modifiedAtFilterAnyTime)],
|
|
8
|
-
[e.TODAY, i.formatMessage(t.relativeDateFilterToday)],
|
|
9
|
-
[e.PAST, i.formatMessage(t.relativeDateFilterPast)],
|
|
10
|
-
[e.OLDER_THAN, i.formatMessage(t.relativeDateFilterOlderThan)],
|
|
11
|
-
[e.CUSTOM_RANGE, i.formatMessage(t.modifiedAtFilterCustomRange)]
|
|
12
|
-
];
|
|
13
|
-
if (n.type === "taxonomy") {
|
|
14
|
-
let t = n.optionsRules?.multiSelect ? "taxonomyMultiSelect" : "taxonomySingleSelect", r = a?.[t] || [];
|
|
15
|
-
return n.levels?.length === 1 ? r.filter(([t]) => t !== e.MATCH_AT_OR_WITHIN && t !== e.IS_NOT_AT_OR_WITHIN) : r;
|
|
16
|
-
}
|
|
17
|
-
return a?.[n.type] || [];
|
|
18
|
-
}, a = (e, t, i, a) => e.type === "taxonomy" ? i && t ? n.taxonomy : r.taxonomy : a[e.type] || r[e.type], o = ({ field: e, isAdvancedFilterEnabled: t, isAdvancedTaxonomy: o, intl: s, filterOptionsMap: c }) => {
|
|
19
|
-
let l = t ? n : r, u = a(e, t, o, l);
|
|
20
|
-
return {
|
|
21
|
-
fieldTypesMap: l,
|
|
22
|
-
MetadataFilterField: u,
|
|
23
|
-
showField: !!u && !e.hidden,
|
|
24
|
-
getFilterOptionsForField: () => i(e, t, s, c)
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
export { o as processMetadataField };
|
|
1
|
+
import{t as FilterKeyTypes}from"../../../../chunks/types.js";import messages from"../../messages.js";import{advancedFilterFieldTypes,filterFieldTypes}from"./filter-field-types.js";var getFilterOptions=(field,isAdvancedFilterEnabled,intl,filterOptionsMap)=>{if(field.key===`modified_at`&&isAdvancedFilterEnabled)return[[FilterKeyTypes.SELECT_FILTER_TYPE,intl.formatMessage(messages.selectAdvancedFilterType)],[FilterKeyTypes.IS_NOT_BLANK,intl.formatMessage(messages.modifiedAtFilterAnyTime)],[FilterKeyTypes.TODAY,intl.formatMessage(messages.relativeDateFilterToday)],[FilterKeyTypes.PAST,intl.formatMessage(messages.relativeDateFilterPast)],[FilterKeyTypes.OLDER_THAN,intl.formatMessage(messages.relativeDateFilterOlderThan)],[FilterKeyTypes.CUSTOM_RANGE,intl.formatMessage(messages.modifiedAtFilterCustomRange)]];if(field.type===`taxonomy`){let taxonomyKey=field.optionsRules?.multiSelect?`taxonomyMultiSelect`:`taxonomySingleSelect`,options=filterOptionsMap?.[taxonomyKey]||[];return field.levels?.length===1?options.filter(([key])=>key!==FilterKeyTypes.MATCH_AT_OR_WITHIN&&key!==FilterKeyTypes.IS_NOT_AT_OR_WITHIN):options}return filterOptionsMap?.[field.type]||[]},getMetadataFilterField=(field,isAdvancedFilterEnabled,isAdvancedTaxonomy,fieldTypesMap)=>field.type===`taxonomy`?isAdvancedTaxonomy&&isAdvancedFilterEnabled?advancedFilterFieldTypes.taxonomy:filterFieldTypes.taxonomy:fieldTypesMap[field.type]||filterFieldTypes[field.type],processMetadataField=({field,isAdvancedFilterEnabled,isAdvancedTaxonomy,intl,filterOptionsMap})=>{let fieldTypesMap=isAdvancedFilterEnabled?advancedFilterFieldTypes:filterFieldTypes,MetadataFilterField=getMetadataFilterField(field,isAdvancedFilterEnabled,isAdvancedTaxonomy,fieldTypesMap);return{fieldTypesMap,MetadataFilterField,showField:!!MetadataFilterField&&!field.hidden,getFilterOptionsForField:()=>getFilterOptions(field,isAdvancedFilterEnabled,intl,filterOptionsMap)}};export{processMetadataField};
|