@wordpress/dataviews 2.0.2 → 2.0.4
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/build/bulk-actions.js +5 -19
- package/build/bulk-actions.js.map +1 -1
- package/build/dataviews.js +17 -11
- package/build/dataviews.js.map +1 -1
- package/build/single-selection-checkbox.js +1 -1
- package/build/single-selection-checkbox.js.map +1 -1
- package/build/view-list.js +2 -2
- package/build/view-list.js.map +1 -1
- package/build/view-table.js +11 -5
- package/build/view-table.js.map +1 -1
- package/build-module/bulk-actions.js +6 -20
- package/build-module/bulk-actions.js.map +1 -1
- package/build-module/dataviews.js +18 -12
- package/build-module/dataviews.js.map +1 -1
- package/build-module/single-selection-checkbox.js +1 -1
- package/build-module/single-selection-checkbox.js.map +1 -1
- package/build-module/view-list.js +2 -2
- package/build-module/view-list.js.map +1 -1
- package/build-module/view-table.js +11 -5
- package/build-module/view-table.js.map +1 -1
- package/build-style/style-rtl.css +1 -2
- package/build-style/style.css +1 -2
- package/build-types/bulk-actions.d.ts.map +1 -1
- package/build-types/dataviews.d.ts +3 -1
- package/build-types/dataviews.d.ts.map +1 -1
- package/build-types/view-table.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/bulk-actions.tsx +10 -31
- package/src/dataviews.tsx +25 -24
- package/src/single-selection-checkbox.tsx +1 -1
- package/src/style.scss +1 -2
- package/src/view-list.tsx +2 -2
- package/src/view-table.tsx +14 -3
- package/tsconfig.tsbuildinfo +1 -1
package/build/view-table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_icons","_components","_element","_singleSelectionCheckbox","_lockUnlock","_itemActions","_utils","_constants","_bulkActions","_jsxRuntime","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuRadioItemV2","DropdownMenuRadioItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","DropdownMenuSeparatorV2","DropdownMenuSeparator","unlock","componentsPrivateApis","WithDropDownMenuSeparators","children","Children","toArray","filter","Boolean","map","child","i","jsxs","Fragment","jsx","_HeaderMenu","forwardRef","HeaderMenu","field","view","onChangeView","onHide","setOpenedFilter","ref","isHidable","enableHiding","isSortable","enableSorting","isSorted","sort","id","operators","sanitizeOperators","canAddFilter","filters","some","_filter","elements","length","filterBy","isPrimary","header","align","trigger","Button","size","className","variant","sortArrows","direction","style","minWidth","SORTING_DIRECTIONS","isChecked","value","name","checked","onChange","sortLabels","prefix","Icon","icon","funnel","onClick","page","undefined","operator","__","unseen","hiddenFields","concat","BulkSelectionCheckbox","selection","onSelectionChange","data","actions","selectableItems","useMemo","item","action","supportsBulk","isEligible","areAllSelected","CheckboxControl","__nextHasNoMarginBottom","indeterminate","TableRow","hasBulkActions","visibleFields","primaryField","getItemId","hasPossibleBulkAction","useHasAPossibleBulkAction","isSelected","includes","isHovered","setIsHovered","useState","handleMouseEnter","handleMouseLeave","isTouchDevice","useRef","clsx","onMouseEnter","onMouseLeave","onTouchStart","current","document","getSelection","type","_item","itemId","width","default","disabled","maxWidth","render","e","stopPropagation","ViewTable","fields","isLoading","headerMenuRefs","Map","headerMenuToFocusRef","nextHeaderMenuToFocus","setNextHeaderMenuToFocus","useSomeItemHasAPossibleBulkAction","useEffect","focus","tableNoticeId","useId","hidden","get","fallback","node","layout","mediaField","hasData","find","scope","index","sortValues","set","delete","toString","Spinner","_default","exports"],"sources":["@wordpress/dataviews/src/view-table.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { ReactNode, Ref, PropsWithoutRef, RefAttributes } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { unseen, funnel } from '@wordpress/icons';\nimport {\n\tButton,\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n\tCheckboxControl,\n\tSpinner,\n} from '@wordpress/components';\nimport {\n\tforwardRef,\n\tuseEffect,\n\tuseId,\n\tuseRef,\n\tuseState,\n\tuseMemo,\n\tChildren,\n\tFragment,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SingleSelectionCheckbox from './single-selection-checkbox';\nimport { unlock } from './lock-unlock';\nimport ItemActions from './item-actions';\nimport { sanitizeOperators } from './utils';\nimport {\n\tSORTING_DIRECTIONS,\n\tsortArrows,\n\tsortLabels,\n\tsortValues,\n} from './constants';\nimport {\n\tuseSomeItemHasAPossibleBulkAction,\n\tuseHasAPossibleBulkAction,\n} from './bulk-actions';\nimport type {\n\tAction,\n\tAnyItem,\n\tNormalizedField,\n\tSortDirection,\n\tViewTable as ViewTableType,\n\tViewTableProps,\n} from './types';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuRadioItemV2: DropdownMenuRadioItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n\tDropdownMenuSeparatorV2: DropdownMenuSeparator,\n} = unlock( componentsPrivateApis );\n\ninterface HeaderMenuProps< Item extends AnyItem > {\n\tfield: NormalizedField< Item >;\n\tview: ViewTableType;\n\tonChangeView: ( view: ViewTableType ) => void;\n\tonHide: ( field: NormalizedField< Item > ) => void;\n\tsetOpenedFilter: ( fieldId: string ) => void;\n}\n\ninterface BulkSelectionCheckboxProps< Item extends AnyItem > {\n\tselection: string[];\n\tonSelectionChange: ( items: Item[] ) => void;\n\tdata: Item[];\n\tactions: Action< Item >[];\n}\n\ninterface TableRowProps< Item extends AnyItem > {\n\thasBulkActions: boolean;\n\titem: Item;\n\tactions: Action< Item >[];\n\tid: string;\n\tvisibleFields: NormalizedField< Item >[];\n\tprimaryField?: NormalizedField< Item >;\n\tselection: string[];\n\tgetItemId: ( item: Item ) => string;\n\tonSelectionChange: ( items: Item[] ) => void;\n\tdata: Item[];\n}\n\nfunction WithDropDownMenuSeparators( { children }: { children: ReactNode } ) {\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 _HeaderMenu = forwardRef( function HeaderMenu< Item extends AnyItem >(\n\t{\n\t\tfield,\n\t\tview,\n\t\tonChangeView,\n\t\tonHide,\n\t\tsetOpenedFilter,\n\t}: HeaderMenuProps< Item >,\n\tref: Ref< HTMLButtonElement >\n) {\n\tconst isHidable = field.enableHiding !== false;\n\tconst isSortable = field.enableSorting !== false;\n\tconst isSorted = view.sort?.field === field.id;\n\tconst operators = sanitizeOperators( field );\n\t// Filter can be added:\n\t// 1. If the field is not already part of a view's filters.\n\t// 2. If the field meets the type and operator requirements.\n\t// 3. If it's not primary. If it is, it should be already visible.\n\tconst canAddFilter =\n\t\t! view.filters?.some( ( _filter ) => field.id === _filter.field ) &&\n\t\t!! field.elements?.length &&\n\t\t!! operators.length &&\n\t\t! field.filterBy?.isPrimary;\n\tif ( ! isSortable && ! isHidable && ! canAddFilter ) {\n\t\treturn field.header;\n\t}\n\treturn (\n\t\t<DropdownMenu\n\t\t\talign=\"start\"\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tclassName=\"dataviews-view-table-header-button\"\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t>\n\t\t\t\t\t{ field.header }\n\t\t\t\t\t{ view.sort && isSorted && (\n\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t{ 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{ SORTING_DIRECTIONS.map(\n\t\t\t\t\t\t\t( direction: SortDirection ) => {\n\t\t\t\t\t\t\t\tconst isChecked =\n\t\t\t\t\t\t\t\t\tview.sort &&\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{ sortLabels[ direction ] }\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\n// @ts-expect-error Lift the `Item` type argument through the forwardRef.\nconst HeaderMenu: < Item extends AnyItem >(\n\tprops: PropsWithoutRef< HeaderMenuProps< Item > > &\n\t\tRefAttributes< HTMLButtonElement >\n) => ReturnType< typeof _HeaderMenu > = _HeaderMenu;\n\nfunction BulkSelectionCheckbox< Item extends AnyItem >( {\n\tselection,\n\tonSelectionChange,\n\tdata,\n\tactions,\n}: BulkSelectionCheckboxProps< Item > ) {\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn actions.some(\n\t\t\t\t( action ) =>\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t);\n\t\t} );\n\t}, [ data, actions ] );\n\tconst areAllSelected = selection.length === selectableItems.length;\n\treturn (\n\t\t<CheckboxControl\n\t\t\tclassName=\"dataviews-view-table-selection-checkbox\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\tchecked={ areAllSelected }\n\t\t\tindeterminate={ ! areAllSelected && !! selection.length }\n\t\t\tonChange={ () => {\n\t\t\t\tif ( areAllSelected ) {\n\t\t\t\t\tonSelectionChange( [] );\n\t\t\t\t} else {\n\t\t\t\t\tonSelectionChange( selectableItems );\n\t\t\t\t}\n\t\t\t} }\n\t\t\taria-label={\n\t\t\t\tareAllSelected ? __( 'Deselect all' ) : __( 'Select all' )\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction TableRow< Item extends AnyItem >( {\n\thasBulkActions,\n\titem,\n\tactions,\n\tid,\n\tvisibleFields,\n\tprimaryField,\n\tselection,\n\tgetItemId,\n\tonSelectionChange,\n\tdata,\n}: TableRowProps< Item > ) {\n\tconst hasPossibleBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst isSelected = selection.includes( id );\n\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\n\tconst handleMouseEnter = () => {\n\t\tsetIsHovered( true );\n\t};\n\n\tconst handleMouseLeave = () => {\n\t\tsetIsHovered( false );\n\t};\n\n\t// Will be set to true if `onTouchStart` fires. This happens before\n\t// `onClick` and can be used to exclude touchscreen devices from certain\n\t// behaviours.\n\tconst isTouchDevice = useRef( false );\n\n\treturn (\n\t\t<tr\n\t\t\tclassName={ clsx( 'dataviews-view-table__row', {\n\t\t\t\t'is-selected': hasPossibleBulkAction && isSelected,\n\t\t\t\t'is-hovered': isHovered,\n\t\t\t\t'has-bulk-actions': hasPossibleBulkAction,\n\t\t\t} ) }\n\t\t\tonMouseEnter={ handleMouseEnter }\n\t\t\tonMouseLeave={ handleMouseLeave }\n\t\t\tonTouchStart={ () => {\n\t\t\t\tisTouchDevice.current = true;\n\t\t\t} }\n\t\t\tonClick={ () => {\n\t\t\t\tif (\n\t\t\t\t\t! isTouchDevice.current &&\n\t\t\t\t\tdocument.getSelection()?.type !== 'Range'\n\t\t\t\t) {\n\t\t\t\t\tif ( ! isSelected ) {\n\t\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\titemId === id ||\n\t\t\t\t\t\t\t\t\tselection.includes( itemId )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\titemId !== id &&\n\t\t\t\t\t\t\t\t\tselection.includes( itemId )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t{ hasBulkActions && (\n\t\t\t\t<td\n\t\t\t\t\tclassName=\"dataviews-view-table__checkbox-column\"\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth: '1%',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<div className=\"dataviews-view-table__cell-content-wrapper\">\n\t\t\t\t\t\t<SingleSelectionCheckbox\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\t\tdisabled={ ! hasPossibleBulkAction }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</td>\n\t\t\t) }\n\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t<td\n\t\t\t\t\tkey={ field.id }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth: field.width || undefined,\n\t\t\t\t\t\tminWidth: field.minWidth || undefined,\n\t\t\t\t\t\tmaxWidth: field.maxWidth || undefined,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'dataviews-view-table__cell-content-wrapper',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'dataviews-view-table__primary-field':\n\t\t\t\t\t\t\t\t\tprimaryField?.id === field.id,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ field.render( {\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</div>\n\t\t\t\t</td>\n\t\t\t) ) }\n\t\t\t{ !! actions?.length && (\n\t\t\t\t// Disable reason: we are not making the element interactive,\n\t\t\t\t// but preventing any click events from bubbling up to the\n\t\t\t\t// table row. This allows us to add a click handler to the row\n\t\t\t\t// itself (to toggle row selection) without erroneously\n\t\t\t\t// intercepting click events from ItemActions.\n\n\t\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t\t<td\n\t\t\t\t\tclassName=\"dataviews-view-table__actions-column\"\n\t\t\t\t\tonClick={ ( e ) => e.stopPropagation() }\n\t\t\t\t>\n\t\t\t\t\t<ItemActions item={ item } actions={ actions } />\n\t\t\t\t</td>\n\t\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t) }\n\t\t</tr>\n\t);\n}\n\nfunction ViewTable< Item extends AnyItem >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading = false,\n\tonChangeView,\n\tonSelectionChange,\n\tselection,\n\tsetOpenedFilter,\n\tview,\n}: ViewTableProps< Item > ) {\n\tconst headerMenuRefs = useRef<\n\t\tMap< string, { node: HTMLButtonElement; fallback: string } >\n\t>( new Map() );\n\tconst headerMenuToFocusRef = useRef< HTMLButtonElement >();\n\tconst [ nextHeaderMenuToFocus, setNextHeaderMenuToFocus ] =\n\t\tuseState< HTMLButtonElement >();\n\tconst hasBulkActions = useSomeItemHasAPossibleBulkAction( actions, data );\n\n\tuseEffect( () => {\n\t\tif ( headerMenuToFocusRef.current ) {\n\t\t\theaderMenuToFocusRef.current.focus();\n\t\t\theaderMenuToFocusRef.current = undefined;\n\t\t}\n\t} );\n\n\tconst tableNoticeId = useId();\n\n\tif ( nextHeaderMenuToFocus ) {\n\t\t// If we need to force focus, we short-circuit rendering here\n\t\t// to prevent any additional work while we handle that.\n\t\t// Clearing out the focus directive is necessary to make sure\n\t\t// future renders don't cause unexpected focus jumps.\n\t\theaderMenuToFocusRef.current = nextHeaderMenuToFocus;\n\t\tsetNextHeaderMenuToFocus( undefined );\n\t\treturn;\n\t}\n\n\tconst onHide = ( field: NormalizedField< Item > ) => {\n\t\tconst hidden = headerMenuRefs.current.get( field.id );\n\t\tconst fallback = hidden\n\t\t\t? headerMenuRefs.current.get( hidden.fallback )\n\t\t\t: undefined;\n\t\tsetNextHeaderMenuToFocus( fallback?.node );\n\t};\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\t! view.hiddenFields.includes( field.id ) &&\n\t\t\t! [ view.layout.mediaField ].includes( field.id )\n\t);\n\tconst hasData = !! data?.length;\n\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout.primaryField\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<table\n\t\t\t\tclassName=\"dataviews-view-table\"\n\t\t\t\taria-busy={ isLoading }\n\t\t\t\taria-describedby={ tableNoticeId }\n\t\t\t>\n\t\t\t\t<thead>\n\t\t\t\t\t<tr className=\"dataviews-view-table__row\">\n\t\t\t\t\t\t{ hasBulkActions && (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-table__checkbox-column\"\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\twidth: '1%',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdata-field-id=\"selection\"\n\t\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<BulkSelectionCheckbox\n\t\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ visibleFields.map( ( field, index ) => (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\twidth: field.width || undefined,\n\t\t\t\t\t\t\t\t\tminWidth: field.minWidth || undefined,\n\t\t\t\t\t\t\t\t\tmaxWidth: field.maxWidth || undefined,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdata-field-id={ field.id }\n\t\t\t\t\t\t\t\taria-sort={\n\t\t\t\t\t\t\t\t\tview.sort?.field === field.id\n\t\t\t\t\t\t\t\t\t\t? sortValues[ view.sort.direction ]\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<HeaderMenu\n\t\t\t\t\t\t\t\t\tref={ ( node ) => {\n\t\t\t\t\t\t\t\t\t\tif ( node ) {\n\t\t\t\t\t\t\t\t\t\t\theaderMenuRefs.current.set(\n\t\t\t\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfallback:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvisibleFields[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? index - 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]?.id,\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\theaderMenuRefs.current.delete(\n\t\t\t\t\t\t\t\t\t\t\t\tfield.id\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t\tonHide={ onHide }\n\t\t\t\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tdata-field-id=\"actions\"\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-table__actions-column\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span className=\"dataviews-view-table-header\">\n\t\t\t\t\t\t\t\t\t{ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t{ hasData &&\n\t\t\t\t\t\tdata.map( ( item, index ) => (\n\t\t\t\t\t\t\t<TableRow\n\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\thasBulkActions={ hasBulkActions }\n\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\tid={ getItemId( item ) || index.toString() }\n\t\t\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t\t<div\n\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t'dataviews-no-results': ! hasData && ! isLoading,\n\t\t\t\t} ) }\n\t\t\t\tid={ tableNoticeId }\n\t\t\t>\n\t\t\t\t{ ! hasData && (\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ViewTable;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_icons","_components","_element","_singleSelectionCheckbox","_lockUnlock","_itemActions","_utils","_constants","_bulkActions","_jsxRuntime","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuRadioItemV2","DropdownMenuRadioItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","DropdownMenuSeparatorV2","DropdownMenuSeparator","unlock","componentsPrivateApis","WithDropDownMenuSeparators","children","Children","toArray","filter","Boolean","map","child","i","jsxs","Fragment","jsx","_HeaderMenu","forwardRef","HeaderMenu","field","view","onChangeView","onHide","setOpenedFilter","ref","isHidable","enableHiding","isSortable","enableSorting","isSorted","sort","id","operators","sanitizeOperators","canAddFilter","filters","some","_filter","elements","length","filterBy","isPrimary","header","align","trigger","Button","size","className","variant","sortArrows","direction","style","minWidth","SORTING_DIRECTIONS","isChecked","value","name","checked","onChange","sortLabels","prefix","Icon","icon","funnel","onClick","page","undefined","operator","__","unseen","hiddenFields","concat","BulkSelectionCheckbox","selection","onSelectionChange","data","actions","getItemId","selectableItems","useMemo","item","action","supportsBulk","isEligible","selectedItems","includes","areAllSelected","CheckboxControl","__nextHasNoMarginBottom","indeterminate","TableRow","hasBulkActions","visibleFields","primaryField","hasPossibleBulkAction","useHasAPossibleBulkAction","isSelected","isHovered","setIsHovered","useState","handleMouseEnter","handleMouseLeave","isTouchDevice","useRef","clsx","onMouseEnter","onMouseLeave","onTouchStart","current","document","getSelection","type","_item","itemId","width","default","disabled","maxWidth","render","e","stopPropagation","ViewTable","fields","isLoading","headerMenuRefs","Map","headerMenuToFocusRef","nextHeaderMenuToFocus","setNextHeaderMenuToFocus","useSomeItemHasAPossibleBulkAction","useEffect","focus","tableNoticeId","useId","hidden","get","fallback","node","layout","mediaField","hasData","find","scope","index","sortValues","set","delete","toString","Spinner","_default","exports"],"sources":["@wordpress/dataviews/src/view-table.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { ReactNode, Ref, PropsWithoutRef, RefAttributes } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { unseen, funnel } from '@wordpress/icons';\nimport {\n\tButton,\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n\tCheckboxControl,\n\tSpinner,\n} from '@wordpress/components';\nimport {\n\tforwardRef,\n\tuseEffect,\n\tuseId,\n\tuseRef,\n\tuseState,\n\tuseMemo,\n\tChildren,\n\tFragment,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SingleSelectionCheckbox from './single-selection-checkbox';\nimport { unlock } from './lock-unlock';\nimport ItemActions from './item-actions';\nimport { sanitizeOperators } from './utils';\nimport {\n\tSORTING_DIRECTIONS,\n\tsortArrows,\n\tsortLabels,\n\tsortValues,\n} from './constants';\nimport {\n\tuseSomeItemHasAPossibleBulkAction,\n\tuseHasAPossibleBulkAction,\n} from './bulk-actions';\nimport type {\n\tAction,\n\tAnyItem,\n\tNormalizedField,\n\tSortDirection,\n\tViewTable as ViewTableType,\n\tViewTableProps,\n} from './types';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuRadioItemV2: DropdownMenuRadioItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n\tDropdownMenuSeparatorV2: DropdownMenuSeparator,\n} = unlock( componentsPrivateApis );\n\ninterface HeaderMenuProps< Item extends AnyItem > {\n\tfield: NormalizedField< Item >;\n\tview: ViewTableType;\n\tonChangeView: ( view: ViewTableType ) => void;\n\tonHide: ( field: NormalizedField< Item > ) => void;\n\tsetOpenedFilter: ( fieldId: string ) => void;\n}\n\ninterface BulkSelectionCheckboxProps< Item extends AnyItem > {\n\tselection: string[];\n\tonSelectionChange: ( items: Item[] ) => void;\n\tdata: Item[];\n\tactions: Action< Item >[];\n\tgetItemId: ( item: Item ) => string;\n}\n\ninterface TableRowProps< Item extends AnyItem > {\n\thasBulkActions: boolean;\n\titem: Item;\n\tactions: Action< Item >[];\n\tid: string;\n\tvisibleFields: NormalizedField< Item >[];\n\tprimaryField?: NormalizedField< Item >;\n\tselection: string[];\n\tgetItemId: ( item: Item ) => string;\n\tonSelectionChange: ( items: Item[] ) => void;\n\tdata: Item[];\n}\n\nfunction WithDropDownMenuSeparators( { children }: { children: ReactNode } ) {\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 _HeaderMenu = forwardRef( function HeaderMenu< Item extends AnyItem >(\n\t{\n\t\tfield,\n\t\tview,\n\t\tonChangeView,\n\t\tonHide,\n\t\tsetOpenedFilter,\n\t}: HeaderMenuProps< Item >,\n\tref: Ref< HTMLButtonElement >\n) {\n\tconst isHidable = field.enableHiding !== false;\n\tconst isSortable = field.enableSorting !== false;\n\tconst isSorted = view.sort?.field === field.id;\n\tconst operators = sanitizeOperators( field );\n\t// Filter can be added:\n\t// 1. If the field is not already part of a view's filters.\n\t// 2. If the field meets the type and operator requirements.\n\t// 3. If it's not primary. If it is, it should be already visible.\n\tconst canAddFilter =\n\t\t! view.filters?.some( ( _filter ) => field.id === _filter.field ) &&\n\t\t!! field.elements?.length &&\n\t\t!! operators.length &&\n\t\t! field.filterBy?.isPrimary;\n\tif ( ! isSortable && ! isHidable && ! canAddFilter ) {\n\t\treturn field.header;\n\t}\n\treturn (\n\t\t<DropdownMenu\n\t\t\talign=\"start\"\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tclassName=\"dataviews-view-table-header-button\"\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t>\n\t\t\t\t\t{ field.header }\n\t\t\t\t\t{ view.sort && isSorted && (\n\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t{ 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{ SORTING_DIRECTIONS.map(\n\t\t\t\t\t\t\t( direction: SortDirection ) => {\n\t\t\t\t\t\t\t\tconst isChecked =\n\t\t\t\t\t\t\t\t\tview.sort &&\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{ sortLabels[ direction ] }\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\n// @ts-expect-error Lift the `Item` type argument through the forwardRef.\nconst HeaderMenu: < Item extends AnyItem >(\n\tprops: PropsWithoutRef< HeaderMenuProps< Item > > &\n\t\tRefAttributes< HTMLButtonElement >\n) => ReturnType< typeof _HeaderMenu > = _HeaderMenu;\n\nfunction BulkSelectionCheckbox< Item extends AnyItem >( {\n\tselection,\n\tonSelectionChange,\n\tdata,\n\tactions,\n\tgetItemId,\n}: BulkSelectionCheckboxProps< Item > ) {\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn actions.some(\n\t\t\t\t( action ) =>\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t);\n\t\t} );\n\t}, [ data, actions ] );\n\tconst selectedItems = data.filter(\n\t\t( item ) =>\n\t\t\tselection.includes( getItemId( item ) ) &&\n\t\t\tselectableItems.includes( item )\n\t);\n\tconst areAllSelected = selectedItems.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 && !! selectedItems.length }\n\t\t\tonChange={ () => {\n\t\t\t\tif ( areAllSelected ) {\n\t\t\t\t\tonSelectionChange( [] );\n\t\t\t\t} else {\n\t\t\t\t\tonSelectionChange( selectableItems );\n\t\t\t\t}\n\t\t\t} }\n\t\t\taria-label={\n\t\t\t\tareAllSelected ? __( 'Deselect all' ) : __( 'Select all' )\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction TableRow< Item extends AnyItem >( {\n\thasBulkActions,\n\titem,\n\tactions,\n\tid,\n\tvisibleFields,\n\tprimaryField,\n\tselection,\n\tgetItemId,\n\tonSelectionChange,\n\tdata,\n}: TableRowProps< Item > ) {\n\tconst hasPossibleBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst isSelected = hasPossibleBulkAction && selection.includes( id );\n\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\n\tconst handleMouseEnter = () => {\n\t\tsetIsHovered( true );\n\t};\n\n\tconst handleMouseLeave = () => {\n\t\tsetIsHovered( false );\n\t};\n\n\t// Will be set to true if `onTouchStart` fires. This happens before\n\t// `onClick` and can be used to exclude touchscreen devices from certain\n\t// behaviours.\n\tconst isTouchDevice = useRef( false );\n\n\treturn (\n\t\t<tr\n\t\t\tclassName={ clsx( 'dataviews-view-table__row', {\n\t\t\t\t'is-selected': hasPossibleBulkAction && isSelected,\n\t\t\t\t'is-hovered': isHovered,\n\t\t\t\t'has-bulk-actions': hasPossibleBulkAction,\n\t\t\t} ) }\n\t\t\tonMouseEnter={ handleMouseEnter }\n\t\t\tonMouseLeave={ handleMouseLeave }\n\t\t\tonTouchStart={ () => {\n\t\t\t\tisTouchDevice.current = true;\n\t\t\t} }\n\t\t\tonClick={ () => {\n\t\t\t\tif ( ! hasPossibleBulkAction ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\t! isTouchDevice.current &&\n\t\t\t\t\tdocument.getSelection()?.type !== 'Range'\n\t\t\t\t) {\n\t\t\t\t\tif ( ! isSelected ) {\n\t\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\titemId === id ||\n\t\t\t\t\t\t\t\t\tselection.includes( itemId )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\titemId !== id &&\n\t\t\t\t\t\t\t\t\tselection.includes( itemId )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t{ hasBulkActions && (\n\t\t\t\t<td\n\t\t\t\t\tclassName=\"dataviews-view-table__checkbox-column\"\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth: '1%',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<div className=\"dataviews-view-table__cell-content-wrapper\">\n\t\t\t\t\t\t<SingleSelectionCheckbox\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\t\tdisabled={ ! hasPossibleBulkAction }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</td>\n\t\t\t) }\n\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t<td\n\t\t\t\t\tkey={ field.id }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth: field.width || undefined,\n\t\t\t\t\t\tminWidth: field.minWidth || undefined,\n\t\t\t\t\t\tmaxWidth: field.maxWidth || undefined,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'dataviews-view-table__cell-content-wrapper',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'dataviews-view-table__primary-field':\n\t\t\t\t\t\t\t\t\tprimaryField?.id === field.id,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ field.render( {\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</div>\n\t\t\t\t</td>\n\t\t\t) ) }\n\t\t\t{ !! actions?.length && (\n\t\t\t\t// Disable reason: we are not making the element interactive,\n\t\t\t\t// but preventing any click events from bubbling up to the\n\t\t\t\t// table row. This allows us to add a click handler to the row\n\t\t\t\t// itself (to toggle row selection) without erroneously\n\t\t\t\t// intercepting click events from ItemActions.\n\n\t\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t\t<td\n\t\t\t\t\tclassName=\"dataviews-view-table__actions-column\"\n\t\t\t\t\tonClick={ ( e ) => e.stopPropagation() }\n\t\t\t\t>\n\t\t\t\t\t<ItemActions item={ item } actions={ actions } />\n\t\t\t\t</td>\n\t\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t) }\n\t\t</tr>\n\t);\n}\n\nfunction ViewTable< Item extends AnyItem >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading = false,\n\tonChangeView,\n\tonSelectionChange,\n\tselection,\n\tsetOpenedFilter,\n\tview,\n}: ViewTableProps< Item > ) {\n\tconst headerMenuRefs = useRef<\n\t\tMap< string, { node: HTMLButtonElement; fallback: string } >\n\t>( new Map() );\n\tconst headerMenuToFocusRef = useRef< HTMLButtonElement >();\n\tconst [ nextHeaderMenuToFocus, setNextHeaderMenuToFocus ] =\n\t\tuseState< HTMLButtonElement >();\n\tconst hasBulkActions = useSomeItemHasAPossibleBulkAction( actions, data );\n\n\tuseEffect( () => {\n\t\tif ( headerMenuToFocusRef.current ) {\n\t\t\theaderMenuToFocusRef.current.focus();\n\t\t\theaderMenuToFocusRef.current = undefined;\n\t\t}\n\t} );\n\n\tconst tableNoticeId = useId();\n\n\tif ( nextHeaderMenuToFocus ) {\n\t\t// If we need to force focus, we short-circuit rendering here\n\t\t// to prevent any additional work while we handle that.\n\t\t// Clearing out the focus directive is necessary to make sure\n\t\t// future renders don't cause unexpected focus jumps.\n\t\theaderMenuToFocusRef.current = nextHeaderMenuToFocus;\n\t\tsetNextHeaderMenuToFocus( undefined );\n\t\treturn;\n\t}\n\n\tconst onHide = ( field: NormalizedField< Item > ) => {\n\t\tconst hidden = headerMenuRefs.current.get( field.id );\n\t\tconst fallback = hidden\n\t\t\t? headerMenuRefs.current.get( hidden.fallback )\n\t\t\t: undefined;\n\t\tsetNextHeaderMenuToFocus( fallback?.node );\n\t};\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\t! view.hiddenFields.includes( field.id ) &&\n\t\t\t! [ view.layout.mediaField ].includes( field.id )\n\t);\n\tconst hasData = !! data?.length;\n\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout.primaryField\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<table\n\t\t\t\tclassName=\"dataviews-view-table\"\n\t\t\t\taria-busy={ isLoading }\n\t\t\t\taria-describedby={ tableNoticeId }\n\t\t\t>\n\t\t\t\t<thead>\n\t\t\t\t\t<tr className=\"dataviews-view-table__row\">\n\t\t\t\t\t\t{ hasBulkActions && (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-table__checkbox-column\"\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\twidth: '1%',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdata-field-id=\"selection\"\n\t\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<BulkSelectionCheckbox\n\t\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t\tgetItemId={ getItemId }\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\t\t? sortValues[ view.sort.direction ]\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<HeaderMenu\n\t\t\t\t\t\t\t\t\tref={ ( node ) => {\n\t\t\t\t\t\t\t\t\t\tif ( node ) {\n\t\t\t\t\t\t\t\t\t\t\theaderMenuRefs.current.set(\n\t\t\t\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfallback:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvisibleFields[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? index - 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]?.id,\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\theaderMenuRefs.current.delete(\n\t\t\t\t\t\t\t\t\t\t\t\tfield.id\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t\tonHide={ onHide }\n\t\t\t\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tdata-field-id=\"actions\"\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-table__actions-column\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span className=\"dataviews-view-table-header\">\n\t\t\t\t\t\t\t\t\t{ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t{ hasData &&\n\t\t\t\t\t\tdata.map( ( item, index ) => (\n\t\t\t\t\t\t\t<TableRow\n\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\thasBulkActions={ hasBulkActions }\n\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\tid={ getItemId( item ) || index.toString() }\n\t\t\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t\t<div\n\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t'dataviews-no-results': ! hasData && ! isLoading,\n\t\t\t\t} ) }\n\t\t\t\tid={ tableNoticeId }\n\t\t\t>\n\t\t\t\t{ ! hasData && (\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ViewTable;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { privateApis as componentsPrivateApis, Button, Modal } from '@wordpress/components';
|
|
5
5
|
import { __, sprintf, _n } from '@wordpress/i18n';
|
|
6
|
-
import { useMemo, useState, useCallback
|
|
6
|
+
import { useMemo, useState, useCallback } from '@wordpress/element';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Internal dependencies
|
|
@@ -117,24 +117,10 @@ export default function BulkActions({
|
|
|
117
117
|
});
|
|
118
118
|
}, [data, bulkActions]);
|
|
119
119
|
const numberSelectableItems = selectableItems.length;
|
|
120
|
-
const areAllSelected = selection && selection.length === numberSelectableItems;
|
|
121
120
|
const selectedItems = useMemo(() => {
|
|
122
|
-
return data.filter(item => selection.includes(getItemId(item)));
|
|
123
|
-
}, [selection, data, getItemId]);
|
|
124
|
-
const
|
|
125
|
-
return selectedItems.some(item => {
|
|
126
|
-
return !selectableItems.includes(item);
|
|
127
|
-
});
|
|
128
|
-
}, [selectedItems, selectableItems]);
|
|
129
|
-
useEffect(() => {
|
|
130
|
-
if (hasNonSelectableItemSelected) {
|
|
131
|
-
onSelectionChange(selectedItems.filter(selectedItem => {
|
|
132
|
-
return selectableItems.some(item => {
|
|
133
|
-
return getItemId(selectedItem) === getItemId(item);
|
|
134
|
-
});
|
|
135
|
-
}));
|
|
136
|
-
}
|
|
137
|
-
}, [hasNonSelectableItemSelected, selectedItems, selectableItems, getItemId, onSelectionChange]);
|
|
121
|
+
return data.filter(item => selection.includes(getItemId(item)) && selectableItems.includes(item));
|
|
122
|
+
}, [selection, data, getItemId, selectableItems]);
|
|
123
|
+
const areAllSelected = selectedItems.length === numberSelectableItems;
|
|
138
124
|
if (bulkActions.length === 0) {
|
|
139
125
|
return null;
|
|
140
126
|
}
|
|
@@ -151,8 +137,8 @@ export default function BulkActions({
|
|
|
151
137
|
__next40pxDefaultSize: true,
|
|
152
138
|
variant: "tertiary",
|
|
153
139
|
size: "compact",
|
|
154
|
-
children:
|
|
155
|
-
_n('Edit %d item', 'Edit %d items',
|
|
140
|
+
children: selectedItems.length ? sprintf( /* translators: %d: Number of items. */
|
|
141
|
+
_n('Edit %d item', 'Edit %d items', selectedItems.length), selectedItems.length) : __('Bulk edit')
|
|
156
142
|
}),
|
|
157
143
|
children: [/*#__PURE__*/_jsx(ActionsMenuGroup, {
|
|
158
144
|
actions: bulkActions,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["privateApis","componentsPrivateApis","Button","Modal","__","sprintf","_n","useMemo","useState","useCallback","useEffect","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuSeparatorV2","DropdownMenuSeparator","useHasAPossibleBulkAction","actions","item","some","action","supportsBulk","isEligible","useSomeItemHasAPossibleBulkAction","data","ActionWithModal","selectedItems","setActionWithModal","onMenuOpenChange","eligibleItems","filter","RenderModal","hideModalHeader","onCloseModal","undefined","label","title","__experimentalHideHeader","onRequestClose","overlayClassName","children","items","closeModal","onActionPerformed","BulkActionItem","shouldShowModal","disabled","length","hideOnClick","onClick","callback","suffix","id","ActionsMenuGroup","map","BulkActions","selection","onSelectionChange","getItemId","bulkActions","isMenuOpen","actionWithModal","selectableItems","numberSelectableItems","areAllSelected","includes","hasNonSelectableItemSelected","selectedItem","open","onOpenChange","style","minWidth","trigger","className","__next40pxDefaultSize","variant","size"],"sources":["@wordpress/dataviews/src/bulk-actions.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as componentsPrivateApis,\n\tButton,\n\tModal,\n} from '@wordpress/components';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useMemo, useState, useCallback, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport type { Action, ActionModal, AnyItem } from './types';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuSeparatorV2: DropdownMenuSeparator,\n} = unlock( componentsPrivateApis );\n\ninterface ActionWithModalProps< Item extends AnyItem > {\n\taction: ActionModal< Item >;\n\tselectedItems: Item[];\n\tsetActionWithModal: ( action?: ActionModal< Item > ) => void;\n\tonMenuOpenChange: ( isOpen: boolean ) => void;\n}\n\ninterface BulkActionsItemProps< Item extends AnyItem > {\n\taction: Action< Item >;\n\tselectedItems: Item[];\n\tsetActionWithModal: ( action?: ActionModal< Item > ) => void;\n}\n\ninterface ActionsMenuGroupProps< Item extends AnyItem > {\n\tactions: Action< Item >[];\n\tselectedItems: Item[];\n\tsetActionWithModal: ( action?: ActionModal< Item > ) => void;\n}\n\ninterface BulkActionsProps< Item extends AnyItem > {\n\tdata: Item[];\n\tactions: Action< Item >[];\n\tselection: string[];\n\tonSelectionChange: ( selection: Item[] ) => void;\n\tgetItemId: ( item: Item ) => string;\n}\n\nexport function useHasAPossibleBulkAction< Item extends AnyItem >(\n\tactions: Action< Item >[],\n\titem: Item\n) {\n\treturn useMemo( () => {\n\t\treturn actions.some( ( action ) => {\n\t\t\treturn (\n\t\t\t\taction.supportsBulk &&\n\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t);\n\t\t} );\n\t}, [ actions, item ] );\n}\n\nexport function useSomeItemHasAPossibleBulkAction< Item extends AnyItem >(\n\tactions: Action< Item >[],\n\tdata: Item[]\n) {\n\treturn useMemo( () => {\n\t\treturn data.some( ( item ) => {\n\t\t\treturn actions.some( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t\t);\n\t\t\t} );\n\t\t} );\n\t}, [ actions, data ] );\n}\n\nfunction ActionWithModal< Item extends AnyItem >( {\n\taction,\n\tselectedItems,\n\tsetActionWithModal,\n\tonMenuOpenChange,\n}: ActionWithModalProps< Item > ) {\n\tconst eligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter(\n\t\t\t( item ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t}, [ action, selectedItems ] );\n\tconst { RenderModal, hideModalHeader } = action;\n\tconst onCloseModal = useCallback( () => {\n\t\tsetActionWithModal( undefined );\n\t}, [ setActionWithModal ] );\n\tconst label =\n\t\ttypeof action.label === 'string'\n\t\t\t? action.label\n\t\t\t: action.label( selectedItems );\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ ! hideModalHeader ? label : undefined }\n\t\t\t__experimentalHideHeader={ !! hideModalHeader }\n\t\t\tonRequestClose={ onCloseModal }\n\t\t\toverlayClassName=\"dataviews-action-modal\"\n\t\t>\n\t\t\t<RenderModal\n\t\t\t\titems={ eligibleItems }\n\t\t\t\tcloseModal={ onCloseModal }\n\t\t\t\tonActionPerformed={ () => onMenuOpenChange( false ) }\n\t\t\t/>\n\t\t</Modal>\n\t);\n}\n\nfunction BulkActionItem< Item extends AnyItem >( {\n\taction,\n\tselectedItems,\n\tsetActionWithModal,\n}: BulkActionsItemProps< Item > ) {\n\tconst eligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter(\n\t\t\t( item ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t}, [ action, selectedItems ] );\n\n\tconst shouldShowModal = 'RenderModal' in action;\n\n\treturn (\n\t\t<DropdownMenuItem\n\t\t\tkey={ action.id }\n\t\t\tdisabled={ eligibleItems.length === 0 }\n\t\t\thideOnClick={ ! shouldShowModal }\n\t\t\tonClick={ async () => {\n\t\t\t\tif ( shouldShowModal ) {\n\t\t\t\t\tsetActionWithModal( action );\n\t\t\t\t} else {\n\t\t\t\t\tawait action.callback( eligibleItems );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tsuffix={\n\t\t\t\teligibleItems.length > 0 ? eligibleItems.length : undefined\n\t\t\t}\n\t\t>\n\t\t\t{ action.label }\n\t\t</DropdownMenuItem>\n\t);\n}\n\nfunction ActionsMenuGroup< Item extends AnyItem >( {\n\tactions,\n\tselectedItems,\n\tsetActionWithModal,\n}: ActionsMenuGroupProps< Item > ) {\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenuGroup>\n\t\t\t\t{ actions.map( ( action ) => (\n\t\t\t\t\t<BulkActionItem\n\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\tsetActionWithModal={ setActionWithModal }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</DropdownMenuGroup>\n\t\t\t<DropdownMenuSeparator />\n\t\t</>\n\t);\n}\n\nexport default function BulkActions< Item extends AnyItem >( {\n\tdata,\n\tactions,\n\tselection,\n\tonSelectionChange,\n\tgetItemId,\n}: BulkActionsProps< Item > ) {\n\tconst bulkActions = useMemo(\n\t\t() => actions.filter( ( action ) => action.supportsBulk ),\n\t\t[ actions ]\n\t);\n\tconst [ isMenuOpen, onMenuOpenChange ] = useState( false );\n\tconst [ actionWithModal, setActionWithModal ] = useState<\n\t\tActionModal< Item > | undefined\n\t>();\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn bulkActions.some(\n\t\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t\t);\n\t\t} );\n\t}, [ data, bulkActions ] );\n\n\tconst numberSelectableItems = selectableItems.length;\n\tconst areAllSelected =\n\t\tselection && selection.length === numberSelectableItems;\n\n\tconst selectedItems = useMemo( () => {\n\t\treturn data.filter( ( item ) =>\n\t\t\tselection.includes( getItemId( item ) )\n\t\t);\n\t}, [ selection, data, getItemId ] );\n\n\tconst hasNonSelectableItemSelected = useMemo( () => {\n\t\treturn selectedItems.some( ( item ) => {\n\t\t\treturn ! selectableItems.includes( item );\n\t\t} );\n\t}, [ selectedItems, selectableItems ] );\n\tuseEffect( () => {\n\t\tif ( hasNonSelectableItemSelected ) {\n\t\t\tonSelectionChange(\n\t\t\t\tselectedItems.filter( ( selectedItem ) => {\n\t\t\t\t\treturn selectableItems.some( ( item ) => {\n\t\t\t\t\t\treturn getItemId( selectedItem ) === getItemId( item );\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t);\n\t\t}\n\t}, [\n\t\thasNonSelectableItemSelected,\n\t\tselectedItems,\n\t\tselectableItems,\n\t\tgetItemId,\n\t\tonSelectionChange,\n\t] );\n\n\tif ( bulkActions.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenu\n\t\t\t\topen={ isMenuOpen }\n\t\t\t\tonOpenChange={ onMenuOpenChange }\n\t\t\t\tlabel={ __( 'Bulk actions' ) }\n\t\t\t\tstyle={ { minWidth: '240px' } }\n\t\t\t\ttrigger={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"dataviews-bulk-edit-button\"\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ selection.length\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %d: Number of items. */\n\t\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t\t'Edit %d item',\n\t\t\t\t\t\t\t\t\t\t'Edit %d items',\n\t\t\t\t\t\t\t\t\t\tselection.length\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tselection.length\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'Bulk edit' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<ActionsMenuGroup\n\t\t\t\t\tactions={ bulkActions }\n\t\t\t\t\tsetActionWithModal={ setActionWithModal }\n\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t/>\n\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tdisabled={ areAllSelected }\n\t\t\t\t\t\thideOnClick={ false }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonSelectionChange( selectableItems );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsuffix={ numberSelectableItems }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Select all' ) }\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tdisabled={ selection.length === 0 }\n\t\t\t\t\t\thideOnClick={ false }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonSelectionChange( [] );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Deselect' ) }\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t</DropdownMenuGroup>\n\t\t\t</DropdownMenu>\n\t\t\t{ actionWithModal && (\n\t\t\t\t<ActionWithModal\n\t\t\t\t\taction={ actionWithModal }\n\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\tsetActionWithModal={ setActionWithModal }\n\t\t\t\t\tonMenuOpenChange={ onMenuOpenChange }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["privateApis","componentsPrivateApis","Button","Modal","__","sprintf","_n","useMemo","useState","useCallback","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuSeparatorV2","DropdownMenuSeparator","useHasAPossibleBulkAction","actions","item","some","action","supportsBulk","isEligible","useSomeItemHasAPossibleBulkAction","data","ActionWithModal","selectedItems","setActionWithModal","onMenuOpenChange","eligibleItems","filter","RenderModal","hideModalHeader","onCloseModal","undefined","label","title","__experimentalHideHeader","onRequestClose","overlayClassName","children","items","closeModal","onActionPerformed","BulkActionItem","shouldShowModal","disabled","length","hideOnClick","onClick","callback","suffix","id","ActionsMenuGroup","map","BulkActions","selection","onSelectionChange","getItemId","bulkActions","isMenuOpen","actionWithModal","selectableItems","numberSelectableItems","includes","areAllSelected","open","onOpenChange","style","minWidth","trigger","className","__next40pxDefaultSize","variant","size"],"sources":["@wordpress/dataviews/src/bulk-actions.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as componentsPrivateApis,\n\tButton,\n\tModal,\n} from '@wordpress/components';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useMemo, useState, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport type { Action, ActionModal, AnyItem } from './types';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuSeparatorV2: DropdownMenuSeparator,\n} = unlock( componentsPrivateApis );\n\ninterface ActionWithModalProps< Item extends AnyItem > {\n\taction: ActionModal< Item >;\n\tselectedItems: Item[];\n\tsetActionWithModal: ( action?: ActionModal< Item > ) => void;\n\tonMenuOpenChange: ( isOpen: boolean ) => void;\n}\n\ninterface BulkActionsItemProps< Item extends AnyItem > {\n\taction: Action< Item >;\n\tselectedItems: Item[];\n\tsetActionWithModal: ( action?: ActionModal< Item > ) => void;\n}\n\ninterface ActionsMenuGroupProps< Item extends AnyItem > {\n\tactions: Action< Item >[];\n\tselectedItems: Item[];\n\tsetActionWithModal: ( action?: ActionModal< Item > ) => void;\n}\n\ninterface BulkActionsProps< Item extends AnyItem > {\n\tdata: Item[];\n\tactions: Action< Item >[];\n\tselection: string[];\n\tonSelectionChange: ( selection: Item[] ) => void;\n\tgetItemId: ( item: Item ) => string;\n}\n\nexport function useHasAPossibleBulkAction< Item extends AnyItem >(\n\tactions: Action< Item >[],\n\titem: Item\n) {\n\treturn useMemo( () => {\n\t\treturn actions.some( ( action ) => {\n\t\t\treturn (\n\t\t\t\taction.supportsBulk &&\n\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t);\n\t\t} );\n\t}, [ actions, item ] );\n}\n\nexport function useSomeItemHasAPossibleBulkAction< Item extends AnyItem >(\n\tactions: Action< Item >[],\n\tdata: Item[]\n) {\n\treturn useMemo( () => {\n\t\treturn data.some( ( item ) => {\n\t\t\treturn actions.some( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t\t);\n\t\t\t} );\n\t\t} );\n\t}, [ actions, data ] );\n}\n\nfunction ActionWithModal< Item extends AnyItem >( {\n\taction,\n\tselectedItems,\n\tsetActionWithModal,\n\tonMenuOpenChange,\n}: ActionWithModalProps< Item > ) {\n\tconst eligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter(\n\t\t\t( item ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t}, [ action, selectedItems ] );\n\tconst { RenderModal, hideModalHeader } = action;\n\tconst onCloseModal = useCallback( () => {\n\t\tsetActionWithModal( undefined );\n\t}, [ setActionWithModal ] );\n\tconst label =\n\t\ttypeof action.label === 'string'\n\t\t\t? action.label\n\t\t\t: action.label( selectedItems );\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ ! hideModalHeader ? label : undefined }\n\t\t\t__experimentalHideHeader={ !! hideModalHeader }\n\t\t\tonRequestClose={ onCloseModal }\n\t\t\toverlayClassName=\"dataviews-action-modal\"\n\t\t>\n\t\t\t<RenderModal\n\t\t\t\titems={ eligibleItems }\n\t\t\t\tcloseModal={ onCloseModal }\n\t\t\t\tonActionPerformed={ () => onMenuOpenChange( false ) }\n\t\t\t/>\n\t\t</Modal>\n\t);\n}\n\nfunction BulkActionItem< Item extends AnyItem >( {\n\taction,\n\tselectedItems,\n\tsetActionWithModal,\n}: BulkActionsItemProps< Item > ) {\n\tconst eligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter(\n\t\t\t( item ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t}, [ action, selectedItems ] );\n\n\tconst shouldShowModal = 'RenderModal' in action;\n\n\treturn (\n\t\t<DropdownMenuItem\n\t\t\tkey={ action.id }\n\t\t\tdisabled={ eligibleItems.length === 0 }\n\t\t\thideOnClick={ ! shouldShowModal }\n\t\t\tonClick={ async () => {\n\t\t\t\tif ( shouldShowModal ) {\n\t\t\t\t\tsetActionWithModal( action );\n\t\t\t\t} else {\n\t\t\t\t\tawait action.callback( eligibleItems );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tsuffix={\n\t\t\t\teligibleItems.length > 0 ? eligibleItems.length : undefined\n\t\t\t}\n\t\t>\n\t\t\t{ action.label }\n\t\t</DropdownMenuItem>\n\t);\n}\n\nfunction ActionsMenuGroup< Item extends AnyItem >( {\n\tactions,\n\tselectedItems,\n\tsetActionWithModal,\n}: ActionsMenuGroupProps< Item > ) {\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenuGroup>\n\t\t\t\t{ actions.map( ( action ) => (\n\t\t\t\t\t<BulkActionItem\n\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\tsetActionWithModal={ setActionWithModal }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</DropdownMenuGroup>\n\t\t\t<DropdownMenuSeparator />\n\t\t</>\n\t);\n}\n\nexport default function BulkActions< Item extends AnyItem >( {\n\tdata,\n\tactions,\n\tselection,\n\tonSelectionChange,\n\tgetItemId,\n}: BulkActionsProps< Item > ) {\n\tconst bulkActions = useMemo(\n\t\t() => actions.filter( ( action ) => action.supportsBulk ),\n\t\t[ actions ]\n\t);\n\tconst [ isMenuOpen, onMenuOpenChange ] = useState( false );\n\tconst [ actionWithModal, setActionWithModal ] = useState<\n\t\tActionModal< Item > | undefined\n\t>();\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn bulkActions.some(\n\t\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t\t);\n\t\t} );\n\t}, [ data, bulkActions ] );\n\n\tconst numberSelectableItems = selectableItems.length;\n\n\tconst selectedItems = useMemo( () => {\n\t\treturn data.filter(\n\t\t\t( item ) =>\n\t\t\t\tselection.includes( getItemId( item ) ) &&\n\t\t\t\tselectableItems.includes( item )\n\t\t);\n\t}, [ selection, data, getItemId, selectableItems ] );\n\n\tconst areAllSelected = selectedItems.length === numberSelectableItems;\n\n\tif ( bulkActions.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenu\n\t\t\t\topen={ isMenuOpen }\n\t\t\t\tonOpenChange={ onMenuOpenChange }\n\t\t\t\tlabel={ __( 'Bulk actions' ) }\n\t\t\t\tstyle={ { minWidth: '240px' } }\n\t\t\t\ttrigger={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"dataviews-bulk-edit-button\"\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ selectedItems.length\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %d: Number of items. */\n\t\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t\t'Edit %d item',\n\t\t\t\t\t\t\t\t\t\t'Edit %d items',\n\t\t\t\t\t\t\t\t\t\tselectedItems.length\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tselectedItems.length\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'Bulk edit' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<ActionsMenuGroup\n\t\t\t\t\tactions={ bulkActions }\n\t\t\t\t\tsetActionWithModal={ setActionWithModal }\n\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t/>\n\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tdisabled={ areAllSelected }\n\t\t\t\t\t\thideOnClick={ false }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonSelectionChange( selectableItems );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsuffix={ numberSelectableItems }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Select all' ) }\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tdisabled={ selection.length === 0 }\n\t\t\t\t\t\thideOnClick={ false }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonSelectionChange( [] );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Deselect' ) }\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t</DropdownMenuGroup>\n\t\t\t</DropdownMenu>\n\t\t\t{ actionWithModal && (\n\t\t\t\t<ActionWithModal\n\t\t\t\t\taction={ actionWithModal }\n\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\tsetActionWithModal={ setActionWithModal }\n\t\t\t\t\tonMenuOpenChange={ onMenuOpenChange }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* WordPress dependencies
|
|
7
7
|
*/
|
|
8
8
|
import { __experimentalHStack as HStack } from '@wordpress/components';
|
|
9
|
-
import { useMemo, useState, useCallback
|
|
9
|
+
import { useMemo, useState, useCallback } from '@wordpress/element';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Internal dependencies
|
|
@@ -45,17 +45,20 @@ export default function DataViews({
|
|
|
45
45
|
isLoading = false,
|
|
46
46
|
paginationInfo,
|
|
47
47
|
supportedLayouts,
|
|
48
|
+
selection: selectionProperty,
|
|
49
|
+
setSelection: setSelectionProperty,
|
|
48
50
|
onSelectionChange = defaultOnSelectionChange
|
|
49
51
|
}) {
|
|
50
|
-
const [
|
|
52
|
+
const [selectionState, setSelectionState] = useState([]);
|
|
53
|
+
let selection, setSelection;
|
|
54
|
+
if (selectionProperty !== undefined && setSelectionProperty !== undefined) {
|
|
55
|
+
selection = selectionProperty;
|
|
56
|
+
setSelection = setSelectionProperty;
|
|
57
|
+
} else {
|
|
58
|
+
selection = selectionState;
|
|
59
|
+
setSelection = setSelectionState;
|
|
60
|
+
}
|
|
51
61
|
const [openedFilter, setOpenedFilter] = useState(null);
|
|
52
|
-
useEffect(() => {
|
|
53
|
-
if (selection.length > 0 && selection.some(id => !data.some(item => getItemId(item) === id))) {
|
|
54
|
-
const newSelection = selection.filter(id => data.some(item => getItemId(item) === id));
|
|
55
|
-
setSelection(newSelection);
|
|
56
|
-
onSelectionChange(data.filter(item => newSelection.includes(getItemId(item))));
|
|
57
|
-
}
|
|
58
|
-
}, [selection, data, getItemId, onSelectionChange]);
|
|
59
62
|
const onSetSelection = useCallback(items => {
|
|
60
63
|
setSelection(items.map(item => getItemId(item)));
|
|
61
64
|
onSelectionChange(items);
|
|
@@ -63,6 +66,9 @@ export default function DataViews({
|
|
|
63
66
|
const ViewComponent = VIEW_LAYOUTS.find(v => v.type === view.type)?.component;
|
|
64
67
|
const _fields = useMemo(() => normalizeFields(fields), [fields]);
|
|
65
68
|
const hasPossibleBulkAction = useSomeItemHasAPossibleBulkAction(actions, data);
|
|
69
|
+
const _selection = useMemo(() => {
|
|
70
|
+
return selection.filter(id => data.some(item => getItemId(item) === id));
|
|
71
|
+
}, [selection, data, getItemId]);
|
|
66
72
|
return /*#__PURE__*/_jsxs("div", {
|
|
67
73
|
className: "dataviews-wrapper",
|
|
68
74
|
children: [/*#__PURE__*/_jsxs(HStack, {
|
|
@@ -88,7 +94,7 @@ export default function DataViews({
|
|
|
88
94
|
actions: actions,
|
|
89
95
|
data: data,
|
|
90
96
|
onSelectionChange: onSetSelection,
|
|
91
|
-
selection:
|
|
97
|
+
selection: _selection,
|
|
92
98
|
getItemId: getItemId
|
|
93
99
|
}), /*#__PURE__*/_jsx(ViewActions, {
|
|
94
100
|
fields: _fields,
|
|
@@ -104,7 +110,7 @@ export default function DataViews({
|
|
|
104
110
|
isLoading: isLoading,
|
|
105
111
|
onChangeView: onChangeView,
|
|
106
112
|
onSelectionChange: onSetSelection,
|
|
107
|
-
selection:
|
|
113
|
+
selection: _selection,
|
|
108
114
|
setOpenedFilter: setOpenedFilter,
|
|
109
115
|
view: view
|
|
110
116
|
}), /*#__PURE__*/_jsx(Pagination, {
|
|
@@ -114,7 +120,7 @@ export default function DataViews({
|
|
|
114
120
|
}), [LAYOUT_TABLE, LAYOUT_GRID].includes(view.type) && hasPossibleBulkAction && /*#__PURE__*/_jsx(BulkActionsToolbar, {
|
|
115
121
|
data: data,
|
|
116
122
|
actions: actions,
|
|
117
|
-
selection:
|
|
123
|
+
selection: _selection,
|
|
118
124
|
onSelectionChange: onSetSelection,
|
|
119
125
|
getItemId: getItemId
|
|
120
126
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__experimentalHStack","HStack","useMemo","useState","useCallback","useEffect","Pagination","ViewActions","Filters","Search","LAYOUT_TABLE","LAYOUT_GRID","VIEW_LAYOUTS","BulkActions","normalizeFields","BulkActionsToolbar","jsx","_jsx","jsxs","_jsxs","defaultGetItemId","item","id","defaultOnSelectionChange","useSomeItemHasAPossibleBulkAction","actions","data","some","action","supportsBulk","isEligible","DataViews","view","onChangeView","fields","search","searchLabel","undefined","getItemId","isLoading","paginationInfo","supportedLayouts","onSelectionChange","selection","setSelection","openedFilter","setOpenedFilter","length","newSelection","filter","includes","onSetSelection","items","map","ViewComponent","find","v","type","component","_fields","hasPossibleBulkAction","className","children","alignment","justify","wrap","label"],"sources":["@wordpress/dataviews/src/dataviews.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ComponentType } from 'react';\n\n/**\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 { LAYOUT_TABLE, LAYOUT_GRID } from './constants';\nimport { VIEW_LAYOUTS } from './layouts';\nimport BulkActions from './bulk-actions';\nimport { normalizeFields } from './normalize-fields';\nimport BulkActionsToolbar from './bulk-actions-toolbar';\nimport type { Action, AnyItem, Field, View, ViewBaseProps } from './types';\n\ninterface DataViewsProps< Item extends AnyItem > {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: Field< Item >[];\n\tsearch?: boolean;\n\tsearchLabel?: string;\n\tactions?: Action< Item >[];\n\tdata: Item[];\n\tgetItemId?: ( item: Item ) => string;\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t};\n\tsupportedLayouts: string[];\n\tonSelectionChange?: ( items: Item[] ) => void;\n}\n\nconst defaultGetItemId = ( item: AnyItem ) => item.id;\nconst defaultOnSelectionChange = () => {};\n\nfunction useSomeItemHasAPossibleBulkAction< Item extends AnyItem >(\n\tactions: Action< Item >[],\n\tdata: Item[]\n) {\n\treturn useMemo( () => {\n\t\treturn data.some( ( item ) => {\n\t\t\treturn actions.some( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t\t);\n\t\t\t} );\n\t\t} );\n\t}, [ actions, data ] );\n}\n\nexport default function DataViews< Item extends AnyItem >( {\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}: DataViewsProps< Item > ) {\n\tconst [ selection, setSelection ] = useState< string[] >( [] );\n\tconst [ openedFilter, setOpenedFilter ] = useState< string | null >( 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: Item[] ) => {\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( ( v ) => v.type === view.type )\n\t\t?.component as ComponentType< ViewBaseProps< Item > >;\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ 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\tactions={ actions }\n\t\t\t\tdata={ data }\n\t\t\t\tfields={ _fields }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t\tisLoading={ isLoading }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tonSelectionChange={ onSetSelection }\n\t\t\t\tselection={ selection }\n\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\tview={ view }\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\t{ [ LAYOUT_TABLE, LAYOUT_GRID ].includes( view.type ) &&\n\t\t\t\thasPossibleBulkAction && (\n\t\t\t\t\t<BulkActionsToolbar\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\tonSelectionChange={ onSetSelection }\n\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;;AAGA;AACA;AACA;AACA,SAASA,oBAAoB,IAAIC,MAAM,QAAQ,uBAAuB;AACtE,SAASC,OAAO,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,SAAS,QAAQ,oBAAoB;;AAE9E;AACA;AACA;AACA,OAAOC,UAAU,MAAM,cAAc;AACrC,OAAOC,WAAW,MAAM,gBAAgB;AACxC,OAAOC,OAAO,MAAM,WAAW;AAC/B,OAAOC,MAAM,MAAM,UAAU;AAC7B,SAASC,YAAY,EAAEC,WAAW,QAAQ,aAAa;AACvD,SAASC,YAAY,QAAQ,WAAW;AACxC,OAAOC,WAAW,MAAM,gBAAgB;AACxC,SAASC,eAAe,QAAQ,oBAAoB;AACpD,OAAOC,kBAAkB,MAAM,wBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAqBxD,MAAMC,gBAAgB,GAAKC,IAAa,IAAMA,IAAI,CAACC,EAAE;AACrD,MAAMC,wBAAwB,GAAGA,CAAA,KAAM,CAAC,CAAC;AAEzC,SAASC,iCAAiCA,CACzCC,OAAyB,EACzBC,IAAY,EACX;EACD,OAAOxB,OAAO,CAAE,MAAM;IACrB,OAAOwB,IAAI,CAACC,IAAI,CAAIN,IAAI,IAAM;MAC7B,OAAOI,OAAO,CAACE,IAAI,CAAIC,MAAM,IAAM;QAClC,OACCA,MAAM,CAACC,YAAY,KACjB,CAAED,MAAM,CAACE,UAAU,IAAIF,MAAM,CAACE,UAAU,CAAET,IAAK,CAAC,CAAE;MAEtD,CAAE,CAAC;IACJ,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEI,OAAO,EAAEC,IAAI,CAAG,CAAC;AACvB;AAEA,eAAe,SAASK,SAASA,CAA0B;EAC1DC,IAAI;EACJC,YAAY;EACZC,MAAM;EACNC,MAAM,GAAG,IAAI;EACbC,WAAW,GAAGC,SAAS;EACvBZ,OAAO,GAAG,EAAE;EACZC,IAAI;EACJY,SAAS,GAAGlB,gBAAgB;EAC5BmB,SAAS,GAAG,KAAK;EACjBC,cAAc;EACdC,gBAAgB;EAChBC,iBAAiB,GAAGnB;AACG,CAAC,EAAG;EAC3B,MAAM,CAAEoB,SAAS,EAAEC,YAAY,CAAE,GAAGzC,QAAQ,CAAc,EAAG,CAAC;EAC9D,MAAM,CAAE0C,YAAY,EAAEC,eAAe,CAAE,GAAG3C,QAAQ,CAAmB,IAAK,CAAC;EAE3EE,SAAS,CAAE,MAAM;IAChB,IACCsC,SAAS,CAACI,MAAM,GAAG,CAAC,IACpBJ,SAAS,CAAChB,IAAI,CACXL,EAAE,IAAM,CAAEI,IAAI,CAACC,IAAI,CAAIN,IAAI,IAAMiB,SAAS,CAAEjB,IAAK,CAAC,KAAKC,EAAG,CAC7D,CAAC,EACA;MACD,MAAM0B,YAAY,GAAGL,SAAS,CAACM,MAAM,CAAI3B,EAAE,IAC1CI,IAAI,CAACC,IAAI,CAAIN,IAAI,IAAMiB,SAAS,CAAEjB,IAAK,CAAC,KAAKC,EAAG,CACjD,CAAC;MACDsB,YAAY,CAAEI,YAAa,CAAC;MAC5BN,iBAAiB,CAChBhB,IAAI,CAACuB,MAAM,CAAI5B,IAAI,IAClB2B,YAAY,CAACE,QAAQ,CAAEZ,SAAS,CAAEjB,IAAK,CAAE,CAC1C,CACD,CAAC;IACF;EACD,CAAC,EAAE,CAAEsB,SAAS,EAAEjB,IAAI,EAAEY,SAAS,EAAEI,iBAAiB,CAAG,CAAC;EAEtD,MAAMS,cAAc,GAAG/C,WAAW,CAC/BgD,KAAa,IAAM;IACpBR,YAAY,CAAEQ,KAAK,CAACC,GAAG,CAAIhC,IAAI,IAAMiB,SAAS,CAAEjB,IAAK,CAAE,CAAE,CAAC;IAC1DqB,iBAAiB,CAAEU,KAAM,CAAC;EAC3B,CAAC,EACD,CAAER,YAAY,EAAEN,SAAS,EAAEI,iBAAiB,CAC7C,CAAC;EAED,MAAMY,aAAa,GAAG1C,YAAY,CAAC2C,IAAI,CAAIC,CAAC,IAAMA,CAAC,CAACC,IAAI,KAAKzB,IAAI,CAACyB,IAAK,CAAC,EACrEC,SAAmD;EACtD,MAAMC,OAAO,GAAGzD,OAAO,CAAE,MAAMY,eAAe,CAAEoB,MAAO,CAAC,EAAE,CAAEA,MAAM,CAAG,CAAC;EAEtE,MAAM0B,qBAAqB,GAAGpC,iCAAiC,CAC9DC,OAAO,EACPC,IACD,CAAC;EACD,oBACCP,KAAA;IAAK0C,SAAS,EAAC,mBAAmB;IAAAC,QAAA,gBACjC3C,KAAA,CAAClB,MAAM;MACN8D,SAAS,EAAC,KAAK;MACfC,OAAO,EAAC,OAAO;MACfH,SAAS,EAAC,iCAAiC;MAAAC,QAAA,gBAE3C3C,KAAA,CAAClB,MAAM;QACN+D,OAAO,EAAC,OAAO;QACfH,SAAS,EAAC,8BAA8B;QACxCI,IAAI;QAAAH,QAAA,GAEF3B,MAAM,iBACPlB,IAAA,CAACR,MAAM;UACNyD,KAAK,EAAG9B,WAAa;UACrBJ,IAAI,EAAGA,IAAM;UACbC,YAAY,EAAGA;QAAc,CAC7B,CACD,eACDhB,IAAA,CAACT,OAAO;UACP0B,MAAM,EAAGyB,OAAS;UAClB3B,IAAI,EAAGA,IAAM;UACbC,YAAY,EAAGA,YAAc;UAC7BY,YAAY,EAAGA,YAAc;UAC7BC,eAAe,EAAGA;QAAiB,CACnC,CAAC;MAAA,CACK,CAAC,EACP,CAAEpC,YAAY,EAAEC,WAAW,CAAE,CAACuC,QAAQ,CAAElB,IAAI,CAACyB,IAAK,CAAC,IACpDG,qBAAqB,iBACpB3C,IAAA,CAACJ,WAAW;QACXY,OAAO,EAAGA,OAAS;QACnBC,IAAI,EAAGA,IAAM;QACbgB,iBAAiB,EAAGS,cAAgB;QACpCR,SAAS,EAAGA,SAAW;QACvBL,SAAS,EAAGA;MAAW,CACvB,CACD,eACFrB,IAAA,CAACV,WAAW;QACX2B,MAAM,EAAGyB,OAAS;QAClB3B,IAAI,EAAGA,IAAM;QACbC,YAAY,EAAGA,YAAc;QAC7BQ,gBAAgB,EAAGA;MAAkB,CACrC,CAAC;IAAA,CACK,CAAC,eACTxB,IAAA,CAACqC,aAAa;MACb7B,OAAO,EAAGA,OAAS;MACnBC,IAAI,EAAGA,IAAM;MACbQ,MAAM,EAAGyB,OAAS;MAClBrB,SAAS,EAAGA,SAAW;MACvBC,SAAS,EAAGA,SAAW;MACvBN,YAAY,EAAGA,YAAc;MAC7BS,iBAAiB,EAAGS,cAAgB;MACpCR,SAAS,EAAGA,SAAW;MACvBG,eAAe,EAAGA,eAAiB;MACnCd,IAAI,EAAGA;IAAM,CACb,CAAC,eACFf,IAAA,CAACX,UAAU;MACV0B,IAAI,EAAGA,IAAM;MACbC,YAAY,EAAGA,YAAc;MAC7BO,cAAc,EAAGA;IAAgB,CACjC,CAAC,EACA,CAAE9B,YAAY,EAAEC,WAAW,CAAE,CAACuC,QAAQ,CAAElB,IAAI,CAACyB,IAAK,CAAC,IACpDG,qBAAqB,iBACpB3C,IAAA,CAACF,kBAAkB;MAClBW,IAAI,EAAGA,IAAM;MACbD,OAAO,EAAGA,OAAS;MACnBkB,SAAS,EAAGA,SAAW;MACvBD,iBAAiB,EAAGS,cAAgB;MACpCb,SAAS,EAAGA;IAAW,CACvB,CACD;EAAA,CACE,CAAC;AAER","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__experimentalHStack","HStack","useMemo","useState","useCallback","Pagination","ViewActions","Filters","Search","LAYOUT_TABLE","LAYOUT_GRID","VIEW_LAYOUTS","BulkActions","normalizeFields","BulkActionsToolbar","jsx","_jsx","jsxs","_jsxs","defaultGetItemId","item","id","defaultOnSelectionChange","useSomeItemHasAPossibleBulkAction","actions","data","some","action","supportsBulk","isEligible","DataViews","view","onChangeView","fields","search","searchLabel","undefined","getItemId","isLoading","paginationInfo","supportedLayouts","selection","selectionProperty","setSelection","setSelectionProperty","onSelectionChange","selectionState","setSelectionState","openedFilter","setOpenedFilter","onSetSelection","items","map","ViewComponent","find","v","type","component","_fields","hasPossibleBulkAction","_selection","filter","className","children","alignment","justify","wrap","label","includes"],"sources":["@wordpress/dataviews/src/dataviews.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ComponentType } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { useMemo, useState, useCallback } 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 { LAYOUT_TABLE, LAYOUT_GRID } from './constants';\nimport { VIEW_LAYOUTS } from './layouts';\nimport BulkActions from './bulk-actions';\nimport { normalizeFields } from './normalize-fields';\nimport BulkActionsToolbar from './bulk-actions-toolbar';\nimport type { Action, AnyItem, Field, View, ViewBaseProps } from './types';\n\ninterface DataViewsProps< Item extends AnyItem > {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: Field< Item >[];\n\tsearch?: boolean;\n\tsearchLabel?: string;\n\tactions?: Action< Item >[];\n\tdata: Item[];\n\tgetItemId?: ( item: Item ) => string;\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t};\n\tsupportedLayouts: string[];\n\tselection?: string[];\n\tsetSelection?: ( selection: string[] ) => void;\n\tonSelectionChange?: ( items: Item[] ) => void;\n}\n\nconst defaultGetItemId = ( item: AnyItem ) => item.id;\nconst defaultOnSelectionChange = () => {};\n\nfunction useSomeItemHasAPossibleBulkAction< Item extends AnyItem >(\n\tactions: Action< Item >[],\n\tdata: Item[]\n) {\n\treturn useMemo( () => {\n\t\treturn data.some( ( item ) => {\n\t\t\treturn actions.some( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t\t);\n\t\t\t} );\n\t\t} );\n\t}, [ actions, data ] );\n}\n\nexport default function DataViews< Item extends AnyItem >( {\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\tselection: selectionProperty,\n\tsetSelection: setSelectionProperty,\n\tonSelectionChange = defaultOnSelectionChange,\n}: DataViewsProps< Item > ) {\n\tconst [ selectionState, setSelectionState ] = useState< string[] >( [] );\n\tlet selection, setSelection;\n\tif (\n\t\tselectionProperty !== undefined &&\n\t\tsetSelectionProperty !== undefined\n\t) {\n\t\tselection = selectionProperty;\n\t\tsetSelection = setSelectionProperty;\n\t} else {\n\t\tselection = selectionState;\n\t\tsetSelection = setSelectionState;\n\t}\n\tconst [ openedFilter, setOpenedFilter ] = useState< string | null >( null );\n\n\tconst onSetSelection = useCallback(\n\t\t( items: Item[] ) => {\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( ( v ) => v.type === view.type )\n\t\t?.component as ComponentType< ViewBaseProps< Item > >;\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ fields ] );\n\n\tconst hasPossibleBulkAction = useSomeItemHasAPossibleBulkAction(\n\t\tactions,\n\t\tdata\n\t);\n\tconst _selection = useMemo( () => {\n\t\treturn selection.filter( ( id ) =>\n\t\t\tdata.some( ( item ) => getItemId( item ) === id )\n\t\t);\n\t}, [ selection, data, getItemId ] );\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\tactions={ actions }\n\t\t\t\tdata={ data }\n\t\t\t\tfields={ _fields }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t\tisLoading={ isLoading }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tonSelectionChange={ onSetSelection }\n\t\t\t\tselection={ _selection }\n\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\tview={ view }\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\t{ [ LAYOUT_TABLE, LAYOUT_GRID ].includes( view.type ) &&\n\t\t\t\thasPossibleBulkAction && (\n\t\t\t\t\t<BulkActionsToolbar\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\tselection={ _selection }\n\t\t\t\t\t\tonSelectionChange={ onSetSelection }\n\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,7 +18,7 @@ export default function SingleSelectionCheckbox({
|
|
|
18
18
|
disabled
|
|
19
19
|
}) {
|
|
20
20
|
const id = getItemId(item);
|
|
21
|
-
const isSelected = selection.includes(id);
|
|
21
|
+
const isSelected = !disabled && selection.includes(id);
|
|
22
22
|
let selectionLabel;
|
|
23
23
|
if (primaryField?.getValue && item) {
|
|
24
24
|
// eslint-disable-next-line @wordpress/valid-sprintf
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","sprintf","CheckboxControl","jsx","_jsx","SingleSelectionCheckbox","selection","onSelectionChange","item","data","getItemId","primaryField","disabled","id","isSelected","includes","selectionLabel","getValue","className","__nextHasNoMarginBottom","checked","onChange","filter","_item","itemId"],"sources":["@wordpress/dataviews/src/single-selection-checkbox.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { CheckboxControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type { Field, AnyItem } from './types';\n\ninterface SingleSelectionCheckboxProps< Item extends AnyItem > {\n\tselection: string[];\n\tonSelectionChange: ( selection: Item[] ) => void;\n\titem: Item;\n\tdata: Item[];\n\tgetItemId: ( item: Item ) => string;\n\tprimaryField?: Field< Item >;\n\tdisabled: boolean;\n}\n\nexport default function SingleSelectionCheckbox< Item extends AnyItem >( {\n\tselection,\n\tonSelectionChange,\n\titem,\n\tdata,\n\tgetItemId,\n\tprimaryField,\n\tdisabled,\n}: SingleSelectionCheckboxProps< Item > ) {\n\tconst id = getItemId( item );\n\tconst isSelected = selection.includes( id );\n\tlet selectionLabel;\n\tif ( primaryField?.getValue && item ) {\n\t\t// eslint-disable-next-line @wordpress/valid-sprintf\n\t\tselectionLabel = sprintf(\n\t\t\t/* translators: %s: item title. */\n\t\t\tisSelected ? __( 'Deselect item: %s' ) : __( 'Select item: %s' ),\n\t\t\tprimaryField.getValue( { item } )\n\t\t);\n\t} else {\n\t\tselectionLabel = isSelected\n\t\t\t? __( 'Select a new item' )\n\t\t\t: __( 'Deselect item' );\n\t}\n\treturn (\n\t\t<CheckboxControl\n\t\t\tclassName=\"dataviews-view-table-selection-checkbox\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\taria-label={ selectionLabel }\n\t\t\taria-disabled={ disabled }\n\t\t\tchecked={ isSelected }\n\t\t\tonChange={ () => {\n\t\t\t\tif ( disabled ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( ! isSelected ) {\n\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\titemId === id || selection.includes( itemId )\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} else {\n\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\titemId !== id && selection.includes( itemId )\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);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,eAAe,QAAQ,uBAAuB;;AAEvD;AACA;AACA;AAFA,SAAAC,GAAA,IAAAC,IAAA;AAeA,eAAe,SAASC,uBAAuBA,CAA0B;EACxEC,SAAS;EACTC,iBAAiB;EACjBC,IAAI;EACJC,IAAI;EACJC,SAAS;EACTC,YAAY;EACZC;AACqC,CAAC,EAAG;EACzC,MAAMC,EAAE,GAAGH,SAAS,CAAEF,IAAK,CAAC;EAC5B,MAAMM,UAAU,
|
|
1
|
+
{"version":3,"names":["__","sprintf","CheckboxControl","jsx","_jsx","SingleSelectionCheckbox","selection","onSelectionChange","item","data","getItemId","primaryField","disabled","id","isSelected","includes","selectionLabel","getValue","className","__nextHasNoMarginBottom","checked","onChange","filter","_item","itemId"],"sources":["@wordpress/dataviews/src/single-selection-checkbox.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { CheckboxControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type { Field, AnyItem } from './types';\n\ninterface SingleSelectionCheckboxProps< Item extends AnyItem > {\n\tselection: string[];\n\tonSelectionChange: ( selection: Item[] ) => void;\n\titem: Item;\n\tdata: Item[];\n\tgetItemId: ( item: Item ) => string;\n\tprimaryField?: Field< Item >;\n\tdisabled: boolean;\n}\n\nexport default function SingleSelectionCheckbox< Item extends AnyItem >( {\n\tselection,\n\tonSelectionChange,\n\titem,\n\tdata,\n\tgetItemId,\n\tprimaryField,\n\tdisabled,\n}: SingleSelectionCheckboxProps< Item > ) {\n\tconst id = getItemId( item );\n\tconst isSelected = ! disabled && selection.includes( id );\n\tlet selectionLabel;\n\tif ( primaryField?.getValue && item ) {\n\t\t// eslint-disable-next-line @wordpress/valid-sprintf\n\t\tselectionLabel = sprintf(\n\t\t\t/* translators: %s: item title. */\n\t\t\tisSelected ? __( 'Deselect item: %s' ) : __( 'Select item: %s' ),\n\t\t\tprimaryField.getValue( { item } )\n\t\t);\n\t} else {\n\t\tselectionLabel = isSelected\n\t\t\t? __( 'Select a new item' )\n\t\t\t: __( 'Deselect item' );\n\t}\n\treturn (\n\t\t<CheckboxControl\n\t\t\tclassName=\"dataviews-view-table-selection-checkbox\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\taria-label={ selectionLabel }\n\t\t\taria-disabled={ disabled }\n\t\t\tchecked={ isSelected }\n\t\t\tonChange={ () => {\n\t\t\t\tif ( disabled ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( ! isSelected ) {\n\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\titemId === id || selection.includes( itemId )\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} else {\n\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\titemId !== id && selection.includes( itemId )\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);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,eAAe,QAAQ,uBAAuB;;AAEvD;AACA;AACA;AAFA,SAAAC,GAAA,IAAAC,IAAA;AAeA,eAAe,SAASC,uBAAuBA,CAA0B;EACxEC,SAAS;EACTC,iBAAiB;EACjBC,IAAI;EACJC,IAAI;EACJC,SAAS;EACTC,YAAY;EACZC;AACqC,CAAC,EAAG;EACzC,MAAMC,EAAE,GAAGH,SAAS,CAAEF,IAAK,CAAC;EAC5B,MAAMM,UAAU,GAAG,CAAEF,QAAQ,IAAIN,SAAS,CAACS,QAAQ,CAAEF,EAAG,CAAC;EACzD,IAAIG,cAAc;EAClB,IAAKL,YAAY,EAAEM,QAAQ,IAAIT,IAAI,EAAG;IACrC;IACAQ,cAAc,GAAGf,OAAO,EACvB;IACAa,UAAU,GAAGd,EAAE,CAAE,mBAAoB,CAAC,GAAGA,EAAE,CAAE,iBAAkB,CAAC,EAChEW,YAAY,CAACM,QAAQ,CAAE;MAAET;IAAK,CAAE,CACjC,CAAC;EACF,CAAC,MAAM;IACNQ,cAAc,GAAGF,UAAU,GACxBd,EAAE,CAAE,mBAAoB,CAAC,GACzBA,EAAE,CAAE,eAAgB,CAAC;EACzB;EACA,oBACCI,IAAA,CAACF,eAAe;IACfgB,SAAS,EAAC,yCAAyC;IACnDC,uBAAuB;IACvB,cAAaH,cAAgB;IAC7B,iBAAgBJ,QAAU;IAC1BQ,OAAO,EAAGN,UAAY;IACtBO,QAAQ,EAAGA,CAAA,KAAM;MAChB,IAAKT,QAAQ,EAAG;QACf;MACD;MAEA,IAAK,CAAEE,UAAU,EAAG;QACnBP,iBAAiB,CAChBE,IAAI,CAACa,MAAM,CAAIC,KAAK,IAAM;UACzB,MAAMC,MAAM,GAAGd,SAAS,GAAIa,KAAM,CAAC;UACnC,OACCC,MAAM,KAAKX,EAAE,IAAIP,SAAS,CAACS,QAAQ,CAAES,MAAO,CAAC;QAE/C,CAAE,CACH,CAAC;MACF,CAAC,MAAM;QACNjB,iBAAiB,CAChBE,IAAI,CAACa,MAAM,CAAIC,KAAK,IAAM;UACzB,MAAMC,MAAM,GAAGd,SAAS,GAAIa,KAAM,CAAC;UACnC,OACCC,MAAM,KAAKX,EAAE,IAAIP,SAAS,CAACS,QAAQ,CAAES,MAAO,CAAC;QAE/C,CAAE,CACH,CAAC;MACF;IACD;EAAG,CACH,CAAC;AAEJ","ignoreList":[]}
|
|
@@ -138,7 +138,7 @@ function ListItem({
|
|
|
138
138
|
})]
|
|
139
139
|
})
|
|
140
140
|
})
|
|
141
|
-
}),
|
|
141
|
+
}), eligibleActions?.length > 0 && /*#__PURE__*/_jsxs(HStack, {
|
|
142
142
|
spacing: 1,
|
|
143
143
|
justify: "flex-end",
|
|
144
144
|
className: "dataviews-view-list__item-actions",
|
|
@@ -223,7 +223,7 @@ export default function ViewList(props) {
|
|
|
223
223
|
view
|
|
224
224
|
} = props;
|
|
225
225
|
const baseId = useInstanceId(ViewList, 'view-list');
|
|
226
|
-
const selectedItem = data?.findLast(item => selection.includes(item
|
|
226
|
+
const selectedItem = data?.findLast(item => selection.includes(getItemId(item)));
|
|
227
227
|
const mediaField = fields.find(field => field.id === view.layout.mediaField);
|
|
228
228
|
const primaryField = fields.find(field => field.id === view.layout.primaryField);
|
|
229
229
|
const visibleFields = fields.filter(field => !view.hiddenFields.includes(field.id) && ![view.layout.primaryField, view.layout.mediaField].includes(field.id));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","useInstanceId","__experimentalHStack","HStack","__experimentalVStack","VStack","Button","privateApis","componentsPrivateApis","Spinner","VisuallyHidden","useCallback","useEffect","useMemo","useRef","useState","__","moreVertical","unlock","ActionsDropdownMenuGroup","ActionModal","jsx","_jsx","jsxs","_jsxs","useCompositeStoreV2","useCompositeStore","CompositeV2","Composite","CompositeItemV2","CompositeItem","CompositeRowV2","CompositeRow","DropdownMenuV2","DropdownMenu","ListItem","actions","id","isSelected","item","mediaField","onSelect","primaryField","store","visibleFields","itemRef","labelId","descriptionId","isHovered","setIsHovered","handleMouseEnter","handleMouseLeave","current","scrollIntoView","behavior","block","inline","primaryAction","eligibleActions","_eligibleActions","filter","action","isEligible","_primaryActions","isPrimary","icon","isModalOpen","setIsModalOpen","primaryActionLabel","label","ref","render","role","className","onMouseEnter","onMouseLeave","children","alignment","spacing","onClick","justify","map","field","as","header","length","style","flexShrink","width","isDestructive","size","items","closeModal","callback","trigger","__experimentalIsFocusable","disabled","onKeyDown","event","key","preventDefault","move","down","up","placement","ViewList","props","data","fields","getItemId","isLoading","onSelectionChange","selection","view","baseId","selectedItem","findLast","includes","find","layout","hiddenFields","getItemDomId","undefined","defaultActiveId","isActiveIdInList","state","some","activeId","hasData"],"sources":["@wordpress/dataviews/src/view-list.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n// Import CompositeStore type, which is not exported from @wordpress/components.\n// eslint-disable-next-line no-restricted-imports\nimport type { CompositeStore } from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\tprivateApis as componentsPrivateApis,\n\tSpinner,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { moreVertical } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport type { Action, AnyItem, NormalizedField, ViewListProps } from './types';\n\nimport { ActionsDropdownMenuGroup, ActionModal } from './item-actions';\n\ninterface ListViewItemProps< Item extends AnyItem > {\n\tactions: Action< Item >[];\n\tid?: string;\n\tisSelected: boolean;\n\titem: Item;\n\tmediaField?: NormalizedField< Item >;\n\tonSelect: ( item: Item ) => void;\n\tprimaryField?: NormalizedField< Item >;\n\tstore: CompositeStore;\n\tvisibleFields: NormalizedField< Item >[];\n}\n\nconst {\n\tuseCompositeStoreV2: useCompositeStore,\n\tCompositeV2: Composite,\n\tCompositeItemV2: CompositeItem,\n\tCompositeRowV2: CompositeRow,\n\tDropdownMenuV2: DropdownMenu,\n} = unlock( componentsPrivateApis );\n\nfunction ListItem< Item extends AnyItem >( {\n\tactions,\n\tid,\n\tisSelected,\n\titem,\n\tmediaField,\n\tonSelect,\n\tprimaryField,\n\tstore,\n\tvisibleFields,\n}: ListViewItemProps< Item > ) {\n\tconst itemRef = useRef< HTMLElement >( null );\n\tconst labelId = `${ id }-label`;\n\tconst descriptionId = `${ id }-description`;\n\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst handleMouseEnter = () => {\n\t\tsetIsHovered( true );\n\t};\n\tconst handleMouseLeave = () => {\n\t\tsetIsHovered( false );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( isSelected ) {\n\t\t\titemRef.current?.scrollIntoView( {\n\t\t\t\tbehavior: 'auto',\n\t\t\t\tblock: 'nearest',\n\t\t\t\tinline: 'nearest',\n\t\t\t} );\n\t\t}\n\t}, [ isSelected ] );\n\n\tconst { primaryAction, eligibleActions } = useMemo( () => {\n\t\t// If an action is eligible for all items, doesn't need\n\t\t// to provide the `isEligible` function.\n\t\tconst _eligibleActions = actions.filter(\n\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t\tconst _primaryActions = _eligibleActions.filter(\n\t\t\t( action ) => action.isPrimary && !! action.icon\n\t\t);\n\t\treturn {\n\t\t\tprimaryAction: _primaryActions?.[ 0 ],\n\t\t\teligibleActions: _eligibleActions,\n\t\t};\n\t}, [ actions, item ] );\n\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst primaryActionLabel =\n\t\tprimaryAction &&\n\t\t( typeof primaryAction.label === 'string'\n\t\t\t? primaryAction.label\n\t\t\t: primaryAction.label( [ item ] ) );\n\n\treturn (\n\t\t<CompositeRow\n\t\t\tref={ itemRef }\n\t\t\trender={ <li /> }\n\t\t\trole=\"row\"\n\t\t\tclassName={ clsx( {\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-hovered': isHovered,\n\t\t\t} ) }\n\t\t\tonMouseEnter={ handleMouseEnter }\n\t\t\tonMouseLeave={ handleMouseLeave }\n\t\t>\n\t\t\t<HStack\n\t\t\t\tclassName=\"dataviews-view-list__item-wrapper\"\n\t\t\t\talignment=\"center\"\n\t\t\t\tspacing={ 0 }\n\t\t\t>\n\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\trender={ <div /> }\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\taria-pressed={ isSelected }\n\t\t\t\t\t\taria-labelledby={ labelId }\n\t\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t\tclassName=\"dataviews-view-list__item\"\n\t\t\t\t\t\tonClick={ () => onSelect( item ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\t\t\talignment=\"flex-start\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"dataviews-view-list__media-wrapper\">\n\t\t\t\t\t\t\t\t{ mediaField?.render( { item } ) || (\n\t\t\t\t\t\t\t\t\t<div className=\"dataviews-view-list__media-placeholder\"></div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__primary-field\"\n\t\t\t\t\t\t\t\t\tid={ labelId }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ primaryField?.render( { item } ) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__fields\"\n\t\t\t\t\t\t\t\t\tid={ descriptionId }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<VisuallyHidden\n\t\t\t\t\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field-label\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"dataviews-view-list__field-value\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ field.render( { item } ) }\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</CompositeItem>\n\t\t\t\t</div>\n\t\t\t\t{ actions?.length > 0 && (\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\tclassName=\"dataviews-view-list__item-actions\"\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tflexShrink: '0',\n\t\t\t\t\t\t\twidth: 'auto',\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ primaryAction && 'RenderModal' in primaryAction && (\n\t\t\t\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tlabel={ primaryActionLabel }\n\t\t\t\t\t\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\t\t\t\t\t\tisDestructive={\n\t\t\t\t\t\t\t\t\t\t\t\tprimaryAction.isDestructive\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( true )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ isModalOpen && (\n\t\t\t\t\t\t\t\t\t\t<ActionModal< Item >\n\t\t\t\t\t\t\t\t\t\t\taction={ primaryAction }\n\t\t\t\t\t\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\t\t\t\t\t\tcloseModal={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( false )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</CompositeItem>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ primaryAction &&\n\t\t\t\t\t\t\t! ( 'RenderModal' in primaryAction ) && (\n\t\t\t\t\t\t\t\t<div role=\"gridcell\" key={ primaryAction.id }>\n\t\t\t\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ primaryActionLabel }\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\t\t\t\t\t\t\tisDestructive={\n\t\t\t\t\t\t\t\t\t\t\t\t\tprimaryAction.isDestructive\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tprimaryAction.callback( [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\t\t\t\t\t\t] )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={ ! actions.length }\n\t\t\t\t\t\t\t\t\t\t\t\tonKeyDown={ ( event: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey: string;\n\t\t\t\t\t\t\t\t\t\t\t\t\tpreventDefault: () => void;\n\t\t\t\t\t\t\t\t\t\t\t\t} ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.key ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'ArrowDown'\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Prevent the default behaviour (open dropdown menu) and go down.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstore.move(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstore.down()\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.key === 'ArrowUp'\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Prevent the default behavior (open dropdown menu) and go up.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstore.move(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstore.up()\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tplacement=\"bottom-end\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ActionsDropdownMenuGroup\n\t\t\t\t\t\t\t\t\tactions={ eligibleActions }\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</HStack>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</CompositeRow>\n\t);\n}\n\nexport default function ViewList< Item extends AnyItem >(\n\tprops: ViewListProps< Item >\n) {\n\tconst {\n\t\tactions,\n\t\tdata,\n\t\tfields,\n\t\tgetItemId,\n\t\tisLoading,\n\t\tonSelectionChange,\n\t\tselection,\n\t\tview,\n\t} = props;\n\tconst baseId = useInstanceId( ViewList, 'view-list' );\n\tconst selectedItem = data?.findLast( ( item ) =>\n\t\tselection.includes( item.id )\n\t);\n\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view.layout.mediaField\n\t);\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout.primaryField\n\t);\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\t! view.hiddenFields.includes( field.id ) &&\n\t\t\t! [ view.layout.primaryField, view.layout.mediaField ].includes(\n\t\t\t\tfield.id\n\t\t\t)\n\t);\n\n\tconst onSelect = useCallback(\n\t\t( item: Item ) => onSelectionChange( [ item ] ),\n\t\t[ onSelectionChange ]\n\t);\n\n\tconst getItemDomId = useCallback(\n\t\t( item?: Item ) =>\n\t\t\titem ? `${ baseId }-${ getItemId( item ) }` : undefined,\n\t\t[ baseId, getItemId ]\n\t);\n\n\tconst store = useCompositeStore( {\n\t\tdefaultActiveId: getItemDomId( selectedItem ),\n\t} );\n\n\t// Manage focused item, when the active one is removed from the list.\n\tconst isActiveIdInList = store.useState(\n\t\t( state: { items: any[]; activeId: any } ) =>\n\t\t\tstate.items.some(\n\t\t\t\t( item: { id: any } ) => item.id === state.activeId\n\t\t\t)\n\t);\n\tuseEffect( () => {\n\t\tif ( ! isActiveIdInList ) {\n\t\t\t// Prefer going down, except if there is no item below (last item), then go up (last item in list).\n\t\t\tif ( store.down() ) {\n\t\t\t\tstore.move( store.down() );\n\t\t\t} else if ( store.up() ) {\n\t\t\t\tstore.move( store.up() );\n\t\t\t}\n\t\t}\n\t}, [ isActiveIdInList ] );\n\n\tconst hasData = data?.length;\n\tif ( ! hasData ) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t'dataviews-no-results': ! hasData && ! isLoading,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ ! hasData && (\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Composite\n\t\t\tid={ baseId }\n\t\t\trender={ <ul /> }\n\t\t\tclassName=\"dataviews-view-list\"\n\t\t\trole=\"grid\"\n\t\t\tstore={ store }\n\t\t>\n\t\t\t{ data.map( ( item ) => {\n\t\t\t\tconst id = getItemDomId( item );\n\t\t\t\treturn (\n\t\t\t\t\t<ListItem\n\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tisSelected={ item === selectedItem }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Composite>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;AACvB;AACA;;AAGA;AACA;AACA;AACA,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SACCC,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,EAC9BC,MAAM,EACNC,WAAW,IAAIC,qBAAqB,EACpCC,OAAO,EACPC,cAAc,QACR,uBAAuB;AAC9B,SACCC,WAAW,EACXC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACF,oBAAoB;AAC3B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,YAAY,QAAQ,kBAAkB;;AAE/C;AACA;AACA;AACA,SAASC,MAAM,QAAQ,eAAe;AAGtC,SAASC,wBAAwB,EAAEC,WAAW,QAAQ,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAcvE,MAAM;EACLC,mBAAmB,EAAEC,iBAAiB;EACtCC,WAAW,EAAEC,SAAS;EACtBC,eAAe,EAAEC,aAAa;EAC9BC,cAAc,EAAEC,YAAY;EAC5BC,cAAc,EAAEC;AACjB,CAAC,GAAGhB,MAAM,CAAEV,qBAAsB,CAAC;AAEnC,SAAS2B,QAAQA,CAA0B;EAC1CC,OAAO;EACPC,EAAE;EACFC,UAAU;EACVC,IAAI;EACJC,UAAU;EACVC,QAAQ;EACRC,YAAY;EACZC,KAAK;EACLC;AAC0B,CAAC,EAAG;EAC9B,MAAMC,OAAO,GAAG/B,MAAM,CAAiB,IAAK,CAAC;EAC7C,MAAMgC,OAAO,GAAI,GAAGT,EAAI,QAAO;EAC/B,MAAMU,aAAa,GAAI,GAAGV,EAAI,cAAa;EAE3C,MAAM,CAAEW,SAAS,EAAEC,YAAY,CAAE,GAAGlC,QAAQ,CAAE,KAAM,CAAC;EACrD,MAAMmC,gBAAgB,GAAGA,CAAA,KAAM;IAC9BD,YAAY,CAAE,IAAK,CAAC;EACrB,CAAC;EACD,MAAME,gBAAgB,GAAGA,CAAA,KAAM;IAC9BF,YAAY,CAAE,KAAM,CAAC;EACtB,CAAC;EAEDrC,SAAS,CAAE,MAAM;IAChB,IAAK0B,UAAU,EAAG;MACjBO,OAAO,CAACO,OAAO,EAAEC,cAAc,CAAE;QAChCC,QAAQ,EAAE,MAAM;QAChBC,KAAK,EAAE,SAAS;QAChBC,MAAM,EAAE;MACT,CAAE,CAAC;IACJ;EACD,CAAC,EAAE,CAAElB,UAAU,CAAG,CAAC;EAEnB,MAAM;IAAEmB,aAAa;IAAEC;EAAgB,CAAC,GAAG7C,OAAO,CAAE,MAAM;IACzD;IACA;IACA,MAAM8C,gBAAgB,GAAGvB,OAAO,CAACwB,MAAM,CACpCC,MAAM,IAAM,CAAEA,MAAM,CAACC,UAAU,IAAID,MAAM,CAACC,UAAU,CAAEvB,IAAK,CAC9D,CAAC;IACD,MAAMwB,eAAe,GAAGJ,gBAAgB,CAACC,MAAM,CAC5CC,MAAM,IAAMA,MAAM,CAACG,SAAS,IAAI,CAAC,CAAEH,MAAM,CAACI,IAC7C,CAAC;IACD,OAAO;MACNR,aAAa,EAAEM,eAAe,GAAI,CAAC,CAAE;MACrCL,eAAe,EAAEC;IAClB,CAAC;EACF,CAAC,EAAE,CAAEvB,OAAO,EAAEG,IAAI,CAAG,CAAC;EAEtB,MAAM,CAAE2B,WAAW,EAAEC,cAAc,CAAE,GAAGpD,QAAQ,CAAE,KAAM,CAAC;EACzD,MAAMqD,kBAAkB,GACvBX,aAAa,KACX,OAAOA,aAAa,CAACY,KAAK,KAAK,QAAQ,GACtCZ,aAAa,CAACY,KAAK,GACnBZ,aAAa,CAACY,KAAK,CAAE,CAAE9B,IAAI,CAAG,CAAC,CAAE;EAErC,oBACCjB,IAAA,CAACU,YAAY;IACZsC,GAAG,EAAGzB,OAAS;IACf0B,MAAM,eAAGjD,IAAA,SAAK,CAAG;IACjBkD,IAAI,EAAC,KAAK;IACVC,SAAS,EAAGzE,IAAI,CAAE;MACjB,aAAa,EAAEsC,UAAU;MACzB,YAAY,EAAEU;IACf,CAAE,CAAG;IACL0B,YAAY,EAAGxB,gBAAkB;IACjCyB,YAAY,EAAGxB,gBAAkB;IAAAyB,QAAA,eAEjCpD,KAAA,CAACrB,MAAM;MACNsE,SAAS,EAAC,mCAAmC;MAC7CI,SAAS,EAAC,QAAQ;MAClBC,OAAO,EAAG,CAAG;MAAAF,QAAA,gBAEbtD,IAAA;QAAKkD,IAAI,EAAC,UAAU;QAAAI,QAAA,eACnBtD,IAAA,CAACQ,aAAa;UACba,KAAK,EAAGA,KAAO;UACf4B,MAAM,eAAGjD,IAAA,UAAM,CAAG;UAClBkD,IAAI,EAAC,QAAQ;UACbnC,EAAE,EAAGA,EAAI;UACT,gBAAeC,UAAY;UAC3B,mBAAkBQ,OAAS;UAC3B,oBAAmBC,aAAe;UAClC0B,SAAS,EAAC,2BAA2B;UACrCM,OAAO,EAAGA,CAAA,KAAMtC,QAAQ,CAAEF,IAAK,CAAG;UAAAqC,QAAA,eAElCpD,KAAA,CAACrB,MAAM;YACN2E,OAAO,EAAG,CAAG;YACbE,OAAO,EAAC,OAAO;YACfH,SAAS,EAAC,YAAY;YAAAD,QAAA,gBAEtBtD,IAAA;cAAKmD,SAAS,EAAC,oCAAoC;cAAAG,QAAA,EAChDpC,UAAU,EAAE+B,MAAM,CAAE;gBAAEhC;cAAK,CAAE,CAAC,iBAC/BjB,IAAA;gBAAKmD,SAAS,EAAC;cAAwC,CAAM;YAC7D,CACG,CAAC,eACNjD,KAAA,CAACnB,MAAM;cAACyE,OAAO,EAAG,CAAG;cAAAF,QAAA,gBACpBtD,IAAA;gBACCmD,SAAS,EAAC,oCAAoC;gBAC9CpC,EAAE,EAAGS,OAAS;gBAAA8B,QAAA,EAEZlC,YAAY,EAAE6B,MAAM,CAAE;kBAAEhC;gBAAK,CAAE;cAAC,CAC7B,CAAC,eACPjB,IAAA;gBACCmD,SAAS,EAAC,6BAA6B;gBACvCpC,EAAE,EAAGU,aAAe;gBAAA6B,QAAA,EAElBhC,aAAa,CAACqC,GAAG,CAAIC,KAAK,iBAC3B1D,KAAA;kBAECiD,SAAS,EAAC,4BAA4B;kBAAAG,QAAA,gBAEtCtD,IAAA,CAACZ,cAAc;oBACdyE,EAAE,EAAC,MAAM;oBACTV,SAAS,EAAC,kCAAkC;oBAAAG,QAAA,EAE1CM,KAAK,CAACE;kBAAM,CACC,CAAC,eACjB9D,IAAA;oBAAMmD,SAAS,EAAC,kCAAkC;oBAAAG,QAAA,EAC/CM,KAAK,CAACX,MAAM,CAAE;sBAAEhC;oBAAK,CAAE;kBAAC,CACrB,CAAC;gBAAA,GAXD2C,KAAK,CAAC7C,EAYR,CACJ;cAAC,CACC,CAAC;YAAA,CACC,CAAC;UAAA,CACF;QAAC,CACK;MAAC,CACZ,CAAC,EACJD,OAAO,EAAEiD,MAAM,GAAG,CAAC,iBACpB7D,KAAA,CAACrB,MAAM;QACN2E,OAAO,EAAG,CAAG;QACbE,OAAO,EAAC,UAAU;QAClBP,SAAS,EAAC,mCAAmC;QAC7Ca,KAAK,EAAG;UACPC,UAAU,EAAE,GAAG;UACfC,KAAK,EAAE;QACR,CAAG;QAAAZ,QAAA,GAEDnB,aAAa,IAAI,aAAa,IAAIA,aAAa,iBAChDnC,IAAA;UAAKkD,IAAI,EAAC,UAAU;UAAAI,QAAA,eACnBtD,IAAA,CAACQ,aAAa;YACba,KAAK,EAAGA,KAAO;YACf4B,MAAM,eACLjD,IAAA,CAAChB,MAAM;cACN+D,KAAK,EAAGD,kBAAoB;cAC5BH,IAAI,EAAGR,aAAa,CAACQ,IAAM;cAC3BwB,aAAa,EACZhC,aAAa,CAACgC,aACd;cACDC,IAAI,EAAC,SAAS;cACdX,OAAO,EAAGA,CAAA,KACTZ,cAAc,CAAE,IAAK;YACrB,CACD,CACD;YAAAS,QAAA,EAECV,WAAW,iBACZ5C,IAAA,CAACF,WAAW;cACXyC,MAAM,EAAGJ,aAAe;cACxBkC,KAAK,EAAG,CAAEpD,IAAI,CAAI;cAClBqD,UAAU,EAAGA,CAAA,KACZzB,cAAc,CAAE,KAAM;YACtB,CACD;UACD,CACa;QAAC,CACZ,CACL,EACCV,aAAa,IACd,EAAI,aAAa,IAAIA,aAAa,CAAE,iBACnCnC,IAAA;UAAKkD,IAAI,EAAC,UAAU;UAAAI,QAAA,eACnBtD,IAAA,CAACQ,aAAa;YACba,KAAK,EAAGA,KAAO;YACf4B,MAAM,eACLjD,IAAA,CAAChB,MAAM;cACN+D,KAAK,EAAGD,kBAAoB;cAC5BH,IAAI,EAAGR,aAAa,CAACQ,IAAM;cAC3BwB,aAAa,EACZhC,aAAa,CAACgC,aACd;cACDC,IAAI,EAAC,SAAS;cACdX,OAAO,EAAGA,CAAA,KACTtB,aAAa,CAACoC,QAAQ,CAAE,CACvBtD,IAAI,CACH;YACF,CACD;UACD,CACD;QAAC,GAlBwBkB,aAAa,CAACpB,EAmBpC,CACL,eACFf,IAAA;UAAKkD,IAAI,EAAC,UAAU;UAAAI,QAAA,eACnBtD,IAAA,CAACY,YAAY;YACZ4D,OAAO,eACNxE,IAAA,CAACQ,aAAa;cACba,KAAK,EAAGA,KAAO;cACf4B,MAAM,eACLjD,IAAA,CAAChB,MAAM;gBACNoF,IAAI,EAAC,SAAS;gBACdzB,IAAI,EAAGhD,YAAc;gBACrBoD,KAAK,EAAGrD,EAAE,CAAE,SAAU,CAAG;gBACzB+E,yBAAyB;gBACzBC,QAAQ,EAAG,CAAE5D,OAAO,CAACiD,MAAQ;gBAC7BY,SAAS,EAAKC,KAGb,IAAM;kBACN,IACCA,KAAK,CAACC,GAAG,KACT,WAAW,EACV;oBACD;oBACAD,KAAK,CAACE,cAAc,CAAC,CAAC;oBACtBzD,KAAK,CAAC0D,IAAI,CACT1D,KAAK,CAAC2D,IAAI,CAAC,CACZ,CAAC;kBACF;kBACA,IACCJ,KAAK,CAACC,GAAG,KAAK,SAAS,EACtB;oBACD;oBACAD,KAAK,CAACE,cAAc,CAAC,CAAC;oBACtBzD,KAAK,CAAC0D,IAAI,CACT1D,KAAK,CAAC4D,EAAE,CAAC,CACV,CAAC;kBACF;gBACD;cAAG,CACH;YACD,CACD,CACD;YACDC,SAAS,EAAC,YAAY;YAAA5B,QAAA,eAEtBtD,IAAA,CAACH,wBAAwB;cACxBiB,OAAO,EAAGsB,eAAiB;cAC3BnB,IAAI,EAAGA;YAAM,CACb;UAAC,CACW;QAAC,CACX,CAAC;MAAA,CACC,CACR;IAAA,CACM;EAAC,CACI,CAAC;AAEjB;AAEA,eAAe,SAASkE,QAAQA,CAC/BC,KAA4B,EAC3B;EACD,MAAM;IACLtE,OAAO;IACPuE,IAAI;IACJC,MAAM;IACNC,SAAS;IACTC,SAAS;IACTC,iBAAiB;IACjBC,SAAS;IACTC;EACD,CAAC,GAAGP,KAAK;EACT,MAAMQ,MAAM,GAAGjH,aAAa,CAAEwG,QAAQ,EAAE,WAAY,CAAC;EACrD,MAAMU,YAAY,GAAGR,IAAI,EAAES,QAAQ,CAAI7E,IAAI,IAC1CyE,SAAS,CAACK,QAAQ,CAAE9E,IAAI,CAACF,EAAG,CAC7B,CAAC;EAED,MAAMG,UAAU,GAAGoE,MAAM,CAACU,IAAI,CAC3BpC,KAAK,IAAMA,KAAK,CAAC7C,EAAE,KAAK4E,IAAI,CAACM,MAAM,CAAC/E,UACvC,CAAC;EACD,MAAME,YAAY,GAAGkE,MAAM,CAACU,IAAI,CAC7BpC,KAAK,IAAMA,KAAK,CAAC7C,EAAE,KAAK4E,IAAI,CAACM,MAAM,CAAC7E,YACvC,CAAC;EACD,MAAME,aAAa,GAAGgE,MAAM,CAAChD,MAAM,CAChCsB,KAAK,IACN,CAAE+B,IAAI,CAACO,YAAY,CAACH,QAAQ,CAAEnC,KAAK,CAAC7C,EAAG,CAAC,IACxC,CAAE,CAAE4E,IAAI,CAACM,MAAM,CAAC7E,YAAY,EAAEuE,IAAI,CAACM,MAAM,CAAC/E,UAAU,CAAE,CAAC6E,QAAQ,CAC9DnC,KAAK,CAAC7C,EACP,CACF,CAAC;EAED,MAAMI,QAAQ,GAAG9B,WAAW,CACzB4B,IAAU,IAAMwE,iBAAiB,CAAE,CAAExE,IAAI,CAAG,CAAC,EAC/C,CAAEwE,iBAAiB,CACpB,CAAC;EAED,MAAMU,YAAY,GAAG9G,WAAW,CAC7B4B,IAAW,IACZA,IAAI,GAAI,GAAG2E,MAAQ,IAAIL,SAAS,CAAEtE,IAAK,CAAG,EAAC,GAAGmF,SAAS,EACxD,CAAER,MAAM,EAAEL,SAAS,CACpB,CAAC;EAED,MAAMlE,KAAK,GAAGjB,iBAAiB,CAAE;IAChCiG,eAAe,EAAEF,YAAY,CAAEN,YAAa;EAC7C,CAAE,CAAC;;EAEH;EACA,MAAMS,gBAAgB,GAAGjF,KAAK,CAAC5B,QAAQ,CACpC8G,KAAsC,IACvCA,KAAK,CAAClC,KAAK,CAACmC,IAAI,CACbvF,IAAiB,IAAMA,IAAI,CAACF,EAAE,KAAKwF,KAAK,CAACE,QAC5C,CACF,CAAC;EACDnH,SAAS,CAAE,MAAM;IAChB,IAAK,CAAEgH,gBAAgB,EAAG;MACzB;MACA,IAAKjF,KAAK,CAAC2D,IAAI,CAAC,CAAC,EAAG;QACnB3D,KAAK,CAAC0D,IAAI,CAAE1D,KAAK,CAAC2D,IAAI,CAAC,CAAE,CAAC;MAC3B,CAAC,MAAM,IAAK3D,KAAK,CAAC4D,EAAE,CAAC,CAAC,EAAG;QACxB5D,KAAK,CAAC0D,IAAI,CAAE1D,KAAK,CAAC4D,EAAE,CAAC,CAAE,CAAC;MACzB;IACD;EACD,CAAC,EAAE,CAAEqB,gBAAgB,CAAG,CAAC;EAEzB,MAAMI,OAAO,GAAGrB,IAAI,EAAEtB,MAAM;EAC5B,IAAK,CAAE2C,OAAO,EAAG;IAChB,oBACC1G,IAAA;MACCmD,SAAS,EAAGzE,IAAI,CAAE;QACjB,mBAAmB,EAAE8G,SAAS;QAC9B,sBAAsB,EAAE,CAAEkB,OAAO,IAAI,CAAElB;MACxC,CAAE,CAAG;MAAAlC,QAAA,EAEH,CAAEoD,OAAO,iBACV1G,IAAA;QAAAsD,QAAA,EAAKkC,SAAS,gBAAGxF,IAAA,CAACb,OAAO,IAAE,CAAC,GAAGO,EAAE,CAAE,YAAa;MAAC,CAAK;IACtD,CACG,CAAC;EAER;EAEA,oBACCM,IAAA,CAACM,SAAS;IACTS,EAAE,EAAG6E,MAAQ;IACb3C,MAAM,eAAGjD,IAAA,SAAK,CAAG;IACjBmD,SAAS,EAAC,qBAAqB;IAC/BD,IAAI,EAAC,MAAM;IACX7B,KAAK,EAAGA,KAAO;IAAAiC,QAAA,EAEb+B,IAAI,CAAC1B,GAAG,CAAI1C,IAAI,IAAM;MACvB,MAAMF,EAAE,GAAGoF,YAAY,CAAElF,IAAK,CAAC;MAC/B,oBACCjB,IAAA,CAACa,QAAQ;QAERE,EAAE,EAAGA,EAAI;QACTD,OAAO,EAAGA,OAAS;QACnBG,IAAI,EAAGA,IAAM;QACbD,UAAU,EAAGC,IAAI,KAAK4E,YAAc;QACpC1E,QAAQ,EAAGA,QAAU;QACrBD,UAAU,EAAGA,UAAY;QACzBE,YAAY,EAAGA,YAAc;QAC7BC,KAAK,EAAGA,KAAO;QACfC,aAAa,EAAGA;MAAe,GATzBP,EAUN,CAAC;IAEJ,CAAE;EAAC,CACO,CAAC;AAEd","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","useInstanceId","__experimentalHStack","HStack","__experimentalVStack","VStack","Button","privateApis","componentsPrivateApis","Spinner","VisuallyHidden","useCallback","useEffect","useMemo","useRef","useState","__","moreVertical","unlock","ActionsDropdownMenuGroup","ActionModal","jsx","_jsx","jsxs","_jsxs","useCompositeStoreV2","useCompositeStore","CompositeV2","Composite","CompositeItemV2","CompositeItem","CompositeRowV2","CompositeRow","DropdownMenuV2","DropdownMenu","ListItem","actions","id","isSelected","item","mediaField","onSelect","primaryField","store","visibleFields","itemRef","labelId","descriptionId","isHovered","setIsHovered","handleMouseEnter","handleMouseLeave","current","scrollIntoView","behavior","block","inline","primaryAction","eligibleActions","_eligibleActions","filter","action","isEligible","_primaryActions","isPrimary","icon","isModalOpen","setIsModalOpen","primaryActionLabel","label","ref","render","role","className","onMouseEnter","onMouseLeave","children","alignment","spacing","onClick","justify","map","field","as","header","length","style","flexShrink","width","isDestructive","size","items","closeModal","callback","trigger","__experimentalIsFocusable","disabled","onKeyDown","event","key","preventDefault","move","down","up","placement","ViewList","props","data","fields","getItemId","isLoading","onSelectionChange","selection","view","baseId","selectedItem","findLast","includes","find","layout","hiddenFields","getItemDomId","undefined","defaultActiveId","isActiveIdInList","state","some","activeId","hasData"],"sources":["@wordpress/dataviews/src/view-list.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n// Import CompositeStore type, which is not exported from @wordpress/components.\n// eslint-disable-next-line no-restricted-imports\nimport type { CompositeStore } from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\tprivateApis as componentsPrivateApis,\n\tSpinner,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { moreVertical } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport type { Action, AnyItem, NormalizedField, ViewListProps } from './types';\n\nimport { ActionsDropdownMenuGroup, ActionModal } from './item-actions';\n\ninterface ListViewItemProps< Item extends AnyItem > {\n\tactions: Action< Item >[];\n\tid?: string;\n\tisSelected: boolean;\n\titem: Item;\n\tmediaField?: NormalizedField< Item >;\n\tonSelect: ( item: Item ) => void;\n\tprimaryField?: NormalizedField< Item >;\n\tstore: CompositeStore;\n\tvisibleFields: NormalizedField< Item >[];\n}\n\nconst {\n\tuseCompositeStoreV2: useCompositeStore,\n\tCompositeV2: Composite,\n\tCompositeItemV2: CompositeItem,\n\tCompositeRowV2: CompositeRow,\n\tDropdownMenuV2: DropdownMenu,\n} = unlock( componentsPrivateApis );\n\nfunction ListItem< Item extends AnyItem >( {\n\tactions,\n\tid,\n\tisSelected,\n\titem,\n\tmediaField,\n\tonSelect,\n\tprimaryField,\n\tstore,\n\tvisibleFields,\n}: ListViewItemProps< Item > ) {\n\tconst itemRef = useRef< HTMLElement >( null );\n\tconst labelId = `${ id }-label`;\n\tconst descriptionId = `${ id }-description`;\n\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst handleMouseEnter = () => {\n\t\tsetIsHovered( true );\n\t};\n\tconst handleMouseLeave = () => {\n\t\tsetIsHovered( false );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( isSelected ) {\n\t\t\titemRef.current?.scrollIntoView( {\n\t\t\t\tbehavior: 'auto',\n\t\t\t\tblock: 'nearest',\n\t\t\t\tinline: 'nearest',\n\t\t\t} );\n\t\t}\n\t}, [ isSelected ] );\n\n\tconst { primaryAction, eligibleActions } = useMemo( () => {\n\t\t// If an action is eligible for all items, doesn't need\n\t\t// to provide the `isEligible` function.\n\t\tconst _eligibleActions = actions.filter(\n\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t\tconst _primaryActions = _eligibleActions.filter(\n\t\t\t( action ) => action.isPrimary && !! action.icon\n\t\t);\n\t\treturn {\n\t\t\tprimaryAction: _primaryActions?.[ 0 ],\n\t\t\teligibleActions: _eligibleActions,\n\t\t};\n\t}, [ actions, item ] );\n\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst primaryActionLabel =\n\t\tprimaryAction &&\n\t\t( typeof primaryAction.label === 'string'\n\t\t\t? primaryAction.label\n\t\t\t: primaryAction.label( [ item ] ) );\n\n\treturn (\n\t\t<CompositeRow\n\t\t\tref={ itemRef }\n\t\t\trender={ <li /> }\n\t\t\trole=\"row\"\n\t\t\tclassName={ clsx( {\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-hovered': isHovered,\n\t\t\t} ) }\n\t\t\tonMouseEnter={ handleMouseEnter }\n\t\t\tonMouseLeave={ handleMouseLeave }\n\t\t>\n\t\t\t<HStack\n\t\t\t\tclassName=\"dataviews-view-list__item-wrapper\"\n\t\t\t\talignment=\"center\"\n\t\t\t\tspacing={ 0 }\n\t\t\t>\n\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\trender={ <div /> }\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\taria-pressed={ isSelected }\n\t\t\t\t\t\taria-labelledby={ labelId }\n\t\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t\tclassName=\"dataviews-view-list__item\"\n\t\t\t\t\t\tonClick={ () => onSelect( item ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\t\t\talignment=\"flex-start\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"dataviews-view-list__media-wrapper\">\n\t\t\t\t\t\t\t\t{ mediaField?.render( { item } ) || (\n\t\t\t\t\t\t\t\t\t<div className=\"dataviews-view-list__media-placeholder\"></div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__primary-field\"\n\t\t\t\t\t\t\t\t\tid={ labelId }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ primaryField?.render( { item } ) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__fields\"\n\t\t\t\t\t\t\t\t\tid={ descriptionId }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<VisuallyHidden\n\t\t\t\t\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field-label\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"dataviews-view-list__field-value\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ field.render( { item } ) }\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</CompositeItem>\n\t\t\t\t</div>\n\t\t\t\t{ eligibleActions?.length > 0 && (\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\tclassName=\"dataviews-view-list__item-actions\"\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tflexShrink: '0',\n\t\t\t\t\t\t\twidth: 'auto',\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ primaryAction && 'RenderModal' in primaryAction && (\n\t\t\t\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tlabel={ primaryActionLabel }\n\t\t\t\t\t\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\t\t\t\t\t\tisDestructive={\n\t\t\t\t\t\t\t\t\t\t\t\tprimaryAction.isDestructive\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( true )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ isModalOpen && (\n\t\t\t\t\t\t\t\t\t\t<ActionModal< Item >\n\t\t\t\t\t\t\t\t\t\t\taction={ primaryAction }\n\t\t\t\t\t\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\t\t\t\t\t\tcloseModal={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( false )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</CompositeItem>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ primaryAction &&\n\t\t\t\t\t\t\t! ( 'RenderModal' in primaryAction ) && (\n\t\t\t\t\t\t\t\t<div role=\"gridcell\" key={ primaryAction.id }>\n\t\t\t\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ primaryActionLabel }\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\t\t\t\t\t\t\tisDestructive={\n\t\t\t\t\t\t\t\t\t\t\t\t\tprimaryAction.isDestructive\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tprimaryAction.callback( [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\t\t\t\t\t\t] )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={ ! actions.length }\n\t\t\t\t\t\t\t\t\t\t\t\tonKeyDown={ ( event: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey: string;\n\t\t\t\t\t\t\t\t\t\t\t\t\tpreventDefault: () => void;\n\t\t\t\t\t\t\t\t\t\t\t\t} ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.key ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'ArrowDown'\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Prevent the default behaviour (open dropdown menu) and go down.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstore.move(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstore.down()\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.key === 'ArrowUp'\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Prevent the default behavior (open dropdown menu) and go up.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstore.move(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstore.up()\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tplacement=\"bottom-end\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ActionsDropdownMenuGroup\n\t\t\t\t\t\t\t\t\tactions={ eligibleActions }\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</HStack>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</CompositeRow>\n\t);\n}\n\nexport default function ViewList< Item extends AnyItem >(\n\tprops: ViewListProps< Item >\n) {\n\tconst {\n\t\tactions,\n\t\tdata,\n\t\tfields,\n\t\tgetItemId,\n\t\tisLoading,\n\t\tonSelectionChange,\n\t\tselection,\n\t\tview,\n\t} = props;\n\tconst baseId = useInstanceId( ViewList, 'view-list' );\n\tconst selectedItem = data?.findLast( ( item ) =>\n\t\tselection.includes( getItemId( item ) )\n\t);\n\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view.layout.mediaField\n\t);\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout.primaryField\n\t);\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\t! view.hiddenFields.includes( field.id ) &&\n\t\t\t! [ view.layout.primaryField, view.layout.mediaField ].includes(\n\t\t\t\tfield.id\n\t\t\t)\n\t);\n\n\tconst onSelect = useCallback(\n\t\t( item: Item ) => onSelectionChange( [ item ] ),\n\t\t[ onSelectionChange ]\n\t);\n\n\tconst getItemDomId = useCallback(\n\t\t( item?: Item ) =>\n\t\t\titem ? `${ baseId }-${ getItemId( item ) }` : undefined,\n\t\t[ baseId, getItemId ]\n\t);\n\n\tconst store = useCompositeStore( {\n\t\tdefaultActiveId: getItemDomId( selectedItem ),\n\t} );\n\n\t// Manage focused item, when the active one is removed from the list.\n\tconst isActiveIdInList = store.useState(\n\t\t( state: { items: any[]; activeId: any } ) =>\n\t\t\tstate.items.some(\n\t\t\t\t( item: { id: any } ) => item.id === state.activeId\n\t\t\t)\n\t);\n\tuseEffect( () => {\n\t\tif ( ! isActiveIdInList ) {\n\t\t\t// Prefer going down, except if there is no item below (last item), then go up (last item in list).\n\t\t\tif ( store.down() ) {\n\t\t\t\tstore.move( store.down() );\n\t\t\t} else if ( store.up() ) {\n\t\t\t\tstore.move( store.up() );\n\t\t\t}\n\t\t}\n\t}, [ isActiveIdInList ] );\n\n\tconst hasData = data?.length;\n\tif ( ! hasData ) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t'dataviews-no-results': ! hasData && ! isLoading,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ ! hasData && (\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Composite\n\t\t\tid={ baseId }\n\t\t\trender={ <ul /> }\n\t\t\tclassName=\"dataviews-view-list\"\n\t\t\trole=\"grid\"\n\t\t\tstore={ store }\n\t\t>\n\t\t\t{ data.map( ( item ) => {\n\t\t\t\tconst id = getItemDomId( item );\n\t\t\t\treturn (\n\t\t\t\t\t<ListItem\n\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tisSelected={ item === selectedItem }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\tstore={ store }\n\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Composite>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;AACvB;AACA;;AAGA;AACA;AACA;AACA,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SACCC,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,EAC9BC,MAAM,EACNC,WAAW,IAAIC,qBAAqB,EACpCC,OAAO,EACPC,cAAc,QACR,uBAAuB;AAC9B,SACCC,WAAW,EACXC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACF,oBAAoB;AAC3B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,YAAY,QAAQ,kBAAkB;;AAE/C;AACA;AACA;AACA,SAASC,MAAM,QAAQ,eAAe;AAGtC,SAASC,wBAAwB,EAAEC,WAAW,QAAQ,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAcvE,MAAM;EACLC,mBAAmB,EAAEC,iBAAiB;EACtCC,WAAW,EAAEC,SAAS;EACtBC,eAAe,EAAEC,aAAa;EAC9BC,cAAc,EAAEC,YAAY;EAC5BC,cAAc,EAAEC;AACjB,CAAC,GAAGhB,MAAM,CAAEV,qBAAsB,CAAC;AAEnC,SAAS2B,QAAQA,CAA0B;EAC1CC,OAAO;EACPC,EAAE;EACFC,UAAU;EACVC,IAAI;EACJC,UAAU;EACVC,QAAQ;EACRC,YAAY;EACZC,KAAK;EACLC;AAC0B,CAAC,EAAG;EAC9B,MAAMC,OAAO,GAAG/B,MAAM,CAAiB,IAAK,CAAC;EAC7C,MAAMgC,OAAO,GAAI,GAAGT,EAAI,QAAO;EAC/B,MAAMU,aAAa,GAAI,GAAGV,EAAI,cAAa;EAE3C,MAAM,CAAEW,SAAS,EAAEC,YAAY,CAAE,GAAGlC,QAAQ,CAAE,KAAM,CAAC;EACrD,MAAMmC,gBAAgB,GAAGA,CAAA,KAAM;IAC9BD,YAAY,CAAE,IAAK,CAAC;EACrB,CAAC;EACD,MAAME,gBAAgB,GAAGA,CAAA,KAAM;IAC9BF,YAAY,CAAE,KAAM,CAAC;EACtB,CAAC;EAEDrC,SAAS,CAAE,MAAM;IAChB,IAAK0B,UAAU,EAAG;MACjBO,OAAO,CAACO,OAAO,EAAEC,cAAc,CAAE;QAChCC,QAAQ,EAAE,MAAM;QAChBC,KAAK,EAAE,SAAS;QAChBC,MAAM,EAAE;MACT,CAAE,CAAC;IACJ;EACD,CAAC,EAAE,CAAElB,UAAU,CAAG,CAAC;EAEnB,MAAM;IAAEmB,aAAa;IAAEC;EAAgB,CAAC,GAAG7C,OAAO,CAAE,MAAM;IACzD;IACA;IACA,MAAM8C,gBAAgB,GAAGvB,OAAO,CAACwB,MAAM,CACpCC,MAAM,IAAM,CAAEA,MAAM,CAACC,UAAU,IAAID,MAAM,CAACC,UAAU,CAAEvB,IAAK,CAC9D,CAAC;IACD,MAAMwB,eAAe,GAAGJ,gBAAgB,CAACC,MAAM,CAC5CC,MAAM,IAAMA,MAAM,CAACG,SAAS,IAAI,CAAC,CAAEH,MAAM,CAACI,IAC7C,CAAC;IACD,OAAO;MACNR,aAAa,EAAEM,eAAe,GAAI,CAAC,CAAE;MACrCL,eAAe,EAAEC;IAClB,CAAC;EACF,CAAC,EAAE,CAAEvB,OAAO,EAAEG,IAAI,CAAG,CAAC;EAEtB,MAAM,CAAE2B,WAAW,EAAEC,cAAc,CAAE,GAAGpD,QAAQ,CAAE,KAAM,CAAC;EACzD,MAAMqD,kBAAkB,GACvBX,aAAa,KACX,OAAOA,aAAa,CAACY,KAAK,KAAK,QAAQ,GACtCZ,aAAa,CAACY,KAAK,GACnBZ,aAAa,CAACY,KAAK,CAAE,CAAE9B,IAAI,CAAG,CAAC,CAAE;EAErC,oBACCjB,IAAA,CAACU,YAAY;IACZsC,GAAG,EAAGzB,OAAS;IACf0B,MAAM,eAAGjD,IAAA,SAAK,CAAG;IACjBkD,IAAI,EAAC,KAAK;IACVC,SAAS,EAAGzE,IAAI,CAAE;MACjB,aAAa,EAAEsC,UAAU;MACzB,YAAY,EAAEU;IACf,CAAE,CAAG;IACL0B,YAAY,EAAGxB,gBAAkB;IACjCyB,YAAY,EAAGxB,gBAAkB;IAAAyB,QAAA,eAEjCpD,KAAA,CAACrB,MAAM;MACNsE,SAAS,EAAC,mCAAmC;MAC7CI,SAAS,EAAC,QAAQ;MAClBC,OAAO,EAAG,CAAG;MAAAF,QAAA,gBAEbtD,IAAA;QAAKkD,IAAI,EAAC,UAAU;QAAAI,QAAA,eACnBtD,IAAA,CAACQ,aAAa;UACba,KAAK,EAAGA,KAAO;UACf4B,MAAM,eAAGjD,IAAA,UAAM,CAAG;UAClBkD,IAAI,EAAC,QAAQ;UACbnC,EAAE,EAAGA,EAAI;UACT,gBAAeC,UAAY;UAC3B,mBAAkBQ,OAAS;UAC3B,oBAAmBC,aAAe;UAClC0B,SAAS,EAAC,2BAA2B;UACrCM,OAAO,EAAGA,CAAA,KAAMtC,QAAQ,CAAEF,IAAK,CAAG;UAAAqC,QAAA,eAElCpD,KAAA,CAACrB,MAAM;YACN2E,OAAO,EAAG,CAAG;YACbE,OAAO,EAAC,OAAO;YACfH,SAAS,EAAC,YAAY;YAAAD,QAAA,gBAEtBtD,IAAA;cAAKmD,SAAS,EAAC,oCAAoC;cAAAG,QAAA,EAChDpC,UAAU,EAAE+B,MAAM,CAAE;gBAAEhC;cAAK,CAAE,CAAC,iBAC/BjB,IAAA;gBAAKmD,SAAS,EAAC;cAAwC,CAAM;YAC7D,CACG,CAAC,eACNjD,KAAA,CAACnB,MAAM;cAACyE,OAAO,EAAG,CAAG;cAAAF,QAAA,gBACpBtD,IAAA;gBACCmD,SAAS,EAAC,oCAAoC;gBAC9CpC,EAAE,EAAGS,OAAS;gBAAA8B,QAAA,EAEZlC,YAAY,EAAE6B,MAAM,CAAE;kBAAEhC;gBAAK,CAAE;cAAC,CAC7B,CAAC,eACPjB,IAAA;gBACCmD,SAAS,EAAC,6BAA6B;gBACvCpC,EAAE,EAAGU,aAAe;gBAAA6B,QAAA,EAElBhC,aAAa,CAACqC,GAAG,CAAIC,KAAK,iBAC3B1D,KAAA;kBAECiD,SAAS,EAAC,4BAA4B;kBAAAG,QAAA,gBAEtCtD,IAAA,CAACZ,cAAc;oBACdyE,EAAE,EAAC,MAAM;oBACTV,SAAS,EAAC,kCAAkC;oBAAAG,QAAA,EAE1CM,KAAK,CAACE;kBAAM,CACC,CAAC,eACjB9D,IAAA;oBAAMmD,SAAS,EAAC,kCAAkC;oBAAAG,QAAA,EAC/CM,KAAK,CAACX,MAAM,CAAE;sBAAEhC;oBAAK,CAAE;kBAAC,CACrB,CAAC;gBAAA,GAXD2C,KAAK,CAAC7C,EAYR,CACJ;cAAC,CACC,CAAC;YAAA,CACC,CAAC;UAAA,CACF;QAAC,CACK;MAAC,CACZ,CAAC,EACJqB,eAAe,EAAE2B,MAAM,GAAG,CAAC,iBAC5B7D,KAAA,CAACrB,MAAM;QACN2E,OAAO,EAAG,CAAG;QACbE,OAAO,EAAC,UAAU;QAClBP,SAAS,EAAC,mCAAmC;QAC7Ca,KAAK,EAAG;UACPC,UAAU,EAAE,GAAG;UACfC,KAAK,EAAE;QACR,CAAG;QAAAZ,QAAA,GAEDnB,aAAa,IAAI,aAAa,IAAIA,aAAa,iBAChDnC,IAAA;UAAKkD,IAAI,EAAC,UAAU;UAAAI,QAAA,eACnBtD,IAAA,CAACQ,aAAa;YACba,KAAK,EAAGA,KAAO;YACf4B,MAAM,eACLjD,IAAA,CAAChB,MAAM;cACN+D,KAAK,EAAGD,kBAAoB;cAC5BH,IAAI,EAAGR,aAAa,CAACQ,IAAM;cAC3BwB,aAAa,EACZhC,aAAa,CAACgC,aACd;cACDC,IAAI,EAAC,SAAS;cACdX,OAAO,EAAGA,CAAA,KACTZ,cAAc,CAAE,IAAK;YACrB,CACD,CACD;YAAAS,QAAA,EAECV,WAAW,iBACZ5C,IAAA,CAACF,WAAW;cACXyC,MAAM,EAAGJ,aAAe;cACxBkC,KAAK,EAAG,CAAEpD,IAAI,CAAI;cAClBqD,UAAU,EAAGA,CAAA,KACZzB,cAAc,CAAE,KAAM;YACtB,CACD;UACD,CACa;QAAC,CACZ,CACL,EACCV,aAAa,IACd,EAAI,aAAa,IAAIA,aAAa,CAAE,iBACnCnC,IAAA;UAAKkD,IAAI,EAAC,UAAU;UAAAI,QAAA,eACnBtD,IAAA,CAACQ,aAAa;YACba,KAAK,EAAGA,KAAO;YACf4B,MAAM,eACLjD,IAAA,CAAChB,MAAM;cACN+D,KAAK,EAAGD,kBAAoB;cAC5BH,IAAI,EAAGR,aAAa,CAACQ,IAAM;cAC3BwB,aAAa,EACZhC,aAAa,CAACgC,aACd;cACDC,IAAI,EAAC,SAAS;cACdX,OAAO,EAAGA,CAAA,KACTtB,aAAa,CAACoC,QAAQ,CAAE,CACvBtD,IAAI,CACH;YACF,CACD;UACD,CACD;QAAC,GAlBwBkB,aAAa,CAACpB,EAmBpC,CACL,eACFf,IAAA;UAAKkD,IAAI,EAAC,UAAU;UAAAI,QAAA,eACnBtD,IAAA,CAACY,YAAY;YACZ4D,OAAO,eACNxE,IAAA,CAACQ,aAAa;cACba,KAAK,EAAGA,KAAO;cACf4B,MAAM,eACLjD,IAAA,CAAChB,MAAM;gBACNoF,IAAI,EAAC,SAAS;gBACdzB,IAAI,EAAGhD,YAAc;gBACrBoD,KAAK,EAAGrD,EAAE,CAAE,SAAU,CAAG;gBACzB+E,yBAAyB;gBACzBC,QAAQ,EAAG,CAAE5D,OAAO,CAACiD,MAAQ;gBAC7BY,SAAS,EAAKC,KAGb,IAAM;kBACN,IACCA,KAAK,CAACC,GAAG,KACT,WAAW,EACV;oBACD;oBACAD,KAAK,CAACE,cAAc,CAAC,CAAC;oBACtBzD,KAAK,CAAC0D,IAAI,CACT1D,KAAK,CAAC2D,IAAI,CAAC,CACZ,CAAC;kBACF;kBACA,IACCJ,KAAK,CAACC,GAAG,KAAK,SAAS,EACtB;oBACD;oBACAD,KAAK,CAACE,cAAc,CAAC,CAAC;oBACtBzD,KAAK,CAAC0D,IAAI,CACT1D,KAAK,CAAC4D,EAAE,CAAC,CACV,CAAC;kBACF;gBACD;cAAG,CACH;YACD,CACD,CACD;YACDC,SAAS,EAAC,YAAY;YAAA5B,QAAA,eAEtBtD,IAAA,CAACH,wBAAwB;cACxBiB,OAAO,EAAGsB,eAAiB;cAC3BnB,IAAI,EAAGA;YAAM,CACb;UAAC,CACW;QAAC,CACX,CAAC;MAAA,CACC,CACR;IAAA,CACM;EAAC,CACI,CAAC;AAEjB;AAEA,eAAe,SAASkE,QAAQA,CAC/BC,KAA4B,EAC3B;EACD,MAAM;IACLtE,OAAO;IACPuE,IAAI;IACJC,MAAM;IACNC,SAAS;IACTC,SAAS;IACTC,iBAAiB;IACjBC,SAAS;IACTC;EACD,CAAC,GAAGP,KAAK;EACT,MAAMQ,MAAM,GAAGjH,aAAa,CAAEwG,QAAQ,EAAE,WAAY,CAAC;EACrD,MAAMU,YAAY,GAAGR,IAAI,EAAES,QAAQ,CAAI7E,IAAI,IAC1CyE,SAAS,CAACK,QAAQ,CAAER,SAAS,CAAEtE,IAAK,CAAE,CACvC,CAAC;EAED,MAAMC,UAAU,GAAGoE,MAAM,CAACU,IAAI,CAC3BpC,KAAK,IAAMA,KAAK,CAAC7C,EAAE,KAAK4E,IAAI,CAACM,MAAM,CAAC/E,UACvC,CAAC;EACD,MAAME,YAAY,GAAGkE,MAAM,CAACU,IAAI,CAC7BpC,KAAK,IAAMA,KAAK,CAAC7C,EAAE,KAAK4E,IAAI,CAACM,MAAM,CAAC7E,YACvC,CAAC;EACD,MAAME,aAAa,GAAGgE,MAAM,CAAChD,MAAM,CAChCsB,KAAK,IACN,CAAE+B,IAAI,CAACO,YAAY,CAACH,QAAQ,CAAEnC,KAAK,CAAC7C,EAAG,CAAC,IACxC,CAAE,CAAE4E,IAAI,CAACM,MAAM,CAAC7E,YAAY,EAAEuE,IAAI,CAACM,MAAM,CAAC/E,UAAU,CAAE,CAAC6E,QAAQ,CAC9DnC,KAAK,CAAC7C,EACP,CACF,CAAC;EAED,MAAMI,QAAQ,GAAG9B,WAAW,CACzB4B,IAAU,IAAMwE,iBAAiB,CAAE,CAAExE,IAAI,CAAG,CAAC,EAC/C,CAAEwE,iBAAiB,CACpB,CAAC;EAED,MAAMU,YAAY,GAAG9G,WAAW,CAC7B4B,IAAW,IACZA,IAAI,GAAI,GAAG2E,MAAQ,IAAIL,SAAS,CAAEtE,IAAK,CAAG,EAAC,GAAGmF,SAAS,EACxD,CAAER,MAAM,EAAEL,SAAS,CACpB,CAAC;EAED,MAAMlE,KAAK,GAAGjB,iBAAiB,CAAE;IAChCiG,eAAe,EAAEF,YAAY,CAAEN,YAAa;EAC7C,CAAE,CAAC;;EAEH;EACA,MAAMS,gBAAgB,GAAGjF,KAAK,CAAC5B,QAAQ,CACpC8G,KAAsC,IACvCA,KAAK,CAAClC,KAAK,CAACmC,IAAI,CACbvF,IAAiB,IAAMA,IAAI,CAACF,EAAE,KAAKwF,KAAK,CAACE,QAC5C,CACF,CAAC;EACDnH,SAAS,CAAE,MAAM;IAChB,IAAK,CAAEgH,gBAAgB,EAAG;MACzB;MACA,IAAKjF,KAAK,CAAC2D,IAAI,CAAC,CAAC,EAAG;QACnB3D,KAAK,CAAC0D,IAAI,CAAE1D,KAAK,CAAC2D,IAAI,CAAC,CAAE,CAAC;MAC3B,CAAC,MAAM,IAAK3D,KAAK,CAAC4D,EAAE,CAAC,CAAC,EAAG;QACxB5D,KAAK,CAAC0D,IAAI,CAAE1D,KAAK,CAAC4D,EAAE,CAAC,CAAE,CAAC;MACzB;IACD;EACD,CAAC,EAAE,CAAEqB,gBAAgB,CAAG,CAAC;EAEzB,MAAMI,OAAO,GAAGrB,IAAI,EAAEtB,MAAM;EAC5B,IAAK,CAAE2C,OAAO,EAAG;IAChB,oBACC1G,IAAA;MACCmD,SAAS,EAAGzE,IAAI,CAAE;QACjB,mBAAmB,EAAE8G,SAAS;QAC9B,sBAAsB,EAAE,CAAEkB,OAAO,IAAI,CAAElB;MACxC,CAAE,CAAG;MAAAlC,QAAA,EAEH,CAAEoD,OAAO,iBACV1G,IAAA;QAAAsD,QAAA,EAAKkC,SAAS,gBAAGxF,IAAA,CAACb,OAAO,IAAE,CAAC,GAAGO,EAAE,CAAE,YAAa;MAAC,CAAK;IACtD,CACG,CAAC;EAER;EAEA,oBACCM,IAAA,CAACM,SAAS;IACTS,EAAE,EAAG6E,MAAQ;IACb3C,MAAM,eAAGjD,IAAA,SAAK,CAAG;IACjBmD,SAAS,EAAC,qBAAqB;IAC/BD,IAAI,EAAC,MAAM;IACX7B,KAAK,EAAGA,KAAO;IAAAiC,QAAA,EAEb+B,IAAI,CAAC1B,GAAG,CAAI1C,IAAI,IAAM;MACvB,MAAMF,EAAE,GAAGoF,YAAY,CAAElF,IAAK,CAAC;MAC/B,oBACCjB,IAAA,CAACa,QAAQ;QAERE,EAAE,EAAGA,EAAI;QACTD,OAAO,EAAGA,OAAS;QACnBG,IAAI,EAAGA,IAAM;QACbD,UAAU,EAAGC,IAAI,KAAK4E,YAAc;QACpC1E,QAAQ,EAAGA,QAAU;QACrBD,UAAU,EAAGA,UAAY;QACzBE,YAAY,EAAGA,YAAc;QAC7BC,KAAK,EAAGA,KAAO;QACfC,aAAa,EAAGA;MAAe,GATzBP,EAUN,CAAC;IAEJ,CAAE;EAAC,CACO,CAAC;AAEd","ignoreList":[]}
|