@wordpress/dataviews 1.1.0 → 1.2.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 +11 -5
- package/build/bulk-actions-toolbar.js +182 -0
- package/build/bulk-actions-toolbar.js.map +1 -0
- package/build/bulk-actions.js +8 -8
- package/build/bulk-actions.js.map +1 -1
- package/build/dataviews.js +11 -4
- package/build/dataviews.js.map +1 -1
- package/build/filter-and-sort-data-view.js +2 -2
- package/build/filter-and-sort-data-view.js.map +1 -1
- package/build/filter-summary.js +3 -3
- package/build/filter-summary.js.map +1 -1
- package/build/item-actions.js +41 -22
- package/build/item-actions.js.map +1 -1
- package/build/lock-unlock.js.map +1 -1
- package/build/normalize-fields.js.map +1 -1
- package/build/pagination.js +13 -7
- package/build/pagination.js.map +1 -1
- package/build/single-selection-checkbox.js +4 -0
- package/build/single-selection-checkbox.js.map +1 -1
- package/build/types.js.map +1 -1
- package/build/view-grid.js +9 -10
- package/build/view-grid.js.map +1 -1
- package/build/view-list.js +134 -21
- package/build/view-list.js.map +1 -1
- package/build/view-table.js +9 -9
- package/build/view-table.js.map +1 -1
- package/build-module/bulk-actions-toolbar.js +175 -0
- package/build-module/bulk-actions-toolbar.js.map +1 -0
- package/build-module/bulk-actions.js +8 -8
- package/build-module/bulk-actions.js.map +1 -1
- package/build-module/dataviews.js +11 -4
- package/build-module/dataviews.js.map +1 -1
- package/build-module/filter-and-sort-data-view.js +2 -2
- package/build-module/filter-and-sort-data-view.js.map +1 -1
- package/build-module/filter-summary.js +3 -3
- package/build-module/filter-summary.js.map +1 -1
- package/build-module/item-actions.js +40 -24
- package/build-module/item-actions.js.map +1 -1
- package/build-module/lock-unlock.js.map +1 -1
- package/build-module/normalize-fields.js.map +1 -1
- package/build-module/pagination.js +14 -7
- package/build-module/pagination.js.map +1 -1
- package/build-module/single-selection-checkbox.js +5 -0
- package/build-module/single-selection-checkbox.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-module/view-grid.js +9 -10
- package/build-module/view-grid.js.map +1 -1
- package/build-module/view-list.js +135 -23
- package/build-module/view-list.js.map +1 -1
- package/build-module/view-table.js +9 -9
- package/build-module/view-table.js.map +1 -1
- package/build-style/style-rtl.css +62 -27
- package/build-style/style.css +62 -27
- package/build-types/add-filter.d.ts +8 -0
- package/build-types/add-filter.d.ts.map +1 -0
- package/build-types/bulk-actions-toolbar.d.ts +8 -0
- package/build-types/bulk-actions-toolbar.d.ts.map +1 -0
- package/build-types/bulk-actions.d.ts +14 -0
- package/build-types/bulk-actions.d.ts.map +1 -0
- package/build-types/dataviews.d.ts +15 -0
- package/build-types/dataviews.d.ts.map +1 -0
- package/build-types/dropdown-menu-helper.d.ts +6 -0
- package/build-types/dropdown-menu-helper.d.ts.map +1 -0
- package/build-types/filter-and-sort-data-view.d.ts +3 -3
- package/build-types/filter-and-sort-data-view.d.ts.map +1 -1
- package/build-types/filter-summary.d.ts +6 -0
- package/build-types/filter-summary.d.ts.map +1 -0
- package/build-types/filters.d.ts +3 -0
- package/build-types/filters.d.ts.map +1 -0
- package/build-types/index.d.ts +4 -0
- package/build-types/index.d.ts.map +1 -0
- package/build-types/item-actions.d.ts +37 -0
- package/build-types/item-actions.d.ts.map +1 -0
- package/build-types/layouts.d.ts +20 -0
- package/build-types/layouts.d.ts.map +1 -0
- package/build-types/lock-unlock.d.ts +2 -0
- package/build-types/lock-unlock.d.ts.map +1 -0
- package/build-types/normalize-fields.d.ts +2 -2
- package/build-types/normalize-fields.d.ts.map +1 -1
- package/build-types/pagination.d.ts +16 -0
- package/build-types/pagination.d.ts.map +1 -0
- package/build-types/reset-filters.d.ts +6 -0
- package/build-types/reset-filters.d.ts.map +1 -0
- package/build-types/search-widget.d.ts +2 -0
- package/build-types/search-widget.d.ts.map +1 -0
- package/build-types/search.d.ts +3 -0
- package/build-types/search.d.ts.map +1 -0
- package/build-types/single-selection-checkbox.d.ts +17 -0
- package/build-types/single-selection-checkbox.d.ts.map +1 -0
- package/build-types/stories/fixtures.d.ts +114 -0
- package/build-types/stories/fixtures.d.ts.map +1 -0
- package/build-types/stories/index.story.d.ts +15 -0
- package/build-types/stories/index.story.d.ts.map +1 -0
- package/build-types/types.d.ts +152 -20
- package/build-types/types.d.ts.map +1 -1
- package/build-types/utils.d.ts +2 -0
- package/build-types/utils.d.ts.map +1 -0
- package/build-types/view-actions.d.ts +3 -0
- package/build-types/view-actions.d.ts.map +1 -0
- package/build-types/view-grid.d.ts +15 -0
- package/build-types/view-grid.d.ts.map +1 -0
- package/build-types/view-list.d.ts +16 -0
- package/build-types/view-list.d.ts.map +1 -0
- package/build-types/view-table.d.ts +14 -0
- package/build-types/view-table.d.ts.map +1 -0
- package/package.json +12 -12
- package/src/bulk-actions-toolbar.js +244 -0
- package/src/{bulk-actions.js → bulk-actions.tsx} +73 -17
- package/src/dataviews.js +14 -3
- package/src/filter-and-sort-data-view.ts +13 -8
- package/src/filter-summary.js +3 -3
- package/src/{item-actions.js → item-actions.tsx} +112 -28
- package/src/normalize-fields.ts +4 -2
- package/src/{pagination.js → pagination.tsx} +28 -7
- package/src/{single-selection-checkbox.js → single-selection-checkbox.tsx} +17 -2
- package/src/style.scss +77 -28
- package/src/types.ts +190 -20
- package/src/{view-grid.js → view-grid.tsx} +45 -16
- package/src/view-list.tsx +421 -0
- package/src/view-table.js +8 -8
- package/tsconfig.json +4 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/src/view-list.js +0 -207
- /package/src/{lock-unlock.js → lock-unlock.ts} +0 -0
package/build/view-list.js
CHANGED
|
@@ -6,16 +6,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = ViewList;
|
|
8
8
|
var _react = require("react");
|
|
9
|
-
var
|
|
9
|
+
var _clsx = _interopRequireDefault(require("clsx"));
|
|
10
10
|
var _compose = require("@wordpress/compose");
|
|
11
11
|
var _components = require("@wordpress/components");
|
|
12
12
|
var _element = require("@wordpress/element");
|
|
13
13
|
var _i18n = require("@wordpress/i18n");
|
|
14
|
+
var _icons = require("@wordpress/icons");
|
|
14
15
|
var _lockUnlock = require("./lock-unlock");
|
|
16
|
+
var _itemActions = require("./item-actions");
|
|
15
17
|
/**
|
|
16
18
|
* External dependencies
|
|
17
19
|
*/
|
|
18
20
|
|
|
21
|
+
// Import CompositeStore type, which is not exported from @wordpress/components.
|
|
22
|
+
// eslint-disable-next-line no-restricted-imports
|
|
23
|
+
|
|
19
24
|
/**
|
|
20
25
|
* WordPress dependencies
|
|
21
26
|
*/
|
|
@@ -28,20 +33,30 @@ const {
|
|
|
28
33
|
useCompositeStoreV2: useCompositeStore,
|
|
29
34
|
CompositeV2: Composite,
|
|
30
35
|
CompositeItemV2: CompositeItem,
|
|
31
|
-
CompositeRowV2: CompositeRow
|
|
36
|
+
CompositeRowV2: CompositeRow,
|
|
37
|
+
DropdownMenuV2: DropdownMenu
|
|
32
38
|
} = (0, _lockUnlock.unlock)(_components.privateApis);
|
|
33
39
|
function ListItem({
|
|
40
|
+
actions,
|
|
34
41
|
id,
|
|
35
|
-
item,
|
|
36
42
|
isSelected,
|
|
37
|
-
|
|
43
|
+
item,
|
|
38
44
|
mediaField,
|
|
45
|
+
onSelect,
|
|
39
46
|
primaryField,
|
|
47
|
+
store,
|
|
40
48
|
visibleFields
|
|
41
49
|
}) {
|
|
42
50
|
const itemRef = (0, _element.useRef)(null);
|
|
43
51
|
const labelId = `${id}-label`;
|
|
44
52
|
const descriptionId = `${id}-description`;
|
|
53
|
+
const [isHovered, setIsHovered] = (0, _element.useState)(false);
|
|
54
|
+
const handleMouseEnter = () => {
|
|
55
|
+
setIsHovered(true);
|
|
56
|
+
};
|
|
57
|
+
const handleMouseLeave = () => {
|
|
58
|
+
setIsHovered(false);
|
|
59
|
+
};
|
|
45
60
|
(0, _element.useEffect)(() => {
|
|
46
61
|
if (isSelected) {
|
|
47
62
|
itemRef.current?.scrollIntoView({
|
|
@@ -51,18 +66,37 @@ function ListItem({
|
|
|
51
66
|
});
|
|
52
67
|
}
|
|
53
68
|
}, [isSelected]);
|
|
69
|
+
const {
|
|
70
|
+
primaryAction,
|
|
71
|
+
eligibleActions
|
|
72
|
+
} = (0, _element.useMemo)(() => {
|
|
73
|
+
// If an action is eligible for all items, doesn't need
|
|
74
|
+
// to provide the `isEligible` function.
|
|
75
|
+
const _eligibleActions = actions.filter(action => !action.isEligible || action.isEligible(item));
|
|
76
|
+
const _primaryActions = _eligibleActions.filter(action => action.isPrimary && !!action.icon);
|
|
77
|
+
return {
|
|
78
|
+
primaryAction: _primaryActions?.[0],
|
|
79
|
+
eligibleActions: _eligibleActions
|
|
80
|
+
};
|
|
81
|
+
}, [actions, item]);
|
|
82
|
+
const [isModalOpen, setIsModalOpen] = (0, _element.useState)(false);
|
|
54
83
|
return (0, _react.createElement)(CompositeRow, {
|
|
55
84
|
ref: itemRef,
|
|
56
85
|
render: (0, _react.createElement)("li", null),
|
|
57
86
|
role: "row",
|
|
58
|
-
className: (0,
|
|
59
|
-
'is-selected': isSelected
|
|
60
|
-
|
|
87
|
+
className: (0, _clsx.default)({
|
|
88
|
+
'is-selected': isSelected,
|
|
89
|
+
'is-hovered': isHovered
|
|
90
|
+
}),
|
|
91
|
+
onMouseEnter: handleMouseEnter,
|
|
92
|
+
onMouseLeave: handleMouseLeave
|
|
61
93
|
}, (0, _react.createElement)(_components.__experimentalHStack, {
|
|
62
|
-
className: "dataviews-view-list__item-wrapper"
|
|
94
|
+
className: "dataviews-view-list__item-wrapper",
|
|
95
|
+
alignment: "top"
|
|
63
96
|
}, (0, _react.createElement)("div", {
|
|
64
97
|
role: "gridcell"
|
|
65
98
|
}, (0, _react.createElement)(CompositeItem, {
|
|
99
|
+
store: store,
|
|
66
100
|
render: (0, _react.createElement)("div", null),
|
|
67
101
|
role: "button",
|
|
68
102
|
id: id,
|
|
@@ -101,19 +135,83 @@ function ListItem({
|
|
|
101
135
|
className: "dataviews-view-list__field-value"
|
|
102
136
|
}, field.render({
|
|
103
137
|
item
|
|
104
|
-
}))))))))))
|
|
138
|
+
}))))))))), actions?.length > 0 && (0, _react.createElement)(_components.__experimentalHStack, {
|
|
139
|
+
spacing: 1,
|
|
140
|
+
justify: "flex-end",
|
|
141
|
+
className: "dataviews-view-list__item-actions",
|
|
142
|
+
style: {
|
|
143
|
+
flexShrink: '0',
|
|
144
|
+
width: 'auto'
|
|
145
|
+
}
|
|
146
|
+
}, primaryAction && 'RenderModal' in primaryAction && (0, _react.createElement)("div", {
|
|
147
|
+
role: "gridcell"
|
|
148
|
+
}, (0, _react.createElement)(CompositeItem, {
|
|
149
|
+
store: store,
|
|
150
|
+
render: (0, _react.createElement)(_components.Button, {
|
|
151
|
+
label: primaryAction.label,
|
|
152
|
+
icon: primaryAction.icon,
|
|
153
|
+
isDestructive: primaryAction.isDestructive,
|
|
154
|
+
size: "compact",
|
|
155
|
+
onClick: () => setIsModalOpen(true)
|
|
156
|
+
})
|
|
157
|
+
}, isModalOpen && (0, _react.createElement)(_itemActions.ActionModal, {
|
|
158
|
+
action: primaryAction,
|
|
159
|
+
items: [item],
|
|
160
|
+
closeModal: () => setIsModalOpen(false)
|
|
161
|
+
}))), primaryAction && !('RenderModal' in primaryAction) && (0, _react.createElement)("div", {
|
|
162
|
+
role: "gridcell",
|
|
163
|
+
key: primaryAction.id
|
|
164
|
+
}, (0, _react.createElement)(CompositeItem, {
|
|
165
|
+
store: store,
|
|
166
|
+
render: (0, _react.createElement)(_components.Button, {
|
|
167
|
+
label: primaryAction.label,
|
|
168
|
+
icon: primaryAction.icon,
|
|
169
|
+
isDestructive: primaryAction.isDestructive,
|
|
170
|
+
size: "compact",
|
|
171
|
+
onClick: () => primaryAction.callback([item])
|
|
172
|
+
})
|
|
173
|
+
})), (0, _react.createElement)("div", {
|
|
174
|
+
role: "gridcell"
|
|
175
|
+
}, (0, _react.createElement)(DropdownMenu, {
|
|
176
|
+
trigger: (0, _react.createElement)(CompositeItem, {
|
|
177
|
+
store: store,
|
|
178
|
+
render: (0, _react.createElement)(_components.Button, {
|
|
179
|
+
size: "compact",
|
|
180
|
+
icon: _icons.moreVertical,
|
|
181
|
+
label: (0, _i18n.__)('Actions'),
|
|
182
|
+
disabled: !actions.length,
|
|
183
|
+
onKeyDown: event => {
|
|
184
|
+
if (event.key === 'ArrowDown') {
|
|
185
|
+
// Prevent the default behaviour (open dropdown menu) and go down.
|
|
186
|
+
event.preventDefault();
|
|
187
|
+
store.move(store.down());
|
|
188
|
+
}
|
|
189
|
+
if (event.key === 'ArrowUp') {
|
|
190
|
+
// Prevent the default behavior (open dropdown menu) and go up.
|
|
191
|
+
event.preventDefault();
|
|
192
|
+
store.move(store.up());
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
})
|
|
196
|
+
}),
|
|
197
|
+
placement: "bottom-end"
|
|
198
|
+
}, (0, _react.createElement)(_itemActions.ActionsDropdownMenuGroup, {
|
|
199
|
+
actions: eligibleActions,
|
|
200
|
+
item: item
|
|
201
|
+
}))))));
|
|
105
202
|
}
|
|
106
|
-
function ViewList({
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
203
|
+
function ViewList(props) {
|
|
204
|
+
const {
|
|
205
|
+
actions,
|
|
206
|
+
data,
|
|
207
|
+
fields,
|
|
208
|
+
getItemId,
|
|
209
|
+
isLoading,
|
|
210
|
+
onSelectionChange,
|
|
211
|
+
selection,
|
|
212
|
+
view
|
|
213
|
+
} = props;
|
|
214
|
+
const baseId = (0, _compose.useInstanceId)(ViewList, 'view-list');
|
|
117
215
|
const selectedItem = data?.findLast(item => selection.includes(item.id));
|
|
118
216
|
const mediaField = fields.find(field => field.id === view.layout.mediaField);
|
|
119
217
|
const primaryField = fields.find(field => field.id === view.layout.primaryField);
|
|
@@ -123,10 +221,23 @@ function ViewList({
|
|
|
123
221
|
const store = useCompositeStore({
|
|
124
222
|
defaultActiveId: getItemDomId(selectedItem)
|
|
125
223
|
});
|
|
224
|
+
|
|
225
|
+
// Manage focused item, when the active one is removed from the list.
|
|
226
|
+
const isActiveIdInList = store.useState(state => state.items.some(item => item.id === state.activeId));
|
|
227
|
+
(0, _element.useEffect)(() => {
|
|
228
|
+
if (!isActiveIdInList) {
|
|
229
|
+
// Prefer going down, except if there is no item below (last item), then go up (last item in list).
|
|
230
|
+
if (store.down()) {
|
|
231
|
+
store.move(store.down());
|
|
232
|
+
} else if (store.up()) {
|
|
233
|
+
store.move(store.up());
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}, [isActiveIdInList]);
|
|
126
237
|
const hasData = data?.length;
|
|
127
238
|
if (!hasData) {
|
|
128
239
|
return (0, _react.createElement)("div", {
|
|
129
|
-
className: (0,
|
|
240
|
+
className: (0, _clsx.default)({
|
|
130
241
|
'dataviews-loading': isLoading,
|
|
131
242
|
'dataviews-no-results': !hasData && !isLoading
|
|
132
243
|
})
|
|
@@ -143,11 +254,13 @@ function ViewList({
|
|
|
143
254
|
return (0, _react.createElement)(ListItem, {
|
|
144
255
|
key: id,
|
|
145
256
|
id: id,
|
|
257
|
+
actions: actions,
|
|
146
258
|
item: item,
|
|
147
259
|
isSelected: item === selectedItem,
|
|
148
260
|
onSelect: onSelect,
|
|
149
261
|
mediaField: mediaField,
|
|
150
262
|
primaryField: primaryField,
|
|
263
|
+
store: store,
|
|
151
264
|
visibleFields: visibleFields
|
|
152
265
|
});
|
|
153
266
|
}));
|
package/build/view-list.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_compose","_components","_element","_i18n","_lockUnlock","useCompositeStoreV2","useCompositeStore","CompositeV2","Composite","CompositeItemV2","CompositeItem","CompositeRowV2","CompositeRow","unlock","componentsPrivateApis","ListItem","id","item","isSelected","onSelect","mediaField","primaryField","visibleFields","itemRef","useRef","labelId","descriptionId","useEffect","current","scrollIntoView","behavior","block","inline","_react","createElement","ref","render","role","className","classNames","__experimentalHStack","onClick","spacing","justify","alignment","__experimentalVStack","map","field","key","VisuallyHidden","as","header","ViewList","view","fields","data","isLoading","getItemId","onSelectionChange","selection","preferredId","baseId","useInstanceId","selectedItem","findLast","includes","find","layout","filter","hiddenFields","useCallback","getItemDomId","undefined","store","defaultActiveId","hasData","length","Spinner","__"],"sources":["@wordpress/dataviews/src/view-list.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tprivateApis as componentsPrivateApis,\n\tSpinner,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { useCallback, useEffect, useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\n\nconst {\n\tuseCompositeStoreV2: useCompositeStore,\n\tCompositeV2: Composite,\n\tCompositeItemV2: CompositeItem,\n\tCompositeRowV2: CompositeRow,\n} = unlock( componentsPrivateApis );\n\nfunction ListItem( {\n\tid,\n\titem,\n\tisSelected,\n\tonSelect,\n\tmediaField,\n\tprimaryField,\n\tvisibleFields,\n} ) {\n\tconst itemRef = useRef( null );\n\tconst labelId = `${ id }-label`;\n\tconst descriptionId = `${ id }-description`;\n\n\tuseEffect( () => {\n\t\tif ( isSelected ) {\n\t\t\titemRef.current?.scrollIntoView( {\n\t\t\t\tbehavior: 'auto',\n\t\t\t\tblock: 'nearest',\n\t\t\t\tinline: 'nearest',\n\t\t\t} );\n\t\t}\n\t}, [ isSelected ] );\n\n\treturn (\n\t\t<CompositeRow\n\t\t\tref={ itemRef }\n\t\t\trender={ <li /> }\n\t\t\trole=\"row\"\n\t\t\tclassName={ classNames( {\n\t\t\t\t'is-selected': isSelected,\n\t\t\t} ) }\n\t\t>\n\t\t\t<HStack className=\"dataviews-view-list__item-wrapper\">\n\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\trender={ <div /> }\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\taria-pressed={ isSelected }\n\t\t\t\t\t\taria-labelledby={ labelId }\n\t\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t\tclassName=\"dataviews-view-list__item\"\n\t\t\t\t\t\tonClick={ () => onSelect( item ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\t\t\talignment=\"flex-start\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"dataviews-view-list__media-wrapper\">\n\t\t\t\t\t\t\t\t{ mediaField?.render( { item } ) || (\n\t\t\t\t\t\t\t\t\t<div className=\"dataviews-view-list__media-placeholder\"></div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__primary-field\"\n\t\t\t\t\t\t\t\t\tid={ labelId }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ primaryField?.render( { item } ) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__fields\"\n\t\t\t\t\t\t\t\t\tid={ descriptionId }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<VisuallyHidden\n\t\t\t\t\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field-label\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"dataviews-view-list__field-value\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ field.render( { item } ) }\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</CompositeItem>\n\t\t\t\t</div>\n\t\t\t</HStack>\n\t\t</CompositeRow>\n\t);\n}\n\nexport default function ViewList( {\n\tview,\n\tfields,\n\tdata,\n\tisLoading,\n\tgetItemId,\n\tonSelectionChange,\n\tselection,\n\tid: preferredId,\n} ) {\n\tconst baseId = useInstanceId( ViewList, 'view-list', preferredId );\n\tconst selectedItem = data?.findLast( ( item ) =>\n\t\tselection.includes( item.id )\n\t);\n\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view.layout.mediaField\n\t);\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout.primaryField\n\t);\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\t! view.hiddenFields.includes( field.id ) &&\n\t\t\t! [ view.layout.primaryField, view.layout.mediaField ].includes(\n\t\t\t\tfield.id\n\t\t\t)\n\t);\n\n\tconst onSelect = useCallback(\n\t\t( item ) => onSelectionChange( [ item ] ),\n\t\t[ onSelectionChange ]\n\t);\n\n\tconst getItemDomId = useCallback(\n\t\t( item ) => ( item ? `${ baseId }-${ getItemId( item ) }` : undefined ),\n\t\t[ baseId, getItemId ]\n\t);\n\n\tconst store = useCompositeStore( {\n\t\tdefaultActiveId: getItemDomId( selectedItem ),\n\t} );\n\n\tconst hasData = data?.length;\n\tif ( ! hasData ) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={ classNames( {\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>\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\treturn (\n\t\t<Composite\n\t\t\tid={ baseId }\n\t\t\trender={ <ul /> }\n\t\t\tclassName=\"dataviews-view-list\"\n\t\t\trole=\"grid\"\n\t\t\tstore={ store }\n\t\t>\n\t\t\t{ data.map( ( item ) => {\n\t\t\t\tconst id = getItemDomId( item );\n\t\t\t\treturn (\n\t\t\t\t\t<ListItem\n\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tisSelected={ item === selectedItem }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Composite>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_compose","_components","_element","_i18n","_icons","_lockUnlock","_itemActions","useCompositeStoreV2","useCompositeStore","CompositeV2","Composite","CompositeItemV2","CompositeItem","CompositeRowV2","CompositeRow","DropdownMenuV2","DropdownMenu","unlock","componentsPrivateApis","ListItem","actions","id","isSelected","item","mediaField","onSelect","primaryField","store","visibleFields","itemRef","useRef","labelId","descriptionId","isHovered","setIsHovered","useState","handleMouseEnter","handleMouseLeave","useEffect","current","scrollIntoView","behavior","block","inline","primaryAction","eligibleActions","useMemo","_eligibleActions","filter","action","isEligible","_primaryActions","isPrimary","icon","isModalOpen","setIsModalOpen","_react","createElement","ref","render","role","className","clsx","onMouseEnter","onMouseLeave","__experimentalHStack","alignment","onClick","spacing","justify","__experimentalVStack","map","field","key","VisuallyHidden","as","header","length","style","flexShrink","width","Button","label","isDestructive","size","ActionModal","items","closeModal","callback","trigger","moreVertical","__","disabled","onKeyDown","event","preventDefault","move","down","up","placement","ActionsDropdownMenuGroup","ViewList","props","data","fields","getItemId","isLoading","onSelectionChange","selection","view","baseId","useInstanceId","selectedItem","findLast","includes","find","layout","hiddenFields","useCallback","getItemDomId","undefined","defaultActiveId","isActiveIdInList","state","some","activeId","hasData","Spinner"],"sources":["@wordpress/dataviews/src/view-list.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n// Import CompositeStore type, which is not exported from @wordpress/components.\n// eslint-disable-next-line no-restricted-imports\nimport type { CompositeStore } from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\tprivateApis as componentsPrivateApis,\n\tSpinner,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { moreVertical } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport type {\n\tAction,\n\tAnyItem,\n\tNormalizedField,\n\tViewList as ViewListType,\n} from './types';\n\nimport { ActionsDropdownMenuGroup, ActionModal } from './item-actions';\n\ninterface ListViewProps< Item extends AnyItem > {\n\tactions: Action< Item >[];\n\tdata: Item[];\n\tfields: NormalizedField< Item >[];\n\tgetItemId: ( item: Item ) => string;\n\tid: string;\n\tisLoading: boolean;\n\tonSelectionChange: ( selection: Item[] ) => void;\n\tselection: string[];\n\tview: ViewListType;\n}\n\ninterface ListViewItemProps< Item extends AnyItem > {\n\tactions: Action< Item >[];\n\tid?: string;\n\tisSelected: boolean;\n\titem: Item;\n\tmediaField?: NormalizedField< Item >;\n\tonSelect: ( item: Item ) => void;\n\tprimaryField?: NormalizedField< Item >;\n\tstore: CompositeStore;\n\tvisibleFields: NormalizedField< Item >[];\n}\n\nconst {\n\tuseCompositeStoreV2: useCompositeStore,\n\tCompositeV2: Composite,\n\tCompositeItemV2: CompositeItem,\n\tCompositeRowV2: CompositeRow,\n\tDropdownMenuV2: DropdownMenu,\n} = unlock( componentsPrivateApis );\n\nfunction ListItem< Item extends AnyItem >( {\n\tactions,\n\tid,\n\tisSelected,\n\titem,\n\tmediaField,\n\tonSelect,\n\tprimaryField,\n\tstore,\n\tvisibleFields,\n}: ListViewItemProps< Item > ) {\n\tconst itemRef = useRef< HTMLElement >( null );\n\tconst labelId = `${ id }-label`;\n\tconst descriptionId = `${ id }-description`;\n\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst handleMouseEnter = () => {\n\t\tsetIsHovered( true );\n\t};\n\tconst handleMouseLeave = () => {\n\t\tsetIsHovered( false );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( isSelected ) {\n\t\t\titemRef.current?.scrollIntoView( {\n\t\t\t\tbehavior: 'auto',\n\t\t\t\tblock: 'nearest',\n\t\t\t\tinline: 'nearest',\n\t\t\t} );\n\t\t}\n\t}, [ isSelected ] );\n\n\tconst { primaryAction, eligibleActions } = useMemo( () => {\n\t\t// If an action is eligible for all items, doesn't need\n\t\t// to provide the `isEligible` function.\n\t\tconst _eligibleActions = actions.filter(\n\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t\tconst _primaryActions = _eligibleActions.filter(\n\t\t\t( action ) => action.isPrimary && !! action.icon\n\t\t);\n\t\treturn {\n\t\t\tprimaryAction: _primaryActions?.[ 0 ],\n\t\t\teligibleActions: _eligibleActions,\n\t\t};\n\t}, [ actions, item ] );\n\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\treturn (\n\t\t<CompositeRow\n\t\t\tref={ itemRef }\n\t\t\trender={ <li /> }\n\t\t\trole=\"row\"\n\t\t\tclassName={ clsx( {\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-hovered': isHovered,\n\t\t\t} ) }\n\t\t\tonMouseEnter={ handleMouseEnter }\n\t\t\tonMouseLeave={ handleMouseLeave }\n\t\t>\n\t\t\t<HStack\n\t\t\t\tclassName=\"dataviews-view-list__item-wrapper\"\n\t\t\t\talignment=\"top\"\n\t\t\t>\n\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\trender={ <div /> }\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\taria-pressed={ isSelected }\n\t\t\t\t\t\taria-labelledby={ labelId }\n\t\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t\tclassName=\"dataviews-view-list__item\"\n\t\t\t\t\t\tonClick={ () => onSelect( item ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\t\t\talignment=\"flex-start\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"dataviews-view-list__media-wrapper\">\n\t\t\t\t\t\t\t\t{ mediaField?.render( { item } ) || (\n\t\t\t\t\t\t\t\t\t<div className=\"dataviews-view-list__media-placeholder\"></div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__primary-field\"\n\t\t\t\t\t\t\t\t\tid={ labelId }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ primaryField?.render( { item } ) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__fields\"\n\t\t\t\t\t\t\t\t\tid={ descriptionId }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<VisuallyHidden\n\t\t\t\t\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field-label\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"dataviews-view-list__field-value\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ field.render( { item } ) }\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</CompositeItem>\n\t\t\t\t</div>\n\t\t\t\t{ actions?.length > 0 && (\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\tclassName=\"dataviews-view-list__item-actions\"\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tflexShrink: '0',\n\t\t\t\t\t\t\twidth: 'auto',\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ primaryAction && 'RenderModal' in primaryAction && (\n\t\t\t\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tlabel={ primaryAction.label }\n\t\t\t\t\t\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\t\t\t\t\t\tisDestructive={\n\t\t\t\t\t\t\t\t\t\t\t\tprimaryAction.isDestructive\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( true )\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}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ isModalOpen && (\n\t\t\t\t\t\t\t\t\t\t<ActionModal< Item >\n\t\t\t\t\t\t\t\t\t\t\taction={ primaryAction }\n\t\t\t\t\t\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\t\t\t\t\t\tcloseModal={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( false )\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) }\n\t\t\t\t\t\t\t\t</CompositeItem>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ primaryAction &&\n\t\t\t\t\t\t\t! ( 'RenderModal' in primaryAction ) && (\n\t\t\t\t\t\t\t\t<div role=\"gridcell\" key={ primaryAction.id }>\n\t\t\t\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ primaryAction.label }\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\t\t\t\t\t\t\tisDestructive={\n\t\t\t\t\t\t\t\t\t\t\t\t\tprimaryAction.isDestructive\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\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tprimaryAction.callback( [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titem,\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/>\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</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={ ! actions.length }\n\t\t\t\t\t\t\t\t\t\t\t\tonKeyDown={ ( event: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey: string;\n\t\t\t\t\t\t\t\t\t\t\t\t\tpreventDefault: () => void;\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\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.key ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'ArrowDown'\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\t// Prevent the default behaviour (open dropdown menu) and go down.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstore.move(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstore.down()\n\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\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.key === 'ArrowUp'\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\t// Prevent the default behavior (open dropdown menu) and go up.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstore.move(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstore.up()\n\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/>\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}\n\t\t\t\t\t\t\t\tplacement=\"bottom-end\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ActionsDropdownMenuGroup\n\t\t\t\t\t\t\t\t\tactions={ eligibleActions }\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</HStack>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</CompositeRow>\n\t);\n}\n\nexport default function ViewList< Item extends AnyItem >(\n\tprops: ListViewProps< Item >\n) {\n\tconst {\n\t\tactions,\n\t\tdata,\n\t\tfields,\n\t\tgetItemId,\n\t\tisLoading,\n\t\tonSelectionChange,\n\t\tselection,\n\t\tview,\n\t} = props;\n\tconst baseId = useInstanceId( ViewList, 'view-list' );\n\tconst selectedItem = data?.findLast( ( item ) =>\n\t\tselection.includes( item.id )\n\t);\n\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view.layout.mediaField\n\t);\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout.primaryField\n\t);\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\t! view.hiddenFields.includes( field.id ) &&\n\t\t\t! [ view.layout.primaryField, view.layout.mediaField ].includes(\n\t\t\t\tfield.id\n\t\t\t)\n\t);\n\n\tconst onSelect = useCallback(\n\t\t( item: Item ) => onSelectionChange( [ item ] ),\n\t\t[ onSelectionChange ]\n\t);\n\n\tconst getItemDomId = useCallback(\n\t\t( item?: Item ) =>\n\t\t\titem ? `${ baseId }-${ getItemId( item ) }` : undefined,\n\t\t[ baseId, getItemId ]\n\t);\n\n\tconst store = useCompositeStore( {\n\t\tdefaultActiveId: getItemDomId( selectedItem ),\n\t} );\n\n\t// Manage focused item, when the active one is removed from the list.\n\tconst isActiveIdInList = store.useState(\n\t\t( state: { items: any[]; activeId: any } ) =>\n\t\t\tstate.items.some(\n\t\t\t\t( item: { id: any } ) => item.id === state.activeId\n\t\t\t)\n\t);\n\tuseEffect( () => {\n\t\tif ( ! isActiveIdInList ) {\n\t\t\t// Prefer going down, except if there is no item below (last item), then go up (last item in list).\n\t\t\tif ( store.down() ) {\n\t\t\t\tstore.move( store.down() );\n\t\t\t} else if ( store.up() ) {\n\t\t\t\tstore.move( store.up() );\n\t\t\t}\n\t\t}\n\t}, [ isActiveIdInList ] );\n\n\tconst hasData = data?.length;\n\tif ( ! hasData ) {\n\t\treturn (\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>\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\treturn (\n\t\t<Composite\n\t\t\tid={ baseId }\n\t\t\trender={ <ul /> }\n\t\t\tclassName=\"dataviews-view-list\"\n\t\t\trole=\"grid\"\n\t\t\tstore={ store }\n\t\t>\n\t\t\t{ data.map( ( item ) => {\n\t\t\t\tconst id = getItemDomId( item );\n\t\t\t\treturn (\n\t\t\t\t\t<ListItem\n\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tisSelected={ item === selectedItem }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Composite>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAQA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAQA,IAAAG,QAAA,GAAAH,OAAA;AAOA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AAKA,IAAAM,WAAA,GAAAN,OAAA;AAQA,IAAAO,YAAA,GAAAP,OAAA;AAzCA;AACA;AACA;;AAEA;AACA;;AAGA;AACA;AACA;;AAoBA;AACA;AACA;;AAmCA,MAAM;EACLQ,mBAAmB,EAAEC,iBAAiB;EACtCC,WAAW,EAAEC,SAAS;EACtBC,eAAe,EAAEC,aAAa;EAC9BC,cAAc,EAAEC,YAAY;EAC5BC,cAAc,EAAEC;AACjB,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;AAEnC,SAASC,QAAQA,CAA0B;EAC1CC,OAAO;EACPC,EAAE;EACFC,UAAU;EACVC,IAAI;EACJC,UAAU;EACVC,QAAQ;EACRC,YAAY;EACZC,KAAK;EACLC;AAC0B,CAAC,EAAG;EAC9B,MAAMC,OAAO,GAAG,IAAAC,eAAM,EAAiB,IAAK,CAAC;EAC7C,MAAMC,OAAO,GAAI,GAAGV,EAAI,QAAO;EAC/B,MAAMW,aAAa,GAAI,GAAGX,EAAI,cAAa;EAE3C,MAAM,CAAEY,SAAS,EAAEC,YAAY,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EACrD,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;IAC9BF,YAAY,CAAE,IAAK,CAAC;EACrB,CAAC;EACD,MAAMG,gBAAgB,GAAGA,CAAA,KAAM;IAC9BH,YAAY,CAAE,KAAM,CAAC;EACtB,CAAC;EAED,IAAAI,kBAAS,EAAE,MAAM;IAChB,IAAKhB,UAAU,EAAG;MACjBO,OAAO,CAACU,OAAO,EAAEC,cAAc,CAAE;QAChCC,QAAQ,EAAE,MAAM;QAChBC,KAAK,EAAE,SAAS;QAChBC,MAAM,EAAE;MACT,CAAE,CAAC;IACJ;EACD,CAAC,EAAE,CAAErB,UAAU,CAAG,CAAC;EAEnB,MAAM;IAAEsB,aAAa;IAAEC;EAAgB,CAAC,GAAG,IAAAC,gBAAO,EAAE,MAAM;IACzD;IACA;IACA,MAAMC,gBAAgB,GAAG3B,OAAO,CAAC4B,MAAM,CACpCC,MAAM,IAAM,CAAEA,MAAM,CAACC,UAAU,IAAID,MAAM,CAACC,UAAU,CAAE3B,IAAK,CAC9D,CAAC;IACD,MAAM4B,eAAe,GAAGJ,gBAAgB,CAACC,MAAM,CAC5CC,MAAM,IAAMA,MAAM,CAACG,SAAS,IAAI,CAAC,CAAEH,MAAM,CAACI,IAC7C,CAAC;IACD,OAAO;MACNT,aAAa,EAAEO,eAAe,GAAI,CAAC,CAAE;MACrCN,eAAe,EAAEE;IAClB,CAAC;EACF,CAAC,EAAE,CAAE3B,OAAO,EAAEG,IAAI,CAAG,CAAC;EAEtB,MAAM,CAAE+B,WAAW,EAAEC,cAAc,CAAE,GAAG,IAAApB,iBAAQ,EAAE,KAAM,CAAC;EAEzD,OACC,IAAAqB,MAAA,CAAAC,aAAA,EAAC3C,YAAY;IACZ4C,GAAG,EAAG7B,OAAS;IACf8B,MAAM,EAAG,IAAAH,MAAA,CAAAC,aAAA,YAAK,CAAG;IACjBG,IAAI,EAAC,KAAK;IACVC,SAAS,EAAG,IAAAC,aAAI,EAAE;MACjB,aAAa,EAAExC,UAAU;MACzB,YAAY,EAAEW;IACf,CAAE,CAAG;IACL8B,YAAY,EAAG3B,gBAAkB;IACjC4B,YAAY,EAAG3B;EAAkB,GAEjC,IAAAmB,MAAA,CAAAC,aAAA,EAACxD,WAAA,CAAAgE,oBAAM;IACNJ,SAAS,EAAC,mCAAmC;IAC7CK,SAAS,EAAC;EAAK,GAEf,IAAAV,MAAA,CAAAC,aAAA;IAAKG,IAAI,EAAC;EAAU,GACnB,IAAAJ,MAAA,CAAAC,aAAA,EAAC7C,aAAa;IACbe,KAAK,EAAGA,KAAO;IACfgC,MAAM,EAAG,IAAAH,MAAA,CAAAC,aAAA,aAAM,CAAG;IAClBG,IAAI,EAAC,QAAQ;IACbvC,EAAE,EAAGA,EAAI;IACT,gBAAeC,UAAY;IAC3B,mBAAkBS,OAAS;IAC3B,oBAAmBC,aAAe;IAClC6B,SAAS,EAAC,2BAA2B;IACrCM,OAAO,EAAGA,CAAA,KAAM1C,QAAQ,CAAEF,IAAK;EAAG,GAElC,IAAAiC,MAAA,CAAAC,aAAA,EAACxD,WAAA,CAAAgE,oBAAM;IACNG,OAAO,EAAG,CAAG;IACbC,OAAO,EAAC,OAAO;IACfH,SAAS,EAAC;EAAY,GAEtB,IAAAV,MAAA,CAAAC,aAAA;IAAKI,SAAS,EAAC;EAAoC,GAChDrC,UAAU,EAAEmC,MAAM,CAAE;IAAEpC;EAAK,CAAE,CAAC,IAC/B,IAAAiC,MAAA,CAAAC,aAAA;IAAKI,SAAS,EAAC;EAAwC,CAAM,CAE1D,CAAC,EACN,IAAAL,MAAA,CAAAC,aAAA,EAACxD,WAAA,CAAAqE,oBAAM;IAACF,OAAO,EAAG;EAAG,GACpB,IAAAZ,MAAA,CAAAC,aAAA;IACCI,SAAS,EAAC,oCAAoC;IAC9CxC,EAAE,EAAGU;EAAS,GAEZL,YAAY,EAAEiC,MAAM,CAAE;IAAEpC;EAAK,CAAE,CAC5B,CAAC,EACP,IAAAiC,MAAA,CAAAC,aAAA;IACCI,SAAS,EAAC,6BAA6B;IACvCxC,EAAE,EAAGW;EAAe,GAElBJ,aAAa,CAAC2C,GAAG,CAAIC,KAAK,IAC3B,IAAAhB,MAAA,CAAAC,aAAA;IACCgB,GAAG,EAAGD,KAAK,CAACnD,EAAI;IAChBwC,SAAS,EAAC;EAA4B,GAEtC,IAAAL,MAAA,CAAAC,aAAA,EAACxD,WAAA,CAAAyE,cAAc;IACdC,EAAE,EAAC,MAAM;IACTd,SAAS,EAAC;EAAkC,GAE1CW,KAAK,CAACI,MACO,CAAC,EACjB,IAAApB,MAAA,CAAAC,aAAA;IAAMI,SAAS,EAAC;EAAkC,GAC/CW,KAAK,CAACb,MAAM,CAAE;IAAEpC;EAAK,CAAE,CACpB,CACF,CACJ,CACE,CACE,CACD,CACM,CACX,CAAC,EACJH,OAAO,EAAEyD,MAAM,GAAG,CAAC,IACpB,IAAArB,MAAA,CAAAC,aAAA,EAACxD,WAAA,CAAAgE,oBAAM;IACNG,OAAO,EAAG,CAAG;IACbC,OAAO,EAAC,UAAU;IAClBR,SAAS,EAAC,mCAAmC;IAC7CiB,KAAK,EAAG;MACPC,UAAU,EAAE,GAAG;MACfC,KAAK,EAAE;IACR;EAAG,GAEDpC,aAAa,IAAI,aAAa,IAAIA,aAAa,IAChD,IAAAY,MAAA,CAAAC,aAAA;IAAKG,IAAI,EAAC;EAAU,GACnB,IAAAJ,MAAA,CAAAC,aAAA,EAAC7C,aAAa;IACbe,KAAK,EAAGA,KAAO;IACfgC,MAAM,EACL,IAAAH,MAAA,CAAAC,aAAA,EAACxD,WAAA,CAAAgF,MAAM;MACNC,KAAK,EAAGtC,aAAa,CAACsC,KAAO;MAC7B7B,IAAI,EAAGT,aAAa,CAACS,IAAM;MAC3B8B,aAAa,EACZvC,aAAa,CAACuC,aACd;MACDC,IAAI,EAAC,SAAS;MACdjB,OAAO,EAAGA,CAAA,KACTZ,cAAc,CAAE,IAAK;IACrB,CACD;EACD,GAECD,WAAW,IACZ,IAAAE,MAAA,CAAAC,aAAA,EAACnD,YAAA,CAAA+E,WAAW;IACXpC,MAAM,EAAGL,aAAe;IACxB0C,KAAK,EAAG,CAAE/D,IAAI,CAAI;IAClBgE,UAAU,EAAGA,CAAA,KACZhC,cAAc,CAAE,KAAM;EACtB,CACD,CAEY,CACX,CACL,EACCX,aAAa,IACd,EAAI,aAAa,IAAIA,aAAa,CAAE,IACnC,IAAAY,MAAA,CAAAC,aAAA;IAAKG,IAAI,EAAC,UAAU;IAACa,GAAG,EAAG7B,aAAa,CAACvB;EAAI,GAC5C,IAAAmC,MAAA,CAAAC,aAAA,EAAC7C,aAAa;IACbe,KAAK,EAAGA,KAAO;IACfgC,MAAM,EACL,IAAAH,MAAA,CAAAC,aAAA,EAACxD,WAAA,CAAAgF,MAAM;MACNC,KAAK,EAAGtC,aAAa,CAACsC,KAAO;MAC7B7B,IAAI,EAAGT,aAAa,CAACS,IAAM;MAC3B8B,aAAa,EACZvC,aAAa,CAACuC,aACd;MACDC,IAAI,EAAC,SAAS;MACdjB,OAAO,EAAGA,CAAA,KACTvB,aAAa,CAAC4C,QAAQ,CAAE,CACvBjE,IAAI,CACH;IACF,CACD;EACD,CACD,CACG,CACL,EACF,IAAAiC,MAAA,CAAAC,aAAA;IAAKG,IAAI,EAAC;EAAU,GACnB,IAAAJ,MAAA,CAAAC,aAAA,EAACzC,YAAY;IACZyE,OAAO,EACN,IAAAjC,MAAA,CAAAC,aAAA,EAAC7C,aAAa;MACbe,KAAK,EAAGA,KAAO;MACfgC,MAAM,EACL,IAAAH,MAAA,CAAAC,aAAA,EAACxD,WAAA,CAAAgF,MAAM;QACNG,IAAI,EAAC,SAAS;QACd/B,IAAI,EAAGqC,mBAAc;QACrBR,KAAK,EAAG,IAAAS,QAAE,EAAE,SAAU,CAAG;QACzBC,QAAQ,EAAG,CAAExE,OAAO,CAACyD,MAAQ;QAC7BgB,SAAS,EAAKC,KAGb,IAAM;UACN,IACCA,KAAK,CAACrB,GAAG,KACT,WAAW,EACV;YACD;YACAqB,KAAK,CAACC,cAAc,CAAC,CAAC;YACtBpE,KAAK,CAACqE,IAAI,CACTrE,KAAK,CAACsE,IAAI,CAAC,CACZ,CAAC;UACF;UACA,IACCH,KAAK,CAACrB,GAAG,KAAK,SAAS,EACtB;YACD;YACAqB,KAAK,CAACC,cAAc,CAAC,CAAC;YACtBpE,KAAK,CAACqE,IAAI,CACTrE,KAAK,CAACuE,EAAE,CAAC,CACV,CAAC;UACF;QACD;MAAG,CACH;IACD,CACD,CACD;IACDC,SAAS,EAAC;EAAY,GAEtB,IAAA3C,MAAA,CAAAC,aAAA,EAACnD,YAAA,CAAA8F,wBAAwB;IACxBhF,OAAO,EAAGyB,eAAiB;IAC3BtB,IAAI,EAAGA;EAAM,CACb,CACY,CACV,CACE,CAEF,CACK,CAAC;AAEjB;AAEe,SAAS8E,QAAQA,CAC/BC,KAA4B,EAC3B;EACD,MAAM;IACLlF,OAAO;IACPmF,IAAI;IACJC,MAAM;IACNC,SAAS;IACTC,SAAS;IACTC,iBAAiB;IACjBC,SAAS;IACTC;EACD,CAAC,GAAGP,KAAK;EACT,MAAMQ,MAAM,GAAG,IAAAC,sBAAa,EAAEV,QAAQ,EAAE,WAAY,CAAC;EACrD,MAAMW,YAAY,GAAGT,IAAI,EAAEU,QAAQ,CAAI1F,IAAI,IAC1CqF,SAAS,CAACM,QAAQ,CAAE3F,IAAI,CAACF,EAAG,CAC7B,CAAC;EAED,MAAMG,UAAU,GAAGgF,MAAM,CAACW,IAAI,CAC3B3C,KAAK,IAAMA,KAAK,CAACnD,EAAE,KAAKwF,IAAI,CAACO,MAAM,CAAC5F,UACvC,CAAC;EACD,MAAME,YAAY,GAAG8E,MAAM,CAACW,IAAI,CAC7B3C,KAAK,IAAMA,KAAK,CAACnD,EAAE,KAAKwF,IAAI,CAACO,MAAM,CAAC1F,YACvC,CAAC;EACD,MAAME,aAAa,GAAG4E,MAAM,CAACxD,MAAM,CAChCwB,KAAK,IACN,CAAEqC,IAAI,CAACQ,YAAY,CAACH,QAAQ,CAAE1C,KAAK,CAACnD,EAAG,CAAC,IACxC,CAAE,CAAEwF,IAAI,CAACO,MAAM,CAAC1F,YAAY,EAAEmF,IAAI,CAACO,MAAM,CAAC5F,UAAU,CAAE,CAAC0F,QAAQ,CAC9D1C,KAAK,CAACnD,EACP,CACF,CAAC;EAED,MAAMI,QAAQ,GAAG,IAAA6F,oBAAW,EACzB/F,IAAU,IAAMoF,iBAAiB,CAAE,CAAEpF,IAAI,CAAG,CAAC,EAC/C,CAAEoF,iBAAiB,CACpB,CAAC;EAED,MAAMY,YAAY,GAAG,IAAAD,oBAAW,EAC7B/F,IAAW,IACZA,IAAI,GAAI,GAAGuF,MAAQ,IAAIL,SAAS,CAAElF,IAAK,CAAG,EAAC,GAAGiG,SAAS,EACxD,CAAEV,MAAM,EAAEL,SAAS,CACpB,CAAC;EAED,MAAM9E,KAAK,GAAGnB,iBAAiB,CAAE;IAChCiH,eAAe,EAAEF,YAAY,CAAEP,YAAa;EAC7C,CAAE,CAAC;;EAEH;EACA,MAAMU,gBAAgB,GAAG/F,KAAK,CAACQ,QAAQ,CACpCwF,KAAsC,IACvCA,KAAK,CAACrC,KAAK,CAACsC,IAAI,CACbrG,IAAiB,IAAMA,IAAI,CAACF,EAAE,KAAKsG,KAAK,CAACE,QAC5C,CACF,CAAC;EACD,IAAAvF,kBAAS,EAAE,MAAM;IAChB,IAAK,CAAEoF,gBAAgB,EAAG;MACzB;MACA,IAAK/F,KAAK,CAACsE,IAAI,CAAC,CAAC,EAAG;QACnBtE,KAAK,CAACqE,IAAI,CAAErE,KAAK,CAACsE,IAAI,CAAC,CAAE,CAAC;MAC3B,CAAC,MAAM,IAAKtE,KAAK,CAACuE,EAAE,CAAC,CAAC,EAAG;QACxBvE,KAAK,CAACqE,IAAI,CAAErE,KAAK,CAACuE,EAAE,CAAC,CAAE,CAAC;MACzB;IACD;EACD,CAAC,EAAE,CAAEwB,gBAAgB,CAAG,CAAC;EAEzB,MAAMI,OAAO,GAAGvB,IAAI,EAAE1B,MAAM;EAC5B,IAAK,CAAEiD,OAAO,EAAG;IAChB,OACC,IAAAtE,MAAA,CAAAC,aAAA;MACCI,SAAS,EAAG,IAAAC,aAAI,EAAE;QACjB,mBAAmB,EAAE4C,SAAS;QAC9B,sBAAsB,EAAE,CAAEoB,OAAO,IAAI,CAAEpB;MACxC,CAAE;IAAG,GAEH,CAAEoB,OAAO,IACV,IAAAtE,MAAA,CAAAC,aAAA,aAAKiD,SAAS,GAAG,IAAAlD,MAAA,CAAAC,aAAA,EAACxD,WAAA,CAAA8H,OAAO,MAAE,CAAC,GAAG,IAAApC,QAAE,EAAE,YAAa,CAAM,CAEnD,CAAC;EAER;EAEA,OACC,IAAAnC,MAAA,CAAAC,aAAA,EAAC/C,SAAS;IACTW,EAAE,EAAGyF,MAAQ;IACbnD,MAAM,EAAG,IAAAH,MAAA,CAAAC,aAAA,YAAK,CAAG;IACjBI,SAAS,EAAC,qBAAqB;IAC/BD,IAAI,EAAC,MAAM;IACXjC,KAAK,EAAGA;EAAO,GAEb4E,IAAI,CAAChC,GAAG,CAAIhD,IAAI,IAAM;IACvB,MAAMF,EAAE,GAAGkG,YAAY,CAAEhG,IAAK,CAAC;IAC/B,OACC,IAAAiC,MAAA,CAAAC,aAAA,EAACtC,QAAQ;MACRsD,GAAG,EAAGpD,EAAI;MACVA,EAAE,EAAGA,EAAI;MACTD,OAAO,EAAGA,OAAS;MACnBG,IAAI,EAAGA,IAAM;MACbD,UAAU,EAAGC,IAAI,KAAKyF,YAAc;MACpCvF,QAAQ,EAAGA,QAAU;MACrBD,UAAU,EAAGA,UAAY;MACzBE,YAAY,EAAGA,YAAc;MAC7BC,KAAK,EAAGA,KAAO;MACfC,aAAa,EAAGA;IAAe,CAC/B,CAAC;EAEJ,CAAE,CACQ,CAAC;AAEd","ignoreList":[]}
|
package/build/view-table.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _react = require("react");
|
|
9
|
-
var
|
|
9
|
+
var _clsx = _interopRequireDefault(require("clsx"));
|
|
10
10
|
var _i18n = require("@wordpress/i18n");
|
|
11
11
|
var _icons = require("@wordpress/icons");
|
|
12
12
|
var _components = require("@wordpress/components");
|
|
@@ -187,7 +187,7 @@ function TableRow({
|
|
|
187
187
|
// behaviours.
|
|
188
188
|
const isTouchDevice = (0, _element.useRef)(false);
|
|
189
189
|
return (0, _react.createElement)("tr", {
|
|
190
|
-
className: (0,
|
|
190
|
+
className: (0, _clsx.default)('dataviews-view-table__row', {
|
|
191
191
|
'is-selected': hasPossibleBulkAction && isSelected,
|
|
192
192
|
'is-hovered': isHovered,
|
|
193
193
|
'has-bulk-actions': hasPossibleBulkAction
|
|
@@ -236,7 +236,7 @@ function TableRow({
|
|
|
236
236
|
maxWidth: field.maxWidth || undefined
|
|
237
237
|
}
|
|
238
238
|
}, (0, _react.createElement)("div", {
|
|
239
|
-
className: (0,
|
|
239
|
+
className: (0, _clsx.default)('dataviews-view-table__cell-content-wrapper', {
|
|
240
240
|
'dataviews-view-table__primary-field': primaryField?.id === field.id
|
|
241
241
|
})
|
|
242
242
|
}, field.render({
|
|
@@ -259,16 +259,16 @@ function TableRow({
|
|
|
259
259
|
/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */);
|
|
260
260
|
}
|
|
261
261
|
function ViewTable({
|
|
262
|
-
view,
|
|
263
|
-
onChangeView,
|
|
264
|
-
fields,
|
|
265
262
|
actions,
|
|
266
263
|
data,
|
|
264
|
+
fields,
|
|
267
265
|
getItemId,
|
|
268
266
|
isLoading = false,
|
|
269
|
-
|
|
267
|
+
onChangeView,
|
|
270
268
|
onSelectionChange,
|
|
271
|
-
|
|
269
|
+
selection,
|
|
270
|
+
setOpenedFilter,
|
|
271
|
+
view
|
|
272
272
|
}) {
|
|
273
273
|
const headerMenuRefs = (0, _element.useRef)(new Map());
|
|
274
274
|
const headerMenuToFocusRef = (0, _element.useRef)();
|
|
@@ -364,7 +364,7 @@ function ViewTable({
|
|
|
364
364
|
onSelectionChange: onSelectionChange,
|
|
365
365
|
data: data
|
|
366
366
|
})))), (0, _react.createElement)("div", {
|
|
367
|
-
className: (0,
|
|
367
|
+
className: (0, _clsx.default)({
|
|
368
368
|
'dataviews-loading': isLoading,
|
|
369
369
|
'dataviews-no-results': !hasData && !isLoading
|
|
370
370
|
}),
|
package/build/view-table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_icons","_components","_element","_singleSelectionCheckbox","_lockUnlock","_itemActions","_utils","_constants","_bulkActions","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuRadioItemV2","DropdownMenuRadioItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","DropdownMenuSeparatorV2","DropdownMenuSeparator","unlock","componentsPrivateApis","WithDropDownMenuSeparators","children","Children","toArray","filter","Boolean","map","child","i","_react","createElement","Fragment","key","sortArrows","asc","desc","HeaderMenu","forwardRef","field","view","onChangeView","onHide","setOpenedFilter","ref","isHidable","enableHiding","isSortable","enableSorting","isSorted","sort","id","operators","sanitizeOperators","canAddFilter","filters","some","_filter","elements","length","filterBy","isPrimary","header","align","trigger","Button","size","className","variant","direction","style","minWidth","Object","entries","SORTING_DIRECTIONS","info","isChecked","value","name","checked","onChange","label","prefix","Icon","icon","funnel","onClick","page","undefined","operator","__","unseen","hiddenFields","concat","BulkSelectionCheckbox","selection","onSelectionChange","data","actions","selectableItems","useMemo","item","action","supportsBulk","isEligible","areAllSelected","CheckboxControl","__nextHasNoMarginBottom","indeterminate","TableRow","hasBulkActions","visibleFields","primaryField","getItemId","hasPossibleBulkAction","useHasAPossibleBulkAction","isSelected","includes","isHovered","setIsHovered","useState","handleMouseEnter","handleMouseLeave","isTouchDevice","useRef","classnames","onMouseEnter","onMouseLeave","onTouchStart","current","document","getSelection","type","_item","itemId","width","default","disabled","maxWidth","render","e","stopPropagation","ViewTable","fields","isLoading","headerMenuRefs","Map","headerMenuToFocusRef","nextHeaderMenuToFocus","setNextHeaderMenuToFocus","useSomeItemHasAPossibleBulkAction","useEffect","focus","tableNoticeId","useId","hidden","get","fallback","node","layout","mediaField","hasData","sortValues","find","scope","index","set","delete","Spinner","_default","exports"],"sources":["@wordpress/dataviews/src/view-table.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { unseen, funnel } from '@wordpress/icons';\nimport {\n\tButton,\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n\tCheckboxControl,\n\tSpinner,\n} from '@wordpress/components';\nimport {\n\tforwardRef,\n\tuseEffect,\n\tuseId,\n\tuseRef,\n\tuseState,\n\tuseMemo,\n\tChildren,\n\tFragment,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SingleSelectionCheckbox from './single-selection-checkbox';\nimport { unlock } from './lock-unlock';\nimport ItemActions from './item-actions';\nimport { sanitizeOperators } from './utils';\nimport { SORTING_DIRECTIONS } from './constants';\nimport {\n\tuseSomeItemHasAPossibleBulkAction,\n\tuseHasAPossibleBulkAction,\n} from './bulk-actions';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuRadioItemV2: DropdownMenuRadioItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n\tDropdownMenuSeparatorV2: DropdownMenuSeparator,\n} = unlock( componentsPrivateApis );\n\nfunction WithDropDownMenuSeparators( { children } ) {\n\treturn Children.toArray( children )\n\t\t.filter( Boolean )\n\t\t.map( ( child, i ) => (\n\t\t\t<Fragment key={ i }>\n\t\t\t\t{ i > 0 && <DropdownMenuSeparator /> }\n\t\t\t\t{ child }\n\t\t\t</Fragment>\n\t\t) );\n}\n\nconst sortArrows = { asc: '↑', desc: '↓' };\n\nconst HeaderMenu = forwardRef( function HeaderMenu(\n\t{ field, view, onChangeView, onHide, setOpenedFilter },\n\tref\n) {\n\tconst isHidable = field.enableHiding !== false;\n\tconst isSortable = field.enableSorting !== false;\n\tconst isSorted = view.sort?.field === field.id;\n\tconst operators = sanitizeOperators( field );\n\t// Filter can be added:\n\t// 1. If the field is not already part of a view's filters.\n\t// 2. If the field meets the type and operator requirements.\n\t// 3. If it's not primary. If it is, it should be already visible.\n\tconst canAddFilter =\n\t\t! view.filters?.some( ( _filter ) => field.id === _filter.field ) &&\n\t\t!! field.elements?.length &&\n\t\t!! operators.length &&\n\t\t! field.filterBy?.isPrimary;\n\tif ( ! isSortable && ! isHidable && ! canAddFilter ) {\n\t\treturn field.header;\n\t}\n\treturn (\n\t\t<DropdownMenu\n\t\t\talign=\"start\"\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tclassName=\"dataviews-view-table-header-button\"\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t>\n\t\t\t\t\t{ field.header }\n\t\t\t\t\t{ isSorted && (\n\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t{ isSorted && sortArrows[ view.sort.direction ] }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Button>\n\t\t\t}\n\t\t\tstyle={ { minWidth: '240px' } }\n\t\t>\n\t\t\t<WithDropDownMenuSeparators>\n\t\t\t\t{ isSortable && (\n\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t{ Object.entries( SORTING_DIRECTIONS ).map(\n\t\t\t\t\t\t\t( [ direction, info ] ) => {\n\t\t\t\t\t\t\t\tconst isChecked =\n\t\t\t\t\t\t\t\t\tisSorted &&\n\t\t\t\t\t\t\t\t\tview.sort.direction === direction;\n\n\t\t\t\t\t\t\t\tconst value = `${ field.id }-${ direction }`;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\t// All sorting radio items share the same name, so that\n\t\t\t\t\t\t\t\t\t\t// selecting a sorting option automatically deselects the\n\t\t\t\t\t\t\t\t\t\t// previously selected one, even if it is displayed in\n\t\t\t\t\t\t\t\t\t\t// another submenu. The field and direction are passed via\n\t\t\t\t\t\t\t\t\t\t// the `value` prop.\n\t\t\t\t\t\t\t\t\t\tname=\"view-table-sorting\"\n\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\tchecked={ isChecked }\n\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfield: field.id,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdirection,\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>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t{ info.label }\n\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t) }\n\t\t\t\t{ canAddFilter && (\n\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\tprefix={ <Icon icon={ funnel } /> }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetOpenedFilter( field.id );\n\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t\t...( view.filters || [] ),\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tfield: field.id,\n\t\t\t\t\t\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t\t\t\t\t\t\toperator: operators[ 0 ],\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} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t{ __( 'Add filter' ) }\n\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t) }\n\t\t\t\t{ isHidable && (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tprefix={ <Icon icon={ unseen } /> }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonHide( field );\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\thiddenFields: view.hiddenFields.concat(\n\t\t\t\t\t\t\t\t\tfield.id\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t{ __( 'Hide' ) }\n\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t) }\n\t\t\t</WithDropDownMenuSeparators>\n\t\t</DropdownMenu>\n\t);\n} );\n\nfunction BulkSelectionCheckbox( {\n\tselection,\n\tonSelectionChange,\n\tdata,\n\tactions,\n} ) {\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn actions.some(\n\t\t\t\t( action ) => action.supportsBulk && action.isEligible( item )\n\t\t\t);\n\t\t} );\n\t}, [ data, actions ] );\n\tconst areAllSelected = selection.length === selectableItems.length;\n\treturn (\n\t\t<CheckboxControl\n\t\t\tclassName=\"dataviews-view-table-selection-checkbox\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\tchecked={ areAllSelected }\n\t\t\tindeterminate={ ! areAllSelected && selection.length }\n\t\t\tonChange={ () => {\n\t\t\t\tif ( areAllSelected ) {\n\t\t\t\t\tonSelectionChange( [] );\n\t\t\t\t} else {\n\t\t\t\t\tonSelectionChange( selectableItems );\n\t\t\t\t}\n\t\t\t} }\n\t\t\taria-label={\n\t\t\t\tareAllSelected ? __( 'Deselect all' ) : __( 'Select all' )\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction TableRow( {\n\thasBulkActions,\n\titem,\n\tactions,\n\tid,\n\tvisibleFields,\n\tprimaryField,\n\tselection,\n\tgetItemId,\n\tonSelectionChange,\n\tdata,\n} ) {\n\tconst hasPossibleBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst isSelected = selection.includes( id );\n\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\n\tconst handleMouseEnter = () => {\n\t\tsetIsHovered( true );\n\t};\n\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 isTouchDevice = useRef( false );\n\n\treturn (\n\t\t<tr\n\t\t\tclassName={ classnames( '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\tisTouchDevice.current = true;\n\t\t\t} }\n\t\t\tonClick={ () => {\n\t\t\t\tif (\n\t\t\t\t\t! isTouchDevice.current &&\n\t\t\t\t\tdocument.getSelection().type !== 'Range'\n\t\t\t\t) {\n\t\t\t\t\tif ( ! isSelected ) {\n\t\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\titemId === id ||\n\t\t\t\t\t\t\t\t\tselection.includes( itemId )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\titemId !== id &&\n\t\t\t\t\t\t\t\t\tselection.includes( itemId )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\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\tid={ id }\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\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\tdata={ data }\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{ visibleFields.map( ( field ) => (\n\t\t\t\t<td\n\t\t\t\t\tkey={ field.id }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth: field.width || undefined,\n\t\t\t\t\t\tminWidth: field.minWidth || undefined,\n\t\t\t\t\t\tmaxWidth: field.maxWidth || undefined,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'dataviews-view-table__cell-content-wrapper',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'dataviews-view-table__primary-field':\n\t\t\t\t\t\t\t\t\tprimaryField?.id === field.id,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ field.render( {\n\t\t\t\t\t\t\titem,\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{ !! 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( {\n\tview,\n\tonChangeView,\n\tfields,\n\tactions,\n\tdata,\n\tgetItemId,\n\tisLoading = false,\n\tselection,\n\tonSelectionChange,\n\tsetOpenedFilter,\n} ) {\n\tconst headerMenuRefs = useRef( new Map() );\n\tconst headerMenuToFocusRef = useRef();\n\tconst [ nextHeaderMenuToFocus, setNextHeaderMenuToFocus ] = useState();\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();\n\t\treturn;\n\t}\n\n\tconst onHide = ( field ) => {\n\t\tconst hidden = headerMenuRefs.current.get( field.id );\n\t\tconst fallback = headerMenuRefs.current.get( hidden.fallback );\n\t\tsetNextHeaderMenuToFocus( fallback?.node );\n\t};\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\t! view.hiddenFields.includes( field.id ) &&\n\t\t\t! [ view.layout.mediaField ].includes( field.id )\n\t);\n\tconst hasData = !! data?.length;\n\tconst sortValues = { asc: 'ascending', desc: 'descending' };\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=\"dataviews-view-table\"\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\tdata-field-id=\"selection\"\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\tonSelectionChange={ onSelectionChange }\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/>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ visibleFields.map( ( field, index ) => (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\twidth: field.width || undefined,\n\t\t\t\t\t\t\t\t\tminWidth: field.minWidth || undefined,\n\t\t\t\t\t\t\t\t\tmaxWidth: field.maxWidth || undefined,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdata-field-id={ field.id }\n\t\t\t\t\t\t\t\taria-sort={\n\t\t\t\t\t\t\t\t\tview.sort?.field === field.id &&\n\t\t\t\t\t\t\t\t\tsortValues[ view.sort.direction ]\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<HeaderMenu\n\t\t\t\t\t\t\t\t\tref={ ( node ) => {\n\t\t\t\t\t\t\t\t\t\tif ( node ) {\n\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\tfield.id,\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\t\tnode,\n\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\tvisibleFields[\n\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? index - 1\n\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]?.id,\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} else {\n\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\tfield.id\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} }\n\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t\tonHide={ onHide }\n\t\t\t\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\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{ !! actions?.length && (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tdata-field-id=\"actions\"\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-table__actions-column\"\n\t\t\t\t\t\t\t>\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\tid={ getItemId( item ) || index }\n\t\t\t\t\t\t\t\tvisibleFields={ visibleFields }\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\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t\t\tdata={ data }\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={ classnames( {\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","_icons","_components","_element","_singleSelectionCheckbox","_lockUnlock","_itemActions","_utils","_constants","_bulkActions","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuRadioItemV2","DropdownMenuRadioItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","DropdownMenuSeparatorV2","DropdownMenuSeparator","unlock","componentsPrivateApis","WithDropDownMenuSeparators","children","Children","toArray","filter","Boolean","map","child","i","_react","createElement","Fragment","key","sortArrows","asc","desc","HeaderMenu","forwardRef","field","view","onChangeView","onHide","setOpenedFilter","ref","isHidable","enableHiding","isSortable","enableSorting","isSorted","sort","id","operators","sanitizeOperators","canAddFilter","filters","some","_filter","elements","length","filterBy","isPrimary","header","align","trigger","Button","size","className","variant","direction","style","minWidth","Object","entries","SORTING_DIRECTIONS","info","isChecked","value","name","checked","onChange","label","prefix","Icon","icon","funnel","onClick","page","undefined","operator","__","unseen","hiddenFields","concat","BulkSelectionCheckbox","selection","onSelectionChange","data","actions","selectableItems","useMemo","item","action","supportsBulk","isEligible","areAllSelected","CheckboxControl","__nextHasNoMarginBottom","indeterminate","TableRow","hasBulkActions","visibleFields","primaryField","getItemId","hasPossibleBulkAction","useHasAPossibleBulkAction","isSelected","includes","isHovered","setIsHovered","useState","handleMouseEnter","handleMouseLeave","isTouchDevice","useRef","clsx","onMouseEnter","onMouseLeave","onTouchStart","current","document","getSelection","type","_item","itemId","width","default","disabled","maxWidth","render","e","stopPropagation","ViewTable","fields","isLoading","headerMenuRefs","Map","headerMenuToFocusRef","nextHeaderMenuToFocus","setNextHeaderMenuToFocus","useSomeItemHasAPossibleBulkAction","useEffect","focus","tableNoticeId","useId","hidden","get","fallback","node","layout","mediaField","hasData","sortValues","find","scope","index","set","delete","Spinner","_default","exports"],"sources":["@wordpress/dataviews/src/view-table.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { unseen, funnel } from '@wordpress/icons';\nimport {\n\tButton,\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n\tCheckboxControl,\n\tSpinner,\n} from '@wordpress/components';\nimport {\n\tforwardRef,\n\tuseEffect,\n\tuseId,\n\tuseRef,\n\tuseState,\n\tuseMemo,\n\tChildren,\n\tFragment,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SingleSelectionCheckbox from './single-selection-checkbox';\nimport { unlock } from './lock-unlock';\nimport ItemActions from './item-actions';\nimport { sanitizeOperators } from './utils';\nimport { SORTING_DIRECTIONS } from './constants';\nimport {\n\tuseSomeItemHasAPossibleBulkAction,\n\tuseHasAPossibleBulkAction,\n} from './bulk-actions';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuRadioItemV2: DropdownMenuRadioItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n\tDropdownMenuSeparatorV2: DropdownMenuSeparator,\n} = unlock( componentsPrivateApis );\n\nfunction WithDropDownMenuSeparators( { children } ) {\n\treturn Children.toArray( children )\n\t\t.filter( Boolean )\n\t\t.map( ( child, i ) => (\n\t\t\t<Fragment key={ i }>\n\t\t\t\t{ i > 0 && <DropdownMenuSeparator /> }\n\t\t\t\t{ child }\n\t\t\t</Fragment>\n\t\t) );\n}\n\nconst sortArrows = { asc: '↑', desc: '↓' };\n\nconst HeaderMenu = forwardRef( function HeaderMenu(\n\t{ field, view, onChangeView, onHide, setOpenedFilter },\n\tref\n) {\n\tconst isHidable = field.enableHiding !== false;\n\tconst isSortable = field.enableSorting !== false;\n\tconst isSorted = view.sort?.field === field.id;\n\tconst operators = sanitizeOperators( field );\n\t// Filter can be added:\n\t// 1. If the field is not already part of a view's filters.\n\t// 2. If the field meets the type and operator requirements.\n\t// 3. If it's not primary. If it is, it should be already visible.\n\tconst canAddFilter =\n\t\t! view.filters?.some( ( _filter ) => field.id === _filter.field ) &&\n\t\t!! field.elements?.length &&\n\t\t!! operators.length &&\n\t\t! field.filterBy?.isPrimary;\n\tif ( ! isSortable && ! isHidable && ! canAddFilter ) {\n\t\treturn field.header;\n\t}\n\treturn (\n\t\t<DropdownMenu\n\t\t\talign=\"start\"\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tclassName=\"dataviews-view-table-header-button\"\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t>\n\t\t\t\t\t{ field.header }\n\t\t\t\t\t{ isSorted && (\n\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t{ isSorted && sortArrows[ view.sort.direction ] }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Button>\n\t\t\t}\n\t\t\tstyle={ { minWidth: '240px' } }\n\t\t>\n\t\t\t<WithDropDownMenuSeparators>\n\t\t\t\t{ isSortable && (\n\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t{ Object.entries( SORTING_DIRECTIONS ).map(\n\t\t\t\t\t\t\t( [ direction, info ] ) => {\n\t\t\t\t\t\t\t\tconst isChecked =\n\t\t\t\t\t\t\t\t\tisSorted &&\n\t\t\t\t\t\t\t\t\tview.sort.direction === direction;\n\n\t\t\t\t\t\t\t\tconst value = `${ field.id }-${ direction }`;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\t// All sorting radio items share the same name, so that\n\t\t\t\t\t\t\t\t\t\t// selecting a sorting option automatically deselects the\n\t\t\t\t\t\t\t\t\t\t// previously selected one, even if it is displayed in\n\t\t\t\t\t\t\t\t\t\t// another submenu. The field and direction are passed via\n\t\t\t\t\t\t\t\t\t\t// the `value` prop.\n\t\t\t\t\t\t\t\t\t\tname=\"view-table-sorting\"\n\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\tchecked={ isChecked }\n\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfield: field.id,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdirection,\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>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t{ info.label }\n\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t) }\n\t\t\t\t{ canAddFilter && (\n\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\tprefix={ <Icon icon={ funnel } /> }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetOpenedFilter( field.id );\n\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t\t...( view.filters || [] ),\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tfield: field.id,\n\t\t\t\t\t\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t\t\t\t\t\t\toperator: operators[ 0 ],\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} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t{ __( 'Add filter' ) }\n\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t) }\n\t\t\t\t{ isHidable && (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tprefix={ <Icon icon={ unseen } /> }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonHide( field );\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\thiddenFields: view.hiddenFields.concat(\n\t\t\t\t\t\t\t\t\tfield.id\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t{ __( 'Hide' ) }\n\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t) }\n\t\t\t</WithDropDownMenuSeparators>\n\t\t</DropdownMenu>\n\t);\n} );\n\nfunction BulkSelectionCheckbox( {\n\tselection,\n\tonSelectionChange,\n\tdata,\n\tactions,\n} ) {\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn actions.some(\n\t\t\t\t( action ) => action.supportsBulk && action.isEligible( item )\n\t\t\t);\n\t\t} );\n\t}, [ data, actions ] );\n\tconst areAllSelected = selection.length === selectableItems.length;\n\treturn (\n\t\t<CheckboxControl\n\t\t\tclassName=\"dataviews-view-table-selection-checkbox\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\tchecked={ areAllSelected }\n\t\t\tindeterminate={ ! areAllSelected && selection.length }\n\t\t\tonChange={ () => {\n\t\t\t\tif ( areAllSelected ) {\n\t\t\t\t\tonSelectionChange( [] );\n\t\t\t\t} else {\n\t\t\t\t\tonSelectionChange( selectableItems );\n\t\t\t\t}\n\t\t\t} }\n\t\t\taria-label={\n\t\t\t\tareAllSelected ? __( 'Deselect all' ) : __( 'Select all' )\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction TableRow( {\n\thasBulkActions,\n\titem,\n\tactions,\n\tid,\n\tvisibleFields,\n\tprimaryField,\n\tselection,\n\tgetItemId,\n\tonSelectionChange,\n\tdata,\n} ) {\n\tconst hasPossibleBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst isSelected = selection.includes( id );\n\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\n\tconst handleMouseEnter = () => {\n\t\tsetIsHovered( true );\n\t};\n\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 isTouchDevice = useRef( false );\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\tisTouchDevice.current = true;\n\t\t\t} }\n\t\t\tonClick={ () => {\n\t\t\t\tif (\n\t\t\t\t\t! isTouchDevice.current &&\n\t\t\t\t\tdocument.getSelection().type !== 'Range'\n\t\t\t\t) {\n\t\t\t\t\tif ( ! isSelected ) {\n\t\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\titemId === id ||\n\t\t\t\t\t\t\t\t\tselection.includes( itemId )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\titemId !== id &&\n\t\t\t\t\t\t\t\t\tselection.includes( itemId )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\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\tid={ id }\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\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\tdata={ data }\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{ visibleFields.map( ( field ) => (\n\t\t\t\t<td\n\t\t\t\t\tkey={ field.id }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth: field.width || undefined,\n\t\t\t\t\t\tminWidth: field.minWidth || undefined,\n\t\t\t\t\t\tmaxWidth: field.maxWidth || undefined,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'dataviews-view-table__cell-content-wrapper',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'dataviews-view-table__primary-field':\n\t\t\t\t\t\t\t\t\tprimaryField?.id === field.id,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ field.render( {\n\t\t\t\t\t\t\titem,\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{ !! 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( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading = false,\n\tonChangeView,\n\tonSelectionChange,\n\tselection,\n\tsetOpenedFilter,\n\tview,\n} ) {\n\tconst headerMenuRefs = useRef( new Map() );\n\tconst headerMenuToFocusRef = useRef();\n\tconst [ nextHeaderMenuToFocus, setNextHeaderMenuToFocus ] = useState();\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();\n\t\treturn;\n\t}\n\n\tconst onHide = ( field ) => {\n\t\tconst hidden = headerMenuRefs.current.get( field.id );\n\t\tconst fallback = headerMenuRefs.current.get( hidden.fallback );\n\t\tsetNextHeaderMenuToFocus( fallback?.node );\n\t};\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\t! view.hiddenFields.includes( field.id ) &&\n\t\t\t! [ view.layout.mediaField ].includes( field.id )\n\t);\n\tconst hasData = !! data?.length;\n\tconst sortValues = { asc: 'ascending', desc: 'descending' };\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=\"dataviews-view-table\"\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\tdata-field-id=\"selection\"\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\tonSelectionChange={ onSelectionChange }\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/>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ visibleFields.map( ( field, index ) => (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\twidth: field.width || undefined,\n\t\t\t\t\t\t\t\t\tminWidth: field.minWidth || undefined,\n\t\t\t\t\t\t\t\t\tmaxWidth: field.maxWidth || undefined,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdata-field-id={ field.id }\n\t\t\t\t\t\t\t\taria-sort={\n\t\t\t\t\t\t\t\t\tview.sort?.field === field.id &&\n\t\t\t\t\t\t\t\t\tsortValues[ view.sort.direction ]\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<HeaderMenu\n\t\t\t\t\t\t\t\t\tref={ ( node ) => {\n\t\t\t\t\t\t\t\t\t\tif ( node ) {\n\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\tfield.id,\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\t\tnode,\n\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\tvisibleFields[\n\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? index - 1\n\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]?.id,\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} else {\n\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\tfield.id\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} }\n\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t\tonHide={ onHide }\n\t\t\t\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\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{ !! actions?.length && (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tdata-field-id=\"actions\"\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-table__actions-column\"\n\t\t\t\t\t\t\t>\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\tid={ getItemId( item ) || index }\n\t\t\t\t\t\t\t\tvisibleFields={ visibleFields }\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\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t\t\tdata={ data }\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":[]}
|