@wordpress/dataviews 11.2.1-next.ba3aee3a2.0 → 11.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -1
- package/build/components/dataform-controls/combobox.cjs +80 -0
- package/build/components/dataform-controls/combobox.cjs.map +7 -0
- package/build/components/dataform-controls/date.cjs +35 -10
- package/build/components/dataform-controls/date.cjs.map +2 -2
- package/build/components/dataform-controls/index.cjs +2 -0
- package/build/components/dataform-controls/index.cjs.map +3 -3
- package/build/components/dataform-layouts/card/index.cjs +58 -3
- package/build/components/dataform-layouts/card/index.cjs.map +3 -3
- package/build/components/dataform-layouts/panel/dropdown.cjs +18 -8
- package/build/components/dataform-layouts/panel/dropdown.cjs.map +3 -3
- package/build/components/dataform-layouts/panel/index.cjs +5 -3
- package/build/components/dataform-layouts/panel/index.cjs.map +2 -2
- package/build/components/dataform-layouts/panel/modal.cjs +16 -10
- package/build/components/dataform-layouts/panel/modal.cjs.map +3 -3
- package/build/components/dataviews-bulk-actions/index.cjs +16 -18
- package/build/components/dataviews-bulk-actions/index.cjs.map +3 -3
- package/build/components/dataviews-filters/input-widget.cjs +1 -1
- package/build/components/dataviews-filters/input-widget.cjs.map +1 -1
- package/build/components/dataviews-item-actions/index.cjs +4 -1
- package/build/components/dataviews-item-actions/index.cjs.map +2 -2
- package/build/components/dataviews-layouts/activity/activity-item.cjs +6 -1
- package/build/components/dataviews-layouts/activity/activity-item.cjs.map +2 -2
- package/build/components/dataviews-layouts/table/column-header-menu.cjs +73 -66
- package/build/components/dataviews-layouts/table/column-header-menu.cjs.map +2 -2
- package/build/components/dataviews-layouts/table/index.cjs +3 -2
- package/build/components/dataviews-layouts/table/index.cjs.map +2 -2
- package/build/components/dataviews-picker-footer/index.cjs +8 -15
- package/build/components/dataviews-picker-footer/index.cjs.map +3 -3
- package/build/components/dataviews-view-config/properties-section.cjs +11 -39
- package/build/components/dataviews-view-config/properties-section.cjs.map +2 -2
- package/build/field-types/index.cjs +2 -0
- package/build/field-types/index.cjs.map +3 -3
- package/build/field-types/utils/get-filter.cjs +36 -0
- package/build/field-types/utils/get-filter.cjs.map +7 -0
- package/build/hooks/use-form-validity.cjs +1 -1
- package/build/hooks/use-form-validity.cjs.map +1 -1
- package/build/hooks/use-report-validity.cjs +39 -0
- package/build/hooks/use-report-validity.cjs.map +7 -0
- package/build/types/field-api.cjs.map +1 -1
- package/build/utils/filter-sort-and-paginate.cjs +6 -174
- package/build/utils/filter-sort-and-paginate.cjs.map +2 -2
- package/build/utils/get-footer-message.cjs +49 -0
- package/build/utils/get-footer-message.cjs.map +7 -0
- package/build/utils/operators.cjs +203 -24
- package/build/utils/operators.cjs.map +2 -2
- package/build-module/components/dataform-controls/combobox.mjs +49 -0
- package/build-module/components/dataform-controls/combobox.mjs.map +7 -0
- package/build-module/components/dataform-controls/date.mjs +35 -10
- package/build-module/components/dataform-controls/date.mjs.map +2 -2
- package/build-module/components/dataform-controls/index.mjs +2 -0
- package/build-module/components/dataform-controls/index.mjs.map +2 -2
- package/build-module/components/dataform-layouts/card/index.mjs +59 -3
- package/build-module/components/dataform-layouts/card/index.mjs.map +2 -2
- package/build-module/components/dataform-layouts/panel/dropdown.mjs +20 -10
- package/build-module/components/dataform-layouts/panel/dropdown.mjs.map +2 -2
- package/build-module/components/dataform-layouts/panel/index.mjs +5 -3
- package/build-module/components/dataform-layouts/panel/index.mjs.map +2 -2
- package/build-module/components/dataform-layouts/panel/modal.mjs +18 -12
- package/build-module/components/dataform-layouts/panel/modal.mjs.map +2 -2
- package/build-module/components/dataviews-bulk-actions/index.mjs +17 -19
- package/build-module/components/dataviews-bulk-actions/index.mjs.map +2 -2
- package/build-module/components/dataviews-filters/input-widget.mjs +1 -1
- package/build-module/components/dataviews-filters/input-widget.mjs.map +1 -1
- package/build-module/components/dataviews-item-actions/index.mjs +4 -1
- package/build-module/components/dataviews-item-actions/index.mjs.map +2 -2
- package/build-module/components/dataviews-layouts/activity/activity-item.mjs +6 -1
- package/build-module/components/dataviews-layouts/activity/activity-item.mjs.map +2 -2
- package/build-module/components/dataviews-layouts/table/column-header-menu.mjs +74 -67
- package/build-module/components/dataviews-layouts/table/column-header-menu.mjs.map +2 -2
- package/build-module/components/dataviews-layouts/table/index.mjs +4 -3
- package/build-module/components/dataviews-layouts/table/index.mjs.map +2 -2
- package/build-module/components/dataviews-picker-footer/index.mjs +8 -15
- package/build-module/components/dataviews-picker-footer/index.mjs.map +2 -2
- package/build-module/components/dataviews-view-config/properties-section.mjs +11 -39
- package/build-module/components/dataviews-view-config/properties-section.mjs.map +2 -2
- package/build-module/field-types/index.mjs +2 -0
- package/build-module/field-types/index.mjs.map +2 -2
- package/build-module/field-types/utils/get-filter.mjs +15 -0
- package/build-module/field-types/utils/get-filter.mjs.map +7 -0
- package/build-module/hooks/use-form-validity.mjs +1 -1
- package/build-module/hooks/use-form-validity.mjs.map +1 -1
- package/build-module/hooks/use-report-validity.mjs +18 -0
- package/build-module/hooks/use-report-validity.mjs.map +7 -0
- package/build-module/utils/filter-sort-and-paginate.mjs +7 -198
- package/build-module/utils/filter-sort-and-paginate.mjs.map +2 -2
- package/build-module/utils/get-footer-message.mjs +28 -0
- package/build-module/utils/get-footer-message.mjs.map +7 -0
- package/build-module/utils/operators.mjs +203 -24
- package/build-module/utils/operators.mjs.map +2 -2
- package/build-style/style-rtl.css +28 -44
- package/build-style/style.css +28 -44
- package/build-types/components/dataform-controls/combobox.d.ts +6 -0
- package/build-types/components/dataform-controls/combobox.d.ts.map +1 -0
- package/build-types/components/dataform-controls/date.d.ts.map +1 -1
- package/build-types/components/dataform-controls/index.d.ts.map +1 -1
- package/build-types/components/dataform-layouts/card/index.d.ts +2 -0
- package/build-types/components/dataform-layouts/card/index.d.ts.map +1 -1
- package/build-types/components/dataform-layouts/panel/dropdown.d.ts +3 -2
- package/build-types/components/dataform-layouts/panel/dropdown.d.ts.map +1 -1
- package/build-types/components/dataform-layouts/panel/index.d.ts.map +1 -1
- package/build-types/components/dataform-layouts/panel/modal.d.ts +3 -2
- package/build-types/components/dataform-layouts/panel/modal.d.ts.map +1 -1
- package/build-types/components/dataviews-bulk-actions/index.d.ts.map +1 -1
- package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
- package/build-types/components/dataviews-layouts/activity/activity-item.d.ts.map +1 -1
- package/build-types/components/dataviews-layouts/table/column-header-menu.d.ts.map +1 -1
- package/build-types/components/dataviews-layouts/table/index.d.ts.map +1 -1
- package/build-types/components/dataviews-picker-footer/index.d.ts.map +1 -1
- package/build-types/components/dataviews-view-config/properties-section.d.ts.map +1 -1
- package/build-types/dataform/stories/content.story.d.ts +14 -0
- package/build-types/dataform/stories/content.story.d.ts.map +1 -0
- package/build-types/dataform/stories/index.story.d.ts +1 -1
- package/build-types/dataform/stories/index.story.d.ts.map +1 -1
- package/build-types/dataform/stories/validation.d.ts +1 -1
- package/build-types/dataform/stories/validation.d.ts.map +1 -1
- package/build-types/dataviews/stories/fixtures.d.ts.map +1 -1
- package/build-types/dataviews/stories/index.story.d.ts +4 -1
- package/build-types/dataviews/stories/index.story.d.ts.map +1 -1
- package/build-types/dataviews/stories/layout-custom.d.ts +11 -0
- package/build-types/dataviews/stories/layout-custom.d.ts.map +1 -0
- package/build-types/dataviews-picker/stories/fixtures.d.ts.map +1 -1
- package/build-types/dataviews-picker/stories/index.story.d.ts +1 -1
- package/build-types/dataviews-picker/stories/index.story.d.ts.map +1 -1
- package/build-types/field-types/email.d.ts +1 -1
- package/build-types/field-types/index.d.ts.map +1 -1
- package/build-types/field-types/integer.d.ts +1 -1
- package/build-types/field-types/no-type.d.ts +1 -1
- package/build-types/field-types/number.d.ts +1 -1
- package/build-types/field-types/stories/index.story.d.ts +1 -1
- package/build-types/field-types/stories/index.story.d.ts.map +1 -1
- package/build-types/field-types/utils/get-filter.d.ts +7 -0
- package/build-types/field-types/utils/get-filter.d.ts.map +1 -0
- package/build-types/field-types/utils/get-format.d.ts +56 -56
- package/build-types/hooks/use-report-validity.d.ts +14 -0
- package/build-types/hooks/use-report-validity.d.ts.map +1 -0
- package/build-types/types/field-api.d.ts +3 -0
- package/build-types/types/field-api.d.ts.map +1 -1
- package/build-types/utils/filter-sort-and-paginate.d.ts.map +1 -1
- package/build-types/utils/get-footer-message.d.ts +10 -0
- package/build-types/utils/get-footer-message.d.ts.map +1 -0
- package/build-types/utils/operators.d.ts +2 -1
- package/build-types/utils/operators.d.ts.map +1 -1
- package/build-wp/index.js +2758 -2234
- package/package.json +22 -20
- package/src/components/dataform-controls/combobox.tsx +58 -0
- package/src/components/dataform-controls/date.tsx +45 -10
- package/src/components/dataform-controls/index.tsx +2 -0
- package/src/components/dataform-layouts/card/index.tsx +81 -3
- package/src/components/dataform-layouts/panel/dropdown.tsx +26 -11
- package/src/components/dataform-layouts/panel/index.tsx +6 -4
- package/src/components/dataform-layouts/panel/modal.tsx +24 -12
- package/src/components/dataviews-bulk-actions/index.tsx +23 -20
- package/src/components/dataviews-bulk-actions/style.scss +0 -3
- package/src/components/dataviews-filters/input-widget.tsx +1 -1
- package/src/components/dataviews-item-actions/index.tsx +6 -1
- package/src/components/dataviews-layouts/activity/activity-item.tsx +8 -1
- package/src/components/dataviews-layouts/table/column-header-menu.tsx +99 -73
- package/src/components/dataviews-layouts/table/index.tsx +12 -3
- package/src/components/dataviews-layouts/table/style.scss +14 -7
- package/src/components/dataviews-picker-footer/index.tsx +8 -18
- package/src/components/dataviews-view-config/properties-section.tsx +24 -49
- package/src/dataform/stories/content.story.mdx +159 -0
- package/src/dataform/stories/content.story.tsx +390 -0
- package/src/dataform/stories/index.story.tsx +8 -1
- package/src/dataform/stories/validation.tsx +98 -5
- package/src/dataviews/stories/best-practices.story.mdx +55 -0
- package/src/dataviews/stories/fixtures.tsx +1 -3
- package/src/dataviews/stories/index.story.tsx +6 -1
- package/src/dataviews/stories/layout-custom.tsx +140 -0
- package/src/dataviews/test/dataviews.tsx +66 -1
- package/src/dataviews-picker/stories/fixtures.tsx +1 -3
- package/src/dataviews-picker/stories/index.story.tsx +1 -1
- package/src/field-types/index.tsx +2 -0
- package/src/field-types/stories/index.story.tsx +2 -0
- package/src/field-types/utils/get-filter.ts +18 -0
- package/src/hooks/use-form-validity.ts +1 -1
- package/src/hooks/use-report-validity.ts +32 -0
- package/src/types/field-api.ts +11 -0
- package/src/utils/filter-sort-and-paginate.ts +11 -306
- package/src/utils/get-footer-message.ts +41 -0
- package/src/utils/operators.tsx +303 -31
|
@@ -26,14 +26,58 @@ __export(operators_exports, {
|
|
|
26
26
|
isSingleSelectionOperator: () => isSingleSelectionOperator
|
|
27
27
|
});
|
|
28
28
|
module.exports = __toCommonJS(operators_exports);
|
|
29
|
+
var import_date_fns = require("date-fns");
|
|
29
30
|
var import_i18n = require("@wordpress/i18n");
|
|
30
31
|
var import_element = require("@wordpress/element");
|
|
32
|
+
var import_date = require("@wordpress/date");
|
|
31
33
|
var import_constants = require("../constants.cjs");
|
|
32
34
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
33
35
|
var filterTextWrappers = {
|
|
34
36
|
Name: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "dataviews-filters__summary-filter-text-name" }),
|
|
35
37
|
Value: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "dataviews-filters__summary-filter-text-value" })
|
|
36
38
|
};
|
|
39
|
+
function getRelativeDate(value, unit) {
|
|
40
|
+
switch (unit) {
|
|
41
|
+
case "days":
|
|
42
|
+
return (0, import_date_fns.subDays)(/* @__PURE__ */ new Date(), value);
|
|
43
|
+
case "weeks":
|
|
44
|
+
return (0, import_date_fns.subWeeks)(/* @__PURE__ */ new Date(), value);
|
|
45
|
+
case "months":
|
|
46
|
+
return (0, import_date_fns.subMonths)(/* @__PURE__ */ new Date(), value);
|
|
47
|
+
case "years":
|
|
48
|
+
return (0, import_date_fns.subYears)(/* @__PURE__ */ new Date(), value);
|
|
49
|
+
default:
|
|
50
|
+
return /* @__PURE__ */ new Date();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
var isNoneOperatorDefinition = {
|
|
54
|
+
/* translators: DataViews operator name */
|
|
55
|
+
label: (0, import_i18n.__)("Is none of"),
|
|
56
|
+
filterText: (filter, activeElements) => (0, import_element.createInterpolateElement)(
|
|
57
|
+
(0, import_i18n.sprintf)(
|
|
58
|
+
/* translators: 1: Filter name (e.g. "Author"). 2: Filter value (e.g. "Admin"): "Author is none of: Admin, Editor". */
|
|
59
|
+
(0, import_i18n.__)("<Name>%1$s is none of: </Name><Value>%2$s</Value>"),
|
|
60
|
+
filter.name,
|
|
61
|
+
activeElements.map((element) => element.label).join(", ")
|
|
62
|
+
),
|
|
63
|
+
filterTextWrappers
|
|
64
|
+
),
|
|
65
|
+
filter: ((item, field, filterValue) => {
|
|
66
|
+
if (!filterValue?.length) {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
const fieldValue = field.getValue({ item });
|
|
70
|
+
if (Array.isArray(fieldValue)) {
|
|
71
|
+
return !filterValue.some(
|
|
72
|
+
(fv) => fieldValue.includes(fv)
|
|
73
|
+
);
|
|
74
|
+
} else if (typeof fieldValue === "string") {
|
|
75
|
+
return !filterValue.includes(fieldValue);
|
|
76
|
+
}
|
|
77
|
+
return false;
|
|
78
|
+
}),
|
|
79
|
+
selection: "multi"
|
|
80
|
+
};
|
|
37
81
|
var OPERATORS = [
|
|
38
82
|
{
|
|
39
83
|
name: import_constants.OPERATOR_IS_ANY,
|
|
@@ -48,22 +92,25 @@ var OPERATORS = [
|
|
|
48
92
|
),
|
|
49
93
|
filterTextWrappers
|
|
50
94
|
),
|
|
95
|
+
filter(item, field, filterValue) {
|
|
96
|
+
if (!filterValue?.length) {
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
const fieldValue = field.getValue({ item });
|
|
100
|
+
if (Array.isArray(fieldValue)) {
|
|
101
|
+
return filterValue.some(
|
|
102
|
+
(fv) => fieldValue.includes(fv)
|
|
103
|
+
);
|
|
104
|
+
} else if (typeof fieldValue === "string") {
|
|
105
|
+
return filterValue.includes(fieldValue);
|
|
106
|
+
}
|
|
107
|
+
return false;
|
|
108
|
+
},
|
|
51
109
|
selection: "multi"
|
|
52
110
|
},
|
|
53
111
|
{
|
|
54
112
|
name: import_constants.OPERATOR_IS_NONE,
|
|
55
|
-
|
|
56
|
-
label: (0, import_i18n.__)("Is none of"),
|
|
57
|
-
filterText: (filter, activeElements) => (0, import_element.createInterpolateElement)(
|
|
58
|
-
(0, import_i18n.sprintf)(
|
|
59
|
-
/* translators: 1: Filter name (e.g. "Author"). 2: Filter value (e.g. "Admin"): "Author is none of: Admin, Editor". */
|
|
60
|
-
(0, import_i18n.__)("<Name>%1$s is none of: </Name><Value>%2$s</Value>"),
|
|
61
|
-
filter.name,
|
|
62
|
-
activeElements.map((element) => element.label).join(", ")
|
|
63
|
-
),
|
|
64
|
-
filterTextWrappers
|
|
65
|
-
),
|
|
66
|
-
selection: "multi"
|
|
113
|
+
...isNoneOperatorDefinition
|
|
67
114
|
},
|
|
68
115
|
{
|
|
69
116
|
name: import_constants.OPERATOR_IS_ALL,
|
|
@@ -78,22 +125,19 @@ var OPERATORS = [
|
|
|
78
125
|
),
|
|
79
126
|
filterTextWrappers
|
|
80
127
|
),
|
|
128
|
+
filter(item, field, filterValue) {
|
|
129
|
+
if (!filterValue?.length) {
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
return filterValue.every((value) => {
|
|
133
|
+
return field.getValue({ item })?.includes(value);
|
|
134
|
+
});
|
|
135
|
+
},
|
|
81
136
|
selection: "multi"
|
|
82
137
|
},
|
|
83
138
|
{
|
|
84
139
|
name: import_constants.OPERATOR_IS_NOT_ALL,
|
|
85
|
-
|
|
86
|
-
label: (0, import_i18n.__)("Is none of"),
|
|
87
|
-
filterText: (filter, activeElements) => (0, import_element.createInterpolateElement)(
|
|
88
|
-
(0, import_i18n.sprintf)(
|
|
89
|
-
/* translators: 1: Filter name (e.g. "Author"). 2: Filter value (e.g. "Admin"): "Author is none of: Admin, Editor". */
|
|
90
|
-
(0, import_i18n.__)("<Name>%1$s is none of: </Name><Value>%2$s</Value>"),
|
|
91
|
-
filter.name,
|
|
92
|
-
activeElements.map((element) => element.label).join(", ")
|
|
93
|
-
),
|
|
94
|
-
filterTextWrappers
|
|
95
|
-
),
|
|
96
|
-
selection: "multi"
|
|
140
|
+
...isNoneOperatorDefinition
|
|
97
141
|
},
|
|
98
142
|
{
|
|
99
143
|
name: import_constants.OPERATOR_BETWEEN,
|
|
@@ -111,6 +155,16 @@ var OPERATORS = [
|
|
|
111
155
|
),
|
|
112
156
|
filterTextWrappers
|
|
113
157
|
),
|
|
158
|
+
filter(item, field, filterValue) {
|
|
159
|
+
if (!Array.isArray(filterValue) || filterValue.length !== 2 || filterValue[0] === void 0 || filterValue[1] === void 0) {
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
const fieldValue = field.getValue({ item });
|
|
163
|
+
if (typeof fieldValue === "number" || fieldValue instanceof Date || typeof fieldValue === "string") {
|
|
164
|
+
return fieldValue >= filterValue[0] && fieldValue <= filterValue[1];
|
|
165
|
+
}
|
|
166
|
+
return false;
|
|
167
|
+
},
|
|
114
168
|
selection: "custom"
|
|
115
169
|
},
|
|
116
170
|
{
|
|
@@ -128,6 +182,17 @@ var OPERATORS = [
|
|
|
128
182
|
),
|
|
129
183
|
filterTextWrappers
|
|
130
184
|
),
|
|
185
|
+
filter(item, field, filterValue) {
|
|
186
|
+
if (filterValue?.value === void 0 || filterValue?.unit === void 0) {
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
const targetDate = getRelativeDate(
|
|
190
|
+
filterValue.value,
|
|
191
|
+
filterValue.unit
|
|
192
|
+
);
|
|
193
|
+
const fieldValue = (0, import_date.getDate)(field.getValue({ item }));
|
|
194
|
+
return fieldValue >= targetDate && fieldValue <= /* @__PURE__ */ new Date();
|
|
195
|
+
},
|
|
131
196
|
selection: "custom"
|
|
132
197
|
},
|
|
133
198
|
{
|
|
@@ -143,6 +208,17 @@ var OPERATORS = [
|
|
|
143
208
|
),
|
|
144
209
|
filterTextWrappers
|
|
145
210
|
),
|
|
211
|
+
filter(item, field, filterValue) {
|
|
212
|
+
if (filterValue?.value === void 0 || filterValue?.unit === void 0) {
|
|
213
|
+
return true;
|
|
214
|
+
}
|
|
215
|
+
const targetDate = getRelativeDate(
|
|
216
|
+
filterValue.value,
|
|
217
|
+
filterValue.unit
|
|
218
|
+
);
|
|
219
|
+
const fieldValue = (0, import_date.getDate)(field.getValue({ item }));
|
|
220
|
+
return fieldValue < targetDate;
|
|
221
|
+
},
|
|
146
222
|
selection: "custom"
|
|
147
223
|
},
|
|
148
224
|
{
|
|
@@ -158,6 +234,9 @@ var OPERATORS = [
|
|
|
158
234
|
),
|
|
159
235
|
filterTextWrappers
|
|
160
236
|
),
|
|
237
|
+
filter(item, field, filterValue) {
|
|
238
|
+
return filterValue === field.getValue({ item }) || filterValue === void 0;
|
|
239
|
+
},
|
|
161
240
|
selection: "single"
|
|
162
241
|
},
|
|
163
242
|
{
|
|
@@ -173,6 +252,9 @@ var OPERATORS = [
|
|
|
173
252
|
),
|
|
174
253
|
filterTextWrappers
|
|
175
254
|
),
|
|
255
|
+
filter(item, field, filterValue) {
|
|
256
|
+
return filterValue !== field.getValue({ item });
|
|
257
|
+
},
|
|
176
258
|
selection: "single"
|
|
177
259
|
},
|
|
178
260
|
{
|
|
@@ -188,6 +270,13 @@ var OPERATORS = [
|
|
|
188
270
|
),
|
|
189
271
|
filterTextWrappers
|
|
190
272
|
),
|
|
273
|
+
filter(item, field, filterValue) {
|
|
274
|
+
if (filterValue === void 0) {
|
|
275
|
+
return true;
|
|
276
|
+
}
|
|
277
|
+
const fieldValue = field.getValue({ item });
|
|
278
|
+
return fieldValue < filterValue;
|
|
279
|
+
},
|
|
191
280
|
selection: "single"
|
|
192
281
|
},
|
|
193
282
|
{
|
|
@@ -205,6 +294,13 @@ var OPERATORS = [
|
|
|
205
294
|
),
|
|
206
295
|
filterTextWrappers
|
|
207
296
|
),
|
|
297
|
+
filter(item, field, filterValue) {
|
|
298
|
+
if (filterValue === void 0) {
|
|
299
|
+
return true;
|
|
300
|
+
}
|
|
301
|
+
const fieldValue = field.getValue({ item });
|
|
302
|
+
return fieldValue > filterValue;
|
|
303
|
+
},
|
|
208
304
|
selection: "single"
|
|
209
305
|
},
|
|
210
306
|
{
|
|
@@ -222,6 +318,13 @@ var OPERATORS = [
|
|
|
222
318
|
),
|
|
223
319
|
filterTextWrappers
|
|
224
320
|
),
|
|
321
|
+
filter(item, field, filterValue) {
|
|
322
|
+
if (filterValue === void 0) {
|
|
323
|
+
return true;
|
|
324
|
+
}
|
|
325
|
+
const fieldValue = field.getValue({ item });
|
|
326
|
+
return fieldValue <= filterValue;
|
|
327
|
+
},
|
|
225
328
|
selection: "single"
|
|
226
329
|
},
|
|
227
330
|
{
|
|
@@ -239,6 +342,13 @@ var OPERATORS = [
|
|
|
239
342
|
),
|
|
240
343
|
filterTextWrappers
|
|
241
344
|
),
|
|
345
|
+
filter(item, field, filterValue) {
|
|
346
|
+
if (filterValue === void 0) {
|
|
347
|
+
return true;
|
|
348
|
+
}
|
|
349
|
+
const fieldValue = field.getValue({ item });
|
|
350
|
+
return fieldValue >= filterValue;
|
|
351
|
+
},
|
|
242
352
|
selection: "single"
|
|
243
353
|
},
|
|
244
354
|
{
|
|
@@ -254,6 +364,14 @@ var OPERATORS = [
|
|
|
254
364
|
),
|
|
255
365
|
filterTextWrappers
|
|
256
366
|
),
|
|
367
|
+
filter(item, field, filterValue) {
|
|
368
|
+
if (filterValue === void 0) {
|
|
369
|
+
return true;
|
|
370
|
+
}
|
|
371
|
+
const filterDate = (0, import_date.getDate)(filterValue);
|
|
372
|
+
const fieldDate = (0, import_date.getDate)(field.getValue({ item }));
|
|
373
|
+
return fieldDate < filterDate;
|
|
374
|
+
},
|
|
257
375
|
selection: "single"
|
|
258
376
|
},
|
|
259
377
|
{
|
|
@@ -269,6 +387,14 @@ var OPERATORS = [
|
|
|
269
387
|
),
|
|
270
388
|
filterTextWrappers
|
|
271
389
|
),
|
|
390
|
+
filter(item, field, filterValue) {
|
|
391
|
+
if (filterValue === void 0) {
|
|
392
|
+
return true;
|
|
393
|
+
}
|
|
394
|
+
const filterDate = (0, import_date.getDate)(filterValue);
|
|
395
|
+
const fieldDate = (0, import_date.getDate)(field.getValue({ item }));
|
|
396
|
+
return fieldDate > filterDate;
|
|
397
|
+
},
|
|
272
398
|
selection: "single"
|
|
273
399
|
},
|
|
274
400
|
{
|
|
@@ -286,6 +412,14 @@ var OPERATORS = [
|
|
|
286
412
|
),
|
|
287
413
|
filterTextWrappers
|
|
288
414
|
),
|
|
415
|
+
filter(item, field, filterValue) {
|
|
416
|
+
if (filterValue === void 0) {
|
|
417
|
+
return true;
|
|
418
|
+
}
|
|
419
|
+
const filterDate = (0, import_date.getDate)(filterValue);
|
|
420
|
+
const fieldDate = (0, import_date.getDate)(field.getValue({ item }));
|
|
421
|
+
return fieldDate <= filterDate;
|
|
422
|
+
},
|
|
289
423
|
selection: "single"
|
|
290
424
|
},
|
|
291
425
|
{
|
|
@@ -303,6 +437,14 @@ var OPERATORS = [
|
|
|
303
437
|
),
|
|
304
438
|
filterTextWrappers
|
|
305
439
|
),
|
|
440
|
+
filter(item, field, filterValue) {
|
|
441
|
+
if (filterValue === void 0) {
|
|
442
|
+
return true;
|
|
443
|
+
}
|
|
444
|
+
const filterDate = (0, import_date.getDate)(filterValue);
|
|
445
|
+
const fieldDate = (0, import_date.getDate)(field.getValue({ item }));
|
|
446
|
+
return fieldDate >= filterDate;
|
|
447
|
+
},
|
|
306
448
|
selection: "single"
|
|
307
449
|
},
|
|
308
450
|
{
|
|
@@ -318,6 +460,13 @@ var OPERATORS = [
|
|
|
318
460
|
),
|
|
319
461
|
filterTextWrappers
|
|
320
462
|
),
|
|
463
|
+
filter(item, field, filterValue) {
|
|
464
|
+
if (filterValue === void 0) {
|
|
465
|
+
return true;
|
|
466
|
+
}
|
|
467
|
+
const fieldValue = field.getValue({ item });
|
|
468
|
+
return typeof fieldValue === "string" && filterValue && fieldValue.toLowerCase().includes(String(filterValue).toLowerCase());
|
|
469
|
+
},
|
|
321
470
|
selection: "single"
|
|
322
471
|
},
|
|
323
472
|
{
|
|
@@ -335,6 +484,13 @@ var OPERATORS = [
|
|
|
335
484
|
),
|
|
336
485
|
filterTextWrappers
|
|
337
486
|
),
|
|
487
|
+
filter(item, field, filterValue) {
|
|
488
|
+
if (filterValue === void 0) {
|
|
489
|
+
return true;
|
|
490
|
+
}
|
|
491
|
+
const fieldValue = field.getValue({ item });
|
|
492
|
+
return typeof fieldValue === "string" && filterValue && !fieldValue.toLowerCase().includes(String(filterValue).toLowerCase());
|
|
493
|
+
},
|
|
338
494
|
selection: "single"
|
|
339
495
|
},
|
|
340
496
|
{
|
|
@@ -350,6 +506,13 @@ var OPERATORS = [
|
|
|
350
506
|
),
|
|
351
507
|
filterTextWrappers
|
|
352
508
|
),
|
|
509
|
+
filter(item, field, filterValue) {
|
|
510
|
+
if (filterValue === void 0) {
|
|
511
|
+
return true;
|
|
512
|
+
}
|
|
513
|
+
const fieldValue = field.getValue({ item });
|
|
514
|
+
return typeof fieldValue === "string" && filterValue && fieldValue.toLowerCase().startsWith(String(filterValue).toLowerCase());
|
|
515
|
+
},
|
|
353
516
|
selection: "single"
|
|
354
517
|
},
|
|
355
518
|
{
|
|
@@ -365,6 +528,14 @@ var OPERATORS = [
|
|
|
365
528
|
),
|
|
366
529
|
filterTextWrappers
|
|
367
530
|
),
|
|
531
|
+
filter(item, field, filterValue) {
|
|
532
|
+
if (filterValue === void 0) {
|
|
533
|
+
return true;
|
|
534
|
+
}
|
|
535
|
+
const filterDate = (0, import_date.getDate)(filterValue);
|
|
536
|
+
const fieldDate = (0, import_date.getDate)(field.getValue({ item }));
|
|
537
|
+
return filterDate.getTime() === fieldDate.getTime();
|
|
538
|
+
},
|
|
368
539
|
selection: "single"
|
|
369
540
|
},
|
|
370
541
|
{
|
|
@@ -380,6 +551,14 @@ var OPERATORS = [
|
|
|
380
551
|
),
|
|
381
552
|
filterTextWrappers
|
|
382
553
|
),
|
|
554
|
+
filter(item, field, filterValue) {
|
|
555
|
+
if (filterValue === void 0) {
|
|
556
|
+
return true;
|
|
557
|
+
}
|
|
558
|
+
const filterDate = (0, import_date.getDate)(filterValue);
|
|
559
|
+
const fieldDate = (0, import_date.getDate)(field.getValue({ item }));
|
|
560
|
+
return filterDate.getTime() !== fieldDate.getTime();
|
|
561
|
+
},
|
|
383
562
|
selection: "single"
|
|
384
563
|
}
|
|
385
564
|
];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/operators.tsx"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { createInterpolateElement } from '@wordpress/element';\nimport type { ReactElement } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { NormalizedFilter, Operator, Option } from '../types';\nimport {\n\tOPERATOR_AFTER,\n\tOPERATOR_AFTER_INC,\n\tOPERATOR_BEFORE,\n\tOPERATOR_BEFORE_INC,\n\tOPERATOR_BETWEEN,\n\tOPERATOR_CONTAINS,\n\tOPERATOR_GREATER_THAN,\n\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\tOPERATOR_IN_THE_PAST,\n\tOPERATOR_IS,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_NOT_ALL,\n\tOPERATOR_LESS_THAN,\n\tOPERATOR_LESS_THAN_OR_EQUAL,\n\tOPERATOR_NOT_CONTAINS,\n\tOPERATOR_NOT_ON,\n\tOPERATOR_ON,\n\tOPERATOR_OVER,\n\tOPERATOR_STARTS_WITH,\n} from '../constants';\n\nconst filterTextWrappers = {\n\tName: <span className=\"dataviews-filters__summary-filter-text-name\" />,\n\tValue: <span className=\"dataviews-filters__summary-filter-text-value\" />,\n};\n\nconst OPERATORS: {\n\tname: Operator;\n\tlabel: string;\n\tfilterText: (\n\t\tfilter: NormalizedFilter,\n\t\tactiveElements: Option[]\n\t) => ReactElement;\n\tselection: 'single' | 'multi' | 'custom';\n}[] = [\n\t{\n\t\tname: OPERATOR_IS_ANY,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Includes' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Author\"). 2: Filter value (e.g. \"Admin\"): \"Author is any: Admin, Editor\". */\n\t\t\t\t\t__( '<Name>%1$s includes: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements\n\t\t\t\t\t\t.map( ( element ) => element.label )\n\t\t\t\t\t\t.join( ', ' )\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'multi',\n\t},\n\t{\n\t\tname: OPERATOR_IS_NONE,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Is none of' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Author\"). 2: Filter value (e.g. \"Admin\"): \"Author is none of: Admin, Editor\". */\n\t\t\t\t\t__( '<Name>%1$s is none of: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements\n\t\t\t\t\t\t.map( ( element ) => element.label )\n\t\t\t\t\t\t.join( ', ' )\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'multi',\n\t},\n\t{\n\t\tname: OPERATOR_IS_ALL,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Includes all' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Author\"). 2: Filter value (e.g. \"Admin\"): \"Author includes all: Admin, Editor\". */\n\t\t\t\t\t__( '<Name>%1$s includes all: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements\n\t\t\t\t\t\t.map( ( element ) => element.label )\n\t\t\t\t\t\t.join( ', ' )\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'multi',\n\t},\n\t{\n\t\tname: OPERATOR_IS_NOT_ALL,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Is none of' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Author\"). 2: Filter value (e.g. \"Admin\"): \"Author is none of: Admin, Editor\". */\n\t\t\t\t\t__( '<Name>%1$s is none of: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements\n\t\t\t\t\t\t.map( ( element ) => element.label )\n\t\t\t\t\t\t.join( ', ' )\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'multi',\n\t},\n\t{\n\t\tname: OPERATOR_BETWEEN,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Between (inc)' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Item count\"). 2: Filter value min. 3: Filter value max. e.g.: \"Item count between (inc): 10 and 180\". */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'<Name>%1$s between (inc): </Name><Value>%2$s and %3$s</Value>'\n\t\t\t\t\t),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label[ 0 ],\n\t\t\t\t\tactiveElements[ 0 ].label[ 1 ]\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'custom',\n\t},\n\t{\n\t\tname: OPERATOR_IN_THE_PAST,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'In the past' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Date\"). 2: Filter value (e.g. \"7 days\"): \"Date is in the past: 7 days\". */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'<Name>%1$s is in the past: </Name><Value>%2$s</Value>'\n\t\t\t\t\t),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\t`${ activeElements[ 0 ].value.value } ${ activeElements[ 0 ].value.unit }`\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'custom',\n\t},\n\t{\n\t\tname: OPERATOR_OVER,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Over' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Date\"). 2: Filter value (e.g. \"7 days\"): \"Date is over: 7 days\". */\n\t\t\t\t\t__( '<Name>%1$s is over: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\t`${ activeElements[ 0 ].value.value } ${ activeElements[ 0 ].value.unit }`\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'custom',\n\t},\n\t{\n\t\tname: OPERATOR_IS,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Is' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Author\"). 2: Filter value (e.g. \"Admin\"): \"Author is: Admin\". */\n\t\t\t\t\t__( '<Name>%1$s is: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_IS_NOT,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Is not' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Author\"). 2: Filter value (e.g. \"Admin\"): \"Author is not: Admin\". */\n\t\t\t\t\t__( '<Name>%1$s is not: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_LESS_THAN,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Less than' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Count\"). 2: Filter value (e.g. \"10\"): \"Count is less than: 10\". */\n\t\t\t\t\t__( '<Name>%1$s is less than: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_GREATER_THAN,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Greater than' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Count\"). 2: Filter value (e.g. \"10\"): \"Count is greater than: 10\". */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'<Name>%1$s is greater than: </Name><Value>%2$s</Value>'\n\t\t\t\t\t),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_LESS_THAN_OR_EQUAL,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Less than or equal' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Count\"). 2: Filter value (e.g. \"10\"): \"Count is less than or equal to: 10\". */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'<Name>%1$s is less than or equal to: </Name><Value>%2$s</Value>'\n\t\t\t\t\t),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_GREATER_THAN_OR_EQUAL,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Greater than or equal' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Count\"). 2: Filter value (e.g. \"10\"): \"Count is greater than or equal to: 10\". */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'<Name>%1$s is greater than or equal to: </Name><Value>%2$s</Value>'\n\t\t\t\t\t),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_BEFORE,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Before' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Date\"). 2: Filter value (e.g. \"2024-01-01\"): \"Date is before: 2024-01-01\". */\n\t\t\t\t\t__( '<Name>%1$s is before: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_AFTER,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'After' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Date\"). 2: Filter value (e.g. \"2024-01-01\"): \"Date is after: 2024-01-01\". */\n\t\t\t\t\t__( '<Name>%1$s is after: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_BEFORE_INC,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Before (inc)' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Date\"). 2: Filter value (e.g. \"2024-01-01\"): \"Date is on or before: 2024-01-01\". */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'<Name>%1$s is on or before: </Name><Value>%2$s</Value>'\n\t\t\t\t\t),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_AFTER_INC,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'After (inc)' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Date\"). 2: Filter value (e.g. \"2024-01-01\"): \"Date is on or after: 2024-01-01\". */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'<Name>%1$s is on or after: </Name><Value>%2$s</Value>'\n\t\t\t\t\t),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_CONTAINS,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Contains' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Title\"). 2: Filter value (e.g. \"Hello\"): \"Title contains: Hello\". */\n\t\t\t\t\t__( '<Name>%1$s contains: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_NOT_CONTAINS,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( \"Doesn't contain\" ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Title\"). 2: Filter value (e.g. \"Hello\"): \"Title doesn't contain: Hello\". */\n\t\t\t\t\t__(\n\t\t\t\t\t\t\"<Name>%1$s doesn't contain: </Name><Value>%2$s</Value>\"\n\t\t\t\t\t),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_STARTS_WITH,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Starts with' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Title\"). 2: Filter value (e.g. \"Hello\"): \"Title starts with: Hello\". */\n\t\t\t\t\t__( '<Name>%1$s starts with: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_ON,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'On' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Date\"). 2: Filter value (e.g. \"2024-01-01\"): \"Date is: 2024-01-01\". */\n\t\t\t\t\t__( '<Name>%1$s is: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_NOT_ON,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Not on' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Date\"). 2: Filter value (e.g. \"2024-01-01\"): \"Date is not: 2024-01-01\". */\n\t\t\t\t\t__( '<Name>%1$s is not: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tselection: 'single',\n\t},\n];\n\nconst getOperatorByName = ( name: string | undefined ) =>\n\tOPERATORS.find( ( op ) => op.name === name );\n\nconst getAllOperatorNames = () => OPERATORS.map( ( op ) => op.name );\n\nconst isSingleSelectionOperator = ( name: string ) =>\n\tOPERATORS.filter( ( op ) => op.selection === 'single' ).some(\n\t\t( op ) => op.name === name\n\t);\n\nconst isRegisteredOperator = ( name: string ) =>\n\tOPERATORS.some( ( op ) => op.name === name );\n\nexport {\n\tgetOperatorByName,\n\tgetAllOperatorNames,\n\tisSingleSelectionOperator,\n\tisRegisteredOperator,\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAA4B;AAC5B,qBAAyC;AAOzC,uBAuBO;AAGA;AADP,IAAM,qBAAqB;AAAA,EAC1B,MAAM,4CAAC,UAAK,WAAU,+CAA8C;AAAA,EACpE,OAAO,4CAAC,UAAK,WAAU,gDAA+C;AACvE;AAEA,IAAM,YAQA;AAAA,EACL;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,UAAW;AAAA,IACtB,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC,gBAAI,iDAAkD;AAAA,QACtD,OAAO;AAAA,QACP,eACE,IAAK,CAAE,YAAa,QAAQ,KAAM,EAClC,KAAM,IAAK;AAAA,MACd;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,YAAa;AAAA,IACxB,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC,gBAAI,mDAAoD;AAAA,QACxD,OAAO;AAAA,QACP,eACE,IAAK,CAAE,YAAa,QAAQ,KAAM,EAClC,KAAM,IAAK;AAAA,MACd;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,cAAe;AAAA,IAC1B,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC,gBAAI,qDAAsD;AAAA,QAC1D,OAAO;AAAA,QACP,eACE,IAAK,CAAE,YAAa,QAAQ,KAAM,EAClC,KAAM,IAAK;AAAA,MACd;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,YAAa;AAAA,IACxB,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC,gBAAI,mDAAoD;AAAA,QACxD,OAAO;AAAA,QACP,eACE,IAAK,CAAE,YAAa,QAAQ,KAAM,EAClC,KAAM,IAAK;AAAA,MACd;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,eAAgB;AAAA,IAC3B,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC;AAAA,UACC;AAAA,QACD;AAAA,QACA,OAAO;AAAA,QACP,eAAgB,CAAE,EAAE,MAAO,CAAE;AAAA,QAC7B,eAAgB,CAAE,EAAE,MAAO,CAAE;AAAA,MAC9B;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,aAAc;AAAA,IACzB,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC;AAAA,UACC;AAAA,QACD;AAAA,QACA,OAAO;AAAA,QACP,GAAI,eAAgB,CAAE,EAAE,MAAM,KAAM,IAAK,eAAgB,CAAE,EAAE,MAAM,IAAK;AAAA,MACzE;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,MAAO;AAAA,IAClB,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC,gBAAI,gDAAiD;AAAA,QACrD,OAAO;AAAA,QACP,GAAI,eAAgB,CAAE,EAAE,MAAM,KAAM,IAAK,eAAgB,CAAE,EAAE,MAAM,IAAK;AAAA,MACzE;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,IAAK;AAAA,IAChB,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC,gBAAI,2CAA4C;AAAA,QAChD,OAAO;AAAA,QACP,eAAgB,CAAE,EAAE;AAAA,MACrB;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,QAAS;AAAA,IACpB,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC,gBAAI,+CAAgD;AAAA,QACpD,OAAO;AAAA,QACP,eAAgB,CAAE,EAAE;AAAA,MACrB;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,WAAY;AAAA,IACvB,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC,gBAAI,qDAAsD;AAAA,QAC1D,OAAO;AAAA,QACP,eAAgB,CAAE,EAAE;AAAA,MACrB;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,cAAe;AAAA,IAC1B,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC;AAAA,UACC;AAAA,QACD;AAAA,QACA,OAAO;AAAA,QACP,eAAgB,CAAE,EAAE;AAAA,MACrB;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,oBAAqB;AAAA,IAChC,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC;AAAA,UACC;AAAA,QACD;AAAA,QACA,OAAO;AAAA,QACP,eAAgB,CAAE,EAAE;AAAA,MACrB;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,uBAAwB;AAAA,IACnC,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC;AAAA,UACC;AAAA,QACD;AAAA,QACA,OAAO;AAAA,QACP,eAAgB,CAAE,EAAE;AAAA,MACrB;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,QAAS;AAAA,IACpB,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC,gBAAI,kDAAmD;AAAA,QACvD,OAAO;AAAA,QACP,eAAgB,CAAE,EAAE;AAAA,MACrB;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,OAAQ;AAAA,IACnB,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC,gBAAI,iDAAkD;AAAA,QACtD,OAAO;AAAA,QACP,eAAgB,CAAE,EAAE;AAAA,MACrB;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,cAAe;AAAA,IAC1B,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC;AAAA,UACC;AAAA,QACD;AAAA,QACA,OAAO;AAAA,QACP,eAAgB,CAAE,EAAE;AAAA,MACrB;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,aAAc;AAAA,IACzB,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC;AAAA,UACC;AAAA,QACD;AAAA,QACA,OAAO;AAAA,QACP,eAAgB,CAAE,EAAE;AAAA,MACrB;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,UAAW;AAAA,IACtB,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC,gBAAI,iDAAkD;AAAA,QACtD,OAAO;AAAA,QACP,eAAgB,CAAE,EAAE;AAAA,MACrB;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,iBAAkB;AAAA,IAC7B,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC;AAAA,UACC;AAAA,QACD;AAAA,QACA,OAAO;AAAA,QACP,eAAgB,CAAE,EAAE;AAAA,MACrB;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,aAAc;AAAA,IACzB,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC,gBAAI,oDAAqD;AAAA,QACzD,OAAO;AAAA,QACP,eAAgB,CAAE,EAAE;AAAA,MACrB;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,IAAK;AAAA,IAChB,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC,gBAAI,2CAA4C;AAAA,QAChD,OAAO;AAAA,QACP,eAAgB,CAAE,EAAE;AAAA,MACrB;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACA;AAAA,IACC,MAAM;AAAA;AAAA,IAEN,WAAO,gBAAI,QAAS;AAAA,IACpB,YAAY,CAAE,QAA0B,uBACvC;AAAA,UACC;AAAA;AAAA,YAEC,gBAAI,+CAAgD;AAAA,QACpD,OAAO;AAAA,QACP,eAAgB,CAAE,EAAE;AAAA,MACrB;AAAA,MACA;AAAA,IACD;AAAA,IACD,WAAW;AAAA,EACZ;AACD;AAEA,IAAM,oBAAoB,CAAE,SAC3B,UAAU,KAAM,CAAE,OAAQ,GAAG,SAAS,IAAK;AAE5C,IAAM,sBAAsB,MAAM,UAAU,IAAK,CAAE,OAAQ,GAAG,IAAK;AAEnE,IAAM,4BAA4B,CAAE,SACnC,UAAU,OAAQ,CAAE,OAAQ,GAAG,cAAc,QAAS,EAAE;AAAA,EACvD,CAAE,OAAQ,GAAG,SAAS;AACvB;AAED,IAAM,uBAAuB,CAAE,SAC9B,UAAU,KAAM,CAAE,OAAQ,GAAG,SAAS,IAAK;",
|
|
4
|
+
"sourcesContent": ["/**\n * External dependencies\n */\nimport { subDays, subWeeks, subMonths, subYears } from 'date-fns';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { createInterpolateElement } from '@wordpress/element';\nimport { getDate } from '@wordpress/date';\nimport type { ReactElement } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tFilterOperator,\n\tNormalizedFilter,\n\tOperator,\n\tOption,\n} from '../types';\nimport {\n\tOPERATOR_AFTER,\n\tOPERATOR_AFTER_INC,\n\tOPERATOR_BEFORE,\n\tOPERATOR_BEFORE_INC,\n\tOPERATOR_BETWEEN,\n\tOPERATOR_CONTAINS,\n\tOPERATOR_GREATER_THAN,\n\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\tOPERATOR_IN_THE_PAST,\n\tOPERATOR_IS,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_NOT_ALL,\n\tOPERATOR_LESS_THAN,\n\tOPERATOR_LESS_THAN_OR_EQUAL,\n\tOPERATOR_NOT_CONTAINS,\n\tOPERATOR_NOT_ON,\n\tOPERATOR_ON,\n\tOPERATOR_OVER,\n\tOPERATOR_STARTS_WITH,\n} from '../constants';\n\nconst filterTextWrappers = {\n\tName: <span className=\"dataviews-filters__summary-filter-text-name\" />,\n\tValue: <span className=\"dataviews-filters__summary-filter-text-value\" />,\n};\n\n/**\n * Calculates a date offset from now.\n *\n * @param value Number of units to offset.\n * @param unit Unit of time to offset (days, weeks, months, years).\n * @return Date offset from now.\n */\nfunction getRelativeDate( value: number, unit: string ): Date {\n\tswitch ( unit ) {\n\t\tcase 'days':\n\t\t\treturn subDays( new Date(), value );\n\t\tcase 'weeks':\n\t\t\treturn subWeeks( new Date(), value );\n\t\tcase 'months':\n\t\t\treturn subMonths( new Date(), value );\n\t\tcase 'years':\n\t\t\treturn subYears( new Date(), value );\n\t\tdefault:\n\t\t\treturn new Date();\n\t}\n}\n\n// Shared operator definition for IS_NONE and IS_NOT_ALL (deprecated).\nconst isNoneOperatorDefinition = {\n\t/* translators: DataViews operator name */\n\tlabel: __( 'Is none of' ),\n\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\tcreateInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name (e.g. \"Author\"). 2: Filter value (e.g. \"Admin\"): \"Author is none of: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is none of: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t),\n\tfilter: ( ( item, field, filterValue ) => {\n\t\tif ( ! filterValue?.length ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst fieldValue = field.getValue( { item } );\n\n\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\treturn ! filterValue.some( ( fv: any ) =>\n\t\t\t\tfieldValue.includes( fv )\n\t\t\t);\n\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\treturn ! filterValue.includes( fieldValue );\n\t\t}\n\n\t\treturn false;\n\t} ) as FilterOperator< any >,\n\tselection: 'multi' as const,\n};\n\nconst OPERATORS: {\n\tname: Operator;\n\tlabel: string;\n\tfilterText: (\n\t\tfilter: NormalizedFilter,\n\t\tactiveElements: Option[]\n\t) => ReactElement;\n\tfilter?: FilterOperator< any >;\n\tselection: 'single' | 'multi' | 'custom';\n}[] = [\n\t{\n\t\tname: OPERATOR_IS_ANY,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Includes' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Author\"). 2: Filter value (e.g. \"Admin\"): \"Author is any: Admin, Editor\". */\n\t\t\t\t\t__( '<Name>%1$s includes: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements\n\t\t\t\t\t\t.map( ( element ) => element.label )\n\t\t\t\t\t\t.join( ', ' )\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tfilter( item, field, filterValue ) {\n\t\t\tif ( ! filterValue?.length ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tconst fieldValue = field.getValue( { item } );\n\n\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\treturn filterValue.some( ( fv: any ) =>\n\t\t\t\t\tfieldValue.includes( fv )\n\t\t\t\t);\n\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\treturn filterValue.includes( fieldValue );\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\t\tselection: 'multi',\n\t},\n\t{\n\t\tname: OPERATOR_IS_NONE,\n\t\t...isNoneOperatorDefinition,\n\t},\n\t{\n\t\tname: OPERATOR_IS_ALL,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Includes all' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Author\"). 2: Filter value (e.g. \"Admin\"): \"Author includes all: Admin, Editor\". */\n\t\t\t\t\t__( '<Name>%1$s includes all: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements\n\t\t\t\t\t\t.map( ( element ) => element.label )\n\t\t\t\t\t\t.join( ', ' )\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tfilter( item, field, filterValue ) {\n\t\t\tif ( ! filterValue?.length ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn filterValue.every( ( value: any ) => {\n\t\t\t\treturn field.getValue( { item } )?.includes( value );\n\t\t\t} );\n\t\t},\n\t\tselection: 'multi',\n\t},\n\t{\n\t\tname: OPERATOR_IS_NOT_ALL,\n\t\t...isNoneOperatorDefinition,\n\t},\n\t{\n\t\tname: OPERATOR_BETWEEN,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Between (inc)' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Item count\"). 2: Filter value min. 3: Filter value max. e.g.: \"Item count between (inc): 10 and 180\". */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'<Name>%1$s between (inc): </Name><Value>%2$s and %3$s</Value>'\n\t\t\t\t\t),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label[ 0 ],\n\t\t\t\t\tactiveElements[ 0 ].label[ 1 ]\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tfilter( item, field, filterValue ) {\n\t\t\tif (\n\t\t\t\t! Array.isArray( filterValue ) ||\n\t\t\t\tfilterValue.length !== 2 ||\n\t\t\t\tfilterValue[ 0 ] === undefined ||\n\t\t\t\tfilterValue[ 1 ] === undefined\n\t\t\t) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst fieldValue = field.getValue( { item } );\n\n\t\t\tif (\n\t\t\t\ttypeof fieldValue === 'number' ||\n\t\t\t\tfieldValue instanceof Date ||\n\t\t\t\ttypeof fieldValue === 'string'\n\t\t\t) {\n\t\t\t\treturn (\n\t\t\t\t\tfieldValue >= filterValue[ 0 ] &&\n\t\t\t\t\tfieldValue <= filterValue[ 1 ]\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\t\tselection: 'custom',\n\t},\n\t{\n\t\tname: OPERATOR_IN_THE_PAST,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'In the past' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Date\"). 2: Filter value (e.g. \"7 days\"): \"Date is in the past: 7 days\". */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'<Name>%1$s is in the past: </Name><Value>%2$s</Value>'\n\t\t\t\t\t),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\t`${ activeElements[ 0 ].value.value } ${ activeElements[ 0 ].value.unit }`\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tfilter( item, field, filterValue ) {\n\t\t\tif (\n\t\t\t\tfilterValue?.value === undefined ||\n\t\t\t\tfilterValue?.unit === undefined\n\t\t\t) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst targetDate = getRelativeDate(\n\t\t\t\tfilterValue.value,\n\t\t\t\tfilterValue.unit\n\t\t\t);\n\t\t\tconst fieldValue = getDate( field.getValue( { item } ) );\n\n\t\t\treturn fieldValue >= targetDate && fieldValue <= new Date();\n\t\t},\n\t\tselection: 'custom',\n\t},\n\t{\n\t\tname: OPERATOR_OVER,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Over' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Date\"). 2: Filter value (e.g. \"7 days\"): \"Date is over: 7 days\". */\n\t\t\t\t\t__( '<Name>%1$s is over: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\t`${ activeElements[ 0 ].value.value } ${ activeElements[ 0 ].value.unit }`\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tfilter( item, field, filterValue ) {\n\t\t\tif (\n\t\t\t\tfilterValue?.value === undefined ||\n\t\t\t\tfilterValue?.unit === undefined\n\t\t\t) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst targetDate = getRelativeDate(\n\t\t\t\tfilterValue.value,\n\t\t\t\tfilterValue.unit\n\t\t\t);\n\t\t\tconst fieldValue = getDate( field.getValue( { item } ) );\n\n\t\t\treturn fieldValue < targetDate;\n\t\t},\n\t\tselection: 'custom',\n\t},\n\t{\n\t\tname: OPERATOR_IS,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Is' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Author\"). 2: Filter value (e.g. \"Admin\"): \"Author is: Admin\". */\n\t\t\t\t\t__( '<Name>%1$s is: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tfilter( item, field, filterValue ) {\n\t\t\treturn (\n\t\t\t\tfilterValue === field.getValue( { item } ) ||\n\t\t\t\tfilterValue === undefined\n\t\t\t);\n\t\t},\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_IS_NOT,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Is not' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Author\"). 2: Filter value (e.g. \"Admin\"): \"Author is not: Admin\". */\n\t\t\t\t\t__( '<Name>%1$s is not: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tfilter( item, field, filterValue ) {\n\t\t\treturn filterValue !== field.getValue( { item } );\n\t\t},\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_LESS_THAN,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Less than' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Count\"). 2: Filter value (e.g. \"10\"): \"Count is less than: 10\". */\n\t\t\t\t\t__( '<Name>%1$s is less than: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tfilter( item, field, filterValue ) {\n\t\t\tif ( filterValue === undefined ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst fieldValue = field.getValue( { item } );\n\n\t\t\treturn fieldValue < filterValue;\n\t\t},\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_GREATER_THAN,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Greater than' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Count\"). 2: Filter value (e.g. \"10\"): \"Count is greater than: 10\". */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'<Name>%1$s is greater than: </Name><Value>%2$s</Value>'\n\t\t\t\t\t),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tfilter( item, field, filterValue ) {\n\t\t\tif ( filterValue === undefined ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst fieldValue = field.getValue( { item } );\n\n\t\t\treturn fieldValue > filterValue;\n\t\t},\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_LESS_THAN_OR_EQUAL,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Less than or equal' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Count\"). 2: Filter value (e.g. \"10\"): \"Count is less than or equal to: 10\". */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'<Name>%1$s is less than or equal to: </Name><Value>%2$s</Value>'\n\t\t\t\t\t),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tfilter( item, field, filterValue ) {\n\t\t\tif ( filterValue === undefined ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst fieldValue = field.getValue( { item } );\n\n\t\t\treturn fieldValue <= filterValue;\n\t\t},\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_GREATER_THAN_OR_EQUAL,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Greater than or equal' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Count\"). 2: Filter value (e.g. \"10\"): \"Count is greater than or equal to: 10\". */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'<Name>%1$s is greater than or equal to: </Name><Value>%2$s</Value>'\n\t\t\t\t\t),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tfilter( item, field, filterValue ) {\n\t\t\tif ( filterValue === undefined ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst fieldValue = field.getValue( { item } );\n\n\t\t\treturn fieldValue >= filterValue;\n\t\t},\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_BEFORE,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Before' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Date\"). 2: Filter value (e.g. \"2024-01-01\"): \"Date is before: 2024-01-01\". */\n\t\t\t\t\t__( '<Name>%1$s is before: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tfilter( item, field, filterValue ) {\n\t\t\tif ( filterValue === undefined ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst filterDate = getDate( filterValue );\n\t\t\tconst fieldDate = getDate( field.getValue( { item } ) );\n\n\t\t\treturn fieldDate < filterDate;\n\t\t},\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_AFTER,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'After' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Date\"). 2: Filter value (e.g. \"2024-01-01\"): \"Date is after: 2024-01-01\". */\n\t\t\t\t\t__( '<Name>%1$s is after: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tfilter( item, field, filterValue ) {\n\t\t\tif ( filterValue === undefined ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst filterDate = getDate( filterValue );\n\t\t\tconst fieldDate = getDate( field.getValue( { item } ) );\n\n\t\t\treturn fieldDate > filterDate;\n\t\t},\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_BEFORE_INC,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Before (inc)' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Date\"). 2: Filter value (e.g. \"2024-01-01\"): \"Date is on or before: 2024-01-01\". */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'<Name>%1$s is on or before: </Name><Value>%2$s</Value>'\n\t\t\t\t\t),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tfilter( item, field, filterValue ) {\n\t\t\tif ( filterValue === undefined ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst filterDate = getDate( filterValue );\n\t\t\tconst fieldDate = getDate( field.getValue( { item } ) );\n\n\t\t\treturn fieldDate <= filterDate;\n\t\t},\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_AFTER_INC,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'After (inc)' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Date\"). 2: Filter value (e.g. \"2024-01-01\"): \"Date is on or after: 2024-01-01\". */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'<Name>%1$s is on or after: </Name><Value>%2$s</Value>'\n\t\t\t\t\t),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tfilter( item, field, filterValue ) {\n\t\t\tif ( filterValue === undefined ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst filterDate = getDate( filterValue );\n\t\t\tconst fieldDate = getDate( field.getValue( { item } ) );\n\n\t\t\treturn fieldDate >= filterDate;\n\t\t},\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_CONTAINS,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Contains' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Title\"). 2: Filter value (e.g. \"Hello\"): \"Title contains: Hello\". */\n\t\t\t\t\t__( '<Name>%1$s contains: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tfilter( item, field, filterValue ) {\n\t\t\tif ( filterValue === undefined ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst fieldValue = field.getValue( { item } );\n\n\t\t\treturn (\n\t\t\t\ttypeof fieldValue === 'string' &&\n\t\t\t\tfilterValue &&\n\t\t\t\tfieldValue\n\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t.includes( String( filterValue ).toLowerCase() )\n\t\t\t);\n\t\t},\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_NOT_CONTAINS,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( \"Doesn't contain\" ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Title\"). 2: Filter value (e.g. \"Hello\"): \"Title doesn't contain: Hello\". */\n\t\t\t\t\t__(\n\t\t\t\t\t\t\"<Name>%1$s doesn't contain: </Name><Value>%2$s</Value>\"\n\t\t\t\t\t),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tfilter( item, field, filterValue ) {\n\t\t\tif ( filterValue === undefined ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst fieldValue = field.getValue( { item } );\n\n\t\t\treturn (\n\t\t\t\ttypeof fieldValue === 'string' &&\n\t\t\t\tfilterValue &&\n\t\t\t\t! fieldValue\n\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t.includes( String( filterValue ).toLowerCase() )\n\t\t\t);\n\t\t},\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_STARTS_WITH,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Starts with' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Title\"). 2: Filter value (e.g. \"Hello\"): \"Title starts with: Hello\". */\n\t\t\t\t\t__( '<Name>%1$s starts with: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tfilter( item, field, filterValue ) {\n\t\t\tif ( filterValue === undefined ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst fieldValue = field.getValue( { item } );\n\n\t\t\treturn (\n\t\t\t\ttypeof fieldValue === 'string' &&\n\t\t\t\tfilterValue &&\n\t\t\t\tfieldValue\n\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t.startsWith( String( filterValue ).toLowerCase() )\n\t\t\t);\n\t\t},\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_ON,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'On' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Date\"). 2: Filter value (e.g. \"2024-01-01\"): \"Date is: 2024-01-01\". */\n\t\t\t\t\t__( '<Name>%1$s is: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tfilter( item, field, filterValue ) {\n\t\t\tif ( filterValue === undefined ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst filterDate = getDate( filterValue );\n\t\t\tconst fieldDate = getDate( field.getValue( { item } ) );\n\n\t\t\treturn filterDate.getTime() === fieldDate.getTime();\n\t\t},\n\t\tselection: 'single',\n\t},\n\t{\n\t\tname: OPERATOR_NOT_ON,\n\t\t/* translators: DataViews operator name */\n\t\tlabel: __( 'Not on' ),\n\t\tfilterText: ( filter: NormalizedFilter, activeElements: Option[] ) =>\n\t\t\tcreateInterpolateElement(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: 1: Filter name (e.g. \"Date\"). 2: Filter value (e.g. \"2024-01-01\"): \"Date is not: 2024-01-01\". */\n\t\t\t\t\t__( '<Name>%1$s is not: </Name><Value>%2$s</Value>' ),\n\t\t\t\t\tfilter.name,\n\t\t\t\t\tactiveElements[ 0 ].label\n\t\t\t\t),\n\t\t\t\tfilterTextWrappers\n\t\t\t),\n\t\tfilter( item, field, filterValue ) {\n\t\t\tif ( filterValue === undefined ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst filterDate = getDate( filterValue );\n\t\t\tconst fieldDate = getDate( field.getValue( { item } ) );\n\n\t\t\treturn filterDate.getTime() !== fieldDate.getTime();\n\t\t},\n\t\tselection: 'single',\n\t},\n];\n\nconst getOperatorByName = ( name: string | undefined ) =>\n\tOPERATORS.find( ( op ) => op.name === name );\n\nconst getAllOperatorNames = () => OPERATORS.map( ( op ) => op.name );\n\nconst isSingleSelectionOperator = ( name: string ) =>\n\tOPERATORS.filter( ( op ) => op.selection === 'single' ).some(\n\t\t( op ) => op.name === name\n\t);\n\nconst isRegisteredOperator = ( name: string ) =>\n\tOPERATORS.some( ( op ) => op.name === name );\n\nexport {\n\tgetOperatorByName,\n\tgetAllOperatorNames,\n\tisSingleSelectionOperator,\n\tisRegisteredOperator,\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// packages/dataviews/src/components/dataform-controls/combobox.tsx
|
|
2
|
+
import { privateApis, Spinner } from "@wordpress/components";
|
|
3
|
+
import { useCallback } from "@wordpress/element";
|
|
4
|
+
import useElements from "../../hooks/use-elements.mjs";
|
|
5
|
+
import { unlock } from "../../lock-unlock.mjs";
|
|
6
|
+
import getCustomValidity from "./utils/get-custom-validity.mjs";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
var { ValidatedComboboxControl } = unlock(privateApis);
|
|
9
|
+
function Combobox({
|
|
10
|
+
data,
|
|
11
|
+
field,
|
|
12
|
+
onChange,
|
|
13
|
+
hideLabelFromVision,
|
|
14
|
+
validity
|
|
15
|
+
}) {
|
|
16
|
+
const { label, description, placeholder, getValue, setValue, isValid } = field;
|
|
17
|
+
const value = getValue({ item: data }) ?? "";
|
|
18
|
+
const onChangeControl = useCallback(
|
|
19
|
+
(newValue) => onChange(setValue({ item: data, value: newValue ?? "" })),
|
|
20
|
+
[data, onChange, setValue]
|
|
21
|
+
);
|
|
22
|
+
const { elements, isLoading } = useElements({
|
|
23
|
+
elements: field.elements,
|
|
24
|
+
getElements: field.getElements
|
|
25
|
+
});
|
|
26
|
+
if (isLoading) {
|
|
27
|
+
return /* @__PURE__ */ jsx(Spinner, {});
|
|
28
|
+
}
|
|
29
|
+
return /* @__PURE__ */ jsx(
|
|
30
|
+
ValidatedComboboxControl,
|
|
31
|
+
{
|
|
32
|
+
required: !!field.isValid?.required,
|
|
33
|
+
customValidity: getCustomValidity(isValid, validity),
|
|
34
|
+
label,
|
|
35
|
+
value,
|
|
36
|
+
help: description,
|
|
37
|
+
placeholder,
|
|
38
|
+
options: elements,
|
|
39
|
+
onChange: onChangeControl,
|
|
40
|
+
hideLabelFromVision,
|
|
41
|
+
allowReset: true,
|
|
42
|
+
expandOnFocus: true
|
|
43
|
+
}
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
export {
|
|
47
|
+
Combobox as default
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=combobox.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/dataform-controls/combobox.tsx"],
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { privateApis, Spinner } from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormControlProps } from '../../types';\nimport useElements from '../../hooks/use-elements';\nimport { unlock } from '../../lock-unlock';\nimport getCustomValidity from './utils/get-custom-validity';\n\nconst { ValidatedComboboxControl } = unlock( privateApis );\n\nexport default function Combobox< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n\tvalidity,\n}: DataFormControlProps< Item > ) {\n\tconst { label, description, placeholder, getValue, setValue, isValid } =\n\t\tfield;\n\tconst value = getValue( { item: data } ) ?? '';\n\n\tconst onChangeControl = useCallback(\n\t\t( newValue: string | null ) =>\n\t\t\tonChange( setValue( { item: data, value: newValue ?? '' } ) ),\n\t\t[ data, onChange, setValue ]\n\t);\n\n\tconst { elements, isLoading } = useElements( {\n\t\telements: field.elements,\n\t\tgetElements: field.getElements,\n\t} );\n\n\tif ( isLoading ) {\n\t\treturn <Spinner />;\n\t}\n\n\treturn (\n\t\t<ValidatedComboboxControl\n\t\t\trequired={ !! field.isValid?.required }\n\t\t\tcustomValidity={ getCustomValidity( isValid, validity ) }\n\t\t\tlabel={ label }\n\t\t\tvalue={ value }\n\t\t\thelp={ description }\n\t\t\tplaceholder={ placeholder }\n\t\t\toptions={ elements }\n\t\t\tonChange={ onChangeControl }\n\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\tallowReset\n\t\t\texpandOnFocus\n\t\t/>\n\t);\n}\n"],
|
|
5
|
+
"mappings": ";AAGA,SAAS,aAAa,eAAe;AACrC,SAAS,mBAAmB;AAM5B,OAAO,iBAAiB;AACxB,SAAS,cAAc;AACvB,OAAO,uBAAuB;AA2BrB;AAzBT,IAAM,EAAE,yBAAyB,IAAI,OAAQ,WAAY;AAE1C,SAAR,SAAmC;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAkC;AACjC,QAAM,EAAE,OAAO,aAAa,aAAa,UAAU,UAAU,QAAQ,IACpE;AACD,QAAM,QAAQ,SAAU,EAAE,MAAM,KAAK,CAAE,KAAK;AAE5C,QAAM,kBAAkB;AAAA,IACvB,CAAE,aACD,SAAU,SAAU,EAAE,MAAM,MAAM,OAAO,YAAY,GAAG,CAAE,CAAE;AAAA,IAC7D,CAAE,MAAM,UAAU,QAAS;AAAA,EAC5B;AAEA,QAAM,EAAE,UAAU,UAAU,IAAI,YAAa;AAAA,IAC5C,UAAU,MAAM;AAAA,IAChB,aAAa,MAAM;AAAA,EACpB,CAAE;AAEF,MAAK,WAAY;AAChB,WAAO,oBAAC,WAAQ;AAAA,EACjB;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,UAAW,CAAC,CAAE,MAAM,SAAS;AAAA,MAC7B,gBAAiB,kBAAmB,SAAS,QAAS;AAAA,MACtD;AAAA,MACA;AAAA,MACA,MAAO;AAAA,MACP;AAAA,MACA,SAAU;AAAA,MACV,UAAW;AAAA,MACX;AAAA,MACA,YAAU;AAAA,MACV,eAAa;AAAA;AAAA,EACd;AAEF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -148,17 +148,42 @@ function ValidatedDateControl({
|
|
|
148
148
|
setCustomValidity(void 0);
|
|
149
149
|
}, [inputRefs]);
|
|
150
150
|
useEffect(() => {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
151
|
+
const refs = Array.isArray(inputRefs) ? inputRefs : [inputRefs];
|
|
152
|
+
const result = validity ? getCustomValidity(isValid, validity) : void 0;
|
|
153
|
+
for (const ref of refs) {
|
|
154
|
+
const input = ref.current;
|
|
155
|
+
if (input) {
|
|
156
|
+
input.setCustomValidity(
|
|
157
|
+
result?.type === "invalid" && result.message ? result.message : ""
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}, [inputRefs, isValid, validity]);
|
|
162
|
+
useEffect(() => {
|
|
163
|
+
const refs = Array.isArray(inputRefs) ? inputRefs : [inputRefs];
|
|
164
|
+
const handleInvalid = (event) => {
|
|
165
|
+
event.preventDefault();
|
|
166
|
+
setIsTouched(true);
|
|
167
|
+
};
|
|
168
|
+
for (const ref of refs) {
|
|
169
|
+
ref.current?.addEventListener("invalid", handleInvalid);
|
|
170
|
+
}
|
|
171
|
+
return () => {
|
|
172
|
+
for (const ref of refs) {
|
|
173
|
+
ref.current?.removeEventListener("invalid", handleInvalid);
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
}, [inputRefs, setIsTouched]);
|
|
177
|
+
useEffect(() => {
|
|
178
|
+
if (!isTouched) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
const result = validity ? getCustomValidity(isValid, validity) : void 0;
|
|
182
|
+
if (result) {
|
|
183
|
+
setCustomValidity(result);
|
|
184
|
+
} else {
|
|
185
|
+
validateRefs();
|
|
160
186
|
}
|
|
161
|
-
return void 0;
|
|
162
187
|
}, [isTouched, isValid, validity, validateRefs]);
|
|
163
188
|
const onBlur = (event) => {
|
|
164
189
|
if (isTouched) {
|