@wordpress/dataviews 0.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 +5 -0
- package/LICENSE.md +788 -0
- package/README.md +224 -0
- package/build/add-filter.js +90 -0
- package/build/add-filter.js.map +1 -0
- package/build/constants.js +55 -0
- package/build/constants.js.map +1 -0
- package/build/dataviews.js +93 -0
- package/build/dataviews.js.map +1 -0
- package/build/filter-summary.js +137 -0
- package/build/filter-summary.js.map +1 -0
- package/build/filters.js +75 -0
- package/build/filters.js.map +1 -0
- package/build/index.js +21 -0
- package/build/index.js.map +1 -0
- package/build/item-actions.js +185 -0
- package/build/item-actions.js.map +1 -0
- package/build/lock-unlock.js +18 -0
- package/build/lock-unlock.js.map +1 -0
- package/build/pagination.js +123 -0
- package/build/pagination.js.map +1 -0
- package/build/reset-filters.js +33 -0
- package/build/reset-filters.js.map +1 -0
- package/build/search.js +46 -0
- package/build/search.js.map +1 -0
- package/build/view-actions.js +223 -0
- package/build/view-actions.js.map +1 -0
- package/build/view-grid.js +80 -0
- package/build/view-grid.js.map +1 -0
- package/build/view-list.js +83 -0
- package/build/view-list.js.map +1 -0
- package/build/view-table.js +286 -0
- package/build/view-table.js.map +1 -0
- package/build-module/add-filter.js +83 -0
- package/build-module/add-filter.js.map +1 -0
- package/build-module/constants.js +41 -0
- package/build-module/constants.js.map +1 -0
- package/build-module/dataviews.js +85 -0
- package/build-module/dataviews.js.map +1 -0
- package/build-module/filter-summary.js +130 -0
- package/build-module/filter-summary.js.map +1 -0
- package/build-module/filters.js +67 -0
- package/build-module/filters.js.map +1 -0
- package/build-module/index.js +3 -0
- package/build-module/index.js.map +1 -0
- package/build-module/item-actions.js +178 -0
- package/build-module/item-actions.js.map +1 -0
- package/build-module/lock-unlock.js +9 -0
- package/build-module/lock-unlock.js.map +1 -0
- package/build-module/pagination.js +115 -0
- package/build-module/pagination.js.map +1 -0
- package/build-module/reset-filters.js +26 -0
- package/build-module/reset-filters.js.map +1 -0
- package/build-module/search.js +39 -0
- package/build-module/search.js.map +1 -0
- package/build-module/view-actions.js +216 -0
- package/build-module/view-actions.js.map +1 -0
- package/build-module/view-grid.js +72 -0
- package/build-module/view-grid.js.map +1 -0
- package/build-module/view-list.js +75 -0
- package/build-module/view-list.js.map +1 -0
- package/build-module/view-table.js +277 -0
- package/build-module/view-table.js.map +1 -0
- package/build-style/style-rtl.css +325 -0
- package/build-style/style.css +325 -0
- package/package.json +49 -0
- package/src/add-filter.js +106 -0
- package/src/constants.js +50 -0
- package/src/dataviews.js +99 -0
- package/src/filter-summary.js +221 -0
- package/src/filters.js +84 -0
- package/src/index.js +2 -0
- package/src/item-actions.js +211 -0
- package/src/lock-unlock.js +10 -0
- package/src/pagination.js +144 -0
- package/src/reset-filters.js +26 -0
- package/src/search.js +38 -0
- package/src/stories/fixtures.js +126 -0
- package/src/stories/index.story.js +137 -0
- package/src/style.scss +245 -0
- package/src/view-actions.js +298 -0
- package/src/view-grid.js +100 -0
- package/src/view-list.js +99 -0
- package/src/view-table.js +425 -0
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import { createElement } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* WordPress dependencies
|
|
4
|
+
*/
|
|
5
|
+
import { __ } from '@wordpress/i18n';
|
|
6
|
+
import { useAsyncList } from '@wordpress/compose';
|
|
7
|
+
import { chevronDown, chevronUp, unseen, check, arrowUp, arrowDown, chevronRightSmall, funnel } from '@wordpress/icons';
|
|
8
|
+
import { Button, Icon, privateApis as componentsPrivateApis } from '@wordpress/components';
|
|
9
|
+
import { Children, Fragment } from '@wordpress/element';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Internal dependencies
|
|
13
|
+
*/
|
|
14
|
+
import { unlock } from './lock-unlock';
|
|
15
|
+
import ItemActions from './item-actions';
|
|
16
|
+
import { ENUMERATION_TYPE, OPERATOR_IN, OPERATOR_NOT_IN } from './constants';
|
|
17
|
+
const {
|
|
18
|
+
DropdownMenuV2: DropdownMenu,
|
|
19
|
+
DropdownMenuGroupV2: DropdownMenuGroup,
|
|
20
|
+
DropdownMenuItemV2: DropdownMenuItem,
|
|
21
|
+
DropdownMenuSeparatorV2: DropdownMenuSeparator,
|
|
22
|
+
DropdownSubMenuV2: DropdownSubMenu,
|
|
23
|
+
DropdownSubMenuTriggerV2: DropdownSubMenuTrigger
|
|
24
|
+
} = unlock(componentsPrivateApis);
|
|
25
|
+
const sortingItemsInfo = {
|
|
26
|
+
asc: {
|
|
27
|
+
icon: arrowUp,
|
|
28
|
+
label: __('Sort ascending')
|
|
29
|
+
},
|
|
30
|
+
desc: {
|
|
31
|
+
icon: arrowDown,
|
|
32
|
+
label: __('Sort descending')
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
const sortIcons = {
|
|
36
|
+
asc: chevronUp,
|
|
37
|
+
desc: chevronDown
|
|
38
|
+
};
|
|
39
|
+
function HeaderMenu({
|
|
40
|
+
field,
|
|
41
|
+
view,
|
|
42
|
+
onChangeView
|
|
43
|
+
}) {
|
|
44
|
+
const isSortable = field.enableSorting !== false;
|
|
45
|
+
const isHidable = field.enableHiding !== false;
|
|
46
|
+
if (!isSortable && !isHidable) {
|
|
47
|
+
return field.header;
|
|
48
|
+
}
|
|
49
|
+
const isSorted = view.sort?.field === field.id;
|
|
50
|
+
let filter, filterInView;
|
|
51
|
+
const otherFilters = [];
|
|
52
|
+
if (field.type === ENUMERATION_TYPE) {
|
|
53
|
+
let columnOperators = field.filterBy?.operators;
|
|
54
|
+
if (!columnOperators || !Array.isArray(columnOperators)) {
|
|
55
|
+
columnOperators = [OPERATOR_IN, OPERATOR_NOT_IN];
|
|
56
|
+
}
|
|
57
|
+
const operators = columnOperators.filter(operator => [OPERATOR_IN, OPERATOR_NOT_IN].includes(operator));
|
|
58
|
+
if (operators.length >= 0) {
|
|
59
|
+
filter = {
|
|
60
|
+
field: field.id,
|
|
61
|
+
operators,
|
|
62
|
+
elements: field.elements || []
|
|
63
|
+
};
|
|
64
|
+
filterInView = {
|
|
65
|
+
field: filter.field,
|
|
66
|
+
operator: filter.operators[0],
|
|
67
|
+
value: undefined
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const isFilterable = !!filter;
|
|
72
|
+
if (isFilterable) {
|
|
73
|
+
const columnFilters = view.filters;
|
|
74
|
+
columnFilters.forEach(columnFilter => {
|
|
75
|
+
if (columnFilter.field === filter.field) {
|
|
76
|
+
filterInView = {
|
|
77
|
+
...columnFilter
|
|
78
|
+
};
|
|
79
|
+
} else {
|
|
80
|
+
otherFilters.push(columnFilter);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
return createElement(DropdownMenu, {
|
|
85
|
+
align: "start",
|
|
86
|
+
trigger: createElement(Button, {
|
|
87
|
+
icon: isSorted && sortIcons[view.sort.direction],
|
|
88
|
+
iconPosition: "right",
|
|
89
|
+
text: field.header,
|
|
90
|
+
style: {
|
|
91
|
+
padding: 0
|
|
92
|
+
},
|
|
93
|
+
size: "compact"
|
|
94
|
+
})
|
|
95
|
+
}, createElement(WithSeparators, null, isSortable && createElement(DropdownMenuGroup, null, Object.entries(sortingItemsInfo).map(([direction, info]) => {
|
|
96
|
+
const isActive = isSorted && view.sort.direction === direction;
|
|
97
|
+
return createElement(DropdownMenuItem, {
|
|
98
|
+
key: direction,
|
|
99
|
+
role: "menuitemradio",
|
|
100
|
+
"aria-checked": isActive,
|
|
101
|
+
prefix: createElement(Icon, {
|
|
102
|
+
icon: info.icon
|
|
103
|
+
}),
|
|
104
|
+
suffix: isActive && createElement(Icon, {
|
|
105
|
+
icon: check
|
|
106
|
+
}),
|
|
107
|
+
onSelect: event => {
|
|
108
|
+
event.preventDefault();
|
|
109
|
+
onChangeView({
|
|
110
|
+
...view,
|
|
111
|
+
sort: {
|
|
112
|
+
field: field.id,
|
|
113
|
+
direction
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}, info.label);
|
|
118
|
+
})), isHidable && createElement(DropdownMenuItem, {
|
|
119
|
+
role: "menuitemradio",
|
|
120
|
+
"aria-checked": false,
|
|
121
|
+
prefix: createElement(Icon, {
|
|
122
|
+
icon: unseen
|
|
123
|
+
}),
|
|
124
|
+
onSelect: event => {
|
|
125
|
+
event.preventDefault();
|
|
126
|
+
onChangeView({
|
|
127
|
+
...view,
|
|
128
|
+
hiddenFields: view.hiddenFields.concat(field.id)
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}, __('Hide')), isFilterable && createElement(DropdownMenuGroup, null, createElement(DropdownSubMenu, {
|
|
132
|
+
key: filter.field,
|
|
133
|
+
trigger: createElement(DropdownSubMenuTrigger, {
|
|
134
|
+
prefix: createElement(Icon, {
|
|
135
|
+
icon: funnel
|
|
136
|
+
}),
|
|
137
|
+
suffix: createElement(Icon, {
|
|
138
|
+
icon: chevronRightSmall
|
|
139
|
+
})
|
|
140
|
+
}, __('Filter by'))
|
|
141
|
+
}, createElement(WithSeparators, null, createElement(DropdownMenuGroup, null, filter.elements.map(element => {
|
|
142
|
+
let isActive = false;
|
|
143
|
+
if (filterInView) {
|
|
144
|
+
// Intentionally use loose comparison, so it does type conversion.
|
|
145
|
+
// This covers the case where a top-level filter for the same field converts a number into a string.
|
|
146
|
+
/* eslint-disable eqeqeq */
|
|
147
|
+
isActive = element.value == filterInView.value;
|
|
148
|
+
/* eslint-enable eqeqeq */
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return createElement(DropdownMenuItem, {
|
|
152
|
+
key: element.value,
|
|
153
|
+
role: "menuitemradio",
|
|
154
|
+
"aria-checked": isActive,
|
|
155
|
+
prefix: isActive && createElement(Icon, {
|
|
156
|
+
icon: check
|
|
157
|
+
}),
|
|
158
|
+
onSelect: () => {
|
|
159
|
+
onChangeView({
|
|
160
|
+
...view,
|
|
161
|
+
filters: [...otherFilters, {
|
|
162
|
+
field: filter.field,
|
|
163
|
+
operator: filterInView?.operator,
|
|
164
|
+
value: isActive ? undefined : element.value
|
|
165
|
+
}]
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
}, element.label);
|
|
169
|
+
})), filter.operators.length > 1 && createElement(DropdownSubMenu, {
|
|
170
|
+
trigger: createElement(DropdownSubMenuTrigger, {
|
|
171
|
+
suffix: createElement(Fragment, null, filterInView.operator === OPERATOR_IN ? __('Is') : __('Is not'), createElement(Icon, {
|
|
172
|
+
icon: chevronRightSmall
|
|
173
|
+
}), ' ')
|
|
174
|
+
}, __('Conditions'))
|
|
175
|
+
}, createElement(DropdownMenuItem, {
|
|
176
|
+
key: "in-filter",
|
|
177
|
+
role: "menuitemradio",
|
|
178
|
+
"aria-checked": filterInView?.operator === OPERATOR_IN,
|
|
179
|
+
prefix: filterInView?.operator === OPERATOR_IN && createElement(Icon, {
|
|
180
|
+
icon: check
|
|
181
|
+
}),
|
|
182
|
+
onSelect: () => onChangeView({
|
|
183
|
+
...view,
|
|
184
|
+
filters: [...otherFilters, {
|
|
185
|
+
field: filter.field,
|
|
186
|
+
operator: OPERATOR_IN,
|
|
187
|
+
value: filterInView?.value
|
|
188
|
+
}]
|
|
189
|
+
})
|
|
190
|
+
}, __('Is')), createElement(DropdownMenuItem, {
|
|
191
|
+
key: "not-in-filter",
|
|
192
|
+
role: "menuitemradio",
|
|
193
|
+
"aria-checked": filterInView?.operator === OPERATOR_NOT_IN,
|
|
194
|
+
prefix: filterInView?.operator === OPERATOR_NOT_IN && createElement(Icon, {
|
|
195
|
+
icon: check
|
|
196
|
+
}),
|
|
197
|
+
onSelect: () => onChangeView({
|
|
198
|
+
...view,
|
|
199
|
+
filters: [...otherFilters, {
|
|
200
|
+
field: filter.field,
|
|
201
|
+
operator: OPERATOR_NOT_IN,
|
|
202
|
+
value: filterInView?.value
|
|
203
|
+
}]
|
|
204
|
+
})
|
|
205
|
+
}, __('Is not'))))))));
|
|
206
|
+
}
|
|
207
|
+
function WithSeparators({
|
|
208
|
+
children
|
|
209
|
+
}) {
|
|
210
|
+
return Children.toArray(children).filter(Boolean).map((child, i) => createElement(Fragment, {
|
|
211
|
+
key: i
|
|
212
|
+
}, i > 0 && createElement(DropdownMenuSeparator, null), child));
|
|
213
|
+
}
|
|
214
|
+
function ViewTable({
|
|
215
|
+
view,
|
|
216
|
+
onChangeView,
|
|
217
|
+
fields,
|
|
218
|
+
actions,
|
|
219
|
+
data,
|
|
220
|
+
getItemId,
|
|
221
|
+
isLoading = false,
|
|
222
|
+
deferredRendering
|
|
223
|
+
}) {
|
|
224
|
+
const visibleFields = fields.filter(field => !view.hiddenFields.includes(field.id) && ![view.layout.mediaField, view.layout.primaryField].includes(field.id));
|
|
225
|
+
const shownData = useAsyncList(data);
|
|
226
|
+
const usedData = deferredRendering ? shownData : data;
|
|
227
|
+
const hasData = !!usedData?.length;
|
|
228
|
+
if (isLoading) {
|
|
229
|
+
// TODO:Add spinner or progress bar..
|
|
230
|
+
return createElement("div", {
|
|
231
|
+
className: "dataviews-loading"
|
|
232
|
+
}, createElement("h3", null, __('Loading')));
|
|
233
|
+
}
|
|
234
|
+
const sortValues = {
|
|
235
|
+
asc: 'ascending',
|
|
236
|
+
desc: 'descending'
|
|
237
|
+
};
|
|
238
|
+
return createElement("div", {
|
|
239
|
+
className: "dataviews-table-view-wrapper"
|
|
240
|
+
}, hasData && createElement("table", {
|
|
241
|
+
className: "dataviews-table-view"
|
|
242
|
+
}, createElement("thead", null, createElement("tr", null, visibleFields.map(field => createElement("th", {
|
|
243
|
+
key: field.id,
|
|
244
|
+
style: {
|
|
245
|
+
width: field.width || undefined,
|
|
246
|
+
minWidth: field.minWidth || undefined,
|
|
247
|
+
maxWidth: field.maxWidth || undefined
|
|
248
|
+
},
|
|
249
|
+
"data-field-id": field.id,
|
|
250
|
+
"aria-sort": view.sort?.field === field.id && sortValues[view.sort.direction],
|
|
251
|
+
scope: "col"
|
|
252
|
+
}, createElement(HeaderMenu, {
|
|
253
|
+
field: field,
|
|
254
|
+
view: view,
|
|
255
|
+
onChangeView: onChangeView
|
|
256
|
+
}))), !!actions?.length && createElement("th", {
|
|
257
|
+
"data-field-id": "actions"
|
|
258
|
+
}, __('Actions')))), createElement("tbody", null, usedData.map((item, index) => createElement("tr", {
|
|
259
|
+
key: getItemId?.(item) || index
|
|
260
|
+
}, visibleFields.map(field => createElement("td", {
|
|
261
|
+
key: field.id,
|
|
262
|
+
style: {
|
|
263
|
+
width: field.width || undefined,
|
|
264
|
+
minWidth: field.minWidth || undefined,
|
|
265
|
+
maxWidth: field.maxWidth || undefined
|
|
266
|
+
}
|
|
267
|
+
}, field.render({
|
|
268
|
+
item
|
|
269
|
+
}))), !!actions?.length && createElement("td", null, createElement(ItemActions, {
|
|
270
|
+
item: item,
|
|
271
|
+
actions: actions
|
|
272
|
+
})))))), !hasData && createElement("div", {
|
|
273
|
+
className: "dataviews-no-results"
|
|
274
|
+
}, createElement("p", null, __('No results'))));
|
|
275
|
+
}
|
|
276
|
+
export default ViewTable;
|
|
277
|
+
//# sourceMappingURL=view-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__","useAsyncList","chevronDown","chevronUp","unseen","check","arrowUp","arrowDown","chevronRightSmall","funnel","Button","Icon","privateApis","componentsPrivateApis","Children","Fragment","unlock","ItemActions","ENUMERATION_TYPE","OPERATOR_IN","OPERATOR_NOT_IN","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuSeparatorV2","DropdownMenuSeparator","DropdownSubMenuV2","DropdownSubMenu","DropdownSubMenuTriggerV2","DropdownSubMenuTrigger","sortingItemsInfo","asc","icon","label","desc","sortIcons","HeaderMenu","field","view","onChangeView","isSortable","enableSorting","isHidable","enableHiding","header","isSorted","sort","id","filter","filterInView","otherFilters","type","columnOperators","filterBy","operators","Array","isArray","operator","includes","length","elements","value","undefined","isFilterable","columnFilters","filters","forEach","columnFilter","push","createElement","align","trigger","direction","iconPosition","text","style","padding","size","WithSeparators","Object","entries","map","info","isActive","key","role","prefix","suffix","onSelect","event","preventDefault","hiddenFields","concat","element","children","toArray","Boolean","child","i","ViewTable","fields","actions","data","getItemId","isLoading","deferredRendering","visibleFields","layout","mediaField","primaryField","shownData","usedData","hasData","className","sortValues","width","minWidth","maxWidth","scope","item","index","render"],"sources":["@wordpress/dataviews/src/view-table.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useAsyncList } from '@wordpress/compose';\nimport {\n\tchevronDown,\n\tchevronUp,\n\tunseen,\n\tcheck,\n\tarrowUp,\n\tarrowDown,\n\tchevronRightSmall,\n\tfunnel,\n} from '@wordpress/icons';\nimport {\n\tButton,\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { Children, Fragment } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport ItemActions from './item-actions';\nimport { ENUMERATION_TYPE, OPERATOR_IN, OPERATOR_NOT_IN } from './constants';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuSeparatorV2: DropdownMenuSeparator,\n\tDropdownSubMenuV2: DropdownSubMenu,\n\tDropdownSubMenuTriggerV2: DropdownSubMenuTrigger,\n} = unlock( componentsPrivateApis );\n\nconst sortingItemsInfo = {\n\tasc: { icon: arrowUp, label: __( 'Sort ascending' ) },\n\tdesc: { icon: arrowDown, label: __( 'Sort descending' ) },\n};\nconst sortIcons = { asc: chevronUp, desc: chevronDown };\n\nfunction HeaderMenu( { field, view, onChangeView } ) {\n\tconst isSortable = field.enableSorting !== false;\n\tconst isHidable = field.enableHiding !== false;\n\tif ( ! isSortable && ! isHidable ) {\n\t\treturn field.header;\n\t}\n\tconst isSorted = view.sort?.field === field.id;\n\tlet filter, filterInView;\n\tconst otherFilters = [];\n\tif ( field.type === ENUMERATION_TYPE ) {\n\t\tlet columnOperators = field.filterBy?.operators;\n\t\tif ( ! columnOperators || ! Array.isArray( columnOperators ) ) {\n\t\t\tcolumnOperators = [ OPERATOR_IN, OPERATOR_NOT_IN ];\n\t\t}\n\t\tconst operators = columnOperators.filter( ( operator ) =>\n\t\t\t[ OPERATOR_IN, OPERATOR_NOT_IN ].includes( operator )\n\t\t);\n\t\tif ( operators.length >= 0 ) {\n\t\t\tfilter = {\n\t\t\t\tfield: field.id,\n\t\t\t\toperators,\n\t\t\t\telements: field.elements || [],\n\t\t\t};\n\t\t\tfilterInView = {\n\t\t\t\tfield: filter.field,\n\t\t\t\toperator: filter.operators[ 0 ],\n\t\t\t\tvalue: undefined,\n\t\t\t};\n\t\t}\n\t}\n\tconst isFilterable = !! filter;\n\n\tif ( isFilterable ) {\n\t\tconst columnFilters = view.filters;\n\t\tcolumnFilters.forEach( ( columnFilter ) => {\n\t\t\tif ( columnFilter.field === filter.field ) {\n\t\t\t\tfilterInView = {\n\t\t\t\t\t...columnFilter,\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\totherFilters.push( columnFilter );\n\t\t\t}\n\t\t} );\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\ticon={ isSorted && sortIcons[ view.sort.direction ] }\n\t\t\t\t\ticonPosition=\"right\"\n\t\t\t\t\ttext={ field.header }\n\t\t\t\t\tstyle={ { padding: 0 } }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<WithSeparators>\n\t\t\t\t{ isSortable && (\n\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t{ Object.entries( sortingItemsInfo ).map(\n\t\t\t\t\t\t\t( [ direction, info ] ) => {\n\t\t\t\t\t\t\t\tconst isActive =\n\t\t\t\t\t\t\t\t\tisSorted &&\n\t\t\t\t\t\t\t\t\tview.sort.direction === direction;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\t\t\tkey={ direction }\n\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t\taria-checked={ isActive }\n\t\t\t\t\t\t\t\t\t\tprefix={ <Icon icon={ info.icon } /> }\n\t\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\t\tisActive && <Icon icon={ check } />\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonSelect={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\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{ info.label }\n\t\t\t\t\t\t\t\t\t</DropdownMenuItem>\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{ isHidable && (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\taria-checked={ false }\n\t\t\t\t\t\tprefix={ <Icon icon={ unseen } /> }\n\t\t\t\t\t\tonSelect={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\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{ __( 'Hide' ) }\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t) }\n\t\t\t\t{ isFilterable && (\n\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t<DropdownSubMenu\n\t\t\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t<DropdownSubMenuTrigger\n\t\t\t\t\t\t\t\t\tprefix={ <Icon icon={ funnel } /> }\n\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ chevronRightSmall } />\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{ __( 'Filter by' ) }\n\t\t\t\t\t\t\t\t</DropdownSubMenuTrigger>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<WithSeparators>\n\t\t\t\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t\t\t\t{ filter.elements.map( ( element ) => {\n\t\t\t\t\t\t\t\t\t\tlet isActive = false;\n\t\t\t\t\t\t\t\t\t\tif ( filterInView ) {\n\t\t\t\t\t\t\t\t\t\t\t// Intentionally use loose comparison, so it does type conversion.\n\t\t\t\t\t\t\t\t\t\t\t// This covers the case where a top-level filter for the same field converts a number into a string.\n\t\t\t\t\t\t\t\t\t\t\t/* eslint-disable eqeqeq */\n\t\t\t\t\t\t\t\t\t\t\tisActive =\n\t\t\t\t\t\t\t\t\t\t\t\telement.value ==\n\t\t\t\t\t\t\t\t\t\t\t\tfilterInView.value;\n\t\t\t\t\t\t\t\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ element.value }\n\t\t\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t\t\t\taria-checked={ isActive }\n\t\t\t\t\t\t\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\t\t\t\t\t\t\tisActive && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ check } />\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\tonSelect={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\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\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...otherFilters,\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\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilterInView?.operator,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: isActive\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: element.value,\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\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\t\t{ element.label }\n\t\t\t\t\t\t\t\t\t\t\t</DropdownMenuItem>\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</DropdownMenuGroup>\n\t\t\t\t\t\t\t\t{ filter.operators.length > 1 && (\n\t\t\t\t\t\t\t\t\t<DropdownSubMenu\n\t\t\t\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t\t\t\t<DropdownSubMenuTrigger\n\t\t\t\t\t\t\t\t\t\t\t\tsuffix={\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{ filterInView.operator ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tOPERATOR_IN\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Is' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Is not' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchevronRightSmall\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\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\t\t{ __( 'Conditions' ) }\n\t\t\t\t\t\t\t\t\t\t\t</DropdownSubMenuTrigger>\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<DropdownMenuItem\n\t\t\t\t\t\t\t\t\t\t\tkey=\"in-filter\"\n\t\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t\t\taria-checked={\n\t\t\t\t\t\t\t\t\t\t\t\tfilterInView?.operator ===\n\t\t\t\t\t\t\t\t\t\t\t\tOPERATOR_IN\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\t\t\t\t\t\tfilterInView?.operator ===\n\t\t\t\t\t\t\t\t\t\t\t\t\tOPERATOR_IN && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ check } />\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\tonSelect={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\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\t\tfilters: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...otherFilters,\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\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tOPERATOR_IN,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: filterInView?.value,\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\t\t{ __( 'Is' ) }\n\t\t\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\t\t\t\tkey=\"not-in-filter\"\n\t\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t\t\taria-checked={\n\t\t\t\t\t\t\t\t\t\t\t\tfilterInView?.operator ===\n\t\t\t\t\t\t\t\t\t\t\t\tOPERATOR_NOT_IN\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\t\t\t\t\t\tfilterInView?.operator ===\n\t\t\t\t\t\t\t\t\t\t\t\t\tOPERATOR_NOT_IN && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ check } />\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\tonSelect={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\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\t\tfilters: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...otherFilters,\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\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tOPERATOR_NOT_IN,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: filterInView?.value,\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\t\t{ __( 'Is not' ) }\n\t\t\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t\t\t</DropdownSubMenu>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</WithSeparators>\n\t\t\t\t\t\t</DropdownSubMenu>\n\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t) }\n\t\t\t</WithSeparators>\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction WithSeparators( { 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\nfunction ViewTable( {\n\tview,\n\tonChangeView,\n\tfields,\n\tactions,\n\tdata,\n\tgetItemId,\n\tisLoading = false,\n\tdeferredRendering,\n} ) {\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, view.layout.primaryField ].includes(\n\t\t\t\tfield.id\n\t\t\t)\n\t);\n\tconst shownData = useAsyncList( data );\n\tconst usedData = deferredRendering ? shownData : data;\n\tconst hasData = !! usedData?.length;\n\tif ( isLoading ) {\n\t\t// TODO:Add spinner or progress bar..\n\t\treturn (\n\t\t\t<div className=\"dataviews-loading\">\n\t\t\t\t<h3>{ __( 'Loading' ) }</h3>\n\t\t\t</div>\n\t\t);\n\t}\n\tconst sortValues = { asc: 'ascending', desc: 'descending' };\n\treturn (\n\t\t<div className=\"dataviews-table-view-wrapper\">\n\t\t\t{ hasData && (\n\t\t\t\t<table className=\"dataviews-table-view\">\n\t\t\t\t\t<thead>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\twidth: field.width || undefined,\n\t\t\t\t\t\t\t\t\t\tminWidth: field.minWidth || undefined,\n\t\t\t\t\t\t\t\t\t\tmaxWidth: field.maxWidth || undefined,\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tdata-field-id={ field.id }\n\t\t\t\t\t\t\t\t\taria-sort={\n\t\t\t\t\t\t\t\t\t\tview.sort?.field === field.id &&\n\t\t\t\t\t\t\t\t\t\tsortValues[ view.sort.direction ]\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<HeaderMenu\n\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\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\t{ !! actions?.length && (\n\t\t\t\t\t\t\t\t<th data-field-id=\"actions\">\n\t\t\t\t\t\t\t\t\t{ __( 'Actions' ) }\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</tr>\n\t\t\t\t\t</thead>\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t{ usedData.map( ( item, index ) => (\n\t\t\t\t\t\t\t<tr key={ getItemId?.( item ) || index }>\n\t\t\t\t\t\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\t\twidth: field.width || undefined,\n\t\t\t\t\t\t\t\t\t\t\tminWidth:\n\t\t\t\t\t\t\t\t\t\t\t\tfield.minWidth || undefined,\n\t\t\t\t\t\t\t\t\t\t\tmaxWidth:\n\t\t\t\t\t\t\t\t\t\t\t\tfield.maxWidth || undefined,\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{ field.render( {\n\t\t\t\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t<ItemActions\n\t\t\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</tbody>\n\t\t\t\t</table>\n\t\t\t) }\n\t\t\t{ ! hasData && (\n\t\t\t\t<div className=\"dataviews-no-results\">\n\t\t\t\t\t<p>{ __( 'No results' ) }</p>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default ViewTable;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts a hex value into the rgb equivalent.
|
|
3
|
+
*
|
|
4
|
+
* @param {string} hex - the hexadecimal value to convert
|
|
5
|
+
* @return {string} comma separated rgb values
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Colors
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Breakpoints & Media Queries
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* SCSS Variables.
|
|
15
|
+
*
|
|
16
|
+
* Please use variables from this sheet to ensure consistency across the UI.
|
|
17
|
+
* Don't add to this sheet unless you're pretty sure the value will be reused in many places.
|
|
18
|
+
* For example, don't add rules to this sheet that affect block visuals. It's purely for UI.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Converts a hex value into the rgb equivalent.
|
|
22
|
+
*
|
|
23
|
+
* @param {string} hex - the hexadecimal value to convert
|
|
24
|
+
* @return {string} comma separated rgb values
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* Colors
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* Fonts & basic variables.
|
|
31
|
+
*/
|
|
32
|
+
/**
|
|
33
|
+
* Grid System.
|
|
34
|
+
* https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/
|
|
35
|
+
*/
|
|
36
|
+
/**
|
|
37
|
+
* Dimensions.
|
|
38
|
+
*/
|
|
39
|
+
/**
|
|
40
|
+
* Shadows.
|
|
41
|
+
*/
|
|
42
|
+
/**
|
|
43
|
+
* Editor widths.
|
|
44
|
+
*/
|
|
45
|
+
/**
|
|
46
|
+
* Block & Editor UI.
|
|
47
|
+
*/
|
|
48
|
+
/**
|
|
49
|
+
* Block paddings.
|
|
50
|
+
*/
|
|
51
|
+
/**
|
|
52
|
+
* React Native specific.
|
|
53
|
+
* These variables do not appear to be used anywhere else.
|
|
54
|
+
*/
|
|
55
|
+
/**
|
|
56
|
+
* Converts a hex value into the rgb equivalent.
|
|
57
|
+
*
|
|
58
|
+
* @param {string} hex - the hexadecimal value to convert
|
|
59
|
+
* @return {string} comma separated rgb values
|
|
60
|
+
*/
|
|
61
|
+
/**
|
|
62
|
+
* Long content fade mixin
|
|
63
|
+
*
|
|
64
|
+
* Creates a fading overlay to signify that the content is longer
|
|
65
|
+
* than the space allows.
|
|
66
|
+
*/
|
|
67
|
+
/**
|
|
68
|
+
* Breakpoint mixins
|
|
69
|
+
*/
|
|
70
|
+
/**
|
|
71
|
+
* Focus styles.
|
|
72
|
+
*/
|
|
73
|
+
/**
|
|
74
|
+
* Applies editor left position to the selector passed as argument
|
|
75
|
+
*/
|
|
76
|
+
/**
|
|
77
|
+
* Styles that are reused verbatim in a few places
|
|
78
|
+
*/
|
|
79
|
+
/**
|
|
80
|
+
* Allows users to opt-out of animations via OS-level preferences.
|
|
81
|
+
*/
|
|
82
|
+
/**
|
|
83
|
+
* Reset default styles for JavaScript UI based pages.
|
|
84
|
+
* This is a WP-admin agnostic reset
|
|
85
|
+
*/
|
|
86
|
+
/**
|
|
87
|
+
* Reset the WP Admin page styles for Gutenberg-like pages.
|
|
88
|
+
*/
|
|
89
|
+
:root {
|
|
90
|
+
--wp-admin-theme-color: #007cba;
|
|
91
|
+
--wp-admin-theme-color--rgb: 0, 124, 186;
|
|
92
|
+
--wp-admin-theme-color-darker-10: #006ba1;
|
|
93
|
+
--wp-admin-theme-color-darker-10--rgb: 0, 107, 161;
|
|
94
|
+
--wp-admin-theme-color-darker-20: #005a87;
|
|
95
|
+
--wp-admin-theme-color-darker-20--rgb: 0, 90, 135;
|
|
96
|
+
--wp-admin-border-width-focus: 2px;
|
|
97
|
+
--wp-block-synced-color: #7a00df;
|
|
98
|
+
--wp-block-synced-color--rgb: 122, 0, 223;
|
|
99
|
+
}
|
|
100
|
+
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
|
|
101
|
+
:root {
|
|
102
|
+
--wp-admin-border-width-focus: 1.5px;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.dataviews-wrapper {
|
|
107
|
+
width: 100%;
|
|
108
|
+
height: 100%;
|
|
109
|
+
overflow: auto;
|
|
110
|
+
box-sizing: border-box;
|
|
111
|
+
scroll-padding-bottom: 64px;
|
|
112
|
+
}
|
|
113
|
+
.dataviews-wrapper > div {
|
|
114
|
+
min-height: 100%;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.dataviews__filters-view-actions {
|
|
118
|
+
padding: 12px 32px;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.dataviews-pagination {
|
|
122
|
+
margin-top: auto;
|
|
123
|
+
position: sticky;
|
|
124
|
+
bottom: 0;
|
|
125
|
+
background-color: #fff;
|
|
126
|
+
padding: 12px 32px;
|
|
127
|
+
border-top: 1px solid #f0f0f0;
|
|
128
|
+
color: #757575;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.dataviews-filters-options {
|
|
132
|
+
margin: 32px 0 16px;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.dataviews-table-view {
|
|
136
|
+
width: 100%;
|
|
137
|
+
text-indent: 0;
|
|
138
|
+
border-color: inherit;
|
|
139
|
+
border-collapse: collapse;
|
|
140
|
+
position: relative;
|
|
141
|
+
color: #757575;
|
|
142
|
+
}
|
|
143
|
+
.dataviews-table-view a {
|
|
144
|
+
text-decoration: none;
|
|
145
|
+
color: #1e1e1e;
|
|
146
|
+
font-weight: 500;
|
|
147
|
+
}
|
|
148
|
+
.dataviews-table-view th {
|
|
149
|
+
text-align: right;
|
|
150
|
+
color: var(--wp-components-color-foreground, #1e1e1e);
|
|
151
|
+
font-weight: normal;
|
|
152
|
+
font-size: 13px;
|
|
153
|
+
}
|
|
154
|
+
.dataviews-table-view td,
|
|
155
|
+
.dataviews-table-view th {
|
|
156
|
+
padding: 12px;
|
|
157
|
+
min-width: 160px;
|
|
158
|
+
}
|
|
159
|
+
.dataviews-table-view td[data-field-id=actions],
|
|
160
|
+
.dataviews-table-view th[data-field-id=actions] {
|
|
161
|
+
text-align: left;
|
|
162
|
+
}
|
|
163
|
+
.dataviews-table-view tr {
|
|
164
|
+
border-bottom: 1px solid #f0f0f0;
|
|
165
|
+
}
|
|
166
|
+
.dataviews-table-view tr td:first-child,
|
|
167
|
+
.dataviews-table-view tr th:first-child {
|
|
168
|
+
padding-right: 32px;
|
|
169
|
+
}
|
|
170
|
+
.dataviews-table-view tr td:last-child,
|
|
171
|
+
.dataviews-table-view tr th:last-child {
|
|
172
|
+
padding-left: 32px;
|
|
173
|
+
}
|
|
174
|
+
.dataviews-table-view tr:last-child {
|
|
175
|
+
border-bottom: 0;
|
|
176
|
+
}
|
|
177
|
+
.dataviews-table-view thead tr {
|
|
178
|
+
border: 0;
|
|
179
|
+
}
|
|
180
|
+
.dataviews-table-view thead th {
|
|
181
|
+
position: sticky;
|
|
182
|
+
top: -1px;
|
|
183
|
+
background-color: #fafafa;
|
|
184
|
+
box-shadow: inset 0 -1px 0 #f0f0f0;
|
|
185
|
+
border-top: 1px solid #f0f0f0;
|
|
186
|
+
padding-top: 4px;
|
|
187
|
+
padding-bottom: 4px;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.dataviews-grid-view {
|
|
191
|
+
margin-bottom: 24px;
|
|
192
|
+
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
|
|
193
|
+
padding: 0 32px;
|
|
194
|
+
}
|
|
195
|
+
@media (min-width: 1080px) {
|
|
196
|
+
.dataviews-grid-view {
|
|
197
|
+
grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
@media (min-width: 1440px) {
|
|
201
|
+
.dataviews-grid-view {
|
|
202
|
+
grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
.dataviews-grid-view .dataviews-view-grid__card h3 {
|
|
206
|
+
white-space: nowrap;
|
|
207
|
+
overflow: hidden;
|
|
208
|
+
text-overflow: ellipsis;
|
|
209
|
+
}
|
|
210
|
+
.dataviews-grid-view .dataviews-view-grid__media {
|
|
211
|
+
width: 100%;
|
|
212
|
+
min-height: 200px;
|
|
213
|
+
aspect-ratio: 1/1;
|
|
214
|
+
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
|
|
215
|
+
border-radius: 4px;
|
|
216
|
+
overflow: hidden;
|
|
217
|
+
}
|
|
218
|
+
.dataviews-grid-view .dataviews-view-grid__media > * {
|
|
219
|
+
-o-object-fit: cover;
|
|
220
|
+
object-fit: cover;
|
|
221
|
+
width: 100%;
|
|
222
|
+
height: 100%;
|
|
223
|
+
}
|
|
224
|
+
.dataviews-grid-view .dataviews-view-grid__primary-field {
|
|
225
|
+
min-height: 24px;
|
|
226
|
+
}
|
|
227
|
+
.dataviews-grid-view .dataviews-view-grid__primary-field a {
|
|
228
|
+
color: #1e1e1e;
|
|
229
|
+
text-decoration: none;
|
|
230
|
+
font-weight: 500;
|
|
231
|
+
}
|
|
232
|
+
.dataviews-grid-view .dataviews-view-grid__fields {
|
|
233
|
+
position: relative;
|
|
234
|
+
font-size: 12px;
|
|
235
|
+
line-height: 16px;
|
|
236
|
+
}
|
|
237
|
+
.dataviews-grid-view .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-header {
|
|
238
|
+
color: #757575;
|
|
239
|
+
}
|
|
240
|
+
.dataviews-grid-view .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-value {
|
|
241
|
+
color: #1e1e1e;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
.dataviews-list-view {
|
|
245
|
+
margin: 0;
|
|
246
|
+
}
|
|
247
|
+
.dataviews-list-view li {
|
|
248
|
+
border-bottom: 1px solid #f0f0f0;
|
|
249
|
+
margin: 0;
|
|
250
|
+
}
|
|
251
|
+
.dataviews-list-view li:first-child {
|
|
252
|
+
border-top: 1px solid #f0f0f0;
|
|
253
|
+
}
|
|
254
|
+
.dataviews-list-view li:last-child {
|
|
255
|
+
border-bottom: 0;
|
|
256
|
+
}
|
|
257
|
+
.dataviews-list-view .dataviews-list-view__item {
|
|
258
|
+
padding: 12px 32px;
|
|
259
|
+
cursor: default;
|
|
260
|
+
}
|
|
261
|
+
.dataviews-list-view .dataviews-list-view__item:focus, .dataviews-list-view .dataviews-list-view__item:hover {
|
|
262
|
+
background-color: #f8f8f8;
|
|
263
|
+
}
|
|
264
|
+
.dataviews-list-view .dataviews-list-view__item:focus {
|
|
265
|
+
box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
|
|
266
|
+
}
|
|
267
|
+
.dataviews-list-view .dataviews-list-view__item h3 {
|
|
268
|
+
overflow: hidden;
|
|
269
|
+
text-overflow: ellipsis;
|
|
270
|
+
white-space: nowrap;
|
|
271
|
+
}
|
|
272
|
+
.dataviews-list-view .dataviews-list-view__item-selected,
|
|
273
|
+
.dataviews-list-view .dataviews-list-view__item-selected:hover {
|
|
274
|
+
background-color: #f0f0f0;
|
|
275
|
+
}
|
|
276
|
+
.dataviews-list-view .dataviews-list-view__item-selected:focus,
|
|
277
|
+
.dataviews-list-view .dataviews-list-view__item-selected:hover:focus {
|
|
278
|
+
box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
|
|
279
|
+
}
|
|
280
|
+
.dataviews-list-view .dataviews-list-view__media-wrapper {
|
|
281
|
+
min-width: 32px;
|
|
282
|
+
height: 32px;
|
|
283
|
+
border-radius: 4px;
|
|
284
|
+
overflow: hidden;
|
|
285
|
+
position: relative;
|
|
286
|
+
}
|
|
287
|
+
.dataviews-list-view .dataviews-list-view__media-wrapper::after {
|
|
288
|
+
content: "";
|
|
289
|
+
position: absolute;
|
|
290
|
+
top: 0;
|
|
291
|
+
right: 0;
|
|
292
|
+
width: 100%;
|
|
293
|
+
height: 100%;
|
|
294
|
+
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
|
|
295
|
+
border-radius: 4px;
|
|
296
|
+
}
|
|
297
|
+
.dataviews-list-view .edit-site-page-pages__featured-image,
|
|
298
|
+
.dataviews-list-view .dataviews-list-view__media-placeholder {
|
|
299
|
+
min-width: 32px;
|
|
300
|
+
height: 32px;
|
|
301
|
+
}
|
|
302
|
+
.dataviews-list-view .dataviews-list-view__media-placeholder {
|
|
303
|
+
background-color: #e0e0e0;
|
|
304
|
+
}
|
|
305
|
+
.dataviews-list-view .dataviews-list-view__fields {
|
|
306
|
+
color: #757575;
|
|
307
|
+
overflow: hidden;
|
|
308
|
+
text-overflow: ellipsis;
|
|
309
|
+
white-space: nowrap;
|
|
310
|
+
}
|
|
311
|
+
.dataviews-list-view .dataviews-list-view__fields .dataviews-list-view__field {
|
|
312
|
+
margin-left: 12px;
|
|
313
|
+
}
|
|
314
|
+
.dataviews-list-view .dataviews-list-view__fields .dataviews-list-view__field:last-child {
|
|
315
|
+
margin-left: 0;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
.dataviews-action-modal {
|
|
319
|
+
z-index: 1000001;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
.dataviews-no-results,
|
|
323
|
+
.dataviews-loading {
|
|
324
|
+
padding: 0 32px;
|
|
325
|
+
}
|