@wordpress/dataviews 5.0.0 → 6.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 (250) hide show
  1. package/CHANGELOG.md +31 -1
  2. package/README.md +55 -27
  3. package/build/components/dataviews/index.js +13 -4
  4. package/build/components/dataviews/index.js.map +1 -1
  5. package/build/components/dataviews-context/index.js +3 -1
  6. package/build/components/dataviews-context/index.js.map +1 -1
  7. package/build/components/dataviews-filters/filter.js +15 -8
  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/input-widget.js +7 -1
  12. package/build/components/dataviews-filters/input-widget.js.map +1 -1
  13. package/build/components/dataviews-filters/reset-filters.js +2 -2
  14. package/build/components/dataviews-filters/reset-filters.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-view-config/index.js +4 -3
  18. package/build/components/dataviews-view-config/index.js.map +1 -1
  19. package/build/dataform-controls/boolean.js +15 -1
  20. package/build/dataform-controls/boolean.js.map +1 -1
  21. package/build/dataform-controls/date.js +385 -0
  22. package/build/dataform-controls/date.js.map +1 -0
  23. package/build/dataform-controls/datetime.js +5 -84
  24. package/build/dataform-controls/datetime.js.map +1 -1
  25. package/build/dataform-controls/email.js +15 -1
  26. package/build/dataform-controls/email.js.map +1 -1
  27. package/build/dataform-controls/index.js +2 -0
  28. package/build/dataform-controls/index.js.map +1 -1
  29. package/build/dataform-controls/integer.js +23 -4
  30. package/build/dataform-controls/integer.js.map +1 -1
  31. package/build/dataform-controls/relative-date-control.js +109 -0
  32. package/build/dataform-controls/relative-date-control.js.map +1 -0
  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 +15 -1
  36. package/build/dataform-controls/text.js.map +1 -1
  37. package/build/dataviews-layouts/grid/index.js +40 -23
  38. package/build/dataviews-layouts/grid/index.js.map +1 -1
  39. package/build/dataviews-layouts/grid/preview-size-picker.js +39 -85
  40. package/build/dataviews-layouts/grid/preview-size-picker.js.map +1 -1
  41. package/build/dataviews-layouts/list/index.js +7 -3
  42. package/build/dataviews-layouts/list/index.js.map +1 -1
  43. package/build/dataviews-layouts/table/column-primary.js +18 -3
  44. package/build/dataviews-layouts/table/column-primary.js.map +1 -1
  45. package/build/dataviews-layouts/table/index.js +57 -5
  46. package/build/dataviews-layouts/table/index.js.map +1 -1
  47. package/build/field-types/array.js +27 -18
  48. package/build/field-types/array.js.map +1 -1
  49. package/build/field-types/boolean.js +11 -7
  50. package/build/field-types/boolean.js.map +1 -1
  51. package/build/field-types/date.js +21 -12
  52. package/build/field-types/date.js.map +1 -1
  53. package/build/field-types/datetime.js +19 -10
  54. package/build/field-types/datetime.js.map +1 -1
  55. package/build/field-types/email.js +22 -18
  56. package/build/field-types/email.js.map +1 -1
  57. package/build/field-types/index.js +16 -6
  58. package/build/field-types/index.js.map +1 -1
  59. package/build/field-types/integer.js +22 -17
  60. package/build/field-types/integer.js.map +1 -1
  61. package/build/field-types/media.js +19 -10
  62. package/build/field-types/media.js.map +1 -1
  63. package/build/field-types/text.js +19 -10
  64. package/build/field-types/text.js.map +1 -1
  65. package/build/filter-and-sort-data-view.js +6 -4
  66. package/build/filter-and-sort-data-view.js.map +1 -1
  67. package/build/normalize-fields.js +4 -5
  68. package/build/normalize-fields.js.map +1 -1
  69. package/build/types.js.map +1 -1
  70. package/build/validation.js +15 -2
  71. package/build/validation.js.map +1 -1
  72. package/build-module/components/dataviews/index.js +15 -6
  73. package/build-module/components/dataviews/index.js.map +1 -1
  74. package/build-module/components/dataviews-context/index.js +3 -1
  75. package/build-module/components/dataviews-context/index.js.map +1 -1
  76. package/build-module/components/dataviews-filters/filter.js +15 -8
  77. package/build-module/components/dataviews-filters/filter.js.map +1 -1
  78. package/build-module/components/dataviews-filters/index.js +16 -5
  79. package/build-module/components/dataviews-filters/index.js.map +1 -1
  80. package/build-module/components/dataviews-filters/input-widget.js +7 -1
  81. package/build-module/components/dataviews-filters/input-widget.js.map +1 -1
  82. package/build-module/components/dataviews-filters/reset-filters.js +2 -2
  83. package/build-module/components/dataviews-filters/reset-filters.js.map +1 -1
  84. package/build-module/components/dataviews-layout/index.js +5 -2
  85. package/build-module/components/dataviews-layout/index.js.map +1 -1
  86. package/build-module/components/dataviews-view-config/index.js +4 -3
  87. package/build-module/components/dataviews-view-config/index.js.map +1 -1
  88. package/build-module/dataform-controls/boolean.js +17 -2
  89. package/build-module/dataform-controls/boolean.js.map +1 -1
  90. package/build-module/dataform-controls/date.js +376 -0
  91. package/build-module/dataform-controls/date.js.map +1 -0
  92. package/build-module/dataform-controls/datetime.js +3 -84
  93. package/build-module/dataform-controls/datetime.js.map +1 -1
  94. package/build-module/dataform-controls/email.js +17 -2
  95. package/build-module/dataform-controls/email.js.map +1 -1
  96. package/build-module/dataform-controls/index.js +2 -0
  97. package/build-module/dataform-controls/index.js.map +1 -1
  98. package/build-module/dataform-controls/integer.js +24 -5
  99. package/build-module/dataform-controls/integer.js.map +1 -1
  100. package/build-module/dataform-controls/relative-date-control.js +100 -0
  101. package/build-module/dataform-controls/relative-date-control.js.map +1 -0
  102. package/build-module/dataform-controls/select.js +12 -5
  103. package/build-module/dataform-controls/select.js.map +1 -1
  104. package/build-module/dataform-controls/text.js +17 -2
  105. package/build-module/dataform-controls/text.js.map +1 -1
  106. package/build-module/dataviews-layouts/grid/index.js +41 -24
  107. package/build-module/dataviews-layouts/grid/index.js.map +1 -1
  108. package/build-module/dataviews-layouts/grid/preview-size-picker.js +40 -85
  109. package/build-module/dataviews-layouts/grid/preview-size-picker.js.map +1 -1
  110. package/build-module/dataviews-layouts/list/index.js +7 -3
  111. package/build-module/dataviews-layouts/list/index.js.map +1 -1
  112. package/build-module/dataviews-layouts/table/column-primary.js +18 -3
  113. package/build-module/dataviews-layouts/table/column-primary.js.map +1 -1
  114. package/build-module/dataviews-layouts/table/index.js +58 -6
  115. package/build-module/dataviews-layouts/table/index.js.map +1 -1
  116. package/build-module/field-types/array.js +27 -18
  117. package/build-module/field-types/array.js.map +1 -1
  118. package/build-module/field-types/boolean.js +11 -7
  119. package/build-module/field-types/boolean.js.map +1 -1
  120. package/build-module/field-types/date.js +21 -12
  121. package/build-module/field-types/date.js.map +1 -1
  122. package/build-module/field-types/datetime.js +19 -10
  123. package/build-module/field-types/datetime.js.map +1 -1
  124. package/build-module/field-types/email.js +22 -18
  125. package/build-module/field-types/email.js.map +1 -1
  126. package/build-module/field-types/index.js +16 -6
  127. package/build-module/field-types/index.js.map +1 -1
  128. package/build-module/field-types/integer.js +22 -17
  129. package/build-module/field-types/integer.js.map +1 -1
  130. package/build-module/field-types/media.js +19 -10
  131. package/build-module/field-types/media.js.map +1 -1
  132. package/build-module/field-types/text.js +19 -10
  133. package/build-module/field-types/text.js.map +1 -1
  134. package/build-module/filter-and-sort-data-view.js +6 -4
  135. package/build-module/filter-and-sort-data-view.js.map +1 -1
  136. package/build-module/normalize-fields.js +4 -5
  137. package/build-module/normalize-fields.js.map +1 -1
  138. package/build-module/types.js.map +1 -1
  139. package/build-module/validation.js +15 -2
  140. package/build-module/validation.js.map +1 -1
  141. package/build-style/style-rtl.css +78 -43
  142. package/build-style/style.css +78 -43
  143. package/build-types/components/dataform/stories/index.story.d.ts +21 -0
  144. package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
  145. package/build-types/components/dataviews/index.d.ts +3 -2
  146. package/build-types/components/dataviews/index.d.ts.map +1 -1
  147. package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
  148. package/build-types/components/dataviews/stories/index.story.d.ts +16 -3
  149. package/build-types/components/dataviews/stories/index.story.d.ts.map +1 -1
  150. package/build-types/components/dataviews-context/index.d.ts +4 -2
  151. package/build-types/components/dataviews-context/index.d.ts.map +1 -1
  152. package/build-types/components/dataviews-filters/filter.d.ts.map +1 -1
  153. package/build-types/components/dataviews-filters/index.d.ts.map +1 -1
  154. package/build-types/components/dataviews-filters/input-widget.d.ts.map +1 -1
  155. package/build-types/components/dataviews-filters/reset-filters.d.ts.map +1 -1
  156. package/build-types/components/dataviews-layout/index.d.ts.map +1 -1
  157. package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
  158. package/build-types/constants.d.ts +2 -2
  159. package/build-types/dataform-controls/boolean.d.ts.map +1 -1
  160. package/build-types/dataform-controls/date.d.ts +3 -0
  161. package/build-types/dataform-controls/date.d.ts.map +1 -0
  162. package/build-types/dataform-controls/datetime.d.ts.map +1 -1
  163. package/build-types/dataform-controls/email.d.ts.map +1 -1
  164. package/build-types/dataform-controls/index.d.ts.map +1 -1
  165. package/build-types/dataform-controls/integer.d.ts.map +1 -1
  166. package/build-types/dataform-controls/relative-date-control.d.ts +46 -0
  167. package/build-types/dataform-controls/relative-date-control.d.ts.map +1 -0
  168. package/build-types/dataform-controls/select.d.ts.map +1 -1
  169. package/build-types/dataform-controls/text.d.ts.map +1 -1
  170. package/build-types/dataviews-layouts/grid/index.d.ts +1 -1
  171. package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
  172. package/build-types/dataviews-layouts/grid/preview-size-picker.d.ts +0 -1
  173. package/build-types/dataviews-layouts/grid/preview-size-picker.d.ts.map +1 -1
  174. package/build-types/dataviews-layouts/index.d.ts +3 -3
  175. package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
  176. package/build-types/dataviews-layouts/table/column-primary.d.ts.map +1 -1
  177. package/build-types/dataviews-layouts/table/index.d.ts +1 -1
  178. package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
  179. package/build-types/field-types/array.d.ts.map +1 -1
  180. package/build-types/field-types/boolean.d.ts +5 -4
  181. package/build-types/field-types/boolean.d.ts.map +1 -1
  182. package/build-types/field-types/date.d.ts +9 -5
  183. package/build-types/field-types/date.d.ts.map +1 -1
  184. package/build-types/field-types/datetime.d.ts +4 -3
  185. package/build-types/field-types/datetime.d.ts.map +1 -1
  186. package/build-types/field-types/email.d.ts +4 -3
  187. package/build-types/field-types/email.d.ts.map +1 -1
  188. package/build-types/field-types/index.d.ts.map +1 -1
  189. package/build-types/field-types/integer.d.ts +4 -3
  190. package/build-types/field-types/integer.d.ts.map +1 -1
  191. package/build-types/field-types/media.d.ts +4 -3
  192. package/build-types/field-types/media.d.ts.map +1 -1
  193. package/build-types/field-types/text.d.ts +4 -3
  194. package/build-types/field-types/text.d.ts.map +1 -1
  195. package/build-types/filter-and-sort-data-view.d.ts.map +1 -1
  196. package/build-types/normalize-fields.d.ts.map +1 -1
  197. package/build-types/types.d.ts +20 -7
  198. package/build-types/types.d.ts.map +1 -1
  199. package/build-types/validation.d.ts.map +1 -1
  200. package/build-wp/index.js +1561 -670
  201. package/package.json +15 -14
  202. package/src/components/dataform/stories/index.story.tsx +229 -2
  203. package/src/components/dataviews/index.tsx +30 -10
  204. package/src/components/dataviews/stories/fixtures.tsx +3 -1
  205. package/src/components/dataviews/stories/index.story.tsx +49 -29
  206. package/src/components/dataviews/stories/style.css +6 -0
  207. package/src/components/dataviews-context/index.ts +8 -2
  208. package/src/components/dataviews-filters/filter.tsx +17 -7
  209. package/src/components/dataviews-filters/index.tsx +17 -2
  210. package/src/components/dataviews-filters/input-widget.tsx +7 -1
  211. package/src/components/dataviews-filters/reset-filters.tsx +4 -2
  212. package/src/components/dataviews-filters/style.scss +8 -2
  213. package/src/components/dataviews-layout/index.tsx +3 -0
  214. package/src/components/dataviews-view-config/index.tsx +5 -3
  215. package/src/dataform-controls/boolean.tsx +19 -2
  216. package/src/dataform-controls/date.tsx +499 -0
  217. package/src/dataform-controls/datetime.tsx +5 -91
  218. package/src/dataform-controls/email.tsx +19 -2
  219. package/src/dataform-controls/index.tsx +2 -0
  220. package/src/dataform-controls/integer.tsx +30 -4
  221. package/src/dataform-controls/relative-date-control.tsx +106 -0
  222. package/src/dataform-controls/select.tsx +23 -13
  223. package/src/dataform-controls/style.scss +19 -2
  224. package/src/dataform-controls/text.tsx +19 -2
  225. package/src/dataviews-layouts/grid/index.tsx +46 -24
  226. package/src/dataviews-layouts/grid/preview-size-picker.tsx +48 -73
  227. package/src/dataviews-layouts/grid/style.scss +15 -28
  228. package/src/dataviews-layouts/list/index.tsx +7 -4
  229. package/src/dataviews-layouts/list/style.scss +3 -3
  230. package/src/dataviews-layouts/table/column-primary.tsx +29 -5
  231. package/src/dataviews-layouts/table/index.tsx +134 -42
  232. package/src/dataviews-layouts/table/style.scss +45 -1
  233. package/src/field-types/array.tsx +33 -21
  234. package/src/field-types/boolean.tsx +15 -9
  235. package/src/field-types/date.ts +51 -15
  236. package/src/field-types/datetime.tsx +19 -13
  237. package/src/field-types/email.tsx +26 -21
  238. package/src/field-types/index.tsx +18 -8
  239. package/src/field-types/integer.tsx +26 -22
  240. package/src/field-types/media.tsx +19 -13
  241. package/src/field-types/text.tsx +19 -13
  242. package/src/filter-and-sort-data-view.ts +11 -4
  243. package/src/normalize-fields.ts +4 -8
  244. package/src/test/dataviews.tsx +129 -0
  245. package/src/test/filter-and-sort-data-view.js +52 -2
  246. package/src/test/validation.ts +4 -15
  247. package/src/types.ts +28 -8
  248. package/src/validation.ts +30 -1
  249. package/tsconfig.json +1 -0
  250. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_compose","_lockUnlock","_dataviewsItemActions","_dataviewsSelectionCheckbox","_dataviewsBulkActions","_itemClickWrapper","_previewSizePicker","_jsxRuntime","Badge","unlock","componentsPrivateApis","GridItem","view","selection","onChangeSelection","onClickItem","isItemClickable","renderItemLink","getItemId","item","actions","mediaField","titleField","descriptionField","regularFields","badgeFields","hasBulkActions","showTitle","showMedia","showDescription","hasBulkAction","useHasAPossibleBulkAction","id","instanceId","useInstanceId","isSelected","includes","renderedMediaField","render","jsx","field","renderedTitleField","mediaA11yProps","titleA11yProps","__","jsxs","__experimentalVStack","spacing","className","clsx","onClickCapture","event","ctrlKey","metaKey","stopPropagation","preventDefault","filter","itemId","children","ItemClickWrapper","default","disabled","__experimentalHStack","justify","length","isCompact","wrap","alignment","map","Flex","gap","expanded","style","height","direction","Fragment","FlexItem","header","maxHeight","ViewGrid","data","fields","isLoading","_view$fields","find","otherFields","reduce","accumulator","fieldId","f","key","layout","push","hasData","updatedPreviewSize","useUpdatedPreviewSizeOnViewportChange","useSomeItemHasAPossibleBulkAction","usedPreviewSize","previewSize","gridStyle","gridTemplateColumns","groupField","groupByField","dataByGroup","groups","groupName","getValue","has","set","get","Map","Array","from","entries","groupItems","sprintf","label","__experimentalGrid","columns","Spinner","_default","exports"],"sources":["@wordpress/dataviews/src/dataviews-layouts/grid/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { ComponentProps, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tSpinner,\n\tFlex,\n\tFlexItem,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport ItemActions from '../../components/dataviews-item-actions';\nimport DataViewsSelectionCheckbox from '../../components/dataviews-selection-checkbox';\nimport {\n\tuseHasAPossibleBulkAction,\n\tuseSomeItemHasAPossibleBulkAction,\n} from '../../components/dataviews-bulk-actions';\nimport type {\n\tAction,\n\tNormalizedField,\n\tViewGrid as ViewGridType,\n\tViewGridProps,\n} from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport { ItemClickWrapper } from '../utils/item-click-wrapper';\nimport { useUpdatedPreviewSizeOnViewportChange } from './preview-size-picker';\nconst { Badge } = unlock( componentsPrivateApis );\n\ninterface GridItemProps< Item > {\n\tview: ViewGridType;\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tgetItemId: ( item: Item ) => string;\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\titem: Item;\n\tactions: Action< Item >[];\n\ttitleField?: NormalizedField< Item >;\n\tmediaField?: NormalizedField< Item >;\n\tdescriptionField?: NormalizedField< Item >;\n\tregularFields: NormalizedField< Item >[];\n\tbadgeFields: NormalizedField< Item >[];\n\thasBulkActions: boolean;\n}\n\nfunction GridItem< Item >( {\n\tview,\n\tselection,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable,\n\trenderItemLink,\n\tgetItemId,\n\titem,\n\tactions,\n\tmediaField,\n\ttitleField,\n\tdescriptionField,\n\tregularFields,\n\tbadgeFields,\n\thasBulkActions,\n}: GridItemProps< Item > ) {\n\tconst { showTitle = true, showMedia = true, showDescription = true } = view;\n\tconst hasBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst id = getItemId( item );\n\tconst instanceId = useInstanceId( GridItem );\n\tconst isSelected = selection.includes( id );\n\tconst renderedMediaField = mediaField?.render ? (\n\t\t<mediaField.render item={ item } field={ mediaField } />\n\t) : null;\n\tconst renderedTitleField =\n\t\tshowTitle && titleField?.render ? (\n\t\t\t<titleField.render item={ item } field={ titleField } />\n\t\t) : null;\n\n\tlet mediaA11yProps;\n\tlet titleA11yProps;\n\tif ( isItemClickable( item ) && onClickItem ) {\n\t\tif ( renderedTitleField ) {\n\t\t\tmediaA11yProps = {\n\t\t\t\t'aria-labelledby': `dataviews-view-grid__title-field-${ instanceId }`,\n\t\t\t};\n\t\t\ttitleA11yProps = {\n\t\t\t\tid: `dataviews-view-grid__title-field-${ instanceId }`,\n\t\t\t};\n\t\t} else {\n\t\t\tmediaA11yProps = {\n\t\t\t\t'aria-label': __( 'Navigate to item' ),\n\t\t\t};\n\t\t}\n\t}\n\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 0 }\n\t\t\tkey={ id }\n\t\t\tclassName={ clsx( 'dataviews-view-grid__card', {\n\t\t\t\t'is-selected': hasBulkAction && isSelected,\n\t\t\t} ) }\n\t\t\tonClickCapture={ ( event ) => {\n\t\t\t\tif ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif ( ! hasBulkAction ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t\t? selection.filter( ( itemId ) => id !== itemId )\n\t\t\t\t\t\t\t: [ ...selection, id ]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t{ showMedia && renderedMediaField && (\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-grid__media\"\n\t\t\t\t\t{ ...mediaA11yProps }\n\t\t\t\t>\n\t\t\t\t\t{ renderedMediaField }\n\t\t\t\t</ItemClickWrapper>\n\t\t\t) }\n\t\t\t{ hasBulkActions && showMedia && renderedMediaField && (\n\t\t\t\t<DataViewsSelectionCheckbox\n\t\t\t\t\titem={ item }\n\t\t\t\t\tselection={ selection }\n\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\tdisabled={ ! hasBulkAction }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<HStack\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews-view-grid__title-actions\"\n\t\t\t>\n\t\t\t\t<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-grid__title-field dataviews-title-field\"\n\t\t\t\t\t{ ...titleA11yProps }\n\t\t\t\t>\n\t\t\t\t\t{ renderedTitleField }\n\t\t\t\t</ItemClickWrapper>\n\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t<ItemActions item={ item } actions={ actions } isCompact />\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t{ showDescription && descriptionField?.render && (\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\t{ !! badgeFields?.length && (\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tclassName=\"dataviews-view-grid__badge-fields\"\n\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t\twrap\n\t\t\t\t\t\talignment=\"top\"\n\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ badgeFields.map( ( field ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<field.render\n\t\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</HStack>\n\t\t\t\t) }\n\t\t\t\t{ !! regularFields?.length && (\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"dataviews-view-grid__fields\"\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ regularFields.map( ( field ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field\"\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tgap={ 1 }\n\t\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\t\texpanded\n\t\t\t\t\t\t\t\t\tstyle={ { height: 'auto' } }\n\t\t\t\t\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<FlexItem className=\"dataviews-view-grid__field-name\">\n\t\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={ { maxHeight: 'none' } }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<field.render\n\t\t\t\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</VStack>\n\t\t\t\t) }\n\t\t\t</VStack>\n\t\t</VStack>\n\t);\n}\n\nfunction ViewGrid< Item >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable,\n\trenderItemLink,\n\tselection,\n\tview,\n\tclassName,\n}: ViewGridProps< Item > ) {\n\tconst titleField = fields.find(\n\t\t( field ) => field.id === view?.titleField\n\t);\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view?.mediaField\n\t);\n\tconst descriptionField = fields.find(\n\t\t( field ) => field.id === view?.descriptionField\n\t);\n\tconst otherFields = view.fields ?? [];\n\tconst { regularFields, badgeFields } = otherFields.reduce(\n\t\t(\n\t\t\taccumulator: Record< string, NormalizedField< Item >[] >,\n\t\t\tfieldId\n\t\t) => {\n\t\t\tconst field = fields.find( ( f ) => f.id === fieldId );\n\t\t\tif ( ! field ) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\t\t\t// If the field is a badge field, add it to the badgeFields array\n\t\t\t// otherwise add it to the rest visibleFields array.\n\t\t\tconst key = view.layout?.badgeFields?.includes( fieldId )\n\t\t\t\t? 'badgeFields'\n\t\t\t\t: 'regularFields';\n\t\t\taccumulator[ key ].push( field );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ regularFields: [], badgeFields: [] }\n\t);\n\tconst hasData = !! data?.length;\n\tconst updatedPreviewSize = useUpdatedPreviewSizeOnViewportChange();\n\tconst hasBulkActions = useSomeItemHasAPossibleBulkAction( actions, data );\n\tconst usedPreviewSize = updatedPreviewSize || view.layout?.previewSize;\n\tconst gridStyle = usedPreviewSize\n\t\t? {\n\t\t\t\tgridTemplateColumns: `repeat(${ usedPreviewSize }, minmax(0, 1fr))`,\n\t\t }\n\t\t: {};\n\n\tconst groupField = view.groupByField\n\t\t? fields.find( ( f ) => f.id === view.groupByField )\n\t\t: null;\n\n\t// Group data by groupByField if specified\n\tconst dataByGroup = groupField\n\t\t? data.reduce( ( groups: Map< string, typeof data >, item ) => {\n\t\t\t\tconst groupName = groupField.getValue( { item } );\n\t\t\t\tif ( ! groups.has( groupName ) ) {\n\t\t\t\t\tgroups.set( groupName, [] );\n\t\t\t\t}\n\t\t\t\tgroups.get( groupName )?.push( item );\n\t\t\t\treturn groups;\n\t\t }, new Map< string, typeof data >() )\n\t\t: null;\n\n\treturn (\n\t\t<>\n\t\t\t{\n\t\t\t\t// Render multiple groups.\n\t\t\t\thasData && groupField && dataByGroup && (\n\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t{ Array.from( dataByGroup.entries() ).map(\n\t\t\t\t\t\t\t( [ groupName, groupItems ] ) => (\n\t\t\t\t\t\t\t\t<VStack key={ groupName } spacing={ 2 }>\n\t\t\t\t\t\t\t\t\t<h3 className=\"dataviews-view-grid__group-header\">\n\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t\t// translators: 1: The label of the field e.g. \"Date\". 2: The value of the field, e.g.: \"May 2022\".\n\t\t\t\t\t\t\t\t\t\t\t__( '%1$s: %2$s' ),\n\t\t\t\t\t\t\t\t\t\t\tgroupField.label,\n\t\t\t\t\t\t\t\t\t\t\tgroupName\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\t\t\tgap={ 8 }\n\t\t\t\t\t\t\t\t\t\tcolumns={ 2 }\n\t\t\t\t\t\t\t\t\t\talignment=\"top\"\n\t\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t\t'dataviews-view-grid',\n\t\t\t\t\t\t\t\t\t\t\tclassName\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tstyle={ gridStyle }\n\t\t\t\t\t\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ groupItems.map( ( item ) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeSelection={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeSelection\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\tonClickItem={ onClickItem }\n\t\t\t\t\t\t\t\t\t\t\t\t\tisItemClickable={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisItemClickable\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\trenderItemLink={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trenderItemLink\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\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\t\t\t\t\t\t\tdescriptionField={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdescriptionField\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\tregularFields={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tregularFields\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\tbadgeFields={ badgeFields }\n\t\t\t\t\t\t\t\t\t\t\t\t\thasBulkActions={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thasBulkActions\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t)\n\t\t\t}\n\n\t\t\t{\n\t\t\t\t// Render a single grid with all data.\n\t\t\t\thasData && ! dataByGroup && (\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tgap={ 8 }\n\t\t\t\t\t\tcolumns={ 2 }\n\t\t\t\t\t\talignment=\"top\"\n\t\t\t\t\t\tclassName={ clsx( 'dataviews-view-grid', className ) }\n\t\t\t\t\t\tstyle={ gridStyle }\n\t\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ data.map( ( item ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\t\t\t\t\trenderItemLink={ renderItemLink }\n\t\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\t\t\tdescriptionField={ descriptionField }\n\t\t\t\t\t\t\t\t\tregularFields={ regularFields }\n\t\t\t\t\t\t\t\t\tbadgeFields={ badgeFields }\n\t\t\t\t\t\t\t\t\thasBulkActions={ hasBulkActions }\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</Grid>\n\t\t\t\t)\n\t\t\t}\n\t\t\t{\n\t\t\t\t// Render empty state.\n\t\t\t\t! hasData && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t\t\t'dataviews-no-results': ! isLoading,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t\t</div>\n\t\t\t\t)\n\t\t\t}\n\t\t</>\n\t);\n}\n\nexport default ViewGrid;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_compose","_keycodes","_element","_lockUnlock","_dataviewsItemActions","_dataviewsSelectionCheckbox","_dataviewsContext","_dataviewsBulkActions","_itemClickWrapper","_jsxRuntime","Badge","unlock","componentsPrivateApis","GridItem","view","selection","onChangeSelection","onClickItem","isItemClickable","renderItemLink","getItemId","item","actions","mediaField","titleField","descriptionField","regularFields","badgeFields","hasBulkActions","config","showTitle","showMedia","showDescription","hasBulkAction","useHasAPossibleBulkAction","id","instanceId","useInstanceId","isSelected","includes","renderedMediaField","render","jsx","field","renderedTitleField","mediaA11yProps","titleA11yProps","__","jsxs","__experimentalVStack","spacing","className","clsx","onClickCapture","event","isAppleOS","metaKey","ctrlKey","stopPropagation","preventDefault","filter","itemId","children","ItemClickWrapper","default","disabled","__experimentalHStack","justify","length","isCompact","wrap","alignment","map","Flex","gap","expanded","style","height","direction","Fragment","FlexItem","header","maxHeight","ViewGrid","data","fields","isLoading","empty","_view$fields","resizeObserverRef","useContext","DataViewsContext","find","otherFields","reduce","accumulator","fieldId","f","key","layout","push","hasData","useSomeItemHasAPossibleBulkAction","usedPreviewSize","previewSize","size","groupField","groupByField","dataByGroup","groups","groupName","getValue","has","set","get","Map","Array","from","entries","groupItems","sprintf","label","gridTemplateColumns","ref","sizes","Spinner","_default","exports"],"sources":["@wordpress/dataviews/src/dataviews-layouts/grid/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { ComponentProps, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tSpinner,\n\tFlex,\n\tFlexItem,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\nimport { isAppleOS } from '@wordpress/keycodes';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport ItemActions from '../../components/dataviews-item-actions';\nimport DataViewsSelectionCheckbox from '../../components/dataviews-selection-checkbox';\nimport DataViewsContext from '../../components/dataviews-context';\nimport {\n\tuseHasAPossibleBulkAction,\n\tuseSomeItemHasAPossibleBulkAction,\n} from '../../components/dataviews-bulk-actions';\nimport type {\n\tAction,\n\tNormalizedField,\n\tViewGrid as ViewGridType,\n\tViewGridProps,\n} from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport { ItemClickWrapper } from '../utils/item-click-wrapper';\nconst { Badge } = unlock( componentsPrivateApis );\n\ninterface GridItemProps< Item > {\n\tview: ViewGridType;\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tgetItemId: ( item: Item ) => string;\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\titem: Item;\n\tactions: Action< Item >[];\n\ttitleField?: NormalizedField< Item >;\n\tmediaField?: NormalizedField< Item >;\n\tdescriptionField?: NormalizedField< Item >;\n\tregularFields: NormalizedField< Item >[];\n\tbadgeFields: NormalizedField< Item >[];\n\thasBulkActions: boolean;\n\tconfig: {\n\t\tsizes: string;\n\t};\n}\n\nfunction GridItem< Item >( {\n\tview,\n\tselection,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable,\n\trenderItemLink,\n\tgetItemId,\n\titem,\n\tactions,\n\tmediaField,\n\ttitleField,\n\tdescriptionField,\n\tregularFields,\n\tbadgeFields,\n\thasBulkActions,\n\tconfig,\n}: GridItemProps< Item > ) {\n\tconst { showTitle = true, showMedia = true, showDescription = true } = view;\n\tconst hasBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst id = getItemId( item );\n\tconst instanceId = useInstanceId( GridItem );\n\tconst isSelected = selection.includes( id );\n\tconst renderedMediaField = mediaField?.render ? (\n\t\t<mediaField.render\n\t\t\titem={ item }\n\t\t\tfield={ mediaField }\n\t\t\tconfig={ config }\n\t\t/>\n\t) : null;\n\tconst renderedTitleField =\n\t\tshowTitle && titleField?.render ? (\n\t\t\t<titleField.render item={ item } field={ titleField } />\n\t\t) : null;\n\n\tlet mediaA11yProps;\n\tlet titleA11yProps;\n\tif ( isItemClickable( item ) && onClickItem ) {\n\t\tif ( renderedTitleField ) {\n\t\t\tmediaA11yProps = {\n\t\t\t\t'aria-labelledby': `dataviews-view-grid__title-field-${ instanceId }`,\n\t\t\t};\n\t\t\ttitleA11yProps = {\n\t\t\t\tid: `dataviews-view-grid__title-field-${ instanceId }`,\n\t\t\t};\n\t\t} else {\n\t\t\tmediaA11yProps = {\n\t\t\t\t'aria-label': __( 'Navigate to item' ),\n\t\t\t};\n\t\t}\n\t}\n\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 0 }\n\t\t\tkey={ id }\n\t\t\tclassName={ clsx( 'dataviews-view-grid__card', {\n\t\t\t\t'is-selected': hasBulkAction && isSelected,\n\t\t\t} ) }\n\t\t\tonClickCapture={ ( event ) => {\n\t\t\t\tif ( isAppleOS() ? event.metaKey : event.ctrlKey ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif ( ! hasBulkAction ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t\t? selection.filter( ( itemId ) => id !== itemId )\n\t\t\t\t\t\t\t: [ ...selection, id ]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t{ showMedia && renderedMediaField && (\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-grid__media\"\n\t\t\t\t\t{ ...mediaA11yProps }\n\t\t\t\t>\n\t\t\t\t\t{ renderedMediaField }\n\t\t\t\t</ItemClickWrapper>\n\t\t\t) }\n\t\t\t{ hasBulkActions && showMedia && renderedMediaField && (\n\t\t\t\t<DataViewsSelectionCheckbox\n\t\t\t\t\titem={ item }\n\t\t\t\t\tselection={ selection }\n\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\tdisabled={ ! hasBulkAction }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<HStack\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews-view-grid__title-actions\"\n\t\t\t>\n\t\t\t\t<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-grid__title-field dataviews-title-field\"\n\t\t\t\t\t{ ...titleA11yProps }\n\t\t\t\t>\n\t\t\t\t\t{ renderedTitleField }\n\t\t\t\t</ItemClickWrapper>\n\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t<ItemActions item={ item } actions={ actions } isCompact />\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t{ showDescription && descriptionField?.render && (\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\t{ !! badgeFields?.length && (\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tclassName=\"dataviews-view-grid__badge-fields\"\n\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t\twrap\n\t\t\t\t\t\talignment=\"top\"\n\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ badgeFields.map( ( field ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<field.render\n\t\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</HStack>\n\t\t\t\t) }\n\t\t\t\t{ !! regularFields?.length && (\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"dataviews-view-grid__fields\"\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ regularFields.map( ( field ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field\"\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tgap={ 1 }\n\t\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\t\texpanded\n\t\t\t\t\t\t\t\t\tstyle={ { height: 'auto' } }\n\t\t\t\t\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<FlexItem className=\"dataviews-view-grid__field-name\">\n\t\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={ { maxHeight: 'none' } }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<field.render\n\t\t\t\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</VStack>\n\t\t\t\t) }\n\t\t\t</VStack>\n\t\t</VStack>\n\t);\n}\n\nfunction ViewGrid< Item >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable,\n\trenderItemLink,\n\tselection,\n\tview,\n\tclassName,\n\tempty,\n}: ViewGridProps< Item > ) {\n\tconst { resizeObserverRef } = useContext( DataViewsContext );\n\tconst titleField = fields.find(\n\t\t( field ) => field.id === view?.titleField\n\t);\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view?.mediaField\n\t);\n\tconst descriptionField = fields.find(\n\t\t( field ) => field.id === view?.descriptionField\n\t);\n\tconst otherFields = view.fields ?? [];\n\tconst { regularFields, badgeFields } = otherFields.reduce(\n\t\t(\n\t\t\taccumulator: Record< string, NormalizedField< Item >[] >,\n\t\t\tfieldId\n\t\t) => {\n\t\t\tconst field = fields.find( ( f ) => f.id === fieldId );\n\t\t\tif ( ! field ) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\t\t\t// If the field is a badge field, add it to the badgeFields array\n\t\t\t// otherwise add it to the rest visibleFields array.\n\t\t\tconst key = view.layout?.badgeFields?.includes( fieldId )\n\t\t\t\t? 'badgeFields'\n\t\t\t\t: 'regularFields';\n\t\t\taccumulator[ key ].push( field );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ regularFields: [], badgeFields: [] }\n\t);\n\tconst hasData = !! data?.length;\n\tconst hasBulkActions = useSomeItemHasAPossibleBulkAction( actions, data );\n\tconst usedPreviewSize = view.layout?.previewSize;\n\t/*\n\t * This is the maximum width that an image can achieve in the grid. The reasoning is:\n\t * The biggest min image width available is 430px (see /dataviews-layouts/grid/preview-size-picker.tsx).\n\t * Because the grid is responsive, once there is room for another column, the images shrink to accommodate it.\n\t * So each image will never grow past 2*430px plus a little more to account for the gaps.\n\t */\n\tconst size = '900px';\n\n\tconst groupField = view.groupByField\n\t\t? fields.find( ( f ) => f.id === view.groupByField )\n\t\t: null;\n\n\t// Group data by groupByField if specified\n\tconst dataByGroup = groupField\n\t\t? data.reduce( ( groups: Map< string, typeof data >, item ) => {\n\t\t\t\tconst groupName = groupField.getValue( { item } );\n\t\t\t\tif ( ! groups.has( groupName ) ) {\n\t\t\t\t\tgroups.set( groupName, [] );\n\t\t\t\t}\n\t\t\t\tgroups.get( groupName )?.push( item );\n\t\t\t\treturn groups;\n\t\t }, new Map< string, typeof data >() )\n\t\t: null;\n\n\treturn (\n\t\t<>\n\t\t\t{\n\t\t\t\t// Render multiple groups.\n\t\t\t\thasData && groupField && dataByGroup && (\n\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t{ Array.from( dataByGroup.entries() ).map(\n\t\t\t\t\t\t\t( [ groupName, groupItems ] ) => (\n\t\t\t\t\t\t\t\t<VStack key={ groupName } spacing={ 2 }>\n\t\t\t\t\t\t\t\t\t<h3 className=\"dataviews-view-grid__group-header\">\n\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t\t// translators: 1: The label of the field e.g. \"Date\". 2: The value of the field, e.g.: \"May 2022\".\n\t\t\t\t\t\t\t\t\t\t\t__( '%1$s: %2$s' ),\n\t\t\t\t\t\t\t\t\t\t\tgroupField.label,\n\t\t\t\t\t\t\t\t\t\t\tgroupName\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t\t'dataviews-view-grid',\n\t\t\t\t\t\t\t\t\t\t\tclassName\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\t\tgridTemplateColumns:\n\t\t\t\t\t\t\t\t\t\t\t\tusedPreviewSize &&\n\t\t\t\t\t\t\t\t\t\t\t\t`repeat(auto-fill, minmax(${ usedPreviewSize }px, 1fr))`,\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t\t\t\t\t\t\tref={ resizeObserverRef }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ groupItems.map( ( item ) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeSelection={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeSelection\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\tonClickItem={ onClickItem }\n\t\t\t\t\t\t\t\t\t\t\t\t\tisItemClickable={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisItemClickable\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\trenderItemLink={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trenderItemLink\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\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\t\t\t\t\t\t\tdescriptionField={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdescriptionField\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\tregularFields={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tregularFields\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\tbadgeFields={ badgeFields }\n\t\t\t\t\t\t\t\t\t\t\t\t\thasBulkActions={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thasBulkActions\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\tconfig={ {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsizes: size,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t)\n\t\t\t}\n\n\t\t\t{\n\t\t\t\t// Render a single grid with all data.\n\t\t\t\thasData && ! dataByGroup && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx( 'dataviews-view-grid', className ) }\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tgridTemplateColumns:\n\t\t\t\t\t\t\t\tusedPreviewSize &&\n\t\t\t\t\t\t\t\t`repeat(auto-fill, minmax(${ usedPreviewSize }px, 1fr))`,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t\t\tref={ resizeObserverRef }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ data.map( ( item ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\t\t\t\t\trenderItemLink={ renderItemLink }\n\t\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\t\t\tdescriptionField={ descriptionField }\n\t\t\t\t\t\t\t\t\tregularFields={ regularFields }\n\t\t\t\t\t\t\t\t\tbadgeFields={ badgeFields }\n\t\t\t\t\t\t\t\t\thasBulkActions={ hasBulkActions }\n\t\t\t\t\t\t\t\t\tconfig={ {\n\t\t\t\t\t\t\t\t\t\tsizes: size,\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</div>\n\t\t\t\t)\n\t\t\t}\n\t\t\t{\n\t\t\t\t// Render empty state.\n\t\t\t\t! hasData && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t\t\t'dataviews-no-results': ! isLoading,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<p>{ isLoading ? <Spinner /> : empty }</p>\n\t\t\t\t\t</div>\n\t\t\t\t)\n\t\t\t}\n\t\t</>\n\t);\n}\n\nexport default ViewGrid;\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = PreviewSizePicker;
8
- exports.useUpdatedPreviewSizeOnViewportChange = useUpdatedPreviewSizeOnViewportChange;
9
8
  var _components = require("@wordpress/components");
10
9
  var _i18n = require("@wordpress/i18n");
11
10
  var _element = require("@wordpress/element");
@@ -19,109 +18,64 @@ var _jsxRuntime = require("react/jsx-runtime");
19
18
  * Internal dependencies
20
19
  */
21
20
 
22
- const viewportBreaks = {
23
- xhuge: {
24
- min: 3,
25
- max: 6,
26
- default: 5
27
- },
28
- huge: {
29
- min: 2,
30
- max: 4,
31
- default: 4
32
- },
33
- xlarge: {
34
- min: 2,
35
- max: 3,
36
- default: 3
37
- },
38
- large: {
39
- min: 1,
40
- max: 2,
41
- default: 2
42
- },
43
- mobile: {
44
- min: 1,
45
- max: 2,
46
- default: 2
47
- }
48
- };
49
-
50
- /**
51
- * Breakpoints were adjusted from media queries breakpoints to account for
52
- * the sidebar width. This was done to match the existing styles we had.
53
- */
54
- const BREAKPOINTS = {
55
- xhuge: 1520,
56
- huge: 1140,
57
- xlarge: 780,
58
- large: 480,
59
- mobile: 0
60
- };
61
- function useViewPortBreakpoint() {
62
- const containerWidth = (0, _element.useContext)(_dataviewsContext.default).containerWidth;
63
- for (const [key, value] of Object.entries(BREAKPOINTS)) {
64
- if (containerWidth >= value) {
65
- return key;
66
- }
67
- }
68
- return 'mobile';
69
- }
70
- function useUpdatedPreviewSizeOnViewportChange() {
71
- const view = (0, _element.useContext)(_dataviewsContext.default).view;
72
- const viewport = useViewPortBreakpoint();
73
- return (0, _element.useMemo)(() => {
74
- const previewSize = view.layout?.previewSize;
75
- let newPreviewSize;
76
- if (!previewSize) {
77
- return;
78
- }
79
- const breakValues = viewportBreaks[viewport];
80
- if (previewSize < breakValues.min) {
81
- newPreviewSize = breakValues.min;
82
- }
83
- if (previewSize > breakValues.max) {
84
- newPreviewSize = breakValues.max;
85
- }
86
- return newPreviewSize;
87
- }, [viewport, view]);
88
- }
21
+ const imageSizes = [{
22
+ value: 230,
23
+ breakpoint: 1
24
+ }, {
25
+ value: 290,
26
+ breakpoint: 1112 // at minimum image width, 4 images display at this container size
27
+ }, {
28
+ value: 350,
29
+ breakpoint: 1636 // at minimum image width, 6 images display at this container size
30
+ }, {
31
+ value: 430,
32
+ breakpoint: 588 // at minimum image width, 2 images display at this container size
33
+ }];
89
34
  function PreviewSizePicker() {
90
- const viewport = useViewPortBreakpoint();
91
35
  const context = (0, _element.useContext)(_dataviewsContext.default);
92
36
  const view = context.view;
93
- const breakValues = viewportBreaks[viewport];
94
- const previewSizeToUse = view.layout?.previewSize || breakValues.default;
95
- const marks = (0, _element.useMemo)(() => Array.from({
96
- length: breakValues.max - breakValues.min + 1
97
- }, (_, i) => {
98
- return {
99
- value: breakValues.min + i
100
- };
101
- }), [breakValues]);
102
- if (viewport === 'mobile') {
37
+ if (context.containerWidth < 588) {
103
38
  return null;
104
39
  }
40
+ const breakValues = imageSizes.filter(size => {
41
+ return context.containerWidth >= size.breakpoint;
42
+ });
43
+
44
+ // If the container has resized and the set preview size is no longer available,
45
+ // we reset it to the next smallest size.
46
+ const previewSizeToUse = view.layout?.previewSize ? breakValues.map((size, index) => ({
47
+ ...size,
48
+ index
49
+ })).filter(size => {
50
+ var _view$layout$previewS;
51
+ return size.value <= ((_view$layout$previewS = view.layout?.previewSize) !== null && _view$layout$previewS !== void 0 ? _view$layout$previewS : 0);
52
+ } // We know the view.layout?.previewSize exists at this point but the linter doesn't seem to.
53
+ ).sort((a, b) => b.value - a.value)[0].index : 0;
54
+ const marks = breakValues.map((size, index) => {
55
+ return {
56
+ value: index
57
+ };
58
+ });
105
59
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.RangeControl, {
106
60
  __nextHasNoMarginBottom: true,
107
61
  __next40pxDefaultSize: true,
108
62
  showTooltip: false,
109
63
  label: (0, _i18n.__)('Preview size'),
110
- value: breakValues.max + breakValues.min - previewSizeToUse,
111
- marks: marks,
112
- min: breakValues.min,
113
- max: breakValues.max,
64
+ value: previewSizeToUse,
65
+ min: 0,
66
+ max: breakValues.length - 1,
114
67
  withInputField: false,
115
68
  onChange: (value = 0) => {
116
69
  context.onChangeView({
117
70
  ...view,
118
71
  layout: {
119
72
  ...view.layout,
120
- previewSize: breakValues.max + breakValues.min - value
73
+ previewSize: breakValues[value].value
121
74
  }
122
75
  });
123
76
  },
124
- step: 1
77
+ step: 1,
78
+ marks: marks
125
79
  });
126
80
  }
127
81
  //# sourceMappingURL=preview-size-picker.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_element","_dataviewsContext","_interopRequireDefault","_jsxRuntime","viewportBreaks","xhuge","min","max","default","huge","xlarge","large","mobile","BREAKPOINTS","useViewPortBreakpoint","containerWidth","useContext","DataViewsContext","key","value","Object","entries","useUpdatedPreviewSizeOnViewportChange","view","viewport","useMemo","previewSize","layout","newPreviewSize","breakValues","PreviewSizePicker","context","previewSizeToUse","marks","Array","from","length","_","i","jsx","RangeControl","__nextHasNoMarginBottom","__next40pxDefaultSize","showTooltip","label","__","withInputField","onChange","onChangeView","step"],"sources":["@wordpress/dataviews/src/dataviews-layouts/grid/preview-size-picker.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { RangeControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../../components/dataviews-context';\nimport type { ViewGrid } from '../../types';\n\nconst viewportBreaks: {\n\t[ key: string ]: { min: number; max: number; default: number };\n} = {\n\txhuge: { min: 3, max: 6, default: 5 },\n\thuge: { min: 2, max: 4, default: 4 },\n\txlarge: { min: 2, max: 3, default: 3 },\n\tlarge: { min: 1, max: 2, default: 2 },\n\tmobile: { min: 1, max: 2, default: 2 },\n};\n\n/**\n * Breakpoints were adjusted from media queries breakpoints to account for\n * the sidebar width. This was done to match the existing styles we had.\n */\nconst BREAKPOINTS = {\n\txhuge: 1520,\n\thuge: 1140,\n\txlarge: 780,\n\tlarge: 480,\n\tmobile: 0,\n};\n\nfunction useViewPortBreakpoint() {\n\tconst containerWidth = useContext( DataViewsContext ).containerWidth;\n\tfor ( const [ key, value ] of Object.entries( BREAKPOINTS ) ) {\n\t\tif ( containerWidth >= value ) {\n\t\t\treturn key;\n\t\t}\n\t}\n\treturn 'mobile';\n}\n\nexport function useUpdatedPreviewSizeOnViewportChange() {\n\tconst view = useContext( DataViewsContext ).view as ViewGrid;\n\tconst viewport = useViewPortBreakpoint();\n\treturn useMemo( () => {\n\t\tconst previewSize = view.layout?.previewSize;\n\t\tlet newPreviewSize;\n\t\tif ( ! previewSize ) {\n\t\t\treturn;\n\t\t}\n\t\tconst breakValues = viewportBreaks[ viewport ];\n\t\tif ( previewSize < breakValues.min ) {\n\t\t\tnewPreviewSize = breakValues.min;\n\t\t}\n\t\tif ( previewSize > breakValues.max ) {\n\t\t\tnewPreviewSize = breakValues.max;\n\t\t}\n\t\treturn newPreviewSize;\n\t}, [ viewport, view ] );\n}\n\nexport default function PreviewSizePicker() {\n\tconst viewport = useViewPortBreakpoint();\n\tconst context = useContext( DataViewsContext );\n\tconst view = context.view as ViewGrid;\n\tconst breakValues = viewportBreaks[ viewport ];\n\tconst previewSizeToUse = view.layout?.previewSize || breakValues.default;\n\tconst marks = useMemo(\n\t\t() =>\n\t\t\tArray.from(\n\t\t\t\t{ length: breakValues.max - breakValues.min + 1 },\n\t\t\t\t( _, i ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tvalue: breakValues.min + i,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t),\n\t\t[ breakValues ]\n\t);\n\tif ( viewport === 'mobile' ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<RangeControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tshowTooltip={ false }\n\t\t\tlabel={ __( 'Preview size' ) }\n\t\t\tvalue={ breakValues.max + breakValues.min - previewSizeToUse }\n\t\t\tmarks={ marks }\n\t\t\tmin={ breakValues.min }\n\t\t\tmax={ breakValues.max }\n\t\t\twithInputField={ false }\n\t\t\tonChange={ ( value = 0 ) => {\n\t\t\t\tcontext.onChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...view.layout,\n\t\t\t\t\t\tpreviewSize: breakValues.max + breakValues.min - value,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tstep={ 1 }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_i18n","_element","_dataviewsContext","_interopRequireDefault","_jsxRuntime","imageSizes","value","breakpoint","PreviewSizePicker","context","useContext","DataViewsContext","view","containerWidth","breakValues","filter","size","previewSizeToUse","layout","previewSize","map","index","_view$layout$previewS","sort","a","b","marks","jsx","RangeControl","__nextHasNoMarginBottom","__next40pxDefaultSize","showTooltip","label","__","min","max","length","withInputField","onChange","onChangeView","step"],"sources":["@wordpress/dataviews/src/dataviews-layouts/grid/preview-size-picker.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { RangeControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../../components/dataviews-context';\nimport type { ViewGrid } from '../../types';\n\nconst imageSizes = [\n\t{\n\t\tvalue: 230,\n\t\tbreakpoint: 1,\n\t},\n\t{\n\t\tvalue: 290,\n\t\tbreakpoint: 1112, // at minimum image width, 4 images display at this container size\n\t},\n\t{\n\t\tvalue: 350,\n\t\tbreakpoint: 1636, // at minimum image width, 6 images display at this container size\n\t},\n\t{\n\t\tvalue: 430,\n\t\tbreakpoint: 588, // at minimum image width, 2 images display at this container size\n\t},\n];\n\nexport default function PreviewSizePicker() {\n\tconst context = useContext( DataViewsContext );\n\tconst view = context.view as ViewGrid;\n\n\tif ( context.containerWidth < 588 ) {\n\t\treturn null;\n\t}\n\n\tconst breakValues = imageSizes.filter( ( size ) => {\n\t\treturn context.containerWidth >= size.breakpoint;\n\t} );\n\n\t// If the container has resized and the set preview size is no longer available,\n\t// we reset it to the next smallest size.\n\tconst previewSizeToUse = view.layout?.previewSize\n\t\t? breakValues\n\t\t\t\t.map( ( size, index ) => ( { ...size, index } ) )\n\t\t\t\t.filter(\n\t\t\t\t\t( size ) => size.value <= ( view.layout?.previewSize ?? 0 ) // We know the view.layout?.previewSize exists at this point but the linter doesn't seem to.\n\t\t\t\t)\n\t\t\t\t.sort( ( a, b ) => b.value - a.value )[ 0 ].index\n\t\t: 0;\n\n\tconst marks = breakValues.map( ( size, index ) => {\n\t\treturn {\n\t\t\tvalue: index,\n\t\t};\n\t} );\n\n\treturn (\n\t\t<RangeControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tshowTooltip={ false }\n\t\t\tlabel={ __( 'Preview size' ) }\n\t\t\tvalue={ previewSizeToUse }\n\t\t\tmin={ 0 }\n\t\t\tmax={ breakValues.length - 1 }\n\t\t\twithInputField={ false }\n\t\t\tonChange={ ( value = 0 ) => {\n\t\t\t\tcontext.onChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...view.layout,\n\t\t\t\t\t\tpreviewSize: breakValues[ value ].value,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tstep={ 1 }\n\t\t\tmarks={ marks }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,iBAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAAkE,IAAAK,WAAA,GAAAL,OAAA;AAVlE;AACA;AACA;;AAKA;AACA;AACA;;AAIA,MAAMM,UAAU,GAAG,CAClB;EACCC,KAAK,EAAE,GAAG;EACVC,UAAU,EAAE;AACb,CAAC,EACD;EACCD,KAAK,EAAE,GAAG;EACVC,UAAU,EAAE,IAAI,CAAE;AACnB,CAAC,EACD;EACCD,KAAK,EAAE,GAAG;EACVC,UAAU,EAAE,IAAI,CAAE;AACnB,CAAC,EACD;EACCD,KAAK,EAAE,GAAG;EACVC,UAAU,EAAE,GAAG,CAAE;AAClB,CAAC,CACD;AAEc,SAASC,iBAAiBA,CAAA,EAAG;EAC3C,MAAMC,OAAO,GAAG,IAAAC,mBAAU,EAAEC,yBAAiB,CAAC;EAC9C,MAAMC,IAAI,GAAGH,OAAO,CAACG,IAAgB;EAErC,IAAKH,OAAO,CAACI,cAAc,GAAG,GAAG,EAAG;IACnC,OAAO,IAAI;EACZ;EAEA,MAAMC,WAAW,GAAGT,UAAU,CAACU,MAAM,CAAIC,IAAI,IAAM;IAClD,OAAOP,OAAO,CAACI,cAAc,IAAIG,IAAI,CAACT,UAAU;EACjD,CAAE,CAAC;;EAEH;EACA;EACA,MAAMU,gBAAgB,GAAGL,IAAI,CAACM,MAAM,EAAEC,WAAW,GAC9CL,WAAW,CACVM,GAAG,CAAE,CAAEJ,IAAI,EAAEK,KAAK,MAAQ;IAAE,GAAGL,IAAI;IAAEK;EAAM,CAAC,CAAG,CAAC,CAChDN,MAAM,CACJC,IAAI;IAAA,IAAAM,qBAAA;IAAA,OAAMN,IAAI,CAACV,KAAK,MAAAgB,qBAAA,GAAMV,IAAI,CAACM,MAAM,EAAEC,WAAW,cAAAG,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAE;EAAA,EAAC;EAC7D,CAAC,CACAC,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAMA,CAAC,CAACnB,KAAK,GAAGkB,CAAC,CAAClB,KAAM,CAAC,CAAE,CAAC,CAAE,CAACe,KAAK,GACjD,CAAC;EAEJ,MAAMK,KAAK,GAAGZ,WAAW,CAACM,GAAG,CAAE,CAAEJ,IAAI,EAAEK,KAAK,KAAM;IACjD,OAAO;MACNf,KAAK,EAAEe;IACR,CAAC;EACF,CAAE,CAAC;EAEH,oBACC,IAAAjB,WAAA,CAAAuB,GAAA,EAAC7B,WAAA,CAAA8B,YAAY;IACZC,uBAAuB;IACvBC,qBAAqB;IACrBC,WAAW,EAAG,KAAO;IACrBC,KAAK,EAAG,IAAAC,QAAE,EAAE,cAAe,CAAG;IAC9B3B,KAAK,EAAGW,gBAAkB;IAC1BiB,GAAG,EAAG,CAAG;IACTC,GAAG,EAAGrB,WAAW,CAACsB,MAAM,GAAG,CAAG;IAC9BC,cAAc,EAAG,KAAO;IACxBC,QAAQ,EAAGA,CAAEhC,KAAK,GAAG,CAAC,KAAM;MAC3BG,OAAO,CAAC8B,YAAY,CAAE;QACrB,GAAG3B,IAAI;QACPM,MAAM,EAAE;UACP,GAAGN,IAAI,CAACM,MAAM;UACdC,WAAW,EAAEL,WAAW,CAAER,KAAK,CAAE,CAACA;QACnC;MACD,CAAE,CAAC;IACJ,CAAG;IACHkC,IAAI,EAAG,CAAG;IACVd,KAAK,EAAGA;EAAO,CACf,CAAC;AAEJ","ignoreList":[]}
@@ -144,7 +144,10 @@ function ListItem({
144
144
  className: "dataviews-view-list__media-wrapper",
145
145
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(mediaField.render, {
146
146
  item: item,
147
- field: mediaField
147
+ field: mediaField,
148
+ config: {
149
+ sizes: '52px'
150
+ }
148
151
  })
149
152
  }) : null;
150
153
  const renderedTitleField = showTitle && titleField?.render ? /*#__PURE__*/(0, _jsxRuntime.jsx)(titleField.render, {
@@ -269,7 +272,8 @@ function ViewList(props) {
269
272
  onChangeSelection,
270
273
  selection,
271
274
  view,
272
- className
275
+ className,
276
+ empty
273
277
  } = props;
274
278
  const baseId = (0, _compose.useInstanceId)(ViewList, 'view-list');
275
279
  const selectedItem = data?.findLast(item => selection.includes(getItemId(item)));
@@ -344,7 +348,7 @@ function ViewList(props) {
344
348
  'dataviews-no-results': !hasData && !isLoading
345
349
  }),
346
350
  children: !hasData && /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
347
- children: isLoading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Spinner, {}) : (0, _i18n.__)('No results')
351
+ children: isLoading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Spinner, {}) : empty
348
352
  })
349
353
  });
350
354
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_compose","_components","_element","_i18n","_icons","_data","_lockUnlock","_dataviewsItemActions","_jsxRuntime","Menu","unlock","componentsPrivateApis","generateItemWrapperCompositeId","idPrefix","generatePrimaryActionCompositeId","primaryActionId","generateDropdownTriggerCompositeId","PrimaryActionGridCell","primaryAction","item","registry","useRegistry","isModalOpen","setIsModalOpen","useState","compositeItemId","id","label","jsx","role","children","Composite","Item","render","Button","disabled","accessibleWhenDisabled","icon","isDestructive","size","onClick","ActionModal","action","items","closeModal","callback","ListItem","view","actions","isSelected","titleField","mediaField","descriptionField","onSelect","otherFields","onDropdownTriggerKeyDown","showTitle","showMedia","showDescription","itemRef","useRef","labelId","descriptionId","isHovered","setIsHovered","activeModalAction","setActiveModalAction","handleHover","type","isHover","useEffect","current","scrollIntoView","behavior","block","inline","eligibleActions","useMemo","_eligibleActions","filter","isEligible","_primaryActions","isPrimary","hasOnlyOnePrimaryAction","length","renderedMediaField","className","field","renderedTitleField","usedActions","jsxs","__experimentalHStack","spacing","placement","TriggerButton","moreVertical","__","onKeyDown","Popover","ActionsMenuGroup","Row","ref","clsx","onMouseEnter","onMouseLeave","justify","alignment","__experimentalVStack","map","VisuallyHidden","as","isDefined","ViewList","props","_view$fields","data","fields","getItemId","isLoading","onChangeSelection","selection","baseId","useInstanceId","selectedItem","findLast","includes","find","fieldId","f","generateCompositeItemIdPrefix","useCallback","isActiveCompositeItem","idToCheck","startsWith","activeCompositeId","setActiveCompositeId","undefined","activeItemIndex","findIndex","previousActiveItemIndex","usePrevious","isActiveIdInList","selectCompositeItem","targetIndex","generateCompositeId","clampedIndex","Math","min","max","itemIdPrefix","targetCompositeItemId","document","getElementById","focus","wasActiveIdInList","event","key","preventDefault","hasData","Spinner","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 item={ item } field={ mediaField } />\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","_interopRequireDefault","require","_compose","_components","_element","_i18n","_icons","_data","_lockUnlock","_dataviewsItemActions","_jsxRuntime","Menu","unlock","componentsPrivateApis","generateItemWrapperCompositeId","idPrefix","generatePrimaryActionCompositeId","primaryActionId","generateDropdownTriggerCompositeId","PrimaryActionGridCell","primaryAction","item","registry","useRegistry","isModalOpen","setIsModalOpen","useState","compositeItemId","id","label","jsx","role","children","Composite","Item","render","Button","disabled","accessibleWhenDisabled","icon","isDestructive","size","onClick","ActionModal","action","items","closeModal","callback","ListItem","view","actions","isSelected","titleField","mediaField","descriptionField","onSelect","otherFields","onDropdownTriggerKeyDown","showTitle","showMedia","showDescription","itemRef","useRef","labelId","descriptionId","isHovered","setIsHovered","activeModalAction","setActiveModalAction","handleHover","type","isHover","useEffect","current","scrollIntoView","behavior","block","inline","eligibleActions","useMemo","_eligibleActions","filter","isEligible","_primaryActions","isPrimary","hasOnlyOnePrimaryAction","length","renderedMediaField","className","field","config","sizes","renderedTitleField","usedActions","jsxs","__experimentalHStack","spacing","placement","TriggerButton","moreVertical","__","onKeyDown","Popover","ActionsMenuGroup","Row","ref","clsx","onMouseEnter","onMouseLeave","justify","alignment","__experimentalVStack","map","VisuallyHidden","as","isDefined","ViewList","props","_view$fields","data","fields","getItemId","isLoading","onChangeSelection","selection","empty","baseId","useInstanceId","selectedItem","findLast","includes","find","fieldId","f","generateCompositeItemIdPrefix","useCallback","isActiveCompositeItem","idToCheck","startsWith","activeCompositeId","setActiveCompositeId","undefined","activeItemIndex","findIndex","previousActiveItemIndex","usePrevious","isActiveIdInList","selectCompositeItem","targetIndex","generateCompositeId","clampedIndex","Math","min","max","itemIdPrefix","targetCompositeItemId","document","getElementById","focus","wasActiveIdInList","event","key","preventDefault","hasData","Spinner","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\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<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":[]}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _components = require("@wordpress/components");
8
8
  var _itemClickWrapper = require("../utils/item-click-wrapper");
9
+ var _i18n = require("@wordpress/i18n");
9
10
  var _jsxRuntime = require("react/jsx-runtime");
10
11
  /**
11
12
  * External dependencies
@@ -32,21 +33,35 @@ function ColumnPrimary({
32
33
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
33
34
  spacing: 3,
34
35
  justify: "flex-start",
35
- children: [mediaField && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
36
+ children: [mediaField && /*#__PURE__*/(0, _jsxRuntime.jsx)(_itemClickWrapper.ItemClickWrapper, {
37
+ item: item,
38
+ isItemClickable: isItemClickable,
39
+ onClickItem: onClickItem,
40
+ renderItemLink: renderItemLink,
36
41
  className: "dataviews-view-table__cell-content-wrapper dataviews-column-primary__media",
42
+ "aria-label": titleField ? (0, _i18n.sprintf)(
43
+ // translators: %s is the item title.
44
+ (0, _i18n.__)('Click item: %s'), titleField.getValue?.({
45
+ item
46
+ })) : undefined,
37
47
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(mediaField.render, {
38
48
  item: item,
39
- field: mediaField
49
+ field: mediaField,
50
+ config: {
51
+ sizes: '32px'
52
+ }
40
53
  })
41
54
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
42
55
  spacing: 0,
56
+ alignment: "flex-start",
57
+ className: "dataviews-view-table__primary-column-content",
43
58
  children: [titleField && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_itemClickWrapper.ItemClickWrapper, {
44
59
  item: item,
45
60
  isItemClickable: isItemClickable,
46
61
  onClickItem: onClickItem,
47
62
  renderItemLink: renderItemLink,
48
63
  className: "dataviews-view-table__cell-content-wrapper dataviews-title-field",
49
- children: [level !== undefined && /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
64
+ children: [level !== undefined && level > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
50
65
  className: "dataviews-view-table__level",
51
66
  children: ['—'.repeat(level), "\xA0"]
52
67
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(titleField.render, {
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_itemClickWrapper","_jsxRuntime","ColumnPrimary","item","level","titleField","mediaField","descriptionField","onClickItem","renderItemLink","isItemClickable","jsxs","__experimentalHStack","spacing","justify","children","jsx","className","render","field","__experimentalVStack","ItemClickWrapper","undefined","repeat","_default","exports","default"],"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 item={ item } field={ mediaField } />\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":";;;;;;AAQA,IAAAA,WAAA,GAAAC,OAAA;AASA,IAAAC,iBAAA,GAAAD,OAAA;AAA+D,IAAAE,WAAA,GAAAF,OAAA;AAjB/D;AACA;AACA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;;AAIA,SAASG,aAAaA,CAAU;EAC/BC,IAAI;EACJC,KAAK;EACLC,UAAU;EACVC,UAAU;EACVC,gBAAgB;EAChBC,WAAW;EACXC,cAAc;EACdC;AAcD,CAAC,EAAG;EACH,oBACC,IAAAT,WAAA,CAAAU,IAAA,EAACb,WAAA,CAAAc,oBAAM;IAACC,OAAO,EAAG,CAAG;IAACC,OAAO,EAAC,YAAY;IAAAC,QAAA,GACvCT,UAAU,iBACX,IAAAL,WAAA,CAAAe,GAAA;MAAKC,SAAS,EAAC,4EAA4E;MAAAF,QAAA,eAC1F,IAAAd,WAAA,CAAAe,GAAA,EAACV,UAAU,CAACY,MAAM;QAACf,IAAI,EAAGA,IAAM;QAACgB,KAAK,EAAGb;MAAY,CAAE;IAAC,CACpD,CACL,eACD,IAAAL,WAAA,CAAAU,IAAA,EAACb,WAAA,CAAAsB,oBAAM;MAACP,OAAO,EAAG,CAAG;MAAAE,QAAA,GAClBV,UAAU,iBACX,IAAAJ,WAAA,CAAAU,IAAA,EAACX,iBAAA,CAAAqB,gBAAgB;QAChBlB,IAAI,EAAGA,IAAM;QACbO,eAAe,EAAGA,eAAiB;QACnCF,WAAW,EAAGA,WAAa;QAC3BC,cAAc,EAAGA,cAAgB;QACjCQ,SAAS,EAAC,kEAAkE;QAAAF,QAAA,GAE1EX,KAAK,KAAKkB,SAAS,iBACpB,IAAArB,WAAA,CAAAU,IAAA;UAAMM,SAAS,EAAC,6BAA6B;UAAAF,QAAA,GAC1C,GAAG,CAACQ,MAAM,CAAEnB,KAAM,CAAC,EAAE,MACxB;QAAA,CAAM,CACN,eACD,IAAAH,WAAA,CAAAe,GAAA,EAACX,UAAU,CAACa,MAAM;UAACf,IAAI,EAAGA,IAAM;UAACgB,KAAK,EAAGd;QAAY,CAAE,CAAC;MAAA,CACvC,CAClB,EACCE,gBAAgB,iBACjB,IAAAN,WAAA,CAAAe,GAAA,EAACT,gBAAgB,CAACW,MAAM;QACvBf,IAAI,EAAGA,IAAM;QACbgB,KAAK,EAAGZ;MAAkB,CAC1B,CACD;IAAA,CACM,CAAC;EAAA,CACF,CAAC;AAEX;AAAC,IAAAiB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcxB,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_itemClickWrapper","_i18n","_jsxRuntime","ColumnPrimary","item","level","titleField","mediaField","descriptionField","onClickItem","renderItemLink","isItemClickable","jsxs","__experimentalHStack","spacing","justify","children","jsx","ItemClickWrapper","className","sprintf","__","getValue","undefined","render","field","config","sizes","__experimentalVStack","alignment","repeat","_default","exports","default"],"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":";;;;;;AAQA,IAAAA,WAAA,GAAAC,OAAA;AASA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAA8C,IAAAG,WAAA,GAAAH,OAAA;AAlB9C;AACA;AACA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;;AAKA,SAASI,aAAaA,CAAU;EAC/BC,IAAI;EACJC,KAAK;EACLC,UAAU;EACVC,UAAU;EACVC,gBAAgB;EAChBC,WAAW;EACXC,cAAc;EACdC;AAcD,CAAC,EAAG;EACH,oBACC,IAAAT,WAAA,CAAAU,IAAA,EAACd,WAAA,CAAAe,oBAAM;IAACC,OAAO,EAAG,CAAG;IAACC,OAAO,EAAC,YAAY;IAAAC,QAAA,GACvCT,UAAU,iBACX,IAAAL,WAAA,CAAAe,GAAA,EAACjB,iBAAA,CAAAkB,gBAAgB;MAChBd,IAAI,EAAGA,IAAM;MACbO,eAAe,EAAGA,eAAiB;MACnCF,WAAW,EAAGA,WAAa;MAC3BC,cAAc,EAAGA,cAAgB;MACjCS,SAAS,EAAC,4EAA4E;MACtF,cACCb,UAAU,GACP,IAAAc,aAAO;MACP;MACA,IAAAC,QAAE,EAAE,gBAAiB,CAAC,EACtBf,UAAU,CAACgB,QAAQ,GAAI;QAAElB;MAAK,CAAE,CAChC,CAAC,GACDmB,SACH;MAAAP,QAAA,eAED,IAAAd,WAAA,CAAAe,GAAA,EAACV,UAAU,CAACiB,MAAM;QACjBpB,IAAI,EAAGA,IAAM;QACbqB,KAAK,EAAGlB,UAAY;QACpBmB,MAAM,EAAG;UAAEC,KAAK,EAAE;QAAO;MAAG,CAC5B;IAAC,CACe,CAClB,eACD,IAAAzB,WAAA,CAAAU,IAAA,EAACd,WAAA,CAAA8B,oBAAM;MACNd,OAAO,EAAG,CAAG;MACbe,SAAS,EAAC,YAAY;MACtBV,SAAS,EAAC,8CAA8C;MAAAH,QAAA,GAEtDV,UAAU,iBACX,IAAAJ,WAAA,CAAAU,IAAA,EAACZ,iBAAA,CAAAkB,gBAAgB;QAChBd,IAAI,EAAGA,IAAM;QACbO,eAAe,EAAGA,eAAiB;QACnCF,WAAW,EAAGA,WAAa;QAC3BC,cAAc,EAAGA,cAAgB;QACjCS,SAAS,EAAC,kEAAkE;QAAAH,QAAA,GAE1EX,KAAK,KAAKkB,SAAS,IAAIlB,KAAK,GAAG,CAAC,iBACjC,IAAAH,WAAA,CAAAU,IAAA;UAAMO,SAAS,EAAC,6BAA6B;UAAAH,QAAA,GAC1C,GAAG,CAACc,MAAM,CAAEzB,KAAM,CAAC,EAAE,MACxB;QAAA,CAAM,CACN,eACD,IAAAH,WAAA,CAAAe,GAAA,EAACX,UAAU,CAACkB,MAAM;UAACpB,IAAI,EAAGA,IAAM;UAACqB,KAAK,EAAGnB;QAAY,CAAE,CAAC;MAAA,CACvC,CAClB,EACCE,gBAAgB,iBACjB,IAAAN,WAAA,CAAAe,GAAA,EAACT,gBAAgB,CAACgB,MAAM;QACvBpB,IAAI,EAAGA,IAAM;QACbqB,KAAK,EAAGjB;MAAkB,CAC1B,CACD;IAAA,CACM,CAAC;EAAA,CACF,CAAC;AAEX;AAAC,IAAAuB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc9B,aAAa","ignoreList":[]}