@box/metadata-view 2.2.38 → 2.2.40
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/action-bar.js +1 -52
- package/dist/chunks/empty-state.js +1 -24
- package/dist/chunks/error-state.js +1 -23
- package/dist/chunks/filter-row.module.js +1 -7
- package/dist/chunks/filter-side-panel.js +1 -65
- package/dist/chunks/header.js +1 -62
- package/dist/chunks/inline-editing-cell.js +1 -34
- package/dist/chunks/item-action-menu.js +1 -86
- package/dist/chunks/metadata-grid.js +1 -44
- package/dist/chunks/metadata-location-field.js +1 -35
- package/dist/chunks/metadata-view.js +1 -104
- package/dist/chunks/pagination-controls.js +1 -40
- package/dist/chunks/table-row.js +1 -71
- package/dist/chunks/types.js +1 -6
- package/dist/chunks/types2.js +1 -4
- package/dist/chunks/zoom-button.js +1 -20
- package/dist/esm/index.js +1 -29
- package/dist/esm/lib/components/action-bar/action-bar.js +1 -2
- package/dist/esm/lib/components/action-bar/index.js +1 -2
- package/dist/esm/lib/components/action-bar/messages.js +1 -24
- package/dist/esm/lib/components/action-bar/zoom-button.js +1 -2
- package/dist/esm/lib/components/constants.js +1 -14
- package/dist/esm/lib/components/empty-state/empty-state.js +1 -2
- package/dist/esm/lib/components/empty-state/index.js +1 -2
- package/dist/esm/lib/components/empty-state/messages.js +1 -12
- package/dist/esm/lib/components/error-state/error-state.js +1 -2
- package/dist/esm/lib/components/error-state/index.js +1 -2
- package/dist/esm/lib/components/error-state/messages.js +1 -12
- package/dist/esm/lib/components/filter-row/advanced-field-content.js +1 -39
- package/dist/esm/lib/components/filter-row/advanced-filter-context.js +1 -3
- package/dist/esm/lib/components/filter-row/all-filters-chip.js +1 -34
- package/dist/esm/lib/components/filter-row/custom-trigger-chip.js +1 -40
- package/dist/esm/lib/components/filter-row/filter-chip-popover-context.js +1 -3
- package/dist/esm/lib/components/filter-row/filter-row.js +1 -46
- package/dist/esm/lib/components/filter-row/form-filter-chip.js +1 -99
- package/dist/esm/lib/components/filter-row/format-advanced-filter-label.js +1 -163
- package/dist/esm/lib/components/filter-row/index.js +1 -6
- package/dist/esm/lib/components/filter-row/initial-field-values.js +1 -51
- package/dist/esm/lib/components/filter-row/is-blank-or-not-blank-filter.js +1 -3
- package/dist/esm/lib/components/filter-row/is-filter-selected.js +1 -40
- package/dist/esm/lib/components/filter-row/messages.js +1 -112
- package/dist/esm/lib/components/filter-row/metadata-filter-chip.js +1 -87
- package/dist/esm/lib/components/filter-row/predefinedFilters/index.js +1 -2
- package/dist/esm/lib/components/filter-row/predefinedFilters/predefined-filter-options-factory.js +1 -15
- package/dist/esm/lib/components/filter-row/predefinedFilters/use-predefined-filter.js +1 -63
- package/dist/esm/lib/components/filter-row/select-filter-chip.js +1 -42
- package/dist/esm/lib/components/filter-row/use-form-filter-chip.js +1 -40
- package/dist/esm/lib/components/filter-row/use-nested-overlay-popover-open-change.js +1 -30
- package/dist/esm/lib/components/filter-sidepanel/filter-side-panel.js +1 -2
- package/dist/esm/lib/components/filter-sidepanel/filter.js +1 -96
- package/dist/esm/lib/components/filter-sidepanel/index.js +1 -3
- package/dist/esm/lib/components/filter-sidepanel/messages.js +1 -20
- package/dist/esm/lib/components/header/header.js +1 -2
- package/dist/esm/lib/components/header/index.js +1 -2
- package/dist/esm/lib/components/header/messages.js +1 -16
- package/dist/esm/lib/components/index.js +1 -26
- package/dist/esm/lib/components/item-action-menu/identifier.js +1 -5
- package/dist/esm/lib/components/item-action-menu/index.js +1 -2
- package/dist/esm/lib/components/item-action-menu/item-action-menu.js +1 -2
- package/dist/esm/lib/components/item-action-menu/messages.js +1 -6
- package/dist/esm/lib/components/metadata-grid/index.js +1 -2
- package/dist/esm/lib/components/metadata-grid/messages.js +1 -6
- package/dist/esm/lib/components/metadata-grid/metadata-grid.js +1 -2
- package/dist/esm/lib/components/metadata-table/actionColumn.js +1 -4
- package/dist/esm/lib/components/metadata-table/hooks/useInfiniteScrollTableItems.js +1 -52
- package/dist/esm/lib/components/metadata-table/index.js +1 -4
- package/dist/esm/lib/components/metadata-table/messages.js +1 -16
- package/dist/esm/lib/components/metadata-table/metadata-table.js +1 -94
- package/dist/esm/lib/components/metadata-table/table-body/action-cell-content.js +1 -13
- package/dist/esm/lib/components/metadata-table/table-body/ghost-table-body.js +1 -11
- package/dist/esm/lib/components/metadata-table/table-body/ghost-table-row/ghost-table-row.js +1 -9
- package/dist/esm/lib/components/metadata-table/table-body/ghost-table-row/index.js +1 -2
- package/dist/esm/lib/components/metadata-table/table-body/inline-editing-cell/index.js +1 -2
- package/dist/esm/lib/components/metadata-table/table-body/inline-editing-cell/inline-editing-cell.js +1 -2
- package/dist/esm/lib/components/metadata-table/table-body/table-body-with-data.js +1 -133
- package/dist/esm/lib/components/metadata-table/table-body/table-row/index.js +1 -2
- package/dist/esm/lib/components/metadata-table/table-body/table-row/table-row.js +1 -2
- package/dist/esm/lib/components/metadata-table/table-renderer.js +1 -37
- package/dist/esm/lib/components/metadata-value/index.js +1 -6
- package/dist/esm/lib/components/metadata-value/messages.js +1 -16
- package/dist/esm/lib/components/metadata-value/metadata-checkbox-field.js +1 -25
- package/dist/esm/lib/components/metadata-value/metadata-file-chip.js +1 -15
- package/dist/esm/lib/components/metadata-value/metadata-file-field.js +1 -13
- package/dist/esm/lib/components/metadata-value/metadata-location-field.js +1 -2
- package/dist/esm/lib/components/metadata-value/metadata-radio-field.js +1 -27
- package/dist/esm/lib/components/metadata-value/metadata-search-field.js +1 -20
- package/dist/esm/lib/components/pagination/index.js +1 -5
- package/dist/esm/lib/components/pagination/marker-based-pagination.js +1 -13
- package/dist/esm/lib/components/pagination/messages.js +1 -20
- package/dist/esm/lib/components/pagination/offset-based-pagination.js +1 -23
- package/dist/esm/lib/components/pagination/pagination-controls.js +1 -2
- package/dist/esm/lib/components/pagination/pagination.js +1 -21
- package/dist/esm/lib/components/pagination/utils.js +1 -5
- package/dist/esm/lib/components/sort-dropdown/index.js +1 -2
- package/dist/esm/lib/components/sort-dropdown/sort-dropdown.js +1 -39
- package/dist/esm/lib/components/switch-case/index.js +1 -2
- package/dist/esm/lib/components/switch-case/switch-case.js +1 -6
- package/dist/esm/lib/hooks/use-header.js +1 -45
- package/dist/esm/lib/index.js +1 -28
- package/dist/esm/lib/metadata-view.js +1 -2
- package/dist/styles/inline-editing-cell.css +1 -1
- package/package.json +17 -17
|
@@ -1,163 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { FilterKeyTypes as t } from "@box/metadata-filter";
|
|
3
|
-
var n = new Set([
|
|
4
|
-
t.GREATER_THAN_OR_EQUAL,
|
|
5
|
-
t.LESS_THAN_OR_EQUAL,
|
|
6
|
-
t.BETWEEN,
|
|
7
|
-
t.EQUALS,
|
|
8
|
-
t.IS_NOT
|
|
9
|
-
]), r = (e) => !!e && typeof e == "object" && !Array.isArray(e), i = (e) => r(e) && r(e.range), a = (e) => e !== void 0 && e !== "", o = (e) => typeof e == "string" || typeof e == "number" ? String(e) : r(e) ? typeof e.displayValue == "string" ? e.displayValue : typeof e.value == "string" || typeof e.value == "number" ? String(e.value) : "" : "", s = (e) => Array.isArray(e) ? e.map(o).filter(Boolean) : [], c = (e) => {
|
|
10
|
-
if (!e || Array.isArray(e)) return e;
|
|
11
|
-
if ("value" in e && Array.isArray(e.value)) return e.value;
|
|
12
|
-
if ("enum" in e) {
|
|
13
|
-
let t = e.enum;
|
|
14
|
-
if (Array.isArray(t)) {
|
|
15
|
-
let e = t[0];
|
|
16
|
-
return r(e) && "value" in e ? e.value : t;
|
|
17
|
-
}
|
|
18
|
-
return r(t) && "value" in t ? t.value : t;
|
|
19
|
-
}
|
|
20
|
-
return e;
|
|
21
|
-
}, l = (e, t) => {
|
|
22
|
-
if (typeof e != "string") return "";
|
|
23
|
-
let n = new Date(e);
|
|
24
|
-
return Number.isNaN(n.getTime()) ? "" : t(n, {
|
|
25
|
-
day: "numeric",
|
|
26
|
-
month: "numeric",
|
|
27
|
-
timeZone: "UTC",
|
|
28
|
-
year: "numeric"
|
|
29
|
-
});
|
|
30
|
-
}, u = (e, t) => {
|
|
31
|
-
if (!r(e)) return;
|
|
32
|
-
let n = e[t];
|
|
33
|
-
return typeof n == "string" || typeof n == "number" ? n : void 0;
|
|
34
|
-
}, d = (e, t) => {
|
|
35
|
-
if (!r(e)) return;
|
|
36
|
-
let n = "range" in e ? e.range : void 0;
|
|
37
|
-
return r(n) ? n[t] : void 0;
|
|
38
|
-
}, f = (e) => o(Array.isArray(e) ? e[0] : e), p = ({ name: n, advancedFilterOption: r, firstValue: i, remainingCount: a, formatMessage: o }) => o(r === t.IS_NOT || r === t.IS_NOT_ANY || r === t.DOES_NOT_CONTAIN ? e.advancedFilterMultiselectIsNot : e.advancedFilterMultiselect, {
|
|
39
|
-
name: n,
|
|
40
|
-
firstValue: i,
|
|
41
|
-
count: a
|
|
42
|
-
}), m = ({ name: n, advancedFilterOption: r, searchValueText: i, searchValueIsRange: a, hasSearchValue: o, formatMessage: s }) => {
|
|
43
|
-
switch (r) {
|
|
44
|
-
case t.MATCH_EXACTLY: return o ? s(e.advancedFilterMatchExactly, {
|
|
45
|
-
name: n,
|
|
46
|
-
searchValue: i
|
|
47
|
-
}) : n;
|
|
48
|
-
case t.CONTAINS:
|
|
49
|
-
case t.STARTS_WITH:
|
|
50
|
-
case t.MATCH_ANY:
|
|
51
|
-
case t.MATCH_ALL: return o ? s(e.advancedFilterWithSearchValue, {
|
|
52
|
-
name: n,
|
|
53
|
-
searchValue: i
|
|
54
|
-
}) : n;
|
|
55
|
-
case t.DOES_NOT_CONTAIN:
|
|
56
|
-
case t.IS_NOT_ANY: return o ? s(e.advancedFilterNotSearchValue, {
|
|
57
|
-
name: n,
|
|
58
|
-
searchValue: i
|
|
59
|
-
}) : n;
|
|
60
|
-
case t.IS_NOT: return a ? void 0 : o ? s(e.advancedFilterIsNot, {
|
|
61
|
-
name: n,
|
|
62
|
-
searchValue: i
|
|
63
|
-
}) : n;
|
|
64
|
-
case t.MATCH_AT_OR_WITHIN: return o ? s(e.advancedFilterMatchAtOrWithin, {
|
|
65
|
-
name: n,
|
|
66
|
-
searchValue: i
|
|
67
|
-
}) : n;
|
|
68
|
-
case t.IS_NOT_AT_OR_WITHIN: return o ? s(e.advancedFilterIsNotAtOrWithin, {
|
|
69
|
-
name: n,
|
|
70
|
-
searchValue: i
|
|
71
|
-
}) : n;
|
|
72
|
-
default: return;
|
|
73
|
-
}
|
|
74
|
-
}, h = ({ name: r, advancedFilterOption: i, gt: o, lt: s, searchValueText: c, hasSearchValue: l, formatMessage: u }) => {
|
|
75
|
-
if (n.has(i)) {
|
|
76
|
-
if (!l) return r;
|
|
77
|
-
switch (i) {
|
|
78
|
-
case t.GREATER_THAN_OR_EQUAL: return u(e.advancedFilterGreaterThanOrEqual, {
|
|
79
|
-
name: r,
|
|
80
|
-
searchValue: a(o) ? o : s
|
|
81
|
-
});
|
|
82
|
-
case t.LESS_THAN_OR_EQUAL: return u(e.advancedFilterLessThanOrEqual, {
|
|
83
|
-
name: r,
|
|
84
|
-
searchValue: a(s) ? s : o
|
|
85
|
-
});
|
|
86
|
-
case t.BETWEEN: return a(o) && !a(s) ? u(e.advancedFilterGreaterThanOrEqual, {
|
|
87
|
-
name: r,
|
|
88
|
-
searchValue: o
|
|
89
|
-
}) : !a(o) && a(s) ? u(e.advancedFilterLessThanOrEqual, {
|
|
90
|
-
name: r,
|
|
91
|
-
searchValue: s
|
|
92
|
-
}) : u(e.advancedFilterBetween, {
|
|
93
|
-
name: r,
|
|
94
|
-
gt: o,
|
|
95
|
-
lt: s
|
|
96
|
-
});
|
|
97
|
-
case t.EQUALS: return u(e.advancedFilterWithSearchValue, {
|
|
98
|
-
name: r,
|
|
99
|
-
searchValue: a(o) ? o : c
|
|
100
|
-
});
|
|
101
|
-
case t.IS_NOT: return u(e.advancedFilterNotSearchValue, {
|
|
102
|
-
name: r,
|
|
103
|
-
searchValue: a(o) ? o : s
|
|
104
|
-
});
|
|
105
|
-
default: return;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}, g = ({ name: n, advancedFilterOption: r, filterValue: i, formatDate: o, formatMessage: s }) => {
|
|
109
|
-
let c = u(i, "relativeDays");
|
|
110
|
-
switch (r) {
|
|
111
|
-
case t.TODAY: return s(e.advancedFilterToday, { name: n });
|
|
112
|
-
case t.NEXT: return a(c) ? s(e.advancedFilterNext, {
|
|
113
|
-
name: n,
|
|
114
|
-
searchValue: c
|
|
115
|
-
}) : n;
|
|
116
|
-
case t.PAST: return a(c) ? s(e.advancedFilterPast, {
|
|
117
|
-
name: n,
|
|
118
|
-
searchValue: c
|
|
119
|
-
}) : n;
|
|
120
|
-
case t.OLDER_THAN: return a(c) ? s(e.advancedFilterOlderThan, {
|
|
121
|
-
name: n,
|
|
122
|
-
searchValue: c
|
|
123
|
-
}) : n;
|
|
124
|
-
case t.CUSTOM_RANGE: return s(e.advancedFilterCustomRange, {
|
|
125
|
-
name: n,
|
|
126
|
-
startDate: l(d(i, "gt"), o),
|
|
127
|
-
endDate: l(d(i, "lt"), o)
|
|
128
|
-
});
|
|
129
|
-
default: return;
|
|
130
|
-
}
|
|
131
|
-
}, _ = ({ name: n, advancedFilterOption: r, filterValue: o, formatDate: l, formatMessage: u }) => {
|
|
132
|
-
if (!r) return n;
|
|
133
|
-
let d = c(o), _ = f(d), v = i(d), y = v ? d.range : void 0, b = y?.gt, x = y?.lt, S = s(d), C = _ !== "" || a(b) || a(x) || S.length > 0;
|
|
134
|
-
return S.length > 1 ? p({
|
|
135
|
-
name: n,
|
|
136
|
-
advancedFilterOption: r,
|
|
137
|
-
firstValue: S[0],
|
|
138
|
-
remainingCount: S.length - 1,
|
|
139
|
-
formatMessage: u
|
|
140
|
-
}) : r === t.IS_BLANK ? u(e.advancedFilterIsBlank, { name: n }) : r === t.IS_NOT_BLANK ? u(e.advancedFilterIsNotBlank, { name: n }) : m({
|
|
141
|
-
name: n,
|
|
142
|
-
advancedFilterOption: r,
|
|
143
|
-
searchValueText: _,
|
|
144
|
-
searchValueIsRange: v,
|
|
145
|
-
hasSearchValue: C,
|
|
146
|
-
formatMessage: u
|
|
147
|
-
}) ?? h({
|
|
148
|
-
name: n,
|
|
149
|
-
advancedFilterOption: r,
|
|
150
|
-
gt: b,
|
|
151
|
-
lt: x,
|
|
152
|
-
searchValueText: _,
|
|
153
|
-
hasSearchValue: C,
|
|
154
|
-
formatMessage: u
|
|
155
|
-
}) ?? g({
|
|
156
|
-
name: n,
|
|
157
|
-
advancedFilterOption: r,
|
|
158
|
-
filterValue: o,
|
|
159
|
-
formatDate: l,
|
|
160
|
-
formatMessage: u
|
|
161
|
-
}) ?? n;
|
|
162
|
-
};
|
|
163
|
-
export { _ as formatAdvancedFilterLabel };
|
|
1
|
+
import messages from"./messages.js";import{FilterKeyTypes}from"@box/metadata-filter";var RANGE_FILTER_OPTIONS=new Set([FilterKeyTypes.GREATER_THAN_OR_EQUAL,FilterKeyTypes.LESS_THAN_OR_EQUAL,FilterKeyTypes.BETWEEN,FilterKeyTypes.EQUALS,FilterKeyTypes.IS_NOT]),isRecord=value=>!!value&&typeof value==`object`&&!Array.isArray(value),isRangeValue=value=>isRecord(value)&&isRecord(value.range),hasValue=value=>value!==void 0&&value!==``,getDisplayValue=value=>typeof value==`string`||typeof value==`number`?String(value):isRecord(value)?typeof value.displayValue==`string`?value.displayValue:typeof value.value==`string`||typeof value.value==`number`?String(value.value):``:``,getDisplayValues=value=>Array.isArray(value)?value.map(getDisplayValue).filter(Boolean):[],getAdvancedSearchValue=filterValue=>{if(!filterValue||Array.isArray(filterValue))return filterValue;if(`value`in filterValue&&Array.isArray(filterValue.value))return filterValue.value;if(`enum`in filterValue){let enumValue=filterValue.enum;if(Array.isArray(enumValue)){let firstValue=enumValue[0];return isRecord(firstValue)&&`value`in firstValue?firstValue.value:enumValue}return isRecord(enumValue)&&`value`in enumValue?enumValue.value:enumValue}return filterValue},formatDateValue=(date,formatDate)=>{if(typeof date!=`string`)return``;let parsedDate=new Date(date);return Number.isNaN(parsedDate.getTime())?``:formatDate(parsedDate,{day:`numeric`,month:`numeric`,timeZone:`UTC`,year:`numeric`})},getDateFilterValue=(filterValue,key)=>{if(!isRecord(filterValue))return;let value=filterValue[key];return typeof value==`string`||typeof value==`number`?value:void 0},getDateRangeValue=(filterValue,key)=>{if(!isRecord(filterValue))return;let range=`range`in filterValue?filterValue.range:void 0;return isRecord(range)?range[key]:void 0},getScalarValue=value=>getDisplayValue(Array.isArray(value)?value[0]:value),formatMultiValueLabel=({name,advancedFilterOption,firstValue,remainingCount,formatMessage})=>formatMessage(advancedFilterOption===FilterKeyTypes.IS_NOT||advancedFilterOption===FilterKeyTypes.IS_NOT_ANY||advancedFilterOption===FilterKeyTypes.DOES_NOT_CONTAIN?messages.advancedFilterMultiselectIsNot:messages.advancedFilterMultiselect,{name,firstValue,count:remainingCount}),formatSearchValueLabel=({name,advancedFilterOption,searchValueText,searchValueIsRange,hasSearchValue,formatMessage})=>{switch(advancedFilterOption){case FilterKeyTypes.MATCH_EXACTLY:return hasSearchValue?formatMessage(messages.advancedFilterMatchExactly,{name,searchValue:searchValueText}):name;case FilterKeyTypes.CONTAINS:case FilterKeyTypes.STARTS_WITH:case FilterKeyTypes.MATCH_ANY:case FilterKeyTypes.MATCH_ALL:return hasSearchValue?formatMessage(messages.advancedFilterWithSearchValue,{name,searchValue:searchValueText}):name;case FilterKeyTypes.DOES_NOT_CONTAIN:case FilterKeyTypes.IS_NOT_ANY:return hasSearchValue?formatMessage(messages.advancedFilterNotSearchValue,{name,searchValue:searchValueText}):name;case FilterKeyTypes.IS_NOT:return searchValueIsRange?void 0:hasSearchValue?formatMessage(messages.advancedFilterIsNot,{name,searchValue:searchValueText}):name;case FilterKeyTypes.MATCH_AT_OR_WITHIN:return hasSearchValue?formatMessage(messages.advancedFilterMatchAtOrWithin,{name,searchValue:searchValueText}):name;case FilterKeyTypes.IS_NOT_AT_OR_WITHIN:return hasSearchValue?formatMessage(messages.advancedFilterIsNotAtOrWithin,{name,searchValue:searchValueText}):name;default:return}},formatRangeLabel=({name,advancedFilterOption,gt,lt,searchValueText,hasSearchValue,formatMessage})=>{if(RANGE_FILTER_OPTIONS.has(advancedFilterOption)){if(!hasSearchValue)return name;switch(advancedFilterOption){case FilterKeyTypes.GREATER_THAN_OR_EQUAL:return formatMessage(messages.advancedFilterGreaterThanOrEqual,{name,searchValue:hasValue(gt)?gt:lt});case FilterKeyTypes.LESS_THAN_OR_EQUAL:return formatMessage(messages.advancedFilterLessThanOrEqual,{name,searchValue:hasValue(lt)?lt:gt});case FilterKeyTypes.BETWEEN:return hasValue(gt)&&!hasValue(lt)?formatMessage(messages.advancedFilterGreaterThanOrEqual,{name,searchValue:gt}):!hasValue(gt)&&hasValue(lt)?formatMessage(messages.advancedFilterLessThanOrEqual,{name,searchValue:lt}):formatMessage(messages.advancedFilterBetween,{name,gt,lt});case FilterKeyTypes.EQUALS:return formatMessage(messages.advancedFilterWithSearchValue,{name,searchValue:hasValue(gt)?gt:searchValueText});case FilterKeyTypes.IS_NOT:return formatMessage(messages.advancedFilterNotSearchValue,{name,searchValue:hasValue(gt)?gt:lt});default:return}}},formatDateLabel=({name,advancedFilterOption,filterValue,formatDate,formatMessage})=>{let relativeDays=getDateFilterValue(filterValue,`relativeDays`);switch(advancedFilterOption){case FilterKeyTypes.TODAY:return formatMessage(messages.advancedFilterToday,{name});case FilterKeyTypes.NEXT:return hasValue(relativeDays)?formatMessage(messages.advancedFilterNext,{name,searchValue:relativeDays}):name;case FilterKeyTypes.PAST:return hasValue(relativeDays)?formatMessage(messages.advancedFilterPast,{name,searchValue:relativeDays}):name;case FilterKeyTypes.OLDER_THAN:return hasValue(relativeDays)?formatMessage(messages.advancedFilterOlderThan,{name,searchValue:relativeDays}):name;case FilterKeyTypes.CUSTOM_RANGE:return formatMessage(messages.advancedFilterCustomRange,{name,startDate:formatDateValue(getDateRangeValue(filterValue,`gt`),formatDate),endDate:formatDateValue(getDateRangeValue(filterValue,`lt`),formatDate)});default:return}},formatAdvancedFilterLabel=({name,advancedFilterOption,filterValue,formatDate,formatMessage})=>{if(!advancedFilterOption)return name;let searchValue=getAdvancedSearchValue(filterValue),searchValueText=getScalarValue(searchValue),searchValueIsRange=isRangeValue(searchValue),range=searchValueIsRange?searchValue.range:void 0,gt=range?.gt,lt=range?.lt,displayValues=getDisplayValues(searchValue),hasSearchValue=searchValueText!==``||hasValue(gt)||hasValue(lt)||displayValues.length>0;return displayValues.length>1?formatMultiValueLabel({name,advancedFilterOption,firstValue:displayValues[0],remainingCount:displayValues.length-1,formatMessage}):advancedFilterOption===FilterKeyTypes.IS_BLANK?formatMessage(messages.advancedFilterIsBlank,{name}):advancedFilterOption===FilterKeyTypes.IS_NOT_BLANK?formatMessage(messages.advancedFilterIsNotBlank,{name}):formatSearchValueLabel({name,advancedFilterOption,searchValueText,searchValueIsRange,hasSearchValue,formatMessage})??formatRangeLabel({name,advancedFilterOption,gt,lt,searchValueText,hasSearchValue,formatMessage})??formatDateLabel({name,advancedFilterOption,filterValue,formatDate,formatMessage})??name};export{formatAdvancedFilterLabel};
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { SelectFilterChip as t } from "./select-filter-chip.js";
|
|
3
|
-
import { MetadataFilterChip as n } from "./metadata-filter-chip.js";
|
|
4
|
-
import { t as r } from "../../../../chunks/types2.js";
|
|
5
|
-
import { FilterRow as i } from "./filter-row.js";
|
|
6
|
-
export { i as FilterRow, e as FormFilterChip, n as MetadataFilterChip, r as PredefinedFilterName, t as SelectFilterChip };
|
|
1
|
+
import{FormFilterChip}from"./form-filter-chip.js";import{SelectFilterChip}from"./select-filter-chip.js";import{MetadataFilterChip}from"./metadata-filter-chip.js";import{t as PredefinedFilterName}from"../../../../chunks/types2.js";import{FilterRow}from"./filter-row.js";export{FilterRow,FormFilterChip,MetadataFilterChip,PredefinedFilterName,SelectFilterChip};
|
|
@@ -1,51 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
var t = (e) => ({
|
|
3
|
-
key: e,
|
|
4
|
-
id: e
|
|
5
|
-
}), n = ({ fieldType: e, options: n }) => ["enum", "multiSelect"].includes(e) ? (n || []).map(t) : [], r = ({ fieldType: t, isAdvancedFilterEnabled: n }) => t === "taxonomy" ? n ? {
|
|
6
|
-
value: [],
|
|
7
|
-
advancedFilterOption: e.MATCH_ANY
|
|
8
|
-
} : [] : t === "date" ? {
|
|
9
|
-
customType: "anyTime",
|
|
10
|
-
range: {
|
|
11
|
-
gt: "",
|
|
12
|
-
lt: ""
|
|
13
|
-
}
|
|
14
|
-
} : t === "float" ? n ? { enum: [] } : { range: {
|
|
15
|
-
gt: "",
|
|
16
|
-
lt: ""
|
|
17
|
-
} } : { enum: [] }, i = (e) => {
|
|
18
|
-
if (Array.isArray(e)) return e.length > 1 ? "multiSelect" : "enum";
|
|
19
|
-
let t = e && typeof e == "object" && "value" in e ? e.value : void 0;
|
|
20
|
-
return t && t.length > 1 ? "multiSelect" : "enum";
|
|
21
|
-
}, a = (e) => Array.isArray(e) ? e.length > 1 ? "multiSelect" : "enum" : !e || typeof e != "object" ? "enum" : "customDays" in e || "relativeDays" in e || "customType" in e || "relativeType" in e ? "date" : "range" in e ? "float" : "value" in e && Array.isArray(e.value) ? "taxonomy" : "enum" in e ? i(e.enum) : "enum", o = (e, t) => {
|
|
22
|
-
let i = e.reduce((e, i) => {
|
|
23
|
-
let a = t?.[i.id]?.value, o = r({
|
|
24
|
-
fieldType: i.fieldType,
|
|
25
|
-
isAdvancedFilterEnabled: i.isAdvancedFilterEnabled
|
|
26
|
-
}), s = {
|
|
27
|
-
value: a ?? o,
|
|
28
|
-
fieldType: i.fieldType,
|
|
29
|
-
options: n(i)
|
|
30
|
-
};
|
|
31
|
-
return e[i.id] = i.fieldType === "taxonomy" ? {
|
|
32
|
-
...s,
|
|
33
|
-
key: i.key ?? i.id,
|
|
34
|
-
levels: i.levels,
|
|
35
|
-
optionsRules: i.optionsRules
|
|
36
|
-
} : s, e;
|
|
37
|
-
}, {});
|
|
38
|
-
t && Object.keys(t).filter((e) => !i[e]).forEach((e) => {
|
|
39
|
-
i[e] = {
|
|
40
|
-
value: t[e].value,
|
|
41
|
-
fieldType: a(t[e].value)
|
|
42
|
-
};
|
|
43
|
-
});
|
|
44
|
-
let o = e.find((e) => e.fieldType === "taxonomy");
|
|
45
|
-
return { metadata: {
|
|
46
|
-
fields: i,
|
|
47
|
-
scope: o?.scope,
|
|
48
|
-
templateKey: o?.templateKey
|
|
49
|
-
} };
|
|
50
|
-
};
|
|
51
|
-
export { r as getDefaultFieldValue, o as getInitialFieldValues, a as inferFieldType };
|
|
1
|
+
import{FilterKeyTypes}from"@box/metadata-filter";var toMetadataOption=template=>({key:template,id:template}),getOptions=({fieldType,options})=>[`enum`,`multiSelect`].includes(fieldType)?(options||[]).map(toMetadataOption):[],getDefaultFieldValue=({fieldType,isAdvancedFilterEnabled})=>fieldType===`taxonomy`?isAdvancedFilterEnabled?{value:[],advancedFilterOption:FilterKeyTypes.MATCH_ANY}:[]:fieldType===`date`?{customType:`anyTime`,range:{gt:``,lt:``}}:fieldType===`float`?isAdvancedFilterEnabled?{enum:[]}:{range:{gt:``,lt:``}}:{enum:[]},inferEnumFieldType=enumField=>{if(Array.isArray(enumField))return enumField.length>1?`multiSelect`:`enum`;let advancedEnumValues=enumField&&typeof enumField==`object`&&`value`in enumField?enumField.value:void 0;return advancedEnumValues&&advancedEnumValues.length>1?`multiSelect`:`enum`},inferFieldType=value=>Array.isArray(value)?value.length>1?`multiSelect`:`enum`:!value||typeof value!=`object`?`enum`:`customDays`in value||`relativeDays`in value||`customType`in value||`relativeType`in value?`date`:`range`in value?`float`:`value`in value&&Array.isArray(value.value)?`taxonomy`:`enum`in value?inferEnumFieldType(value.enum):`enum`,getInitialFieldValues=(filterOptions,customFieldValues)=>{let initialFieldValues=filterOptions.reduce((acc,filterOption)=>{let customValue=customFieldValues?.[filterOption.id]?.value,defaultValue=getDefaultFieldValue({fieldType:filterOption.fieldType,isAdvancedFilterEnabled:filterOption.isAdvancedFilterEnabled}),fieldValue={value:customValue??defaultValue,fieldType:filterOption.fieldType,options:getOptions(filterOption)};return acc[filterOption.id]=filterOption.fieldType===`taxonomy`?{...fieldValue,key:filterOption.key??filterOption.id,levels:filterOption.levels,optionsRules:filterOption.optionsRules}:fieldValue,acc},{});customFieldValues&&Object.keys(customFieldValues).filter(fieldId=>!initialFieldValues[fieldId]).forEach(fieldId=>{initialFieldValues[fieldId]={value:customFieldValues[fieldId].value,fieldType:inferFieldType(customFieldValues[fieldId].value)}});let taxonomyFilterOption=filterOptions.find(filterOption=>filterOption.fieldType===`taxonomy`);return{metadata:{fields:initialFieldValues,scope:taxonomyFilterOption?.scope,templateKey:taxonomyFilterOption?.templateKey}}};export{getDefaultFieldValue,getInitialFieldValues,inferFieldType};
|
|
@@ -1,3 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
var t = (t) => t === e.IS_BLANK || t === e.IS_NOT_BLANK;
|
|
3
|
-
export { t as isBlankOrNotBlankFilter };
|
|
1
|
+
import{FilterKeyTypes}from"@box/metadata-filter";var isBlankOrNotBlankFilter=option=>option===FilterKeyTypes.IS_BLANK||option===FilterKeyTypes.IS_NOT_BLANK;export{isBlankOrNotBlankFilter};
|
|
@@ -1,40 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { FilterKeyTypes as t } from "@box/metadata-filter";
|
|
3
|
-
var n = (e) => !!e && typeof e == "object" && !Array.isArray(e) && "advancedFilterOption" in e, r = ({ value: t, advancedFilterOption: n }) => e(n) ? !0 : !!(t && t.length > 0 && t[0]), i = (e) => !!e && typeof e == "object" && !Array.isArray(e) && "advancedFilterOption" in e, a = ({ value: t, advancedFilterOption: n }) => {
|
|
4
|
-
if (e(n)) return !0;
|
|
5
|
-
if (typeof t == "string") return !!t;
|
|
6
|
-
if (t && typeof t == "object" && "range" in t) {
|
|
7
|
-
let { range: e } = t;
|
|
8
|
-
return !!(e && (e.gt || e.lt));
|
|
9
|
-
}
|
|
10
|
-
return !1;
|
|
11
|
-
}, o = (e) => {
|
|
12
|
-
if ("advancedFilterOption" in e) return e.advancedFilterOption;
|
|
13
|
-
if ("enum" in e) {
|
|
14
|
-
let t = e.enum;
|
|
15
|
-
if (n(t)) return t.advancedFilterOption;
|
|
16
|
-
let r = t?.[0];
|
|
17
|
-
if (i(r)) return r.advancedFilterOption;
|
|
18
|
-
}
|
|
19
|
-
}, s = (e) => {
|
|
20
|
-
let n = o(e);
|
|
21
|
-
return n && n !== t.SELECT_FILTER_TYPE ? n : void 0;
|
|
22
|
-
}, c = (t) => {
|
|
23
|
-
if (Array.isArray(t)) return t.length > 0;
|
|
24
|
-
if ("advancedFilterOption" in t && e(t.advancedFilterOption)) return !0;
|
|
25
|
-
if ("value" in t && Array.isArray(t.value)) return t.value.length > 0;
|
|
26
|
-
if ("range" in t) {
|
|
27
|
-
let { range: e } = t;
|
|
28
|
-
return !!(e && (e.gt || e.lt));
|
|
29
|
-
}
|
|
30
|
-
if ("enum" in t) {
|
|
31
|
-
let e = t.enum;
|
|
32
|
-
if (n(e)) return r(e);
|
|
33
|
-
let o = e;
|
|
34
|
-
if (!o || o.length === 0) return !1;
|
|
35
|
-
let s = o[0];
|
|
36
|
-
return i(s) ? a(s) : !!s;
|
|
37
|
-
}
|
|
38
|
-
return !1;
|
|
39
|
-
};
|
|
40
|
-
export { s as extractAdvancedFilterOption, c as isFilterSelected };
|
|
1
|
+
import{isBlankOrNotBlankFilter}from"./is-blank-or-not-blank-filter.js";import{FilterKeyTypes}from"@box/metadata-filter";var isAdvancedEnumField=enumField=>!!enumField&&typeof enumField==`object`&&!Array.isArray(enumField)&&`advancedFilterOption`in enumField,isAdvancedEnumFieldSelected=({value,advancedFilterOption})=>isBlankOrNotBlankFilter(advancedFilterOption)?!0:!!(value&&value.length>0&&value[0]),isAdvancedArrayItem=item=>!!item&&typeof item==`object`&&!Array.isArray(item)&&`advancedFilterOption`in item,isAdvancedArrayItemSelected=({value,advancedFilterOption})=>{if(isBlankOrNotBlankFilter(advancedFilterOption))return!0;if(typeof value==`string`)return!!value;if(value&&typeof value==`object`&&`range`in value){let{range}=value;return!!(range&&(range.gt||range.lt))}return!1},extractRawFilterOption=value=>{if(`advancedFilterOption`in value)return value.advancedFilterOption;if(`enum`in value){let enumField=value.enum;if(isAdvancedEnumField(enumField))return enumField.advancedFilterOption;let firstItem=enumField?.[0];if(isAdvancedArrayItem(firstItem))return firstItem.advancedFilterOption}},extractAdvancedFilterOption=value=>{let embeddedOption=extractRawFilterOption(value);return embeddedOption&&embeddedOption!==FilterKeyTypes.SELECT_FILTER_TYPE?embeddedOption:void 0},isFilterSelected=value=>{if(Array.isArray(value))return value.length>0;if(`advancedFilterOption`in value&&isBlankOrNotBlankFilter(value.advancedFilterOption))return!0;if(`value`in value&&Array.isArray(value.value))return value.value.length>0;if(`range`in value){let{range}=value;return!!(range&&(range.gt||range.lt))}if(`enum`in value){let enumField=value.enum;if(isAdvancedEnumField(enumField))return isAdvancedEnumFieldSelected(enumField);let enumArray=enumField;if(!enumArray||enumArray.length===0)return!1;let firstItem=enumArray[0];return isAdvancedArrayItem(firstItem)?isAdvancedArrayItemSelected(firstItem):!!firstItem}return!1};export{extractAdvancedFilterOption,isFilterSelected};
|
|
@@ -1,112 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
var t = e({
|
|
3
|
-
applyButton: {
|
|
4
|
-
id: "groupSharedFeatures.metadataView.filterRow.applyButton",
|
|
5
|
-
defaultMessage: "Apply"
|
|
6
|
-
},
|
|
7
|
-
clearButton: {
|
|
8
|
-
id: "groupSharedFeatures.metadataView.filterRow.clearButton",
|
|
9
|
-
defaultMessage: "Clear"
|
|
10
|
-
},
|
|
11
|
-
textInputPlaceholder: {
|
|
12
|
-
id: "groupSharedFeatures.metadataView.filterRow.textInputPlaceholder",
|
|
13
|
-
defaultMessage: "Set Value"
|
|
14
|
-
},
|
|
15
|
-
allFilters: {
|
|
16
|
-
id: "groupSharedFeatures.metadataView.filterRow.AllFilters",
|
|
17
|
-
defaultMessage: "All Filters"
|
|
18
|
-
},
|
|
19
|
-
keywordSearchFilterPlaceholder: {
|
|
20
|
-
id: "groupSharedFeatures.metadataView.filterRow.keywordSearchFilterPlaceholder",
|
|
21
|
-
defaultMessage: "Enter keywords"
|
|
22
|
-
},
|
|
23
|
-
chipNameWithCount: {
|
|
24
|
-
id: "groupSharedFeatures.metadataView.filterRow.chipNameWithCount",
|
|
25
|
-
defaultMessage: "{name} ({count})"
|
|
26
|
-
},
|
|
27
|
-
fileTypeFilterTitle: {
|
|
28
|
-
id: "groupSharedFeatures.metadataView.filterRow.fileTypeFilterTitle",
|
|
29
|
-
defaultMessage: "File Type"
|
|
30
|
-
},
|
|
31
|
-
locationFilterTitle: {
|
|
32
|
-
id: "groupSharedFeatures.metadataView.filterRow.locationFilterTitle",
|
|
33
|
-
defaultMessage: "Location"
|
|
34
|
-
},
|
|
35
|
-
chipNameWithFilterOption: {
|
|
36
|
-
id: "groupSharedFeatures.metadataView.filterRow.chipNameWithFilterOption",
|
|
37
|
-
defaultMessage: "{name}: {optionLabel}"
|
|
38
|
-
},
|
|
39
|
-
advancedFilterWithSearchValue: {
|
|
40
|
-
id: "groupSharedFeatures.metadataView.filterRow.advancedFilterWithSearchValue",
|
|
41
|
-
defaultMessage: "{name}: {searchValue}"
|
|
42
|
-
},
|
|
43
|
-
advancedFilterMatchExactly: {
|
|
44
|
-
id: "groupSharedFeatures.metadataView.filterRow.advancedFilterMatchExactly",
|
|
45
|
-
defaultMessage: "{name}: \"{searchValue}\""
|
|
46
|
-
},
|
|
47
|
-
advancedFilterNotSearchValue: {
|
|
48
|
-
id: "groupSharedFeatures.metadataView.filterRow.advancedFilterNotSearchValue",
|
|
49
|
-
defaultMessage: "{name}: Not {searchValue}"
|
|
50
|
-
},
|
|
51
|
-
advancedFilterIsNot: {
|
|
52
|
-
id: "groupSharedFeatures.metadataView.filterRow.advancedFilterIsNot",
|
|
53
|
-
defaultMessage: "{name}: Not \"{searchValue}\""
|
|
54
|
-
},
|
|
55
|
-
advancedFilterIsBlank: {
|
|
56
|
-
id: "groupSharedFeatures.metadataView.filterRow.advancedFilterIsBlank",
|
|
57
|
-
defaultMessage: "{name}: is blank"
|
|
58
|
-
},
|
|
59
|
-
advancedFilterIsNotBlank: {
|
|
60
|
-
id: "groupSharedFeatures.metadataView.filterRow.advancedFilterIsNotBlank",
|
|
61
|
-
defaultMessage: "{name}: is not blank"
|
|
62
|
-
},
|
|
63
|
-
advancedFilterGreaterThanOrEqual: {
|
|
64
|
-
id: "groupSharedFeatures.metadataView.filterRow.advancedFilterGreaterThanOrEqual",
|
|
65
|
-
defaultMessage: "{name}: >= {searchValue}"
|
|
66
|
-
},
|
|
67
|
-
advancedFilterLessThanOrEqual: {
|
|
68
|
-
id: "groupSharedFeatures.metadataView.filterRow.advancedFilterLessThanOrEqual",
|
|
69
|
-
defaultMessage: "{name}: <= {searchValue}"
|
|
70
|
-
},
|
|
71
|
-
advancedFilterBetween: {
|
|
72
|
-
id: "groupSharedFeatures.metadataView.filterRow.advancedFilterBetween",
|
|
73
|
-
defaultMessage: "{name}: {gt}-{lt}"
|
|
74
|
-
},
|
|
75
|
-
advancedFilterMultiselect: {
|
|
76
|
-
id: "groupSharedFeatures.metadataView.filterRow.advancedFilterMultiselect",
|
|
77
|
-
defaultMessage: "{name}: {firstValue} +{count}"
|
|
78
|
-
},
|
|
79
|
-
advancedFilterMultiselectIsNot: {
|
|
80
|
-
id: "groupSharedFeatures.metadataView.filterRow.advancedFilterMultiselectIsNot",
|
|
81
|
-
defaultMessage: "{name}: Not {firstValue} +{count}"
|
|
82
|
-
},
|
|
83
|
-
advancedFilterMatchAtOrWithin: {
|
|
84
|
-
id: "groupSharedFeatures.metadataView.filterRow.advancedFilterMatchAtOrWithin",
|
|
85
|
-
defaultMessage: "{name}: at or within {searchValue}"
|
|
86
|
-
},
|
|
87
|
-
advancedFilterIsNotAtOrWithin: {
|
|
88
|
-
id: "groupSharedFeatures.metadataView.filterRow.advancedFilterIsNotAtOrWithin",
|
|
89
|
-
defaultMessage: "{name}: not at or within {searchValue}"
|
|
90
|
-
},
|
|
91
|
-
advancedFilterToday: {
|
|
92
|
-
id: "groupSharedFeatures.metadataView.filterRow.advancedFilterToday",
|
|
93
|
-
defaultMessage: "{name}: Today"
|
|
94
|
-
},
|
|
95
|
-
advancedFilterNext: {
|
|
96
|
-
id: "groupSharedFeatures.metadataView.filterRow.advancedFilterNext",
|
|
97
|
-
defaultMessage: "{name}: Next {searchValue} days"
|
|
98
|
-
},
|
|
99
|
-
advancedFilterPast: {
|
|
100
|
-
id: "groupSharedFeatures.metadataView.filterRow.advancedFilterPast",
|
|
101
|
-
defaultMessage: "{name}: Past {searchValue} days"
|
|
102
|
-
},
|
|
103
|
-
advancedFilterOlderThan: {
|
|
104
|
-
id: "groupSharedFeatures.metadataView.filterRow.advancedFilterOlderThan",
|
|
105
|
-
defaultMessage: "{name}: Older than {searchValue} days"
|
|
106
|
-
},
|
|
107
|
-
advancedFilterCustomRange: {
|
|
108
|
-
id: "groupSharedFeatures.metadataView.filterRow.advancedFilterCustomRange",
|
|
109
|
-
defaultMessage: "{name}: {startDate} - {endDate}"
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
export { t as default };
|
|
1
|
+
import{defineMessages}from"react-intl";var messages=defineMessages({applyButton:{id:`groupSharedFeatures.metadataView.filterRow.applyButton`,defaultMessage:`Apply`},clearButton:{id:`groupSharedFeatures.metadataView.filterRow.clearButton`,defaultMessage:`Clear`},textInputPlaceholder:{id:`groupSharedFeatures.metadataView.filterRow.textInputPlaceholder`,defaultMessage:`Set Value`},allFilters:{id:`groupSharedFeatures.metadataView.filterRow.AllFilters`,defaultMessage:`All Filters`},keywordSearchFilterPlaceholder:{id:`groupSharedFeatures.metadataView.filterRow.keywordSearchFilterPlaceholder`,defaultMessage:`Enter keywords`},chipNameWithCount:{id:`groupSharedFeatures.metadataView.filterRow.chipNameWithCount`,defaultMessage:`{name} ({count})`},fileTypeFilterTitle:{id:`groupSharedFeatures.metadataView.filterRow.fileTypeFilterTitle`,defaultMessage:`File Type`},locationFilterTitle:{id:`groupSharedFeatures.metadataView.filterRow.locationFilterTitle`,defaultMessage:`Location`},chipNameWithFilterOption:{id:`groupSharedFeatures.metadataView.filterRow.chipNameWithFilterOption`,defaultMessage:`{name}: {optionLabel}`},advancedFilterWithSearchValue:{id:`groupSharedFeatures.metadataView.filterRow.advancedFilterWithSearchValue`,defaultMessage:`{name}: {searchValue}`},advancedFilterMatchExactly:{id:`groupSharedFeatures.metadataView.filterRow.advancedFilterMatchExactly`,defaultMessage:`{name}: "{searchValue}"`},advancedFilterNotSearchValue:{id:`groupSharedFeatures.metadataView.filterRow.advancedFilterNotSearchValue`,defaultMessage:`{name}: Not {searchValue}`},advancedFilterIsNot:{id:`groupSharedFeatures.metadataView.filterRow.advancedFilterIsNot`,defaultMessage:`{name}: Not "{searchValue}"`},advancedFilterIsBlank:{id:`groupSharedFeatures.metadataView.filterRow.advancedFilterIsBlank`,defaultMessage:`{name}: is blank`},advancedFilterIsNotBlank:{id:`groupSharedFeatures.metadataView.filterRow.advancedFilterIsNotBlank`,defaultMessage:`{name}: is not blank`},advancedFilterGreaterThanOrEqual:{id:`groupSharedFeatures.metadataView.filterRow.advancedFilterGreaterThanOrEqual`,defaultMessage:`{name}: >= {searchValue}`},advancedFilterLessThanOrEqual:{id:`groupSharedFeatures.metadataView.filterRow.advancedFilterLessThanOrEqual`,defaultMessage:`{name}: <= {searchValue}`},advancedFilterBetween:{id:`groupSharedFeatures.metadataView.filterRow.advancedFilterBetween`,defaultMessage:`{name}: {gt}-{lt}`},advancedFilterMultiselect:{id:`groupSharedFeatures.metadataView.filterRow.advancedFilterMultiselect`,defaultMessage:`{name}: {firstValue} +{count}`},advancedFilterMultiselectIsNot:{id:`groupSharedFeatures.metadataView.filterRow.advancedFilterMultiselectIsNot`,defaultMessage:`{name}: Not {firstValue} +{count}`},advancedFilterMatchAtOrWithin:{id:`groupSharedFeatures.metadataView.filterRow.advancedFilterMatchAtOrWithin`,defaultMessage:`{name}: at or within {searchValue}`},advancedFilterIsNotAtOrWithin:{id:`groupSharedFeatures.metadataView.filterRow.advancedFilterIsNotAtOrWithin`,defaultMessage:`{name}: not at or within {searchValue}`},advancedFilterToday:{id:`groupSharedFeatures.metadataView.filterRow.advancedFilterToday`,defaultMessage:`{name}: Today`},advancedFilterNext:{id:`groupSharedFeatures.metadataView.filterRow.advancedFilterNext`,defaultMessage:`{name}: Next {searchValue} days`},advancedFilterPast:{id:`groupSharedFeatures.metadataView.filterRow.advancedFilterPast`,defaultMessage:`{name}: Past {searchValue} days`},advancedFilterOlderThan:{id:`groupSharedFeatures.metadataView.filterRow.advancedFilterOlderThan`,defaultMessage:`{name}: Older than {searchValue} days`},advancedFilterCustomRange:{id:`groupSharedFeatures.metadataView.filterRow.advancedFilterCustomRange`,defaultMessage:`{name}: {startDate} - {endDate}`}});export{messages as default};
|
|
@@ -1,87 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { AdvancedFieldContent as t } from "./advanced-field-content.js";
|
|
3
|
-
import { CustomTriggerChip as n } from "./custom-trigger-chip.js";
|
|
4
|
-
import { FormFilterChip as r } from "./form-filter-chip.js";
|
|
5
|
-
import { SelectFilterChip as i } from "./select-filter-chip.js";
|
|
6
|
-
import { useIntl as a } from "react-intl";
|
|
7
|
-
import { MetadataDateField as o, MetadataFloatField as s, MetadataStringField as c } from "@box/metadata-filter";
|
|
8
|
-
import { jsx as l } from "react/jsx-runtime";
|
|
9
|
-
var u = ({ filterOption: u, formRef: d }) => {
|
|
10
|
-
let { advancedFilterOptionsMap: f, canUseRelativeDates: p, customDateFilterOptions: m, fieldType: h, icon: g, id: _, isAdvancedFilterEnabled: v, isMultilevelTaxonomyFieldEnabled: y, name: b, onTrigger: x, options: S, placeholder: C, taxonomyOptionsFetcher: w, variant: T } = u, { locale: E } = a(), D = `metadata.fields.${_}`, O = b ?? "";
|
|
11
|
-
if (x) return /* @__PURE__ */ l(n, {
|
|
12
|
-
id: _,
|
|
13
|
-
label: O,
|
|
14
|
-
icon: g,
|
|
15
|
-
isAdvancedFilterEnabled: v,
|
|
16
|
-
onClear: u.onClear,
|
|
17
|
-
onTrigger: x
|
|
18
|
-
});
|
|
19
|
-
if (h === "multiSelect" && T === "file") return /* @__PURE__ */ l(e, { id: _ });
|
|
20
|
-
if (v) return /* @__PURE__ */ l(r, {
|
|
21
|
-
advancedFilterOptionsMap: f,
|
|
22
|
-
formRef: d,
|
|
23
|
-
icon: g,
|
|
24
|
-
id: _,
|
|
25
|
-
isAdvancedFilterEnabled: !0,
|
|
26
|
-
name: b,
|
|
27
|
-
children: /* @__PURE__ */ l(t, {
|
|
28
|
-
fieldType: h,
|
|
29
|
-
fieldNamePrefix: D,
|
|
30
|
-
filterOptionsMap: f,
|
|
31
|
-
isMultilevelTaxonomyFieldEnabled: y,
|
|
32
|
-
label: O,
|
|
33
|
-
locale: E,
|
|
34
|
-
portalElement: d.current,
|
|
35
|
-
taxonomyOptionsFetcher: w
|
|
36
|
-
})
|
|
37
|
-
}, _);
|
|
38
|
-
switch (h) {
|
|
39
|
-
case "date": return /* @__PURE__ */ l(r, {
|
|
40
|
-
formRef: d,
|
|
41
|
-
icon: g,
|
|
42
|
-
id: _,
|
|
43
|
-
name: b,
|
|
44
|
-
children: /* @__PURE__ */ l(o, {
|
|
45
|
-
canUseRelativeDates: p,
|
|
46
|
-
customDateFilterOptions: m,
|
|
47
|
-
direction: "vertical",
|
|
48
|
-
fieldNamePrefix: D,
|
|
49
|
-
label: O,
|
|
50
|
-
locale: E
|
|
51
|
-
})
|
|
52
|
-
}, _);
|
|
53
|
-
case "float": return /* @__PURE__ */ l(r, {
|
|
54
|
-
formRef: d,
|
|
55
|
-
icon: g,
|
|
56
|
-
id: _,
|
|
57
|
-
name: b,
|
|
58
|
-
children: /* @__PURE__ */ l(s, {
|
|
59
|
-
fieldNamePrefix: D,
|
|
60
|
-
label: O
|
|
61
|
-
})
|
|
62
|
-
}, _);
|
|
63
|
-
case "string": return /* @__PURE__ */ l(r, {
|
|
64
|
-
formRef: d,
|
|
65
|
-
icon: g,
|
|
66
|
-
id: _,
|
|
67
|
-
name: b,
|
|
68
|
-
children: /* @__PURE__ */ l(c, {
|
|
69
|
-
fieldNamePrefix: D,
|
|
70
|
-
label: O
|
|
71
|
-
})
|
|
72
|
-
}, _);
|
|
73
|
-
case "multiSelect":
|
|
74
|
-
case "enum": return /* @__PURE__ */ l(i, {
|
|
75
|
-
fieldNamePrefix: D,
|
|
76
|
-
formRef: d,
|
|
77
|
-
icon: g,
|
|
78
|
-
id: _,
|
|
79
|
-
name: b,
|
|
80
|
-
options: S,
|
|
81
|
-
placeholder: C,
|
|
82
|
-
type: h
|
|
83
|
-
});
|
|
84
|
-
default: return null;
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
export { u as MetadataFilterChip, u as default };
|
|
1
|
+
import{MetadataFileChip}from"../metadata-value/metadata-file-chip.js";import{AdvancedFieldContent}from"./advanced-field-content.js";import{CustomTriggerChip}from"./custom-trigger-chip.js";import{FormFilterChip}from"./form-filter-chip.js";import{SelectFilterChip}from"./select-filter-chip.js";import{useIntl}from"react-intl";import{MetadataDateField,MetadataFloatField,MetadataStringField}from"@box/metadata-filter";import{jsx}from"react/jsx-runtime";var MetadataFilterChip=({filterOption,formRef})=>{let{advancedFilterOptionsMap,canUseRelativeDates,customDateFilterOptions,fieldType,icon,id,isAdvancedFilterEnabled,isMultilevelTaxonomyFieldEnabled,name,onTrigger,options,placeholder,taxonomyOptionsFetcher,variant}=filterOption,{locale}=useIntl(),fieldNamePrefix=`metadata.fields.${id}`,label=name??``;if(onTrigger)return jsx(CustomTriggerChip,{id,label,icon,isAdvancedFilterEnabled,onClear:filterOption.onClear,onTrigger});if(fieldType===`multiSelect`&&variant===`file`)return jsx(MetadataFileChip,{id});if(isAdvancedFilterEnabled)return jsx(FormFilterChip,{advancedFilterOptionsMap,formRef,icon,id,isAdvancedFilterEnabled:!0,name,children:jsx(AdvancedFieldContent,{fieldType,fieldNamePrefix,filterOptionsMap:advancedFilterOptionsMap,isMultilevelTaxonomyFieldEnabled,label,locale,portalElement:formRef.current,taxonomyOptionsFetcher})},id);switch(fieldType){case`date`:return jsx(FormFilterChip,{formRef,icon,id,name,children:jsx(MetadataDateField,{canUseRelativeDates,customDateFilterOptions,direction:`vertical`,fieldNamePrefix,label,locale})},id);case`float`:return jsx(FormFilterChip,{formRef,icon,id,name,children:jsx(MetadataFloatField,{fieldNamePrefix,label})},id);case`string`:return jsx(FormFilterChip,{formRef,icon,id,name,children:jsx(MetadataStringField,{fieldNamePrefix,label})},id);case`multiSelect`:case`enum`:return jsx(SelectFilterChip,{fieldNamePrefix,formRef,icon,id,name,options,placeholder,type:fieldType});default:return null}};export{MetadataFilterChip,MetadataFilterChip as default};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
export { e as PredefinedFilterName };
|
|
1
|
+
import{t as PredefinedFilterName}from"../../../../../chunks/types2.js";export{PredefinedFilterName};
|
package/dist/esm/lib/components/filter-row/predefinedFilters/predefined-filter-options-factory.js
CHANGED
|
@@ -1,15 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import t from "lodash/merge";
|
|
3
|
-
function n(n = {}) {
|
|
4
|
-
return t({
|
|
5
|
-
[e.KeywordSearchFilterGroup]: { isDisabled: !1 },
|
|
6
|
-
[e.FileTypeFilterGroup]: { isDisabled: !1 },
|
|
7
|
-
[e.LocationFilterGroup]: {
|
|
8
|
-
isDisabled: !1,
|
|
9
|
-
triggerCallback: () => {
|
|
10
|
-
console.error("Custom callback needs to be provided");
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
}, n);
|
|
14
|
-
}
|
|
15
|
-
export { n as predefinedFilterOptionsFactory };
|
|
1
|
+
import{t as PredefinedFilterName}from"../../../../../chunks/types2.js";import merge from"lodash/merge";function predefinedFilterOptionsFactory(providedOptions={}){return merge({[PredefinedFilterName.KeywordSearchFilterGroup]:{isDisabled:!1},[PredefinedFilterName.FileTypeFilterGroup]:{isDisabled:!1},[PredefinedFilterName.LocationFilterGroup]:{isDisabled:!1,triggerCallback:()=>{console.error(`Custom callback needs to be provided`)}}},providedOptions)}export{predefinedFilterOptionsFactory};
|
|
@@ -1,63 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { t } from "../../../../../chunks/types2.js";
|
|
3
|
-
import { predefinedFilterOptionsFactory as n } from "./predefined-filter-options-factory.js";
|
|
4
|
-
import { useIntl as r } from "react-intl";
|
|
5
|
-
var i = {
|
|
6
|
-
fieldType: "string",
|
|
7
|
-
id: "keyword-filter",
|
|
8
|
-
name: "",
|
|
9
|
-
selected: !1,
|
|
10
|
-
variant: "search"
|
|
11
|
-
}, a = {
|
|
12
|
-
fieldType: "multiSelect",
|
|
13
|
-
id: "mimetype-filter",
|
|
14
|
-
name: "",
|
|
15
|
-
selected: !1,
|
|
16
|
-
shouldRenderChip: !0,
|
|
17
|
-
variant: "file"
|
|
18
|
-
}, o = {
|
|
19
|
-
fieldType: "enum",
|
|
20
|
-
id: "location-filter",
|
|
21
|
-
name: "",
|
|
22
|
-
selected: !1,
|
|
23
|
-
shouldRenderChip: !1,
|
|
24
|
-
variant: "file"
|
|
25
|
-
}, s = ({ isDisabled: t, position: n }) => {
|
|
26
|
-
let { formatMessage: a } = r();
|
|
27
|
-
return t ? [] : [{
|
|
28
|
-
filters: [{
|
|
29
|
-
...i,
|
|
30
|
-
placeholder: a(e.keywordSearchFilterPlaceholder),
|
|
31
|
-
position: n
|
|
32
|
-
}],
|
|
33
|
-
toggleable: !1
|
|
34
|
-
}];
|
|
35
|
-
}, c = ({ isDisabled: t, position: n }) => {
|
|
36
|
-
let { formatMessage: i } = r();
|
|
37
|
-
return t ? [] : [{
|
|
38
|
-
filters: [{
|
|
39
|
-
...a,
|
|
40
|
-
position: n
|
|
41
|
-
}],
|
|
42
|
-
title: i(e.fileTypeFilterTitle),
|
|
43
|
-
toggleable: !0
|
|
44
|
-
}];
|
|
45
|
-
}, l = ({ isDisabled: t, ...n }) => {
|
|
46
|
-
let { formatMessage: i } = r();
|
|
47
|
-
return t ? [] : [{
|
|
48
|
-
filters: [{
|
|
49
|
-
...o,
|
|
50
|
-
...n
|
|
51
|
-
}],
|
|
52
|
-
title: i(e.locationFilterTitle),
|
|
53
|
-
toggleable: !0
|
|
54
|
-
}];
|
|
55
|
-
}, u = (e = {}) => {
|
|
56
|
-
let r = n(e), i = s(r[t.KeywordSearchFilterGroup]), a = c(r[t.FileTypeFilterGroup]), o = l(r[t.LocationFilterGroup]);
|
|
57
|
-
return [
|
|
58
|
-
...i,
|
|
59
|
-
...a,
|
|
60
|
-
...o
|
|
61
|
-
];
|
|
62
|
-
};
|
|
63
|
-
export { u as usePredefinedFilter };
|
|
1
|
+
import messages from"../messages.js";import{t as PredefinedFilterName}from"../../../../../chunks/types2.js";import{predefinedFilterOptionsFactory}from"./predefined-filter-options-factory.js";import{useIntl}from"react-intl";var keywordSearchFilterOptionTemplate={fieldType:`string`,id:`keyword-filter`,name:``,selected:!1,variant:`search`},fileTypeFilterOptionTemplate={fieldType:`multiSelect`,id:`mimetype-filter`,name:``,selected:!1,shouldRenderChip:!0,variant:`file`},locationFilterOptionTemplate={fieldType:`enum`,id:`location-filter`,name:``,selected:!1,shouldRenderChip:!1,variant:`file`},useKeywordFilterGroup=({isDisabled,position})=>{let{formatMessage}=useIntl();return isDisabled?[]:[{filters:[{...keywordSearchFilterOptionTemplate,placeholder:formatMessage(messages.keywordSearchFilterPlaceholder),position}],toggleable:!1}]},useFileTypeFilterGroup=({isDisabled,position})=>{let{formatMessage}=useIntl();return isDisabled?[]:[{filters:[{...fileTypeFilterOptionTemplate,position}],title:formatMessage(messages.fileTypeFilterTitle),toggleable:!0}]},useLocationFilterGroup=({isDisabled,...options})=>{let{formatMessage}=useIntl();return isDisabled?[]:[{filters:[{...locationFilterOptionTemplate,...options}],title:formatMessage(messages.locationFilterTitle),toggleable:!0}]},usePredefinedFilter=(providedOptions={})=>{let predefinedFilterOptions=predefinedFilterOptionsFactory(providedOptions),keywordFilterGroup=useKeywordFilterGroup(predefinedFilterOptions[PredefinedFilterName.KeywordSearchFilterGroup]),fileTypeFilterGroup=useFileTypeFilterGroup(predefinedFilterOptions[PredefinedFilterName.FileTypeFilterGroup]),locationFilterGroup=useLocationFilterGroup(predefinedFilterOptions[PredefinedFilterName.LocationFilterGroup]);return[...keywordFilterGroup,...fileTypeFilterGroup,...locationFilterGroup]};export{usePredefinedFilter};
|
|
@@ -1,42 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { DropdownMenu as t, FilterChip as n } from "@box/blueprint-web";
|
|
3
|
-
import { useState as r } from "react";
|
|
4
|
-
import { useIntl as i } from "react-intl";
|
|
5
|
-
import { useFormikContext as a } from "formik";
|
|
6
|
-
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
7
|
-
var c = ({ fieldNamePrefix: c, formRef: l, icon: u, id: d, name: f = "", options: p, type: m, placeholder: h }) => {
|
|
8
|
-
let { formatMessage: g } = i(), [_, v] = r(!1), { values: y, setFieldValue: b, submitForm: x } = a(), S = y.metadata?.fields?.[d]?.value?.enum, C = new Set(Array.isArray(S) ? S : []), w = C.size > 0 ? g(e.chipNameWithCount, {
|
|
9
|
-
name: f,
|
|
10
|
-
count: C.size
|
|
11
|
-
}) : f, T = !!h && m !== "multiSelect", E = async (e, t) => {
|
|
12
|
-
m === "enum" ? C.clear() : C.delete(t), e && t !== h && C.add(t), await b(`${c}.value.enum`, Array.from(C)), x();
|
|
13
|
-
};
|
|
14
|
-
return /* @__PURE__ */ s(t.Root, {
|
|
15
|
-
onOpenChange: v,
|
|
16
|
-
open: _,
|
|
17
|
-
children: [/* @__PURE__ */ o(t.Trigger, {
|
|
18
|
-
asChild: !0,
|
|
19
|
-
children: /* @__PURE__ */ s(n.TriggerChip, {
|
|
20
|
-
selected: C.size > 0,
|
|
21
|
-
value: d,
|
|
22
|
-
children: [
|
|
23
|
-
u && /* @__PURE__ */ o(n.Icon, { icon: u }),
|
|
24
|
-
/* @__PURE__ */ o(n.Label, { children: w }),
|
|
25
|
-
/* @__PURE__ */ o(n.DropdownIndicator, {})
|
|
26
|
-
]
|
|
27
|
-
}, d)
|
|
28
|
-
}), /* @__PURE__ */ s(t.Content, {
|
|
29
|
-
container: l.current,
|
|
30
|
-
children: [T && /* @__PURE__ */ o(t.CheckboxItem, {
|
|
31
|
-
checked: C.size === 0,
|
|
32
|
-
onCheckedChange: (e) => E(e, h),
|
|
33
|
-
children: h
|
|
34
|
-
}, h), p?.map((e) => /* @__PURE__ */ o(t.CheckboxItem, {
|
|
35
|
-
checked: C.has(e),
|
|
36
|
-
onCheckedChange: (t) => E(t, e),
|
|
37
|
-
children: e
|
|
38
|
-
}, e))]
|
|
39
|
-
})]
|
|
40
|
-
});
|
|
41
|
-
};
|
|
42
|
-
export { c as SelectFilterChip };
|
|
1
|
+
import messages from"./messages.js";import{DropdownMenu,FilterChip}from"@box/blueprint-web";import{useState}from"react";import{useIntl}from"react-intl";import{useFormikContext}from"formik";import{jsx,jsxs}from"react/jsx-runtime";var SelectFilterChip=({fieldNamePrefix,formRef,icon,id,name=``,options,type,placeholder})=>{let{formatMessage}=useIntl(),[popoverOpen,setPopoverOpen]=useState(!1),{values,setFieldValue,submitForm}=useFormikContext(),rawEnum=values.metadata?.fields?.[id]?.value?.enum,chipValues=new Set(Array.isArray(rawEnum)?rawEnum:[]),chipLabel=chipValues.size>0?formatMessage(messages.chipNameWithCount,{name,count:chipValues.size}):name,shouldRenderPlaceholder=!!placeholder&&type!==`multiSelect`,handleOptionChecked=async(checked,option)=>{type===`enum`?chipValues.clear():chipValues.delete(option),checked&&option!==placeholder&&chipValues.add(option),await setFieldValue(`${fieldNamePrefix}.value.enum`,Array.from(chipValues)),submitForm()};return jsxs(DropdownMenu.Root,{onOpenChange:setPopoverOpen,open:popoverOpen,children:[jsx(DropdownMenu.Trigger,{asChild:!0,children:jsxs(FilterChip.TriggerChip,{selected:chipValues.size>0,value:id,children:[icon&&jsx(FilterChip.Icon,{icon}),jsx(FilterChip.Label,{children:chipLabel}),jsx(FilterChip.DropdownIndicator,{})]},id)}),jsxs(DropdownMenu.Content,{container:formRef.current,children:[shouldRenderPlaceholder&&jsx(DropdownMenu.CheckboxItem,{checked:chipValues.size===0,onCheckedChange:checked=>handleOptionChecked(checked,placeholder),children:placeholder},placeholder),options?.map(option=>jsx(DropdownMenu.CheckboxItem,{checked:chipValues.has(option),onCheckedChange:checked=>handleOptionChecked(checked,option),children:option},option))]})]})};export{SelectFilterChip};
|