@wordpress/dataviews 4.9.1-next.cd6172eb0.0 → 4.10.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 +17 -0
- package/README.md +33 -58
- package/build/components/dataviews/index.js +1 -0
- package/build/components/dataviews/index.js.map +1 -1
- package/build/components/dataviews-bulk-actions/index.js +30 -2
- package/build/components/dataviews-bulk-actions/index.js.map +1 -1
- package/build/components/dataviews-filters/add-filter.js +1 -0
- package/build/components/dataviews-filters/add-filter.js.map +1 -1
- package/build/components/dataviews-filters/filter-summary.js +1 -0
- package/build/components/dataviews-filters/filter-summary.js.map +1 -1
- package/build/components/dataviews-filters/index.js +1 -0
- package/build/components/dataviews-filters/index.js.map +1 -1
- package/build/components/dataviews-filters/reset-filters.js +1 -0
- package/build/components/dataviews-filters/reset-filters.js.map +1 -1
- package/build/components/dataviews-filters/search-widget.js +1 -0
- package/build/components/dataviews-filters/search-widget.js.map +1 -1
- package/build/components/dataviews-item-actions/index.js +59 -75
- package/build/components/dataviews-item-actions/index.js.map +1 -1
- package/build/components/dataviews-layout/index.js +1 -0
- package/build/components/dataviews-layout/index.js.map +1 -1
- package/build/components/dataviews-pagination/index.js +1 -0
- package/build/components/dataviews-pagination/index.js.map +1 -1
- package/build/components/dataviews-selection-checkbox/index.js +4 -3
- package/build/components/dataviews-selection-checkbox/index.js.map +1 -1
- package/build/components/dataviews-view-config/index.js +195 -126
- package/build/components/dataviews-view-config/index.js.map +1 -1
- package/build/dataforms-layouts/data-form-layout.js +1 -0
- package/build/dataforms-layouts/data-form-layout.js.map +1 -1
- package/build/dataforms-layouts/index.js +1 -0
- package/build/dataforms-layouts/index.js.map +1 -1
- package/build/dataforms-layouts/panel/index.js +1 -0
- package/build/dataforms-layouts/panel/index.js.map +1 -1
- package/build/dataforms-layouts/regular/index.js +1 -0
- package/build/dataforms-layouts/regular/index.js.map +1 -1
- package/build/dataviews-layouts/grid/index.js +102 -66
- package/build/dataviews-layouts/grid/index.js.map +1 -1
- package/build/dataviews-layouts/index.js +0 -60
- package/build/dataviews-layouts/index.js.map +1 -1
- package/build/dataviews-layouts/list/index.js +44 -17
- package/build/dataviews-layouts/list/index.js.map +1 -1
- package/build/dataviews-layouts/table/column-header-menu.js +20 -24
- package/build/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build/dataviews-layouts/table/column-primary.js +55 -0
- package/build/dataviews-layouts/table/column-primary.js.map +1 -0
- package/build/dataviews-layouts/table/index.js +74 -88
- package/build/dataviews-layouts/table/index.js.map +1 -1
- package/build/dataviews-layouts/utils/get-clickable-item-props.js +2 -2
- package/build/dataviews-layouts/utils/get-clickable-item-props.js.map +1 -1
- package/build/filter-and-sort-data-view.js +1 -0
- package/build/filter-and-sort-data-view.js.map +1 -1
- package/build/normalize-fields.js +1 -0
- package/build/normalize-fields.js.map +1 -1
- package/build/normalize-form-fields.js +1 -0
- package/build/normalize-form-fields.js.map +1 -1
- package/build/types.js.map +1 -1
- package/build/utils.js +1 -0
- package/build/utils.js.map +1 -1
- package/build/validation.js +1 -0
- package/build/validation.js.map +1 -1
- package/build-module/components/dataviews/index.js +1 -0
- package/build-module/components/dataviews/index.js.map +1 -1
- package/build-module/components/dataviews-bulk-actions/index.js +31 -3
- package/build-module/components/dataviews-bulk-actions/index.js.map +1 -1
- package/build-module/components/dataviews-filters/add-filter.js +1 -0
- package/build-module/components/dataviews-filters/add-filter.js.map +1 -1
- package/build-module/components/dataviews-filters/filter-summary.js +1 -0
- package/build-module/components/dataviews-filters/filter-summary.js.map +1 -1
- package/build-module/components/dataviews-filters/index.js +1 -0
- package/build-module/components/dataviews-filters/index.js.map +1 -1
- package/build-module/components/dataviews-filters/reset-filters.js +1 -0
- package/build-module/components/dataviews-filters/reset-filters.js.map +1 -1
- package/build-module/components/dataviews-filters/search-widget.js +1 -0
- package/build-module/components/dataviews-filters/search-widget.js.map +1 -1
- package/build-module/components/dataviews-item-actions/index.js +60 -75
- package/build-module/components/dataviews-item-actions/index.js.map +1 -1
- package/build-module/components/dataviews-layout/index.js +1 -0
- package/build-module/components/dataviews-layout/index.js.map +1 -1
- package/build-module/components/dataviews-pagination/index.js +1 -0
- package/build-module/components/dataviews-pagination/index.js.map +1 -1
- package/build-module/components/dataviews-selection-checkbox/index.js +4 -3
- package/build-module/components/dataviews-selection-checkbox/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/index.js +199 -130
- package/build-module/components/dataviews-view-config/index.js.map +1 -1
- package/build-module/dataforms-layouts/data-form-layout.js +1 -0
- package/build-module/dataforms-layouts/data-form-layout.js.map +1 -1
- package/build-module/dataforms-layouts/index.js +1 -0
- package/build-module/dataforms-layouts/index.js.map +1 -1
- package/build-module/dataforms-layouts/panel/index.js +1 -0
- package/build-module/dataforms-layouts/panel/index.js.map +1 -1
- package/build-module/dataforms-layouts/regular/index.js +1 -0
- package/build-module/dataforms-layouts/regular/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/index.js +103 -67
- package/build-module/dataviews-layouts/grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/index.js +0 -57
- package/build-module/dataviews-layouts/index.js.map +1 -1
- package/build-module/dataviews-layouts/list/index.js +44 -17
- package/build-module/dataviews-layouts/list/index.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-header-menu.js +20 -24
- package/build-module/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-primary.js +48 -0
- package/build-module/dataviews-layouts/table/column-primary.js.map +1 -0
- package/build-module/dataviews-layouts/table/index.js +77 -91
- package/build-module/dataviews-layouts/table/index.js.map +1 -1
- package/build-module/dataviews-layouts/utils/get-clickable-item-props.js +2 -2
- package/build-module/dataviews-layouts/utils/get-clickable-item-props.js.map +1 -1
- package/build-module/filter-and-sort-data-view.js +1 -0
- package/build-module/filter-and-sort-data-view.js.map +1 -1
- package/build-module/normalize-fields.js +1 -0
- package/build-module/normalize-fields.js.map +1 -1
- package/build-module/normalize-form-fields.js +1 -0
- package/build-module/normalize-form-fields.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-module/utils.js +1 -0
- package/build-module/utils.js.map +1 -1
- package/build-module/validation.js +1 -0
- package/build-module/validation.js.map +1 -1
- package/build-style/style-rtl.css +87 -75
- package/build-style/style.css +87 -75
- package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/index.story.d.ts +0 -1
- package/build-types/components/dataviews/stories/index.story.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 +7 -9
- package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
- package/build-types/components/dataviews-selection-checkbox/index.d.ts +2 -2
- package/build-types/components/dataviews-selection-checkbox/index.d.ts.map +1 -1
- package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/index.d.ts +0 -4
- package/build-types/dataviews-layouts/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/column-header-menu.d.ts +1 -0
- package/build-types/dataviews-layouts/table/column-header-menu.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/column-primary.d.ts +14 -0
- package/build-types/dataviews-layouts/table/column-primary.d.ts.map +1 -0
- package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/utils/get-clickable-item-props.d.ts +3 -3
- package/build-types/dataviews-layouts/utils/get-clickable-item-props.d.ts.map +1 -1
- package/build-types/types.d.ts +20 -39
- package/build-types/types.d.ts.map +1 -1
- package/build-wp/index.js +1185 -1317
- package/build.js +1 -1
- package/package.json +10 -10
- package/src/components/dataviews/stories/fixtures.tsx +0 -3
- package/src/components/dataviews/stories/index.story.tsx +14 -106
- package/src/components/dataviews/style.scss +33 -33
- package/src/components/dataviews-bulk-actions/index.tsx +43 -3
- package/src/components/dataviews-item-actions/index.tsx +84 -99
- package/src/components/dataviews-selection-checkbox/index.tsx +4 -4
- package/src/components/dataviews-view-config/index.tsx +301 -195
- package/src/components/dataviews-view-config/style.scss +17 -0
- package/src/dataviews-layouts/grid/index.tsx +136 -101
- package/src/dataviews-layouts/grid/style.scss +16 -25
- package/src/dataviews-layouts/index.ts +0 -88
- package/src/dataviews-layouts/list/index.tsx +62 -32
- package/src/dataviews-layouts/list/style.scss +5 -4
- package/src/dataviews-layouts/table/column-header-menu.tsx +94 -86
- package/src/dataviews-layouts/table/column-primary.tsx +58 -0
- package/src/dataviews-layouts/table/index.tsx +88 -133
- package/src/dataviews-layouts/table/style.scss +4 -0
- package/src/dataviews-layouts/utils/get-clickable-item-props.ts +9 -3
- package/src/types.ts +21 -46
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* wp:polyfill */
|
|
1
2
|
"use strict";
|
|
2
3
|
|
|
3
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
@@ -14,8 +15,7 @@ var _dataviewsItemActions = _interopRequireDefault(require("../../components/dat
|
|
|
14
15
|
var _constants = require("../../constants");
|
|
15
16
|
var _dataviewsBulkActions = require("../../components/dataviews-bulk-actions");
|
|
16
17
|
var _columnHeaderMenu = _interopRequireDefault(require("./column-header-menu"));
|
|
17
|
-
var
|
|
18
|
-
var _getClickableItemProps = _interopRequireDefault(require("../utils/get-clickable-item-props"));
|
|
18
|
+
var _columnPrimary = _interopRequireDefault(require("./column-primary"));
|
|
19
19
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
20
20
|
/**
|
|
21
21
|
* External dependencies
|
|
@@ -29,77 +29,22 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
29
29
|
* Internal dependencies
|
|
30
30
|
*/
|
|
31
31
|
|
|
32
|
-
function
|
|
33
|
-
|
|
32
|
+
function TableColumnField({
|
|
33
|
+
item,
|
|
34
34
|
fields,
|
|
35
|
-
|
|
36
|
-
...props
|
|
35
|
+
column
|
|
37
36
|
}) {
|
|
38
37
|
const field = fields.find(f => f.id === column);
|
|
39
|
-
if (
|
|
40
|
-
return
|
|
41
|
-
...props,
|
|
42
|
-
field: field
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
const combinedField = view.layout?.combinedFields?.find(f => f.id === column);
|
|
46
|
-
if (!!combinedField) {
|
|
47
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(TableColumnCombined, {
|
|
48
|
-
...props,
|
|
49
|
-
fields: fields,
|
|
50
|
-
view: view,
|
|
51
|
-
field: combinedField
|
|
52
|
-
});
|
|
38
|
+
if (!field) {
|
|
39
|
+
return null;
|
|
53
40
|
}
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
56
|
-
function TableColumnField({
|
|
57
|
-
primaryField,
|
|
58
|
-
item,
|
|
59
|
-
field,
|
|
60
|
-
isItemClickable,
|
|
61
|
-
onClickItem
|
|
62
|
-
}) {
|
|
63
|
-
const isPrimaryField = primaryField?.id === field.id;
|
|
64
|
-
const isItemClickableField = i => isItemClickable(i) && isPrimaryField;
|
|
65
|
-
const clickableProps = (0, _getClickableItemProps.default)({
|
|
66
|
-
item,
|
|
67
|
-
isItemClickable: isItemClickableField,
|
|
68
|
-
onClickItem,
|
|
69
|
-
className: 'dataviews-view-table__cell-content'
|
|
70
|
-
});
|
|
71
41
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
72
|
-
className:
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
76
|
-
...clickableProps,
|
|
77
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(field.render, {
|
|
78
|
-
item
|
|
79
|
-
})
|
|
42
|
+
className: "dataviews-view-table__cell-content-wrapper",
|
|
43
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(field.render, {
|
|
44
|
+
item
|
|
80
45
|
})
|
|
81
46
|
});
|
|
82
47
|
}
|
|
83
|
-
function TableColumnCombined({
|
|
84
|
-
field,
|
|
85
|
-
...props
|
|
86
|
-
}) {
|
|
87
|
-
const children = field.children.map(child => /*#__PURE__*/(0, _jsxRuntime.jsx)(TableColumn, {
|
|
88
|
-
...props,
|
|
89
|
-
column: child
|
|
90
|
-
}, child));
|
|
91
|
-
if (field.direction === 'horizontal') {
|
|
92
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalHStack, {
|
|
93
|
-
spacing: 3,
|
|
94
|
-
justify: "flex-start",
|
|
95
|
-
children: children
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalVStack, {
|
|
99
|
-
spacing: 0,
|
|
100
|
-
children: children
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
48
|
function TableRow({
|
|
104
49
|
hasBulkActions,
|
|
105
50
|
item,
|
|
@@ -107,16 +52,24 @@ function TableRow({
|
|
|
107
52
|
fields,
|
|
108
53
|
id,
|
|
109
54
|
view,
|
|
110
|
-
|
|
55
|
+
titleField,
|
|
56
|
+
mediaField,
|
|
57
|
+
descriptionField,
|
|
111
58
|
selection,
|
|
112
59
|
getItemId,
|
|
113
60
|
isItemClickable,
|
|
114
61
|
onClickItem,
|
|
115
62
|
onChangeSelection
|
|
116
63
|
}) {
|
|
64
|
+
var _view$fields;
|
|
117
65
|
const hasPossibleBulkAction = (0, _dataviewsBulkActions.useHasAPossibleBulkAction)(actions, item);
|
|
118
66
|
const isSelected = hasPossibleBulkAction && selection.includes(id);
|
|
119
67
|
const [isHovered, setIsHovered] = (0, _element.useState)(false);
|
|
68
|
+
const {
|
|
69
|
+
showTitle = true,
|
|
70
|
+
showMedia = true,
|
|
71
|
+
showDescription = true
|
|
72
|
+
} = view;
|
|
120
73
|
const handleMouseEnter = () => {
|
|
121
74
|
setIsHovered(true);
|
|
122
75
|
};
|
|
@@ -128,7 +81,8 @@ function TableRow({
|
|
|
128
81
|
// `onClick` and can be used to exclude touchscreen devices from certain
|
|
129
82
|
// behaviours.
|
|
130
83
|
const isTouchDeviceRef = (0, _element.useRef)(false);
|
|
131
|
-
const columns = (
|
|
84
|
+
const columns = (_view$fields = view.fields) !== null && _view$fields !== void 0 ? _view$fields : [];
|
|
85
|
+
const hasPrimaryColumn = titleField && showTitle || mediaField && showMedia || descriptionField && showDescription;
|
|
132
86
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("tr", {
|
|
133
87
|
className: (0, _clsx.default)('dataviews-view-table__row', {
|
|
134
88
|
'is-selected': hasPossibleBulkAction && isSelected,
|
|
@@ -160,10 +114,19 @@ function TableRow({
|
|
|
160
114
|
selection: selection,
|
|
161
115
|
onChangeSelection: onChangeSelection,
|
|
162
116
|
getItemId: getItemId,
|
|
163
|
-
|
|
117
|
+
titleField: titleField,
|
|
164
118
|
disabled: !hasPossibleBulkAction
|
|
165
119
|
})
|
|
166
120
|
})
|
|
121
|
+
}), hasPrimaryColumn && /*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
|
|
122
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_columnPrimary.default, {
|
|
123
|
+
item: item,
|
|
124
|
+
titleField: showTitle ? titleField : undefined,
|
|
125
|
+
mediaField: showMedia ? mediaField : undefined,
|
|
126
|
+
descriptionField: showDescription ? descriptionField : undefined,
|
|
127
|
+
isItemClickable: isItemClickable,
|
|
128
|
+
onClickItem: onClickItem
|
|
129
|
+
})
|
|
167
130
|
}), columns.map(column => {
|
|
168
131
|
var _view$layout$styles$c;
|
|
169
132
|
// Explicits picks the supported styles.
|
|
@@ -178,14 +141,10 @@ function TableRow({
|
|
|
178
141
|
maxWidth,
|
|
179
142
|
minWidth
|
|
180
143
|
},
|
|
181
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
182
|
-
primaryField: primaryField,
|
|
183
|
-
isItemClickable: isItemClickable,
|
|
184
|
-
onClickItem: onClickItem,
|
|
144
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(TableColumnField, {
|
|
185
145
|
fields: fields,
|
|
186
146
|
item: item,
|
|
187
|
-
column: column
|
|
188
|
-
view: view
|
|
147
|
+
column: column
|
|
189
148
|
})
|
|
190
149
|
}, column);
|
|
191
150
|
}), !!actions?.length &&
|
|
@@ -221,6 +180,7 @@ function ViewTable({
|
|
|
221
180
|
isItemClickable,
|
|
222
181
|
view
|
|
223
182
|
}) {
|
|
183
|
+
var _view$fields2;
|
|
224
184
|
const headerMenuRefs = (0, _element.useRef)(new Map());
|
|
225
185
|
const headerMenuToFocusRef = (0, _element.useRef)();
|
|
226
186
|
const [nextHeaderMenuToFocus, setNextHeaderMenuToFocus] = (0, _element.useState)();
|
|
@@ -246,9 +206,27 @@ function ViewTable({
|
|
|
246
206
|
const fallback = hidden ? headerMenuRefs.current.get(hidden.fallback) : undefined;
|
|
247
207
|
setNextHeaderMenuToFocus(fallback?.node);
|
|
248
208
|
};
|
|
249
|
-
const columns = (0, _index.getVisibleFieldIds)(view, fields);
|
|
250
209
|
const hasData = !!data?.length;
|
|
251
|
-
const
|
|
210
|
+
const titleField = fields.find(field => field.id === view.titleField);
|
|
211
|
+
const mediaField = fields.find(field => field.id === view.mediaField);
|
|
212
|
+
const descriptionField = fields.find(field => field.id === view.descriptionField);
|
|
213
|
+
const {
|
|
214
|
+
showTitle = true,
|
|
215
|
+
showMedia = true,
|
|
216
|
+
showDescription = true
|
|
217
|
+
} = view;
|
|
218
|
+
const hasPrimaryColumn = titleField && showTitle || mediaField && showMedia || descriptionField && showDescription;
|
|
219
|
+
const columns = (_view$fields2 = view.fields) !== null && _view$fields2 !== void 0 ? _view$fields2 : [];
|
|
220
|
+
const headerMenuRef = (column, index) => node => {
|
|
221
|
+
if (node) {
|
|
222
|
+
headerMenuRefs.current.set(column, {
|
|
223
|
+
node,
|
|
224
|
+
fallback: columns[index > 0 ? index - 1 : 1]
|
|
225
|
+
});
|
|
226
|
+
} else {
|
|
227
|
+
headerMenuRefs.current.delete(column);
|
|
228
|
+
}
|
|
229
|
+
};
|
|
252
230
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
253
231
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("table", {
|
|
254
232
|
className: (0, _clsx.default)('dataviews-view-table', {
|
|
@@ -272,6 +250,21 @@ function ViewTable({
|
|
|
272
250
|
actions: actions,
|
|
273
251
|
getItemId: getItemId
|
|
274
252
|
})
|
|
253
|
+
}), hasPrimaryColumn && /*#__PURE__*/(0, _jsxRuntime.jsx)("th", {
|
|
254
|
+
scope: "col",
|
|
255
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
256
|
+
className: "dataviews-view-table-header",
|
|
257
|
+
children: titleField && /*#__PURE__*/(0, _jsxRuntime.jsx)(_columnHeaderMenu.default, {
|
|
258
|
+
ref: headerMenuRef(titleField.id, 0),
|
|
259
|
+
fieldId: titleField.id,
|
|
260
|
+
view: view,
|
|
261
|
+
fields: fields,
|
|
262
|
+
onChangeView: onChangeView,
|
|
263
|
+
onHide: onHide,
|
|
264
|
+
setOpenedFilter: setOpenedFilter,
|
|
265
|
+
canMove: false
|
|
266
|
+
})
|
|
267
|
+
})
|
|
275
268
|
}), columns.map((column, index) => {
|
|
276
269
|
var _view$layout$styles$c2;
|
|
277
270
|
// Explicits picks the supported styles.
|
|
@@ -286,19 +279,10 @@ function ViewTable({
|
|
|
286
279
|
maxWidth,
|
|
287
280
|
minWidth
|
|
288
281
|
},
|
|
289
|
-
"aria-sort": view.sort?.field === column ? _constants.sortValues[view.sort.direction] : undefined,
|
|
282
|
+
"aria-sort": view.sort?.direction && view.sort?.field === column ? _constants.sortValues[view.sort.direction] : undefined,
|
|
290
283
|
scope: "col",
|
|
291
284
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_columnHeaderMenu.default, {
|
|
292
|
-
ref:
|
|
293
|
-
if (node) {
|
|
294
|
-
headerMenuRefs.current.set(column, {
|
|
295
|
-
node,
|
|
296
|
-
fallback: columns[index > 0 ? index - 1 : 1]
|
|
297
|
-
});
|
|
298
|
-
} else {
|
|
299
|
-
headerMenuRefs.current.delete(column);
|
|
300
|
-
}
|
|
301
|
-
},
|
|
285
|
+
ref: headerMenuRef(column, index),
|
|
302
286
|
fieldId: column,
|
|
303
287
|
view: view,
|
|
304
288
|
fields: fields,
|
|
@@ -323,7 +307,9 @@ function ViewTable({
|
|
|
323
307
|
fields: fields,
|
|
324
308
|
id: getItemId(item) || index.toString(),
|
|
325
309
|
view: view,
|
|
326
|
-
|
|
310
|
+
titleField: titleField,
|
|
311
|
+
mediaField: mediaField,
|
|
312
|
+
descriptionField: descriptionField,
|
|
327
313
|
selection: selection,
|
|
328
314
|
getItemId: getItemId,
|
|
329
315
|
onChangeSelection: onChangeSelection,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_components","_element","_dataviewsSelectionCheckbox","_dataviewsItemActions","_constants","_dataviewsBulkActions","_columnHeaderMenu","_index","_getClickableItemProps","_jsxRuntime","TableColumn","column","fields","view","props","field","find","f","id","jsx","TableColumnField","combinedField","layout","combinedFields","TableColumnCombined","primaryField","item","isItemClickable","onClickItem","isPrimaryField","isItemClickableField","i","clickableProps","getClickableItemProps","className","clsx","children","render","map","child","direction","__experimentalHStack","spacing","justify","__experimentalVStack","TableRow","hasBulkActions","actions","selection","getItemId","onChangeSelection","hasPossibleBulkAction","useHasAPossibleBulkAction","isSelected","includes","isHovered","setIsHovered","useState","handleMouseEnter","handleMouseLeave","isTouchDeviceRef","useRef","columns","getVisibleFieldIds","jsxs","onMouseEnter","onMouseLeave","onTouchStart","current","onClick","document","getSelection","type","filter","itemId","style","width","default","disabled","_view$layout$styles$c","maxWidth","minWidth","styles","length","e","stopPropagation","ViewTable","data","isLoading","onChangeView","setOpenedFilter","headerMenuRefs","Map","headerMenuToFocusRef","nextHeaderMenuToFocus","setNextHeaderMenuToFocus","useSomeItemHasAPossibleBulkAction","useEffect","focus","undefined","tableNoticeId","useId","onHide","hidden","get","fallback","node","hasData","Fragment","density","scope","BulkSelectionCheckbox","index","_view$layout$styles$c2","sort","sortValues","ref","set","delete","fieldId","__","toString","Spinner","_default","exports"],"sources":["@wordpress/dataviews/src/dataviews-layouts/table/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tSpinner,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useEffect, useId, useRef, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SingleSelectionCheckbox from '../../components/dataviews-selection-checkbox';\nimport ItemActions from '../../components/dataviews-item-actions';\nimport { sortValues } from '../../constants';\nimport {\n\tuseSomeItemHasAPossibleBulkAction,\n\tuseHasAPossibleBulkAction,\n\tBulkSelectionCheckbox,\n} from '../../components/dataviews-bulk-actions';\nimport type {\n\tAction,\n\tNormalizedField,\n\tViewTable as ViewTableType,\n\tViewTableProps,\n\tCombinedField,\n} from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport ColumnHeaderMenu from './column-header-menu';\nimport { getVisibleFieldIds } from '../index';\nimport getClickableItemProps from '../utils/get-clickable-item-props';\n\ninterface TableColumnFieldProps< Item > {\n\tprimaryField?: NormalizedField< Item >;\n\tfield: NormalizedField< Item >;\n\titem: Item;\n\tisItemClickable: ( item: Item ) => boolean;\n\tonClickItem?: ( item: Item ) => void;\n}\n\ninterface TableColumnCombinedProps< Item > {\n\tprimaryField?: NormalizedField< Item >;\n\tfields: NormalizedField< Item >[];\n\tfield: CombinedField;\n\titem: Item;\n\tview: ViewTableType;\n\tisItemClickable: ( item: Item ) => boolean;\n\tonClickItem?: ( item: Item ) => void;\n}\n\ninterface TableColumnProps< Item > {\n\tprimaryField?: NormalizedField< Item >;\n\tfields: NormalizedField< Item >[];\n\titem: Item;\n\tcolumn: string;\n\tview: ViewTableType;\n\tisItemClickable: ( item: Item ) => boolean;\n\tonClickItem?: ( item: Item ) => void;\n}\n\ninterface TableRowProps< Item > {\n\thasBulkActions: boolean;\n\titem: Item;\n\tactions: Action< Item >[];\n\tfields: NormalizedField< Item >[];\n\tid: string;\n\tview: ViewTableType;\n\tprimaryField?: NormalizedField< Item >;\n\tselection: string[];\n\tgetItemId: ( item: Item ) => string;\n\tonChangeSelection: SetSelection;\n\tisItemClickable: ( item: Item ) => boolean;\n\tonClickItem?: ( item: Item ) => void;\n}\n\nfunction TableColumn< Item >( {\n\tcolumn,\n\tfields,\n\tview,\n\t...props\n}: TableColumnProps< Item > ) {\n\tconst field = fields.find( ( f ) => f.id === column );\n\tif ( !! field ) {\n\t\treturn <TableColumnField { ...props } field={ field } />;\n\t}\n\tconst combinedField = view.layout?.combinedFields?.find(\n\t\t( f ) => f.id === column\n\t);\n\tif ( !! combinedField ) {\n\t\treturn (\n\t\t\t<TableColumnCombined\n\t\t\t\t{ ...props }\n\t\t\t\tfields={ fields }\n\t\t\t\tview={ view }\n\t\t\t\tfield={ combinedField }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn null;\n}\n\nfunction TableColumnField< Item >( {\n\tprimaryField,\n\titem,\n\tfield,\n\tisItemClickable,\n\tonClickItem,\n}: TableColumnFieldProps< Item > ) {\n\tconst isPrimaryField = primaryField?.id === field.id;\n\tconst isItemClickableField = ( i: Item ) =>\n\t\tisItemClickable( i ) && isPrimaryField;\n\n\tconst clickableProps = getClickableItemProps( {\n\t\titem,\n\t\tisItemClickable: isItemClickableField,\n\t\tonClickItem,\n\t\tclassName: 'dataviews-view-table__cell-content',\n\t} );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx( 'dataviews-view-table__cell-content-wrapper', {\n\t\t\t\t'dataviews-view-table__primary-field': isPrimaryField,\n\t\t\t} ) }\n\t\t>\n\t\t\t<div { ...clickableProps }>\n\t\t\t\t<field.render { ...{ item } } />\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nfunction TableColumnCombined< Item >( {\n\tfield,\n\t...props\n}: TableColumnCombinedProps< Item > ) {\n\tconst children = field.children.map( ( child ) => (\n\t\t<TableColumn key={ child } { ...props } column={ child } />\n\t) );\n\n\tif ( field.direction === 'horizontal' ) {\n\t\treturn (\n\t\t\t<HStack spacing={ 3 } justify=\"flex-start\">\n\t\t\t\t{ children }\n\t\t\t</HStack>\n\t\t);\n\t}\n\treturn <VStack spacing={ 0 }>{ children }</VStack>;\n}\n\nfunction TableRow< Item >( {\n\thasBulkActions,\n\titem,\n\tactions,\n\tfields,\n\tid,\n\tview,\n\tprimaryField,\n\tselection,\n\tgetItemId,\n\tisItemClickable,\n\tonClickItem,\n\tonChangeSelection,\n}: TableRowProps< Item > ) {\n\tconst hasPossibleBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst isSelected = hasPossibleBulkAction && selection.includes( id );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\n\tconst handleMouseEnter = () => {\n\t\tsetIsHovered( true );\n\t};\n\tconst handleMouseLeave = () => {\n\t\tsetIsHovered( false );\n\t};\n\n\t// Will be set to true if `onTouchStart` fires. This happens before\n\t// `onClick` and can be used to exclude touchscreen devices from certain\n\t// behaviours.\n\tconst isTouchDeviceRef = useRef( false );\n\tconst columns = getVisibleFieldIds( view, fields );\n\n\treturn (\n\t\t<tr\n\t\t\tclassName={ clsx( 'dataviews-view-table__row', {\n\t\t\t\t'is-selected': hasPossibleBulkAction && isSelected,\n\t\t\t\t'is-hovered': isHovered,\n\t\t\t\t'has-bulk-actions': hasPossibleBulkAction,\n\t\t\t} ) }\n\t\t\tonMouseEnter={ handleMouseEnter }\n\t\t\tonMouseLeave={ handleMouseLeave }\n\t\t\tonTouchStart={ () => {\n\t\t\t\tisTouchDeviceRef.current = true;\n\t\t\t} }\n\t\t\tonClick={ () => {\n\t\t\t\tif ( ! hasPossibleBulkAction ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\t! isTouchDeviceRef.current &&\n\t\t\t\t\tdocument.getSelection()?.type !== 'Range'\n\t\t\t\t) {\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t\t? selection.filter( ( itemId ) => id !== itemId )\n\t\t\t\t\t\t\t: [ id ]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t{ hasBulkActions && (\n\t\t\t\t<td\n\t\t\t\t\tclassName=\"dataviews-view-table__checkbox-column\"\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth: '1%',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<div className=\"dataviews-view-table__cell-content-wrapper\">\n\t\t\t\t\t\t<SingleSelectionCheckbox\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\t\tdisabled={ ! hasPossibleBulkAction }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</td>\n\t\t\t) }\n\t\t\t{ columns.map( ( column: string ) => {\n\t\t\t\t// Explicits picks the supported styles.\n\t\t\t\tconst { width, maxWidth, minWidth } =\n\t\t\t\t\tview.layout?.styles?.[ column ] ?? {};\n\n\t\t\t\treturn (\n\t\t\t\t\t<td key={ column } style={ { width, maxWidth, minWidth } }>\n\t\t\t\t\t\t<TableColumn\n\t\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tcolumn={ column }\n\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</td>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t\t{ !! actions?.length && (\n\t\t\t\t// Disable reason: we are not making the element interactive,\n\t\t\t\t// but preventing any click events from bubbling up to the\n\t\t\t\t// table row. This allows us to add a click handler to the row\n\t\t\t\t// itself (to toggle row selection) without erroneously\n\t\t\t\t// intercepting click events from ItemActions.\n\n\t\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t\t<td\n\t\t\t\t\tclassName=\"dataviews-view-table__actions-column\"\n\t\t\t\t\tonClick={ ( e ) => e.stopPropagation() }\n\t\t\t\t>\n\t\t\t\t\t<ItemActions item={ item } actions={ actions } />\n\t\t\t\t</td>\n\t\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t) }\n\t\t</tr>\n\t);\n}\n\nfunction ViewTable< Item >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading = false,\n\tonChangeView,\n\tonChangeSelection,\n\tselection,\n\tsetOpenedFilter,\n\tonClickItem,\n\tisItemClickable,\n\tview,\n}: ViewTableProps< Item > ) {\n\tconst headerMenuRefs = useRef<\n\t\tMap< string, { node: HTMLButtonElement; fallback: string } >\n\t>( new Map() );\n\tconst headerMenuToFocusRef = useRef< HTMLButtonElement >();\n\tconst [ nextHeaderMenuToFocus, setNextHeaderMenuToFocus ] =\n\t\tuseState< HTMLButtonElement >();\n\tconst hasBulkActions = useSomeItemHasAPossibleBulkAction( actions, data );\n\n\tuseEffect( () => {\n\t\tif ( headerMenuToFocusRef.current ) {\n\t\t\theaderMenuToFocusRef.current.focus();\n\t\t\theaderMenuToFocusRef.current = undefined;\n\t\t}\n\t} );\n\n\tconst tableNoticeId = useId();\n\n\tif ( nextHeaderMenuToFocus ) {\n\t\t// If we need to force focus, we short-circuit rendering here\n\t\t// to prevent any additional work while we handle that.\n\t\t// Clearing out the focus directive is necessary to make sure\n\t\t// future renders don't cause unexpected focus jumps.\n\t\theaderMenuToFocusRef.current = nextHeaderMenuToFocus;\n\t\tsetNextHeaderMenuToFocus( undefined );\n\t\treturn;\n\t}\n\n\tconst onHide = ( field: NormalizedField< Item > ) => {\n\t\tconst hidden = headerMenuRefs.current.get( field.id );\n\t\tconst fallback = hidden\n\t\t\t? headerMenuRefs.current.get( hidden.fallback )\n\t\t\t: undefined;\n\t\tsetNextHeaderMenuToFocus( fallback?.node );\n\t};\n\n\tconst columns = getVisibleFieldIds( view, fields );\n\tconst hasData = !! data?.length;\n\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout?.primaryField\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<table\n\t\t\t\tclassName={ clsx( 'dataviews-view-table', {\n\t\t\t\t\t[ `has-${ view.layout?.density }-density` ]:\n\t\t\t\t\t\tview.layout?.density &&\n\t\t\t\t\t\t[ 'compact', 'comfortable' ].includes(\n\t\t\t\t\t\t\tview.layout.density\n\t\t\t\t\t\t),\n\t\t\t\t} ) }\n\t\t\t\taria-busy={ isLoading }\n\t\t\t\taria-describedby={ tableNoticeId }\n\t\t\t>\n\t\t\t\t<thead>\n\t\t\t\t\t<tr className=\"dataviews-view-table__row\">\n\t\t\t\t\t\t{ hasBulkActions && (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-table__checkbox-column\"\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\twidth: '1%',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<BulkSelectionCheckbox\n\t\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ columns.map( ( column, index ) => {\n\t\t\t\t\t\t\t// Explicits picks the supported styles.\n\t\t\t\t\t\t\tconst { width, maxWidth, minWidth } =\n\t\t\t\t\t\t\t\tview.layout?.styles?.[ column ] ?? {};\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\t\tkey={ column }\n\t\t\t\t\t\t\t\t\tstyle={ { width, maxWidth, minWidth } }\n\t\t\t\t\t\t\t\t\taria-sort={\n\t\t\t\t\t\t\t\t\t\tview.sort?.field === column\n\t\t\t\t\t\t\t\t\t\t\t? sortValues[ view.sort.direction ]\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ColumnHeaderMenu\n\t\t\t\t\t\t\t\t\t\tref={ ( node ) => {\n\t\t\t\t\t\t\t\t\t\t\tif ( node ) {\n\t\t\t\t\t\t\t\t\t\t\t\theaderMenuRefs.current.set(\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn,\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfallback:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumns[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? index - 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\theaderMenuRefs.current.delete(\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tfieldId={ column }\n\t\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t\t\tonHide={ onHide }\n\t\t\t\t\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t\t\t<th className=\"dataviews-view-table__actions-column\">\n\t\t\t\t\t\t\t\t<span className=\"dataviews-view-table-header\">\n\t\t\t\t\t\t\t\t\t{ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t{ hasData &&\n\t\t\t\t\t\tdata.map( ( item, index ) => (\n\t\t\t\t\t\t\t<TableRow\n\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\thasBulkActions={ hasBulkActions }\n\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\t\tid={ getItemId( item ) || index.toString() }\n\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t\t<div\n\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t'dataviews-no-results': ! hasData && ! isLoading,\n\t\t\t\t} ) }\n\t\t\t\tid={ tableNoticeId }\n\t\t\t>\n\t\t\t\t{ ! hasData && (\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ViewTable;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_components","_element","_dataviewsSelectionCheckbox","_dataviewsItemActions","_constants","_dataviewsBulkActions","_columnHeaderMenu","_columnPrimary","_jsxRuntime","TableColumnField","item","fields","column","field","find","f","id","jsx","className","children","render","TableRow","hasBulkActions","actions","view","titleField","mediaField","descriptionField","selection","getItemId","isItemClickable","onClickItem","onChangeSelection","_view$fields","hasPossibleBulkAction","useHasAPossibleBulkAction","isSelected","includes","isHovered","setIsHovered","useState","showTitle","showMedia","showDescription","handleMouseEnter","handleMouseLeave","isTouchDeviceRef","useRef","columns","hasPrimaryColumn","jsxs","clsx","onMouseEnter","onMouseLeave","onTouchStart","current","onClick","document","getSelection","type","filter","itemId","style","width","default","disabled","undefined","map","_view$layout$styles$c","maxWidth","minWidth","layout","styles","length","e","stopPropagation","ViewTable","data","isLoading","onChangeView","setOpenedFilter","_view$fields2","headerMenuRefs","Map","headerMenuToFocusRef","nextHeaderMenuToFocus","setNextHeaderMenuToFocus","useSomeItemHasAPossibleBulkAction","useEffect","focus","tableNoticeId","useId","onHide","hidden","get","fallback","node","hasData","headerMenuRef","index","set","delete","Fragment","density","scope","BulkSelectionCheckbox","ref","fieldId","canMove","_view$layout$styles$c2","sort","direction","sortValues","__","toString","Spinner","_default","exports"],"sources":["@wordpress/dataviews/src/dataviews-layouts/table/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Spinner } from '@wordpress/components';\nimport { useEffect, useId, useRef, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DataViewsSelectionCheckbox from '../../components/dataviews-selection-checkbox';\nimport ItemActions from '../../components/dataviews-item-actions';\nimport { sortValues } from '../../constants';\nimport {\n\tuseSomeItemHasAPossibleBulkAction,\n\tuseHasAPossibleBulkAction,\n\tBulkSelectionCheckbox,\n} from '../../components/dataviews-bulk-actions';\nimport type {\n\tAction,\n\tNormalizedField,\n\tViewTable as ViewTableType,\n\tViewTableProps,\n} from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport ColumnHeaderMenu from './column-header-menu';\nimport ColumnPrimary from './column-primary';\n\ninterface TableColumnFieldProps< Item > {\n\tfields: NormalizedField< Item >[];\n\tcolumn: string;\n\titem: Item;\n}\n\ninterface TableRowProps< Item > {\n\thasBulkActions: boolean;\n\titem: Item;\n\tactions: Action< Item >[];\n\tfields: NormalizedField< Item >[];\n\tid: string;\n\tview: ViewTableType;\n\ttitleField?: NormalizedField< Item >;\n\tmediaField?: NormalizedField< Item >;\n\tdescriptionField?: NormalizedField< Item >;\n\tselection: string[];\n\tgetItemId: ( item: Item ) => string;\n\tonChangeSelection: SetSelection;\n\tisItemClickable: ( item: Item ) => boolean;\n\tonClickItem?: ( item: Item ) => void;\n}\n\nfunction TableColumnField< Item >( {\n\titem,\n\tfields,\n\tcolumn,\n}: TableColumnFieldProps< Item > ) {\n\tconst field = fields.find( ( f ) => f.id === column );\n\n\tif ( ! field ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"dataviews-view-table__cell-content-wrapper\">\n\t\t\t<field.render { ...{ item } } />\n\t\t</div>\n\t);\n}\n\nfunction TableRow< Item >( {\n\thasBulkActions,\n\titem,\n\tactions,\n\tfields,\n\tid,\n\tview,\n\ttitleField,\n\tmediaField,\n\tdescriptionField,\n\tselection,\n\tgetItemId,\n\tisItemClickable,\n\tonClickItem,\n\tonChangeSelection,\n}: TableRowProps< Item > ) {\n\tconst hasPossibleBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst isSelected = hasPossibleBulkAction && selection.includes( id );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst { showTitle = true, showMedia = true, showDescription = true } = view;\n\tconst handleMouseEnter = () => {\n\t\tsetIsHovered( true );\n\t};\n\tconst handleMouseLeave = () => {\n\t\tsetIsHovered( false );\n\t};\n\n\t// Will be set to true if `onTouchStart` fires. This happens before\n\t// `onClick` and can be used to exclude touchscreen devices from certain\n\t// behaviours.\n\tconst isTouchDeviceRef = useRef( false );\n\tconst columns = view.fields ?? [];\n\tconst hasPrimaryColumn =\n\t\t( titleField && showTitle ) ||\n\t\t( mediaField && showMedia ) ||\n\t\t( descriptionField && showDescription );\n\n\treturn (\n\t\t<tr\n\t\t\tclassName={ clsx( 'dataviews-view-table__row', {\n\t\t\t\t'is-selected': hasPossibleBulkAction && isSelected,\n\t\t\t\t'is-hovered': isHovered,\n\t\t\t\t'has-bulk-actions': hasPossibleBulkAction,\n\t\t\t} ) }\n\t\t\tonMouseEnter={ handleMouseEnter }\n\t\t\tonMouseLeave={ handleMouseLeave }\n\t\t\tonTouchStart={ () => {\n\t\t\t\tisTouchDeviceRef.current = true;\n\t\t\t} }\n\t\t\tonClick={ () => {\n\t\t\t\tif ( ! hasPossibleBulkAction ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\t! isTouchDeviceRef.current &&\n\t\t\t\t\tdocument.getSelection()?.type !== 'Range'\n\t\t\t\t) {\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t\t? selection.filter( ( itemId ) => id !== itemId )\n\t\t\t\t\t\t\t: [ id ]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t{ hasBulkActions && (\n\t\t\t\t<td\n\t\t\t\t\tclassName=\"dataviews-view-table__checkbox-column\"\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth: '1%',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<div className=\"dataviews-view-table__cell-content-wrapper\">\n\t\t\t\t\t\t<DataViewsSelectionCheckbox\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\tdisabled={ ! hasPossibleBulkAction }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</td>\n\t\t\t) }\n\t\t\t{ hasPrimaryColumn && (\n\t\t\t\t<td>\n\t\t\t\t\t<ColumnPrimary\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\ttitleField={ showTitle ? titleField : undefined }\n\t\t\t\t\t\tmediaField={ showMedia ? mediaField : undefined }\n\t\t\t\t\t\tdescriptionField={\n\t\t\t\t\t\t\tshowDescription ? descriptionField : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\t/>\n\t\t\t\t</td>\n\t\t\t) }\n\t\t\t{ columns.map( ( column: string ) => {\n\t\t\t\t// Explicits picks the supported styles.\n\t\t\t\tconst { width, maxWidth, minWidth } =\n\t\t\t\t\tview.layout?.styles?.[ column ] ?? {};\n\n\t\t\t\treturn (\n\t\t\t\t\t<td key={ column } style={ { width, maxWidth, minWidth } }>\n\t\t\t\t\t\t<TableColumnField\n\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tcolumn={ column }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</td>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t\t{ !! actions?.length && (\n\t\t\t\t// Disable reason: we are not making the element interactive,\n\t\t\t\t// but preventing any click events from bubbling up to the\n\t\t\t\t// table row. This allows us to add a click handler to the row\n\t\t\t\t// itself (to toggle row selection) without erroneously\n\t\t\t\t// intercepting click events from ItemActions.\n\n\t\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t\t<td\n\t\t\t\t\tclassName=\"dataviews-view-table__actions-column\"\n\t\t\t\t\tonClick={ ( e ) => e.stopPropagation() }\n\t\t\t\t>\n\t\t\t\t\t<ItemActions item={ item } actions={ actions } />\n\t\t\t\t</td>\n\t\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t) }\n\t\t</tr>\n\t);\n}\n\nfunction ViewTable< Item >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading = false,\n\tonChangeView,\n\tonChangeSelection,\n\tselection,\n\tsetOpenedFilter,\n\tonClickItem,\n\tisItemClickable,\n\tview,\n}: ViewTableProps< Item > ) {\n\tconst headerMenuRefs = useRef<\n\t\tMap< string, { node: HTMLButtonElement; fallback: string } >\n\t>( new Map() );\n\tconst headerMenuToFocusRef = useRef< HTMLButtonElement >();\n\tconst [ nextHeaderMenuToFocus, setNextHeaderMenuToFocus ] =\n\t\tuseState< HTMLButtonElement >();\n\tconst hasBulkActions = useSomeItemHasAPossibleBulkAction( actions, data );\n\n\tuseEffect( () => {\n\t\tif ( headerMenuToFocusRef.current ) {\n\t\t\theaderMenuToFocusRef.current.focus();\n\t\t\theaderMenuToFocusRef.current = undefined;\n\t\t}\n\t} );\n\n\tconst tableNoticeId = useId();\n\n\tif ( nextHeaderMenuToFocus ) {\n\t\t// If we need to force focus, we short-circuit rendering here\n\t\t// to prevent any additional work while we handle that.\n\t\t// Clearing out the focus directive is necessary to make sure\n\t\t// future renders don't cause unexpected focus jumps.\n\t\theaderMenuToFocusRef.current = nextHeaderMenuToFocus;\n\t\tsetNextHeaderMenuToFocus( undefined );\n\t\treturn;\n\t}\n\n\tconst onHide = ( field: NormalizedField< Item > ) => {\n\t\tconst hidden = headerMenuRefs.current.get( field.id );\n\t\tconst fallback = hidden\n\t\t\t? headerMenuRefs.current.get( hidden.fallback )\n\t\t\t: undefined;\n\t\tsetNextHeaderMenuToFocus( fallback?.node );\n\t};\n\n\tconst hasData = !! data?.length;\n\n\tconst titleField = fields.find( ( field ) => field.id === view.titleField );\n\tconst mediaField = fields.find( ( field ) => field.id === view.mediaField );\n\tconst descriptionField = fields.find(\n\t\t( field ) => field.id === view.descriptionField\n\t);\n\tconst { showTitle = true, showMedia = true, showDescription = true } = view;\n\tconst hasPrimaryColumn =\n\t\t( titleField && showTitle ) ||\n\t\t( mediaField && showMedia ) ||\n\t\t( descriptionField && showDescription );\n\tconst columns = view.fields ?? [];\n\tconst headerMenuRef =\n\t\t( column: string, index: number ) => ( node: HTMLButtonElement ) => {\n\t\t\tif ( node ) {\n\t\t\t\theaderMenuRefs.current.set( column, {\n\t\t\t\t\tnode,\n\t\t\t\t\tfallback: columns[ index > 0 ? index - 1 : 1 ],\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\theaderMenuRefs.current.delete( column );\n\t\t\t}\n\t\t};\n\n\treturn (\n\t\t<>\n\t\t\t<table\n\t\t\t\tclassName={ clsx( 'dataviews-view-table', {\n\t\t\t\t\t[ `has-${ view.layout?.density }-density` ]:\n\t\t\t\t\t\tview.layout?.density &&\n\t\t\t\t\t\t[ 'compact', 'comfortable' ].includes(\n\t\t\t\t\t\t\tview.layout.density\n\t\t\t\t\t\t),\n\t\t\t\t} ) }\n\t\t\t\taria-busy={ isLoading }\n\t\t\t\taria-describedby={ tableNoticeId }\n\t\t\t>\n\t\t\t\t<thead>\n\t\t\t\t\t<tr className=\"dataviews-view-table__row\">\n\t\t\t\t\t\t{ hasBulkActions && (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-table__checkbox-column\"\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\twidth: '1%',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<BulkSelectionCheckbox\n\t\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasPrimaryColumn && (\n\t\t\t\t\t\t\t<th scope=\"col\">\n\t\t\t\t\t\t\t\t<span className=\"dataviews-view-table-header\">\n\t\t\t\t\t\t\t\t\t{ titleField && (\n\t\t\t\t\t\t\t\t\t\t<ColumnHeaderMenu\n\t\t\t\t\t\t\t\t\t\t\tref={ headerMenuRef(\n\t\t\t\t\t\t\t\t\t\t\t\ttitleField.id,\n\t\t\t\t\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tfieldId={ titleField.id }\n\t\t\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t\t\t\tonHide={ onHide }\n\t\t\t\t\t\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t\t\t\t\t\t\tcanMove={ false }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ columns.map( ( column, index ) => {\n\t\t\t\t\t\t\t// Explicits picks the supported styles.\n\t\t\t\t\t\t\tconst { width, maxWidth, minWidth } =\n\t\t\t\t\t\t\t\tview.layout?.styles?.[ column ] ?? {};\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\t\tkey={ column }\n\t\t\t\t\t\t\t\t\tstyle={ { width, maxWidth, minWidth } }\n\t\t\t\t\t\t\t\t\taria-sort={\n\t\t\t\t\t\t\t\t\t\tview.sort?.direction &&\n\t\t\t\t\t\t\t\t\t\tview.sort?.field === column\n\t\t\t\t\t\t\t\t\t\t\t? sortValues[ view.sort.direction ]\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ColumnHeaderMenu\n\t\t\t\t\t\t\t\t\t\tref={ headerMenuRef( column, index ) }\n\t\t\t\t\t\t\t\t\t\tfieldId={ column }\n\t\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t\t\tonHide={ onHide }\n\t\t\t\t\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t\t\t<th className=\"dataviews-view-table__actions-column\">\n\t\t\t\t\t\t\t\t<span className=\"dataviews-view-table-header\">\n\t\t\t\t\t\t\t\t\t{ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t{ hasData &&\n\t\t\t\t\t\tdata.map( ( item, index ) => (\n\t\t\t\t\t\t\t<TableRow\n\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\thasBulkActions={ hasBulkActions }\n\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\t\tid={ getItemId( item ) || index.toString() }\n\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\tdescriptionField={ descriptionField }\n\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t\t<div\n\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t'dataviews-no-results': ! hasData && ! isLoading,\n\t\t\t\t} ) }\n\t\t\t\tid={ tableNoticeId }\n\t\t\t>\n\t\t\t\t{ ! hasData && (\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ViewTable;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -16,7 +16,7 @@ function getClickableItemProps({
|
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
return {
|
|
19
|
-
className: `${className} ${className}--clickable
|
|
19
|
+
className: className ? `${className} ${className}--clickable` : undefined,
|
|
20
20
|
role: 'button',
|
|
21
21
|
tabIndex: 0,
|
|
22
22
|
onClick: event => {
|
|
@@ -25,7 +25,7 @@ function getClickableItemProps({
|
|
|
25
25
|
onClickItem(item);
|
|
26
26
|
},
|
|
27
27
|
onKeyDown: event => {
|
|
28
|
-
if (event.key === 'Enter' || event.key === '') {
|
|
28
|
+
if (event.key === 'Enter' || event.key === '' || event.key === ' ') {
|
|
29
29
|
// Prevents onChangeSelection from triggering.
|
|
30
30
|
event.stopPropagation();
|
|
31
31
|
onClickItem(item);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getClickableItemProps","item","isItemClickable","onClickItem","className","role","tabIndex","onClick","event","stopPropagation","onKeyDown","key"],"sources":["@wordpress/dataviews/src/dataviews-layouts/utils/get-clickable-item-props.ts"],"sourcesContent":["export default function getClickableItemProps< Item >( {\n\titem,\n\tisItemClickable,\n\tonClickItem,\n\tclassName,\n}: {\n\titem: Item;\n\tisItemClickable: ( item: Item ) => boolean;\n\tonClickItem?: ( item: Item ) => void;\n\tclassName
|
|
1
|
+
{"version":3,"names":["getClickableItemProps","item","isItemClickable","onClickItem","className","undefined","role","tabIndex","onClick","event","stopPropagation","onKeyDown","key"],"sources":["@wordpress/dataviews/src/dataviews-layouts/utils/get-clickable-item-props.ts"],"sourcesContent":["export default function getClickableItemProps< Item >( {\n\titem,\n\tisItemClickable,\n\tonClickItem,\n\tclassName,\n}: {\n\titem: Item;\n\tisItemClickable: ( item: Item ) => boolean;\n\tonClickItem?: ( item: Item ) => void;\n\tclassName?: string;\n} ) {\n\tif ( ! isItemClickable( item ) || ! onClickItem ) {\n\t\treturn { className };\n\t}\n\n\treturn {\n\t\tclassName: className\n\t\t\t? `${ className } ${ className }--clickable`\n\t\t\t: undefined,\n\t\trole: 'button',\n\t\ttabIndex: 0,\n\t\tonClick: ( event: React.MouseEvent ) => {\n\t\t\t// Prevents onChangeSelection from triggering.\n\t\t\tevent.stopPropagation();\n\t\t\tonClickItem( item );\n\t\t},\n\t\tonKeyDown: ( event: React.KeyboardEvent ) => {\n\t\t\tif (\n\t\t\t\tevent.key === 'Enter' ||\n\t\t\t\tevent.key === '' ||\n\t\t\t\tevent.key === ' '\n\t\t\t) {\n\t\t\t\t// Prevents onChangeSelection from triggering.\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tonClickItem( item );\n\t\t\t}\n\t\t},\n\t};\n}\n"],"mappings":";;;;;;AAAe,SAASA,qBAAqBA,CAAU;EACtDC,IAAI;EACJC,eAAe;EACfC,WAAW;EACXC;AAMD,CAAC,EAAG;EACH,IAAK,CAAEF,eAAe,CAAED,IAAK,CAAC,IAAI,CAAEE,WAAW,EAAG;IACjD,OAAO;MAAEC;IAAU,CAAC;EACrB;EAEA,OAAO;IACNA,SAAS,EAAEA,SAAS,GACjB,GAAIA,SAAS,IAAMA,SAAS,aAAc,GAC1CC,SAAS;IACZC,IAAI,EAAE,QAAQ;IACdC,QAAQ,EAAE,CAAC;IACXC,OAAO,EAAIC,KAAuB,IAAM;MACvC;MACAA,KAAK,CAACC,eAAe,CAAC,CAAC;MACvBP,WAAW,CAAEF,IAAK,CAAC;IACpB,CAAC;IACDU,SAAS,EAAIF,KAA0B,IAAM;MAC5C,IACCA,KAAK,CAACG,GAAG,KAAK,OAAO,IACrBH,KAAK,CAACG,GAAG,KAAK,EAAE,IAChBH,KAAK,CAACG,GAAG,KAAK,GAAG,EAChB;QACD;QACAH,KAAK,CAACC,eAAe,CAAC,CAAC;QACvBP,WAAW,CAAEF,IAAK,CAAC;MACpB;IACD;EACD,CAAC;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_removeAccents","_interopRequireDefault","require","_constants","_normalizeFields","normalizeSearchInput","input","removeAccents","trim","toLowerCase","EMPTY_ARRAY","filterSortAndPaginate","data","view","fields","paginationInfo","totalItems","totalPages","_fields","normalizeFields","filteredData","search","normalizedSearch","filter","item","field","enableGlobalSearch","map","getValue","some","includes","filters","length","forEach","find","_field","id","operator","OPERATOR_IS_ANY","value","fieldValue","Array","isArray","filterValue","OPERATOR_IS_NONE","OPERATOR_IS_ALL","every","OPERATOR_IS_NOT_ALL","OPERATOR_IS","OPERATOR_IS_NOT","sort","fieldId","fieldToSort","a","b","_view$sort$direction","direction","page","undefined","perPage","start","Math","ceil","slice"],"sources":["@wordpress/dataviews/src/filter-and-sort-data-view.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * Internal dependencies\n */\nimport {\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n} from './constants';\nimport { normalizeFields } from './normalize-fields';\nimport type { Field, View } from './types';\n\nfunction normalizeSearchInput( input = '' ) {\n\treturn removeAccents( input.trim().toLowerCase() );\n}\n\nconst EMPTY_ARRAY: [] = [];\n\n/**\n * Applies the filtering, sorting and pagination to the raw data based on the view configuration.\n *\n * @param data Raw data.\n * @param view View config.\n * @param fields Fields config.\n *\n * @return Filtered, sorted and paginated data.\n */\nexport function filterSortAndPaginate< Item >(\n\tdata: Item[],\n\tview: View,\n\tfields: Field< Item >[]\n): {\n\tdata: Item[];\n\tpaginationInfo: { totalItems: number; totalPages: number };\n} {\n\tif ( ! data ) {\n\t\treturn {\n\t\t\tdata: EMPTY_ARRAY,\n\t\t\tpaginationInfo: { totalItems: 0, totalPages: 0 },\n\t\t};\n\t}\n\tconst _fields = normalizeFields( fields );\n\tlet filteredData = [ ...data ];\n\t// Handle global search.\n\tif ( view.search ) {\n\t\tconst normalizedSearch = normalizeSearchInput( view.search );\n\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\treturn _fields\n\t\t\t\t.filter( ( field ) => field.enableGlobalSearch )\n\t\t\t\t.map( ( field ) => {\n\t\t\t\t\treturn normalizeSearchInput( field.getValue( { item } ) );\n\t\t\t\t} )\n\t\t\t\t.some( ( field ) => field.includes( normalizedSearch ) );\n\t\t} );\n\t}\n\n\tif ( view.filters && view.filters?.length > 0 ) {\n\t\tview.filters.forEach( ( filter ) => {\n\t\t\tconst field = _fields.find(\n\t\t\t\t( _field ) => _field.id === filter.field\n\t\t\t);\n\t\t\tif ( field ) {\n\t\t\t\tif (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_ANY &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\t\treturn filter.value.some( ( filterValue: any ) =>\n\t\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\t\treturn filter.value.includes( fieldValue );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_NONE &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\t\treturn ! filter.value.some( ( filterValue: any ) =>\n\t\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\t\treturn ! filter.value.includes( fieldValue );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_ALL &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value.every( ( value: any ) => {\n\t\t\t\t\t\t\treturn field\n\t\t\t\t\t\t\t\t.getValue( { item } )\n\t\t\t\t\t\t\t\t?.includes( value );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_NOT_ALL &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value.every( ( value: any ) => {\n\t\t\t\t\t\t\treturn ! field\n\t\t\t\t\t\t\t\t.getValue( { item } )\n\t\t\t\t\t\t\t\t?.includes( value );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} else if ( filter.operator === OPERATOR_IS ) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value === field.getValue( { item } );\n\t\t\t\t\t} );\n\t\t\t\t} else if ( filter.operator === OPERATOR_IS_NOT ) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value !== field.getValue( { item } );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t// Handle sorting.\n\tif ( view.sort ) {\n\t\tconst fieldId = view.sort.field;\n\t\tconst fieldToSort = _fields.find( ( field ) => {\n\t\t\treturn field.id === fieldId;\n\t\t} );\n\t\tif ( fieldToSort ) {\n\t\t\tfilteredData.sort( ( a, b ) => {\n\t\t\t\treturn fieldToSort.sort( a, b, view.sort?.direction ?? 'desc' );\n\t\t\t} );\n\t\t}\n\t}\n\n\t// Handle pagination.\n\tlet totalItems = filteredData.length;\n\tlet totalPages = 1;\n\tif ( view.page !== undefined && view.perPage !== undefined ) {\n\t\tconst start = ( view.page - 1 ) * view.perPage;\n\t\ttotalItems = filteredData?.length || 0;\n\t\ttotalPages = Math.ceil( totalItems / view.perPage );\n\t\tfilteredData = filteredData?.slice( start, start + view.perPage );\n\t}\n\n\treturn {\n\t\tdata: filteredData,\n\t\tpaginationInfo: {\n\t\t\ttotalItems,\n\t\t\ttotalPages,\n\t\t},\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_removeAccents","_interopRequireDefault","require","_constants","_normalizeFields","normalizeSearchInput","input","removeAccents","trim","toLowerCase","EMPTY_ARRAY","filterSortAndPaginate","data","view","fields","paginationInfo","totalItems","totalPages","_fields","normalizeFields","filteredData","search","normalizedSearch","filter","item","field","enableGlobalSearch","map","getValue","some","includes","filters","length","forEach","find","_field","id","operator","OPERATOR_IS_ANY","value","fieldValue","Array","isArray","filterValue","OPERATOR_IS_NONE","OPERATOR_IS_ALL","every","OPERATOR_IS_NOT_ALL","OPERATOR_IS","OPERATOR_IS_NOT","sort","fieldId","fieldToSort","a","b","_view$sort$direction","direction","page","undefined","perPage","start","Math","ceil","slice"],"sources":["@wordpress/dataviews/src/filter-and-sort-data-view.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * Internal dependencies\n */\nimport {\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n} from './constants';\nimport { normalizeFields } from './normalize-fields';\nimport type { Field, View } from './types';\n\nfunction normalizeSearchInput( input = '' ) {\n\treturn removeAccents( input.trim().toLowerCase() );\n}\n\nconst EMPTY_ARRAY: [] = [];\n\n/**\n * Applies the filtering, sorting and pagination to the raw data based on the view configuration.\n *\n * @param data Raw data.\n * @param view View config.\n * @param fields Fields config.\n *\n * @return Filtered, sorted and paginated data.\n */\nexport function filterSortAndPaginate< Item >(\n\tdata: Item[],\n\tview: View,\n\tfields: Field< Item >[]\n): {\n\tdata: Item[];\n\tpaginationInfo: { totalItems: number; totalPages: number };\n} {\n\tif ( ! data ) {\n\t\treturn {\n\t\t\tdata: EMPTY_ARRAY,\n\t\t\tpaginationInfo: { totalItems: 0, totalPages: 0 },\n\t\t};\n\t}\n\tconst _fields = normalizeFields( fields );\n\tlet filteredData = [ ...data ];\n\t// Handle global search.\n\tif ( view.search ) {\n\t\tconst normalizedSearch = normalizeSearchInput( view.search );\n\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\treturn _fields\n\t\t\t\t.filter( ( field ) => field.enableGlobalSearch )\n\t\t\t\t.map( ( field ) => {\n\t\t\t\t\treturn normalizeSearchInput( field.getValue( { item } ) );\n\t\t\t\t} )\n\t\t\t\t.some( ( field ) => field.includes( normalizedSearch ) );\n\t\t} );\n\t}\n\n\tif ( view.filters && view.filters?.length > 0 ) {\n\t\tview.filters.forEach( ( filter ) => {\n\t\t\tconst field = _fields.find(\n\t\t\t\t( _field ) => _field.id === filter.field\n\t\t\t);\n\t\t\tif ( field ) {\n\t\t\t\tif (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_ANY &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\t\treturn filter.value.some( ( filterValue: any ) =>\n\t\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\t\treturn filter.value.includes( fieldValue );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_NONE &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\t\treturn ! filter.value.some( ( filterValue: any ) =>\n\t\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\t\treturn ! filter.value.includes( fieldValue );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_ALL &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value.every( ( value: any ) => {\n\t\t\t\t\t\t\treturn field\n\t\t\t\t\t\t\t\t.getValue( { item } )\n\t\t\t\t\t\t\t\t?.includes( value );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_NOT_ALL &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value.every( ( value: any ) => {\n\t\t\t\t\t\t\treturn ! field\n\t\t\t\t\t\t\t\t.getValue( { item } )\n\t\t\t\t\t\t\t\t?.includes( value );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} else if ( filter.operator === OPERATOR_IS ) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value === field.getValue( { item } );\n\t\t\t\t\t} );\n\t\t\t\t} else if ( filter.operator === OPERATOR_IS_NOT ) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value !== field.getValue( { item } );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t// Handle sorting.\n\tif ( view.sort ) {\n\t\tconst fieldId = view.sort.field;\n\t\tconst fieldToSort = _fields.find( ( field ) => {\n\t\t\treturn field.id === fieldId;\n\t\t} );\n\t\tif ( fieldToSort ) {\n\t\t\tfilteredData.sort( ( a, b ) => {\n\t\t\t\treturn fieldToSort.sort( a, b, view.sort?.direction ?? 'desc' );\n\t\t\t} );\n\t\t}\n\t}\n\n\t// Handle pagination.\n\tlet totalItems = filteredData.length;\n\tlet totalPages = 1;\n\tif ( view.page !== undefined && view.perPage !== undefined ) {\n\t\tconst start = ( view.page - 1 ) * view.perPage;\n\t\ttotalItems = filteredData?.length || 0;\n\t\ttotalPages = Math.ceil( totalItems / view.perPage );\n\t\tfilteredData = filteredData?.slice( start, start + view.perPage );\n\t}\n\n\treturn {\n\t\tdata: filteredData,\n\t\tpaginationInfo: {\n\t\t\ttotalItems,\n\t\t\ttotalPages,\n\t\t},\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_fieldTypes","_interopRequireDefault","require","_dataformControls","getValueFromId","id","item","path","split","value","segment","hasOwnProperty","undefined","normalizeFields","fields","map","field","_field$sort","_field$isValid","_field$enableHiding","_field$enableSorting","fieldTypeDefinition","getFieldTypeDefinition","type","getValue","sort","a","b","direction","isValid","context","Edit","getControl","renderFromElements","elements","find","element","label","render","header","enableHiding","enableSorting"],"sources":["@wordpress/dataviews/src/normalize-fields.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport getFieldTypeDefinition from './field-types';\nimport type { Field, NormalizedField } from './types';\nimport { getControl } from './dataform-controls';\n\nconst getValueFromId =\n\t( id: string ) =>\n\t( { item }: { item: any } ) => {\n\t\tconst path = id.split( '.' );\n\t\tlet value = item;\n\t\tfor ( const segment of path ) {\n\t\t\tif ( value.hasOwnProperty( segment ) ) {\n\t\t\t\tvalue = value[ segment ];\n\t\t\t} else {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t};\n\n/**\n * Apply default values and normalize the fields config.\n *\n * @param fields Fields config.\n * @return Normalized fields config.\n */\nexport function normalizeFields< Item >(\n\tfields: Field< Item >[]\n): NormalizedField< Item >[] {\n\treturn fields.map( ( field ) => {\n\t\tconst fieldTypeDefinition = getFieldTypeDefinition( field.type );\n\n\t\tconst getValue = field.getValue || getValueFromId( field.id );\n\n\t\tconst sort =\n\t\t\tfield.sort ??\n\t\t\tfunction sort( a, b, direction ) {\n\t\t\t\treturn fieldTypeDefinition.sort(\n\t\t\t\t\tgetValue( { item: a } ),\n\t\t\t\t\tgetValue( { item: b } ),\n\t\t\t\t\tdirection\n\t\t\t\t);\n\t\t\t};\n\n\t\tconst isValid =\n\t\t\tfield.isValid ??\n\t\t\tfunction isValid( item, context ) {\n\t\t\t\treturn fieldTypeDefinition.isValid(\n\t\t\t\t\tgetValue( { item } ),\n\t\t\t\t\tcontext\n\t\t\t\t);\n\t\t\t};\n\n\t\tconst Edit = getControl( field, fieldTypeDefinition );\n\n\t\tconst renderFromElements = ( { item }: { item: Item } ) => {\n\t\t\tconst value = getValue( { item } );\n\t\t\treturn (\n\t\t\t\tfield?.elements?.find( ( element ) => element.value === value )\n\t\t\t\t\t?.label || getValue( { item } )\n\t\t\t);\n\t\t};\n\n\t\tconst render =\n\t\t\tfield.render || ( field.elements ? renderFromElements : getValue );\n\n\t\treturn {\n\t\t\t...field,\n\t\t\tlabel: field.label || field.id,\n\t\t\theader: field.header || field.label || field.id,\n\t\t\tgetValue,\n\t\t\trender,\n\t\t\tsort,\n\t\t\tisValid,\n\t\t\tEdit,\n\t\t\tenableHiding: field.enableHiding ?? true,\n\t\t\tenableSorting: field.enableSorting ?? true,\n\t\t};\n\t} );\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_fieldTypes","_interopRequireDefault","require","_dataformControls","getValueFromId","id","item","path","split","value","segment","hasOwnProperty","undefined","normalizeFields","fields","map","field","_field$sort","_field$isValid","_field$enableHiding","_field$enableSorting","fieldTypeDefinition","getFieldTypeDefinition","type","getValue","sort","a","b","direction","isValid","context","Edit","getControl","renderFromElements","elements","find","element","label","render","header","enableHiding","enableSorting"],"sources":["@wordpress/dataviews/src/normalize-fields.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport getFieldTypeDefinition from './field-types';\nimport type { Field, NormalizedField } from './types';\nimport { getControl } from './dataform-controls';\n\nconst getValueFromId =\n\t( id: string ) =>\n\t( { item }: { item: any } ) => {\n\t\tconst path = id.split( '.' );\n\t\tlet value = item;\n\t\tfor ( const segment of path ) {\n\t\t\tif ( value.hasOwnProperty( segment ) ) {\n\t\t\t\tvalue = value[ segment ];\n\t\t\t} else {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t};\n\n/**\n * Apply default values and normalize the fields config.\n *\n * @param fields Fields config.\n * @return Normalized fields config.\n */\nexport function normalizeFields< Item >(\n\tfields: Field< Item >[]\n): NormalizedField< Item >[] {\n\treturn fields.map( ( field ) => {\n\t\tconst fieldTypeDefinition = getFieldTypeDefinition( field.type );\n\n\t\tconst getValue = field.getValue || getValueFromId( field.id );\n\n\t\tconst sort =\n\t\t\tfield.sort ??\n\t\t\tfunction sort( a, b, direction ) {\n\t\t\t\treturn fieldTypeDefinition.sort(\n\t\t\t\t\tgetValue( { item: a } ),\n\t\t\t\t\tgetValue( { item: b } ),\n\t\t\t\t\tdirection\n\t\t\t\t);\n\t\t\t};\n\n\t\tconst isValid =\n\t\t\tfield.isValid ??\n\t\t\tfunction isValid( item, context ) {\n\t\t\t\treturn fieldTypeDefinition.isValid(\n\t\t\t\t\tgetValue( { item } ),\n\t\t\t\t\tcontext\n\t\t\t\t);\n\t\t\t};\n\n\t\tconst Edit = getControl( field, fieldTypeDefinition );\n\n\t\tconst renderFromElements = ( { item }: { item: Item } ) => {\n\t\t\tconst value = getValue( { item } );\n\t\t\treturn (\n\t\t\t\tfield?.elements?.find( ( element ) => element.value === value )\n\t\t\t\t\t?.label || getValue( { item } )\n\t\t\t);\n\t\t};\n\n\t\tconst render =\n\t\t\tfield.render || ( field.elements ? renderFromElements : getValue );\n\n\t\treturn {\n\t\t\t...field,\n\t\t\tlabel: field.label || field.id,\n\t\t\theader: field.header || field.label || field.id,\n\t\t\tgetValue,\n\t\t\trender,\n\t\t\tsort,\n\t\t\tisValid,\n\t\t\tEdit,\n\t\t\tenableHiding: field.enableHiding ?? true,\n\t\t\tenableSorting: field.enableSorting ?? true,\n\t\t};\n\t} );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["normalizeFormFields","form","_form$type","_form$labelPosition","_form$fields","layout","includes","type","labelPosition","fields","map","field","_field$layout","_field$labelPosition","id","fieldLayout","fieldLabelPosition"],"sources":["@wordpress/dataviews/src/normalize-form-fields.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport type { Form } from './types';\n\ninterface NormalizedFormField {\n\tid: string;\n\tlayout: 'regular' | 'panel';\n\tlabelPosition: 'side' | 'top' | 'none';\n}\n\nexport default function normalizeFormFields(\n\tform: Form\n): NormalizedFormField[] {\n\tlet layout: 'regular' | 'panel' = 'regular';\n\tif ( [ 'regular', 'panel' ].includes( form.type ?? '' ) ) {\n\t\tlayout = form.type as 'regular' | 'panel';\n\t}\n\n\tconst labelPosition =\n\t\tform.labelPosition ?? ( layout === 'regular' ? 'top' : 'side' );\n\n\treturn ( form.fields ?? [] ).map( ( field ) => {\n\t\tif ( typeof field === 'string' ) {\n\t\t\treturn {\n\t\t\t\tid: field,\n\t\t\t\tlayout,\n\t\t\t\tlabelPosition,\n\t\t\t};\n\t\t}\n\n\t\tconst fieldLayout = field.layout ?? layout;\n\t\tconst fieldLabelPosition =\n\t\t\tfield.labelPosition ??\n\t\t\t( fieldLayout === 'regular' ? 'top' : 'side' );\n\t\treturn {\n\t\t\t...field,\n\t\t\tlayout: fieldLayout,\n\t\t\tlabelPosition: fieldLabelPosition,\n\t\t};\n\t} );\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["normalizeFormFields","form","_form$type","_form$labelPosition","_form$fields","layout","includes","type","labelPosition","fields","map","field","_field$layout","_field$labelPosition","id","fieldLayout","fieldLabelPosition"],"sources":["@wordpress/dataviews/src/normalize-form-fields.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport type { Form } from './types';\n\ninterface NormalizedFormField {\n\tid: string;\n\tlayout: 'regular' | 'panel';\n\tlabelPosition: 'side' | 'top' | 'none';\n}\n\nexport default function normalizeFormFields(\n\tform: Form\n): NormalizedFormField[] {\n\tlet layout: 'regular' | 'panel' = 'regular';\n\tif ( [ 'regular', 'panel' ].includes( form.type ?? '' ) ) {\n\t\tlayout = form.type as 'regular' | 'panel';\n\t}\n\n\tconst labelPosition =\n\t\tform.labelPosition ?? ( layout === 'regular' ? 'top' : 'side' );\n\n\treturn ( form.fields ?? [] ).map( ( field ) => {\n\t\tif ( typeof field === 'string' ) {\n\t\t\treturn {\n\t\t\t\tid: field,\n\t\t\t\tlayout,\n\t\t\t\tlabelPosition,\n\t\t\t};\n\t\t}\n\n\t\tconst fieldLayout = field.layout ?? layout;\n\t\tconst fieldLabelPosition =\n\t\t\tfield.labelPosition ??\n\t\t\t( fieldLayout === 'regular' ? 'top' : 'side' );\n\t\treturn {\n\t\t\t...field,\n\t\t\tlayout: fieldLayout,\n\t\t\tlabelPosition: fieldLabelPosition,\n\t\t};\n\t} );\n}\n"],"mappings":";;;;;;;AAAA;AACA;AACA;;AASe,SAASA,mBAAmBA,CAC1CC,IAAU,EACc;EAAA,IAAAC,UAAA,EAAAC,mBAAA,EAAAC,YAAA;EACxB,IAAIC,MAA2B,GAAG,SAAS;EAC3C,IAAK,CAAE,SAAS,EAAE,OAAO,CAAE,CAACC,QAAQ,EAAAJ,UAAA,GAAED,IAAI,CAACM,IAAI,cAAAL,UAAA,cAAAA,UAAA,GAAI,EAAG,CAAC,EAAG;IACzDG,MAAM,GAAGJ,IAAI,CAACM,IAA2B;EAC1C;EAEA,MAAMC,aAAa,IAAAL,mBAAA,GAClBF,IAAI,CAACO,aAAa,cAAAL,mBAAA,cAAAA,mBAAA,GAAME,MAAM,KAAK,SAAS,GAAG,KAAK,GAAG,MAAQ;EAEhE,OAAO,EAAAD,YAAA,GAAEH,IAAI,CAACQ,MAAM,cAAAL,YAAA,cAAAA,YAAA,GAAI,EAAE,EAAGM,GAAG,CAAIC,KAAK,IAAM;IAAA,IAAAC,aAAA,EAAAC,oBAAA;IAC9C,IAAK,OAAOF,KAAK,KAAK,QAAQ,EAAG;MAChC,OAAO;QACNG,EAAE,EAAEH,KAAK;QACTN,MAAM;QACNG;MACD,CAAC;IACF;IAEA,MAAMO,WAAW,IAAAH,aAAA,GAAGD,KAAK,CAACN,MAAM,cAAAO,aAAA,cAAAA,aAAA,GAAIP,MAAM;IAC1C,MAAMW,kBAAkB,IAAAH,oBAAA,GACvBF,KAAK,CAACH,aAAa,cAAAK,oBAAA,cAAAA,oBAAA,GACjBE,WAAW,KAAK,SAAS,GAAG,KAAK,GAAG,MAAQ;IAC/C,OAAO;MACN,GAAGJ,KAAK;MACRN,MAAM,EAAEU,WAAW;MACnBP,aAAa,EAAEQ;IAChB,CAAC;EACF,CAAE,CAAC;AACJ","ignoreList":[]}
|
package/build/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["@wordpress/dataviews/src/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactElement, ComponentType } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { SetSelection } from './private-types';\n\nexport type SortDirection = 'asc' | 'desc';\n\n/**\n * Generic option type.\n */\nexport interface Option< Value extends any = any > {\n\tvalue: Value;\n\tlabel: string;\n\tdescription?: string;\n}\n\ninterface FilterByConfig {\n\t/**\n\t * The list of operators supported by the field.\n\t */\n\toperators?: Operator[];\n\n\t/**\n\t * Whether it is a primary filter.\n\t *\n\t * A primary filter is always visible and is not listed in the \"Add filter\" component,\n\t * except for the list layout where it behaves like a secondary filter.\n\t */\n\tisPrimary?: boolean;\n}\n\nexport type Operator =\n\t| 'is'\n\t| 'isNot'\n\t| 'isAny'\n\t| 'isNone'\n\t| 'isAll'\n\t| 'isNotAll';\n\nexport type FieldType = 'text' | 'integer' | 'datetime';\n\nexport type ValidationContext = {\n\telements?: Option[];\n};\n\n/**\n * An abstract interface for Field based on the field type.\n */\nexport type FieldTypeDefinition< Item > = {\n\t/**\n\t * Callback used to sort the field.\n\t */\n\tsort: ( a: Item, b: Item, direction: SortDirection ) => number;\n\n\t/**\n\t * Callback used to validate the field.\n\t */\n\tisValid: ( item: Item, context?: ValidationContext ) => boolean;\n\n\t/**\n\t * Callback used to render an edit control for the field or control name.\n\t */\n\tEdit: ComponentType< DataFormControlProps< Item > > | string;\n};\n\n/**\n * A dataview field for a specific property of a data type.\n */\nexport type Field< Item > = {\n\t/**\n\t * Type of the fields.\n\t */\n\ttype?: FieldType;\n\n\t/**\n\t * The unique identifier of the field.\n\t */\n\tid: string;\n\n\t/**\n\t * The label of the field. Defaults to the id.\n\t */\n\tlabel?: string;\n\n\t/**\n\t * The header of the field. Defaults to the label.\n\t * It allows the usage of a React Element to render the field labels.\n\t */\n\theader?: string | ReactElement;\n\n\t/**\n\t * A description of the field.\n\t */\n\tdescription?: string;\n\n\t/**\n\t * Placeholder for the field.\n\t */\n\tplaceholder?: string;\n\n\t/**\n\t * Callback used to render the field. Defaults to `field.getValue`.\n\t */\n\trender?: ComponentType< DataViewRenderFieldProps< Item > >;\n\n\t/**\n\t * Callback used to render an edit control for the field.\n\t */\n\tEdit?: ComponentType< DataFormControlProps< Item > > | string;\n\n\t/**\n\t * Callback used to sort the field.\n\t */\n\tsort?: ( a: Item, b: Item, direction: SortDirection ) => number;\n\n\t/**\n\t * Callback used to validate the field.\n\t */\n\tisValid?: ( item: Item, context?: ValidationContext ) => boolean;\n\n\t/**\n\t * Callback used to decide if a field should be displayed.\n\t */\n\tisVisible?: ( item: Item ) => boolean;\n\n\t/**\n\t * Whether the field is sortable.\n\t */\n\tenableSorting?: boolean;\n\n\t/**\n\t * Whether the field is searchable.\n\t */\n\tenableGlobalSearch?: boolean;\n\n\t/**\n\t * Whether the field is filterable.\n\t */\n\tenableHiding?: boolean;\n\n\t/**\n\t * The list of options to pick from when using the field as a filter.\n\t */\n\telements?: Option[];\n\n\t/**\n\t * Filter config for the field.\n\t */\n\tfilterBy?: FilterByConfig | undefined;\n\n\t/**\n\t * Callback used to retrieve the value of the field from the item.\n\t * Defaults to `item[ field.id ]`.\n\t */\n\tgetValue?: ( args: { item: Item } ) => any;\n};\n\nexport type NormalizedField< Item > = Field< Item > & {\n\tlabel: string;\n\theader: string | ReactElement;\n\tgetValue: ( args: { item: Item } ) => any;\n\trender: ComponentType< DataViewRenderFieldProps< Item > >;\n\tEdit: ComponentType< DataFormControlProps< Item > >;\n\tsort: ( a: Item, b: Item, direction: SortDirection ) => number;\n\tisValid: ( item: Item, context?: ValidationContext ) => boolean;\n\tenableHiding: boolean;\n\tenableSorting: boolean;\n};\n\n/**\n * A collection of dataview fields for a data type.\n */\nexport type Fields< Item > = Field< Item >[];\n\nexport type Data< Item > = Item[];\n\nexport type DataFormControlProps< Item > = {\n\tdata: Item;\n\tfield: NormalizedField< Item >;\n\tonChange: ( value: Record< string, any > ) => void;\n\thideLabelFromVision?: boolean;\n};\n\nexport type DataViewRenderFieldProps< Item > = {\n\titem: Item;\n};\n\n/**\n * The filters applied to the dataset.\n */\nexport interface Filter {\n\t/**\n\t * The field to filter by.\n\t */\n\tfield: string;\n\n\t/**\n\t * The operator to use.\n\t */\n\toperator: Operator;\n\n\t/**\n\t * The value to filter by.\n\t */\n\tvalue: any;\n}\n\nexport interface NormalizedFilter {\n\t/**\n\t * The field to filter by.\n\t */\n\tfield: string;\n\n\t/**\n\t * The field name.\n\t */\n\tname: string;\n\n\t/**\n\t * The list of options to pick from when using the field as a filter.\n\t */\n\telements: Option[];\n\n\t/**\n\t * Is a single selection filter.\n\t */\n\tsingleSelection: boolean;\n\n\t/**\n\t * The list of operators supported by the field.\n\t */\n\toperators: Operator[];\n\n\t/**\n\t * Whether the filter is visible.\n\t */\n\tisVisible: boolean;\n\n\t/**\n\t * Whether it is a primary filter.\n\t */\n\tisPrimary: boolean;\n}\n\ninterface ViewBase {\n\t/**\n\t * The layout of the view.\n\t */\n\ttype: string;\n\n\t/**\n\t * The global search term.\n\t */\n\tsearch?: string;\n\n\t/**\n\t * The filters to apply.\n\t */\n\tfilters?: Filter[];\n\n\t/**\n\t * The sorting configuration.\n\t */\n\tsort?: {\n\t\t/**\n\t\t * The field to sort by.\n\t\t */\n\t\tfield: string;\n\n\t\t/**\n\t\t * The direction to sort by.\n\t\t */\n\t\tdirection: SortDirection;\n\t};\n\n\t/**\n\t * The active page\n\t */\n\tpage?: number;\n\n\t/**\n\t * The number of items per page\n\t */\n\tperPage?: number;\n\n\t/**\n\t * The fields to render\n\t */\n\tfields?: string[];\n}\n\nexport interface CombinedField {\n\tid: string;\n\n\tlabel: string;\n\n\theader?: string | ReactElement;\n\n\t/**\n\t * The fields to use as columns.\n\t */\n\tchildren: string[];\n\n\t/**\n\t * The direction of the stack.\n\t */\n\tdirection: 'horizontal' | 'vertical';\n}\n\nexport interface ColumnStyle {\n\t/**\n\t * The width of the field column.\n\t */\n\twidth?: string | number;\n\n\t/**\n\t * The minimum width of the field column.\n\t */\n\tmaxWidth?: string | number;\n\n\t/**\n\t * The maximum width of the field column.\n\t */\n\tminWidth?: string | number;\n}\n\nexport type Density = 'compact' | 'balanced' | 'comfortable';\n\nexport interface ViewTable extends ViewBase {\n\ttype: 'table';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The fields to use as columns.\n\t\t */\n\t\tcombinedFields?: CombinedField[];\n\n\t\t/**\n\t\t * The styles for the columns.\n\t\t */\n\t\tstyles?: Record< string, ColumnStyle >;\n\n\t\t/**\n\t\t * The density of the view.\n\t\t */\n\t\tdensity?: Density;\n\t};\n}\n\nexport interface ViewList extends ViewBase {\n\ttype: 'list';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The field to use as the media field.\n\t\t */\n\t\tmediaField?: string;\n\t};\n}\n\nexport interface ViewGrid extends ViewBase {\n\ttype: 'grid';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The field to use as the media field.\n\t\t */\n\t\tmediaField?: string;\n\n\t\t/**\n\t\t * The fields to use as columns.\n\t\t */\n\t\tcolumnFields?: string[];\n\n\t\t/**\n\t\t * The fields to use as badge fields.\n\t\t */\n\t\tbadgeFields?: string[];\n\n\t\t/**\n\t\t * The preview size of the grid.\n\t\t */\n\t\tpreviewSize?: number;\n\t};\n}\n\nexport type View = ViewList | ViewGrid | ViewTable;\n\ninterface ActionBase< Item > {\n\t/**\n\t * The unique identifier of the action.\n\t */\n\tid: string;\n\n\t/**\n\t * The label of the action.\n\t * In case we want to adjust the label based on the selected items,\n\t * a function can be provided.\n\t */\n\tlabel: string | ( ( items: Item[] ) => string );\n\n\t/**\n\t * The icon of the action. (Either a string or an SVG element)\n\t * This should be IconType from the components package\n\t * but that import is breaking typescript build for the moment.\n\t */\n\ticon?: any;\n\n\t/**\n\t * Whether the action is disabled.\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * Whether the action is destructive.\n\t */\n\tisDestructive?: boolean;\n\n\t/**\n\t * Whether the action is a primary action.\n\t */\n\tisPrimary?: boolean;\n\n\t/**\n\t * Whether the item passed as an argument supports the current action.\n\t */\n\tisEligible?: ( item: Item ) => boolean;\n\n\t/**\n\t * Whether the action can be used as a bulk action.\n\t */\n\tsupportsBulk?: boolean;\n\n\t/**\n\t * The context in which the action is visible.\n\t * This is only a \"meta\" information for now.\n\t */\n\tcontext?: 'list' | 'single';\n}\n\nexport interface RenderModalProps< Item > {\n\titems: Item[];\n\tcloseModal?: () => void;\n\tonActionPerformed?: ( items: Item[] ) => void;\n}\n\nexport interface ActionModal< Item > extends ActionBase< Item > {\n\t/**\n\t * Modal to render when the action is triggered.\n\t */\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionPerformed,\n\t}: RenderModalProps< Item > ) => ReactElement;\n\n\t/**\n\t * Whether to hide the modal header.\n\t */\n\thideModalHeader?: boolean;\n\n\t/**\n\t * The header of the modal.\n\t */\n\tmodalHeader?: string;\n}\n\nexport interface ActionButton< Item > extends ActionBase< Item > {\n\t/**\n\t * The callback to execute when the action is triggered.\n\t */\n\tcallback: (\n\t\titems: Item[],\n\t\tcontext: {\n\t\t\tregistry: any;\n\t\t\tonActionPerformed?: ( items: Item[] ) => void;\n\t\t}\n\t) => void;\n}\n\nexport type Action< Item > = ActionModal< Item > | ActionButton< Item >;\n\nexport interface ViewBaseProps< Item > {\n\tactions: Action< Item >[];\n\tdata: Item[];\n\tfields: NormalizedField< Item >[];\n\tgetItemId: ( item: Item ) => string;\n\tisLoading?: boolean;\n\tonChangeView: ( view: View ) => void;\n\tonChangeSelection: SetSelection;\n\tselection: string[];\n\tsetOpenedFilter: ( fieldId: string ) => void;\n\tonClickItem?: ( item: Item ) => void;\n\tisItemClickable: ( item: Item ) => boolean;\n\tview: View;\n}\n\nexport interface ViewTableProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewTable;\n}\n\nexport interface ViewListProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewList;\n}\n\nexport interface ViewGridProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewGrid;\n}\n\nexport type ViewProps< Item > =\n\t| ViewTableProps< Item >\n\t| ViewGridProps< Item >\n\t| ViewListProps< Item >;\n\nexport interface SupportedLayouts {\n\tlist?: Omit< ViewList, 'type' >;\n\tgrid?: Omit< ViewGrid, 'type' >;\n\ttable?: Omit< ViewTable, 'type' >;\n}\n\nexport type SimpleFormField = {\n\tid: string;\n\tlayout?: 'regular' | 'panel';\n\tlabelPosition?: 'side' | 'top' | 'none';\n};\n\nexport type CombinedFormField = {\n\tid: string;\n\tlabel?: string;\n\tlayout?: 'regular' | 'panel';\n\tlabelPosition?: 'side' | 'top' | 'none';\n\tchildren: Array< FormField | string >;\n};\n\nexport type FormField = SimpleFormField | CombinedFormField;\n\n/**\n * The form configuration.\n */\nexport type Form = {\n\ttype?: 'regular' | 'panel';\n\tfields?: Array< FormField | string >;\n\tlabelPosition?: 'side' | 'top' | 'none';\n};\n\nexport interface DataFormProps< Item > {\n\tdata: Item;\n\tfields: Field< Item >[];\n\tform: Form;\n\tonChange: ( value: Record< string, any > ) => void;\n}\n\nexport interface FieldLayoutProps< Item > {\n\tdata: Item;\n\tfield: FormField;\n\tonChange: ( value: any ) => void;\n\thideLabelFromVision?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["@wordpress/dataviews/src/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactElement, ComponentType } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { SetSelection } from './private-types';\n\nexport type SortDirection = 'asc' | 'desc';\n\n/**\n * Generic option type.\n */\nexport interface Option< Value extends any = any > {\n\tvalue: Value;\n\tlabel: string;\n\tdescription?: string;\n}\n\ninterface FilterByConfig {\n\t/**\n\t * The list of operators supported by the field.\n\t */\n\toperators?: Operator[];\n\n\t/**\n\t * Whether it is a primary filter.\n\t *\n\t * A primary filter is always visible and is not listed in the \"Add filter\" component,\n\t * except for the list layout where it behaves like a secondary filter.\n\t */\n\tisPrimary?: boolean;\n}\n\nexport type Operator =\n\t| 'is'\n\t| 'isNot'\n\t| 'isAny'\n\t| 'isNone'\n\t| 'isAll'\n\t| 'isNotAll';\n\nexport type FieldType = 'text' | 'integer' | 'datetime';\n\nexport type ValidationContext = {\n\telements?: Option[];\n};\n\n/**\n * An abstract interface for Field based on the field type.\n */\nexport type FieldTypeDefinition< Item > = {\n\t/**\n\t * Callback used to sort the field.\n\t */\n\tsort: ( a: Item, b: Item, direction: SortDirection ) => number;\n\n\t/**\n\t * Callback used to validate the field.\n\t */\n\tisValid: ( item: Item, context?: ValidationContext ) => boolean;\n\n\t/**\n\t * Callback used to render an edit control for the field or control name.\n\t */\n\tEdit: ComponentType< DataFormControlProps< Item > > | string;\n};\n\n/**\n * A dataview field for a specific property of a data type.\n */\nexport type Field< Item > = {\n\t/**\n\t * Type of the fields.\n\t */\n\ttype?: FieldType;\n\n\t/**\n\t * The unique identifier of the field.\n\t */\n\tid: string;\n\n\t/**\n\t * The label of the field. Defaults to the id.\n\t */\n\tlabel?: string;\n\n\t/**\n\t * The header of the field. Defaults to the label.\n\t * It allows the usage of a React Element to render the field labels.\n\t */\n\theader?: string | ReactElement;\n\n\t/**\n\t * A description of the field.\n\t */\n\tdescription?: string;\n\n\t/**\n\t * Placeholder for the field.\n\t */\n\tplaceholder?: string;\n\n\t/**\n\t * Callback used to render the field. Defaults to `field.getValue`.\n\t */\n\trender?: ComponentType< DataViewRenderFieldProps< Item > >;\n\n\t/**\n\t * Callback used to render an edit control for the field.\n\t */\n\tEdit?: ComponentType< DataFormControlProps< Item > > | string;\n\n\t/**\n\t * Callback used to sort the field.\n\t */\n\tsort?: ( a: Item, b: Item, direction: SortDirection ) => number;\n\n\t/**\n\t * Callback used to validate the field.\n\t */\n\tisValid?: ( item: Item, context?: ValidationContext ) => boolean;\n\n\t/**\n\t * Callback used to decide if a field should be displayed.\n\t */\n\tisVisible?: ( item: Item ) => boolean;\n\n\t/**\n\t * Whether the field is sortable.\n\t */\n\tenableSorting?: boolean;\n\n\t/**\n\t * Whether the field is searchable.\n\t */\n\tenableGlobalSearch?: boolean;\n\n\t/**\n\t * Whether the field is filterable.\n\t */\n\tenableHiding?: boolean;\n\n\t/**\n\t * The list of options to pick from when using the field as a filter.\n\t */\n\telements?: Option[];\n\n\t/**\n\t * Filter config for the field.\n\t */\n\tfilterBy?: FilterByConfig | undefined;\n\n\t/**\n\t * Callback used to retrieve the value of the field from the item.\n\t * Defaults to `item[ field.id ]`.\n\t */\n\tgetValue?: ( args: { item: Item } ) => any;\n};\n\nexport type NormalizedField< Item > = Field< Item > & {\n\tlabel: string;\n\theader: string | ReactElement;\n\tgetValue: ( args: { item: Item } ) => any;\n\trender: ComponentType< DataViewRenderFieldProps< Item > >;\n\tEdit: ComponentType< DataFormControlProps< Item > >;\n\tsort: ( a: Item, b: Item, direction: SortDirection ) => number;\n\tisValid: ( item: Item, context?: ValidationContext ) => boolean;\n\tenableHiding: boolean;\n\tenableSorting: boolean;\n};\n\n/**\n * A collection of dataview fields for a data type.\n */\nexport type Fields< Item > = Field< Item >[];\n\nexport type Data< Item > = Item[];\n\nexport type DataFormControlProps< Item > = {\n\tdata: Item;\n\tfield: NormalizedField< Item >;\n\tonChange: ( value: Record< string, any > ) => void;\n\thideLabelFromVision?: boolean;\n};\n\nexport type DataViewRenderFieldProps< Item > = {\n\titem: Item;\n};\n\n/**\n * The filters applied to the dataset.\n */\nexport interface Filter {\n\t/**\n\t * The field to filter by.\n\t */\n\tfield: string;\n\n\t/**\n\t * The operator to use.\n\t */\n\toperator: Operator;\n\n\t/**\n\t * The value to filter by.\n\t */\n\tvalue: any;\n}\n\nexport interface NormalizedFilter {\n\t/**\n\t * The field to filter by.\n\t */\n\tfield: string;\n\n\t/**\n\t * The field name.\n\t */\n\tname: string;\n\n\t/**\n\t * The list of options to pick from when using the field as a filter.\n\t */\n\telements: Option[];\n\n\t/**\n\t * Is a single selection filter.\n\t */\n\tsingleSelection: boolean;\n\n\t/**\n\t * The list of operators supported by the field.\n\t */\n\toperators: Operator[];\n\n\t/**\n\t * Whether the filter is visible.\n\t */\n\tisVisible: boolean;\n\n\t/**\n\t * Whether it is a primary filter.\n\t */\n\tisPrimary: boolean;\n}\n\ninterface ViewBase {\n\t/**\n\t * The layout of the view.\n\t */\n\ttype: string;\n\n\t/**\n\t * The global search term.\n\t */\n\tsearch?: string;\n\n\t/**\n\t * The filters to apply.\n\t */\n\tfilters?: Filter[];\n\n\t/**\n\t * The sorting configuration.\n\t */\n\tsort?: {\n\t\t/**\n\t\t * The field to sort by.\n\t\t */\n\t\tfield: string;\n\n\t\t/**\n\t\t * The direction to sort by.\n\t\t */\n\t\tdirection: SortDirection;\n\t};\n\n\t/**\n\t * The active page\n\t */\n\tpage?: number;\n\n\t/**\n\t * The number of items per page\n\t */\n\tperPage?: number;\n\n\t/**\n\t * The fields to render\n\t */\n\tfields?: string[];\n\n\t/**\n\t * Title field\n\t */\n\ttitleField?: string;\n\n\t/**\n\t * Media field\n\t */\n\tmediaField?: string;\n\n\t/**\n\t * Description field\n\t */\n\tdescriptionField?: string;\n\n\t/**\n\t * Whether to show the title\n\t */\n\tshowTitle?: boolean;\n\n\t/**\n\t * Whether to show the media\n\t */\n\tshowMedia?: boolean;\n\n\t/**\n\t * Whether to show the description\n\t */\n\tshowDescription?: boolean;\n}\n\nexport interface ColumnStyle {\n\t/**\n\t * The width of the field column.\n\t */\n\twidth?: string | number;\n\n\t/**\n\t * The minimum width of the field column.\n\t */\n\tmaxWidth?: string | number;\n\n\t/**\n\t * The maximum width of the field column.\n\t */\n\tminWidth?: string | number;\n}\n\nexport type Density = 'compact' | 'balanced' | 'comfortable';\n\nexport interface ViewTable extends ViewBase {\n\ttype: 'table';\n\n\tlayout?: {\n\t\t/**\n\t\t * The styles for the columns.\n\t\t */\n\t\tstyles?: Record< string, ColumnStyle >;\n\n\t\t/**\n\t\t * The density of the view.\n\t\t */\n\t\tdensity?: Density;\n\t};\n}\n\nexport interface ViewList extends ViewBase {\n\ttype: 'list';\n}\n\nexport interface ViewGrid extends ViewBase {\n\ttype: 'grid';\n\n\tlayout?: {\n\t\t/**\n\t\t * The fields to use as badge fields.\n\t\t */\n\t\tbadgeFields?: string[];\n\n\t\t/**\n\t\t * The preview size of the grid.\n\t\t */\n\t\tpreviewSize?: number;\n\t};\n}\n\nexport type View = ViewList | ViewGrid | ViewTable;\n\ninterface ActionBase< Item > {\n\t/**\n\t * The unique identifier of the action.\n\t */\n\tid: string;\n\n\t/**\n\t * The label of the action.\n\t * In case we want to adjust the label based on the selected items,\n\t * a function can be provided.\n\t */\n\tlabel: string | ( ( items: Item[] ) => string );\n\n\t/**\n\t * The icon of the action. (Either a string or an SVG element)\n\t * This should be IconType from the components package\n\t * but that import is breaking typescript build for the moment.\n\t */\n\ticon?: any;\n\n\t/**\n\t * Whether the action is disabled.\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * Whether the action is destructive.\n\t */\n\tisDestructive?: boolean;\n\n\t/**\n\t * Whether the action is a primary action.\n\t */\n\tisPrimary?: boolean;\n\n\t/**\n\t * Whether the item passed as an argument supports the current action.\n\t */\n\tisEligible?: ( item: Item ) => boolean;\n\n\t/**\n\t * Whether the action can be used as a bulk action.\n\t */\n\tsupportsBulk?: boolean;\n\n\t/**\n\t * The context in which the action is visible.\n\t * This is only a \"meta\" information for now.\n\t */\n\tcontext?: 'list' | 'single';\n}\n\nexport interface RenderModalProps< Item > {\n\titems: Item[];\n\tcloseModal?: () => void;\n\tonActionPerformed?: ( items: Item[] ) => void;\n}\n\nexport interface ActionModal< Item > extends ActionBase< Item > {\n\t/**\n\t * Modal to render when the action is triggered.\n\t */\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionPerformed,\n\t}: RenderModalProps< Item > ) => ReactElement;\n\n\t/**\n\t * Whether to hide the modal header.\n\t */\n\thideModalHeader?: boolean;\n\n\t/**\n\t * The header of the modal.\n\t */\n\tmodalHeader?: string;\n}\n\nexport interface ActionButton< Item > extends ActionBase< Item > {\n\t/**\n\t * The callback to execute when the action is triggered.\n\t */\n\tcallback: (\n\t\titems: Item[],\n\t\tcontext: {\n\t\t\tregistry: any;\n\t\t\tonActionPerformed?: ( items: Item[] ) => void;\n\t\t}\n\t) => void;\n}\n\nexport type Action< Item > = ActionModal< Item > | ActionButton< Item >;\n\nexport interface ViewBaseProps< Item > {\n\tactions: Action< Item >[];\n\tdata: Item[];\n\tfields: NormalizedField< Item >[];\n\tgetItemId: ( item: Item ) => string;\n\tisLoading?: boolean;\n\tonChangeView: ( view: View ) => void;\n\tonChangeSelection: SetSelection;\n\tselection: string[];\n\tsetOpenedFilter: ( fieldId: string ) => void;\n\tonClickItem?: ( item: Item ) => void;\n\tisItemClickable: ( item: Item ) => boolean;\n\tview: View;\n}\n\nexport interface ViewTableProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewTable;\n}\n\nexport interface ViewListProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewList;\n}\n\nexport interface ViewGridProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewGrid;\n}\n\nexport type ViewProps< Item > =\n\t| ViewTableProps< Item >\n\t| ViewGridProps< Item >\n\t| ViewListProps< Item >;\n\nexport interface SupportedLayouts {\n\tlist?: Omit< ViewList, 'type' >;\n\tgrid?: Omit< ViewGrid, 'type' >;\n\ttable?: Omit< ViewTable, 'type' >;\n}\n\nexport type SimpleFormField = {\n\tid: string;\n\tlayout?: 'regular' | 'panel';\n\tlabelPosition?: 'side' | 'top' | 'none';\n};\n\nexport type CombinedFormField = {\n\tid: string;\n\tlabel?: string;\n\tlayout?: 'regular' | 'panel';\n\tlabelPosition?: 'side' | 'top' | 'none';\n\tchildren: Array< FormField | string >;\n};\n\nexport type FormField = SimpleFormField | CombinedFormField;\n\n/**\n * The form configuration.\n */\nexport type Form = {\n\ttype?: 'regular' | 'panel';\n\tfields?: Array< FormField | string >;\n\tlabelPosition?: 'side' | 'top' | 'none';\n};\n\nexport interface DataFormProps< Item > {\n\tdata: Item;\n\tfields: Field< Item >[];\n\tform: Form;\n\tonChange: ( value: Record< string, any > ) => void;\n}\n\nexport interface FieldLayoutProps< Item > {\n\tdata: Item;\n\tfield: FormField;\n\tonChange: ( value: any ) => void;\n\thideLabelFromVision?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
|
package/build/utils.js
CHANGED
package/build/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_constants","require","sanitizeOperators","field","operators","filterBy","Array","isArray","OPERATOR_IS_ANY","OPERATOR_IS_NONE","filter","operator","ALL_OPERATORS","includes","OPERATOR_IS","OPERATOR_IS_NOT"],"sources":["@wordpress/dataviews/src/utils.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport {\n\tALL_OPERATORS,\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n} from './constants';\nimport type { NormalizedField } from './types';\n\nexport function sanitizeOperators< Item >( field: NormalizedField< Item > ) {\n\tlet operators = field.filterBy?.operators;\n\n\t// Assign default values.\n\tif ( ! operators || ! Array.isArray( operators ) ) {\n\t\toperators = [ OPERATOR_IS_ANY, OPERATOR_IS_NONE ];\n\t}\n\n\t// Make sure only valid operators are used.\n\toperators = operators.filter( ( operator ) =>\n\t\tALL_OPERATORS.includes( operator )\n\t);\n\n\t// Do not allow mixing single & multiselection operators.\n\t// Remove multiselection operators if any of the single selection ones is present.\n\tif (\n\t\toperators.includes( OPERATOR_IS ) ||\n\t\toperators.includes( OPERATOR_IS_NOT )\n\t) {\n\t\toperators = operators.filter( ( operator ) =>\n\t\t\t[ OPERATOR_IS, OPERATOR_IS_NOT ].includes( operator )\n\t\t);\n\t}\n\n\treturn operators;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_constants","require","sanitizeOperators","field","operators","filterBy","Array","isArray","OPERATOR_IS_ANY","OPERATOR_IS_NONE","filter","operator","ALL_OPERATORS","includes","OPERATOR_IS","OPERATOR_IS_NOT"],"sources":["@wordpress/dataviews/src/utils.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport {\n\tALL_OPERATORS,\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n} from './constants';\nimport type { NormalizedField } from './types';\n\nexport function sanitizeOperators< Item >( field: NormalizedField< Item > ) {\n\tlet operators = field.filterBy?.operators;\n\n\t// Assign default values.\n\tif ( ! operators || ! Array.isArray( operators ) ) {\n\t\toperators = [ OPERATOR_IS_ANY, OPERATOR_IS_NONE ];\n\t}\n\n\t// Make sure only valid operators are used.\n\toperators = operators.filter( ( operator ) =>\n\t\tALL_OPERATORS.includes( operator )\n\t);\n\n\t// Do not allow mixing single & multiselection operators.\n\t// Remove multiselection operators if any of the single selection ones is present.\n\tif (\n\t\toperators.includes( OPERATOR_IS ) ||\n\t\toperators.includes( OPERATOR_IS_NOT )\n\t) {\n\t\toperators = operators.filter( ( operator ) =>\n\t\t\t[ OPERATOR_IS, OPERATOR_IS_NOT ].includes( operator )\n\t\t);\n\t}\n\n\treturn operators;\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,UAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAUO,SAASC,iBAAiBA,CAAUC,KAA8B,EAAG;EAC3E,IAAIC,SAAS,GAAGD,KAAK,CAACE,QAAQ,EAAED,SAAS;;EAEzC;EACA,IAAK,CAAEA,SAAS,IAAI,CAAEE,KAAK,CAACC,OAAO,CAAEH,SAAU,CAAC,EAAG;IAClDA,SAAS,GAAG,CAAEI,0BAAe,EAAEC,2BAAgB,CAAE;EAClD;;EAEA;EACAL,SAAS,GAAGA,SAAS,CAACM,MAAM,CAAIC,QAAQ,IACvCC,wBAAa,CAACC,QAAQ,CAAEF,QAAS,CAClC,CAAC;;EAED;EACA;EACA,IACCP,SAAS,CAACS,QAAQ,CAAEC,sBAAY,CAAC,IACjCV,SAAS,CAACS,QAAQ,CAAEE,0BAAgB,CAAC,EACpC;IACDX,SAAS,GAAGA,SAAS,CAACM,MAAM,CAAIC,QAAQ,IACvC,CAAEG,sBAAW,EAAEC,0BAAe,CAAE,CAACF,QAAQ,CAAEF,QAAS,CACrD,CAAC;EACF;EAEA,OAAOP,SAAS;AACjB","ignoreList":[]}
|