@wordpress/dataviews 0.7.0 → 0.8.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.
Files changed (58) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +48 -15
  3. package/build/constants.js +28 -7
  4. package/build/constants.js.map +1 -1
  5. package/build/dataviews.js +11 -5
  6. package/build/dataviews.js.map +1 -1
  7. package/build/filter-summary.js +33 -12
  8. package/build/filter-summary.js.map +1 -1
  9. package/build/filters.js +2 -1
  10. package/build/filters.js.map +1 -1
  11. package/build/item-actions.js +20 -39
  12. package/build/item-actions.js.map +1 -1
  13. package/build/pagination.js +2 -2
  14. package/build/pagination.js.map +1 -1
  15. package/build/search-widget.js +34 -10
  16. package/build/search-widget.js.map +1 -1
  17. package/build/utils.js +24 -2
  18. package/build/utils.js.map +1 -1
  19. package/build/view-grid.js +4 -1
  20. package/build/view-grid.js.map +1 -1
  21. package/build/view-table.js +35 -4
  22. package/build/view-table.js.map +1 -1
  23. package/build-module/constants.js +27 -6
  24. package/build-module/constants.js.map +1 -1
  25. package/build-module/dataviews.js +11 -5
  26. package/build-module/dataviews.js.map +1 -1
  27. package/build-module/filter-summary.js +34 -13
  28. package/build-module/filter-summary.js.map +1 -1
  29. package/build-module/filters.js +3 -2
  30. package/build-module/filters.js.map +1 -1
  31. package/build-module/item-actions.js +20 -39
  32. package/build-module/item-actions.js.map +1 -1
  33. package/build-module/pagination.js +2 -2
  34. package/build-module/pagination.js.map +1 -1
  35. package/build-module/search-widget.js +35 -11
  36. package/build-module/search-widget.js.map +1 -1
  37. package/build-module/utils.js +25 -3
  38. package/build-module/utils.js.map +1 -1
  39. package/build-module/view-grid.js +4 -1
  40. package/build-module/view-grid.js.map +1 -1
  41. package/build-module/view-table.js +36 -5
  42. package/build-module/view-table.js.map +1 -1
  43. package/build-style/style-rtl.css +9 -3
  44. package/build-style/style.css +9 -3
  45. package/package.json +11 -11
  46. package/src/constants.js +35 -6
  47. package/src/dataviews.js +11 -5
  48. package/src/filter-summary.js +76 -23
  49. package/src/filters.js +10 -4
  50. package/src/item-actions.js +19 -55
  51. package/src/pagination.js +2 -2
  52. package/src/search-widget.js +63 -21
  53. package/src/stories/fixtures.js +12 -1
  54. package/src/stories/index.story.js +43 -4
  55. package/src/style.scss +9 -3
  56. package/src/utils.js +38 -4
  57. package/src/view-grid.js +4 -1
  58. package/src/view-table.js +50 -4
@@ -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","ENUMERATION_TYPE","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","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","isSelected","includes","isHovered","setIsHovered","handleMouseEnter","handleMouseLeave","onMouseEnter","onMouseLeave","onClickCapture","event","ctrlKey","metaKey","stopPropagation","preventDefault","_item","itemId","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\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 { 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 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\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<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\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\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\t'is-hovered': isHovered,\n\t\t\t} ) }\n\t\t\tonMouseEnter={ handleMouseEnter }\n\t\t\tonMouseLeave={ handleMouseLeave }\n\t\t\tonClickCapture={ ( event ) => {\n\t\t\t\tif ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif ( ! hasPossibleBulkAction ) {\n\t\t\t\t\t\treturn;\n\t\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<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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"}
@@ -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:hover {
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:focus-within .components-checkbox-control__input, .dataviews-view-table tr:hover .components-checkbox-control__input {
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 {
@@ -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:hover {
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:focus-within .components-checkbox-control__input, .dataviews-view-table tr:hover .components-checkbox-control__input {
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 {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/dataviews",
3
- "version": "0.7.0",
3
+ "version": "0.8.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.53.0",
33
- "@wordpress/components": "^27.1.0",
34
- "@wordpress/compose": "^6.30.0",
35
- "@wordpress/element": "^5.30.0",
36
- "@wordpress/i18n": "^4.53.0",
37
- "@wordpress/icons": "^9.44.0",
38
- "@wordpress/keycodes": "^3.53.0",
39
- "@wordpress/primitives": "^3.51.0",
40
- "@wordpress/private-apis": "^0.35.0",
32
+ "@wordpress/a11y": "^3.54.0",
33
+ "@wordpress/components": "^27.2.0",
34
+ "@wordpress/compose": "^6.31.0",
35
+ "@wordpress/element": "^5.31.0",
36
+ "@wordpress/i18n": "^4.54.0",
37
+ "@wordpress/icons": "^9.45.0",
38
+ "@wordpress/keycodes": "^3.54.0",
39
+ "@wordpress/primitives": "^3.52.0",
40
+ "@wordpress/private-apis": "^0.36.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": "ac3c3e465a083081a86a4da6ee6fb817b41e5130"
50
+ "gitHead": "ffc07735d0abfb3f69e91d48f25b7fe8d1ef92d2"
51
51
  }
package/src/constants.js CHANGED
@@ -20,17 +20,46 @@ import ViewList from './view-list';
20
20
  export const ENUMERATION_TYPE = 'enumeration';
21
21
 
22
22
  // Filter operators.
23
- export const OPERATOR_IN = 'in';
24
- export const OPERATOR_NOT_IN = 'notIn';
23
+ export const OPERATOR_IS = 'is';
24
+ export const OPERATOR_IS_NOT = 'isNot';
25
+ export const OPERATOR_IS_ANY = 'isAny';
26
+ export const OPERATOR_IS_NONE = 'isNone';
27
+ export const OPERATOR_IS_ALL = 'isAll';
28
+ export const OPERATOR_IS_NOT_ALL = 'isNotAll';
29
+
30
+ export const ALL_OPERATORS = [
31
+ OPERATOR_IS,
32
+ OPERATOR_IS_NOT,
33
+ OPERATOR_IS_ANY,
34
+ OPERATOR_IS_NONE,
35
+ OPERATOR_IS_ALL,
36
+ OPERATOR_IS_NOT_ALL,
37
+ ];
25
38
  export const OPERATORS = {
26
- [ OPERATOR_IN ]: {
27
- key: 'in-filter',
39
+ [ OPERATOR_IS ]: {
40
+ key: 'is-filter',
28
41
  label: __( 'Is' ),
29
42
  },
30
- [ OPERATOR_NOT_IN ]: {
31
- key: 'not-in-filter',
43
+ [ OPERATOR_IS_NOT ]: {
44
+ key: 'is-not-filter',
32
45
  label: __( 'Is not' ),
33
46
  },
47
+ [ OPERATOR_IS_ANY ]: {
48
+ key: 'is-any-filter',
49
+ label: __( 'Is any' ),
50
+ },
51
+ [ OPERATOR_IS_NONE ]: {
52
+ key: 'is-none-filter',
53
+ label: __( 'Is none' ),
54
+ },
55
+ [ OPERATOR_IS_ALL ]: {
56
+ key: 'is-all-filter',
57
+ label: __( 'Is all' ),
58
+ },
59
+ [ OPERATOR_IS_NOT_ALL ]: {
60
+ key: 'is-not-all-filter',
61
+ label: __( 'Is not all' ),
62
+ },
34
63
  };
35
64
 
36
65
  // Sorting
package/src/dataviews.js CHANGED
@@ -33,7 +33,7 @@ export default function DataViews( {
33
33
  fields,
34
34
  search = true,
35
35
  searchLabel = undefined,
36
- actions,
36
+ actions = [],
37
37
  data,
38
38
  getItemId = defaultGetItemId,
39
39
  isLoading = false,
@@ -77,10 +77,16 @@ export default function DataViews( {
77
77
  ( v ) => v.type === view.type
78
78
  ).component;
79
79
  const _fields = useMemo( () => {
80
- return fields.map( ( field ) => ( {
81
- ...field,
82
- render: field.render || field.getValue,
83
- } ) );
80
+ return fields.map( ( field ) => {
81
+ const getValue =
82
+ field.getValue || ( ( { item } ) => item[ field.id ] );
83
+
84
+ return {
85
+ ...field,
86
+ getValue,
87
+ render: field.render || getValue,
88
+ };
89
+ } );
84
90
  }, [ fields ] );
85
91
 
86
92
  const hasPossibleBulkAction = useSomeItemHasAPossibleBulkAction(
@@ -24,43 +24,93 @@ import { ENTER, SPACE } from '@wordpress/keycodes';
24
24
  * Internal dependencies
25
25
  */
26
26
  import SearchWidget from './search-widget';
27
- import { OPERATOR_IN, OPERATOR_NOT_IN, OPERATORS } from './constants';
27
+ import {
28
+ OPERATORS,
29
+ OPERATOR_IS,
30
+ OPERATOR_IS_NOT,
31
+ OPERATOR_IS_ANY,
32
+ OPERATOR_IS_NONE,
33
+ OPERATOR_IS_ALL,
34
+ OPERATOR_IS_NOT_ALL,
35
+ } from './constants';
28
36
 
29
- const FilterText = ( { activeElement, filterInView, filter } ) => {
30
- if ( activeElement === undefined ) {
37
+ const FilterText = ( { activeElements, filterInView, filter } ) => {
38
+ if ( activeElements === undefined || activeElements.length === 0 ) {
31
39
  return filter.name;
32
40
  }
33
41
 
34
42
  const filterTextWrappers = {
35
- Span1: <span className="dataviews-filter-summary__filter-text-name" />,
36
- Span2: <span className="dataviews-filter-summary__filter-text-value" />,
43
+ Name: <span className="dataviews-filter-summary__filter-text-name" />,
44
+ Value: <span className="dataviews-filter-summary__filter-text-value" />,
37
45
  };
38
46
 
39
- if (
40
- activeElement !== undefined &&
41
- filterInView?.operator === OPERATOR_IN
42
- ) {
47
+ if ( filterInView?.operator === OPERATOR_IS_ANY ) {
48
+ return createInterpolateElement(
49
+ sprintf(
50
+ /* translators: 1: Filter name. 3: Filter value. e.g.: "Author is any: Admin, Editor". */
51
+ __( '<Name>%1$s is any: </Name><Value>%2$s</Value>' ),
52
+ filter.name,
53
+ activeElements.map( ( element ) => element.label ).join( ', ' )
54
+ ),
55
+ filterTextWrappers
56
+ );
57
+ }
58
+
59
+ if ( filterInView?.operator === OPERATOR_IS_NONE ) {
60
+ return createInterpolateElement(
61
+ sprintf(
62
+ /* translators: 1: Filter name. 3: Filter value. e.g.: "Author is none: Admin, Editor". */
63
+ __( '<Name>%1$s is none: </Name><Value>%2$s</Value>' ),
64
+ filter.name,
65
+ activeElements.map( ( element ) => element.label ).join( ', ' )
66
+ ),
67
+ filterTextWrappers
68
+ );
69
+ }
70
+
71
+ if ( filterInView?.operator === OPERATOR_IS_ALL ) {
43
72
  return createInterpolateElement(
44
73
  sprintf(
45
- /* translators: 1: Filter name. 2: Filter value. e.g.: "Author is Admin". */
46
- __( '<Span1>%1$s </Span1><Span2>is %2$s</Span2>' ),
74
+ /* translators: 1: Filter name. 3: Filter value. e.g.: "Author is all: Admin, Editor". */
75
+ __( '<Name>%1$s is all: </Name><Value>%2$s</Value>' ),
47
76
  filter.name,
48
- activeElement.label
77
+ activeElements.map( ( element ) => element.label ).join( ', ' )
49
78
  ),
50
79
  filterTextWrappers
51
80
  );
52
81
  }
53
82
 
54
- if (
55
- activeElement !== undefined &&
56
- filterInView?.operator === OPERATOR_NOT_IN
57
- ) {
83
+ if ( filterInView?.operator === OPERATOR_IS_NOT_ALL ) {
58
84
  return createInterpolateElement(
59
85
  sprintf(
60
- /* translators: 1: Filter name. 2: Filter value. e.g.: "Author is not Admin". */
61
- __( '<Span1>%1$s </Span1><Span2>is not %2$s</Span2>' ),
86
+ /* translators: 1: Filter name. 3: Filter value. e.g.: "Author is not all: Admin, Editor". */
87
+ __( '<Name>%1$s is not all: </Name><Value>%2$s</Value>' ),
62
88
  filter.name,
63
- activeElement.label
89
+ activeElements.map( ( element ) => element.label ).join( ', ' )
90
+ ),
91
+ filterTextWrappers
92
+ );
93
+ }
94
+
95
+ if ( filterInView?.operator === OPERATOR_IS ) {
96
+ return createInterpolateElement(
97
+ sprintf(
98
+ /* translators: 1: Filter name. 3: Filter value. e.g.: "Author is: Admin". */
99
+ __( '<Name>%1$s is: </Name><Value>%2$s</Value>' ),
100
+ filter.name,
101
+ activeElements[ 0 ].label
102
+ ),
103
+ filterTextWrappers
104
+ );
105
+ }
106
+
107
+ if ( filterInView?.operator === OPERATOR_IS_NOT ) {
108
+ return createInterpolateElement(
109
+ sprintf(
110
+ /* translators: 1: Filter name. 3: Filter value. e.g.: "Author is not: Admin". */
111
+ __( '<Name>%1$s is not: </Name><Value>%2$s</Value>' ),
112
+ filter.name,
113
+ activeElements[ 0 ].label
64
114
  ),
65
115
  filterTextWrappers
66
116
  );
@@ -140,9 +190,12 @@ export default function FilterSummary( {
140
190
  const toggleRef = useRef();
141
191
  const { filter, view, onChangeView } = commonProps;
142
192
  const filterInView = view.filters.find( ( f ) => f.field === filter.field );
143
- const activeElement = filter.elements.find(
144
- ( element ) => element.value === filterInView?.value
145
- );
193
+ const activeElements = filter.elements.filter( ( element ) => {
194
+ if ( filter.singleSelection ) {
195
+ return element.value === filterInView?.value;
196
+ }
197
+ return filterInView?.value?.includes( element.value );
198
+ } );
146
199
  const isPrimary = filter.isPrimary;
147
200
  const hasValues = filterInView?.value !== undefined;
148
201
  const canResetOrRemove = ! isPrimary || hasValues;
@@ -188,7 +241,7 @@ export default function FilterSummary( {
188
241
  ref={ toggleRef }
189
242
  >
190
243
  <FilterText
191
- activeElement={ activeElement }
244
+ activeElements={ activeElements }
192
245
  filterInView={ filterInView }
193
246
  filter={ filter }
194
247
  />
package/src/filters.js CHANGED
@@ -10,7 +10,12 @@ import FilterSummary from './filter-summary';
10
10
  import AddFilter from './add-filter';
11
11
  import ResetFilters from './reset-filters';
12
12
  import { sanitizeOperators } from './utils';
13
- import { ENUMERATION_TYPE, OPERATOR_IN, OPERATOR_NOT_IN } from './constants';
13
+ import {
14
+ ENUMERATION_TYPE,
15
+ ALL_OPERATORS,
16
+ OPERATOR_IS,
17
+ OPERATOR_IS_NOT,
18
+ } from './constants';
14
19
  import { __experimentalHStack as HStack } from '@wordpress/components';
15
20
 
16
21
  const Filters = memo( function Filters( {
@@ -43,15 +48,16 @@ const Filters = memo( function Filters( {
43
48
  field: field.id,
44
49
  name: field.header,
45
50
  elements: field.elements,
51
+ singleSelection: operators.some( ( op ) =>
52
+ [ OPERATOR_IS, OPERATOR_IS_NOT ].includes( op )
53
+ ),
46
54
  operators,
47
55
  isVisible:
48
56
  isPrimary ||
49
57
  view.filters.some(
50
58
  ( f ) =>
51
59
  f.field === field.id &&
52
- [ OPERATOR_IN, OPERATOR_NOT_IN ].includes(
53
- f.operator
54
- )
60
+ ALL_OPERATORS.includes( f.operator )
55
61
  ),
56
62
  isPrimary,
57
63
  } );
@@ -105,37 +105,28 @@ function ActionsDropdownMenuGroup( { actions, item } ) {
105
105
  }
106
106
 
107
107
  export default function ItemActions( { item, actions, isCompact } ) {
108
- const { primaryActions, secondaryActions } = useMemo( () => {
109
- return actions.reduce(
110
- ( accumulator, action ) => {
111
- // If an action is eligible for all items, doesn't need
112
- // to provide the `isEligible` function.
113
- if ( action.isEligible && ! action.isEligible( item ) ) {
114
- return accumulator;
115
- }
116
- if ( action.isPrimary && !! action.icon ) {
117
- accumulator.primaryActions.push( action );
118
- } else {
119
- accumulator.secondaryActions.push( action );
120
- }
121
- return accumulator;
122
- },
123
- { primaryActions: [], secondaryActions: [] }
108
+ const { primaryActions, eligibleActions } = useMemo( () => {
109
+ // If an action is eligible for all items, doesn't need
110
+ // to provide the `isEligible` function.
111
+ const _eligibleActions = actions.filter(
112
+ ( action ) => ! action.isEligible || action.isEligible( item )
113
+ );
114
+ const _primaryActions = _eligibleActions.filter(
115
+ ( action ) => action.isPrimary && !! action.icon
124
116
  );
117
+ return {
118
+ primaryActions: _primaryActions,
119
+ eligibleActions: _eligibleActions,
120
+ };
125
121
  }, [ actions, item ] );
126
122
  if ( isCompact ) {
127
- return (
128
- <CompactItemActions
129
- item={ item }
130
- primaryActions={ primaryActions }
131
- secondaryActions={ secondaryActions }
132
- />
133
- );
123
+ return <CompactItemActions item={ item } actions={ eligibleActions } />;
134
124
  }
135
125
  return (
136
126
  <HStack
137
127
  spacing={ 1 }
138
128
  justify="flex-end"
129
+ className="dataviews-item-actions"
139
130
  style={ {
140
131
  flexShrink: '0',
141
132
  width: 'auto',
@@ -161,27 +152,12 @@ export default function ItemActions( { item, actions, isCompact } ) {
161
152
  />
162
153
  );
163
154
  } ) }
164
- <DropdownMenu
165
- trigger={
166
- <Button
167
- size="compact"
168
- icon={ moreVertical }
169
- label={ __( 'Actions' ) }
170
- disabled={ ! secondaryActions.length }
171
- />
172
- }
173
- placement="bottom-end"
174
- >
175
- <ActionsDropdownMenuGroup
176
- actions={ secondaryActions }
177
- item={ item }
178
- />
179
- </DropdownMenu>
155
+ <CompactItemActions item={ item } actions={ eligibleActions } />
180
156
  </HStack>
181
157
  );
182
158
  }
183
159
 
184
- function CompactItemActions( { item, primaryActions, secondaryActions } ) {
160
+ function CompactItemActions( { item, actions } ) {
185
161
  return (
186
162
  <DropdownMenu
187
163
  trigger={
@@ -189,25 +165,13 @@ function CompactItemActions( { item, primaryActions, secondaryActions } ) {
189
165
  size="compact"
190
166
  icon={ moreVertical }
191
167
  label={ __( 'Actions' ) }
192
- disabled={
193
- ! primaryActions.length && ! secondaryActions.length
194
- }
168
+ disabled={ ! actions.length }
169
+ className="dataviews-all-actions-button"
195
170
  />
196
171
  }
197
172
  placement="bottom-end"
198
173
  >
199
- { !! primaryActions.length && (
200
- <ActionsDropdownMenuGroup
201
- actions={ primaryActions }
202
- item={ item }
203
- />
204
- ) }
205
- { !! secondaryActions.length && (
206
- <ActionsDropdownMenuGroup
207
- actions={ secondaryActions }
208
- item={ item }
209
- />
210
- ) }
174
+ <ActionsDropdownMenuGroup actions={ actions } item={ item } />
211
175
  </DropdownMenu>
212
176
  );
213
177
  }
package/src/pagination.js CHANGED
@@ -36,11 +36,11 @@ const Pagination = memo( function Pagination( {
36
36
  { createInterpolateElement(
37
37
  sprintf(
38
38
  // translators: %s: Total number of pages.
39
- _x( 'Page <CurrenPageControl /> of %s', 'paging' ),
39
+ _x( 'Page <CurrentPageControl /> of %s', 'paging' ),
40
40
  totalPages
41
41
  ),
42
42
  {
43
- CurrenPageControl: (
43
+ CurrentPageControl: (
44
44
  <SelectControl
45
45
  aria-label={ __( 'Current page' ) }
46
46
  value={ view.page }