@wordpress/dataviews 6.0.1-next.46f643fa0.0 → 7.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.
Files changed (235) hide show
  1. package/CHANGELOG.md +38 -1
  2. package/README.md +50 -16
  3. package/build/components/dataviews/index.js +46 -6
  4. package/build/components/dataviews/index.js.map +1 -1
  5. package/build/components/dataviews-context/index.js +5 -1
  6. package/build/components/dataviews-context/index.js.map +1 -1
  7. package/build/components/dataviews-filters/filter.js +13 -6
  8. package/build/components/dataviews-filters/filter.js.map +1 -1
  9. package/build/components/dataviews-filters/index.js +16 -5
  10. package/build/components/dataviews-filters/index.js.map +1 -1
  11. package/build/components/dataviews-filters/reset-filters.js +2 -2
  12. package/build/components/dataviews-filters/reset-filters.js.map +1 -1
  13. package/build/components/dataviews-item-actions/index.js +1 -10
  14. package/build/components/dataviews-item-actions/index.js.map +1 -1
  15. package/build/components/dataviews-layout/index.js +5 -2
  16. package/build/components/dataviews-layout/index.js.map +1 -1
  17. package/build/components/dataviews-pagination/index.js +1 -1
  18. package/build/components/dataviews-pagination/index.js.map +1 -1
  19. package/build/components/dataviews-view-config/index.js +10 -6
  20. package/build/components/dataviews-view-config/index.js.map +1 -1
  21. package/build/components/dataviews-view-config/infinite-scroll-toggle.js +47 -0
  22. package/build/components/dataviews-view-config/infinite-scroll-toggle.js.map +1 -0
  23. package/build/dataform-controls/array.js +70 -0
  24. package/build/dataform-controls/array.js.map +1 -0
  25. package/build/dataform-controls/boolean.js +15 -7
  26. package/build/dataform-controls/boolean.js.map +1 -1
  27. package/build/dataform-controls/email.js +14 -7
  28. package/build/dataform-controls/email.js.map +1 -1
  29. package/build/dataform-controls/index.js +3 -1
  30. package/build/dataform-controls/index.js.map +1 -1
  31. package/build/dataform-controls/integer.js +14 -7
  32. package/build/dataform-controls/integer.js.map +1 -1
  33. package/build/dataform-controls/select.js +12 -5
  34. package/build/dataform-controls/select.js.map +1 -1
  35. package/build/dataform-controls/text.js +14 -7
  36. package/build/dataform-controls/text.js.map +1 -1
  37. package/build/dataforms-layouts/card/index.js +137 -0
  38. package/build/dataforms-layouts/card/index.js.map +1 -0
  39. package/build/dataforms-layouts/data-form-layout.js +2 -2
  40. package/build/dataforms-layouts/data-form-layout.js.map +1 -1
  41. package/build/dataforms-layouts/index.js +4 -0
  42. package/build/dataforms-layouts/index.js.map +1 -1
  43. package/build/dataforms-layouts/panel/dropdown.js +124 -0
  44. package/build/dataforms-layouts/panel/dropdown.js.map +1 -0
  45. package/build/dataforms-layouts/panel/index.js +34 -149
  46. package/build/dataforms-layouts/panel/index.js.map +1 -1
  47. package/build/dataforms-layouts/panel/modal.js +125 -0
  48. package/build/dataforms-layouts/panel/modal.js.map +1 -0
  49. package/build/dataforms-layouts/regular/index.js +10 -21
  50. package/build/dataforms-layouts/regular/index.js.map +1 -1
  51. package/build/dataviews-layouts/grid/index.js +27 -9
  52. package/build/dataviews-layouts/grid/index.js.map +1 -1
  53. package/build/dataviews-layouts/grid/preview-size-picker.js +11 -11
  54. package/build/dataviews-layouts/grid/preview-size-picker.js.map +1 -1
  55. package/build/dataviews-layouts/list/index.js +48 -29
  56. package/build/dataviews-layouts/list/index.js.map +1 -1
  57. package/build/dataviews-layouts/table/column-header-menu.js +3 -0
  58. package/build/dataviews-layouts/table/column-header-menu.js.map +1 -1
  59. package/build/dataviews-layouts/table/column-primary.js +14 -2
  60. package/build/dataviews-layouts/table/column-primary.js.map +1 -1
  61. package/build/dataviews-layouts/table/index.js +71 -11
  62. package/build/dataviews-layouts/table/index.js.map +1 -1
  63. package/build/field-types/array.js +2 -2
  64. package/build/field-types/array.js.map +1 -1
  65. package/build/normalize-form-fields.js +52 -13
  66. package/build/normalize-form-fields.js.map +1 -1
  67. package/build/types.js.map +1 -1
  68. package/build-module/components/dataviews/index.js +48 -8
  69. package/build-module/components/dataviews/index.js.map +1 -1
  70. package/build-module/components/dataviews-context/index.js +5 -1
  71. package/build-module/components/dataviews-context/index.js.map +1 -1
  72. package/build-module/components/dataviews-filters/filter.js +13 -6
  73. package/build-module/components/dataviews-filters/filter.js.map +1 -1
  74. package/build-module/components/dataviews-filters/index.js +16 -5
  75. package/build-module/components/dataviews-filters/index.js.map +1 -1
  76. package/build-module/components/dataviews-filters/reset-filters.js +2 -2
  77. package/build-module/components/dataviews-filters/reset-filters.js.map +1 -1
  78. package/build-module/components/dataviews-item-actions/index.js +1 -10
  79. package/build-module/components/dataviews-item-actions/index.js.map +1 -1
  80. package/build-module/components/dataviews-layout/index.js +5 -2
  81. package/build-module/components/dataviews-layout/index.js.map +1 -1
  82. package/build-module/components/dataviews-pagination/index.js +1 -1
  83. package/build-module/components/dataviews-pagination/index.js.map +1 -1
  84. package/build-module/components/dataviews-view-config/index.js +10 -6
  85. package/build-module/components/dataviews-view-config/index.js.map +1 -1
  86. package/build-module/components/dataviews-view-config/infinite-scroll-toggle.js +39 -0
  87. package/build-module/components/dataviews-view-config/infinite-scroll-toggle.js.map +1 -0
  88. package/build-module/dataform-controls/array.js +63 -0
  89. package/build-module/dataform-controls/array.js.map +1 -0
  90. package/build-module/dataform-controls/boolean.js +15 -7
  91. package/build-module/dataform-controls/boolean.js.map +1 -1
  92. package/build-module/dataform-controls/email.js +15 -8
  93. package/build-module/dataform-controls/email.js.map +1 -1
  94. package/build-module/dataform-controls/index.js +3 -1
  95. package/build-module/dataform-controls/index.js.map +1 -1
  96. package/build-module/dataform-controls/integer.js +15 -8
  97. package/build-module/dataform-controls/integer.js.map +1 -1
  98. package/build-module/dataform-controls/select.js +12 -5
  99. package/build-module/dataform-controls/select.js.map +1 -1
  100. package/build-module/dataform-controls/text.js +15 -8
  101. package/build-module/dataform-controls/text.js.map +1 -1
  102. package/build-module/dataforms-layouts/card/index.js +128 -0
  103. package/build-module/dataforms-layouts/card/index.js.map +1 -0
  104. package/build-module/dataforms-layouts/data-form-layout.js +2 -2
  105. package/build-module/dataforms-layouts/data-form-layout.js.map +1 -1
  106. package/build-module/dataforms-layouts/index.js +4 -0
  107. package/build-module/dataforms-layouts/index.js.map +1 -1
  108. package/build-module/dataforms-layouts/panel/dropdown.js +118 -0
  109. package/build-module/dataforms-layouts/panel/dropdown.js.map +1 -0
  110. package/build-module/dataforms-layouts/panel/index.js +37 -152
  111. package/build-module/dataforms-layouts/panel/index.js.map +1 -1
  112. package/build-module/dataforms-layouts/panel/modal.js +119 -0
  113. package/build-module/dataforms-layouts/panel/modal.js.map +1 -0
  114. package/build-module/dataforms-layouts/regular/index.js +10 -21
  115. package/build-module/dataforms-layouts/regular/index.js.map +1 -1
  116. package/build-module/dataviews-layouts/grid/index.js +28 -10
  117. package/build-module/dataviews-layouts/grid/index.js.map +1 -1
  118. package/build-module/dataviews-layouts/grid/preview-size-picker.js +11 -11
  119. package/build-module/dataviews-layouts/grid/preview-size-picker.js.map +1 -1
  120. package/build-module/dataviews-layouts/list/index.js +50 -31
  121. package/build-module/dataviews-layouts/list/index.js.map +1 -1
  122. package/build-module/dataviews-layouts/table/column-header-menu.js +3 -0
  123. package/build-module/dataviews-layouts/table/column-header-menu.js.map +1 -1
  124. package/build-module/dataviews-layouts/table/column-primary.js +14 -2
  125. package/build-module/dataviews-layouts/table/column-primary.js.map +1 -1
  126. package/build-module/dataviews-layouts/table/index.js +72 -12
  127. package/build-module/dataviews-layouts/table/index.js.map +1 -1
  128. package/build-module/field-types/array.js +2 -2
  129. package/build-module/field-types/array.js.map +1 -1
  130. package/build-module/normalize-form-fields.js +50 -13
  131. package/build-module/normalize-form-fields.js.map +1 -1
  132. package/build-module/types.js.map +1 -1
  133. package/build-style/style-rtl.css +78 -20
  134. package/build-style/style.css +78 -20
  135. package/build-types/components/dataform/stories/index.story.d.ts +41 -17
  136. package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
  137. package/build-types/components/dataviews/index.d.ts +6 -2
  138. package/build-types/components/dataviews/index.d.ts.map +1 -1
  139. package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
  140. package/build-types/components/dataviews/stories/index.story.d.ts +18 -4
  141. package/build-types/components/dataviews/stories/index.story.d.ts.map +1 -1
  142. package/build-types/components/dataviews-context/index.d.ts +6 -2
  143. package/build-types/components/dataviews-context/index.d.ts.map +1 -1
  144. package/build-types/components/dataviews-filters/filter.d.ts.map +1 -1
  145. package/build-types/components/dataviews-filters/index.d.ts.map +1 -1
  146. package/build-types/components/dataviews-filters/reset-filters.d.ts.map +1 -1
  147. package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
  148. package/build-types/components/dataviews-layout/index.d.ts.map +1 -1
  149. package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
  150. package/build-types/components/dataviews-view-config/infinite-scroll-toggle.d.ts +2 -0
  151. package/build-types/components/dataviews-view-config/infinite-scroll-toggle.d.ts.map +1 -0
  152. package/build-types/dataform-controls/array.d.ts +6 -0
  153. package/build-types/dataform-controls/array.d.ts.map +1 -0
  154. package/build-types/dataform-controls/boolean.d.ts.map +1 -1
  155. package/build-types/dataform-controls/email.d.ts.map +1 -1
  156. package/build-types/dataform-controls/index.d.ts.map +1 -1
  157. package/build-types/dataform-controls/integer.d.ts.map +1 -1
  158. package/build-types/dataform-controls/select.d.ts.map +1 -1
  159. package/build-types/dataform-controls/text.d.ts.map +1 -1
  160. package/build-types/dataforms-layouts/card/index.d.ts +13 -0
  161. package/build-types/dataforms-layouts/card/index.d.ts.map +1 -0
  162. package/build-types/dataforms-layouts/index.d.ts.map +1 -1
  163. package/build-types/dataforms-layouts/panel/dropdown.d.ts +14 -0
  164. package/build-types/dataforms-layouts/panel/dropdown.d.ts.map +1 -0
  165. package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -1
  166. package/build-types/dataforms-layouts/panel/modal.d.ts +13 -0
  167. package/build-types/dataforms-layouts/panel/modal.d.ts.map +1 -0
  168. package/build-types/dataforms-layouts/regular/index.d.ts.map +1 -1
  169. package/build-types/dataviews-layouts/grid/index.d.ts +1 -1
  170. package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
  171. package/build-types/dataviews-layouts/grid/preview-size-picker.d.ts +1 -1
  172. package/build-types/dataviews-layouts/grid/preview-size-picker.d.ts.map +1 -1
  173. package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
  174. package/build-types/dataviews-layouts/table/column-header-menu.d.ts.map +1 -1
  175. package/build-types/dataviews-layouts/table/column-primary.d.ts.map +1 -1
  176. package/build-types/dataviews-layouts/table/index.d.ts +1 -1
  177. package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
  178. package/build-types/field-types/boolean.d.ts +1 -1
  179. package/build-types/normalize-form-fields.d.ts +10 -3
  180. package/build-types/normalize-form-fields.d.ts.map +1 -1
  181. package/build-types/test/normalize-form-fields.d.ts +2 -0
  182. package/build-types/test/normalize-form-fields.d.ts.map +1 -0
  183. package/build-types/types.d.ts +64 -7
  184. package/build-types/types.d.ts.map +1 -1
  185. package/build-wp/index.js +3219 -1186
  186. package/package.json +15 -15
  187. package/src/components/dataform/stories/index.story.tsx +479 -91
  188. package/src/components/dataviews/index.tsx +74 -16
  189. package/src/components/dataviews/stories/fixtures.tsx +100 -8
  190. package/src/components/dataviews/stories/index.story.tsx +185 -32
  191. package/src/components/dataviews/stories/style.css +6 -0
  192. package/src/components/dataviews/style.scss +4 -0
  193. package/src/components/dataviews-context/index.ts +8 -2
  194. package/src/components/dataviews-filters/filter.tsx +15 -5
  195. package/src/components/dataviews-filters/index.tsx +17 -2
  196. package/src/components/dataviews-filters/reset-filters.tsx +4 -2
  197. package/src/components/dataviews-filters/style.scss +5 -1
  198. package/src/components/dataviews-item-actions/index.tsx +7 -16
  199. package/src/components/dataviews-layout/index.tsx +3 -0
  200. package/src/components/dataviews-pagination/index.tsx +1 -1
  201. package/src/components/dataviews-view-config/index.tsx +16 -6
  202. package/src/components/dataviews-view-config/infinite-scroll-toggle.tsx +39 -0
  203. package/src/dataform-controls/array.tsx +85 -0
  204. package/src/dataform-controls/boolean.tsx +24 -10
  205. package/src/dataform-controls/email.tsx +24 -11
  206. package/src/dataform-controls/index.tsx +3 -1
  207. package/src/dataform-controls/integer.tsx +27 -13
  208. package/src/dataform-controls/select.tsx +23 -13
  209. package/src/dataform-controls/text.tsx +24 -11
  210. package/src/dataforms-layouts/card/index.tsx +154 -0
  211. package/src/dataforms-layouts/card/style.scss +3 -0
  212. package/src/dataforms-layouts/data-form-layout.tsx +2 -2
  213. package/src/dataforms-layouts/index.tsx +5 -0
  214. package/src/dataforms-layouts/panel/dropdown.tsx +160 -0
  215. package/src/dataforms-layouts/panel/index.tsx +49 -189
  216. package/src/dataforms-layouts/panel/modal.tsx +165 -0
  217. package/src/dataforms-layouts/panel/style.scss +4 -0
  218. package/src/dataforms-layouts/regular/index.tsx +20 -23
  219. package/src/dataviews-layouts/grid/index.tsx +34 -6
  220. package/src/dataviews-layouts/grid/preview-size-picker.tsx +15 -13
  221. package/src/dataviews-layouts/grid/style.scss +5 -3
  222. package/src/dataviews-layouts/list/index.tsx +67 -34
  223. package/src/dataviews-layouts/list/style.scss +7 -3
  224. package/src/dataviews-layouts/table/column-header-menu.tsx +4 -0
  225. package/src/dataviews-layouts/table/column-primary.tsx +24 -4
  226. package/src/dataviews-layouts/table/index.tsx +138 -36
  227. package/src/dataviews-layouts/table/style.scss +23 -1
  228. package/src/field-types/array.tsx +1 -1
  229. package/src/normalize-form-fields.ts +63 -17
  230. package/src/test/dataform.tsx +181 -3
  231. package/src/test/dataviews.tsx +38 -0
  232. package/src/test/filter-and-sort-data-view.js +126 -65
  233. package/src/test/normalize-form-fields.ts +247 -0
  234. package/src/types.ts +89 -7
  235. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","useInstanceId","usePrevious","__experimentalHStack","HStack","__experimentalVStack","VStack","Button","privateApis","componentsPrivateApis","Spinner","VisuallyHidden","Composite","useCallback","useEffect","useMemo","useRef","useState","__","moreVertical","useRegistry","unlock","ActionsMenuGroup","ActionModal","jsx","_jsx","jsxs","_jsxs","Menu","generateItemWrapperCompositeId","idPrefix","generatePrimaryActionCompositeId","primaryActionId","generateDropdownTriggerCompositeId","PrimaryActionGridCell","primaryAction","item","registry","isModalOpen","setIsModalOpen","compositeItemId","id","label","role","children","Item","render","disabled","accessibleWhenDisabled","icon","isDestructive","size","onClick","action","items","closeModal","callback","ListItem","view","actions","isSelected","titleField","mediaField","descriptionField","onSelect","otherFields","onDropdownTriggerKeyDown","showTitle","showMedia","showDescription","itemRef","labelId","descriptionId","isHovered","setIsHovered","activeModalAction","setActiveModalAction","handleHover","type","isHover","current","scrollIntoView","behavior","block","inline","eligibleActions","_eligibleActions","filter","isEligible","_primaryActions","isPrimary","hasOnlyOnePrimaryAction","length","renderedMediaField","className","field","config","sizes","renderedTitleField","usedActions","spacing","placement","TriggerButton","onKeyDown","Popover","Row","ref","onMouseEnter","onMouseLeave","justify","alignment","map","as","isDefined","ViewList","props","_view$fields","data","fields","getItemId","isLoading","onChangeSelection","selection","baseId","selectedItem","findLast","includes","find","fieldId","f","generateCompositeItemIdPrefix","isActiveCompositeItem","idToCheck","startsWith","activeCompositeId","setActiveCompositeId","undefined","activeItemIndex","findIndex","previousActiveItemIndex","isActiveIdInList","selectCompositeItem","targetIndex","generateCompositeId","clampedIndex","Math","min","max","itemIdPrefix","targetCompositeItemId","document","getElementById","focus","wasActiveIdInList","event","key","preventDefault","hasData","activeId","setActiveId"],"sources":["@wordpress/dataviews/src/dataviews-layouts/list/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId, usePrevious } 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\tComposite,\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 {\n\tActionsMenuGroup,\n\tActionModal,\n} from '../../components/dataviews-item-actions';\nimport type {\n\tAction,\n\tNormalizedField,\n\tViewList as ViewListType,\n\tViewListProps,\n\tActionModal as ActionModalType,\n} from '../../types';\n\ninterface ListViewItemProps< Item > {\n\tview: ViewListType;\n\tactions: Action< Item >[];\n\tidPrefix: string;\n\tisSelected: boolean;\n\titem: Item;\n\ttitleField?: NormalizedField< Item >;\n\tmediaField?: NormalizedField< Item >;\n\tdescriptionField?: NormalizedField< Item >;\n\tonSelect: ( item: Item ) => void;\n\totherFields: NormalizedField< Item >[];\n\tonDropdownTriggerKeyDown: React.KeyboardEventHandler< HTMLButtonElement >;\n}\n\nconst { Menu } = unlock( componentsPrivateApis );\n\nfunction generateItemWrapperCompositeId( idPrefix: string ) {\n\treturn `${ idPrefix }-item-wrapper`;\n}\nfunction generatePrimaryActionCompositeId(\n\tidPrefix: string,\n\tprimaryActionId: string\n) {\n\treturn `${ idPrefix }-primary-action-${ primaryActionId }`;\n}\nfunction generateDropdownTriggerCompositeId( idPrefix: string ) {\n\treturn `${ idPrefix }-dropdown`;\n}\n\nfunction PrimaryActionGridCell< Item >( {\n\tidPrefix,\n\tprimaryAction,\n\titem,\n}: {\n\tidPrefix: string;\n\tprimaryAction: Action< Item >;\n\titem: Item;\n} ) {\n\tconst registry = useRegistry();\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\tconst compositeItemId = generatePrimaryActionCompositeId(\n\t\tidPrefix,\n\t\tprimaryAction.id\n\t);\n\n\tconst label =\n\t\ttypeof primaryAction.label === 'string'\n\t\t\t? primaryAction.label\n\t\t\t: primaryAction.label( [ item ] );\n\n\treturn 'RenderModal' in primaryAction ? (\n\t\t<div role=\"gridcell\" key={ primaryAction.id }>\n\t\t\t<Composite.Item\n\t\t\t\tid={ compositeItemId }\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\tdisabled={ !! primaryAction.disabled }\n\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\tisDestructive={ primaryAction.isDestructive }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ isModalOpen && (\n\t\t\t\t\t<ActionModal< Item >\n\t\t\t\t\t\taction={ primaryAction }\n\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</Composite.Item>\n\t\t</div>\n\t) : (\n\t\t<div role=\"gridcell\" key={ primaryAction.id }>\n\t\t\t<Composite.Item\n\t\t\t\tid={ compositeItemId }\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\tdisabled={ !! primaryAction.disabled }\n\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\tisDestructive={ primaryAction.isDestructive }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tprimaryAction.callback( [ item ], { registry } );\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</div>\n\t);\n}\n\nfunction ListItem< Item >( {\n\tview,\n\tactions,\n\tidPrefix,\n\tisSelected,\n\titem,\n\ttitleField,\n\tmediaField,\n\tdescriptionField,\n\tonSelect,\n\totherFields,\n\tonDropdownTriggerKeyDown,\n}: ListViewItemProps< Item > ) {\n\tconst { showTitle = true, showMedia = true, showDescription = true } = view;\n\tconst itemRef = useRef< HTMLDivElement >( null );\n\tconst labelId = `${ idPrefix }-label`;\n\tconst descriptionId = `${ idPrefix }-description`;\n\n\tconst registry = useRegistry();\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ activeModalAction, setActiveModalAction ] = useState(\n\t\tnull as ActionModalType< Item > | null\n\t);\n\tconst handleHover: React.MouseEventHandler = ( { type } ) => {\n\t\tconst isHover = type === 'mouseenter';\n\t\tsetIsHovered( isHover );\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 hasOnlyOnePrimaryAction = primaryAction && actions.length === 1;\n\n\tconst renderedMediaField =\n\t\tshowMedia && mediaField?.render ? (\n\t\t\t<div className=\"dataviews-view-list__media-wrapper\">\n\t\t\t\t<mediaField.render\n\t\t\t\t\titem={ item }\n\t\t\t\t\tfield={ mediaField }\n\t\t\t\t\tconfig={ { sizes: '52px' } }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t) : null;\n\n\tconst renderedTitleField =\n\t\tshowTitle && titleField?.render ? (\n\t\t\t<titleField.render item={ item } field={ titleField } />\n\t\t) : null;\n\n\tconst usedActions = eligibleActions?.length > 0 && (\n\t\t<HStack spacing={ 3 } className=\"dataviews-view-list__item-actions\">\n\t\t\t{ primaryAction && (\n\t\t\t\t<PrimaryActionGridCell\n\t\t\t\t\tidPrefix={ idPrefix }\n\t\t\t\t\tprimaryAction={ primaryAction }\n\t\t\t\t\titem={ item }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! hasOnlyOnePrimaryAction && (\n\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t<Menu placement=\"bottom-end\">\n\t\t\t\t\t\t<Menu.TriggerButton\n\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\t\t\t\tid={ generateDropdownTriggerCompositeId(\n\t\t\t\t\t\t\t\t\t\tidPrefix\n\t\t\t\t\t\t\t\t\t) }\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\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\t\t\t\tdisabled={ ! actions.length }\n\t\t\t\t\t\t\t\t\t\t\tonKeyDown={\n\t\t\t\t\t\t\t\t\t\t\t\tonDropdownTriggerKeyDown\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}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Menu.Popover>\n\t\t\t\t\t\t\t<ActionsMenuGroup\n\t\t\t\t\t\t\t\tactions={ eligibleActions }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tregistry={ registry }\n\t\t\t\t\t\t\t\tsetActiveModalAction={ setActiveModalAction }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Menu.Popover>\n\t\t\t\t\t</Menu>\n\t\t\t\t\t{ !! activeModalAction && (\n\t\t\t\t\t\t<ActionModal\n\t\t\t\t\t\t\taction={ activeModalAction }\n\t\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\t\tcloseModal={ () => setActiveModalAction( null ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</HStack>\n\t);\n\n\treturn (\n\t\t<Composite.Row\n\t\t\tref={ itemRef }\n\t\t\trender={ <div /> }\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={ handleHover }\n\t\t\tonMouseLeave={ handleHover }\n\t\t>\n\t\t\t<HStack className=\"dataviews-view-list__item-wrapper\" spacing={ 0 }>\n\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\tid={ generateItemWrapperCompositeId( idPrefix ) }\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</div>\n\t\t\t\t<HStack spacing={ 3 } justify=\"start\" alignment=\"flex-start\">\n\t\t\t\t\t{ renderedMediaField }\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t\tclassName=\"dataviews-view-list__field-wrapper\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack spacing={ 0 }>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName=\"dataviews-title-field\"\n\t\t\t\t\t\t\t\tid={ labelId }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ renderedTitleField }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{ usedActions }\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t{ showDescription && descriptionField?.render && (\n\t\t\t\t\t\t\t<div className=\"dataviews-view-list__field\">\n\t\t\t\t\t\t\t\t<descriptionField.render\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\tfield={ descriptionField }\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) }\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"dataviews-view-list__fields\"\n\t\t\t\t\t\t\tid={ descriptionId }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ otherFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<VisuallyHidden\n\t\t\t\t\t\t\t\t\t\tas=\"span\"\n\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>\n\t\t\t\t\t\t\t\t\t\t{ field.label }\n\t\t\t\t\t\t\t\t\t</VisuallyHidden>\n\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<field.render\n\t\t\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\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) ) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</VStack>\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t</Composite.Row>\n\t);\n}\n\nfunction isDefined< T >( item: T | undefined ): item is T {\n\treturn !! item;\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\tonChangeSelection,\n\t\tselection,\n\t\tview,\n\t\tclassName,\n\t} = props;\n\tconst baseId = useInstanceId( ViewList, 'view-list' );\n\n\tconst selectedItem = data?.findLast( ( item ) =>\n\t\tselection.includes( getItemId( item ) )\n\t);\n\tconst titleField = fields.find( ( field ) => field.id === view.titleField );\n\tconst mediaField = fields.find( ( field ) => field.id === view.mediaField );\n\tconst descriptionField = fields.find(\n\t\t( field ) => field.id === view.descriptionField\n\t);\n\tconst otherFields = ( view?.fields ?? [] )\n\t\t.map( ( fieldId ) => fields.find( ( f ) => fieldId === f.id ) )\n\t\t.filter( isDefined );\n\n\tconst onSelect = ( item: Item ) =>\n\t\tonChangeSelection( [ getItemId( item ) ] );\n\n\tconst generateCompositeItemIdPrefix = useCallback(\n\t\t( item: Item ) => `${ baseId }-${ getItemId( item ) }`,\n\t\t[ baseId, getItemId ]\n\t);\n\n\tconst isActiveCompositeItem = useCallback(\n\t\t( item: Item, idToCheck: string ) => {\n\t\t\t// All composite items use the same prefix in their IDs.\n\t\t\treturn idToCheck.startsWith(\n\t\t\t\tgenerateCompositeItemIdPrefix( item )\n\t\t\t);\n\t\t},\n\t\t[ generateCompositeItemIdPrefix ]\n\t);\n\n\t// Controlled state for the active composite item.\n\tconst [ activeCompositeId, setActiveCompositeId ] = useState<\n\t\tstring | null | undefined\n\t>( undefined );\n\n\t// Update the active composite item when the selected item changes.\n\tuseEffect( () => {\n\t\tif ( selectedItem ) {\n\t\t\tsetActiveCompositeId(\n\t\t\t\tgenerateItemWrapperCompositeId(\n\t\t\t\t\tgenerateCompositeItemIdPrefix( selectedItem )\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, [ selectedItem, generateCompositeItemIdPrefix ] );\n\n\tconst activeItemIndex = data.findIndex( ( item ) =>\n\t\tisActiveCompositeItem( item, activeCompositeId ?? '' )\n\t);\n\tconst previousActiveItemIndex = usePrevious( activeItemIndex );\n\tconst isActiveIdInList = activeItemIndex !== -1;\n\n\tconst selectCompositeItem = useCallback(\n\t\t(\n\t\t\ttargetIndex: number,\n\t\t\t// Allows invokers to specify a custom function to generate the\n\t\t\t// target composite item ID\n\t\t\tgenerateCompositeId: ( idPrefix: string ) => string\n\t\t) => {\n\t\t\t// Clamping between 0 and data.length - 1 to avoid out of bounds.\n\t\t\tconst clampedIndex = Math.min(\n\t\t\t\tdata.length - 1,\n\t\t\t\tMath.max( 0, targetIndex )\n\t\t\t);\n\t\t\tif ( ! data[ clampedIndex ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst itemIdPrefix = generateCompositeItemIdPrefix(\n\t\t\t\tdata[ clampedIndex ]\n\t\t\t);\n\t\t\tconst targetCompositeItemId = generateCompositeId( itemIdPrefix );\n\n\t\t\tsetActiveCompositeId( targetCompositeItemId );\n\t\t\tdocument.getElementById( targetCompositeItemId )?.focus();\n\t\t},\n\t\t[ data, generateCompositeItemIdPrefix ]\n\t);\n\n\t// Select a new active composite item when the current active item\n\t// is removed from the list.\n\tuseEffect( () => {\n\t\tconst wasActiveIdInList =\n\t\t\tpreviousActiveItemIndex !== undefined &&\n\t\t\tpreviousActiveItemIndex !== -1;\n\t\tif ( ! isActiveIdInList && wasActiveIdInList ) {\n\t\t\t// By picking `previousActiveItemIndex` as the next item index, we are\n\t\t\t// basically picking the item that would have been after the deleted one.\n\t\t\t// If the previously active (and removed) item was the last of the list,\n\t\t\t// we will select the item before it — which is the new last item.\n\t\t\tselectCompositeItem(\n\t\t\t\tpreviousActiveItemIndex,\n\t\t\t\tgenerateItemWrapperCompositeId\n\t\t\t);\n\t\t}\n\t}, [ isActiveIdInList, selectCompositeItem, previousActiveItemIndex ] );\n\n\t// Prevent the default behavior (open dropdown menu) and instead select the\n\t// dropdown menu trigger on the previous/next row.\n\t// https://github.com/ariakit/ariakit/issues/3768\n\tconst onDropdownTriggerKeyDown = useCallback(\n\t\t( event: React.KeyboardEvent< HTMLButtonElement > ) => {\n\t\t\tif ( event.key === 'ArrowDown' ) {\n\t\t\t\t// Select the dropdown menu trigger item in the next row.\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectCompositeItem(\n\t\t\t\t\tactiveItemIndex + 1,\n\t\t\t\t\tgenerateDropdownTriggerCompositeId\n\t\t\t\t);\n\t\t\t}\n\t\t\tif ( event.key === 'ArrowUp' ) {\n\t\t\t\t// Select the dropdown menu trigger item in the previous row.\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectCompositeItem(\n\t\t\t\t\tactiveItemIndex - 1,\n\t\t\t\t\tgenerateDropdownTriggerCompositeId\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ selectCompositeItem, activeItemIndex ]\n\t);\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={ <div /> }\n\t\t\tclassName={ clsx( 'dataviews-view-list', className ) }\n\t\t\trole=\"grid\"\n\t\t\tactiveId={ activeCompositeId }\n\t\t\tsetActiveId={ setActiveCompositeId }\n\t\t>\n\t\t\t{ data.map( ( item ) => {\n\t\t\t\tconst id = generateCompositeItemIdPrefix( 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\tview={ view }\n\t\t\t\t\t\tidPrefix={ 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\ttitleField={ titleField }\n\t\t\t\t\t\tdescriptionField={ descriptionField }\n\t\t\t\t\t\totherFields={ otherFields }\n\t\t\t\t\t\tonDropdownTriggerKeyDown={ onDropdownTriggerKeyDown }\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","usePrevious","__experimentalHStack","HStack","__experimentalVStack","VStack","Button","privateApis","componentsPrivateApis","Spinner","VisuallyHidden","Composite","useCallback","useEffect","useMemo","useRef","useState","useContext","__","moreVertical","useRegistry","unlock","ActionsMenuGroup","ActionModal","DataViewsContext","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Menu","generateItemWrapperCompositeId","idPrefix","generatePrimaryActionCompositeId","primaryActionId","generateDropdownTriggerCompositeId","PrimaryActionGridCell","primaryAction","item","registry","isModalOpen","setIsModalOpen","compositeItemId","id","label","role","children","Item","render","disabled","accessibleWhenDisabled","icon","isDestructive","size","onClick","action","items","closeModal","callback","ListItem","view","actions","isSelected","titleField","mediaField","descriptionField","onSelect","otherFields","onDropdownTriggerKeyDown","posinset","showTitle","showMedia","showDescription","infiniteScrollEnabled","itemRef","labelId","descriptionId","isHovered","setIsHovered","activeModalAction","setActiveModalAction","handleHover","type","isHover","paginationInfo","current","scrollIntoView","behavior","block","inline","eligibleActions","_eligibleActions","filter","isEligible","_primaryActions","isPrimary","hasOnlyOnePrimaryAction","length","renderedMediaField","className","field","config","sizes","renderedTitleField","usedActions","spacing","placement","TriggerButton","onKeyDown","Popover","Row","ref","totalItems","undefined","onMouseEnter","onMouseLeave","justify","alignment","map","as","isDefined","ViewList","props","_view$fields","data","fields","getItemId","isLoading","onChangeSelection","selection","empty","baseId","selectedItem","findLast","includes","find","fieldId","f","generateCompositeItemIdPrefix","isActiveCompositeItem","idToCheck","startsWith","activeCompositeId","setActiveCompositeId","activeItemIndex","findIndex","previousActiveItemIndex","isActiveIdInList","selectCompositeItem","targetIndex","generateCompositeId","clampedIndex","Math","min","max","itemIdPrefix","targetCompositeItemId","document","getElementById","focus","wasActiveIdInList","event","key","preventDefault","hasData","activeId","setActiveId","index"],"sources":["@wordpress/dataviews/src/dataviews-layouts/list/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId, usePrevious } 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\tComposite,\n} from '@wordpress/components';\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n\tuseContext,\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 {\n\tActionsMenuGroup,\n\tActionModal,\n} from '../../components/dataviews-item-actions';\nimport DataViewsContext from '../../components/dataviews-context';\nimport type {\n\tAction,\n\tNormalizedField,\n\tViewList as ViewListType,\n\tViewListProps,\n\tActionModal as ActionModalType,\n} from '../../types';\n\ninterface ListViewItemProps< Item > {\n\tview: ViewListType;\n\tactions: Action< Item >[];\n\tidPrefix: string;\n\tisSelected: boolean;\n\titem: Item;\n\ttitleField?: NormalizedField< Item >;\n\tmediaField?: NormalizedField< Item >;\n\tdescriptionField?: NormalizedField< Item >;\n\tonSelect: ( item: Item ) => void;\n\totherFields: NormalizedField< Item >[];\n\tonDropdownTriggerKeyDown: React.KeyboardEventHandler< HTMLButtonElement >;\n\tposinset?: number;\n}\n\nconst { Menu } = unlock( componentsPrivateApis );\n\nfunction generateItemWrapperCompositeId( idPrefix: string ) {\n\treturn `${ idPrefix }-item-wrapper`;\n}\nfunction generatePrimaryActionCompositeId(\n\tidPrefix: string,\n\tprimaryActionId: string\n) {\n\treturn `${ idPrefix }-primary-action-${ primaryActionId }`;\n}\nfunction generateDropdownTriggerCompositeId( idPrefix: string ) {\n\treturn `${ idPrefix }-dropdown`;\n}\n\nfunction PrimaryActionGridCell< Item >( {\n\tidPrefix,\n\tprimaryAction,\n\titem,\n}: {\n\tidPrefix: string;\n\tprimaryAction: Action< Item >;\n\titem: Item;\n} ) {\n\tconst registry = useRegistry();\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\tconst compositeItemId = generatePrimaryActionCompositeId(\n\t\tidPrefix,\n\t\tprimaryAction.id\n\t);\n\n\tconst label =\n\t\ttypeof primaryAction.label === 'string'\n\t\t\t? primaryAction.label\n\t\t\t: primaryAction.label( [ item ] );\n\n\treturn 'RenderModal' in primaryAction ? (\n\t\t<div role=\"gridcell\" key={ primaryAction.id }>\n\t\t\t<Composite.Item\n\t\t\t\tid={ compositeItemId }\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\tdisabled={ !! primaryAction.disabled }\n\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\tisDestructive={ primaryAction.isDestructive }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ isModalOpen && (\n\t\t\t\t\t<ActionModal< Item >\n\t\t\t\t\t\taction={ primaryAction }\n\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</Composite.Item>\n\t\t</div>\n\t) : (\n\t\t<div role=\"gridcell\" key={ primaryAction.id }>\n\t\t\t<Composite.Item\n\t\t\t\tid={ compositeItemId }\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\tdisabled={ !! primaryAction.disabled }\n\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\ticon={ primaryAction.icon }\n\t\t\t\t\t\tisDestructive={ primaryAction.isDestructive }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tprimaryAction.callback( [ item ], { registry } );\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</div>\n\t);\n}\n\nfunction ListItem< Item >( {\n\tview,\n\tactions,\n\tidPrefix,\n\tisSelected,\n\titem,\n\ttitleField,\n\tmediaField,\n\tdescriptionField,\n\tonSelect,\n\totherFields,\n\tonDropdownTriggerKeyDown,\n\tposinset,\n}: ListViewItemProps< Item > ) {\n\tconst {\n\t\tshowTitle = true,\n\t\tshowMedia = true,\n\t\tshowDescription = true,\n\t\tinfiniteScrollEnabled,\n\t} = view;\n\tconst itemRef = useRef< HTMLDivElement >( null );\n\tconst labelId = `${ idPrefix }-label`;\n\tconst descriptionId = `${ idPrefix }-description`;\n\n\tconst registry = useRegistry();\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ activeModalAction, setActiveModalAction ] = useState(\n\t\tnull as ActionModalType< Item > | null\n\t);\n\tconst handleHover: React.MouseEventHandler = ( { type } ) => {\n\t\tconst isHover = type === 'mouseenter';\n\t\tsetIsHovered( isHover );\n\t};\n\n\tconst { paginationInfo } = useContext( DataViewsContext );\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 hasOnlyOnePrimaryAction = primaryAction && actions.length === 1;\n\n\tconst renderedMediaField =\n\t\tshowMedia && mediaField?.render ? (\n\t\t\t<div className=\"dataviews-view-list__media-wrapper\">\n\t\t\t\t<mediaField.render\n\t\t\t\t\titem={ item }\n\t\t\t\t\tfield={ mediaField }\n\t\t\t\t\tconfig={ { sizes: '52px' } }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t) : null;\n\n\tconst renderedTitleField =\n\t\tshowTitle && titleField?.render ? (\n\t\t\t<titleField.render item={ item } field={ titleField } />\n\t\t) : null;\n\n\tconst usedActions = eligibleActions?.length > 0 && (\n\t\t<HStack spacing={ 3 } className=\"dataviews-view-list__item-actions\">\n\t\t\t{ primaryAction && (\n\t\t\t\t<PrimaryActionGridCell\n\t\t\t\t\tidPrefix={ idPrefix }\n\t\t\t\t\tprimaryAction={ primaryAction }\n\t\t\t\t\titem={ item }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! hasOnlyOnePrimaryAction && (\n\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t<Menu placement=\"bottom-end\">\n\t\t\t\t\t\t<Menu.TriggerButton\n\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\t\t\t\tid={ generateDropdownTriggerCompositeId(\n\t\t\t\t\t\t\t\t\t\tidPrefix\n\t\t\t\t\t\t\t\t\t) }\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\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\t\t\t\tdisabled={ ! actions.length }\n\t\t\t\t\t\t\t\t\t\t\tonKeyDown={\n\t\t\t\t\t\t\t\t\t\t\t\tonDropdownTriggerKeyDown\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}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Menu.Popover>\n\t\t\t\t\t\t\t<ActionsMenuGroup\n\t\t\t\t\t\t\t\tactions={ eligibleActions }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tregistry={ registry }\n\t\t\t\t\t\t\t\tsetActiveModalAction={ setActiveModalAction }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Menu.Popover>\n\t\t\t\t\t</Menu>\n\t\t\t\t\t{ !! activeModalAction && (\n\t\t\t\t\t\t<ActionModal\n\t\t\t\t\t\t\taction={ activeModalAction }\n\t\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\t\tcloseModal={ () => setActiveModalAction( null ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</HStack>\n\t);\n\n\treturn (\n\t\t<Composite.Row\n\t\t\tref={ itemRef }\n\t\t\trender={\n\t\t\t\t/* aria-posinset breaks Composite.Row if passed to it directly. */\n\t\t\t\t<div\n\t\t\t\t\taria-posinset={ posinset }\n\t\t\t\t\taria-setsize={\n\t\t\t\t\t\tinfiniteScrollEnabled\n\t\t\t\t\t\t\t? paginationInfo.totalItems\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t}\n\t\t\trole={ infiniteScrollEnabled ? 'article' : '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={ handleHover }\n\t\t\tonMouseLeave={ handleHover }\n\t\t>\n\t\t\t<HStack className=\"dataviews-view-list__item-wrapper\" spacing={ 0 }>\n\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\tid={ generateItemWrapperCompositeId( idPrefix ) }\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</div>\n\t\t\t\t<HStack spacing={ 3 } justify=\"start\" alignment=\"flex-start\">\n\t\t\t\t\t{ renderedMediaField }\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t\tclassName=\"dataviews-view-list__field-wrapper\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack spacing={ 0 }>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName=\"dataviews-title-field\"\n\t\t\t\t\t\t\t\tid={ labelId }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ renderedTitleField }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{ usedActions }\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t{ showDescription && descriptionField?.render && (\n\t\t\t\t\t\t\t<div className=\"dataviews-view-list__field\">\n\t\t\t\t\t\t\t\t<descriptionField.render\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\tfield={ descriptionField }\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) }\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"dataviews-view-list__fields\"\n\t\t\t\t\t\t\tid={ descriptionId }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ otherFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<VisuallyHidden\n\t\t\t\t\t\t\t\t\t\tas=\"span\"\n\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>\n\t\t\t\t\t\t\t\t\t\t{ field.label }\n\t\t\t\t\t\t\t\t\t</VisuallyHidden>\n\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<field.render\n\t\t\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\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) ) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</VStack>\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t</Composite.Row>\n\t);\n}\n\nfunction isDefined< T >( item: T | undefined ): item is T {\n\treturn !! item;\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\tonChangeSelection,\n\t\tselection,\n\t\tview,\n\t\tclassName,\n\t\tempty,\n\t} = props;\n\tconst baseId = useInstanceId( ViewList, 'view-list' );\n\n\tconst selectedItem = data?.findLast( ( item ) =>\n\t\tselection.includes( getItemId( item ) )\n\t);\n\tconst titleField = fields.find( ( field ) => field.id === view.titleField );\n\tconst mediaField = fields.find( ( field ) => field.id === view.mediaField );\n\tconst descriptionField = fields.find(\n\t\t( field ) => field.id === view.descriptionField\n\t);\n\tconst otherFields = ( view?.fields ?? [] )\n\t\t.map( ( fieldId ) => fields.find( ( f ) => fieldId === f.id ) )\n\t\t.filter( isDefined );\n\n\tconst onSelect = ( item: Item ) =>\n\t\tonChangeSelection( [ getItemId( item ) ] );\n\n\tconst generateCompositeItemIdPrefix = useCallback(\n\t\t( item: Item ) => `${ baseId }-${ getItemId( item ) }`,\n\t\t[ baseId, getItemId ]\n\t);\n\n\tconst isActiveCompositeItem = useCallback(\n\t\t( item: Item, idToCheck: string ) => {\n\t\t\t// All composite items use the same prefix in their IDs.\n\t\t\treturn idToCheck.startsWith(\n\t\t\t\tgenerateCompositeItemIdPrefix( item )\n\t\t\t);\n\t\t},\n\t\t[ generateCompositeItemIdPrefix ]\n\t);\n\n\t// Controlled state for the active composite item.\n\tconst [ activeCompositeId, setActiveCompositeId ] = useState<\n\t\tstring | null | undefined\n\t>( undefined );\n\n\t// Update the active composite item when the selected item changes.\n\tuseEffect( () => {\n\t\tif ( selectedItem ) {\n\t\t\tsetActiveCompositeId(\n\t\t\t\tgenerateItemWrapperCompositeId(\n\t\t\t\t\tgenerateCompositeItemIdPrefix( selectedItem )\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, [ selectedItem, generateCompositeItemIdPrefix ] );\n\n\tconst activeItemIndex = data.findIndex( ( item ) =>\n\t\tisActiveCompositeItem( item, activeCompositeId ?? '' )\n\t);\n\tconst previousActiveItemIndex = usePrevious( activeItemIndex );\n\tconst isActiveIdInList = activeItemIndex !== -1;\n\n\tconst selectCompositeItem = useCallback(\n\t\t(\n\t\t\ttargetIndex: number,\n\t\t\t// Allows invokers to specify a custom function to generate the\n\t\t\t// target composite item ID\n\t\t\tgenerateCompositeId: ( idPrefix: string ) => string\n\t\t) => {\n\t\t\t// Clamping between 0 and data.length - 1 to avoid out of bounds.\n\t\t\tconst clampedIndex = Math.min(\n\t\t\t\tdata.length - 1,\n\t\t\t\tMath.max( 0, targetIndex )\n\t\t\t);\n\t\t\tif ( ! data[ clampedIndex ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst itemIdPrefix = generateCompositeItemIdPrefix(\n\t\t\t\tdata[ clampedIndex ]\n\t\t\t);\n\t\t\tconst targetCompositeItemId = generateCompositeId( itemIdPrefix );\n\n\t\t\tsetActiveCompositeId( targetCompositeItemId );\n\t\t\tdocument.getElementById( targetCompositeItemId )?.focus();\n\t\t},\n\t\t[ data, generateCompositeItemIdPrefix ]\n\t);\n\n\t// Select a new active composite item when the current active item\n\t// is removed from the list.\n\tuseEffect( () => {\n\t\tconst wasActiveIdInList =\n\t\t\tpreviousActiveItemIndex !== undefined &&\n\t\t\tpreviousActiveItemIndex !== -1;\n\t\tif ( ! isActiveIdInList && wasActiveIdInList ) {\n\t\t\t// By picking `previousActiveItemIndex` as the next item index, we are\n\t\t\t// basically picking the item that would have been after the deleted one.\n\t\t\t// If the previously active (and removed) item was the last of the list,\n\t\t\t// we will select the item before it — which is the new last item.\n\t\t\tselectCompositeItem(\n\t\t\t\tpreviousActiveItemIndex,\n\t\t\t\tgenerateItemWrapperCompositeId\n\t\t\t);\n\t\t}\n\t}, [ isActiveIdInList, selectCompositeItem, previousActiveItemIndex ] );\n\n\t// Prevent the default behavior (open dropdown menu) and instead select the\n\t// dropdown menu trigger on the previous/next row.\n\t// https://github.com/ariakit/ariakit/issues/3768\n\tconst onDropdownTriggerKeyDown = useCallback(\n\t\t( event: React.KeyboardEvent< HTMLButtonElement > ) => {\n\t\t\tif ( event.key === 'ArrowDown' ) {\n\t\t\t\t// Select the dropdown menu trigger item in the next row.\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectCompositeItem(\n\t\t\t\t\tactiveItemIndex + 1,\n\t\t\t\t\tgenerateDropdownTriggerCompositeId\n\t\t\t\t);\n\t\t\t}\n\t\t\tif ( event.key === 'ArrowUp' ) {\n\t\t\t\t// Select the dropdown menu trigger item in the previous row.\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectCompositeItem(\n\t\t\t\t\tactiveItemIndex - 1,\n\t\t\t\t\tgenerateDropdownTriggerCompositeId\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ selectCompositeItem, activeItemIndex ]\n\t);\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 && <p>{ isLoading ? <Spinner /> : empty }</p> }\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Composite\n\t\t\t\tid={ baseId }\n\t\t\t\trender={ <div /> }\n\t\t\t\tclassName={ clsx( 'dataviews-view-list', className ) }\n\t\t\t\trole={ view.infiniteScrollEnabled ? 'feed' : 'grid' }\n\t\t\t\tactiveId={ activeCompositeId }\n\t\t\t\tsetActiveId={ setActiveCompositeId }\n\t\t\t>\n\t\t\t\t{ data.map( ( item, index ) => {\n\t\t\t\t\tconst id = generateCompositeItemIdPrefix( item );\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ListItem\n\t\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\tidPrefix={ id }\n\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tisSelected={ item === selectedItem }\n\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\tdescriptionField={ descriptionField }\n\t\t\t\t\t\t\totherFields={ otherFields }\n\t\t\t\t\t\t\tonDropdownTriggerKeyDown={\n\t\t\t\t\t\t\t\tonDropdownTriggerKeyDown\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tposinset={\n\t\t\t\t\t\t\t\tview.infiniteScrollEnabled\n\t\t\t\t\t\t\t\t\t? index + 1\n\t\t\t\t\t\t\t\t\t: undefined\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</Composite>\n\t\t\t{ hasData && isLoading && (\n\t\t\t\t<p className=\"dataviews-loading-more\">\n\t\t\t\t\t<Spinner />\n\t\t\t\t</p>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -60,6 +60,9 @@ const _HeaderMenu = forwardRef(function HeaderMenu({
60
60
  // 3. The field does not opt-out of filtering.
61
61
  // 4. The filter is not primary (if it is, it is already visible).
62
62
  canAddFilter = !view.filters?.some(_filter => fieldId === _filter.field) && !!(field.elements?.length || field.Edit) && field.filterBy !== false && !field.filterBy?.isPrimary;
63
+ if (!isSortable && !canMove && !isHidable && !canAddFilter) {
64
+ return header;
65
+ }
63
66
  return /*#__PURE__*/_jsxs(Menu, {
64
67
  children: [/*#__PURE__*/_jsxs(Menu.TriggerButton, {
65
68
  render: /*#__PURE__*/_jsx(Button, {
@@ -1 +1 @@
1
- {"version":3,"names":["__","arrowLeft","arrowRight","unseen","funnel","Button","Icon","privateApis","componentsPrivateApis","forwardRef","Children","Fragment","unlock","SORTING_DIRECTIONS","sortArrows","sortLabels","jsx","_jsx","jsxs","_jsxs","Menu","WithMenuSeparators","children","toArray","filter","Boolean","map","child","i","Separator","_HeaderMenu","HeaderMenu","fieldId","view","fields","onChangeView","onHide","setOpenedFilter","canMove","ref","_view$fields","visibleFieldIds","index","indexOf","isSorted","sort","field","isHidable","isSortable","canAddFilter","operators","find","f","id","enableHiding","enableSorting","header","filterBy","filters","some","_filter","elements","length","Edit","isPrimary","TriggerButton","render","size","className","variant","direction","Popover","style","minWidth","Group","isChecked","value","RadioItem","name","checked","onChange","showLevels","ItemLabel","Item","prefix","icon","onClick","page","undefined","operator","disabled","_visibleFieldIds$slic","slice","_visibleFieldIds$slic2","ColumnHeaderMenu"],"sources":["@wordpress/dataviews/src/dataviews-layouts/table/column-header-menu.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode, Ref, PropsWithoutRef, RefAttributes } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { arrowLeft, arrowRight, unseen, funnel } from '@wordpress/icons';\nimport {\n\tButton,\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { forwardRef, Children, Fragment } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { SORTING_DIRECTIONS, sortArrows, sortLabels } from '../../constants';\nimport type {\n\tNormalizedField,\n\tSortDirection,\n\tViewTable as ViewTableType,\n\tOperator,\n} from '../../types';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\ninterface HeaderMenuProps< Item > {\n\tfieldId: string;\n\tview: ViewTableType;\n\tfields: NormalizedField< Item >[];\n\tonChangeView: ( view: ViewTableType ) => void;\n\tonHide: ( field: NormalizedField< Item > ) => void;\n\tsetOpenedFilter: ( fieldId: string ) => void;\n\tcanMove?: boolean;\n}\n\nfunction WithMenuSeparators( { 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 && <Menu.Separator /> }\n\t\t\t\t{ child }\n\t\t\t</Fragment>\n\t\t) );\n}\n\nconst _HeaderMenu = forwardRef( function HeaderMenu< Item >(\n\t{\n\t\tfieldId,\n\t\tview,\n\t\tfields,\n\t\tonChangeView,\n\t\tonHide,\n\t\tsetOpenedFilter,\n\t\tcanMove = true,\n\t}: HeaderMenuProps< Item >,\n\tref: Ref< HTMLButtonElement >\n) {\n\tconst visibleFieldIds = view.fields ?? [];\n\tconst index = visibleFieldIds?.indexOf( fieldId ) as number;\n\tconst isSorted = view.sort?.field === fieldId;\n\tlet isHidable = false;\n\tlet isSortable = false;\n\tlet canAddFilter = false;\n\tlet operators: Operator[] = [];\n\tconst field = fields.find( ( f ) => f.id === fieldId );\n\n\tif ( ! field ) {\n\t\t// No combined or regular field found.\n\t\treturn null;\n\t}\n\n\tisHidable = field.enableHiding !== false;\n\tisSortable = field.enableSorting !== false;\n\tconst header = field.header;\n\n\toperators = ( !! field.filterBy && field.filterBy?.operators ) || [];\n\n\t// Filter can be added if:\n\t//\n\t// 1. The field is not already part of a view's filters.\n\t// 2. The field has elements or Edit property.\n\t// 3. The field does not opt-out of filtering.\n\t// 4. The filter is not primary (if it is, it is already visible).\n\tcanAddFilter =\n\t\t! view.filters?.some( ( _filter ) => fieldId === _filter.field ) &&\n\t\t!! ( field.elements?.length || field.Edit ) &&\n\t\tfield.filterBy !== false &&\n\t\t! field.filterBy?.isPrimary;\n\n\treturn (\n\t\t<Menu>\n\t\t\t<Menu.TriggerButton\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tclassName=\"dataviews-view-table-header-button\"\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ header }\n\t\t\t\t{ view.sort && isSorted && (\n\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t{ sortArrows[ view.sort.direction ] }\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</Menu.TriggerButton>\n\t\t\t<Menu.Popover style={ { minWidth: '240px' } }>\n\t\t\t\t<WithMenuSeparators>\n\t\t\t\t\t{ isSortable && (\n\t\t\t\t\t\t<Menu.Group>\n\t\t\t\t\t\t\t{ SORTING_DIRECTIONS.map(\n\t\t\t\t\t\t\t\t( direction: SortDirection ) => {\n\t\t\t\t\t\t\t\t\tconst isChecked =\n\t\t\t\t\t\t\t\t\t\tview.sort &&\n\t\t\t\t\t\t\t\t\t\tisSorted &&\n\t\t\t\t\t\t\t\t\t\tview.sort.direction === direction;\n\n\t\t\t\t\t\t\t\t\tconst value = `${ fieldId }-${ direction }`;\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<Menu.RadioItem\n\t\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\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\t// selecting a sorting option automatically deselects the\n\t\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\t// another submenu. The field and direction are passed via\n\t\t\t\t\t\t\t\t\t\t\t// the `value` prop.\n\t\t\t\t\t\t\t\t\t\t\tname=\"view-table-sorting\"\n\t\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\t\tchecked={ isChecked }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\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\t\tsort: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield: fieldId,\n\t\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\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\tshowLevels: false,\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\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t{ sortLabels[ direction ] }\n\t\t\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t</Menu.RadioItem>\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</Menu.Group>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canAddFilter && (\n\t\t\t\t\t\t<Menu.Group>\n\t\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\t\tprefix={ <Icon icon={ funnel } /> }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetOpenedFilter( fieldId );\n\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t\t\t...( view.filters || [] ),\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tfield: fieldId,\n\t\t\t\t\t\t\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t\t\t\t\t\t\t\toperator: operators[ 0 ],\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>\n\t\t\t\t\t\t\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t{ __( 'Add filter' ) }\n\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t\t</Menu.Group>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ( canMove || isHidable ) && field && (\n\t\t\t\t\t\t<Menu.Group>\n\t\t\t\t\t\t\t{ canMove && (\n\t\t\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\t\t\tprefix={ <Icon icon={ arrowLeft } /> }\n\t\t\t\t\t\t\t\t\tdisabled={ index < 1 }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\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\tfields: [\n\t\t\t\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\t\t\tindex - 1\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\tfieldId,\n\t\t\t\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index - 1 ],\n\t\t\t\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t\t\t\tindex + 1\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\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Move left' ) }\n\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ canMove && (\n\t\t\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\t\t\tprefix={ <Icon icon={ arrowRight } /> }\n\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\tindex >= visibleFieldIds.length - 1\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => {\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\tfields: [\n\t\t\t\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\t\t\tindex\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\tvisibleFieldIds[ index + 1 ],\n\t\t\t\t\t\t\t\t\t\t\t\tfieldId,\n\t\t\t\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t\t\t\tindex + 2\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\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Move right' ) }\n\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ isHidable && field && (\n\t\t\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\t\t\tprefix={ <Icon icon={ unseen } /> }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tonHide( field );\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\tfields: visibleFieldIds.filter(\n\t\t\t\t\t\t\t\t\t\t\t\t( id ) => id !== fieldId\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<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Hide column' ) }\n\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Menu.Group>\n\t\t\t\t\t) }\n\t\t\t\t</WithMenuSeparators>\n\t\t\t</Menu.Popover>\n\t\t</Menu>\n\t);\n} );\n\n// @ts-expect-error Lift the `Item` type argument through the forwardRef.\nconst ColumnHeaderMenu: < Item >(\n\tprops: PropsWithoutRef< HeaderMenuProps< Item > > &\n\t\tRefAttributes< HTMLButtonElement >\n) => ReturnType< typeof _HeaderMenu > = _HeaderMenu;\n\nexport default ColumnHeaderMenu;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__","arrowLeft","arrowRight","unseen","funnel","Button","Icon","privateApis","componentsPrivateApis","forwardRef","Children","Fragment","unlock","SORTING_DIRECTIONS","sortArrows","sortLabels","jsx","_jsx","jsxs","_jsxs","Menu","WithMenuSeparators","children","toArray","filter","Boolean","map","child","i","Separator","_HeaderMenu","HeaderMenu","fieldId","view","fields","onChangeView","onHide","setOpenedFilter","canMove","ref","_view$fields","visibleFieldIds","index","indexOf","isSorted","sort","field","isHidable","isSortable","canAddFilter","operators","find","f","id","enableHiding","enableSorting","header","filterBy","filters","some","_filter","elements","length","Edit","isPrimary","TriggerButton","render","size","className","variant","direction","Popover","style","minWidth","Group","isChecked","value","RadioItem","name","checked","onChange","showLevels","ItemLabel","Item","prefix","icon","onClick","page","undefined","operator","disabled","_visibleFieldIds$slic","slice","_visibleFieldIds$slic2","ColumnHeaderMenu"],"sources":["@wordpress/dataviews/src/dataviews-layouts/table/column-header-menu.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode, Ref, PropsWithoutRef, RefAttributes } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { arrowLeft, arrowRight, unseen, funnel } from '@wordpress/icons';\nimport {\n\tButton,\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { forwardRef, Children, Fragment } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { SORTING_DIRECTIONS, sortArrows, sortLabels } from '../../constants';\nimport type {\n\tNormalizedField,\n\tSortDirection,\n\tViewTable as ViewTableType,\n\tOperator,\n} from '../../types';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\ninterface HeaderMenuProps< Item > {\n\tfieldId: string;\n\tview: ViewTableType;\n\tfields: NormalizedField< Item >[];\n\tonChangeView: ( view: ViewTableType ) => void;\n\tonHide: ( field: NormalizedField< Item > ) => void;\n\tsetOpenedFilter: ( fieldId: string ) => void;\n\tcanMove?: boolean;\n}\n\nfunction WithMenuSeparators( { 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 && <Menu.Separator /> }\n\t\t\t\t{ child }\n\t\t\t</Fragment>\n\t\t) );\n}\n\nconst _HeaderMenu = forwardRef( function HeaderMenu< Item >(\n\t{\n\t\tfieldId,\n\t\tview,\n\t\tfields,\n\t\tonChangeView,\n\t\tonHide,\n\t\tsetOpenedFilter,\n\t\tcanMove = true,\n\t}: HeaderMenuProps< Item >,\n\tref: Ref< HTMLButtonElement >\n) {\n\tconst visibleFieldIds = view.fields ?? [];\n\tconst index = visibleFieldIds?.indexOf( fieldId ) as number;\n\tconst isSorted = view.sort?.field === fieldId;\n\tlet isHidable = false;\n\tlet isSortable = false;\n\tlet canAddFilter = false;\n\tlet operators: Operator[] = [];\n\tconst field = fields.find( ( f ) => f.id === fieldId );\n\n\tif ( ! field ) {\n\t\t// No combined or regular field found.\n\t\treturn null;\n\t}\n\n\tisHidable = field.enableHiding !== false;\n\tisSortable = field.enableSorting !== false;\n\tconst header = field.header;\n\n\toperators = ( !! field.filterBy && field.filterBy?.operators ) || [];\n\n\t// Filter can be added if:\n\t//\n\t// 1. The field is not already part of a view's filters.\n\t// 2. The field has elements or Edit property.\n\t// 3. The field does not opt-out of filtering.\n\t// 4. The filter is not primary (if it is, it is already visible).\n\tcanAddFilter =\n\t\t! view.filters?.some( ( _filter ) => fieldId === _filter.field ) &&\n\t\t!! ( field.elements?.length || field.Edit ) &&\n\t\tfield.filterBy !== false &&\n\t\t! field.filterBy?.isPrimary;\n\n\tif ( ! isSortable && ! canMove && ! isHidable && ! canAddFilter ) {\n\t\treturn header;\n\t}\n\n\treturn (\n\t\t<Menu>\n\t\t\t<Menu.TriggerButton\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tclassName=\"dataviews-view-table-header-button\"\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ header }\n\t\t\t\t{ view.sort && isSorted && (\n\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t{ sortArrows[ view.sort.direction ] }\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</Menu.TriggerButton>\n\t\t\t<Menu.Popover style={ { minWidth: '240px' } }>\n\t\t\t\t<WithMenuSeparators>\n\t\t\t\t\t{ isSortable && (\n\t\t\t\t\t\t<Menu.Group>\n\t\t\t\t\t\t\t{ SORTING_DIRECTIONS.map(\n\t\t\t\t\t\t\t\t( direction: SortDirection ) => {\n\t\t\t\t\t\t\t\t\tconst isChecked =\n\t\t\t\t\t\t\t\t\t\tview.sort &&\n\t\t\t\t\t\t\t\t\t\tisSorted &&\n\t\t\t\t\t\t\t\t\t\tview.sort.direction === direction;\n\n\t\t\t\t\t\t\t\t\tconst value = `${ fieldId }-${ direction }`;\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<Menu.RadioItem\n\t\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\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\t// selecting a sorting option automatically deselects the\n\t\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\t// another submenu. The field and direction are passed via\n\t\t\t\t\t\t\t\t\t\t\t// the `value` prop.\n\t\t\t\t\t\t\t\t\t\t\tname=\"view-table-sorting\"\n\t\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\t\tchecked={ isChecked }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\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\t\tsort: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield: fieldId,\n\t\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\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\tshowLevels: false,\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\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t{ sortLabels[ direction ] }\n\t\t\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t</Menu.RadioItem>\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</Menu.Group>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canAddFilter && (\n\t\t\t\t\t\t<Menu.Group>\n\t\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\t\tprefix={ <Icon icon={ funnel } /> }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetOpenedFilter( fieldId );\n\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t\t\t...( view.filters || [] ),\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tfield: fieldId,\n\t\t\t\t\t\t\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t\t\t\t\t\t\t\toperator: operators[ 0 ],\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>\n\t\t\t\t\t\t\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t{ __( 'Add filter' ) }\n\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t\t</Menu.Group>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ( canMove || isHidable ) && field && (\n\t\t\t\t\t\t<Menu.Group>\n\t\t\t\t\t\t\t{ canMove && (\n\t\t\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\t\t\tprefix={ <Icon icon={ arrowLeft } /> }\n\t\t\t\t\t\t\t\t\tdisabled={ index < 1 }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\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\tfields: [\n\t\t\t\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\t\t\tindex - 1\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\tfieldId,\n\t\t\t\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index - 1 ],\n\t\t\t\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t\t\t\tindex + 1\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\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Move left' ) }\n\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ canMove && (\n\t\t\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\t\t\tprefix={ <Icon icon={ arrowRight } /> }\n\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\tindex >= visibleFieldIds.length - 1\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => {\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\tfields: [\n\t\t\t\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\t\t\tindex\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\tvisibleFieldIds[ index + 1 ],\n\t\t\t\t\t\t\t\t\t\t\t\tfieldId,\n\t\t\t\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t\t\t\tindex + 2\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\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Move right' ) }\n\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ isHidable && field && (\n\t\t\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\t\t\tprefix={ <Icon icon={ unseen } /> }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tonHide( field );\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\tfields: visibleFieldIds.filter(\n\t\t\t\t\t\t\t\t\t\t\t\t( id ) => id !== fieldId\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<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Hide column' ) }\n\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Menu.Group>\n\t\t\t\t\t) }\n\t\t\t\t</WithMenuSeparators>\n\t\t\t</Menu.Popover>\n\t\t</Menu>\n\t);\n} );\n\n// @ts-expect-error Lift the `Item` type argument through the forwardRef.\nconst ColumnHeaderMenu: < Item >(\n\tprops: PropsWithoutRef< HeaderMenuProps< Item > > &\n\t\tRefAttributes< HTMLButtonElement >\n) => ReturnType< typeof _HeaderMenu > = _HeaderMenu;\n\nexport default ColumnHeaderMenu;\n"],"mappings":"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","ignoreList":[]}
@@ -12,6 +12,7 @@ import { __experimentalHStack as HStack, __experimentalVStack as VStack } from '
12
12
  */
13
13
 
14
14
  import { ItemClickWrapper } from '../utils/item-click-wrapper';
15
+ import { sprintf, __ } from '@wordpress/i18n';
15
16
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
17
  function ColumnPrimary({
17
18
  item,
@@ -26,8 +27,17 @@ function ColumnPrimary({
26
27
  return /*#__PURE__*/_jsxs(HStack, {
27
28
  spacing: 3,
28
29
  justify: "flex-start",
29
- children: [mediaField && /*#__PURE__*/_jsx("div", {
30
+ children: [mediaField && /*#__PURE__*/_jsx(ItemClickWrapper, {
31
+ item: item,
32
+ isItemClickable: isItemClickable,
33
+ onClickItem: onClickItem,
34
+ renderItemLink: renderItemLink,
30
35
  className: "dataviews-view-table__cell-content-wrapper dataviews-column-primary__media",
36
+ "aria-label": titleField ? sprintf(
37
+ // translators: %s is the item title.
38
+ __('Click item: %s'), titleField.getValue?.({
39
+ item
40
+ })) : undefined,
31
41
  children: /*#__PURE__*/_jsx(mediaField.render, {
32
42
  item: item,
33
43
  field: mediaField,
@@ -37,13 +47,15 @@ function ColumnPrimary({
37
47
  })
38
48
  }), /*#__PURE__*/_jsxs(VStack, {
39
49
  spacing: 0,
50
+ alignment: "flex-start",
51
+ className: "dataviews-view-table__primary-column-content",
40
52
  children: [titleField && /*#__PURE__*/_jsxs(ItemClickWrapper, {
41
53
  item: item,
42
54
  isItemClickable: isItemClickable,
43
55
  onClickItem: onClickItem,
44
56
  renderItemLink: renderItemLink,
45
57
  className: "dataviews-view-table__cell-content-wrapper dataviews-title-field",
46
- children: [level !== undefined && /*#__PURE__*/_jsxs("span", {
58
+ children: [level !== undefined && level > 0 && /*#__PURE__*/_jsxs("span", {
47
59
  className: "dataviews-view-table__level",
48
60
  children: ['—'.repeat(level), "\xA0"]
49
61
  }), /*#__PURE__*/_jsx(titleField.render, {
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalHStack","HStack","__experimentalVStack","VStack","ItemClickWrapper","jsx","_jsx","jsxs","_jsxs","ColumnPrimary","item","level","titleField","mediaField","descriptionField","onClickItem","renderItemLink","isItemClickable","spacing","justify","children","className","render","field","config","sizes","undefined","repeat"],"sources":["@wordpress/dataviews/src/dataviews-layouts/table/column-primary.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ComponentProps, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type { NormalizedField } from '../../types';\nimport { ItemClickWrapper } from '../utils/item-click-wrapper';\n\nfunction ColumnPrimary< Item >( {\n\titem,\n\tlevel,\n\ttitleField,\n\tmediaField,\n\tdescriptionField,\n\tonClickItem,\n\trenderItemLink,\n\tisItemClickable,\n}: {\n\titem: Item;\n\tlevel?: number;\n\ttitleField?: NormalizedField< Item >;\n\tmediaField?: NormalizedField< Item >;\n\tdescriptionField?: NormalizedField< Item >;\n\tonClickItem?: ( item: Item ) => void;\n\trenderItemLink?: (\n\t\tprops: {\n\t\t\titem: Item;\n\t\t} & ComponentProps< 'a' >\n\t) => ReactElement;\n\tisItemClickable: ( item: Item ) => boolean;\n} ) {\n\treturn (\n\t\t<HStack spacing={ 3 } justify=\"flex-start\">\n\t\t\t{ mediaField && (\n\t\t\t\t<div className=\"dataviews-view-table__cell-content-wrapper dataviews-column-primary__media\">\n\t\t\t\t\t<mediaField.render\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tfield={ mediaField }\n\t\t\t\t\t\tconfig={ { sizes: '32px' } }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t{ titleField && (\n\t\t\t\t\t<ItemClickWrapper\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\t\trenderItemLink={ renderItemLink }\n\t\t\t\t\t\tclassName=\"dataviews-view-table__cell-content-wrapper dataviews-title-field\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ level !== undefined && (\n\t\t\t\t\t\t\t<span className=\"dataviews-view-table__level\">\n\t\t\t\t\t\t\t\t{ '—'.repeat( level ) }&nbsp;\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<titleField.render item={ item } field={ titleField } />\n\t\t\t\t\t</ItemClickWrapper>\n\t\t\t\t) }\n\t\t\t\t{ descriptionField && (\n\t\t\t\t\t<descriptionField.render\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tfield={ descriptionField }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</VStack>\n\t\t</HStack>\n\t);\n}\n\nexport default ColumnPrimary;\n"],"mappings":"AAAA;AACA;AACA;;AAGA;AACA;AACA;AACA,SACCA,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;;AAE9B;AACA;AACA;;AAEA,SAASC,gBAAgB,QAAQ,6BAA6B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE/D,SAASC,aAAaA,CAAU;EAC/BC,IAAI;EACJC,KAAK;EACLC,UAAU;EACVC,UAAU;EACVC,gBAAgB;EAChBC,WAAW;EACXC,cAAc;EACdC;AAcD,CAAC,EAAG;EACH,oBACCT,KAAA,CAACP,MAAM;IAACiB,OAAO,EAAG,CAAG;IAACC,OAAO,EAAC,YAAY;IAAAC,QAAA,GACvCP,UAAU,iBACXP,IAAA;MAAKe,SAAS,EAAC,4EAA4E;MAAAD,QAAA,eAC1Fd,IAAA,CAACO,UAAU,CAACS,MAAM;QACjBZ,IAAI,EAAGA,IAAM;QACba,KAAK,EAAGV,UAAY;QACpBW,MAAM,EAAG;UAAEC,KAAK,EAAE;QAAO;MAAG,CAC5B;IAAC,CACE,CACL,eACDjB,KAAA,CAACL,MAAM;MAACe,OAAO,EAAG,CAAG;MAAAE,QAAA,GAClBR,UAAU,iBACXJ,KAAA,CAACJ,gBAAgB;QAChBM,IAAI,EAAGA,IAAM;QACbO,eAAe,EAAGA,eAAiB;QACnCF,WAAW,EAAGA,WAAa;QAC3BC,cAAc,EAAGA,cAAgB;QACjCK,SAAS,EAAC,kEAAkE;QAAAD,QAAA,GAE1ET,KAAK,KAAKe,SAAS,iBACpBlB,KAAA;UAAMa,SAAS,EAAC,6BAA6B;UAAAD,QAAA,GAC1C,GAAG,CAACO,MAAM,CAAEhB,KAAM,CAAC,EAAE,MACxB;QAAA,CAAM,CACN,eACDL,IAAA,CAACM,UAAU,CAACU,MAAM;UAACZ,IAAI,EAAGA,IAAM;UAACa,KAAK,EAAGX;QAAY,CAAE,CAAC;MAAA,CACvC,CAClB,EACCE,gBAAgB,iBACjBR,IAAA,CAACQ,gBAAgB,CAACQ,MAAM;QACvBZ,IAAI,EAAGA,IAAM;QACba,KAAK,EAAGT;MAAkB,CAC1B,CACD;IAAA,CACM,CAAC;EAAA,CACF,CAAC;AAEX;AAEA,eAAeL,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["__experimentalHStack","HStack","__experimentalVStack","VStack","ItemClickWrapper","sprintf","__","jsx","_jsx","jsxs","_jsxs","ColumnPrimary","item","level","titleField","mediaField","descriptionField","onClickItem","renderItemLink","isItemClickable","spacing","justify","children","className","getValue","undefined","render","field","config","sizes","alignment","repeat"],"sources":["@wordpress/dataviews/src/dataviews-layouts/table/column-primary.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ComponentProps, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type { NormalizedField } from '../../types';\nimport { ItemClickWrapper } from '../utils/item-click-wrapper';\nimport { sprintf, __ } from '@wordpress/i18n';\n\nfunction ColumnPrimary< Item >( {\n\titem,\n\tlevel,\n\ttitleField,\n\tmediaField,\n\tdescriptionField,\n\tonClickItem,\n\trenderItemLink,\n\tisItemClickable,\n}: {\n\titem: Item;\n\tlevel?: number;\n\ttitleField?: NormalizedField< Item >;\n\tmediaField?: NormalizedField< Item >;\n\tdescriptionField?: NormalizedField< Item >;\n\tonClickItem?: ( item: Item ) => void;\n\trenderItemLink?: (\n\t\tprops: {\n\t\t\titem: Item;\n\t\t} & ComponentProps< 'a' >\n\t) => ReactElement;\n\tisItemClickable: ( item: Item ) => boolean;\n} ) {\n\treturn (\n\t\t<HStack spacing={ 3 } justify=\"flex-start\">\n\t\t\t{ mediaField && (\n\t\t\t\t<ItemClickWrapper\n\t\t\t\t\titem={ item }\n\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\trenderItemLink={ renderItemLink }\n\t\t\t\t\tclassName=\"dataviews-view-table__cell-content-wrapper dataviews-column-primary__media\"\n\t\t\t\t\taria-label={\n\t\t\t\t\t\ttitleField\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %s is the item title.\n\t\t\t\t\t\t\t\t\t__( 'Click item: %s' ),\n\t\t\t\t\t\t\t\t\ttitleField.getValue?.( { item } )\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<mediaField.render\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tfield={ mediaField }\n\t\t\t\t\t\tconfig={ { sizes: '32px' } }\n\t\t\t\t\t/>\n\t\t\t\t</ItemClickWrapper>\n\t\t\t) }\n\t\t\t<VStack\n\t\t\t\tspacing={ 0 }\n\t\t\t\talignment=\"flex-start\"\n\t\t\t\tclassName=\"dataviews-view-table__primary-column-content\"\n\t\t\t>\n\t\t\t\t{ titleField && (\n\t\t\t\t\t<ItemClickWrapper\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\t\trenderItemLink={ renderItemLink }\n\t\t\t\t\t\tclassName=\"dataviews-view-table__cell-content-wrapper dataviews-title-field\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ level !== undefined && level > 0 && (\n\t\t\t\t\t\t\t<span className=\"dataviews-view-table__level\">\n\t\t\t\t\t\t\t\t{ '—'.repeat( level ) }&nbsp;\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<titleField.render item={ item } field={ titleField } />\n\t\t\t\t\t</ItemClickWrapper>\n\t\t\t\t) }\n\t\t\t\t{ descriptionField && (\n\t\t\t\t\t<descriptionField.render\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tfield={ descriptionField }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</VStack>\n\t\t</HStack>\n\t);\n}\n\nexport default ColumnPrimary;\n"],"mappings":"AAAA;AACA;AACA;;AAGA;AACA;AACA;AACA,SACCA,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;;AAE9B;AACA;AACA;;AAEA,SAASC,gBAAgB,QAAQ,6BAA6B;AAC9D,SAASC,OAAO,EAAEC,EAAE,QAAQ,iBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE9C,SAASC,aAAaA,CAAU;EAC/BC,IAAI;EACJC,KAAK;EACLC,UAAU;EACVC,UAAU;EACVC,gBAAgB;EAChBC,WAAW;EACXC,cAAc;EACdC;AAcD,CAAC,EAAG;EACH,oBACCT,KAAA,CAACT,MAAM;IAACmB,OAAO,EAAG,CAAG;IAACC,OAAO,EAAC,YAAY;IAAAC,QAAA,GACvCP,UAAU,iBACXP,IAAA,CAACJ,gBAAgB;MAChBQ,IAAI,EAAGA,IAAM;MACbO,eAAe,EAAGA,eAAiB;MACnCF,WAAW,EAAGA,WAAa;MAC3BC,cAAc,EAAGA,cAAgB;MACjCK,SAAS,EAAC,4EAA4E;MACtF,cACCT,UAAU,GACPT,OAAO;MACP;MACAC,EAAE,CAAE,gBAAiB,CAAC,EACtBQ,UAAU,CAACU,QAAQ,GAAI;QAAEZ;MAAK,CAAE,CAChC,CAAC,GACDa,SACH;MAAAH,QAAA,eAEDd,IAAA,CAACO,UAAU,CAACW,MAAM;QACjBd,IAAI,EAAGA,IAAM;QACbe,KAAK,EAAGZ,UAAY;QACpBa,MAAM,EAAG;UAAEC,KAAK,EAAE;QAAO;MAAG,CAC5B;IAAC,CACe,CAClB,eACDnB,KAAA,CAACP,MAAM;MACNiB,OAAO,EAAG,CAAG;MACbU,SAAS,EAAC,YAAY;MACtBP,SAAS,EAAC,8CAA8C;MAAAD,QAAA,GAEtDR,UAAU,iBACXJ,KAAA,CAACN,gBAAgB;QAChBQ,IAAI,EAAGA,IAAM;QACbO,eAAe,EAAGA,eAAiB;QACnCF,WAAW,EAAGA,WAAa;QAC3BC,cAAc,EAAGA,cAAgB;QACjCK,SAAS,EAAC,kEAAkE;QAAAD,QAAA,GAE1ET,KAAK,KAAKY,SAAS,IAAIZ,KAAK,GAAG,CAAC,iBACjCH,KAAA;UAAMa,SAAS,EAAC,6BAA6B;UAAAD,QAAA,GAC1C,GAAG,CAACS,MAAM,CAAElB,KAAM,CAAC,EAAE,MACxB;QAAA,CAAM,CACN,eACDL,IAAA,CAACM,UAAU,CAACY,MAAM;UAACd,IAAI,EAAGA,IAAM;UAACe,KAAK,EAAGb;QAAY,CAAE,CAAC;MAAA,CACvC,CAClB,EACCE,gBAAgB,iBACjBR,IAAA,CAACQ,gBAAgB,CAACU,MAAM;QACvBd,IAAI,EAAGA,IAAM;QACbe,KAAK,EAAGX;MAAkB,CAC1B,CACD;IAAA,CACM,CAAC;EAAA,CACF,CAAC;AAEX;AAEA,eAAeL,aAAa","ignoreList":[]}
@@ -5,7 +5,7 @@ import clsx from 'clsx';
5
5
  /**
6
6
  * WordPress dependencies
7
7
  */
8
- import { __ } from '@wordpress/i18n';
8
+ import { __, sprintf } from '@wordpress/i18n';
9
9
  import { Spinner } from '@wordpress/components';
10
10
  import { useContext, useEffect, useId, useRef, useState } from '@wordpress/element';
11
11
  import { isAppleOS } from '@wordpress/keycodes';
@@ -61,16 +61,21 @@ function TableRow({
61
61
  onClickItem,
62
62
  renderItemLink,
63
63
  onChangeSelection,
64
- isActionsColumnSticky
64
+ isActionsColumnSticky,
65
+ posinset
65
66
  }) {
66
67
  var _view$fields;
68
+ const {
69
+ paginationInfo
70
+ } = useContext(DataViewsContext);
67
71
  const hasPossibleBulkAction = useHasAPossibleBulkAction(actions, item);
68
72
  const isSelected = hasPossibleBulkAction && selection.includes(id);
69
73
  const [isHovered, setIsHovered] = useState(false);
70
74
  const {
71
75
  showTitle = true,
72
76
  showMedia = true,
73
- showDescription = true
77
+ showDescription = true,
78
+ infiniteScrollEnabled
74
79
  } = view;
75
80
  const handleMouseEnter = () => {
76
81
  setIsHovered(true);
@@ -96,6 +101,9 @@ function TableRow({
96
101
  onTouchStart: () => {
97
102
  isTouchDeviceRef.current = true;
98
103
  },
104
+ "aria-setsize": infiniteScrollEnabled ? paginationInfo.totalItems : undefined,
105
+ "aria-posinset": posinset,
106
+ role: infiniteScrollEnabled ? 'article' : undefined,
99
107
  onClick: event => {
100
108
  if (!hasPossibleBulkAction) {
101
109
  return;
@@ -193,7 +201,8 @@ function ViewTable({
193
201
  isItemClickable,
194
202
  renderItemLink,
195
203
  view,
196
- className
204
+ className,
205
+ empty
197
206
  }) {
198
207
  var _view$fields2;
199
208
  const {
@@ -232,6 +241,21 @@ function ViewTable({
232
241
  const titleField = fields.find(field => field.id === view.titleField);
233
242
  const mediaField = fields.find(field => field.id === view.mediaField);
234
243
  const descriptionField = fields.find(field => field.id === view.descriptionField);
244
+
245
+ // Get group field if groupByField is specified
246
+ const groupField = view.groupByField ? fields.find(f => f.id === view.groupByField) : null;
247
+
248
+ // Group data by groupByField if specified
249
+ const dataByGroup = groupField ? data.reduce((groups, item) => {
250
+ const groupName = groupField.getValue({
251
+ item
252
+ });
253
+ if (!groups.has(groupName)) {
254
+ groups.set(groupName, []);
255
+ }
256
+ groups.get(groupName)?.push(item);
257
+ return groups;
258
+ }, new Map()) : null;
235
259
  const {
236
260
  showTitle = true,
237
261
  showMedia = true,
@@ -249,6 +273,7 @@ function ViewTable({
249
273
  headerMenuRefs.current.delete(column);
250
274
  }
251
275
  };
276
+ const isInfiniteScroll = view.infiniteScrollEnabled && !dataByGroup;
252
277
  return /*#__PURE__*/_jsxs(_Fragment, {
253
278
  children: [/*#__PURE__*/_jsxs("table", {
254
279
  className: clsx('dataviews-view-table', className, {
@@ -256,6 +281,7 @@ function ViewTable({
256
281
  }),
257
282
  "aria-busy": isLoading,
258
283
  "aria-describedby": tableNoticeId,
284
+ role: isInfiniteScroll ? 'feed' : undefined,
259
285
  children: [/*#__PURE__*/_jsx("thead", {
260
286
  children: /*#__PURE__*/_jsxs("tr", {
261
287
  className: "dataviews-view-table__row",
@@ -282,7 +308,7 @@ function ViewTable({
282
308
  canMove: false
283
309
  })
284
310
  }), columns.map((column, index) => {
285
- var _view$layout$styles$c2;
311
+ var _view$layout$styles$c2, _view$layout$enableMo;
286
312
  // Explicit picks the supported styles.
287
313
  const {
288
314
  width,
@@ -306,7 +332,8 @@ function ViewTable({
306
332
  fields: fields,
307
333
  onChangeView: onChangeView,
308
334
  onHide: onHide,
309
- setOpenedFilter: setOpenedFilter
335
+ setOpenedFilter: setOpenedFilter,
336
+ canMove: (_view$layout$enableMo = view.layout?.enableMoving) !== null && _view$layout$enableMo !== void 0 ? _view$layout$enableMo : true
310
337
  })
311
338
  }, column);
312
339
  }), !!actions?.length && /*#__PURE__*/_jsx("th", {
@@ -320,8 +347,17 @@ function ViewTable({
320
347
  })
321
348
  })]
322
349
  })
323
- }), /*#__PURE__*/_jsx("tbody", {
324
- children: hasData && data.map((item, index) => /*#__PURE__*/_jsx(TableRow, {
350
+ }), hasData && groupField && dataByGroup ? Array.from(dataByGroup.entries()).map(([groupName, groupItems]) => /*#__PURE__*/_jsxs("tbody", {
351
+ children: [/*#__PURE__*/_jsx("tr", {
352
+ className: "dataviews-view-table__group-header-row",
353
+ children: /*#__PURE__*/_jsx("td", {
354
+ colSpan: columns.length + (hasPrimaryColumn ? 1 : 0) + (hasBulkActions ? 1 : 0) + (actions?.length ? 1 : 0),
355
+ className: "dataviews-view-table__group-header-cell",
356
+ children: sprintf(
357
+ // translators: 1: The label of the field e.g. "Date". 2: The value of the field, e.g.: "May 2022".
358
+ __('%1$s: %2$s'), groupField.label, groupName)
359
+ })
360
+ }), groupItems.map((item, index) => /*#__PURE__*/_jsx(TableRow, {
325
361
  item: item,
326
362
  level: view.showLevels && typeof getItemLevel === 'function' ? getItemLevel(item) : undefined,
327
363
  hasBulkActions: hasBulkActions,
@@ -339,17 +375,41 @@ function ViewTable({
339
375
  renderItemLink: renderItemLink,
340
376
  isItemClickable: isItemClickable,
341
377
  isActionsColumnSticky: !isHorizontalScrollEnd
378
+ }, getItemId(item)))]
379
+ }, `group-${groupName}`)) : /*#__PURE__*/_jsx("tbody", {
380
+ children: hasData && data.map((item, index) => /*#__PURE__*/_jsx(TableRow, {
381
+ item: item,
382
+ level: view.showLevels && typeof getItemLevel === 'function' ? getItemLevel(item) : undefined,
383
+ hasBulkActions: hasBulkActions,
384
+ actions: actions,
385
+ fields: fields,
386
+ id: getItemId(item) || index.toString(),
387
+ view: view,
388
+ titleField: titleField,
389
+ mediaField: mediaField,
390
+ descriptionField: descriptionField,
391
+ selection: selection,
392
+ getItemId: getItemId,
393
+ onChangeSelection: onChangeSelection,
394
+ onClickItem: onClickItem,
395
+ renderItemLink: renderItemLink,
396
+ isItemClickable: isItemClickable,
397
+ isActionsColumnSticky: !isHorizontalScrollEnd,
398
+ posinset: isInfiniteScroll ? index + 1 : undefined
342
399
  }, getItemId(item)))
343
400
  })]
344
- }), /*#__PURE__*/_jsx("div", {
401
+ }), /*#__PURE__*/_jsxs("div", {
345
402
  className: clsx({
346
403
  'dataviews-loading': isLoading,
347
404
  'dataviews-no-results': !hasData && !isLoading
348
405
  }),
349
406
  id: tableNoticeId,
350
- children: !hasData && /*#__PURE__*/_jsx("p", {
351
- children: isLoading ? /*#__PURE__*/_jsx(Spinner, {}) : __('No results')
352
- })
407
+ children: [!hasData && /*#__PURE__*/_jsx("p", {
408
+ children: isLoading ? /*#__PURE__*/_jsx(Spinner, {}) : empty
409
+ }), hasData && isLoading && /*#__PURE__*/_jsx("p", {
410
+ className: "dataviews-loading-more",
411
+ children: /*#__PURE__*/_jsx(Spinner, {})
412
+ })]
353
413
  })]
354
414
  });
355
415
  }