@wordpress/edit-site 5.22.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 (524) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/actions/index.js +115 -15
  3. package/build/components/actions/index.js.map +1 -1
  4. package/build/components/add-new-template/new-template.js +0 -7
  5. package/build/components/add-new-template/new-template.js.map +1 -1
  6. package/build/components/block-editor/site-editor-canvas.js +7 -2
  7. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  8. package/build/components/block-editor/use-site-editor-settings.js +54 -63
  9. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  10. package/build/components/dataviews/add-filter.js +91 -0
  11. package/build/components/dataviews/add-filter.js.map +1 -0
  12. package/build/components/dataviews/constants.js +14 -0
  13. package/build/components/dataviews/constants.js.map +1 -0
  14. package/build/components/dataviews/dataviews.js +30 -9
  15. package/build/components/dataviews/dataviews.js.map +1 -1
  16. package/build/components/dataviews/filter-summary.js +62 -0
  17. package/build/components/dataviews/filter-summary.js.map +1 -0
  18. package/build/components/dataviews/filters.js +37 -48
  19. package/build/components/dataviews/filters.js.map +1 -1
  20. package/build/components/dataviews/index.js +9 -2
  21. package/build/components/dataviews/index.js.map +1 -1
  22. package/build/components/dataviews/item-actions.js +139 -17
  23. package/build/components/dataviews/item-actions.js.map +1 -1
  24. package/build/components/dataviews/pagination.js +7 -2
  25. package/build/components/dataviews/pagination.js.map +1 -1
  26. package/build/components/dataviews/reset-filters.js +33 -0
  27. package/build/components/dataviews/reset-filters.js.map +1 -0
  28. package/build/components/dataviews/search.js +1 -0
  29. package/build/components/dataviews/search.js.map +1 -1
  30. package/build/components/dataviews/view-actions.js +49 -32
  31. package/build/components/dataviews/view-actions.js.map +1 -1
  32. package/build/components/dataviews/view-grid.js +48 -25
  33. package/build/components/dataviews/view-grid.js.map +1 -1
  34. package/build/components/dataviews/view-list.js +130 -14
  35. package/build/components/dataviews/view-list.js.map +1 -1
  36. package/build/components/dataviews/view-side-by-side.js +20 -0
  37. package/build/components/dataviews/view-side-by-side.js.map +1 -0
  38. package/build/components/editor/index.js +52 -56
  39. package/build/components/editor/index.js.map +1 -1
  40. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  41. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -1
  42. package/build/components/global-styles/font-library-modal/utils/index.js +15 -2
  43. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  44. package/build/components/global-styles/header.js +4 -2
  45. package/build/components/global-styles/header.js.map +1 -1
  46. package/build/components/global-styles/screen-block-list.js +22 -16
  47. package/build/components/global-styles/screen-block-list.js.map +1 -1
  48. package/build/components/global-styles/screen-revisions/index.js +66 -24
  49. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  50. package/build/components/global-styles/screen-revisions/revisions-buttons.js +52 -24
  51. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  52. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +9 -3
  53. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  54. package/build/components/global-styles/screen-root.js +3 -3
  55. package/build/components/global-styles/screen-root.js.map +1 -1
  56. package/build/components/global-styles/ui.js +31 -39
  57. package/build/components/global-styles/ui.js.map +1 -1
  58. package/build/components/global-styles-renderer/index.js +1 -1
  59. package/build/components/global-styles-renderer/index.js.map +1 -1
  60. package/build/components/header-edit-mode/document-actions/index.js +21 -16
  61. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  62. package/build/components/header-edit-mode/document-tools/index.js +160 -0
  63. package/build/components/header-edit-mode/document-tools/index.js.map +1 -0
  64. package/build/components/header-edit-mode/index.js +50 -117
  65. package/build/components/header-edit-mode/index.js.map +1 -1
  66. package/build/components/header-edit-mode/more-menu/index.js +1 -1
  67. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  68. package/build/components/header-edit-mode/more-menu/site-export.js +2 -6
  69. package/build/components/header-edit-mode/more-menu/site-export.js.map +1 -1
  70. package/build/components/layout/index.js +4 -19
  71. package/build/components/layout/index.js.map +1 -1
  72. package/build/components/list/added-by.js +44 -54
  73. package/build/components/list/added-by.js.map +1 -1
  74. package/build/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +11 -15
  75. package/build/components/page-content-focus-notifications/back-to-page-notification.js.map +1 -0
  76. package/build/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  77. package/build/components/page-content-focus-notifications/edit-template-notification.js.map +1 -0
  78. package/build/components/page-content-focus-notifications/index.js +22 -0
  79. package/build/components/page-content-focus-notifications/index.js.map +1 -0
  80. package/build/components/page-main/index.js +2 -1
  81. package/build/components/page-main/index.js.map +1 -1
  82. package/build/components/page-pages/index.js +137 -88
  83. package/build/components/page-pages/index.js.map +1 -1
  84. package/build/components/page-pages/side-editor.js +25 -0
  85. package/build/components/page-pages/side-editor.js.map +1 -0
  86. package/build/components/page-patterns/grid-item.js +2 -2
  87. package/build/components/page-patterns/grid-item.js.map +1 -1
  88. package/build/components/page-patterns/patterns-list.js +3 -3
  89. package/build/components/page-patterns/patterns-list.js.map +1 -1
  90. package/build/components/page-patterns/use-patterns.js +2 -2
  91. package/build/components/page-patterns/use-patterns.js.map +1 -1
  92. package/build/components/page-templates/dataviews-templates.js +316 -0
  93. package/build/components/page-templates/dataviews-templates.js.map +1 -0
  94. package/build/components/page-templates/template-actions.js +168 -0
  95. package/build/components/page-templates/template-actions.js.map +1 -0
  96. package/build/components/preferences-modal/index.js +1 -1
  97. package/build/components/preferences-modal/index.js.map +1 -1
  98. package/build/components/save-button/index.js +9 -6
  99. package/build/components/save-button/index.js.map +1 -1
  100. package/build/components/save-hub/index.js +14 -0
  101. package/build/components/save-hub/index.js.map +1 -1
  102. package/build/components/sidebar/index.js +1 -2
  103. package/build/components/sidebar/index.js.map +1 -1
  104. package/build/components/sidebar-dataviews/add-new-view.js +124 -0
  105. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -0
  106. package/build/components/sidebar-dataviews/custom-dataviews-list.js +191 -0
  107. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -0
  108. package/build/components/sidebar-dataviews/dataview-item.js +71 -0
  109. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -0
  110. package/build/components/sidebar-dataviews/default-views.js +65 -0
  111. package/build/components/sidebar-dataviews/default-views.js.map +1 -0
  112. package/build/components/sidebar-dataviews/index.js +21 -38
  113. package/build/components/sidebar-dataviews/index.js.map +1 -1
  114. package/build/components/sidebar-edit-mode/default-sidebar.js +2 -6
  115. package/build/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  116. package/build/components/sidebar-edit-mode/index.js +6 -5
  117. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  118. package/build/components/sidebar-edit-mode/page-panels/edit-template.js +18 -29
  119. package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  120. package/build/components/sidebar-edit-mode/page-panels/hooks.js +22 -8
  121. package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  122. package/build/components/sidebar-edit-mode/page-panels/page-status.js +8 -5
  123. package/build/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  124. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +5 -8
  125. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  126. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +6 -14
  127. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  128. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js +4 -12
  129. package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -1
  130. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js +2 -6
  131. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  132. package/build/components/sidebar-edit-mode/settings-header/index.js +10 -6
  133. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  134. package/build/components/sidebar-edit-mode/template-panel/hooks.js +3 -3
  135. package/build/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  136. package/build/components/sidebar-navigation-screen-global-styles/index.js +1 -1
  137. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  138. package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
  139. package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
  140. package/build/components/sidebar-navigation-screen-page/index.js +23 -4
  141. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
  142. package/build/components/sidebar-navigation-screen-page/page-details.js +3 -11
  143. package/build/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  144. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +1 -1
  145. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  146. package/build/components/site-hub/index.js +18 -6
  147. package/build/components/site-hub/index.js.map +1 -1
  148. package/build/components/start-template-options/index.js +12 -16
  149. package/build/components/start-template-options/index.js.map +1 -1
  150. package/build/components/style-book/index.js +22 -12
  151. package/build/components/style-book/index.js.map +1 -1
  152. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +150 -55
  153. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  154. package/build/components/template-part-converter/convert-to-regular.js +1 -1
  155. package/build/components/template-part-converter/convert-to-regular.js.map +1 -1
  156. package/build/components/welcome-guide/page.js +2 -2
  157. package/build/components/welcome-guide/page.js.map +1 -1
  158. package/build/components/welcome-guide/template.js +6 -3
  159. package/build/components/welcome-guide/template.js.map +1 -1
  160. package/build/hooks/commands/use-edit-mode-commands.js +24 -14
  161. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  162. package/build/hooks/push-changes-to-global-styles/index.js +3 -1
  163. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  164. package/build/hooks/template-part-edit.js +6 -2
  165. package/build/hooks/template-part-edit.js.map +1 -1
  166. package/build/index.js +0 -3
  167. package/build/index.js.map +1 -1
  168. package/build/store/actions.js +39 -83
  169. package/build/store/actions.js.map +1 -1
  170. package/build/store/private-actions.js +2 -27
  171. package/build/store/private-actions.js.map +1 -1
  172. package/build/store/private-selectors.js +0 -23
  173. package/build/store/private-selectors.js.map +1 -1
  174. package/build/store/reducer.js +1 -40
  175. package/build/store/reducer.js.map +1 -1
  176. package/build/store/selectors.js +33 -67
  177. package/build/store/selectors.js.map +1 -1
  178. package/build/utils/constants.js +3 -14
  179. package/build/utils/constants.js.map +1 -1
  180. package/build-module/components/actions/index.js +113 -14
  181. package/build-module/components/actions/index.js.map +1 -1
  182. package/build-module/components/add-new-template/new-template.js +0 -7
  183. package/build-module/components/add-new-template/new-template.js.map +1 -1
  184. package/build-module/components/block-editor/site-editor-canvas.js +7 -2
  185. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  186. package/build-module/components/block-editor/use-site-editor-settings.js +54 -62
  187. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  188. package/build-module/components/dataviews/add-filter.js +84 -0
  189. package/build-module/components/dataviews/add-filter.js.map +1 -0
  190. package/build-module/components/dataviews/constants.js +6 -0
  191. package/build-module/components/dataviews/constants.js.map +1 -0
  192. package/build-module/components/dataviews/dataviews.js +29 -9
  193. package/build-module/components/dataviews/dataviews.js.map +1 -1
  194. package/build-module/components/dataviews/filter-summary.js +55 -0
  195. package/build-module/components/dataviews/filter-summary.js.map +1 -0
  196. package/build-module/components/dataviews/filters.js +37 -48
  197. package/build-module/components/dataviews/filters.js.map +1 -1
  198. package/build-module/components/dataviews/index.js +1 -1
  199. package/build-module/components/dataviews/index.js.map +1 -1
  200. package/build-module/components/dataviews/item-actions.js +142 -20
  201. package/build-module/components/dataviews/item-actions.js.map +1 -1
  202. package/build-module/components/dataviews/pagination.js +7 -2
  203. package/build-module/components/dataviews/pagination.js.map +1 -1
  204. package/build-module/components/dataviews/reset-filters.js +26 -0
  205. package/build-module/components/dataviews/reset-filters.js.map +1 -0
  206. package/build-module/components/dataviews/search.js +1 -0
  207. package/build-module/components/dataviews/search.js.map +1 -1
  208. package/build-module/components/dataviews/view-actions.js +50 -33
  209. package/build-module/components/dataviews/view-actions.js.map +1 -1
  210. package/build-module/components/dataviews/view-grid.js +49 -26
  211. package/build-module/components/dataviews/view-grid.js.map +1 -1
  212. package/build-module/components/dataviews/view-list.js +132 -16
  213. package/build-module/components/dataviews/view-list.js.map +1 -1
  214. package/build-module/components/dataviews/view-side-by-side.js +12 -0
  215. package/build-module/components/dataviews/view-side-by-side.js.map +1 -0
  216. package/build-module/components/editor/index.js +55 -59
  217. package/build-module/components/editor/index.js.map +1 -1
  218. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  219. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -1
  220. package/build-module/components/global-styles/font-library-modal/utils/index.js +14 -2
  221. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  222. package/build-module/components/global-styles/header.js +4 -2
  223. package/build-module/components/global-styles/header.js.map +1 -1
  224. package/build-module/components/global-styles/screen-block-list.js +23 -17
  225. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  226. package/build-module/components/global-styles/screen-revisions/index.js +67 -25
  227. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  228. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +51 -24
  229. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  230. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +9 -3
  231. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  232. package/build-module/components/global-styles/screen-root.js +3 -3
  233. package/build-module/components/global-styles/screen-root.js.map +1 -1
  234. package/build-module/components/global-styles/ui.js +31 -39
  235. package/build-module/components/global-styles/ui.js.map +1 -1
  236. package/build-module/components/global-styles-renderer/index.js +1 -1
  237. package/build-module/components/global-styles-renderer/index.js.map +1 -1
  238. package/build-module/components/header-edit-mode/document-actions/index.js +21 -16
  239. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  240. package/build-module/components/header-edit-mode/document-tools/index.js +152 -0
  241. package/build-module/components/header-edit-mode/document-tools/index.js.map +1 -0
  242. package/build-module/components/header-edit-mode/index.js +54 -121
  243. package/build-module/components/header-edit-mode/index.js.map +1 -1
  244. package/build-module/components/header-edit-mode/more-menu/index.js +1 -1
  245. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  246. package/build-module/components/header-edit-mode/more-menu/site-export.js +2 -6
  247. package/build-module/components/header-edit-mode/more-menu/site-export.js.map +1 -1
  248. package/build-module/components/layout/index.js +5 -20
  249. package/build-module/components/layout/index.js.map +1 -1
  250. package/build-module/components/list/added-by.js +45 -56
  251. package/build-module/components/list/added-by.js.map +1 -1
  252. package/build-module/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +11 -15
  253. package/build-module/components/page-content-focus-notifications/back-to-page-notification.js.map +1 -0
  254. package/build-module/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  255. package/build-module/components/page-content-focus-notifications/edit-template-notification.js.map +1 -0
  256. package/build-module/components/page-content-focus-notifications/index.js +14 -0
  257. package/build-module/components/page-content-focus-notifications/index.js.map +1 -0
  258. package/build-module/components/page-main/index.js +2 -1
  259. package/build-module/components/page-main/index.js.map +1 -1
  260. package/build-module/components/page-pages/index.js +141 -90
  261. package/build-module/components/page-pages/index.js.map +1 -1
  262. package/build-module/components/page-pages/side-editor.js +17 -0
  263. package/build-module/components/page-pages/side-editor.js.map +1 -0
  264. package/build-module/components/page-patterns/grid-item.js +2 -2
  265. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  266. package/build-module/components/page-patterns/patterns-list.js +4 -4
  267. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  268. package/build-module/components/page-patterns/use-patterns.js +3 -3
  269. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  270. package/build-module/components/page-templates/dataviews-templates.js +308 -0
  271. package/build-module/components/page-templates/dataviews-templates.js.map +1 -0
  272. package/build-module/components/page-templates/template-actions.js +157 -0
  273. package/build-module/components/page-templates/template-actions.js.map +1 -0
  274. package/build-module/components/preferences-modal/index.js +1 -1
  275. package/build-module/components/preferences-modal/index.js.map +1 -1
  276. package/build-module/components/save-button/index.js +11 -8
  277. package/build-module/components/save-button/index.js.map +1 -1
  278. package/build-module/components/save-hub/index.js +14 -0
  279. package/build-module/components/save-hub/index.js.map +1 -1
  280. package/build-module/components/sidebar/index.js +1 -2
  281. package/build-module/components/sidebar/index.js.map +1 -1
  282. package/build-module/components/sidebar-dataviews/add-new-view.js +116 -0
  283. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -0
  284. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +182 -0
  285. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -0
  286. package/build-module/components/sidebar-dataviews/dataview-item.js +63 -0
  287. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -0
  288. package/build-module/components/sidebar-dataviews/default-views.js +57 -0
  289. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -0
  290. package/build-module/components/sidebar-dataviews/index.js +22 -39
  291. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  292. package/build-module/components/sidebar-edit-mode/default-sidebar.js +2 -6
  293. package/build-module/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  294. package/build-module/components/sidebar-edit-mode/index.js +6 -5
  295. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  296. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +20 -31
  297. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  298. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +21 -7
  299. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  300. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js +9 -6
  301. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  302. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +6 -8
  303. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  304. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +8 -16
  305. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  306. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js +5 -13
  307. package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -1
  308. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js +2 -6
  309. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  310. package/build-module/components/sidebar-edit-mode/settings-header/index.js +10 -6
  311. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  312. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js +4 -4
  313. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  314. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +1 -1
  315. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  316. package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
  317. package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
  318. package/build-module/components/sidebar-navigation-screen-page/index.js +23 -4
  319. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
  320. package/build-module/components/sidebar-navigation-screen-page/page-details.js +3 -11
  321. package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  322. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -2
  323. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  324. package/build-module/components/site-hub/index.js +19 -7
  325. package/build-module/components/site-hub/index.js.map +1 -1
  326. package/build-module/components/start-template-options/index.js +13 -16
  327. package/build-module/components/start-template-options/index.js.map +1 -1
  328. package/build-module/components/style-book/index.js +22 -12
  329. package/build-module/components/style-book/index.js.map +1 -1
  330. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +150 -56
  331. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  332. package/build-module/components/template-part-converter/convert-to-regular.js +1 -1
  333. package/build-module/components/template-part-converter/convert-to-regular.js.map +1 -1
  334. package/build-module/components/welcome-guide/page.js +2 -2
  335. package/build-module/components/welcome-guide/page.js.map +1 -1
  336. package/build-module/components/welcome-guide/template.js +6 -3
  337. package/build-module/components/welcome-guide/template.js.map +1 -1
  338. package/build-module/hooks/commands/use-edit-mode-commands.js +24 -14
  339. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  340. package/build-module/hooks/push-changes-to-global-styles/index.js +4 -2
  341. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  342. package/build-module/hooks/template-part-edit.js +6 -2
  343. package/build-module/hooks/template-part-edit.js.map +1 -1
  344. package/build-module/index.js +0 -3
  345. package/build-module/index.js.map +1 -1
  346. package/build-module/store/actions.js +37 -80
  347. package/build-module/store/actions.js.map +1 -1
  348. package/build-module/store/private-actions.js +1 -25
  349. package/build-module/store/private-actions.js.map +1 -1
  350. package/build-module/store/private-selectors.js +0 -22
  351. package/build-module/store/private-selectors.js.map +1 -1
  352. package/build-module/store/reducer.js +1 -38
  353. package/build-module/store/reducer.js.map +1 -1
  354. package/build-module/store/selectors.js +27 -62
  355. package/build-module/store/selectors.js.map +1 -1
  356. package/build-module/utils/constants.js +1 -11
  357. package/build-module/utils/constants.js.map +1 -1
  358. package/build-style/style-rtl.css +221 -181
  359. package/build-style/style.css +221 -181
  360. package/package.json +41 -41
  361. package/src/components/actions/index.js +150 -14
  362. package/src/components/add-new-template/new-template.js +0 -5
  363. package/src/components/block-editor/site-editor-canvas.js +8 -2
  364. package/src/components/block-editor/style.scss +0 -87
  365. package/src/components/block-editor/use-site-editor-settings.js +68 -89
  366. package/src/components/dataviews/README.md +80 -83
  367. package/src/components/dataviews/add-filter.js +108 -0
  368. package/src/components/dataviews/constants.js +5 -0
  369. package/src/components/dataviews/dataviews.js +28 -10
  370. package/src/components/dataviews/filter-summary.js +79 -0
  371. package/src/components/dataviews/filters.js +48 -58
  372. package/src/components/dataviews/index.js +1 -1
  373. package/src/components/dataviews/item-actions.js +169 -30
  374. package/src/components/dataviews/pagination.js +9 -4
  375. package/src/components/dataviews/reset-filters.js +26 -0
  376. package/src/components/dataviews/search.js +1 -0
  377. package/src/components/dataviews/style.scss +89 -9
  378. package/src/components/dataviews/view-actions.js +77 -49
  379. package/src/components/dataviews/view-grid.js +63 -38
  380. package/src/components/dataviews/view-list.js +182 -18
  381. package/src/components/dataviews/view-side-by-side.js +9 -0
  382. package/src/components/editor/index.js +135 -123
  383. package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  384. package/src/components/global-styles/font-library-modal/utils/index.js +20 -9
  385. package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +46 -15
  386. package/src/components/global-styles/font-library-modal/utils/test/wpKebabCase.spec.js +28 -0
  387. package/src/components/global-styles/header.js +2 -1
  388. package/src/components/global-styles/screen-block-list.js +37 -26
  389. package/src/components/global-styles/screen-revisions/index.js +91 -35
  390. package/src/components/global-styles/screen-revisions/revisions-buttons.js +65 -45
  391. package/src/components/global-styles/screen-revisions/style.scss +52 -28
  392. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +15 -6
  393. package/src/components/global-styles/screen-root.js +2 -1
  394. package/src/components/global-styles/style.scss +0 -11
  395. package/src/components/global-styles/ui.js +60 -75
  396. package/src/components/global-styles-renderer/index.js +1 -1
  397. package/src/components/header-edit-mode/document-actions/index.js +20 -18
  398. package/src/components/header-edit-mode/document-tools/index.js +201 -0
  399. package/src/components/header-edit-mode/index.js +87 -184
  400. package/src/components/header-edit-mode/more-menu/index.js +1 -1
  401. package/src/components/header-edit-mode/more-menu/site-export.js +2 -6
  402. package/src/components/header-edit-mode/style.scss +35 -2
  403. package/src/components/layout/index.js +4 -11
  404. package/src/components/layout/style.scss +6 -18
  405. package/src/components/list/added-by.js +24 -64
  406. package/src/components/list/style.scss +11 -13
  407. package/src/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +10 -22
  408. package/src/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  409. package/src/components/page-content-focus-notifications/index.js +14 -0
  410. package/src/components/page-main/index.js +6 -1
  411. package/src/components/page-pages/index.js +167 -91
  412. package/src/components/page-pages/side-editor.js +14 -0
  413. package/src/components/page-patterns/grid-item.js +3 -3
  414. package/src/components/page-patterns/patterns-list.js +10 -4
  415. package/src/components/page-patterns/use-patterns.js +4 -3
  416. package/src/components/page-templates/dataviews-templates.js +345 -0
  417. package/src/components/page-templates/style.scss +13 -0
  418. package/src/components/page-templates/template-actions.js +209 -0
  419. package/src/components/preferences-modal/index.js +1 -1
  420. package/src/components/save-button/index.js +37 -24
  421. package/src/components/save-hub/index.js +15 -0
  422. package/src/components/save-hub/style.scss +7 -0
  423. package/src/components/sidebar/index.js +1 -2
  424. package/src/components/sidebar-dataviews/add-new-view.js +141 -0
  425. package/src/components/sidebar-dataviews/custom-dataviews-list.js +229 -0
  426. package/src/components/sidebar-dataviews/dataview-item.js +67 -0
  427. package/src/components/sidebar-dataviews/default-views.js +59 -0
  428. package/src/components/sidebar-dataviews/index.js +36 -45
  429. package/src/components/sidebar-dataviews/style.scss +29 -0
  430. package/src/components/sidebar-edit-mode/default-sidebar.js +6 -6
  431. package/src/components/sidebar-edit-mode/index.js +13 -9
  432. package/src/components/sidebar-edit-mode/page-panels/edit-template.js +31 -57
  433. package/src/components/sidebar-edit-mode/page-panels/hooks.js +20 -9
  434. package/src/components/sidebar-edit-mode/page-panels/page-status.js +6 -6
  435. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +10 -8
  436. package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +13 -12
  437. package/src/components/sidebar-edit-mode/page-panels/style.scss +14 -19
  438. package/src/components/sidebar-edit-mode/page-panels/swap-template-button.js +10 -9
  439. package/src/components/sidebar-edit-mode/plugin-sidebar/index.js +6 -6
  440. package/src/components/sidebar-edit-mode/settings-header/index.js +8 -9
  441. package/src/components/sidebar-edit-mode/template-panel/hooks.js +11 -7
  442. package/src/components/sidebar-navigation-screen/style.scss +1 -0
  443. package/src/components/sidebar-navigation-screen-global-styles/index.js +1 -1
  444. package/src/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
  445. package/src/components/sidebar-navigation-screen-page/index.js +24 -3
  446. package/src/components/sidebar-navigation-screen-page/page-details.js +4 -17
  447. package/src/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -2
  448. package/src/components/sidebar-navigation-screen-template/style.scss +6 -1
  449. package/src/components/site-hub/index.js +9 -8
  450. package/src/components/start-template-options/index.js +14 -12
  451. package/src/components/style-book/index.js +48 -35
  452. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +182 -63
  453. package/src/components/template-part-converter/convert-to-regular.js +1 -1
  454. package/src/components/welcome-guide/page.js +2 -2
  455. package/src/components/welcome-guide/template.js +4 -2
  456. package/src/hooks/commands/use-edit-mode-commands.js +22 -16
  457. package/src/hooks/push-changes-to-global-styles/index.js +13 -6
  458. package/src/hooks/template-part-edit.js +4 -2
  459. package/src/index.js +0 -8
  460. package/src/store/actions.js +42 -96
  461. package/src/store/private-actions.js +1 -24
  462. package/src/store/private-selectors.js +0 -22
  463. package/src/store/reducer.js +0 -39
  464. package/src/store/selectors.js +43 -95
  465. package/src/store/test/actions.js +14 -169
  466. package/src/store/test/reducer.js +0 -62
  467. package/src/store/test/selectors.js +0 -117
  468. package/src/style.scss +2 -0
  469. package/src/utils/constants.js +1 -11
  470. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -77
  471. package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +0 -1
  472. package/build/components/block-editor/block-editor-provider/index.js +0 -31
  473. package/build/components/block-editor/block-editor-provider/index.js.map +0 -1
  474. package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -110
  475. package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +0 -1
  476. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -84
  477. package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +0 -1
  478. package/build/components/block-editor/index.js +0 -30
  479. package/build/components/block-editor/index.js.map +0 -1
  480. package/build/components/dataviews/in-filter.js +0 -49
  481. package/build/components/dataviews/in-filter.js.map +0 -1
  482. package/build/components/page-content-focus-manager/back-to-page-notification.js.map +0 -1
  483. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -50
  484. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +0 -1
  485. package/build/components/page-content-focus-manager/edit-template-notification.js.map +0 -1
  486. package/build/components/page-content-focus-manager/index.js +0 -61
  487. package/build/components/page-content-focus-manager/index.js.map +0 -1
  488. package/build/components/page-pages/default-views.js +0 -62
  489. package/build/components/page-pages/default-views.js.map +0 -1
  490. package/build/components/sidebar-edit-mode/page-panels/publish-date.js +0 -87
  491. package/build/components/sidebar-edit-mode/page-panels/publish-date.js.map +0 -1
  492. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -69
  493. package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +0 -1
  494. package/build-module/components/block-editor/block-editor-provider/index.js +0 -23
  495. package/build-module/components/block-editor/block-editor-provider/index.js.map +0 -1
  496. package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -102
  497. package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +0 -1
  498. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -78
  499. package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +0 -1
  500. package/build-module/components/block-editor/index.js +0 -22
  501. package/build-module/components/block-editor/index.js.map +0 -1
  502. package/build-module/components/dataviews/in-filter.js +0 -41
  503. package/build-module/components/dataviews/in-filter.js.map +0 -1
  504. package/build-module/components/page-content-focus-manager/back-to-page-notification.js.map +0 -1
  505. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -43
  506. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +0 -1
  507. package/build-module/components/page-content-focus-manager/edit-template-notification.js.map +0 -1
  508. package/build-module/components/page-content-focus-manager/index.js +0 -52
  509. package/build-module/components/page-content-focus-manager/index.js.map +0 -1
  510. package/build-module/components/page-pages/default-views.js +0 -55
  511. package/build-module/components/page-pages/default-views.js.map +0 -1
  512. package/build-module/components/sidebar-edit-mode/page-panels/publish-date.js +0 -80
  513. package/build-module/components/sidebar-edit-mode/page-panels/publish-date.js.map +0 -1
  514. package/src/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -75
  515. package/src/components/block-editor/block-editor-provider/index.js +0 -29
  516. package/src/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -114
  517. package/src/components/block-editor/block-editor-provider/test/use-page-content-blocks.js +0 -116
  518. package/src/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -90
  519. package/src/components/block-editor/index.js +0 -28
  520. package/src/components/dataviews/in-filter.js +0 -45
  521. package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -52
  522. package/src/components/page-content-focus-manager/index.js +0 -51
  523. package/src/components/page-pages/default-views.js +0 -60
  524. package/src/components/sidebar-edit-mode/page-panels/publish-date.js +0 -94
@@ -18,11 +18,11 @@ var _lockUnlock = require("../../lock-unlock");
18
18
  */
19
19
 
20
20
  const {
21
- DropdownMenuV2,
22
- DropdownMenuGroupV2,
23
- DropdownMenuItemV2,
24
- DropdownSubMenuV2,
25
- DropdownSubMenuTriggerV2
21
+ DropdownMenuV2: DropdownMenu,
22
+ DropdownMenuGroupV2: DropdownMenuGroup,
23
+ DropdownMenuItemV2: DropdownMenuItem,
24
+ DropdownSubMenuV2: DropdownSubMenu,
25
+ DropdownSubMenuTriggerV2: DropdownSubMenuTrigger
26
26
  } = (0, _lockUnlock.unlock)(_components.privateApis);
27
27
  const availableViews = [{
28
28
  id: 'list',
@@ -30,20 +30,31 @@ const availableViews = [{
30
30
  }, {
31
31
  id: 'grid',
32
32
  label: (0, _i18n.__)('Grid')
33
+ }, {
34
+ id: 'side-by-side',
35
+ label: (0, _i18n.__)('Side by side')
33
36
  }];
34
37
  function ViewTypeMenu({
35
38
  view,
36
- onChangeView
39
+ onChangeView,
40
+ supportedLayouts
37
41
  }) {
38
- const activeView = availableViews.find(v => view.type === v.id);
39
- return (0, _react.createElement)(DropdownSubMenuV2, {
40
- trigger: (0, _react.createElement)(DropdownSubMenuTriggerV2, {
42
+ let _availableViews = availableViews;
43
+ if (supportedLayouts) {
44
+ _availableViews = _availableViews.filter(_view => supportedLayouts.includes(_view.id));
45
+ }
46
+ if (_availableViews.length === 1) {
47
+ return null;
48
+ }
49
+ const activeView = _availableViews.find(v => view.type === v.id);
50
+ return (0, _react.createElement)(DropdownSubMenu, {
51
+ trigger: (0, _react.createElement)(DropdownSubMenuTrigger, {
41
52
  suffix: (0, _react.createElement)(_react.Fragment, null, activeView.label, (0, _react.createElement)(_components.Icon, {
42
53
  icon: _icons.chevronRightSmall
43
54
  }))
44
55
  }, (0, _i18n.__)('Layout'))
45
- }, availableViews.map(availableView => {
46
- return (0, _react.createElement)(DropdownMenuItemV2, {
56
+ }, _availableViews.map(availableView => {
57
+ return (0, _react.createElement)(DropdownMenuItem, {
47
58
  key: availableView.id,
48
59
  prefix: availableView.id === view.type && (0, _react.createElement)(_components.Icon, {
49
60
  icon: _icons.check
@@ -62,19 +73,19 @@ function ViewTypeMenu({
62
73
  }, availableView.label);
63
74
  }));
64
75
  }
65
- const PAGE_SIZE_VALUES = [5, 20, 50];
76
+ const PAGE_SIZE_VALUES = [10, 20, 50, 100];
66
77
  function PageSizeMenu({
67
78
  view,
68
79
  onChangeView
69
80
  }) {
70
- return (0, _react.createElement)(DropdownSubMenuV2, {
71
- trigger: (0, _react.createElement)(DropdownSubMenuTriggerV2, {
81
+ return (0, _react.createElement)(DropdownSubMenu, {
82
+ trigger: (0, _react.createElement)(DropdownSubMenuTrigger, {
72
83
  suffix: (0, _react.createElement)(_react.Fragment, null, view.perPage, (0, _react.createElement)(_components.Icon, {
73
84
  icon: _icons.chevronRightSmall
74
85
  }))
75
86
  }, (0, _i18n.__)('Rows per page'))
76
87
  }, PAGE_SIZE_VALUES.map(size => {
77
- return (0, _react.createElement)(DropdownMenuItemV2, {
88
+ return (0, _react.createElement)(DropdownMenuItem, {
78
89
  key: size,
79
90
  prefix: view.perPage === size && (0, _react.createElement)(_components.Icon, {
80
91
  icon: _icons.check
@@ -103,14 +114,14 @@ function FieldsVisibilityMenu({
103
114
  if (!hidableFields?.length) {
104
115
  return null;
105
116
  }
106
- return (0, _react.createElement)(DropdownSubMenuV2, {
107
- trigger: (0, _react.createElement)(DropdownSubMenuTriggerV2, {
117
+ return (0, _react.createElement)(DropdownSubMenu, {
118
+ trigger: (0, _react.createElement)(DropdownSubMenuTrigger, {
108
119
  suffix: (0, _react.createElement)(_components.Icon, {
109
120
  icon: _icons.chevronRightSmall
110
121
  })
111
122
  }, (0, _i18n.__)('Fields'))
112
123
  }, hidableFields?.map(field => {
113
- return (0, _react.createElement)(DropdownMenuItemV2, {
124
+ return (0, _react.createElement)(DropdownMenuItem, {
114
125
  key: field.id,
115
126
  prefix: !view.hiddenFields?.includes(field.id) && (0, _react.createElement)(_components.Icon, {
116
127
  icon: _icons.check
@@ -148,17 +159,17 @@ function SortMenu({
148
159
  return null;
149
160
  }
150
161
  const currentSortedField = fields.find(field => field.id === view.sort?.field);
151
- return (0, _react.createElement)(DropdownSubMenuV2, {
152
- trigger: (0, _react.createElement)(DropdownSubMenuTriggerV2, {
162
+ return (0, _react.createElement)(DropdownSubMenu, {
163
+ trigger: (0, _react.createElement)(DropdownSubMenuTrigger, {
153
164
  suffix: (0, _react.createElement)(_react.Fragment, null, currentSortedField?.header, (0, _react.createElement)(_components.Icon, {
154
165
  icon: _icons.chevronRightSmall
155
166
  }))
156
167
  }, (0, _i18n.__)('Sort by'))
157
168
  }, sortableFields?.map(field => {
158
169
  const sortedDirection = view.sort?.direction;
159
- return (0, _react.createElement)(DropdownSubMenuV2, {
170
+ return (0, _react.createElement)(DropdownSubMenu, {
160
171
  key: field.id,
161
- trigger: (0, _react.createElement)(DropdownSubMenuTriggerV2, {
172
+ trigger: (0, _react.createElement)(DropdownSubMenuTrigger, {
162
173
  suffix: (0, _react.createElement)(_components.Icon, {
163
174
  icon: _icons.chevronRightSmall
164
175
  })
@@ -166,7 +177,7 @@ function SortMenu({
166
177
  side: "left"
167
178
  }, Object.entries(sortingItemsInfo).map(([direction, info]) => {
168
179
  const isActive = currentSortedField && sortedDirection === direction && field.id === currentSortedField.id;
169
- return (0, _react.createElement)(DropdownMenuItemV2, {
180
+ return (0, _react.createElement)(DropdownMenuItem, {
170
181
  key: direction,
171
182
  prefix: (0, _react.createElement)(_components.Icon, {
172
183
  icon: info.icon
@@ -195,22 +206,28 @@ function SortMenu({
195
206
  }));
196
207
  }));
197
208
  }
209
+ const VIEW_TYPE_ICONS = {
210
+ list: _icons.blockTable,
211
+ grid: _icons.grid,
212
+ 'side-by-side': _icons.columns
213
+ };
198
214
  function ViewActions({
199
215
  fields,
200
216
  view,
201
- onChangeView
217
+ onChangeView,
218
+ supportedLayouts
202
219
  }) {
203
- return (0, _react.createElement)(DropdownMenuV2, {
204
- label: (0, _i18n.__)('Actions'),
220
+ return (0, _react.createElement)(DropdownMenu, {
205
221
  trigger: (0, _react.createElement)(_components.Button, {
206
222
  variant: "tertiary",
207
- icon: _icons.blockTable
208
- }, (0, _i18n.__)('View'), (0, _react.createElement)(_components.Icon, {
209
- icon: _icons.chevronDown
210
- }))
211
- }, (0, _react.createElement)(DropdownMenuGroupV2, null, (0, _react.createElement)(ViewTypeMenu, {
223
+ size: "compact",
224
+ icon: VIEW_TYPE_ICONS[view.type] || VIEW_TYPE_ICONS.list,
225
+ label: (0, _i18n.__)('View options')
226
+ })
227
+ }, (0, _react.createElement)(DropdownMenuGroup, null, (0, _react.createElement)(ViewTypeMenu, {
212
228
  view: view,
213
- onChangeView: onChangeView
229
+ onChangeView: onChangeView,
230
+ supportedLayouts: supportedLayouts
214
231
  }), (0, _react.createElement)(SortMenu, {
215
232
  fields: fields,
216
233
  view: view,
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_icons","_i18n","_lockUnlock","DropdownMenuV2","DropdownMenuGroupV2","DropdownMenuItemV2","DropdownSubMenuV2","DropdownSubMenuTriggerV2","unlock","componentsPrivateApis","availableViews","id","label","__","ViewTypeMenu","view","onChangeView","activeView","find","v","type","_react","createElement","trigger","suffix","Fragment","Icon","icon","chevronRightSmall","map","availableView","key","prefix","check","onSelect","event","preventDefault","role","PAGE_SIZE_VALUES","PageSizeMenu","perPage","size","page","FieldsVisibilityMenu","fields","hidableFields","filter","field","enableHiding","length","hiddenFields","includes","header","sortingItemsInfo","asc","arrowUp","desc","arrowDown","SortMenu","sortableFields","enableSorting","currentSortedField","sort","sortedDirection","direction","side","Object","entries","info","isActive","undefined","ViewActions","Button","variant","blockTable","chevronDown"],"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\tchevronDown,\n\tarrowUp,\n\tarrowDown,\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];\n\nfunction ViewTypeMenu( { view, onChangeView } ) {\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 = [ 5, 20, 50 ];\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\nexport default function ViewActions( { fields, view, onChangeView } ) {\n\treturn (\n\t\t<DropdownMenuV2\n\t\t\tlabel={ __( 'Actions' ) }\n\t\t\ttrigger={\n\t\t\t\t<Button variant=\"tertiary\" icon={ blockTable }>\n\t\t\t\t\t{ __( 'View' ) }\n\t\t\t\t\t<Icon icon={ chevronDown } />\n\t\t\t\t</Button>\n\t\t\t}\n\t\t>\n\t\t\t<DropdownMenuGroupV2>\n\t\t\t\t<ViewTypeMenu view={ view } onChangeView={ onChangeView } />\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":["_components","require","_icons","_i18n","_lockUnlock","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownSubMenuV2","DropdownSubMenu","DropdownSubMenuTriggerV2","DropdownSubMenuTrigger","unlock","componentsPrivateApis","availableViews","id","label","__","ViewTypeMenu","view","onChangeView","supportedLayouts","_availableViews","filter","_view","includes","length","activeView","find","v","type","_react","createElement","trigger","suffix","Fragment","Icon","icon","chevronRightSmall","map","availableView","key","prefix","check","onSelect","event","preventDefault","role","PAGE_SIZE_VALUES","PageSizeMenu","perPage","size","page","FieldsVisibilityMenu","fields","hidableFields","field","enableHiding","hiddenFields","header","sortingItemsInfo","asc","arrowUp","desc","arrowDown","SortMenu","sortableFields","enableSorting","currentSortedField","sort","sortedDirection","direction","side","Object","entries","info","isActive","undefined","VIEW_TYPE_ICONS","list","blockTable","grid","columns","ViewActions","Button","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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"}
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.ViewGrid = ViewGrid;
8
8
  var _react = require("react");
9
9
  var _components = require("@wordpress/components");
10
+ var _compose = require("@wordpress/compose");
10
11
  var _itemActions = _interopRequireDefault(require("./item-actions"));
11
12
  /**
12
13
  * WordPress dependencies
@@ -20,40 +21,62 @@ function ViewGrid({
20
21
  data,
21
22
  fields,
22
23
  view,
23
- actions
24
+ actions,
25
+ getItemId
24
26
  }) {
25
27
  const mediaField = fields.find(field => field.id === view.layout.mediaField);
26
- const visibleFields = fields.filter(field => !view.hiddenFields.includes(field.id) && field.id !== view.layout.mediaField);
28
+ const primaryField = fields.find(field => field.id === view.layout.primaryField);
29
+ const visibleFields = fields.filter(field => !view.hiddenFields.includes(field.id) && ![view.layout.mediaField, view.layout.primaryField].includes(field.id));
30
+ const shownData = (0, _compose.useAsyncList)(data, {
31
+ step: 3
32
+ });
27
33
  return (0, _react.createElement)(_components.__experimentalGrid, {
28
34
  gap: 8,
29
35
  columns: 2,
30
- alignment: "top"
31
- }, data.map((item, index) => {
32
- return (0, _react.createElement)(_components.__experimentalVStack, {
33
- key: index
34
- }, (0, _react.createElement)("div", {
35
- className: "dataviews-view-grid__media"
36
- }, mediaField?.render({
36
+ alignment: "top",
37
+ className: "dataviews-grid-view"
38
+ }, shownData.map((item, index) => (0, _react.createElement)(_components.__experimentalVStack, {
39
+ spacing: 3,
40
+ key: getItemId?.(item) || index,
41
+ className: "dataviews-view-grid__card"
42
+ }, (0, _react.createElement)("div", {
43
+ className: "dataviews-view-grid__media"
44
+ }, mediaField?.render({
45
+ item,
46
+ view
47
+ })), (0, _react.createElement)(_components.__experimentalHStack, {
48
+ className: "dataviews-view-grid__title",
49
+ justify: "space-between"
50
+ }, primaryField?.render({
51
+ item,
52
+ view
53
+ }), (0, _react.createElement)(_itemActions.default, {
54
+ item: item,
55
+ actions: actions,
56
+ isCompact: true
57
+ })), (0, _react.createElement)(_components.__experimentalVStack, {
58
+ className: "dataviews-view-grid__fields",
59
+ spacing: 3
60
+ }, visibleFields.map(field => {
61
+ const renderedValue = field.render({
37
62
  item,
38
63
  view
39
- }) || (0, _react.createElement)(_components.Placeholder, {
40
- withIllustration: true,
41
- style: {
42
- width: '100%',
43
- minHeight: '200px'
44
- }
45
- })), (0, _react.createElement)(_components.__experimentalHStack, {
46
- justify: "space-between",
47
- alignment: "top"
48
- }, (0, _react.createElement)(_components.FlexBlock, null, (0, _react.createElement)(_components.__experimentalVStack, null, visibleFields.map(field => (0, _react.createElement)("div", {
49
- key: field.id
64
+ });
65
+ if (!renderedValue) {
66
+ return null;
67
+ }
68
+ return (0, _react.createElement)(_components.__experimentalVStack, {
69
+ className: "dataviews-view-grid__field",
70
+ key: field.id,
71
+ spacing: 1
72
+ }, (0, _react.createElement)("div", {
73
+ className: "dataviews-view-grid__field-header"
74
+ }, field.header), (0, _react.createElement)("div", {
75
+ className: "dataviews-view-grid__field-value"
50
76
  }, field.render({
51
77
  item,
52
78
  view
53
- }))))), (0, _react.createElement)(_components.FlexBlock, null, (0, _react.createElement)(_itemActions.default, {
54
- item: item,
55
- actions: actions
56
- }))));
57
- }));
79
+ })));
80
+ })))));
58
81
  }
59
82
  //# sourceMappingURL=view-grid.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_itemActions","_interopRequireDefault","ViewGrid","data","fields","view","actions","mediaField","find","field","id","layout","visibleFields","filter","hiddenFields","includes","_react","createElement","__experimentalGrid","gap","columns","alignment","map","item","index","__experimentalVStack","key","className","render","Placeholder","withIllustration","style","width","minHeight","__experimentalHStack","justify","FlexBlock","default"],"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":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAWA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AAdA;AACA;AACA;;AASA;AACA;AACA;;AAGO,SAASG,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,OACC,IAAAS,MAAA,CAAAC,aAAA,EAACnB,WAAA,CAAAoB,kBAAI;IAACC,GAAG,EAAG,CAAG;IAACC,OAAO,EAAG,CAAG;IAACC,SAAS,EAAC;EAAK,GAC1ClB,IAAI,CAACmB,GAAG,CAAE,CAAEC,IAAI,EAAEC,KAAK,KAAM;IAC9B,OACC,IAAAR,MAAA,CAAAC,aAAA,EAACnB,WAAA,CAAA2B,oBAAM;MAACC,GAAG,EAAGF;IAAO,GACpB,IAAAR,MAAA,CAAAC,aAAA;MAAKU,SAAS,EAAC;IAA4B,GACxCpB,UAAU,EAAEqB,MAAM,CAAE;MAAEL,IAAI;MAAElB;IAAK,CAAE,CAAC,IACrC,IAAAW,MAAA,CAAAC,aAAA,EAACnB,WAAA,CAAA+B,WAAW;MACXC,gBAAgB;MAChBC,KAAK,EAAG;QACPC,KAAK,EAAE,MAAM;QACbC,SAAS,EAAE;MACZ;IAAG,CACH,CAEE,CAAC,EAEN,IAAAjB,MAAA,CAAAC,aAAA,EAACnB,WAAA,CAAAoC,oBAAM;MAACC,OAAO,EAAC,eAAe;MAACd,SAAS,EAAC;IAAK,GAC9C,IAAAL,MAAA,CAAAC,aAAA,EAACnB,WAAA,CAAAsC,SAAS,QACT,IAAApB,MAAA,CAAAC,aAAA,EAACnB,WAAA,CAAA2B,oBAAM,QACJb,aAAa,CAACU,GAAG,CAAIb,KAAK,IAC3B,IAAAO,MAAA,CAAAC,aAAA;MAAKS,GAAG,EAAGjB,KAAK,CAACC;IAAI,GAClBD,KAAK,CAACmB,MAAM,CAAE;MAAEL,IAAI;MAAElB;IAAK,CAAE,CAC3B,CACJ,CACK,CACE,CAAC,EACZ,IAAAW,MAAA,CAAAC,aAAA,EAACnB,WAAA,CAAAsC,SAAS,QACT,IAAApB,MAAA,CAAAC,aAAA,EAACjB,YAAA,CAAAqC,OAAW;MACXd,IAAI,EAAGA,IAAM;MACbjB,OAAO,EAAGA;IAAS,CACnB,CACS,CACJ,CACD,CAAC;EAEX,CAAE,CACG,CAAC;AAET"}
1
+ {"version":3,"names":["_components","require","_compose","_itemActions","_interopRequireDefault","ViewGrid","data","fields","view","actions","getItemId","mediaField","find","field","id","layout","primaryField","visibleFields","filter","hiddenFields","includes","shownData","useAsyncList","step","_react","createElement","__experimentalGrid","gap","columns","alignment","className","map","item","index","__experimentalVStack","spacing","key","render","__experimentalHStack","justify","default","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":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,YAAA,GAAAC,sBAAA,CAAAH,OAAA;AAbA;AACA;AACA;;AAQA;AACA;AACA;;AAGO,SAASI,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,GAAG,IAAAC,qBAAY,EAAEhB,IAAI,EAAE;IAAEiB,IAAI,EAAE;EAAE,CAAE,CAAC;EACnD,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACzB,WAAA,CAAA0B,kBAAI;IACJC,GAAG,EAAG,CAAG;IACTC,OAAO,EAAG,CAAG;IACbC,SAAS,EAAC,KAAK;IACfC,SAAS,EAAC;EAAqB,GAE7BT,SAAS,CAACU,GAAG,CAAE,CAAEC,IAAI,EAAEC,KAAK,KAC7B,IAAAT,MAAA,CAAAC,aAAA,EAACzB,WAAA,CAAAkC,oBAAM;IACNC,OAAO,EAAG,CAAG;IACbC,GAAG,EAAG1B,SAAS,GAAIsB,IAAK,CAAC,IAAIC,KAAO;IACpCH,SAAS,EAAC;EAA2B,GAErC,IAAAN,MAAA,CAAAC,aAAA;IAAKK,SAAS,EAAC;EAA4B,GACxCnB,UAAU,EAAE0B,MAAM,CAAE;IAAEL,IAAI;IAAExB;EAAK,CAAE,CACjC,CAAC,EACN,IAAAgB,MAAA,CAAAC,aAAA,EAACzB,WAAA,CAAAsC,oBAAM;IACNR,SAAS,EAAC,4BAA4B;IACtCS,OAAO,EAAC;EAAe,GAErBvB,YAAY,EAAEqB,MAAM,CAAE;IAAEL,IAAI;IAAExB;EAAK,CAAE,CAAC,EACxC,IAAAgB,MAAA,CAAAC,aAAA,EAACtB,YAAA,CAAAqC,OAAW;IACXR,IAAI,EAAGA,IAAM;IACbvB,OAAO,EAAGA,OAAS;IACnBgC,SAAS;EAAA,CACT,CACM,CAAC,EACT,IAAAjB,MAAA,CAAAC,aAAA,EAACzB,WAAA,CAAAkC,oBAAM;IACNJ,SAAS,EAAC,6BAA6B;IACvCK,OAAO,EAAG;EAAG,GAEXlB,aAAa,CAACc,GAAG,CAAIlB,KAAK,IAAM;IACjC,MAAM6B,aAAa,GAAG7B,KAAK,CAACwB,MAAM,CAAE;MACnCL,IAAI;MACJxB;IACD,CAAE,CAAC;IACH,IAAK,CAAEkC,aAAa,EAAG;MACtB,OAAO,IAAI;IACZ;IACA,OACC,IAAAlB,MAAA,CAAAC,aAAA,EAACzB,WAAA,CAAAkC,oBAAM;MACNJ,SAAS,EAAC,4BAA4B;MACtCM,GAAG,EAAGvB,KAAK,CAACC,EAAI;MAChBqB,OAAO,EAAG;IAAG,GAEb,IAAAX,MAAA,CAAAC,aAAA;MAAKK,SAAS,EAAC;IAAmC,GAC/CjB,KAAK,CAAC8B,MACJ,CAAC,EACN,IAAAnB,MAAA,CAAAC,aAAA;MAAKK,SAAS,EAAC;IAAkC,GAC9CjB,KAAK,CAACwB,MAAM,CAAE;MAAEL,IAAI;MAAExB;IAAK,CAAE,CAC3B,CACE,CAAC;EAEX,CAAE,CACK,CACD,CACP,CACG,CAAC;AAET"}
@@ -8,11 +8,13 @@ exports.default = void 0;
8
8
  var _react = require("react");
9
9
  var _reactTable = require("@tanstack/react-table");
10
10
  var _i18n = require("@wordpress/i18n");
11
+ var _compose = require("@wordpress/compose");
11
12
  var _icons = require("@wordpress/icons");
12
13
  var _components = require("@wordpress/components");
13
14
  var _element = require("@wordpress/element");
14
15
  var _lockUnlock = require("../../lock-unlock");
15
16
  var _itemActions = _interopRequireDefault(require("./item-actions"));
17
+ var _constants = require("./constants");
16
18
  /**
17
19
  * External dependencies
18
20
  */
@@ -26,10 +28,12 @@ var _itemActions = _interopRequireDefault(require("./item-actions"));
26
28
  */
27
29
 
28
30
  const {
29
- DropdownMenuV2,
30
- DropdownMenuGroupV2,
31
- DropdownMenuItemV2,
32
- DropdownMenuSeparatorV2
31
+ DropdownMenuV2: DropdownMenu,
32
+ DropdownMenuGroupV2: DropdownMenuGroup,
33
+ DropdownMenuItemV2: DropdownMenuItem,
34
+ DropdownMenuSeparatorV2: DropdownMenuSeparator,
35
+ DropdownSubMenuV2: DropdownSubMenu,
36
+ DropdownSubMenuTriggerV2: DropdownSubMenuTrigger
33
37
  } = (0, _lockUnlock.unlock)(_components.privateApis);
34
38
  const EMPTY_OBJECT = {};
35
39
  const sortingItemsInfo = {
@@ -60,7 +64,15 @@ function HeaderMenu({
60
64
  return text;
61
65
  }
62
66
  const sortedDirection = header.column.getIsSorted();
63
- return (0, _react.createElement)(DropdownMenuV2, {
67
+ let filter;
68
+ if (header.column.columnDef.type === _constants.ENUMERATION_TYPE) {
69
+ filter = {
70
+ field: header.column.columnDef.id,
71
+ elements: header.column.columnDef.elements || []
72
+ };
73
+ }
74
+ const isFilterable = !!filter;
75
+ return (0, _react.createElement)(DropdownMenu, {
64
76
  align: "start",
65
77
  trigger: (0, _react.createElement)(_components.Button, {
66
78
  icon: sortIcons[header.column.getIsSorted()],
@@ -70,7 +82,7 @@ function HeaderMenu({
70
82
  padding: 0
71
83
  }
72
84
  })
73
- }, (0, _react.createElement)(WithSeparators, null, isSortable && (0, _react.createElement)(DropdownMenuGroupV2, null, Object.entries(sortingItemsInfo).map(([direction, info]) => (0, _react.createElement)(DropdownMenuItemV2, {
85
+ }, (0, _react.createElement)(WithSeparators, null, isSortable && (0, _react.createElement)(DropdownMenuGroup, null, Object.entries(sortingItemsInfo).map(([direction, info]) => (0, _react.createElement)(DropdownMenuItem, {
74
86
  key: direction,
75
87
  prefix: (0, _react.createElement)(_components.Icon, {
76
88
  icon: info.icon
@@ -89,7 +101,7 @@ function HeaderMenu({
89
101
  }]);
90
102
  }
91
103
  }
92
- }, info.label))), isHidable && (0, _react.createElement)(DropdownMenuItemV2, {
104
+ }, info.label))), isHidable && (0, _react.createElement)(DropdownMenuItem, {
93
105
  prefix: (0, _react.createElement)(_components.Icon, {
94
106
  icon: _icons.unseen
95
107
  }),
@@ -97,14 +109,50 @@ function HeaderMenu({
97
109
  event.preventDefault();
98
110
  header.column.getToggleVisibilityHandler()(event);
99
111
  }
100
- }, (0, _i18n.__)('Hide'))));
112
+ }, (0, _i18n.__)('Hide')), isFilterable && (0, _react.createElement)(DropdownMenuGroup, null, (0, _react.createElement)(DropdownSubMenu, {
113
+ key: filter.field,
114
+ trigger: (0, _react.createElement)(DropdownSubMenuTrigger, {
115
+ prefix: (0, _react.createElement)(_components.Icon, {
116
+ icon: _icons.funnel
117
+ }),
118
+ suffix: (0, _react.createElement)(_components.Icon, {
119
+ icon: _icons.chevronRightSmall
120
+ })
121
+ }, (0, _i18n.__)('Filter by'))
122
+ }, filter.elements.map(element => {
123
+ let isActive = false;
124
+ const columnFilters = dataView.getState().columnFilters;
125
+ const columnFilter = columnFilters.find(f => Object.keys(f)[0].split(':')[0] === filter.field);
126
+ if (columnFilter) {
127
+ const value = Object.values(columnFilter)[0];
128
+ // Intentionally use loose comparison, so it does type conversion.
129
+ // This covers the case where a top-level filter for the same field converts a number into a string.
130
+ isActive = element.value == value; // eslint-disable-line eqeqeq
131
+ }
132
+
133
+ return (0, _react.createElement)(DropdownMenuItem, {
134
+ key: element.value,
135
+ suffix: isActive && (0, _react.createElement)(_components.Icon, {
136
+ icon: _icons.check
137
+ }),
138
+ onSelect: () => {
139
+ const otherFilters = columnFilters?.filter(f => {
140
+ const [field, operator] = Object.keys(f)[0].split(':');
141
+ return field !== filter.field || operator !== _constants.OPERATOR_IN;
142
+ });
143
+ dataView.setColumnFilters([...otherFilters, {
144
+ [filter.field + ':in']: isActive ? undefined : element.value
145
+ }]);
146
+ }
147
+ }, element.label);
148
+ })))));
101
149
  }
102
150
  function WithSeparators({
103
151
  children
104
152
  }) {
105
153
  return _element.Children.toArray(children).filter(Boolean).map((child, i) => (0, _react.createElement)(_element.Fragment, {
106
154
  key: i
107
- }, i > 0 && (0, _react.createElement)(DropdownMenuSeparatorV2, null), child));
155
+ }, i > 0 && (0, _react.createElement)(DropdownMenuSeparator, null), child));
108
156
  }
109
157
  function ViewList({
110
158
  view,
@@ -112,6 +160,7 @@ function ViewList({
112
160
  fields,
113
161
  actions,
114
162
  data,
163
+ getItemId,
115
164
  isLoading = false,
116
165
  paginationInfo
117
166
  }) {
@@ -135,7 +184,7 @@ function ViewList({
135
184
  });
136
185
  if (actions?.length) {
137
186
  _columns.push({
138
- header: (0, _react.createElement)(_components.VisuallyHidden, null, (0, _i18n.__)('Actions')),
187
+ header: (0, _i18n.__)('Actions'),
139
188
  id: 'actions',
140
189
  cell: props => {
141
190
  return (0, _react.createElement)(_itemActions.default, {
@@ -157,8 +206,63 @@ function ViewList({
157
206
  [fieldId]: false
158
207
  }), {});
159
208
  }, [view.hiddenFields]);
209
+
210
+ /**
211
+ * Transform the filters from the view format into the tanstack columns filter format.
212
+ *
213
+ * Input:
214
+ *
215
+ * view.filters = [
216
+ * { field: 'date', operator: 'before', value: '2020-01-01' },
217
+ * { field: 'date', operator: 'after', value: '2020-01-01' },
218
+ * ]
219
+ *
220
+ * Output:
221
+ *
222
+ * columnFilters = [
223
+ * { "date:before": '2020-01-01' },
224
+ * { "date:after": '2020-01-01' }
225
+ * ]
226
+ *
227
+ * @param {Array} filters The view filters to transform.
228
+ * @return {Array} The transformed TanStack column filters.
229
+ */
230
+ const toTanStackColumnFilters = filters => filters?.map(filter => ({
231
+ [filter.field + ':' + filter.operator]: filter.value
232
+ }));
233
+
234
+ /**
235
+ * Transform the filters from the view format into the tanstack columns filter format.
236
+ *
237
+ * Input:
238
+ *
239
+ * columnFilters = [
240
+ * { "date:before": '2020-01-01'},
241
+ * { "date:after": '2020-01-01' }
242
+ * ]
243
+ *
244
+ * Output:
245
+ *
246
+ * view.filters = [
247
+ * { field: 'date', operator: 'before', value: '2020-01-01' },
248
+ * { field: 'date', operator: 'after', value: '2020-01-01' },
249
+ * ]
250
+ *
251
+ * @param {Array} filters The TanStack column filters to transform.
252
+ * @return {Array} The transformed view filters.
253
+ */
254
+ const fromTanStackColumnFilters = filters => filters.map(filter => {
255
+ const [key, value] = Object.entries(filter)[0];
256
+ const [field, operator] = key.split(':');
257
+ return {
258
+ field,
259
+ operator,
260
+ value
261
+ };
262
+ });
263
+ const shownData = (0, _compose.useAsyncList)(data);
160
264
  const dataView = (0, _reactTable.useReactTable)({
161
- data,
265
+ data: shownData,
162
266
  columns,
163
267
  manualSorting: true,
164
268
  manualFiltering: true,
@@ -170,12 +274,14 @@ function ViewList({
170
274
  desc: view.sort.direction === 'desc'
171
275
  }] : [],
172
276
  globalFilter: view.search,
277
+ columnFilters: toTanStackColumnFilters(view.filters),
173
278
  pagination: {
174
279
  pageIndex: view.page,
175
280
  pageSize: view.perPage
176
281
  },
177
282
  columnVisibility: columnVisibility !== null && columnVisibility !== void 0 ? columnVisibility : EMPTY_OBJECT
178
283
  },
284
+ getRowId: getItemId,
179
285
  onSortingChange: sortingUpdater => {
180
286
  onChangeView(currentView => {
181
287
  const sort = typeof sortingUpdater === 'function' ? sortingUpdater(currentView.sort ? [{
@@ -219,7 +325,14 @@ function ViewList({
219
325
  onChangeView({
220
326
  ...view,
221
327
  search: value,
222
- page: 0
328
+ page: 1
329
+ });
330
+ },
331
+ onColumnFiltersChange: columnFiltersUpdater => {
332
+ onChangeView({
333
+ ...view,
334
+ filters: fromTanStackColumnFilters(columnFiltersUpdater()),
335
+ page: 1
223
336
  });
224
337
  },
225
338
  onPaginationChange: paginationUpdater => {
@@ -263,17 +376,20 @@ function ViewList({
263
376
  colSpan: header.colSpan,
264
377
  style: {
265
378
  width: header.column.columnDef.width || undefined,
379
+ minWidth: header.column.columnDef.minWidth || undefined,
266
380
  maxWidth: header.column.columnDef.maxWidth || undefined
267
- }
381
+ },
382
+ "data-field-id": header.id
268
383
  }, (0, _react.createElement)(HeaderMenu, {
269
384
  dataView: dataView,
270
385
  header: header
271
386
  })))))), (0, _react.createElement)("tbody", null, rows.map(row => (0, _react.createElement)("tr", {
272
387
  key: row.id
273
388
  }, row.getVisibleCells().map(cell => (0, _react.createElement)("td", {
274
- key: cell.id,
389
+ key: cell.column.id,
275
390
  style: {
276
391
  width: cell.column.columnDef.width || undefined,
392
+ minWidth: cell.column.columnDef.minWidth || undefined,
277
393
  maxWidth: cell.column.columnDef.maxWidth || undefined
278
394
  }
279
395
  }, (0, _reactTable.flexRender)(cell.column.columnDef.cell, cell.getContext()))))))), !hasRows && (0, _react.createElement)("p", null, (0, _i18n.__)('no results')));