@wordpress/dataviews 1.2.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +33 -30
  3. package/build/add-filter.js +30 -22
  4. package/build/add-filter.js.map +1 -1
  5. package/build/bulk-actions-toolbar.js +74 -69
  6. package/build/bulk-actions-toolbar.js.map +1 -1
  7. package/build/bulk-actions.js +69 -56
  8. package/build/bulk-actions.js.map +1 -1
  9. package/build/constants.js +17 -10
  10. package/build/constants.js.map +1 -1
  11. package/build/dataviews.js +63 -56
  12. package/build/dataviews.js.map +1 -1
  13. package/build/filter-summary.js +105 -95
  14. package/build/filter-summary.js.map +1 -1
  15. package/build/filters.js +18 -17
  16. package/build/filters.js.map +1 -1
  17. package/build/index.js.map +1 -1
  18. package/build/item-actions.js +79 -65
  19. package/build/item-actions.js.map +1 -1
  20. package/build/layouts.js.map +1 -1
  21. package/build/pagination.js +60 -57
  22. package/build/pagination.js.map +1 -1
  23. package/build/reset-filters.js +9 -4
  24. package/build/reset-filters.js.map +1 -1
  25. package/build/search-widget.js +108 -89
  26. package/build/search-widget.js.map +1 -1
  27. package/build/search.js +13 -6
  28. package/build/search.js.map +1 -1
  29. package/build/single-selection-checkbox.js +2 -2
  30. package/build/single-selection-checkbox.js.map +1 -1
  31. package/build/types.js.map +1 -1
  32. package/build/utils.js +3 -15
  33. package/build/utils.js.map +1 -1
  34. package/build/view-actions.js +168 -120
  35. package/build/view-actions.js.map +1 -1
  36. package/build/view-grid.js +113 -99
  37. package/build/view-grid.js.map +1 -1
  38. package/build/view-list.js +154 -132
  39. package/build/view-list.js.map +1 -1
  40. package/build/view-table.js +220 -192
  41. package/build/view-table.js.map +1 -1
  42. package/build-module/add-filter.js +30 -22
  43. package/build-module/add-filter.js.map +1 -1
  44. package/build-module/bulk-actions-toolbar.js +76 -69
  45. package/build-module/bulk-actions-toolbar.js.map +1 -1
  46. package/build-module/bulk-actions.js +71 -56
  47. package/build-module/bulk-actions.js.map +1 -1
  48. package/build-module/constants.js +16 -9
  49. package/build-module/constants.js.map +1 -1
  50. package/build-module/dataviews.js +64 -56
  51. package/build-module/dataviews.js.map +1 -1
  52. package/build-module/filter-summary.js +106 -96
  53. package/build-module/filter-summary.js.map +1 -1
  54. package/build-module/filters.js +18 -17
  55. package/build-module/filters.js.map +1 -1
  56. package/build-module/index.js.map +1 -1
  57. package/build-module/item-actions.js +81 -65
  58. package/build-module/item-actions.js.map +1 -1
  59. package/build-module/layouts.js.map +1 -1
  60. package/build-module/pagination.js +61 -58
  61. package/build-module/pagination.js.map +1 -1
  62. package/build-module/reset-filters.js +9 -4
  63. package/build-module/reset-filters.js.map +1 -1
  64. package/build-module/search-widget.js +109 -89
  65. package/build-module/search-widget.js.map +1 -1
  66. package/build-module/search.js +13 -6
  67. package/build-module/search.js.map +1 -1
  68. package/build-module/single-selection-checkbox.js +2 -3
  69. package/build-module/single-selection-checkbox.js.map +1 -1
  70. package/build-module/types.js.map +1 -1
  71. package/build-module/utils.js +2 -13
  72. package/build-module/utils.js.map +1 -1
  73. package/build-module/view-actions.js +170 -121
  74. package/build-module/view-actions.js.map +1 -1
  75. package/build-module/view-grid.js +115 -99
  76. package/build-module/view-grid.js.map +1 -1
  77. package/build-module/view-list.js +155 -132
  78. package/build-module/view-list.js.map +1 -1
  79. package/build-module/view-table.js +223 -194
  80. package/build-module/view-table.js.map +1 -1
  81. package/build-style/style-rtl.css +115 -22
  82. package/build-style/style.css +115 -22
  83. package/build-types/add-filter.d.ts +9 -6
  84. package/build-types/add-filter.d.ts.map +1 -1
  85. package/build-types/bulk-actions-toolbar.d.ts +11 -7
  86. package/build-types/bulk-actions-toolbar.d.ts.map +1 -1
  87. package/build-types/bulk-actions.d.ts.map +1 -1
  88. package/build-types/constants.d.ts +19 -32
  89. package/build-types/constants.d.ts.map +1 -1
  90. package/build-types/dataviews.d.ts +21 -14
  91. package/build-types/dataviews.d.ts.map +1 -1
  92. package/build-types/filter-summary.d.ts +13 -5
  93. package/build-types/filter-summary.d.ts.map +1 -1
  94. package/build-types/filters.d.ts +11 -1
  95. package/build-types/filters.d.ts.map +1 -1
  96. package/build-types/index.d.ts +3 -3
  97. package/build-types/index.d.ts.map +1 -1
  98. package/build-types/item-actions.d.ts +5 -7
  99. package/build-types/item-actions.d.ts.map +1 -1
  100. package/build-types/layouts.d.ts +8 -4
  101. package/build-types/layouts.d.ts.map +1 -1
  102. package/build-types/reset-filters.d.ts +12 -5
  103. package/build-types/reset-filters.d.ts.map +1 -1
  104. package/build-types/search-widget.d.ts +9 -1
  105. package/build-types/search-widget.d.ts.map +1 -1
  106. package/build-types/search.d.ts +11 -1
  107. package/build-types/search.d.ts.map +1 -1
  108. package/build-types/types.d.ts +78 -10
  109. package/build-types/types.d.ts.map +1 -1
  110. package/build-types/utils.d.ts +2 -1
  111. package/build-types/utils.d.ts.map +1 -1
  112. package/build-types/view-actions.d.ts +10 -1
  113. package/build-types/view-actions.d.ts.map +1 -1
  114. package/build-types/view-grid.d.ts +1 -12
  115. package/build-types/view-grid.d.ts.map +1 -1
  116. package/build-types/view-list.d.ts +2 -14
  117. package/build-types/view-list.d.ts.map +1 -1
  118. package/build-types/view-table.d.ts +3 -12
  119. package/build-types/view-table.d.ts.map +1 -1
  120. package/package.json +11 -12
  121. package/src/{add-filter.js → add-filter.tsx} +17 -1
  122. package/src/{bulk-actions-toolbar.js → bulk-actions-toolbar.tsx} +68 -40
  123. package/src/bulk-actions.tsx +5 -1
  124. package/src/constants.ts +12 -5
  125. package/src/{dataviews.js → dataviews.tsx} +41 -12
  126. package/src/{filter-summary.js → filter-summary.tsx} +35 -6
  127. package/src/{filters.js → filters.tsx} +18 -6
  128. package/src/item-actions.tsx +21 -15
  129. package/src/pagination.tsx +1 -1
  130. package/src/{reset-filters.js → reset-filters.tsx} +17 -2
  131. package/src/{search-widget.js → search-widget.tsx} +27 -7
  132. package/src/{search.js → search.tsx} +22 -5
  133. package/src/style.scss +102 -25
  134. package/src/types.ts +105 -10
  135. package/src/{utils.js → utils.ts} +5 -13
  136. package/src/{view-actions.js → view-actions.tsx} +105 -49
  137. package/src/view-grid.tsx +4 -20
  138. package/src/view-list.tsx +13 -23
  139. package/src/{view-table.js → view-table.tsx} +91 -32
  140. package/tsconfig.json +0 -3
  141. package/tsconfig.tsbuildinfo +1 -1
  142. package/build/dropdown-menu-helper.js +0 -71
  143. package/build/dropdown-menu-helper.js.map +0 -1
  144. package/build-module/dropdown-menu-helper.js +0 -64
  145. package/build-module/dropdown-menu-helper.js.map +0 -1
  146. package/build-types/dropdown-menu-helper.d.ts +0 -6
  147. package/build-types/dropdown-menu-helper.d.ts.map +0 -1
  148. package/src/dropdown-menu-helper.js +0 -61
  149. /package/src/{index.js → index.ts} +0 -0
  150. /package/src/{layouts.js → layouts.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_icons","_components","_element","_singleSelectionCheckbox","_lockUnlock","_itemActions","_utils","_constants","_bulkActions","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuRadioItemV2","DropdownMenuRadioItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","DropdownMenuSeparatorV2","DropdownMenuSeparator","unlock","componentsPrivateApis","WithDropDownMenuSeparators","children","Children","toArray","filter","Boolean","map","child","i","_react","createElement","Fragment","key","sortArrows","asc","desc","HeaderMenu","forwardRef","field","view","onChangeView","onHide","setOpenedFilter","ref","isHidable","enableHiding","isSortable","enableSorting","isSorted","sort","id","operators","sanitizeOperators","canAddFilter","filters","some","_filter","elements","length","filterBy","isPrimary","header","align","trigger","Button","size","className","variant","direction","style","minWidth","Object","entries","SORTING_DIRECTIONS","info","isChecked","value","name","checked","onChange","label","prefix","Icon","icon","funnel","onClick","page","undefined","operator","__","unseen","hiddenFields","concat","BulkSelectionCheckbox","selection","onSelectionChange","data","actions","selectableItems","useMemo","item","action","supportsBulk","isEligible","areAllSelected","CheckboxControl","__nextHasNoMarginBottom","indeterminate","TableRow","hasBulkActions","visibleFields","primaryField","getItemId","hasPossibleBulkAction","useHasAPossibleBulkAction","isSelected","includes","isHovered","setIsHovered","useState","handleMouseEnter","handleMouseLeave","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","sortValues","find","scope","index","set","delete","Spinner","_default","exports"],"sources":["@wordpress/dataviews/src/view-table.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\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 { SORTING_DIRECTIONS } from './constants';\nimport {\n\tuseSomeItemHasAPossibleBulkAction,\n\tuseHasAPossibleBulkAction,\n} from './bulk-actions';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuRadioItemV2: DropdownMenuRadioItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n\tDropdownMenuSeparatorV2: DropdownMenuSeparator,\n} = unlock( componentsPrivateApis );\n\nfunction WithDropDownMenuSeparators( { children } ) {\n\treturn Children.toArray( children )\n\t\t.filter( Boolean )\n\t\t.map( ( child, i ) => (\n\t\t\t<Fragment key={ i }>\n\t\t\t\t{ i > 0 && <DropdownMenuSeparator /> }\n\t\t\t\t{ child }\n\t\t\t</Fragment>\n\t\t) );\n}\n\nconst sortArrows = { asc: '↑', desc: '↓' };\n\nconst HeaderMenu = forwardRef( function HeaderMenu(\n\t{ field, view, onChangeView, onHide, setOpenedFilter },\n\tref\n) {\n\tconst isHidable = field.enableHiding !== false;\n\tconst isSortable = field.enableSorting !== false;\n\tconst isSorted = view.sort?.field === field.id;\n\tconst operators = sanitizeOperators( field );\n\t// Filter can be added:\n\t// 1. If the field is not already part of a view's filters.\n\t// 2. If the field meets the type and operator requirements.\n\t// 3. If it's not primary. If it is, it should be already visible.\n\tconst canAddFilter =\n\t\t! view.filters?.some( ( _filter ) => field.id === _filter.field ) &&\n\t\t!! field.elements?.length &&\n\t\t!! operators.length &&\n\t\t! field.filterBy?.isPrimary;\n\tif ( ! isSortable && ! isHidable && ! canAddFilter ) {\n\t\treturn field.header;\n\t}\n\treturn (\n\t\t<DropdownMenu\n\t\t\talign=\"start\"\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tclassName=\"dataviews-view-table-header-button\"\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t>\n\t\t\t\t\t{ field.header }\n\t\t\t\t\t{ isSorted && (\n\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t{ isSorted && sortArrows[ view.sort.direction ] }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Button>\n\t\t\t}\n\t\t\tstyle={ { minWidth: '240px' } }\n\t\t>\n\t\t\t<WithDropDownMenuSeparators>\n\t\t\t\t{ isSortable && (\n\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t{ Object.entries( SORTING_DIRECTIONS ).map(\n\t\t\t\t\t\t\t( [ direction, info ] ) => {\n\t\t\t\t\t\t\t\tconst isChecked =\n\t\t\t\t\t\t\t\t\tisSorted &&\n\t\t\t\t\t\t\t\t\tview.sort.direction === direction;\n\n\t\t\t\t\t\t\t\tconst value = `${ field.id }-${ direction }`;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\t// All sorting radio items share the same name, so that\n\t\t\t\t\t\t\t\t\t\t// selecting a sorting option automatically deselects the\n\t\t\t\t\t\t\t\t\t\t// previously selected one, even if it is displayed in\n\t\t\t\t\t\t\t\t\t\t// another submenu. The field and direction are passed via\n\t\t\t\t\t\t\t\t\t\t// the `value` prop.\n\t\t\t\t\t\t\t\t\t\tname=\"view-table-sorting\"\n\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\tchecked={ isChecked }\n\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfield: field.id,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdirection,\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t{ info.label }\n\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t) }\n\t\t\t\t{ canAddFilter && (\n\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\tprefix={ <Icon icon={ funnel } /> }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetOpenedFilter( field.id );\n\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t\t...( view.filters || [] ),\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tfield: field.id,\n\t\t\t\t\t\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t\t\t\t\t\t\toperator: operators[ 0 ],\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t{ __( 'Add filter' ) }\n\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t) }\n\t\t\t\t{ isHidable && (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tprefix={ <Icon icon={ unseen } /> }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonHide( field );\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\thiddenFields: view.hiddenFields.concat(\n\t\t\t\t\t\t\t\t\tfield.id\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t{ __( 'Hide' ) }\n\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t) }\n\t\t\t</WithDropDownMenuSeparators>\n\t\t</DropdownMenu>\n\t);\n} );\n\nfunction BulkSelectionCheckbox( {\n\tselection,\n\tonSelectionChange,\n\tdata,\n\tactions,\n} ) {\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn actions.some(\n\t\t\t\t( action ) => action.supportsBulk && action.isEligible( item )\n\t\t\t);\n\t\t} );\n\t}, [ data, actions ] );\n\tconst areAllSelected = selection.length === selectableItems.length;\n\treturn (\n\t\t<CheckboxControl\n\t\t\tclassName=\"dataviews-view-table-selection-checkbox\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\tchecked={ areAllSelected }\n\t\t\tindeterminate={ ! areAllSelected && selection.length }\n\t\t\tonChange={ () => {\n\t\t\t\tif ( areAllSelected ) {\n\t\t\t\t\tonSelectionChange( [] );\n\t\t\t\t} else {\n\t\t\t\t\tonSelectionChange( selectableItems );\n\t\t\t\t}\n\t\t\t} }\n\t\t\taria-label={\n\t\t\t\tareAllSelected ? __( 'Deselect all' ) : __( 'Select all' )\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction TableRow( {\n\thasBulkActions,\n\titem,\n\tactions,\n\tid,\n\tvisibleFields,\n\tprimaryField,\n\tselection,\n\tgetItemId,\n\tonSelectionChange,\n\tdata,\n} ) {\n\tconst hasPossibleBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst isSelected = selection.includes( id );\n\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\n\tconst handleMouseEnter = () => {\n\t\tsetIsHovered( true );\n\t};\n\n\tconst handleMouseLeave = () => {\n\t\tsetIsHovered( false );\n\t};\n\n\t// Will be set to true if `onTouchStart` fires. This happens before\n\t// `onClick` and can be used to exclude touchscreen devices from certain\n\t// behaviours.\n\tconst isTouchDevice = useRef( false );\n\n\treturn (\n\t\t<tr\n\t\t\tclassName={ 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\tid={ id }\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\t\tdisabled={ ! hasPossibleBulkAction }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</td>\n\t\t\t) }\n\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t<td\n\t\t\t\t\tkey={ field.id }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth: field.width || undefined,\n\t\t\t\t\t\tminWidth: field.minWidth || undefined,\n\t\t\t\t\t\tmaxWidth: field.maxWidth || undefined,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ 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( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading = false,\n\tonChangeView,\n\tonSelectionChange,\n\tselection,\n\tsetOpenedFilter,\n\tview,\n} ) {\n\tconst headerMenuRefs = useRef( new Map() );\n\tconst headerMenuToFocusRef = useRef();\n\tconst [ nextHeaderMenuToFocus, setNextHeaderMenuToFocus ] = useState();\n\tconst hasBulkActions = useSomeItemHasAPossibleBulkAction( actions, data );\n\n\tuseEffect( () => {\n\t\tif ( headerMenuToFocusRef.current ) {\n\t\t\theaderMenuToFocusRef.current.focus();\n\t\t\theaderMenuToFocusRef.current = undefined;\n\t\t}\n\t} );\n\n\tconst tableNoticeId = useId();\n\n\tif ( nextHeaderMenuToFocus ) {\n\t\t// If we need to force focus, we short-circuit rendering here\n\t\t// to prevent any additional work while we handle that.\n\t\t// Clearing out the focus directive is necessary to make sure\n\t\t// future renders don't cause unexpected focus jumps.\n\t\theaderMenuToFocusRef.current = nextHeaderMenuToFocus;\n\t\tsetNextHeaderMenuToFocus();\n\t\treturn;\n\t}\n\n\tconst onHide = ( field ) => {\n\t\tconst hidden = headerMenuRefs.current.get( field.id );\n\t\tconst fallback = headerMenuRefs.current.get( hidden.fallback );\n\t\tsetNextHeaderMenuToFocus( fallback?.node );\n\t};\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\t! view.hiddenFields.includes( field.id ) &&\n\t\t\t! [ view.layout.mediaField ].includes( field.id )\n\t);\n\tconst hasData = !! data?.length;\n\tconst sortValues = { asc: 'ascending', desc: 'descending' };\n\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout.primaryField\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<table\n\t\t\t\tclassName=\"dataviews-view-table\"\n\t\t\t\taria-busy={ isLoading }\n\t\t\t\taria-describedby={ tableNoticeId }\n\t\t\t>\n\t\t\t\t<thead>\n\t\t\t\t\t<tr className=\"dataviews-view-table__row\">\n\t\t\t\t\t\t{ hasBulkActions && (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-table__checkbox-column\"\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\twidth: '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\tsortValues[ view.sort.direction ]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<HeaderMenu\n\t\t\t\t\t\t\t\t\tref={ ( node ) => {\n\t\t\t\t\t\t\t\t\t\tif ( node ) {\n\t\t\t\t\t\t\t\t\t\t\theaderMenuRefs.current.set(\n\t\t\t\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfallback:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvisibleFields[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? index - 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]?.id,\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\theaderMenuRefs.current.delete(\n\t\t\t\t\t\t\t\t\t\t\t\tfield.id\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t\tonHide={ onHide }\n\t\t\t\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tdata-field-id=\"actions\"\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-table__actions-column\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span className=\"dataviews-view-table-header\">\n\t\t\t\t\t\t\t\t\t{ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t{ hasData &&\n\t\t\t\t\t\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 }\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","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,4 +1,7 @@
1
- import { createElement } from "react";
1
+ /**
2
+ * External dependencies
3
+ */
4
+
2
5
  /**
3
6
  * WordPress dependencies
4
7
  */
@@ -10,6 +13,7 @@ import { forwardRef } from '@wordpress/element';
10
13
  * Internal dependencies
11
14
  */
12
15
  import { unlock } from './lock-unlock';
16
+ import { jsx as _jsx } from "react/jsx-runtime";
13
17
  const {
14
18
  DropdownMenuV2: DropdownMenu,
15
19
  DropdownMenuItemV2: DropdownMenuItem,
@@ -27,32 +31,36 @@ function AddFilter({
27
31
  return null;
28
32
  }
29
33
  const inactiveFilters = filters.filter(filter => !filter.isVisible);
30
- return createElement(DropdownMenu, {
31
- trigger: createElement(Button, {
34
+ return /*#__PURE__*/_jsx(DropdownMenu, {
35
+ trigger: /*#__PURE__*/_jsx(Button, {
32
36
  __experimentalIsFocusable: true,
33
37
  size: "compact",
34
38
  className: "dataviews-filters-button",
35
39
  variant: "tertiary",
36
40
  disabled: !inactiveFilters.length,
37
- ref: ref
38
- }, __('Add filter'))
39
- }, inactiveFilters.map(filter => {
40
- return createElement(DropdownMenuItem, {
41
- key: filter.field,
42
- onClick: () => {
43
- setOpenedFilter(filter.field);
44
- onChangeView({
45
- ...view,
46
- page: 1,
47
- filters: [...(view.filters || []), {
48
- field: filter.field,
49
- value: undefined,
50
- operator: filter.operators[0]
51
- }]
52
- });
53
- }
54
- }, createElement(DropdownMenuItemLabel, null, filter.name));
55
- }));
41
+ ref: ref,
42
+ children: __('Add filter')
43
+ }),
44
+ children: inactiveFilters.map(filter => {
45
+ return /*#__PURE__*/_jsx(DropdownMenuItem, {
46
+ onClick: () => {
47
+ setOpenedFilter(filter.field);
48
+ onChangeView({
49
+ ...view,
50
+ page: 1,
51
+ filters: [...(view.filters || []), {
52
+ field: filter.field,
53
+ value: undefined,
54
+ operator: filter.operators[0]
55
+ }]
56
+ });
57
+ },
58
+ children: /*#__PURE__*/_jsx(DropdownMenuItemLabel, {
59
+ children: filter.name
60
+ })
61
+ }, filter.field);
62
+ })
63
+ });
56
64
  }
57
65
  export default forwardRef(AddFilter);
58
66
  //# sourceMappingURL=add-filter.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["privateApis","componentsPrivateApis","Button","__","forwardRef","unlock","DropdownMenuV2","DropdownMenu","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","AddFilter","filters","view","onChangeView","setOpenedFilter","ref","length","every","isPrimary","inactiveFilters","filter","isVisible","createElement","trigger","__experimentalIsFocusable","size","className","variant","disabled","map","key","field","onClick","page","value","undefined","operator","operators","name"],"sources":["@wordpress/dataviews/src/add-filter.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as componentsPrivateApis,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n} = unlock( componentsPrivateApis );\n\nfunction AddFilter( { filters, view, onChangeView, setOpenedFilter }, ref ) {\n\tif ( ! filters.length || filters.every( ( { isPrimary } ) => isPrimary ) ) {\n\t\treturn null;\n\t}\n\tconst inactiveFilters = filters.filter( ( filter ) => ! filter.isVisible );\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tclassName=\"dataviews-filters-button\"\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tdisabled={ ! inactiveFilters.length }\n\t\t\t\t\tref={ ref }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Add filter' ) }\n\t\t\t\t</Button>\n\t\t\t}\n\t\t>\n\t\t\t{ inactiveFilters.map( ( filter ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetOpenedFilter( filter.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\tpage: 1,\n\t\t\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t...( view.filters || [] ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t\t\t\t\t\toperator: filter.operators[ 0 ],\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>\n\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t{ filter.name }\n\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nexport default forwardRef( AddFilter );\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,WAAW,IAAIC,qBAAqB,EACpCC,MAAM,QACA,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,UAAU,QAAQ,oBAAoB;;AAE/C;AACA;AACA;AACA,SAASC,MAAM,QAAQ,eAAe;AAEtC,MAAM;EACLC,cAAc,EAAEC,YAAY;EAC5BC,kBAAkB,EAAEC,gBAAgB;EACpCC,uBAAuB,EAAEC;AAC1B,CAAC,GAAGN,MAAM,CAAEJ,qBAAsB,CAAC;AAEnC,SAASW,SAASA,CAAE;EAAEC,OAAO;EAAEC,IAAI;EAAEC,YAAY;EAAEC;AAAgB,CAAC,EAAEC,GAAG,EAAG;EAC3E,IAAK,CAAEJ,OAAO,CAACK,MAAM,IAAIL,OAAO,CAACM,KAAK,CAAE,CAAE;IAAEC;EAAU,CAAC,KAAMA,SAAU,CAAC,EAAG;IAC1E,OAAO,IAAI;EACZ;EACA,MAAMC,eAAe,GAAGR,OAAO,CAACS,MAAM,CAAIA,MAAM,IAAM,CAAEA,MAAM,CAACC,SAAU,CAAC;EAC1E,OACCC,aAAA,CAACjB,YAAY;IACZkB,OAAO,EACND,aAAA,CAACtB,MAAM;MACNwB,yBAAyB;MACzBC,IAAI,EAAC,SAAS;MACdC,SAAS,EAAC,0BAA0B;MACpCC,OAAO,EAAC,UAAU;MAClBC,QAAQ,EAAG,CAAET,eAAe,CAACH,MAAQ;MACrCD,GAAG,EAAGA;IAAK,GAETd,EAAE,CAAE,YAAa,CACZ;EACR,GAECkB,eAAe,CAACU,GAAG,CAAIT,MAAM,IAAM;IACpC,OACCE,aAAA,CAACf,gBAAgB;MAChBuB,GAAG,EAAGV,MAAM,CAACW,KAAO;MACpBC,OAAO,EAAGA,CAAA,KAAM;QACflB,eAAe,CAAEM,MAAM,CAACW,KAAM,CAAC;QAC/BlB,YAAY,CAAE;UACb,GAAGD,IAAI;UACPqB,IAAI,EAAE,CAAC;UACPtB,OAAO,EAAE,CACR,IAAKC,IAAI,CAACD,OAAO,IAAI,EAAE,CAAE,EACzB;YACCoB,KAAK,EAAEX,MAAM,CAACW,KAAK;YACnBG,KAAK,EAAEC,SAAS;YAChBC,QAAQ,EAAEhB,MAAM,CAACiB,SAAS,CAAE,CAAC;UAC9B,CAAC;QAEH,CAAE,CAAC;MACJ;IAAG,GAEHf,aAAA,CAACb,qBAAqB,QACnBW,MAAM,CAACkB,IACa,CACN,CAAC;EAErB,CAAE,CACW,CAAC;AAEjB;AAEA,eAAepC,UAAU,CAAEQ,SAAU,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["privateApis","componentsPrivateApis","Button","__","forwardRef","unlock","jsx","_jsx","DropdownMenuV2","DropdownMenu","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","AddFilter","filters","view","onChangeView","setOpenedFilter","ref","length","every","isPrimary","inactiveFilters","filter","isVisible","trigger","__experimentalIsFocusable","size","className","variant","disabled","children","map","onClick","field","page","value","undefined","operator","operators","name"],"sources":["@wordpress/dataviews/src/add-filter.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { Ref } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as componentsPrivateApis,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport type { NormalizedFilter, View } from './types';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n} = unlock( componentsPrivateApis );\n\ninterface AddFilterProps {\n\tfilters: NormalizedFilter[];\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tsetOpenedFilter: ( filter: string | null ) => void;\n}\n\nfunction AddFilter(\n\t{ filters, view, onChangeView, setOpenedFilter }: AddFilterProps,\n\tref: Ref< HTMLButtonElement >\n) {\n\tif ( ! filters.length || filters.every( ( { isPrimary } ) => isPrimary ) ) {\n\t\treturn null;\n\t}\n\tconst inactiveFilters = filters.filter( ( filter ) => ! filter.isVisible );\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tclassName=\"dataviews-filters-button\"\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tdisabled={ ! inactiveFilters.length }\n\t\t\t\t\tref={ ref }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Add filter' ) }\n\t\t\t\t</Button>\n\t\t\t}\n\t\t>\n\t\t\t{ inactiveFilters.map( ( filter ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetOpenedFilter( filter.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\tpage: 1,\n\t\t\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t...( view.filters || [] ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t\t\t\t\t\toperator: filter.operators[ 0 ],\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>\n\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t{ filter.name }\n\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nexport default forwardRef( AddFilter );\n"],"mappings":"AAAA;AACA;AACA;;AAGA;AACA;AACA;AACA,SACCA,WAAW,IAAIC,qBAAqB,EACpCC,MAAM,QACA,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,UAAU,QAAQ,oBAAoB;;AAE/C;AACA;AACA;AACA,SAASC,MAAM,QAAQ,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGvC,MAAM;EACLC,cAAc,EAAEC,YAAY;EAC5BC,kBAAkB,EAAEC,gBAAgB;EACpCC,uBAAuB,EAAEC;AAC1B,CAAC,GAAGR,MAAM,CAAEJ,qBAAsB,CAAC;AASnC,SAASa,SAASA,CACjB;EAAEC,OAAO;EAAEC,IAAI;EAAEC,YAAY;EAAEC;AAAgC,CAAC,EAChEC,GAA6B,EAC5B;EACD,IAAK,CAAEJ,OAAO,CAACK,MAAM,IAAIL,OAAO,CAACM,KAAK,CAAE,CAAE;IAAEC;EAAU,CAAC,KAAMA,SAAU,CAAC,EAAG;IAC1E,OAAO,IAAI;EACZ;EACA,MAAMC,eAAe,GAAGR,OAAO,CAACS,MAAM,CAAIA,MAAM,IAAM,CAAEA,MAAM,CAACC,SAAU,CAAC;EAC1E,oBACClB,IAAA,CAACE,YAAY;IACZiB,OAAO,eACNnB,IAAA,CAACL,MAAM;MACNyB,yBAAyB;MACzBC,IAAI,EAAC,SAAS;MACdC,SAAS,EAAC,0BAA0B;MACpCC,OAAO,EAAC,UAAU;MAClBC,QAAQ,EAAG,CAAER,eAAe,CAACH,MAAQ;MACrCD,GAAG,EAAGA,GAAK;MAAAa,QAAA,EAET7B,EAAE,CAAE,YAAa;IAAC,CACb,CACR;IAAA6B,QAAA,EAECT,eAAe,CAACU,GAAG,CAAIT,MAAM,IAAM;MACpC,oBACCjB,IAAA,CAACI,gBAAgB;QAEhBuB,OAAO,EAAGA,CAAA,KAAM;UACfhB,eAAe,CAAEM,MAAM,CAACW,KAAM,CAAC;UAC/BlB,YAAY,CAAE;YACb,GAAGD,IAAI;YACPoB,IAAI,EAAE,CAAC;YACPrB,OAAO,EAAE,CACR,IAAKC,IAAI,CAACD,OAAO,IAAI,EAAE,CAAE,EACzB;cACCoB,KAAK,EAAEX,MAAM,CAACW,KAAK;cACnBE,KAAK,EAAEC,SAAS;cAChBC,QAAQ,EAAEf,MAAM,CAACgB,SAAS,CAAE,CAAC;YAC9B,CAAC;UAEH,CAAE,CAAC;QACJ,CAAG;QAAAR,QAAA,eAEHzB,IAAA,CAACM,qBAAqB;UAAAmB,QAAA,EACnBR,MAAM,CAACiB;QAAI,CACS;MAAC,GAnBlBjB,MAAM,CAACW,KAoBI,CAAC;IAErB,CAAE;EAAC,CACU,CAAC;AAEjB;AAEA,eAAe/B,UAAU,CAAEU,SAAU,CAAC","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- import { createElement, Fragment } from "react";
2
1
  /**
3
2
  * WordPress dependencies
4
3
  */
@@ -12,6 +11,9 @@ import { useReducedMotion } from '@wordpress/compose';
12
11
  * Internal dependencies
13
12
  */
14
13
  import { ActionWithModal } from './item-actions';
14
+ import { jsx as _jsx } from "react/jsx-runtime";
15
+ import { Fragment as _Fragment } from "react/jsx-runtime";
16
+ import { jsxs as _jsxs } from "react/jsx-runtime";
15
17
  const SNACKBAR_VARIANTS = {
16
18
  init: {
17
19
  bottom: -48
@@ -41,11 +43,13 @@ const SNACKBAR_VARIANTS = {
41
43
  function ActionTrigger({
42
44
  action,
43
45
  onClick,
44
- isBusy
46
+ isBusy,
47
+ items
45
48
  }) {
46
- return createElement(ToolbarButton, {
49
+ const label = typeof action.label === 'string' ? action.label : action.label(items);
50
+ return /*#__PURE__*/_jsx(ToolbarButton, {
47
51
  disabled: isBusy,
48
- label: action.label,
52
+ label: label,
49
53
  icon: action.icon,
50
54
  isDestructive: action.isDestructive,
51
55
  size: "compact",
@@ -64,65 +68,63 @@ function ActionButton({
64
68
  }) {
65
69
  const selectedEligibleItems = useMemo(() => {
66
70
  return selectedItems.filter(item => {
67
- return action.isEligible(item);
71
+ return !action.isEligible || action.isEligible(item);
68
72
  });
69
73
  }, [action, selectedItems]);
70
- if (!!action.RenderModal) {
71
- return createElement(ActionWithModal, {
72
- key: action.id,
74
+ if ('RenderModal' in action) {
75
+ return /*#__PURE__*/_jsx(ActionWithModal, {
73
76
  action: action,
74
77
  items: selectedEligibleItems,
75
- ActionTrigger: ActionTrigger,
76
- onActionStart: () => {
77
- setActionInProgress(action.id);
78
- },
79
- onActionPerformed: () => {
80
- setActionInProgress(null);
81
- }
82
- });
78
+ ActionTrigger: ActionTrigger
79
+ }, action.id);
83
80
  }
84
- return createElement(ActionTrigger, {
85
- key: action.id,
81
+ return /*#__PURE__*/_jsx(ActionTrigger, {
86
82
  action: action,
87
- items: selectedItems,
88
83
  onClick: () => {
89
84
  setActionInProgress(action.id);
90
- action.callback(selectedItems, () => {
91
- setActionInProgress(action.id);
92
- });
85
+ action.callback(selectedItems);
93
86
  },
87
+ items: selectedEligibleItems,
94
88
  isBusy: actionInProgress === action.id
95
- });
89
+ }, action.id);
96
90
  }
97
- function renderToolbarContent(selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, setSelection) {
98
- return createElement(Fragment, null, createElement(ToolbarGroup, null, createElement("div", {
99
- className: "dataviews-bulk-actions__selection-count"
100
- }, selection.length === 1 ? __('1 item selected') : sprintf(
101
- // translators: %s: Total number of selected items.
102
- _n('%s item selected', '%s items selected', selection.length), selection.length))), createElement(ToolbarGroup, null, actionsToShow.map(action => {
103
- return createElement(ActionButton, {
104
- key: action.id,
105
- action: action,
106
- selectedItems: selectedItems,
107
- actionInProgress: actionInProgress,
108
- setActionInProgress: setActionInProgress
109
- });
110
- })), createElement(ToolbarGroup, null, createElement(ToolbarButton, {
111
- icon: closeSmall,
112
- showTooltip: true,
113
- tooltipPosition: "top",
114
- label: __('Cancel'),
115
- disabled: !!actionInProgress,
116
- onClick: () => {
117
- setSelection(EMPTY_ARRAY);
118
- }
119
- })));
91
+ function renderToolbarContent(selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, onSelectionChange) {
92
+ return /*#__PURE__*/_jsxs(_Fragment, {
93
+ children: [/*#__PURE__*/_jsx(ToolbarGroup, {
94
+ children: /*#__PURE__*/_jsx("div", {
95
+ className: "dataviews-bulk-actions__selection-count",
96
+ children: selection.length === 1 ? __('1 item selected') : sprintf(
97
+ // translators: %s: Total number of selected items.
98
+ _n('%s item selected', '%s items selected', selection.length), selection.length)
99
+ })
100
+ }), /*#__PURE__*/_jsx(ToolbarGroup, {
101
+ children: actionsToShow.map(action => {
102
+ return /*#__PURE__*/_jsx(ActionButton, {
103
+ action: action,
104
+ selectedItems: selectedItems,
105
+ actionInProgress: actionInProgress,
106
+ setActionInProgress: setActionInProgress
107
+ }, action.id);
108
+ })
109
+ }), /*#__PURE__*/_jsx(ToolbarGroup, {
110
+ children: /*#__PURE__*/_jsx(ToolbarButton, {
111
+ icon: closeSmall,
112
+ showTooltip: true,
113
+ tooltipPosition: "top",
114
+ label: __('Cancel'),
115
+ disabled: !!actionInProgress,
116
+ onClick: () => {
117
+ onSelectionChange(EMPTY_ARRAY);
118
+ }
119
+ })
120
+ })]
121
+ });
120
122
  }
121
123
  function ToolbarContent({
122
124
  selection,
123
125
  actionsToShow,
124
126
  selectedItems,
125
- setSelection
127
+ onSelectionChange
126
128
  }) {
127
129
  const [actionInProgress, setActionInProgress] = useState(null);
128
130
  const buttons = useRef(null);
@@ -130,9 +132,9 @@ function ToolbarContent({
130
132
  if (buttons.current) {
131
133
  buttons.current = null;
132
134
  }
133
- return renderToolbarContent(selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, setSelection);
135
+ return renderToolbarContent(selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, onSelectionChange);
134
136
  } else if (!buttons.current) {
135
- buttons.current = renderToolbarContent(selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, setSelection);
137
+ buttons.current = renderToolbarContent(selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, onSelectionChange);
136
138
  }
137
139
  return buttons.current;
138
140
  }
@@ -140,7 +142,7 @@ export default function BulkActionsToolbar({
140
142
  data,
141
143
  selection,
142
144
  actions = EMPTY_ARRAY,
143
- setSelection,
145
+ onSelectionChange,
144
146
  getItemId
145
147
  }) {
146
148
  const isReducedMotion = useReducedMotion();
@@ -148,28 +150,33 @@ export default function BulkActionsToolbar({
148
150
  return data.filter(item => selection.includes(getItemId(item)));
149
151
  }, [selection, data, getItemId]);
150
152
  const actionsToShow = useMemo(() => actions.filter(action => {
151
- return action.supportsBulk && action.icon && selectedItems.some(item => action.isEligible(item));
153
+ return action.supportsBulk && action.icon && selectedItems.some(item => !action.isEligible || action.isEligible(item));
152
154
  }), [actions, selectedItems]);
153
155
  if (selection && selection.length === 0 || actionsToShow.length === 0) {
154
156
  return null;
155
157
  }
156
- return createElement(AnimatePresence, null, createElement(motion.div, {
157
- layout: !isReducedMotion // See https://www.framer.com/docs/animation/#layout-animations
158
- ,
159
- initial: 'init',
160
- animate: 'open',
161
- exit: 'exit',
162
- variants: isReducedMotion ? undefined : SNACKBAR_VARIANTS,
163
- className: "dataviews-bulk-actions"
164
- }, createElement(Toolbar, {
165
- label: __('Bulk actions')
166
- }, createElement("div", {
167
- className: "dataviews-bulk-actions-toolbar-wrapper"
168
- }, createElement(ToolbarContent, {
169
- selection: selection,
170
- actionsToShow: actionsToShow,
171
- selectedItems: selectedItems,
172
- setSelection: setSelection
173
- })))));
158
+ return /*#__PURE__*/_jsx(AnimatePresence, {
159
+ children: /*#__PURE__*/_jsx(motion.div, {
160
+ layout: !isReducedMotion // See https://www.framer.com/docs/animation/#layout-animations
161
+ ,
162
+ initial: "init",
163
+ animate: "open",
164
+ exit: "exit",
165
+ variants: isReducedMotion ? undefined : SNACKBAR_VARIANTS,
166
+ className: "dataviews-bulk-actions",
167
+ children: /*#__PURE__*/_jsx(Toolbar, {
168
+ label: __('Bulk actions'),
169
+ children: /*#__PURE__*/_jsx("div", {
170
+ className: "dataviews-bulk-actions-toolbar-wrapper",
171
+ children: /*#__PURE__*/_jsx(ToolbarContent, {
172
+ selection: selection,
173
+ actionsToShow: actionsToShow,
174
+ selectedItems: selectedItems,
175
+ onSelectionChange: onSelectionChange
176
+ })
177
+ })
178
+ })
179
+ })
180
+ });
174
181
  }
175
182
  //# sourceMappingURL=bulk-actions-toolbar.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ToolbarButton","Toolbar","ToolbarGroup","__unstableMotion","motion","__unstableAnimatePresence","AnimatePresence","useMemo","useState","useRef","_n","sprintf","__","closeSmall","useReducedMotion","ActionWithModal","SNACKBAR_VARIANTS","init","bottom","open","transition","type","duration","ease","exit","opacity","ActionTrigger","action","onClick","isBusy","createElement","disabled","label","icon","isDestructive","size","__experimentalIsFocusable","tooltipPosition","EMPTY_ARRAY","ActionButton","selectedItems","actionInProgress","setActionInProgress","selectedEligibleItems","filter","item","isEligible","RenderModal","key","id","items","onActionStart","onActionPerformed","callback","renderToolbarContent","selection","actionsToShow","setSelection","Fragment","className","length","map","showTooltip","ToolbarContent","buttons","current","BulkActionsToolbar","data","actions","getItemId","isReducedMotion","includes","supportsBulk","some","div","layout","initial","animate","variants","undefined"],"sources":["@wordpress/dataviews/src/bulk-actions-toolbar.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tToolbarButton,\n\tToolbar,\n\tToolbarGroup,\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '@wordpress/components';\nimport { useMemo, useState, useRef } from '@wordpress/element';\nimport { _n, sprintf, __ } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\nimport { useReducedMotion } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { ActionWithModal } from './item-actions';\n\nconst SNACKBAR_VARIANTS = {\n\tinit: {\n\t\tbottom: -48,\n\t},\n\topen: {\n\t\tbottom: 24,\n\t\ttransition: {\n\t\t\tbottom: { type: 'tween', duration: 0.2, ease: [ 0, 0, 0.2, 1 ] },\n\t\t},\n\t},\n\texit: {\n\t\topacity: 0,\n\t\tbottom: 24,\n\t\ttransition: {\n\t\t\topacity: { type: 'tween', duration: 0.2, ease: [ 0, 0, 0.2, 1 ] },\n\t\t},\n\t},\n};\n\nfunction ActionTrigger( { action, onClick, isBusy } ) {\n\treturn (\n\t\t<ToolbarButton\n\t\t\tdisabled={ isBusy }\n\t\t\tlabel={ action.label }\n\t\t\ticon={ action.icon }\n\t\t\tisDestructive={ action.isDestructive }\n\t\t\tsize=\"compact\"\n\t\t\tonClick={ onClick }\n\t\t\tisBusy={ isBusy }\n\t\t\t__experimentalIsFocusable\n\t\t\ttooltipPosition=\"top\"\n\t\t/>\n\t);\n}\n\nconst EMPTY_ARRAY = [];\n\nfunction ActionButton( {\n\taction,\n\tselectedItems,\n\tactionInProgress,\n\tsetActionInProgress,\n} ) {\n\tconst selectedEligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter( ( item ) => {\n\t\t\treturn action.isEligible( item );\n\t\t} );\n\t}, [ action, selectedItems ] );\n\tif ( !! action.RenderModal ) {\n\t\treturn (\n\t\t\t<ActionWithModal\n\t\t\t\tkey={ action.id }\n\t\t\t\taction={ action }\n\t\t\t\titems={ selectedEligibleItems }\n\t\t\t\tActionTrigger={ ActionTrigger }\n\t\t\t\tonActionStart={ () => {\n\t\t\t\t\tsetActionInProgress( action.id );\n\t\t\t\t} }\n\t\t\t\tonActionPerformed={ () => {\n\t\t\t\t\tsetActionInProgress( null );\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<ActionTrigger\n\t\t\tkey={ action.id }\n\t\t\taction={ action }\n\t\t\titems={ selectedItems }\n\t\t\tonClick={ () => {\n\t\t\t\tsetActionInProgress( action.id );\n\t\t\t\taction.callback( selectedItems, () => {\n\t\t\t\t\tsetActionInProgress( action.id );\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tisBusy={ actionInProgress === action.id }\n\t\t/>\n\t);\n}\n\nfunction renderToolbarContent(\n\tselection,\n\tactionsToShow,\n\tselectedItems,\n\tactionInProgress,\n\tsetActionInProgress,\n\tsetSelection\n) {\n\treturn (\n\t\t<>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<div className=\"dataviews-bulk-actions__selection-count\">\n\t\t\t\t\t{ selection.length === 1\n\t\t\t\t\t\t? __( '1 item selected' )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Total number of selected items.\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'%s item selected',\n\t\t\t\t\t\t\t\t\t'%s items selected',\n\t\t\t\t\t\t\t\t\tselection.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tselection.length\n\t\t\t\t\t\t ) }\n\t\t\t\t</div>\n\t\t\t</ToolbarGroup>\n\t\t\t<ToolbarGroup>\n\t\t\t\t{ actionsToShow.map( ( action ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ActionButton\n\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\t\tactionInProgress={ actionInProgress }\n\t\t\t\t\t\t\tsetActionInProgress={ setActionInProgress }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ToolbarGroup>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\tshowTooltip\n\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\tlabel={ __( 'Cancel' ) }\n\t\t\t\t\tdisabled={ !! actionInProgress }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetSelection( EMPTY_ARRAY );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t</>\n\t);\n}\n\nfunction ToolbarContent( {\n\tselection,\n\tactionsToShow,\n\tselectedItems,\n\tsetSelection,\n} ) {\n\tconst [ actionInProgress, setActionInProgress ] = useState( null );\n\tconst buttons = useRef( null );\n\tif ( ! actionInProgress ) {\n\t\tif ( buttons.current ) {\n\t\t\tbuttons.current = null;\n\t\t}\n\t\treturn renderToolbarContent(\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tsetSelection\n\t\t);\n\t} else if ( ! buttons.current ) {\n\t\tbuttons.current = renderToolbarContent(\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tsetSelection\n\t\t);\n\t}\n\treturn buttons.current;\n}\n\nexport default function BulkActionsToolbar( {\n\tdata,\n\tselection,\n\tactions = EMPTY_ARRAY,\n\tsetSelection,\n\tgetItemId,\n} ) {\n\tconst isReducedMotion = useReducedMotion();\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 actionsToShow = useMemo(\n\t\t() =>\n\t\t\tactions.filter( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\taction.icon &&\n\t\t\t\t\tselectedItems.some( ( item ) => action.isEligible( item ) )\n\t\t\t\t);\n\t\t\t} ),\n\t\t[ actions, selectedItems ]\n\t);\n\n\tif (\n\t\t( selection && selection.length === 0 ) ||\n\t\tactionsToShow.length === 0\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<AnimatePresence>\n\t\t\t<motion.div\n\t\t\t\tlayout={ ! isReducedMotion } // See https://www.framer.com/docs/animation/#layout-animations\n\t\t\t\tinitial={ 'init' }\n\t\t\t\tanimate={ 'open' }\n\t\t\t\texit={ 'exit' }\n\t\t\t\tvariants={ isReducedMotion ? undefined : SNACKBAR_VARIANTS }\n\t\t\t\tclassName=\"dataviews-bulk-actions\"\n\t\t\t>\n\t\t\t\t<Toolbar label={ __( 'Bulk actions' ) }>\n\t\t\t\t\t<div className=\"dataviews-bulk-actions-toolbar-wrapper\">\n\t\t\t\t\t\t<ToolbarContent\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tactionsToShow={ actionsToShow }\n\t\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\t\tsetSelection={ setSelection }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Toolbar>\n\t\t\t</motion.div>\n\t\t</AnimatePresence>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ToolbarButton","Toolbar","ToolbarGroup","__unstableMotion","motion","__unstableAnimatePresence","AnimatePresence","useMemo","useState","useRef","_n","sprintf","__","closeSmall","useReducedMotion","ActionWithModal","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","SNACKBAR_VARIANTS","init","bottom","open","transition","type","duration","ease","exit","opacity","ActionTrigger","action","onClick","isBusy","items","label","disabled","icon","isDestructive","size","__experimentalIsFocusable","tooltipPosition","EMPTY_ARRAY","ActionButton","selectedItems","actionInProgress","setActionInProgress","selectedEligibleItems","filter","item","isEligible","id","callback","renderToolbarContent","selection","actionsToShow","onSelectionChange","children","className","length","map","showTooltip","ToolbarContent","buttons","current","BulkActionsToolbar","data","actions","getItemId","isReducedMotion","includes","supportsBulk","some","div","layout","initial","animate","variants","undefined"],"sources":["@wordpress/dataviews/src/bulk-actions-toolbar.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tToolbarButton,\n\tToolbar,\n\tToolbarGroup,\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '@wordpress/components';\nimport { useMemo, useState, useRef } from '@wordpress/element';\nimport { _n, sprintf, __ } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\nimport { useReducedMotion } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { ActionWithModal } from './item-actions';\nimport type { Action, AnyItem } from './types';\nimport type { ActionTriggerProps } from './item-actions';\n\ninterface ActionButtonProps< Item extends AnyItem > {\n\taction: Action< Item >;\n\tselectedItems: Item[];\n\tactionInProgress: string | null;\n\tsetActionInProgress: ( actionId: string | null ) => void;\n}\n\ninterface ToolbarContentProps< Item extends AnyItem > {\n\tselection: string[];\n\tactionsToShow: Action< Item >[];\n\tselectedItems: Item[];\n\tonSelectionChange: ( selection: Item[] ) => void;\n}\n\ninterface BulkActionsToolbarProps< Item extends AnyItem > {\n\tdata: Item[];\n\tselection: string[];\n\tactions: Action< Item >[];\n\tonSelectionChange: ( selection: Item[] ) => void;\n\tgetItemId: ( item: Item ) => string;\n}\n\nconst SNACKBAR_VARIANTS = {\n\tinit: {\n\t\tbottom: -48,\n\t},\n\topen: {\n\t\tbottom: 24,\n\t\ttransition: {\n\t\t\tbottom: { type: 'tween', duration: 0.2, ease: [ 0, 0, 0.2, 1 ] },\n\t\t},\n\t},\n\texit: {\n\t\topacity: 0,\n\t\tbottom: 24,\n\t\ttransition: {\n\t\t\topacity: { type: 'tween', duration: 0.2, ease: [ 0, 0, 0.2, 1 ] },\n\t\t},\n\t},\n};\n\nfunction ActionTrigger< Item extends AnyItem >( {\n\taction,\n\tonClick,\n\tisBusy,\n\titems,\n}: ActionTriggerProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<ToolbarButton\n\t\t\tdisabled={ isBusy }\n\t\t\tlabel={ label }\n\t\t\ticon={ action.icon }\n\t\t\tisDestructive={ action.isDestructive }\n\t\t\tsize=\"compact\"\n\t\t\tonClick={ onClick }\n\t\t\tisBusy={ isBusy }\n\t\t\t__experimentalIsFocusable\n\t\t\ttooltipPosition=\"top\"\n\t\t/>\n\t);\n}\n\nconst EMPTY_ARRAY: [] = [];\n\nfunction ActionButton< Item extends AnyItem >( {\n\taction,\n\tselectedItems,\n\tactionInProgress,\n\tsetActionInProgress,\n}: ActionButtonProps< Item > ) {\n\tconst selectedEligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter( ( item ) => {\n\t\t\treturn ! action.isEligible || action.isEligible( item );\n\t\t} );\n\t}, [ action, selectedItems ] );\n\tif ( 'RenderModal' in action ) {\n\t\treturn (\n\t\t\t<ActionWithModal\n\t\t\t\tkey={ action.id }\n\t\t\t\taction={ action }\n\t\t\t\titems={ selectedEligibleItems }\n\t\t\t\tActionTrigger={ ActionTrigger }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<ActionTrigger\n\t\t\tkey={ action.id }\n\t\t\taction={ action }\n\t\t\tonClick={ () => {\n\t\t\t\tsetActionInProgress( action.id );\n\t\t\t\taction.callback( selectedItems );\n\t\t\t} }\n\t\t\titems={ selectedEligibleItems }\n\t\t\tisBusy={ actionInProgress === action.id }\n\t\t/>\n\t);\n}\n\nfunction renderToolbarContent< Item extends AnyItem >(\n\tselection: string[],\n\tactionsToShow: Action< Item >[],\n\tselectedItems: Item[],\n\tactionInProgress: string | null,\n\tsetActionInProgress: ( actionId: string | null ) => void,\n\tonSelectionChange: ( selection: Item[] ) => void\n) {\n\treturn (\n\t\t<>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<div className=\"dataviews-bulk-actions__selection-count\">\n\t\t\t\t\t{ selection.length === 1\n\t\t\t\t\t\t? __( '1 item selected' )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Total number of selected items.\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'%s item selected',\n\t\t\t\t\t\t\t\t\t'%s items selected',\n\t\t\t\t\t\t\t\t\tselection.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tselection.length\n\t\t\t\t\t\t ) }\n\t\t\t\t</div>\n\t\t\t</ToolbarGroup>\n\t\t\t<ToolbarGroup>\n\t\t\t\t{ actionsToShow.map( ( action ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ActionButton\n\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\t\tactionInProgress={ actionInProgress }\n\t\t\t\t\t\t\tsetActionInProgress={ setActionInProgress }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ToolbarGroup>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\tshowTooltip\n\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\tlabel={ __( 'Cancel' ) }\n\t\t\t\t\tdisabled={ !! actionInProgress }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonSelectionChange( EMPTY_ARRAY );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t</>\n\t);\n}\n\nfunction ToolbarContent< Item extends AnyItem >( {\n\tselection,\n\tactionsToShow,\n\tselectedItems,\n\tonSelectionChange,\n}: ToolbarContentProps< Item > ) {\n\tconst [ actionInProgress, setActionInProgress ] = useState< string | null >(\n\t\tnull\n\t);\n\tconst buttons = useRef< JSX.Element | null >( null );\n\tif ( ! actionInProgress ) {\n\t\tif ( buttons.current ) {\n\t\t\tbuttons.current = null;\n\t\t}\n\t\treturn renderToolbarContent(\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tonSelectionChange\n\t\t);\n\t} else if ( ! buttons.current ) {\n\t\tbuttons.current = renderToolbarContent(\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tonSelectionChange\n\t\t);\n\t}\n\treturn buttons.current;\n}\n\nexport default function BulkActionsToolbar< Item extends AnyItem >( {\n\tdata,\n\tselection,\n\tactions = EMPTY_ARRAY,\n\tonSelectionChange,\n\tgetItemId,\n}: BulkActionsToolbarProps< Item > ) {\n\tconst isReducedMotion = useReducedMotion();\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 actionsToShow = useMemo(\n\t\t() =>\n\t\t\tactions.filter( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\taction.icon &&\n\t\t\t\t\tselectedItems.some(\n\t\t\t\t\t\t( item ) =>\n\t\t\t\t\t\t\t! action.isEligible || action.isEligible( item )\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} ),\n\t\t[ actions, selectedItems ]\n\t);\n\n\tif (\n\t\t( selection && selection.length === 0 ) ||\n\t\tactionsToShow.length === 0\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<AnimatePresence>\n\t\t\t<motion.div\n\t\t\t\tlayout={ ! isReducedMotion } // See https://www.framer.com/docs/animation/#layout-animations\n\t\t\t\tinitial=\"init\"\n\t\t\t\tanimate=\"open\"\n\t\t\t\texit=\"exit\"\n\t\t\t\tvariants={ isReducedMotion ? undefined : SNACKBAR_VARIANTS }\n\t\t\t\tclassName=\"dataviews-bulk-actions\"\n\t\t\t>\n\t\t\t\t<Toolbar label={ __( 'Bulk actions' ) }>\n\t\t\t\t\t<div className=\"dataviews-bulk-actions-toolbar-wrapper\">\n\t\t\t\t\t\t<ToolbarContent\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tactionsToShow={ actionsToShow }\n\t\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Toolbar>\n\t\t\t</motion.div>\n\t\t</AnimatePresence>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}