@wordpress/dataviews 2.2.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/README.md +5 -5
- package/build/add-filter.js +1 -1
- package/build/add-filter.js.map +1 -1
- package/build/bulk-actions-toolbar.js +0 -1
- package/build/bulk-actions-toolbar.js.map +1 -1
- package/build/bulk-actions.js +1 -1
- package/build/bulk-actions.js.map +1 -1
- package/build/dataform.js +78 -0
- package/build/dataform.js.map +1 -0
- package/build/dataviews.js +17 -28
- package/build/dataviews.js.map +1 -1
- package/build/filter-and-sort-data-view.js +4 -1
- package/build/filter-and-sort-data-view.js.map +1 -1
- package/build/filter-summary.js +6 -5
- package/build/filter-summary.js.map +1 -1
- package/build/filters.js +1 -1
- package/build/filters.js.map +1 -1
- package/build/index.js +7 -0
- package/build/index.js.map +1 -1
- package/build/item-actions.js +1 -1
- package/build/item-actions.js.map +1 -1
- package/build/normalize-fields.js.map +1 -1
- package/build/pagination.js +2 -2
- package/build/pagination.js.map +1 -1
- package/build/private-types.js +6 -0
- package/build/private-types.js.map +1 -0
- package/build/reset-filters.js +1 -1
- package/build/reset-filters.js.map +1 -1
- package/build/search-widget.js +8 -6
- package/build/search-widget.js.map +1 -1
- package/build/single-selection-checkbox.js +5 -16
- package/build/single-selection-checkbox.js.map +1 -1
- package/build/types.js.map +1 -1
- package/build/utils.js.map +1 -1
- package/build/view-actions.js +76 -65
- package/build/view-actions.js.map +1 -1
- package/build/view-grid.js +7 -19
- package/build/view-grid.js.map +1 -1
- package/build/view-list.js +6 -5
- package/build/view-list.js.map +1 -1
- package/build/view-table.js +11 -20
- package/build/view-table.js.map +1 -1
- package/build-module/add-filter.js +1 -1
- package/build-module/add-filter.js.map +1 -1
- package/build-module/bulk-actions-toolbar.js +0 -1
- package/build-module/bulk-actions-toolbar.js.map +1 -1
- package/build-module/bulk-actions.js +1 -1
- package/build-module/bulk-actions.js.map +1 -1
- package/build-module/dataform.js +72 -0
- package/build-module/dataform.js.map +1 -0
- package/build-module/dataviews.js +15 -28
- package/build-module/dataviews.js.map +1 -1
- package/build-module/filter-and-sort-data-view.js +4 -1
- package/build-module/filter-and-sort-data-view.js.map +1 -1
- package/build-module/filter-summary.js +6 -5
- package/build-module/filter-summary.js.map +1 -1
- package/build-module/filters.js +1 -1
- package/build-module/filters.js.map +1 -1
- package/build-module/index.js +1 -0
- package/build-module/index.js.map +1 -1
- package/build-module/item-actions.js +1 -1
- package/build-module/item-actions.js.map +1 -1
- package/build-module/normalize-fields.js.map +1 -1
- package/build-module/pagination.js +2 -2
- package/build-module/pagination.js.map +1 -1
- package/build-module/private-types.js +2 -0
- package/build-module/private-types.js.map +1 -0
- package/build-module/reset-filters.js +1 -1
- package/build-module/reset-filters.js.map +1 -1
- package/build-module/search-widget.js +8 -6
- package/build-module/search-widget.js.map +1 -1
- package/build-module/single-selection-checkbox.js +5 -16
- package/build-module/single-selection-checkbox.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-module/utils.js.map +1 -1
- package/build-module/view-actions.js +80 -68
- package/build-module/view-actions.js.map +1 -1
- package/build-module/view-grid.js +7 -19
- package/build-module/view-grid.js.map +1 -1
- package/build-module/view-list.js +6 -5
- package/build-module/view-list.js.map +1 -1
- package/build-module/view-table.js +11 -20
- package/build-module/view-table.js.map +1 -1
- package/build-style/style-rtl.css +8 -24
- package/build-style/style.css +8 -24
- package/build-types/bulk-actions-toolbar.d.ts +5 -4
- package/build-types/bulk-actions-toolbar.d.ts.map +1 -1
- package/build-types/bulk-actions.d.ts +7 -6
- package/build-types/bulk-actions.d.ts.map +1 -1
- package/build-types/dataform.d.ts +17 -0
- package/build-types/dataform.d.ts.map +1 -0
- package/build-types/dataviews.d.ts +14 -7
- package/build-types/dataviews.d.ts.map +1 -1
- package/build-types/filter-and-sort-data-view.d.ts +2 -2
- package/build-types/filter-and-sort-data-view.d.ts.map +1 -1
- package/build-types/filter-summary.d.ts.map +1 -1
- package/build-types/filters.d.ts +3 -3
- package/build-types/filters.d.ts.map +1 -1
- package/build-types/index.d.ts +1 -0
- package/build-types/index.d.ts.map +1 -1
- package/build-types/item-actions.d.ts +10 -10
- package/build-types/item-actions.d.ts.map +1 -1
- package/build-types/normalize-fields.d.ts +2 -2
- package/build-types/normalize-fields.d.ts.map +1 -1
- package/build-types/private-types.d.ts +3 -0
- package/build-types/private-types.d.ts.map +1 -0
- package/build-types/single-selection-checkbox.d.ts +5 -5
- package/build-types/single-selection-checkbox.d.ts.map +1 -1
- package/build-types/stories/fixtures.d.ts +14 -1
- package/build-types/stories/fixtures.d.ts.map +1 -1
- package/build-types/stories/index.story.d.ts +15 -1
- package/build-types/stories/index.story.d.ts.map +1 -1
- package/build-types/types.d.ts +68 -27
- package/build-types/types.d.ts.map +1 -1
- package/build-types/utils.d.ts +2 -2
- package/build-types/utils.d.ts.map +1 -1
- package/build-types/view-actions.d.ts +4 -4
- package/build-types/view-actions.d.ts.map +1 -1
- package/build-types/view-grid.d.ts +2 -2
- package/build-types/view-grid.d.ts.map +1 -1
- package/build-types/view-list.d.ts +2 -2
- package/build-types/view-list.d.ts.map +1 -1
- package/build-types/view-table.d.ts +2 -2
- package/build-types/view-table.d.ts.map +1 -1
- package/package.json +10 -10
- package/src/add-filter.tsx +1 -1
- package/src/bulk-actions-toolbar.tsx +13 -13
- package/src/bulk-actions.tsx +18 -13
- package/src/dataform.tsx +106 -0
- package/src/dataviews.tsx +43 -49
- package/src/filter-and-sort-data-view.ts +13 -3
- package/src/filter-summary.tsx +18 -12
- package/src/filters.tsx +4 -4
- package/src/index.ts +1 -0
- package/src/item-actions.tsx +15 -16
- package/src/normalize-fields.ts +5 -3
- package/src/pagination.tsx +2 -2
- package/src/private-types.tsx +2 -0
- package/src/reset-filters.tsx +1 -1
- package/src/search-widget.tsx +6 -6
- package/src/single-selection-checkbox.tsx +14 -29
- package/src/stories/fixtures.js +17 -1
- package/src/stories/index.story.js +15 -28
- package/src/style.scss +10 -22
- package/src/test/filter-and-sort-data-view.js +16 -1
- package/src/types.ts +68 -34
- package/src/utils.ts +2 -4
- package/src/view-actions.tsx +105 -102
- package/src/view-grid.tsx +21 -38
- package/src/view-list.tsx +12 -15
- package/src/view-table.tsx +31 -42
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Button","privateApis","componentsPrivateApis","__","memo","settings","unlock","SORTING_DIRECTIONS","sortLabels","VIEW_LAYOUTS","jsx","_jsx","jsxs","_jsxs","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuRadioItemV2","DropdownMenuRadioItem","DropdownMenuCheckboxItemV2","DropdownMenuCheckboxItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","ViewTypeMenu","view","onChangeView","supportedLayouts","_availableViews","filter","_view","includes","type","length","activeView","find","v","trigger","suffix","children","label","map","availableView","value","name","checked","hideOnClick","onChange","e","target","layout","Error","PAGE_SIZE_VALUES","PageSizeMenu","perPage","size","page","FieldsVisibilityMenu","fields","hidableFields","field","enableHiding","id","mediaField","hiddenFields","header","SortMenu","sortableFields","enableSorting","currentSortedField","sort","sortedDirection","direction","style","minWidth","isChecked","undefined","_ViewActions","icon","ViewActions"],"sources":["@wordpress/dataviews/src/view-actions.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ChangeEvent } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { memo } from '@wordpress/element';\nimport { settings } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport { SORTING_DIRECTIONS, sortLabels } from './constants';\nimport { VIEW_LAYOUTS } from './layouts';\nimport type { AnyItem, NormalizedField, View } from './types';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuRadioItemV2: DropdownMenuRadioItem,\n\tDropdownMenuCheckboxItemV2: DropdownMenuCheckboxItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n} = unlock( componentsPrivateApis );\n\ninterface ViewTypeMenuProps {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tsupportedLayouts?: string[];\n}\n\ninterface PageSizeMenuProps {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n}\n\ninterface FieldsVisibilityMenuProps< Item extends AnyItem > {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: NormalizedField< Item >[];\n}\n\ninterface SortMenuProps< Item extends AnyItem > {\n\tfields: NormalizedField< Item >[];\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n}\n\ninterface ViewActionsProps< Item extends AnyItem > {\n\tfields: NormalizedField< Item >[];\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tsupportedLayouts?: string[];\n}\n\nfunction ViewTypeMenu( {\n\tview,\n\tonChangeView,\n\tsupportedLayouts,\n}: ViewTypeMenuProps ) {\n\tlet _availableViews = VIEW_LAYOUTS;\n\tif ( supportedLayouts ) {\n\t\t_availableViews = _availableViews.filter( ( _view ) =>\n\t\t\tsupportedLayouts.includes( _view.type )\n\t\t);\n\t}\n\tif ( _availableViews.length === 1 ) {\n\t\treturn null;\n\t}\n\tconst activeView = _availableViews.find( ( v ) => view.type === v.type );\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownMenuItem\n\t\t\t\t\tsuffix={\n\t\t\t\t\t\t<span aria-hidden=\"true\">{ activeView?.label }</span>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t{ __( 'Layout' ) }\n\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t}\n\t\t>\n\t\t\t{ _availableViews.map( ( availableView ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\tkey={ availableView.type }\n\t\t\t\t\t\tvalue={ availableView.type }\n\t\t\t\t\t\tname=\"view-actions-available-view\"\n\t\t\t\t\t\tchecked={ availableView.type === view.type }\n\t\t\t\t\t\thideOnClick\n\t\t\t\t\t\tonChange={ ( e: ChangeEvent< HTMLInputElement > ) => {\n\t\t\t\t\t\t\tswitch ( e.target.value ) {\n\t\t\t\t\t\t\t\tcase 'list':\n\t\t\t\t\t\t\t\tcase 'grid':\n\t\t\t\t\t\t\t\tcase 'table':\n\t\t\t\t\t\t\t\t\treturn onChangeView( {\n\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\ttype: e.target.value,\n\t\t\t\t\t\t\t\t\t\tlayout: {},\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthrow new Error( 'Invalid dataview' );\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{ availableView.label }\n\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nconst PAGE_SIZE_VALUES = [ 10, 20, 50, 100 ];\nfunction PageSizeMenu( { view, onChangeView }: PageSizeMenuProps ) {\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownMenuItem\n\t\t\t\t\tsuffix={ <span aria-hidden=\"true\">{ view.perPage }</span> }\n\t\t\t\t>\n\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t{ __( 'Items per page' ) }\n\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t}\n\t\t>\n\t\t\t{ PAGE_SIZE_VALUES.map( ( size ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\tkey={ size }\n\t\t\t\t\t\tvalue={ size }\n\t\t\t\t\t\tname=\"view-actions-page-size\"\n\t\t\t\t\t\tchecked={ view.perPage === size }\n\t\t\t\t\t\tonChange={ () => {\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\t// `e.target.value` holds the same value as `size` but as a string,\n\t\t\t\t\t\t\t\t// so we use `size` directly to avoid parsing to int.\n\t\t\t\t\t\t\t\tperPage: size,\n\t\t\t\t\t\t\t\tpage: 1,\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>{ size }</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction FieldsVisibilityMenu< Item extends AnyItem >( {\n\tview,\n\tonChangeView,\n\tfields,\n}: FieldsVisibilityMenuProps< Item > ) {\n\tconst hidableFields = fields.filter(\n\t\t( field ) =>\n\t\t\tfield.enableHiding !== false && field.id !== view.layout.mediaField\n\t);\n\tif ( ! hidableFields?.length ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownMenuItem>\n\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t{ __( 'Fields' ) }\n\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t}\n\t\t>\n\t\t\t{ hidableFields?.map( ( field ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuCheckboxItem\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\tvalue={ field.id }\n\t\t\t\t\t\tchecked={ ! view.hiddenFields?.includes( field.id ) }\n\t\t\t\t\t\tonChange={ () => {\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?.includes(\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\t\t? view.hiddenFields.filter(\n\t\t\t\t\t\t\t\t\t\t\t( id ) => id !== field.id\n\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\t...( view.hiddenFields || [] ),\n\t\t\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\t ],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuCheckboxItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction SortMenu< Item extends AnyItem >( {\n\tfields,\n\tview,\n\tonChangeView,\n}: SortMenuProps< Item > ) {\n\tconst sortableFields = fields.filter(\n\t\t( field ) => field.enableSorting !== false\n\t);\n\tif ( ! sortableFields?.length ) {\n\t\treturn null;\n\t}\n\tconst currentSortedField = fields.find(\n\t\t( field ) => field.id === view.sort?.field\n\t);\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownMenuItem\n\t\t\t\t\tsuffix={\n\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t{ currentSortedField?.header }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t{ __( 'Sort by' ) }\n\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t}\n\t\t>\n\t\t\t{ sortableFields?.map( ( field ) => {\n\t\t\t\tconst sortedDirection = view.sort?.direction;\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t<DropdownMenuItem>\n\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tminWidth: '220px',\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ SORTING_DIRECTIONS.map( ( direction ) => {\n\t\t\t\t\t\t\tconst isChecked =\n\t\t\t\t\t\t\t\tcurrentSortedField !== undefined &&\n\t\t\t\t\t\t\t\tsortedDirection === direction &&\n\t\t\t\t\t\t\t\tfield.id === currentSortedField.id;\n\n\t\t\t\t\t\t\tconst value = `${ field.id }-${ direction }`;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\t\t\t\tkey={ value }\n\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// selecting a sorting option automatically deselects the\n\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// another submenu. The field and direction are passed via\n\t\t\t\t\t\t\t\t\t// the `value` prop.\n\t\t\t\t\t\t\t\t\tname=\"view-actions-sorting\"\n\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\tchecked={ isChecked }\n\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\tsort: {\n\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\tdirection,\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<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t{ sortLabels[ direction ] }\n\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction _ViewActions< Item extends AnyItem >( {\n\tfields,\n\tview,\n\tonChangeView,\n\tsupportedLayouts,\n}: ViewActionsProps< Item > ) {\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\ticon={ settings }\n\t\t\t\t\tlabel={ __( 'View options' ) }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<DropdownMenuGroup>\n\t\t\t\t<ViewTypeMenu\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\t<SortMenu\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/>\n\t\t\t\t<FieldsVisibilityMenu\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/>\n\t\t\t\t<PageSizeMenu view={ view } onChangeView={ onChangeView } />\n\t\t\t</DropdownMenuGroup>\n\t\t</DropdownMenu>\n\t);\n}\n\n// A type assertion is used here to keep the type argument.\nconst ViewActions = memo( _ViewActions ) as typeof _ViewActions;\n\nexport default ViewActions;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Button","privateApis","componentsPrivateApis","__experimentalHStack","HStack","__","_x","memo","cog","unlock","SORTING_DIRECTIONS","sortLabels","VIEW_LAYOUTS","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuRadioItemV2","DropdownMenuRadioItem","DropdownMenuCheckboxItemV2","DropdownMenuCheckboxItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","ViewTypeMenu","view","onChangeView","defaultLayouts","list","grid","table","availableLayouts","Object","keys","length","map","layout","config","find","v","type","value","name","checked","hideOnClick","onChange","e","target","Error","children","label","PAGE_SIZE_VALUES","PageSizeMenu","trigger","suffix","perPage","size","page","FieldsVisibilityMenu","fields","hidableFields","filter","field","enableHiding","id","mediaField","viewFields","includes","header","SortMenu","sortableFields","enableSorting","currentSortedField","sort","sortedDirection","direction","style","minWidth","isChecked","undefined","_ViewActions","activeView","spacing","expanded","flexShrink","icon","ViewActions"],"sources":["@wordpress/dataviews/src/view-actions.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ChangeEvent } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tprivateApis as componentsPrivateApis,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { memo } from '@wordpress/element';\nimport { cog } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport { SORTING_DIRECTIONS, sortLabels } from './constants';\nimport { VIEW_LAYOUTS } from './layouts';\nimport type { NormalizedField, View, SupportedLayouts } from './types';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuRadioItemV2: DropdownMenuRadioItem,\n\tDropdownMenuCheckboxItemV2: DropdownMenuCheckboxItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n} = unlock( componentsPrivateApis );\n\ninterface ViewTypeMenuProps {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tdefaultLayouts?: SupportedLayouts;\n}\n\ninterface PageSizeMenuProps {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n}\n\ninterface FieldsVisibilityMenuProps< Item > {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: NormalizedField< Item >[];\n}\n\ninterface SortMenuProps< Item > {\n\tfields: NormalizedField< Item >[];\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n}\n\ninterface ViewActionsProps< Item > {\n\tfields: NormalizedField< Item >[];\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tdefaultLayouts?: SupportedLayouts;\n}\n\nfunction ViewTypeMenu( {\n\tview,\n\tonChangeView,\n\tdefaultLayouts = { list: {}, grid: {}, table: {} },\n}: ViewTypeMenuProps ) {\n\tconst availableLayouts = Object.keys( defaultLayouts );\n\tif ( availableLayouts.length <= 1 ) {\n\t\treturn null;\n\t}\n\treturn availableLayouts.map( ( layout ) => {\n\t\tconst config = VIEW_LAYOUTS.find( ( v ) => v.type === layout );\n\t\tif ( ! config ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<DropdownMenuRadioItem\n\t\t\t\tkey={ layout }\n\t\t\t\tvalue={ layout }\n\t\t\t\tname=\"view-actions-available-view\"\n\t\t\t\tchecked={ layout === view.type }\n\t\t\t\thideOnClick\n\t\t\t\tonChange={ ( e: ChangeEvent< HTMLInputElement > ) => {\n\t\t\t\t\tswitch ( e.target.value ) {\n\t\t\t\t\t\tcase 'list':\n\t\t\t\t\t\tcase 'grid':\n\t\t\t\t\t\tcase 'table':\n\t\t\t\t\t\t\treturn onChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\ttype: e.target.value,\n\t\t\t\t\t\t\t\t...defaultLayouts[ e.target.value ],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t\tthrow new Error( 'Invalid dataview' );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<DropdownMenuItemLabel>{ config.label }</DropdownMenuItemLabel>\n\t\t\t</DropdownMenuRadioItem>\n\t\t);\n\t} );\n}\n\nconst PAGE_SIZE_VALUES = [ 10, 20, 50, 100 ];\nfunction PageSizeMenu( { view, onChangeView }: PageSizeMenuProps ) {\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownMenuItem\n\t\t\t\t\tsuffix={ <span aria-hidden=\"true\">{ view.perPage }</span> }\n\t\t\t\t>\n\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t{ __( 'Items per page' ) }\n\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t}\n\t\t>\n\t\t\t{ PAGE_SIZE_VALUES.map( ( size ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\tkey={ size }\n\t\t\t\t\t\tvalue={ size }\n\t\t\t\t\t\tname=\"view-actions-page-size\"\n\t\t\t\t\t\tchecked={ view.perPage === size }\n\t\t\t\t\t\tonChange={ () => {\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\t// `e.target.value` holds the same value as `size` but as a string,\n\t\t\t\t\t\t\t\t// so we use `size` directly to avoid parsing to int.\n\t\t\t\t\t\t\t\tperPage: size,\n\t\t\t\t\t\t\t\tpage: 1,\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>{ size }</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction FieldsVisibilityMenu< Item >( {\n\tview,\n\tonChangeView,\n\tfields,\n}: FieldsVisibilityMenuProps< Item > ) {\n\tconst hidableFields = fields.filter(\n\t\t( field ) =>\n\t\t\tfield.enableHiding !== false &&\n\t\t\tfield.id !== view?.layout?.mediaField\n\t);\n\tconst viewFields = view.fields || fields.map( ( field ) => field.id );\n\tif ( ! hidableFields?.length ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownMenuItem>\n\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t{ __( 'Fields' ) }\n\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t}\n\t\t>\n\t\t\t{ hidableFields?.map( ( field ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuCheckboxItem\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\tvalue={ field.id }\n\t\t\t\t\t\tchecked={ viewFields.includes( field.id ) }\n\t\t\t\t\t\tonChange={ () => {\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\tfields: viewFields.includes( field.id )\n\t\t\t\t\t\t\t\t\t? viewFields.filter(\n\t\t\t\t\t\t\t\t\t\t\t( id ) => id !== field.id\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: [ ...viewFields, 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<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuCheckboxItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction SortMenu< Item >( {\n\tfields,\n\tview,\n\tonChangeView,\n}: SortMenuProps< Item > ) {\n\tconst sortableFields = fields.filter(\n\t\t( field ) => field.enableSorting !== false\n\t);\n\tif ( ! sortableFields?.length ) {\n\t\treturn null;\n\t}\n\tconst currentSortedField = fields.find(\n\t\t( field ) => field.id === view.sort?.field\n\t);\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownMenuItem\n\t\t\t\t\tsuffix={\n\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t{ currentSortedField?.header }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t{ __( 'Sort by' ) }\n\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t}\n\t\t>\n\t\t\t{ sortableFields?.map( ( field ) => {\n\t\t\t\tconst sortedDirection = view.sort?.direction;\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t<DropdownMenuItem>\n\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tminWidth: '220px',\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ SORTING_DIRECTIONS.map( ( direction ) => {\n\t\t\t\t\t\t\tconst isChecked =\n\t\t\t\t\t\t\t\tcurrentSortedField !== undefined &&\n\t\t\t\t\t\t\t\tsortedDirection === direction &&\n\t\t\t\t\t\t\t\tfield.id === currentSortedField.id;\n\n\t\t\t\t\t\t\tconst value = `${ field.id }-${ direction }`;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\t\t\t\tkey={ value }\n\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// selecting a sorting option automatically deselects the\n\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// another submenu. The field and direction are passed via\n\t\t\t\t\t\t\t\t\t// the `value` prop.\n\t\t\t\t\t\t\t\t\tname=\"view-actions-sorting\"\n\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\tchecked={ isChecked }\n\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\tsort: {\n\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\tdirection,\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<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t{ sortLabels[ direction ] }\n\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction _ViewActions< Item >( {\n\tfields,\n\tview,\n\tonChangeView,\n\tdefaultLayouts,\n}: ViewActionsProps< Item > ) {\n\tconst activeView = VIEW_LAYOUTS.find( ( v ) => view.type === v.type );\n\treturn (\n\t\t<>\n\t\t\t<HStack\n\t\t\t\tspacing={ 1 }\n\t\t\t\texpanded={ false }\n\t\t\t\tstyle={ { flexShrink: 0 } }\n\t\t\t>\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ttrigger={\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\ticon={ activeView?.icon }\n\t\t\t\t\t\t\tlabel={ __( 'Layout' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ViewTypeMenu\n\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\tdefaultLayouts={ defaultLayouts }\n\t\t\t\t\t/>\n\t\t\t\t</DropdownMenu>\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ttrigger={\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\ticon={ cog }\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'View options',\n\t\t\t\t\t\t\t\t'View is used as a noun'\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\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t<SortMenu\n\t\t\t\t\t\t\tfields={ fields }\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\t<FieldsVisibilityMenu\n\t\t\t\t\t\t\tfields={ fields }\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\t<PageSizeMenu\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</DropdownMenuGroup>\n\t\t\t\t</DropdownMenu>\n\t\t\t</HStack>\n\t\t</>\n\t);\n}\n\n// A type assertion is used here to keep the type argument.\nconst ViewActions = memo( _ViewActions ) as typeof _ViewActions;\n\nexport default ViewActions;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -20,7 +20,6 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
20
20
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
21
21
|
function GridItem({
|
|
22
22
|
selection,
|
|
23
|
-
data,
|
|
24
23
|
onSelectionChange,
|
|
25
24
|
getItemId,
|
|
26
25
|
item,
|
|
@@ -46,17 +45,7 @@ function GridItem({
|
|
|
46
45
|
if (!hasBulkAction) {
|
|
47
46
|
return;
|
|
48
47
|
}
|
|
49
|
-
|
|
50
|
-
onSelectionChange(data.filter(_item => {
|
|
51
|
-
const itemId = getItemId?.(_item);
|
|
52
|
-
return itemId === id || selection.includes(itemId);
|
|
53
|
-
}));
|
|
54
|
-
} else {
|
|
55
|
-
onSelectionChange(data.filter(_item => {
|
|
56
|
-
const itemId = getItemId?.(_item);
|
|
57
|
-
return itemId !== id && selection.includes(itemId);
|
|
58
|
-
}));
|
|
59
|
-
}
|
|
48
|
+
onSelectionChange(selection.includes(id) ? selection.filter(itemId => id !== itemId) : [...selection, id]);
|
|
60
49
|
}
|
|
61
50
|
},
|
|
62
51
|
children: [/*#__PURE__*/_jsx("div", {
|
|
@@ -72,7 +61,6 @@ function GridItem({
|
|
|
72
61
|
selection: selection,
|
|
73
62
|
onSelectionChange: onSelectionChange,
|
|
74
63
|
getItemId: getItemId,
|
|
75
|
-
data: data,
|
|
76
64
|
primaryField: primaryField,
|
|
77
65
|
disabled: !hasBulkAction
|
|
78
66
|
}), /*#__PURE__*/_jsx(HStack, {
|
|
@@ -149,18 +137,19 @@ export default function ViewGrid({
|
|
|
149
137
|
selection,
|
|
150
138
|
view
|
|
151
139
|
}) {
|
|
152
|
-
const mediaField = fields.find(field => field.id === view.layout
|
|
153
|
-
const primaryField = fields.find(field => field.id === view.layout
|
|
140
|
+
const mediaField = fields.find(field => field.id === view.layout?.mediaField);
|
|
141
|
+
const primaryField = fields.find(field => field.id === view.layout?.primaryField);
|
|
142
|
+
const viewFields = view.fields || fields.map(field => field.id);
|
|
154
143
|
const {
|
|
155
144
|
visibleFields,
|
|
156
145
|
badgeFields
|
|
157
146
|
} = fields.reduce((accumulator, field) => {
|
|
158
|
-
if (
|
|
147
|
+
if (!viewFields.includes(field.id) || [view.layout?.mediaField, view?.layout?.primaryField].includes(field.id)) {
|
|
159
148
|
return accumulator;
|
|
160
149
|
}
|
|
161
150
|
// If the field is a badge field, add it to the badgeFields array
|
|
162
151
|
// otherwise add it to the rest visibleFields array.
|
|
163
|
-
const key = view.layout
|
|
152
|
+
const key = view.layout?.badgeFields?.includes(field.id) ? 'badgeFields' : 'visibleFields';
|
|
164
153
|
accumulator[key].push(field);
|
|
165
154
|
return accumulator;
|
|
166
155
|
}, {
|
|
@@ -178,7 +167,6 @@ export default function ViewGrid({
|
|
|
178
167
|
children: data.map(item => {
|
|
179
168
|
return /*#__PURE__*/_jsx(GridItem, {
|
|
180
169
|
selection: selection,
|
|
181
|
-
data: data,
|
|
182
170
|
onSelectionChange: onSelectionChange,
|
|
183
171
|
getItemId: getItemId,
|
|
184
172
|
item: item,
|
|
@@ -187,7 +175,7 @@ export default function ViewGrid({
|
|
|
187
175
|
primaryField: primaryField,
|
|
188
176
|
visibleFields: visibleFields,
|
|
189
177
|
badgeFields: badgeFields,
|
|
190
|
-
columnFields: view.layout
|
|
178
|
+
columnFields: view.layout?.columnFields
|
|
191
179
|
}, getItemId(item));
|
|
192
180
|
})
|
|
193
181
|
}), !hasData && /*#__PURE__*/_jsx("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","__experimentalGrid","Grid","__experimentalHStack","HStack","__experimentalVStack","VStack","Spinner","Flex","FlexItem","__","ItemActions","SingleSelectionCheckbox","useHasAPossibleBulkAction","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","GridItem","selection","data","onSelectionChange","getItemId","item","actions","mediaField","primaryField","visibleFields","badgeFields","columnFields","hasBulkAction","id","isSelected","includes","spacing","className","onClickCapture","event","ctrlKey","metaKey","stopPropagation","preventDefault","filter","_item","itemId","children","render","justify","disabled","isCompact","length","wrap","alignment","map","field","renderedValue","gap","expanded","style","height","direction","header","maxHeight","ViewGrid","fields","isLoading","view","find","layout","reduce","accumulator","hiddenFields","key","push","hasData","columns"],"sources":["@wordpress/dataviews/src/view-grid.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tSpinner,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ItemActions from './item-actions';\nimport SingleSelectionCheckbox from './single-selection-checkbox';\nimport { useHasAPossibleBulkAction } from './bulk-actions';\nimport type { Action, AnyItem, NormalizedField, ViewGridProps } from './types';\n\ninterface GridItemProps< Item extends AnyItem > {\n\tselection: string[];\n\tdata: Item[];\n\tonSelectionChange: ( items: Item[] ) => void;\n\tgetItemId: ( item: Item ) => string;\n\titem: Item;\n\tactions: Action< Item >[];\n\tmediaField?: NormalizedField< Item >;\n\tprimaryField?: NormalizedField< Item >;\n\tvisibleFields: NormalizedField< Item >[];\n\tbadgeFields: NormalizedField< Item >[];\n\tcolumnFields?: string[];\n}\n\nfunction GridItem< Item extends AnyItem >( {\n\tselection,\n\tdata,\n\tonSelectionChange,\n\tgetItemId,\n\titem,\n\tactions,\n\tmediaField,\n\tprimaryField,\n\tvisibleFields,\n\tbadgeFields,\n\tcolumnFields,\n}: GridItemProps< Item > ) {\n\tconst hasBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst id = getItemId( item );\n\tconst isSelected = selection.includes( id );\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 0 }\n\t\t\tkey={ id }\n\t\t\tclassName={ clsx( 'dataviews-view-grid__card', {\n\t\t\t\t'is-selected': hasBulkAction && isSelected,\n\t\t\t} ) }\n\t\t\tonClickCapture={ ( event ) => {\n\t\t\t\tif ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif ( ! hasBulkAction ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif ( ! isSelected ) {\n\t\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\titemId === id ||\n\t\t\t\t\t\t\t\t\tselection.includes( itemId )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\titemId !== id &&\n\t\t\t\t\t\t\t\t\tselection.includes( itemId )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-view-grid__media\">\n\t\t\t\t{ mediaField?.render( { item } ) }\n\t\t\t</div>\n\t\t\t<HStack\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews-view-grid__title-actions\"\n\t\t\t>\n\t\t\t\t<SingleSelectionCheckbox\n\t\t\t\t\titem={ item }\n\t\t\t\t\tselection={ selection }\n\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\tdisabled={ ! hasBulkAction }\n\t\t\t\t/>\n\t\t\t\t<HStack className=\"dataviews-view-grid__primary-field\">\n\t\t\t\t\t{ primaryField?.render( { item } ) }\n\t\t\t\t</HStack>\n\t\t\t\t<ItemActions item={ item } actions={ actions } isCompact />\n\t\t\t</HStack>\n\t\t\t{ !! badgeFields?.length && (\n\t\t\t\t<HStack\n\t\t\t\t\tclassName=\"dataviews-view-grid__badge-fields\"\n\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\twrap\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t>\n\t\t\t\t\t{ badgeFields.map( ( field ) => {\n\t\t\t\t\t\tconst renderedValue = field.render( {\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tif ( ! renderedValue ) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ renderedValue }\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t\t{ !! visibleFields?.length && (\n\t\t\t\t<VStack className=\"dataviews-view-grid__fields\" spacing={ 3 }>\n\t\t\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\t\t\tconst renderedValue = field.render( {\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tif ( ! renderedValue ) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'dataviews-view-grid__field',\n\t\t\t\t\t\t\t\t\tcolumnFields?.includes( field.id )\n\t\t\t\t\t\t\t\t\t\t? 'is-column'\n\t\t\t\t\t\t\t\t\t\t: 'is-row'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tgap={ 1 }\n\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\texpanded\n\t\t\t\t\t\t\t\tstyle={ { height: 'auto' } }\n\t\t\t\t\t\t\t\tdirection={\n\t\t\t\t\t\t\t\t\tcolumnFields?.includes( field.id )\n\t\t\t\t\t\t\t\t\t\t? 'column'\n\t\t\t\t\t\t\t\t\t\t: 'row'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<FlexItem className=\"dataviews-view-grid__field-name\">\n\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t\t\tstyle={ { maxHeight: 'none' } }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ renderedValue }\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default function ViewGrid< Item extends AnyItem >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading,\n\tonSelectionChange,\n\tselection,\n\tview,\n}: ViewGridProps< Item > ) {\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, badgeFields } = fields.reduce(\n\t\t( accumulator: Record< string, NormalizedField< Item >[] >, field ) => {\n\t\t\tif (\n\t\t\t\tview.hiddenFields.includes( field.id ) ||\n\t\t\t\t[ view.layout.mediaField, view.layout.primaryField ].includes(\n\t\t\t\t\tfield.id\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\t\t\t// If the field is a badge field, add it to the badgeFields array\n\t\t\t// otherwise add it to the rest visibleFields array.\n\t\t\tconst key = view.layout.badgeFields?.includes( field.id )\n\t\t\t\t? 'badgeFields'\n\t\t\t\t: 'visibleFields';\n\t\t\taccumulator[ key ].push( field );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ visibleFields: [], badgeFields: [] }\n\t);\n\tconst hasData = !! data?.length;\n\treturn (\n\t\t<>\n\t\t\t{ hasData && (\n\t\t\t\t<Grid\n\t\t\t\t\tgap={ 8 }\n\t\t\t\t\tcolumns={ 2 }\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tclassName=\"dataviews-view-grid\"\n\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t>\n\t\t\t\t\t{ data.map( ( item ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t\t\t\tbadgeFields={ badgeFields }\n\t\t\t\t\t\t\t\tcolumnFields={ view.layout.columnFields }\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</Grid>\n\t\t\t) }\n\t\t\t{ ! hasData && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t\t'dataviews-no-results': ! isLoading,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SACCC,kBAAkB,IAAIC,IAAI,EAC1BC,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,EAC9BC,OAAO,EACPC,IAAI,EACJC,QAAQ,QACF,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,OAAOC,WAAW,MAAM,gBAAgB;AACxC,OAAOC,uBAAuB,MAAM,6BAA6B;AACjE,SAASC,yBAAyB,QAAQ,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAiB3D,SAASC,QAAQA,CAA0B;EAC1CC,SAAS;EACTC,IAAI;EACJC,iBAAiB;EACjBC,SAAS;EACTC,IAAI;EACJC,OAAO;EACPC,UAAU;EACVC,YAAY;EACZC,aAAa;EACbC,WAAW;EACXC;AACsB,CAAC,EAAG;EAC1B,MAAMC,aAAa,GAAGnB,yBAAyB,CAAEa,OAAO,EAAED,IAAK,CAAC;EAChE,MAAMQ,EAAE,GAAGT,SAAS,CAAEC,IAAK,CAAC;EAC5B,MAAMS,UAAU,GAAGb,SAAS,CAACc,QAAQ,CAAEF,EAAG,CAAC;EAC3C,oBACChB,KAAA,CAACX,MAAM;IACN8B,OAAO,EAAG,CAAG;IAEbC,SAAS,EAAGrC,IAAI,CAAE,2BAA2B,EAAE;MAC9C,aAAa,EAAEgC,aAAa,IAAIE;IACjC,CAAE,CAAG;IACLI,cAAc,EAAKC,KAAK,IAAM;MAC7B,IAAKA,KAAK,CAACC,OAAO,IAAID,KAAK,CAACE,OAAO,EAAG;QACrCF,KAAK,CAACG,eAAe,CAAC,CAAC;QACvBH,KAAK,CAACI,cAAc,CAAC,CAAC;QACtB,IAAK,CAAEX,aAAa,EAAG;UACtB;QACD;QACA,IAAK,CAAEE,UAAU,EAAG;UACnBX,iBAAiB,CAChBD,IAAI,CAACsB,MAAM,CAAIC,KAAK,IAAM;YACzB,MAAMC,MAAM,GAAGtB,SAAS,GAAIqB,KAAM,CAAC;YACnC,OACCC,MAAM,KAAKb,EAAE,IACbZ,SAAS,CAACc,QAAQ,CAAEW,MAAO,CAAC;UAE9B,CAAE,CACH,CAAC;QACF,CAAC,MAAM;UACNvB,iBAAiB,CAChBD,IAAI,CAACsB,MAAM,CAAIC,KAAK,IAAM;YACzB,MAAMC,MAAM,GAAGtB,SAAS,GAAIqB,KAAM,CAAC;YACnC,OACCC,MAAM,KAAKb,EAAE,IACbZ,SAAS,CAACc,QAAQ,CAAEW,MAAO,CAAC;UAE9B,CAAE,CACH,CAAC;QACF;MACD;IACD,CAAG;IAAAC,QAAA,gBAEHhC,IAAA;MAAKsB,SAAS,EAAC,4BAA4B;MAAAU,QAAA,EACxCpB,UAAU,EAAEqB,MAAM,CAAE;QAAEvB;MAAK,CAAE;IAAC,CAC5B,CAAC,eACNR,KAAA,CAACb,MAAM;MACN6C,OAAO,EAAC,eAAe;MACvBZ,SAAS,EAAC,oCAAoC;MAAAU,QAAA,gBAE9ChC,IAAA,CAACH,uBAAuB;QACvBa,IAAI,EAAGA,IAAM;QACbJ,SAAS,EAAGA,SAAW;QACvBE,iBAAiB,EAAGA,iBAAmB;QACvCC,SAAS,EAAGA,SAAW;QACvBF,IAAI,EAAGA,IAAM;QACbM,YAAY,EAAGA,YAAc;QAC7BsB,QAAQ,EAAG,CAAElB;MAAe,CAC5B,CAAC,eACFjB,IAAA,CAACX,MAAM;QAACiC,SAAS,EAAC,oCAAoC;QAAAU,QAAA,EACnDnB,YAAY,EAAEoB,MAAM,CAAE;UAAEvB;QAAK,CAAE;MAAC,CAC3B,CAAC,eACTV,IAAA,CAACJ,WAAW;QAACc,IAAI,EAAGA,IAAM;QAACC,OAAO,EAAGA,OAAS;QAACyB,SAAS;MAAA,CAAE,CAAC;IAAA,CACpD,CAAC,EACP,CAAC,CAAErB,WAAW,EAAEsB,MAAM,iBACvBrC,IAAA,CAACX,MAAM;MACNiC,SAAS,EAAC,mCAAmC;MAC7CD,OAAO,EAAG,CAAG;MACbiB,IAAI;MACJC,SAAS,EAAC,KAAK;MACfL,OAAO,EAAC,YAAY;MAAAF,QAAA,EAElBjB,WAAW,CAACyB,GAAG,CAAIC,KAAK,IAAM;QAC/B,MAAMC,aAAa,GAAGD,KAAK,CAACR,MAAM,CAAE;UACnCvB;QACD,CAAE,CAAC;QACH,IAAK,CAAEgC,aAAa,EAAG;UACtB,OAAO,IAAI;QACZ;QACA,oBACC1C,IAAA,CAACN,QAAQ;UAER4B,SAAS,EAAC,kCAAkC;UAAAU,QAAA,EAE1CU;QAAa,GAHTD,KAAK,CAACvB,EAIH,CAAC;MAEb,CAAE;IAAC,CACI,CACR,EACC,CAAC,CAAEJ,aAAa,EAAEuB,MAAM,iBACzBrC,IAAA,CAACT,MAAM;MAAC+B,SAAS,EAAC,6BAA6B;MAACD,OAAO,EAAG,CAAG;MAAAW,QAAA,EAC1DlB,aAAa,CAAC0B,GAAG,CAAIC,KAAK,IAAM;QACjC,MAAMC,aAAa,GAAGD,KAAK,CAACR,MAAM,CAAE;UACnCvB;QACD,CAAE,CAAC;QACH,IAAK,CAAEgC,aAAa,EAAG;UACtB,OAAO,IAAI;QACZ;QACA,oBACC1C,IAAA,CAACP,IAAI;UACJ6B,SAAS,EAAGrC,IAAI,CACf,4BAA4B,EAC5B+B,YAAY,EAAEI,QAAQ,CAAEqB,KAAK,CAACvB,EAAG,CAAC,GAC/B,WAAW,GACX,QACJ,CAAG;UAEHyB,GAAG,EAAG,CAAG;UACTT,OAAO,EAAC,YAAY;UACpBU,QAAQ;UACRC,KAAK,EAAG;YAAEC,MAAM,EAAE;UAAO,CAAG;UAC5BC,SAAS,EACR/B,YAAY,EAAEI,QAAQ,CAAEqB,KAAK,CAACvB,EAAG,CAAC,GAC/B,QAAQ,GACR,KACH;UAAAc,QAAA,eAED9B,KAAA,CAAAE,SAAA;YAAA4B,QAAA,gBACChC,IAAA,CAACN,QAAQ;cAAC4B,SAAS,EAAC,iCAAiC;cAAAU,QAAA,EAClDS,KAAK,CAACO;YAAM,CACL,CAAC,eACXhD,IAAA,CAACN,QAAQ;cACR4B,SAAS,EAAC,kCAAkC;cAC5CuB,KAAK,EAAG;gBAAEI,SAAS,EAAE;cAAO,CAAG;cAAAjB,QAAA,EAE7BU;YAAa,CACN,CAAC;UAAA,CACV;QAAC,GArBGD,KAAK,CAACvB,EAsBP,CAAC;MAET,CAAE;IAAC,CACI,CACR;EAAA,GA7HKA,EA8HC,CAAC;AAEX;AAEA,eAAe,SAASgC,QAAQA,CAA0B;EACzDvC,OAAO;EACPJ,IAAI;EACJ4C,MAAM;EACN1C,SAAS;EACT2C,SAAS;EACT5C,iBAAiB;EACjBF,SAAS;EACT+C;AACsB,CAAC,EAAG;EAC1B,MAAMzC,UAAU,GAAGuC,MAAM,CAACG,IAAI,CAC3Bb,KAAK,IAAMA,KAAK,CAACvB,EAAE,KAAKmC,IAAI,CAACE,MAAM,CAAC3C,UACvC,CAAC;EACD,MAAMC,YAAY,GAAGsC,MAAM,CAACG,IAAI,CAC7Bb,KAAK,IAAMA,KAAK,CAACvB,EAAE,KAAKmC,IAAI,CAACE,MAAM,CAAC1C,YACvC,CAAC;EACD,MAAM;IAAEC,aAAa;IAAEC;EAAY,CAAC,GAAGoC,MAAM,CAACK,MAAM,CACnD,CAAEC,WAAwD,EAAEhB,KAAK,KAAM;IACtE,IACCY,IAAI,CAACK,YAAY,CAACtC,QAAQ,CAAEqB,KAAK,CAACvB,EAAG,CAAC,IACtC,CAAEmC,IAAI,CAACE,MAAM,CAAC3C,UAAU,EAAEyC,IAAI,CAACE,MAAM,CAAC1C,YAAY,CAAE,CAACO,QAAQ,CAC5DqB,KAAK,CAACvB,EACP,CAAC,EACA;MACD,OAAOuC,WAAW;IACnB;IACA;IACA;IACA,MAAME,GAAG,GAAGN,IAAI,CAACE,MAAM,CAACxC,WAAW,EAAEK,QAAQ,CAAEqB,KAAK,CAACvB,EAAG,CAAC,GACtD,aAAa,GACb,eAAe;IAClBuC,WAAW,CAAEE,GAAG,CAAE,CAACC,IAAI,CAAEnB,KAAM,CAAC;IAChC,OAAOgB,WAAW;EACnB,CAAC,EACD;IAAE3C,aAAa,EAAE,EAAE;IAAEC,WAAW,EAAE;EAAG,CACtC,CAAC;EACD,MAAM8C,OAAO,GAAG,CAAC,CAAEtD,IAAI,EAAE8B,MAAM;EAC/B,oBACCnC,KAAA,CAAAE,SAAA;IAAA4B,QAAA,GACG6B,OAAO,iBACR7D,IAAA,CAACb,IAAI;MACJwD,GAAG,EAAG,CAAG;MACTmB,OAAO,EAAG,CAAG;MACbvB,SAAS,EAAC,KAAK;MACfjB,SAAS,EAAC,qBAAqB;MAC/B,aAAY8B,SAAW;MAAApB,QAAA,EAErBzB,IAAI,CAACiC,GAAG,CAAI9B,IAAI,IAAM;QACvB,oBACCV,IAAA,CAACK,QAAQ;UAERC,SAAS,EAAGA,SAAW;UACvBC,IAAI,EAAGA,IAAM;UACbC,iBAAiB,EAAGA,iBAAmB;UACvCC,SAAS,EAAGA,SAAW;UACvBC,IAAI,EAAGA,IAAM;UACbC,OAAO,EAAGA,OAAS;UACnBC,UAAU,EAAGA,UAAY;UACzBC,YAAY,EAAGA,YAAc;UAC7BC,aAAa,EAAGA,aAAe;UAC/BC,WAAW,EAAGA,WAAa;UAC3BC,YAAY,EAAGqC,IAAI,CAACE,MAAM,CAACvC;QAAc,GAXnCP,SAAS,CAAEC,IAAK,CAYtB,CAAC;MAEJ,CAAE;IAAC,CACE,CACN,EACC,CAAEmD,OAAO,iBACV7D,IAAA;MACCsB,SAAS,EAAGrC,IAAI,CAAE;QACjB,mBAAmB,EAAEmE,SAAS;QAC9B,sBAAsB,EAAE,CAAEA;MAC3B,CAAE,CAAG;MAAApB,QAAA,eAELhC,IAAA;QAAAgC,QAAA,EAAKoB,SAAS,gBAAGpD,IAAA,CAACR,OAAO,IAAE,CAAC,GAAGG,EAAE,CAAE,YAAa;MAAC,CAAK;IAAC,CACnD,CACL;EAAA,CACA,CAAC;AAEL","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","__experimentalGrid","Grid","__experimentalHStack","HStack","__experimentalVStack","VStack","Spinner","Flex","FlexItem","__","ItemActions","SingleSelectionCheckbox","useHasAPossibleBulkAction","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","GridItem","selection","onSelectionChange","getItemId","item","actions","mediaField","primaryField","visibleFields","badgeFields","columnFields","hasBulkAction","id","isSelected","includes","spacing","className","onClickCapture","event","ctrlKey","metaKey","stopPropagation","preventDefault","filter","itemId","children","render","justify","disabled","isCompact","length","wrap","alignment","map","field","renderedValue","gap","expanded","style","height","direction","header","maxHeight","ViewGrid","data","fields","isLoading","view","find","layout","viewFields","reduce","accumulator","key","push","hasData","columns"],"sources":["@wordpress/dataviews/src/view-grid.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tSpinner,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ItemActions from './item-actions';\nimport SingleSelectionCheckbox from './single-selection-checkbox';\nimport { useHasAPossibleBulkAction } from './bulk-actions';\nimport type { Action, NormalizedField, ViewGridProps } from './types';\nimport type { SetSelection } from './private-types';\n\ninterface GridItemProps< Item > {\n\tselection: string[];\n\tonSelectionChange: SetSelection;\n\tgetItemId: ( item: Item ) => string;\n\titem: Item;\n\tactions: Action< Item >[];\n\tmediaField?: NormalizedField< Item >;\n\tprimaryField?: NormalizedField< Item >;\n\tvisibleFields: NormalizedField< Item >[];\n\tbadgeFields: NormalizedField< Item >[];\n\tcolumnFields?: string[];\n}\n\nfunction GridItem< Item >( {\n\tselection,\n\tonSelectionChange,\n\tgetItemId,\n\titem,\n\tactions,\n\tmediaField,\n\tprimaryField,\n\tvisibleFields,\n\tbadgeFields,\n\tcolumnFields,\n}: GridItemProps< Item > ) {\n\tconst hasBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst id = getItemId( item );\n\tconst isSelected = selection.includes( id );\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 0 }\n\t\t\tkey={ id }\n\t\t\tclassName={ clsx( 'dataviews-view-grid__card', {\n\t\t\t\t'is-selected': hasBulkAction && isSelected,\n\t\t\t} ) }\n\t\t\tonClickCapture={ ( event ) => {\n\t\t\t\tif ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif ( ! hasBulkAction ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t\t? selection.filter( ( itemId ) => id !== itemId )\n\t\t\t\t\t\t\t: [ ...selection, id ]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-view-grid__media\">\n\t\t\t\t{ mediaField?.render( { item } ) }\n\t\t\t</div>\n\t\t\t<HStack\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews-view-grid__title-actions\"\n\t\t\t>\n\t\t\t\t<SingleSelectionCheckbox\n\t\t\t\t\titem={ item }\n\t\t\t\t\tselection={ selection }\n\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\tdisabled={ ! hasBulkAction }\n\t\t\t\t/>\n\t\t\t\t<HStack className=\"dataviews-view-grid__primary-field\">\n\t\t\t\t\t{ primaryField?.render( { item } ) }\n\t\t\t\t</HStack>\n\t\t\t\t<ItemActions item={ item } actions={ actions } isCompact />\n\t\t\t</HStack>\n\t\t\t{ !! badgeFields?.length && (\n\t\t\t\t<HStack\n\t\t\t\t\tclassName=\"dataviews-view-grid__badge-fields\"\n\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\twrap\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t>\n\t\t\t\t\t{ badgeFields.map( ( field ) => {\n\t\t\t\t\t\tconst renderedValue = field.render( {\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tif ( ! renderedValue ) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ renderedValue }\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t\t{ !! visibleFields?.length && (\n\t\t\t\t<VStack className=\"dataviews-view-grid__fields\" spacing={ 3 }>\n\t\t\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\t\t\tconst renderedValue = field.render( {\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tif ( ! renderedValue ) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'dataviews-view-grid__field',\n\t\t\t\t\t\t\t\t\tcolumnFields?.includes( field.id )\n\t\t\t\t\t\t\t\t\t\t? 'is-column'\n\t\t\t\t\t\t\t\t\t\t: 'is-row'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tgap={ 1 }\n\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\texpanded\n\t\t\t\t\t\t\t\tstyle={ { height: 'auto' } }\n\t\t\t\t\t\t\t\tdirection={\n\t\t\t\t\t\t\t\t\tcolumnFields?.includes( field.id )\n\t\t\t\t\t\t\t\t\t\t? 'column'\n\t\t\t\t\t\t\t\t\t\t: 'row'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<FlexItem className=\"dataviews-view-grid__field-name\">\n\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t\t\tstyle={ { maxHeight: 'none' } }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ renderedValue }\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default function ViewGrid< Item >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading,\n\tonSelectionChange,\n\tselection,\n\tview,\n}: ViewGridProps< Item > ) {\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 viewFields = view.fields || fields.map( ( field ) => field.id );\n\tconst { visibleFields, badgeFields } = fields.reduce(\n\t\t( accumulator: Record< string, NormalizedField< Item >[] >, field ) => {\n\t\t\tif (\n\t\t\t\t! viewFields.includes( field.id ) ||\n\t\t\t\t[\n\t\t\t\t\tview.layout?.mediaField,\n\t\t\t\t\tview?.layout?.primaryField,\n\t\t\t\t].includes( field.id )\n\t\t\t) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\t\t\t// If the field is a badge field, add it to the badgeFields array\n\t\t\t// otherwise add it to the rest visibleFields array.\n\t\t\tconst key = view.layout?.badgeFields?.includes( field.id )\n\t\t\t\t? 'badgeFields'\n\t\t\t\t: 'visibleFields';\n\t\t\taccumulator[ key ].push( field );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ visibleFields: [], badgeFields: [] }\n\t);\n\tconst hasData = !! data?.length;\n\treturn (\n\t\t<>\n\t\t\t{ hasData && (\n\t\t\t\t<Grid\n\t\t\t\t\tgap={ 8 }\n\t\t\t\t\tcolumns={ 2 }\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tclassName=\"dataviews-view-grid\"\n\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t>\n\t\t\t\t\t{ data.map( ( item ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t\t\t\tbadgeFields={ badgeFields }\n\t\t\t\t\t\t\t\tcolumnFields={ view.layout?.columnFields }\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</Grid>\n\t\t\t) }\n\t\t\t{ ! hasData && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t\t'dataviews-no-results': ! isLoading,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -190,7 +190,7 @@ function ListItem({
|
|
|
190
190
|
size: "compact",
|
|
191
191
|
icon: moreVertical,
|
|
192
192
|
label: __('Actions'),
|
|
193
|
-
|
|
193
|
+
accessibleWhenDisabled: true,
|
|
194
194
|
disabled: !actions.length,
|
|
195
195
|
onKeyDown: event => {
|
|
196
196
|
if (event.key === 'ArrowDown') {
|
|
@@ -230,10 +230,11 @@ export default function ViewList(props) {
|
|
|
230
230
|
} = props;
|
|
231
231
|
const baseId = useInstanceId(ViewList, 'view-list');
|
|
232
232
|
const selectedItem = data?.findLast(item => selection.includes(getItemId(item)));
|
|
233
|
-
const mediaField = fields.find(field => field.id === view.layout
|
|
234
|
-
const primaryField = fields.find(field => field.id === view.layout
|
|
235
|
-
const
|
|
236
|
-
const
|
|
233
|
+
const mediaField = fields.find(field => field.id === view.layout?.mediaField);
|
|
234
|
+
const primaryField = fields.find(field => field.id === view.layout?.primaryField);
|
|
235
|
+
const viewFields = view.fields || fields.map(field => field.id);
|
|
236
|
+
const visibleFields = fields.filter(field => viewFields.includes(field.id) && ![view.layout?.primaryField, view.layout?.mediaField].includes(field.id));
|
|
237
|
+
const onSelect = item => onSelectionChange([getItemId(item)]);
|
|
237
238
|
const getItemDomId = useCallback(item => item ? `${baseId}-${getItemId(item)}` : undefined, [baseId, getItemId]);
|
|
238
239
|
const store = useCompositeStore({
|
|
239
240
|
defaultActiveId: getItemDomId(selectedItem)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","useInstanceId","__experimentalHStack","HStack","__experimentalVStack","VStack","Button","privateApis","componentsPrivateApis","Spinner","VisuallyHidden","useCallback","useEffect","useMemo","useRef","useState","__","moreVertical","useRegistry","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","registry","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';\nimport { useRegistry } from '@wordpress/data';\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 registry = useRegistry();\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\t[ item ],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ registry }\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":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","useInstanceId","__experimentalHStack","HStack","__experimentalVStack","VStack","Button","privateApis","componentsPrivateApis","Spinner","VisuallyHidden","useCallback","useEffect","useMemo","useRef","useState","__","moreVertical","useRegistry","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","registry","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","accessibleWhenDisabled","disabled","onKeyDown","event","key","preventDefault","move","down","up","placement","ViewList","props","data","fields","getItemId","isLoading","onSelectionChange","selection","view","baseId","selectedItem","findLast","includes","find","layout","viewFields","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';\nimport { useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport type { Action, NormalizedField, ViewListProps } from './types';\n\nimport { ActionsDropdownMenuGroup, ActionModal } from './item-actions';\n\ninterface ListViewItemProps< Item > {\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 >( {\n\tactions,\n\tid,\n\tisSelected,\n\titem,\n\tmediaField,\n\tonSelect,\n\tprimaryField,\n\tstore,\n\tvisibleFields,\n}: ListViewItemProps< Item > ) {\n\tconst registry = useRegistry();\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\t[ item ],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ registry }\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\taccessibleWhenDisabled\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 >( props: ViewListProps< Item > ) {\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 viewFields = view.fields || fields.map( ( field ) => field.id );\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\tviewFields.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 = ( item: Item ) =>\n\t\tonSelectionChange( [ getItemId( item ) ] );\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":"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","ignoreList":[]}
|
|
@@ -40,6 +40,7 @@ function WithDropDownMenuSeparators({
|
|
|
40
40
|
const _HeaderMenu = forwardRef(function HeaderMenu({
|
|
41
41
|
field,
|
|
42
42
|
view,
|
|
43
|
+
fields,
|
|
43
44
|
onChangeView,
|
|
44
45
|
onHide,
|
|
45
46
|
setOpenedFilter
|
|
@@ -125,10 +126,11 @@ const _HeaderMenu = forwardRef(function HeaderMenu({
|
|
|
125
126
|
icon: unseen
|
|
126
127
|
}),
|
|
127
128
|
onClick: () => {
|
|
129
|
+
const viewFields = view.fields || fields.map(f => f.id);
|
|
128
130
|
onHide(field);
|
|
129
131
|
onChangeView({
|
|
130
132
|
...view,
|
|
131
|
-
|
|
133
|
+
fields: viewFields.filter(fieldId => fieldId !== field.id)
|
|
132
134
|
});
|
|
133
135
|
},
|
|
134
136
|
children: /*#__PURE__*/_jsx(DropdownMenuItemLabel, {
|
|
@@ -164,7 +166,7 @@ function BulkSelectionCheckbox({
|
|
|
164
166
|
if (areAllSelected) {
|
|
165
167
|
onSelectionChange([]);
|
|
166
168
|
} else {
|
|
167
|
-
onSelectionChange(selectableItems);
|
|
169
|
+
onSelectionChange(selectableItems.map(item => getItemId(item)));
|
|
168
170
|
}
|
|
169
171
|
},
|
|
170
172
|
"aria-label": areAllSelected ? __('Deselect all') : __('Select all')
|
|
@@ -179,8 +181,7 @@ function TableRow({
|
|
|
179
181
|
primaryField,
|
|
180
182
|
selection,
|
|
181
183
|
getItemId,
|
|
182
|
-
onSelectionChange
|
|
183
|
-
data
|
|
184
|
+
onSelectionChange
|
|
184
185
|
}) {
|
|
185
186
|
const hasPossibleBulkAction = useHasAPossibleBulkAction(actions, item);
|
|
186
187
|
const isSelected = hasPossibleBulkAction && selection.includes(id);
|
|
@@ -212,17 +213,7 @@ function TableRow({
|
|
|
212
213
|
return;
|
|
213
214
|
}
|
|
214
215
|
if (!isTouchDevice.current && document.getSelection()?.type !== 'Range') {
|
|
215
|
-
|
|
216
|
-
onSelectionChange(data.filter(_item => {
|
|
217
|
-
const itemId = getItemId?.(_item);
|
|
218
|
-
return itemId === id || selection.includes(itemId);
|
|
219
|
-
}));
|
|
220
|
-
} else {
|
|
221
|
-
onSelectionChange(data.filter(_item => {
|
|
222
|
-
const itemId = getItemId?.(_item);
|
|
223
|
-
return itemId !== id && selection.includes(itemId);
|
|
224
|
-
}));
|
|
225
|
-
}
|
|
216
|
+
onSelectionChange(selection.includes(id) ? selection.filter(itemId => id !== itemId) : [...selection, id]);
|
|
226
217
|
}
|
|
227
218
|
},
|
|
228
219
|
children: [hasBulkActions && /*#__PURE__*/_jsx("td", {
|
|
@@ -237,7 +228,6 @@ function TableRow({
|
|
|
237
228
|
selection: selection,
|
|
238
229
|
onSelectionChange: onSelectionChange,
|
|
239
230
|
getItemId: getItemId,
|
|
240
|
-
data: data,
|
|
241
231
|
primaryField: primaryField,
|
|
242
232
|
disabled: !hasPossibleBulkAction
|
|
243
233
|
})
|
|
@@ -312,9 +302,10 @@ function ViewTable({
|
|
|
312
302
|
const fallback = hidden ? headerMenuRefs.current.get(hidden.fallback) : undefined;
|
|
313
303
|
setNextHeaderMenuToFocus(fallback?.node);
|
|
314
304
|
};
|
|
315
|
-
const
|
|
305
|
+
const viewFields = view.fields || fields.map(f => f.id);
|
|
306
|
+
const visibleFields = fields.filter(field => viewFields.includes(field.id) || [view.layout?.mediaField].includes(field.id));
|
|
316
307
|
const hasData = !!data?.length;
|
|
317
|
-
const primaryField = fields.find(field => field.id === view.layout
|
|
308
|
+
const primaryField = fields.find(field => field.id === view.layout?.primaryField);
|
|
318
309
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
319
310
|
children: [/*#__PURE__*/_jsxs("table", {
|
|
320
311
|
className: "dataviews-view-table",
|
|
@@ -359,6 +350,7 @@ function ViewTable({
|
|
|
359
350
|
},
|
|
360
351
|
field: field,
|
|
361
352
|
view: view,
|
|
353
|
+
fields: fields,
|
|
362
354
|
onChangeView: onChangeView,
|
|
363
355
|
onHide: onHide,
|
|
364
356
|
setOpenedFilter: setOpenedFilter
|
|
@@ -382,8 +374,7 @@ function ViewTable({
|
|
|
382
374
|
primaryField: primaryField,
|
|
383
375
|
selection: selection,
|
|
384
376
|
getItemId: getItemId,
|
|
385
|
-
onSelectionChange: onSelectionChange
|
|
386
|
-
data: data
|
|
377
|
+
onSelectionChange: onSelectionChange
|
|
387
378
|
}, getItemId(item)))
|
|
388
379
|
})]
|
|
389
380
|
}), /*#__PURE__*/_jsx("div", {
|