@wordpress/dataviews 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/README.md +49 -18
- package/build/constants.js +28 -10
- package/build/constants.js.map +1 -1
- package/build/dataviews.js +3 -7
- package/build/dataviews.js.map +1 -1
- package/build/filter-and-sort-data-view.js +147 -0
- package/build/filter-and-sort-data-view.js.map +1 -0
- package/build/filter-summary.js +33 -12
- package/build/filter-summary.js.map +1 -1
- package/build/filters.js +11 -16
- package/build/filters.js.map +1 -1
- package/build/index.js +3 -9
- package/build/index.js.map +1 -1
- package/build/item-actions.js +20 -39
- package/build/item-actions.js.map +1 -1
- package/build/normalize-fields.js +25 -0
- package/build/normalize-fields.js.map +1 -0
- package/build/pagination.js +2 -2
- package/build/pagination.js.map +1 -1
- package/build/search-widget.js +34 -10
- package/build/search-widget.js.map +1 -1
- package/build/utils.js +25 -67
- package/build/utils.js.map +1 -1
- package/build/view-grid.js +25 -12
- package/build/view-grid.js.map +1 -1
- package/build/view-list.js +122 -58
- package/build/view-list.js.map +1 -1
- package/build/view-table.js +53 -8
- package/build/view-table.js.map +1 -1
- package/build-module/constants.js +27 -9
- package/build-module/constants.js.map +1 -1
- package/build-module/dataviews.js +3 -7
- package/build-module/dataviews.js.map +1 -1
- package/build-module/filter-and-sort-data-view.js +139 -0
- package/build-module/filter-and-sort-data-view.js.map +1 -0
- package/build-module/filter-summary.js +34 -13
- package/build-module/filter-summary.js.map +1 -1
- package/build-module/filters.js +12 -17
- package/build-module/filters.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/item-actions.js +20 -39
- package/build-module/item-actions.js.map +1 -1
- package/build-module/normalize-fields.js +19 -0
- package/build-module/normalize-fields.js.map +1 -0
- package/build-module/pagination.js +2 -2
- package/build-module/pagination.js.map +1 -1
- package/build-module/search-widget.js +35 -11
- package/build-module/search-widget.js.map +1 -1
- package/build-module/utils.js +25 -66
- package/build-module/utils.js.map +1 -1
- package/build-module/view-grid.js +26 -13
- package/build-module/view-grid.js.map +1 -1
- package/build-module/view-list.js +124 -60
- package/build-module/view-list.js.map +1 -1
- package/build-module/view-table.js +55 -10
- package/build-module/view-table.js.map +1 -1
- package/build-style/style-rtl.css +41 -11
- package/build-style/style.css +41 -11
- package/package.json +11 -11
- package/src/constants.js +35 -9
- package/src/dataviews.js +3 -7
- package/src/filter-and-sort-data-view.js +154 -0
- package/src/filter-summary.js +76 -23
- package/src/filters.js +20 -26
- package/src/index.js +1 -1
- package/src/item-actions.js +19 -55
- package/src/normalize-fields.js +17 -0
- package/src/pagination.js +2 -2
- package/src/search-widget.js +63 -21
- package/src/stories/fixtures.js +87 -2
- package/src/stories/index.story.js +5 -74
- package/src/style.scss +53 -14
- package/src/test/filter-and-sort-data-view.js +276 -0
- package/src/utils.js +38 -56
- package/src/view-grid.js +36 -11
- package/src/view-list.js +159 -69
- package/src/view-table.js +71 -9
|
@@ -11,7 +11,7 @@ import { __ } from '@wordpress/i18n';
|
|
|
11
11
|
import { useAsyncList } from '@wordpress/compose';
|
|
12
12
|
import { unseen, funnel } from '@wordpress/icons';
|
|
13
13
|
import { Button, Icon, privateApis as componentsPrivateApis, CheckboxControl, Spinner } from '@wordpress/components';
|
|
14
|
-
import { forwardRef, useEffect, useId, useRef, useState, Children, Fragment
|
|
14
|
+
import { forwardRef, useEffect, useId, useRef, useState, useMemo, Children, Fragment } from '@wordpress/element';
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Internal dependencies
|
|
@@ -20,7 +20,7 @@ import SingleSelectionCheckbox from './single-selection-checkbox';
|
|
|
20
20
|
import { unlock } from './lock-unlock';
|
|
21
21
|
import ItemActions from './item-actions';
|
|
22
22
|
import { sanitizeOperators } from './utils';
|
|
23
|
-
import {
|
|
23
|
+
import { SORTING_DIRECTIONS } from './constants';
|
|
24
24
|
import { useSomeItemHasAPossibleBulkAction, useHasAPossibleBulkAction } from './bulk-actions';
|
|
25
25
|
const {
|
|
26
26
|
DropdownMenuV2: DropdownMenu,
|
|
@@ -30,7 +30,7 @@ const {
|
|
|
30
30
|
DropdownMenuItemLabelV2: DropdownMenuItemLabel,
|
|
31
31
|
DropdownMenuSeparatorV2: DropdownMenuSeparator
|
|
32
32
|
} = unlock(componentsPrivateApis);
|
|
33
|
-
function
|
|
33
|
+
function WithDropDownMenuSeparators({
|
|
34
34
|
children
|
|
35
35
|
}) {
|
|
36
36
|
return Children.toArray(children).filter(Boolean).map((child, i) => createElement(Fragment, {
|
|
@@ -56,7 +56,7 @@ const HeaderMenu = forwardRef(function HeaderMenu({
|
|
|
56
56
|
// 1. If the field is not already part of a view's filters.
|
|
57
57
|
// 2. If the field meets the type and operator requirements.
|
|
58
58
|
// 3. If it's not primary. If it is, it should be already visible.
|
|
59
|
-
const canAddFilter = !view.filters?.some(_filter => field.id === _filter.field) && field.
|
|
59
|
+
const canAddFilter = !view.filters?.some(_filter => field.id === _filter.field) && !!field.elements?.length && !!operators.length && !field.filterBy?.isPrimary;
|
|
60
60
|
if (!isSortable && !isHidable && !canAddFilter) {
|
|
61
61
|
return field.header;
|
|
62
62
|
}
|
|
@@ -73,7 +73,7 @@ const HeaderMenu = forwardRef(function HeaderMenu({
|
|
|
73
73
|
style: {
|
|
74
74
|
minWidth: '240px'
|
|
75
75
|
}
|
|
76
|
-
}, createElement(
|
|
76
|
+
}, createElement(WithDropDownMenuSeparators, null, isSortable && createElement(DropdownMenuGroup, null, Object.entries(SORTING_DIRECTIONS).map(([direction, info]) => {
|
|
77
77
|
const isChecked = isSorted && view.sort.direction === direction;
|
|
78
78
|
const value = `${field.id}-${direction}`;
|
|
79
79
|
return createElement(DropdownMenuRadioItem, {
|
|
@@ -166,10 +166,45 @@ function TableRow({
|
|
|
166
166
|
data
|
|
167
167
|
}) {
|
|
168
168
|
const hasPossibleBulkAction = useHasAPossibleBulkAction(actions, item);
|
|
169
|
+
const isSelected = selection.includes(id);
|
|
170
|
+
const [isHovered, setIsHovered] = useState(false);
|
|
171
|
+
const handleMouseEnter = () => {
|
|
172
|
+
setIsHovered(true);
|
|
173
|
+
};
|
|
174
|
+
const handleMouseLeave = () => {
|
|
175
|
+
setIsHovered(false);
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
// Will be set to true if `onTouchStart` fires. This happens before
|
|
179
|
+
// `onClick` and can be used to exclude touchscreen devices from certain
|
|
180
|
+
// behaviours.
|
|
181
|
+
const isTouchDevice = useRef(false);
|
|
169
182
|
return createElement("tr", {
|
|
170
183
|
className: classnames('dataviews-view-table__row', {
|
|
171
|
-
'is-selected': hasPossibleBulkAction &&
|
|
172
|
-
|
|
184
|
+
'is-selected': hasPossibleBulkAction && isSelected,
|
|
185
|
+
'is-hovered': isHovered,
|
|
186
|
+
'has-bulk-actions': hasPossibleBulkAction
|
|
187
|
+
}),
|
|
188
|
+
onMouseEnter: handleMouseEnter,
|
|
189
|
+
onMouseLeave: handleMouseLeave,
|
|
190
|
+
onTouchStart: () => {
|
|
191
|
+
isTouchDevice.current = true;
|
|
192
|
+
},
|
|
193
|
+
onClick: () => {
|
|
194
|
+
if (!isTouchDevice.current && document.getSelection().type !== 'Range') {
|
|
195
|
+
if (!isSelected) {
|
|
196
|
+
onSelectionChange(data.filter(_item => {
|
|
197
|
+
const itemId = getItemId?.(_item);
|
|
198
|
+
return itemId === id || selection.includes(itemId);
|
|
199
|
+
}));
|
|
200
|
+
} else {
|
|
201
|
+
onSelectionChange(data.filter(_item => {
|
|
202
|
+
const itemId = getItemId?.(_item);
|
|
203
|
+
return itemId !== id && selection.includes(itemId);
|
|
204
|
+
}));
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
173
208
|
}, hasBulkActions && createElement("td", {
|
|
174
209
|
className: "dataviews-view-table__checkbox-column",
|
|
175
210
|
style: {
|
|
@@ -200,12 +235,22 @@ function TableRow({
|
|
|
200
235
|
})
|
|
201
236
|
}, field.render({
|
|
202
237
|
item
|
|
203
|
-
})))), !!actions?.length &&
|
|
204
|
-
|
|
238
|
+
})))), !!actions?.length &&
|
|
239
|
+
// Disable reason: we are not making the element interactive,
|
|
240
|
+
// but preventing any click events from bubbling up to the
|
|
241
|
+
// table row. This allows us to add a click handler to the row
|
|
242
|
+
// itself (to toggle row selection) without erroneously
|
|
243
|
+
// intercepting click events from ItemActions.
|
|
244
|
+
|
|
245
|
+
/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */
|
|
246
|
+
createElement("td", {
|
|
247
|
+
className: "dataviews-view-table__actions-column",
|
|
248
|
+
onClick: e => e.stopPropagation()
|
|
205
249
|
}, createElement(ItemActions, {
|
|
206
250
|
item: item,
|
|
207
251
|
actions: actions
|
|
208
|
-
}))
|
|
252
|
+
}))
|
|
253
|
+
/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */);
|
|
209
254
|
}
|
|
210
255
|
function ViewTable({
|
|
211
256
|
view,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","__","useAsyncList","unseen","funnel","Button","Icon","privateApis","componentsPrivateApis","CheckboxControl","Spinner","forwardRef","useEffect","useId","useRef","useState","Children","Fragment","useMemo","SingleSelectionCheckbox","unlock","ItemActions","sanitizeOperators","ENUMERATION_TYPE","SORTING_DIRECTIONS","useSomeItemHasAPossibleBulkAction","useHasAPossibleBulkAction","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuRadioItemV2","DropdownMenuRadioItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","DropdownMenuSeparatorV2","DropdownMenuSeparator","WithSeparators","children","toArray","filter","Boolean","map","child","i","createElement","key","sortArrows","asc","desc","HeaderMenu","field","view","onChangeView","onHide","setOpenedFilter","ref","isHidable","enableHiding","isSortable","enableSorting","isSorted","sort","id","operators","canAddFilter","filters","some","_filter","type","length","filterBy","isPrimary","header","align","trigger","size","className","variant","direction","style","minWidth","Object","entries","info","isChecked","value","name","checked","onChange","label","prefix","icon","onClick","page","undefined","operator","hiddenFields","concat","BulkSelectionCheckbox","selection","onSelectionChange","data","actions","selectableItems","item","action","supportsBulk","isEligible","areAllSelected","__nextHasNoMarginBottom","indeterminate","TableRow","hasBulkActions","visibleFields","primaryField","getItemId","hasPossibleBulkAction","includes","width","disabled","maxWidth","render","ViewTable","fields","isLoading","deferredRendering","headerMenuRefs","Map","headerMenuToFocusRef","nextHeaderMenuToFocus","setNextHeaderMenuToFocus","current","focus","asyncData","tableNoticeId","hidden","get","fallback","node","layout","mediaField","usedData","hasData","sortValues","find","scope","index","set","delete"],"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 { useAsyncList } from '@wordpress/compose';\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\tChildren,\n\tFragment,\n\tuseMemo,\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 { ENUMERATION_TYPE, 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 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\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\tfield.type === ENUMERATION_TYPE &&\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<WithSeparators>\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</WithSeparators>\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\tlabel={ areAllSelected ? __( 'Deselect all' ) : __( 'Select all' ) }\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\treturn (\n\t\t<tr\n\t\t\tclassName={ classnames( 'dataviews-view-table__row', {\n\t\t\t\t'is-selected':\n\t\t\t\t\thasPossibleBulkAction && selection.includes( id ),\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: 20,\n\t\t\t\t\t\tminWidth: 20,\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<td className=\"dataviews-view-table__actions-column\">\n\t\t\t\t\t<ItemActions item={ item } actions={ actions } />\n\t\t\t\t</td>\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\tdeferredRendering,\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 asyncData = useAsyncList( data );\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 usedData = deferredRendering ? asyncData : data;\n\tconst hasData = !! usedData?.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: 20,\n\t\t\t\t\t\t\t\t\tminWidth: 20,\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\tusedData.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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"}
|
|
1
|
+
{"version":3,"names":["classnames","__","useAsyncList","unseen","funnel","Button","Icon","privateApis","componentsPrivateApis","CheckboxControl","Spinner","forwardRef","useEffect","useId","useRef","useState","useMemo","Children","Fragment","SingleSelectionCheckbox","unlock","ItemActions","sanitizeOperators","SORTING_DIRECTIONS","useSomeItemHasAPossibleBulkAction","useHasAPossibleBulkAction","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuRadioItemV2","DropdownMenuRadioItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","DropdownMenuSeparatorV2","DropdownMenuSeparator","WithDropDownMenuSeparators","children","toArray","filter","Boolean","map","child","i","createElement","key","sortArrows","asc","desc","HeaderMenu","field","view","onChangeView","onHide","setOpenedFilter","ref","isHidable","enableHiding","isSortable","enableSorting","isSorted","sort","id","operators","canAddFilter","filters","some","_filter","elements","length","filterBy","isPrimary","header","align","trigger","size","className","variant","direction","style","minWidth","Object","entries","info","isChecked","value","name","checked","onChange","label","prefix","icon","onClick","page","undefined","operator","hiddenFields","concat","BulkSelectionCheckbox","selection","onSelectionChange","data","actions","selectableItems","item","action","supportsBulk","isEligible","areAllSelected","__nextHasNoMarginBottom","indeterminate","TableRow","hasBulkActions","visibleFields","primaryField","getItemId","hasPossibleBulkAction","isSelected","includes","isHovered","setIsHovered","handleMouseEnter","handleMouseLeave","isTouchDevice","onMouseEnter","onMouseLeave","onTouchStart","current","document","getSelection","type","_item","itemId","width","disabled","maxWidth","render","e","stopPropagation","ViewTable","fields","isLoading","deferredRendering","headerMenuRefs","Map","headerMenuToFocusRef","nextHeaderMenuToFocus","setNextHeaderMenuToFocus","focus","asyncData","tableNoticeId","hidden","get","fallback","node","layout","mediaField","usedData","hasData","sortValues","find","scope","index","set","delete"],"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 { useAsyncList } from '@wordpress/compose';\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\tlabel={ areAllSelected ? __( 'Deselect all' ) : __( 'Select all' ) }\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: 20,\n\t\t\t\t\t\tminWidth: 20,\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\tdeferredRendering,\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 asyncData = useAsyncList( data );\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 usedData = deferredRendering ? asyncData : data;\n\tconst hasData = !! usedData?.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: 20,\n\t\t\t\t\t\t\t\t\tminWidth: 20,\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\tusedData.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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"}
|
|
@@ -105,7 +105,6 @@
|
|
|
105
105
|
}
|
|
106
106
|
|
|
107
107
|
.dataviews-wrapper {
|
|
108
|
-
width: 100%;
|
|
109
108
|
height: 100%;
|
|
110
109
|
overflow: auto;
|
|
111
110
|
box-sizing: border-box;
|
|
@@ -113,6 +112,7 @@
|
|
|
113
112
|
}
|
|
114
113
|
|
|
115
114
|
.dataviews-filters__view-actions {
|
|
115
|
+
box-sizing: border-box;
|
|
116
116
|
padding: 12px 32px 0;
|
|
117
117
|
margin-bottom: 12px;
|
|
118
118
|
flex-shrink: 0;
|
|
@@ -218,7 +218,7 @@
|
|
|
218
218
|
.dataviews-view-table tr:last-child {
|
|
219
219
|
border-bottom: 0;
|
|
220
220
|
}
|
|
221
|
-
.dataviews-view-table tr
|
|
221
|
+
.dataviews-view-table tr.is-hovered {
|
|
222
222
|
background-color: #f8f8f8;
|
|
223
223
|
}
|
|
224
224
|
.dataviews-view-table tr .components-checkbox-control__input.components-checkbox-control__input {
|
|
@@ -227,7 +227,13 @@
|
|
|
227
227
|
.dataviews-view-table tr .components-checkbox-control__input.components-checkbox-control__input:checked, .dataviews-view-table tr .components-checkbox-control__input.components-checkbox-control__input:indeterminate, .dataviews-view-table tr .components-checkbox-control__input.components-checkbox-control__input:focus {
|
|
228
228
|
opacity: 1;
|
|
229
229
|
}
|
|
230
|
-
.dataviews-view-table tr
|
|
230
|
+
.dataviews-view-table tr .dataviews-item-actions .components-button:not(.dataviews-all-actions-button) {
|
|
231
|
+
opacity: 0;
|
|
232
|
+
}
|
|
233
|
+
.dataviews-view-table tr:focus-within .components-checkbox-control__input,
|
|
234
|
+
.dataviews-view-table tr:focus-within .dataviews-item-actions .components-button:not(.dataviews-all-actions-button), .dataviews-view-table tr.is-hovered .components-checkbox-control__input,
|
|
235
|
+
.dataviews-view-table tr.is-hovered .dataviews-item-actions .components-button:not(.dataviews-all-actions-button), .dataviews-view-table tr:hover .components-checkbox-control__input,
|
|
236
|
+
.dataviews-view-table tr:hover .dataviews-item-actions .components-button:not(.dataviews-all-actions-button) {
|
|
231
237
|
opacity: 1;
|
|
232
238
|
}
|
|
233
239
|
.dataviews-view-table tr.is-selected {
|
|
@@ -266,6 +272,9 @@
|
|
|
266
272
|
.dataviews-view-table tbody .dataviews-view-table__cell-content-wrapper > * {
|
|
267
273
|
flex-grow: 1;
|
|
268
274
|
}
|
|
275
|
+
.dataviews-view-table tbody .dataviews-view-table__cell-content-wrapper.dataviews-view-table__primary-field a {
|
|
276
|
+
flex-grow: 0;
|
|
277
|
+
}
|
|
269
278
|
.dataviews-view-table .dataviews-view-table-header-button {
|
|
270
279
|
padding: 4px 8px;
|
|
271
280
|
font-size: 11px;
|
|
@@ -311,12 +320,12 @@
|
|
|
311
320
|
white-space: nowrap;
|
|
312
321
|
overflow: hidden;
|
|
313
322
|
display: block;
|
|
314
|
-
|
|
323
|
+
flex-grow: 0;
|
|
315
324
|
}
|
|
316
325
|
.dataviews-view-list__primary-field a:hover,
|
|
317
326
|
.dataviews-view-grid__primary-field a:hover,
|
|
318
327
|
.dataviews-view-table__primary-field a:hover {
|
|
319
|
-
color:
|
|
328
|
+
color: var(--wp-admin-theme-color);
|
|
320
329
|
}
|
|
321
330
|
.dataviews-view-list__primary-field a:focus,
|
|
322
331
|
.dataviews-view-grid__primary-field a:focus,
|
|
@@ -395,7 +404,22 @@
|
|
|
395
404
|
padding: 12px;
|
|
396
405
|
padding-top: 0;
|
|
397
406
|
}
|
|
398
|
-
.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field
|
|
407
|
+
.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field {
|
|
408
|
+
align-items: flex-start;
|
|
409
|
+
}
|
|
410
|
+
.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field:not(.is-column) {
|
|
411
|
+
align-items: center;
|
|
412
|
+
}
|
|
413
|
+
.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field:not(.is-column) .dataviews-view-grid__field-name {
|
|
414
|
+
width: 35%;
|
|
415
|
+
}
|
|
416
|
+
.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field:not(.is-column) .dataviews-view-grid__field-value {
|
|
417
|
+
width: 65%;
|
|
418
|
+
overflow: hidden;
|
|
419
|
+
text-overflow: ellipsis;
|
|
420
|
+
white-space: nowrap;
|
|
421
|
+
}
|
|
422
|
+
.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-name {
|
|
399
423
|
color: #757575;
|
|
400
424
|
}
|
|
401
425
|
|
|
@@ -405,6 +429,7 @@
|
|
|
405
429
|
}
|
|
406
430
|
.dataviews-view-list li {
|
|
407
431
|
margin: 0;
|
|
432
|
+
cursor: pointer;
|
|
408
433
|
}
|
|
409
434
|
.dataviews-view-list li .dataviews-view-list__item-wrapper {
|
|
410
435
|
position: relative;
|
|
@@ -420,11 +445,15 @@
|
|
|
420
445
|
background: #f0f0f0;
|
|
421
446
|
height: 1px;
|
|
422
447
|
}
|
|
423
|
-
.dataviews-view-list li
|
|
448
|
+
.dataviews-view-list li .dataviews-view-list__item-wrapper > * {
|
|
449
|
+
width: 100%;
|
|
450
|
+
}
|
|
451
|
+
.dataviews-view-list li:not(.is-selected):hover, .dataviews-view-list li:not(.is-selected):focus-within {
|
|
424
452
|
color: var(--wp-admin-theme-color);
|
|
425
453
|
}
|
|
426
454
|
.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__primary-field,
|
|
427
|
-
.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__fields
|
|
455
|
+
.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__fields, .dataviews-view-list li:not(.is-selected):focus-within .dataviews-view-list__primary-field,
|
|
456
|
+
.dataviews-view-list li:not(.is-selected):focus-within .dataviews-view-list__fields {
|
|
428
457
|
color: var(--wp-admin-theme-color);
|
|
429
458
|
}
|
|
430
459
|
.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper,
|
|
@@ -447,9 +476,9 @@
|
|
|
447
476
|
.dataviews-view-list .dataviews-view-list__item {
|
|
448
477
|
padding: 12px 24px 12px 0;
|
|
449
478
|
width: 100%;
|
|
450
|
-
|
|
479
|
+
scroll-margin: 8px 0;
|
|
451
480
|
}
|
|
452
|
-
.dataviews-view-list .dataviews-view-list__item:focus::before {
|
|
481
|
+
.dataviews-view-list .dataviews-view-list__item:focus-visible::before {
|
|
453
482
|
position: absolute;
|
|
454
483
|
content: "";
|
|
455
484
|
top: -1px;
|
|
@@ -462,6 +491,7 @@
|
|
|
462
491
|
}
|
|
463
492
|
.dataviews-view-list .dataviews-view-list__item .dataviews-view-list__primary-field {
|
|
464
493
|
min-height: 20px;
|
|
494
|
+
overflow: hidden;
|
|
465
495
|
}
|
|
466
496
|
.dataviews-view-list .dataviews-view-list__media-wrapper {
|
|
467
497
|
width: 40px;
|
|
@@ -500,7 +530,7 @@
|
|
|
500
530
|
font-size: 12px;
|
|
501
531
|
line-height: 16px;
|
|
502
532
|
}
|
|
503
|
-
.dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field:empty {
|
|
533
|
+
.dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field:has(.dataviews-view-list__field-value:empty) {
|
|
504
534
|
display: none;
|
|
505
535
|
}
|
|
506
536
|
.dataviews-view-list + .dataviews-pagination {
|
package/build-style/style.css
CHANGED
|
@@ -105,7 +105,6 @@
|
|
|
105
105
|
}
|
|
106
106
|
|
|
107
107
|
.dataviews-wrapper {
|
|
108
|
-
width: 100%;
|
|
109
108
|
height: 100%;
|
|
110
109
|
overflow: auto;
|
|
111
110
|
box-sizing: border-box;
|
|
@@ -113,6 +112,7 @@
|
|
|
113
112
|
}
|
|
114
113
|
|
|
115
114
|
.dataviews-filters__view-actions {
|
|
115
|
+
box-sizing: border-box;
|
|
116
116
|
padding: 12px 32px 0;
|
|
117
117
|
margin-bottom: 12px;
|
|
118
118
|
flex-shrink: 0;
|
|
@@ -218,7 +218,7 @@
|
|
|
218
218
|
.dataviews-view-table tr:last-child {
|
|
219
219
|
border-bottom: 0;
|
|
220
220
|
}
|
|
221
|
-
.dataviews-view-table tr
|
|
221
|
+
.dataviews-view-table tr.is-hovered {
|
|
222
222
|
background-color: #f8f8f8;
|
|
223
223
|
}
|
|
224
224
|
.dataviews-view-table tr .components-checkbox-control__input.components-checkbox-control__input {
|
|
@@ -227,7 +227,13 @@
|
|
|
227
227
|
.dataviews-view-table tr .components-checkbox-control__input.components-checkbox-control__input:checked, .dataviews-view-table tr .components-checkbox-control__input.components-checkbox-control__input:indeterminate, .dataviews-view-table tr .components-checkbox-control__input.components-checkbox-control__input:focus {
|
|
228
228
|
opacity: 1;
|
|
229
229
|
}
|
|
230
|
-
.dataviews-view-table tr
|
|
230
|
+
.dataviews-view-table tr .dataviews-item-actions .components-button:not(.dataviews-all-actions-button) {
|
|
231
|
+
opacity: 0;
|
|
232
|
+
}
|
|
233
|
+
.dataviews-view-table tr:focus-within .components-checkbox-control__input,
|
|
234
|
+
.dataviews-view-table tr:focus-within .dataviews-item-actions .components-button:not(.dataviews-all-actions-button), .dataviews-view-table tr.is-hovered .components-checkbox-control__input,
|
|
235
|
+
.dataviews-view-table tr.is-hovered .dataviews-item-actions .components-button:not(.dataviews-all-actions-button), .dataviews-view-table tr:hover .components-checkbox-control__input,
|
|
236
|
+
.dataviews-view-table tr:hover .dataviews-item-actions .components-button:not(.dataviews-all-actions-button) {
|
|
231
237
|
opacity: 1;
|
|
232
238
|
}
|
|
233
239
|
.dataviews-view-table tr.is-selected {
|
|
@@ -266,6 +272,9 @@
|
|
|
266
272
|
.dataviews-view-table tbody .dataviews-view-table__cell-content-wrapper > * {
|
|
267
273
|
flex-grow: 1;
|
|
268
274
|
}
|
|
275
|
+
.dataviews-view-table tbody .dataviews-view-table__cell-content-wrapper.dataviews-view-table__primary-field a {
|
|
276
|
+
flex-grow: 0;
|
|
277
|
+
}
|
|
269
278
|
.dataviews-view-table .dataviews-view-table-header-button {
|
|
270
279
|
padding: 4px 8px;
|
|
271
280
|
font-size: 11px;
|
|
@@ -311,12 +320,12 @@
|
|
|
311
320
|
white-space: nowrap;
|
|
312
321
|
overflow: hidden;
|
|
313
322
|
display: block;
|
|
314
|
-
|
|
323
|
+
flex-grow: 0;
|
|
315
324
|
}
|
|
316
325
|
.dataviews-view-list__primary-field a:hover,
|
|
317
326
|
.dataviews-view-grid__primary-field a:hover,
|
|
318
327
|
.dataviews-view-table__primary-field a:hover {
|
|
319
|
-
color:
|
|
328
|
+
color: var(--wp-admin-theme-color);
|
|
320
329
|
}
|
|
321
330
|
.dataviews-view-list__primary-field a:focus,
|
|
322
331
|
.dataviews-view-grid__primary-field a:focus,
|
|
@@ -395,7 +404,22 @@
|
|
|
395
404
|
padding: 12px;
|
|
396
405
|
padding-top: 0;
|
|
397
406
|
}
|
|
398
|
-
.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field
|
|
407
|
+
.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field {
|
|
408
|
+
align-items: flex-start;
|
|
409
|
+
}
|
|
410
|
+
.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field:not(.is-column) {
|
|
411
|
+
align-items: center;
|
|
412
|
+
}
|
|
413
|
+
.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field:not(.is-column) .dataviews-view-grid__field-name {
|
|
414
|
+
width: 35%;
|
|
415
|
+
}
|
|
416
|
+
.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field:not(.is-column) .dataviews-view-grid__field-value {
|
|
417
|
+
width: 65%;
|
|
418
|
+
overflow: hidden;
|
|
419
|
+
text-overflow: ellipsis;
|
|
420
|
+
white-space: nowrap;
|
|
421
|
+
}
|
|
422
|
+
.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-name {
|
|
399
423
|
color: #757575;
|
|
400
424
|
}
|
|
401
425
|
|
|
@@ -405,6 +429,7 @@
|
|
|
405
429
|
}
|
|
406
430
|
.dataviews-view-list li {
|
|
407
431
|
margin: 0;
|
|
432
|
+
cursor: pointer;
|
|
408
433
|
}
|
|
409
434
|
.dataviews-view-list li .dataviews-view-list__item-wrapper {
|
|
410
435
|
position: relative;
|
|
@@ -420,11 +445,15 @@
|
|
|
420
445
|
background: #f0f0f0;
|
|
421
446
|
height: 1px;
|
|
422
447
|
}
|
|
423
|
-
.dataviews-view-list li
|
|
448
|
+
.dataviews-view-list li .dataviews-view-list__item-wrapper > * {
|
|
449
|
+
width: 100%;
|
|
450
|
+
}
|
|
451
|
+
.dataviews-view-list li:not(.is-selected):hover, .dataviews-view-list li:not(.is-selected):focus-within {
|
|
424
452
|
color: var(--wp-admin-theme-color);
|
|
425
453
|
}
|
|
426
454
|
.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__primary-field,
|
|
427
|
-
.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__fields
|
|
455
|
+
.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__fields, .dataviews-view-list li:not(.is-selected):focus-within .dataviews-view-list__primary-field,
|
|
456
|
+
.dataviews-view-list li:not(.is-selected):focus-within .dataviews-view-list__fields {
|
|
428
457
|
color: var(--wp-admin-theme-color);
|
|
429
458
|
}
|
|
430
459
|
.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper,
|
|
@@ -447,9 +476,9 @@
|
|
|
447
476
|
.dataviews-view-list .dataviews-view-list__item {
|
|
448
477
|
padding: 12px 0 12px 24px;
|
|
449
478
|
width: 100%;
|
|
450
|
-
|
|
479
|
+
scroll-margin: 8px 0;
|
|
451
480
|
}
|
|
452
|
-
.dataviews-view-list .dataviews-view-list__item:focus::before {
|
|
481
|
+
.dataviews-view-list .dataviews-view-list__item:focus-visible::before {
|
|
453
482
|
position: absolute;
|
|
454
483
|
content: "";
|
|
455
484
|
top: -1px;
|
|
@@ -462,6 +491,7 @@
|
|
|
462
491
|
}
|
|
463
492
|
.dataviews-view-list .dataviews-view-list__item .dataviews-view-list__primary-field {
|
|
464
493
|
min-height: 20px;
|
|
494
|
+
overflow: hidden;
|
|
465
495
|
}
|
|
466
496
|
.dataviews-view-list .dataviews-view-list__media-wrapper {
|
|
467
497
|
width: 40px;
|
|
@@ -500,7 +530,7 @@
|
|
|
500
530
|
font-size: 12px;
|
|
501
531
|
line-height: 16px;
|
|
502
532
|
}
|
|
503
|
-
.dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field:empty {
|
|
533
|
+
.dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field:has(.dataviews-view-list__field-value:empty) {
|
|
504
534
|
display: none;
|
|
505
535
|
}
|
|
506
536
|
.dataviews-view-list + .dataviews-pagination {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/dataviews",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "DataViews is a component that provides an API to render datasets using different types of layouts (table, grid, list, etc.).",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -29,15 +29,15 @@
|
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@ariakit/react": "^0.3.12",
|
|
31
31
|
"@babel/runtime": "^7.16.0",
|
|
32
|
-
"@wordpress/a11y": "^3.
|
|
33
|
-
"@wordpress/components": "^27.
|
|
34
|
-
"@wordpress/compose": "^6.
|
|
35
|
-
"@wordpress/element": "^5.
|
|
36
|
-
"@wordpress/i18n": "^4.
|
|
37
|
-
"@wordpress/icons": "^9.
|
|
38
|
-
"@wordpress/keycodes": "^3.
|
|
39
|
-
"@wordpress/primitives": "^3.
|
|
40
|
-
"@wordpress/private-apis": "^0.
|
|
32
|
+
"@wordpress/a11y": "^3.55.0",
|
|
33
|
+
"@wordpress/components": "^27.3.0",
|
|
34
|
+
"@wordpress/compose": "^6.32.0",
|
|
35
|
+
"@wordpress/element": "^5.32.0",
|
|
36
|
+
"@wordpress/i18n": "^4.55.0",
|
|
37
|
+
"@wordpress/icons": "^9.46.0",
|
|
38
|
+
"@wordpress/keycodes": "^3.55.0",
|
|
39
|
+
"@wordpress/primitives": "^3.53.0",
|
|
40
|
+
"@wordpress/private-apis": "^0.37.0",
|
|
41
41
|
"classnames": "^2.3.1",
|
|
42
42
|
"remove-accents": "^0.5.0"
|
|
43
43
|
},
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"publishConfig": {
|
|
48
48
|
"access": "public"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "ac2b13783c28f959770cf029a797a712f59e1958"
|
|
51
51
|
}
|
package/src/constants.js
CHANGED
|
@@ -16,21 +16,47 @@ import ViewTable from './view-table';
|
|
|
16
16
|
import ViewGrid from './view-grid';
|
|
17
17
|
import ViewList from './view-list';
|
|
18
18
|
|
|
19
|
-
// Field types.
|
|
20
|
-
export const ENUMERATION_TYPE = 'enumeration';
|
|
21
|
-
|
|
22
19
|
// Filter operators.
|
|
23
|
-
export const
|
|
24
|
-
export const
|
|
20
|
+
export const OPERATOR_IS = 'is';
|
|
21
|
+
export const OPERATOR_IS_NOT = 'isNot';
|
|
22
|
+
export const OPERATOR_IS_ANY = 'isAny';
|
|
23
|
+
export const OPERATOR_IS_NONE = 'isNone';
|
|
24
|
+
export const OPERATOR_IS_ALL = 'isAll';
|
|
25
|
+
export const OPERATOR_IS_NOT_ALL = 'isNotAll';
|
|
26
|
+
|
|
27
|
+
export const ALL_OPERATORS = [
|
|
28
|
+
OPERATOR_IS,
|
|
29
|
+
OPERATOR_IS_NOT,
|
|
30
|
+
OPERATOR_IS_ANY,
|
|
31
|
+
OPERATOR_IS_NONE,
|
|
32
|
+
OPERATOR_IS_ALL,
|
|
33
|
+
OPERATOR_IS_NOT_ALL,
|
|
34
|
+
];
|
|
25
35
|
export const OPERATORS = {
|
|
26
|
-
[
|
|
27
|
-
key: '
|
|
36
|
+
[ OPERATOR_IS ]: {
|
|
37
|
+
key: 'is-filter',
|
|
28
38
|
label: __( 'Is' ),
|
|
29
39
|
},
|
|
30
|
-
[
|
|
31
|
-
key: 'not-
|
|
40
|
+
[ OPERATOR_IS_NOT ]: {
|
|
41
|
+
key: 'is-not-filter',
|
|
32
42
|
label: __( 'Is not' ),
|
|
33
43
|
},
|
|
44
|
+
[ OPERATOR_IS_ANY ]: {
|
|
45
|
+
key: 'is-any-filter',
|
|
46
|
+
label: __( 'Is any' ),
|
|
47
|
+
},
|
|
48
|
+
[ OPERATOR_IS_NONE ]: {
|
|
49
|
+
key: 'is-none-filter',
|
|
50
|
+
label: __( 'Is none' ),
|
|
51
|
+
},
|
|
52
|
+
[ OPERATOR_IS_ALL ]: {
|
|
53
|
+
key: 'is-all-filter',
|
|
54
|
+
label: __( 'Is all' ),
|
|
55
|
+
},
|
|
56
|
+
[ OPERATOR_IS_NOT_ALL ]: {
|
|
57
|
+
key: 'is-not-all-filter',
|
|
58
|
+
label: __( 'Is not all' ),
|
|
59
|
+
},
|
|
34
60
|
};
|
|
35
61
|
|
|
36
62
|
// Sorting
|