@box/metadata-view 2.2.37 → 2.2.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/chunks/action-bar.js +1 -52
  2. package/dist/chunks/empty-state.js +1 -24
  3. package/dist/chunks/error-state.js +1 -23
  4. package/dist/chunks/filter-row.module.js +1 -7
  5. package/dist/chunks/filter-side-panel.js +1 -65
  6. package/dist/chunks/header.js +1 -62
  7. package/dist/chunks/inline-editing-cell.js +1 -34
  8. package/dist/chunks/item-action-menu.js +1 -86
  9. package/dist/chunks/metadata-grid.js +1 -44
  10. package/dist/chunks/metadata-location-field.js +1 -35
  11. package/dist/chunks/metadata-view.js +1 -104
  12. package/dist/chunks/pagination-controls.js +1 -40
  13. package/dist/chunks/table-row.js +1 -71
  14. package/dist/chunks/types.js +1 -6
  15. package/dist/chunks/types2.js +1 -4
  16. package/dist/chunks/zoom-button.js +1 -20
  17. package/dist/esm/index.js +1 -29
  18. package/dist/esm/lib/components/action-bar/action-bar.js +1 -2
  19. package/dist/esm/lib/components/action-bar/index.js +1 -2
  20. package/dist/esm/lib/components/action-bar/messages.js +1 -24
  21. package/dist/esm/lib/components/action-bar/zoom-button.js +1 -2
  22. package/dist/esm/lib/components/constants.js +1 -14
  23. package/dist/esm/lib/components/empty-state/empty-state.js +1 -2
  24. package/dist/esm/lib/components/empty-state/index.js +1 -2
  25. package/dist/esm/lib/components/empty-state/messages.js +1 -12
  26. package/dist/esm/lib/components/error-state/error-state.js +1 -2
  27. package/dist/esm/lib/components/error-state/index.js +1 -2
  28. package/dist/esm/lib/components/error-state/messages.js +1 -12
  29. package/dist/esm/lib/components/filter-row/advanced-field-content.js +1 -39
  30. package/dist/esm/lib/components/filter-row/advanced-filter-context.js +1 -3
  31. package/dist/esm/lib/components/filter-row/all-filters-chip.js +1 -34
  32. package/dist/esm/lib/components/filter-row/custom-trigger-chip.js +1 -40
  33. package/dist/esm/lib/components/filter-row/filter-chip-popover-context.js +1 -3
  34. package/dist/esm/lib/components/filter-row/filter-row.js +1 -46
  35. package/dist/esm/lib/components/filter-row/form-filter-chip.js +1 -99
  36. package/dist/esm/lib/components/filter-row/format-advanced-filter-label.js +1 -163
  37. package/dist/esm/lib/components/filter-row/index.js +1 -6
  38. package/dist/esm/lib/components/filter-row/initial-field-values.js +1 -51
  39. package/dist/esm/lib/components/filter-row/is-blank-or-not-blank-filter.js +1 -3
  40. package/dist/esm/lib/components/filter-row/is-filter-selected.js +1 -40
  41. package/dist/esm/lib/components/filter-row/messages.js +1 -112
  42. package/dist/esm/lib/components/filter-row/metadata-filter-chip.js +1 -87
  43. package/dist/esm/lib/components/filter-row/predefinedFilters/index.js +1 -2
  44. package/dist/esm/lib/components/filter-row/predefinedFilters/predefined-filter-options-factory.js +1 -15
  45. package/dist/esm/lib/components/filter-row/predefinedFilters/use-predefined-filter.js +1 -63
  46. package/dist/esm/lib/components/filter-row/select-filter-chip.js +1 -42
  47. package/dist/esm/lib/components/filter-row/use-form-filter-chip.js +1 -40
  48. package/dist/esm/lib/components/filter-row/use-nested-overlay-popover-open-change.js +1 -30
  49. package/dist/esm/lib/components/filter-sidepanel/filter-side-panel.js +1 -2
  50. package/dist/esm/lib/components/filter-sidepanel/filter.js +1 -96
  51. package/dist/esm/lib/components/filter-sidepanel/index.js +1 -3
  52. package/dist/esm/lib/components/filter-sidepanel/messages.js +1 -20
  53. package/dist/esm/lib/components/header/header.js +1 -2
  54. package/dist/esm/lib/components/header/index.js +1 -2
  55. package/dist/esm/lib/components/header/messages.js +1 -16
  56. package/dist/esm/lib/components/index.js +1 -26
  57. package/dist/esm/lib/components/item-action-menu/identifier.js +1 -5
  58. package/dist/esm/lib/components/item-action-menu/index.js +1 -2
  59. package/dist/esm/lib/components/item-action-menu/item-action-menu.js +1 -2
  60. package/dist/esm/lib/components/item-action-menu/messages.js +1 -6
  61. package/dist/esm/lib/components/metadata-grid/index.js +1 -2
  62. package/dist/esm/lib/components/metadata-grid/messages.js +1 -6
  63. package/dist/esm/lib/components/metadata-grid/metadata-grid.js +1 -2
  64. package/dist/esm/lib/components/metadata-table/actionColumn.js +1 -4
  65. package/dist/esm/lib/components/metadata-table/hooks/useInfiniteScrollTableItems.js +1 -52
  66. package/dist/esm/lib/components/metadata-table/index.js +1 -4
  67. package/dist/esm/lib/components/metadata-table/messages.js +1 -16
  68. package/dist/esm/lib/components/metadata-table/metadata-table.js +1 -94
  69. package/dist/esm/lib/components/metadata-table/table-body/action-cell-content.js +1 -13
  70. package/dist/esm/lib/components/metadata-table/table-body/ghost-table-body.js +1 -11
  71. package/dist/esm/lib/components/metadata-table/table-body/ghost-table-row/ghost-table-row.js +1 -9
  72. package/dist/esm/lib/components/metadata-table/table-body/ghost-table-row/index.js +1 -2
  73. package/dist/esm/lib/components/metadata-table/table-body/inline-editing-cell/index.js +1 -2
  74. package/dist/esm/lib/components/metadata-table/table-body/inline-editing-cell/inline-editing-cell.js +1 -2
  75. package/dist/esm/lib/components/metadata-table/table-body/table-body-with-data.js +1 -133
  76. package/dist/esm/lib/components/metadata-table/table-body/table-row/index.js +1 -2
  77. package/dist/esm/lib/components/metadata-table/table-body/table-row/table-row.js +1 -2
  78. package/dist/esm/lib/components/metadata-table/table-renderer.js +1 -37
  79. package/dist/esm/lib/components/metadata-value/index.js +1 -6
  80. package/dist/esm/lib/components/metadata-value/messages.js +1 -16
  81. package/dist/esm/lib/components/metadata-value/metadata-checkbox-field.js +1 -25
  82. package/dist/esm/lib/components/metadata-value/metadata-file-chip.js +1 -15
  83. package/dist/esm/lib/components/metadata-value/metadata-file-field.js +1 -13
  84. package/dist/esm/lib/components/metadata-value/metadata-location-field.js +1 -2
  85. package/dist/esm/lib/components/metadata-value/metadata-radio-field.js +1 -27
  86. package/dist/esm/lib/components/metadata-value/metadata-search-field.js +1 -20
  87. package/dist/esm/lib/components/pagination/index.js +1 -5
  88. package/dist/esm/lib/components/pagination/marker-based-pagination.js +1 -13
  89. package/dist/esm/lib/components/pagination/messages.js +1 -20
  90. package/dist/esm/lib/components/pagination/offset-based-pagination.js +1 -23
  91. package/dist/esm/lib/components/pagination/pagination-controls.js +1 -2
  92. package/dist/esm/lib/components/pagination/pagination.js +1 -21
  93. package/dist/esm/lib/components/pagination/utils.js +1 -5
  94. package/dist/esm/lib/components/sort-dropdown/index.js +1 -2
  95. package/dist/esm/lib/components/sort-dropdown/sort-dropdown.js +1 -39
  96. package/dist/esm/lib/components/switch-case/index.js +1 -2
  97. package/dist/esm/lib/components/switch-case/switch-case.js +1 -6
  98. package/dist/esm/lib/hooks/use-header.js +1 -45
  99. package/dist/esm/lib/index.js +1 -28
  100. package/dist/esm/lib/metadata-view.js +1 -2
  101. package/package.json +17 -17
@@ -1,163 +1 @@
1
- import e from "./messages.js";
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 { FormFilterChip as e } from "./form-filter-chip.js";
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 { FilterKeyTypes as e } from "@box/metadata-filter";
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 { FilterKeyTypes as e } from "@box/metadata-filter";
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 { isBlankOrNotBlankFilter as e } from "./is-blank-or-not-blank-filter.js";
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 { defineMessages as e } from "react-intl";
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 { MetadataFileChip as e } from "../metadata-value/metadata-file-chip.js";
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 { t as e } from "../../../../../chunks/types2.js";
2
- export { e as PredefinedFilterName };
1
+ import{t as PredefinedFilterName}from"../../../../../chunks/types2.js";export{PredefinedFilterName};
@@ -1,15 +1 @@
1
- import { t as e } from "../../../../../chunks/types2.js";
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 e from "../messages.js";
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 e from "./messages.js";
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};