@wordpress/edit-site 5.23.0 → 5.24.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 (320) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/actions/index.js +56 -38
  3. package/build/components/actions/index.js.map +1 -1
  4. package/build/components/block-editor/site-editor-canvas.js +7 -2
  5. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  6. package/build/components/dataviews/add-filter.js +21 -20
  7. package/build/components/dataviews/add-filter.js.map +1 -1
  8. package/build/components/dataviews/constants.js +14 -0
  9. package/build/components/dataviews/constants.js.map +1 -0
  10. package/build/components/dataviews/dataviews.js +9 -7
  11. package/build/components/dataviews/dataviews.js.map +1 -1
  12. package/build/components/dataviews/filter-summary.js +62 -0
  13. package/build/components/dataviews/filter-summary.js.map +1 -0
  14. package/build/components/dataviews/filters.js +15 -30
  15. package/build/components/dataviews/filters.js.map +1 -1
  16. package/build/components/dataviews/item-actions.js +84 -30
  17. package/build/components/dataviews/item-actions.js.map +1 -1
  18. package/build/components/dataviews/pagination.js +4 -0
  19. package/build/components/dataviews/pagination.js.map +1 -1
  20. package/build/components/dataviews/view-actions.js +24 -24
  21. package/build/components/dataviews/view-actions.js.map +1 -1
  22. package/build/components/dataviews/view-grid.js +48 -25
  23. package/build/components/dataviews/view-grid.js.map +1 -1
  24. package/build/components/dataviews/view-list.js +28 -33
  25. package/build/components/dataviews/view-list.js.map +1 -1
  26. package/build/components/editor/index.js +23 -27
  27. package/build/components/editor/index.js.map +1 -1
  28. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  29. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -1
  30. package/build/components/global-styles/font-library-modal/utils/index.js +15 -2
  31. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  32. package/build/components/global-styles/header.js +4 -2
  33. package/build/components/global-styles/header.js.map +1 -1
  34. package/build/components/global-styles/screen-block-list.js +22 -16
  35. package/build/components/global-styles/screen-block-list.js.map +1 -1
  36. package/build/components/global-styles/screen-revisions/index.js +26 -5
  37. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  38. package/build/components/global-styles/screen-revisions/revisions-buttons.js +52 -24
  39. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  40. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +9 -3
  41. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  42. package/build/components/global-styles/ui.js +28 -36
  43. package/build/components/global-styles/ui.js.map +1 -1
  44. package/build/components/header-edit-mode/document-actions/index.js +21 -16
  45. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  46. package/build/components/header-edit-mode/index.js +2 -1
  47. package/build/components/header-edit-mode/index.js.map +1 -1
  48. package/build/components/header-edit-mode/more-menu/index.js +1 -1
  49. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  50. package/build/components/list/added-by.js +43 -54
  51. package/build/components/list/added-by.js.map +1 -1
  52. package/build/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +9 -8
  53. package/build/components/page-content-focus-notifications/back-to-page-notification.js.map +1 -0
  54. package/build/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  55. package/build/components/page-content-focus-notifications/edit-template-notification.js.map +1 -0
  56. package/build/components/page-content-focus-notifications/index.js +22 -0
  57. package/build/components/page-content-focus-notifications/index.js.map +1 -0
  58. package/build/components/page-pages/index.js +9 -15
  59. package/build/components/page-pages/index.js.map +1 -1
  60. package/build/components/page-patterns/use-patterns.js +1 -1
  61. package/build/components/page-patterns/use-patterns.js.map +1 -1
  62. package/build/components/page-templates/dataviews-templates.js +166 -51
  63. package/build/components/page-templates/dataviews-templates.js.map +1 -1
  64. package/build/components/preferences-modal/index.js +1 -1
  65. package/build/components/preferences-modal/index.js.map +1 -1
  66. package/build/components/save-button/index.js +9 -6
  67. package/build/components/save-button/index.js.map +1 -1
  68. package/build/components/save-hub/index.js +14 -0
  69. package/build/components/save-hub/index.js.map +1 -1
  70. package/build/components/sidebar-dataviews/custom-dataviews-list.js +3 -1
  71. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  72. package/build/components/sidebar-dataviews/default-views.js +7 -2
  73. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  74. package/build/components/sidebar-edit-mode/index.js +6 -5
  75. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  76. package/build/components/sidebar-edit-mode/page-panels/edit-template.js +15 -26
  77. package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  78. package/build/components/sidebar-edit-mode/page-panels/hooks.js +22 -8
  79. package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  80. package/build/components/sidebar-edit-mode/page-panels/page-status.js +8 -5
  81. package/build/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  82. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +4 -8
  83. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  84. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +2 -2
  85. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  86. package/build/components/sidebar-edit-mode/settings-header/index.js +10 -6
  87. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  88. package/build/components/sidebar-navigation-screen-page/index.js +23 -4
  89. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
  90. package/build/components/style-book/index.js +22 -12
  91. package/build/components/style-book/index.js.map +1 -1
  92. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +41 -9
  93. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  94. package/build/components/welcome-guide/page.js +2 -2
  95. package/build/components/welcome-guide/page.js.map +1 -1
  96. package/build/components/welcome-guide/template.js +6 -3
  97. package/build/components/welcome-guide/template.js.map +1 -1
  98. package/build/hooks/commands/use-edit-mode-commands.js +24 -14
  99. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  100. package/build/store/actions.js +4 -1
  101. package/build/store/actions.js.map +1 -1
  102. package/build/store/private-actions.js +2 -27
  103. package/build/store/private-actions.js.map +1 -1
  104. package/build/store/private-selectors.js +0 -23
  105. package/build/store/private-selectors.js.map +1 -1
  106. package/build/store/reducer.js +1 -40
  107. package/build/store/reducer.js.map +1 -1
  108. package/build/store/selectors.js +8 -4
  109. package/build/store/selectors.js.map +1 -1
  110. package/build/utils/constants.js +1 -12
  111. package/build/utils/constants.js.map +1 -1
  112. package/build-module/components/actions/index.js +55 -36
  113. package/build-module/components/actions/index.js.map +1 -1
  114. package/build-module/components/block-editor/site-editor-canvas.js +7 -2
  115. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  116. package/build-module/components/dataviews/add-filter.js +21 -20
  117. package/build-module/components/dataviews/add-filter.js.map +1 -1
  118. package/build-module/components/dataviews/constants.js +6 -0
  119. package/build-module/components/dataviews/constants.js.map +1 -0
  120. package/build-module/components/dataviews/dataviews.js +9 -7
  121. package/build-module/components/dataviews/dataviews.js.map +1 -1
  122. package/build-module/components/dataviews/filter-summary.js +55 -0
  123. package/build-module/components/dataviews/filter-summary.js.map +1 -0
  124. package/build-module/components/dataviews/filters.js +15 -28
  125. package/build-module/components/dataviews/filters.js.map +1 -1
  126. package/build-module/components/dataviews/item-actions.js +84 -30
  127. package/build-module/components/dataviews/item-actions.js.map +1 -1
  128. package/build-module/components/dataviews/pagination.js +4 -0
  129. package/build-module/components/dataviews/pagination.js.map +1 -1
  130. package/build-module/components/dataviews/view-actions.js +24 -24
  131. package/build-module/components/dataviews/view-actions.js.map +1 -1
  132. package/build-module/components/dataviews/view-grid.js +49 -26
  133. package/build-module/components/dataviews/view-grid.js.map +1 -1
  134. package/build-module/components/dataviews/view-list.js +28 -33
  135. package/build-module/components/dataviews/view-list.js.map +1 -1
  136. package/build-module/components/editor/index.js +26 -30
  137. package/build-module/components/editor/index.js.map +1 -1
  138. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  139. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -1
  140. package/build-module/components/global-styles/font-library-modal/utils/index.js +14 -2
  141. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  142. package/build-module/components/global-styles/header.js +4 -2
  143. package/build-module/components/global-styles/header.js.map +1 -1
  144. package/build-module/components/global-styles/screen-block-list.js +23 -17
  145. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  146. package/build-module/components/global-styles/screen-revisions/index.js +27 -6
  147. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  148. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +51 -24
  149. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  150. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +9 -3
  151. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  152. package/build-module/components/global-styles/ui.js +28 -36
  153. package/build-module/components/global-styles/ui.js.map +1 -1
  154. package/build-module/components/header-edit-mode/document-actions/index.js +21 -16
  155. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  156. package/build-module/components/header-edit-mode/index.js +2 -1
  157. package/build-module/components/header-edit-mode/index.js.map +1 -1
  158. package/build-module/components/header-edit-mode/more-menu/index.js +1 -1
  159. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  160. package/build-module/components/list/added-by.js +44 -55
  161. package/build-module/components/list/added-by.js.map +1 -1
  162. package/build-module/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +9 -8
  163. package/build-module/components/page-content-focus-notifications/back-to-page-notification.js.map +1 -0
  164. package/build-module/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  165. package/build-module/components/page-content-focus-notifications/edit-template-notification.js.map +1 -0
  166. package/build-module/components/page-content-focus-notifications/index.js +14 -0
  167. package/build-module/components/page-content-focus-notifications/index.js.map +1 -0
  168. package/build-module/components/page-pages/index.js +10 -16
  169. package/build-module/components/page-pages/index.js.map +1 -1
  170. package/build-module/components/page-patterns/use-patterns.js +1 -1
  171. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  172. package/build-module/components/page-templates/dataviews-templates.js +168 -53
  173. package/build-module/components/page-templates/dataviews-templates.js.map +1 -1
  174. package/build-module/components/preferences-modal/index.js +1 -1
  175. package/build-module/components/preferences-modal/index.js.map +1 -1
  176. package/build-module/components/save-button/index.js +11 -8
  177. package/build-module/components/save-button/index.js.map +1 -1
  178. package/build-module/components/save-hub/index.js +14 -0
  179. package/build-module/components/save-hub/index.js.map +1 -1
  180. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +3 -1
  181. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  182. package/build-module/components/sidebar-dataviews/default-views.js +7 -2
  183. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  184. package/build-module/components/sidebar-edit-mode/index.js +6 -5
  185. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  186. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +16 -27
  187. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  188. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +21 -7
  189. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  190. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js +9 -6
  191. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  192. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +5 -9
  193. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  194. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +3 -3
  195. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  196. package/build-module/components/sidebar-edit-mode/settings-header/index.js +10 -6
  197. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  198. package/build-module/components/sidebar-navigation-screen-page/index.js +23 -4
  199. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
  200. package/build-module/components/style-book/index.js +22 -12
  201. package/build-module/components/style-book/index.js.map +1 -1
  202. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +41 -9
  203. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  204. package/build-module/components/welcome-guide/page.js +2 -2
  205. package/build-module/components/welcome-guide/page.js.map +1 -1
  206. package/build-module/components/welcome-guide/template.js +6 -3
  207. package/build-module/components/welcome-guide/template.js.map +1 -1
  208. package/build-module/hooks/commands/use-edit-mode-commands.js +24 -14
  209. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  210. package/build-module/store/actions.js +4 -1
  211. package/build-module/store/actions.js.map +1 -1
  212. package/build-module/store/private-actions.js +1 -25
  213. package/build-module/store/private-actions.js.map +1 -1
  214. package/build-module/store/private-selectors.js +0 -22
  215. package/build-module/store/private-selectors.js.map +1 -1
  216. package/build-module/store/reducer.js +1 -38
  217. package/build-module/store/reducer.js.map +1 -1
  218. package/build-module/store/selectors.js +8 -4
  219. package/build-module/store/selectors.js.map +1 -1
  220. package/build-module/utils/constants.js +0 -10
  221. package/build-module/utils/constants.js.map +1 -1
  222. package/build-style/style-rtl.css +152 -62
  223. package/build-style/style.css +152 -62
  224. package/package.json +41 -41
  225. package/src/components/actions/index.js +76 -48
  226. package/src/components/block-editor/site-editor-canvas.js +8 -2
  227. package/src/components/dataviews/README.md +14 -11
  228. package/src/components/dataviews/add-filter.js +21 -24
  229. package/src/components/dataviews/constants.js +5 -0
  230. package/src/components/dataviews/dataviews.js +10 -10
  231. package/src/components/dataviews/filter-summary.js +79 -0
  232. package/src/components/dataviews/filters.js +18 -35
  233. package/src/components/dataviews/item-actions.js +106 -42
  234. package/src/components/dataviews/pagination.js +4 -0
  235. package/src/components/dataviews/style.scss +84 -8
  236. package/src/components/dataviews/view-actions.js +39 -41
  237. package/src/components/dataviews/view-grid.js +63 -38
  238. package/src/components/dataviews/view-list.js +50 -57
  239. package/src/components/editor/index.js +18 -34
  240. package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  241. package/src/components/global-styles/font-library-modal/utils/index.js +20 -9
  242. package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +46 -15
  243. package/src/components/global-styles/font-library-modal/utils/test/wpKebabCase.spec.js +28 -0
  244. package/src/components/global-styles/header.js +2 -1
  245. package/src/components/global-styles/screen-block-list.js +37 -26
  246. package/src/components/global-styles/screen-revisions/index.js +39 -10
  247. package/src/components/global-styles/screen-revisions/revisions-buttons.js +65 -45
  248. package/src/components/global-styles/screen-revisions/style.scss +52 -28
  249. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +15 -6
  250. package/src/components/global-styles/style.scss +0 -11
  251. package/src/components/global-styles/ui.js +59 -74
  252. package/src/components/header-edit-mode/document-actions/index.js +20 -18
  253. package/src/components/header-edit-mode/index.js +1 -0
  254. package/src/components/header-edit-mode/more-menu/index.js +1 -1
  255. package/src/components/list/added-by.js +23 -63
  256. package/src/components/list/style.scss +11 -13
  257. package/src/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +12 -13
  258. package/src/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  259. package/src/components/page-content-focus-notifications/index.js +14 -0
  260. package/src/components/page-pages/index.js +15 -20
  261. package/src/components/page-patterns/use-patterns.js +1 -1
  262. package/src/components/page-templates/dataviews-templates.js +169 -48
  263. package/src/components/page-templates/style.scss +13 -0
  264. package/src/components/preferences-modal/index.js +1 -1
  265. package/src/components/save-button/index.js +37 -24
  266. package/src/components/save-hub/index.js +15 -0
  267. package/src/components/save-hub/style.scss +7 -0
  268. package/src/components/sidebar-dataviews/custom-dataviews-list.js +2 -0
  269. package/src/components/sidebar-dataviews/default-views.js +7 -2
  270. package/src/components/sidebar-dataviews/style.scss +7 -0
  271. package/src/components/sidebar-edit-mode/index.js +13 -9
  272. package/src/components/sidebar-edit-mode/page-panels/edit-template.js +33 -52
  273. package/src/components/sidebar-edit-mode/page-panels/hooks.js +20 -9
  274. package/src/components/sidebar-edit-mode/page-panels/page-status.js +6 -6
  275. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +8 -9
  276. package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +3 -3
  277. package/src/components/sidebar-edit-mode/page-panels/style.scss +9 -19
  278. package/src/components/sidebar-edit-mode/settings-header/index.js +8 -9
  279. package/src/components/sidebar-navigation-screen/style.scss +1 -0
  280. package/src/components/sidebar-navigation-screen-page/index.js +24 -3
  281. package/src/components/sidebar-navigation-screen-template/style.scss +6 -1
  282. package/src/components/style-book/index.js +48 -35
  283. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +69 -17
  284. package/src/components/welcome-guide/page.js +2 -2
  285. package/src/components/welcome-guide/template.js +4 -2
  286. package/src/hooks/commands/use-edit-mode-commands.js +22 -16
  287. package/src/store/actions.js +5 -1
  288. package/src/store/private-actions.js +1 -24
  289. package/src/store/private-selectors.js +0 -22
  290. package/src/store/reducer.js +0 -39
  291. package/src/store/selectors.js +12 -4
  292. package/src/store/test/actions.js +3 -32
  293. package/src/store/test/reducer.js +0 -62
  294. package/src/store/test/selectors.js +0 -35
  295. package/src/style.scss +1 -0
  296. package/src/utils/constants.js +0 -10
  297. package/build/components/dataviews/in-filter.js +0 -51
  298. package/build/components/dataviews/in-filter.js.map +0 -1
  299. package/build/components/page-content-focus-manager/back-to-page-notification.js.map +0 -1
  300. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -63
  301. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +0 -1
  302. package/build/components/page-content-focus-manager/edit-template-notification.js.map +0 -1
  303. package/build/components/page-content-focus-manager/index.js +0 -61
  304. package/build/components/page-content-focus-manager/index.js.map +0 -1
  305. package/build/components/sidebar-edit-mode/page-panels/publish-date.js +0 -87
  306. package/build/components/sidebar-edit-mode/page-panels/publish-date.js.map +0 -1
  307. package/build-module/components/dataviews/in-filter.js +0 -42
  308. package/build-module/components/dataviews/in-filter.js.map +0 -1
  309. package/build-module/components/page-content-focus-manager/back-to-page-notification.js.map +0 -1
  310. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -56
  311. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +0 -1
  312. package/build-module/components/page-content-focus-manager/edit-template-notification.js.map +0 -1
  313. package/build-module/components/page-content-focus-manager/index.js +0 -52
  314. package/build-module/components/page-content-focus-manager/index.js.map +0 -1
  315. package/build-module/components/sidebar-edit-mode/page-panels/publish-date.js +0 -80
  316. package/build-module/components/sidebar-edit-mode/page-panels/publish-date.js.map +0 -1
  317. package/src/components/dataviews/in-filter.js +0 -63
  318. package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -57
  319. package/src/components/page-content-focus-manager/index.js +0 -51
  320. package/src/components/sidebar-edit-mode/page-panels/publish-date.js +0 -94
@@ -1 +1 @@
1
- {"version":3,"names":["Button","Icon","privateApis","componentsPrivateApis","chevronRightSmall","check","blockTable","arrowUp","arrowDown","grid","columns","__","unlock","DropdownMenuV2","DropdownMenuGroupV2","DropdownMenuItemV2","DropdownSubMenuV2","DropdownSubMenuTriggerV2","availableViews","id","label","ViewTypeMenu","view","onChangeView","supportedLayouts","_availableViews","filter","_view","includes","length","activeView","find","v","type","createElement","trigger","suffix","Fragment","icon","map","availableView","key","prefix","onSelect","event","preventDefault","role","PAGE_SIZE_VALUES","PageSizeMenu","perPage","size","page","FieldsVisibilityMenu","fields","hidableFields","field","enableHiding","hiddenFields","header","sortingItemsInfo","asc","desc","SortMenu","sortableFields","enableSorting","currentSortedField","sort","sortedDirection","direction","side","Object","entries","info","isActive","undefined","VIEW_TYPE_ICONS","list","ViewActions","variant"],"sources":["@wordpress/edit-site/src/components/dataviews/view-actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport {\n\tchevronRightSmall,\n\tcheck,\n\tblockTable,\n\tarrowUp,\n\tarrowDown,\n\tgrid,\n\tcolumns,\n} from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst {\n\tDropdownMenuV2,\n\tDropdownMenuGroupV2,\n\tDropdownMenuItemV2,\n\tDropdownSubMenuV2,\n\tDropdownSubMenuTriggerV2,\n} = unlock( componentsPrivateApis );\n\nconst availableViews = [\n\t{\n\t\tid: 'list',\n\t\tlabel: __( 'List' ),\n\t},\n\t{\n\t\tid: 'grid',\n\t\tlabel: __( 'Grid' ),\n\t},\n\t{\n\t\tid: 'side-by-side',\n\t\tlabel: __( 'Side by side' ),\n\t},\n];\n\nfunction ViewTypeMenu( { view, onChangeView, supportedLayouts } ) {\n\tlet _availableViews = availableViews;\n\tif ( supportedLayouts ) {\n\t\t_availableViews = _availableViews.filter( ( _view ) =>\n\t\t\tsupportedLayouts.includes( _view.id )\n\t\t);\n\t}\n\tif ( _availableViews.length === 1 ) {\n\t\treturn null;\n\t}\n\tconst activeView = _availableViews.find( ( v ) => view.type === v.id );\n\treturn (\n\t\t<DropdownSubMenuV2\n\t\t\ttrigger={\n\t\t\t\t<DropdownSubMenuTriggerV2\n\t\t\t\t\tsuffix={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ activeView.label }\n\t\t\t\t\t\t\t<Icon icon={ chevronRightSmall } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Layout' ) }\n\t\t\t\t</DropdownSubMenuTriggerV2>\n\t\t\t}\n\t\t>\n\t\t\t{ _availableViews.map( ( availableView ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuItemV2\n\t\t\t\t\t\tkey={ availableView.id }\n\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\tavailableView.id === view.type && (\n\t\t\t\t\t\t\t\t<Icon icon={ check } />\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSelect={ ( event ) => {\n\t\t\t\t\t\t\t// We need to handle this on DropDown component probably..\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tonChangeView( { ...view, type: availableView.id } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t// TODO: check about role and a11y.\n\t\t\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ availableView.label }\n\t\t\t\t\t</DropdownMenuItemV2>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownSubMenuV2>\n\t);\n}\n\nconst PAGE_SIZE_VALUES = [ 10, 20, 50, 100 ];\nfunction PageSizeMenu( { view, onChangeView } ) {\n\treturn (\n\t\t<DropdownSubMenuV2\n\t\t\ttrigger={\n\t\t\t\t<DropdownSubMenuTriggerV2\n\t\t\t\t\tsuffix={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ view.perPage }\n\t\t\t\t\t\t\t<Icon icon={ chevronRightSmall } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ /* TODO: probably label per view type. */ }\n\t\t\t\t\t{ __( 'Rows per page' ) }\n\t\t\t\t</DropdownSubMenuTriggerV2>\n\t\t\t}\n\t\t>\n\t\t\t{ PAGE_SIZE_VALUES.map( ( size ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuItemV2\n\t\t\t\t\t\tkey={ size }\n\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\tview.perPage === size && <Icon icon={ check } />\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSelect={ ( event ) => {\n\t\t\t\t\t\t\t// We need to handle this on DropDown component probably..\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tonChangeView( { ...view, perPage: size, page: 1 } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t// TODO: check about role and a11y.\n\t\t\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ size }\n\t\t\t\t\t</DropdownMenuItemV2>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownSubMenuV2>\n\t);\n}\n\nfunction FieldsVisibilityMenu( { view, onChangeView, fields } ) {\n\tconst hidableFields = fields.filter(\n\t\t( field ) => field.enableHiding !== false\n\t);\n\tif ( ! hidableFields?.length ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<DropdownSubMenuV2\n\t\t\ttrigger={\n\t\t\t\t<DropdownSubMenuTriggerV2\n\t\t\t\t\tsuffix={ <Icon icon={ chevronRightSmall } /> }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Fields' ) }\n\t\t\t\t</DropdownSubMenuTriggerV2>\n\t\t\t}\n\t\t>\n\t\t\t{ hidableFields?.map( ( field ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuItemV2\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\t! view.hiddenFields?.includes( field.id ) && (\n\t\t\t\t\t\t\t\t<Icon icon={ check } />\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSelect={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\thiddenFields: view.hiddenFields?.includes(\n\t\t\t\t\t\t\t\t\tfield.id\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t? view.hiddenFields.filter(\n\t\t\t\t\t\t\t\t\t\t\t( id ) => id !== field.id\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: [ ...view.hiddenFields, field.id ],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t</DropdownMenuItemV2>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownSubMenuV2>\n\t);\n}\n\n// This object is used to construct the sorting options per sortable field.\nconst sortingItemsInfo = {\n\tasc: { icon: arrowUp, label: __( 'Sort ascending' ) },\n\tdesc: { icon: arrowDown, label: __( 'Sort descending' ) },\n};\nfunction SortMenu( { fields, view, onChangeView } ) {\n\tconst sortableFields = fields.filter(\n\t\t( field ) => field.enableSorting !== false\n\t);\n\tif ( ! sortableFields?.length ) {\n\t\treturn null;\n\t}\n\tconst currentSortedField = fields.find(\n\t\t( field ) => field.id === view.sort?.field\n\t);\n\treturn (\n\t\t<DropdownSubMenuV2\n\t\t\ttrigger={\n\t\t\t\t<DropdownSubMenuTriggerV2\n\t\t\t\t\tsuffix={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ currentSortedField?.header }\n\t\t\t\t\t\t\t<Icon icon={ chevronRightSmall } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Sort by' ) }\n\t\t\t\t</DropdownSubMenuTriggerV2>\n\t\t\t}\n\t\t>\n\t\t\t{ sortableFields?.map( ( field ) => {\n\t\t\t\tconst sortedDirection = view.sort?.direction;\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownSubMenuV2\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t<DropdownSubMenuTriggerV2\n\t\t\t\t\t\t\t\tsuffix={ <Icon icon={ chevronRightSmall } /> }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t</DropdownSubMenuTriggerV2>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tside=\"left\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ Object.entries( sortingItemsInfo ).map(\n\t\t\t\t\t\t\t( [ direction, info ] ) => {\n\t\t\t\t\t\t\t\tconst isActive =\n\t\t\t\t\t\t\t\t\tcurrentSortedField &&\n\t\t\t\t\t\t\t\t\tsortedDirection === direction &&\n\t\t\t\t\t\t\t\t\tfield.id === currentSortedField.id;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenuItemV2\n\t\t\t\t\t\t\t\t\t\tkey={ direction }\n\t\t\t\t\t\t\t\t\t\tprefix={ <Icon icon={ info.icon } /> }\n\t\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\t\tisActive && <Icon icon={ check } />\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonSelect={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tsortedDirection === direction\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t\tsort: undefined,\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} else {\n\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield: field.id,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdirection,\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ info.label }\n\t\t\t\t\t\t\t\t\t</DropdownMenuItemV2>\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</DropdownSubMenuV2>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownSubMenuV2>\n\t);\n}\n\nconst VIEW_TYPE_ICONS = { list: blockTable, grid, 'side-by-side': columns };\n\nexport default function ViewActions( {\n\tfields,\n\tview,\n\tonChangeView,\n\tsupportedLayouts,\n} ) {\n\treturn (\n\t\t<DropdownMenuV2\n\t\t\tlabel={ __( 'Actions' ) }\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\ticon={\n\t\t\t\t\t\tVIEW_TYPE_ICONS[ view.type ] || VIEW_TYPE_ICONS.list\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ __( 'View' ) }\n\t\t\t\t</Button>\n\t\t\t}\n\t\t>\n\t\t\t<DropdownMenuGroupV2>\n\t\t\t\t<ViewTypeMenu\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tsupportedLayouts={ supportedLayouts }\n\t\t\t\t/>\n\t\t\t\t<SortMenu\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t/>\n\t\t\t\t<FieldsVisibilityMenu\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t/>\n\t\t\t\t<PageSizeMenu view={ view } onChangeView={ onChangeView } />\n\t\t\t</DropdownMenuGroupV2>\n\t\t</DropdownMenuV2>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Button","Icon","privateApis","componentsPrivateApis","chevronRightSmall","check","blockTable","arrowUp","arrowDown","grid","columns","__","unlock","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownSubMenuV2","DropdownSubMenu","DropdownSubMenuTriggerV2","DropdownSubMenuTrigger","availableViews","id","label","ViewTypeMenu","view","onChangeView","supportedLayouts","_availableViews","filter","_view","includes","length","activeView","find","v","type","createElement","trigger","suffix","Fragment","icon","map","availableView","key","prefix","onSelect","event","preventDefault","role","PAGE_SIZE_VALUES","PageSizeMenu","perPage","size","page","FieldsVisibilityMenu","fields","hidableFields","field","enableHiding","hiddenFields","header","sortingItemsInfo","asc","desc","SortMenu","sortableFields","enableSorting","currentSortedField","sort","sortedDirection","direction","side","Object","entries","info","isActive","undefined","VIEW_TYPE_ICONS","list","ViewActions","variant"],"sources":["@wordpress/edit-site/src/components/dataviews/view-actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport {\n\tchevronRightSmall,\n\tcheck,\n\tblockTable,\n\tarrowUp,\n\tarrowDown,\n\tgrid,\n\tcolumns,\n} from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownSubMenuV2: DropdownSubMenu,\n\tDropdownSubMenuTriggerV2: DropdownSubMenuTrigger,\n} = unlock( componentsPrivateApis );\n\nconst availableViews = [\n\t{\n\t\tid: 'list',\n\t\tlabel: __( 'List' ),\n\t},\n\t{\n\t\tid: 'grid',\n\t\tlabel: __( 'Grid' ),\n\t},\n\t{\n\t\tid: 'side-by-side',\n\t\tlabel: __( 'Side by side' ),\n\t},\n];\n\nfunction ViewTypeMenu( { view, onChangeView, supportedLayouts } ) {\n\tlet _availableViews = availableViews;\n\tif ( supportedLayouts ) {\n\t\t_availableViews = _availableViews.filter( ( _view ) =>\n\t\t\tsupportedLayouts.includes( _view.id )\n\t\t);\n\t}\n\tif ( _availableViews.length === 1 ) {\n\t\treturn null;\n\t}\n\tconst activeView = _availableViews.find( ( v ) => view.type === v.id );\n\treturn (\n\t\t<DropdownSubMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownSubMenuTrigger\n\t\t\t\t\tsuffix={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ activeView.label }\n\t\t\t\t\t\t\t<Icon icon={ chevronRightSmall } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Layout' ) }\n\t\t\t\t</DropdownSubMenuTrigger>\n\t\t\t}\n\t\t>\n\t\t\t{ _availableViews.map( ( availableView ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tkey={ availableView.id }\n\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\tavailableView.id === view.type && (\n\t\t\t\t\t\t\t\t<Icon icon={ check } />\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSelect={ ( event ) => {\n\t\t\t\t\t\t\t// We need to handle this on DropDown component probably..\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tonChangeView( { ...view, type: availableView.id } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t// TODO: check about role and a11y.\n\t\t\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ availableView.label }\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownSubMenu>\n\t);\n}\n\nconst PAGE_SIZE_VALUES = [ 10, 20, 50, 100 ];\nfunction PageSizeMenu( { view, onChangeView } ) {\n\treturn (\n\t\t<DropdownSubMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownSubMenuTrigger\n\t\t\t\t\tsuffix={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ view.perPage }\n\t\t\t\t\t\t\t<Icon icon={ chevronRightSmall } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ /* TODO: probably label per view type. */ }\n\t\t\t\t\t{ __( 'Rows per page' ) }\n\t\t\t\t</DropdownSubMenuTrigger>\n\t\t\t}\n\t\t>\n\t\t\t{ PAGE_SIZE_VALUES.map( ( size ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tkey={ size }\n\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\tview.perPage === size && <Icon icon={ check } />\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSelect={ ( event ) => {\n\t\t\t\t\t\t\t// We need to handle this on DropDown component probably..\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tonChangeView( { ...view, perPage: size, page: 1 } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t// TODO: check about role and a11y.\n\t\t\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ size }\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownSubMenu>\n\t);\n}\n\nfunction FieldsVisibilityMenu( { view, onChangeView, fields } ) {\n\tconst hidableFields = fields.filter(\n\t\t( field ) => field.enableHiding !== false\n\t);\n\tif ( ! hidableFields?.length ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<DropdownSubMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownSubMenuTrigger\n\t\t\t\t\tsuffix={ <Icon icon={ chevronRightSmall } /> }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Fields' ) }\n\t\t\t\t</DropdownSubMenuTrigger>\n\t\t\t}\n\t\t>\n\t\t\t{ hidableFields?.map( ( field ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\t! view.hiddenFields?.includes( field.id ) && (\n\t\t\t\t\t\t\t\t<Icon icon={ check } />\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSelect={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\thiddenFields: view.hiddenFields?.includes(\n\t\t\t\t\t\t\t\t\tfield.id\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t? view.hiddenFields.filter(\n\t\t\t\t\t\t\t\t\t\t\t( id ) => id !== field.id\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: [ ...view.hiddenFields, field.id ],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownSubMenu>\n\t);\n}\n\n// This object is used to construct the sorting options per sortable field.\nconst sortingItemsInfo = {\n\tasc: { icon: arrowUp, label: __( 'Sort ascending' ) },\n\tdesc: { icon: arrowDown, label: __( 'Sort descending' ) },\n};\nfunction SortMenu( { fields, view, onChangeView } ) {\n\tconst sortableFields = fields.filter(\n\t\t( field ) => field.enableSorting !== false\n\t);\n\tif ( ! sortableFields?.length ) {\n\t\treturn null;\n\t}\n\tconst currentSortedField = fields.find(\n\t\t( field ) => field.id === view.sort?.field\n\t);\n\treturn (\n\t\t<DropdownSubMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownSubMenuTrigger\n\t\t\t\t\tsuffix={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ currentSortedField?.header }\n\t\t\t\t\t\t\t<Icon icon={ chevronRightSmall } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Sort by' ) }\n\t\t\t\t</DropdownSubMenuTrigger>\n\t\t\t}\n\t\t>\n\t\t\t{ sortableFields?.map( ( field ) => {\n\t\t\t\tconst sortedDirection = view.sort?.direction;\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownSubMenu\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t<DropdownSubMenuTrigger\n\t\t\t\t\t\t\t\tsuffix={ <Icon icon={ chevronRightSmall } /> }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t</DropdownSubMenuTrigger>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tside=\"left\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ Object.entries( sortingItemsInfo ).map(\n\t\t\t\t\t\t\t( [ direction, info ] ) => {\n\t\t\t\t\t\t\t\tconst isActive =\n\t\t\t\t\t\t\t\t\tcurrentSortedField &&\n\t\t\t\t\t\t\t\t\tsortedDirection === direction &&\n\t\t\t\t\t\t\t\t\tfield.id === currentSortedField.id;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\t\t\tkey={ direction }\n\t\t\t\t\t\t\t\t\t\tprefix={ <Icon icon={ info.icon } /> }\n\t\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\t\tisActive && <Icon icon={ check } />\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonSelect={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tsortedDirection === direction\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t\tsort: undefined,\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} else {\n\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield: field.id,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdirection,\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ info.label }\n\t\t\t\t\t\t\t\t\t</DropdownMenuItem>\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</DropdownSubMenu>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownSubMenu>\n\t);\n}\n\nconst VIEW_TYPE_ICONS = { list: blockTable, grid, 'side-by-side': columns };\n\nexport default function ViewActions( {\n\tfields,\n\tview,\n\tonChangeView,\n\tsupportedLayouts,\n} ) {\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\ticon={\n\t\t\t\t\t\tVIEW_TYPE_ICONS[ view.type ] || VIEW_TYPE_ICONS.list\n\t\t\t\t\t}\n\t\t\t\t\tlabel={ __( 'View options' ) }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<DropdownMenuGroup>\n\t\t\t\t<ViewTypeMenu\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tsupportedLayouts={ supportedLayouts }\n\t\t\t\t/>\n\t\t\t\t<SortMenu\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t/>\n\t\t\t\t<FieldsVisibilityMenu\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t/>\n\t\t\t\t<PageSizeMenu view={ view } onChangeView={ onChangeView } />\n\t\t\t</DropdownMenuGroup>\n\t\t</DropdownMenu>\n\t);\n}\n"],"mappings":"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"}
@@ -2,7 +2,8 @@ import { createElement } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
5
- import { __experimentalGrid as Grid, __experimentalHStack as HStack, __experimentalVStack as VStack, FlexBlock, Placeholder } from '@wordpress/components';
5
+ import { __experimentalGrid as Grid, __experimentalHStack as HStack, __experimentalVStack as VStack } from '@wordpress/components';
6
+ import { useAsyncList } from '@wordpress/compose';
6
7
 
7
8
  /**
8
9
  * Internal dependencies
@@ -12,40 +13,62 @@ export function ViewGrid({
12
13
  data,
13
14
  fields,
14
15
  view,
15
- actions
16
+ actions,
17
+ getItemId
16
18
  }) {
17
19
  const mediaField = fields.find(field => field.id === view.layout.mediaField);
18
- const visibleFields = fields.filter(field => !view.hiddenFields.includes(field.id) && field.id !== view.layout.mediaField);
20
+ const primaryField = fields.find(field => field.id === view.layout.primaryField);
21
+ const visibleFields = fields.filter(field => !view.hiddenFields.includes(field.id) && ![view.layout.mediaField, view.layout.primaryField].includes(field.id));
22
+ const shownData = useAsyncList(data, {
23
+ step: 3
24
+ });
19
25
  return createElement(Grid, {
20
26
  gap: 8,
21
27
  columns: 2,
22
- alignment: "top"
23
- }, data.map((item, index) => {
24
- return createElement(VStack, {
25
- key: index
26
- }, createElement("div", {
27
- className: "dataviews-view-grid__media"
28
- }, mediaField?.render({
28
+ alignment: "top",
29
+ className: "dataviews-grid-view"
30
+ }, shownData.map((item, index) => createElement(VStack, {
31
+ spacing: 3,
32
+ key: getItemId?.(item) || index,
33
+ className: "dataviews-view-grid__card"
34
+ }, createElement("div", {
35
+ className: "dataviews-view-grid__media"
36
+ }, mediaField?.render({
37
+ item,
38
+ view
39
+ })), createElement(HStack, {
40
+ className: "dataviews-view-grid__title",
41
+ justify: "space-between"
42
+ }, primaryField?.render({
43
+ item,
44
+ view
45
+ }), createElement(ItemActions, {
46
+ item: item,
47
+ actions: actions,
48
+ isCompact: true
49
+ })), createElement(VStack, {
50
+ className: "dataviews-view-grid__fields",
51
+ spacing: 3
52
+ }, visibleFields.map(field => {
53
+ const renderedValue = field.render({
29
54
  item,
30
55
  view
31
- }) || createElement(Placeholder, {
32
- withIllustration: true,
33
- style: {
34
- width: '100%',
35
- minHeight: '200px'
36
- }
37
- })), createElement(HStack, {
38
- justify: "space-between",
39
- alignment: "top"
40
- }, createElement(FlexBlock, null, createElement(VStack, null, visibleFields.map(field => createElement("div", {
41
- key: field.id
56
+ });
57
+ if (!renderedValue) {
58
+ return null;
59
+ }
60
+ return createElement(VStack, {
61
+ className: "dataviews-view-grid__field",
62
+ key: field.id,
63
+ spacing: 1
64
+ }, createElement("div", {
65
+ className: "dataviews-view-grid__field-header"
66
+ }, field.header), createElement("div", {
67
+ className: "dataviews-view-grid__field-value"
42
68
  }, field.render({
43
69
  item,
44
70
  view
45
- }))))), createElement(FlexBlock, null, createElement(ItemActions, {
46
- item: item,
47
- actions: actions
48
- }))));
49
- }));
71
+ })));
72
+ })))));
50
73
  }
51
74
  //# sourceMappingURL=view-grid.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalGrid","Grid","__experimentalHStack","HStack","__experimentalVStack","VStack","FlexBlock","Placeholder","ItemActions","ViewGrid","data","fields","view","actions","mediaField","find","field","id","layout","visibleFields","filter","hiddenFields","includes","createElement","gap","columns","alignment","map","item","index","key","className","render","withIllustration","style","width","minHeight","justify"],"sources":["@wordpress/edit-site/src/components/dataviews/view-grid.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tFlexBlock,\n\tPlaceholder,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport ItemActions from './item-actions';\n\nexport function ViewGrid( { data, fields, view, actions } ) {\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view.layout.mediaField\n\t);\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\t! view.hiddenFields.includes( field.id ) &&\n\t\t\tfield.id !== view.layout.mediaField\n\t);\n\treturn (\n\t\t<Grid gap={ 8 } columns={ 2 } alignment=\"top\">\n\t\t\t{ data.map( ( item, index ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<VStack key={ index }>\n\t\t\t\t\t\t<div className=\"dataviews-view-grid__media\">\n\t\t\t\t\t\t\t{ mediaField?.render( { item, view } ) || (\n\t\t\t\t\t\t\t\t<Placeholder\n\t\t\t\t\t\t\t\t\twithIllustration\n\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\t\t\tminHeight: '200px',\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</div>\n\n\t\t\t\t\t\t<HStack justify=\"space-between\" alignment=\"top\">\n\t\t\t\t\t\t\t<FlexBlock>\n\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t\t\t<div key={ field.id }>\n\t\t\t\t\t\t\t\t\t\t\t{ field.render( { item, view } ) }\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t\t\t<FlexBlock>\n\t\t\t\t\t\t\t\t<ItemActions\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/>\n\t\t\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</VStack>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Grid>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,kBAAkB,IAAIC,IAAI,EAC1BC,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,EAC9BC,SAAS,EACTC,WAAW,QACL,uBAAuB;;AAE9B;AACA;AACA;AACA,OAAOC,WAAW,MAAM,gBAAgB;AAExC,OAAO,SAASC,QAAQA,CAAE;EAAEC,IAAI;EAAEC,MAAM;EAAEC,IAAI;EAAEC;AAAQ,CAAC,EAAG;EAC3D,MAAMC,UAAU,GAAGH,MAAM,CAACI,IAAI,CAC3BC,KAAK,IAAMA,KAAK,CAACC,EAAE,KAAKL,IAAI,CAACM,MAAM,CAACJ,UACvC,CAAC;EACD,MAAMK,aAAa,GAAGR,MAAM,CAACS,MAAM,CAChCJ,KAAK,IACN,CAAEJ,IAAI,CAACS,YAAY,CAACC,QAAQ,CAAEN,KAAK,CAACC,EAAG,CAAC,IACxCD,KAAK,CAACC,EAAE,KAAKL,IAAI,CAACM,MAAM,CAACJ,UAC3B,CAAC;EACD,OACCS,aAAA,CAACtB,IAAI;IAACuB,GAAG,EAAG,CAAG;IAACC,OAAO,EAAG,CAAG;IAACC,SAAS,EAAC;EAAK,GAC1ChB,IAAI,CAACiB,GAAG,CAAE,CAAEC,IAAI,EAAEC,KAAK,KAAM;IAC9B,OACCN,aAAA,CAAClB,MAAM;MAACyB,GAAG,EAAGD;IAAO,GACpBN,aAAA;MAAKQ,SAAS,EAAC;IAA4B,GACxCjB,UAAU,EAAEkB,MAAM,CAAE;MAAEJ,IAAI;MAAEhB;IAAK,CAAE,CAAC,IACrCW,aAAA,CAAChB,WAAW;MACX0B,gBAAgB;MAChBC,KAAK,EAAG;QACPC,KAAK,EAAE,MAAM;QACbC,SAAS,EAAE;MACZ;IAAG,CACH,CAEE,CAAC,EAENb,aAAA,CAACpB,MAAM;MAACkC,OAAO,EAAC,eAAe;MAACX,SAAS,EAAC;IAAK,GAC9CH,aAAA,CAACjB,SAAS,QACTiB,aAAA,CAAClB,MAAM,QACJc,aAAa,CAACQ,GAAG,CAAIX,KAAK,IAC3BO,aAAA;MAAKO,GAAG,EAAGd,KAAK,CAACC;IAAI,GAClBD,KAAK,CAACgB,MAAM,CAAE;MAAEJ,IAAI;MAAEhB;IAAK,CAAE,CAC3B,CACJ,CACK,CACE,CAAC,EACZW,aAAA,CAACjB,SAAS,QACTiB,aAAA,CAACf,WAAW;MACXoB,IAAI,EAAGA,IAAM;MACbf,OAAO,EAAGA;IAAS,CACnB,CACS,CACJ,CACD,CAAC;EAEX,CAAE,CACG,CAAC;AAET"}
1
+ {"version":3,"names":["__experimentalGrid","Grid","__experimentalHStack","HStack","__experimentalVStack","VStack","useAsyncList","ItemActions","ViewGrid","data","fields","view","actions","getItemId","mediaField","find","field","id","layout","primaryField","visibleFields","filter","hiddenFields","includes","shownData","step","createElement","gap","columns","alignment","className","map","item","index","spacing","key","render","justify","isCompact","renderedValue","header"],"sources":["@wordpress/edit-site/src/components/dataviews/view-grid.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useAsyncList } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport ItemActions from './item-actions';\n\nexport function ViewGrid( { data, fields, view, actions, getItemId } ) {\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view.layout.mediaField\n\t);\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout.primaryField\n\t);\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\t! view.hiddenFields.includes( field.id ) &&\n\t\t\t! [ view.layout.mediaField, view.layout.primaryField ].includes(\n\t\t\t\tfield.id\n\t\t\t)\n\t);\n\tconst shownData = useAsyncList( data, { step: 3 } );\n\treturn (\n\t\t<Grid\n\t\t\tgap={ 8 }\n\t\t\tcolumns={ 2 }\n\t\t\talignment=\"top\"\n\t\t\tclassName=\"dataviews-grid-view\"\n\t\t>\n\t\t\t{ shownData.map( ( item, index ) => (\n\t\t\t\t<VStack\n\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\tkey={ getItemId?.( item ) || index }\n\t\t\t\t\tclassName=\"dataviews-view-grid__card\"\n\t\t\t\t>\n\t\t\t\t\t<div className=\"dataviews-view-grid__media\">\n\t\t\t\t\t\t{ mediaField?.render( { item, view } ) }\n\t\t\t\t\t</div>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tclassName=\"dataviews-view-grid__title\"\n\t\t\t\t\t\tjustify=\"space-between\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ primaryField?.render( { item, view } ) }\n\t\t\t\t\t\t<ItemActions\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\tisCompact\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\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={ 3 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\t\t\t\tconst renderedValue = field.render( {\n\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\tview,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tif ( ! renderedValue ) {\n\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<VStack\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\tspacing={ 1 }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div className=\"dataviews-view-grid__field-header\">\n\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div className=\"dataviews-view-grid__field-value\">\n\t\t\t\t\t\t\t\t\t\t{ field.render( { item, view } ) }\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</VStack>\n\t\t\t) ) }\n\t\t</Grid>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,kBAAkB,IAAIC,IAAI,EAC1BC,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;AAC9B,SAASC,YAAY,QAAQ,oBAAoB;;AAEjD;AACA;AACA;AACA,OAAOC,WAAW,MAAM,gBAAgB;AAExC,OAAO,SAASC,QAAQA,CAAE;EAAEC,IAAI;EAAEC,MAAM;EAAEC,IAAI;EAAEC,OAAO;EAAEC;AAAU,CAAC,EAAG;EACtE,MAAMC,UAAU,GAAGJ,MAAM,CAACK,IAAI,CAC3BC,KAAK,IAAMA,KAAK,CAACC,EAAE,KAAKN,IAAI,CAACO,MAAM,CAACJ,UACvC,CAAC;EACD,MAAMK,YAAY,GAAGT,MAAM,CAACK,IAAI,CAC7BC,KAAK,IAAMA,KAAK,CAACC,EAAE,KAAKN,IAAI,CAACO,MAAM,CAACC,YACvC,CAAC;EACD,MAAMC,aAAa,GAAGV,MAAM,CAACW,MAAM,CAChCL,KAAK,IACN,CAAEL,IAAI,CAACW,YAAY,CAACC,QAAQ,CAAEP,KAAK,CAACC,EAAG,CAAC,IACxC,CAAE,CAAEN,IAAI,CAACO,MAAM,CAACJ,UAAU,EAAEH,IAAI,CAACO,MAAM,CAACC,YAAY,CAAE,CAACI,QAAQ,CAC9DP,KAAK,CAACC,EACP,CACF,CAAC;EACD,MAAMO,SAAS,GAAGlB,YAAY,CAAEG,IAAI,EAAE;IAAEgB,IAAI,EAAE;EAAE,CAAE,CAAC;EACnD,OACCC,aAAA,CAACzB,IAAI;IACJ0B,GAAG,EAAG,CAAG;IACTC,OAAO,EAAG,CAAG;IACbC,SAAS,EAAC,KAAK;IACfC,SAAS,EAAC;EAAqB,GAE7BN,SAAS,CAACO,GAAG,CAAE,CAAEC,IAAI,EAAEC,KAAK,KAC7BP,aAAA,CAACrB,MAAM;IACN6B,OAAO,EAAG,CAAG;IACbC,GAAG,EAAGtB,SAAS,GAAImB,IAAK,CAAC,IAAIC,KAAO;IACpCH,SAAS,EAAC;EAA2B,GAErCJ,aAAA;IAAKI,SAAS,EAAC;EAA4B,GACxChB,UAAU,EAAEsB,MAAM,CAAE;IAAEJ,IAAI;IAAErB;EAAK,CAAE,CACjC,CAAC,EACNe,aAAA,CAACvB,MAAM;IACN2B,SAAS,EAAC,4BAA4B;IACtCO,OAAO,EAAC;EAAe,GAErBlB,YAAY,EAAEiB,MAAM,CAAE;IAAEJ,IAAI;IAAErB;EAAK,CAAE,CAAC,EACxCe,aAAA,CAACnB,WAAW;IACXyB,IAAI,EAAGA,IAAM;IACbpB,OAAO,EAAGA,OAAS;IACnB0B,SAAS;EAAA,CACT,CACM,CAAC,EACTZ,aAAA,CAACrB,MAAM;IACNyB,SAAS,EAAC,6BAA6B;IACvCI,OAAO,EAAG;EAAG,GAEXd,aAAa,CAACW,GAAG,CAAIf,KAAK,IAAM;IACjC,MAAMuB,aAAa,GAAGvB,KAAK,CAACoB,MAAM,CAAE;MACnCJ,IAAI;MACJrB;IACD,CAAE,CAAC;IACH,IAAK,CAAE4B,aAAa,EAAG;MACtB,OAAO,IAAI;IACZ;IACA,OACCb,aAAA,CAACrB,MAAM;MACNyB,SAAS,EAAC,4BAA4B;MACtCK,GAAG,EAAGnB,KAAK,CAACC,EAAI;MAChBiB,OAAO,EAAG;IAAG,GAEbR,aAAA;MAAKI,SAAS,EAAC;IAAmC,GAC/Cd,KAAK,CAACwB,MACJ,CAAC,EACNd,aAAA;MAAKI,SAAS,EAAC;IAAkC,GAC9Cd,KAAK,CAACoB,MAAM,CAAE;MAAEJ,IAAI;MAAErB;IAAK,CAAE,CAC3B,CACE,CAAC;EAEX,CAAE,CACK,CACD,CACP,CACG,CAAC;AAET"}
@@ -8,6 +8,7 @@ import { getCoreRowModel, getFilteredRowModel, getSortedRowModel, getPaginationR
8
8
  * WordPress dependencies
9
9
  */
10
10
  import { __ } from '@wordpress/i18n';
11
+ import { useAsyncList } from '@wordpress/compose';
11
12
  import { chevronDown, chevronUp, unseen, check, arrowUp, arrowDown, chevronRightSmall, funnel } from '@wordpress/icons';
12
13
  import { Button, Icon, privateApis as componentsPrivateApis } from '@wordpress/components';
13
14
  import { useMemo, Children, Fragment } from '@wordpress/element';
@@ -17,13 +18,14 @@ import { useMemo, Children, Fragment } from '@wordpress/element';
17
18
  */
18
19
  import { unlock } from '../../lock-unlock';
19
20
  import ItemActions from './item-actions';
21
+ import { ENUMERATION_TYPE, OPERATOR_IN } from './constants';
20
22
  const {
21
- DropdownMenuV2,
22
- DropdownMenuGroupV2,
23
- DropdownMenuItemV2,
24
- DropdownMenuSeparatorV2,
25
- DropdownSubMenuV2,
26
- DropdownSubMenuTriggerV2
23
+ DropdownMenuV2: DropdownMenu,
24
+ DropdownMenuGroupV2: DropdownMenuGroup,
25
+ DropdownMenuItemV2: DropdownMenuItem,
26
+ DropdownMenuSeparatorV2: DropdownMenuSeparator,
27
+ DropdownSubMenuV2: DropdownSubMenu,
28
+ DropdownSubMenuTriggerV2: DropdownSubMenuTrigger
27
29
  } = unlock(componentsPrivateApis);
28
30
  const EMPTY_OBJECT = {};
29
31
  const sortingItemsInfo = {
@@ -55,17 +57,14 @@ function HeaderMenu({
55
57
  }
56
58
  const sortedDirection = header.column.getIsSorted();
57
59
  let filter;
58
- if (header.column.columnDef.filters?.length > 0 && header.column.columnDef.filters.some(f => 'string' === typeof f && f === 'in')) {
60
+ if (header.column.columnDef.type === ENUMERATION_TYPE) {
59
61
  filter = {
60
62
  field: header.column.columnDef.id,
61
- elements: [{
62
- value: '',
63
- label: __('All')
64
- }, ...(header.column.columnDef.elements || [])]
63
+ elements: header.column.columnDef.elements || []
65
64
  };
66
65
  }
67
66
  const isFilterable = !!filter;
68
- return createElement(DropdownMenuV2, {
67
+ return createElement(DropdownMenu, {
69
68
  align: "start",
70
69
  trigger: createElement(Button, {
71
70
  icon: sortIcons[header.column.getIsSorted()],
@@ -75,7 +74,7 @@ function HeaderMenu({
75
74
  padding: 0
76
75
  }
77
76
  })
78
- }, createElement(WithSeparators, null, isSortable && createElement(DropdownMenuGroupV2, null, Object.entries(sortingItemsInfo).map(([direction, info]) => createElement(DropdownMenuItemV2, {
77
+ }, createElement(WithSeparators, null, isSortable && createElement(DropdownMenuGroup, null, Object.entries(sortingItemsInfo).map(([direction, info]) => createElement(DropdownMenuItem, {
79
78
  key: direction,
80
79
  prefix: createElement(Icon, {
81
80
  icon: info.icon
@@ -94,7 +93,7 @@ function HeaderMenu({
94
93
  }]);
95
94
  }
96
95
  }
97
- }, info.label))), isHidable && createElement(DropdownMenuItemV2, {
96
+ }, info.label))), isHidable && createElement(DropdownMenuItem, {
98
97
  prefix: createElement(Icon, {
99
98
  icon: unseen
100
99
  }),
@@ -102,9 +101,9 @@ function HeaderMenu({
102
101
  event.preventDefault();
103
102
  header.column.getToggleVisibilityHandler()(event);
104
103
  }
105
- }, __('Hide')), isFilterable && createElement(DropdownMenuGroupV2, null, createElement(DropdownSubMenuV2, {
104
+ }, __('Hide')), isFilterable && createElement(DropdownMenuGroup, null, createElement(DropdownSubMenu, {
106
105
  key: filter.field,
107
- trigger: createElement(DropdownSubMenuTriggerV2, {
106
+ trigger: createElement(DropdownSubMenuTrigger, {
108
107
  prefix: createElement(Icon, {
109
108
  icon: funnel
110
109
  }),
@@ -116,11 +115,6 @@ function HeaderMenu({
116
115
  let isActive = false;
117
116
  const columnFilters = dataView.getState().columnFilters;
118
117
  const columnFilter = columnFilters.find(f => Object.keys(f)[0].split(':')[0] === filter.field);
119
-
120
- // Set the empty item as active if the filter is not set.
121
- if (!columnFilter && element.value === '') {
122
- isActive = true;
123
- }
124
118
  if (columnFilter) {
125
119
  const value = Object.values(columnFilter)[0];
126
120
  // Intentionally use loose comparison, so it does type conversion.
@@ -128,7 +122,7 @@ function HeaderMenu({
128
122
  isActive = element.value == value; // eslint-disable-line eqeqeq
129
123
  }
130
124
 
131
- return createElement(DropdownMenuItemV2, {
125
+ return createElement(DropdownMenuItem, {
132
126
  key: element.value,
133
127
  suffix: isActive && createElement(Icon, {
134
128
  icon: check
@@ -136,15 +130,11 @@ function HeaderMenu({
136
130
  onSelect: () => {
137
131
  const otherFilters = columnFilters?.filter(f => {
138
132
  const [field, operator] = Object.keys(f)[0].split(':');
139
- return field !== filter.field || operator !== 'in';
133
+ return field !== filter.field || operator !== OPERATOR_IN;
140
134
  });
141
- if (element.value === '') {
142
- dataView.setColumnFilters(otherFilters);
143
- } else {
144
- dataView.setColumnFilters([...otherFilters, {
145
- [filter.field + ':in']: element.value
146
- }]);
147
- }
135
+ dataView.setColumnFilters([...otherFilters, {
136
+ [filter.field + ':in']: isActive ? undefined : element.value
137
+ }]);
148
138
  }
149
139
  }, element.label);
150
140
  })))));
@@ -154,7 +144,7 @@ function WithSeparators({
154
144
  }) {
155
145
  return Children.toArray(children).filter(Boolean).map((child, i) => createElement(Fragment, {
156
146
  key: i
157
- }, i > 0 && createElement(DropdownMenuSeparatorV2, null), child));
147
+ }, i > 0 && createElement(DropdownMenuSeparator, null), child));
158
148
  }
159
149
  function ViewList({
160
150
  view,
@@ -162,6 +152,7 @@ function ViewList({
162
152
  fields,
163
153
  actions,
164
154
  data,
155
+ getItemId,
165
156
  isLoading = false,
166
157
  paginationInfo
167
158
  }) {
@@ -261,8 +252,9 @@ function ViewList({
261
252
  value
262
253
  };
263
254
  });
255
+ const shownData = useAsyncList(data);
264
256
  const dataView = useReactTable({
265
- data,
257
+ data: shownData,
266
258
  columns,
267
259
  manualSorting: true,
268
260
  manualFiltering: true,
@@ -281,6 +273,7 @@ function ViewList({
281
273
  },
282
274
  columnVisibility: columnVisibility !== null && columnVisibility !== void 0 ? columnVisibility : EMPTY_OBJECT
283
275
  },
276
+ getRowId: getItemId,
284
277
  onSortingChange: sortingUpdater => {
285
278
  onChangeView(currentView => {
286
279
  const sort = typeof sortingUpdater === 'function' ? sortingUpdater(currentView.sort ? [{
@@ -375,6 +368,7 @@ function ViewList({
375
368
  colSpan: header.colSpan,
376
369
  style: {
377
370
  width: header.column.columnDef.width || undefined,
371
+ minWidth: header.column.columnDef.minWidth || undefined,
378
372
  maxWidth: header.column.columnDef.maxWidth || undefined
379
373
  },
380
374
  "data-field-id": header.id
@@ -384,9 +378,10 @@ function ViewList({
384
378
  })))))), createElement("tbody", null, rows.map(row => createElement("tr", {
385
379
  key: row.id
386
380
  }, row.getVisibleCells().map(cell => createElement("td", {
387
- key: cell.id,
381
+ key: cell.column.id,
388
382
  style: {
389
383
  width: cell.column.columnDef.width || undefined,
384
+ minWidth: cell.column.columnDef.minWidth || undefined,
390
385
  maxWidth: cell.column.columnDef.maxWidth || undefined
391
386
  }
392
387
  }, flexRender(cell.column.columnDef.cell, cell.getContext()))))))), !hasRows && createElement("p", null, __('no results')));
@@ -1 +1 @@
1
- {"version":3,"names":["getCoreRowModel","getFilteredRowModel","getSortedRowModel","getPaginationRowModel","useReactTable","flexRender","__","chevronDown","chevronUp","unseen","check","arrowUp","arrowDown","chevronRightSmall","funnel","Button","Icon","privateApis","componentsPrivateApis","useMemo","Children","Fragment","unlock","ItemActions","DropdownMenuV2","DropdownMenuGroupV2","DropdownMenuItemV2","DropdownMenuSeparatorV2","DropdownSubMenuV2","DropdownSubMenuTriggerV2","EMPTY_OBJECT","sortingItemsInfo","asc","icon","label","desc","sortIcons","HeaderMenu","dataView","header","isPlaceholder","text","column","columnDef","getContext","isSortable","getCanSort","isHidable","getCanHide","sortedDirection","getIsSorted","filter","filters","length","some","f","field","id","elements","value","isFilterable","createElement","align","trigger","iconPosition","style","padding","WithSeparators","Object","entries","map","direction","info","key","prefix","suffix","onSelect","event","preventDefault","resetSorting","setSorting","getToggleVisibilityHandler","element","isActive","columnFilters","getState","columnFilter","find","keys","split","values","otherFilters","operator","setColumnFilters","children","toArray","Boolean","child","i","ViewList","view","onChangeView","fields","actions","data","isLoading","paginationInfo","columns","_columns","render","getValue","cell","props","item","row","original","accessorFn","push","enableHiding","columnVisibility","hiddenFields","reduce","accumulator","fieldId","toTanStackColumnFilters","fromTanStackColumnFilters","manualSorting","manualFiltering","manualPagination","enableRowSelection","state","sorting","sort","globalFilter","search","pagination","pageIndex","page","pageSize","perPage","onSortingChange","sortingUpdater","currentView","onColumnVisibilityChange","columnVisibilityUpdater","onGlobalFilterChange","onColumnFiltersChange","columnFiltersUpdater","onPaginationChange","paginationUpdater","pageCount","totalPages","rows","getRowModel","hasRows","className","getHeaderGroups","headerGroup","headers","colSpan","width","undefined","maxWidth","getVisibleCells"],"sources":["@wordpress/edit-site/src/components/dataviews/view-list.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tgetCoreRowModel,\n\tgetFilteredRowModel,\n\tgetSortedRowModel,\n\tgetPaginationRowModel,\n\tuseReactTable,\n\tflexRender,\n} from '@tanstack/react-table';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tchevronDown,\n\tchevronUp,\n\tunseen,\n\tcheck,\n\tarrowUp,\n\tarrowDown,\n\tchevronRightSmall,\n\tfunnel,\n} from '@wordpress/icons';\nimport {\n\tButton,\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useMemo, Children, Fragment } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport ItemActions from './item-actions';\n\nconst {\n\tDropdownMenuV2,\n\tDropdownMenuGroupV2,\n\tDropdownMenuItemV2,\n\tDropdownMenuSeparatorV2,\n\tDropdownSubMenuV2,\n\tDropdownSubMenuTriggerV2,\n} = unlock( componentsPrivateApis );\n\nconst EMPTY_OBJECT = {};\nconst sortingItemsInfo = {\n\tasc: { icon: arrowUp, label: __( 'Sort ascending' ) },\n\tdesc: { icon: arrowDown, label: __( 'Sort descending' ) },\n};\nconst sortIcons = { asc: chevronUp, desc: chevronDown };\nfunction HeaderMenu( { dataView, header } ) {\n\tif ( header.isPlaceholder ) {\n\t\treturn null;\n\t}\n\tconst text = flexRender(\n\t\theader.column.columnDef.header,\n\t\theader.getContext()\n\t);\n\tconst isSortable = !! header.column.getCanSort();\n\tconst isHidable = !! header.column.getCanHide();\n\tif ( ! isSortable && ! isHidable ) {\n\t\treturn text;\n\t}\n\tconst sortedDirection = header.column.getIsSorted();\n\n\tlet filter;\n\tif (\n\t\theader.column.columnDef.filters?.length > 0 &&\n\t\theader.column.columnDef.filters.some(\n\t\t\t( f ) => 'string' === typeof f && f === 'in'\n\t\t)\n\t) {\n\t\tfilter = {\n\t\t\tfield: header.column.columnDef.id,\n\t\t\telements: [\n\t\t\t\t{\n\t\t\t\t\tvalue: '',\n\t\t\t\t\tlabel: __( 'All' ),\n\t\t\t\t},\n\t\t\t\t...( header.column.columnDef.elements || [] ),\n\t\t\t],\n\t\t};\n\t}\n\tconst isFilterable = !! filter;\n\n\treturn (\n\t\t<DropdownMenuV2\n\t\t\talign=\"start\"\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\ticon={ sortIcons[ header.column.getIsSorted() ] }\n\t\t\t\t\ticonPosition=\"right\"\n\t\t\t\t\ttext={ text }\n\t\t\t\t\tstyle={ { padding: 0 } }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<WithSeparators>\n\t\t\t\t{ isSortable && (\n\t\t\t\t\t<DropdownMenuGroupV2>\n\t\t\t\t\t\t{ Object.entries( sortingItemsInfo ).map(\n\t\t\t\t\t\t\t( [ direction, info ] ) => (\n\t\t\t\t\t\t\t\t<DropdownMenuItemV2\n\t\t\t\t\t\t\t\t\tkey={ direction }\n\t\t\t\t\t\t\t\t\tprefix={ <Icon icon={ info.icon } /> }\n\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\tsortedDirection === direction && (\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ check } />\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\tonSelect={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tif ( sortedDirection === direction ) {\n\t\t\t\t\t\t\t\t\t\t\tdataView.resetSorting();\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tdataView.setSorting( [\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tid: header.column.id,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdesc: direction === 'desc',\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ info.label }\n\t\t\t\t\t\t\t\t</DropdownMenuItemV2>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenuGroupV2>\n\t\t\t\t) }\n\t\t\t\t{ isHidable && (\n\t\t\t\t\t<DropdownMenuItemV2\n\t\t\t\t\t\tprefix={ <Icon icon={ unseen } /> }\n\t\t\t\t\t\tonSelect={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\theader.column.getToggleVisibilityHandler()( event );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Hide' ) }\n\t\t\t\t\t</DropdownMenuItemV2>\n\t\t\t\t) }\n\t\t\t\t{ isFilterable && (\n\t\t\t\t\t<DropdownMenuGroupV2>\n\t\t\t\t\t\t<DropdownSubMenuV2\n\t\t\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t<DropdownSubMenuTriggerV2\n\t\t\t\t\t\t\t\t\tprefix={ <Icon icon={ funnel } /> }\n\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ chevronRightSmall } />\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Filter by' ) }\n\t\t\t\t\t\t\t\t</DropdownSubMenuTriggerV2>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ filter.elements.map( ( element ) => {\n\t\t\t\t\t\t\t\tlet isActive = false;\n\t\t\t\t\t\t\t\tconst columnFilters =\n\t\t\t\t\t\t\t\t\tdataView.getState().columnFilters;\n\t\t\t\t\t\t\t\tconst columnFilter = columnFilters.find(\n\t\t\t\t\t\t\t\t\t( f ) =>\n\t\t\t\t\t\t\t\t\t\tObject.keys( f )[ 0 ].split(\n\t\t\t\t\t\t\t\t\t\t\t':'\n\t\t\t\t\t\t\t\t\t\t)[ 0 ] === filter.field\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t// Set the empty item as active if the filter is not set.\n\t\t\t\t\t\t\t\tif ( ! columnFilter && element.value === '' ) {\n\t\t\t\t\t\t\t\t\tisActive = true;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif ( columnFilter ) {\n\t\t\t\t\t\t\t\t\tconst value =\n\t\t\t\t\t\t\t\t\t\tObject.values( columnFilter )[ 0 ];\n\t\t\t\t\t\t\t\t\t// Intentionally use loose comparison, so it does type conversion.\n\t\t\t\t\t\t\t\t\t// This covers the case where a top-level filter for the same field converts a number into a string.\n\t\t\t\t\t\t\t\t\tisActive = element.value == value; // eslint-disable-line eqeqeq\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenuItemV2\n\t\t\t\t\t\t\t\t\t\tkey={ element.value }\n\t\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\t\tisActive && <Icon icon={ check } />\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonSelect={ () => {\n\t\t\t\t\t\t\t\t\t\t\tconst otherFilters =\n\t\t\t\t\t\t\t\t\t\t\t\tcolumnFilters?.filter(\n\t\t\t\t\t\t\t\t\t\t\t\t\t( f ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t] =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)[ 0 ].split( ':' );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield !==\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilter.field ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator !== 'in'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\tif ( element.value === '' ) {\n\t\t\t\t\t\t\t\t\t\t\t\tdataView.setColumnFilters(\n\t\t\t\t\t\t\t\t\t\t\t\t\totherFilters\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} else {\n\t\t\t\t\t\t\t\t\t\t\t\tdataView.setColumnFilters( [\n\t\t\t\t\t\t\t\t\t\t\t\t\t...otherFilters,\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[ filter.field +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t':in' ]: element.value,\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ element.label }\n\t\t\t\t\t\t\t\t\t</DropdownMenuItemV2>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</DropdownSubMenuV2>\n\t\t\t\t\t</DropdownMenuGroupV2>\n\t\t\t\t) }\n\t\t\t</WithSeparators>\n\t\t</DropdownMenuV2>\n\t);\n}\n\nfunction WithSeparators( { children } ) {\n\treturn Children.toArray( children )\n\t\t.filter( Boolean )\n\t\t.map( ( child, i ) => (\n\t\t\t<Fragment key={ i }>\n\t\t\t\t{ i > 0 && <DropdownMenuSeparatorV2 /> }\n\t\t\t\t{ child }\n\t\t\t</Fragment>\n\t\t) );\n}\n\nfunction ViewList( {\n\tview,\n\tonChangeView,\n\tfields,\n\tactions,\n\tdata,\n\tisLoading = false,\n\tpaginationInfo,\n} ) {\n\tconst columns = useMemo( () => {\n\t\tconst _columns = fields.map( ( field ) => {\n\t\t\tconst { render, getValue, ...column } = field;\n\t\t\tcolumn.cell = ( props ) =>\n\t\t\t\trender( { item: props.row.original, view } );\n\t\t\tif ( getValue ) {\n\t\t\t\tcolumn.accessorFn = ( item ) => getValue( { item } );\n\t\t\t}\n\t\t\treturn column;\n\t\t} );\n\t\tif ( actions?.length ) {\n\t\t\t_columns.push( {\n\t\t\t\theader: __( 'Actions' ),\n\t\t\t\tid: 'actions',\n\t\t\t\tcell: ( props ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ItemActions\n\t\t\t\t\t\t\titem={ props.row.original }\n\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tenableHiding: false,\n\t\t\t} );\n\t\t}\n\n\t\treturn _columns;\n\t}, [ fields, actions, view ] );\n\n\tconst columnVisibility = useMemo( () => {\n\t\tif ( ! view.hiddenFields?.length ) {\n\t\t\treturn;\n\t\t}\n\t\treturn view.hiddenFields.reduce(\n\t\t\t( accumulator, fieldId ) => ( {\n\t\t\t\t...accumulator,\n\t\t\t\t[ fieldId ]: false,\n\t\t\t} ),\n\t\t\t{}\n\t\t);\n\t}, [ view.hiddenFields ] );\n\n\t/**\n\t * Transform the filters from the view format into the tanstack columns filter format.\n\t *\n\t * Input:\n\t *\n\t * view.filters = [\n\t * { field: 'date', operator: 'before', value: '2020-01-01' },\n\t * { field: 'date', operator: 'after', value: '2020-01-01' },\n\t * ]\n\t *\n\t * Output:\n\t *\n\t * columnFilters = [\n\t * { \"date:before\": '2020-01-01' },\n\t * { \"date:after\": '2020-01-01' }\n\t * ]\n\t *\n\t * @param {Array} filters The view filters to transform.\n\t * @return {Array} The transformed TanStack column filters.\n\t */\n\tconst toTanStackColumnFilters = ( filters ) =>\n\t\tfilters?.map( ( filter ) => ( {\n\t\t\t[ filter.field + ':' + filter.operator ]: filter.value,\n\t\t} ) );\n\n\t/**\n\t * Transform the filters from the view format into the tanstack columns filter format.\n\t *\n\t * Input:\n\t *\n\t * columnFilters = [\n\t * { \"date:before\": '2020-01-01'},\n\t * { \"date:after\": '2020-01-01' }\n\t * ]\n\t *\n\t * Output:\n\t *\n\t * view.filters = [\n\t * { field: 'date', operator: 'before', value: '2020-01-01' },\n\t * { field: 'date', operator: 'after', value: '2020-01-01' },\n\t * ]\n\t *\n\t * @param {Array} filters The TanStack column filters to transform.\n\t * @return {Array} The transformed view filters.\n\t */\n\tconst fromTanStackColumnFilters = ( filters ) =>\n\t\tfilters.map( ( filter ) => {\n\t\t\tconst [ key, value ] = Object.entries( filter )[ 0 ];\n\t\t\tconst [ field, operator ] = key.split( ':' );\n\t\t\treturn { field, operator, value };\n\t\t} );\n\n\tconst dataView = useReactTable( {\n\t\tdata,\n\t\tcolumns,\n\t\tmanualSorting: true,\n\t\tmanualFiltering: true,\n\t\tmanualPagination: true,\n\t\tenableRowSelection: true,\n\t\tstate: {\n\t\t\tsorting: view.sort\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: view.sort.field,\n\t\t\t\t\t\t\tdesc: view.sort.direction === 'desc',\n\t\t\t\t\t\t},\n\t\t\t\t ]\n\t\t\t\t: [],\n\t\t\tglobalFilter: view.search,\n\t\t\tcolumnFilters: toTanStackColumnFilters( view.filters ),\n\t\t\tpagination: {\n\t\t\t\tpageIndex: view.page,\n\t\t\t\tpageSize: view.perPage,\n\t\t\t},\n\t\t\tcolumnVisibility: columnVisibility ?? EMPTY_OBJECT,\n\t\t},\n\t\tonSortingChange: ( sortingUpdater ) => {\n\t\t\tonChangeView( ( currentView ) => {\n\t\t\t\tconst sort =\n\t\t\t\t\ttypeof sortingUpdater === 'function'\n\t\t\t\t\t\t? sortingUpdater(\n\t\t\t\t\t\t\t\tcurrentView.sort\n\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\t\tid: currentView.sort.field,\n\t\t\t\t\t\t\t\t\t\t\t\tdesc:\n\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentView.sort\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.direction === 'desc',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t ]\n\t\t\t\t\t\t\t\t\t: []\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sortingUpdater;\n\t\t\t\tif ( ! sort.length ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...currentView,\n\t\t\t\t\t\tsort: {},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst [ { id, desc } ] = sort;\n\t\t\t\treturn {\n\t\t\t\t\t...currentView,\n\t\t\t\t\tsort: { field: id, direction: desc ? 'desc' : 'asc' },\n\t\t\t\t};\n\t\t\t} );\n\t\t},\n\t\tonColumnVisibilityChange: ( columnVisibilityUpdater ) => {\n\t\t\tonChangeView( ( currentView ) => {\n\t\t\t\tconst hiddenFields = Object.entries(\n\t\t\t\t\tcolumnVisibilityUpdater()\n\t\t\t\t).reduce(\n\t\t\t\t\t( accumulator, [ fieldId, value ] ) => {\n\t\t\t\t\t\tif ( value ) {\n\t\t\t\t\t\t\treturn accumulator.filter(\n\t\t\t\t\t\t\t\t( id ) => id !== fieldId\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn [ ...accumulator, fieldId ];\n\t\t\t\t\t},\n\t\t\t\t\t[ ...( currentView.hiddenFields || [] ) ]\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\t...currentView,\n\t\t\t\t\thiddenFields,\n\t\t\t\t};\n\t\t\t} );\n\t\t},\n\t\tonGlobalFilterChange: ( value ) => {\n\t\t\tonChangeView( { ...view, search: value, page: 1 } );\n\t\t},\n\t\tonColumnFiltersChange: ( columnFiltersUpdater ) => {\n\t\t\tonChangeView( {\n\t\t\t\t...view,\n\t\t\t\tfilters: fromTanStackColumnFilters( columnFiltersUpdater() ),\n\t\t\t\tpage: 1,\n\t\t\t} );\n\t\t},\n\t\tonPaginationChange: ( paginationUpdater ) => {\n\t\t\tonChangeView( ( currentView ) => {\n\t\t\t\tconst { pageIndex, pageSize } = paginationUpdater( {\n\t\t\t\t\tpageIndex: currentView.page,\n\t\t\t\t\tpageSize: currentView.perPage,\n\t\t\t\t} );\n\t\t\t\treturn { ...view, page: pageIndex, perPage: pageSize };\n\t\t\t} );\n\t\t},\n\t\tgetCoreRowModel: getCoreRowModel(),\n\t\tgetFilteredRowModel: getFilteredRowModel(),\n\t\tgetSortedRowModel: getSortedRowModel(),\n\t\tgetPaginationRowModel: getPaginationRowModel(),\n\t\tpageCount: paginationInfo.totalPages,\n\t} );\n\n\tconst { rows } = dataView.getRowModel();\n\tconst hasRows = !! rows?.length;\n\tif ( isLoading ) {\n\t\t// TODO:Add spinner or progress bar..\n\t\treturn <h3>{ __( 'Loading' ) }</h3>;\n\t}\n\treturn (\n\t\t<div className=\"dataviews-list-view-wrapper\">\n\t\t\t{ hasRows && (\n\t\t\t\t<table className=\"dataviews-list-view\">\n\t\t\t\t\t<thead>\n\t\t\t\t\t\t{ dataView.getHeaderGroups().map( ( headerGroup ) => (\n\t\t\t\t\t\t\t<tr key={ headerGroup.id }>\n\t\t\t\t\t\t\t\t{ headerGroup.headers.map( ( header ) => (\n\t\t\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\t\t\tkey={ header.id }\n\t\t\t\t\t\t\t\t\t\tcolSpan={ header.colSpan }\n\t\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t\t\theader.column.columnDef.width ||\n\t\t\t\t\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t\t\t\tmaxWidth:\n\t\t\t\t\t\t\t\t\t\t\t\theader.column.columnDef\n\t\t\t\t\t\t\t\t\t\t\t\t\t.maxWidth || undefined,\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tdata-field-id={ header.id }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<HeaderMenu\n\t\t\t\t\t\t\t\t\t\t\tdataView={ dataView }\n\t\t\t\t\t\t\t\t\t\t\theader={ header }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</thead>\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t{ rows.map( ( row ) => (\n\t\t\t\t\t\t\t<tr key={ row.id }>\n\t\t\t\t\t\t\t\t{ row.getVisibleCells().map( ( cell ) => (\n\t\t\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\t\t\tkey={ cell.id }\n\t\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t\t\tcell.column.columnDef.width ||\n\t\t\t\t\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t\t\t\tmaxWidth:\n\t\t\t\t\t\t\t\t\t\t\t\tcell.column.columnDef\n\t\t\t\t\t\t\t\t\t\t\t\t\t.maxWidth || undefined,\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ flexRender(\n\t\t\t\t\t\t\t\t\t\t\tcell.column.columnDef.cell,\n\t\t\t\t\t\t\t\t\t\t\tcell.getContext()\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</tbody>\n\t\t\t\t</table>\n\t\t\t) }\n\t\t\t{ ! hasRows && <p>{ __( 'no results' ) }</p> }\n\t\t</div>\n\t);\n}\n\nexport default ViewList;\n"],"mappings":"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"}
1
+ {"version":3,"names":["getCoreRowModel","getFilteredRowModel","getSortedRowModel","getPaginationRowModel","useReactTable","flexRender","__","useAsyncList","chevronDown","chevronUp","unseen","check","arrowUp","arrowDown","chevronRightSmall","funnel","Button","Icon","privateApis","componentsPrivateApis","useMemo","Children","Fragment","unlock","ItemActions","ENUMERATION_TYPE","OPERATOR_IN","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuSeparatorV2","DropdownMenuSeparator","DropdownSubMenuV2","DropdownSubMenu","DropdownSubMenuTriggerV2","DropdownSubMenuTrigger","EMPTY_OBJECT","sortingItemsInfo","asc","icon","label","desc","sortIcons","HeaderMenu","dataView","header","isPlaceholder","text","column","columnDef","getContext","isSortable","getCanSort","isHidable","getCanHide","sortedDirection","getIsSorted","filter","type","field","id","elements","isFilterable","createElement","align","trigger","iconPosition","style","padding","WithSeparators","Object","entries","map","direction","info","key","prefix","suffix","onSelect","event","preventDefault","resetSorting","setSorting","getToggleVisibilityHandler","element","isActive","columnFilters","getState","columnFilter","find","f","keys","split","value","values","otherFilters","operator","setColumnFilters","undefined","children","toArray","Boolean","child","i","ViewList","view","onChangeView","fields","actions","data","getItemId","isLoading","paginationInfo","columns","_columns","render","getValue","cell","props","item","row","original","accessorFn","length","push","enableHiding","columnVisibility","hiddenFields","reduce","accumulator","fieldId","toTanStackColumnFilters","filters","fromTanStackColumnFilters","shownData","manualSorting","manualFiltering","manualPagination","enableRowSelection","state","sorting","sort","globalFilter","search","pagination","pageIndex","page","pageSize","perPage","getRowId","onSortingChange","sortingUpdater","currentView","onColumnVisibilityChange","columnVisibilityUpdater","onGlobalFilterChange","onColumnFiltersChange","columnFiltersUpdater","onPaginationChange","paginationUpdater","pageCount","totalPages","rows","getRowModel","hasRows","className","getHeaderGroups","headerGroup","headers","colSpan","width","minWidth","maxWidth","getVisibleCells"],"sources":["@wordpress/edit-site/src/components/dataviews/view-list.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tgetCoreRowModel,\n\tgetFilteredRowModel,\n\tgetSortedRowModel,\n\tgetPaginationRowModel,\n\tuseReactTable,\n\tflexRender,\n} from '@tanstack/react-table';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useAsyncList } from '@wordpress/compose';\nimport {\n\tchevronDown,\n\tchevronUp,\n\tunseen,\n\tcheck,\n\tarrowUp,\n\tarrowDown,\n\tchevronRightSmall,\n\tfunnel,\n} from '@wordpress/icons';\nimport {\n\tButton,\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useMemo, Children, Fragment } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport ItemActions from './item-actions';\nimport { ENUMERATION_TYPE, OPERATOR_IN } from './constants';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuSeparatorV2: DropdownMenuSeparator,\n\tDropdownSubMenuV2: DropdownSubMenu,\n\tDropdownSubMenuTriggerV2: DropdownSubMenuTrigger,\n} = unlock( componentsPrivateApis );\n\nconst EMPTY_OBJECT = {};\nconst sortingItemsInfo = {\n\tasc: { icon: arrowUp, label: __( 'Sort ascending' ) },\n\tdesc: { icon: arrowDown, label: __( 'Sort descending' ) },\n};\nconst sortIcons = { asc: chevronUp, desc: chevronDown };\n\nfunction HeaderMenu( { dataView, header } ) {\n\tif ( header.isPlaceholder ) {\n\t\treturn null;\n\t}\n\tconst text = flexRender(\n\t\theader.column.columnDef.header,\n\t\theader.getContext()\n\t);\n\tconst isSortable = !! header.column.getCanSort();\n\tconst isHidable = !! header.column.getCanHide();\n\tif ( ! isSortable && ! isHidable ) {\n\t\treturn text;\n\t}\n\tconst sortedDirection = header.column.getIsSorted();\n\n\tlet filter;\n\tif ( header.column.columnDef.type === ENUMERATION_TYPE ) {\n\t\tfilter = {\n\t\t\tfield: header.column.columnDef.id,\n\t\t\telements: header.column.columnDef.elements || [],\n\t\t};\n\t}\n\tconst isFilterable = !! filter;\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\talign=\"start\"\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\ticon={ sortIcons[ header.column.getIsSorted() ] }\n\t\t\t\t\ticonPosition=\"right\"\n\t\t\t\t\ttext={ text }\n\t\t\t\t\tstyle={ { padding: 0 } }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<WithSeparators>\n\t\t\t\t{ isSortable && (\n\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t{ Object.entries( sortingItemsInfo ).map(\n\t\t\t\t\t\t\t( [ direction, info ] ) => (\n\t\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\t\tkey={ direction }\n\t\t\t\t\t\t\t\t\tprefix={ <Icon icon={ info.icon } /> }\n\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\tsortedDirection === direction && (\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ check } />\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\tonSelect={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tif ( sortedDirection === direction ) {\n\t\t\t\t\t\t\t\t\t\t\tdataView.resetSorting();\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tdataView.setSorting( [\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tid: header.column.id,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdesc: direction === 'desc',\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ info.label }\n\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t) }\n\t\t\t\t{ isHidable && (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tprefix={ <Icon icon={ unseen } /> }\n\t\t\t\t\t\tonSelect={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\theader.column.getToggleVisibilityHandler()( event );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Hide' ) }\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t) }\n\t\t\t\t{ isFilterable && (\n\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t<DropdownSubMenu\n\t\t\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t<DropdownSubMenuTrigger\n\t\t\t\t\t\t\t\t\tprefix={ <Icon icon={ funnel } /> }\n\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ chevronRightSmall } />\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Filter by' ) }\n\t\t\t\t\t\t\t\t</DropdownSubMenuTrigger>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ filter.elements.map( ( element ) => {\n\t\t\t\t\t\t\t\tlet isActive = false;\n\t\t\t\t\t\t\t\tconst columnFilters =\n\t\t\t\t\t\t\t\t\tdataView.getState().columnFilters;\n\t\t\t\t\t\t\t\tconst columnFilter = columnFilters.find(\n\t\t\t\t\t\t\t\t\t( f ) =>\n\t\t\t\t\t\t\t\t\t\tObject.keys( f )[ 0 ].split(\n\t\t\t\t\t\t\t\t\t\t\t':'\n\t\t\t\t\t\t\t\t\t\t)[ 0 ] === filter.field\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tif ( columnFilter ) {\n\t\t\t\t\t\t\t\t\tconst value =\n\t\t\t\t\t\t\t\t\t\tObject.values( columnFilter )[ 0 ];\n\t\t\t\t\t\t\t\t\t// Intentionally use loose comparison, so it does type conversion.\n\t\t\t\t\t\t\t\t\t// This covers the case where a top-level filter for the same field converts a number into a string.\n\t\t\t\t\t\t\t\t\tisActive = element.value == value; // eslint-disable-line eqeqeq\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\t\t\tkey={ element.value }\n\t\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\t\tisActive && <Icon icon={ check } />\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonSelect={ () => {\n\t\t\t\t\t\t\t\t\t\t\tconst otherFilters =\n\t\t\t\t\t\t\t\t\t\t\t\tcolumnFilters?.filter(\n\t\t\t\t\t\t\t\t\t\t\t\t\t( f ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t] =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)[ 0 ].split( ':' );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield !==\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilter.field ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator !==\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tOPERATOR_IN\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\tdataView.setColumnFilters( [\n\t\t\t\t\t\t\t\t\t\t\t\t...otherFilters,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ filter.field + ':in' ]:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisActive\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: element.value,\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ element.label }\n\t\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</DropdownSubMenu>\n\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t) }\n\t\t\t</WithSeparators>\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction WithSeparators( { children } ) {\n\treturn Children.toArray( children )\n\t\t.filter( Boolean )\n\t\t.map( ( child, i ) => (\n\t\t\t<Fragment key={ i }>\n\t\t\t\t{ i > 0 && <DropdownMenuSeparator /> }\n\t\t\t\t{ child }\n\t\t\t</Fragment>\n\t\t) );\n}\n\nfunction ViewList( {\n\tview,\n\tonChangeView,\n\tfields,\n\tactions,\n\tdata,\n\tgetItemId,\n\tisLoading = false,\n\tpaginationInfo,\n} ) {\n\tconst columns = useMemo( () => {\n\t\tconst _columns = fields.map( ( field ) => {\n\t\t\tconst { render, getValue, ...column } = field;\n\t\t\tcolumn.cell = ( props ) =>\n\t\t\t\trender( { item: props.row.original, view } );\n\t\t\tif ( getValue ) {\n\t\t\t\tcolumn.accessorFn = ( item ) => getValue( { item } );\n\t\t\t}\n\t\t\treturn column;\n\t\t} );\n\t\tif ( actions?.length ) {\n\t\t\t_columns.push( {\n\t\t\t\theader: __( 'Actions' ),\n\t\t\t\tid: 'actions',\n\t\t\t\tcell: ( props ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ItemActions\n\t\t\t\t\t\t\titem={ props.row.original }\n\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tenableHiding: false,\n\t\t\t} );\n\t\t}\n\n\t\treturn _columns;\n\t}, [ fields, actions, view ] );\n\n\tconst columnVisibility = useMemo( () => {\n\t\tif ( ! view.hiddenFields?.length ) {\n\t\t\treturn;\n\t\t}\n\t\treturn view.hiddenFields.reduce(\n\t\t\t( accumulator, fieldId ) => ( {\n\t\t\t\t...accumulator,\n\t\t\t\t[ fieldId ]: false,\n\t\t\t} ),\n\t\t\t{}\n\t\t);\n\t}, [ view.hiddenFields ] );\n\n\t/**\n\t * Transform the filters from the view format into the tanstack columns filter format.\n\t *\n\t * Input:\n\t *\n\t * view.filters = [\n\t * { field: 'date', operator: 'before', value: '2020-01-01' },\n\t * { field: 'date', operator: 'after', value: '2020-01-01' },\n\t * ]\n\t *\n\t * Output:\n\t *\n\t * columnFilters = [\n\t * { \"date:before\": '2020-01-01' },\n\t * { \"date:after\": '2020-01-01' }\n\t * ]\n\t *\n\t * @param {Array} filters The view filters to transform.\n\t * @return {Array} The transformed TanStack column filters.\n\t */\n\tconst toTanStackColumnFilters = ( filters ) =>\n\t\tfilters?.map( ( filter ) => ( {\n\t\t\t[ filter.field + ':' + filter.operator ]: filter.value,\n\t\t} ) );\n\n\t/**\n\t * Transform the filters from the view format into the tanstack columns filter format.\n\t *\n\t * Input:\n\t *\n\t * columnFilters = [\n\t * { \"date:before\": '2020-01-01'},\n\t * { \"date:after\": '2020-01-01' }\n\t * ]\n\t *\n\t * Output:\n\t *\n\t * view.filters = [\n\t * { field: 'date', operator: 'before', value: '2020-01-01' },\n\t * { field: 'date', operator: 'after', value: '2020-01-01' },\n\t * ]\n\t *\n\t * @param {Array} filters The TanStack column filters to transform.\n\t * @return {Array} The transformed view filters.\n\t */\n\tconst fromTanStackColumnFilters = ( filters ) =>\n\t\tfilters.map( ( filter ) => {\n\t\t\tconst [ key, value ] = Object.entries( filter )[ 0 ];\n\t\t\tconst [ field, operator ] = key.split( ':' );\n\t\t\treturn { field, operator, value };\n\t\t} );\n\n\tconst shownData = useAsyncList( data );\n\tconst dataView = useReactTable( {\n\t\tdata: shownData,\n\t\tcolumns,\n\t\tmanualSorting: true,\n\t\tmanualFiltering: true,\n\t\tmanualPagination: true,\n\t\tenableRowSelection: true,\n\t\tstate: {\n\t\t\tsorting: view.sort\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: view.sort.field,\n\t\t\t\t\t\t\tdesc: view.sort.direction === 'desc',\n\t\t\t\t\t\t},\n\t\t\t\t ]\n\t\t\t\t: [],\n\t\t\tglobalFilter: view.search,\n\t\t\tcolumnFilters: toTanStackColumnFilters( view.filters ),\n\t\t\tpagination: {\n\t\t\t\tpageIndex: view.page,\n\t\t\t\tpageSize: view.perPage,\n\t\t\t},\n\t\t\tcolumnVisibility: columnVisibility ?? EMPTY_OBJECT,\n\t\t},\n\t\tgetRowId: getItemId,\n\t\tonSortingChange: ( sortingUpdater ) => {\n\t\t\tonChangeView( ( currentView ) => {\n\t\t\t\tconst sort =\n\t\t\t\t\ttypeof sortingUpdater === 'function'\n\t\t\t\t\t\t? sortingUpdater(\n\t\t\t\t\t\t\t\tcurrentView.sort\n\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\t\tid: currentView.sort.field,\n\t\t\t\t\t\t\t\t\t\t\t\tdesc:\n\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentView.sort\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.direction === 'desc',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t ]\n\t\t\t\t\t\t\t\t\t: []\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sortingUpdater;\n\t\t\t\tif ( ! sort.length ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...currentView,\n\t\t\t\t\t\tsort: {},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst [ { id, desc } ] = sort;\n\t\t\t\treturn {\n\t\t\t\t\t...currentView,\n\t\t\t\t\tsort: { field: id, direction: desc ? 'desc' : 'asc' },\n\t\t\t\t};\n\t\t\t} );\n\t\t},\n\t\tonColumnVisibilityChange: ( columnVisibilityUpdater ) => {\n\t\t\tonChangeView( ( currentView ) => {\n\t\t\t\tconst hiddenFields = Object.entries(\n\t\t\t\t\tcolumnVisibilityUpdater()\n\t\t\t\t).reduce(\n\t\t\t\t\t( accumulator, [ fieldId, value ] ) => {\n\t\t\t\t\t\tif ( value ) {\n\t\t\t\t\t\t\treturn accumulator.filter(\n\t\t\t\t\t\t\t\t( id ) => id !== fieldId\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn [ ...accumulator, fieldId ];\n\t\t\t\t\t},\n\t\t\t\t\t[ ...( currentView.hiddenFields || [] ) ]\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\t...currentView,\n\t\t\t\t\thiddenFields,\n\t\t\t\t};\n\t\t\t} );\n\t\t},\n\t\tonGlobalFilterChange: ( value ) => {\n\t\t\tonChangeView( { ...view, search: value, page: 1 } );\n\t\t},\n\t\tonColumnFiltersChange: ( columnFiltersUpdater ) => {\n\t\t\tonChangeView( {\n\t\t\t\t...view,\n\t\t\t\tfilters: fromTanStackColumnFilters( columnFiltersUpdater() ),\n\t\t\t\tpage: 1,\n\t\t\t} );\n\t\t},\n\t\tonPaginationChange: ( paginationUpdater ) => {\n\t\t\tonChangeView( ( currentView ) => {\n\t\t\t\tconst { pageIndex, pageSize } = paginationUpdater( {\n\t\t\t\t\tpageIndex: currentView.page,\n\t\t\t\t\tpageSize: currentView.perPage,\n\t\t\t\t} );\n\t\t\t\treturn { ...view, page: pageIndex, perPage: pageSize };\n\t\t\t} );\n\t\t},\n\t\tgetCoreRowModel: getCoreRowModel(),\n\t\tgetFilteredRowModel: getFilteredRowModel(),\n\t\tgetSortedRowModel: getSortedRowModel(),\n\t\tgetPaginationRowModel: getPaginationRowModel(),\n\t\tpageCount: paginationInfo.totalPages,\n\t} );\n\n\tconst { rows } = dataView.getRowModel();\n\tconst hasRows = !! rows?.length;\n\tif ( isLoading ) {\n\t\t// TODO:Add spinner or progress bar..\n\t\treturn <h3>{ __( 'Loading' ) }</h3>;\n\t}\n\treturn (\n\t\t<div className=\"dataviews-list-view-wrapper\">\n\t\t\t{ hasRows && (\n\t\t\t\t<table className=\"dataviews-list-view\">\n\t\t\t\t\t<thead>\n\t\t\t\t\t\t{ dataView.getHeaderGroups().map( ( headerGroup ) => (\n\t\t\t\t\t\t\t<tr key={ headerGroup.id }>\n\t\t\t\t\t\t\t\t{ headerGroup.headers.map( ( header ) => (\n\t\t\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\t\t\tkey={ header.id }\n\t\t\t\t\t\t\t\t\t\tcolSpan={ header.colSpan }\n\t\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t\t\theader.column.columnDef.width ||\n\t\t\t\t\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t\t\t\tminWidth:\n\t\t\t\t\t\t\t\t\t\t\t\theader.column.columnDef\n\t\t\t\t\t\t\t\t\t\t\t\t\t.minWidth || undefined,\n\t\t\t\t\t\t\t\t\t\t\tmaxWidth:\n\t\t\t\t\t\t\t\t\t\t\t\theader.column.columnDef\n\t\t\t\t\t\t\t\t\t\t\t\t\t.maxWidth || undefined,\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tdata-field-id={ header.id }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<HeaderMenu\n\t\t\t\t\t\t\t\t\t\t\tdataView={ dataView }\n\t\t\t\t\t\t\t\t\t\t\theader={ header }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</thead>\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t{ rows.map( ( row ) => (\n\t\t\t\t\t\t\t<tr key={ row.id }>\n\t\t\t\t\t\t\t\t{ row.getVisibleCells().map( ( cell ) => (\n\t\t\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\t\t\tkey={ cell.column.id }\n\t\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t\t\tcell.column.columnDef.width ||\n\t\t\t\t\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t\t\t\tminWidth:\n\t\t\t\t\t\t\t\t\t\t\t\tcell.column.columnDef\n\t\t\t\t\t\t\t\t\t\t\t\t\t.minWidth || undefined,\n\t\t\t\t\t\t\t\t\t\t\tmaxWidth:\n\t\t\t\t\t\t\t\t\t\t\t\tcell.column.columnDef\n\t\t\t\t\t\t\t\t\t\t\t\t\t.maxWidth || undefined,\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ flexRender(\n\t\t\t\t\t\t\t\t\t\t\tcell.column.columnDef.cell,\n\t\t\t\t\t\t\t\t\t\t\tcell.getContext()\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</tbody>\n\t\t\t\t</table>\n\t\t\t) }\n\t\t\t{ ! hasRows && <p>{ __( 'no results' ) }</p> }\n\t\t</div>\n\t);\n}\n\nexport default ViewList;\n"],"mappings":"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"}