@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.
- package/CHANGELOG.md +7 -0
- package/README.md +48 -15
- package/build/constants.js +28 -7
- package/build/constants.js.map +1 -1
- package/build/dataviews.js +11 -5
- package/build/dataviews.js.map +1 -1
- package/build/filter-summary.js +33 -12
- package/build/filter-summary.js.map +1 -1
- package/build/filters.js +2 -1
- package/build/filters.js.map +1 -1
- package/build/item-actions.js +20 -39
- package/build/item-actions.js.map +1 -1
- 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 +24 -2
- package/build/utils.js.map +1 -1
- package/build/view-grid.js +4 -1
- package/build/view-grid.js.map +1 -1
- package/build/view-table.js +35 -4
- package/build/view-table.js.map +1 -1
- package/build-module/constants.js +27 -6
- package/build-module/constants.js.map +1 -1
- package/build-module/dataviews.js +11 -5
- package/build-module/dataviews.js.map +1 -1
- package/build-module/filter-summary.js +34 -13
- package/build-module/filter-summary.js.map +1 -1
- package/build-module/filters.js +3 -2
- package/build-module/filters.js.map +1 -1
- package/build-module/item-actions.js +20 -39
- package/build-module/item-actions.js.map +1 -1
- 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 -3
- package/build-module/utils.js.map +1 -1
- package/build-module/view-grid.js +4 -1
- package/build-module/view-grid.js.map +1 -1
- package/build-module/view-table.js +36 -5
- package/build-module/view-table.js.map +1 -1
- package/build-style/style-rtl.css +9 -3
- package/build-style/style.css +9 -3
- package/package.json +11 -11
- package/src/constants.js +35 -6
- package/src/dataviews.js +11 -5
- package/src/filter-summary.js +76 -23
- package/src/filters.js +10 -4
- package/src/item-actions.js +19 -55
- package/src/pagination.js +2 -2
- package/src/search-widget.js +63 -21
- package/src/stories/fixtures.js +12 -1
- package/src/stories/index.story.js +43 -4
- package/src/style.scss +9 -3
- package/src/utils.js +38 -4
- package/src/view-grid.js +4 -1
- package/src/view-table.js +50 -4
package/build/view-table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_compose","_icons","_components","_element","_singleSelectionCheckbox","_lockUnlock","_itemActions","_utils","_constants","_bulkActions","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuRadioItemV2","DropdownMenuRadioItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","DropdownMenuSeparatorV2","DropdownMenuSeparator","unlock","componentsPrivateApis","WithSeparators","children","Children","toArray","filter","Boolean","map","child","i","_react","createElement","Fragment","key","sortArrows","asc","desc","HeaderMenu","forwardRef","field","view","onChangeView","onHide","setOpenedFilter","ref","isHidable","enableHiding","isSortable","enableSorting","isSorted","sort","id","operators","sanitizeOperators","canAddFilter","filters","some","_filter","type","ENUMERATION_TYPE","length","filterBy","isPrimary","header","align","trigger","Button","size","className","variant","direction","style","minWidth","Object","entries","SORTING_DIRECTIONS","info","isChecked","value","name","checked","onChange","label","prefix","Icon","icon","funnel","onClick","page","undefined","operator","__","unseen","hiddenFields","concat","BulkSelectionCheckbox","selection","onSelectionChange","data","actions","selectableItems","useMemo","item","action","supportsBulk","isEligible","areAllSelected","CheckboxControl","__nextHasNoMarginBottom","indeterminate","TableRow","hasBulkActions","visibleFields","primaryField","getItemId","hasPossibleBulkAction","useHasAPossibleBulkAction","classnames","includes","width","default","disabled","maxWidth","render","ViewTable","fields","isLoading","deferredRendering","headerMenuRefs","useRef","Map","headerMenuToFocusRef","nextHeaderMenuToFocus","setNextHeaderMenuToFocus","useState","useSomeItemHasAPossibleBulkAction","useEffect","current","focus","asyncData","useAsyncList","tableNoticeId","useId","hidden","get","fallback","node","layout","mediaField","usedData","hasData","sortValues","find","scope","index","set","delete","Spinner","_default","exports"],"sources":["@wordpress/dataviews/src/view-table.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { 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","_interopRequireDefault","require","_i18n","_compose","_icons","_components","_element","_singleSelectionCheckbox","_lockUnlock","_itemActions","_utils","_constants","_bulkActions","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuRadioItemV2","DropdownMenuRadioItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","DropdownMenuSeparatorV2","DropdownMenuSeparator","unlock","componentsPrivateApis","WithDropDownMenuSeparators","children","Children","toArray","filter","Boolean","map","child","i","_react","createElement","Fragment","key","sortArrows","asc","desc","HeaderMenu","forwardRef","field","view","onChangeView","onHide","setOpenedFilter","ref","isHidable","enableHiding","isSortable","enableSorting","isSorted","sort","id","operators","sanitizeOperators","canAddFilter","filters","some","_filter","type","ENUMERATION_TYPE","length","filterBy","isPrimary","header","align","trigger","Button","size","className","variant","direction","style","minWidth","Object","entries","SORTING_DIRECTIONS","info","isChecked","value","name","checked","onChange","label","prefix","Icon","icon","funnel","onClick","page","undefined","operator","__","unseen","hiddenFields","concat","BulkSelectionCheckbox","selection","onSelectionChange","data","actions","selectableItems","useMemo","item","action","supportsBulk","isEligible","areAllSelected","CheckboxControl","__nextHasNoMarginBottom","indeterminate","TableRow","hasBulkActions","visibleFields","primaryField","getItemId","hasPossibleBulkAction","useHasAPossibleBulkAction","isSelected","includes","isHovered","setIsHovered","useState","handleMouseEnter","handleMouseLeave","classnames","onMouseEnter","onMouseLeave","onClickCapture","event","ctrlKey","metaKey","stopPropagation","preventDefault","_item","itemId","width","default","disabled","maxWidth","render","ViewTable","fields","isLoading","deferredRendering","headerMenuRefs","useRef","Map","headerMenuToFocusRef","nextHeaderMenuToFocus","setNextHeaderMenuToFocus","useSomeItemHasAPossibleBulkAction","useEffect","current","focus","asyncData","useAsyncList","tableNoticeId","useId","hidden","get","fallback","node","layout","mediaField","usedData","hasData","sortValues","find","scope","index","set","delete","Spinner","_default","exports"],"sources":["@wordpress/dataviews/src/view-table.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { 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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"}
|
|
@@ -15,16 +15,37 @@ import ViewList from './view-list';
|
|
|
15
15
|
export const ENUMERATION_TYPE = 'enumeration';
|
|
16
16
|
|
|
17
17
|
// Filter operators.
|
|
18
|
-
export const
|
|
19
|
-
export const
|
|
18
|
+
export const OPERATOR_IS = 'is';
|
|
19
|
+
export const OPERATOR_IS_NOT = 'isNot';
|
|
20
|
+
export const OPERATOR_IS_ANY = 'isAny';
|
|
21
|
+
export const OPERATOR_IS_NONE = 'isNone';
|
|
22
|
+
export const OPERATOR_IS_ALL = 'isAll';
|
|
23
|
+
export const OPERATOR_IS_NOT_ALL = 'isNotAll';
|
|
24
|
+
export const ALL_OPERATORS = [OPERATOR_IS, OPERATOR_IS_NOT, OPERATOR_IS_ANY, OPERATOR_IS_NONE, OPERATOR_IS_ALL, OPERATOR_IS_NOT_ALL];
|
|
20
25
|
export const OPERATORS = {
|
|
21
|
-
[
|
|
22
|
-
key: '
|
|
26
|
+
[OPERATOR_IS]: {
|
|
27
|
+
key: 'is-filter',
|
|
23
28
|
label: __('Is')
|
|
24
29
|
},
|
|
25
|
-
[
|
|
26
|
-
key: 'not-
|
|
30
|
+
[OPERATOR_IS_NOT]: {
|
|
31
|
+
key: 'is-not-filter',
|
|
27
32
|
label: __('Is not')
|
|
33
|
+
},
|
|
34
|
+
[OPERATOR_IS_ANY]: {
|
|
35
|
+
key: 'is-any-filter',
|
|
36
|
+
label: __('Is any')
|
|
37
|
+
},
|
|
38
|
+
[OPERATOR_IS_NONE]: {
|
|
39
|
+
key: 'is-none-filter',
|
|
40
|
+
label: __('Is none')
|
|
41
|
+
},
|
|
42
|
+
[OPERATOR_IS_ALL]: {
|
|
43
|
+
key: 'is-all-filter',
|
|
44
|
+
label: __('Is all')
|
|
45
|
+
},
|
|
46
|
+
[OPERATOR_IS_NOT_ALL]: {
|
|
47
|
+
key: 'is-not-all-filter',
|
|
48
|
+
label: __('Is not all')
|
|
28
49
|
}
|
|
29
50
|
};
|
|
30
51
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","isRTL","blockTable","category","formatListBullets","formatListBulletsRTL","ViewTable","ViewGrid","ViewList","ENUMERATION_TYPE","
|
|
1
|
+
{"version":3,"names":["__","isRTL","blockTable","category","formatListBullets","formatListBulletsRTL","ViewTable","ViewGrid","ViewList","ENUMERATION_TYPE","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_IS_ANY","OPERATOR_IS_NONE","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","ALL_OPERATORS","OPERATORS","key","label","SORTING_DIRECTIONS","asc","desc","LAYOUT_TABLE","LAYOUT_GRID","LAYOUT_LIST","VIEW_LAYOUTS","type","component","icon"],"sources":["@wordpress/dataviews/src/constants.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tblockTable,\n\tcategory,\n\tformatListBullets,\n\tformatListBulletsRTL,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ViewTable from './view-table';\nimport ViewGrid from './view-grid';\nimport ViewList from './view-list';\n\n// Field types.\nexport const ENUMERATION_TYPE = 'enumeration';\n\n// Filter operators.\nexport const OPERATOR_IS = 'is';\nexport const OPERATOR_IS_NOT = 'isNot';\nexport const OPERATOR_IS_ANY = 'isAny';\nexport const OPERATOR_IS_NONE = 'isNone';\nexport const OPERATOR_IS_ALL = 'isAll';\nexport const OPERATOR_IS_NOT_ALL = 'isNotAll';\n\nexport const ALL_OPERATORS = [\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n];\nexport const OPERATORS = {\n\t[ OPERATOR_IS ]: {\n\t\tkey: 'is-filter',\n\t\tlabel: __( 'Is' ),\n\t},\n\t[ OPERATOR_IS_NOT ]: {\n\t\tkey: 'is-not-filter',\n\t\tlabel: __( 'Is not' ),\n\t},\n\t[ OPERATOR_IS_ANY ]: {\n\t\tkey: 'is-any-filter',\n\t\tlabel: __( 'Is any' ),\n\t},\n\t[ OPERATOR_IS_NONE ]: {\n\t\tkey: 'is-none-filter',\n\t\tlabel: __( 'Is none' ),\n\t},\n\t[ OPERATOR_IS_ALL ]: {\n\t\tkey: 'is-all-filter',\n\t\tlabel: __( 'Is all' ),\n\t},\n\t[ OPERATOR_IS_NOT_ALL ]: {\n\t\tkey: 'is-not-all-filter',\n\t\tlabel: __( 'Is not all' ),\n\t},\n};\n\n// Sorting\nexport const SORTING_DIRECTIONS = {\n\tasc: { label: __( 'Sort ascending' ) },\n\tdesc: { label: __( 'Sort descending' ) },\n};\n\n// View layouts.\nexport const LAYOUT_TABLE = 'table';\nexport const LAYOUT_GRID = 'grid';\nexport const LAYOUT_LIST = 'list';\n\nexport const VIEW_LAYOUTS = [\n\t{\n\t\ttype: LAYOUT_TABLE,\n\t\tlabel: __( 'Table' ),\n\t\tcomponent: ViewTable,\n\t\ticon: blockTable,\n\t},\n\t{\n\t\ttype: LAYOUT_GRID,\n\t\tlabel: __( 'Grid' ),\n\t\tcomponent: ViewGrid,\n\t\ticon: category,\n\t},\n\t{\n\t\ttype: LAYOUT_LIST,\n\t\tlabel: __( 'List' ),\n\t\tcomponent: ViewList,\n\t\ticon: isRTL() ? formatListBulletsRTL : formatListBullets,\n\t},\n];\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,KAAK,QAAQ,iBAAiB;AAC3C,SACCC,UAAU,EACVC,QAAQ,EACRC,iBAAiB,EACjBC,oBAAoB,QACd,kBAAkB;;AAEzB;AACA;AACA;AACA,OAAOC,SAAS,MAAM,cAAc;AACpC,OAAOC,QAAQ,MAAM,aAAa;AAClC,OAAOC,QAAQ,MAAM,aAAa;;AAElC;AACA,OAAO,MAAMC,gBAAgB,GAAG,aAAa;;AAE7C;AACA,OAAO,MAAMC,WAAW,GAAG,IAAI;AAC/B,OAAO,MAAMC,eAAe,GAAG,OAAO;AACtC,OAAO,MAAMC,eAAe,GAAG,OAAO;AACtC,OAAO,MAAMC,gBAAgB,GAAG,QAAQ;AACxC,OAAO,MAAMC,eAAe,GAAG,OAAO;AACtC,OAAO,MAAMC,mBAAmB,GAAG,UAAU;AAE7C,OAAO,MAAMC,aAAa,GAAG,CAC5BN,WAAW,EACXC,eAAe,EACfC,eAAe,EACfC,gBAAgB,EAChBC,eAAe,EACfC,mBAAmB,CACnB;AACD,OAAO,MAAME,SAAS,GAAG;EACxB,CAAEP,WAAW,GAAI;IAChBQ,GAAG,EAAE,WAAW;IAChBC,KAAK,EAAEnB,EAAE,CAAE,IAAK;EACjB,CAAC;EACD,CAAEW,eAAe,GAAI;IACpBO,GAAG,EAAE,eAAe;IACpBC,KAAK,EAAEnB,EAAE,CAAE,QAAS;EACrB,CAAC;EACD,CAAEY,eAAe,GAAI;IACpBM,GAAG,EAAE,eAAe;IACpBC,KAAK,EAAEnB,EAAE,CAAE,QAAS;EACrB,CAAC;EACD,CAAEa,gBAAgB,GAAI;IACrBK,GAAG,EAAE,gBAAgB;IACrBC,KAAK,EAAEnB,EAAE,CAAE,SAAU;EACtB,CAAC;EACD,CAAEc,eAAe,GAAI;IACpBI,GAAG,EAAE,eAAe;IACpBC,KAAK,EAAEnB,EAAE,CAAE,QAAS;EACrB,CAAC;EACD,CAAEe,mBAAmB,GAAI;IACxBG,GAAG,EAAE,mBAAmB;IACxBC,KAAK,EAAEnB,EAAE,CAAE,YAAa;EACzB;AACD,CAAC;;AAED;AACA,OAAO,MAAMoB,kBAAkB,GAAG;EACjCC,GAAG,EAAE;IAAEF,KAAK,EAAEnB,EAAE,CAAE,gBAAiB;EAAE,CAAC;EACtCsB,IAAI,EAAE;IAAEH,KAAK,EAAEnB,EAAE,CAAE,iBAAkB;EAAE;AACxC,CAAC;;AAED;AACA,OAAO,MAAMuB,YAAY,GAAG,OAAO;AACnC,OAAO,MAAMC,WAAW,GAAG,MAAM;AACjC,OAAO,MAAMC,WAAW,GAAG,MAAM;AAEjC,OAAO,MAAMC,YAAY,GAAG,CAC3B;EACCC,IAAI,EAAEJ,YAAY;EAClBJ,KAAK,EAAEnB,EAAE,CAAE,OAAQ,CAAC;EACpB4B,SAAS,EAAEtB,SAAS;EACpBuB,IAAI,EAAE3B;AACP,CAAC,EACD;EACCyB,IAAI,EAAEH,WAAW;EACjBL,KAAK,EAAEnB,EAAE,CAAE,MAAO,CAAC;EACnB4B,SAAS,EAAErB,QAAQ;EACnBsB,IAAI,EAAE1B;AACP,CAAC,EACD;EACCwB,IAAI,EAAEF,WAAW;EACjBN,KAAK,EAAEnB,EAAE,CAAE,MAAO,CAAC;EACnB4B,SAAS,EAAEpB,QAAQ;EACnBqB,IAAI,EAAE5B,KAAK,CAAC,CAAC,GAAGI,oBAAoB,GAAGD;AACxC,CAAC,CACD"}
|
|
@@ -31,7 +31,7 @@ export default function DataViews({
|
|
|
31
31
|
fields,
|
|
32
32
|
search = true,
|
|
33
33
|
searchLabel = undefined,
|
|
34
|
-
actions,
|
|
34
|
+
actions = [],
|
|
35
35
|
data,
|
|
36
36
|
getItemId = defaultGetItemId,
|
|
37
37
|
isLoading = false,
|
|
@@ -56,10 +56,16 @@ export default function DataViews({
|
|
|
56
56
|
}, [setSelection, getItemId, onSelectionChange]);
|
|
57
57
|
const ViewComponent = VIEW_LAYOUTS.find(v => v.type === view.type).component;
|
|
58
58
|
const _fields = useMemo(() => {
|
|
59
|
-
return fields.map(field =>
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
return fields.map(field => {
|
|
60
|
+
const getValue = field.getValue || (({
|
|
61
|
+
item
|
|
62
|
+
}) => item[field.id]);
|
|
63
|
+
return {
|
|
64
|
+
...field,
|
|
65
|
+
getValue,
|
|
66
|
+
render: field.render || getValue
|
|
67
|
+
};
|
|
68
|
+
});
|
|
63
69
|
}, [fields]);
|
|
64
70
|
const hasPossibleBulkAction = useSomeItemHasAPossibleBulkAction(actions, data);
|
|
65
71
|
return createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__experimentalHStack","HStack","useMemo","useState","useCallback","useEffect","Pagination","ViewActions","Filters","Search","VIEW_LAYOUTS","LAYOUT_TABLE","LAYOUT_GRID","BulkActions","defaultGetItemId","item","id","defaultOnSelectionChange","useSomeItemHasAPossibleBulkAction","actions","data","some","action","supportsBulk","isEligible","DataViews","view","onChangeView","fields","search","searchLabel","undefined","getItemId","isLoading","paginationInfo","supportedLayouts","onSelectionChange","onDetailsChange","deferredRendering","selection","setSelection","openedFilter","setOpenedFilter","length","newSelection","filter","includes","onSetSelection","items","map","ViewComponent","find","v","type","component","_fields","field","
|
|
1
|
+
{"version":3,"names":["__experimentalHStack","HStack","useMemo","useState","useCallback","useEffect","Pagination","ViewActions","Filters","Search","VIEW_LAYOUTS","LAYOUT_TABLE","LAYOUT_GRID","BulkActions","defaultGetItemId","item","id","defaultOnSelectionChange","useSomeItemHasAPossibleBulkAction","actions","data","some","action","supportsBulk","isEligible","DataViews","view","onChangeView","fields","search","searchLabel","undefined","getItemId","isLoading","paginationInfo","supportedLayouts","onSelectionChange","onDetailsChange","deferredRendering","selection","setSelection","openedFilter","setOpenedFilter","length","newSelection","filter","includes","onSetSelection","items","map","ViewComponent","find","v","type","component","_fields","field","getValue","render","hasPossibleBulkAction","createElement","className","alignment","justify","wrap","label"],"sources":["@wordpress/dataviews/src/dataviews.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { useMemo, useState, useCallback, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Pagination from './pagination';\nimport ViewActions from './view-actions';\nimport Filters from './filters';\nimport Search from './search';\nimport { VIEW_LAYOUTS, LAYOUT_TABLE, LAYOUT_GRID } from './constants';\nimport BulkActions from './bulk-actions';\n\nconst defaultGetItemId = ( item ) => item.id;\nconst defaultOnSelectionChange = () => {};\n\nfunction useSomeItemHasAPossibleBulkAction( actions, data ) {\n\treturn useMemo( () => {\n\t\treturn data.some( ( item ) => {\n\t\t\treturn actions.some( ( action ) => {\n\t\t\t\treturn action.supportsBulk && action.isEligible( item );\n\t\t\t} );\n\t\t} );\n\t}, [ actions, data ] );\n}\n\nexport default function DataViews( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions = [],\n\tdata,\n\tgetItemId = defaultGetItemId,\n\tisLoading = false,\n\tpaginationInfo,\n\tsupportedLayouts,\n\tonSelectionChange = defaultOnSelectionChange,\n\tonDetailsChange = null,\n\tdeferredRendering = false,\n} ) {\n\tconst [ selection, setSelection ] = useState( [] );\n\tconst [ openedFilter, setOpenedFilter ] = useState( null );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tselection.length > 0 &&\n\t\t\tselection.some(\n\t\t\t\t( id ) => ! data.some( ( item ) => getItemId( item ) === id )\n\t\t\t)\n\t\t) {\n\t\t\tconst newSelection = selection.filter( ( id ) =>\n\t\t\t\tdata.some( ( item ) => getItemId( item ) === id )\n\t\t\t);\n\t\t\tsetSelection( newSelection );\n\t\t\tonSelectionChange(\n\t\t\t\tdata.filter( ( item ) =>\n\t\t\t\t\tnewSelection.includes( getItemId( item ) )\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, [ selection, data, getItemId, onSelectionChange ] );\n\n\tconst onSetSelection = useCallback(\n\t\t( items ) => {\n\t\t\tsetSelection( items.map( ( item ) => getItemId( item ) ) );\n\t\t\tonSelectionChange( items );\n\t\t},\n\t\t[ setSelection, getItemId, onSelectionChange ]\n\t);\n\n\tconst ViewComponent = VIEW_LAYOUTS.find(\n\t\t( v ) => v.type === view.type\n\t).component;\n\tconst _fields = useMemo( () => {\n\t\treturn fields.map( ( field ) => {\n\t\t\tconst getValue =\n\t\t\t\tfield.getValue || ( ( { item } ) => item[ field.id ] );\n\n\t\t\treturn {\n\t\t\t\t...field,\n\t\t\t\tgetValue,\n\t\t\t\trender: field.render || getValue,\n\t\t\t};\n\t\t} );\n\t}, [ fields ] );\n\n\tconst hasPossibleBulkAction = useSomeItemHasAPossibleBulkAction(\n\t\tactions,\n\t\tdata\n\t);\n\treturn (\n\t\t<div className=\"dataviews-wrapper\">\n\t\t\t<HStack\n\t\t\t\talignment=\"top\"\n\t\t\t\tjustify=\"start\"\n\t\t\t\tclassName=\"dataviews-filters__view-actions\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\tclassName=\"dataviews-filters__container\"\n\t\t\t\t\twrap\n\t\t\t\t>\n\t\t\t\t\t{ search && (\n\t\t\t\t\t\t<Search\n\t\t\t\t\t\t\tlabel={ searchLabel }\n\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<Filters\n\t\t\t\t\t\tfields={ _fields }\n\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\topenedFilter={ openedFilter }\n\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t\t{ [ LAYOUT_TABLE, LAYOUT_GRID ].includes( view.type ) &&\n\t\t\t\t\thasPossibleBulkAction && (\n\t\t\t\t\t\t<BulkActions\n\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\tonSelectionChange={ onSetSelection }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t<ViewActions\n\t\t\t\t\tfields={ _fields }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tsupportedLayouts={ supportedLayouts }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t\t<ViewComponent\n\t\t\t\tfields={ _fields }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tactions={ actions }\n\t\t\t\tdata={ data }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t\tisLoading={ isLoading }\n\t\t\t\tonSelectionChange={ onSetSelection }\n\t\t\t\tonDetailsChange={ onDetailsChange }\n\t\t\t\tselection={ selection }\n\t\t\t\tdeferredRendering={ deferredRendering }\n\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t/>\n\t\t\t<Pagination\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -17,30 +17,46 @@ import { ENTER, SPACE } from '@wordpress/keycodes';
|
|
|
17
17
|
* Internal dependencies
|
|
18
18
|
*/
|
|
19
19
|
import SearchWidget from './search-widget';
|
|
20
|
-
import {
|
|
20
|
+
import { OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT, OPERATOR_IS_ANY, OPERATOR_IS_NONE, OPERATOR_IS_ALL, OPERATOR_IS_NOT_ALL } from './constants';
|
|
21
21
|
const FilterText = ({
|
|
22
|
-
|
|
22
|
+
activeElements,
|
|
23
23
|
filterInView,
|
|
24
24
|
filter
|
|
25
25
|
}) => {
|
|
26
|
-
if (
|
|
26
|
+
if (activeElements === undefined || activeElements.length === 0) {
|
|
27
27
|
return filter.name;
|
|
28
28
|
}
|
|
29
29
|
const filterTextWrappers = {
|
|
30
|
-
|
|
30
|
+
Name: createElement("span", {
|
|
31
31
|
className: "dataviews-filter-summary__filter-text-name"
|
|
32
32
|
}),
|
|
33
|
-
|
|
33
|
+
Value: createElement("span", {
|
|
34
34
|
className: "dataviews-filter-summary__filter-text-value"
|
|
35
35
|
})
|
|
36
36
|
};
|
|
37
|
-
if (
|
|
38
|
-
return createInterpolateElement(sprintf( /* translators: 1: Filter name.
|
|
39
|
-
__('<
|
|
37
|
+
if (filterInView?.operator === OPERATOR_IS_ANY) {
|
|
38
|
+
return createInterpolateElement(sprintf( /* translators: 1: Filter name. 3: Filter value. e.g.: "Author is any: Admin, Editor". */
|
|
39
|
+
__('<Name>%1$s is any: </Name><Value>%2$s</Value>'), filter.name, activeElements.map(element => element.label).join(', ')), filterTextWrappers);
|
|
40
40
|
}
|
|
41
|
-
if (
|
|
42
|
-
return createInterpolateElement(sprintf( /* translators: 1: Filter name.
|
|
43
|
-
__('<
|
|
41
|
+
if (filterInView?.operator === OPERATOR_IS_NONE) {
|
|
42
|
+
return createInterpolateElement(sprintf( /* translators: 1: Filter name. 3: Filter value. e.g.: "Author is none: Admin, Editor". */
|
|
43
|
+
__('<Name>%1$s is none: </Name><Value>%2$s</Value>'), filter.name, activeElements.map(element => element.label).join(', ')), filterTextWrappers);
|
|
44
|
+
}
|
|
45
|
+
if (filterInView?.operator === OPERATOR_IS_ALL) {
|
|
46
|
+
return createInterpolateElement(sprintf( /* translators: 1: Filter name. 3: Filter value. e.g.: "Author is all: Admin, Editor". */
|
|
47
|
+
__('<Name>%1$s is all: </Name><Value>%2$s</Value>'), filter.name, activeElements.map(element => element.label).join(', ')), filterTextWrappers);
|
|
48
|
+
}
|
|
49
|
+
if (filterInView?.operator === OPERATOR_IS_NOT_ALL) {
|
|
50
|
+
return createInterpolateElement(sprintf( /* translators: 1: Filter name. 3: Filter value. e.g.: "Author is not all: Admin, Editor". */
|
|
51
|
+
__('<Name>%1$s is not all: </Name><Value>%2$s</Value>'), filter.name, activeElements.map(element => element.label).join(', ')), filterTextWrappers);
|
|
52
|
+
}
|
|
53
|
+
if (filterInView?.operator === OPERATOR_IS) {
|
|
54
|
+
return createInterpolateElement(sprintf( /* translators: 1: Filter name. 3: Filter value. e.g.: "Author is: Admin". */
|
|
55
|
+
__('<Name>%1$s is: </Name><Value>%2$s</Value>'), filter.name, activeElements[0].label), filterTextWrappers);
|
|
56
|
+
}
|
|
57
|
+
if (filterInView?.operator === OPERATOR_IS_NOT) {
|
|
58
|
+
return createInterpolateElement(sprintf( /* translators: 1: Filter name. 3: Filter value. e.g.: "Author is not: Admin". */
|
|
59
|
+
__('<Name>%1$s is not: </Name><Value>%2$s</Value>'), filter.name, activeElements[0].label), filterTextWrappers);
|
|
44
60
|
}
|
|
45
61
|
return sprintf( /* translators: 1: Filter name e.g.: "Unknown status for Author". */
|
|
46
62
|
__('Unknown status for %1$s'), filter.name);
|
|
@@ -102,7 +118,12 @@ export default function FilterSummary({
|
|
|
102
118
|
onChangeView
|
|
103
119
|
} = commonProps;
|
|
104
120
|
const filterInView = view.filters.find(f => f.field === filter.field);
|
|
105
|
-
const
|
|
121
|
+
const activeElements = filter.elements.filter(element => {
|
|
122
|
+
if (filter.singleSelection) {
|
|
123
|
+
return element.value === filterInView?.value;
|
|
124
|
+
}
|
|
125
|
+
return filterInView?.value?.includes(element.value);
|
|
126
|
+
});
|
|
106
127
|
const isPrimary = filter.isPrimary;
|
|
107
128
|
const hasValues = filterInView?.value !== undefined;
|
|
108
129
|
const canResetOrRemove = !isPrimary || hasValues;
|
|
@@ -143,7 +164,7 @@ export default function FilterSummary({
|
|
|
143
164
|
"aria-expanded": isOpen,
|
|
144
165
|
ref: toggleRef
|
|
145
166
|
}, createElement(FilterText, {
|
|
146
|
-
|
|
167
|
+
activeElements: activeElements,
|
|
147
168
|
filterInView: filterInView,
|
|
148
169
|
filter: filter
|
|
149
170
|
}))), canResetOrRemove && createElement(Tooltip, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","Dropdown","__experimentalVStack","VStack","__experimentalHStack","HStack","FlexItem","SelectControl","Tooltip","Icon","__","sprintf","useRef","createInterpolateElement","closeSmall","ENTER","SPACE","SearchWidget","OPERATOR_IN","OPERATOR_NOT_IN","OPERATORS","FilterText","activeElement","filterInView","filter","undefined","name","filterTextWrappers","Span1","createElement","className","Span2","operator","label","OperatorSelector","view","onChangeView","operatorOptions","operators","map","value","currentFilter","filters","find","_filter","field","length","spacing","justify","options","onChange","newValue","newFilters","page","size","__nextHasNoMarginBottom","hideLabelFromVision","FilterSummary","addFilterRef","openedFilter","commonProps","toggleRef","f","elements","element","isPrimary","hasValues","canResetOrRemove","defaultOpen","contentClassName","popoverProps","placement","role","onClose","current","focus","renderToggle","isOpen","onToggle","text","toLowerCase","tabIndex","onClick","onKeyDown","event","includes","keyCode","preventDefault","ref","icon","renderContent"],"sources":["@wordpress/dataviews/src/filter-summary.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDropdown,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\tFlexItem,\n\tSelectControl,\n\tTooltip,\n\tIcon,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useRef, createInterpolateElement } from '@wordpress/element';\nimport { closeSmall } from '@wordpress/icons';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport SearchWidget from './search-widget';\nimport { OPERATOR_IN, OPERATOR_NOT_IN, OPERATORS } from './constants';\n\nconst FilterText = ( { activeElement, filterInView, filter } ) => {\n\tif ( activeElement === undefined ) {\n\t\treturn filter.name;\n\t}\n\n\tconst filterTextWrappers = {\n\t\tSpan1: <span className=\"dataviews-filter-summary__filter-text-name\" />,\n\t\tSpan2: <span className=\"dataviews-filter-summary__filter-text-value\" />,\n\t};\n\n\tif (\n\t\tactiveElement !== undefined &&\n\t\tfilterInView?.operator === OPERATOR_IN\n\t) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Author is Admin\". */\n\t\t\t\t__( '<Span1>%1$s </Span1><Span2>is %2$s</Span2>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElement.label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif (\n\t\tactiveElement !== undefined &&\n\t\tfilterInView?.operator === OPERATOR_NOT_IN\n\t) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Author is not Admin\". */\n\t\t\t\t__( '<Span1>%1$s </Span1><Span2>is not %2$s</Span2>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElement.label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\treturn sprintf(\n\t\t/* translators: 1: Filter name e.g.: \"Unknown status for Author\". */\n\t\t__( 'Unknown status for %1$s' ),\n\t\tfilter.name\n\t);\n};\n\nfunction OperatorSelector( { filter, view, onChangeView } ) {\n\tconst operatorOptions = filter.operators?.map( ( operator ) => ( {\n\t\tvalue: operator,\n\t\tlabel: OPERATORS[ operator ]?.label,\n\t} ) );\n\tconst currentFilter = view.filters.find(\n\t\t( _filter ) => _filter.field === filter.field\n\t);\n\tconst value = currentFilter?.operator || filter.operators[ 0 ];\n\treturn (\n\t\toperatorOptions.length > 1 && (\n\t\t\t<HStack\n\t\t\t\tspacing={ 2 }\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tclassName=\"dataviews-filter-summary__operators-container\"\n\t\t\t>\n\t\t\t\t<FlexItem className=\"dataviews-filter-summary__operators-filter-name\">\n\t\t\t\t\t{ filter.name }\n\t\t\t\t</FlexItem>\n\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'Conditions' ) }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\toptions={ operatorOptions }\n\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\tconst newFilters = currentFilter\n\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t...view.filters.map( ( _filter ) => {\n\t\t\t\t\t\t\t\t\t\tif ( _filter.field === filter.field ) {\n\t\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t\t..._filter,\n\t\t\t\t\t\t\t\t\t\t\t\toperator: newValue,\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\treturn _filter;\n\t\t\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t\t ]\n\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t...view.filters,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\toperator: newValue,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t ];\n\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\tfilters: newFilters,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t)\n\t);\n}\n\nexport default function FilterSummary( {\n\taddFilterRef,\n\topenedFilter,\n\t...commonProps\n} ) {\n\tconst toggleRef = useRef();\n\tconst { filter, view, onChangeView } = commonProps;\n\tconst filterInView = view.filters.find( ( f ) => f.field === filter.field );\n\tconst activeElement = filter.elements.find(\n\t\t( element ) => element.value === filterInView?.value\n\t);\n\tconst isPrimary = filter.isPrimary;\n\tconst hasValues = filterInView?.value !== undefined;\n\tconst canResetOrRemove = ! isPrimary || hasValues;\n\treturn (\n\t\t<Dropdown\n\t\t\tdefaultOpen={ openedFilter === filter.field }\n\t\t\tcontentClassName=\"dataviews-filter-summary__popover\"\n\t\t\tpopoverProps={ { placement: 'bottom-start', role: 'dialog' } }\n\t\t\tonClose={ () => {\n\t\t\t\ttoggleRef.current?.focus();\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<div className=\"dataviews-filter-summary__chip-container\">\n\t\t\t\t\t<Tooltip\n\t\t\t\t\t\ttext={ sprintf(\n\t\t\t\t\t\t\t/* translators: 1: Filter name. */\n\t\t\t\t\t\t\t__( 'Filter by: %1$s' ),\n\t\t\t\t\t\t\tfilter.name.toLowerCase()\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'dataviews-filter-summary__chip',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'has-reset': canResetOrRemove,\n\t\t\t\t\t\t\t\t\t'has-values': hasValues,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\t\ttabIndex={ 0 }\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t[ ENTER, SPACE ].includes( event.keyCode )\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-pressed={ isOpen }\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\tref={ toggleRef }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FilterText\n\t\t\t\t\t\t\t\tactiveElement={ activeElement }\n\t\t\t\t\t\t\t\tfilterInView={ filterInView }\n\t\t\t\t\t\t\t\tfilter={ filter }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t\t{ canResetOrRemove && (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\ttext={ isPrimary ? __( 'Reset' ) : __( 'Remove' ) }\n\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t'dataviews-filter-summary__chip-remove',\n\t\t\t\t\t\t\t\t\t{ 'has-values': hasValues }\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\t\tfilters: view.filters.filter(\n\t\t\t\t\t\t\t\t\t\t\t( _filter ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t_filter.field !== filter.field\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// If the filter is not primary and can be removed, it will be added\n\t\t\t\t\t\t\t\t\t// back to the available filters from `Add filter` component.\n\t\t\t\t\t\t\t\t\tif ( ! isPrimary ) {\n\t\t\t\t\t\t\t\t\t\taddFilterRef.current?.focus();\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t// If is primary, focus the toggle button.\n\t\t\t\t\t\t\t\t\t\ttoggleRef.current?.focus();\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\t\t<Icon icon={ closeSmall } />\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\trenderContent={ () => {\n\t\t\t\treturn (\n\t\t\t\t\t<VStack spacing={ 0 } justify=\"flex-start\">\n\t\t\t\t\t\t<OperatorSelector { ...commonProps } />\n\t\t\t\t\t\t<SearchWidget { ...commonProps } />\n\t\t\t\t\t</VStack>\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SACCC,QAAQ,EACRC,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,EAC9BC,QAAQ,EACRC,aAAa,EACbC,OAAO,EACPC,IAAI,QACE,uBAAuB;AAC9B,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,MAAM,EAAEC,wBAAwB,QAAQ,oBAAoB;AACrE,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,KAAK,EAAEC,KAAK,QAAQ,qBAAqB;;AAElD;AACA;AACA;AACA,OAAOC,YAAY,MAAM,iBAAiB;AAC1C,SAASC,WAAW,EAAEC,eAAe,EAAEC,SAAS,QAAQ,aAAa;AAErE,MAAMC,UAAU,GAAGA,CAAE;EAAEC,aAAa;EAAEC,YAAY;EAAEC;AAAO,CAAC,KAAM;EACjE,IAAKF,aAAa,KAAKG,SAAS,EAAG;IAClC,OAAOD,MAAM,CAACE,IAAI;EACnB;EAEA,MAAMC,kBAAkB,GAAG;IAC1BC,KAAK,EAAEC,aAAA;MAAMC,SAAS,EAAC;IAA4C,CAAE,CAAC;IACtEC,KAAK,EAAEF,aAAA;MAAMC,SAAS,EAAC;IAA6C,CAAE;EACvE,CAAC;EAED,IACCR,aAAa,KAAKG,SAAS,IAC3BF,YAAY,EAAES,QAAQ,KAAKd,WAAW,EACrC;IACD,OAAOL,wBAAwB,CAC9BF,OAAO,EACN;IACAD,EAAE,CAAE,4CAA6C,CAAC,EAClDc,MAAM,CAACE,IAAI,EACXJ,aAAa,CAACW,KACf,CAAC,EACDN,kBACD,CAAC;EACF;EAEA,IACCL,aAAa,KAAKG,SAAS,IAC3BF,YAAY,EAAES,QAAQ,KAAKb,eAAe,EACzC;IACD,OAAON,wBAAwB,CAC9BF,OAAO,EACN;IACAD,EAAE,CAAE,gDAAiD,CAAC,EACtDc,MAAM,CAACE,IAAI,EACXJ,aAAa,CAACW,KACf,CAAC,EACDN,kBACD,CAAC;EACF;EAEA,OAAOhB,OAAO,EACb;EACAD,EAAE,CAAE,yBAA0B,CAAC,EAC/Bc,MAAM,CAACE,IACR,CAAC;AACF,CAAC;AAED,SAASQ,gBAAgBA,CAAE;EAAEV,MAAM;EAAEW,IAAI;EAAEC;AAAa,CAAC,EAAG;EAC3D,MAAMC,eAAe,GAAGb,MAAM,CAACc,SAAS,EAAEC,GAAG,CAAIP,QAAQ,KAAQ;IAChEQ,KAAK,EAAER,QAAQ;IACfC,KAAK,EAAEb,SAAS,CAAEY,QAAQ,CAAE,EAAEC;EAC/B,CAAC,CAAG,CAAC;EACL,MAAMQ,aAAa,GAAGN,IAAI,CAACO,OAAO,CAACC,IAAI,CACpCC,OAAO,IAAMA,OAAO,CAACC,KAAK,KAAKrB,MAAM,CAACqB,KACzC,CAAC;EACD,MAAML,KAAK,GAAGC,aAAa,EAAET,QAAQ,IAAIR,MAAM,CAACc,SAAS,CAAE,CAAC,CAAE;EAC9D,OACCD,eAAe,CAACS,MAAM,GAAG,CAAC,IACzBjB,aAAA,CAACxB,MAAM;IACN0C,OAAO,EAAG,CAAG;IACbC,OAAO,EAAC,YAAY;IACpBlB,SAAS,EAAC;EAA+C,GAEzDD,aAAA,CAACvB,QAAQ;IAACwB,SAAS,EAAC;EAAiD,GAClEN,MAAM,CAACE,IACA,CAAC,EAEXG,aAAA,CAACtB,aAAa;IACb0B,KAAK,EAAGvB,EAAE,CAAE,YAAa,CAAG;IAC5B8B,KAAK,EAAGA,KAAO;IACfS,OAAO,EAAGZ,eAAiB;IAC3Ba,QAAQ,EAAKC,QAAQ,IAAM;MAC1B,MAAMC,UAAU,GAAGX,aAAa,GAC7B,CACA,GAAGN,IAAI,CAACO,OAAO,CAACH,GAAG,CAAIK,OAAO,IAAM;QACnC,IAAKA,OAAO,CAACC,KAAK,KAAKrB,MAAM,CAACqB,KAAK,EAAG;UACrC,OAAO;YACN,GAAGD,OAAO;YACVZ,QAAQ,EAAEmB;UACX,CAAC;QACF;QACA,OAAOP,OAAO;MACf,CAAE,CAAC,CACF,GACD,CACA,GAAGT,IAAI,CAACO,OAAO,EACf;QACCG,KAAK,EAAErB,MAAM,CAACqB,KAAK;QACnBb,QAAQ,EAAEmB;MACX,CAAC,CACA;MACJf,YAAY,CAAE;QACb,GAAGD,IAAI;QACPkB,IAAI,EAAE,CAAC;QACPX,OAAO,EAAEU;MACV,CAAE,CAAC;IACJ,CAAG;IACHE,IAAI,EAAC,OAAO;IACZC,uBAAuB;IACvBC,mBAAmB;EAAA,CACnB,CACM,CACR;AAEH;AAEA,eAAe,SAASC,aAAaA,CAAE;EACtCC,YAAY;EACZC,YAAY;EACZ,GAAGC;AACJ,CAAC,EAAG;EACH,MAAMC,SAAS,GAAGjD,MAAM,CAAC,CAAC;EAC1B,MAAM;IAAEY,MAAM;IAAEW,IAAI;IAAEC;EAAa,CAAC,GAAGwB,WAAW;EAClD,MAAMrC,YAAY,GAAGY,IAAI,CAACO,OAAO,CAACC,IAAI,CAAImB,CAAC,IAAMA,CAAC,CAACjB,KAAK,KAAKrB,MAAM,CAACqB,KAAM,CAAC;EAC3E,MAAMvB,aAAa,GAAGE,MAAM,CAACuC,QAAQ,CAACpB,IAAI,CACvCqB,OAAO,IAAMA,OAAO,CAACxB,KAAK,KAAKjB,YAAY,EAAEiB,KAChD,CAAC;EACD,MAAMyB,SAAS,GAAGzC,MAAM,CAACyC,SAAS;EAClC,MAAMC,SAAS,GAAG3C,YAAY,EAAEiB,KAAK,KAAKf,SAAS;EACnD,MAAM0C,gBAAgB,GAAG,CAAEF,SAAS,IAAIC,SAAS;EACjD,OACCrC,aAAA,CAAC5B,QAAQ;IACRmE,WAAW,EAAGT,YAAY,KAAKnC,MAAM,CAACqB,KAAO;IAC7CwB,gBAAgB,EAAC,mCAAmC;IACpDC,YAAY,EAAG;MAAEC,SAAS,EAAE,cAAc;MAAEC,IAAI,EAAE;IAAS,CAAG;IAC9DC,OAAO,EAAGA,CAAA,KAAM;MACfZ,SAAS,CAACa,OAAO,EAAEC,KAAK,CAAC,CAAC;IAC3B,CAAG;IACHC,YAAY,EAAGA,CAAE;MAAEC,MAAM;MAAEC;IAAS,CAAC,KACpCjD,aAAA;MAAKC,SAAS,EAAC;IAA0C,GACxDD,aAAA,CAACrB,OAAO;MACPuE,IAAI,EAAGpE,OAAO,EACb;MACAD,EAAE,CAAE,iBAAkB,CAAC,EACvBc,MAAM,CAACE,IAAI,CAACsD,WAAW,CAAC,CACzB,CAAG;MACHT,SAAS,EAAC;IAAK,GAEf1C,aAAA;MACCC,SAAS,EAAG9B,UAAU,CACrB,gCAAgC,EAChC;QACC,WAAW,EAAEmE,gBAAgB;QAC7B,YAAY,EAAED;MACf,CACD,CAAG;MACHM,IAAI,EAAC,QAAQ;MACbS,QAAQ,EAAG,CAAG;MACdC,OAAO,EAAGJ,QAAU;MACpBK,SAAS,EAAKC,KAAK,IAAM;QACxB,IACC,CAAErE,KAAK,EAAEC,KAAK,CAAE,CAACqE,QAAQ,CAAED,KAAK,CAACE,OAAQ,CAAC,EACzC;UACDR,QAAQ,CAAC,CAAC;UACVM,KAAK,CAACG,cAAc,CAAC,CAAC;QACvB;MACD,CAAG;MACH,gBAAeV,MAAQ;MACvB,iBAAgBA,MAAQ;MACxBW,GAAG,EAAG3B;IAAW,GAEjBhC,aAAA,CAACR,UAAU;MACVC,aAAa,EAAGA,aAAe;MAC/BC,YAAY,EAAGA,YAAc;MAC7BC,MAAM,EAAGA;IAAQ,CACjB,CACG,CACG,CAAC,EACR2C,gBAAgB,IACjBtC,aAAA,CAACrB,OAAO;MACPuE,IAAI,EAAGd,SAAS,GAAGvD,EAAE,CAAE,OAAQ,CAAC,GAAGA,EAAE,CAAE,QAAS,CAAG;MACnD6D,SAAS,EAAC;IAAK,GAEf1C,aAAA;MACCC,SAAS,EAAG9B,UAAU,CACrB,uCAAuC,EACvC;QAAE,YAAY,EAAEkE;MAAU,CAC3B,CAAG;MACHgB,OAAO,EAAGA,CAAA,KAAM;QACf9C,YAAY,CAAE;UACb,GAAGD,IAAI;UACPkB,IAAI,EAAE,CAAC;UACPX,OAAO,EAAEP,IAAI,CAACO,OAAO,CAAClB,MAAM,CACzBoB,OAAO,IACRA,OAAO,CAACC,KAAK,KAAKrB,MAAM,CAACqB,KAC3B;QACD,CAAE,CAAC;QACH;QACA;QACA,IAAK,CAAEoB,SAAS,EAAG;UAClBP,YAAY,CAACgB,OAAO,EAAEC,KAAK,CAAC,CAAC;QAC9B,CAAC,MAAM;UACN;UACAd,SAAS,CAACa,OAAO,EAAEC,KAAK,CAAC,CAAC;QAC3B;MACD;IAAG,GAEH9C,aAAA,CAACpB,IAAI;MAACgF,IAAI,EAAG3E;IAAY,CAAE,CACpB,CACA,CAEN,CACH;IACH4E,aAAa,EAAGA,CAAA,KAAM;MACrB,OACC7D,aAAA,CAAC1B,MAAM;QAAC4C,OAAO,EAAG,CAAG;QAACC,OAAO,EAAC;MAAY,GACzCnB,aAAA,CAACK,gBAAgB;QAAA,GAAM0B;MAAW,CAAI,CAAC,EACvC/B,aAAA,CAACZ,YAAY;QAAA,GAAM2C;MAAW,CAAI,CAC3B,CAAC;IAEX;EAAG,CACH,CAAC;AAEJ"}
|
|
1
|
+
{"version":3,"names":["classnames","Dropdown","__experimentalVStack","VStack","__experimentalHStack","HStack","FlexItem","SelectControl","Tooltip","Icon","__","sprintf","useRef","createInterpolateElement","closeSmall","ENTER","SPACE","SearchWidget","OPERATORS","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_IS_ANY","OPERATOR_IS_NONE","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","FilterText","activeElements","filterInView","filter","undefined","length","name","filterTextWrappers","Name","createElement","className","Value","operator","map","element","label","join","OperatorSelector","view","onChangeView","operatorOptions","operators","value","currentFilter","filters","find","_filter","field","spacing","justify","options","onChange","newValue","newFilters","page","size","__nextHasNoMarginBottom","hideLabelFromVision","FilterSummary","addFilterRef","openedFilter","commonProps","toggleRef","f","elements","singleSelection","includes","isPrimary","hasValues","canResetOrRemove","defaultOpen","contentClassName","popoverProps","placement","role","onClose","current","focus","renderToggle","isOpen","onToggle","text","toLowerCase","tabIndex","onClick","onKeyDown","event","keyCode","preventDefault","ref","icon","renderContent"],"sources":["@wordpress/dataviews/src/filter-summary.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDropdown,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\tFlexItem,\n\tSelectControl,\n\tTooltip,\n\tIcon,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useRef, createInterpolateElement } from '@wordpress/element';\nimport { closeSmall } from '@wordpress/icons';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport SearchWidget from './search-widget';\nimport {\n\tOPERATORS,\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n} from './constants';\n\nconst FilterText = ( { activeElements, filterInView, filter } ) => {\n\tif ( activeElements === undefined || activeElements.length === 0 ) {\n\t\treturn filter.name;\n\t}\n\n\tconst filterTextWrappers = {\n\t\tName: <span className=\"dataviews-filter-summary__filter-text-name\" />,\n\t\tValue: <span className=\"dataviews-filter-summary__filter-text-value\" />,\n\t};\n\n\tif ( filterInView?.operator === OPERATOR_IS_ANY ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is any: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is any: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_NONE ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is none: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is none: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_ALL ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is all: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is all: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_NOT_ALL ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is not all: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is not all: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is: Admin\". */\n\t\t\t\t__( '<Name>%1$s is: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_NOT ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is not: Admin\". */\n\t\t\t\t__( '<Name>%1$s is not: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\treturn sprintf(\n\t\t/* translators: 1: Filter name e.g.: \"Unknown status for Author\". */\n\t\t__( 'Unknown status for %1$s' ),\n\t\tfilter.name\n\t);\n};\n\nfunction OperatorSelector( { filter, view, onChangeView } ) {\n\tconst operatorOptions = filter.operators?.map( ( operator ) => ( {\n\t\tvalue: operator,\n\t\tlabel: OPERATORS[ operator ]?.label,\n\t} ) );\n\tconst currentFilter = view.filters.find(\n\t\t( _filter ) => _filter.field === filter.field\n\t);\n\tconst value = currentFilter?.operator || filter.operators[ 0 ];\n\treturn (\n\t\toperatorOptions.length > 1 && (\n\t\t\t<HStack\n\t\t\t\tspacing={ 2 }\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tclassName=\"dataviews-filter-summary__operators-container\"\n\t\t\t>\n\t\t\t\t<FlexItem className=\"dataviews-filter-summary__operators-filter-name\">\n\t\t\t\t\t{ filter.name }\n\t\t\t\t</FlexItem>\n\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'Conditions' ) }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\toptions={ operatorOptions }\n\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\tconst newFilters = currentFilter\n\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t...view.filters.map( ( _filter ) => {\n\t\t\t\t\t\t\t\t\t\tif ( _filter.field === filter.field ) {\n\t\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t\t..._filter,\n\t\t\t\t\t\t\t\t\t\t\t\toperator: newValue,\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\treturn _filter;\n\t\t\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t\t ]\n\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t...view.filters,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\toperator: newValue,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t ];\n\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\tfilters: newFilters,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t)\n\t);\n}\n\nexport default function FilterSummary( {\n\taddFilterRef,\n\topenedFilter,\n\t...commonProps\n} ) {\n\tconst toggleRef = useRef();\n\tconst { filter, view, onChangeView } = commonProps;\n\tconst filterInView = view.filters.find( ( f ) => f.field === filter.field );\n\tconst activeElements = filter.elements.filter( ( element ) => {\n\t\tif ( filter.singleSelection ) {\n\t\t\treturn element.value === filterInView?.value;\n\t\t}\n\t\treturn filterInView?.value?.includes( element.value );\n\t} );\n\tconst isPrimary = filter.isPrimary;\n\tconst hasValues = filterInView?.value !== undefined;\n\tconst canResetOrRemove = ! isPrimary || hasValues;\n\treturn (\n\t\t<Dropdown\n\t\t\tdefaultOpen={ openedFilter === filter.field }\n\t\t\tcontentClassName=\"dataviews-filter-summary__popover\"\n\t\t\tpopoverProps={ { placement: 'bottom-start', role: 'dialog' } }\n\t\t\tonClose={ () => {\n\t\t\t\ttoggleRef.current?.focus();\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<div className=\"dataviews-filter-summary__chip-container\">\n\t\t\t\t\t<Tooltip\n\t\t\t\t\t\ttext={ sprintf(\n\t\t\t\t\t\t\t/* translators: 1: Filter name. */\n\t\t\t\t\t\t\t__( 'Filter by: %1$s' ),\n\t\t\t\t\t\t\tfilter.name.toLowerCase()\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'dataviews-filter-summary__chip',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'has-reset': canResetOrRemove,\n\t\t\t\t\t\t\t\t\t'has-values': hasValues,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\t\ttabIndex={ 0 }\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t[ ENTER, SPACE ].includes( event.keyCode )\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-pressed={ isOpen }\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\tref={ toggleRef }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FilterText\n\t\t\t\t\t\t\t\tactiveElements={ activeElements }\n\t\t\t\t\t\t\t\tfilterInView={ filterInView }\n\t\t\t\t\t\t\t\tfilter={ filter }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t\t{ canResetOrRemove && (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\ttext={ isPrimary ? __( 'Reset' ) : __( 'Remove' ) }\n\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t'dataviews-filter-summary__chip-remove',\n\t\t\t\t\t\t\t\t\t{ 'has-values': hasValues }\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\t\tfilters: view.filters.filter(\n\t\t\t\t\t\t\t\t\t\t\t( _filter ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t_filter.field !== filter.field\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// If the filter is not primary and can be removed, it will be added\n\t\t\t\t\t\t\t\t\t// back to the available filters from `Add filter` component.\n\t\t\t\t\t\t\t\t\tif ( ! isPrimary ) {\n\t\t\t\t\t\t\t\t\t\taddFilterRef.current?.focus();\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t// If is primary, focus the toggle button.\n\t\t\t\t\t\t\t\t\t\ttoggleRef.current?.focus();\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\t\t<Icon icon={ closeSmall } />\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\trenderContent={ () => {\n\t\t\t\treturn (\n\t\t\t\t\t<VStack spacing={ 0 } justify=\"flex-start\">\n\t\t\t\t\t\t<OperatorSelector { ...commonProps } />\n\t\t\t\t\t\t<SearchWidget { ...commonProps } />\n\t\t\t\t\t</VStack>\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
|
package/build-module/filters.js
CHANGED
|
@@ -11,7 +11,7 @@ import FilterSummary from './filter-summary';
|
|
|
11
11
|
import AddFilter from './add-filter';
|
|
12
12
|
import ResetFilters from './reset-filters';
|
|
13
13
|
import { sanitizeOperators } from './utils';
|
|
14
|
-
import { ENUMERATION_TYPE,
|
|
14
|
+
import { ENUMERATION_TYPE, ALL_OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT } from './constants';
|
|
15
15
|
import { __experimentalHStack as HStack } from '@wordpress/components';
|
|
16
16
|
const Filters = memo(function Filters({
|
|
17
17
|
fields,
|
|
@@ -40,8 +40,9 @@ const Filters = memo(function Filters({
|
|
|
40
40
|
field: field.id,
|
|
41
41
|
name: field.header,
|
|
42
42
|
elements: field.elements,
|
|
43
|
+
singleSelection: operators.some(op => [OPERATOR_IS, OPERATOR_IS_NOT].includes(op)),
|
|
43
44
|
operators,
|
|
44
|
-
isVisible: isPrimary || view.filters.some(f => f.field === field.id &&
|
|
45
|
+
isVisible: isPrimary || view.filters.some(f => f.field === field.id && ALL_OPERATORS.includes(f.operator)),
|
|
45
46
|
isPrimary
|
|
46
47
|
});
|
|
47
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","useRef","FilterSummary","AddFilter","ResetFilters","sanitizeOperators","ENUMERATION_TYPE","
|
|
1
|
+
{"version":3,"names":["memo","useRef","FilterSummary","AddFilter","ResetFilters","sanitizeOperators","ENUMERATION_TYPE","ALL_OPERATORS","OPERATOR_IS","OPERATOR_IS_NOT","__experimentalHStack","HStack","Filters","fields","view","onChangeView","openedFilter","setOpenedFilter","addFilterRef","filters","forEach","field","type","operators","length","elements","isPrimary","filterBy","push","id","name","header","singleSelection","some","op","includes","isVisible","f","operator","sort","a","b","localeCompare","addFilter","createElement","key","ref","filterComponents","map","filter","justify","style","width","wrap"],"sources":["@wordpress/dataviews/src/filters.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { memo, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport FilterSummary from './filter-summary';\nimport AddFilter from './add-filter';\nimport ResetFilters from './reset-filters';\nimport { sanitizeOperators } from './utils';\nimport {\n\tENUMERATION_TYPE,\n\tALL_OPERATORS,\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n} from './constants';\nimport { __experimentalHStack as HStack } from '@wordpress/components';\n\nconst Filters = memo( function Filters( {\n\tfields,\n\tview,\n\tonChangeView,\n\topenedFilter,\n\tsetOpenedFilter,\n} ) {\n\tconst addFilterRef = useRef();\n\tconst filters = [];\n\tfields.forEach( ( field ) => {\n\t\tif ( ! field.type ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst operators = sanitizeOperators( field );\n\t\tif ( operators.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( field.type ) {\n\t\t\tcase ENUMERATION_TYPE:\n\t\t\t\tif ( ! field.elements?.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst isPrimary = !! field.filterBy?.isPrimary;\n\t\t\t\tfilters.push( {\n\t\t\t\t\tfield: field.id,\n\t\t\t\t\tname: field.header,\n\t\t\t\t\telements: field.elements,\n\t\t\t\t\tsingleSelection: operators.some( ( op ) =>\n\t\t\t\t\t\t[ OPERATOR_IS, OPERATOR_IS_NOT ].includes( op )\n\t\t\t\t\t),\n\t\t\t\t\toperators,\n\t\t\t\t\tisVisible:\n\t\t\t\t\t\tisPrimary ||\n\t\t\t\t\t\tview.filters.some(\n\t\t\t\t\t\t\t( f ) =>\n\t\t\t\t\t\t\t\tf.field === field.id &&\n\t\t\t\t\t\t\t\tALL_OPERATORS.includes( f.operator )\n\t\t\t\t\t\t),\n\t\t\t\t\tisPrimary,\n\t\t\t\t} );\n\t\t}\n\t} );\n\t// Sort filters by primary property. We need the primary filters to be first.\n\t// Then we sort by name.\n\tfilters.sort( ( a, b ) => {\n\t\tif ( a.isPrimary && ! b.isPrimary ) {\n\t\t\treturn -1;\n\t\t}\n\t\tif ( ! a.isPrimary && b.isPrimary ) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn a.name.localeCompare( b.name );\n\t} );\n\tconst addFilter = (\n\t\t<AddFilter\n\t\t\tkey=\"add-filter\"\n\t\t\tfilters={ filters }\n\t\t\tview={ view }\n\t\t\tonChangeView={ onChangeView }\n\t\t\tref={ addFilterRef }\n\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t/>\n\t);\n\tconst filterComponents = [\n\t\t...filters.map( ( filter ) => {\n\t\t\tif ( ! filter.isVisible ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<FilterSummary\n\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\tfilter={ filter }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\taddFilterRef={ addFilterRef }\n\t\t\t\t\topenedFilter={ openedFilter }\n\t\t\t\t/>\n\t\t\t);\n\t\t} ),\n\t\taddFilter,\n\t];\n\n\tif ( filterComponents.length > 1 ) {\n\t\tfilterComponents.push(\n\t\t\t<ResetFilters\n\t\t\t\tkey=\"reset-filters\"\n\t\t\t\tfilters={ filters }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<HStack justify=\"flex-start\" style={ { width: 'fit-content' } } wrap>\n\t\t\t{ filterComponents }\n\t\t</HStack>\n\t);\n} );\n\nexport default Filters;\n"],"mappings":"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"}
|
|
@@ -94,35 +94,27 @@ export default function ItemActions({
|
|
|
94
94
|
}) {
|
|
95
95
|
const {
|
|
96
96
|
primaryActions,
|
|
97
|
-
|
|
97
|
+
eligibleActions
|
|
98
98
|
} = useMemo(() => {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
} else {
|
|
108
|
-
accumulator.secondaryActions.push(action);
|
|
109
|
-
}
|
|
110
|
-
return accumulator;
|
|
111
|
-
}, {
|
|
112
|
-
primaryActions: [],
|
|
113
|
-
secondaryActions: []
|
|
114
|
-
});
|
|
99
|
+
// If an action is eligible for all items, doesn't need
|
|
100
|
+
// to provide the `isEligible` function.
|
|
101
|
+
const _eligibleActions = actions.filter(action => !action.isEligible || action.isEligible(item));
|
|
102
|
+
const _primaryActions = _eligibleActions.filter(action => action.isPrimary && !!action.icon);
|
|
103
|
+
return {
|
|
104
|
+
primaryActions: _primaryActions,
|
|
105
|
+
eligibleActions: _eligibleActions
|
|
106
|
+
};
|
|
115
107
|
}, [actions, item]);
|
|
116
108
|
if (isCompact) {
|
|
117
109
|
return createElement(CompactItemActions, {
|
|
118
110
|
item: item,
|
|
119
|
-
|
|
120
|
-
secondaryActions: secondaryActions
|
|
111
|
+
actions: eligibleActions
|
|
121
112
|
});
|
|
122
113
|
}
|
|
123
114
|
return createElement(HStack, {
|
|
124
115
|
spacing: 1,
|
|
125
116
|
justify: "flex-end",
|
|
117
|
+
className: "dataviews-item-actions",
|
|
126
118
|
style: {
|
|
127
119
|
flexShrink: '0',
|
|
128
120
|
width: 'auto'
|
|
@@ -141,37 +133,26 @@ export default function ItemActions({
|
|
|
141
133
|
action: action,
|
|
142
134
|
onClick: () => action.callback([item])
|
|
143
135
|
});
|
|
144
|
-
}), createElement(
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
label: __('Actions'),
|
|
149
|
-
disabled: !secondaryActions.length
|
|
150
|
-
}),
|
|
151
|
-
placement: "bottom-end"
|
|
152
|
-
}, createElement(ActionsDropdownMenuGroup, {
|
|
153
|
-
actions: secondaryActions,
|
|
154
|
-
item: item
|
|
155
|
-
})));
|
|
136
|
+
}), createElement(CompactItemActions, {
|
|
137
|
+
item: item,
|
|
138
|
+
actions: eligibleActions
|
|
139
|
+
}));
|
|
156
140
|
}
|
|
157
141
|
function CompactItemActions({
|
|
158
142
|
item,
|
|
159
|
-
|
|
160
|
-
secondaryActions
|
|
143
|
+
actions
|
|
161
144
|
}) {
|
|
162
145
|
return createElement(DropdownMenu, {
|
|
163
146
|
trigger: createElement(Button, {
|
|
164
147
|
size: "compact",
|
|
165
148
|
icon: moreVertical,
|
|
166
149
|
label: __('Actions'),
|
|
167
|
-
disabled: !
|
|
150
|
+
disabled: !actions.length,
|
|
151
|
+
className: "dataviews-all-actions-button"
|
|
168
152
|
}),
|
|
169
153
|
placement: "bottom-end"
|
|
170
|
-
},
|
|
171
|
-
actions:
|
|
172
|
-
item: item
|
|
173
|
-
}), !!secondaryActions.length && createElement(ActionsDropdownMenuGroup, {
|
|
174
|
-
actions: secondaryActions,
|
|
154
|
+
}, createElement(ActionsDropdownMenuGroup, {
|
|
155
|
+
actions: actions,
|
|
175
156
|
item: item
|
|
176
157
|
}));
|
|
177
158
|
}
|